Booster for WooCommerce - Version 5.4.3

Version Description

28/07/2021 = * Fix - SHIPPING & ORDERS- Order Quantities - Fixed Steps issue on product detail page. * Fix - PRODUCTS - Product Addons - Fixed issue when "Enable AJAX on Single Product Page" option, Prices of Related products are also change while changing varition of variable product. * Fix - CART & CHECKOUT - Checkout Custom Fields - Fixed meta key issue for input type select. * Fix - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Fixed Compatibility issue with WooCommerce Attribute Swatches by Iconic Plugin * Fix - Fixed error WP_Scripts::localize was called incorrectly. The $l10n parameter must be an array * Feature - SHIPPING & ORDERS - Order Quantities - Show notice while add to cart, if the Maximum order quantity limit reached. * Feature - SHIPPING & ORDERS - Order Quantities - Allow any quantity if the product is lower than the minimum quantity. * Feature - PRODUCTS - Product Visibility by Country - Added options to choose All countries or WooCommerce Selling Locations for For [wcj_selector selector_type="country"] * WooCommerce 5.5.2 tested * Wordpress 5.8 tested

Download this release

Release Info

Developer ronyp
Plugin Icon 128x128 Booster for WooCommerce
Version 5.4.3
Comparing to
See all releases

Code changes from version 5.4.2 to 5.4.3

includes/admin/class-wc-settings-jetpack.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings
4
  *
5
- * @version 5.4.2
6
  * @since 1.0.0
7
  * @author Pluggabl LLC.
8
  */
@@ -257,12 +257,12 @@ if (!class_exists('WC_Settings_Jetpack')):
257
  /**
258
  * enqueue_admin_script.
259
  *
260
- * @version 5.4.2
261
  * @since 5.4.2
262
  */
263
  function enqueue_admin_script() {
264
  wp_enqueue_script( 'wcj-admin-js', trailingslashit( wcj_plugin_url() ) . 'includes/js/wcj-admin.js', array( 'jquery' ), WCJ()->version, true );
265
- wp_localize_script( 'wcj-admin-js', 'admin_object' , false );
266
  }
267
 
268
  /**
2
  /**
3
  * Booster for WooCommerce - Settings
4
  *
5
+ * @version 5.4.3
6
  * @since 1.0.0
7
  * @author Pluggabl LLC.
8
  */
257
  /**
258
  * enqueue_admin_script.
259
  *
260
+ * @version 5.4.3
261
  * @since 5.4.2
262
  */
263
  function enqueue_admin_script() {
264
  wp_enqueue_script( 'wcj-admin-js', trailingslashit( wcj_plugin_url() ) . 'includes/js/wcj-admin.js', array( 'jquery' ), WCJ()->version, true );
265
+ wp_localize_script( 'wcj-admin-js', 'admin_object' ,array('admin_object'), false );
266
  }
267
 
268
  /**
includes/admin/class-wcj-welcome.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster getting started
4
  *
5
- * @version 5.4.1
6
  * @author Pluggabl LLC.
7
  */
8
 
@@ -28,24 +28,7 @@ class WCJ_Welcome {
28
  add_action( 'admin_menu', array( $this, 'wcj_register_welcome_page' ) );
29
  add_action( 'network_admin_menu', array( $this, 'wcj_register_welcome_page' ) );
30
  add_action( 'admin_head', array( $this, 'wcj_hide_menu' ) );
31
-
32
- if(isset($_POST['submit_email_to_klaviyo']) && $_POST['user_email'] != "" ){
33
- $API_KEY = "pk_6e2f40d8614c17a121a4d2c567d2bd72d4";
34
- $list_id = "RQJNvK";
35
- $email = $_POST['user_email'];
36
- $check_subscribe = $this->check_email_exist_in_klaviyo_subscribe_list( $list_id, $email );
37
- // Subscribe to List
38
- if( $check_subscribe == 0 ) {
39
- $response = $this->add_email_to_klaviyo_subscribe_list( $list_id, $email );
40
- $redirect = admin_url( 'index.php?page=jetpack-getting-started&wcj-redirect=1&msg=1' );
41
- set_transient( '_wcj_redirect_to_getting_started_msg', 1, 30 );
42
- add_action( 'admin_init', array( $this, 'wcj_redirect_to_getting_started_msg' ), 10);
43
- }
44
- else {
45
- set_transient( '_wcj_redirect_to_getting_started_msg', 2, 30 );
46
- add_action( 'admin_init', array( $this, 'wcj_redirect_to_getting_started_msg' ), 10);
47
- }
48
- }
49
 
50
  }
51
  }
@@ -53,7 +36,7 @@ class WCJ_Welcome {
53
  /**
54
  * wcj_register_welcome_page
55
  *
56
- * @version 5.4.1
57
  */
58
  public function wcj_register_welcome_page() {
59
  add_dashboard_page(
@@ -65,19 +48,6 @@ class WCJ_Welcome {
65
  );
66
  }
67
 
68
- /**
69
- * wcj_redirect_to_getting_started_msg
70
- *
71
- * @version 5.4.1
72
- */
73
- public function wcj_redirect_to_getting_started_msg() {
74
- $msg = get_transient( '_wcj_redirect_to_getting_started_msg' );
75
- delete_transient( '_wcj_redirect_to_getting_started_msg' );
76
- $redirect = admin_url( 'index.php?page=jetpack-getting-started&wcj-redirect=1&msg='.$msg.'/#subscribe-email' );
77
- wp_safe_redirect( $redirect );
78
- exit;
79
- }
80
-
81
  /**
82
  * wcj_hide_menu
83
  *
@@ -113,49 +83,15 @@ class WCJ_Welcome {
113
  require_once( WCJ_PLUGIN_PATH . '/includes/admin/wcj-welcome-screen-content.php' );
114
  }
115
 
116
- /**
117
- * check_email_exist_in_klaviyo_subscribe_list
118
- *
119
- * @version 5.4.1
120
- */
121
- public function check_email_exist_in_klaviyo_subscribe_list($list_id,$email){
122
- $API_KEY = "pk_6e2f40d8614c17a121a4d2c567d2bd72d4";
123
- $data_to_post = "?api_key=".$API_KEY."&emails=".$email;
124
- $URL = "https://a.klaviyo.com/api/v2/list/".$list_id."/subscribe".$data_to_post;
125
- $curlSession = curl_init();
126
- curl_setopt($curlSession, CURLOPT_URL, $URL);
127
- curl_setopt($curlSession, CURLOPT_BINARYTRANSFER, true);
128
- curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, true);
129
- $CheckListSubscriptionsResponse = json_decode(curl_exec($curlSession), true);
130
- $CheckListSubscriptions = count($CheckListSubscriptionsResponse);
131
- curl_close($curlSession);
132
- return $CheckListSubscriptions;
133
- }
134
-
135
- /**
136
- * add_email_to_klaviyo_subscribe_list
137
- *
138
- * @version 5.4.1
139
  */
140
- public function add_email_to_klaviyo_subscribe_list($list_id,$email){
141
- $API_KEY = "pk_6e2f40d8614c17a121a4d2c567d2bd72d4";
142
- $URL = "https://a.klaviyo.com/api/v2/list/".$list_id."/subscribe";
143
- $subscribe_to_plan = array(
144
- "api_key" => $API_KEY,
145
- "profiles" => array(
146
- "email" => $email
147
- )
148
- );
149
- $subscribe_to_plan = json_encode($subscribe_to_plan);
150
- $curlSession = curl_init();
151
- curl_setopt($curlSession, CURLOPT_URL, $URL);
152
- curl_setopt($curlSession, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
153
- curl_setopt($curlSession, CURLOPT_POST, 1);
154
- curl_setopt($curlSession, CURLOPT_POSTFIELDS,$subscribe_to_plan);
155
- curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, true);
156
- $subscribeToListResponse = json_decode(curl_exec($curlSession), true);
157
- curl_close($curlSession);
158
- return $subscribeToListResponse;
159
  }
160
  }
161
 
2
  /**
3
  * Booster getting started
4
  *
5
+ * @version 5.4.3
6
  * @author Pluggabl LLC.
7
  */
8
 
28
  add_action( 'admin_menu', array( $this, 'wcj_register_welcome_page' ) );
29
  add_action( 'network_admin_menu', array( $this, 'wcj_register_welcome_page' ) );
30
  add_action( 'admin_head', array( $this, 'wcj_hide_menu' ) );
31
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_script' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  }
34
  }
36
  /**
37
  * wcj_register_welcome_page
38
  *
39
+ * @version 5.4.3
40
  */
41
  public function wcj_register_welcome_page() {
42
  add_dashboard_page(
48
  );
49
  }
50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  /**
52
  * wcj_hide_menu
53
  *
83
  require_once( WCJ_PLUGIN_PATH . '/includes/admin/wcj-welcome-screen-content.php' );
84
  }
85
 
86
+ /**
87
+ * enqueue_admin_script.
88
+ *
89
+ * @version 5.4.3
90
+ * @since 5.4.3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  */
92
+ function enqueue_admin_script() {
93
+ wp_enqueue_script( 'wcj-admin-js', trailingslashit( wcj_plugin_url() ) . 'includes/js/wcj-admin.js', array( 'jquery' ), WCJ()->version, true );
94
+ wp_localize_script( 'wcj-admin-js', 'admin_object' ,array('admin_object'), false );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
  }
96
  }
97
 
includes/admin/wcj-welcome-screen-content.php CHANGED
@@ -1,3 +1,11 @@
 
 
 
 
 
 
 
 
1
  <div class="wcj-welcome-page">
2
  <div class="wcj-welcome-container">
3
  <div class="wcj-welcome-content-main">
@@ -124,18 +132,24 @@
124
  </div>
125
  <div id="subscribe-email" class="wcj-welcome-content-inner wcj-welcome-subscribe-email">
126
  <h3> <?php esc_html_e( "Don't miss updates from us!", "woocommerce-jetpack" ); ?> </h3>
127
- <form method="post" action="<?php echo $_SERVER['PHP_SELF']."?page=jetpack-getting-started&wcj-redirect=1"; ?>">
128
  <input class="form-control user_email" type="email" required="true" name="user_email" placeholder="Enter your email">
129
- <input class="subscribe-email-btn" type="submit" name="submit_email_to_klaviyo" value="Submit">
130
  </form>
131
  <?php
132
- if(isset( $_GET['msg'] ) && $_GET['msg'] == 1 ){
133
- ?><p style="color: #f46c5e;"><?php esc_html_e( "Thank you for subscribing your email", "woocommerce-jetpack" ); ?></p><?php
134
- }
135
- elseif(isset( $_GET['msg'] ) && $_GET['msg'] == 2 ){
136
- ?><p style="color: #f46c5e;"><?php esc_html_e( "You have already subscribed your email", "woocommerce-jetpack" ); ?></p><?php
137
- }
138
- ?>
 
 
 
 
 
 
139
  </div>
140
  <div class="wcj-welcome-content-inner wcj-welcome-subscribe-email">
141
  <h3> <?php esc_html_e( "Contact Us", "woocommerce-jetpack" ); ?> </h3>
1
+ <?php
2
+ /**
3
+ * Booster for WooCommerce - Welcome Screen Content
4
+ *
5
+ * @version 5.4.3
6
+ * @author Pluggabl LLC.
7
+ */
8
+ ?>
9
  <div class="wcj-welcome-page">
10
  <div class="wcj-welcome-container">
11
  <div class="wcj-welcome-content-main">
132
  </div>
133
  <div id="subscribe-email" class="wcj-welcome-content-inner wcj-welcome-subscribe-email">
134
  <h3> <?php esc_html_e( "Don't miss updates from us!", "woocommerce-jetpack" ); ?> </h3>
