Booster for WooCommerce - Version 4.4.0

Version Description

  • 24/06/2019 =
  • Fix - PRODUCTS - Product Addons - Add price with correct currency value on change_price() function using maybe_convert_currency().
  • Fix - PRODUCTS - Product Input Fields - Fix URL on variable uploaded files.
  • Fix - PRODUCTS - Product Input Fields - Check if order is null on add_files_to_email_attachments().
  • Fix - PRODUCTS - Product MSRP - Improve section detection on display() function, i.e if it's on "single" or "archive".
  • Fix - CART & CHECKOUT - Checkout Custom Fields - Fix problem where select and radio fields values are lost on order status change.
  • Fix - SHIPPING & ORDERS - Custom Shipping - Check if add_table_rows() isn't getting called multiple times.
  • Fix - SHIPPING & ORDERS - Custom Shipping - Fix module for "Load Modules on Init Hook" option.
  • Fix - SHIPPING & ORDERS - Order Quantities - Fix problem preventing _wcj_order_quantities_min meta from being saved on variable products.
  • Fix - SHIPPING & ORDERS - Order Quantities - Fix problem where Quantity steps is checked against parent variation id instead of variation id.
  • Fix - SHIPPING & ORDERS - Order Quantities - Check _wcj_order_quantities_step from parent id if variation doesn't have the _wcj_order_quantities_step meta.
  • Fix - Shortcodes - Orders - "A non-numeric value encountered..." notice fixed in [wcj_order_total_width], [wcj_order_total_height], [wcj_order_total_length], [wcj_order_total_weight] shortcodes.
  • Fix - Functions - Admin - Check if object is from WC_Product class on wcj_get_ajax_settings().
  • Dev - PRICES & CURRENCIES - Currency Exchange Rates - Add option to set API key for Free Currency Converter API server.
  • Dev - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Add new option to make it compatible with WooCommerce import tool, preventing it from converting some uppercase meta to lowercase.
  • Dev - PRICES & CURRENCIES - Multicurrency Product Base Price - Improve compatibility with "Price Filter" widget.
  • Dev - PRICES & CURRENCIES - Multicurrency Product Base Price - Add option to make it compatible with third party "Price Filter" widgets.
  • Dev - PRICES & CURRENCIES - Offer Your Price - Exclude - "Out of stock" option added.
  • Dev - PRICES & CURRENCIES - Offer Your Price - Now collecting more customer's data: User IP (%user_ip%) and User Agent (%user_agent%).
  • Dev - PRICES & CURRENCIES - Offer Your Price - "Offer Price History Meta Box Columns" option added.
  • Dev - PRICES & CURRENCIES - Prices and Currencies by Country - Add option "Price Format Method" to control the moment the "Rounding" and "Pretty Prices" will be applied.
  • Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - "Advanced: Price Changes" option added.
  • Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - Compatibility with "WPC Product Bundles for WooCommerce" plugin added (and "Product Bundles" option added).
  • Dev - PRODUCTS - Product MSRP - Create option to add compatibility with Multicurrency module.
  • Dev - PAYMENT GATEWAYS - Gateways Min/Max Amounts - Create option to add compatibility with Multicurrency module.
  • Dev - EMAILS & MISC. - Email Verification - Create new option preventing users from login in any situation. It is necessary to fix automatic login in some cases, like after registration on checkout.
  • Dev - EMAILS & MISC. - Export - Forcing date format in datepicker to yy-mm-dd.
  • Dev - Dashboard - Manage Settings - "Load Modules on Init Hook" option added. It will load the locale appropriately if users change it from the profile page.
  • Dev - Shortcodes - Add possibility for multiple location and not_location attributes with comma values, like location="US, CA, NZ, AU".
  • Dev - Shortcodes - Orders - [wcj_order_items_table] - product_shipping_class and product_shipping_class_id columns added.
  • Dev - Functions - Exchange Rates - Update Free Currency Converter API to v6 and read API key from settings.
  • Dev - Functions - General - Add wcj_get_cart_item_quantities() to get cart items quantities, with correct variation id, where native function from WooCommerce fails getting only the parent id if Manage Stock option is enabled.
  • Dev - Functions - Price and Currency - Create wcj_price_by_country_pretty_price() and wcj_price_by_country_rounding() functions.
  • Tested up to: 5.2.
Download this release

Release Info

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

Code changes from version 4.3.1 to 4.4.0

Files changed (37) hide show
  1. includes/admin/class-wc-settings-jetpack.php +8 -1
  2. includes/class-wcj-checkout-custom-fields.php +23 -22
  3. includes/class-wcj-emails-verification.php +24 -2
  4. includes/class-wcj-export-import.php +6 -4
  5. includes/class-wcj-multicurrency-product-base-price.php +42 -18
  6. includes/class-wcj-multicurrency.php +44 -2
  7. includes/class-wcj-offer-price.php +90 -26
  8. includes/class-wcj-order-quantities.php +43 -9
  9. includes/class-wcj-payment-gateways-min-max.php +11 -2
  10. includes/class-wcj-product-addons.php +3 -3
  11. includes/class-wcj-product-msrp.php +29 -4
  12. includes/class-wcj-product-open-pricing.php +37 -3
  13. includes/class-wcj-shipping.php +12 -4
  14. includes/classes/class-wcj-module.php +12 -4
  15. includes/classes/class-wcj-shortcodes.php +17 -4
  16. includes/core/wcj-loader.php +37 -13
  17. includes/functions/wcj-functions-admin.php +6 -4
  18. includes/functions/wcj-functions-exchange-rates.php +18 -6
  19. includes/functions/wcj-functions-general.php +28 -1
  20. includes/functions/wcj-functions-price-currency.php +66 -23
  21. includes/input-fields/class-wcj-product-input-fields-core.php +8 -4
  22. includes/price-by-country/class-wcj-price-by-country-core.php +31 -2
  23. includes/settings/wcj-settings-currency-exchange-rates.php +17 -1
  24. includes/settings/wcj-settings-emails-verification.php +9 -1
  25. includes/settings/wcj-settings-multicurrency-base-price.php +14 -5
  26. includes/settings/wcj-settings-multicurrency.php +9 -1
  27. includes/settings/wcj-settings-offer-price.php +27 -2
  28. includes/settings/wcj-settings-payment-gateways-min-max.php +17 -1
  29. includes/settings/wcj-settings-price-by-country.php +24 -4
  30. includes/settings/wcj-settings-product-msrp.php +17 -1
  31. includes/settings/wcj-settings-product-open-pricing.php +21 -1
  32. includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php +7 -4
  33. includes/shortcodes/class-wcj-shortcodes-order-items.php +9 -2
  34. includes/shortcodes/class-wcj-shortcodes-orders.php +6 -18
  35. langs/woocommerce-jetpack.pot +509 -333
  36. readme.txt +39 -4
  37. woocommerce-jetpack.php +2 -2
includes/admin/class-wc-settings-jetpack.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings
4
  *
5
- * @version 4.1.0
6
  * @since 1.0.0
7
  * @author Algoritmika Ltd.
8
  */
@@ -471,6 +471,13 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
471
  'id' => 'wcj_autoload_options',
472
  'default' => 'yes',
473
  ),
 
 
 
 
 
 
 
474
  array(
475
  'title' => __( 'Use List Instead of Comma Separated Text for Products in Settings', 'woocommerce-jetpack' ),
476
  'type' => 'checkbox',
2
  /**
3
  * Booster for WooCommerce - Settings
4
  *
5
+ * @version 4.4.0
6
  * @since 1.0.0
7
  * @author Algoritmika Ltd.
8
  */
471
  'id' => 'wcj_autoload_options',
472
  'default' => 'yes',
473
  ),
474
+ array(
475
+ 'title' => __( 'Load Modules on Init Hook', 'woocommerce-jetpack' ),
476
+ 'type' => 'checkbox',
477
+ 'desc' => __( 'Choose if you want to load Booster Modules on Init hook.', 'woocommerce-jetpack' ).' '.__( 'It will load the locale appropriately if users change it from the profile page.', 'woocommerce-jetpack' ),
478
+ 'id' => 'wcj_load_modules_on_init',
479
+ 'default' => 'no',
480
+ ),
481
  array(
482
  'title' => __( 'Use List Instead of Comma Separated Text for Products in Settings', 'woocommerce-jetpack' ),
483
  'type' => 'checkbox',
includes/class-wcj-checkout-custom-fields.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Checkout Custom Fields
4
  *
5
- * @version 4.3.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
@@ -28,8 +28,8 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
28
 
29
  if ( $this->is_enabled() ) {
30
  add_filter( 'woocommerce_checkout_fields', array( $this, 'add_custom_checkout_fields' ), PHP_INT_MAX );
31
- add_action( 'woocommerce_admin_billing_fields', array( $this, 'add_custom_billing_fields_to_admin_order_display' ), PHP_INT_MAX );
32
- add_action( 'woocommerce_admin_shipping_fields', array( $this, 'add_custom_shipping_fields_to_admin_order_display' ), PHP_INT_MAX );
33
  add_action( 'woocommerce_admin_order_data_after_shipping_address', array( $this, 'add_custom_order_and_account_fields_to_admin_order_display' ), PHP_INT_MAX );
34
  if ( 'yes' === get_option( 'wcj_checkout_custom_fields_add_to_order_received', 'yes' ) ) {
35
  add_action( 'woocommerce_order_details_after_order_table', array( $this, 'add_custom_fields_to_view_order_and_thankyou_pages' ), PHP_INT_MAX );
@@ -336,7 +336,7 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
336
  /**
337
  * add_woocommerce_admin_fields.
338
  *
339
- * @version 4.3.0
340
  * @todo converting from before version 2.3.0: section?
341
  * @todo add alternative way of displaying fields (e.g. new meta box), so we have more control over displaying fields' values (e.g. line breaks)
342
  */
@@ -388,24 +388,25 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
388
  update_post_meta( get_the_ID(), '_' . $section . '_' . $the_key_label, $the_meta['label'] );
389
  }
390
  }
391
- $fields[ $the_key ] = array(
392
- 'type' => $the_type,
393
- 'label' => ( '' != get_post_meta( get_the_ID(), '_' . $section . '_' . $the_key_label, true ) ) ?
394
- get_post_meta( get_the_ID(), '_' . $section . '_' . $the_key_label, true ) :
395
- get_option( 'wcj_checkout_custom_field_label_' . $i ),
396
- 'show' => true,
397
- 'class' => $the_class,
398
- 'wrapper_class' => 'form-field-wide',
399
- );
400
- if ( isset( $options ) ) {
401
- // Displays checkout field value, not the key
402
- add_filter( "woocommerce_order_get__{$section}_{$the_key}", function ( $name ) use ( $options ) {
403
- if ( isset( $options[ $name ] ) ) {
404
- return $options[ $name ];
405
- }
406
- return $name;
407
- } );
408
- $fields[ $the_key ]['options'] = $options;
 
409
  }
410
  }
411
  }
2
  /**
3
  * Booster for WooCommerce - Module - Checkout Custom Fields
4
  *
5
+ * @version 4.4.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
28
 
29
  if ( $this->is_enabled() ) {
30
  add_filter( 'woocommerce_checkout_fields', array( $this, 'add_custom_checkout_fields' ), PHP_INT_MAX );
31
+ add_filter( 'woocommerce_admin_billing_fields', array( $this, 'add_custom_billing_fields_to_admin_order_display' ), PHP_INT_MAX );
32
+ add_filter( 'woocommerce_admin_shipping_fields', array( $this, 'add_custom_shipping_fields_to_admin_order_display' ), PHP_INT_MAX );
33
  add_action( 'woocommerce_admin_order_data_after_shipping_address', array( $this, 'add_custom_order_and_account_fields_to_admin_order_display' ), PHP_INT_MAX );
34
  if ( 'yes' === get_option( 'wcj_checkout_custom_fields_add_to_order_received', 'yes' ) ) {
35
  add_action( 'woocommerce_order_details_after_order_table', array( $this, 'add_custom_fields_to_view_order_and_thankyou_pages' ), PHP_INT_MAX );
336
  /**
337
  * add_woocommerce_admin_fields.
338
  *
339
+ * @version 4.4.0
340
  * @todo converting from before version 2.3.0: section?
341
  * @todo add alternative way of displaying fields (e.g. new meta box), so we have more control over displaying fields' values (e.g. line breaks)
342
  */
388
  update_post_meta( get_the_ID(), '_' . $section . '_' . $the_key_label, $the_meta['label'] );
389
  }
390
  }
391
+ if ( ! isset( $_POST[ '_' . $section . '_' . $the_key ] ) ) {
392
+ $fields[ $the_key ] = array(
393
+ 'type' => $the_type,
394
+ 'label' => ( '' != get_post_meta( get_the_ID(), '_' . $section . '_' . $the_key_label, true ) ) ?
395
+ get_post_meta( get_the_ID(), '_' . $section . '_' . $the_key_label, true ) :
396
+ get_option( 'wcj_checkout_custom_field_label_' . $i ),
397
+ 'show' => true,
398
+ 'class' => $the_class,
399
+ 'wrapper_class' => 'form-field-wide',
400
+ );
401
+ if ( isset( $options ) ) {
402
+ add_filter( "woocommerce_order_get__{$section}_{$the_key}", function ( $name ) use ( $options ) {
403
+ if ( isset( $options[ $name ] ) ) {
404
+ return $options[ $name ];
405
+ }
406
+ return $name;
407
+ } );
408
+ $fields[ $the_key ]['options'] = $options;
409
+ }
410
  }
411
  }
412
  }
includes/class-wcj-emails-verification.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Email Verification
4
  *
