Booster for WooCommerce - Version 1.7.5

Version Description

  • 08/10/2014 =
  • Feature Upgraded - Custom Price Labels - "Global labels" section extended: add after price, add before price, replace in price. Remove from price code also have been moved (and now in one place with all Global Labels) - before that it was called multiple times, fixed.
  • Dev - Custom Price Labels - "Migrate from Custom Price Labels (Pro)" tool added. Suggested by Paolo.
Download this release

Release Info

Developer algoritmika
Plugin Icon 128x128 Booster for WooCommerce
Version 1.7.5
Comparing to
See all releases

Code changes from version 1.7.4 to 1.7.5

includes/class-wcj-price-labels.php CHANGED
@@ -5,7 +5,7 @@
5
  * The WooCommerce Jetpack Price Labels class.
6
  *
7
  * @class WCJ_Price_Labels
8
- * @version 1.3.0
9
  * @category Class
10
  * @author Algoritmika Ltd.
11
  */
@@ -37,7 +37,7 @@ class WCJ_Price_Labels {
37
  '_variable' => 'Hide for variable product (main price) - ignored if product type is not variable',
38
  '_variation' => 'Hide for each variation of variable product - ignored if product type is not variable',
39
  //'_grouped' => 'Hide for grouped product',
40
- );
41
 
42
  /**
43
  * Constructor.
@@ -46,7 +46,17 @@ class WCJ_Price_Labels {
46
 
47
  // HOOKS
48
  // Main hooks
49
- if ( 'yes' === get_option( 'wcj_price_labels_enabled' ) ) {
 
 
 
 
 
 
 
 
 
 
50
 
51
  // Add meta box
52
  add_action( 'add_meta_boxes', array( $this, 'add_price_label_meta_box' ) );
@@ -95,6 +105,106 @@ class WCJ_Price_Labels {
95
  add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
96
  }
97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  /*public function custom_price1( $price, $product ) {
99
  echo '[' . $price . ']';
100
  return $price;
@@ -229,7 +339,25 @@ class WCJ_Price_Labels {
229
  return $price;
230
 
231
  if ( 'woocommerce_cart_item_price' === $current_filter_name )
232
- $product = $product['data'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
233
 
234
  foreach ( $this->custom_tab_sections as $custom_tab_section ) {
235
 
@@ -254,12 +382,7 @@ class WCJ_Price_Labels {
254
 
255
  //$price .= print_r( $labels_array );
256
  }
257
-
258
- // Global price labels - Remove text from price
259
- $text_to_remove = get_option( 'wcj_global_price_labels_remove_text' );
260
- if ( '' != $text_to_remove )
261
- $price = str_replace( $text_to_remove, '', $price );
262
-
263
  if ( $labels_array[ 'variation_enabled' ] == 'on' ) {
264
 
265
  if (
@@ -321,21 +444,81 @@ class WCJ_Price_Labels {
321
 
322
  array( 'title' => __( 'Global Custom Price Labels', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => __( 'This section lets you set price labels for all products globally.', 'woocommerce-jetpack' ), 'id' => 'wcj_global_price_labels_options' ),
323
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
324
  array(
325
  'title' => __( 'Remove from price', 'woocommerce-jetpack' ),
326
  //'desc' => __( 'Enable the Custom Price Labels feature', 'woocommerce-jetpack' ),
327
  'desc_tip' => __( 'Enter text to remove from all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
328
  'id' => 'wcj_global_price_labels_remove_text',
329
  'default' => '',
330
- 'type' => 'text',
331
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
332
  'custom_attributes'
333
  => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
334
  'css' => 'width:30%;min-width:300px;',
335
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
336
 
337
  array( 'type' => 'sectionend', 'id' => 'wcj_global_price_labels_options' ),
338
 
 
 
 
 
 
 
 
 
 
 
 
 
339
  );
340
 
341
  return $settings;
5
  * The WooCommerce Jetpack Price Labels class.
6
  *
7
  * @class WCJ_Price_Labels
8
+ * @version 1.4.0
9
  * @category Class
10
  * @author Algoritmika Ltd.
11
  */
37
  '_variable' => 'Hide for variable product (main price) - ignored if product type is not variable',
38
  '_variation' => 'Hide for each variation of variable product - ignored if product type is not variable',
39
  //'_grouped' => 'Hide for grouped product',
40
+ );
41
 
