WooCommerce Sequential Order Numbers - Version 1.8.2

Version Description

  • 2017.08.22 =
  • Fix - PHP deprecation warning when Subscriptions is used
  • Misc - Removed support for WooCommerce Subscriptions older than v2.0
Download this release

Release Info

Developer SkyVerge
Plugin Icon WooCommerce Sequential Order Numbers
Version 1.8.2
Comparing to
See all releases

Code changes from version 1.8.1 to 1.8.2

i18n/languages/woocommerce-sequential-order-numbers.pot CHANGED
@@ -2,7 +2,7 @@
2
# This file is distributed under the GNU General Public License v3.0.
3
msgid ""
4
msgstr ""
5
- "Project-Id-Version: WooCommerce Sequential Order Numbers 1.8.1\n"
6
"Report-Msgid-Bugs-To: "
7
"https://github.com/skyverge/woocommerce-sequential-order-numbers/issues\n"
8
"POT-Creation-Date: 2014-09-05 22:27:38+00:00\n"
@@ -23,14 +23,22 @@ msgstr ""
23
msgid "You cannot unserialize instances of %s."
24
msgstr ""
25
26
- #: woocommerce-sequential-order-numbers.php:550
27
#. Translators: %s - error message(s)
28
msgid ""
29
"Error activating and installing <strong>WooCommerce Sequential Order "
30
"Numbers</strong>: %s"
31
msgstr ""
32
33
- #: woocommerce-sequential-order-numbers.php:551
34
msgid "&laquo; Go Back"
35
msgstr ""
36
2
# This file is distributed under the GNU General Public License v3.0.
3
msgid ""
4
msgstr ""
5
+ "Project-Id-Version: WooCommerce Sequential Order Numbers 1.8.2\n"
6
"Report-Msgid-Bugs-To: "
7
"https://github.com/skyverge/woocommerce-sequential-order-numbers/issues\n"
8
"POT-Creation-Date: 2014-09-05 22:27:38+00:00\n"
23
msgid "You cannot unserialize instances of %s."
24
msgstr ""
25
26
+ #: woocommerce-sequential-order-numbers.php:487
27
+ #. translators: Placeholders: %1$s - plugin name; %2$s - WooCommerce version;
28
+ #. %3$s, %5$s - <a> tags; %4$s - </a> tag
29
+ msgid ""
30
+ "%1$s is inactive because it requires WooCommerce %2$s or newer. Please "
31
+ "%3$supdate WooCommerce%4$s or run the %5$sWooCommerce database upgrade%4$s."
32
+ msgstr ""
33
+
34
+ #: woocommerce-sequential-order-numbers.php:529
35
#. Translators: %s - error message(s)
36
msgid ""
37
"Error activating and installing <strong>WooCommerce Sequential Order "
38
"Numbers</strong>: %s"
39
msgstr ""
40
41
+ #: woocommerce-sequential-order-numbers.php:530
42
msgid "&laquo; Go Back"
43
msgstr ""
44
readme.txt CHANGED
@@ -2,10 +2,10 @@
2
Contributors: SkyVerge, maxrice, tamarazuk, chasewiseman, nekojira, beka.rice
3
Tags: woocommerce, order number, sequential order number, woocommerce orders
4
Requires at least: 4.1
5
- Tested up to: 4.7.3
6
- Requires WooCommerce at least: 2.5.5
7
- Tested WooCommerce up to: 3.0
8
- Stable tag: 1.8.1
9
10
This plugin extends WooCommerce by setting sequential order numbers for new orders.
11
@@ -103,6 +103,10 @@ $order_number = $order->get_order_number();
103
104
== Changelog ==
105
106
= 1.8.1 - 2017.03.28 =
107
* Fix - Removes errors on refund number display
108
2
Contributors: SkyVerge, maxrice, tamarazuk, chasewiseman, nekojira, beka.rice
3
Tags: woocommerce, order number, sequential order number, woocommerce orders
4
Requires at least: 4.1
5
+ Tested up to: 4.8.1
6
+ WC requires at least: 2.5.5
7
+ WC tested up to: 3.1.0
8
+ Stable tag: 1.8.2
9
10
This plugin extends WooCommerce by setting sequential order numbers for new orders.
11
103
104
== Changelog ==
105
106
+ = 1.8.2 - 2017.08.22 =
107
+ * Fix - PHP deprecation warning when Subscriptions is used
108
+ * Misc - Removed support for WooCommerce Subscriptions older than v2.0
109
+
110
= 1.8.1 - 2017.03.28 =
111
* Fix - Removes errors on refund number display
112
woocommerce-sequential-order-numbers.php CHANGED
@@ -5,7 +5,7 @@
5
* Description: Provides sequential order numbers for WooCommerce orders
6
* Author: SkyVerge
7
* Author URI: http://www.skyverge.com
8
- * Version: 1.8.1
9
* Text Domain: woocommerce-sequential-order-numbers
10
* Domain Path: /i18n/languages/
11
*
@@ -32,7 +32,7 @@ class WC_Seq_Order_Number {
32
33
34
/** version number */
35
- const VERSION = '1.8.1';
36
37
/** @var \WC_Seq_Order_Number single instance of this plugin */
38
protected static $instance;
@@ -105,13 +105,8 @@ class WC_Seq_Order_Number {
105
add_filter( 'woocommerce_shortcode_order_tracking_order_id', array( $this, 'find_order_by_order_number' ) );
106
107
// WC Subscriptions support
108
- if ( self::is_wc_subscriptions_version_gte_2_0() ) {
109
- add_filter( 'wcs_renewal_order_meta_query', array( $this, 'subscriptions_remove_renewal_order_meta' ) );
110
- add_filter( 'wcs_renewal_order_created', array( $this, 'subscriptions_set_sequential_order_number' ), 10, 2 );
111
- } else {
112
- add_filter( 'woocommerce_subscriptions_renewal_order_meta_query', array( $this, 'subscriptions_remove_renewal_order_meta' ) );
113
- add_action( 'woocommerce_subscriptions_renewal_order_created', array( $this, 'subscriptions_set_sequential_order_number' ), 10, 2 );
114
- }
115
116
if ( is_admin() ) {
117
add_filter( 'request', array( $this, 'woocommerce_custom_shop_order_orderby' ), 20 );
@@ -201,10 +196,10 @@ class WC_Seq_Order_Number {
201
202
// attempt the query up to 3 times for a much higher success rate if it fails (due to Deadlock)
203
$success = false;
204
for ( $i = 0; $i < 3 && ! $success; $i++ ) {
205
206
// this seems to me like the safest way to avoid order number clashes
207
- // By the time this is outdated, it's likely no longer needed anyway {BR 2017-03-08}
208
$query = $wpdb->prepare( "
209
INSERT INTO {$wpdb->postmeta} (post_id, meta_key, meta_value)
210
SELECT %d, '_order_number', IF( MAX( CAST( meta_value as UNSIGNED ) ) IS NULL, 1, MAX( CAST( meta_value as UNSIGNED ) ) + 1 )
@@ -297,47 +292,26 @@ class WC_Seq_Order_Number {
297
/** 3rd Party Plugin Support ******************************************************/
298
299
300
- /**
301
- * Helper method to get the version of WooCommerce Subscriptions
302
- *
303
- * @since 1.5.1
304
- * @return string|null WC_Subscriptions version number or null if not found
305
- */
306
- protected static function get_wc_subscriptions_version() {
307
- return class_exists( 'WC_Subscriptions' ) && ! empty( WC_Subscriptions::$version ) ? WC_Subscriptions::$version : null;
308
- }
309
-
310
-
311
- /**
312
- * Returns true if the installed version of WooCommerce Subscriptions is 2.0.0 or greater
313
- *
314
- * TODO: Drop Subs < 2.0 support with WC 3.1 compat {BR 2017-03-21}
315
- *
316
- * @since 1.5.1
317
- * @return boolean
318
- */
319
- protected static function is_wc_subscriptions_version_gte_2_0() {
320
- return self::get_wc_subscriptions_version() && version_compare( self::get_wc_subscriptions_version(), '2.0-beta-1', '>=' );
321
- }
322
-
323
-
324
/**
325
* Sets an order number on a subscriptions-created order
326
*
327
* @since 1.3
328
* @param \WC_Order $renewal_order the new renewal order object
329
- * @param \WC_Order $original_order the original order object (Subscriptions 2.0+: Subscription object)
330
- * @return void|\WC_Order Void for Subscriptions 1.5, renewal order instance for Subscriptions 2.0+
331
*/
332
- public function subscriptions_set_sequential_order_number( $renewal_order, $original_order ) {
333
334
- $order_post = get_post( $renewal_order->id );
335
- $this->set_sequential_order_number( $order_post->ID, $order_post );
336
-
337
- // after 2.0 this callback needs to return the renewal order
338
- if ( self::is_wc_subscriptions_version_gte_2_0() ) {
339
return $renewal_order;
340
}
341
}
342
343
@@ -508,12 +482,17 @@ class WC_Seq_Order_Number {
508
*/
509
public function render_update_notices() {
510
511
- echo '<div class="error"><p>The following plugin is inactive because it requires a newer version of WooCommerce:</p><ul>';
512
-
513
- printf( '<li>%1$s requires WooCommerce %2$s or newer</li>', 'Sequential Order Numbers', self::MINIMUM_WC_VERSION );
514
-
515
- echo '</ul><p>Please <a href="' . admin_url( 'update-core.php' ) . '">update WooCommerce&nbsp;&raquo;</a></p></div>';
516
517
}
518
519
@@ -573,6 +552,7 @@ class WC_Seq_Order_Number {
573
}
574
575
if ( $installed_version !== WC_Seq_Order_Number::VERSION ) {
576
$this->upgrade( $installed_version );
577
578
// new version number
5
* Description: Provides sequential order numbers for WooCommerce orders
6
* Author: SkyVerge
7
* Author URI: http://www.skyverge.com
8
+ * Version: 1.8.2
9
* Text Domain: woocommerce-sequential-order-numbers
10
* Domain Path: /i18n/languages/
11
*
32
33
34
/** version number */
35
+ const VERSION = '1.8.2';
36
37
/** @var \WC_Seq_Order_Number single instance of this plugin */
38
protected static $instance;
105
add_filter( 'woocommerce_shortcode_order_tracking_order_id', array( $this, 'find_order_by_order_number' ) );
106
107
// WC Subscriptions support
108
+ add_filter( 'wcs_renewal_order_meta_query', array( $this, 'subscriptions_remove_renewal_order_meta' ) );
109
+ add_filter( 'wcs_renewal_order_created', array( $this, 'subscriptions_set_sequential_order_number' ), 10, 2 );
110
111
if ( is_admin() ) {
112
add_filter( 'request', array( $this, 'woocommerce_custom_shop_order_orderby' ), 20 );
196
197
// attempt the query up to 3 times for a much higher success rate if it fails (due to Deadlock)
198
$success = false;
199
+
200
for ( $i = 0; $i < 3 && ! $success; $i++ ) {
201
202
// this seems to me like the safest way to avoid order number clashes
203
$query = $wpdb->prepare( "
204
INSERT INTO {$wpdb->postmeta} (post_id, meta_key, meta_value)
205
SELECT %d, '_order_number', IF( MAX( CAST( meta_value as UNSIGNED ) ) IS NULL, 1, MAX( CAST( meta_value as UNSIGNED ) ) + 1 )
292
/** 3rd Party Plugin Support ******************************************************/
293
294
295
/**
296
* Sets an order number on a subscriptions-created order
297
*
298
* @since 1.3
299
* @param \WC_Order $renewal_order the new renewal order object
300
+ * @param \WC_Subscription $subscription Post ID of a 'shop_subscription' post, or instance of a WC_Subscription object
301
+ * @return \WC_Order renewal order instance
302
*/
303
+ public function subscriptions_set_sequential_order_number( $renewal_order, $subscription ) {
304
305
+ // sanity check
306
+ if ( ! $renewal_order instanceof WC_Order ) {
307
return $renewal_order;
308
}
309
+
310
+ $order_post = get_post( self::get_order_prop( $renewal_order, 'id' ) );
311
+ $this->set_sequential_order_number( $order_post->ID, $order_post );
312
+
313
+ // after Subs 2.0 this callback needs to return the renewal order
314
+ return $renewal_order;
315
}
316
317
482
*/
483
public function render_update_notices() {
484
485
+ $message = sprintf(
486
+ /* translators: Placeholders: %1$s - plugin name; %2$s - WooCommerce version; %3$s, %5$s - <a> tags; %4$s - </a> tag */
487
+ esc_html__( '%1$s is inactive because it requires WooCommerce %2$s or newer. Please %3$supdate WooCommerce%4$s or run the %5$sWooCommerce database upgrade%4$s.', 'woocommerce-sequential-order-numbers' ),
488
+ 'Sequential Order Numbers',
489
+ self::MINIMUM_WC_VERSION,
490
+ '<a href="' . admin_url( 'update-core.php' ) . '">',
491
+ '</a>',
492
+ '<a href="' . admin_url( 'plugins.php?do_update_woocommerce=true' ) . '">'
493
+ );
494
495
+ printf( '<div class="error"><p>%s</p></div>', $message );
496
}
497
498
552
}
553
554
if ( $installed_version !== WC_Seq_Order_Number::VERSION ) {
555
+
556
$this->upgrade( $installed_version );
557
558
// new version number