From 965d99863564cb328ed858b436f7e850c2ac774f Mon Sep 17 00:00:00 2001 From: Chase Wiseman Date: Fri, 7 Jun 2019 14:18:41 -0700 Subject: [PATCH 1/3] Dev version and update copyrights --- readme.txt | 4 +++- woocommerce-product-sku-generator.php | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/readme.txt b/readme.txt index 9871a83..a23dcd9 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: woocommerce, sku, product sku, sku generator Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=paypal@skyverge.com&item_name=Donation+for+WooCommerce+SKU+Generator Requires at least: 4.4 Tested up to: 4.9.7 -Stable Tag: 2.3.4 +Stable Tag: 2.3.5-dev.1 License: GPLv3 License URI: http://www.gnu.org/licenses/gpl-3.0.html @@ -154,6 +154,8 @@ add_filter( 'wc_sku_generator_force_attribute_sorting', '__return_true' ); == Changelog == += 2019.nn.nn - version 2.3.5-dev.1 = + = 2018.07.17 - version 2.3.4 = * Misc - Remove support for WooCommerce 2.5 diff --git a/woocommerce-product-sku-generator.php b/woocommerce-product-sku-generator.php index cd93aa9..03c7fd6 100644 --- a/woocommerce-product-sku-generator.php +++ b/woocommerce-product-sku-generator.php @@ -9,7 +9,7 @@ * Text Domain: woocommerce-product-sku-generator * Domain Path: /i18n/languages/ * - * Copyright: (c) 2014-2018 SkyVerge, Inc. (info@skyverge.com) + * Copyright: (c) 2014-2019 SkyVerge, Inc. (info@skyverge.com) * * License: GNU General Public License v3.0 * License URI: http://www.gnu.org/licenses/gpl-3.0.html @@ -17,7 +17,7 @@ * @package WC-Product-SKU-Generator * @author SkyVerge * @category Admin - * @copyright Copyright (c) 2014-2018, SkyVerge, Inc. + * @copyright Copyright (c) 2014-2019, SkyVerge, Inc. * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 * * WC requires at least: 2.6.14 @@ -63,7 +63,7 @@ class WC_SKU_Generator { /** plugin version number */ - const VERSION = '2.3.4'; + const VERSION = '2.3.5-dev.1'; /** required WooCommerce version number */ const MIN_WOOCOMMERCE_VERSION = '2.6.14'; From d299ed0e6ab74bee5c9e3b12583b7f37ea708bf5 Mon Sep 17 00:00:00 2001 From: Chase Wiseman Date: Fri, 7 Jun 2019 14:20:56 -0700 Subject: [PATCH 2/3] Ensure SKUs are unique before saving Also prevents fatals in case of a data error Fixes #16 --- readme.txt | 2 ++ woocommerce-product-sku-generator.php | 26 ++++++++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/readme.txt b/readme.txt index a23dcd9..e39e32a 100644 --- a/readme.txt +++ b/readme.txt @@ -155,6 +155,8 @@ add_filter( 'wc_sku_generator_force_attribute_sorting', '__return_true' ); == Changelog == = 2019.nn.nn - version 2.3.5-dev.1 = + * Tweak - Ensure generated SKUs are unique before saving + * Fix - Prevent errors when saving invalid SKUs = 2018.07.17 - version 2.3.4 = * Misc - Remove support for WooCommerce 2.5 diff --git a/woocommerce-product-sku-generator.php b/woocommerce-product-sku-generator.php index 03c7fd6..95dad45 100644 --- a/woocommerce-product-sku-generator.php +++ b/woocommerce-product-sku-generator.php @@ -421,9 +421,18 @@ public function maybe_save_sku( $product ) { if ( 'never' !== get_option( 'wc_sku_generator_simple' ) ) { if ( self::is_wc_version_gte_3_0() ) { - $product->set_sku( $product_sku ); - $product->save(); + + $product_sku = wc_product_generate_unique_sku( $product->get_id(), $product_sku ); + + try { + + $product->set_sku( $product_sku ); + $product->save(); + + } catch ( \WC_Data_Exception $exception ) {} + } else { + update_post_meta( $product->get_id(), '_sku', $product_sku ); } } @@ -461,9 +470,18 @@ protected function maybe_save_variation_sku( $variation_id, $parent, $parent_sku $sku = apply_filters( 'wc_sku_generator_variation_sku_format', $sku, $parent_sku, $variation_sku ); if ( self::is_wc_version_gte_3_0() ) { - $variation->set_sku( $sku ); - $variation->save(); + + try { + + $sku = wc_product_generate_unique_sku( $variation_id, $sku ); + + $variation->set_sku( $sku ); + $variation->save(); + + } catch ( \WC_Data_Exception $exception ) {} + } else { + update_post_meta( $variation_id, '_sku', $sku ); } } From d61a29d0f7aef4e6d1011884be35f6428baaf187 Mon Sep 17 00:00:00 2001 From: Chase Wiseman Date: Fri, 7 Jun 2019 14:24:04 -0700 Subject: [PATCH 3/3] Remove global namespace Not quite ready for that yet! --- woocommerce-product-sku-generator.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/woocommerce-product-sku-generator.php b/woocommerce-product-sku-generator.php index 95dad45..06a0e79 100644 --- a/woocommerce-product-sku-generator.php +++ b/woocommerce-product-sku-generator.php @@ -429,7 +429,7 @@ public function maybe_save_sku( $product ) { $product->set_sku( $product_sku ); $product->save(); - } catch ( \WC_Data_Exception $exception ) {} + } catch ( WC_Data_Exception $exception ) {} } else { @@ -478,7 +478,7 @@ protected function maybe_save_variation_sku( $variation_id, $parent, $parent_sku $variation->set_sku( $sku ); $variation->save(); - } catch ( \WC_Data_Exception $exception ) {} + } catch ( WC_Data_Exception $exception ) {} } else {