From 975660d905825db274d6bdf353ab77bff13faa79 Mon Sep 17 00:00:00 2001 From: Philipp Stracker Date: Fri, 20 Sep 2024 16:52:28 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Hide=20shipping=20options=20for?= =?UTF-8?q?=20non-physical=20products?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ppcp-googlepay/src/Assets/Button.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/modules/ppcp-googlepay/src/Assets/Button.php b/modules/ppcp-googlepay/src/Assets/Button.php index 575def21f..43f783675 100644 --- a/modules/ppcp-googlepay/src/Assets/Button.php +++ b/modules/ppcp-googlepay/src/Assets/Button.php @@ -431,10 +431,20 @@ class Button implements ButtonInterface { * @return array */ public function script_data(): array { + $use_shipping_form = $this->settings->has( 'googlepay_button_shipping_enabled' ) && $this->settings->get( 'googlepay_button_shipping_enabled' ); + + // On the product page, only show the shipping form for physical products. + $context = $this->context(); + if ( $use_shipping_form && 'product' === $context ) { + $product = wc_get_product(); + + if ( ! $product || $product->is_downloadable() || $product->is_virtual() ) { + $use_shipping_form = false; + } + } + $shipping = array( - 'enabled' => $this->settings->has( 'googlepay_button_shipping_enabled' ) - ? boolval( $this->settings->get( 'googlepay_button_shipping_enabled' ) ) - : false, + 'enabled' => $use_shipping_form, 'configured' => wc_shipping_enabled() && wc_get_shipping_method_count( false, true ) > 0, );