135
+ <form method="post" name="subscribe-email-form">
136
  <input class="form-control user_email" type="email" required="true" name="user_email" placeholder="Enter your email">
137
+ <input class="subscribe-email-btn" type="button" name="submit_email_to_klaviyo" value="Submit">
138
  </form>
139
  <?php
140
+ if( isset( $_REQUEST['msg'] ) ){
141
+ $subscribe_message = "";
142
+ $subscribe_message_id = $_REQUEST['msg'];
143
+ if( $subscribe_message_id == 1 ){
144
+ $subscribe_message = "Thank you for subscribing your email";
145
+ }else if( $subscribe_message_id == 2 ){
146
+ $subscribe_message = "You have already subscribed your email";
147
+ }else if( $subscribe_message_id == 3 ){
148
+ $subscribe_message = "Something went wrong with your subscription. Please after some time !";
149
+ }
150
+ echo '<p style="color: #f46c5e;">' . sprintf( __( '%s', 'woocommerce-jetpack' ), $subscribe_message ) . '</p>';
151
+ }
152
+ ?>
153
  </div>
154
  <div class="wcj-welcome-content-inner wcj-welcome-subscribe-email">
155
  <h3> <?php esc_html_e( "Contact Us", "woocommerce-jetpack" ); ?> </h3>
includes/class-wcj-checkout-custom-fields.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Checkout Custom Fields
4
  *
5
- * @version 5.4.2
6
  * @author Pluggabl LLC.
7
  */
8
 
@@ -205,7 +205,7 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
205
  /**
206
  * update_custom_checkout_fields_order_meta.
207
  *
208
- * @version 5.4.2
209
  */
