Check for tracking compat assets inside class itself

This commit is contained in:
Narek Zakarian 2023-09-08 19:38:14 +04:00
parent 4747d9d224
commit ee51504f5f
No known key found for this signature in database
GPG key ID: 07AFD7E7A9C164A7
3 changed files with 41 additions and 44 deletions

View file

@ -83,7 +83,8 @@ return array(
$container->get( 'compat.module.url' ), $container->get( 'compat.module.url' ),
$container->get( 'ppcp.asset-version' ), $container->get( 'ppcp.asset-version' ),
$container->get( 'compat.gzd.is_supported_plugin_version_active' ), $container->get( 'compat.gzd.is_supported_plugin_version_active' ),
$container->get( 'compat.wc_shipment_tracking.is_supported_plugin_version_active' ) $container->get( 'compat.wc_shipment_tracking.is_supported_plugin_version_active' ),
$container->get( 'api.bearer' )
); );
}, },
); );

View file

@ -9,10 +9,16 @@ declare(strict_types=1);
namespace WooCommerce\PayPalCommerce\Compat\Assets; namespace WooCommerce\PayPalCommerce\Compat\Assets;
use WooCommerce\PayPalCommerce\ApiClient\Authentication\Bearer;
use WooCommerce\PayPalCommerce\OrderTracking\TrackingAvailabilityTrait;
/** /**
* Class OrderEditPageAssets * Class OrderEditPageAssets
*/ */
class CompatAssets { class CompatAssets {
use TrackingAvailabilityTrait;
/** /**
* The URL to the module. * The URL to the module.
* *
@ -41,6 +47,13 @@ class CompatAssets {
*/ */
protected $is_wc_shipment_active; protected $is_wc_shipment_active;
/**
* The bearer.
*
* @var Bearer
*/
protected $bearer;
/** /**
* Compat module assets constructor. * Compat module assets constructor.
* *
@ -48,18 +61,21 @@ class CompatAssets {
* @param string $version The assets version. * @param string $version The assets version.
* @param bool $is_gzd_active Whether Germanized plugin is active. * @param bool $is_gzd_active Whether Germanized plugin is active.
* @param bool $is_wc_shipment_active Whether WC Shipments plugin is active. * @param bool $is_wc_shipment_active Whether WC Shipments plugin is active.
* @param Bearer $bearer The bearer.
*/ */
public function __construct( public function __construct(
string $module_url, string $module_url,
string $version, string $version,
bool $is_gzd_active, bool $is_gzd_active,
bool $is_wc_shipment_active bool $is_wc_shipment_active,
Bearer $bearer
) { ) {
$this->module_url = $module_url; $this->module_url = $module_url;
$this->version = $version; $this->version = $version;
$this->is_gzd_active = $is_gzd_active; $this->is_gzd_active = $is_gzd_active;
$this->is_wc_shipment_active = $is_wc_shipment_active; $this->is_wc_shipment_active = $is_wc_shipment_active;
$this->bearer = $bearer;
} }
/** /**
@ -68,22 +84,24 @@ class CompatAssets {
* @return void * @return void
*/ */
public function register(): void { public function register(): void {
wp_register_script( if ( $this->is_tracking_enabled( $this->bearer ) ) {
'ppcp-tracking-compat', wp_register_script(
untrailingslashit( $this->module_url ) . '/assets/js/tracking-compat.js', 'ppcp-tracking-compat',
array( 'jquery' ), untrailingslashit( $this->module_url ) . '/assets/js/tracking-compat.js',
$this->version, array( 'jquery' ),
true $this->version,
); true
);
wp_localize_script( wp_localize_script(
'ppcp-tracking-compat', 'ppcp-tracking-compat',
'PayPalCommerceGatewayOrderTrackingCompat', 'PayPalCommerceGatewayOrderTrackingCompat',
array( array(
'gzd_sync_enabled' => apply_filters( 'woocommerce_paypal_payments_sync_gzd_tracking', true ) && $this->is_gzd_active, 'gzd_sync_enabled' => apply_filters( 'woocommerce_paypal_payments_sync_gzd_tracking', true ) && $this->is_gzd_active,
'wc_shipment_sync_enabled' => apply_filters( 'woocommerce_paypal_payments_sync_wc_shipment_tracking', true ) && $this->is_wc_shipment_active, 'wc_shipment_sync_enabled' => apply_filters( 'woocommerce_paypal_payments_sync_wc_shipment_tracking', true ) && $this->is_wc_shipment_active,
) )
); );
}
} }
/** /**
@ -92,6 +110,8 @@ class CompatAssets {
* @return void * @return void
*/ */
public function enqueue(): void { public function enqueue(): void {
wp_enqueue_script( 'ppcp-tracking-compat' ); if ( $this->is_tracking_enabled( $this->bearer ) ) {
wp_enqueue_script( 'ppcp-tracking-compat' );
}
} }
} }

View file

@ -11,7 +11,6 @@ namespace WooCommerce\PayPalCommerce\Compat;
use Vendidero\Germanized\Shipments\ShipmentItem; use Vendidero\Germanized\Shipments\ShipmentItem;
use WooCommerce\PayPalCommerce\OrderTracking\Shipment\ShipmentFactoryInterface; use WooCommerce\PayPalCommerce\OrderTracking\Shipment\ShipmentFactoryInterface;
use WooCommerce\PayPalCommerce\OrderTracking\TrackingAvailabilityTrait;
use WooCommerce\PayPalCommerce\Vendor\Dhii\Container\ServiceProvider; use WooCommerce\PayPalCommerce\Vendor\Dhii\Container\ServiceProvider;
use WooCommerce\PayPalCommerce\Vendor\Dhii\Modular\Module\ModuleInterface; use WooCommerce\PayPalCommerce\Vendor\Dhii\Modular\Module\ModuleInterface;
use Exception; use Exception;
@ -31,9 +30,6 @@ use WP_REST_Response;
* Class CompatModule * Class CompatModule
*/ */
class CompatModule implements ModuleInterface { class CompatModule implements ModuleInterface {
use TrackingAvailabilityTrait;
/** /**
* Setup the compatibility module. * Setup the compatibility module.
* *
@ -60,28 +56,8 @@ class CompatModule implements ModuleInterface {
$asset_loader = $c->get( 'compat.assets' ); $asset_loader = $c->get( 'compat.assets' );
assert( $asset_loader instanceof CompatAssets ); assert( $asset_loader instanceof CompatAssets );
$bearer = $c->get( 'api.bearer' ); add_action( 'init', array( $asset_loader, 'register' ) );
add_action( 'admin_enqueue_scripts', array( $asset_loader, 'enqueue' ) );
add_action(
'init',
function() use ( $asset_loader, $bearer ) {
if ( ! $this->is_tracking_enabled( $bearer ) ) {
return;
}
$asset_loader->register();
}
);
add_action(
'init',
function() use ( $asset_loader, $bearer ) {
if ( ! $this->is_tracking_enabled( $bearer ) ) {
return;
}
$asset_loader->enqueue();
}
);
$this->migrate_pay_later_settings( $c ); $this->migrate_pay_later_settings( $c );
$this->migrate_smart_button_settings( $c ); $this->migrate_smart_button_settings( $c );