diff --git a/modules/ppcp-applepay/resources/js/boot.js b/modules/ppcp-applepay/resources/js/boot.js index 3830929ef..42607e6da 100644 --- a/modules/ppcp-applepay/resources/js/boot.js +++ b/modules/ppcp-applepay/resources/js/boot.js @@ -20,7 +20,6 @@ import ApplepayManager from "./ApplepayManager"; (typeof (buttonConfig) === 'undefined') || (typeof (ppcpConfig) === 'undefined') ) { - console.error('PayPal button could not be configured.'); return; } const isMiniCart = ppcpConfig.mini_cart_buttons_enabled; diff --git a/modules/ppcp-applepay/src/ApplepayModule.php b/modules/ppcp-applepay/src/ApplepayModule.php index 925f0e789..2dfcbfb16 100644 --- a/modules/ppcp-applepay/src/ApplepayModule.php +++ b/modules/ppcp-applepay/src/ApplepayModule.php @@ -129,10 +129,18 @@ class ApplepayModule implements ModuleInterface { function () use ( $c, $button ) { $smart_button = $c->get( 'button.smart-button' ); assert( $smart_button instanceof SmartButtonInterface ); - $page_has_block = has_block( 'woocommerce/checkout' ) || has_block( 'woocommerce/cart' ); - if ( $smart_button->should_load_ppcp_script() || $page_has_block ) { + if ( $smart_button->should_load_ppcp_script() ) { $button->enqueue(); } + + if ( has_block( 'woocommerce/checkout' ) || has_block( 'woocommerce/cart' ) ) { + /** + * Should add this to the ButtonInterface. + * + * @psalm-suppress UndefinedInterfaceMethod + */ + $button->enqueue_styles(); + } } ); add_action( diff --git a/modules/ppcp-applepay/src/Assets/ApplePayButton.php b/modules/ppcp-applepay/src/Assets/ApplePayButton.php index 4e8bb17fc..027d05b54 100644 --- a/modules/ppcp-applepay/src/Assets/ApplePayButton.php +++ b/modules/ppcp-applepay/src/Assets/ApplePayButton.php @@ -1021,13 +1021,7 @@ class ApplePayButton implements ButtonInterface { ); wp_enqueue_script( 'wc-ppcp-applepay' ); - wp_register_style( - 'wc-ppcp-applepay', - untrailingslashit( $this->module_url ) . '/assets/css/styles.css', - array(), - $this->version - ); - wp_enqueue_style( 'wc-ppcp-applepay' ); + $this->enqueue_styles(); wp_localize_script( 'wc-ppcp-applepay', @@ -1042,6 +1036,23 @@ class ApplePayButton implements ButtonInterface { ); } + /** + * Enqueues styles. + */ + public function enqueue_styles(): void { + if ( ! $this->is_enabled() ) { + return; + } + + wp_register_style( + 'wc-ppcp-applepay', + untrailingslashit( $this->module_url ) . '/assets/css/styles.css', + array(), + $this->version + ); + wp_enqueue_style( 'wc-ppcp-applepay' ); + } + /** * Returns the script data. * diff --git a/modules/ppcp-googlepay/resources/js/GooglepayButton.js b/modules/ppcp-googlepay/resources/js/GooglepayButton.js index 57d29a75d..9ecb778d5 100644 --- a/modules/ppcp-googlepay/resources/js/GooglepayButton.js +++ b/modules/ppcp-googlepay/resources/js/GooglepayButton.js @@ -189,7 +189,6 @@ class GooglepayButton { callback(el); } else if (timeElapsed > timeout) { clearInterval(interval); - console.error('Waiting for wrapper timed out.', selector); } }, delay); } diff --git a/modules/ppcp-googlepay/resources/js/boot.js b/modules/ppcp-googlepay/resources/js/boot.js index 387822e67..731f78d80 100644 --- a/modules/ppcp-googlepay/resources/js/boot.js +++ b/modules/ppcp-googlepay/resources/js/boot.js @@ -16,7 +16,9 @@ import GooglepayManager from "./GooglepayManager"; }; jQuery(document.body).on('updated_cart_totals updated_checkout', () => { - manager.reinit(); + if (manager) { + manager.reinit(); + } }); document.addEventListener( diff --git a/modules/ppcp-googlepay/src/Assets/Button.php b/modules/ppcp-googlepay/src/Assets/Button.php index b4ad9c297..6609ef0e1 100644 --- a/modules/ppcp-googlepay/src/Assets/Button.php +++ b/modules/ppcp-googlepay/src/Assets/Button.php @@ -363,6 +363,23 @@ class Button implements ButtonInterface { ); wp_enqueue_script( 'wc-ppcp-googlepay' ); + $this->enqueue_styles(); + + wp_localize_script( + 'wc-ppcp-googlepay', + 'wc_ppcp_googlepay', + $this->script_data() + ); + } + + /** + * Enqueues styles. + */ + public function enqueue_styles(): void { + if ( ! $this->is_enabled() ) { + return; + } + wp_register_style( 'wc-ppcp-googlepay', untrailingslashit( $this->module_url ) . '/assets/css/styles.css', @@ -370,12 +387,6 @@ class Button implements ButtonInterface { $this->version ); wp_enqueue_style( 'wc-ppcp-googlepay' ); - - wp_localize_script( - 'wc-ppcp-googlepay', - 'wc_ppcp_googlepay', - $this->script_data() - ); } /** diff --git a/modules/ppcp-googlepay/src/GooglepayModule.php b/modules/ppcp-googlepay/src/GooglepayModule.php index 99dc93465..b2a07c47d 100644 --- a/modules/ppcp-googlepay/src/GooglepayModule.php +++ b/modules/ppcp-googlepay/src/GooglepayModule.php @@ -11,6 +11,7 @@ namespace WooCommerce\PayPalCommerce\Googlepay; use Automattic\WooCommerce\Blocks\Payments\PaymentMethodRegistry; use WooCommerce\PayPalCommerce\Button\Assets\ButtonInterface; +use WooCommerce\PayPalCommerce\Button\Assets\SmartButtonInterface; use WooCommerce\PayPalCommerce\Googlepay\Endpoint\UpdatePaymentDataEndpoint; use WooCommerce\PayPalCommerce\Googlepay\Helper\ApmProductStatus; use WooCommerce\PayPalCommerce\Googlepay\Helper\AvailabilityNotice; @@ -85,7 +86,20 @@ class GooglepayModule implements ModuleInterface { add_action( 'wp_enqueue_scripts', static function () use ( $c, $button ) { - $button->enqueue(); + $smart_button = $c->get( 'button.smart-button' ); + assert( $smart_button instanceof SmartButtonInterface ); + if ( $smart_button->should_load_ppcp_script() ) { + $button->enqueue(); + } + + if ( has_block( 'woocommerce/checkout' ) || has_block( 'woocommerce/cart' ) ) { + /** + * Should add this to the ButtonInterface. + * + * @psalm-suppress UndefinedInterfaceMethod + */ + $button->enqueue_styles(); + } } );