5
- * @version 3.9.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  */
@@ -16,7 +16,7 @@ class WCJ_Email_Verification extends WCJ_Module {
16
  /**
17
  * Constructor.
18
  *
19
- * @version 3.1.0
20
  * @since 2.8.0
21
  */
22
  function __construct() {
@@ -34,6 +34,28 @@ class WCJ_Email_Verification extends WCJ_Module {
34
  add_action( 'user_register', array( $this, 'reset_and_mail_activation_link' ), PHP_INT_MAX );
35
  add_filter( 'manage_users_columns', array( $this, 'add_verified_email_column' ) );
36
  add_filter( 'manage_users_custom_column', array( $this, 'render_verified_email_column' ), 10, 3 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  }
38
  }
39
 
2
  /**
3
  * Booster for WooCommerce - Module - Email Verification
4
  *
5
+ * @version 4.4.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  */
16
  /**
17
  * Constructor.
18
  *
19
+ * @version 4.4.0
20
  * @since 2.8.0
21
  */
22
  function __construct() {
34
  add_action( 'user_register', array( $this, 'reset_and_mail_activation_link' ), PHP_INT_MAX );
35
  add_filter( 'manage_users_columns', array( $this, 'add_verified_email_column' ) );
36
  add_filter( 'manage_users_custom_column', array( $this, 'render_verified_email_column' ), 10, 3 );
37
+ add_action( 'set_current_user', array( $this, 'prevent_user_login') );
38
+ }
39
+ }
40
+
41
+ /**
42
+ * Prevents user login.
43
+ *
44
+ * @version 4.4.0
45
+ * @since 4.4.0
46
+ */
47
+ function prevent_user_login() {
48
+ global $current_user;
49
+ if (
50
+ 'yes' === get_option( 'wcj_emails_verification_prevent_user_login', 'no' ) &&
51
+ 0 != $current_user->ID
52
+ ) {
53
+ setup_userdata( $current_user->ID );
54
+ $user_data = get_userdata( $current_user->ID );
55
+ $response = $this->check_if_user_email_is_verified( $user_data );
56
+ if ( is_wp_error( $response ) ) {
57
+ wp_logout();
58
+ }
59
  }
60
  }
61
 
includes/class-wcj-export-import.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Export
4
  *
5
- * @version 3.0.0
6
  * @since 2.5.4
7
  * @author Algoritmika Ltd.
8
  */
@@ -219,8 +219,9 @@ class WCJ_Export_Import extends WCJ_Module {
219
  /**
220
  * export_date_fields.
221
  *
222
- * @version 3.0.0
223
  * @since 3.0.0
 
224
  * @todo [dev] mark current (i.e. active) link (if exists)
225
  */
226
  function export_date_fields( $tool_id ) {
@@ -238,13 +239,14 @@ class WCJ_Export_Import extends WCJ_Module {
238
  $predefined_ranges[] = '<a href="' . $link . '">' . $range_data['title'] . '</a>';
239
  }
240
  $predefined_ranges = implode( ' | ', $predefined_ranges );
 
241
  $date_input_fields = '<form method="get" action="">' .
242
  '<input type="hidden" name="page" value="wcj-tools">' .
243
  '<input type="hidden" name="tab" value="export_' . $tool_id . '">' .
244
  '<strong>' . __( 'Custom:', 'woocommerce-jetpack' ) . '</strong>' . ' ' .
245
- '<input name="start_date" id="start_date" type="text" display="date" value="' . $current_start_date . '">' .
246
  '<strong>' . ' - ' . '</strong>' .
247
- '<input name="end_date" id="end_date" type="text" display="date" value="' . $current_end_date . '">' .
248
  ' ' .
249
  '<button class="button-primary" name="range" id="range" type="submit" value="custom">' . __( 'Go', 'woocommerce-jetpack' ) . '</button>' .
250
  '</form>';
2
  /**
3
  * Booster for WooCommerce - Module - Export
4
  *
5
+ * @version 4.4.0
6
  * @since 2.5.4
7
  * @author Algoritmika Ltd.
8
  */
219
  /**
220
  * export_date_fields.
221
  *
222
+ * @version 4.4.0
223
  * @since 3.0.0
224
+ * @todo [dev] maybe make `$dateformat` optional
225
  * @todo [dev] mark current (i.e. active) link (if exists)
226
  */
227
  function export_date_fields( $tool_id ) {
239
  $predefined_ranges[] = '<a href="' . $link . '">' . $range_data['title'] . '</a>';
240
  }
241
  $predefined_ranges = implode( ' | ', $predefined_ranges );
242
+ $dateformat = ' dateformat="yy-mm-dd"';
243
  $date_input_fields = '<form method="get" action="">' .
244
  '<input type="hidden" name="page" value="wcj-tools">' .
245
  '<input type="hidden" name="tab" value="export_' . $tool_id . '">' .
246
  '<strong>' . __( 'Custom:', 'woocommerce-jetpack' ) . '</strong>' . ' ' .
247
+ '<input name="start_date" id="start_date" type="text" display="date"' . $dateformat . ' value="' . $current_start_date . '">' .
248
  '<strong>' . ' - ' . '</strong>' .
249
+ '<input name="end_date" id="end_date" type="text" display="date"' . $dateformat . ' value="' . $current_end_date . '">' .
250
  ' ' .
251
  '<button class="button-primary" name="range" id="range" type="submit" value="custom">' . __( 'Go', 'woocommerce-jetpack' ) . '</button>' .
252
  '</form>';
includes/class-wcj-multicurrency-product-base-price.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Multicurrency Product Base Price
4
  *
5
- * @version 4.3.1
6
  * @since 2.4.8
7
  * @author Algoritmika Ltd.
8
  */
@@ -48,7 +48,7 @@ if ( ! class_exists( 'WCJ_Multicurrency_Base_Price' ) ) :
48
  /**
49
  * Adds Compatibility with WooCommerce Price Filter Widget.
50
  *
51
- * @version 4.3.1
52
  * @since 4.3.1
53
  */
54
  function handle_price_filter_widget_compatibility() {
@@ -59,7 +59,36 @@ if ( ! class_exists( 'WCJ_Multicurrency_Base_Price' ) ) :
59
  add_action( 'updated_option', array( $this, 'update_products_base_price_on_exchange_rate_change' ), 10, 3 );
60
  add_action( 'updated_post_meta', array( $this, 'handle_price_filter_compatibility_flag_on_base_price_update' ), 10, 4 );
61
  add_action( 'updated_post_meta', array( $this, 'handle_price_filter_compatibility_flag_on_base_price_currency_update' ), 10, 4 );
62
- add_filter( 'woocommerce_price_filter_sql', array($this,'change_woocommerce_price_filter_sql'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  }
64
 
65
  /**
@@ -67,7 +96,7 @@ if ( ! class_exists( 'WCJ_Multicurrency_Base_Price' ) ) :
67
  *
68
  * All in all, it creates the min and max from '_price' meta, and from '_wcj_multicurrency_base_price' if there is the '_wcj_multicurrency_base_price_comp_pf' meta
69
  *
70
- * @version 4.3.1
71
  * @since 4.3.1
72
  *
73
  * @see WC_Widget_Price_Filter::get_filtered_price()
@@ -76,9 +105,15 @@ if ( ! class_exists( 'WCJ_Multicurrency_Base_Price' ) ) :
76
  * @return string
77
  */
78
  function change_woocommerce_price_filter_sql($sql){
79
- if ( 'no' === get_option( 'wcj_multicurrency_base_price_advanced_price_filter_comp', 'no' ) ) {
 
 
 
 
 
80
  return $sql;
81
  }
 
82
  global $wpdb;
83
  $args = wc()->query->get_main_query()->query_vars;
84
  $tax_query = isset( $args['tax_query'] ) ? $args['tax_query'] : array();
@@ -322,7 +357,7 @@ if ( ! class_exists( 'WCJ_Multicurrency_Base_Price' ) ) :
322
  /**
323
  * Updates '_wcj_multicurrency_base_price' meta.
324
  *
325
- * @version 4.3.1
326
  * @since 4.3.1
327
  *
328
  * @param $product
@@ -337,19 +372,8 @@ if ( ! class_exists( 'WCJ_Multicurrency_Base_Price' ) ) :
337
  if ( ! is_a( $product, 'WC_Product' ) ) {
338
  return false;
339
  }
340
- $multicurrency_base_price_currency = get_post_meta( $product->get_id(), '_' . 'wcj_multicurrency_base_price_currency', true );
341
- if ( $multicurrency_base_price_currency === get_option( 'woocommerce_currency' ) ) {
342
- update_post_meta( $product->get_id(), '_wcj_multicurrency_base_price', get_post_meta( $product->get_id(), '_price', true ) );
343
- return false;
344
- }
345
  if ( ! $price ) {
346
- $price = get_post_meta( $product->get_id(), '_price', true );
347
- if ( 1 != ( $currency_exchange_rate = wcj_get_currency_exchange_rate_product_base_currency( $multicurrency_base_price_currency ) ) ) {
348
- $price = $price / $currency_exchange_rate;
349
- if ( 'yes' === get_option( 'wcj_multicurrency_base_price_round_enabled', 'no' ) ) {
350
- $price = round( $price, get_option( 'wcj_multicurrency_rounding_precision', absint( get_option( 'woocommerce_price_num_decimals', 2 ) ) ) );
351
- }
352
- }
353
  }
354
  update_post_meta( $product->get_id(), '_wcj_multicurrency_base_price', $price );
355
  return true;
2
  /**
3
  * Booster for WooCommerce - Module - Multicurrency Product Base Price
4
  *
5
+ * @version 4.4.0
6
  * @since 2.4.8
7
  * @author Algoritmika Ltd.
8
  */
48
  /**
49
  * Adds Compatibility with WooCommerce Price Filter Widget.
50
  *
51
+ * @version 4.4.0
52
  * @since 4.3.1
53
  */
54
  function handle_price_filter_widget_compatibility() {
59
  add_action( 'updated_option', array( $this, 'update_products_base_price_on_exchange_rate_change' ), 10, 3 );
60
  add_action( 'updated_post_meta', array( $this, 'handle_price_filter_compatibility_flag_on_base_price_update' ), 10, 4 );
61
  add_action( 'updated_post_meta', array( $this, 'handle_price_filter_compatibility_flag_on_base_price_currency_update' ), 10, 4 );
62
+ add_filter( 'woocommerce_price_filter_sql', array( $this, 'change_woocommerce_price_filter_sql' ) );
63
+
64
+ // Compatibility with third party price filters
65
+ if ( 'yes' === get_option( 'wcj_multicurrency_base_price_advanced_price_filter_comp_tp', 'no' ) ) {
66
+ add_filter( 'query', array( $this, 'change_third_party_price_filter_sql' ) );
67
+ add_filter( 'prdctfltr_meta_query', array( $this, 'add_base_price_on_product_meta_query' ) );
68
+ }
69
+ }
70
+
71
+ /**
72
+ * Changes the sql from third party price filters comparing with the same sql from WooCommerce price filter.
73
+ * This is only necessary due to some third party plugin not use the 'woocommerce_price_filter_sql' hook
74
+ *
75
+ * @version 4.4.0
76
+ * @since 4.4.0
77
+ *
78
+ * @see WC_Widget_Price_Filter::get_filtered_price()
79
+ * @param $sql
80
+ *
81
+ * @return string
82
+ */
83
+ public function change_third_party_price_filter_sql( $sql ) {
84
+ if (
85
+ is_admin() ||
86
+ ( false === strpos( $sql, "SELECT min( FLOOR( price_meta.meta_value ) ) as min_price" ) && false === strpos( $sql, "max( CEILING( price_meta.meta_value ) ) as max_price" ) )
87
+ ) {
88
+ return $sql;
89
+ }
90
+ $sql = $this->change_woocommerce_price_filter_sql( $sql );
91
+ return $sql;
92
  }
93
 
94
  /**
96
  *
97
  * All in all, it creates the min and max from '_price' meta, and from '_wcj_multicurrency_base_price' if there is the '_wcj_multicurrency_base_price_comp_pf' meta
98
  *
99
+ * @version 4.4.0
100
  * @since 4.3.1
101
  *
102
  * @see WC_Widget_Price_Filter::get_filtered_price()
105
  * @return string
106
  */
107
  function change_woocommerce_price_filter_sql($sql){
108
+ if (
109
+ is_admin() ||
110
+ ( ! is_shop() && ! is_product_taxonomy() ) ||
111
+ ! wc()->query->get_main_query()->post_count ||
112
+ 'no' === get_option( 'wcj_multicurrency_base_price_advanced_price_filter_comp', 'no' )
113
+ ) {
114
  return $sql;
115
  }
116
+
117
  global $wpdb;
118
  $args = wc()->query->get_main_query()->query_vars;
119
  $tax_query = isset( $args['tax_query'] ) ? $args['tax_query'] : array();
357
  /**
358
  * Updates '_wcj_multicurrency_base_price' meta.
359
  *
360
+ * @version 4.4.0
361
  * @since 4.3.1
362
  *
363
  * @param $product
372
  if ( ! is_a( $product, 'WC_Product' ) ) {
373
  return false;
374
  }
 
 
 
 
 
375
  if ( ! $price ) {
376
+ $price = $this->change_price( get_post_meta( $product->get_id(), '_price', true ), $product );
 
 
 
 
 
 
377
  }
378
  update_post_meta( $product->get_id(), '_wcj_multicurrency_base_price', $price );
379
  return true;
includes/class-wcj-multicurrency.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Multicurrency (Currency Switcher)
4
  *
5
- * @version 4.3.1
6
  * @since 2.4.3
7
  * @author Algoritmika Ltd.
8
  */
@@ -67,7 +67,7 @@ class WCJ_Multicurrency extends WCJ_Module {
67
  /**
68
  * Handles third party compatibility
69
  *
70
- * @version 4.3.1
71
  * @since 4.3.0
72
  */
73
  function handle_third_party_compatibility(){
@@ -81,6 +81,48 @@ class WCJ_Multicurrency extends WCJ_Module {
81
  add_action( 'wp_footer', array( $this, 'add_compatibility_with_price_filter_widget' ) );
82
  add_action( 'wp_footer', array( $this, 'fix_price_filter_widget_currency_format' ) );
83
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
  }
85
 
86
  /**
2
  /**
3
  * Booster for WooCommerce - Module - Multicurrency (Currency Switcher)
4
  *
5
+ * @version 4.4.0
6
  * @since 2.4.3
7
  * @author Algoritmika Ltd.
8
  */
67
  /**
68
  * Handles third party compatibility
69
  *
70
+ * @version 4.4.0
71
  * @since 4.3.0
72
  */
73
  function handle_third_party_compatibility(){
81
  add_action( 'wp_footer', array( $this, 'add_compatibility_with_price_filter_widget' ) );
82
  add_action( 'wp_footer', array( $this, 'fix_price_filter_widget_currency_format' ) );
83
  }
84
+
85
+ // Fix WooCommerce Import
86
+ if ( 'yes' === get_option( 'wcj_multicurrency_compatibility_wc_import' , 'no' ) ) {
87
+ add_filter( 'woocommerce_product_importer_parsed_data', array( $this, 'fix_wc_product_import' ), 10, 2 );
88
+ }
89
+ }
90
+
91
+ /**
92
+ * Fixes WooCommerce import.
93
+ *
94
+ * For now it converts '_wcj_%price%_{currency}' meta with lowercase currency to uppercase.
95
+ *
96
+ * @version 4.4.0
97
+ * @since 4.4.0
98
+ *
99
+ * @param $parsed_data
100
+ * @param $raw_data
101
+ *
102
+ * @return mixed
103
+ */
104
+ function fix_wc_product_import( $parsed_data, $raw_data ) {
105
+ // Gets values
106
+ $multicurrency_values = array_filter( $parsed_data['meta_data'], function ( $value ) {
107
+ return preg_match( '/^_wcj_.+price.*_[a-z]{2,3}$/', $value['key'] );
108
+ } );
109
+
110
+ // Changes lowercase currency to uppercase
111
+ $modified_values = array_map( function ( $value ) {
112
+ $str = $value['key'];
113
+ $last_underscore = strrpos( $str, '_' );
114
+ $before = substr( $str, 0, $last_underscore );
115
+ $currency = substr( $str, $last_underscore + 1 );
116
+ $value['key'] = $before . '_' . strtoupper( $currency );
117
+ return $value;
118
+ }, $multicurrency_values );
119
+
120
+ // Applies changes to the main data
121
+ foreach ( $modified_values as $i => $value ) {
122
+ $parsed_data['meta_data'][ $i ]['key'] = $value['key'];
123
+ }
124
+
125
+ return $parsed_data;
126
  }
127
 
128
  /**
includes/class-wcj-offer-price.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Offer Price
4
  *
5
- * @version 4.3.0
6
  * @since 2.9.0
7
  * @author Algoritmika Ltd.
8
  */
@@ -153,39 +153,82 @@ class WCJ_Offer_Price extends WCJ_Module {
153
  );
154
  }
155
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  /**
157
  * create_offer_price_history_meta_box.
158
  *
159
- * @version 2.9.0
160
  * @since 2.9.0
161
  */
162
  function create_offer_price_history_meta_box() {
163
  if ( '' == ( $price_offers = get_post_meta( get_the_ID(), '_' . 'wcj_price_offers', true ) ) ) {
164
  echo '<em>' . __( 'No price offers yet.', 'woocommerce-jetpack' ) . '</em>';
165
  } else {
166
- $average_offers = array();
167
- $table_data = array();
168
- $table_data[] = array(
169
- __( 'Date', 'woocommerce-jetpack' ),
170
- __( 'Price', 'woocommerce-jetpack' ),
171
- __( 'Message', 'woocommerce-jetpack' ),
172
- __( 'Name', 'woocommerce-jetpack' ),
173
- __( 'Email', 'woocommerce-jetpack' ),
174
- __( 'Customer ID', 'woocommerce-jetpack' ),
175
- __( 'Sent to', 'woocommerce-jetpack' ),
176
- );
177
  $date_ant_time_format = get_option( 'date_format' ) . ' ' . get_option( 'time_format' );
178
- $price_offers = array_reverse( $price_offers );
179
  foreach ( $price_offers as $price_offer ) {
180
- $table_data[] = array(
181
- date_i18n( $date_ant_time_format, $price_offer['offer_timestamp'] ),
182
- wc_price( $price_offer['offered_price'], array( 'currency' => $price_offer['currency_code'] ) ),
183
- $price_offer['customer_message'],
184
- $price_offer['customer_name'],
185
- $price_offer['customer_email'],
186
- $price_offer['customer_id'],
187
- $price_offer['sent_to'] . ( 'yes' === $price_offer['copy_to_customer'] ? '<br>' . $price_offer['customer_email'] : '' ),
188
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189
  if ( ! isset( $average_offers[ $price_offer['currency_code'] ] ) ) {
190
  $average_offers[ $price_offer['currency_code'] ] = array( 'total_offers' => 0, 'offers_sum' => 0 );
191
  }
@@ -377,16 +420,33 @@ class WCJ_Offer_Price extends WCJ_Module {
377
  '</div>';
378
  }
379
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
380
  /**
381
  * add_offer_price_button.
382
  *
383
- * @version 3.0.0
384
  * @since 2.9.0
385
  */
386
  function add_offer_price_button() {
387
  $product_id = get_the_ID();
388
  // Check if enabled for current product
389
- if ( ! $this->is_offer_price_enabled_for_product( $product_id ) ) {
390
  return;
391
  }
392
  // The button
@@ -409,7 +469,7 @@ class WCJ_Offer_Price extends WCJ_Module {
409
  /**
410
  * offer_price.
411
  *
412
- * @version 4.3.0
413
  * @since 2.9.0
414
  * @todo (maybe) separate customer copy email template and subject
415
  * @todo (maybe) redirect (no notice though)
@@ -452,6 +512,8 @@ class WCJ_Offer_Price extends WCJ_Module {
452
  'customer_name' => $_POST['wcj-offer-price-customer-name'],
453
  'customer_email' => $_POST['wcj-offer-price-customer-email'],
454
  'customer_id' => $_POST['wcj-offer-price-customer-id'],
 
 
455
  'copy_to_customer' => ( isset( $_POST['wcj-offer-price-customer-copy'] ) ? $_POST['wcj-offer-price-customer-copy'] : 'no' ),
456
  'sent_to' => $email_address,
457
  );
@@ -468,6 +530,8 @@ class WCJ_Offer_Price extends WCJ_Module {
468
  '%customer_message%' => $price_offer['customer_message'],
469
  '%customer_name%' => $price_offer['customer_name'],
470
  '%customer_email%' => $price_offer['customer_email'],
 
 
471
  );
472
  $email_content = str_replace( array_keys( $replaced_values ), array_values( $replaced_values ), $email_template );
473
  // Email subject and headers
2
  /**
3
  * Booster for WooCommerce - Module - Offer Price
4
  *
5
+ * @version 4.4.0
6
  * @since 2.9.0
7
  * @author Algoritmika Ltd.
8
  */
153
  );
154
  }
155
 
156
+ /**
157
+ * get_admin_meta_box_columns.
158
+ *
159
+ * @version 4.4.0
160
+ * @since 4.4.0
161
+ */
162
+ function get_admin_meta_box_columns() {
163
+ return array(
164
+ 'date' => __( 'Date', 'woocommerce-jetpack' ),
165
+ 'offered_price' => __( 'Price', 'woocommerce-jetpack' ),
166
+ 'customer_message' => __( 'Message', 'woocommerce-jetpack' ),
167
+ 'customer_name' => __( 'Name', 'woocommerce-jetpack' ),
168
+ 'customer_email' => __( 'Email', 'woocommerce-jetpack' ),
169
+ 'customer_id' => __( 'Customer ID', 'woocommerce-jetpack' ),
170
+ 'user_ip' => __( 'User IP', 'woocommerce-jetpack' ),
171
+ 'user_agent' => __( 'User Agent', 'woocommerce-jetpack' ),
172
+ 'sent_to' => __( 'Sent to', 'woocommerce-jetpack' ),
173
+ );
174
+ }
175
+
176
  /**
177
  * create_offer_price_history_meta_box.
178
  *
179
+ * @version 4.4.0
180
  * @since 2.9.0
181
  */
182
  function create_offer_price_history_meta_box() {
183
  if ( '' == ( $price_offers = get_post_meta( get_the_ID(), '_' . 'wcj_price_offers', true ) ) ) {
184
  echo '<em>' . __( 'No price offers yet.', 'woocommerce-jetpack' ) . '</em>';
185
  } else {
186
+ $average_offers = array();
187
+ $all_columns = $this->get_admin_meta_box_columns();
188
+ $selected_columns = get_option( 'wcj_offer_price_admin_meta_box_columns',
189
+ array( 'date', 'offered_price', 'customer_message', 'customer_name', 'customer_email', 'customer_id', 'user_ip', 'sent_to' ) );
190
+ $table_data = array();
191
+ $header = array();
192
+ foreach ( $selected_columns as $selected_column ) {
193
+ $header[] = $all_columns[ $selected_column ];
194
+ }
195
+ $table_data[] = $header;
 
196
  $date_ant_time_format = get_option( 'date_format' ) . ' ' . get_option( 'time_format' );
197
+ $price_offers = array_reverse( $price_offers );
198
  foreach ( $price_offers as $price_offer ) {
199
+ $row = array();
200
+ foreach ( $selected_columns as $selected_column ) {
201
+ switch ( $selected_column ) {
202
+ case 'date':
203
+ $row[] = date_i18n( $date_ant_time_format, $price_offer['offer_timestamp'] );
204
+ break;
205
+ case 'offered_price':
206
+ $row[] = wc_price( $price_offer['offered_price'], array( 'currency' => $price_offer['currency_code'] ) );
207
+ break;
208
+ case 'customer_message':
209
+ $row[] = $price_offer['customer_message'];
210
+ break;
211
+ case 'customer_name':
212
+ $row[] = $price_offer['customer_name'];
213
+ break;
214
+ case 'customer_email':
215
+ $row[] = $price_offer['customer_email'];
216
+ break;
217
+ case 'customer_id':
218
+ $row[] = $price_offer['customer_id'];
219
+ break;
220
+ case 'user_ip':
221
+ $row[] = ( isset( $price_offer['user_ip'] ) ? $price_offer['user_ip'] : '' );
222
+ break;
223
+ case 'user_agent':
224
+ $row[] = ( isset( $price_offer['user_agent'] ) ? $price_offer['user_agent'] : '' );
225
+ break;
226
+ case 'sent_to':
227
+ $row[] = $price_offer['sent_to'] . ( 'yes' === $price_offer['copy_to_customer'] ? '<br>' . $price_offer['customer_email'] : '' );
228
+ break;
229
+ }
230
+ }
231
+ $table_data[] = $row;
232
  if ( ! isset( $average_offers[ $price_offer['currency_code'] ] ) ) {
233
  $average_offers[ $price_offer['currency_code'] ] = array( 'total_offers' => 0, 'offers_sum' => 0 );
234
  }
420
  '</div>';
421
  }
422
 
423
+ /**
424
+ * is_offer_price_excluded_for_product.
425
+ *
426
+ * @version 4.4.0
427
+ * @since 4.4.0
428
+ * @todo [dev] add more conditions to exclude (i.e. not only "out of stock")
429
+ */
430
+ function is_offer_price_excluded_for_product( $product_id ) {
431
+ if ( 'yes' === get_option( 'wcj_offer_price_exclude_out_of_stock', 'no' ) ) {
432
+ $product = wc_get_product( $product_id );
433
+ if ( ! $product->is_in_stock() ) {
434
+ return true;
435
+ }
436
+ }
437
+ return false;
438
+ }
439
+
440
  /**
441
  * add_offer_price_button.
442
  *
443
+ * @version 4.4.0
444
  * @since 2.9.0
445
  */
446
  function add_offer_price_button() {
447
  $product_id = get_the_ID();
448
  // Check if enabled for current product
449
+ if ( ! $this->is_offer_price_enabled_for_product( $product_id ) || $this->is_offer_price_excluded_for_product( $product_id ) ) {
450
  return;
451
  }
452
  // The button
469
  /**
470
  * offer_price.
471
  *
472
+ * @version 4.4.0
473
  * @since 2.9.0
474
  * @todo (maybe) separate customer copy email template and subject
475
  * @todo (maybe) redirect (no notice though)
512
  'customer_name' => $_POST['wcj-offer-price-customer-name'],
513
  'customer_email' => $_POST['wcj-offer-price-customer-email'],
514
  'customer_id' => $_POST['wcj-offer-price-customer-id'],
515
+ 'user_ip' => $_SERVER['REMOTE_ADDR'],
516
+ 'user_agent' => $_SERVER['HTTP_USER_AGENT'],
517
  'copy_to_customer' => ( isset( $_POST['wcj-offer-price-customer-copy'] ) ? $_POST['wcj-offer-price-customer-copy'] : 'no' ),
518
  'sent_to' => $email_address,
519
  );
530
  '%customer_message%' => $price_offer['customer_message'],
531
  '%customer_name%' => $price_offer['customer_name'],
532
  '%customer_email%' => $price_offer['customer_email'],
533
+ '%user_ip%' => $price_offer['user_ip'],
534
+ '%user_agent%' => $price_offer['user_agent'],
535
  );
536
  $email_content = str_replace( array_keys( $replaced_values ), array_values( $replaced_values ), $email_template );
537
  // Email subject and headers
includes/class-wcj-order-quantities.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Order Min/Max Quantities
4
  *
5
- * @version 4.3.1
6
  * @since 2.9.0
7
  * @author Algoritmika Ltd.
8
  */
@@ -16,7 +16,7 @@ class WCJ_Order_Quantities extends WCJ_Module {
16
  /**
17
  * Constructor.
18
  *
19
- * @version 4.3.1
20
  * @since 2.9.0
21
  * @todo [dev] maybe rename the module to "Order Product Quantities" or "Product Quantities"?
22
  * @todo [dev] loop (`woocommerce_loop_add_to_cart_link`)
@@ -85,9 +85,30 @@ class WCJ_Order_Quantities extends WCJ_Module {
85
  add_action( 'init', array( $this, 'float_stock_amount' ) );
86
  add_action( 'woocommerce_quantity_input_pattern', array( $this, 'float_quantity_input_pattern' ) );
87
  }
 
 
 
88
  }
89
  }
90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  /**
92
  * float_quantity_input_pattern.
93
  *
@@ -351,7 +372,7 @@ class WCJ_Order_Quantities extends WCJ_Module {
351
  /**
352
  * stop_from_seeing_checkout.
353
  *
354
- * @version 4.2.0
355
  * @since 2.9.0
356
  */
357
  function stop_from_seeing_checkout() {
@@ -361,7 +382,7 @@ class WCJ_Order_Quantities extends WCJ_Module {
361
  if ( ! is_checkout() ) {
362
  return;
363
  }
364
- $cart_item_quantities = WC()->cart->get_cart_item_quantities();
365
  if ( empty( $cart_item_quantities ) || ! is_array( $cart_item_quantities ) ) {
366
  return;
367
  }
@@ -480,7 +501,7 @@ class WCJ_Order_Quantities extends WCJ_Module {
480
  /**
481
  * check_quantities_step.
482
  *
483
- * @version 4.2.0
484
  * @since 4.2.0
485
  */
486
  function check_quantities_step( $cart_item_quantities, $_is_cart, $_return ) {
@@ -489,7 +510,17 @@ class WCJ_Order_Quantities extends WCJ_Module {
489
  }
490
  if ( $this->is_step_per_product_enabled ) {
491
  foreach ( $cart_item_quantities as $_product_id => $cart_item_quantity ) {
492
- if ( '' != ( $step = get_post_meta( $_product_id, '_' . 'wcj_order_quantities_step', true ) ) && 0 != $step ) {
 
 
 
 
 
 
 
 
 
 
493
  if ( ! $this->check_step( $_product_id, $step, $cart_item_quantity ) ) {
494
  if ( $_return ) {
495
  return false;
@@ -500,7 +531,10 @@ class WCJ_Order_Quantities extends WCJ_Module {
500
  }
501
  }
502
  }
503
- if ( 0 != ( $step = get_option( 'wcj_order_quantities_step', 1 ) ) ) {
 
 
 
504
  foreach ( $cart_item_quantities as $_product_id => $cart_item_quantity ) {
505
  if ( $this->is_step_per_product_enabled && 0 != get_post_meta( $_product_id, '_' . 'wcj_order_quantities_step', true ) ) {
506
  continue;
@@ -582,14 +616,14 @@ class WCJ_Order_Quantities extends WCJ_Module {
582
  /**
583
  * check_order_quantities.
584
  *
585
- * @version 4.2.0
586
  * @since 2.9.0
587
  */
588
  function check_order_quantities() {
589
  if ( ! isset( WC()->cart ) ) {
590
  return;
591
  }
592
- $cart_item_quantities = WC()->cart->get_cart_item_quantities();
593
  if ( empty( $cart_item_quantities ) || ! is_array( $cart_item_quantities ) ) {
594
  return;
595
  }
2
  /**
3
  * Booster for WooCommerce - Module - Order Min/Max Quantities
4
  *
5
+ * @version 4.4.0
6
  * @since 2.9.0
7
  * @author Algoritmika Ltd.
8
  */
16
  /**
17
  * Constructor.
18
  *
19
+ * @version 4.4.0
20
  * @since 2.9.0
21
  * @todo [dev] maybe rename the module to "Order Product Quantities" or "Product Quantities"?
22
  * @todo [dev] loop (`woocommerce_loop_add_to_cart_link`)
85
  add_action( 'init', array( $this, 'float_stock_amount' ) );
86
  add_action( 'woocommerce_quantity_input_pattern', array( $this, 'float_quantity_input_pattern' ) );
87
  }
88
+
89
+ // Prevent outdated min/max Quantity Options
90
+ add_action( 'woocommerce_update_product', array( $this, 'prevent_outdated_min_max' ), 10 );
91
  }
92
  }
93
 
94
+ /**
95
+ * Prevents outdated min/max Quantity options.
96
+ *
97
+ * @version 4.4.0
98
+ * @since 4.4.0
99
+ * @param $product_id
100
+ */
101
+ function prevent_outdated_min_max( $product_id ) {
102
+ $product = wc_get_product( $product_id );
103
+ if (
104
+ ! $product->is_type( 'variable' ) ||
105
+ isset( $_POST['_wcj_order_quantities_min'] )
106
+ ) {
107
+ return;
108
+ }
109
+ delete_post_meta( $product_id, '_wcj_order_quantities_min' );
110
+ }
111
+
112
  /**
113
  * float_quantity_input_pattern.
114
  *
372
  /**
373
  * stop_from_seeing_checkout.
374
  *
375
+ * @version 4.4.0
376
  * @since 2.9.0
377
  */
378
  function stop_from_seeing_checkout() {
382
  if ( ! is_checkout() ) {
383
  return;
384
  }
385
+ $cart_item_quantities = wcj_get_cart_item_quantities();
386
  if ( empty( $cart_item_quantities ) || ! is_array( $cart_item_quantities ) ) {
387
  return;
388
  }
501
  /**
502
  * check_quantities_step.
503
  *
504
+ * @version 4.4.0
505
  * @since 4.2.0
506
  */
507
  function check_quantities_step( $cart_item_quantities, $_is_cart, $_return ) {
510
  }
511
  if ( $this->is_step_per_product_enabled ) {
512
  foreach ( $cart_item_quantities as $_product_id => $cart_item_quantity ) {
513
+ $step = get_post_meta( $_product_id, '_' . 'wcj_order_quantities_step', true );
514
+ $product = empty( $step ) ? wc_get_product( $_product_id ) : null;
515
+ if (
516
+ empty( $step ) &&
517
+ $product &&
518
+ $product->get_type() == 'variation' &&
519
+ ! empty( $product->get_parent_id() )
520
+ ) {
521
+ $step = get_post_meta( $product->get_parent_id(), '_' . 'wcj_order_quantities_step', true );
522
+ }
523
+ if ( '' != $step && 0 != $step ) {
524
  if ( ! $this->check_step( $_product_id, $step, $cart_item_quantity ) ) {
525
  if ( $_return ) {
526
  return false;
531
  }
532
  }
533
  }
534
+ if (
535
+ empty( $step ) &&
536
+ 0 != ( $step = get_option( 'wcj_order_quantities_step', 1 ) )
537
+ ) {
538
  foreach ( $cart_item_quantities as $_product_id => $cart_item_quantity ) {
539
  if ( $this->is_step_per_product_enabled && 0 != get_post_meta( $_product_id, '_' . 'wcj_order_quantities_step', true ) ) {
540
  continue;
616
  /**
617
  * check_order_quantities.
618
  *
619
+ * @version 4.4.0
620
  * @since 2.9.0
621
  */
622
  function check_order_quantities() {
623
  if ( ! isset( WC()->cart ) ) {
624
  return;
625
  }
626
+ $cart_item_quantities = wcj_get_cart_item_quantities();
627
  if ( empty( $cart_item_quantities ) || ! is_array( $cart_item_quantities ) ) {
628
  return;
629
  }
includes/class-wcj-payment-gateways-min-max.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Gateways Min/Max Amounts
4
  *
5
- * @version 3.2.3
6
  * @since 2.4.1
7
  * @author Algoritmika Ltd.
8
  */
@@ -35,7 +35,7 @@ class WCJ_Payment_Gateways_Min_Max extends WCJ_Module {
35
  /**
36
  * available_payment_gateways.
37
  *
38
- * @version 3.2.3
39
  * @since 2.4.1
40
  * @todo (maybe) `wc_clear_notices()`
41
  */
@@ -53,6 +53,15 @@ class WCJ_Payment_Gateways_Min_Max extends WCJ_Module {
53
  foreach ( $_available_gateways as $key => $gateway ) {
54
  $min = get_option( 'wcj_payment_gateways_min_' . $key, 0 );
55
  $max = get_option( 'wcj_payment_gateways_max_' . $key, 0 );
 
 
 
 
 
 
 
 
 
56
  if ( $min != 0 && $total_in_cart < $min ) {
57
  $notices[] = str_replace( array( '%gateway_title%', '%min_amount%' ), array( $gateway->title, wc_price( $min ) ), $notices_template_min );
58
  unset( $_available_gateways[ $key ] );
2
  /**
3
  * Booster for WooCommerce - Module - Gateways Min/Max Amounts
4
  *
5
+ * @version 4.4.0
6
  * @since 2.4.1
7
  * @author Algoritmika Ltd.
8
  */
35
  /**
36
  * available_payment_gateways.
37
  *
38
+ * @version 4.4.0
39
  * @since 2.4.1
40
  * @todo (maybe) `wc_clear_notices()`
41
  */
53
  foreach ( $_available_gateways as $key => $gateway ) {
54
  $min = get_option( 'wcj_payment_gateways_min_' . $key, 0 );
55
  $max = get_option( 'wcj_payment_gateways_max_' . $key, 0 );
56
+
57
+ // Compatibility with other modules
58
+ if ( 'yes' === get_option( 'wcj_payment_gateways_min_max_comp_mc', 'no' ) ) {
59
+ if ( wcj_is_module_enabled( 'multicurrency' ) ) {
60
+ $min = WCJ()->modules['multicurrency']->change_price( $min, null );
61
+ $max = WCJ()->modules['multicurrency']->change_price( $max, null );
62
+ }
63
+ }
64
+
65
  if ( $min != 0 && $total_in_cart < $min ) {
66
  $notices[] = str_replace( array( '%gateway_title%', '%min_amount%' ), array( $gateway->title, wc_price( $min ) ), $notices_template_min );
67
  unset( $_available_gateways[ $key ] );
includes/class-wcj-product-addons.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Product Addons
4
  *
5
- * @version 4.2.0
6
  * @since 2.5.3
7
  * @author Algoritmika Ltd.
8
  * @todo admin order view (names)
@@ -454,14 +454,14 @@ class WCJ_Product_Addons extends WCJ_Module {
454
  /**
455
  * change_price.
456
  *
457
- * @version 2.7.0
458
  * @since 2.5.3
459
  */
460
  function change_price( $price, $_product ) {
461
  $addons = $this->get_product_addons( wcj_get_product_id_or_variation_parent_id( $_product ) );
462
  foreach ( $addons as $addon ) {
463
  if ( isset( $_product->{$addon['price_key']} ) ) {
464
- $price += $_product->{$addon['price_key']};
465
  }
466
  }
467
  return $price;
2
  /**
3
  * Booster for WooCommerce - Module - Product Addons
4
  *
5
+ * @version 4.4.0
6
  * @since 2.5.3
7
  * @author Algoritmika Ltd.
8
  * @todo admin order view (names)
454
  /**
455
  * change_price.
456
  *
457
+ * @version 4.4.0
458
  * @since 2.5.3
459
  */
460
  function change_price( $price, $_product ) {
461
  $addons = $this->get_product_addons( wcj_get_product_id_or_variation_parent_id( $_product ) );
462
  foreach ( $addons as $addon ) {
463
  if ( isset( $_product->{$addon['price_key']} ) ) {
464
+ $price += $this->maybe_convert_currency( $_product->{$addon['price_key']}, $_product );
465
  }
466
  }
467
  return $price;
includes/class-wcj-product-msrp.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Product MSRP
4
  *
5
- * @version 4.1.0
6
  * @since 3.6.0
7
  * @author Algoritmika Ltd.
8
  */
@@ -16,7 +16,7 @@ class WCJ_Product_MSRP extends WCJ_Module {
16
  /**
17
  * Constructor.
18
  *
19
- * @version 3.6.0
20
  * @since 3.6.0
21
  * @todo (maybe) option to change `_wcj_msrp` meta key
22
  * @todo (maybe) REST API
@@ -49,10 +49,35 @@ class WCJ_Product_MSRP extends WCJ_Module {
49
  }
50
  // Display
51
  add_filter( 'woocommerce_get_price_html', array( $this, 'display' ), PHP_INT_MAX, 2 );
 
 
 
52
  }
53
 
54
  }
55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  /**
57
  * add_msrp_input_variable.
58
  *
@@ -114,13 +139,13 @@ class WCJ_Product_MSRP extends WCJ_Module {
114
  /**
115
  * display.
116
  *
117
- * @version 4.1.0
118
  * @since 3.6.0
119
  * @todo (maybe) multicurrency
120
  * @todo (feature) (maybe) variable product's msrp: add another option to enter MSRP directly for the whole variable product, instead of taking first variation's MSRP
121
  */
122
  function display( $price_html, $product ) {
123
- $section_id = ( is_product() ? 'single' : 'archives' );
124
  $display = get_option( 'wcj_product_msrp_display_on_' . $section_id, 'show' );
125
  if ( 'hide' == $display ) {
126
  return $price_html;
2
  /**
3
  * Booster for WooCommerce - Module - Product MSRP
4
  *
5
+ * @version 4.4.0
6
  * @since 3.6.0
7
  * @author Algoritmika Ltd.
8
  */
16
  /**
17
  * Constructor.
18
  *
19
+ * @version 4.4.0
20
  * @since 3.6.0
21
  * @todo (maybe) option to change `_wcj_msrp` meta key
22
  * @todo (maybe) REST API
49
  }
50
  // Display
51
  add_filter( 'woocommerce_get_price_html', array( $this, 'display' ), PHP_INT_MAX, 2 );
52
+
53
+ // Make _wcj_msrp compatible with other modules or third party plugins
54
+ add_filter( 'wcj_product_msrp', array( $this, 'make_wcj_msrp_price_compatible_with_3rd_party' ), 10, 2 );
55
  }
56
 
57
  }
58
 
59
+ /**
60
+ * Add compatibility between third party modules / plugins and _wcj_msrp
61
+ *
62
+ * @version 4.4.0
63
+ * @since 4.4.0
64
+ *
65
+ * @param $price
66
+ * @param $product
67
+ *
68
+ * @return mixed
69
+ */
70
+ function make_wcj_msrp_price_compatible_with_3rd_party( $price, $product ) {
71
+ if ( 'yes' !== get_option( 'wcj_payment_msrp_comp_mc', 'no' ) ) {
72
+ return $price;
73
+ }
74
+ $module = 'multicurrency';
75
+ if ( wcj_is_module_enabled( $module ) ) {
76
+ $price = WCJ()->modules[ $module ]->change_price( $price, null );
77
+ }
78
+ return $price;
79
+ }
80
+
81
  /**
82
  * add_msrp_input_variable.
83
  *
139
  /**
140
  * display.
141
  *
142
+ * @version 4.4.0
143
  * @since 3.6.0
144
  * @todo (maybe) multicurrency
145
  * @todo (feature) (maybe) variable product's msrp: add another option to enter MSRP directly for the whole variable product, instead of taking first variation's MSRP
146
  */
147
  function display( $price_html, $product ) {
148
+ $section_id = empty( get_queried_object_id() ) || get_queried_object_id() != wcj_get_product_id( $product ) ? 'archives' : 'single';
149
  $display = get_option( 'wcj_product_msrp_display_on_' . $section_id, 'show' );
150
  if ( 'hide' == $display ) {
151
  return $price_html;
includes/class-wcj-product-open-pricing.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Product Open Pricing
4
  *
5
- * @version 4.2.0
6
  * @since 2.4.8
7
  * @author Algoritmika Ltd.
8
  */
@@ -286,11 +286,21 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
286
  /**
287
  * get_open_price.
288
  *
289
- * @version 4.1.0
290
  * @since 2.4.8
291
  */
292
  function get_open_price( $price, $_product ) {
293
  if ( $this->is_open_price_product( $_product ) && isset( $_product->wcj_open_price ) ) {
 
 
 
 
 
 
 
 
 
 
294
  $price = $_product->wcj_open_price;
295
  // Multicurrency (Currency Switcher) module
296
  if ( WCJ()->modules['multicurrency']->is_enabled() ) {
@@ -347,13 +357,37 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
347
  /**
348
  * add_open_price_to_cart_item_data.
349
  *
350
- * @version 4.2.0
351
  * @since 2.4.8
352
  * @todo [dev] (maybe) better conversion for Currency Switcher module (i.e. include rounding)
353
  */
354
  function add_open_price_to_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
355
  if ( isset( $_POST['wcj_open_price'] ) ) {
356
  $cart_item_data['wcj_open_price'] = $_POST['wcj_open_price'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
357
  if ( 'switched_currency' === get_option( 'wcj_product_open_price_currency_switcher', 'shop_currency' ) ) {
358
  // Multicurrency (Currency Switcher) module
359
  if ( WCJ()->modules['multicurrency']->is_enabled() ) {
2
  /**
3
  * Booster for WooCommerce - Module - Product Open Pricing
4
  *
5
+ * @version 4.4.0
6
  * @since 2.4.8
7
  * @author Algoritmika Ltd.
8
  */
286
  /**
287
  * get_open_price.
288
  *
289
+ * @version 4.4.0
290
  * @since 2.4.8
291
  */
292
  function get_open_price( $price, $_product ) {
293
  if ( $this->is_open_price_product( $_product ) && isset( $_product->wcj_open_price ) ) {
294
+ if ( 'WC_Product_Woosb' === get_class( $_product ) ) {
295
+ // "WPC Product Bundles for WooCommerce" plugin
296
+ return $price;
297
+ }
298
+ if ( 'yes' === get_option( 'wcj_product_open_price_check_for_product_changes_price', 'no' ) ) {
299
+ $product_changes = $_product->get_changes();
300
+ if ( ! empty( $product_changes ) && isset( $product_changes['price'] ) ) {
301
+ return $price;
302
+ }
303
+ }
304
  $price = $_product->wcj_open_price;
305
  // Multicurrency (Currency Switcher) module
306
  if ( WCJ()->modules['multicurrency']->is_enabled() ) {
357
  /**
358
  * add_open_price_to_cart_item_data.
359
  *
360
+ * @version 4.4.0
361
  * @since 2.4.8
362
  * @todo [dev] (maybe) better conversion for Currency Switcher module (i.e. include rounding)
363
  */
364
  function add_open_price_to_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
365
  if ( isset( $_POST['wcj_open_price'] ) ) {
366
  $cart_item_data['wcj_open_price'] = $_POST['wcj_open_price'];
367
+ if ( 'no' != ( $product_bundles_divide = get_option( 'wcj_product_open_price_woosb_product_bundles_divide', 'no' ) ) ) {
368
+ // "WPC Product Bundles for WooCommerce" plugin
369
+ if ( ! empty( $cart_item_data['woosb_parent_id'] ) ) {
370
+ $parent_product = wc_get_product( $cart_item_data['woosb_parent_id'] );
371
+ if ( 'WC_Product_Woosb' == get_class( $parent_product ) ) {
372
+ if ( 'yes' === $product_bundles_divide ) {
373
+ $total_products_in_bundle = count( $parent_product->get_items() );
374
+ if ( $total_products_in_bundle ) {
375
+ $qty = ( ! empty( $cart_item_data['woosb_qty'] ) ? $cart_item_data['woosb_qty'] : 1 );
376
+ $cart_item_data['wcj_open_price'] = $cart_item_data['wcj_open_price'] / $total_products_in_bundle / $qty;
377
+ }
378
+ } else { // 'proportionally'
379
+ $total_original_price = 0;
380
+ foreach ( $parent_product->get_items() as $child ) {
381
+ $total_original_price += get_post_meta( $child['id'], '_price', true );
382
+ }
383
+ if ( 0 != $total_original_price ) {
384
+ $qty = ( ! empty( $cart_item_data['woosb_qty'] ) ? $cart_item_data['woosb_qty'] : 1 );
385
+ $cart_item_data['wcj_open_price'] = $cart_item_data['wcj_open_price'] * $cart_item_data['woosb_price'] / $total_original_price / $qty;
386
+ }
387
+ }
388
+ }
389
+ }
390
+ }
391
  if ( 'switched_currency' === get_option( 'wcj_product_open_price_currency_switcher', 'shop_currency' ) ) {
392
  // Multicurrency (Currency Switcher) module
393
  if ( WCJ()->modules['multicurrency']->is_enabled() ) {
includes/class-wcj-shipping.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Custom Shipping
4
  *
5
- * @version 3.4.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
@@ -15,7 +15,7 @@ class WCJ_Shipping extends WCJ_Module {
15
  /**
16
  * Constructor.
17
  *
18
- * @version 3.4.0
19
  * @todo (maybe) deprecated "Custom Shipping (Legacy - without Shipping Zones)" - hide when disabled
20
  */
21
  function __construct() {
@@ -29,11 +29,19 @@ class WCJ_Shipping extends WCJ_Module {
29
  if ( $this->is_enabled() ) {
30
 
31
  // Custom Shipping (Legacy - without Shipping Zones)
32
- add_action( 'init', array( $this, 'init_wc_shipping_wcj_custom_class' ) );
 
 
 
 
33
 
34
  // Custom Shipping
35
  if ( 'yes' === get_option( 'wcj_shipping_custom_shipping_w_zones_enabled', 'no' ) ) {
36
- add_action( 'init', array( $this, 'init_wc_shipping_wcj_custom_w_zones_class' ) );
 
 
 
 
37
  }
38
  }
39
  }
2
  /**
3
  * Booster for WooCommerce - Module - Custom Shipping
4
  *
5
+ * @version 4.4.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
15
  /**
16
  * Constructor.
17
  *
18
+ * @version 4.4.0
19
  * @todo (maybe) deprecated "Custom Shipping (Legacy - without Shipping Zones)" - hide when disabled
20
  */
21
  function __construct() {
29
  if ( $this->is_enabled() ) {
30
 
31
  // Custom Shipping (Legacy - without Shipping Zones)
32
+ if ( 'init' === current_filter() ) {
33
+ $this->init_wc_shipping_wcj_custom_class();
34
+ } else {
35
+ add_action( 'init', array( $this, 'init_wc_shipping_wcj_custom_class' ) );
36
+ }
37
 
38
  // Custom Shipping
39
  if ( 'yes' === get_option( 'wcj_shipping_custom_shipping_w_zones_enabled', 'no' ) ) {
40
+ if ( 'init' === current_filter() ) {
41
+ $this->init_wc_shipping_wcj_custom_w_zones_class();
42
+ } else {
43
+ add_action( 'init', array( $this, 'init_wc_shipping_wcj_custom_w_zones_class' ) );
44
+ }
45
  }
46
  }
47
  }
includes/classes/class-wcj-module.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce Module
4
  *
5
- * @version 4.3.0
6
  * @since 2.2.0
7
  * @author Algoritmika Ltd.
8
  * @todo [dev] maybe should be `abstract` ?
@@ -24,7 +24,7 @@ class WCJ_Module {
24
  /**
25
  * Constructor.
26
  *
27
- * @version 2.8.0
28
  */
29
  function __construct( $type = 'module' ) {
30
  add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
@@ -33,8 +33,16 @@ class WCJ_Module {
33
  if ( 'module' === $this->type ) {
34
  $this->parent_id = '';
35
  }
36
- add_action( 'init', array( $this, 'add_settings' ) );
37
- add_action( 'init', array( $this, 'reset_settings' ), PHP_INT_MAX );
 
 
 
 
 
 
 
 
38
  }
39
 
40
  /**
2
  /**
3
  * Booster for WooCommerce Module
4
  *
5
+ * @version 4.4.0
6
  * @since 2.2.0
7
  * @author Algoritmika Ltd.
8
  * @todo [dev] maybe should be `abstract` ?
24
  /**
25
  * Constructor.
26
  *
27
+ * @version 4.4.0
28
  */
29
  function __construct( $type = 'module' ) {
30
  add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
33
  if ( 'module' === $this->type ) {
34
  $this->parent_id = '';
35
  }
36
+
37
+ if ( 'no' === get_option( 'wcj_load_modules_on_init', 'no' ) ) {
38
+ add_action( 'init', array( $this, 'add_settings' ) );
39
+ add_action( 'init', array( $this, 'reset_settings' ), PHP_INT_MAX );
40
+ } else {
41
+ if ( 'init' === current_filter() ) {
42
+ $this->add_settings();
43
+ $this->reset_settings();
44
+ }
45
+ }
46
  }
47
 
48
  /**
includes/classes/class-wcj-shortcodes.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Shortcodes
4
  *
5
- * @version 3.5.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
@@ -57,7 +57,7 @@ class WCJ_Shortcodes {
57
  /**
58
  * wcj_shortcode.
59
  *
60
- * @version 3.5.0
61
  * @todo `time` - weekly, e.g. 8:00-19:59;8:00-19:59;8:00-19:59;8:00-19:59;8:00-9:59,12:00-17:59;-;-;
62
  * @todo (maybe) - `return $atts['on_empty'];` everywhere instead of `return '';`
63
  * @todo (maybe) - add `$atts['function']` and `$atts['function_args']` - if set, will be run on shortcode's result
@@ -169,10 +169,23 @@ class WCJ_Shortcodes {
169
  }
170
 
171
  // Check if location is ok
172
- if ( '' != $atts['location'] && 'all' != $atts['location'] && $atts['location'] != $this->wcj_get_user_location() ) {
 
 
 
 
 
 
 
173
  return '';
174
  }
175
- if ( '' != $atts['not_location'] && $atts['not_location'] === $this->wcj_get_user_location() ) {
 
 
 
 
 
 
176
  return '';
177
  }
178
 
2
  /**
3
  * Booster for WooCommerce - Shortcodes
4
  *
5
+ * @version 4.4.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
57
  /**
58
  * wcj_shortcode.
59
  *
60
+ * @version 4.4.0
61
  * @todo `time` - weekly, e.g. 8:00-19:59;8:00-19:59;8:00-19:59;8:00-19:59;8:00-9:59,12:00-17:59;-;-;
62
  * @todo (maybe) - `return $atts['on_empty'];` everywhere instead of `return '';`
63
  * @todo (maybe) - add `$atts['function']` and `$atts['function_args']` - if set, will be run on shortcode's result
169
  }
170
 
171
  // Check if location is ok
172
+ if (
173
+ '' != $atts['location'] &&
174
+ 'all' != $atts['location'] &&
175
+ (
176
+ false === strpos( $atts['location'], ',' ) && $atts['location'] != $this->wcj_get_user_location() ||
177
+ false !== strpos( $atts['location'], ',' ) && ! in_array( $this->wcj_get_user_location(), array_map( 'trim', explode( ',', $atts['location'] ) ) )
178
+ )
179
+ ) {
180
  return '';
181
  }
182
+ if (
183
+ '' != $atts['not_location'] &&
184
+ (
185
+ false === strpos( $atts['not_location'], ',' ) && $atts['not_location'] === $this->wcj_get_user_location() ||
186
+ false !== strpos( $atts['not_location'], ',' ) && in_array( $this->wcj_get_user_location(), array_map( 'trim', explode( ',', $atts['not_location'] ) ) )
187
+ )
188
+ ) {
189
  return '';
190
  }
191
 
includes/core/wcj-loader.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Core - Loader
4
  *
5
- * @version 4.1.0
6
  * @since 3.2.4
7
  * @author Algoritmika Ltd.
8
  */
@@ -27,7 +27,13 @@ if ( ! defined( 'WCJ_PLUGIN_PATH' ) ) {
27
  }
28
 
29
  // Set up localisation
30
- load_plugin_textdomain( 'woocommerce-jetpack', false, dirname( plugin_basename( WCJ_PLUGIN_FILE ) ) . '/langs/' );
 
 
 
 
 
 
31
 
32
  // Include required core files used in admin and on the frontend
33
 
@@ -62,20 +68,38 @@ require_once( WCJ_PLUGIN_PATH . '/includes/widgets/class-wcj-widget-country-swit
62
  require_once( WCJ_PLUGIN_PATH . '/includes/widgets/class-wcj-widget-left-to-free-shipping.php' );
63
  require_once( WCJ_PLUGIN_PATH . '/includes/widgets/class-wcj-widget-selector.php' );
64
 
 
 
 
65
  // Modules and Submodules
66
- require_once( 'wcj-modules.php' );
 
67
 
68
- // Add and Manage options
69
- require_once( 'wcj-options.php' );
70
 
71
- // Admin
72
- require_once( 'class-wcj-admin.php' );
73
 
74
- // Scripts
75
- require_once( 'class-wcj-scripts.php' );
 
 
 
 
 
 
 
 
 
 
 
 
76
 
77
- // Settings manager
78
- require_once( WCJ_PLUGIN_PATH . '/includes/admin/class-wcj-settings-manager.php' );
79
 
80
- // Loaded action
81
- do_action( 'wcj_loaded' );
 
 
2
  /**
3
  * Booster for WooCommerce - Core - Loader
4
  *
5
+ * @version 4.4.0
6
  * @since 3.2.4
7
  * @author Algoritmika Ltd.
8
  */
27
  }
28
 
29
  // Set up localisation
30
+ if ( 'no' === get_option( 'wcj_load_modules_on_init', 'no' ) ) {
31
+ load_plugin_textdomain( 'woocommerce-jetpack', false, dirname( plugin_basename( WCJ_PLUGIN_FILE ) ) . '/langs/' );
32
+ } else {
33
+ add_action( 'init', function () {
34
+ load_plugin_textdomain( 'woocommerce-jetpack', false, dirname( plugin_basename( WCJ_PLUGIN_FILE ) ) . '/langs/' );
35
+ }, 9 );
36
+ }
37
 
38
  // Include required core files used in admin and on the frontend
39
 
68
  require_once( WCJ_PLUGIN_PATH . '/includes/widgets/class-wcj-widget-left-to-free-shipping.php' );
69
  require_once( WCJ_PLUGIN_PATH . '/includes/widgets/class-wcj-widget-selector.php' );
70
 
71
+ // Scripts
72
+ require_once( 'class-wcj-scripts.php' );
73
+
74
  // Modules and Submodules
75
+ if ( 'no' === get_option( 'wcj_load_modules_on_init', 'no' ) ) {
76
+ require_once( 'wcj-modules.php' );
77
 
78
+ // Add and Manage options
79
+ require_once( 'wcj-options.php' );
80
 
81
+ // Admin
82
+ require_once( 'class-wcj-admin.php' );
83
 
84
+ // Settings manager
85
+ require_once( WCJ_PLUGIN_PATH . '/includes/admin/class-wcj-settings-manager.php' );
86
+
87
+ // Loaded action
88
+ do_action( 'wcj_loaded' );
89
+ } else {
90
+ add_action( 'init', function () {
91
+ require_once( 'wcj-modules.php' );
92
+
93
+ // Add and Manage options
94
+ require_once( 'wcj-options.php' );
95
+
96
+ // Admin
97
+ require_once( 'class-wcj-admin.php' );
98
 
99
+ // Settings manager
100
+ require_once( WCJ_PLUGIN_PATH . '/includes/admin/class-wcj-settings-manager.php' );
101
 
102
+ // Loaded action
103
+ do_action( 'wcj_loaded' );
104
+ }, 10 );
105
+ }
includes/functions/wcj-functions-admin.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Functions - Admin
4
  *
5
- * @version 4.3.0
6
  * @since 2.9.0
7
  * @author Algoritmika Ltd.
8
  */
@@ -121,7 +121,7 @@ if ( ! function_exists( 'wcj_get_ajax_settings' ) ) {
121
  /**
122
  * wcj_get_ajax_settings
123
  *
124
- * @version 4.3.0
125
  * @since 4.3.0
126
  *
127
  * @param $values
@@ -137,8 +137,10 @@ if ( ! function_exists( 'wcj_get_ajax_settings' ) ) {
137
  if ( $search_type == 'woocommerce_json_search_products' || $search_type == 'woocommerce_json_search_products_and_variations' ) {
138
  $class = 'wc-product-search';
139
  foreach ( $options_raw as $product_id ) {
140
- $product = wc_get_product( $product_id );
141
- $options[ $product_id ] = wp_kses_post( $product->get_formatted_name() );
 
 
142
  }
143
  } elseif ( $search_type == 'woocommerce_json_search_categories' ) {
144
  $class = 'wc-category-search';
2
  /**
3
  * Booster for WooCommerce - Functions - Admin
4
  *
5
+ * @version 4.4.0
6
  * @since 2.9.0
7
  * @author Algoritmika Ltd.
8
  */
121
  /**
122
  * wcj_get_ajax_settings
123
  *
124
+ * @version 4.4.0
125
  * @since 4.3.0
126
  *
127
  * @param $values
137
  if ( $search_type == 'woocommerce_json_search_products' || $search_type == 'woocommerce_json_search_products_and_variations' ) {
138
  $class = 'wc-product-search';
139
  foreach ( $options_raw as $product_id ) {
140
+ $product = wc_get_product( $product_id );
141
+ if ( is_a( $product, 'WC_Product' ) ) {
142
+ $options[ $product_id ] = wp_kses_post( $product->get_formatted_name() );
143
+ }
144
  }
145
  } elseif ( $search_type == 'woocommerce_json_search_categories' ) {
146
  $class = 'wc-category-search';
includes/functions/wcj-functions-exchange-rates.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Functions - Exchange Rates
4
  *
5
- * @version 4.3.0
6
  * @since 2.7.0
7
  * @author Algoritmika Ltd.
8
  */
@@ -187,12 +187,18 @@ if ( ! function_exists( 'wcj_currencyconverterapi_get_exchange_rate' ) ) {
187
  /*
188
  * wcj_currencyconverterapi_get_exchange_rate.
189
  *
190
- * @version 3.9.0
191
  * @since 3.9.0
192
  */
193
  function wcj_currencyconverterapi_get_exchange_rate( $currency_from, $currency_to ) {
194
- $pair = $currency_from . '_' . $currency_to;
195
- $url = 'https://free.currencyconverterapi.com/api/v5/convert?q=' . $pair . '&compact=y';
 
 
 
 
 
 
196
  $response = wcj_get_currency_exchange_rates_url_response( $url );
197
  if ( $response ) {
198
  return ( ! empty( $response->{$pair}->val ) ? $response->{$pair}->val : false );
@@ -491,7 +497,7 @@ if ( ! function_exists( 'wcj_currencyconverterapi_io_get_exchange_rate_average'
491
  /*
492
  * wcj_currencyconverterapi_io_get_exchange_rate_average.
493
  *
494
- * @version 3.9.0
495
  * @since 3.9.0
496
  * @return false or rate
497
  */
@@ -501,7 +507,13 @@ if ( ! function_exists( 'wcj_currencyconverterapi_io_get_exchange_rate_average'
501
  $average_rate_counter = 0;
502
  $date_ranges = wcj_get_date_ranges( $start_date, $end_date, 8 );
503
  foreach ( $date_ranges as $range ) {
504
- $url = 'https://free.currencyconverterapi.com/api/v6/convert?q=' . $pair . '&compact=ultra&date=' . $range['start_date'] . '&endDate=' . $range['end_date'];
 
 
 
 
 
 
505
  $response = wcj_get_currency_exchange_rates_url_response( $url );
506
  if ( $response && ! empty( $response->{$pair} ) ) {
507
  $response = ( array ) $response->{$pair};
2
  /**
3
  * Booster for WooCommerce - Functions - Exchange Rates
4
  *
5
+ * @version 4.4.0
6
  * @since 2.7.0
7
  * @author Algoritmika Ltd.
8
  */
187
  /*
188
  * wcj_currencyconverterapi_get_exchange_rate.
189
  *
190
+ * @version 4.4.0
191
  * @since 3.9.0
192
  */
193
  function wcj_currencyconverterapi_get_exchange_rate( $currency_from, $currency_to ) {
194
+ $pair = $currency_from . '_' . $currency_to;
195
+ $url = 'https://free.currencyconverterapi.com/api/v6/convert?q=' . $pair . '&compact=y';
196
+ $api_key = get_option( 'wcj_currency_exchange_api_key_fccapi' );
197
+ if ( ! empty( $api_key ) ) {
198
+ $url = add_query_arg( array(
199
+ 'apiKey' => $api_key
200
+ ), $url );
201
+ }
202
  $response = wcj_get_currency_exchange_rates_url_response( $url );
203
  if ( $response ) {
204
  return ( ! empty( $response->{$pair}->val ) ? $response->{$pair}->val : false );
497
  /*
498
  * wcj_currencyconverterapi_io_get_exchange_rate_average.
499
  *
500
+ * @version 4.4.0
501
  * @since 3.9.0
502
  * @return false or rate
503
  */
507
  $average_rate_counter = 0;
508
  $date_ranges = wcj_get_date_ranges( $start_date, $end_date, 8 );
509
  foreach ( $date_ranges as $range ) {
510
+ $url = 'https://free.currencyconverterapi.com/api/v6/convert?q=' . $pair . '&compact=ultra&date=' . $range['start_date'] . '&endDate=' . $range['end_date'];
511
+ $api_key = get_option( 'wcj_currency_exchange_api_key_fccapi' );
512
+ if ( ! empty( $api_key ) ) {
513
+ $url = add_query_arg( array(
514
+ 'apiKey' => $api_key
515
+ ), $url );
516
+ }
517
  $response = wcj_get_currency_exchange_rates_url_response( $url );
518
  if ( $response && ! empty( $response->{$pair} ) ) {
519
  $response = ( array ) $response->{$pair};
includes/functions/wcj-functions-general.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Functions - General
4
  *
5
- * @version 4.3.0
6
  * @author Algoritmika Ltd.
7
  * @todo add `wcj_add_actions()` and `wcj_add_filters()`
8
  */
@@ -823,3 +823,30 @@ if ( ! function_exists( 'wcj_get_shortcodes_list' ) ) {
823
  return implode( ', ', $the_array )/* . ' (' . count( $the_array ) . ')' */;
824
  }
825
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  /**
3
  * Booster for WooCommerce - Functions - General
4
  *
5
+ * @version 4.4.0
6
  * @author Algoritmika Ltd.
7
  * @todo add `wcj_add_actions()` and `wcj_add_filters()`
8
  */
823
  return implode( ', ', $the_array )/* . ' (' . count( $the_array ) . ')' */;
824
  }
825
  }
826
+
827
+ if ( ! function_exists( 'wcj_get_cart_item_quantities' ) ) {
828
+ /**
829
+ * Gets cart items quantities, with correct variation id, where native function from WooCommerce fails getting only the parent id if Manage Stock option is enabled.
830
+ *
831
+ * @see WC_Cart::get_cart_item_quantities();
832
+ *
833
+ * @version 4.4.0
834
+ * @since 4.4.0
835
+ * @return array
836
+ */
837
+ function wcj_get_cart_item_quantities() {
838
+ $quantities = array();
839
+
840
+ foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
841
+ $product = $values['data'];
842
+ if ( 'variation' == $product->get_type() ) {
843
+ $product_id = ( 0 != $values['variation_id'] ? $values['variation_id'] : $values['parent_id'] );
844
+ } else {
845
+ $product_id = $values['product_id'];
846
+ }
847
+ $quantities[ $product_id ] = isset( $quantities[ $product->get_stock_managed_by_id() ] ) ? $quantities[ $product->get_stock_managed_by_id() ] + $values['quantity'] : $values['quantity'];
848
+ }
849
+
850
+ return $quantities;
851
+ }
852
+ }
includes/functions/wcj-functions-price-currency.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Functions - Price and Currency
4
  *
5
- * @version 4.2.0
6
  * @since 2.7.0
7
  * @author Algoritmika Ltd.
8
  */
@@ -203,7 +203,7 @@ if ( ! function_exists( 'wcj_price_by_country' ) ) {
203
  /**
204
  * wcj_price_by_country.
205
  *
206
- * @version 3.6.0
207
  * @since 2.5.3
208
  */
209
  function wcj_price_by_country( $price, $product, $group_id, $the_current_filter = '' ) {
@@ -281,29 +281,17 @@ if ( ! function_exists( 'wcj_price_by_country' ) ) {
281
 
282
  if ( ! $is_price_modified ) {
283
  // Globally
 
 
284
  $country_exchange_rate = get_option( 'wcj_price_by_country_exchange_rate_group_' . $group_id, 1 );
285
- // if ( 1 != $country_exchange_rate ) {
286
- $modified_price = $price * $country_exchange_rate;
287
- $rounding = get_option( 'wcj_price_by_country_rounding', 'none' );
288
- $precision = get_option( 'woocommerce_price_num_decimals', 2 );
289
- switch ( $rounding ) {
290
- case 'round':
291
- $modified_price = round( $modified_price );
292
- break;
293
- case 'floor':
294
- $modified_price = floor( $modified_price );
295
- break;
296
- case 'ceil':
297
- $modified_price = ceil( $modified_price );
298
- break;
299
- default: // case 'none':
300
- $modified_price = round( $modified_price, $precision ); // $modified_price
301
- break;
302
  }
303
- $is_price_modified = true;
304
- // }
305
- if ( 'yes' === get_option( 'wcj_price_by_country_make_pretty', 'no' ) && $modified_price >= 0.5 && $precision > 0 ) {
306
- $modified_price = round( $modified_price ) - ( get_option( 'wcj_price_by_country_make_pretty_min_amount_multiplier', 1 ) / pow( 10, $precision ) );
307
  }
308
  }
309
 
@@ -311,6 +299,61 @@ if ( ! function_exists( 'wcj_price_by_country' ) ) {
311
  }
312
  }
313
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
314
  if ( ! function_exists( 'wcj_update_products_price_by_country_for_single_product' ) ) {
315
  /**
316
  * wcj_update_products_price_by_country_for_single_product.
2
  /**
3
  * Booster for WooCommerce - Functions - Price and Currency
4
  *
5
+ * @version 4.4.0
6
  * @since 2.7.0
7
  * @author Algoritmika Ltd.
8
  */
203
  /**
204
  * wcj_price_by_country.
205
  *
206
+ * @version 4.4.0
207
  * @since 2.5.3
208
  */
209
  function wcj_price_by_country( $price, $product, $group_id, $the_current_filter = '' ) {
281
 
282
  if ( ! $is_price_modified ) {
283
  // Globally
284
+ $precision = get_option( 'woocommerce_price_num_decimals', 2 );
285
+ $rounding = get_option( 'wcj_price_by_country_rounding', 'none' );
286
  $country_exchange_rate = get_option( 'wcj_price_by_country_exchange_rate_group_' . $group_id, 1 );
287
+ $modified_price = $price * $country_exchange_rate;
288
+ $is_price_modified = true;
289
+
290
+ if ( 'get_price' === get_option( 'wcj_price_by_country_price_format_method', 'get_price' ) ) {
291
+ $modified_price = wcj_price_by_country_rounding( $modified_price, $precision, $rounding );
292
+ if ( 'yes' === get_option( 'wcj_price_by_country_make_pretty', 'no' ) && $modified_price >= 0.5 && $precision > 0 ) {
293
+ $modified_price = wcj_price_by_country_pretty_price( $modified_price, $precision );
 
 
 
 
 
 
 
 
 
 
294
  }
 
 
 
 
295
  }
296
  }
297
 
299
  }
300
  }
301
 
302
+ if ( ! function_exists( 'wcj_price_by_country_pretty_price' ) ) {
303
+ /**
304
+ * wcj_price_by_country_pretty_price.
305
+ *
306
+ * @version 4.4.0
307
+ * @since 4.4.0
308
+ *
309
+ * @param $price
310
+ * @param int $multiplier
311
+ * @param int $precision
312
+ *
313
+ * @return float|int
314
+ */
315
+ function wcj_price_by_country_pretty_price( $price, $precision = - 1, $multiplier = - 1 ) {
316
+ $precision = - 1 === $precision ? get_option( 'woocommerce_price_num_decimals', 2 ) : $precision;
317
+ $multiplier = - 1 === $multiplier ? get_option( 'wcj_price_by_country_make_pretty_min_amount_multiplier', 1 ) : $multiplier;
318
+ return round( $price ) - ( $multiplier / pow( 10, $precision ) );
319
+ }
320
+ }
321
+
322
+ if ( ! function_exists( 'wcj_price_by_country_rounding' ) ) {
323
+ /**
324
+ * wcj_price_by_country_rounding.
325
+ *
326
+ * @version 4.4.0
327
+ * @since 4.4.0
328
+ *
329
+ * @param $price
330
+ * @param int $precision
331
+ * @param string $rounding
332
+ *
333
+ * @return float
334
+ */
335
+ function wcj_price_by_country_rounding( $price, $precision = - 1, $rounding = '' ) {
336
+ $rounding = empty( $rounding ) ? get_option( 'wcj_price_by_country_rounding', 'none' ) : $rounding;
337
+ $precision = - 1 === $precision ? get_option( 'woocommerce_price_num_decimals', 2 ) : $precision;
338
+ switch ( $rounding ) {
339
+ case 'round':
340
+ $modified_price = round( $price );
341
+ break;
342
+ case 'floor':
343
+ $modified_price = floor( $price );
344
+ break;
345
+ case 'ceil':
346
+ $modified_price = ceil( $price );
347
+ break;
348
+ default: // case 'none':
349
+ $modified_price = round( $price, $precision ); // $modified_price
350
+ break;
351
+ }
352
+ return $modified_price;
353
+ }
354
+ }
355
+
356
+
357
  if ( ! function_exists( 'wcj_update_products_price_by_country_for_single_product' ) ) {
358
  /**
359
  * wcj_update_products_price_by_country_for_single_product.
includes/input-fields/class-wcj-product-input-fields-core.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Product Input Fields - Core
4
  *
5
- * @version 4.2.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
@@ -308,10 +308,14 @@ class WCJ_Product_Input_Fields_Core {
308
  /**
309
  * add_files_to_email_attachments.
310
  *
311
- * @version 2.8.0
312
  * @since 2.5.0
313
  */
314
  function add_files_to_email_attachments( $attachments, $status, $order ) {
 
 
 
 
315
  if (
316
  ( 'new_order' === $status && 'yes' === get_option( 'wcj_product_input_fields_attach_to_admin_new_order', 'yes' ) ) ||
317
  ( 'customer_processing_order' === $status && 'yes' === get_option( 'wcj_product_input_fields_attach_to_customer_processing_order', 'yes' ) )
@@ -362,7 +366,7 @@ class WCJ_Product_Input_Fields_Core {
362
  /**
363
  * output_custom_input_fields_in_admin_order.
364
  *
365
- * @version 4.2.0
366
  */
367
  function output_custom_input_fields_in_admin_order( $item_id, $item, $_product ) {
368
  if ( null === $_product ) {
@@ -379,7 +383,7 @@ class WCJ_Product_Input_Fields_Core {
379
  $value = maybe_unserialize( $value );
380
  if ( isset( $value['name'] ) ) {
381
  if ( isset( $value['wcj_uniqid'] ) ) {
382
- $value = '<a href="' . add_query_arg( 'wcj_download_file', $_product->get_id() . '_' . $i . '_' . $value['wcj_uniqid'] . '.' . pathinfo( $value['name'], PATHINFO_EXTENSION ) ) . '">' . $value['name'] . '</a>';
383
  } else {
384
  $value = '<a href="' . add_query_arg( 'wcj_download_file', $item_id . '_' . $i . '.' . pathinfo( $value['name'], PATHINFO_EXTENSION ) ) . '">' .$value['name'] . '</a>';
385
  }
2
  /**
3
  * Booster for WooCommerce - Product Input Fields - Core
4
  *
5
+ * @version 4.4.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
308
  /**
309
  * add_files_to_email_attachments.
310
  *
311
+ * @version 4.4.0
312
  * @since 2.5.0
313
  */
314
  function add_files_to_email_attachments( $attachments, $status, $order ) {
315
+ if ( is_null( $order ) ) {
316
+ return $attachments;
317
+ }
318
+
319
  if (
320
  ( 'new_order' === $status && 'yes' === get_option( 'wcj_product_input_fields_attach_to_admin_new_order', 'yes' ) ) ||
321
  ( 'customer_processing_order' === $status && 'yes' === get_option( 'wcj_product_input_fields_attach_to_customer_processing_order', 'yes' ) )
366
  /**
367
  * output_custom_input_fields_in_admin_order.
368
  *
369
+ * @version 4.4.0
370
  */
371
  function output_custom_input_fields_in_admin_order( $item_id, $item, $_product ) {
372
  if ( null === $_product ) {
383
  $value = maybe_unserialize( $value );
384
  if ( isset( $value['name'] ) ) {
385
  if ( isset( $value['wcj_uniqid'] ) ) {
386
+ $value = '<a href="' . add_query_arg( 'wcj_download_file', $_product_id . '_' . $i . '_' . $value['wcj_uniqid'] . '.' . pathinfo( $value['name'], PATHINFO_EXTENSION ) ) . '">' . $value['name'] . '</a>';
387
  } else {
388
  $value = '<a href="' . add_query_arg( 'wcj_download_file', $item_id . '_' . $i . '.' . pathinfo( $value['name'], PATHINFO_EXTENSION ) ) . '">' .$value['name'] . '</a>';
389
  }
includes/price-by-country/class-wcj-price-by-country-core.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Price by Country - Core
4
  *
5
- * @version 4.0.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
@@ -101,7 +101,7 @@ class WCJ_Price_by_Country_Core {
101
  /**
102
  * add_hooks.
103
  *
104
- * @version 3.9.0
105
  */
106
  function add_hooks() {
107
 
@@ -124,6 +124,35 @@ class WCJ_Price_by_Country_Core {
124
  add_filter( 'woocommerce_product_query_meta_query', array( $this, 'price_filter_meta_query' ), PHP_INT_MAX, 2 );
125
  add_filter( 'woocommerce_get_catalog_ordering_args', array( $this, 'sorting_by_price_fix' ), PHP_INT_MAX );
126
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  }
128
 
129
  /**
2
  /**
3
  * Booster for WooCommerce - Price by Country - Core
4
  *
5
+ * @version 4.4.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
101
  /**
102
  * add_hooks.
103
  *
104
+ * @version 4.4.0
105
  */
106
  function add_hooks() {
107
 
124
  add_filter( 'woocommerce_product_query_meta_query', array( $this, 'price_filter_meta_query' ), PHP_INT_MAX, 2 );
125
  add_filter( 'woocommerce_get_catalog_ordering_args', array( $this, 'sorting_by_price_fix' ), PHP_INT_MAX );
126
  }
127
+
128
+ // Price Format
129
+ if ( wcj_is_frontend() ) {
130
+ if ( 'wc_get_price_to_display' === get_option( 'wcj_price_by_country_price_format_method', 'get_price' ) ) {
131
+ add_filter( 'woocommerce_get_price_including_tax', array( $this, 'format_price_after_including_excluding_tax' ), PHP_INT_MAX, 3 );
132
+ add_filter( 'woocommerce_get_price_excluding_tax', array( $this, 'format_price_after_including_excluding_tax' ), PHP_INT_MAX, 3 );
133
+ }
134
+ }
135
+ }
136
+
137
+ /**
138
+ * format_price_after_including_excluding_tax.
139
+ *
140
+ * @version 4.4.0
141
+ * @since 4.4.0
142
+ *
143
+ * @param $return_price
144
+ * @param $qty
145
+ * @param $product
146
+ *
147
+ * @return float|int
148
+ */
149
+ function format_price_after_including_excluding_tax( $return_price, $qty, $product ) {
150
+ $precision = get_option( 'woocommerce_price_num_decimals', 2 );
151
+ $return_price = wcj_price_by_country_rounding( $return_price, $precision );
152
+ if ( 'yes' === get_option( 'wcj_price_by_country_make_pretty', 'no' ) && $return_price >= 0.5 && $precision > 0 ) {
153
+ $return_price = wcj_price_by_country_pretty_price( $return_price, $precision );
154
+ }
155
+ return $return_price;
156
  }
157
 
158
  /**
includes/settings/wcj-settings-currency-exchange-rates.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings - Currency Exchange Rates
4
  *
5
- * @version 3.9.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  * @todo add "rounding" and "fixed offset" options for each pair separately (and option to enable/disable these per pair extra settings)
@@ -109,6 +109,22 @@ $settings = array(
109
  'type' => 'sectionend',
110
  'id' => 'wcj_currency_exchange_rates_options',
111
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  array(
113
  'title' => __( 'Custom Currencies Options', 'woocommerce-jetpack' ),
114
  'desc' => sprintf(
2
  /**
3
  * Booster for WooCommerce - Settings - Currency Exchange Rates
4
  *
5
+ * @version 4.4.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  * @todo add "rounding" and "fixed offset" options for each pair separately (and option to enable/disable these per pair extra settings)
109
  'type' => 'sectionend',
110
  'id' => 'wcj_currency_exchange_rates_options',
111
  ),
112
+ array(
113
+ 'title' => __( 'API Keys', 'woocommerce-jetpack' ),
114
+ 'desc' => __( 'API keys provided by the Exchange Rates Servers', 'woocommerce-jetpack' ),
115
+ 'type' => 'title',
116
+ 'id' => 'wcj_currency_exchange_api_key',
117
+ ),
118
+ array(
119
+ 'title' => __( 'Free Currency Converter API', 'woocommerce-jetpack' ),
120
+ 'desc' => sprintf(__( 'More information at %s', 'woocommerce-jetpack' ),'<a target="_blank" href="https://free.currencyconverterapi.com/free-api-key">https://free.currencyconverterapi.com/free-api-key</a>'),
121
+ 'type' => 'text',
122
+ 'id' => 'wcj_currency_exchange_api_key_fccapi',
123
+ ),
124
+ array(
125
+ 'type' => 'sectionend',
126
+ 'id' => 'wcj_currency_exchange_api_key',
127
+ ),
128
  array(
129
  'title' => __( 'Custom Currencies Options', 'woocommerce-jetpack' ),
130
  'desc' => sprintf(
includes/settings/wcj-settings-emails-verification.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings - Email Verification
4
  *
5
- * @version 3.9.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  */
@@ -38,6 +38,14 @@ return array(
38
  'id' => 'wcj_emails_verification_redirect_on_success', // mislabelled - should be `wcj_emails_verification_login_on_success`
39
  'default' => 'yes',
40
  ),
 
 
 
 
 
 
 
 
41
  array(
42
  'title' => __( 'Redirect User After Successful Verification to Custom URL', 'woocommerce-jetpack' ),
43
  'desc_tip' => __( 'Redirect URL. Ignored if empty.', 'woocommerce-jetpack' ),
2
  /**
3
  * Booster for WooCommerce - Settings - Email Verification
4
  *
5
+ * @version 4.4.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  */
38
  'id' => 'wcj_emails_verification_redirect_on_success', // mislabelled - should be `wcj_emails_verification_login_on_success`
39
  'default' => 'yes',
40
  ),
41
+ array(
42
+ 'title' => __( 'Prevent User Login Globally', 'woocommerce-jetpack' ),
43
+ 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
44
+ 'desc_tip' => __( 'Enable if users are logged in automattically when they should not, like after registration on checkout', 'woocommerce-jetpack' ),
45
+ 'type' => 'checkbox',
46
+ 'id' => 'wcj_emails_verification_prevent_user_login',
47
+ 'default' => 'no',
48
+ ),
49
  array(
50
  'title' => __( 'Redirect User After Successful Verification to Custom URL', 'woocommerce-jetpack' ),
51
  'desc_tip' => __( 'Redirect URL. Ignored if empty.', 'woocommerce-jetpack' ),
includes/settings/wcj-settings-multicurrency-base-price.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings - Multicurrency Product Base Price
4
  *
5
- * @version 4.3.1
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  * @todo (maybe) `if ( isset( $all_currencies[ $currency_from ] ) ) { unset( $all_currencies[ $currency_from ] ); }`
@@ -74,18 +74,27 @@ $settings = array(
74
  ),
75
  array(
76
  'title' => __( 'Price Filters Priority', 'woocommerce-jetpack' ),
77
- 'desc_tip' => __( 'Priority for all module\'s price filters. Set to zero to use default priority.' ),
78
  'id' => 'wcj_multicurrency_base_price_advanced_price_hooks_priority',
79
  'default' => 0,
80
  'type' => 'number',
81
  ),
82
  array(
83
- 'title' => __( 'Price Filter Compatibility', 'woocommerce-jetpack' ),
84
- 'desc' => __( 'Add compatibility with WooCommerce Price Filter Widget' ),
85
  'id' => 'wcj_multicurrency_base_price_advanced_price_filter_comp',
86
  'default' => 'no',
87
  'type' => 'checkbox',
88
- ),array(
 
 
 
 
 
 
 
 
 
89
  'type' => 'sectionend',
90
  'id' => 'wcj_multicurrency_base_price_options',
91
  ),
2
  /**
3
  * Booster for WooCommerce - Settings - Multicurrency Product Base Price
4
  *
5
+ * @version 4.4.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  * @todo (maybe) `if ( isset( $all_currencies[ $currency_from ] ) ) { unset( $all_currencies[ $currency_from ] ); }`
74
  ),
75
  array(
76
  'title' => __( 'Price Filters Priority', 'woocommerce-jetpack' ),
77
+ 'desc_tip' => __( 'Priority for all module\'s price filters. Set to zero to use default priority.','woocommerce-jetpack' ),
78
  'id' => 'wcj_multicurrency_base_price_advanced_price_hooks_priority',
79
  'default' => 0,
80
  'type' => 'number',
81
  ),
82
  array(
83
+ 'title' => __( 'WooCommerce Price Filter Compatibility', 'woocommerce-jetpack' ),
84
+ 'desc' => __( 'Add compatibility with WooCommerce Price Filter Widget','woocommerce-jetpack' ),
85
  'id' => 'wcj_multicurrency_base_price_advanced_price_filter_comp',
86
  'default' => 'no',
87
  'type' => 'checkbox',
88
+ ),
89
+ array(
90
+ 'title' => __( 'Third Party Price Filter Compatibility', 'woocommerce-jetpack' ),
91
+ 'desc' => __( 'Add compatibility with Third Party Price Filter Widgets','woocommerce-jetpack' ),
92
+ 'desc_tip' => __( 'Requires WooCommerce Price Filter Compatibility option enabled','woocommerce-jetpack' ),
93
+ 'id' => 'wcj_multicurrency_base_price_advanced_price_filter_comp_tp',
94
+ 'default' => 'no',
95
+ 'type' => 'checkbox',
96
+ ),
97
+ array(
98
  'type' => 'sectionend',
99
  'id' => 'wcj_multicurrency_base_price_options',
100
  ),
includes/settings/wcj-settings-multicurrency.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings - Multicurrency (Currency Switcher)
4
  *
5
- * @version 4.3.1
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  * @todo "pretty prices"
@@ -121,6 +121,14 @@ $settings = array(
121
  'default' => 'yes',
122
  'type' => 'checkbox',
123
  ),
 
 
 
 
 
 
 
 
124
  array(
125
  'type' => 'sectionend',
126
  'id' => 'wcj_multicurrency_compatibility',
2
  /**
3
  * Booster for WooCommerce - Settings - Multicurrency (Currency Switcher)
4
  *
5
+ * @version 4.4.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  * @todo "pretty prices"
121
  'default' => 'yes',
122
  'type' => 'checkbox',
123
  ),
124
+ array(
125
+ 'title' => __( 'WooCommerce Import', 'woocommerce-jetpack' ),
126
+ 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
127
+ 'desc_tip' => __( 'This option fixes WooCommerce Import Tool preventing it from converting some uppercase meta to lowercase', 'woocommerce-jetpack' ),
128
+ 'id' => 'wcj_multicurrency_compatibility_wc_import',
129
+ 'default' => 'no',
130
+ 'type' => 'checkbox',
131
+ ),
132
  array(
133
  'type' => 'sectionend',
134
  'id' => 'wcj_multicurrency_compatibility',
includes/settings/wcj-settings-offer-price.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings - Offer Price
4
  *
5
- * @version 4.2.0
6
  * @since 2.9.0
7
  * @author Algoritmika Ltd.
8
  */
@@ -44,6 +44,14 @@ return array(
44
  'options' => wcj_get_terms( 'product_cat' ),
45
  'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
46
  ),
 
 
 
 
 
 
 
 
47
  array(
48
  'id' => 'wcj_offer_price_general_options',
49
  'type' => 'sectionend',
@@ -325,7 +333,7 @@ return array(
325
  ),
326
  array(
327
  'title' => __( 'Email Template', 'woocommerce-jetpack' ),
328
- 'desc' => wcj_message_replaced_values( array( '%product_title%', '%offered_price%', '%customer_name%', '%customer_email%', '%customer_message%' ) ),
329
  'id' => 'wcj_offer_price_email_template',
330
  'type' => 'custom_textarea',
331
  'default' =>
@@ -339,4 +347,21 @@ return array(
339
  'id' => 'wcj_offer_price_email_options',
340
  'type' => 'sectionend',
341
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
342
  );
2
  /**
3
  * Booster for WooCommerce - Settings - Offer Price
4
  *
5
+ * @version 4.4.0
6
  * @since 2.9.0
7
  * @author Algoritmika Ltd.
8
  */
44
  'options' => wcj_get_terms( 'product_cat' ),
45
  'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
46
  ),
47
+ array(
48
+ 'title' => __( 'Exclude', 'woocommerce-jetpack' ),
49
+ 'desc' => __( 'Out of stock', 'woocommerce-jetpack' ),
50
+ 'desc_tip' => __( 'Excludes out of stock products.', 'woocommerce-jetpack' ),
51
+ 'id' => 'wcj_offer_price_exclude_out_of_stock',
52
+ 'type' => 'checkbox',
53
+ 'default' => 'no',
54
+ ),
55
  array(
56
  'id' => 'wcj_offer_price_general_options',
57
  'type' => 'sectionend',
333
  ),
334
  array(
335
  'title' => __( 'Email Template', 'woocommerce-jetpack' ),
336
+ 'desc' => wcj_message_replaced_values( array( '%product_title%', '%offered_price%', '%customer_name%', '%customer_email%', '%customer_message%', '%user_ip%', '%user_agent%' ) ),
337
  'id' => 'wcj_offer_price_email_template',
338
  'type' => 'custom_textarea',
339
  'default' =>
347
  'id' => 'wcj_offer_price_email_options',
348
  'type' => 'sectionend',
349
  ),
350
+ array(
351
+ 'title' => __( 'Admin Options', 'woocommerce-jetpack' ),
352
+ 'id' => 'wcj_offer_price_admin_options',
353
+ 'type' => 'title',
354
+ ),
355
+ array(
356
+ 'title' => __( 'Offer Price History Meta Box Columns', 'woocommerce-jetpack' ),
357
+ 'id' => 'wcj_offer_price_admin_meta_box_columns',
358
+ 'type' => 'multiselect',
359
+ 'class' => 'chosen_select',
360
+ 'default' => array( 'date', 'offered_price', 'customer_message', 'customer_name', 'customer_email', 'customer_id', 'user_ip', 'sent_to' ),
361
+ 'options' => $this->get_admin_meta_box_columns(),
362
+ ),
363
+ array(
364
+ 'id' => 'wcj_offer_price_admin_options',
365
+ 'type' => 'sectionend',
366
+ ),
367
  );
includes/settings/wcj-settings-payment-gateways-min-max.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings - Gateways Min/Max Amounts
4
  *
5
- * @version 2.8.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  * @todo checkout notices - add %diff_amount% and %total_in_cart% replaced values (wc_has_notice won't work then?, probably will need to use wc_clear_notices)
@@ -61,6 +61,22 @@ $settings = array(
61
  'type' => 'sectionend',
62
  'id' => 'wcj_payment_gateways_min_max_general_options',
63
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  array(
65
  'title' => __( 'Payment Gateways', 'woocommerce-jetpack' ),
66
  'type' => 'title',
2
  /**
3
  * Booster for WooCommerce - Settings - Gateways Min/Max Amounts
4
  *
5
+ * @version 4.4.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  * @todo checkout notices - add %diff_amount% and %total_in_cart% replaced values (wc_has_notice won't work then?, probably will need to use wc_clear_notices)
61
  'type' => 'sectionend',
62
  'id' => 'wcj_payment_gateways_min_max_general_options',
63
  ),
64
+ array(
65
+ 'title' => __( 'Compatibility', 'woocommerce-jetpack' ),
66
+ 'type' => 'title',
67
+ 'id' => 'wcj_payment_gateways_min_max_comp',
68
+ ),
69
+ array(
70
+ 'title' => __( 'Multicurrency', 'woocommerce-jetpack'),
71
+ 'desc' => __( 'Enable compatibility with Multicurrency module', 'woocommerce-jetpack'),
72
+ 'id' => 'wcj_payment_gateways_min_max_comp_mc',
73
+ 'default' => 'no',
74
+ 'type' => 'checkbox',
75
+ ),
76
+ array(
77
+ 'type' => 'sectionend',
78
+ 'id' => 'wcj_payment_gateways_min_max_comp',
79
+ ),
80
  array(
81
  'title' => __( 'Payment Gateways', 'woocommerce-jetpack' ),
82
  'type' => 'title',
includes/settings/wcj-settings-price-by-country.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings - Prices and Currencies by Country
4
  *
5
- * @version 3.9.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  */
@@ -153,14 +153,23 @@ $settings = array(
153
  'type' => 'checkbox',
154
  ),
155
  array(
156
- 'title' => __( 'Advanced: Price Filters Priority', 'woocommerce-jetpack' ),
 
 
 
 
 
 
 
 
 
157
  'desc_tip' => __( 'Priority for all module\'s price filters. Set to zero to use default priority.' ),
158
  'id' => 'wcj_price_by_country_advanced_price_hooks_priority',
159
  'default' => 0,
160
  'type' => 'number',
161
  ),
162
  array(
163
- 'title' => __( 'Advanced: User IP Detection Method', 'woocommerce-jetpack' ),
164
  'id' => 'wcj_price_by_country_ip_detection_method',
165
  'default' => 'wc',
166
  'type' => 'select',
@@ -169,9 +178,20 @@ $settings = array(
169
  'booster' => __( 'Booster', 'woocommerce-jetpack' ),
170
  ),
171
  ),
 
 
 
 
 
 
 
 
 
 
 
172
  array(
173
  'type' => 'sectionend',
174
- 'id' => 'wcj_price_by_country_options',
175
  ),
176
  array(
177
  'title' => __( 'Country Groups', 'woocommerce-jetpack' ),
2
  /**
3
  * Booster for WooCommerce - Settings - Prices and Currencies by Country
4
  *
5
+ * @version 4.4.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  */
153
  'type' => 'checkbox',
154
  ),
155
  array(
156
+ 'type' => 'sectionend',
157
+ 'id' => 'wcj_price_by_country_options',
158
+ ),
159
+ array(
160
+ 'title' => __( 'Advanced', 'woocommerce-jetpack' ),
161
+ 'type' => 'title',
162
+ 'id' => 'wcj_price_by_country_country_advanced',
163
+ ),
164
+ array(
165
+ 'title' => __( 'Price Filters Priority', 'woocommerce-jetpack' ),
166
  'desc_tip' => __( 'Priority for all module\'s price filters. Set to zero to use default priority.' ),
167
  'id' => 'wcj_price_by_country_advanced_price_hooks_priority',
168
  'default' => 0,
169
  'type' => 'number',
170
  ),
171
  array(
172
+ 'title' => __( 'User IP Detection Method', 'woocommerce-jetpack' ),
173
  'id' => 'wcj_price_by_country_ip_detection_method',
174
  'default' => 'wc',
175
  'type' => 'select',
178
  'booster' => __( 'Booster', 'woocommerce-jetpack' ),
179
  ),
180
  ),
181
+ array(
182
+ 'title' => __( 'Price Format Method', 'woocommerce-jetpack' ),
183
+ 'desc_tip' => __( 'The moment "Pretty Price" and "Rounding" will be applied' ),
184
+ 'id' => 'wcj_price_by_country_price_format_method',
185
+ 'default' => 'get_price',
186
+ 'type' => 'select',
187
+ 'options' => array(
188
+ 'get_price' => __( 'get_price()', 'woocommerce-jetpack' ),
189
+ 'wc_get_price_to_display' => __( 'wc_get_price_to_display()', 'woocommerce-jetpack' ),
190
+ ),
191
+ ),
192
  array(
193
  'type' => 'sectionend',
194
+ 'id' => 'wcj_price_by_country_country_advanced',
195
  ),
196
  array(
197
  'title' => __( 'Country Groups', 'woocommerce-jetpack' ),
includes/settings/wcj-settings-product-msrp.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings - Product MSRP
4
  *
5
- * @version 3.6.0
6
  * @since 3.6.0
7
  * @author Algoritmika Ltd.
8
  */
@@ -101,5 +101,21 @@ $settings = array_merge( $settings, array(
101
  'type' => 'sectionend',
102
  'id' => 'wcj_product_msrp_admin_options',
103
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  ) );
105
  return $settings;
2
  /**
3
  * Booster for WooCommerce - Settings - Product MSRP
4
  *
5
+ * @version 4.4.0
6
  * @since 3.6.0
7
  * @author Algoritmika Ltd.
8
  */
101
  'type' => 'sectionend',
102
  'id' => 'wcj_product_msrp_admin_options',
103
  ),
104
+ array(
105
+ 'title' => __( 'Compatibility', 'woocommerce-jetpack' ),
106
+ 'type' => 'title',
107
+ 'id' => 'wcj_payment_msrp_comp',
108
+ ),
109
+ array(
110
+ 'title' => __( 'Multicurrency', 'woocommerce-jetpack'),
111
+ 'desc' => __( 'Enable compatibility with Multicurrency module', 'woocommerce-jetpack'),
112
+ 'id' => 'wcj_payment_msrp_comp_mc',
113
+ 'default' => 'no',
114
+ 'type' => 'checkbox',
115
+ ),
116
+ array(
117
+ 'type' => 'sectionend',
118
+ 'id' => 'wcj_payment_msrp_comp',
119
+ ),
120
  ) );
121
  return $settings;
includes/settings/wcj-settings-product-open-pricing.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings - Product Open Pricing
4
  *
5
- * @version 4.2.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  * @todo set default for "wcj_product_open_price_enable_js_validation" to "yes"
@@ -143,6 +143,26 @@ return array(
143
  'default' => 'yes',
144
  'type' => 'checkbox',
145
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  array(
147
  'type' => 'sectionend',
148
  'id' => 'wcj_product_open_price_options',
2
  /**
3
  * Booster for WooCommerce - Settings - Product Open Pricing
4
  *
5
+ * @version 4.4.0
6
  * @since 2.8.0
7
  * @author Algoritmika Ltd.
8
  * @todo set default for "wcj_product_open_price_enable_js_validation" to "yes"
143
  'default' => 'yes',
144
  'type' => 'checkbox',
145
  ),
146
+ array(
147
+ 'title' => __( 'Advanced: Price Changes', 'woocommerce-jetpack' ),
148
+ 'desc' => __( 'Disable open pricing for products with "Price Changes"', 'woocommerce-jetpack' ),
149
+ 'desc_tip' => __( 'Try enabling this checkbox, if you are having compatibility issues with other plugins.', 'woocommerce-jetpack' ),
150
+ 'id' => 'wcj_product_open_price_check_for_product_changes_price',
151
+ 'default' => 'no',
152
+ 'type' => 'checkbox',
153
+ ),
154
+ array(
155
+ 'title' => __( 'Product Bundles', 'woocommerce-jetpack' ),
156
+ 'desc_tip' => __( 'For "WPC Product Bundles for WooCommerce" plugin.', 'woocommerce-jetpack' ),
157
+ 'id' => 'wcj_product_open_price_woosb_product_bundles_divide',
158
+ 'default' => 'no',
159
+ 'type' => 'select',
160
+ 'options' => array(
161
+ 'no' => __( 'No not divide', 'woocommerce-jetpack' ),
162
+ 'yes' => __( 'Divide by number of products in a bundle', 'woocommerce-jetpack' ),
163
+ 'proportionally' => __( 'Divide proportionally to the original price', 'woocommerce-jetpack' ),
164
+ ),
165
+ ),
166
  array(
167
  'type' => 'sectionend',
168
  'id' => 'wcj_product_open_price_options',
includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Shipping - Custom Shipping with Shipping Zones
4
  *
5
- * @version 3.9.0
6
  * @since 2.5.6
7
  * @author Algoritmika Ltd.
8
  */
@@ -28,7 +28,7 @@ class WC_Shipping_WCJ_Custom_W_Zones extends WC_Shipping_Method {
28
  /**
29
  * Init settings
30
  *
31
- * @version 3.8.0
32
  * @since 2.5.6
33
  * @access public
34
  * @return void
@@ -63,14 +63,16 @@ class WC_Shipping_WCJ_Custom_W_Zones extends WC_Shipping_Method {
63
 
64
  // Add weight table rows
65
  if ( apply_filters( 'wcj_custom_shipping_do_add_table_rows', true, $this ) ) {
66
- add_filter( 'woocommerce_shipping_instance_form_fields_' . $this->id, array( $this, 'add_table_rows' ) );
 
 
67
  }
68
  }
69
 
70
  /**
71
  * add_table_rows.
72
  *
73
- * @version 3.9.0
74
  * @since 2.6.0
75
  */
76
  function add_table_rows( $instance_form_fields ) {
@@ -98,6 +100,7 @@ class WC_Shipping_WCJ_Custom_W_Zones extends WC_Shipping_Method {
98
  ) );
99
  }
100
  }
 
101
  }
102
  return $instance_form_fields;
103
  }
2
  /**
3
  * Booster for WooCommerce - Shipping - Custom Shipping with Shipping Zones
4
  *
5
+ * @version 4.4.0
6
  * @since 2.5.6
7
  * @author Algoritmika Ltd.
8
  */
28
  /**
29
  * Init settings
30
  *
31
+ * @version 4.4.0
32
  * @since 2.5.6
33
  * @access public
34
  * @return void
63
 
64
  // Add weight table rows
65
  if ( apply_filters( 'wcj_custom_shipping_do_add_table_rows', true, $this ) ) {
66
+ if ( ! has_filter( 'woocommerce_shipping_instance_form_fields_' . $this->id, array( $this, 'add_table_rows' ) ) ) {
67
+ add_filter( 'woocommerce_shipping_instance_form_fields_' . $this->id, array( $this, 'add_table_rows' ) );
68
+ }
69
  }
70
  }
71
 
72
  /**
73
  * add_table_rows.
74
  *
75
+ * @version 4.4.0
76
  * @since 2.6.0
77
  */
78
  function add_table_rows( $instance_form_fields ) {
100
  ) );
101
  }
102
  }
103
+ remove_filter( 'woocommerce_shipping_instance_form_fields_' . $this->id, array( $this, 'add_table_rows' ) );
104
  }
105
  return $instance_form_fields;
106
  }
includes/shortcodes/class-wcj-shortcodes-order-items.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Shortcodes - Order Items
4
  *
5
- * @version 3.5.1
6
  * @author Algoritmika Ltd.
7
  */
8
 
@@ -442,7 +442,7 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
442
  /**
443
  * get_cell.
444
  *
445
- * @version 3.5.1
446
  * @since 3.2.0
447
  * @todo do we need `pa_` replacement?
448
  * @todo "WooCommerce TM Extra Product Options" plugin options: this will show options prices in shop's default currency only (must use 'price_per_currency' to show prices in order's currency)
@@ -725,6 +725,13 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
725
  case 'product_id':
726
  return ( ! is_object( $the_product ) ) ? '' : $the_product->get_id();
727
 
 
 
 
 
 
 
 
728
  case 'item_product_id':
729
  return ( true === $item['is_custom'] ) ? '' : $item['product_id'];
730
 
2
  /**
3
  * Booster for WooCommerce - Shortcodes - Order Items
4
  *
5
+ * @version 4.4.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
442
  /**
443
  * get_cell.
444
  *
445
+ * @version 4.4.0
446
  * @since 3.2.0
447
  * @todo do we need `pa_` replacement?
448
  * @todo "WooCommerce TM Extra Product Options" plugin options: this will show options prices in shop's default currency only (must use 'price_per_currency' to show prices in order's currency)
725
  case 'product_id':
726
  return ( ! is_object( $the_product ) ) ? '' : $the_product->get_id();
727
 
728
+ case 'product_shipping_class':
729
+ return ( ! is_object( $the_product ) ) ? '' :
730
+ ( '' != ( $shipping_class = $the_product->get_shipping_class() ) || ! isset( $column_param ) || '' == $column_param ? $shipping_class : $column_param );
731
+
732
+ case 'product_shipping_class_id':
733
+ return ( ! is_object( $the_product ) ) ? '' : $the_product->get_shipping_class_id();
734
+
735
  case 'item_product_id':
736
  return ( true === $item['is_custom'] ) ? '' : $item['product_id'];
737
 
includes/shortcodes/class-wcj-shortcodes-orders.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Shortcodes - Orders
4
  *
5
- * @version 4.2.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
@@ -532,12 +532,6 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
532
  $total_fees_tax = 0;
533
  $the_fees = $this->the_order->get_fees();
534
  foreach ( $the_fees as $the_fee ) {
535
- /* $taxes = maybe_unserialize( $the_fee['line_tax_data'] );
536
- if ( ! empty( $taxes ) && is_array( $taxes ) && isset( $taxes['total'] ) && is_array( $taxes['total'] ) ) {
537
- foreach ( $taxes['total'] as $tax ) {
538
- $total_fees_tax += $tax;
539
- }
540
- } */
541
  $total_fees_tax += $this->the_order->get_line_tax( $the_fee );
542
  }
543
  return $this->wcj_price_shortcode( $total_fees_tax, $atts );
@@ -555,12 +549,6 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
555
  $the_fees = $this->the_order->get_fees();
556
  foreach ( $the_fees as $the_fee ) {
557
  $total_fees += $the_fee['line_total'];
558
- /* $taxes = maybe_unserialize( $the_fee['line_tax_data'] );
559
- if ( ! empty( $taxes ) && is_array( $taxes ) && isset( $taxes['total'] ) && is_array( $taxes['total'] ) ) {
560
- foreach ( $taxes['total'] as $tax ) {
561
- $total_fees += $tax;
562
- }
563
- } */
564
  $total_fees += $this->the_order->get_line_tax( $the_fee );
565
  }
566
  return $this->wcj_price_shortcode( $total_fees, $atts );
@@ -660,7 +648,7 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
660
  /**
661
  * get_order_total
662
  *
663
- * @version 2.5.7
664
  * @since 2.5.7
665
  */
666
  function get_order_total( $atts, $param ) {
@@ -672,16 +660,16 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
672
  if ( $_product ) {
673
  switch ( $param ) {
674
  case 'width':
675
- $total += ( $item['qty'] * $_product->get_width() );
676
  break;
677
  case 'height':
678
- $total += ( $item['qty'] * $_product->get_height() );
679
  break;
680
  case 'length':
681
- $total += ( $item['qty'] * $_product->get_length() );
682
  break;
683
  case 'weight':
684
- $total += ( $item['qty'] * $_product->get_weight() );
685
  break;
686
  }
687
  }
2
  /**
3
  * Booster for WooCommerce - Shortcodes - Orders
4
  *
5
+ * @version 4.4.0
6
  * @author Algoritmika Ltd.
7
  */
8
 
532
  $total_fees_tax = 0;
533
  $the_fees = $this->the_order->get_fees();
534
  foreach ( $the_fees as $the_fee ) {
 
 
 
 
 
 
535
  $total_fees_tax += $this->the_order->get_line_tax( $the_fee );
536
  }
537
  return $this->wcj_price_shortcode( $total_fees_tax, $atts );
549
  $the_fees = $this->the_order->get_fees();
550
  foreach ( $the_fees as $the_fee ) {
551
  $total_fees += $the_fee['line_total'];
 
 
 
 
 
 
552
  $total_fees += $this->the_order->get_line_tax( $the_fee );
553
  }
554
  return $this->wcj_price_shortcode( $total_fees, $atts );
648
  /**
649
  * get_order_total
650
  *
651
+ * @version 4.4.0
652
  * @since 2.5.7
653
  */
654
  function get_order_total( $atts, $param ) {
660
  if ( $_product ) {
661
  switch ( $param ) {
662
  case 'width':
663
+ $total += ( $item['qty'] * floatval( $_product->get_width() ) );
664
  break;
665
  case 'height':
666
+ $total += ( $item['qty'] * floatval( $_product->get_height() ) );
667
  break;
668
  case 'length':
669
+ $total += ( $item['qty'] * floatval( $_product->get_length() ) );
670
  break;
671
  case 'weight':
672
+ $total += ( $item['qty'] * floatval( $_product->get_weight() ) );
673
  break;
674
  }
675
  }
langs/woocommerce-jetpack.pot CHANGED
@@ -77,7 +77,7 @@ msgstr ""
77
 
78
  #: includes/class-wcj-admin-bar.php:172
79
  #: includes/admin/class-wc-settings-jetpack.php:416
80
- #: includes/classes/class-wcj-module.php:694
81
  msgid "Documentation"
82
  msgstr ""
83
 
@@ -96,7 +96,7 @@ msgstr ""
96
 
97
  #: includes/class-wcj-admin-bar.php:245 includes/class-wcj-admin-bar.php:288
98
  #: includes/class-wcj-admin-bar.php:632
99
- #: includes/classes/class-wcj-module.php:527
100
  #: includes/settings/wcj-settings-wpml.php:74
101
  msgid "Tools"
102
  msgstr ""
@@ -119,9 +119,9 @@ msgstr ""
119
  #: includes/class-wcj-track-users.php:251
120
  #: includes/admin/class-wc-settings-jetpack.php:24
121
  #: includes/admin/class-wc-settings-jetpack.php:221
122
- #: includes/classes/class-wcj-module.php:354
123
- #: includes/classes/class-wcj-module.php:554
124
- #: includes/settings/wcj-settings-price-by-country.php:169
125
  msgid "Booster"
126
  msgstr ""
127
 
@@ -172,8 +172,8 @@ msgstr ""
172
 
173
  #: includes/class-wcj-admin-bar.php:384
174
  #: includes/admin/class-wc-settings-jetpack.php:217
175
- #: includes/settings/wcj-settings-emails-verification.php:138
176
- #: includes/settings/wcj-settings-price-by-country.php:168
177
  msgid "WooCommerce"
178
  msgstr ""
179
 
@@ -227,6 +227,7 @@ msgid "Low in stock"
227
  msgstr ""
228
 
229
  #: includes/class-wcj-admin-bar.php:440
 
230
  #: includes/settings/wcj-settings-stock.php:101
231
  #: includes/shortcodes/class-wcj-shortcodes-products.php:565
232
  msgid "Out of stock"
@@ -1050,8 +1051,8 @@ msgid ""
1050
  msgstr ""
1051
 
1052
  #: includes/class-wcj-custom-php.php:32
1053
- #: includes/settings/wcj-settings-multicurrency.php:104
1054
- #: includes/settings/wcj-settings-offer-price.php:76
1055
  #, php-format
1056
  msgid "E.g.: %s"
1057
  msgstr ""
@@ -1092,8 +1093,8 @@ msgstr ""
1092
 
1093
  #: includes/class-wcj-email-options.php:26
1094
  #: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-emails.php:24
1095
- #: includes/settings/wcj-settings-emails-verification.php:107
1096
- #: includes/settings/wcj-settings-offer-price.php:301
1097
  msgid "Email Options"
1098
  msgstr ""
1099
 
@@ -1151,73 +1152,73 @@ msgstr ""
1151
  msgid "Add WooCommerce email verification."
1152
  msgstr ""
1153
 
1154
- #: includes/class-wcj-emails-verification.php:48
1155
  msgid "Verified"
1156
  msgstr ""
1157
 
1158
- #: includes/class-wcj-emails-verification.php:61
1159
  msgid "Email verified"
1160
  msgstr ""
1161
 
1162
- #: includes/class-wcj-emails-verification.php:62
1163
  msgid "Email not verified"
1164
  msgstr ""
1165
 
1166
- #: includes/class-wcj-emails-verification.php:100
1167
- #: includes/settings/wcj-settings-emails-verification.php:70
1168
  msgid ""
1169
  "Your account has to be activated before you can login. You can resend email "
1170
  "with verification link by clicking <a href=\"%resend_verification_url%"
1171
  "\">here</a>."
1172
  msgstr ""
1173
 
1174
- #: includes/class-wcj-emails-verification.php:120
1175
- #: includes/class-wcj-emails-verification.php:122
1176
- #: includes/settings/wcj-settings-emails-verification.php:125
1177
  msgid ""
1178
  "Please click the following link to verify your email:<br><br><a href="
1179
  "\"%verification_url%\">%verification_url%</a>"
1180
  msgstr ""
1181
 
1182
- #: includes/class-wcj-emails-verification.php:125
1183
- #: includes/class-wcj-emails-verification.php:127
1184
- #: includes/settings/wcj-settings-emails-verification.php:115
1185
  msgid "Please activate your account"
1186
  msgstr ""
1187
 
1188
- #: includes/class-wcj-emails-verification.php:132
1189
- #: includes/settings/wcj-settings-emails-verification.php:147
1190
  msgid "Activate your account"
1191
  msgstr ""
1192
 
1193
- #: includes/class-wcj-emails-verification.php:149
1194
- #: includes/settings/wcj-settings-emails-verification.php:62
1195
  msgid "<strong>Success:</strong> Your account has been activated!"
1196
  msgstr ""
1197
 
1198
- #: includes/class-wcj-emails-verification.php:166
1199
- #: includes/settings/wcj-settings-emails-verification.php:78
1200
  msgid ""
1201
  "<strong>Error:</strong> Activation failed, please contact our administrator. "
1202
  "You can resend email with verification link by clicking <a href="
1203
  "\"%resend_verification_url%\">here</a>."
1204
  msgstr ""
1205
 
1206
- #: includes/class-wcj-emails-verification.php:173
1207
- #: includes/settings/wcj-settings-emails-verification.php:85
1208
  msgid ""
1209
  "<strong>Error:</strong> Activation failed, please contact our administrator."
1210
  msgstr ""
1211
 
1212
- #: includes/class-wcj-emails-verification.php:178
1213
- #: includes/settings/wcj-settings-emails-verification.php:92
1214
  msgid ""
1215
  "Thank you for your registration. Your account has to be activated before you "
1216
  "can login. Please check your email."
1217
  msgstr ""
1218
 
1219
- #: includes/class-wcj-emails-verification.php:182
1220
- #: includes/settings/wcj-settings-emails-verification.php:99
1221
  msgid ""
1222
  "<strong>Success:</strong> Your activation email has been resent. Please "
1223
  "check your email."
@@ -1395,28 +1396,28 @@ msgstr ""
1395
  msgid "Filter"
1396
  msgstr ""
1397
 
1398
- #: includes/class-wcj-export-import.php:231
1399
  #: includes/class-wcj-track-users.php:36
1400
  msgid "All time"
1401
  msgstr ""
1402
 
1403
- #: includes/class-wcj-export-import.php:244
1404
  msgid "Custom:"
1405
  msgstr ""
1406
 
1407
- #: includes/class-wcj-export-import.php:249
1408
  msgid "Go"
1409
  msgstr ""
1410
 
1411
- #: includes/class-wcj-export-import.php:269
1412
  msgid "Download CSV"
1413
  msgstr ""
1414
 
1415
- #: includes/class-wcj-export-import.php:272
1416
  msgid "Download XML"
1417
  msgstr ""
1418
 
1419
- #: includes/class-wcj-export-import.php:274
1420
  msgid "Filter by All Fields"
1421
  msgstr ""
1422
 
@@ -1498,7 +1499,7 @@ msgid "ID"
1498
  msgstr ""
1499
 
1500
  #: includes/class-wcj-general.php:211 includes/class-wcj-general.php:227
1501
- #: includes/class-wcj-offer-price.php:172
1502
  #: includes/export/class-wcj-fields-helper.php:282
1503
  #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:70
1504
  #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:104
@@ -1511,7 +1512,7 @@ msgstr ""
1511
 
1512
  #: includes/class-wcj-general.php:211
1513
  #: includes/class-wcj-product-by-user.php:197
1514
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:100
1515
  #: includes/tools/class-wcj-order-statuses-tool.php:145
1516
  #: includes/tools/class-wcj-order-statuses-tool.php:221
1517
  msgid "Actions"
@@ -1554,8 +1555,8 @@ msgstr ""
1554
  #: includes/settings/wcj-settings-order-min-amount.php:53
1555
  #: includes/settings/wcj-settings-orders.php:132
1556
  #: includes/settings/wcj-settings-orders.php:159
1557
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:125
1558
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:183
1559
  #: includes/settings/wcj-settings-product-by-condition.php:107
1560
  #: includes/settings/wcj-settings-product-by-user.php:114
1561
  #: includes/settings/wcj-settings-product-open-pricing.php:123
@@ -1572,7 +1573,7 @@ msgid "Add"
1572
  msgstr ""
1573
 
1574
  #: includes/class-wcj-global-discount.php:27
1575
- #: includes/admin/class-wc-settings-jetpack.php:479
1576
  #: includes/settings/wcj-settings-product-addons.php:237
1577
  msgid "Global Discount"
1578
  msgstr ""
@@ -1788,7 +1789,7 @@ msgstr ""
1788
  #: includes/class-wcj-product-by-user.php:206
1789
  #: includes/class-wcj-purchase-data.php:94
1790
  #: includes/class-wcj-track-users.php:334
1791
- #: includes/classes/class-wcj-module.php:663
1792
  #: includes/functions/wcj-functions-general.php:189
1793
  #: includes/functions/wcj-functions-html.php:117
1794
  #: includes/reports/wcj-class-reports-monthly-sales.php:351
@@ -1812,10 +1813,6 @@ msgid "Booster: Offer Price History"
1812
  msgstr ""
1813
 
1814
  #: includes/class-wcj-offer-price.php:164
1815
- msgid "No price offers yet."
1816
- msgstr ""
1817
-
1818
- #: includes/class-wcj-offer-price.php:169
1819
  #: includes/functions/wcj-functions-reports.php:21
1820
  #: includes/settings/wcj-settings-cross-sells.php:44
1821
  #: includes/settings/wcj-settings-order-numbers.php:151
@@ -1825,7 +1822,7 @@ msgstr ""
1825
  msgid "Date"
1826
  msgstr ""
1827
 
1828
- #: includes/class-wcj-offer-price.php:170
1829
  #: includes/export/class-wcj-fields-helper.php:288
1830
  #: includes/reports/wcj-class-reports-stock.php:271
1831
  #: includes/settings/wcj-settings-cross-sells.php:47
@@ -1836,7 +1833,7 @@ msgstr ""
1836
  msgid "Price"
1837
  msgstr ""
1838
 
1839
- #: includes/class-wcj-offer-price.php:171
1840
  #: includes/settings/wcj-settings-coupon-by-user-role.php:60
1841
  #: includes/settings/wcj-settings-currency-per-product.php:41
1842
  #: includes/settings/wcj-settings-currency-per-product.php:48
@@ -1846,7 +1843,7 @@ msgstr ""
1846
  msgid "Message"
1847
  msgstr ""
1848
 
1849
- #: includes/class-wcj-offer-price.php:173
1850
  #: includes/export/class-wcj-fields-helper.php:75
1851
  #: includes/input-fields/wcj-product-input-fields-options.php:45
1852
  #: includes/reports/wcj-class-reports-customers.php:93
@@ -1854,101 +1851,113 @@ msgstr ""
1854
  msgid "Email"
1855
  msgstr ""
1856
 
1857
- #: includes/class-wcj-offer-price.php:174
1858
  #: includes/export/class-wcj-fields-helper.php:74
1859
  msgid "Customer ID"
1860
  msgstr ""
1861
 
1862
- #: includes/class-wcj-offer-price.php:175
 
 
 
 
 
 
 
 
1863
  msgid "Sent to"
1864
  msgstr ""
1865
 
1866
- #: includes/class-wcj-offer-price.php:197
 
 
 
 
1867
  #, php-format
1868
  msgid "Average offer: %s (from %s offer(s))"
1869
  msgstr ""
1870
 
1871
- #: includes/class-wcj-offer-price.php:204
1872
  msgid "Delete history"
1873
  msgstr ""
1874
 
1875
- #: includes/class-wcj-offer-price.php:205
1876
  msgid "Update product after checking the box."
1877
  msgstr ""
1878
 
1879
- #: includes/class-wcj-offer-price.php:279
1880
- #: includes/settings/wcj-settings-offer-price.php:155
1881
  #, php-format
1882
  msgid "Your price (%s)"
1883
  msgstr ""
1884
 
1885
- #: includes/class-wcj-offer-price.php:285
1886
- #: includes/settings/wcj-settings-offer-price.php:226
1887
  #, php-format
1888
  msgid "Suggest your price for %s"
1889
  msgstr ""
1890
 
1891
- #: includes/class-wcj-offer-price.php:340
1892
- #: includes/settings/wcj-settings-offer-price.php:194
1893
  msgid "Your email"
1894
  msgstr ""
1895
 
1896
- #: includes/class-wcj-offer-price.php:344
1897
- #: includes/settings/wcj-settings-offer-price.php:202
1898
  msgid "Your name"
1899
  msgstr ""
1900
 
1901
- #: includes/class-wcj-offer-price.php:348
1902
- #: includes/settings/wcj-settings-offer-price.php:210
1903
  msgid "Your message"
1904
  msgstr ""
1905
 
1906
- #: includes/class-wcj-offer-price.php:352
1907
- #: includes/settings/wcj-settings-offer-price.php:233
1908
  msgid "Send"
1909
  msgstr ""
1910
 
1911
- #: includes/class-wcj-offer-price.php:354
1912
- #: includes/settings/wcj-settings-offer-price.php:218
1913
  msgid "Send a copy to your email"
1914
  msgstr ""
1915
 
1916
- #: includes/class-wcj-offer-price.php:404
1917
- #: includes/settings/wcj-settings-offer-price.php:60
1918
  msgid "Make an offer"
1919
  msgstr ""
1920
 
1921
- #: includes/class-wcj-offer-price.php:460
1922
- #: includes/settings/wcj-settings-offer-price.php:332
1923
  #, php-format
1924
  msgid "Product: %s"
1925
  msgstr ""
1926
 
1927
- #: includes/class-wcj-offer-price.php:461
1928
- #: includes/settings/wcj-settings-offer-price.php:333
1929
  #, php-format
1930
  msgid "Offered price: %s"
1931
  msgstr ""
1932
 
1933
- #: includes/class-wcj-offer-price.php:462
1934
- #: includes/settings/wcj-settings-offer-price.php:334
1935
  #, php-format
1936
  msgid "From: %s %s"
1937
  msgstr ""
1938
 
1939
- #: includes/class-wcj-offer-price.php:463
1940
- #: includes/settings/wcj-settings-offer-price.php:335
1941
  #, php-format
1942
  msgid "Message: %s"
1943
  msgstr ""
1944
 
1945
- #: includes/class-wcj-offer-price.php:474
1946
- #: includes/settings/wcj-settings-offer-price.php:323
1947
  msgid "Price Offer"
1948
  msgstr ""
1949
 
1950
- #: includes/class-wcj-offer-price.php:484
1951
- #: includes/settings/wcj-settings-offer-price.php:254
1952
  msgid "Your price offer has been sent."
1953
  msgstr ""
1954
 
@@ -2114,50 +2123,52 @@ msgstr ""
2114
  msgid "Renumerate orders"
2115
  msgstr ""
2116
 
2117
- #: includes/class-wcj-order-quantities.php:29
2118
- msgid "Order Min/Max Quantities"
2119
  msgstr ""
2120
 
2121
- #: includes/class-wcj-order-quantities.php:30
2122
- msgid "Set min/max product quantities in WooCommerce order."
 
 
2123
  msgstr ""
2124
 
2125
- #: includes/class-wcj-order-quantities.php:227
2126
  #: includes/settings/wcj-settings-order-quantities.php:260
2127
  msgid ""
2128
  "Only one item can be added to the cart. Clear the cart or finish the order, "
2129
  "before adding another item to the cart."
2130
  msgstr ""
2131
 
2132
- #: includes/class-wcj-order-quantities.php:396
2133
  #: includes/settings/wcj-settings-order-quantities.php:160
2134
  msgid ""
2135
  "Maximum allowed order quantity is %max_cart_total_quantity%. Your current "
2136
  "order quantity is %cart_total_quantity%."
2137
  msgstr ""
2138
 
2139
- #: includes/class-wcj-order-quantities.php:404
2140
  #: includes/settings/wcj-settings-order-quantities.php:102
2141
  msgid ""
2142
  "Minimum allowed order quantity is %min_cart_total_quantity%. Your current "
2143
  "order quantity is %cart_total_quantity%."
2144
  msgstr ""
2145
 
2146
- #: includes/class-wcj-order-quantities.php:414
2147
  #: includes/settings/wcj-settings-order-quantities.php:186
2148
  msgid ""
2149
  "Maximum allowed quantity for %product_title% is %max_per_item_quantity%. "
2150
  "Your current item quantity is %item_quantity%."
2151
  msgstr ""
2152
 
2153
- #: includes/class-wcj-order-quantities.php:424
2154
  #: includes/settings/wcj-settings-order-quantities.php:128
2155
  msgid ""
2156
  "Minimum allowed quantity for %product_title% is %min_per_item_quantity%. "
2157
  "Your current item quantity is %item_quantity%."
2158
  msgstr ""
2159
 
2160
- #: includes/class-wcj-order-quantities.php:434
2161
  #: includes/settings/wcj-settings-order-quantities.php:234
2162
  msgid ""
2163
  "Required step for %product_title% is %required_step%. Your current item "
@@ -2276,7 +2287,7 @@ msgid "Maximum amount for %gateway_title% is %max_amount%"
2276
  msgstr ""
2277
 
2278
  #: includes/class-wcj-payment-gateways-per-category.php:26
2279
- #: includes/admin/class-wc-settings-jetpack.php:478
2280
  msgid "Gateways per Product or Category"
2281
  msgstr ""
2282
 
@@ -2516,6 +2527,7 @@ msgstr ""
2516
  #: includes/settings/wcj-settings-debug-tools.php:37
2517
  #: includes/settings/wcj-settings-emails-verification.php:28
2518
  #: includes/settings/wcj-settings-emails-verification.php:36
 
2519
  #: includes/settings/wcj-settings-general.php:21
2520
  #: includes/settings/wcj-settings-general.php:48
2521
  #: includes/settings/wcj-settings-general.php:129
@@ -2530,8 +2542,11 @@ msgstr ""
2530
  #: includes/settings/wcj-settings-more-button-labels.php:28
2531
  #: includes/settings/wcj-settings-multicurrency-base-price.php:38
2532
  #: includes/settings/wcj-settings-multicurrency-base-price.php:53
2533
- #: includes/settings/wcj-settings-multicurrency-base-price.php:61
2534
  #: includes/settings/wcj-settings-multicurrency.php:39
 
 
 
2535
  #: includes/settings/wcj-settings-my-account.php:29
2536
  #: includes/settings/wcj-settings-my-account.php:87
2537
  #: includes/settings/wcj-settings-my-account.php:104
@@ -3023,7 +3038,7 @@ msgid "\"Pretty prices\" threshold"
3023
  msgstr ""
3024
 
3025
  #: includes/class-wcj-product-bulk-price-converter.php:271
3026
- #: includes/settings/wcj-settings-payment-gateways-min-max.php:67
3027
  msgid "Leave zero to disable."
3028
  msgstr ""
3029
 
@@ -3247,7 +3262,7 @@ msgstr ""
3247
  #: includes/settings/wcj-settings-related-products.php:24
3248
  #: includes/settings/wcj-settings-upsells.php:42
3249
  #: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:57
3250
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:144
3251
  #: includes/shipping/class-wc-shipping-wcj-custom.php:107
3252
  #: includes/shortcodes/class-wcj-shortcodes-products-add-form.php:334
3253
  #: includes/widgets/class-wcj-widget-country-switcher.php:62
@@ -3265,9 +3280,9 @@ msgid "Edit"
3265
  msgstr ""
3266
 
3267
  #: includes/class-wcj-product-custom-info.php:24
3268
- #: includes/admin/class-wc-settings-jetpack.php:480
3269
- #: includes/admin/class-wc-settings-jetpack.php:492
3270
- #: includes/admin/class-wc-settings-jetpack.php:501
3271
  #: includes/functions/wcj-functions-general.php:449
3272
  msgid "Product Info"
3273
  msgstr ""
@@ -3362,7 +3377,7 @@ msgid "Product Info V1"
3362
  msgstr ""
3363
 
3364
  #: includes/class-wcj-product-info.php:123
3365
- #: includes/settings/wcj-settings-offer-price.php:108
3366
  #: includes/settings/wcj-settings-product-add-to-cart.php:326
3367
  #: includes/settings/wcj-settings-product-custom-info.php:115
3368
  msgid "Before product"
@@ -3375,7 +3390,7 @@ msgid "Before product title"
3375
  msgstr ""
3376
 
3377
  #: includes/class-wcj-product-info.php:125
3378
- #: includes/settings/wcj-settings-offer-price.php:109
3379
  #: includes/settings/wcj-settings-product-add-to-cart.php:328
3380
  #: includes/settings/wcj-settings-product-custom-info.php:119
3381
  msgid "After product"
@@ -3388,7 +3403,7 @@ msgid "After product title"
3388
  msgstr ""
3389
 
3390
  #: includes/class-wcj-product-info.php:138
3391
- #: includes/settings/wcj-settings-offer-price.php:87
3392
  #: includes/settings/wcj-settings-product-add-to-cart.php:292
3393
  #: includes/settings/wcj-settings-product-custom-info.php:104
3394
  #: includes/settings/wcj-settings-upsells.php:60
@@ -3396,7 +3411,7 @@ msgid "Inside single product summary"
3396
  msgstr ""
3397
 
3398
  #: includes/class-wcj-product-info.php:139
3399
- #: includes/settings/wcj-settings-offer-price.php:86
3400
  #: includes/settings/wcj-settings-product-add-to-cart.php:291
3401
  #: includes/settings/wcj-settings-product-custom-info.php:103
3402
  #: includes/settings/wcj-settings-upsells.php:59
@@ -3404,7 +3419,7 @@ msgid "Before single product summary"
3404
  msgstr ""
3405
 
3406
  #: includes/class-wcj-product-info.php:140
3407
- #: includes/settings/wcj-settings-offer-price.php:90
3408
  #: includes/settings/wcj-settings-product-add-to-cart.php:293
3409
  #: includes/settings/wcj-settings-product-custom-info.php:105
3410
  #: includes/settings/wcj-settings-upsells.php:61
@@ -3459,7 +3474,7 @@ msgid "[wcj_product_total_sales before=\"Total sales: \"]"
3459
  msgstr ""
3460
 
3461
  #: includes/class-wcj-product-input-fields.php:24
3462
- #: includes/admin/class-wc-settings-jetpack.php:481
3463
  #: includes/input-fields/class-wcj-product-input-fields-core.php:185
3464
  msgid "Product Input Fields"
3465
  msgstr ""
@@ -3501,8 +3516,8 @@ msgstr ""
3501
  msgid "Save and display product MSRP in WooCommerce."
3502
  msgstr ""
3503
 
3504
- #: includes/class-wcj-product-msrp.php:67
3505
- #: includes/class-wcj-product-msrp.php:98
3506
  #: includes/settings/meta-box/wcj-settings-meta-box-product-msrp.php:35
3507
  msgid "MSRP"
3508
  msgstr ""
@@ -3527,22 +3542,22 @@ msgid ""
3527
  "products."
3528
  msgstr ""
3529
 
3530
- #: includes/class-wcj-product-open-pricing.php:316
3531
  #: includes/settings/wcj-settings-product-open-pricing.php:73
3532
  msgid "Price is required!"
3533
  msgstr ""
3534
 
3535
- #: includes/class-wcj-product-open-pricing.php:322
3536
  #: includes/settings/wcj-settings-product-open-pricing.php:81
3537
  msgid "Entered price is too small!"
3538
  msgstr ""
3539
 
3540
- #: includes/class-wcj-product-open-pricing.php:327
3541
  #: includes/settings/wcj-settings-product-open-pricing.php:89
3542
  msgid "Entered price is too big!"
3543
  msgstr ""
3544
 
3545
- #: includes/class-wcj-product-open-pricing.php:397
3546
  #: includes/settings/wcj-settings-product-open-pricing.php:29
3547
  msgid "Name Your Price"
3548
  msgstr ""
@@ -3711,7 +3726,7 @@ msgstr ""
3711
 
3712
  #: includes/class-wcj-product-tabs.php:658
3713
  #: includes/settings/wcj-settings-checkout-core-fields.php:71
3714
- #: includes/settings/wcj-settings-currency-exchange-rates.php:142
3715
  #: includes/settings/wcj-settings-order-numbers.php:46
3716
  #: includes/settings/wcj-settings-orders.php:180
3717
  #: includes/settings/wcj-settings-product-add-to-cart.php:64
@@ -3802,8 +3817,8 @@ msgid "Import"
3802
  msgstr ""
3803
 
3804
  #: includes/class-wcj-purchase-data.php:115
3805
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:92
3806
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:162
3807
  #: includes/shipping/class-wc-shipping-wcj-custom.php:122
3808
  #: includes/shipping/class-wc-shipping-wcj-custom.php:164
3809
  msgid "Cost"
@@ -3837,7 +3852,7 @@ msgid "Report"
3837
  msgstr ""
3838
 
3839
  #: includes/class-wcj-related-products.php:38
3840
- #: includes/admin/class-wc-settings-jetpack.php:483
3841
  #: includes/settings/wcj-settings-free-price.php:20
3842
  #: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:30
3843
  msgid "Related Products"
@@ -4130,7 +4145,7 @@ msgid ""
4130
  msgstr ""
4131
 
4132
  #: includes/class-wcj-shipping-by-user-role.php:33
4133
- #: includes/settings/wcj-settings-multicurrency.php:180
4134
  #: includes/settings/wcj-settings-order-min-amount.php:104
4135
  #: includes/settings/wcj-settings-price-by-user-role.php:90
4136
  #, php-format
@@ -4234,7 +4249,7 @@ msgstr ""
4234
  #: includes/class-wcj-shipping.php:24
4235
  #: includes/settings/wcj-settings-shipping.php:16
4236
  #: includes/settings/wcj-settings-shipping.php:23
4237
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:147
4238
  #: includes/shipping/class-wc-shipping-wcj-custom.php:110
4239
  msgid "Custom Shipping"
4240
  msgstr ""
@@ -4578,30 +4593,44 @@ msgid ""
4578
  msgstr ""
4579
 
4580
  #: includes/admin/class-wc-settings-jetpack.php:475
4581
- msgid "Use List Instead of Comma Separated Text for Products in Settings"
4582
  msgstr ""
4583
 
4584
  #: includes/admin/class-wc-settings-jetpack.php:477
4585
- #: includes/admin/class-wc-settings-jetpack.php:491
4586
- #: includes/admin/class-wc-settings-jetpack.php:500
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4587
  #, php-format
4588
  msgid "Supported modules: %s."
4589
  msgstr ""
4590
 
4591
- #: includes/admin/class-wc-settings-jetpack.php:482
4592
  msgid "Products XML"
4593
  msgstr ""
4594
 
4595
- #: includes/admin/class-wc-settings-jetpack.php:489
4596
  msgid ""
4597
  "Use List Instead of Comma Separated Text for Products Categories in Settings"
4598
  msgstr ""
4599
 
4600
- #: includes/admin/class-wc-settings-jetpack.php:498
4601
  msgid "Use List Instead of Comma Separated Text for Products Tags in Settings"
4602
  msgstr ""
4603
 
4604
- #: includes/admin/class-wc-settings-jetpack.php:525
4605
  #: includes/core/class-wcj-admin.php:97
4606
  msgid "Booster for WooCommerce"
4607
  msgstr ""
@@ -4724,7 +4753,7 @@ msgstr ""
4724
  #: includes/settings/wcj-settings-payment-gateways-by-shipping.php:37
4725
  #: includes/settings/wcj-settings-payment-gateways-by-user-role.php:14
4726
  #: includes/settings/wcj-settings-payment-gateways-currency.php:15
4727
- #: includes/settings/wcj-settings-payment-gateways-min-max.php:65
4728
  #: includes/settings/wcj-settings-reports.php:118
4729
  msgid "Payment Gateways"
4730
  msgstr ""
@@ -4775,7 +4804,7 @@ msgstr ""
4775
  msgid "Invisible"
4776
  msgstr ""
4777
 
4778
- #: includes/classes/class-wcj-module.php:126
4779
  #, php-format
4780
  msgid ""
4781
  "Booster: Free plugin's version is limited to only one \"%1$s\" product with "
@@ -4784,30 +4813,30 @@ msgid ""
4784
  "\"%1$s\" products."
4785
  msgstr ""
4786
 
4787
- #: includes/classes/class-wcj-module.php:446
4788
  #, php-format
4789
  msgid "Selected: %s."
4790
  msgstr ""
4791
 
4792
- #: includes/classes/class-wcj-module.php:515
4793
  msgid "Back to Module Settings"
4794
  msgstr ""
4795
 
4796
- #: includes/classes/class-wcj-module.php:533
4797
  #: includes/settings/wcj-settings-wpml.php:79
4798
  msgid "Module Tools"
4799
  msgstr ""
4800
 
4801
- #: includes/classes/class-wcj-module.php:606
4802
  #: includes/settings/wcj-settings-checkout-core-fields.php:64
4803
  msgid "enabled"
4804
  msgstr ""
4805
 
4806
- #: includes/classes/class-wcj-module.php:607
4807
  msgid "disabled"
4808
  msgstr ""
4809
 
4810
- #: includes/classes/class-wcj-module.php:615
4811
  #: includes/settings/wcj-settings-product-tabs.php:172
4812
  #: includes/settings/wcj-settings-product-tabs.php:184
4813
  #: includes/settings/wcj-settings-product-tabs.php:196
@@ -4815,27 +4844,27 @@ msgstr ""
4815
  msgid "Deprecated"
4816
  msgstr ""
4817
 
4818
- #: includes/classes/class-wcj-module.php:653
4819
  msgid "Reset Settings"
4820
  msgstr ""
4821
 
4822
- #: includes/classes/class-wcj-module.php:659
4823
  msgid "Reset Module to Default Settings"
4824
  msgstr ""
4825
 
4826
- #: includes/classes/class-wcj-module.php:660
4827
  msgid "Reset Submodule to Default Settings"
4828
  msgstr ""
4829
 
4830
- #: includes/classes/class-wcj-module.php:664
4831
  msgid "Reset settings"
4832
  msgstr ""
4833
 
4834
- #: includes/classes/class-wcj-module.php:698
4835
  msgid "Module Options"
4836
  msgstr ""
4837
 
4838
- #: includes/classes/class-wcj-module.php:705
4839
  msgid "Enable Module"
4840
  msgstr ""
4841
 
@@ -5410,7 +5439,7 @@ msgstr ""
5410
  #: includes/settings/wcj-settings-purchase-data.php:73
5411
  #: includes/settings/wcj-settings-shipping-options.php:77
5412
  #: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:45
5413
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:152
5414
  #: includes/shipping/class-wc-shipping-wcj-custom.php:114
5415
  #: includes/widgets/class-wcj-widget-multicurrency.php:76
5416
  msgid "Type"
@@ -5540,76 +5569,76 @@ msgid ""
5540
  "version <strong>%s</strong>."
5541
  msgstr ""
5542
 
5543
- #: includes/functions/wcj-functions-admin.php:150
5544
  msgid "Search&hellip;"
5545
  msgstr ""
5546
 
5547
- #: includes/functions/wcj-functions-admin.php:190
5548
  msgid "Enter comma separated list of IDs."
5549
  msgstr ""
5550
 
5551
- #: includes/functions/wcj-functions-admin.php:264
5552
- #: includes/settings/wcj-settings-emails-verification.php:67
5553
  #: includes/settings/wcj-settings-emails-verification.php:75
5554
- #: includes/settings/wcj-settings-emails-verification.php:122
 
5555
  #, php-format
5556
  msgid "Replaced value: %s"
5557
  msgstr ""
5558
 
5559
- #: includes/functions/wcj-functions-admin.php:264
5560
  #, php-format
5561
  msgid "Replaced values: %s"
5562
  msgstr ""
5563
 
5564
- #: includes/functions/wcj-functions-admin.php:293
5565
  msgid "Install Booster Plus to unlock all features"
5566
  msgstr ""
5567
 
5568
- #: includes/functions/wcj-functions-admin.php:294
5569
  #, php-format
5570
  msgid ""
5571
  "Some settings fields are locked and you will need %s to modify all locked "
5572
  "fields."
5573
  msgstr ""
5574
 
5575
- #: includes/functions/wcj-functions-admin.php:297
5576
  msgid "Buy now"
5577
  msgstr ""
5578
 
5579
- #: includes/functions/wcj-functions-admin.php:298
5580
  msgid "Visit Booster Site"
5581
  msgstr ""
5582
 
5583
- #: includes/functions/wcj-functions-admin.php:303
5584
  #, php-format
5585
  msgid "Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to change value."
5586
  msgstr ""
5587
 
5588
- #: includes/functions/wcj-functions-admin.php:306
5589
  #, php-format
5590
  msgid ""
5591
  "Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to enable \"%s\" "
5592
  "option."
5593
  msgstr ""
5594
 
5595
- #: includes/functions/wcj-functions-admin.php:309
5596
  #, php-format
5597
  msgid "Get Booster Plus to enable \"%s\" option."
5598
  msgstr ""
5599
 
5600
- #: includes/functions/wcj-functions-admin.php:312
5601
  #, php-format
5602
  msgid ""
5603
  "Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to change values below."
5604
  msgstr ""
5605
 
5606
- #: includes/functions/wcj-functions-admin.php:315
5607
  #, php-format
5608
  msgid ""
5609
  "Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to change values above."
5610
  msgstr ""
5611
 
5612
- #: includes/functions/wcj-functions-admin.php:318
5613
  msgid "Get Booster Plus to change value."
5614
  msgstr ""
5615
 
@@ -6907,7 +6936,7 @@ msgid "Enable Custom Payment"
6907
  msgstr ""
6908
 
6909
  #: includes/gateways/class-wc-gateway-wcj-custom.php:57
6910
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:146
6911
  #: includes/shipping/class-wc-shipping-wcj-custom.php:109
6912
  msgid "This controls the title which the user sees during checkout."
6913
  msgstr ""
@@ -7047,20 +7076,20 @@ msgid "Total number of "
7047
  msgstr ""
7048
 
7049
  #: includes/input-fields/class-wcj-product-input-fields-core.php:223
7050
- #: includes/input-fields/class-wcj-product-input-fields-core.php:394
7051
  #: includes/settings/wcj-settings-product-input-fields.php:84
7052
  msgid "Product Input Field"
7053
  msgstr ""
7054
 
7055
- #: includes/input-fields/class-wcj-product-input-fields-core.php:465
7056
  msgid "Wrong file type!"
7057
  msgstr ""
7058
 
7059
- #: includes/input-fields/class-wcj-product-input-fields-core.php:473
7060
  msgid "File is too big!"
7061
  msgstr ""
7062
 
7063
- #: includes/input-fields/class-wcj-product-input-fields-core.php:699
7064
  msgid "Select a country&hellip;"
7065
  msgstr ""
7066
 
@@ -7514,7 +7543,10 @@ msgstr ""
7514
  #: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-advanced.php:25
7515
  #: includes/settings/wcj-settings-add-to-cart-button-visibility.php:36
7516
  #: includes/settings/wcj-settings-add-to-cart-button-visibility.php:62
 
 
7517
  #: includes/settings/wcj-settings-order-min-amount.php:69
 
7518
  msgid "Advanced"
7519
  msgstr ""
7520
 
@@ -7659,18 +7691,18 @@ msgid "Country groups generation failed."
7659
  msgstr ""
7660
 
7661
  #: includes/price-by-country/class-wcj-price-by-country-local.php:111
7662
- #: includes/settings/wcj-settings-price-by-country.php:318
7663
  #: includes/settings/meta-box/wcj-settings-meta-box-price-by-country.php:67
7664
  msgid "Make empty price"
7665
  msgstr ""
7666
 
7667
  #: includes/price-by-country/class-wcj-price-by-country-local.php:215
7668
  #: includes/settings/wcj-settings-add-to-cart.php:50
7669
- #: includes/settings/wcj-settings-price-by-country.php:212
7670
- #: includes/settings/wcj-settings-price-by-country.php:213
7671
- #: includes/settings/wcj-settings-price-by-country.php:218
7672
- #: includes/settings/wcj-settings-price-by-country.php:266
7673
- #: includes/settings/wcj-settings-price-by-country.php:309
7674
  #: includes/settings/meta-box/wcj-settings-meta-box-price-by-country.php:17
7675
  msgid "Group"
7676
  msgstr ""
@@ -7693,7 +7725,7 @@ msgid "Non Available"
7693
  msgstr ""
7694
 
7695
  #: includes/reports/wcj-class-reports-customers.php:92
7696
- #: includes/settings/wcj-settings-offer-price.php:198
7697
  msgid "Customer Name"
7698
  msgstr ""
7699
 
@@ -8035,7 +8067,7 @@ msgstr ""
8035
  #: includes/settings/wcj-settings-general.php:105
8036
  #: includes/settings/wcj-settings-general.php:113
8037
  #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:84
8038
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:109
8039
  #: includes/settings/wcj-settings-price-by-user-role.php:56
8040
  #: includes/settings/wcj-settings-price-by-user-role.php:96
8041
  #: includes/settings/wcj-settings-product-add-to-cart.php:131
@@ -8387,12 +8419,12 @@ msgstr ""
8387
  #: includes/settings/wcj-settings-checkout-custom-fields.php:158
8388
  #: includes/settings/wcj-settings-checkout-files-upload.php:81
8389
  #: includes/settings/wcj-settings-checkout-files-upload.php:305
8390
- #: includes/settings/wcj-settings-offer-price.php:57
8391
- #: includes/settings/wcj-settings-offer-price.php:151
8392
- #: includes/settings/wcj-settings-offer-price.php:191
8393
  #: includes/settings/wcj-settings-offer-price.php:199
8394
  #: includes/settings/wcj-settings-offer-price.php:207
8395
  #: includes/settings/wcj-settings-offer-price.php:215
 
8396
  #: includes/tools/class-wcj-order-statuses-tool.php:141
8397
  #: includes/tools/class-wcj-order-statuses-tool.php:217
8398
  msgid "Label"
@@ -8431,8 +8463,8 @@ msgstr ""
8431
  #: includes/settings/wcj-settings-admin-orders-list.php:120
8432
  #: includes/settings/wcj-settings-empty-cart.php:46
8433
  #: includes/settings/wcj-settings-empty-cart.php:67
8434
- #: includes/settings/wcj-settings-offer-price.php:84
8435
- #: includes/settings/wcj-settings-offer-price.php:107
8436
  msgid "Do not add"
8437
  msgstr ""
8438
 
@@ -10091,7 +10123,7 @@ msgstr ""
10091
  #: includes/settings/wcj-settings-multicurrency-base-price.php:22
10092
  #: includes/settings/wcj-settings-multicurrency.php:22
10093
  #: includes/settings/wcj-settings-payment-gateways-currency.php:68
10094
- #: includes/settings/wcj-settings-price-by-country.php:282
10095
  msgid "Exchange Rates Updates"
10096
  msgstr ""
10097
 
@@ -10104,7 +10136,7 @@ msgid "Exchange Rates Rounding"
10104
  msgstr ""
10105
 
10106
  #: includes/settings/wcj-settings-currency-exchange-rates.php:60
10107
- #: includes/settings/wcj-settings-offer-price.php:160
10108
  #: includes/settings/wcj-settings-payment-gateways-fees.php:74
10109
  #: includes/settings/wcj-settings-product-by-user.php:70
10110
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:25
@@ -10155,32 +10187,49 @@ msgid ""
10155
  msgstr ""
10156
 
10157
  #: includes/settings/wcj-settings-currency-exchange-rates.php:113
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10158
  msgid "Custom Currencies Options"
10159
  msgstr ""
10160
 
10161
- #: includes/settings/wcj-settings-currency-exchange-rates.php:115
10162
  #, php-format
10163
  msgid ""
10164
  "You can add more currencies in this section. E.g. this can be used to "
10165
  "display exchange rates with %s shortcodes."
10166
  msgstr ""
10167
 
10168
- #: includes/settings/wcj-settings-currency-exchange-rates.php:126
10169
  #: includes/settings/wcj-settings-currency.php:61
10170
  msgid "Total Custom Currencies"
10171
  msgstr ""
10172
 
10173
- #: includes/settings/wcj-settings-currency-exchange-rates.php:138
10174
  #: includes/settings/wcj-settings-currency.php:73
10175
  msgid "Custom Currency"
10176
  msgstr ""
10177
 
10178
- #: includes/settings/wcj-settings-currency-exchange-rates.php:157
10179
- #: includes/settings/wcj-settings-price-by-country.php:277
10180
  msgid "Exchange Rates"
10181
  msgstr ""
10182
 
10183
- #: includes/settings/wcj-settings-currency-exchange-rates.php:159
10184
  msgid ""
10185
  "All currencies from all <strong>enabled</strong> modules (with \"Exchange "
10186
  "Rates Updates\" set to \"Automatically via Currency Exchange Rates module\") "
@@ -10193,9 +10242,9 @@ msgstr ""
10193
 
10194
  #: includes/settings/wcj-settings-currency-external-products.php:20
10195
  #: includes/settings/wcj-settings-currency-per-product.php:180
10196
- #: includes/settings/wcj-settings-multicurrency-base-price.php:107
10197
- #: includes/settings/wcj-settings-multicurrency.php:153
10198
- #: includes/settings/wcj-settings-price-by-country.php:257
10199
  #: includes/settings/wcj-settings-price-formats.php:59
10200
  msgid "Currency"
10201
  msgstr ""
@@ -10270,7 +10319,7 @@ msgstr ""
10270
  #: includes/settings/wcj-settings-multicurrency-base-price.php:27
10271
  #: includes/settings/wcj-settings-multicurrency.php:28
10272
  #: includes/settings/wcj-settings-payment-gateways-currency.php:73
10273
- #: includes/settings/wcj-settings-price-by-country.php:287
10274
  msgid "Enter Rates Manually"
10275
  msgstr ""
10276
 
@@ -10278,7 +10327,7 @@ msgstr ""
10278
  #: includes/settings/wcj-settings-multicurrency-base-price.php:28
10279
  #: includes/settings/wcj-settings-multicurrency.php:29
10280
  #: includes/settings/wcj-settings-payment-gateways-currency.php:74
10281
- #: includes/settings/wcj-settings-price-by-country.php:288
10282
  msgid "Automatically via Currency Exchange Rates module"
10283
  msgstr ""
10284
 
@@ -10286,7 +10335,7 @@ msgstr ""
10286
  #: includes/settings/wcj-settings-multicurrency-base-price.php:31
10287
  #: includes/settings/wcj-settings-multicurrency.php:32
10288
  #: includes/settings/wcj-settings-payment-gateways-currency.php:77
10289
- #: includes/settings/wcj-settings-price-by-country.php:291
10290
  msgid "Visit"
10291
  msgstr ""
10292
 
@@ -10294,13 +10343,13 @@ msgstr ""
10294
  #: includes/settings/wcj-settings-multicurrency-base-price.php:31
10295
  #: includes/settings/wcj-settings-multicurrency.php:32
10296
  #: includes/settings/wcj-settings-payment-gateways-currency.php:79
10297
- #: includes/settings/wcj-settings-price-by-country.php:291
10298
  msgid "Currency Exchange Rates module"
10299
  msgstr ""
10300
 
10301
  #: includes/settings/wcj-settings-currency-per-product.php:138
10302
- #: includes/settings/wcj-settings-multicurrency-base-price.php:78
10303
- #: includes/settings/wcj-settings-multicurrency.php:122
10304
  msgid "Currencies Options"
10305
  msgstr ""
10306
 
@@ -10312,8 +10361,8 @@ msgid ""
10312
  msgstr ""
10313
 
10314
  #: includes/settings/wcj-settings-currency-per-product.php:144
10315
- #: includes/settings/wcj-settings-multicurrency-base-price.php:83
10316
- #: includes/settings/wcj-settings-multicurrency.php:128
10317
  msgid "Total Currencies"
10318
  msgstr ""
10319
 
@@ -10326,12 +10375,11 @@ msgid "Product Authors User Roles"
10326
  msgstr ""
10327
 
10328
  #: includes/settings/wcj-settings-currency-per-product.php:256
10329
- #: includes/settings/wcj-settings-multicurrency-base-price.php:59
10330
  msgid "Advanced: Save Calculated Products Prices"
10331
  msgstr ""
10332
 
10333
  #: includes/settings/wcj-settings-currency-per-product.php:257
10334
- #: includes/settings/wcj-settings-multicurrency-base-price.php:60
10335
  msgid ""
10336
  "This may help if you are experiencing compatibility issues with other "
10337
  "plugins."
@@ -10494,64 +10542,74 @@ msgid "Login User After Successful Verification"
10494
  msgstr ""
10495
 
10496
  #: includes/settings/wcj-settings-emails-verification.php:42
 
 
 
 
 
 
 
 
 
 
10497
  msgid "Redirect User After Successful Verification to Custom URL"
10498
  msgstr ""
10499
 
10500
- #: includes/settings/wcj-settings-emails-verification.php:43
10501
  msgid "Redirect URL. Ignored if empty."
10502
  msgstr ""
10503
 
10504
- #: includes/settings/wcj-settings-emails-verification.php:54
10505
  msgid "Messages"
10506
  msgstr ""
10507
 
10508
- #: includes/settings/wcj-settings-emails-verification.php:59
10509
  msgid "Message - Success"
10510
  msgstr ""
10511
 
10512
- #: includes/settings/wcj-settings-emails-verification.php:66
10513
  msgid "Message - Error"
10514
  msgstr ""
10515
 
10516
- #: includes/settings/wcj-settings-emails-verification.php:74
10517
  msgid "Message - Failed"
10518
  msgstr ""
10519
 
10520
- #: includes/settings/wcj-settings-emails-verification.php:82
10521
  msgid "Message - Failed (no user ID)"
10522
  msgstr ""
10523
 
10524
- #: includes/settings/wcj-settings-emails-verification.php:89
10525
  msgid "Message - Activate"
10526
  msgstr ""
10527
 
10528
- #: includes/settings/wcj-settings-emails-verification.php:96
10529
  msgid "Message - Resend"
10530
  msgstr ""
10531
 
10532
- #: includes/settings/wcj-settings-emails-verification.php:112
10533
- #: includes/settings/wcj-settings-offer-price.php:320
10534
  msgid "Email Subject"
10535
  msgstr ""
10536
 
10537
- #: includes/settings/wcj-settings-emails-verification.php:121
10538
  msgid "Email Content"
10539
  msgstr ""
10540
 
10541
- #: includes/settings/wcj-settings-emails-verification.php:131
10542
- #: includes/settings/wcj-settings-offer-price.php:327
10543
  msgid "Email Template"
10544
  msgstr ""
10545
 
10546
- #: includes/settings/wcj-settings-emails-verification.php:132
10547
  msgid "Possible values: Plain, WooCommerce."
10548
  msgstr ""
10549
 
10550
- #: includes/settings/wcj-settings-emails-verification.php:137
10551
  msgid "Plain"
10552
  msgstr ""
10553
 
10554
- #: includes/settings/wcj-settings-emails-verification.php:144
10555
  msgid "If WooCommerce template is selected, set email heading here."
10556
  msgstr ""
10557
 
@@ -10749,7 +10807,7 @@ msgid "Export Options"
10749
  msgstr ""
10750
 
10751
  #: includes/settings/wcj-settings-export.php:20
10752
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:176
10753
  msgid "CSV Separator"
10754
  msgstr ""
10755
 
@@ -11107,8 +11165,8 @@ msgstr ""
11107
 
11108
  #: includes/settings/wcj-settings-general.php:207
11109
  #: includes/settings/wcj-settings-general.php:216
11110
- #: includes/settings/wcj-settings-offer-price.php:175
11111
  #: includes/settings/wcj-settings-offer-price.php:183
 
11112
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:43
11113
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:52
11114
  msgid "Set zero to disable."
@@ -11275,14 +11333,17 @@ msgid ""
11275
  msgstr ""
11276
 
11277
  #: includes/settings/wcj-settings-global-discount.php:188
 
 
 
11278
  #: includes/settings/wcj-settings-product-price-by-formula.php:100
11279
  msgid "Price Filters Priority"
11280
  msgstr ""
11281
 
11282
  #: includes/settings/wcj-settings-global-discount.php:189
11283
- #: includes/settings/wcj-settings-multicurrency-base-price.php:68
11284
- #: includes/settings/wcj-settings-multicurrency.php:112
11285
- #: includes/settings/wcj-settings-price-by-country.php:157
11286
  #: includes/settings/wcj-settings-price-by-user-role.php:70
11287
  #: includes/settings/wcj-settings-product-addons.php:242
11288
  #: includes/settings/wcj-settings-product-price-by-formula.php:101
@@ -11409,7 +11470,7 @@ msgid "If no status are selected - \"Completed\" order status is used."
11409
  msgstr ""
11410
 
11411
  #: includes/settings/wcj-settings-max-products-per-user.php:71
11412
- #: includes/settings/wcj-settings-offer-price.php:206
11413
  msgid "Customer Message"
11414
  msgstr ""
11415
 
@@ -11500,13 +11561,28 @@ msgstr ""
11500
  msgid "Convert Product Prices in Admin Products List"
11501
  msgstr ""
11502
 
11503
- #: includes/settings/wcj-settings-multicurrency-base-price.php:67
11504
- #: includes/settings/wcj-settings-multicurrency.php:111
11505
- #: includes/settings/wcj-settings-price-by-country.php:156
11506
- #: includes/settings/wcj-settings-price-by-user-role.php:69
11507
- #: includes/settings/wcj-settings-product-addons.php:241
11508
- #: includes/settings/wcj-settings-wholesale-price.php:120
11509
- msgid "Advanced: Price Filters Priority"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11510
  msgstr ""
11511
 
11512
  #: includes/settings/wcj-settings-multicurrency.php:23
@@ -11610,41 +11686,65 @@ msgstr ""
11610
  msgid "Set how you want currency switcher to be displayed on frontend."
11611
  msgstr ""
11612
 
11613
- #: includes/settings/wcj-settings-multicurrency.php:102
11614
- msgid "Advanced: Additional Price Filters"
 
 
 
 
 
 
 
 
 
 
11615
  msgstr ""
11616
 
11617
- #: includes/settings/wcj-settings-multicurrency.php:103
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11618
  msgid ""
11619
  "Add additional price filters here. One per line. Leave blank if not sure."
11620
  msgstr ""
11621
 
11622
- #: includes/settings/wcj-settings-multicurrency.php:124
11623
  msgid ""
11624
  "One currency probably should be set to current (original) shop currency with "
11625
  "an exchange rate of 1."
11626
  msgstr ""
11627
 
11628
- #: includes/settings/wcj-settings-multicurrency.php:129
11629
  msgid ""
11630
  "Press Save changes after setting this option, so new settings fields will be "
11631
  "added."
11632
  msgstr ""
11633
 
11634
- #: includes/settings/wcj-settings-multicurrency.php:178
11635
  msgid "Role Defaults"
11636
  msgstr ""
11637
 
11638
- #: includes/settings/wcj-settings-multicurrency.php:185
11639
  msgid "Roles"
11640
  msgstr ""
11641
 
11642
- #: includes/settings/wcj-settings-multicurrency.php:186
11643
  #: includes/settings/wcj-settings-wholesale-price.php:180
11644
  msgid "Save settings after you change this option. Leave blank to disable."
11645
  msgstr ""
11646
 
11647
- #: includes/settings/wcj-settings-multicurrency.php:209
11648
  msgid "No default currency"
11649
  msgstr ""
11650
 
@@ -11956,174 +12056,195 @@ msgstr ""
11956
  msgid "Ignored if enable per product category is not selected above."
11957
  msgstr ""
11958
 
11959
- #: includes/settings/wcj-settings-offer-price.php:52
 
 
 
 
 
 
 
 
 
 
 
11960
  msgid "Button Options"
11961
  msgstr ""
11962
 
11963
- #: includes/settings/wcj-settings-offer-price.php:64
11964
  msgid "CSS Class"
11965
  msgstr ""
11966
 
11967
- #: includes/settings/wcj-settings-offer-price.php:71
11968
  msgid "CSS Style"
11969
  msgstr ""
11970
 
11971
- #: includes/settings/wcj-settings-offer-price.php:79
11972
  msgid "Position On Single Product Page"
11973
  msgstr ""
11974
 
11975
- #: includes/settings/wcj-settings-offer-price.php:85
11976
  #: includes/settings/wcj-settings-product-custom-info.php:102
11977
  #: includes/settings/wcj-settings-upsells.php:58
11978
  msgid "Before single product"
11979
  msgstr ""
11980
 
11981
- #: includes/settings/wcj-settings-offer-price.php:88
11982
  #: includes/settings/wcj-settings-product-custom-info.php:107
11983
  msgid "Before add to cart form"
11984
  msgstr ""
11985
 
11986
- #: includes/settings/wcj-settings-offer-price.php:89
11987
  #: includes/settings/wcj-settings-product-custom-info.php:110
11988
  msgid "After add to cart form"
11989
  msgstr ""
11990
 
11991
- #: includes/settings/wcj-settings-offer-price.php:91
11992
  #: includes/settings/wcj-settings-product-custom-info.php:106
11993
  #: includes/settings/wcj-settings-upsells.php:62
11994
  msgid "After single product"
11995
  msgstr ""
11996
 
11997
- #: includes/settings/wcj-settings-offer-price.php:95
11998
- #: includes/settings/wcj-settings-offer-price.php:115
11999
  msgid "Position Priority (i.e. Order)"
12000
  msgstr ""
12001
 
12002
- #: includes/settings/wcj-settings-offer-price.php:101
12003
  msgid "Position On Archive Pages"
12004
  msgstr ""
12005
 
12006
- #: includes/settings/wcj-settings-offer-price.php:102
12007
  msgid "Possible values: Do not add; Before product; After product."
12008
  msgstr ""
12009
 
12010
- #: includes/settings/wcj-settings-offer-price.php:122
12011
  msgid "Advanced: Custom Position(s)"
12012
  msgstr ""
12013
 
12014
- #: includes/settings/wcj-settings-offer-price.php:123
12015
  msgid ""
12016
  "Add custom hook. If adding more than one hook, separate with vertical bar "
12017
  "( | ). Ignored if empty."
12018
  msgstr ""
12019
 
12020
- #: includes/settings/wcj-settings-offer-price.php:132
12021
  msgid "Custom Position Priority (i.e. Order)"
12022
  msgstr ""
12023
 
12024
- #: includes/settings/wcj-settings-offer-price.php:133
12025
  msgid ""
12026
  "Add custom hook priority. If adding more than one hook, separate with "
12027
  "vertical bar ( | )."
12028
  msgstr ""
12029
 
12030
- #: includes/settings/wcj-settings-offer-price.php:145
12031
  msgid "Form and Notice Options"
12032
  msgstr ""
12033
 
12034
- #: includes/settings/wcj-settings-offer-price.php:150
12035
  msgid "Price Input"
12036
  msgstr ""
12037
 
12038
- #: includes/settings/wcj-settings-offer-price.php:159
12039
  #: includes/settings/wcj-settings-product-by-user.php:69
12040
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:24
12041
  msgid "Price Step"
12042
  msgstr ""
12043
 
12044
- #: includes/settings/wcj-settings-offer-price.php:167
12045
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:33
12046
  msgid "Minimal Price"
12047
  msgstr ""
12048
 
12049
- #: includes/settings/wcj-settings-offer-price.php:174
12050
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:42
12051
  msgid "Maximal Price"
12052
  msgstr ""
12053
 
12054
- #: includes/settings/wcj-settings-offer-price.php:182
12055
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:51
12056
  #: includes/settings/meta-box/wcj-settings-meta-box-product-open-pricing.php:24
12057
  msgid "Default Price"
12058
  msgstr ""
12059
 
12060
- #: includes/settings/wcj-settings-offer-price.php:190
12061
  msgid "Customer Email"
12062
  msgstr ""
12063
 
12064
- #: includes/settings/wcj-settings-offer-price.php:214
12065
  msgid "Send a Copy to Customer Checkbox"
12066
  msgstr ""
12067
 
12068
- #: includes/settings/wcj-settings-offer-price.php:222
12069
  msgid "Form Header"
12070
  msgstr ""
12071
 
12072
- #: includes/settings/wcj-settings-offer-price.php:230
12073
  msgid "Form Button Label"
12074
  msgstr ""
12075
 
12076
- #: includes/settings/wcj-settings-offer-price.php:237
12077
  msgid "Form Footer"
12078
  msgstr ""
12079
 
12080
- #: includes/settings/wcj-settings-offer-price.php:244
12081
  msgid "Required HTML"
12082
  msgstr ""
12083
 
12084
- #: includes/settings/wcj-settings-offer-price.php:251
12085
  msgid "Customer Notice"
12086
  msgstr ""
12087
 
12088
- #: includes/settings/wcj-settings-offer-price.php:262
12089
  msgid "Styling Options"
12090
  msgstr ""
12091
 
12092
- #: includes/settings/wcj-settings-offer-price.php:267
12093
  msgid "Form Width"
12094
  msgstr ""
12095
 
12096
- #: includes/settings/wcj-settings-offer-price.php:273
12097
  msgid "Header Background Color"
12098
  msgstr ""
12099
 
12100
- #: includes/settings/wcj-settings-offer-price.php:279
12101
  #: includes/settings/wcj-settings-pdf-invoicing-header.php:66
12102
  msgid "Header Text Color"
12103
  msgstr ""
12104
 
12105
- #: includes/settings/wcj-settings-offer-price.php:285
12106
  msgid "Footer Background Color"
12107
  msgstr ""
12108
 
12109
- #: includes/settings/wcj-settings-offer-price.php:291
12110
  #: includes/settings/wcj-settings-pdf-invoicing-footer.php:38
12111
  msgid "Footer Text Color"
12112
  msgstr ""
12113
 
12114
- #: includes/settings/wcj-settings-offer-price.php:306
12115
  msgid "Email Recipient"
12116
  msgstr ""
12117
 
12118
- #: includes/settings/wcj-settings-offer-price.php:307
12119
  msgid "Can be comma separated list."
12120
  msgstr ""
12121
 
12122
- #: includes/settings/wcj-settings-offer-price.php:309
12123
  #, php-format
12124
  msgid "Use %s to send to administrator email: %s."
12125
  msgstr ""
12126
 
 
 
 
 
 
 
 
 
 
 
12127
  #: includes/settings/wcj-settings-order-custom-statuses.php:20
12128
  msgid "Enable the module to add custom statuses to the list."
12129
  msgstr ""
@@ -12246,12 +12367,6 @@ msgstr ""
12246
  msgid "Exclude Shipping from Cart Total"
12247
  msgstr ""
12248
 
12249
- #: includes/settings/wcj-settings-order-min-amount.php:29
12250
- #: includes/settings/wcj-settings-order-min-amount.php:36
12251
- #: includes/settings/wcj-settings-payment-gateways-fees.php:98
12252
- msgid "Exclude"
12253
- msgstr ""
12254
-
12255
  #: includes/settings/wcj-settings-order-min-amount.php:35
12256
  msgid "Exclude Discounts from Cart Total"
12257
  msgstr ""
@@ -13034,11 +13149,21 @@ msgstr ""
13034
  msgid "Success"
13035
  msgstr ""
13036
 
13037
- #: includes/settings/wcj-settings-payment-gateways-min-max.php:88
 
 
 
 
 
 
 
 
 
 
13038
  msgid "Min"
13039
  msgstr ""
13040
 
13041
- #: includes/settings/wcj-settings-payment-gateways-min-max.php:97
13042
  msgid "Max"
13043
  msgstr ""
13044
 
@@ -13233,72 +13358,80 @@ msgid ""
13233
  "zip will stop working, if you enable this checkbox."
13234
  msgstr ""
13235
 
13236
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:94
 
 
 
 
 
 
 
 
13237
  msgid "Fonts Manager"
13238
  msgstr ""
13239
 
13240
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:103
13241
  msgid "Re-download"
13242
  msgstr ""
13243
 
13244
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:103
13245
  msgid "Download"
13246
  msgstr ""
13247
 
13248
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:108
13249
  msgid "Disable Fonts Download"
13250
  msgstr ""
13251
 
13252
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:119
13253
  msgid "General Display Options"
13254
  msgstr ""
13255
 
13256
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:124
13257
  msgid "Add PDF Invoices Meta Box to Admin Edit Order Page"
13258
  msgstr ""
13259
 
13260
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:131
13261
  msgid "Open docs in new window"
13262
  msgstr ""
13263
 
13264
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:137
13265
  msgid "Add editable numbers and dates"
13266
  msgstr ""
13267
 
13268
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:147
13269
  msgid "Report Tool Options"
13270
  msgstr ""
13271
 
13272
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:152
13273
  msgid "Reports Filename"
13274
  msgstr ""
13275
 
13276
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:160
13277
  msgid "Report Columns"
13278
  msgstr ""
13279
 
13280
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:161
13281
  msgid "Leave blank to show all columns."
13282
  msgstr ""
13283
 
13284
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:169
13285
  msgid "Tax Percent Precision"
13286
  msgstr ""
13287
 
13288
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:182
13289
  msgid "CSV UTF-8 BOM"
13290
  msgstr ""
13291
 
13292
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:189
13293
  msgid "Replace Periods with Commas in CSV Data"
13294
  msgstr ""
13295
 
13296
- #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:190
13297
  msgid "Replace"
13298
  msgstr ""
13299
 
13300
  #: includes/settings/wcj-settings-pdf-invoicing-display.php:25
13301
- #: includes/settings/wcj-settings-price-by-country.php:264
13302
  #: includes/settings/wcj-settings-shipping.php:30
13303
  msgid "Admin Title"
13304
  msgstr ""
@@ -13779,52 +13912,68 @@ msgstr ""
13779
  msgid "Disable Price by Country for Bots"
13780
  msgstr ""
13781
 
13782
- #: includes/settings/wcj-settings-price-by-country.php:163
13783
- msgid "Advanced: User IP Detection Method"
13784
  msgstr ""
13785
 
13786
- #: includes/settings/wcj-settings-price-by-country.php:177
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13787
  msgid "Country Groups"
13788
  msgstr ""
13789
 
13790
- #: includes/settings/wcj-settings-price-by-country.php:182
13791
  msgid "Countries Selection"
13792
  msgstr ""
13793
 
13794
- #: includes/settings/wcj-settings-price-by-country.php:183
13795
  msgid "Choose how do you want to enter countries groups in admin."
13796
  msgstr ""
13797
 
13798
- #: includes/settings/wcj-settings-price-by-country.php:188
13799
  msgid "Comma separated list"
13800
  msgstr ""
13801
 
13802
- #: includes/settings/wcj-settings-price-by-country.php:189
13803
  msgid "Multiselect"
13804
  msgstr ""
13805
 
13806
- #: includes/settings/wcj-settings-price-by-country.php:190
13807
  #: includes/settings/wcj-settings-product-by-condition.php:82
13808
  #: includes/settings/wcj-settings-related-products.php:164
13809
  msgid "Chosen select"
13810
  msgstr ""
13811
 
13812
- #: includes/settings/wcj-settings-price-by-country.php:194
13813
  msgid "Autogenerate Groups"
13814
  msgstr ""
13815
 
13816
- #: includes/settings/wcj-settings-price-by-country.php:200
13817
  msgid "Groups Number"
13818
  msgstr ""
13819
 
13820
- #: includes/settings/wcj-settings-price-by-country.php:224
13821
  msgid ""
13822
  "Countries. List of comma separated country codes.<br>For country codes and "
13823
  "predefined sets visit <a href=\"https://booster.io/country-codes/\" target="
13824
  "\"_blank\">https://booster.io/country-codes/</a>"
13825
  msgstr ""
13826
 
13827
- #: includes/settings/wcj-settings-price-by-country.php:310
13828
  msgid "Multiply Price by"
13829
  msgstr ""
13830
 
@@ -13876,7 +14025,14 @@ msgstr ""
13876
  msgid "Disable Price based on User Role for Bots"
13877
  msgstr ""
13878
 
 
 
 
 
 
 
13879
  #: includes/settings/wcj-settings-price-by-user-role.php:76
 
13880
  #: includes/settings/wcj-settings-wholesale-price.php:112
13881
  msgid "Advanced: Price Changes"
13882
  msgstr ""
@@ -13886,6 +14042,7 @@ msgid "Disable price based on user role for products with \"Price Changes\""
13886
  msgstr ""
13887
 
13888
  #: includes/settings/wcj-settings-price-by-user-role.php:78
 
13889
  #: includes/settings/wcj-settings-wholesale-price.php:114
13890
  msgid ""
13891
  "Try enabling this checkbox, if you are having compatibility issues with "
@@ -14674,11 +14831,6 @@ msgid ""
14674
  "Enable this if you are still seeing hidden products in \"Products\" widgets."
14675
  msgstr ""
14676
 
14677
- #: includes/settings/wcj-settings-product-by-condition.php:57
14678
- #: includes/settings/wcj-settings-product-msrp.php:86
14679
- msgid "Admin Options"
14680
- msgstr ""
14681
-
14682
  #: includes/settings/wcj-settings-product-by-condition.php:62
14683
  msgid "Visibility Method"
14684
  msgstr ""
@@ -15605,6 +15757,30 @@ msgstr ""
15605
  msgid "Allow price entering in switched currency"
15606
  msgstr ""
15607
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15608
  #: includes/settings/wcj-settings-product-price-by-formula.php:14
15609
  msgid "Default Settings"
15610
  msgstr ""
@@ -17920,86 +18096,86 @@ msgstr ""
17920
  msgid "Booster: Custom Shipping Method"
17921
  msgstr ""
17922
 
17923
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:84
17924
  #: includes/shipping/class-wc-shipping-wcj-custom.php:157
17925
  msgid "Max Weight or Quantity"
17926
  msgstr ""
17927
 
17928
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:134
17929
  msgid "Flat rate"
17930
  msgstr ""
17931
 
17932
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:135
17933
  msgid "By total cart weight"
17934
  msgstr ""
17935
 
17936
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:136
17937
  msgid "By total cart weight table"
17938
  msgstr ""
17939
 
17940
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:137
17941
  msgid "By total cart quantity"
17942
  msgstr ""
17943
 
17944
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:140
17945
  msgid "By total cart quantity table"
17946
  msgstr ""
17947
 
17948
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:154
17949
  #: includes/shipping/class-wc-shipping-wcj-custom.php:116
17950
  msgid "Cost calculation type."
17951
  msgstr ""
17952
 
17953
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:155
17954
  #: includes/shipping/class-wc-shipping-wcj-custom.php:97
17955
  #: includes/shipping/class-wc-shipping-wcj-custom.php:116
17956
  msgid "By Total Cart Quantity Table"
17957
  msgstr ""
17958
 
17959
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:164
17960
  #: includes/shipping/class-wc-shipping-wcj-custom.php:124
17961
  msgid ""
17962
  "Cost. If calculating by weight - then cost per one weight unit. If "
17963
  "calculating by quantity - then cost per one piece."
17964
  msgstr ""
17965
 
17966
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:170
17967
  #: includes/shipping/class-wc-shipping-wcj-custom.php:130
17968
  msgid "Min Weight"
17969
  msgstr ""
17970
 
17971
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:172
17972
  #: includes/shipping/class-wc-shipping-wcj-custom.php:132
17973
  msgid "Minimum total cart weight. Set zero to disable."
17974
  msgstr ""
17975
 
17976
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:179
17977
  #: includes/shipping/class-wc-shipping-wcj-custom.php:138
17978
  msgid "Max Weight"
17979
  msgstr ""
17980
 
17981
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:181
17982
  #: includes/shipping/class-wc-shipping-wcj-custom.php:140
17983
  msgid "Maximum total cart weight. Set zero to disable."
17984
  msgstr ""
17985
 
17986
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:188
17987
  msgid "Apply Formula and Shortcodes to Costs"
17988
  msgstr ""
17989
 
17990
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:189
17991
  #, php-format
17992
  msgid ""
17993
  "You can use %s and %s params in formula, e.g.: %s. Also you can use "
17994
  "shortcodes, e.g.: %s."
17995
  msgstr ""
17996
 
17997
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:198
17998
  #: includes/shipping/class-wc-shipping-wcj-custom.php:146
17999
  msgid "Table Total Rows"
18000
  msgstr ""
18001
 
18002
- #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:200
18003
  msgid ""
18004
  "Press \"Save changes\" and reload the page after you change this number."
18005
  msgstr ""
77
 
78
  #: includes/class-wcj-admin-bar.php:172
79
  #: includes/admin/class-wc-settings-jetpack.php:416
80
+ #: includes/classes/class-wcj-module.php:702
81
  msgid "Documentation"
82
  msgstr ""
83
 
96
 
97
  #: includes/class-wcj-admin-bar.php:245 includes/class-wcj-admin-bar.php:288
98
  #: includes/class-wcj-admin-bar.php:632
99
+ #: includes/classes/class-wcj-module.php:535
100
  #: includes/settings/wcj-settings-wpml.php:74
101
  msgid "Tools"
102
  msgstr ""
119
  #: includes/class-wcj-track-users.php:251
120
  #: includes/admin/class-wc-settings-jetpack.php:24
121
  #: includes/admin/class-wc-settings-jetpack.php:221
122
+ #: includes/classes/class-wcj-module.php:362
123
+ #: includes/classes/class-wcj-module.php:562
124
+ #: includes/settings/wcj-settings-price-by-country.php:178
125
  msgid "Booster"
126
  msgstr ""
127
 
172
 
173
  #: includes/class-wcj-admin-bar.php:384
174
  #: includes/admin/class-wc-settings-jetpack.php:217
175
+ #: includes/settings/wcj-settings-emails-verification.php:146
176
+ #: includes/settings/wcj-settings-price-by-country.php:177
177
  msgid "WooCommerce"
178
  msgstr ""
179
 
227
  msgstr ""
228
 
229
  #: includes/class-wcj-admin-bar.php:440
230
+ #: includes/settings/wcj-settings-offer-price.php:49
231
  #: includes/settings/wcj-settings-stock.php:101
232
  #: includes/shortcodes/class-wcj-shortcodes-products.php:565
233
  msgid "Out of stock"
1051
  msgstr ""
1052
 
1053
  #: includes/class-wcj-custom-php.php:32
1054
+ #: includes/settings/wcj-settings-multicurrency.php:144
1055
+ #: includes/settings/wcj-settings-offer-price.php:84
1056
  #, php-format
1057
  msgid "E.g.: %s"
1058
  msgstr ""
1093
 
1094
  #: includes/class-wcj-email-options.php:26
1095
  #: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-emails.php:24
1096
+ #: includes/settings/wcj-settings-emails-verification.php:115
1097
+ #: includes/settings/wcj-settings-offer-price.php:309
1098
  msgid "Email Options"
1099
  msgstr ""
1100
 
1152
  msgid "Add WooCommerce email verification."
1153
  msgstr ""
1154
 
1155
+ #: includes/class-wcj-emails-verification.php:70
1156
  msgid "Verified"
1157
  msgstr ""
1158
 
1159
+ #: includes/class-wcj-emails-verification.php:83
1160
  msgid "Email verified"
1161
  msgstr ""
1162
 
1163
+ #: includes/class-wcj-emails-verification.php:84
1164
  msgid "Email not verified"
1165
  msgstr ""
1166
 
1167
+ #: includes/class-wcj-emails-verification.php:122
1168
+ #: includes/settings/wcj-settings-emails-verification.php:78
1169
  msgid ""
1170
  "Your account has to be activated before you can login. You can resend email "
1171
  "with verification link by clicking <a href=\"%resend_verification_url%"
1172
  "\">here</a>."
1173
  msgstr ""
1174
 
1175
+ #: includes/class-wcj-emails-verification.php:142
1176
+ #: includes/class-wcj-emails-verification.php:144
1177
+ #: includes/settings/wcj-settings-emails-verification.php:133
1178
  msgid ""
1179
  "Please click the following link to verify your email:<br><br><a href="
1180
  "\"%verification_url%\">%verification_url%</a>"
1181
  msgstr ""
1182
 
1183
+ #: includes/class-wcj-emails-verification.php:147
1184
+ #: includes/class-wcj-emails-verification.php:149
1185
+ #: includes/settings/wcj-settings-emails-verification.php:123
1186
  msgid "Please activate your account"
1187
  msgstr ""
1188
 
1189
+ #: includes/class-wcj-emails-verification.php:154
1190
+ #: includes/settings/wcj-settings-emails-verification.php:155
1191
  msgid "Activate your account"
1192
  msgstr ""
1193
 
1194
+ #: includes/class-wcj-emails-verification.php:171
1195
+ #: includes/settings/wcj-settings-emails-verification.php:70
1196
  msgid "<strong>Success:</strong> Your account has been activated!"
1197
  msgstr ""
1198
 
1199
+ #: includes/class-wcj-emails-verification.php:188
1200
+ #: includes/settings/wcj-settings-emails-verification.php:86
1201
  msgid ""
1202
  "<strong>Error:</strong> Activation failed, please contact our administrator. "
1203
  "You can resend email with verification link by clicking <a href="
1204
  "\"%resend_verification_url%\">here</a>."
1205
  msgstr ""
1206
 
1207
+ #: includes/class-wcj-emails-verification.php:195
1208
+ #: includes/settings/wcj-settings-emails-verification.php:93
1209
  msgid ""
1210
  "<strong>Error:</strong> Activation failed, please contact our administrator."
1211
  msgstr ""
1212
 
1213
+ #: includes/class-wcj-emails-verification.php:200
1214
+ #: includes/settings/wcj-settings-emails-verification.php:100
1215
  msgid ""
1216
  "Thank you for your registration. Your account has to be activated before you "
1217
  "can login. Please check your email."
1218
  msgstr ""
1219
 
1220
+ #: includes/class-wcj-emails-verification.php:204
1221
+ #: includes/settings/wcj-settings-emails-verification.php:107
1222
  msgid ""
1223
  "<strong>Success:</strong> Your activation email has been resent. Please "
1224
  "check your email."
1396
  msgid "Filter"
1397
  msgstr ""
1398
 
1399
+ #: includes/class-wcj-export-import.php:232
1400
  #: includes/class-wcj-track-users.php:36
1401
  msgid "All time"
1402
  msgstr ""
1403
 
1404
+ #: includes/class-wcj-export-import.php:246
1405
  msgid "Custom:"
1406
  msgstr ""
1407
 
1408
+ #: includes/class-wcj-export-import.php:251
1409
  msgid "Go"
1410
  msgstr ""
1411
 
1412
+ #: includes/class-wcj-export-import.php:271
1413
  msgid "Download CSV"
1414
  msgstr ""
1415
 
1416
+ #: includes/class-wcj-export-import.php:274
1417
  msgid "Download XML"
1418
  msgstr ""
1419
 
1420
+ #: includes/class-wcj-export-import.php:276
1421
  msgid "Filter by All Fields"
1422
  msgstr ""
1423
 
1499
  msgstr ""
1500
 
1501
  #: includes/class-wcj-general.php:211 includes/class-wcj-general.php:227
1502
+ #: includes/class-wcj-offer-price.php:167
1503
  #: includes/export/class-wcj-fields-helper.php:282
1504
  #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:70
1505
  #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:104
1512
 
1513
  #: includes/class-wcj-general.php:211
1514
  #: includes/class-wcj-product-by-user.php:197
1515
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:107
1516
  #: includes/tools/class-wcj-order-statuses-tool.php:145
1517
  #: includes/tools/class-wcj-order-statuses-tool.php:221
1518
  msgid "Actions"
1555
  #: includes/settings/wcj-settings-order-min-amount.php:53
1556
  #: includes/settings/wcj-settings-orders.php:132
1557
  #: includes/settings/wcj-settings-orders.php:159
1558
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:132
1559
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:190
1560
  #: includes/settings/wcj-settings-product-by-condition.php:107
1561
  #: includes/settings/wcj-settings-product-by-user.php:114
1562
  #: includes/settings/wcj-settings-product-open-pricing.php:123
1573
  msgstr ""
1574
 
1575
  #: includes/class-wcj-global-discount.php:27
1576
+ #: includes/admin/class-wc-settings-jetpack.php:486
1577
  #: includes/settings/wcj-settings-product-addons.php:237
1578
  msgid "Global Discount"
1579
  msgstr ""
1789
  #: includes/class-wcj-product-by-user.php:206
1790
  #: includes/class-wcj-purchase-data.php:94
1791
  #: includes/class-wcj-track-users.php:334
1792
+ #: includes/classes/class-wcj-module.php:671
1793
  #: includes/functions/wcj-functions-general.php:189
1794
  #: includes/functions/wcj-functions-html.php:117
1795
  #: includes/reports/wcj-class-reports-monthly-sales.php:351
1813
  msgstr ""
1814
 
1815
  #: includes/class-wcj-offer-price.php:164
 
 
 
 
1816
  #: includes/functions/wcj-functions-reports.php:21
1817
  #: includes/settings/wcj-settings-cross-sells.php:44
1818
  #: includes/settings/wcj-settings-order-numbers.php:151
1822
  msgid "Date"
1823
  msgstr ""
1824
 
1825
+ #: includes/class-wcj-offer-price.php:165
1826
  #: includes/export/class-wcj-fields-helper.php:288
1827
  #: includes/reports/wcj-class-reports-stock.php:271
1828
  #: includes/settings/wcj-settings-cross-sells.php:47
1833
  msgid "Price"
1834
  msgstr ""
1835
 
1836
+ #: includes/class-wcj-offer-price.php:166
1837
  #: includes/settings/wcj-settings-coupon-by-user-role.php:60
1838
  #: includes/settings/wcj-settings-currency-per-product.php:41
1839
  #: includes/settings/wcj-settings-currency-per-product.php:48
1843
  msgid "Message"
1844
  msgstr ""
1845
 
1846
+ #: includes/class-wcj-offer-price.php:168
1847
  #: includes/export/class-wcj-fields-helper.php:75
1848
  #: includes/input-fields/wcj-product-input-fields-options.php:45
1849
  #: includes/reports/wcj-class-reports-customers.php:93
1851
  msgid "Email"
1852
  msgstr ""
1853
 
1854
+ #: includes/class-wcj-offer-price.php:169
1855
  #: includes/export/class-wcj-fields-helper.php:74
1856
  msgid "Customer ID"
1857
  msgstr ""
1858
 
1859
+ #: includes/class-wcj-offer-price.php:170
1860
+ msgid "User IP"
1861
+ msgstr ""
1862
+
1863
+ #: includes/class-wcj-offer-price.php:171
1864
+ msgid "User Agent"
1865
+ msgstr ""
1866
+
1867
+ #: includes/class-wcj-offer-price.php:172
1868
  msgid "Sent to"
1869
  msgstr ""
1870
 
1871
+ #: includes/class-wcj-offer-price.php:184
1872
+ msgid "No price offers yet."
1873
+ msgstr ""
1874
+
1875
+ #: includes/class-wcj-offer-price.php:240
1876
  #, php-format
1877
  msgid "Average offer: %s (from %s offer(s))"
1878
  msgstr ""
1879
 
1880
+ #: includes/class-wcj-offer-price.php:247
1881
  msgid "Delete history"
1882
  msgstr ""
1883
 
1884
+ #: includes/class-wcj-offer-price.php:248
1885
  msgid "Update product after checking the box."
1886
  msgstr ""
1887
 
1888
+ #: includes/class-wcj-offer-price.php:322
1889
+ #: includes/settings/wcj-settings-offer-price.php:163
1890
  #, php-format
1891
  msgid "Your price (%s)"
1892
  msgstr ""
1893
 
1894
+ #: includes/class-wcj-offer-price.php:328
1895
+ #: includes/settings/wcj-settings-offer-price.php:234
1896
  #, php-format
1897
  msgid "Suggest your price for %s"
1898
  msgstr ""
1899
 
1900
+ #: includes/class-wcj-offer-price.php:383
1901
+ #: includes/settings/wcj-settings-offer-price.php:202
1902
  msgid "Your email"
1903
  msgstr ""
1904
 
1905
+ #: includes/class-wcj-offer-price.php:387
1906
+ #: includes/settings/wcj-settings-offer-price.php:210
1907
  msgid "Your name"
1908
  msgstr ""
1909
 
1910
+ #: includes/class-wcj-offer-price.php:391
1911
+ #: includes/settings/wcj-settings-offer-price.php:218
1912
  msgid "Your message"
1913
  msgstr ""
1914
 
1915
+ #: includes/class-wcj-offer-price.php:395
1916
+ #: includes/settings/wcj-settings-offer-price.php:241
1917
  msgid "Send"
1918
  msgstr ""
1919
 
1920
+ #: includes/class-wcj-offer-price.php:397
1921
+ #: includes/settings/wcj-settings-offer-price.php:226
1922
  msgid "Send a copy to your email"
1923
  msgstr ""
1924
 
1925
+ #: includes/class-wcj-offer-price.php:464
1926
+ #: includes/settings/wcj-settings-offer-price.php:68
1927
  msgid "Make an offer"
1928
  msgstr ""
1929
 
1930
+ #: includes/class-wcj-offer-price.php:522
1931
+ #: includes/settings/wcj-settings-offer-price.php:340
1932
  #, php-format
1933
  msgid "Product: %s"
1934
  msgstr ""
1935
 
1936
+ #: includes/class-wcj-offer-price.php:523
1937
+ #: includes/settings/wcj-settings-offer-price.php:341
1938
  #, php-format
1939
  msgid "Offered price: %s"
1940
  msgstr ""
1941
 
1942
+ #: includes/class-wcj-offer-price.php:524
1943
+ #: includes/settings/wcj-settings-offer-price.php:342
1944
  #, php-format
1945
  msgid "From: %s %s"
1946
  msgstr ""
1947
 
1948
+ #: includes/class-wcj-offer-price.php:525
1949
+ #: includes/settings/wcj-settings-offer-price.php:343
1950
  #, php-format
1951
  msgid "Message: %s"
1952
  msgstr ""
1953
 
1954
+ #: includes/class-wcj-offer-price.php:538
1955
+ #: includes/settings/wcj-settings-offer-price.php:331
1956
  msgid "Price Offer"
1957
  msgstr ""
1958
 
1959
+ #: includes/class-wcj-offer-price.php:548
1960
+ #: includes/settings/wcj-settings-offer-price.php:262
1961
  msgid "Your price offer has been sent."
1962
  msgstr ""
1963
 
2123
  msgid "Renumerate orders"
2124
  msgstr ""
2125
 
2126
+ #: includes/class-wcj-order-quantities.php:30
2127
+ msgid "Order Quantities"
2128
  msgstr ""
2129
 
2130
+ #: includes/class-wcj-order-quantities.php:31
2131
+ msgid ""
2132
+ "Manage product quantities in WooCommerce order: set min, max, step; enable "
2133
+ "decimal quantities etc."
2134
  msgstr ""
2135
 
2136
+ #: includes/class-wcj-order-quantities.php:260
2137
  #: includes/settings/wcj-settings-order-quantities.php:260
2138
  msgid ""
2139
  "Only one item can be added to the cart. Clear the cart or finish the order, "
2140
  "before adding another item to the cart."
2141
  msgstr ""
2142
 
2143
+ #: includes/class-wcj-order-quantities.php:429
2144
  #: includes/settings/wcj-settings-order-quantities.php:160
2145
  msgid ""
2146
  "Maximum allowed order quantity is %max_cart_total_quantity%. Your current "
2147
  "order quantity is %cart_total_quantity%."
2148
  msgstr ""
2149
 
2150
+ #: includes/class-wcj-order-quantities.php:437
2151
  #: includes/settings/wcj-settings-order-quantities.php:102
2152
  msgid ""
2153
  "Minimum allowed order quantity is %min_cart_total_quantity%. Your current "
2154
  "order quantity is %cart_total_quantity%."
2155
  msgstr ""
2156
 
2157
+ #: includes/class-wcj-order-quantities.php:447
2158
  #: includes/settings/wcj-settings-order-quantities.php:186
2159
  msgid ""
2160
  "Maximum allowed quantity for %product_title% is %max_per_item_quantity%. "
2161
  "Your current item quantity is %item_quantity%."
2162
  msgstr ""
2163
 
2164
+ #: includes/class-wcj-order-quantities.php:457
2165
  #: includes/settings/wcj-settings-order-quantities.php:128
2166
  msgid ""
2167
  "Minimum allowed quantity for %product_title% is %min_per_item_quantity%. "
2168
  "Your current item quantity is %item_quantity%."
2169
  msgstr ""
2170
 
2171
+ #: includes/class-wcj-order-quantities.php:467
2172
  #: includes/settings/wcj-settings-order-quantities.php:234
2173
  msgid ""
2174
  "Required step for %product_title% is %required_step%. Your current item "
2287
  msgstr ""
2288
 
2289
  #: includes/class-wcj-payment-gateways-per-category.php:26
2290
+ #: includes/admin/class-wc-settings-jetpack.php:485
2291
  msgid "Gateways per Product or Category"
2292
  msgstr ""
2293
 
2527
  #: includes/settings/wcj-settings-debug-tools.php:37
2528
  #: includes/settings/wcj-settings-emails-verification.php:28
2529
  #: includes/settings/wcj-settings-emails-verification.php:36
2530
+ #: includes/settings/wcj-settings-emails-verification.php:43
2531
  #: includes/settings/wcj-settings-general.php:21
2532
  #: includes/settings/wcj-settings-general.php:48
2533
  #: includes/settings/wcj-settings-general.php:129
2542
  #: includes/settings/wcj-settings-more-button-labels.php:28
2543
  #: includes/settings/wcj-settings-multicurrency-base-price.php:38
2544
  #: includes/settings/wcj-settings-multicurrency-base-price.php:53
2545
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:70
2546
  #: includes/settings/wcj-settings-multicurrency.php:39
2547
+ #: includes/settings/wcj-settings-multicurrency.php:112
2548
+ #: includes/settings/wcj-settings-multicurrency.php:119
2549
+ #: includes/settings/wcj-settings-multicurrency.php:126
2550
  #: includes/settings/wcj-settings-my-account.php:29
2551
  #: includes/settings/wcj-settings-my-account.php:87
2552
  #: includes/settings/wcj-settings-my-account.php:104
3038
  msgstr ""
3039
 
3040
  #: includes/class-wcj-product-bulk-price-converter.php:271
3041
+ #: includes/settings/wcj-settings-payment-gateways-min-max.php:83
3042
  msgid "Leave zero to disable."
3043
  msgstr ""
3044
 
3262
  #: includes/settings/wcj-settings-related-products.php:24
3263
  #: includes/settings/wcj-settings-upsells.php:42
3264
  #: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:57
3265
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:147
3266
  #: includes/shipping/class-wc-shipping-wcj-custom.php:107
3267
  #: includes/shortcodes/class-wcj-shortcodes-products-add-form.php:334
3268
  #: includes/widgets/class-wcj-widget-country-switcher.php:62
3280
  msgstr ""
3281
 
3282
  #: includes/class-wcj-product-custom-info.php:24
3283
+ #: includes/admin/class-wc-settings-jetpack.php:487
3284
+ #: includes/admin/class-wc-settings-jetpack.php:499
3285
+ #: includes/admin/class-wc-settings-jetpack.php:508
3286
  #: includes/functions/wcj-functions-general.php:449
3287
  msgid "Product Info"
3288
  msgstr ""
3377
  msgstr ""
3378
 
3379
  #: includes/class-wcj-product-info.php:123
3380
+ #: includes/settings/wcj-settings-offer-price.php:116
3381
  #: includes/settings/wcj-settings-product-add-to-cart.php:326
3382
  #: includes/settings/wcj-settings-product-custom-info.php:115
3383
  msgid "Before product"
3390
  msgstr ""
3391
 
3392
  #: includes/class-wcj-product-info.php:125
3393
+ #: includes/settings/wcj-settings-offer-price.php:117
3394
  #: includes/settings/wcj-settings-product-add-to-cart.php:328
3395
  #: includes/settings/wcj-settings-product-custom-info.php:119
3396
  msgid "After product"
3403
  msgstr ""
3404
 
3405
  #: includes/class-wcj-product-info.php:138
3406
+ #: includes/settings/wcj-settings-offer-price.php:95
3407
  #: includes/settings/wcj-settings-product-add-to-cart.php:292
3408
  #: includes/settings/wcj-settings-product-custom-info.php:104
3409
  #: includes/settings/wcj-settings-upsells.php:60
3411
  msgstr ""
3412
 
3413
  #: includes/class-wcj-product-info.php:139
3414
+ #: includes/settings/wcj-settings-offer-price.php:94
3415
  #: includes/settings/wcj-settings-product-add-to-cart.php:291
3416
  #: includes/settings/wcj-settings-product-custom-info.php:103
3417
  #: includes/settings/wcj-settings-upsells.php:59
3419
  msgstr ""
3420
 
3421
  #: includes/class-wcj-product-info.php:140
3422
+ #: includes/settings/wcj-settings-offer-price.php:98
3423
  #: includes/settings/wcj-settings-product-add-to-cart.php:293
3424
  #: includes/settings/wcj-settings-product-custom-info.php:105
3425
  #: includes/settings/wcj-settings-upsells.php:61
3474
  msgstr ""
3475
 
3476
  #: includes/class-wcj-product-input-fields.php:24
3477
+ #: includes/admin/class-wc-settings-jetpack.php:488
3478
  #: includes/input-fields/class-wcj-product-input-fields-core.php:185
3479
  msgid "Product Input Fields"
3480
  msgstr ""
3516
  msgid "Save and display product MSRP in WooCommerce."
3517
  msgstr ""
3518
 
3519
+ #: includes/class-wcj-product-msrp.php:92
3520
+ #: includes/class-wcj-product-msrp.php:123
3521
  #: includes/settings/meta-box/wcj-settings-meta-box-product-msrp.php:35
3522
  msgid "MSRP"
3523
  msgstr ""
3542
  "products."
3543
  msgstr ""
3544
 
3545
+ #: includes/class-wcj-product-open-pricing.php:326
3546
  #: includes/settings/wcj-settings-product-open-pricing.php:73
3547
  msgid "Price is required!"
3548
  msgstr ""
3549
 
3550
+ #: includes/class-wcj-product-open-pricing.php:332
3551
  #: includes/settings/wcj-settings-product-open-pricing.php:81
3552
  msgid "Entered price is too small!"
3553
  msgstr ""
3554
 
3555
+ #: includes/class-wcj-product-open-pricing.php:337
3556
  #: includes/settings/wcj-settings-product-open-pricing.php:89
3557
  msgid "Entered price is too big!"
3558
  msgstr ""
3559
 
3560
+ #: includes/class-wcj-product-open-pricing.php:431
3561
  #: includes/settings/wcj-settings-product-open-pricing.php:29
3562
  msgid "Name Your Price"
3563
  msgstr ""
3726
 
3727
  #: includes/class-wcj-product-tabs.php:658
3728
  #: includes/settings/wcj-settings-checkout-core-fields.php:71
3729
+ #: includes/settings/wcj-settings-currency-exchange-rates.php:158
3730
  #: includes/settings/wcj-settings-order-numbers.php:46
3731
  #: includes/settings/wcj-settings-orders.php:180
3732
  #: includes/settings/wcj-settings-product-add-to-cart.php:64
3817
  msgstr ""
3818
 
3819
  #: includes/class-wcj-purchase-data.php:115
3820
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:94
3821
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:165
3822
  #: includes/shipping/class-wc-shipping-wcj-custom.php:122
3823
  #: includes/shipping/class-wc-shipping-wcj-custom.php:164
3824
  msgid "Cost"
3852
  msgstr ""
3853
 
3854
  #: includes/class-wcj-related-products.php:38
3855
+ #: includes/admin/class-wc-settings-jetpack.php:490
3856
  #: includes/settings/wcj-settings-free-price.php:20
3857
  #: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:30
3858
  msgid "Related Products"
4145
  msgstr ""
4146
 
4147
  #: includes/class-wcj-shipping-by-user-role.php:33
4148
+ #: includes/settings/wcj-settings-multicurrency.php:220
4149
  #: includes/settings/wcj-settings-order-min-amount.php:104
4150
  #: includes/settings/wcj-settings-price-by-user-role.php:90
4151
  #, php-format
4249
  #: includes/class-wcj-shipping.php:24
4250
  #: includes/settings/wcj-settings-shipping.php:16
4251
  #: includes/settings/wcj-settings-shipping.php:23
4252
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:150
4253
  #: includes/shipping/class-wc-shipping-wcj-custom.php:110
4254
  msgid "Custom Shipping"
4255
  msgstr ""
4593
  msgstr ""
4594
 
4595
  #: includes/admin/class-wc-settings-jetpack.php:475
4596
+ msgid "Load Modules on Init Hook"
4597
  msgstr ""
4598
 
4599
  #: includes/admin/class-wc-settings-jetpack.php:477
4600
+ msgid "Choose if you want to load Booster Modules on Init hook."
4601
+ msgstr ""
4602
+
4603
+ #: includes/admin/class-wc-settings-jetpack.php:477
4604
+ msgid ""
4605
+ "It will load the locale appropriately if users change it from the profile "
4606
+ "page."
4607
+ msgstr ""
4608
+
4609
+ #: includes/admin/class-wc-settings-jetpack.php:482
4610
+ msgid "Use List Instead of Comma Separated Text for Products in Settings"
4611
+ msgstr ""
4612
+
4613
+ #: includes/admin/class-wc-settings-jetpack.php:484
4614
+ #: includes/admin/class-wc-settings-jetpack.php:498
4615
+ #: includes/admin/class-wc-settings-jetpack.php:507
4616
  #, php-format
4617
  msgid "Supported modules: %s."
4618
  msgstr ""
4619
 
4620
+ #: includes/admin/class-wc-settings-jetpack.php:489
4621
  msgid "Products XML"
4622
  msgstr ""
4623
 
4624
+ #: includes/admin/class-wc-settings-jetpack.php:496
4625
  msgid ""
4626
  "Use List Instead of Comma Separated Text for Products Categories in Settings"
4627
  msgstr ""
4628
 
4629
+ #: includes/admin/class-wc-settings-jetpack.php:505
4630
  msgid "Use List Instead of Comma Separated Text for Products Tags in Settings"
4631
  msgstr ""
4632
 
4633
+ #: includes/admin/class-wc-settings-jetpack.php:532
4634
  #: includes/core/class-wcj-admin.php:97
4635
  msgid "Booster for WooCommerce"
4636
  msgstr ""
4753
  #: includes/settings/wcj-settings-payment-gateways-by-shipping.php:37
4754
  #: includes/settings/wcj-settings-payment-gateways-by-user-role.php:14
4755
  #: includes/settings/wcj-settings-payment-gateways-currency.php:15
4756
+ #: includes/settings/wcj-settings-payment-gateways-min-max.php:81
4757
  #: includes/settings/wcj-settings-reports.php:118
4758
  msgid "Payment Gateways"
4759
  msgstr ""
4804
  msgid "Invisible"
4805
  msgstr ""
4806
 
4807
+ #: includes/classes/class-wcj-module.php:134
4808
  #, php-format
4809
  msgid ""
4810
  "Booster: Free plugin's version is limited to only one \"%1$s\" product with "
4813
  "\"%1$s\" products."
4814
  msgstr ""
4815
 
4816
+ #: includes/classes/class-wcj-module.php:454
4817
  #, php-format
4818
  msgid "Selected: %s."
4819
  msgstr ""
4820
 
4821
+ #: includes/classes/class-wcj-module.php:523
4822
  msgid "Back to Module Settings"
4823
  msgstr ""
4824
 
4825
+ #: includes/classes/class-wcj-module.php:541
4826
  #: includes/settings/wcj-settings-wpml.php:79
4827
  msgid "Module Tools"
4828
  msgstr ""
4829
 
4830
+ #: includes/classes/class-wcj-module.php:614
4831
  #: includes/settings/wcj-settings-checkout-core-fields.php:64
4832
  msgid "enabled"
4833
  msgstr ""
4834
 
4835
+ #: includes/classes/class-wcj-module.php:615
4836
  msgid "disabled"
4837
  msgstr ""
4838
 
4839
+ #: includes/classes/class-wcj-module.php:623
4840
  #: includes/settings/wcj-settings-product-tabs.php:172
4841
  #: includes/settings/wcj-settings-product-tabs.php:184
4842
  #: includes/settings/wcj-settings-product-tabs.php:196
4844
  msgid "Deprecated"
4845
  msgstr ""
4846
 
4847
+ #: includes/classes/class-wcj-module.php:661
4848
  msgid "Reset Settings"
4849
  msgstr ""
4850
 
4851
+ #: includes/classes/class-wcj-module.php:667
4852
  msgid "Reset Module to Default Settings"
4853
  msgstr ""
4854
 
4855
+ #: includes/classes/class-wcj-module.php:668
4856
  msgid "Reset Submodule to Default Settings"
4857
  msgstr ""
4858
 
4859
+ #: includes/classes/class-wcj-module.php:672
4860
  msgid "Reset settings"
4861
  msgstr ""
4862
 
4863
+ #: includes/classes/class-wcj-module.php:706
4864
  msgid "Module Options"
4865
  msgstr ""
4866
 
4867
+ #: includes/classes/class-wcj-module.php:713
4868
  msgid "Enable Module"
4869
  msgstr ""
4870
 
5439
  #: includes/settings/wcj-settings-purchase-data.php:73
5440
  #: includes/settings/wcj-settings-shipping-options.php:77
5441
  #: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:45
5442
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:155
5443
  #: includes/shipping/class-wc-shipping-wcj-custom.php:114
5444
  #: includes/widgets/class-wcj-widget-multicurrency.php:76
5445
  msgid "Type"
5569
  "version <strong>%s</strong>."
5570
  msgstr ""
5571
 
5572
+ #: includes/functions/wcj-functions-admin.php:152
5573
  msgid "Search&hellip;"
5574
  msgstr ""
5575
 
5576
+ #: includes/functions/wcj-functions-admin.php:192
5577
  msgid "Enter comma separated list of IDs."
5578
  msgstr ""
5579
 
5580
+ #: includes/functions/wcj-functions-admin.php:266
 
5581
  #: includes/settings/wcj-settings-emails-verification.php:75
5582
+ #: includes/settings/wcj-settings-emails-verification.php:83
5583
+ #: includes/settings/wcj-settings-emails-verification.php:130
5584
  #, php-format
5585
  msgid "Replaced value: %s"
5586
  msgstr ""
5587
 
5588
+ #: includes/functions/wcj-functions-admin.php:266
5589
  #, php-format
5590
  msgid "Replaced values: %s"
5591
  msgstr ""
5592
 
5593
+ #: includes/functions/wcj-functions-admin.php:295
5594
  msgid "Install Booster Plus to unlock all features"
5595
  msgstr ""
5596
 
5597
+ #: includes/functions/wcj-functions-admin.php:296
5598
  #, php-format
5599
  msgid ""
5600
  "Some settings fields are locked and you will need %s to modify all locked "
5601
  "fields."
5602
  msgstr ""
5603
 
5604
+ #: includes/functions/wcj-functions-admin.php:299
5605
  msgid "Buy now"
5606
  msgstr ""
5607
 
5608
+ #: includes/functions/wcj-functions-admin.php:300
5609
  msgid "Visit Booster Site"
5610
  msgstr ""
5611
 
5612
+ #: includes/functions/wcj-functions-admin.php:305
5613
  #, php-format
5614
  msgid "Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to change value."
5615
  msgstr ""
5616
 
5617
+ #: includes/functions/wcj-functions-admin.php:308
5618
  #, php-format
5619
  msgid ""
5620
  "Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to enable \"%s\" "
5621
  "option."
5622
  msgstr ""
5623
 
5624
+ #: includes/functions/wcj-functions-admin.php:311
5625
  #, php-format
5626
  msgid "Get Booster Plus to enable \"%s\" option."
5627
  msgstr ""
5628
 
5629
+ #: includes/functions/wcj-functions-admin.php:314
5630
  #, php-format
5631
  msgid ""
5632
  "Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to change values below."
5633
  msgstr ""
5634
 
5635
+ #: includes/functions/wcj-functions-admin.php:317
5636
  #, php-format
5637
  msgid ""
5638
  "Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to change values above."
5639
  msgstr ""
5640
 
5641
+ #: includes/functions/wcj-functions-admin.php:320
5642
  msgid "Get Booster Plus to change value."
5643
  msgstr ""
5644
 
6936
  msgstr ""
6937
 
6938
  #: includes/gateways/class-wc-gateway-wcj-custom.php:57
6939
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:149
6940
  #: includes/shipping/class-wc-shipping-wcj-custom.php:109
6941
  msgid "This controls the title which the user sees during checkout."
6942
  msgstr ""
7076
  msgstr ""
7077
 
7078
  #: includes/input-fields/class-wcj-product-input-fields-core.php:223
7079
+ #: includes/input-fields/class-wcj-product-input-fields-core.php:398
7080
  #: includes/settings/wcj-settings-product-input-fields.php:84
7081
  msgid "Product Input Field"
7082
  msgstr ""
7083
 
7084
+ #: includes/input-fields/class-wcj-product-input-fields-core.php:469
7085
  msgid "Wrong file type!"
7086
  msgstr ""
7087
 
7088
+ #: includes/input-fields/class-wcj-product-input-fields-core.php:477
7089
  msgid "File is too big!"
7090
  msgstr ""
7091
 
7092
+ #: includes/input-fields/class-wcj-product-input-fields-core.php:703
7093
  msgid "Select a country&hellip;"
7094
  msgstr ""
7095
 
7543
  #: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-advanced.php:25
7544
  #: includes/settings/wcj-settings-add-to-cart-button-visibility.php:36
7545
  #: includes/settings/wcj-settings-add-to-cart-button-visibility.php:62
7546
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:63
7547
+ #: includes/settings/wcj-settings-multicurrency.php:137
7548
  #: includes/settings/wcj-settings-order-min-amount.php:69
7549
+ #: includes/settings/wcj-settings-price-by-country.php:160
7550
  msgid "Advanced"
7551
  msgstr ""
7552
 
7691
  msgstr ""
7692
 
7693
  #: includes/price-by-country/class-wcj-price-by-country-local.php:111
7694
+ #: includes/settings/wcj-settings-price-by-country.php:338
7695
  #: includes/settings/meta-box/wcj-settings-meta-box-price-by-country.php:67
7696
  msgid "Make empty price"
7697
  msgstr ""
7698
 
7699
  #: includes/price-by-country/class-wcj-price-by-country-local.php:215
7700
  #: includes/settings/wcj-settings-add-to-cart.php:50
7701
+ #: includes/settings/wcj-settings-price-by-country.php:232
7702
+ #: includes/settings/wcj-settings-price-by-country.php:233
7703
+ #: includes/settings/wcj-settings-price-by-country.php:238
7704
+ #: includes/settings/wcj-settings-price-by-country.php:286
7705
+ #: includes/settings/wcj-settings-price-by-country.php:329
7706
  #: includes/settings/meta-box/wcj-settings-meta-box-price-by-country.php:17
7707
  msgid "Group"
7708
  msgstr ""
7725
  msgstr ""
7726
 
7727
  #: includes/reports/wcj-class-reports-customers.php:92
7728
+ #: includes/settings/wcj-settings-offer-price.php:206
7729
  msgid "Customer Name"
7730
  msgstr ""
7731
 
8067
  #: includes/settings/wcj-settings-general.php:105
8068
  #: includes/settings/wcj-settings-general.php:113
8069
  #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:84
8070
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:116
8071
  #: includes/settings/wcj-settings-price-by-user-role.php:56
8072
  #: includes/settings/wcj-settings-price-by-user-role.php:96
8073
  #: includes/settings/wcj-settings-product-add-to-cart.php:131
8419
  #: includes/settings/wcj-settings-checkout-custom-fields.php:158
8420
  #: includes/settings/wcj-settings-checkout-files-upload.php:81
8421
  #: includes/settings/wcj-settings-checkout-files-upload.php:305
8422
+ #: includes/settings/wcj-settings-offer-price.php:65
8423
+ #: includes/settings/wcj-settings-offer-price.php:159
 
8424
  #: includes/settings/wcj-settings-offer-price.php:199
8425
  #: includes/settings/wcj-settings-offer-price.php:207
8426
  #: includes/settings/wcj-settings-offer-price.php:215
8427
+ #: includes/settings/wcj-settings-offer-price.php:223
8428
  #: includes/tools/class-wcj-order-statuses-tool.php:141
8429
  #: includes/tools/class-wcj-order-statuses-tool.php:217
8430
  msgid "Label"
8463
  #: includes/settings/wcj-settings-admin-orders-list.php:120
8464
  #: includes/settings/wcj-settings-empty-cart.php:46
8465
  #: includes/settings/wcj-settings-empty-cart.php:67
8466
+ #: includes/settings/wcj-settings-offer-price.php:92
8467
+ #: includes/settings/wcj-settings-offer-price.php:115
8468
  msgid "Do not add"
8469
  msgstr ""
8470
 
10123
  #: includes/settings/wcj-settings-multicurrency-base-price.php:22
10124
  #: includes/settings/wcj-settings-multicurrency.php:22
10125
  #: includes/settings/wcj-settings-payment-gateways-currency.php:68
10126
+ #: includes/settings/wcj-settings-price-by-country.php:302
10127
  msgid "Exchange Rates Updates"
10128
  msgstr ""
10129
 
10136
  msgstr ""
10137
 
10138
  #: includes/settings/wcj-settings-currency-exchange-rates.php:60
10139
+ #: includes/settings/wcj-settings-offer-price.php:168
10140
  #: includes/settings/wcj-settings-payment-gateways-fees.php:74
10141
  #: includes/settings/wcj-settings-product-by-user.php:70
10142
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:25
10187
  msgstr ""
10188
 
10189
  #: includes/settings/wcj-settings-currency-exchange-rates.php:113
10190
+ msgid "API Keys"
10191
+ msgstr ""
10192
+
10193
+ #: includes/settings/wcj-settings-currency-exchange-rates.php:114
10194
+ msgid "API keys provided by the Exchange Rates Servers"
10195
+ msgstr ""
10196
+
10197
+ #: includes/settings/wcj-settings-currency-exchange-rates.php:119
10198
+ msgid "Free Currency Converter API"
10199
+ msgstr ""
10200
+
10201
+ #: includes/settings/wcj-settings-currency-exchange-rates.php:120
10202
+ #, php-format
10203
+ msgid "More information at %s"
10204
+ msgstr ""
10205
+
10206
+ #: includes/settings/wcj-settings-currency-exchange-rates.php:129
10207
  msgid "Custom Currencies Options"
10208
  msgstr ""
10209
 
10210
+ #: includes/settings/wcj-settings-currency-exchange-rates.php:131
10211
  #, php-format
10212
  msgid ""
10213
  "You can add more currencies in this section. E.g. this can be used to "
10214
  "display exchange rates with %s shortcodes."
10215
  msgstr ""
10216
 
10217
+ #: includes/settings/wcj-settings-currency-exchange-rates.php:142
10218
  #: includes/settings/wcj-settings-currency.php:61
10219
  msgid "Total Custom Currencies"
10220
  msgstr ""
10221
 
10222
+ #: includes/settings/wcj-settings-currency-exchange-rates.php:154
10223
  #: includes/settings/wcj-settings-currency.php:73
10224
  msgid "Custom Currency"
10225
  msgstr ""
10226
 
10227
+ #: includes/settings/wcj-settings-currency-exchange-rates.php:173
10228
+ #: includes/settings/wcj-settings-price-by-country.php:297
10229
  msgid "Exchange Rates"
10230
  msgstr ""
10231
 
10232
+ #: includes/settings/wcj-settings-currency-exchange-rates.php:175
10233
  msgid ""
10234
  "All currencies from all <strong>enabled</strong> modules (with \"Exchange "
10235
  "Rates Updates\" set to \"Automatically via Currency Exchange Rates module\") "
10242
 
10243
  #: includes/settings/wcj-settings-currency-external-products.php:20
10244
  #: includes/settings/wcj-settings-currency-per-product.php:180
10245
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:131
10246
+ #: includes/settings/wcj-settings-multicurrency.php:193
10247
+ #: includes/settings/wcj-settings-price-by-country.php:277
10248
  #: includes/settings/wcj-settings-price-formats.php:59
10249
  msgid "Currency"
10250
  msgstr ""
10319
  #: includes/settings/wcj-settings-multicurrency-base-price.php:27
10320
  #: includes/settings/wcj-settings-multicurrency.php:28
10321
  #: includes/settings/wcj-settings-payment-gateways-currency.php:73
10322
+ #: includes/settings/wcj-settings-price-by-country.php:307
10323
  msgid "Enter Rates Manually"
10324
  msgstr ""
10325
 
10327
  #: includes/settings/wcj-settings-multicurrency-base-price.php:28
10328
  #: includes/settings/wcj-settings-multicurrency.php:29
10329
  #: includes/settings/wcj-settings-payment-gateways-currency.php:74
10330
+ #: includes/settings/wcj-settings-price-by-country.php:308
10331
  msgid "Automatically via Currency Exchange Rates module"
10332
  msgstr ""
10333
 
10335
  #: includes/settings/wcj-settings-multicurrency-base-price.php:31
10336
  #: includes/settings/wcj-settings-multicurrency.php:32
10337
  #: includes/settings/wcj-settings-payment-gateways-currency.php:77
10338
+ #: includes/settings/wcj-settings-price-by-country.php:311
10339
  msgid "Visit"
10340
  msgstr ""
10341
 
10343
  #: includes/settings/wcj-settings-multicurrency-base-price.php:31
10344
  #: includes/settings/wcj-settings-multicurrency.php:32
10345
  #: includes/settings/wcj-settings-payment-gateways-currency.php:79
10346
+ #: includes/settings/wcj-settings-price-by-country.php:311
10347
  msgid "Currency Exchange Rates module"
10348
  msgstr ""
10349
 
10350
  #: includes/settings/wcj-settings-currency-per-product.php:138
10351
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:102
10352
+ #: includes/settings/wcj-settings-multicurrency.php:162
10353
  msgid "Currencies Options"
10354
  msgstr ""
10355
 
10361
  msgstr ""
10362
 
10363
  #: includes/settings/wcj-settings-currency-per-product.php:144
10364
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:107
10365
+ #: includes/settings/wcj-settings-multicurrency.php:168
10366
  msgid "Total Currencies"
10367
  msgstr ""
10368
 
10375
  msgstr ""
10376
 
10377
  #: includes/settings/wcj-settings-currency-per-product.php:256
 
10378
  msgid "Advanced: Save Calculated Products Prices"
10379
  msgstr ""
10380
 
10381
  #: includes/settings/wcj-settings-currency-per-product.php:257
10382
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:69
10383
  msgid ""
10384
  "This may help if you are experiencing compatibility issues with other "
10385
  "plugins."
10542
  msgstr ""
10543
 
10544
  #: includes/settings/wcj-settings-emails-verification.php:42
10545
+ msgid "Prevent User Login Globally"
10546
+ msgstr ""
10547
+
10548
+ #: includes/settings/wcj-settings-emails-verification.php:44
10549
+ msgid ""
10550
+ "Enable if users are logged in automattically when they should not, like "
10551
+ "after registration on checkout"
10552
+ msgstr ""
10553
+
10554
+ #: includes/settings/wcj-settings-emails-verification.php:50
10555
  msgid "Redirect User After Successful Verification to Custom URL"
10556
  msgstr ""
10557
 
10558
+ #: includes/settings/wcj-settings-emails-verification.php:51
10559
  msgid "Redirect URL. Ignored if empty."
10560
  msgstr ""
10561
 
10562
+ #: includes/settings/wcj-settings-emails-verification.php:62
10563
  msgid "Messages"
10564
  msgstr ""
10565
 
10566
+ #: includes/settings/wcj-settings-emails-verification.php:67
10567
  msgid "Message - Success"
10568
  msgstr ""
10569
 
10570
+ #: includes/settings/wcj-settings-emails-verification.php:74
10571
  msgid "Message - Error"
10572
  msgstr ""
10573
 
10574
+ #: includes/settings/wcj-settings-emails-verification.php:82
10575
  msgid "Message - Failed"
10576
  msgstr ""
10577
 
10578
+ #: includes/settings/wcj-settings-emails-verification.php:90
10579
  msgid "Message - Failed (no user ID)"
10580
  msgstr ""
10581
 
10582
+ #: includes/settings/wcj-settings-emails-verification.php:97
10583
  msgid "Message - Activate"
10584
  msgstr ""
10585
 
10586
+ #: includes/settings/wcj-settings-emails-verification.php:104
10587
  msgid "Message - Resend"
10588
  msgstr ""
10589
 
10590
+ #: includes/settings/wcj-settings-emails-verification.php:120
10591
+ #: includes/settings/wcj-settings-offer-price.php:328
10592
  msgid "Email Subject"
10593
  msgstr ""
10594
 
10595
+ #: includes/settings/wcj-settings-emails-verification.php:129
10596
  msgid "Email Content"
10597
  msgstr ""
10598
 
10599
+ #: includes/settings/wcj-settings-emails-verification.php:139
10600
+ #: includes/settings/wcj-settings-offer-price.php:335
10601
  msgid "Email Template"
10602
  msgstr ""
10603
 
10604
+ #: includes/settings/wcj-settings-emails-verification.php:140
10605
  msgid "Possible values: Plain, WooCommerce."
10606
  msgstr ""
10607
 
10608
+ #: includes/settings/wcj-settings-emails-verification.php:145
10609
  msgid "Plain"
10610
  msgstr ""
10611
 
10612
+ #: includes/settings/wcj-settings-emails-verification.php:152
10613
  msgid "If WooCommerce template is selected, set email heading here."
10614
  msgstr ""
10615
 
10807
  msgstr ""
10808
 
10809
  #: includes/settings/wcj-settings-export.php:20
10810
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:183
10811
  msgid "CSV Separator"
10812
  msgstr ""
10813
 
11165
 
11166
  #: includes/settings/wcj-settings-general.php:207
11167
  #: includes/settings/wcj-settings-general.php:216
 
11168
  #: includes/settings/wcj-settings-offer-price.php:183
11169
+ #: includes/settings/wcj-settings-offer-price.php:191
11170
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:43
11171
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:52
11172
  msgid "Set zero to disable."
11333
  msgstr ""
11334
 
11335
  #: includes/settings/wcj-settings-global-discount.php:188
11336
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:76
11337
+ #: includes/settings/wcj-settings-multicurrency.php:151
11338
+ #: includes/settings/wcj-settings-price-by-country.php:165
11339
  #: includes/settings/wcj-settings-product-price-by-formula.php:100
11340
  msgid "Price Filters Priority"
11341
  msgstr ""
11342
 
11343
  #: includes/settings/wcj-settings-global-discount.php:189
11344
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:77
11345
+ #: includes/settings/wcj-settings-multicurrency.php:152
11346
+ #: includes/settings/wcj-settings-price-by-country.php:166
11347
  #: includes/settings/wcj-settings-price-by-user-role.php:70
11348
  #: includes/settings/wcj-settings-product-addons.php:242
11349
  #: includes/settings/wcj-settings-product-price-by-formula.php:101
11470
  msgstr ""
11471
 
11472
  #: includes/settings/wcj-settings-max-products-per-user.php:71
11473
+ #: includes/settings/wcj-settings-offer-price.php:214
11474
  msgid "Customer Message"
11475
  msgstr ""
11476
 
11561
  msgid "Convert Product Prices in Admin Products List"
11562
  msgstr ""
11563
 
11564
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:68
11565
+ msgid "Save Calculated Products Prices"
11566
+ msgstr ""
11567
+
11568
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:83
11569
+ msgid "WooCommerce Price Filter Compatibility"
11570
+ msgstr ""
11571
+
11572
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:84
11573
+ msgid "Add compatibility with WooCommerce Price Filter Widget"
11574
+ msgstr ""
11575
+
11576
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:90
11577
+ msgid "Third Party Price Filter Compatibility"
11578
+ msgstr ""
11579
+
11580
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:91
11581
+ msgid "Add compatibility with Third Party Price Filter Widgets"
11582
+ msgstr ""
11583
+
11584
+ #: includes/settings/wcj-settings-multicurrency-base-price.php:92
11585
+ msgid "Requires WooCommerce Price Filter Compatibility option enabled"
11586
  msgstr ""
11587
 
11588
  #: includes/settings/wcj-settings-multicurrency.php:23
11686
  msgid "Set how you want currency switcher to be displayed on frontend."
11687
  msgstr ""
11688
 
11689
+ #: includes/settings/wcj-settings-multicurrency.php:106
11690
+ #: includes/settings/wcj-settings-payment-gateways-min-max.php:65
11691
+ #: includes/settings/wcj-settings-product-msrp.php:105
11692
+ msgid "Compatibility"
11693
+ msgstr ""
11694
+
11695
+ #: includes/settings/wcj-settings-multicurrency.php:111
11696
+ msgid "WooCommerce Smart Coupons"
11697
+ msgstr ""
11698
+
11699
+ #: includes/settings/wcj-settings-multicurrency.php:118
11700
+ msgid "WooCommerce Price Filter"
11701
  msgstr ""
11702
 
11703
+ #: includes/settings/wcj-settings-multicurrency.php:125
11704
+ msgid "WooCommerce Import"
11705
+ msgstr ""
11706
+
11707
+ #: includes/settings/wcj-settings-multicurrency.php:127
11708
+ msgid ""
11709
+ "This option fixes WooCommerce Import Tool preventing it from converting some "
11710
+ "uppercase meta to lowercase"
11711
+ msgstr ""
11712
+
11713
+ #: includes/settings/wcj-settings-multicurrency.php:142
11714
+ msgid "Additional Price Filters"
11715
+ msgstr ""
11716
+
11717
+ #: includes/settings/wcj-settings-multicurrency.php:143
11718
  msgid ""
11719
  "Add additional price filters here. One per line. Leave blank if not sure."
11720
  msgstr ""
11721
 
11722
+ #: includes/settings/wcj-settings-multicurrency.php:164
11723
  msgid ""
11724
  "One currency probably should be set to current (original) shop currency with "
11725
  "an exchange rate of 1."
11726
  msgstr ""
11727
 
11728
+ #: includes/settings/wcj-settings-multicurrency.php:169
11729
  msgid ""
11730
  "Press Save changes after setting this option, so new settings fields will be "
11731
  "added."
11732
  msgstr ""
11733
 
11734
+ #: includes/settings/wcj-settings-multicurrency.php:218
11735
  msgid "Role Defaults"
11736
  msgstr ""
11737
 
11738
+ #: includes/settings/wcj-settings-multicurrency.php:225
11739
  msgid "Roles"
11740
  msgstr ""
11741
 
11742
+ #: includes/settings/wcj-settings-multicurrency.php:226
11743
  #: includes/settings/wcj-settings-wholesale-price.php:180
11744
  msgid "Save settings after you change this option. Leave blank to disable."
11745
  msgstr ""
11746
 
11747
+ #: includes/settings/wcj-settings-multicurrency.php:249
11748
  msgid "No default currency"
11749
  msgstr ""
11750
 
12056
  msgid "Ignored if enable per product category is not selected above."
12057
  msgstr ""
12058
 
12059
+ #: includes/settings/wcj-settings-offer-price.php:48
12060
+ #: includes/settings/wcj-settings-order-min-amount.php:29
12061
+ #: includes/settings/wcj-settings-order-min-amount.php:36
12062
+ #: includes/settings/wcj-settings-payment-gateways-fees.php:98
12063
+ msgid "Exclude"
12064
+ msgstr ""
12065
+
12066
+ #: includes/settings/wcj-settings-offer-price.php:50
12067
+ msgid "Excludes out of stock products."
12068
+ msgstr ""
12069
+
12070
+ #: includes/settings/wcj-settings-offer-price.php:60
12071
  msgid "Button Options"
12072
  msgstr ""
12073
 
12074
+ #: includes/settings/wcj-settings-offer-price.php:72
12075
  msgid "CSS Class"
12076
  msgstr ""
12077
 
12078
+ #: includes/settings/wcj-settings-offer-price.php:79
12079
  msgid "CSS Style"
12080
  msgstr ""
12081
 
12082
+ #: includes/settings/wcj-settings-offer-price.php:87
12083
  msgid "Position On Single Product Page"
12084
  msgstr ""
12085
 
12086
+ #: includes/settings/wcj-settings-offer-price.php:93
12087
  #: includes/settings/wcj-settings-product-custom-info.php:102
12088
  #: includes/settings/wcj-settings-upsells.php:58
12089
  msgid "Before single product"
12090
  msgstr ""
12091
 
12092
+ #: includes/settings/wcj-settings-offer-price.php:96
12093
  #: includes/settings/wcj-settings-product-custom-info.php:107
12094
  msgid "Before add to cart form"
12095
  msgstr ""
12096
 
12097
+ #: includes/settings/wcj-settings-offer-price.php:97
12098
  #: includes/settings/wcj-settings-product-custom-info.php:110
12099
  msgid "After add to cart form"
12100
  msgstr ""
12101
 
12102
+ #: includes/settings/wcj-settings-offer-price.php:99
12103
  #: includes/settings/wcj-settings-product-custom-info.php:106
12104
  #: includes/settings/wcj-settings-upsells.php:62
12105
  msgid "After single product"
12106
  msgstr ""
12107
 
12108
+ #: includes/settings/wcj-settings-offer-price.php:103
12109
+ #: includes/settings/wcj-settings-offer-price.php:123
12110
  msgid "Position Priority (i.e. Order)"
12111
  msgstr ""
12112
 
12113
+ #: includes/settings/wcj-settings-offer-price.php:109
12114
  msgid "Position On Archive Pages"
12115
  msgstr ""
12116
 
12117
+ #: includes/settings/wcj-settings-offer-price.php:110
12118
  msgid "Possible values: Do not add; Before product; After product."
12119
  msgstr ""
12120
 
12121
+ #: includes/settings/wcj-settings-offer-price.php:130
12122
  msgid "Advanced: Custom Position(s)"
12123
  msgstr ""
12124
 
12125
+ #: includes/settings/wcj-settings-offer-price.php:131
12126
  msgid ""
12127
  "Add custom hook. If adding more than one hook, separate with vertical bar "
12128
  "( | ). Ignored if empty."
12129
  msgstr ""
12130
 
12131
+ #: includes/settings/wcj-settings-offer-price.php:140
12132
  msgid "Custom Position Priority (i.e. Order)"
12133
  msgstr ""
12134
 
12135
+ #: includes/settings/wcj-settings-offer-price.php:141
12136
  msgid ""
12137
  "Add custom hook priority. If adding more than one hook, separate with "
12138
  "vertical bar ( | )."
12139
  msgstr ""
12140
 
12141
+ #: includes/settings/wcj-settings-offer-price.php:153
12142
  msgid "Form and Notice Options"
12143
  msgstr ""
12144
 
12145
+ #: includes/settings/wcj-settings-offer-price.php:158
12146
  msgid "Price Input"
12147
  msgstr ""
12148
 
12149
+ #: includes/settings/wcj-settings-offer-price.php:167
12150
  #: includes/settings/wcj-settings-product-by-user.php:69
12151
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:24
12152
  msgid "Price Step"
12153
  msgstr ""
12154
 
12155
+ #: includes/settings/wcj-settings-offer-price.php:175
12156
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:33
12157
  msgid "Minimal Price"
12158
  msgstr ""
12159
 
12160
+ #: includes/settings/wcj-settings-offer-price.php:182
12161
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:42
12162
  msgid "Maximal Price"
12163
  msgstr ""
12164
 
12165
+ #: includes/settings/wcj-settings-offer-price.php:190
12166
  #: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:51
12167
  #: includes/settings/meta-box/wcj-settings-meta-box-product-open-pricing.php:24
12168
  msgid "Default Price"
12169
  msgstr ""
12170
 
12171
+ #: includes/settings/wcj-settings-offer-price.php:198
12172
  msgid "Customer Email"
12173
  msgstr ""
12174
 
12175
+ #: includes/settings/wcj-settings-offer-price.php:222
12176
  msgid "Send a Copy to Customer Checkbox"
12177
  msgstr ""
12178
 
12179
+ #: includes/settings/wcj-settings-offer-price.php:230
12180
  msgid "Form Header"
12181
  msgstr ""
12182
 
12183
+ #: includes/settings/wcj-settings-offer-price.php:238
12184
  msgid "Form Button Label"
12185
  msgstr ""
12186
 
12187
+ #: includes/settings/wcj-settings-offer-price.php:245
12188
  msgid "Form Footer"
12189
  msgstr ""
12190
 
12191
+ #: includes/settings/wcj-settings-offer-price.php:252
12192
  msgid "Required HTML"
12193
  msgstr ""
12194
 
12195
+ #: includes/settings/wcj-settings-offer-price.php:259
12196
  msgid "Customer Notice"
12197
  msgstr ""
12198
 
12199
+ #: includes/settings/wcj-settings-offer-price.php:270
12200
  msgid "Styling Options"
12201
  msgstr ""
12202
 
12203
+ #: includes/settings/wcj-settings-offer-price.php:275
12204
  msgid "Form Width"
12205
  msgstr ""
12206
 
12207
+ #: includes/settings/wcj-settings-offer-price.php:281
12208
  msgid "Header Background Color"
12209
  msgstr ""
12210
 
12211
+ #: includes/settings/wcj-settings-offer-price.php:287
12212
  #: includes/settings/wcj-settings-pdf-invoicing-header.php:66
12213
  msgid "Header Text Color"
12214
  msgstr ""
12215
 
12216
+ #: includes/settings/wcj-settings-offer-price.php:293
12217
  msgid "Footer Background Color"
12218
  msgstr ""
12219
 
12220
+ #: includes/settings/wcj-settings-offer-price.php:299
12221
  #: includes/settings/wcj-settings-pdf-invoicing-footer.php:38
12222
  msgid "Footer Text Color"
12223
  msgstr ""
12224
 
12225
+ #: includes/settings/wcj-settings-offer-price.php:314
12226
  msgid "Email Recipient"
12227
  msgstr ""
12228
 
12229
+ #: includes/settings/wcj-settings-offer-price.php:315
12230
  msgid "Can be comma separated list."
12231
  msgstr ""
12232
 
12233
+ #: includes/settings/wcj-settings-offer-price.php:317
12234
  #, php-format
12235
  msgid "Use %s to send to administrator email: %s."
12236
  msgstr ""
12237
 
12238
+ #: includes/settings/wcj-settings-offer-price.php:351
12239
+ #: includes/settings/wcj-settings-product-by-condition.php:57
12240
+ #: includes/settings/wcj-settings-product-msrp.php:86
12241
+ msgid "Admin Options"
12242
+ msgstr ""
12243
+
12244
+ #: includes/settings/wcj-settings-offer-price.php:356
12245
+ msgid "Offer Price History Meta Box Columns"
12246
+ msgstr ""
12247
+
12248
  #: includes/settings/wcj-settings-order-custom-statuses.php:20
12249
  msgid "Enable the module to add custom statuses to the list."
12250
  msgstr ""
12367
  msgid "Exclude Shipping from Cart Total"
12368
  msgstr ""
12369
 
 
 
 
 
 
 
12370
  #: includes/settings/wcj-settings-order-min-amount.php:35
12371
  msgid "Exclude Discounts from Cart Total"
12372
  msgstr ""
13149
  msgid "Success"
13150
  msgstr ""
13151
 
13152
+ #: includes/settings/wcj-settings-payment-gateways-min-max.php:70
13153
+ #: includes/settings/wcj-settings-product-msrp.php:110
13154
+ msgid "Multicurrency"
13155
+ msgstr ""
13156
+
13157
+ #: includes/settings/wcj-settings-payment-gateways-min-max.php:71
13158
+ #: includes/settings/wcj-settings-product-msrp.php:111
13159
+ msgid "Enable compatibility with Multicurrency module"
13160
+ msgstr ""
13161
+
13162
+ #: includes/settings/wcj-settings-payment-gateways-min-max.php:104
13163
  msgid "Min"
13164
  msgstr ""
13165
 
13166
+ #: includes/settings/wcj-settings-payment-gateways-min-max.php:113
13167
  msgid "Max"
13168
  msgstr ""
13169
 
13358
  "zip will stop working, if you enable this checkbox."
13359
  msgstr ""
13360
 
13361
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:90
13362
+ msgid "Prevent Output Buffer"
13363
+ msgstr ""
13364
+
13365
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:91
13366
+ msgid "Returns the content of output buffering instead of displaying it"
13367
+ msgstr ""
13368
+
13369
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:101
13370
  msgid "Fonts Manager"
13371
  msgstr ""
13372
 
13373
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:110
13374
  msgid "Re-download"
13375
  msgstr ""
13376
 
13377
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:110
13378
  msgid "Download"
13379
  msgstr ""
13380
 
13381
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:115
13382
  msgid "Disable Fonts Download"
13383
  msgstr ""
13384
 
13385
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:126
13386
  msgid "General Display Options"
13387
  msgstr ""
13388
 
13389
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:131
13390
  msgid "Add PDF Invoices Meta Box to Admin Edit Order Page"
13391
  msgstr ""
13392
 
13393
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:138
13394
  msgid "Open docs in new window"
13395
  msgstr ""
13396
 
13397
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:144
13398
  msgid "Add editable numbers and dates"
13399
  msgstr ""
13400
 
13401
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:154
13402
  msgid "Report Tool Options"
13403
  msgstr ""
13404
 
13405
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:159
13406
  msgid "Reports Filename"
13407
  msgstr ""
13408
 
13409
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:167
13410
  msgid "Report Columns"
13411
  msgstr ""
13412
 
13413
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:168
13414
  msgid "Leave blank to show all columns."
13415
  msgstr ""
13416
 
13417
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:176
13418
  msgid "Tax Percent Precision"
13419
  msgstr ""
13420
 
13421
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:189
13422
  msgid "CSV UTF-8 BOM"
13423
  msgstr ""
13424
 
13425
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:196
13426
  msgid "Replace Periods with Commas in CSV Data"
13427
  msgstr ""
13428
 
13429
+ #: includes/settings/wcj-settings-pdf-invoicing-advanced.php:197
13430
  msgid "Replace"
13431
  msgstr ""
13432
 
13433
  #: includes/settings/wcj-settings-pdf-invoicing-display.php:25
13434
+ #: includes/settings/wcj-settings-price-by-country.php:284
13435
  #: includes/settings/wcj-settings-shipping.php:30
13436
  msgid "Admin Title"
13437
  msgstr ""
13912
  msgid "Disable Price by Country for Bots"
13913
  msgstr ""
13914
 
13915
+ #: includes/settings/wcj-settings-price-by-country.php:172
13916
+ msgid "User IP Detection Method"
13917
  msgstr ""
13918
 
13919
+ #: includes/settings/wcj-settings-price-by-country.php:182
13920
+ msgid "Price Format Method"
13921
+ msgstr ""
13922
+
13923
+ #: includes/settings/wcj-settings-price-by-country.php:183
13924
+ msgid "The moment \"Pretty Price\" and \"Rounding\" will be applied"
13925
+ msgstr ""
13926
+
13927
+ #: includes/settings/wcj-settings-price-by-country.php:188
13928
+ msgid "get_price()"
13929
+ msgstr ""
13930
+
13931
+ #: includes/settings/wcj-settings-price-by-country.php:189
13932
+ msgid "wc_get_price_to_display()"
13933
+ msgstr ""
13934
+
13935
+ #: includes/settings/wcj-settings-price-by-country.php:197
13936
  msgid "Country Groups"
13937
  msgstr ""
13938
 
13939
+ #: includes/settings/wcj-settings-price-by-country.php:202
13940
  msgid "Countries Selection"
13941
  msgstr ""
13942
 
13943
+ #: includes/settings/wcj-settings-price-by-country.php:203
13944
  msgid "Choose how do you want to enter countries groups in admin."
13945
  msgstr ""
13946
 
13947
+ #: includes/settings/wcj-settings-price-by-country.php:208
13948
  msgid "Comma separated list"
13949
  msgstr ""
13950
 
13951
+ #: includes/settings/wcj-settings-price-by-country.php:209
13952
  msgid "Multiselect"
13953
  msgstr ""
13954
 
13955
+ #: includes/settings/wcj-settings-price-by-country.php:210
13956
  #: includes/settings/wcj-settings-product-by-condition.php:82
13957
  #: includes/settings/wcj-settings-related-products.php:164
13958
  msgid "Chosen select"
13959
  msgstr ""
13960
 
13961
+ #: includes/settings/wcj-settings-price-by-country.php:214
13962
  msgid "Autogenerate Groups"
13963
  msgstr ""
13964
 
13965
+ #: includes/settings/wcj-settings-price-by-country.php:220
13966
  msgid "Groups Number"
13967
  msgstr ""
13968
 
13969
+ #: includes/settings/wcj-settings-price-by-country.php:244
13970
  msgid ""
13971
  "Countries. List of comma separated country codes.<br>For country codes and "
13972
  "predefined sets visit <a href=\"https://booster.io/country-codes/\" target="
13973
  "\"_blank\">https://booster.io/country-codes/</a>"
13974
  msgstr ""
13975
 
13976
+ #: includes/settings/wcj-settings-price-by-country.php:330
13977
  msgid "Multiply Price by"
13978
  msgstr ""
13979
 
14025
  msgid "Disable Price based on User Role for Bots"
14026
  msgstr ""
14027
 
14028
+ #: includes/settings/wcj-settings-price-by-user-role.php:69
14029
+ #: includes/settings/wcj-settings-product-addons.php:241
14030
+ #: includes/settings/wcj-settings-wholesale-price.php:120
14031
+ msgid "Advanced: Price Filters Priority"
14032
+ msgstr ""
14033
+
14034
  #: includes/settings/wcj-settings-price-by-user-role.php:76
14035
+ #: includes/settings/wcj-settings-product-open-pricing.php:147
14036
  #: includes/settings/wcj-settings-wholesale-price.php:112
14037
  msgid "Advanced: Price Changes"
14038
  msgstr ""
14042
  msgstr ""
14043
 
14044
  #: includes/settings/wcj-settings-price-by-user-role.php:78
14045
+ #: includes/settings/wcj-settings-product-open-pricing.php:149
14046
  #: includes/settings/wcj-settings-wholesale-price.php:114
14047
  msgid ""
14048
  "Try enabling this checkbox, if you are having compatibility issues with "
14831
  "Enable this if you are still seeing hidden products in \"Products\" widgets."
14832
  msgstr ""
14833
 
 
 
 
 
 
14834
  #: includes/settings/wcj-settings-product-by-condition.php:62
14835
  msgid "Visibility Method"
14836
  msgstr ""
15757
  msgid "Allow price entering in switched currency"
15758
  msgstr ""
15759
 
15760
+ #: includes/settings/wcj-settings-product-open-pricing.php:148
15761
+ msgid "Disable open pricing for products with \"Price Changes\""
15762
+ msgstr ""
15763
+
15764
+ #: includes/settings/wcj-settings-product-open-pricing.php:155
15765
+ msgid "Product Bundles"
15766
+ msgstr ""
15767
+
15768
+ #: includes/settings/wcj-settings-product-open-pricing.php:156
15769
+ msgid "For \"WPC Product Bundles for WooCommerce\" plugin."
15770
+ msgstr ""
15771
+
15772
+ #: includes/settings/wcj-settings-product-open-pricing.php:161
15773
+ msgid "No not divide"
15774
+ msgstr ""
15775
+
15776
+ #: includes/settings/wcj-settings-product-open-pricing.php:162
15777
+ msgid "Divide by number of products in a bundle"
15778
+ msgstr ""
15779
+
15780
+ #: includes/settings/wcj-settings-product-open-pricing.php:163
15781
+ msgid "Divide proportionally to the original price"
15782
+ msgstr ""
15783
+
15784
  #: includes/settings/wcj-settings-product-price-by-formula.php:14
15785
  msgid "Default Settings"
15786
  msgstr ""
18096
  msgid "Booster: Custom Shipping Method"
18097
  msgstr ""
18098
 
18099
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:86
18100
  #: includes/shipping/class-wc-shipping-wcj-custom.php:157
18101
  msgid "Max Weight or Quantity"
18102
  msgstr ""
18103
 
18104
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:137
18105
  msgid "Flat rate"
18106
  msgstr ""
18107
 
18108
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:138
18109
  msgid "By total cart weight"
18110
  msgstr ""
18111
 
18112
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:139
18113
  msgid "By total cart weight table"
18114
  msgstr ""
18115
 
18116
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:140
18117
  msgid "By total cart quantity"
18118
  msgstr ""
18119
 
18120
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:143
18121
  msgid "By total cart quantity table"
18122
  msgstr ""
18123
 
18124
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:157
18125
  #: includes/shipping/class-wc-shipping-wcj-custom.php:116
18126
  msgid "Cost calculation type."
18127
  msgstr ""
18128
 
18129
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:158
18130
  #: includes/shipping/class-wc-shipping-wcj-custom.php:97
18131
  #: includes/shipping/class-wc-shipping-wcj-custom.php:116
18132
  msgid "By Total Cart Quantity Table"
18133
  msgstr ""
18134
 
18135
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:167
18136
  #: includes/shipping/class-wc-shipping-wcj-custom.php:124
18137
  msgid ""
18138
  "Cost. If calculating by weight - then cost per one weight unit. If "
18139
  "calculating by quantity - then cost per one piece."
18140
  msgstr ""
18141
 
18142
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:173
18143
  #: includes/shipping/class-wc-shipping-wcj-custom.php:130
18144
  msgid "Min Weight"
18145
  msgstr ""
18146
 
18147
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:175
18148
  #: includes/shipping/class-wc-shipping-wcj-custom.php:132
18149
  msgid "Minimum total cart weight. Set zero to disable."
18150
  msgstr ""
18151
 
18152
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:182
18153
  #: includes/shipping/class-wc-shipping-wcj-custom.php:138
18154
  msgid "Max Weight"
18155
  msgstr ""
18156
 
18157
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:184
18158
  #: includes/shipping/class-wc-shipping-wcj-custom.php:140
18159
  msgid "Maximum total cart weight. Set zero to disable."
18160
  msgstr ""
18161
 
18162
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:191
18163
  msgid "Apply Formula and Shortcodes to Costs"
18164
  msgstr ""
18165
 
18166
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:192
18167
  #, php-format
18168
  msgid ""
18169
  "You can use %s and %s params in formula, e.g.: %s. Also you can use "
18170
  "shortcodes, e.g.: %s."
18171
  msgstr ""
18172
 
18173
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:201
18174
  #: includes/shipping/class-wc-shipping-wcj-custom.php:146
18175
  msgid "Table Total Rows"
18176
  msgstr ""
18177
 
18178
+ #: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:203
18179
  msgid ""
18180
  "Press \"Save changes\" and reload the page after you change this number."
18181
  msgstr ""
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: algoritmika, anbinder, debugeris, karzin
3
  Tags: woocommerce, booster for woocommerce, woocommerce jetpack
4
  Requires at least: 4.4
5
- Tested up to: 5.1
6
- Stable tag: 4.3.1
7
  License: GNU General Public License v3.0
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
@@ -112,9 +112,9 @@ Booster for WooCommerce is a WordPress WooCommerce plugin that supercharges your
112
  * *Left to Free Shipping* - Display "left to free shipping" info.
113
  * *Maximum Products per User* - Limit number of items your (logged) customers can buy.
114
  * *Order Custom Statuses* - Custom statuses for WooCommerce orders.
115
- * *Order Min/Max Quantities* - Set min/max product quantities in WooCommerce order.
116
  * *Order Minimum Amount* - Minimum order amount (optionally by user role).
117
  * *Order Numbers* - Sequential order numbering, custom order number prefix, suffix and number width.
 
118
  * *Orders* - Orders auto-complete; admin order currency; admin order navigation; bulk regenerate download permissions for orders.
119
  * *Shipping Calculator* - Customize WooCommerce shipping calculator on cart page.
120
  * *Shipping Descriptions* - Add descriptions to shipping methods on frontend.
@@ -193,6 +193,41 @@ You can see the differences between versions in this [table](https://booster.io/
193
 
194
  == Changelog ==
195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  = 4.3.1 - 25/04/2019 =
197
  * Fix - SHIPPING & ORDERS - Order Quantities - Decimal Quantities - `init` hook priority lowered. This fixes the issue with "PDF Invoicing & Packing Slips" module not displaying decimal quantities.
198
  * Fix - PDF INVOICING & PACKING SLIPS - Fix "failed to delete buffer" warning when generating pdf.
@@ -200,7 +235,7 @@ You can see the differences between versions in this [table](https://booster.io/
200
  * Dev - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Create new option to add compatibility with WooCommerce Price Filter widget.
201
  * Dev - PRICES & CURRENCIES - Multicurrency Product Base Price - Add option to make module compatible with "Price Filter" widget.
202
  * Dev - SHIPPING & ORDERS - Order Quantities - Decimal Quantities - Setting float number `pattern` for quantity input.
203
- * Dev - SHIPPING & ORDERS - Order Quantities - Module renamed from "Order Min/Max Quantities" and description updated.
204
  * Dev - PDF INVOICING & PACKING SLIPS - Create new option on advanced settings to manage output buffer.
205
 
206
  = 4.3.0 - 16/04/2019 =
2
  Contributors: algoritmika, anbinder, debugeris, karzin
3
  Tags: woocommerce, booster for woocommerce, woocommerce jetpack
4
  Requires at least: 4.4
5
+ Tested up to: 5.2
6
+ Stable tag: 4.4.0
7
  License: GNU General Public License v3.0
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
112
  * *Left to Free Shipping* - Display "left to free shipping" info.
113
  * *Maximum Products per User* - Limit number of items your (logged) customers can buy.
114
  * *Order Custom Statuses* - Custom statuses for WooCommerce orders.
 
115
  * *Order Minimum Amount* - Minimum order amount (optionally by user role).
116
  * *Order Numbers* - Sequential order numbering, custom order number prefix, suffix and number width.
117
+ * *Order Quantities* - Manage product quantities in WooCommerce order: set min, max, step; enable decimal quantities etc.
118
  * *Orders* - Orders auto-complete; admin order currency; admin order navigation; bulk regenerate download permissions for orders.
119
  * *Shipping Calculator* - Customize WooCommerce shipping calculator on cart page.
120
  * *Shipping Descriptions* - Add descriptions to shipping methods on frontend.
193
 
194
  == Changelog ==
195
 
196
+ = 4.4.0 - 24/06/2019 =
197
+ * Fix - PRODUCTS - Product Addons - Add price with correct currency value on `change_price()` function using `maybe_convert_currency()`.
198
+ * Fix - PRODUCTS - Product Input Fields - Fix URL on variable uploaded files.
199
+ * Fix - PRODUCTS - Product Input Fields - Check if order is null on `add_files_to_email_attachments()`.
200
+ * Fix - PRODUCTS - Product MSRP - Improve section detection on `display()` function, i.e if it's on "single" or "archive".
201
+ * Fix - CART & CHECKOUT - Checkout Custom Fields - Fix problem where select and radio fields values are lost on order status change.
202
+ * Fix - SHIPPING & ORDERS - Custom Shipping - Check if add_table_rows() isn't getting called multiple times.
203
+ * Fix - SHIPPING & ORDERS - Custom Shipping - Fix module for "Load Modules on Init Hook" option.
204
+ * Fix - SHIPPING & ORDERS - Order Quantities - Fix problem preventing `_wcj_order_quantities_min` meta from being saved on variable products.
205
+ * Fix - SHIPPING & ORDERS - Order Quantities - Fix problem where Quantity steps is checked against parent variation id instead of variation id.
206
+ * Fix - SHIPPING & ORDERS - Order Quantities - Check `_wcj_order_quantities_step` from parent id if variation doesn't have the `_wcj_order_quantities_step` meta.
207
+ * Fix - Shortcodes - Orders - "A non-numeric value encountered..." notice fixed in `[wcj_order_total_width]`, `[wcj_order_total_height]`, `[wcj_order_total_length]`, `[wcj_order_total_weight]` shortcodes.
208
+ * Fix - Functions - Admin - Check if object is from `WC_Product` class on `wcj_get_ajax_settings()`.
209
+ * Dev - PRICES & CURRENCIES - Currency Exchange Rates - Add option to set API key for Free Currency Converter API server.
210
+ * Dev - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Add new option to make it compatible with WooCommerce import tool, preventing it from converting some uppercase meta to lowercase.
211
+ * Dev - PRICES & CURRENCIES - Multicurrency Product Base Price - Improve compatibility with "Price Filter" widget.
212
+ * Dev - PRICES & CURRENCIES - Multicurrency Product Base Price - Add option to make it compatible with third party "Price Filter" widgets.
213
+ * Dev - PRICES & CURRENCIES - Offer Your Price - Exclude - "Out of stock" option added.
214
+ * Dev - PRICES & CURRENCIES - Offer Your Price - Now collecting more customer's data: User IP (`%user_ip%`) and User Agent (`%user_agent%`).
215
+ * Dev - PRICES & CURRENCIES - Offer Your Price - "Offer Price History Meta Box Columns" option added.
216
+ * Dev - PRICES & CURRENCIES - Prices and Currencies by Country - Add option "Price Format Method" to control the moment the "Rounding" and "Pretty Prices" will be applied.
217
+ * Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - "Advanced: Price Changes" option added.
218
+ * Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - Compatibility with "WPC Product Bundles for WooCommerce" plugin added (and "Product Bundles" option added).
219
+ * Dev - PRODUCTS - Product MSRP - Create option to add compatibility with Multicurrency module.
220
+ * Dev - PAYMENT GATEWAYS - Gateways Min/Max Amounts - Create option to add compatibility with Multicurrency module.
221
+ * Dev - EMAILS & MISC. - Email Verification - Create new option preventing users from login in any situation. It is necessary to fix automatic login in some cases, like after registration on checkout.
222
+ * Dev - EMAILS & MISC. - Export - Forcing date format in datepicker to `yy-mm-dd`.
223
+ * Dev - Dashboard - Manage Settings - "Load Modules on Init Hook" option added. It will load the locale appropriately if users change it from the profile page.
224
+ * Dev - Shortcodes - Add possibility for multiple `location` and `not_location` attributes with comma values, like location="US, CA, NZ, AU".
225
+ * Dev - Shortcodes - Orders - `[wcj_order_items_table]` - `product_shipping_class` and `product_shipping_class_id` columns added.
226
+ * Dev - Functions - Exchange Rates - Update Free Currency Converter API to v6 and read API key from settings.
227
+ * Dev - Functions - General - Add `wcj_get_cart_item_quantities()` to get cart items quantities, with correct variation id, where native function from WooCommerce fails getting only the parent id if Manage Stock option is enabled.
228
+ * Dev - Functions - Price and Currency - Create `wcj_price_by_country_pretty_price()` and `wcj_price_by_country_rounding()` functions.
229
+ * Tested up to: 5.2.
230
+
231
  = 4.3.1 - 25/04/2019 =
232
  * Fix - SHIPPING & ORDERS - Order Quantities - Decimal Quantities - `init` hook priority lowered. This fixes the issue with "PDF Invoicing & Packing Slips" module not displaying decimal quantities.
233
  * Fix - PDF INVOICING & PACKING SLIPS - Fix "failed to delete buffer" warning when generating pdf.
235
  * Dev - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Create new option to add compatibility with WooCommerce Price Filter widget.
236
  * Dev - PRICES & CURRENCIES - Multicurrency Product Base Price - Add option to make module compatible with "Price Filter" widget.
237
  * Dev - SHIPPING & ORDERS - Order Quantities - Decimal Quantities - Setting float number `pattern` for quantity input.
238
+ * Dev - SHIPPING & ORDERS - Order Quantities - Module renamed (was "Order Min/Max Quantities") and description updated.
239
  * Dev - PDF INVOICING & PACKING SLIPS - Create new option on advanced settings to manage output buffer.
240
 
241
  = 4.3.0 - 16/04/2019 =
woocommerce-jetpack.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Booster for WooCommerce
4
  Plugin URI: https://booster.io
5
  Description: Supercharge your WooCommerce site with these awesome powerful features. More than 100 modules. All in one WooCommerce plugin.
6
- Version: 4.3.1
7
  Author: Algoritmika Ltd
8
  Author URI: https://booster.io
9
  Text Domain: woocommerce-jetpack
@@ -57,7 +57,7 @@ final class WC_Jetpack {
57
  * @var string
58
  * @since 2.4.7
59
  */
60
- public $version = '4.3.1';
61
 
62
  /**
63
  * @var WC_Jetpack The single instance of the class
3
  Plugin Name: Booster for WooCommerce
4
  Plugin URI: https://booster.io
5
  Description: Supercharge your WooCommerce site with these awesome powerful features. More than 100 modules. All in one WooCommerce plugin.
6
+ Version: 4.4.0
7
  Author: Algoritmika Ltd
8
  Author URI: https://booster.io
9
  Text Domain: woocommerce-jetpack
57
  * @var string
58
  * @since 2.4.7
59
  */
60
+ public $version = '4.4.0';
61
 
62
  /**
63
  * @var WC_Jetpack The single instance of the class