From ee0d3aebf04c994d2cd0a5f7360cafb1879d6255 Mon Sep 17 00:00:00 2001 From: Rob Belfort Date: Sun, 26 Jan 2025 17:39:56 -0500 Subject: [PATCH 1/4] ProductVariationg Shipping Class Fix --- includes/model/class-product-variation.php | 10 ++++++++++ includes/model/class-product.php | 2 +- includes/type/interface/class-product-variation.php | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/includes/model/class-product-variation.php b/includes/model/class-product-variation.php index 59120761..85d3409e 100644 --- a/includes/model/class-product-variation.php +++ b/includes/model/class-product-variation.php @@ -215,6 +215,16 @@ protected function init() { 'salePriceRaw' => function () { return ! empty( $this->wc_data->get_sale_price() ) ? $this->wc_data->get_sale_price() : null; }, + 'shippingClass' => function () { + $shipping_class_id = $this->wc_data->get_shipping_class_id(); + $shipping_class_term = get_term( $shipping_class_id, 'product_shipping_class' ); + + if ( ! is_wp_error( $shipping_class_term ) && is_a( $shipping_class_term, 'WP_Term' ) ) { + $shipping_class = $shipping_class_term; + } + + return $shipping_class ?? null; + }, /** * Connection resolvers fields diff --git a/includes/model/class-product.php b/includes/model/class-product.php index 9109288e..bf77211f 100644 --- a/includes/model/class-product.php +++ b/includes/model/class-product.php @@ -413,7 +413,7 @@ protected function init() { return ! empty( $this->wc_data->get_height() ) ? $this->wc_data->get_height() : null; }, 'shippingClassId' => function () { - return ! empty( $this->wc_data->get_image_id() ) ? $this->wc_data->get_shipping_class_id() : null; + return ! empty( $this->wc_data->get_shipping_class_id() ) ? $this->wc_data->get_shipping_class_id() : null; }, 'shippingRequired' => function () { return $this->wc_data->needs_shipping(); diff --git a/includes/type/interface/class-product-variation.php b/includes/type/interface/class-product-variation.php index e7665f92..87caaa60 100644 --- a/includes/type/interface/class-product-variation.php +++ b/includes/type/interface/class-product-variation.php @@ -244,7 +244,7 @@ public static function get_fields() { 'description' => __( 'Product variation purchase_note', 'wp-graphql-woocommerce' ), ], 'shippingClass' => [ - 'type' => 'String', + 'type' => 'ShippingClass', 'description' => __( 'Product variation shipping class', 'wp-graphql-woocommerce' ), ], 'catalogVisibility' => [ From be0348bfbdfa6606e5fac25a59dfc5b0c6b20a37 Mon Sep 17 00:00:00 2001 From: Rob Belfort Date: Sun, 26 Jan 2025 17:44:27 -0500 Subject: [PATCH 2/4] ProductVariationg Shipping Class Fix Test --- tests/wpunit/ProductVariationQueriesTest.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/wpunit/ProductVariationQueriesTest.php b/tests/wpunit/ProductVariationQueriesTest.php index a3e70e8f..d5240c31 100644 --- a/tests/wpunit/ProductVariationQueriesTest.php +++ b/tests/wpunit/ProductVariationQueriesTest.php @@ -127,7 +127,9 @@ public function testVariationQuery() { height menuOrder purchaseNote - shippingClass + shippingClass { + id + } catalogVisibility hasAttributes type From 6667b818cb256c495ffa641b641480c27aaf4f1e Mon Sep 17 00:00:00 2001 From: Rob Belfort Date: Sun, 26 Jan 2025 17:45:20 -0500 Subject: [PATCH 3/4] Remove \codecept_debug() call --- includes/data/mutation/class-checkout-mutation.php | 1 - 1 file changed, 1 deletion(-) diff --git a/includes/data/mutation/class-checkout-mutation.php b/includes/data/mutation/class-checkout-mutation.php index cb98184f..5acd01d4 100644 --- a/includes/data/mutation/class-checkout-mutation.php +++ b/includes/data/mutation/class-checkout-mutation.php @@ -493,7 +493,6 @@ protected static function validate_checkout( &$data ) { if ( WC()->cart->needs_payment() ) { $available_gateways = WC()->payment_gateways->get_available_payment_gateways(); - \codecept_debug( $available_gateways ); if ( ! isset( $available_gateways[ $data['payment_method'] ] ) ) { throw new UserError( __( 'Invalid payment method.', 'wp-graphql-woocommerce' ) ); } else { From 8861dd18de53f2c3cea64864f182ad949a0a5ffa Mon Sep 17 00:00:00 2001 From: Rob Belfort Date: Mon, 27 Jan 2025 15:00:06 -0500 Subject: [PATCH 4/4] Convert middle alignement tabs to spaces, null control --- includes/model/class-product-variation.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/model/class-product-variation.php b/includes/model/class-product-variation.php index 85d3409e..2ca329e4 100644 --- a/includes/model/class-product-variation.php +++ b/includes/model/class-product-variation.php @@ -215,11 +215,11 @@ protected function init() { 'salePriceRaw' => function () { return ! empty( $this->wc_data->get_sale_price() ) ? $this->wc_data->get_sale_price() : null; }, - 'shippingClass' => function () { + 'shippingClass' => function () { $shipping_class_id = $this->wc_data->get_shipping_class_id(); $shipping_class_term = get_term( $shipping_class_id, 'product_shipping_class' ); - if ( ! is_wp_error( $shipping_class_term ) && is_a( $shipping_class_term, 'WP_Term' ) ) { + if ( ! is_wp_error( $shipping_class_term ) && ! is_null( $shipping_class_term ) && is_a( $shipping_class_term, 'WP_Term' ) ) { $shipping_class = $shipping_class_term; }