Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/woocomme.../src/Internal/Integrat...
File: WPConsentAPI.php
<?php
[0] Fix | Delete
declare( strict_types=1 );
[1] Fix | Delete
[2] Fix | Delete
namespace Automattic\WooCommerce\Internal\Integrations;
[3] Fix | Delete
[4] Fix | Delete
use Automattic\Jetpack\Constants;
[5] Fix | Delete
use Automattic\WooCommerce\Internal\Traits\ScriptDebug;
[6] Fix | Delete
use WP_CONSENT_API;
[7] Fix | Delete
[8] Fix | Delete
/**
[9] Fix | Delete
* Class WPConsentAPI
[10] Fix | Delete
*
[11] Fix | Delete
* @since 8.5.0
[12] Fix | Delete
*/
[13] Fix | Delete
class WPConsentAPI {
[14] Fix | Delete
[15] Fix | Delete
use ScriptDebug;
[16] Fix | Delete
[17] Fix | Delete
[18] Fix | Delete
/**
[19] Fix | Delete
* Identifier of the consent category used for order attribution.
[20] Fix | Delete
*
[21] Fix | Delete
* @var string
[22] Fix | Delete
*/
[23] Fix | Delete
public static $consent_category = 'marketing';
[24] Fix | Delete
[25] Fix | Delete
/**
[26] Fix | Delete
* Register the consent API.
[27] Fix | Delete
*
[28] Fix | Delete
* @return void
[29] Fix | Delete
*/
[30] Fix | Delete
public function register() {
[31] Fix | Delete
add_action(
[32] Fix | Delete
'init',
[33] Fix | Delete
function() {
[34] Fix | Delete
$this->on_init();
[35] Fix | Delete
},
[36] Fix | Delete
20 // After OrderAttributionController.
[37] Fix | Delete
);
[38] Fix | Delete
}
[39] Fix | Delete
[40] Fix | Delete
/**
[41] Fix | Delete
* Register our hooks on init.
[42] Fix | Delete
*
[43] Fix | Delete
* @return void
[44] Fix | Delete
*/
[45] Fix | Delete
protected function on_init() {
[46] Fix | Delete
// Include integration to WP Consent Level API if available.
[47] Fix | Delete
if ( ! $this->is_wp_consent_api_active() ) {
[48] Fix | Delete
return;
[49] Fix | Delete
}
[50] Fix | Delete
[51] Fix | Delete
$plugin = plugin_basename( WC_PLUGIN_FILE );
[52] Fix | Delete
add_filter( "wp_consent_api_registered_{$plugin}", '__return_true' );
[53] Fix | Delete
add_action(
[54] Fix | Delete
'wp_enqueue_scripts',
[55] Fix | Delete
function() {
[56] Fix | Delete
$this->enqueue_consent_api_scripts();
[57] Fix | Delete
}
[58] Fix | Delete
);
[59] Fix | Delete
[60] Fix | Delete
/**
[61] Fix | Delete
* Modify the "allowTracking" flag consent if the user has consented to marketing.
[62] Fix | Delete
*
[63] Fix | Delete
* Wp-consent-api will initialize the modules on "init" with priority 9,
[64] Fix | Delete
* So this code needs to be run after that.
[65] Fix | Delete
*/
[66] Fix | Delete
add_filter(
[67] Fix | Delete
'wc_order_attribution_allow_tracking',
[68] Fix | Delete
function() {
[69] Fix | Delete
return function_exists( 'wp_has_consent' ) && wp_has_consent( self::$consent_category );
[70] Fix | Delete
}
[71] Fix | Delete
);
[72] Fix | Delete
}
[73] Fix | Delete
[74] Fix | Delete
/**
[75] Fix | Delete
* Check if WP Cookie Consent API is active
[76] Fix | Delete
*
[77] Fix | Delete
* @return bool
[78] Fix | Delete
*/
[79] Fix | Delete
protected function is_wp_consent_api_active() {
[80] Fix | Delete
return class_exists( WP_CONSENT_API::class );
[81] Fix | Delete
}
[82] Fix | Delete
[83] Fix | Delete
/**
[84] Fix | Delete
* Enqueue JS for integration with WP Consent Level API
[85] Fix | Delete
*
[86] Fix | Delete
* @return void
[87] Fix | Delete
*/
[88] Fix | Delete
private function enqueue_consent_api_scripts() {
[89] Fix | Delete
wp_enqueue_script(
[90] Fix | Delete
'wp-consent-api-integration',
[91] Fix | Delete
plugins_url(
[92] Fix | Delete
"assets/js/frontend/wp-consent-api-integration{$this->get_script_suffix()}.js",
[93] Fix | Delete
WC_PLUGIN_FILE
[94] Fix | Delete
),
[95] Fix | Delete
array( 'wp-consent-api', 'wc-order-attribution' ),
[96] Fix | Delete
Constants::get_constant( 'WC_VERSION' ),
[97] Fix | Delete
true
[98] Fix | Delete
);
[99] Fix | Delete
[100] Fix | Delete
// Add data for the script above. `wp_enqueue_script` API does not allow data attributes,
[101] Fix | Delete
// so we need a separate script tag and pollute the global scope.
[102] Fix | Delete
wp_add_inline_script(
[103] Fix | Delete
'wp-consent-api-integration',
[104] Fix | Delete
sprintf(
[105] Fix | Delete
'window.wc_order_attribution.params.consentCategory = %s;',
[106] Fix | Delete
wp_json_encode( self::$consent_category )
[107] Fix | Delete
),
[108] Fix | Delete
'before'
[109] Fix | Delete
);
[110] Fix | Delete
}
[111] Fix | Delete
}
[112] Fix | Delete
[113] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function