42
  /**
43
  * Constructor.
46
 
47
  // HOOKS
48
  // Main hooks
49
+ if ( 'yes' === get_option( 'wcj_price_labels_enabled' ) ) {
50
+
51
+ if ( is_admin() ) {
52
+
53
+ if ( 'yes' === get_option( 'wcj_migrate_from_custom_price_labels_enabled' ) ) {
54
+ // "Migrate from Custom Price Labels (Pro)" tool
55
+ add_filter( 'wcj_tools_tabs', array( $this, 'add_migrate_from_custom_price_labels_tool_tab' ), 100 );
56
+ add_action( 'wcj_tools_migrate_from_custom_price_labels', array( $this, 'create_migrate_from_custom_price_labels_tool_tab' ), 100 );
57
+ }
58
+ }
59
+
60
 
61
  // Add meta box
62
  add_action( 'add_meta_boxes', array( $this, 'add_price_label_meta_box' ) );
105
  add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
106
  }
107
 
108
+ /**
109
+ * Add tab to WooCommerce > Jetpack Tools.
110
+ */
111
+ public function add_migrate_from_custom_price_labels_tool_tab( $tabs ) {
112
+ $tabs[] = array(
113
+ 'id' => 'migrate_from_custom_price_labels',
114
+ 'title' => __( 'Migrate from Custom Price Labels', 'woocommerce-jetpack' ),
115
+ );
116
+ return $tabs;
117
+ }
118
+
119
+ /*public function get_migration_new_meta_name( $old_meta_name ) {
120
+ $new_meta_name = str_replace( 'simple_is_custom_pricing_label', 'wcj_price_labels', $old_meta_name );
121
+ return $new_meta_name;
122
+ }*/
123
+
124
+ public function create_migrate_from_custom_price_labels_tool_tab() {
125
+
126
+ echo __( '<h2>WooCommerce Jetpack - Migrate from Custom Price Labels (Pro)</h2>', 'woocommerce-jetpack' );
127
+
128
+ $migrate = isset( $_POST['migrate'] ) ? true : false;
129
+
130
+ $migration_data = array(
131
+ '_simple_is_custom_pricing_label' => '_wcj_price_labels_instead_enabled',
132
+ '_simple_is_custom_pricing_label_home' => '_wcj_price_labels_instead_home',
133
+ '_simple_is_custom_pricing_label_products' => '_wcj_price_labels_instead_products',
134
+ '_simple_is_custom_pricing_label_single' => '_wcj_price_labels_instead_single',
135
+ '_simple_is_custom_pricing_label_text' => '_wcj_price_labels_instead_text',
136
+
137
+ '_simple_is_custom_pricing_label_before' => '_wcj_price_labels_before_enabled',
138
+ '_simple_is_custom_pricing_label_before_home' => '_wcj_price_labels_before_home',
139
+ '_simple_is_custom_pricing_label_before_products' => '_wcj_price_labels_before_products',
140
+ '_simple_is_custom_pricing_label_before_single' => '_wcj_price_labels_before_single',
141
+ '_simple_is_custom_pricing_label_text_before' => '_wcj_price_labels_before_text',
142
+
143
+ '_simple_is_custom_pricing_label_between' => '_wcj_price_labels_between_enabled',
144
+ '_simple_is_custom_pricing_label_between_home' => '_wcj_price_labels_between_home',
145
+ '_simple_is_custom_pricing_label_between_products' => '_wcj_price_labels_between_products',
146
+ '_simple_is_custom_pricing_label_between_single' => '_wcj_price_labels_between_single',
147
+ '_simple_is_custom_pricing_label_text_between' => '_wcj_price_labels_between_text',
148
+
149
+ '_simple_is_custom_pricing_label_after' => '_wcj_price_labels_after_enabled',
150
+ '_simple_is_custom_pricing_label_after_home' => '_wcj_price_labels_after_home',
151
+ '_simple_is_custom_pricing_label_after_products' => '_wcj_price_labels_after_products',
152
+ '_simple_is_custom_pricing_label_after_single' => '_wcj_price_labels_after_single',
153
+ '_simple_is_custom_pricing_label_text_after' => '_wcj_price_labels_after_text',
154
+ );
155
+
156
+ $args = array(
157
+ 'post_type' => 'product',
158
+ 'posts_per_page' => -1,
159
+ );
160
+ $loop = new WP_Query( $args );
161
+ if ( $loop->have_posts() ) {
162
+ $html = '<pre><ul>';
163
+ while ( $loop->have_posts() ) : $loop->the_post();
164
+ $the_product_id = get_the_ID();
165
+ foreach ( $migration_data as $old_meta_name => $new_meta_name ) {
166
+ $old_meta_value = get_post_meta( $the_product_id, $old_meta_name, true );
167
+ if ( '' != $old_meta_value ) {
168
+ $new_meta_value = get_post_meta( $the_product_id, $new_meta_name, true );
169
+
170
+ if ( $new_meta_value !== $old_meta_value ) {
171
+
172
+ if ( true === $migrate ) {
173
+
174
+ $html .= '<li>' . __( 'Migrating: ', 'woocommerce-jetpack' ) . $old_meta_name . '[' . $old_meta_value . ']' . ' -> ' . $new_meta_name . '[' . $new_meta_value . ']. ';// . '</li>';
175
+ $html .= __( ' Result: ', 'woocommerce-jetpack' ) . update_post_meta( $the_product_id, $new_meta_name, $old_meta_value );
176
+ $html .= '</li>';
177
+ }
178
+ else { // just info
179
+ $html .= '<li>' . __( 'Found data to migrate: ', 'woocommerce-jetpack' ) . $old_meta_name . '[' . $old_meta_value . ']' . ' -> ' . $new_meta_name . '[' . $new_meta_value . ']' . '</li>';
180
+ }
181
+
182
+ /*if ( true === $do_delete_old ) {
183
+ $html .= '<li>' . __( 'Deleting: ', 'woocommerce-jetpack' ) . $old_meta_name . '[' . $old_meta_value . ']. ';// . '</li>';
184
+ $html .= __( ' Result: ', 'woocommerce-jetpack' ) . delete_post_meta( $the_product_id, $old_meta_name, $old_meta_value );
185
+ $html .= '</li>';
186
+ }*/
187
+ }
188
+ }
189
+ }
190
+ endwhile;
191
+ if ( '<pre><ul>' == $html )
192
+ $html = __( 'No data to migrate found', 'woocommerce-jetpack' );
193
+ else
194
+ $html .= '</ul></pre>';
195
+ } else {
196
+ $html = __( 'No products found', 'woocommerce-jetpack' );
197
+ }
198
+ wp_reset_postdata();
199
+
200
+ $form_html = '<form method="post" action="">';
201
+ $form_html .= '<p>Press button below to copy all labels from Custom Price Labels (Pro) plugin. Old labels will NOT be deleted. New labels will be overwritten.</p>';
202
+ $form_html .= '<p><input type="submit" name="migrate" value="Migrate" /></p>';
203
+ $form_html .= '</form>';
204
+
205
+ echo $form_html . $html;
206
+ }
207
+
208
  /*public function custom_price1( $price, $product ) {
209
  echo '[' . $price . ']';
210
  return $price;
339
  return $price;
340
 
341
  if ( 'woocommerce_cart_item_price' === $current_filter_name )
342
+ $product = $product['data'];
343
+
344
+ // Global price labels - Add text before price
345
+ $text_to_add_before = apply_filters( 'wcj_get_option_filter', '', get_option( 'wcj_global_price_labels_add_before_text' ) );
346
+ if ( '' != $text_to_add_before )
347
+ $price = $text_to_add_before . $price;
348
+ // Global price labels - Add text after price
349
+ $text_to_add_after = get_option( 'wcj_global_price_labels_add_after_text' );
350
+ if ( '' != $text_to_add_after )
351
+ $price = $price . $text_to_add_after;
352
+ // Global price labels - Remove text from price
353
+ $text_to_remove = apply_filters( 'wcj_get_option_filter', '', get_option( 'wcj_global_price_labels_remove_text' ) );
354
+ if ( '' != $text_to_remove )
355
+ $price = str_replace( $text_to_remove, '', $price );
356
+ // Global price labels - Remove text from price
357
+ $text_to_replace = apply_filters( 'wcj_get_option_filter', '', get_option( 'wcj_global_price_labels_replace_text' ) );
358
+ $text_to_replace_with = apply_filters( 'wcj_get_option_filter', '', get_option( 'wcj_global_price_labels_replace_with_text' ) );
359
+ if ( '' != $text_to_replace && '' != $text_to_replace_with )
360
+ $price = str_replace( $text_to_replace, $text_to_replace_with, $price );
361
 
362
  foreach ( $this->custom_tab_sections as $custom_tab_section ) {
363
 
382
 
383
  //$price .= print_r( $labels_array );
384
  }
385
+
 
 
 
 
 
386
  if ( $labels_array[ 'variation_enabled' ] == 'on' ) {
387
 
388
  if (
444
 
445
  array( 'title' => __( 'Global Custom Price Labels', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => __( 'This section lets you set price labels for all products globally.', 'woocommerce-jetpack' ), 'id' => 'wcj_global_price_labels_options' ),
446
 
447
+ array(
448
+ 'title' => __( 'Add before the price', 'woocommerce-jetpack' ),
449
+ 'desc_tip' => __( 'Enter text to add before all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
450
+ 'id' => 'wcj_global_price_labels_add_before_text',
451
+ 'default' => '',
452
+ 'type' => 'textarea',
453
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
454
+ 'custom_attributes'
455
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
456
+ 'css' => 'width:30%;min-width:300px;',
457
+ ),
458
+
459
+ array(
460
+ 'title' => __( 'Add after the price', 'woocommerce-jetpack' ),
461
+ 'desc_tip' => __( 'Enter text to add after all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
462
+ 'id' => 'wcj_global_price_labels_add_after_text',
463
+ 'default' => '',
464
+ 'type' => 'textarea',
465
+ /*'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
466
+ 'custom_attributes'
467
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),*/
468
+ 'css' => 'width:30%;min-width:300px;',
469
+ ),
470
+
471
  array(
472
  'title' => __( 'Remove from price', 'woocommerce-jetpack' ),
473
  //'desc' => __( 'Enable the Custom Price Labels feature', 'woocommerce-jetpack' ),
474
  'desc_tip' => __( 'Enter text to remove from all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
475
  'id' => 'wcj_global_price_labels_remove_text',
476
  'default' => '',
477
+ 'type' => 'textarea',
478
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
479
  'custom_attributes'
480
  => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
481
  'css' => 'width:30%;min-width:300px;',
482
  ),
483
+
484
+ array(
485
+ 'title' => __( 'Replace in price', 'woocommerce-jetpack' ),
486
+ 'desc_tip' => __( 'Enter text to replace in all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
487
+ 'id' => 'wcj_global_price_labels_replace_text',
488
+ 'default' => '',
489
+ 'type' => 'textarea',
490
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
491
+ 'custom_attributes'
492
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
493
+ 'css' => 'width:30%;min-width:300px;',
494
+ ),
495
+
496
+ array(
497
+ 'title' => '',
498
+ 'desc_tip' => __( 'Enter text to replace with. Leave blank to disable.', 'woocommerce-jetpack' ),
499
+ 'id' => 'wcj_global_price_labels_replace_with_text',
500
+ 'default' => '',
501
+ 'type' => 'textarea',
502
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
503
+ 'custom_attributes'
504
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
505
+ 'css' => 'width:30%;min-width:300px;',
506
+ ),
507
 
508
  array( 'type' => 'sectionend', 'id' => 'wcj_global_price_labels_options' ),
509
 
510
+ array( 'title' => __( 'Migrate from Custom Price Labels (Pro) Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => __( 'This section lets you enable "Migrate from Custom Price Labels (Pro)" tool.', 'woocommerce-jetpack' ), 'id' => 'wcj_migrate_from_custom_price_labels_options' ),
511
+
512
+ array(
513
+ 'title' => __( 'Enable', 'woocommerce-jetpack' ),
514
+ 'id' => 'wcj_migrate_from_custom_price_labels_enabled',
515
+ 'default' => 'no',
516
+ 'type' => 'checkbox',
517
+ ),
518
+
519
+ array( 'type' => 'sectionend', 'id' => 'wcj_migrate_from_custom_price_labels_options' ),
520
+
521
+
522
  );
523
 
524
  return $settings;
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://algoritmika.com/donate/
4
  Tags: woocommerce,woocommerce jetpack,custom price labels,call for price,currency symbol,remove sorting,remove old product slugs,add to cart text,order number,sequential order numbering,email pdf invoice,pdf invoice,pdf invoices,already in cart,empty cart,redirect to checkout,minimum order amount,customize checkout fields,checkout fields,email,customize product tabs,product tabs,related products number,empty cart,redirect add to cart,redirect to checkout,product already in cart,custom payment gateway,payment gateway icon,auto-complete all orders,custom order statuses,custom order status,remove text from price,custom css,hide categories count,hide subcategories count,hide category count,hide subcategory count,display total sales
5
  Requires at least: 3.9.1
6
  Tested up to: 4.0
7
- Stable tag: 1.7.4
8
  License: GNU General Public License v3.0
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -68,7 +68,8 @@ Please let us know if you want anything added to list by <a href="http://woojetp
68
 
69
  If you wish that some task would go up the queue to make it faster, please contact us by <a href="http://woojetpack.com/contact-us/">filling this form</a>. We are listening carefully to our users!
70
 
71
- = 1.7.5 - 08/10/2014 =
 
72
  * New Feature - Smart Reports - Various reports based on products prices, sales, stock.
73
  * Upgrade Feature - PDF Invoices - International date formats. Idea by Jean-Marc.
74
  * Upgrade Feature - Shipping - Advance free shipping - Free shipping for multiple country/places. Each country/places different prices. Idea by LQTOYS.
@@ -82,7 +83,6 @@ If you wish that some task would go up the queue to make it faster, please conta
82
  * Upgrade Feature - Shipping - Add "Custom Shipping Method".
83
  * Upgrade Feature - PDF Invoices - Separate numbering for invoices option, then can add `add_order_number_to_invoice` option.
84
  * Upgrade Feature - Custom Price Labels - Add price countdown.
85
- * Upgrade Feature - Custom Price Labels - Add "global labels".
86
  * Upgrade Feature - Product Info - Add widget.
87
  * Upgrade Feature - Product Info - Today's deal.
88
  * Upgrade Feature - Product Info - Images for variations.
@@ -94,7 +94,7 @@ If you wish that some task would go up the queue to make it faster, please conta
94
  * Dev - Custom Price Labels - Rearrange settings in product edit (something like `postbox`es).
95
 
96
  = 1.9.0 - 20/10/2014 =
97
- * Upgrade Feature - Custom Price Labels - Add "local remove".
98
  * Upgrade Feature - Orders - Bulk orders i.e. "Buy More - Pay Less". Start from global discount for all products, i.e. cart discount; later - discounts for individual products.
99
  * Upgrade Feature - Custom Price Labels - Add different labels for archives, single, homepage, related. Add option to select which price hooks to use. Different labels for variable and variation.
100
  * Upgrade Feature - Custom Price Labels - Custom free price.
@@ -114,10 +114,15 @@ If you wish that some task would go up the queue to make it faster, please conta
114
  * Dev - Move all to `WooCommerce > Jetpack` menu.
115
  * Dev - Major source code, documentation, locking mechanism etc. recheck.
116
  Maybe rename "Features" to "Modules".
117
- * Dev - Add "Restore Defaults" option (will need to delete/reset all posts' some meta (e.g. price labels) also).
118
 
119
  == Changelog ==
120
 
 
 
 
 
 
121
  = 1.7.4 - 07/10/2014 =
122
  * Fix - Emails - Bcc and Cc options not working, fixed. Reported by Helpmiphone.
123
  * Fix - Orders - Minimum order amount - "Stop customer from seeing the Checkout page..." option was not working properly: was redirecting to Cart after successful checkout, fixed.
@@ -136,7 +141,7 @@ If you wish that some task would go up the queue to make it faster, please conta
136
 
137
  = 1.7.0 - 02/10/2014 =
138
  * Fix - Payment Gateways - Instructions were not showing (suggested by Jen), fixed.
139
- * New Feature - Product Listings - Options added (separately for "Shop" and "Categories" pages): show/hide categories count, exclude categories (idea by Xavier), show/hide empty categories.
140
  This will work only when "Shop Page Display" and/or "Default Category Display" in "WooCommerce > Settings > Products > Product Listings" is set to "Show subcategories" or "Show both".
141
  All new options fields are also added (duplicated) to "WooCommerce > Settings > Products > Product Listings".
142
  * Feature Upgraded - Payment Gateways - Instructions for emails option added (i.e. separated from instructions on thank you page).
4
  Tags: woocommerce,woocommerce jetpack,custom price labels,call for price,currency symbol,remove sorting,remove old product slugs,add to cart text,order number,sequential order numbering,email pdf invoice,pdf invoice,pdf invoices,already in cart,empty cart,redirect to checkout,minimum order amount,customize checkout fields,checkout fields,email,customize product tabs,product tabs,related products number,empty cart,redirect add to cart,redirect to checkout,product already in cart,custom payment gateway,payment gateway icon,auto-complete all orders,custom order statuses,custom order status,remove text from price,custom css,hide categories count,hide subcategories count,hide category count,hide subcategory count,display total sales
5
  Requires at least: 3.9.1
6
  Tested up to: 4.0
7
+ Stable tag: 1.7.5
8
  License: GNU General Public License v3.0
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
68
 
69
  If you wish that some task would go up the queue to make it faster, please contact us by <a href="http://woojetpack.com/contact-us/">filling this form</a>. We are listening carefully to our users!
70
 
71
+ = 1.7.6 - 09/10/2014 =
72
+ * Tweak - Custom Price Labels - Add "Migrate from Custom Price Labels" tool to tools dashboard.
73
  * New Feature - Smart Reports - Various reports based on products prices, sales, stock.
74
  * Upgrade Feature - PDF Invoices - International date formats. Idea by Jean-Marc.
75
  * Upgrade Feature - Shipping - Advance free shipping - Free shipping for multiple country/places. Each country/places different prices. Idea by LQTOYS.
83
  * Upgrade Feature - Shipping - Add "Custom Shipping Method".
84
  * Upgrade Feature - PDF Invoices - Separate numbering for invoices option, then can add `add_order_number_to_invoice` option.
85
  * Upgrade Feature - Custom Price Labels - Add price countdown.
 
86
  * Upgrade Feature - Product Info - Add widget.
87
  * Upgrade Feature - Product Info - Today's deal.
88
  * Upgrade Feature - Product Info - Images for variations.
94
  * Dev - Custom Price Labels - Rearrange settings in product edit (something like `postbox`es).
95
 
96
  = 1.9.0 - 20/10/2014 =
97
+ * Upgrade Feature - Custom Price Labels - ?Add "local remove".
98
  * Upgrade Feature - Orders - Bulk orders i.e. "Buy More - Pay Less". Start from global discount for all products, i.e. cart discount; later - discounts for individual products.
99
  * Upgrade Feature - Custom Price Labels - Add different labels for archives, single, homepage, related. Add option to select which price hooks to use. Different labels for variable and variation.
100
  * Upgrade Feature - Custom Price Labels - Custom free price.
114
  * Dev - Move all to `WooCommerce > Jetpack` menu.
115
  * Dev - Major source code, documentation, locking mechanism etc. recheck.
116
  Maybe rename "Features" to "Modules".
117
+ * Dev - Add "Restore Defaults" option (will also need to delete/reset some meta data (e.g. price labels) for all posts).
118
 
119
  == Changelog ==
120
 
121
+ = 1.7.5 - 08/10/2014 =
122
+ * Feature Upgraded - Custom Price Labels - "Global labels" section extended: `add after price`, `add before price`, `replace in price`.
123
+ `Remove from price` code also have been moved (and now in one place with all Global Labels) - before that it was called multiple times, fixed.
124
+ * Dev - Custom Price Labels - "Migrate from Custom Price Labels (Pro)" tool added. Suggested by Paolo.
125
+
126
  = 1.7.4 - 07/10/2014 =
127
  * Fix - Emails - Bcc and Cc options not working, fixed. Reported by Helpmiphone.
128
  * Fix - Orders - Minimum order amount - "Stop customer from seeing the Checkout page..." option was not working properly: was redirecting to Cart after successful checkout, fixed.
141
 
142
  = 1.7.0 - 02/10/2014 =
143
  * Fix - Payment Gateways - Instructions were not showing (suggested by Jen), fixed.
144
+ * Feature - Product Listings - Options added (separately for "Shop" and "Categories" pages): show/hide categories count, exclude categories (idea by Xavier), show/hide empty categories.
145
  This will work only when "Shop Page Display" and/or "Default Category Display" in "WooCommerce > Settings > Products > Product Listings" is set to "Show subcategories" or "Show both".
146
  All new options fields are also added (duplicated) to "WooCommerce > Settings > Products > Product Listings".
147
  * Feature Upgraded - Payment Gateways - Instructions for emails option added (i.e. separated from instructions on thank you page).
woocommerce-jetpack.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WooCommerce Jetpack
4
  Plugin URI: http://woojetpack.com
5
  Description: Supercharge your WooCommerce site with these awesome powerful features.
6
- Version: 1.7.4
7
  Author: Algoritmika Ltd
8
  Author URI: http://www.algoritmika.com
9
  Copyright: © 2014 Algoritmika Ltd.
3
  Plugin Name: WooCommerce Jetpack
4
  Plugin URI: http://woojetpack.com
5
  Description: Supercharge your WooCommerce site with these awesome powerful features.
6
+ Version: 1.7.5
7
  Author: Algoritmika Ltd
8
  Author URI: http://www.algoritmika.com
9
  Copyright: © 2014 Algoritmika Ltd.