210
  function update_custom_checkout_fields_order_meta( $order_id ) {
211
  for ( $i = 1; $i <= apply_filters( 'booster_option', 1, wcj_get_option( 'wcj_checkout_custom_fields_total_number', 1 ) ); $i++ ) {
@@ -231,7 +231,7 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
231
  get_option( 'wcj_checkout_custom_field_checkbox_no_' . $i );
232
  update_post_meta( $order_id, '_' . $option_name_checkbox_value, $checkbox_value );
233
  } elseif ( 'radio' === $the_type || 'select' === $the_type ) {
234
- // update_post_meta( $order_id, '_' . $option_name, wc_clean( urldecode( $post_value ) ) );
235
  $option_name_values = $the_section . '_' . 'wcj_checkout_field_select_options_' . $i;
236
  $the_values = wcj_get_option( 'wcj_checkout_custom_field_select_options_' . $i );
237
  update_post_meta( $order_id, '_' . $option_name_values, $the_values );
2
  /**
3
  * Booster for WooCommerce - Module - Checkout Custom Fields
4
  *
5
+ * @version 5.4.3
6
  * @author Pluggabl LLC.
7
  */
8
 
205
  /**
206
  * update_custom_checkout_fields_order_meta.
207
  *
208
+ * @version 5.4.3
209
  */
210
  function update_custom_checkout_fields_order_meta( $order_id ) {
211
  for ( $i = 1; $i <= apply_filters( 'booster_option', 1, wcj_get_option( 'wcj_checkout_custom_fields_total_number', 1 ) ); $i++ ) {
231
  get_option( 'wcj_checkout_custom_field_checkbox_no_' . $i );
232
  update_post_meta( $order_id, '_' . $option_name_checkbox_value, $checkbox_value );
233
  } elseif ( 'radio' === $the_type || 'select' === $the_type ) {
234
+ update_post_meta( $order_id, '_' . $option_name, wc_clean( urldecode( $post_value ) ) );
235
  $option_name_values = $the_section . '_' . 'wcj_checkout_field_select_options_' . $i;
236
  $the_values = wcj_get_option( 'wcj_checkout_custom_field_select_options_' . $i );
237
  update_post_meta( $order_id, '_' . $option_name_values, $the_values );
includes/class-wcj-multicurrency.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Multicurrency (Currency Switcher)
4
  *
5
- * @version 5.3.4
6
  * @since 2.4.3
7
  * @author Pluggabl LLC.
8
  */
@@ -92,7 +92,7 @@ class WCJ_Multicurrency extends WCJ_Module {
92
  /**
93
  * Handles third party compatibility.
94
  *
95
- * @version 5.3.3
96
  * @since 4.3.0
97
  */
98
  function handle_compatibility(){
@@ -105,6 +105,11 @@ class WCJ_Multicurrency extends WCJ_Module {
105
  add_filter( 'woocommerce_coupon_is_valid', array( $this, 'check_woocommerce_coupon_min_max_amount' ), 10, 3 );
106
  add_filter( 'woocommerce_get_shop_coupon_data', array( $this, 'fix_wc_coupon_discount_amount' ), 10, 3 );
107
 
 
 
 
 
 
108
  // WooCommerce Price Filter Widget
109
  if ( 'yes' === wcj_get_option( 'wcj_multicurrency_compatibility_wc_price_filter' , 'no' ) ) {
110
  add_action( 'wp_footer', array( $this, 'add_compatibility_with_price_filter_widget' ) );
@@ -424,6 +429,26 @@ class WCJ_Multicurrency extends WCJ_Module {
424
  return $coupon;
425
  }
426
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
427
  /**
428
  * Fixes sort by price when `wcj_multicurrency_per_product_enabled` is enabled.
429
  *
2
  /**
3
  * Booster for WooCommerce - Module - Multicurrency (Currency Switcher)
4
  *
5
+ * @version 5.4.3
6
  * @since 2.4.3
7
  * @author Pluggabl LLC.
8
  */
92
  /**
93
  * Handles third party compatibility.
94
  *
95
+ * @version 5.4.3
96
  * @since 4.3.0
97
  */
98
  function handle_compatibility(){
105
  add_filter( 'woocommerce_coupon_is_valid', array( $this, 'check_woocommerce_coupon_min_max_amount' ), 10, 3 );
106
  add_filter( 'woocommerce_get_shop_coupon_data', array( $this, 'fix_wc_coupon_discount_amount' ), 10, 3 );
107
 
108
+ // WooCommerce Attribute Swatches by Iconic Plugin
109
+ if ( 'yes' === wcj_get_option( 'wcj_multicurrency_compatibility_wc_attribute_swatches_premium_variable_cart_item_price' , 'no' ) ) {
110
+ add_filter( 'woocommerce_cart_item_price', array( $this, 'fix_wc_attribute_swatches_premium_variable_cart_item_price' ), 20, 3 );
111
+ }
112
+
113
  // WooCommerce Price Filter Widget
114
  if ( 'yes' === wcj_get_option( 'wcj_multicurrency_compatibility_wc_price_filter' , 'no' ) ) {
115
  add_action( 'wp_footer', array( $this, 'add_compatibility_with_price_filter_widget' ) );
429
  return $coupon;
430
  }
431
 
432
+ /**
433
+ * fix_wc_attribute_swatches_premium_variable_cart_item_price.
434
+ *
435
+ * @version 5.4.3
436
+ * @since 5.4.3
437
+ *
438
+ * @param $price_html
439
+ * @param $cart_item
440
+ * @param $cart_item_key
441
+ *
442
+ * @return mixed
443
+ */
444
+ function fix_wc_attribute_swatches_premium_variable_cart_item_price( $price_html, $cart_item, $cart_item_key ) {
445
+ if ( empty( $cart_item['iconic_was_fee'] ) ) {
446
+ return $price_html;
447
+ }
448
+ $price = $this->change_price( $cart_item['iconic_was_fee'], null );
449
+ return wc_price( $price );
450
+ }
451
+
452
  /**
453
  * Fixes sort by price when `wcj_multicurrency_per_product_enabled` is enabled.
454
  *
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.4.0
6
  * @since 2.9.0
7
  * @author Pluggabl LLC.
8
  */
@@ -16,7 +16,7 @@ class WCJ_Order_Quantities extends WCJ_Module {
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`)
@@ -58,6 +58,7 @@ class WCJ_Order_Quantities extends WCJ_Module {
58
  // Quantity step
59
  if ( 'yes' === wcj_get_option( 'wcj_order_quantities_step_section_enabled', 'no' ) ) {
60
  add_filter( 'woocommerce_quantity_input_step', array( $this, 'set_quantity_input_step' ), PHP_INT_MAX, 2 );
 
61
  }
62
  // Meta box
63
  $this->is_min_per_product_enabled = ( 'yes' === wcj_get_option( 'wcj_order_quantities_min_section_enabled', 'no' ) &&
@@ -88,6 +89,11 @@ class WCJ_Order_Quantities extends WCJ_Module {
88
 
89
  // Prevent outdated min/max Quantity Options
90
  add_action( 'woocommerce_update_product', array( $this, 'prevent_outdated_min_max' ), 10 );
 
 
 
 
 
91
  }
92
  }
93
 
@@ -340,13 +346,16 @@ class WCJ_Order_Quantities extends WCJ_Module {
340
  /**
341
  * set_quantity_input_min.
342
  *
343
- * @version 3.2.2
344
  * @since 3.2.2
345
  */
346
  function set_quantity_input_min( $qty, $_product ) {
347
  if ( ! $_product->is_type( 'variable' ) ) {
348
  $min = $this->get_product_quantity( 'min', $_product, $qty );
349
  $_max = $_product->get_max_purchase_quantity();
 
 
 
350
  return ( -1 == $_max || $min < $_max ? $min : $_max );
351
  } else {
352
  return $qty;
@@ -410,7 +419,7 @@ class WCJ_Order_Quantities extends WCJ_Module {
410
  /**
411
  * print_message.
412
  *
413
- * @version 4.2.0
414
  * @since 2.9.0
415
  */
416
  function print_message( $message_type, $_is_cart, $required_quantity, $total_quantity, $_product_id = 0 ) {
@@ -447,6 +456,9 @@ class WCJ_Order_Quantities extends WCJ_Module {
447
  __( 'Maximum allowed quantity for %product_title% is %max_per_item_quantity%. Your current item quantity is %item_quantity%.', 'woocommerce-jetpack' ) );
448
  break;
449
  case 'min_per_item_quantity':
 
 
 
450
  $_product = wc_get_product( $_product_id );
451
  $replaced_values = array(
452
  '%min_per_item_quantity%' => $required_quantity,
@@ -640,6 +652,37 @@ class WCJ_Order_Quantities extends WCJ_Module {
640
  }
641
  }
642
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
643
  }
644
 
645
  endif;
2
  /**
3
  * Booster for WooCommerce - Module - Order Min/Max Quantities
4
  *
5
+ * @version 5.4.3
6
  * @since 2.9.0
7
  * @author Pluggabl LLC.
8
  */
16
  /**
17
  * Constructor.
18
  *
19
+ * @version 5.4.3
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`)
58
  // Quantity step
59
  if ( 'yes' === wcj_get_option( 'wcj_order_quantities_step_section_enabled', 'no' ) ) {
60
  add_filter( 'woocommerce_quantity_input_step', array( $this, 'set_quantity_input_step' ), PHP_INT_MAX, 2 );
61
+ add_filter( 'woocommerce_quantity_input_min', array( $this, 'set_quantity_input_step' ), PHP_INT_MAX, 2 );
62
  }
63
  // Meta box
64
  $this->is_min_per_product_enabled = ( 'yes' === wcj_get_option( 'wcj_order_quantities_min_section_enabled', 'no' ) &&
89
 
90
  // Prevent outdated min/max Quantity Options
91
  add_action( 'woocommerce_update_product', array( $this, 'prevent_outdated_min_max' ), 10 );
92
+
93
+ // Check Product Quantity Forcefully
94
+ if ( 'yes' === wcj_get_option( 'wcj_order_quantities_check_product_quantity_forcefully', 'no' ) ) {
95
+ add_filter('woocommerce_add_to_cart_validation', array( $this, 'set_quantity_input_max_cart_item' ) ,PHP_INT_MAX,4);
96
+ }
97
  }
98
  }
99
 
346
  /**
347
  * set_quantity_input_min.
348
  *
349
+ * @version 5.4.3
350
  * @since 3.2.2
351
  */
352
  function set_quantity_input_min( $qty, $_product ) {
353
  if ( ! $_product->is_type( 'variable' ) ) {
354
  $min = $this->get_product_quantity( 'min', $_product, $qty );
355
  $_max = $_product->get_max_purchase_quantity();
356
+ if( 'yes'=== wcj_get_option( 'wcj_product_quantities_lower_than_min_cart_total_quantity' , 'no' ) ) {
357
+ return $qty;
358
+ }
359
  return ( -1 == $_max || $min < $_max ? $min : $_max );
360
  } else {
361
  return $qty;
419
  /**
420
  * print_message.
421
  *
422
+ * @version 5.4.3
423
  * @since 2.9.0
424
  */
425
  function print_message( $message_type, $_is_cart, $required_quantity, $total_quantity, $_product_id = 0 ) {
456
  __( 'Maximum allowed quantity for %product_title% is %max_per_item_quantity%. Your current item quantity is %item_quantity%.', 'woocommerce-jetpack' ) );
457
  break;
458
  case 'min_per_item_quantity':
459
+ if( "yes" === wcj_get_option( 'wcj_product_quantities_lower_than_min_cart_total_quantity' ) ) {
460
+ return;
461
+ }
462
  $_product = wc_get_product( $_product_id );
463
  $replaced_values = array(
464
  '%min_per_item_quantity%' => $required_quantity,
652
  }
653
  }
654
 
655
+ /**
656
+ * set_quantity_input_max_cart_item.
657
+ *
658
+ * @version 5.4.3
659
+ * @since 5.4.3
660
+ */
661
+ function set_quantity_input_max_cart_item( $passed_validation, $product_id, $quantity ) {
662
+ global $product;
663
+ $max = $this->get_product_quantity( 'max', $product, $quantity );
664
+ $cart_item_quantities = WC()->cart->get_cart_item_quantities();
665
+
666
+ if ( empty( $cart_item_quantities ) || ! isset( $cart_item_quantities[ $product_id ] ) ) {
667
+ return $passed_validation;
668
+ }
669
+
670
+ $cart_quantity = $cart_item_quantities[ $product_id ];
671
+ if ( ( $cart_quantity + $quantity ) >$max ) {
672
+ $passed_validation = false;
673
+ $product = wc_get_product( $product_id);
674
+ $replaced_values = array(
675
+ '%max_per_item_quantity%' => $max ,
676
+ '%item_quantity%' => $cart_quantity,
677
+ '%product_title%' => $product->get_title(),
678
+ );
679
+
680
+ $message_template = wcj_get_option( 'wcj_order_quantities_max_per_item_message', '' );
681
+ $_notice = str_replace( array_keys( $replaced_values ), array_values( $replaced_values ), $message_template );
682
+ wc_add_notice($_notice, 'error' );
683
+ }
684
+ return $passed_validation;
685
+ }
686
  }
687
 
688
  endif;
includes/class-wcj-product-by-country.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Module - Product Visibility by Country
4
  *
5
- * @version 5.2.0
6
  * @since 2.5.0
7
  * @author Pluggabl LLC.
8
  */
@@ -138,7 +138,7 @@ class WCJ_Product_By_Country extends WCJ_Module_Product_By_Condition {
138
  /**
139
  * maybe_add_extra_settings.
140
  *
141
- * @version 3.6.0
142
  * @since 3.6.0
143
  * @todo (maybe) move "Country List" inside the "Admin Options" section
144
  */
@@ -167,6 +167,23 @@ class WCJ_Product_By_Country extends WCJ_Module_Product_By_Condition {
167
  'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
168
  'css' => 'min-width:250px;',
169
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  array(
171
  'title' => __( 'Overwrite by Billing Country', 'woocommerce-jetpack' ),
172
  'desc_tip' => __( 'Tries to overwrite Country by User Billing Country on Checkout Page.', 'woocommerce-jetpack' ),
2
  /**
3
  * Booster for WooCommerce - Module - Product Visibility by Country
4
  *
5
+ * @version 5.4.3
6
  * @since 2.5.0
7
  * @author Pluggabl LLC.
8
  */
138
  /**
139
  * maybe_add_extra_settings.
140
  *
141
+ * @version 5.4.3
142
  * @since 3.6.0
143
  * @todo (maybe) move "Country List" inside the "Admin Options" section
144
  */
167
  'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
168
  'css' => 'min-width:250px;',
169
  ),
170
+ array(
171
+ 'title' => __( 'Country List', 'woocommerce-jetpack' ),
172
+ 'desc_tip' => __( 'This option sets which countries will be added to the list in [wcj_selector selector_type="country"] shortcode. Possible values: "All countries" or "WooCommerce selling locations".', 'woocommerce-jetpack' ),
173
+ 'desc' => sprintf(
174
+ '<p>' . __( 'If "WooCommerce selling locations" option is selected, country list will be set by <a href="%s">WooCommerce > Settings > General > Selling location(s)</a>.', 'woocommerce-jetpack' ),
175
+ admin_url( 'admin.php?page=wc-settings' ) ) .
176
+ '<br>' . apply_filters( 'booster_message', '', 'desc' ) . '</p>',
177
+ 'id' => 'wcj_product_by_country_country_list_shortcode',
178
+ 'default' => 'all',
179
+ 'type' => 'select',
180
+ 'options' => array(
181
+ 'all' => __( 'All countries', 'woocommerce-jetpack' ),
182
+ 'wc' => __( 'WooCommerce selling locations', 'woocommerce-jetpack' ),
183
+ ),
184
+ 'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
185
+ 'css' => 'min-width:250px;',
186
+ ),
187
  array(
188
  'title' => __( 'Overwrite by Billing Country', 'woocommerce-jetpack' ),
189
  'desc_tip' => __( 'Tries to overwrite Country by User Billing Country on Checkout Page.', 'woocommerce-jetpack' ),
includes/js/wcj-admin.js CHANGED
@@ -1,19 +1,62 @@
1
  /**
2
  * wcj-admin.
3
  *
4
- * @version 5.4.2
5
  * @since 5.4.2
6
  */
7
 
8
  jQuery(document).ready(function () {
 
9
  let circleBadge = document.querySelector('.circle-badge'),
10
  subCircles = document.querySelectorAll('.subCircles > div');
 
 
 
 
 
 
 
 
11
 
12
- circleBadge.addEventListener('click', showCircles);
 
 
 
 
 
 
13
 
14
- function showCircles() {
15
- subCircles.forEach(circle => {
16
- circle.classList.toggle("show");
17
- })
18
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  });
1
  /**
2
  * wcj-admin.
3
  *
4
+ * @version 5.4.3
5
  * @since 5.4.2
6
  */
7
 
8
  jQuery(document).ready(function () {
9
+ /* Quick Links Footer - Popup */
10
  let circleBadge = document.querySelector('.circle-badge'),
11
  subCircles = document.querySelectorAll('.subCircles > div');
12
+ if(circleBadge !== null){
13
+ circleBadge.addEventListener('click', showCircles);
14
+ function showCircles() {
15
+ subCircles.forEach(circle => {
16
+ circle.classList.toggle("show");
17
+ })
18
+ };
19
+ }
20
 
21
+ /* Klaviyo Email Subscription From Welcome Page */
22
+ jQuery("#subscribe-email .subscribe-email-btn").click(function() {
23
+ var email = jQuery("#subscribe-email input[name=user_email]");
24
+ if(IsValidEmail(email.val()) == false){
25
+ email.focus();
26
+ return false;
27
+ }
28
 
29
+ var redirectUrl = window.location.origin + window.location.pathname + "?page=jetpack-getting-started&wcj-redirect=1&msg=";
30
+ var msgId = 3;
31
+ var settings = {
32
+ "async": true,
33
+ "crossDomain": true,
34
+ "url": "https://manage.kmail-lists.com/ajax/subscriptions/subscribe",
35
+ "method": "POST",
36
+ "headers": {
37
+ "content-type": "application/x-www-form-urlencoded",
38
+ "cache-control": "no-cache"
39
+ },
40
+ "data": {
41
+ "g": "RQJNvK",
42
+ "$fields": "",
43
+ "email": email.val(),
44
+ }
45
+ }
46
+ jQuery.ajax(settings).done(function (response) {
47
+ if(response.success === true){
48
+ if(response.data.is_subscribed === false && response.data.email !== "" ){
49
+ msgId = 1; //Subscribe to the List
50
+ }else if(response.data.is_subscribed === true){
51
+ msgId = 2; //Email already subscribed
52
+ }
53
+ }
54
+ window.location = redirectUrl + msgId + "#subscribe-email";
55
+ });
56
+ });
57
+
58
+ function IsValidEmail(email) {
59
+ var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
60
+ return regex.test(email) ? true : false;
61
+ }
62
  });
includes/js/wcj-product-addons.js CHANGED
@@ -1,7 +1,7 @@
1
  /**
2
  * wcj-product-addons.
3
  *
4
- * @version 4.6.1
5
  * @since 2.5.3
6
  * @todo `text` type - update price not only on change, but on each pressed key
7
  * @todo fix the issue with custom price labels module
@@ -54,9 +54,9 @@ function change_price() {
54
  }
55
  amount.replaceWith(response);
56
  } else if (is_variable) {
57
- var amount = jQuery("span[class='price'] " + ignore_strikethrough_str + " .amount");
58
  if (!amount.length) {
59
- amount = jQuery("span[class='price'] .amount");
60
  }
61
  amount.replaceWith(response);
62
  }
1
  /**
2
  * wcj-product-addons.
3
  *
4
+ * @version 5.4.3
5
  * @since 2.5.3
6
  * @todo `text` type - update price not only on change, but on each pressed key
7
  * @todo fix the issue with custom price labels module
54
  }
55
  amount.replaceWith(response);
56
  } else if (is_variable) {
57
+ var amount = jQuery(".woocommerce-variation-price span[class='price'] " + ignore_strikethrough_str + " .amount");
58
  if (!amount.length) {
59
+ amount = jQuery(".woocommerce-variation-price span[class='price'] .amount");
60
  }
61
  amount.replaceWith(response);
62
  }
includes/settings/wcj-settings-multicurrency.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings - Multicurrency (Currency Switcher)
4
  *
5
- * @version 5.4.0
6
  * @since 2.8.0
7
  * @author Pluggabl LLC.
8
  * @todo "pretty prices"
@@ -226,6 +226,15 @@ $settings = array(
226
  'default' => 'no',
227
  'type' => 'checkbox',
228
  ),
 
 
 
 
 
 
 
 
 
229
  /*array(
230
  'title' => __( 'Advanced Dynamic Pricing For Woocommerce', 'woocommerce-jetpack' ),
231
  'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
2
  /**
3
  * Booster for WooCommerce - Settings - Multicurrency (Currency Switcher)
4
  *
5
+ * @version 5.4.3
6
  * @since 2.8.0
7
  * @author Pluggabl LLC.
8
  * @todo "pretty prices"
226
  'default' => 'no',
227
  'type' => 'checkbox',
228
  ),
229
+ array(
230
+ 'title' => __( 'WooCommerce Attribute Swatches by Iconic Plugin', 'woocommerce-jetpack' ),
231
+ 'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
232
+ 'desc' => empty( $message = apply_filters( 'booster_message', '', 'desc' ) ) ? __( 'Enable', 'woocommerce-jetpack' ) : $message,
233
+ 'desc_tip' => __( 'Fixes cart item price issue if the <code>WooCommerce Attribute Swatches by Iconic</code> Plugin is activated', 'woocommerce-jetpack'),
234
+ 'id' => 'wcj_multicurrency_compatibility_wc_attribute_swatches_premium_variable_cart_item_price',
235
+ 'default' => 'no',
236
+ 'type' => 'checkbox',
237
+ ),
238
  /*array(
239
  'title' => __( 'Advanced Dynamic Pricing For Woocommerce', 'woocommerce-jetpack' ),
240
  'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
includes/settings/wcj-settings-order-quantities.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Settings - Order Min/Max Quantities
4
  *
5
- * @version 4.2.0
6
  * @since 2.9.0
7
  * @author Pluggabl LLC.
8
  * @todo (maybe) generate settings in loop ( min / max )
@@ -112,6 +112,14 @@ return array(
112
  'desc' => apply_filters( 'booster_message', '', 'desc' ),
113
  'custom_attributes' => ( '' === apply_filters( 'booster_message', '', 'readonly' ) ? array( 'min' => 0, 'step' => $qty_step_settings ) : apply_filters( 'booster_message', '', 'readonly' ) ),
114
  ),
 
 
 
 
 
 
 
 
115
  array(
116
  'title' => __( 'Per Item Quantity on Per Product Basis', 'woocommerce-jetpack' ),
117
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
@@ -170,6 +178,15 @@ return array(
170
  'desc' => apply_filters( 'booster_message', '', 'desc' ),
171
  'custom_attributes' => ( '' === apply_filters( 'booster_message', '', 'readonly' ) ? array( 'min' => 0, 'step' => $qty_step_settings ) : apply_filters( 'booster_message', '', 'readonly' ) ),
172
  ),
 
 
 
 
 
 
 
 
 
173
  array(
174
  'title' => __( 'Per Item Quantity on Per Product Basis', 'woocommerce-jetpack' ),
175
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
2
  /**
3
  * Booster for WooCommerce - Settings - Order Min/Max Quantities
4
  *
5
+ * @version 5.4.3
6
  * @since 2.9.0
7
  * @author Pluggabl LLC.
8
  * @todo (maybe) generate settings in loop ( min / max )
112
  'desc' => apply_filters( 'booster_message', '', 'desc' ),
113
  'custom_attributes' => ( '' === apply_filters( 'booster_message', '', 'readonly' ) ? array( 'min' => 0, 'step' => $qty_step_settings ) : apply_filters( 'booster_message', '', 'readonly' ) ),
114
  ),
115
+ array(
116
+ 'title' => __( 'Add all quantities if quantity lower than the minimum quantity', 'woocommerce-jetpack' ),
117
+ 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
118
+ 'desc_tip' => __( 'If you want allow product add to cart with remain quantities if product quantities less than minimum quantities', 'woocommerce-jetpack' ),
119
+ 'id' => 'wcj_product_quantities_lower_than_min_cart_total_quantity',
120
+ 'default' => 'no',
121
+ 'type' => 'checkbox',
122
+ ),
123
  array(
124
  'title' => __( 'Per Item Quantity on Per Product Basis', 'woocommerce-jetpack' ),
125
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
178
  'desc' => apply_filters( 'booster_message', '', 'desc' ),
179
  'custom_attributes' => ( '' === apply_filters( 'booster_message', '', 'readonly' ) ? array( 'min' => 0, 'step' => $qty_step_settings ) : apply_filters( 'booster_message', '', 'readonly' ) ),
180
  ),
181
+ array(
182
+ 'title' => __( 'Check Product Quantity Forcefully', 'woocommerce-jetpack' ),
183
+ 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
184
+ 'desc_tip' => __( 'Enable this option if you want to not allow user to product add to cart if user already reached the Max Quantity limit', 'woocommerce-jetpack' ) . ' ' . apply_filters( 'booster_message', '', 'desc' ),
185
+ 'id' => 'wcj_order_quantities_check_product_quantity_forcefully',
186
+ 'default' => 'no',
187
+ 'type' => 'checkbox',
188
+ 'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
189
+ ),
190
  array(
191
  'title' => __( 'Per Item Quantity on Per Product Basis', 'woocommerce-jetpack' ),
192
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
includes/shortcodes/class-wcj-shortcodes-general.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Booster for WooCommerce - Shortcodes - General
4
  *
5
- * @version 4.3.0
6
  * @author Pluggabl LLC.
7
  */
8
 
@@ -433,7 +433,7 @@ class WCJ_General_Shortcodes extends WCJ_Shortcodes {
433
  /**
434
  * wcj_selector.
435
  *
436
- * @version 3.2.4
437
  * @since 3.1.0
438
  * @todo add `default` attribute
439
  * @todo (maybe) add more selector types (e.g.: currency)
@@ -442,16 +442,29 @@ class WCJ_General_Shortcodes extends WCJ_Shortcodes {
442
  function wcj_selector( $atts ) {
443
  $html = '';
444
  $options = '';
 
 
445
  $selected_value = ( isset( $_REQUEST[ 'wcj_' . $atts['selector_type'] . '_selector' ] ) ?
446
  $_REQUEST[ 'wcj_' . $atts['selector_type'] . '_selector' ] :
447
  wcj_session_get( 'wcj_selected_' . $atts['selector_type'] )
448
  );
 
 
 
 
 
 
 
 
 
 
 
449
  switch ( $atts['selector_type'] ) {
450
  case 'product_custom_visibility':
451
  $options = wcj_get_select_options( wcj_get_option( 'wcj_product_custom_visibility_options_list', '' ) );
452
  break;
453
  default: // 'country'
454
- $options = wcj_get_countries();
455
  asort( $options );
456
  break;
457
  }
2
  /**
3
  * Booster for WooCommerce - Shortcodes - General
4
  *
5
+ * @version 5.4.3
6
  * @author Pluggabl LLC.
7
  */
8
 
433
  /**
434
  * wcj_selector.
435
  *
436
+ * @version 5.4.3
437
  * @since 3.1.0
438
  * @todo add `default` attribute
439
  * @todo (maybe) add more selector types (e.g.: currency)
442
  function wcj_selector( $atts ) {
443
  $html = '';
444
  $options = '';
445
+ $countries = apply_filters( 'booster_option', 'all', wcj_get_option( 'wcj_product_by_country_country_list_shortcode', 'all' ) );
446
+
447
  $selected_value = ( isset( $_REQUEST[ 'wcj_' . $atts['selector_type'] . '_selector' ] ) ?
448
  $_REQUEST[ 'wcj_' . $atts['selector_type'] . '_selector' ] :
449
  wcj_session_get( 'wcj_selected_' . $atts['selector_type'] )
450
  );
451
+
452
+ switch ( $countries ) {
453
+ case 'wc':
454
+ $countries = WC()->countries->get_allowed_countries();
455
+ break;
456
+ default: // 'all'
457
+ $countries = wcj_get_countries();
458
+ asort( $options );
459
+ break;
460
+ }
461
+
462
  switch ( $atts['selector_type'] ) {
463
  case 'product_custom_visibility':
464
  $options = wcj_get_select_options( wcj_get_option( 'wcj_product_custom_visibility_options_list', '' ) );
465
  break;
466
  default: // 'country'
467
+ $options = $countries;
468
  asort( $options );
469
  break;
470
  }
langs/woocommerce-jetpack.pot CHANGED
@@ -45,7 +45,7 @@ msgstr ""
45
  #: includes/classes/class-wcj-module.php:582
46
  #: includes/classes/class-wcj-module.php:782
47
  #: includes/settings/wcj-settings-price-by-country.php:250
48
- msgid "Booster"
49
  msgstr ""
50
 
51
  #: includes/admin/class-wc-settings-jetpack.php:67
@@ -431,8 +431,8 @@ msgstr ""
431
  msgid "Status"
432
  msgstr ""
433
 
434
- #: includes/admin/class-wcj-welcome.php:60
435
- #: includes/admin/class-wcj-welcome.php:61
436
  msgid "Welcome to Booster"
437
  msgstr ""
438
 
@@ -676,35 +676,32 @@ msgstr ""
676
  msgid "Don't miss updates from us!"
677
  msgstr ""
678
 
679
- #: includes/admin/wcj-welcome-screen-content.php:133
680
- msgid "Thank you for subscribing your email"
681
- msgstr ""
682
-
683
- #: includes/admin/wcj-welcome-screen-content.php:136
684
- msgid "You have already subscribed your email"
685
  msgstr ""
686
 
687
- #: includes/admin/wcj-welcome-screen-content.php:141
688
  msgid "Contact Us"
689
  msgstr ""
690
 
691
- #: includes/admin/wcj-welcome-screen-content.php:143
692
  msgid ""
693
  "Booster Plus customers get access to Premium Support and we respond within 24 "
694
  "business hours."
695
  msgstr ""
696
 
697
- #: includes/admin/wcj-welcome-screen-content.php:144
698
  msgid "Booster Plus Premium Support"
699
  msgstr ""
700
 
701
- #: includes/admin/wcj-welcome-screen-content.php:147
702
  msgid ""
703
  "Free users post on WordPress Plugin Support forum here. We check these "
704
  "threads twice every week Mon and Frid to respond."
705
  msgstr ""
706
 
707
- #: includes/admin/wcj-welcome-screen-content.php:148
708
  msgid "Booster Free Plugin Support"
709
  msgstr ""
710
 
@@ -1069,7 +1066,8 @@ msgid "Trash"
1069
  msgstr ""
1070
 
1071
  #: includes/class-wcj-admin-orders-list.php:327
1072
- #: includes/class-wcj-product-by-country.php:198
 
1073
  msgid "All countries"
1074
  msgstr ""
1075
 
@@ -1820,7 +1818,7 @@ msgid ""
1820
  msgstr ""
1821
 
1822
  #: includes/class-wcj-custom-php.php:32
1823
- #: includes/settings/wcj-settings-multicurrency.php:250
1824
  #: includes/settings/wcj-settings-offer-price.php:84
1825
  #, php-format
1826
  msgid "E.g.: %s"
@@ -2032,7 +2030,7 @@ msgid "Booster: Send Email: %s"
2032
  msgstr ""
2033
 
2034
  #: includes/class-wcj-empty-cart-button.php:25
2035
- #: includes/shortcodes/class-wcj-shortcodes-general.php:517
2036
  msgid "Empty Cart Button"
2037
  msgstr ""
2038
 
@@ -2669,8 +2667,8 @@ msgstr ""
2669
  #: includes/settings/wcj-settings-coupon-by-user-role.php:60
2670
  #: includes/settings/wcj-settings-currency-per-product.php:41
2671
  #: includes/settings/wcj-settings-currency-per-product.php:48
2672
- #: includes/settings/wcj-settings-order-quantities.php:231
2673
- #: includes/settings/wcj-settings-order-quantities.php:258
2674
  #: includes/settings/wcj-settings-product-by-time.php:69
2675
  msgid "Message"
2676
  msgstr ""
@@ -2984,43 +2982,43 @@ msgid ""
2984
  "decimal quantities etc."
2985
  msgstr ""
2986
 
2987
- #: includes/class-wcj-order-quantities.php:260
2988
- #: includes/settings/wcj-settings-order-quantities.php:260
2989
  msgid ""
2990
  "Only one item can be added to the cart. Clear the cart or finish the order, "
2991
  "before adding another item to the cart."
2992
  msgstr ""
2993
 
2994
- #: includes/class-wcj-order-quantities.php:429
2995
- #: includes/settings/wcj-settings-order-quantities.php:160
2996
  msgid ""
2997
  "Maximum allowed order quantity is %max_cart_total_quantity%. Your current "
2998
  "order quantity is %cart_total_quantity%."
2999
  msgstr ""
3000
 
3001
- #: includes/class-wcj-order-quantities.php:437
3002
  #: includes/settings/wcj-settings-order-quantities.php:102
3003
  msgid ""
3004
  "Minimum allowed order quantity is %min_cart_total_quantity%. Your current "
3005
  "order quantity is %cart_total_quantity%."
3006
  msgstr ""
3007
 
3008
- #: includes/class-wcj-order-quantities.php:447
3009
- #: includes/settings/wcj-settings-order-quantities.php:186
3010
  msgid ""
3011
  "Maximum allowed quantity for %product_title% is %max_per_item_quantity%. Your "
3012
  "current item quantity is %item_quantity%."
3013
  msgstr ""
3014
 
3015
- #: includes/class-wcj-order-quantities.php:457
3016
- #: includes/settings/wcj-settings-order-quantities.php:128
3017
  msgid ""
3018
  "Minimum allowed quantity for %product_title% is %min_per_item_quantity%. Your "
3019
  "current item quantity is %item_quantity%."
3020
  msgstr ""
3021
 
3022
- #: includes/class-wcj-order-quantities.php:467
3023
- #: includes/settings/wcj-settings-order-quantities.php:234
3024
  msgid ""
3025
  "Required step for %product_title% is %required_step%. Your current item "
3026
  "quantity is %item_quantity%."
@@ -3382,7 +3380,7 @@ msgid "After the price"
3382
  msgstr ""
3383
 
3384
  #: includes/class-wcj-price-labels.php:41
3385
- #: includes/class-wcj-product-by-country.php:173
3386
  #: includes/class-wcj-product-by-user-role.php:55
3387
  #: includes/class-wcj-product-info.php:235
3388
  #: includes/class-wcj-product-price-by-formula.php:71
@@ -3483,9 +3481,10 @@ msgstr ""
3483
  #: includes/settings/wcj-settings-multicurrency.php:205
3484
  #: includes/settings/wcj-settings-multicurrency.php:214
3485
  #: includes/settings/wcj-settings-multicurrency.php:223
3486
- #: includes/settings/wcj-settings-multicurrency.php:265
3487
  #: includes/settings/wcj-settings-multicurrency.php:274
3488
- #: includes/settings/wcj-settings-multicurrency.php:366
 
3489
  #: includes/settings/wcj-settings-my-account.php:29
3490
  #: includes/settings/wcj-settings-my-account.php:87
3491
  #: includes/settings/wcj-settings-my-account.php:104
@@ -3504,9 +3503,11 @@ msgstr ""
3504
  #: includes/settings/wcj-settings-order-quantities.php:42
3505
  #: includes/settings/wcj-settings-order-quantities.php:49
3506
  #: includes/settings/wcj-settings-order-quantities.php:117
3507
- #: includes/settings/wcj-settings-order-quantities.php:175
3508
- #: includes/settings/wcj-settings-order-quantities.php:216
3509
- #: includes/settings/wcj-settings-order-quantities.php:225
 
 
3510
  #: includes/settings/wcj-settings-orders.php:32
3511
  #: includes/settings/wcj-settings-orders.php:60
3512
  #: includes/settings/wcj-settings-orders.php:80
@@ -4117,37 +4118,47 @@ msgid "Manually"
4117
  msgstr ""
4118
 
4119
  #: includes/class-wcj-product-by-country.php:171
4120
- msgid "Overwrite by Billing Country"
 
4121
  msgstr ""
4122
 
4123
  #: includes/class-wcj-product-by-country.php:172
4124
- msgid "Tries to overwrite Country by User Billing Country on Checkout Page."
 
 
 
4125
  msgstr ""
4126
 
4127
- #: includes/class-wcj-product-by-country.php:183
4128
- msgid "Admin Country List Options"
 
 
 
 
 
 
 
 
 
 
4129
  msgstr ""
4130
 
4131
  #: includes/class-wcj-product-by-country.php:188
4132
- msgid "Country List"
4133
  msgstr ""
4134
 
4135
  #: includes/class-wcj-product-by-country.php:189
4136
- msgid ""
4137
- "This option sets which countries will be added to list in product's edit "
4138
- "page. Possible values: \"All countries\" or \"WooCommerce selling locations\"."
4139
  msgstr ""
4140
 
4141
- #: includes/class-wcj-product-by-country.php:191
4142
- #, php-format
4143
- msgid ""
4144
- "If \"WooCommerce selling locations\" option is selected, country list will be "
4145
- "set by <a href=\"%s\">WooCommerce > Settings > General > Selling location(s)</"
4146
- "a>."
4147
  msgstr ""
4148
 
4149
- #: includes/class-wcj-product-by-country.php:199
4150
- msgid "WooCommerce selling locations"
 
 
4151
  msgstr ""
4152
 
4153
  #: includes/class-wcj-product-by-date.php:29
@@ -5297,7 +5308,7 @@ msgid ""
5297
  msgstr ""
5298
 
5299
  #: includes/class-wcj-shipping-by-user-role.php:34
5300
- #: includes/settings/wcj-settings-multicurrency.php:379
5301
  #: includes/settings/wcj-settings-order-min-amount.php:131
5302
  #: includes/settings/wcj-settings-price-by-user-role.php:151
5303
  #, php-format
@@ -5799,7 +5810,7 @@ msgid "Unexpected error"
5799
  msgstr ""
5800
 
5801
  #: includes/classes/class-wcj-shortcodes.php:135
5802
- #: includes/shortcodes/class-wcj-shortcodes-general.php:517
5803
  #, php-format
5804
  msgid "\"%s\" module is not enabled!"
5805
  msgstr ""
@@ -8471,7 +8482,7 @@ msgstr ""
8471
  #: includes/settings/wcj-settings-add-to-cart-button-visibility.php:36
8472
  #: includes/settings/wcj-settings-add-to-cart-button-visibility.php:62
8473
  #: includes/settings/wcj-settings-multicurrency-base-price.php:63
8474
- #: includes/settings/wcj-settings-multicurrency.php:243
8475
  #: includes/settings/wcj-settings-order-min-amount.php:77
8476
  #: includes/settings/wcj-settings-price-by-country.php:232
8477
  #: includes/settings/wcj-settings-price-by-user-role.php:106
@@ -9135,12 +9146,12 @@ msgid "Set 0 to use global settings. Set -1 to disable."
9135
  msgstr ""
9136
 
9137
  #: includes/settings/meta-box/wcj-settings-meta-box-order-quantities.php:52
9138
- #: includes/settings/wcj-settings-order-quantities.php:142
9139
  msgid "Maximum Quantity"
9140
  msgstr ""
9141
 
9142
  #: includes/settings/meta-box/wcj-settings-meta-box-order-quantities.php:68
9143
- #: includes/settings/wcj-settings-order-quantities.php:200
9144
  msgid "Quantity Step"
9145
  msgstr ""
9146
 
@@ -9557,9 +9568,9 @@ msgstr ""
9557
  #: includes/settings/wcj-settings-my-account.php:194
9558
  #: includes/settings/wcj-settings-my-account.php:235
9559
  #: includes/settings/wcj-settings-order-quantities.php:85
9560
- #: includes/settings/wcj-settings-order-quantities.php:143
9561
- #: includes/settings/wcj-settings-order-quantities.php:201
9562
- #: includes/settings/wcj-settings-order-quantities.php:249
9563
  #: includes/settings/wcj-settings-orders.php:150
9564
  #: includes/settings/wcj-settings-price-formats.php:37
9565
  #: includes/settings/wcj-settings-product-add-to-cart.php:273
@@ -9633,7 +9644,7 @@ msgstr ""
9633
  #: includes/settings/wcj-settings-add-to-cart-button-visibility.php:90
9634
  #: includes/settings/wcj-settings-max-products-per-user.php:37
9635
  #: includes/settings/wcj-settings-max-products-per-user.php:42
9636
- #: includes/settings/wcj-settings-order-quantities.php:215
9637
  #: includes/settings/wcj-settings-price-labels.php:22
9638
  #: includes/settings/wcj-settings-product-add-to-cart.php:39
9639
  #: includes/settings/wcj-settings-product-by-date.php:52
@@ -10153,7 +10164,7 @@ msgstr ""
10153
  #: includes/settings/wcj-settings-admin-tools.php:108
10154
  #: includes/settings/wcj-settings-checkout-custom-fields.php:240
10155
  #: includes/settings/wcj-settings-checkout-custom-fields.php:249
10156
- #: includes/settings/wcj-settings-order-quantities.php:208
10157
  msgid "Ignored if set to zero."
10158
  msgstr ""
10159
 
@@ -11892,8 +11903,8 @@ msgstr ""
11892
  #: includes/settings/wcj-settings-currency-external-products.php:20
11893
  #: includes/settings/wcj-settings-currency-per-product.php:180
11894
  #: includes/settings/wcj-settings-multicurrency-base-price.php:142
11895
- #: includes/settings/wcj-settings-multicurrency.php:315
11896
- #: includes/settings/wcj-settings-multicurrency.php:353
11897
  #: includes/settings/wcj-settings-price-by-country.php:365
11898
  #: includes/settings/wcj-settings-price-formats.php:59
11899
  msgid "Currency"
@@ -11997,7 +12008,7 @@ msgstr ""
11997
 
11998
  #: includes/settings/wcj-settings-currency-per-product.php:138
11999
  #: includes/settings/wcj-settings-multicurrency-base-price.php:113
12000
- #: includes/settings/wcj-settings-multicurrency.php:284
12001
  msgid "Currencies Options"
12002
  msgstr ""
12003
 
@@ -12010,7 +12021,7 @@ msgstr ""
12010
 
12011
  #: includes/settings/wcj-settings-currency-per-product.php:144
12012
  #: includes/settings/wcj-settings-multicurrency-base-price.php:118
12013
- #: includes/settings/wcj-settings-multicurrency.php:290
12014
  msgid "Total Currencies"
12015
  msgstr ""
12016
 
@@ -12098,9 +12109,9 @@ msgid ""
12098
  msgstr ""
12099
 
12100
  #: includes/settings/wcj-settings-custom-css.php:48
12101
- #: includes/settings/wcj-settings-order-quantities.php:118
12102
- #: includes/settings/wcj-settings-order-quantities.php:176
12103
- #: includes/settings/wcj-settings-order-quantities.php:217
12104
  #: includes/settings/wcj-settings-sale-flash.php:66
12105
  msgid "This will add meta box to each product's edit page."
12106
  msgstr ""
@@ -13099,7 +13110,7 @@ msgstr ""
13099
 
13100
  #: includes/settings/wcj-settings-global-discount.php:201
13101
  #: includes/settings/wcj-settings-multicurrency-base-price.php:76
13102
- #: includes/settings/wcj-settings-multicurrency.php:257
13103
  #: includes/settings/wcj-settings-price-by-country.php:237
13104
  #: includes/settings/wcj-settings-price-by-user-role.php:111
13105
  #: includes/settings/wcj-settings-product-addons.php:258
@@ -13109,7 +13120,7 @@ msgstr ""
13109
 
13110
  #: includes/settings/wcj-settings-global-discount.php:202
13111
  #: includes/settings/wcj-settings-multicurrency-base-price.php:77
13112
- #: includes/settings/wcj-settings-multicurrency.php:258
13113
  #: includes/settings/wcj-settings-price-by-country.php:238
13114
  #: includes/settings/wcj-settings-price-by-user-role.php:112
13115
  #: includes/settings/wcj-settings-product-addons.php:259
@@ -13336,7 +13347,7 @@ msgid "Convert Product Prices in Admin Products List"
13336
  msgstr ""
13337
 
13338
  #: includes/settings/wcj-settings-multicurrency-base-price.php:68
13339
- #: includes/settings/wcj-settings-multicurrency.php:272
13340
  #: includes/settings/wcj-settings-price-by-country.php:265
13341
  #: includes/settings/wcj-settings-product-price-by-formula.php:117
13342
  msgid "Save Calculated Products Prices"
@@ -13616,87 +13627,97 @@ msgid ""
13616
  "disabled."
13617
  msgstr ""
13618
 
13619
- #: includes/settings/wcj-settings-multicurrency.php:248
 
 
 
 
 
 
 
 
 
 
13620
  msgid "Additional Price Filters"
13621
  msgstr ""
13622
 
13623
- #: includes/settings/wcj-settings-multicurrency.php:249
13624
  msgid ""
13625
  "Add additional price filters here. One per line. Leave blank if not sure."
13626
  msgstr ""
13627
 
13628
- #: includes/settings/wcj-settings-multicurrency.php:264
13629
  msgid "Save Prices on Exchange Update"
13630
  msgstr ""
13631
 
13632
- #: includes/settings/wcj-settings-multicurrency.php:266
13633
  msgid ""
13634
  "Save min and max prices on exchange rate update, via background processing."
13635
  msgstr ""
13636
 
13637
- #: includes/settings/wcj-settings-multicurrency.php:266
13638
  msgid ""
13639
  "All products with \"per product\" options registered related to the currency "
13640
  "will be affected."
13641
  msgstr ""
13642
 
13643
- #: includes/settings/wcj-settings-multicurrency.php:273
13644
  #: includes/settings/wcj-settings-price-by-country.php:266
13645
  #: includes/settings/wcj-settings-product-price-by-formula.php:118
13646
  msgid ""
13647
  "This may help if you are experiencing compatibility issues with other plugins."
13648
  msgstr ""
13649
 
13650
- #: includes/settings/wcj-settings-multicurrency.php:286
13651
  msgid ""
13652
  "One currency probably should be set to current (original) shop currency with "
13653
  "an exchange rate of 1."
13654
  msgstr ""
13655
 
13656
- #: includes/settings/wcj-settings-multicurrency.php:291
13657
  msgid ""
13658
  "Press Save changes after setting this option, so new settings fields will be "
13659
  "added."
13660
  msgstr ""
13661
 
13662
- #: includes/settings/wcj-settings-multicurrency.php:347
13663
  msgid "Default Currency"
13664
  msgstr ""
13665
 
13666
- #: includes/settings/wcj-settings-multicurrency.php:349
13667
  msgid "The default currency displayed on frontend."
13668
  msgstr ""
13669
 
13670
- #: includes/settings/wcj-settings-multicurrency.php:359
13671
  msgid ""
13672
  "The default currency will only be set if the current user hasn't selected it "
13673
  "yet."
13674
  msgstr ""
13675
 
13676
- #: includes/settings/wcj-settings-multicurrency.php:362
13677
  msgid "Force"
13678
  msgstr ""
13679
 
13680
- #: includes/settings/wcj-settings-multicurrency.php:367
13681
  msgid ""
13682
  "If enabled, the default currency will be fixed and users won't be able to "
13683
  "change it."
13684
  msgstr ""
13685
 
13686
- #: includes/settings/wcj-settings-multicurrency.php:377
13687
  msgid "Role Defaults"
13688
  msgstr ""
13689
 
13690
- #: includes/settings/wcj-settings-multicurrency.php:384
13691
  msgid "Roles"
13692
  msgstr ""
13693
 
13694
- #: includes/settings/wcj-settings-multicurrency.php:385
13695
  #: includes/settings/wcj-settings-wholesale-price.php:237
13696
  msgid "Save settings after you change this option. Leave blank to disable."
13697
  msgstr ""
13698
 
13699
- #: includes/settings/wcj-settings-multicurrency.php:408
13700
  msgid "No default currency"
13701
  msgstr ""
13702
 
@@ -14649,63 +14670,83 @@ msgid "Minimum Quantity Options"
14649
  msgstr ""
14650
 
14651
  #: includes/settings/wcj-settings-order-quantities.php:91
14652
- #: includes/settings/wcj-settings-order-quantities.php:149
14653
  msgid "Cart Total Quantity"
14654
  msgstr ""
14655
 
14656
  #: includes/settings/wcj-settings-order-quantities.php:92
14657
  #: includes/settings/wcj-settings-order-quantities.php:108
14658
- #: includes/settings/wcj-settings-order-quantities.php:150
14659
- #: includes/settings/wcj-settings-order-quantities.php:166
14660
  #: includes/settings/wcj-settings-shipping-by-order-qty.php:35
14661
  msgid "Set to zero to disable."
14662
  msgstr ""
14663
 
14664
  #: includes/settings/wcj-settings-order-quantities.php:99
14665
- #: includes/settings/wcj-settings-order-quantities.php:157
14666
  msgid "Message - Cart Total Quantity"
14667
  msgstr ""
14668
 
14669
  #: includes/settings/wcj-settings-order-quantities.php:107
14670
- #: includes/settings/wcj-settings-order-quantities.php:165
14671
  msgid "Per Item Quantity"
14672
  msgstr ""
14673
 
14674
  #: includes/settings/wcj-settings-order-quantities.php:116
14675
- #: includes/settings/wcj-settings-order-quantities.php:174
 
 
 
 
 
 
 
 
 
 
14676
  msgid "Per Item Quantity on Per Product Basis"
14677
  msgstr ""
14678
 
14679
- #: includes/settings/wcj-settings-order-quantities.php:125
14680
- #: includes/settings/wcj-settings-order-quantities.php:183
14681
  msgid "Message - Per Item Quantity"
14682
  msgstr ""
14683
 
14684
- #: includes/settings/wcj-settings-order-quantities.php:137
14685
  msgid "Maximum Quantity Options"
14686
  msgstr ""
14687
 
14688
- #: includes/settings/wcj-settings-order-quantities.php:195
 
 
 
 
 
 
 
 
 
 
14689
  msgid "Quantity Step Options"
14690
  msgstr ""
14691
 
14692
- #: includes/settings/wcj-settings-order-quantities.php:207
14693
  msgid "Step"
14694
  msgstr ""
14695
 
14696
- #: includes/settings/wcj-settings-order-quantities.php:224
14697
  msgid "Additional Validation"
14698
  msgstr ""
14699
 
14700
- #: includes/settings/wcj-settings-order-quantities.php:243
14701
  msgid "\"Single Item Cart\" Options"
14702
  msgstr ""
14703
 
14704
- #: includes/settings/wcj-settings-order-quantities.php:248
14705
  msgid "Enable \"Single Item Cart\" Mode"
14706
  msgstr ""
14707
 
14708
- #: includes/settings/wcj-settings-order-quantities.php:250
14709
  msgid ""
14710
  "When enabled, only one item will be allowed to be added to the cart (quantity "
14711
  "is not checked)."
45
  #: includes/classes/class-wcj-module.php:582
46
  #: includes/classes/class-wcj-module.php:782
47
  #: includes/settings/wcj-settings-price-by-country.php:250
48
+ msgid "Booster"
49
  msgstr ""
50
 
51
  #: includes/admin/class-wc-settings-jetpack.php:67
431
  msgid "Status"
432
  msgstr ""
433
 
434
+ #: includes/admin/class-wcj-welcome.php:43
435
+ #: includes/admin/class-wcj-welcome.php:44
436
  msgid "Welcome to Booster"
437
  msgstr ""
438
 
676
  msgid "Don't miss updates from us!"
677
  msgstr ""
678
 
679
+ #: includes/admin/wcj-welcome-screen-content.php:142
680
+ #, php-format
681
+ msgid "%s"
 
 
 
682
  msgstr ""
683
 
684
+ #: includes/admin/wcj-welcome-screen-content.php:147
685
  msgid "Contact Us"
686
  msgstr ""
687
 
688
+ #: includes/admin/wcj-welcome-screen-content.php:149
689
  msgid ""
690
  "Booster Plus customers get access to Premium Support and we respond within 24 "
691
  "business hours."
692
  msgstr ""
693
 
694
+ #: includes/admin/wcj-welcome-screen-content.php:150
695
  msgid "Booster Plus Premium Support"
696
  msgstr ""
697
 
698
+ #: includes/admin/wcj-welcome-screen-content.php:153
699
  msgid ""
700
  "Free users post on WordPress Plugin Support forum here. We check these "
701
  "threads twice every week Mon and Frid to respond."
702
  msgstr ""
703
 
704
+ #: includes/admin/wcj-welcome-screen-content.php:154
705
  msgid "Booster Free Plugin Support"
706
  msgstr ""
707
 
1066
  msgstr ""
1067
 
1068
  #: includes/class-wcj-admin-orders-list.php:327
1069
+ #: includes/class-wcj-product-by-country.php:181
1070
+ #: includes/class-wcj-product-by-country.php:215
1071
  msgid "All countries"
1072
  msgstr ""
1073
 
1818
  msgstr ""
1819
 
1820
  #: includes/class-wcj-custom-php.php:32
1821
+ #: includes/settings/wcj-settings-multicurrency.php:259
1822
  #: includes/settings/wcj-settings-offer-price.php:84
1823
  #, php-format
1824
  msgid "E.g.: %s"
2030
  msgstr ""
2031
 
2032
  #: includes/class-wcj-empty-cart-button.php:25
2033
+ #: includes/shortcodes/class-wcj-shortcodes-general.php:530
2034
  msgid "Empty Cart Button"
2035
  msgstr ""
2036
 
2667
  #: includes/settings/wcj-settings-coupon-by-user-role.php:60
2668
  #: includes/settings/wcj-settings-currency-per-product.php:41
2669
  #: includes/settings/wcj-settings-currency-per-product.php:48
2670
+ #: includes/settings/wcj-settings-order-quantities.php:248
2671
+ #: includes/settings/wcj-settings-order-quantities.php:275
2672
  #: includes/settings/wcj-settings-product-by-time.php:69
2673
  msgid "Message"
2674
  msgstr ""
2982
  "decimal quantities etc."
2983
  msgstr ""
2984
 
2985
+ #: includes/class-wcj-order-quantities.php:266
2986
+ #: includes/settings/wcj-settings-order-quantities.php:277
2987
  msgid ""
2988
  "Only one item can be added to the cart. Clear the cart or finish the order, "
2989
  "before adding another item to the cart."
2990
  msgstr ""
2991
 
2992
+ #: includes/class-wcj-order-quantities.php:438
2993
+ #: includes/settings/wcj-settings-order-quantities.php:168
2994
  msgid ""
2995
  "Maximum allowed order quantity is %max_cart_total_quantity%. Your current "
2996
  "order quantity is %cart_total_quantity%."
2997
  msgstr ""
2998
 
2999
+ #: includes/class-wcj-order-quantities.php:446
3000
  #: includes/settings/wcj-settings-order-quantities.php:102
3001
  msgid ""
3002
  "Minimum allowed order quantity is %min_cart_total_quantity%. Your current "
3003
  "order quantity is %cart_total_quantity%."
3004
  msgstr ""
3005
 
3006
+ #: includes/class-wcj-order-quantities.php:456
3007
+ #: includes/settings/wcj-settings-order-quantities.php:203
3008
  msgid ""
3009
  "Maximum allowed quantity for %product_title% is %max_per_item_quantity%. Your "
3010
  "current item quantity is %item_quantity%."
3011
  msgstr ""
3012
 
3013
+ #: includes/class-wcj-order-quantities.php:469
3014
+ #: includes/settings/wcj-settings-order-quantities.php:136
3015
  msgid ""
3016
  "Minimum allowed quantity for %product_title% is %min_per_item_quantity%. Your "
3017
  "current item quantity is %item_quantity%."
3018
  msgstr ""
3019
 
3020
+ #: includes/class-wcj-order-quantities.php:479
3021
+ #: includes/settings/wcj-settings-order-quantities.php:251
3022
  msgid ""
3023
  "Required step for %product_title% is %required_step%. Your current item "
3024
  "quantity is %item_quantity%."
3380
  msgstr ""
3381
 
3382
  #: includes/class-wcj-price-labels.php:41
3383
+ #: includes/class-wcj-product-by-country.php:190
3384
  #: includes/class-wcj-product-by-user-role.php:55
3385
  #: includes/class-wcj-product-info.php:235
3386
  #: includes/class-wcj-product-price-by-formula.php:71
3481
  #: includes/settings/wcj-settings-multicurrency.php:205
3482
  #: includes/settings/wcj-settings-multicurrency.php:214
3483
  #: includes/settings/wcj-settings-multicurrency.php:223
3484
+ #: includes/settings/wcj-settings-multicurrency.php:232
3485
  #: includes/settings/wcj-settings-multicurrency.php:274
3486
+ #: includes/settings/wcj-settings-multicurrency.php:283
3487
+ #: includes/settings/wcj-settings-multicurrency.php:375
3488
  #: includes/settings/wcj-settings-my-account.php:29
3489
  #: includes/settings/wcj-settings-my-account.php:87
3490
  #: includes/settings/wcj-settings-my-account.php:104
3503
  #: includes/settings/wcj-settings-order-quantities.php:42
3504
  #: includes/settings/wcj-settings-order-quantities.php:49
3505
  #: includes/settings/wcj-settings-order-quantities.php:117
3506
+ #: includes/settings/wcj-settings-order-quantities.php:125
3507
+ #: includes/settings/wcj-settings-order-quantities.php:183
3508
+ #: includes/settings/wcj-settings-order-quantities.php:192
3509
+ #: includes/settings/wcj-settings-order-quantities.php:233
3510
+ #: includes/settings/wcj-settings-order-quantities.php:242
3511
  #: includes/settings/wcj-settings-orders.php:32
3512
  #: includes/settings/wcj-settings-orders.php:60
3513
  #: includes/settings/wcj-settings-orders.php:80
4118
  msgstr ""
4119
 
4120
  #: includes/class-wcj-product-by-country.php:171
4121
+ #: includes/class-wcj-product-by-country.php:205
4122
+ msgid "Country List"
4123
  msgstr ""
4124
 
4125
  #: includes/class-wcj-product-by-country.php:172
4126
+ msgid ""
4127
+ "This option sets which countries will be added to the list in [wcj_selector "
4128
+ "selector_type=\"country\"] shortcode. Possible values: \"All countries\" or "
4129
+ "\"WooCommerce selling locations\"."
4130
  msgstr ""
4131
 
4132
+ #: includes/class-wcj-product-by-country.php:174
4133
+ #: includes/class-wcj-product-by-country.php:208
4134
+ #, php-format
4135
+ msgid ""
4136
+ "If \"WooCommerce selling locations\" option is selected, country list will be "
4137
+ "set by <a href=\"%s\">WooCommerce > Settings > General > Selling location(s)</"
4138
+ "a>."
4139
+ msgstr ""
4140
+
4141
+ #: includes/class-wcj-product-by-country.php:182
4142
+ #: includes/class-wcj-product-by-country.php:216
4143
+ msgid "WooCommerce selling locations"
4144
  msgstr ""
4145
 
4146
  #: includes/class-wcj-product-by-country.php:188
4147
+ msgid "Overwrite by Billing Country"
4148
  msgstr ""
4149
 
4150
  #: includes/class-wcj-product-by-country.php:189
4151
+ msgid "Tries to overwrite Country by User Billing Country on Checkout Page."
 
 
4152
  msgstr ""
4153
 
4154
+ #: includes/class-wcj-product-by-country.php:200
4155
+ msgid "Admin Country List Options"
 
 
 
 
4156
  msgstr ""
4157
 
4158
+ #: includes/class-wcj-product-by-country.php:206
4159
+ msgid ""
4160
+ "This option sets which countries will be added to list in product's edit "
4161
+ "page. Possible values: \"All countries\" or \"WooCommerce selling locations\"."
4162
  msgstr ""
4163
 
4164
  #: includes/class-wcj-product-by-date.php:29
5308
  msgstr ""
5309
 
5310
  #: includes/class-wcj-shipping-by-user-role.php:34
5311
+ #: includes/settings/wcj-settings-multicurrency.php:388
5312
  #: includes/settings/wcj-settings-order-min-amount.php:131
5313
  #: includes/settings/wcj-settings-price-by-user-role.php:151
5314
  #, php-format
5810
  msgstr ""
5811
 
5812
  #: includes/classes/class-wcj-shortcodes.php:135
5813
+ #: includes/shortcodes/class-wcj-shortcodes-general.php:530
5814
  #, php-format
5815
  msgid "\"%s\" module is not enabled!"
5816
  msgstr ""
8482
  #: includes/settings/wcj-settings-add-to-cart-button-visibility.php:36
8483
  #: includes/settings/wcj-settings-add-to-cart-button-visibility.php:62
8484
  #: includes/settings/wcj-settings-multicurrency-base-price.php:63
8485
+ #: includes/settings/wcj-settings-multicurrency.php:252
8486
  #: includes/settings/wcj-settings-order-min-amount.php:77
8487
  #: includes/settings/wcj-settings-price-by-country.php:232
8488
  #: includes/settings/wcj-settings-price-by-user-role.php:106
9146
  msgstr ""
9147
 
9148
  #: includes/settings/meta-box/wcj-settings-meta-box-order-quantities.php:52
9149
+ #: includes/settings/wcj-settings-order-quantities.php:150
9150
  msgid "Maximum Quantity"
9151
  msgstr ""
9152
 
9153
  #: includes/settings/meta-box/wcj-settings-meta-box-order-quantities.php:68
9154
+ #: includes/settings/wcj-settings-order-quantities.php:217
9155
  msgid "Quantity Step"
9156
  msgstr ""
9157
 
9568
  #: includes/settings/wcj-settings-my-account.php:194
9569
  #: includes/settings/wcj-settings-my-account.php:235
9570
  #: includes/settings/wcj-settings-order-quantities.php:85
9571
+ #: includes/settings/wcj-settings-order-quantities.php:151
9572
+ #: includes/settings/wcj-settings-order-quantities.php:218
9573
+ #: includes/settings/wcj-settings-order-quantities.php:266
9574
  #: includes/settings/wcj-settings-orders.php:150
9575
  #: includes/settings/wcj-settings-price-formats.php:37
9576
  #: includes/settings/wcj-settings-product-add-to-cart.php:273
9644
  #: includes/settings/wcj-settings-add-to-cart-button-visibility.php:90
9645
  #: includes/settings/wcj-settings-max-products-per-user.php:37
9646
  #: includes/settings/wcj-settings-max-products-per-user.php:42
9647
+ #: includes/settings/wcj-settings-order-quantities.php:232
9648
  #: includes/settings/wcj-settings-price-labels.php:22
9649
  #: includes/settings/wcj-settings-product-add-to-cart.php:39
9650
  #: includes/settings/wcj-settings-product-by-date.php:52
10164
  #: includes/settings/wcj-settings-admin-tools.php:108
10165
  #: includes/settings/wcj-settings-checkout-custom-fields.php:240
10166
  #: includes/settings/wcj-settings-checkout-custom-fields.php:249
10167
+ #: includes/settings/wcj-settings-order-quantities.php:225
10168
  msgid "Ignored if set to zero."
10169
  msgstr ""
10170
 
11903
  #: includes/settings/wcj-settings-currency-external-products.php:20
11904
  #: includes/settings/wcj-settings-currency-per-product.php:180
11905
  #: includes/settings/wcj-settings-multicurrency-base-price.php:142
11906
+ #: includes/settings/wcj-settings-multicurrency.php:324
11907
+ #: includes/settings/wcj-settings-multicurrency.php:362
11908
  #: includes/settings/wcj-settings-price-by-country.php:365
11909
  #: includes/settings/wcj-settings-price-formats.php:59
11910
  msgid "Currency"
12008
 
12009
  #: includes/settings/wcj-settings-currency-per-product.php:138
12010
  #: includes/settings/wcj-settings-multicurrency-base-price.php:113
12011
+ #: includes/settings/wcj-settings-multicurrency.php:293
12012
  msgid "Currencies Options"
12013
  msgstr ""
12014
 
12021
 
12022
  #: includes/settings/wcj-settings-currency-per-product.php:144
12023
  #: includes/settings/wcj-settings-multicurrency-base-price.php:118
12024
+ #: includes/settings/wcj-settings-multicurrency.php:299
12025
  msgid "Total Currencies"
12026
  msgstr ""
12027
 
12109
  msgstr ""
12110
 
12111
  #: includes/settings/wcj-settings-custom-css.php:48
12112
+ #: includes/settings/wcj-settings-order-quantities.php:126
12113
+ #: includes/settings/wcj-settings-order-quantities.php:193
12114
+ #: includes/settings/wcj-settings-order-quantities.php:234
12115
  #: includes/settings/wcj-settings-sale-flash.php:66
12116
  msgid "This will add meta box to each product's edit page."
12117
  msgstr ""
13110
 
13111
  #: includes/settings/wcj-settings-global-discount.php:201
13112
  #: includes/settings/wcj-settings-multicurrency-base-price.php:76
13113
+ #: includes/settings/wcj-settings-multicurrency.php:266
13114
  #: includes/settings/wcj-settings-price-by-country.php:237
13115
  #: includes/settings/wcj-settings-price-by-user-role.php:111
13116
  #: includes/settings/wcj-settings-product-addons.php:258
13120
 
13121
  #: includes/settings/wcj-settings-global-discount.php:202
13122
  #: includes/settings/wcj-settings-multicurrency-base-price.php:77
13123
+ #: includes/settings/wcj-settings-multicurrency.php:267
13124
  #: includes/settings/wcj-settings-price-by-country.php:238
13125
  #: includes/settings/wcj-settings-price-by-user-role.php:112
13126
  #: includes/settings/wcj-settings-product-addons.php:259
13347
  msgstr ""
13348
 
13349
  #: includes/settings/wcj-settings-multicurrency-base-price.php:68
13350
+ #: includes/settings/wcj-settings-multicurrency.php:281
13351
  #: includes/settings/wcj-settings-price-by-country.php:265
13352
  #: includes/settings/wcj-settings-product-price-by-formula.php:117
13353
  msgid "Save Calculated Products Prices"
13627
  "disabled."
13628
  msgstr ""
13629
 
13630
+ #: includes/settings/wcj-settings-multicurrency.php:230
13631
+ msgid "WooCommerce Attribute Swatches by Iconic Plugin"
13632
+ msgstr ""
13633
+
13634
+ #: includes/settings/wcj-settings-multicurrency.php:233
13635
+ msgid ""
13636
+ "Fixes cart item price issue if the <code>WooCommerce Attribute Swatches by "
13637
+ "Iconic</code> Plugin is activated"
13638
+ msgstr ""
13639
+
13640
+ #: includes/settings/wcj-settings-multicurrency.php:257
13641
  msgid "Additional Price Filters"
13642
  msgstr ""
13643
 
13644
+ #: includes/settings/wcj-settings-multicurrency.php:258
13645
  msgid ""
13646
  "Add additional price filters here. One per line. Leave blank if not sure."
13647
  msgstr ""
13648
 
13649
+ #: includes/settings/wcj-settings-multicurrency.php:273
13650
  msgid "Save Prices on Exchange Update"
13651
  msgstr ""
13652
 
13653
+ #: includes/settings/wcj-settings-multicurrency.php:275
13654
  msgid ""
13655
  "Save min and max prices on exchange rate update, via background processing."
13656
  msgstr ""
13657
 
13658
+ #: includes/settings/wcj-settings-multicurrency.php:275
13659
  msgid ""
13660
  "All products with \"per product\" options registered related to the currency "
13661
  "will be affected."
13662
  msgstr ""
13663
 
13664
+ #: includes/settings/wcj-settings-multicurrency.php:282
13665
  #: includes/settings/wcj-settings-price-by-country.php:266
13666
  #: includes/settings/wcj-settings-product-price-by-formula.php:118
13667
  msgid ""
13668
  "This may help if you are experiencing compatibility issues with other plugins."
13669
  msgstr ""
13670
 
13671
+ #: includes/settings/wcj-settings-multicurrency.php:295
13672
  msgid ""
13673
  "One currency probably should be set to current (original) shop currency with "
13674
  "an exchange rate of 1."
13675
  msgstr ""
13676
 
13677
+ #: includes/settings/wcj-settings-multicurrency.php:300
13678
  msgid ""
13679
  "Press Save changes after setting this option, so new settings fields will be "
13680
  "added."
13681
  msgstr ""
13682
 
13683
+ #: includes/settings/wcj-settings-multicurrency.php:356
13684
  msgid "Default Currency"
13685
  msgstr ""
13686
 
13687
+ #: includes/settings/wcj-settings-multicurrency.php:358
13688
  msgid "The default currency displayed on frontend."
13689
  msgstr ""
13690
 
13691
+ #: includes/settings/wcj-settings-multicurrency.php:368
13692
  msgid ""
13693
  "The default currency will only be set if the current user hasn't selected it "
13694
  "yet."
13695
  msgstr ""
13696
 
13697
+ #: includes/settings/wcj-settings-multicurrency.php:371
13698
  msgid "Force"
13699
  msgstr ""
13700
 
13701
+ #: includes/settings/wcj-settings-multicurrency.php:376
13702
  msgid ""
13703
  "If enabled, the default currency will be fixed and users won't be able to "
13704
  "change it."
13705
  msgstr ""
13706
 
13707
+ #: includes/settings/wcj-settings-multicurrency.php:386
13708
  msgid "Role Defaults"
13709
  msgstr ""
13710
 
13711
+ #: includes/settings/wcj-settings-multicurrency.php:393
13712
  msgid "Roles"
13713
  msgstr ""
13714
 
13715
+ #: includes/settings/wcj-settings-multicurrency.php:394
13716
  #: includes/settings/wcj-settings-wholesale-price.php:237
13717
  msgid "Save settings after you change this option. Leave blank to disable."
13718
  msgstr ""
13719
 
13720
+ #: includes/settings/wcj-settings-multicurrency.php:417
13721
  msgid "No default currency"
13722
  msgstr ""
13723
 
14670
  msgstr ""
14671
 
14672
  #: includes/settings/wcj-settings-order-quantities.php:91
14673
+ #: includes/settings/wcj-settings-order-quantities.php:157
14674
  msgid "Cart Total Quantity"
14675
  msgstr ""
14676
 
14677
  #: includes/settings/wcj-settings-order-quantities.php:92
14678
  #: includes/settings/wcj-settings-order-quantities.php:108
14679
+ #: includes/settings/wcj-settings-order-quantities.php:158
14680
+ #: includes/settings/wcj-settings-order-quantities.php:174
14681
  #: includes/settings/wcj-settings-shipping-by-order-qty.php:35
14682
  msgid "Set to zero to disable."
14683
  msgstr ""
14684
 
14685
  #: includes/settings/wcj-settings-order-quantities.php:99
14686
+ #: includes/settings/wcj-settings-order-quantities.php:165
14687
  msgid "Message - Cart Total Quantity"
14688
  msgstr ""
14689
 
14690
  #: includes/settings/wcj-settings-order-quantities.php:107
14691
+ #: includes/settings/wcj-settings-order-quantities.php:173
14692
  msgid "Per Item Quantity"
14693
  msgstr ""
14694
 
14695
  #: includes/settings/wcj-settings-order-quantities.php:116
14696
+ msgid "Add all quantities if quantity lower than the minimum quantity"
14697
+ msgstr ""
14698
+
14699
+ #: includes/settings/wcj-settings-order-quantities.php:118
14700
+ msgid ""
14701
+ "If you want allow product add to cart with remain quantities if product "
14702
+ "quantities less than minimum quantities"
14703
+ msgstr ""
14704
+
14705
+ #: includes/settings/wcj-settings-order-quantities.php:124
14706
+ #: includes/settings/wcj-settings-order-quantities.php:191
14707
  msgid "Per Item Quantity on Per Product Basis"
14708
  msgstr ""
14709
 
14710
+ #: includes/settings/wcj-settings-order-quantities.php:133
14711
+ #: includes/settings/wcj-settings-order-quantities.php:200
14712
  msgid "Message - Per Item Quantity"
14713
  msgstr ""
14714
 
14715
+ #: includes/settings/wcj-settings-order-quantities.php:145
14716
  msgid "Maximum Quantity Options"
14717
  msgstr ""
14718
 
14719
+ #: includes/settings/wcj-settings-order-quantities.php:182
14720
+ msgid "Check Product Quantity Forcefully"
14721
+ msgstr ""
14722
+
14723
+ #: includes/settings/wcj-settings-order-quantities.php:184
14724
+ msgid ""
14725
+ "Enable this option if you want to not allow user to product add to cart if "
14726
+ "user already reached the Max Quantity limit"
14727
+ msgstr ""
14728
+
14729
+ #: includes/settings/wcj-settings-order-quantities.php:212
14730
  msgid "Quantity Step Options"
14731
  msgstr ""
14732
 
14733
+ #: includes/settings/wcj-settings-order-quantities.php:224
14734
  msgid "Step"
14735
  msgstr ""
14736
 
14737
+ #: includes/settings/wcj-settings-order-quantities.php:241
14738
  msgid "Additional Validation"
14739
  msgstr ""
14740
 
14741
+ #: includes/settings/wcj-settings-order-quantities.php:260
14742
  msgid "\"Single Item Cart\" Options"
14743
  msgstr ""
14744
 
14745
+ #: includes/settings/wcj-settings-order-quantities.php:265
14746
  msgid "Enable \"Single Item Cart\" Mode"
14747
  msgstr ""
14748
 
14749
+ #: includes/settings/wcj-settings-order-quantities.php:267
14750
  msgid ""
14751
  "When enabled, only one item will be allowed to be added to the cart (quantity "
14752
  "is not checked)."
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: anbinder, karzin, pluggabl
3
  Tags: woocommerce customization, woocommerce bundle, woocommerce product addon, woocommerce integration, ecommerce plugin
4
  Requires at least: 4.4
5
- Tested up to: 5.7.2
6
  Requires PHP: 5.6
7
- Stable tag: 5.4.2
8
  License: GNU General Public License v3.0
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -228,6 +228,13 @@ To unlock all Booster for WooCommerce features, please install additional [Boost
228
  **PDF Invoicing & Packing Slips**
229
 
230
  * *PDF Invoicing* - Invoices, Proforma Invoices (Plus), Credit Notes (Plus), Paid Stamp (Plus) and Packing Slips (Plus).
 
 
 
 
 
 
 
231
 
232
  **Emails & Misc.**
233
 
@@ -257,6 +264,19 @@ To unlock all Booster for WooCommerce features, please install additional [Boost
257
  * For support please visit the [Plugin Support Forum](https://wordpress.org/support/plugin/woocommerce-jetpack/).
258
 
259
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
260
  = 5.4.2 24/06/2021 =
261
  * Fix - CART & CHECKOUT - Checkout Custom Fields - Fixed duplicate meta key issue.
262
  * Fix - SHIPPING & ORDERS - Order Numbers - Fixed hashid dependency issue.
2
  Contributors: anbinder, karzin, pluggabl
3
  Tags: woocommerce customization, woocommerce bundle, woocommerce product addon, woocommerce integration, ecommerce plugin
4
  Requires at least: 4.4
5
+ Tested up to: 5.8
6
  Requires PHP: 5.6
7
+ Stable tag: 5.4.3
8
  License: GNU General Public License v3.0
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
228
  **PDF Invoicing & Packing Slips**
229
 
230
  * *PDF Invoicing* - Invoices, Proforma Invoices (Plus), Credit Notes (Plus), Paid Stamp (Plus) and Packing Slips (Plus).
231
+ * *Paid Stamp (Plus)*
232
+ * *Display product image on pdf (Plus)*
233
+ * *Display product addons on pdf (Plus)*
234
+ * *Display product input fields on pdf (Plus)*
235
+ * *Display checkout custom fields on pdf (Plus)*
236
+ * *Display WooCommerce order’s meta on pdf (Plus)*
237
+ * *Display WooCommerce subscription order details on pdf (Plus)*
238
 
239
  **Emails & Misc.**
240
 
264
  * For support please visit the [Plugin Support Forum](https://wordpress.org/support/plugin/woocommerce-jetpack/).
265
 
266
  == Changelog ==
267
+
268
+ = 5.4.3 28/07/2021 =
269
+ * Fix - SHIPPING & ORDERS- Order Quantities - Fixed Steps issue on product detail page.
270
+ * Fix - PRODUCTS - Product Addons - Fixed issue when "Enable AJAX on Single Product Page" option, Prices of Related products are also change while changing varition of variable product.
271
+ * Fix - CART & CHECKOUT - Checkout Custom Fields - Fixed meta key issue for input type select.
272
+ * Fix - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Fixed Compatibility issue with WooCommerce Attribute Swatches by Iconic Plugin
273
+ * Fix - Fixed error WP_Scripts::localize was called incorrectly. The $l10n parameter must be an array
274
+ * Feature - SHIPPING & ORDERS - Order Quantities - Show notice while add to cart, if the Maximum order quantity limit reached.
275
+ * Feature - SHIPPING & ORDERS - Order Quantities - Allow any quantity if the product is lower than the minimum quantity.
276
+ * Feature - PRODUCTS - Product Visibility by Country - Added options to choose All countries or WooCommerce Selling Locations for For [wcj_selector selector_type="country"]
277
+ * WooCommerce 5.5.2 tested
278
+ * Wordpress 5.8 tested
279
+
280
  = 5.4.2 24/06/2021 =
281
  * Fix - CART & CHECKOUT - Checkout Custom Fields - Fixed duplicate meta key issue.
282
  * Fix - SHIPPING & ORDERS - Order Numbers - Fixed hashid dependency issue.
woocommerce-jetpack.php CHANGED
@@ -3,13 +3,13 @@
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: 5.4.2
7
  Author: Pluggabl LLC
8
  Author URI: https://booster.io
9
  Text Domain: woocommerce-jetpack
10
  Domain Path: /langs
11
  Copyright: © 2020 Pluggabl LLC.
12
- WC tested up to: 5.4.1
13
  License: GNU General Public License v3.0
14
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
15
  */
@@ -57,7 +57,7 @@ final class WC_Jetpack {
57
  * @var string
58
  * @since 2.4.7
59
  */
60
- public $version = '5.4.2';
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: 5.4.3
7
  Author: Pluggabl LLC
8
  Author URI: https://booster.io
9
  Text Domain: woocommerce-jetpack
10
  Domain Path: /langs
11
  Copyright: © 2020 Pluggabl LLC.
12
+ WC tested up to: 5.5.2
13
  License: GNU General Public License v3.0
14
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
15
  */
57
  * @var string
58
  * @since 2.4.7
59
  */
60
+ public $version = '5.4.3';
61
 
62
  /**
63
  * @var WC_Jetpack The single instance of the class