Version Description
27/10/2022 =
- FIXED - PAYMENT GATEWAYS - Gateways Currency Converter - Fixed the issue of currency on the cart page.
- FIXED - CART & CHECKOUT - Checkout Files Upload - Fixed Security vulnerability for ShopManager + Arbitrary File Download.
- FIXED - CART & CHECKOUT - Checkout Files Upload - Fixed Security vulnerability for Checkout Files Deletion.
- FIXED - PRODUCTS - Product Input Fields - Fixed Security vulnerability for ShopManager + Arbitrary File Download.
- FIXED - PRODUCTS - Products per Page - Fixed "Template - Form" default text translators issue.
- FIXED - EMAILS & MISC. - Old Slugs - Fixed SQL error - syntax near 'WHERE meta_key
Download this release
Release Info
Developer | ronyp |
Plugin | Booster for WooCommerce |
Version | 5.6.7 |
Comparing to | |
See all releases |
Code changes from version 5.6.6 to 5.6.7
- includes/admin/class-wc-settings-jetpack.php +9 -15
- includes/admin/class-wcj-tools.php +5 -4
- includes/admin/wcj-welcome-screen-content.php +3 -5
- includes/class-wcj-admin-orders-list.php +27 -22
- includes/class-wcj-admin-tools.php +8 -7
- includes/class-wcj-checkout-custom-fields.php +3 -6
- includes/class-wcj-checkout-fees.php +17 -11
- includes/class-wcj-checkout-files-upload.php +45 -8
- includes/class-wcj-custom-php.php +4 -7
- includes/class-wcj-debug-tools.php +12 -8
- includes/class-wcj-empty-cart-button.php +3 -6
- includes/class-wcj-eu-vat-number.php +7 -10
- includes/class-wcj-export-import.php +6 -6
- includes/class-wcj-general.php +29 -15
- includes/class-wcj-global-discount.php +4 -8
- includes/class-wcj-my-account.php +9 -13
- includes/class-wcj-offer-price.php +5 -5
- includes/class-wcj-old-slugs.php +9 -10
- includes/class-wcj-order-numbers.php +6 -8
- includes/class-wcj-order-quantities.php +8 -11
- includes/class-wcj-orders.php +6 -9
- includes/class-wcj-payment-gateways-currency.php +15 -13
- includes/class-wcj-payment-gateways-min-max.php +3 -3
- includes/class-wcj-payment-gateways.php +5 -5
- includes/class-wcj-pdf-invoicing.php +11 -12
- includes/class-wcj-price-by-country.php +3 -6
- includes/class-wcj-price-by-user-role.php +10 -9
- includes/class-wcj-price-labels.php +4 -4
- includes/class-wcj-product-addons.php +1 -1
- includes/class-wcj-product-bookings.php +1 -1
- includes/class-wcj-product-input-fields.php +21 -11
- includes/class-wcj-product-open-pricing.php +1 -1
- includes/class-wcj-product-price-by-formula.php +1 -1
- includes/class-wcj-products-per-page.php +5 -7
- includes/class-wcj-sorting.php +8 -8
- includes/class-wcj-tax-display.php +3 -6
- includes/class-wcj-url-coupons.php +8 -7
- includes/classes/class-wcj-module.php +14 -9
- includes/core/class-wcj-admin.php +4 -7
- includes/functions/wcj-functions-admin.php +6 -6
- includes/functions/wcj-functions-html.php +3 -2
- includes/functions/wcj-functions-price-currency.php +3 -3
- includes/input-fields/class-wcj-product-input-fields-core.php +10 -3
- includes/js/wcj-admin.js +3 -2
- includes/mini-plugin/wcj-mini-plugin.php +23 -23
- includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php +18 -14
- includes/price-by-country/class-wcj-price-by-country-core.php +1 -1
- includes/reports/class-wcj-reports-customers.php +21 -8
- includes/reports/class-wcj-reports-monthly-sales.php +11 -11
- includes/reports/class-wcj-reports-product-sales-daily.php +7 -12
- includes/settings/wcj-settings-price-by-country.php +10 -2
- includes/settings/wcj-settings-products-per-page.php +2 -2
- includes/shortcodes/class-wcj-general-shortcodes.php +3 -3
- includes/shortcodes/class-wcj-order-items-shortcodes.php +3 -7
- includes/tools/class-wcj-order-statuses-tool.php +45 -22
- langs/woocommerce-jetpack.pot +351 -345
- readme.txt +20 -3
- version-details.json +4 -4
- woocommerce-jetpack.php +3 -3
includes/admin/class-wc-settings-jetpack.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 1.0.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/admin
|
@@ -192,14 +192,11 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
192 |
/**
|
193 |
* Output cats
|
194 |
*
|
195 |
-
* @version 5.6.
|
196 |
*/
|
197 |
public function output_cats_submenu() {
|
198 |
global $current_section;
|
199 |
-
$wpnonce
|
200 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
201 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ), 'woocommerce-settings' ) : false;
|
202 |
-
}
|
203 |
$current_cat = $wpnonce && isset( $_REQUEST['wcj-cat'] ) && ! empty( $_REQUEST['wcj-cat'] ) ? sanitize_title( wp_unslash( $_REQUEST['wcj-cat'] ) ) : 'dashboard';
|
204 |
if ( empty( $this->cats ) ) {
|
205 |
return;}
|
@@ -212,7 +209,7 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
212 |
}
|
213 |
echo wp_kses_post(
|
214 |
'<li class="wcj-header-item ' . ( $current_cat === $id ? 'active' : '' ) . '"><a
|
215 |
-
href="' . admin_url( 'admin.php?page=wc-settings&tab=' . $this->id . '&wcj-cat=' . sanitize_title( $id ) . '' . $dashboard_section ) . '"
|
216 |
class="' . ( $current_cat === $id ? 'current' : '' ) . '">' . $label_info['label'] . '</a> ' .
|
217 |
( end( $array_keys ) === $id ? '' : '' ) . ' </li>'
|
218 |
);
|
@@ -223,17 +220,14 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
223 |
/**
|
224 |
* Output sections (modules) sub menu.
|
225 |
*
|
226 |
-
* @version 5.6.
|
227 |
* @todo (maybe) for case insensitive sorting: `array_multisort( array_map( 'strtolower', $menu ), $menu );` instead of `asort( $menu );` (see http://php.net/manual/en/function.asort.php)
|
228 |
*/
|
229 |
public function output_sections_submenu() {
|
230 |
global $current_section;
|
231 |
-
$sections
|
232 |
-
$wpnonce
|
233 |
-
|
234 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ), 'woocommerce-settings' ) : true;
|
235 |
-
}
|
236 |
-
$current_cat = $wpnonce && empty( $_REQUEST['wcj-cat'] ) ? 'dashboard' : sanitize_title( wp_unslash( $_REQUEST['wcj-cat'] ) );
|
237 |
if ( 'dashboard' === $current_cat ) {
|
238 |
|
239 |
// Counting modules.
|
@@ -289,7 +283,7 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
289 |
$menu_links = array();
|
290 |
|
291 |
foreach ( $menu as $id => $label ) {
|
292 |
-
$url = admin_url( 'admin.php?page=wc-settings&tab=' . $this->id . '&wcj-cat=' . $current_cat . '§ion=' . sanitize_title( $id ) );
|
293 |
$menu_links[] = '<li class="wcj-sidebar-item ' . ( $current_section === $id ? 'active' : '' ) . '"><a href="' . $url . '" class="' . ( $current_section === $id ? 'current' : '' ) . '">' . $label . '</a></li>';
|
294 |
}
|
295 |
echo wp_kses_post( implode( ' ', $menu_links ) . '<br class="clear" />' );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 1.0.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/admin
|
192 |
/**
|
193 |
* Output cats
|
194 |
*
|
195 |
+
* @version 5.6.7
|
196 |
*/
|
197 |
public function output_cats_submenu() {
|
198 |
global $current_section;
|
199 |
+
$wpnonce = isset( $_REQUEST['wcj-cat-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj-cat-nonce'] ), 'wcj-cat-nonce' ) : false;
|
|
|
|
|
|
|
200 |
$current_cat = $wpnonce && isset( $_REQUEST['wcj-cat'] ) && ! empty( $_REQUEST['wcj-cat'] ) ? sanitize_title( wp_unslash( $_REQUEST['wcj-cat'] ) ) : 'dashboard';
|
201 |
if ( empty( $this->cats ) ) {
|
202 |
return;}
|
209 |
}
|
210 |
echo wp_kses_post(
|
211 |
'<li class="wcj-header-item ' . ( $current_cat === $id ? 'active' : '' ) . '"><a
|
212 |
+
href="' . admin_url( 'admin.php?page=wc-settings&tab=' . $this->id . '&wcj-cat=' . sanitize_title( $id ) . '' . $dashboard_section ) . '&wcj-cat-nonce=' . wp_create_nonce( 'wcj-cat-nonce' ) . '"
|
213 |
class="' . ( $current_cat === $id ? 'current' : '' ) . '">' . $label_info['label'] . '</a> ' .
|
214 |
( end( $array_keys ) === $id ? '' : '' ) . ' </li>'
|
215 |
);
|
220 |
/**
|
221 |
* Output sections (modules) sub menu.
|
222 |
*
|
223 |
+
* @version 5.6.7
|
224 |
* @todo (maybe) for case insensitive sorting: `array_multisort( array_map( 'strtolower', $menu ), $menu );` instead of `asort( $menu );` (see http://php.net/manual/en/function.asort.php)
|
225 |
*/
|
226 |
public function output_sections_submenu() {
|
227 |
global $current_section;
|
228 |
+
$sections = $this->get_sections();
|
229 |
+
$wpnonce = isset( $_REQUEST['wcj-cat-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj-cat-nonce'] ), 'wcj-cat-nonce' ) : false;
|
230 |
+
$current_cat = ! $wpnonce || empty( $_REQUEST['wcj-cat'] ) ? 'dashboard' : sanitize_title( wp_unslash( $_REQUEST['wcj-cat'] ) );
|
|
|
|
|
|
|
231 |
if ( 'dashboard' === $current_cat ) {
|
232 |
|
233 |
// Counting modules.
|
283 |
$menu_links = array();
|
284 |
|
285 |
foreach ( $menu as $id => $label ) {
|
286 |
+
$url = admin_url( 'admin.php?page=wc-settings&tab=' . $this->id . '&wcj-cat=' . $current_cat . '§ion=' . sanitize_title( $id ) . '&wcj-cat-nonce=' . wp_create_nonce( 'wcj-cat-nonce' ) );
|
287 |
$menu_links[] = '<li class="wcj-sidebar-item ' . ( $current_section === $id ? 'active' : '' ) . '"><a href="' . $url . '" class="' . ( $current_section === $id ? 'current' : '' ) . '">' . $label . '</a></li>';
|
288 |
}
|
289 |
echo wp_kses_post( implode( ' ', $menu_links ) . '<br class="clear" />' );
|
includes/admin/class-wcj-tools.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce Tools
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/admin
|
8 |
*/
|
@@ -68,7 +68,7 @@ if ( ! class_exists( 'WCJ_Tools' ) ) :
|
|
68 |
/**
|
69 |
* Create_tools_page.
|
70 |
*
|
71 |
-
* @version 5.6.
|
72 |
*/
|
73 |
public function create_tools_page() {
|
74 |
|
@@ -93,8 +93,9 @@ if ( ! class_exists( 'WCJ_Tools' ) ) :
|
|
93 |
$html .= '<a href="' . esc_url(
|
94 |
add_query_arg(
|
95 |
array(
|
96 |
-
'page'
|
97 |
-
'tab'
|
|
|
98 |
),
|
99 |
get_admin_url() . 'admin.php'
|
100 |
)
|
2 |
/**
|
3 |
* Booster for WooCommerce Tools
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/admin
|
8 |
*/
|
68 |
/**
|
69 |
* Create_tools_page.
|
70 |
*
|
71 |
+
* @version 5.6.7
|
72 |
*/
|
73 |
public function create_tools_page() {
|
74 |
|
93 |
$html .= '<a href="' . esc_url(
|
94 |
add_query_arg(
|
95 |
array(
|
96 |
+
'page' => 'wcj-tools',
|
97 |
+
'tab' => $tab['id'],
|
98 |
+
'wcj_tools_nonce' => wp_create_nonce( 'wcj_tools' ),
|
99 |
),
|
100 |
get_admin_url() . 'admin.php'
|
101 |
)
|
includes/admin/wcj-welcome-screen-content.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Welcome Screen Content
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/admin
|
8 |
*/
|
@@ -137,12 +137,10 @@
|
|
137 |
<form method="post" name="subscribe-email-form">
|
138 |
<input class="form-control user_email" type="email" required="true" name="user_email" placeholder="Enter your email">
|
139 |
<input class="subscribe-email-btn" type="button" name="submit_email_to_klaviyo" value="Submit">
|
|
|
140 |
</form>
|
141 |
<?php
|
142 |
-
$wpnonce =
|
143 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
144 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
145 |
-
}
|
146 |
if ( $wpnonce && isset( $_REQUEST['msg'] ) ) {
|
147 |
$subscribe_message = '';
|
148 |
$subscribe_message_id = sanitize_text_field( wp_unslash( $_REQUEST['msg'] ) );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Welcome Screen Content
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/admin
|
8 |
*/
|
137 |
<form method="post" name="subscribe-email-form">
|
138 |
<input class="form-control user_email" type="email" required="true" name="user_email" placeholder="Enter your email">
|
139 |
<input class="subscribe-email-btn" type="button" name="submit_email_to_klaviyo" value="Submit">
|
140 |
+
<?php wp_nonce_field( 'subscribe-email-nonce', 'subscribe-email-nonce' ); ?>
|
141 |
</form>
|
142 |
<?php
|
143 |
+
$wpnonce = isset( $_REQUEST['subscribe-email-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['subscribe-email-nonce'] ), 'subscribe-email-nonce' ) : false;
|
|
|
|
|
|
|
144 |
if ( $wpnonce && isset( $_REQUEST['msg'] ) ) {
|
145 |
$subscribe_message = '';
|
146 |
$subscribe_message_id = sanitize_text_field( wp_unslash( $_REQUEST['msg'] ) );
|
includes/class-wcj-admin-orders-list.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Admin Orders List
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -200,7 +200,7 @@ if ( ! class_exists( 'WCJ_Admin_Orders_List' ) ) :
|
|
200 |
/**
|
201 |
* Add_shop_order_multiple_statuses_not_completed_link.
|
202 |
*
|
203 |
-
* @version 5.
|
204 |
* @since 2.5.7
|
205 |
* @param string $views defines the views.
|
206 |
*/
|
@@ -214,25 +214,33 @@ if ( ! class_exists( 'WCJ_Admin_Orders_List' ) ) :
|
|
214 |
$all_not_completed_statuses = array_keys( $all_not_completed_statuses );
|
215 |
$all_not_completed_statuses_param = rawurlencode( implode( ',', $all_not_completed_statuses ) );
|
216 |
$class = ( isset( $wp_query->query['post_status'] ) && is_array( $wp_query->query['post_status'] ) && $all_not_completed_statuses === $wp_query->query['post_status'] ) ? 'current' : '';
|
217 |
-
$query_string =
|
218 |
-
$query_string =
|
219 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
return $views;
|
221 |
}
|
222 |
|
223 |
/**
|
224 |
* Filter_shop_order_multiple_statuses_not_completed_link.
|
225 |
*
|
226 |
-
* @version 5.6.
|
227 |
* @since 2.5.7
|
228 |
* @param string $query defines the query.
|
229 |
*/
|
230 |
public function filter_shop_order_multiple_statuses_not_completed_link( $query ) {
|
231 |
if ( isset( $_SERVER['REQUEST_URI'] ) && false !== strpos( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), '/wp-admin/edit.php' ) && isset( $_GET['post_type'] ) && 'shop_order' === $_GET['post_type'] ) {
|
232 |
if ( wcj_current_user_can( 'edit_others_pages' ) ) {
|
233 |
-
$wpnonce =
|
234 |
if ( function_exists( 'wp_verify_nonce' ) ) {
|
235 |
-
$wpnonce = isset( $_REQUEST['
|
236 |
}
|
237 |
if ( $wpnonce && isset( $_GET['post_status'] ) && false !== strpos( sanitize_text_field( wp_unslash( $_GET['post_status'] ) ), ',' ) ) {
|
238 |
$post_statuses = explode( ',', sanitize_text_field( wp_unslash( $_GET['post_status'] ) ) );
|
@@ -246,15 +254,12 @@ if ( ! class_exists( 'WCJ_Admin_Orders_List' ) ) :
|
|
246 |
/**
|
247 |
* Multiple_shop_order_statuses.
|
248 |
*
|
249 |
-
* @version 5.6.
|
250 |
* @since 2.5.7
|
251 |
* @param string $type defines the type.
|
252 |
*/
|
253 |
public function multiple_shop_order_statuses( $type ) {
|
254 |
-
$wpnonce
|
255 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
256 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ), 'woocommerce-settings' ) : true;
|
257 |
-
}
|
258 |
$checked_post_statuses = $wpnonce && isset( $_GET['wcj_admin_filter_statuses'] ) ? array_map( 'sanitize_text_field', wp_unslash( $_GET['wcj_admin_filter_statuses'] ) ) : array();
|
259 |
$html = '';
|
260 |
$html .= ( 'checkboxes' === $type ) ?
|
@@ -274,6 +279,7 @@ if ( ! class_exists( 'WCJ_Admin_Orders_List' ) ) :
|
|
274 |
$html .= ( 'checkboxes' === $type ) ?
|
275 |
'</span>' :
|
276 |
'</select>';
|
|
|
277 |
return $html;
|
278 |
}
|
279 |
|
@@ -294,21 +300,20 @@ if ( ! class_exists( 'WCJ_Admin_Orders_List' ) ) :
|
|
294 |
/**
|
295 |
* Filter_shop_order_multiple_statuses.
|
296 |
*
|
297 |
-
* @version 5.6.
|
298 |
* @since 2.5.7
|
299 |
* @param string $query defines the query.
|
300 |
*/
|
301 |
public function filter_shop_order_multiple_statuses( $query ) {
|
302 |
if ( isset( $_SERVER['REQUEST_URI'] ) && ( false !== strpos( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), '/wp-admin/edit.php' ) && isset( $_GET['post_type'] ) && 'shop_order' === $_GET['post_type'] ) ) {
|
303 |
if ( wcj_current_user_can( 'edit_others_pages' ) ) {
|
304 |
-
$
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
$query->query_vars['post_status'] = $post_statuses;
|
312 |
}
|
313 |
}
|
314 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Admin Orders List
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
200 |
/**
|
201 |
* Add_shop_order_multiple_statuses_not_completed_link.
|
202 |
*
|
203 |
+
* @version 5.6.7
|
204 |
* @since 2.5.7
|
205 |
* @param string $views defines the views.
|
206 |
*/
|
214 |
$all_not_completed_statuses = array_keys( $all_not_completed_statuses );
|
215 |
$all_not_completed_statuses_param = rawurlencode( implode( ',', $all_not_completed_statuses ) );
|
216 |
$class = ( isset( $wp_query->query['post_status'] ) && is_array( $wp_query->query['post_status'] ) && $all_not_completed_statuses === $wp_query->query['post_status'] ) ? 'current' : '';
|
217 |
+
$query_string = esc_url_raw( remove_query_arg( array( 'post_status', 'wcj_admin_filter_statuses', 'multiple_statuses_not_completed_link_nonce' ) ) );
|
218 |
+
$query_string = esc_url_raw(
|
219 |
+
add_query_arg(
|
220 |
+
array(
|
221 |
+
'post_status' => $all_not_completed_statuses_param,
|
222 |
+
'multiple_statuses_not_completed_link_nonce' => wp_create_nonce( 'multiple_statuses_not_completed_link_nonce' ),
|
223 |
+
),
|
224 |
+
$query_string
|
225 |
+
)
|
226 |
+
);
|
227 |
+
$views['wcj_statuses_not_completed'] = '<a href="' . esc_url_raw( $query_string ) . '" class="' . esc_attr( $class ) . '">' . __( 'Not Completed', 'woocommerce-jetpack' ) . '</a>';
|
228 |
return $views;
|
229 |
}
|
230 |
|
231 |
/**
|
232 |
* Filter_shop_order_multiple_statuses_not_completed_link.
|
233 |
*
|
234 |
+
* @version 5.6.7
|
235 |
* @since 2.5.7
|
236 |
* @param string $query defines the query.
|
237 |
*/
|
238 |
public function filter_shop_order_multiple_statuses_not_completed_link( $query ) {
|
239 |
if ( isset( $_SERVER['REQUEST_URI'] ) && false !== strpos( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), '/wp-admin/edit.php' ) && isset( $_GET['post_type'] ) && 'shop_order' === $_GET['post_type'] ) {
|
240 |
if ( wcj_current_user_can( 'edit_others_pages' ) ) {
|
241 |
+
$wpnonce = false;
|
242 |
if ( function_exists( 'wp_verify_nonce' ) ) {
|
243 |
+
$wpnonce = isset( $_REQUEST['multiple_statuses_not_completed_link_nonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['multiple_statuses_not_completed_link_nonce'] ) ? $_REQUEST['multiple_statuses_not_completed_link_nonce'] : '' ), 'multiple_statuses_not_completed_link_nonce' ) : false;
|
244 |
}
|
245 |
if ( $wpnonce && isset( $_GET['post_status'] ) && false !== strpos( sanitize_text_field( wp_unslash( $_GET['post_status'] ) ), ',' ) ) {
|
246 |
$post_statuses = explode( ',', sanitize_text_field( wp_unslash( $_GET['post_status'] ) ) );
|
254 |
/**
|
255 |
* Multiple_shop_order_statuses.
|
256 |
*
|
257 |
+
* @version 5.6.7
|
258 |
* @since 2.5.7
|
259 |
* @param string $type defines the type.
|
260 |
*/
|
261 |
public function multiple_shop_order_statuses( $type ) {
|
262 |
+
$wpnonce = isset( $_REQUEST['wcj_admin_filter_statuses_nonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['wcj_admin_filter_statuses_nonce'] ) ? $_REQUEST['wcj_admin_filter_statuses_nonce'] : '' ), 'wcj_admin_filter_statuses_nonce' ) : false;
|
|
|
|
|
|
|
263 |
$checked_post_statuses = $wpnonce && isset( $_GET['wcj_admin_filter_statuses'] ) ? array_map( 'sanitize_text_field', wp_unslash( $_GET['wcj_admin_filter_statuses'] ) ) : array();
|
264 |
$html = '';
|
265 |
$html .= ( 'checkboxes' === $type ) ?
|
279 |
$html .= ( 'checkboxes' === $type ) ?
|
280 |
'</span>' :
|
281 |
'</select>';
|
282 |
+
$html .= wp_kses_post( wp_nonce_field( 'wcj_admin_filter_statuses_nonce', 'wcj_admin_filter_statuses_nonce' ) );
|
283 |
return $html;
|
284 |
}
|
285 |
|
300 |
/**
|
301 |
* Filter_shop_order_multiple_statuses.
|
302 |
*
|
303 |
+
* @version 5.6.7
|
304 |
* @since 2.5.7
|
305 |
* @param string $query defines the query.
|
306 |
*/
|
307 |
public function filter_shop_order_multiple_statuses( $query ) {
|
308 |
if ( isset( $_SERVER['REQUEST_URI'] ) && ( false !== strpos( sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ), '/wp-admin/edit.php' ) && isset( $_GET['post_type'] ) && 'shop_order' === $_GET['post_type'] ) ) {
|
309 |
if ( wcj_current_user_can( 'edit_others_pages' ) ) {
|
310 |
+
if ( isset( $_GET['wcj_admin_filter_statuses'] ) ) {
|
311 |
+
$wpnonce = isset( $_REQUEST['wcj_admin_filter_statuses_nonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['wcj_admin_filter_statuses_nonce'] ) ? $_REQUEST['wcj_admin_filter_statuses_nonce'] : '' ), 'wcj_admin_filter_statuses_nonce' ) : false;
|
312 |
+
if ( $wpnonce ) {
|
313 |
+
$post_statuses = array_map( 'sanitize_text_field', wp_unslash( $_GET['wcj_admin_filter_statuses'] ) );
|
314 |
+
$query->query['post_status'] = $post_statuses;
|
315 |
+
$query->query_vars['post_status'] = $post_statuses;
|
316 |
+
}
|
|
|
317 |
}
|
318 |
}
|
319 |
}
|
includes/class-wcj-admin-tools.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Admin Tools
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -277,11 +277,16 @@ if ( ! class_exists( 'WCJ_Admin_Tools' ) ) :
|
|
277 |
/**
|
278 |
* Get_products_atts.
|
279 |
*
|
280 |
-
* @version
|
281 |
* @since 2.3.9
|
282 |
* @todo [dev] rewrite; add module link;
|
283 |
*/
|
284 |
public function get_products_atts() {
|
|
|
|
|
|
|
|
|
|
|
285 |
|
286 |
$total_products = 0;
|
287 |
|
@@ -330,11 +335,7 @@ if ( ! class_exists( 'WCJ_Admin_Tools' ) ) :
|
|
330 |
}
|
331 |
|
332 |
$table_data = array();
|
333 |
-
$
|
334 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
335 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
336 |
-
}
|
337 |
-
if ( isset( $_GET['wcj_attribute'] ) && '' !== $_GET['wcj_attribute'] && $wpnonce ) {
|
338 |
$table_data[] = array(
|
339 |
__( 'Product', 'woocommerce-jetpack' ),
|
340 |
__( 'Category', 'woocommerce-jetpack' ),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Admin Tools
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
277 |
/**
|
278 |
* Get_products_atts.
|
279 |
*
|
280 |
+
* @version 5.6.7
|
281 |
* @since 2.3.9
|
282 |
* @todo [dev] rewrite; add module link;
|
283 |
*/
|
284 |
public function get_products_atts() {
|
285 |
+
$wcj_tools_nonce = isset( $_GET['wcj_tools_nonce'] ) ? sanitize_key( wp_unslash( $_GET['wcj_tools_nonce'] ) ) : '';
|
286 |
+
if ( ! wp_verify_nonce( $wcj_tools_nonce, 'wcj_tools' ) ) {
|
287 |
+
wp_safe_redirect( admin_url( 'admin.php?page=wcj-tools' ) );
|
288 |
+
exit;
|
289 |
+
}
|
290 |
|
291 |
$total_products = 0;
|
292 |
|
335 |
}
|
336 |
|
337 |
$table_data = array();
|
338 |
+
if ( isset( $_GET['wcj_attribute'] ) && '' !== $_GET['wcj_attribute'] ) {
|
|
|
|
|
|
|
|
|
339 |
$table_data[] = array(
|
340 |
__( 'Product', 'woocommerce-jetpack' ),
|
341 |
__( 'Category', 'woocommerce-jetpack' ),
|
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.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -405,17 +405,14 @@ if ( ! class_exists( 'WCJ_Checkout_Custom_Fields' ) ) :
|
|
405 |
/**
|
406 |
* Add_woocommerce_admin_fields.
|
407 |
*
|
408 |
-
* @version 5.6.
|
409 |
* @todo converting from before version 2.3.0: section?
|
410 |
* @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)
|
411 |
* @param string $fields defines the fields.
|
412 |
* @param string $section defines the section.
|
413 |
*/
|
414 |
public function add_woocommerce_admin_fields( $fields, $section ) {
|
415 |
-
$wpnonce =
|
416 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
417 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ), '' ) : true;
|
418 |
-
}
|
419 |
for ( $i = 1; $i <= $this->wcj_checkout_custom_fields_total_number; $i++ ) {
|
420 |
if ( 'yes' === wcj_get_option( 'wcj_checkout_custom_field_enabled_' . $i ) ) {
|
421 |
$the_section = wcj_get_option( 'wcj_checkout_custom_field_section_' . $i );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Custom Fields
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
405 |
/**
|
406 |
* Add_woocommerce_admin_fields.
|
407 |
*
|
408 |
+
* @version 5.6.7
|
409 |
* @todo converting from before version 2.3.0: section?
|
410 |
* @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)
|
411 |
* @param string $fields defines the fields.
|
412 |
* @param string $section defines the section.
|
413 |
*/
|
414 |
public function add_woocommerce_admin_fields( $fields, $section ) {
|
415 |
+
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), '' ) : false;
|
|
|
|
|
|
|
416 |
for ( $i = 1; $i <= $this->wcj_checkout_custom_fields_total_number; $i++ ) {
|
417 |
if ( 'yes' === wcj_get_option( 'wcj_checkout_custom_field_enabled_' . $i ) ) {
|
418 |
$the_section = wcj_get_option( 'wcj_checkout_custom_field_section_' . $i );
|
includes/class-wcj-checkout-fees.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Fees
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 3.7.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -23,7 +23,7 @@ if ( ! class_exists( 'WCJ_Checkout_Fees' ) ) :
|
|
23 |
/**
|
24 |
* Constructor.
|
25 |
*
|
26 |
-
* @version 5.
|
27 |
* @since 3.7.0
|
28 |
* @todo (maybe) rename module to "Cart & Checkout Fees"
|
29 |
*/
|
@@ -38,6 +38,7 @@ if ( ! class_exists( 'WCJ_Checkout_Fees' ) ) :
|
|
38 |
|
39 |
if ( $this->is_enabled() ) {
|
40 |
// Core function.
|
|
|
41 |
add_action( 'woocommerce_cart_calculate_fees', array( $this, 'add_fees' ), PHP_INT_MAX );
|
42 |
// Checkout fields.
|
43 |
$this->checkout_fields = wcj_get_option( 'wcj_checkout_fees_data_checkout_fields', array() );
|
@@ -70,7 +71,7 @@ if ( ! class_exists( 'WCJ_Checkout_Fees' ) ) :
|
|
70 |
/**
|
71 |
* Validate fee without considering overlapping.
|
72 |
*
|
73 |
-
* @version 5.6.
|
74 |
* @since 4.5.0
|
75 |
*
|
76 |
* @param int $fee_id defines the fee_id.
|
@@ -109,19 +110,14 @@ if ( ! class_exists( 'WCJ_Checkout_Fees' ) ) :
|
|
109 |
}
|
110 |
|
111 |
// Check checkout fields.
|
112 |
-
$
|
113 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
114 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
115 |
-
}
|
116 |
-
|
117 |
-
if ( ! empty( $this->checkout_fields[ $fee_id ] ) && $wpnonce ) {
|
118 |
if ( isset( $post_data ) || isset( $_REQUEST['post_data'] ) ) {
|
119 |
if ( ! isset( $post_data ) ) {
|
120 |
$post_data = array();
|
121 |
parse_str( sanitize_text_field( wp_unslash( $_REQUEST['post_data'] ) ), $post_data );
|
122 |
-
|
123 |
}
|
124 |
-
if ( empty( $post_data[ $this->checkout_fields[ $fee_id ] ] ) ) {
|
125 |
return false;
|
126 |
}
|
127 |
} elseif ( empty( $_REQUEST[ $this->checkout_fields[ $fee_id ] ] ) ) {
|
@@ -297,6 +293,16 @@ if ( ! class_exists( 'WCJ_Checkout_Fees' ) ) :
|
|
297 |
}
|
298 |
}
|
299 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
300 |
}
|
301 |
|
302 |
endif;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Fees
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 3.7.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
23 |
/**
|
24 |
* Constructor.
|
25 |
*
|
26 |
+
* @version 5.6.7
|
27 |
* @since 3.7.0
|
28 |
* @todo (maybe) rename module to "Cart & Checkout Fees"
|
29 |
*/
|
38 |
|
39 |
if ( $this->is_enabled() ) {
|
40 |
// Core function.
|
41 |
+
add_action( 'woocommerce_review_order_after_submit', array( $this, 'wcj_add_nonce_checkout_fees' ), PHP_INT_MAX );
|
42 |
add_action( 'woocommerce_cart_calculate_fees', array( $this, 'add_fees' ), PHP_INT_MAX );
|
43 |
// Checkout fields.
|
44 |
$this->checkout_fields = wcj_get_option( 'wcj_checkout_fees_data_checkout_fields', array() );
|
71 |
/**
|
72 |
* Validate fee without considering overlapping.
|
73 |
*
|
74 |
+
* @version 5.6.7
|
75 |
* @since 4.5.0
|
76 |
*
|
77 |
* @param int $fee_id defines the fee_id.
|
110 |
}
|
111 |
|
112 |
// Check checkout fields.
|
113 |
+
if ( ! empty( $this->checkout_fields[ $fee_id ] ) ) {
|
|
|
|
|
|
|
|
|
|
|
114 |
if ( isset( $post_data ) || isset( $_REQUEST['post_data'] ) ) {
|
115 |
if ( ! isset( $post_data ) ) {
|
116 |
$post_data = array();
|
117 |
parse_str( sanitize_text_field( wp_unslash( $_REQUEST['post_data'] ) ), $post_data );
|
118 |
+
$wpnonce = isset( $post_data['wcj-process-checkout-nonce'] ) ? wp_verify_nonce( sanitize_key( $post_data['wcj-process-checkout-nonce'] ), 'wcj-process_checkout' ) : false;
|
119 |
}
|
120 |
+
if ( ! $wpnonce || empty( $post_data[ $this->checkout_fields[ $fee_id ] ] ) ) {
|
121 |
return false;
|
122 |
}
|
123 |
} elseif ( empty( $_REQUEST[ $this->checkout_fields[ $fee_id ] ] ) ) {
|
293 |
}
|
294 |
}
|
295 |
|
296 |
+
/**
|
297 |
+
* Wcj_add_nonce_checkout_fees.
|
298 |
+
*
|
299 |
+
* @version 5.6.7
|
300 |
+
* @since 5.6.7
|
301 |
+
*/
|
302 |
+
public function wcj_add_nonce_checkout_fees() {
|
303 |
+
return wp_nonce_field( 'wcj-process_checkout', 'wcj-process-checkout-nonce' );
|
304 |
+
}
|
305 |
+
|
306 |
}
|
307 |
|
308 |
endif;
|
includes/class-wcj-checkout-files-upload.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Files Upload
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.4.5
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -281,7 +281,7 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
281 |
/**
|
282 |
* Create_file_admin_order_meta_box.
|
283 |
*
|
284 |
-
* @version 5.6.
|
285 |
* @since 2.4.5
|
286 |
*/
|
287 |
public function create_file_admin_order_meta_box() {
|
@@ -298,6 +298,7 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
298 |
array(
|
299 |
'wcj_download_checkout_file_admin' => $order_file_name,
|
300 |
'wcj_checkout_file_number' => $i,
|
|
|
301 |
)
|
302 |
) . '">' . $real_file_name . '</a></p>';
|
303 |
}
|
@@ -305,7 +306,12 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
305 |
if ( ! $files_exists ) {
|
306 |
$html .= '<p><em>' . __( 'No files uploaded.', 'woocommerce-jetpack' ) . '</em></p>';
|
307 |
} else {
|
308 |
-
$html .= '<p><a style="color:#a00;" href="' . add_query_arg(
|
|
|
|
|
|
|
|
|
|
|
309 |
__( 'Delete all files', 'woocommerce-jetpack' ) . '</a></p>';
|
310 |
}
|
311 |
echo wp_kses_post( $html );
|
@@ -418,7 +424,7 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
418 |
/**
|
419 |
* Process_checkout_files_upload.
|
420 |
*
|
421 |
-
* @version 5.6.
|
422 |
* @since 2.4.5
|
423 |
* @todo add option for admin to delete files one by one (i.e. not all at once)
|
424 |
* @todo `$this->additional_admin_emails_settings` - more customization options, e.g.: admin email, subject, content, from
|
@@ -604,7 +610,22 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
604 |
}
|
605 |
// Admin file download.
|
606 |
if ( isset( $_GET['wcj_download_checkout_file_admin'] ) ) {
|
607 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
608 |
if ( isset( $_GET['post'] ) && isset( $_GET['wcj_checkout_file_number'] ) ) {
|
609 |
$file_name = get_post_meta( sanitize_text_field( wp_unslash( $_GET['post'] ) ), '_wcj_checkout_files_upload_real_name_' . sanitize_text_field( wp_unslash( $_GET['wcj_checkout_file_number'] ) ), true );
|
610 |
if ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) {
|
@@ -614,12 +635,28 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
614 |
}
|
615 |
// Admin all files delete.
|
616 |
if ( isset( $_GET['wcj_download_checkout_file_admin_delete_all'] ) && ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
617 |
$order_id = sanitize_text_field( wp_unslash( $_GET['wcj_download_checkout_file_admin_delete_all'] ) );
|
618 |
$total_files = get_post_meta( $order_id, '_wcj_checkout_files_total_files', true );
|
619 |
for ( $i = 1; $i <= $total_files; $i++ ) {
|
620 |
$order_file_name = get_post_meta( $order_id, '_wcj_checkout_files_upload_' . $i, true );
|
621 |
if ( '' !== $order_file_name ) {
|
622 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
623 |
}
|
624 |
delete_post_meta( $order_id, '_wcj_checkout_files_upload_' . $i );
|
625 |
delete_post_meta( $order_id, '_wcj_checkout_files_upload_real_name_' . $i );
|
@@ -834,14 +871,14 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
834 |
/**
|
835 |
* Maybe_get_image.
|
836 |
*
|
837 |
-
* @version 5.6.
|
838 |
* @since 3.7.0
|
839 |
* @param string $link defines the link.
|
840 |
* @param int $i defines the value of i.
|
841 |
* @param int $order_id defines the order_id.
|
842 |
*/
|
843 |
public function maybe_get_image( $link, $i, $order_id = 0 ) {
|
844 |
-
$wpnonce = isset( $_REQUEST['wcj-checkout-files-upload-nonce'] ) ? wp_verify_nonce( sanitize_key(
|
845 |
if ( 'yes' === wcj_get_option( 'wcj_checkout_files_upload_form_template_field_show_images', 'no' ) ) {
|
846 |
$order = wc_get_order( $order_id );
|
847 |
if ( $wpnonce && 0 !== $order_id && isset( $_GET['key'] ) && ( $order ) && $order->key_is_valid( sanitize_text_field( wp_unslash( $_GET['key'] ) ) ) ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Files Upload
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.4.5
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
281 |
/**
|
282 |
* Create_file_admin_order_meta_box.
|
283 |
*
|
284 |
+
* @version 5.6.7
|
285 |
* @since 2.4.5
|
286 |
*/
|
287 |
public function create_file_admin_order_meta_box() {
|
298 |
array(
|
299 |
'wcj_download_checkout_file_admin' => $order_file_name,
|
300 |
'wcj_checkout_file_number' => $i,
|
301 |
+
'wcj_download_checkout_file_admin_nonce' => wp_create_nonce( 'wcj_download_checkout_file_admin_nonce' ),
|
302 |
)
|
303 |
) . '">' . $real_file_name . '</a></p>';
|
304 |
}
|
306 |
if ( ! $files_exists ) {
|
307 |
$html .= '<p><em>' . __( 'No files uploaded.', 'woocommerce-jetpack' ) . '</em></p>';
|
308 |
} else {
|
309 |
+
$html .= '<p><a style="color:#a00;" href="' . add_query_arg(
|
310 |
+
array(
|
311 |
+
'wcj_download_checkout_file_admin_delete_all' => $order_id,
|
312 |
+
'wcj_download_checkout_file_admin_delete_all_nonce' => wp_create_nonce( 'wcj_download_checkout_file_admin_delete_all_nonce' ),
|
313 |
+
)
|
314 |
+
) . '"' . wcj_get_js_confirmation() . '>' .
|
315 |
__( 'Delete all files', 'woocommerce-jetpack' ) . '</a></p>';
|
316 |
}
|
317 |
echo wp_kses_post( $html );
|
424 |
/**
|
425 |
* Process_checkout_files_upload.
|
426 |
*
|
427 |
+
* @version 5.6.7
|
428 |
* @since 2.4.5
|
429 |
* @todo add option for admin to delete files one by one (i.e. not all at once)
|
430 |
* @todo `$this->additional_admin_emails_settings` - more customization options, e.g.: admin email, subject, content, from
|
610 |
}
|
611 |
// Admin file download.
|
612 |
if ( isset( $_GET['wcj_download_checkout_file_admin'] ) ) {
|
613 |
+
$wcj_download_checkout_file_admin_nonce = isset( $_GET['wcj_download_checkout_file_admin_nonce'] ) ? sanitize_key( wp_unslash( $_GET['wcj_download_checkout_file_admin_nonce'] ) ) : '';
|
614 |
+
$wpnonce = wp_verify_nonce( $wcj_download_checkout_file_admin_nonce, 'wcj_download_checkout_file_admin_nonce' );
|
615 |
+
if ( ! $wpnonce ) {
|
616 |
+
wp_safe_redirect( admin_url() );
|
617 |
+
return;
|
618 |
+
}
|
619 |
+
|
620 |
+
$tmp_file_name = wcj_get_wcj_uploads_dir( 'checkout_files_upload' ) . '/' . sanitize_file_name( wp_unslash( $_GET['wcj_download_checkout_file_admin'] ) );
|
621 |
+
|
622 |
+
$real_file_path = realpath( $tmp_file_name );
|
623 |
+
$real_base_path = realpath( wcj_get_wcj_uploads_dir( 'checkout_files_upload' ) ) . DIRECTORY_SEPARATOR;
|
624 |
+
|
625 |
+
if ( false === $real_file_path || 0 !== strpos( $real_file_path, $real_base_path ) ) {
|
626 |
+
wp_safe_redirect( admin_url() );
|
627 |
+
return; // Traversal attempt.
|
628 |
+
}
|
629 |
if ( isset( $_GET['post'] ) && isset( $_GET['wcj_checkout_file_number'] ) ) {
|
630 |
$file_name = get_post_meta( sanitize_text_field( wp_unslash( $_GET['post'] ) ), '_wcj_checkout_files_upload_real_name_' . sanitize_text_field( wp_unslash( $_GET['wcj_checkout_file_number'] ) ), true );
|
631 |
if ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) {
|
635 |
}
|
636 |
// Admin all files delete.
|
637 |
if ( isset( $_GET['wcj_download_checkout_file_admin_delete_all'] ) && ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) ) {
|
638 |
+
$wcj_download_checkout_file_admin_delete_all_nonce = isset( $_GET['wcj_download_checkout_file_admin_delete_all_nonce'] ) ? sanitize_key( wp_unslash( $_GET['wcj_download_checkout_file_admin_delete_all_nonce'] ) ) : '';
|
639 |
+
$wpnonce = wp_verify_nonce( $wcj_download_checkout_file_admin_delete_all_nonce, 'wcj_download_checkout_file_admin_delete_all_nonce' );
|
640 |
+
if ( ! $wpnonce ) {
|
641 |
+
wp_safe_redirect( admin_url() );
|
642 |
+
return;
|
643 |
+
}
|
644 |
+
|
645 |
$order_id = sanitize_text_field( wp_unslash( $_GET['wcj_download_checkout_file_admin_delete_all'] ) );
|
646 |
$total_files = get_post_meta( $order_id, '_wcj_checkout_files_total_files', true );
|
647 |
for ( $i = 1; $i <= $total_files; $i++ ) {
|
648 |
$order_file_name = get_post_meta( $order_id, '_wcj_checkout_files_upload_' . $i, true );
|
649 |
if ( '' !== $order_file_name ) {
|
650 |
+
$tmp_file_name = wcj_get_wcj_uploads_dir( 'checkout_files_upload' ) . '/' . sanitize_file_name( wp_unslash( $order_file_name ) );
|
651 |
+
|
652 |
+
$real_file_path = realpath( $tmp_file_name );
|
653 |
+
$real_base_path = realpath( wcj_get_wcj_uploads_dir( 'checkout_files_upload' ) ) . DIRECTORY_SEPARATOR;
|
654 |
+
|
655 |
+
if ( false === $real_file_path || 0 !== strpos( $real_file_path, $real_base_path ) ) {
|
656 |
+
continue;
|
657 |
+
} else {
|
658 |
+
unlink( $tmp_file_name );
|
659 |
+
}
|
660 |
}
|
661 |
delete_post_meta( $order_id, '_wcj_checkout_files_upload_' . $i );
|
662 |
delete_post_meta( $order_id, '_wcj_checkout_files_upload_real_name_' . $i );
|
871 |
/**
|
872 |
* Maybe_get_image.
|
873 |
*
|
874 |
+
* @version 5.6.7
|
875 |
* @since 3.7.0
|
876 |
* @param string $link defines the link.
|
877 |
* @param int $i defines the value of i.
|
878 |
* @param int $order_id defines the order_id.
|
879 |
*/
|
880 |
public function maybe_get_image( $link, $i, $order_id = 0 ) {
|
881 |
+
$wpnonce = isset( $_REQUEST['wcj-checkout-files-upload-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj-checkout-files-upload-nonce'] ), 'wcj-checkout-files-upload-nonce' ) : false;
|
882 |
if ( 'yes' === wcj_get_option( 'wcj_checkout_files_upload_form_template_field_show_images', 'no' ) ) {
|
883 |
$order = wc_get_order( $order_id );
|
884 |
if ( $wpnonce && 0 !== $order_id && isset( $_GET['key'] ) && ( $order ) && $order->key_is_valid( sanitize_text_field( wp_unslash( $_GET['key'] ) ) ) ) {
|
includes/class-wcj-custom-php.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Custom PHP
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 4.0.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -21,7 +21,7 @@ if ( ! class_exists( 'WCJ_Custom_PHP' ) ) :
|
|
21 |
/**
|
22 |
* Constructor.
|
23 |
*
|
24 |
-
* @version 5.6.
|
25 |
* @since 4.0.0
|
26 |
* @todo [dev] maybe remove `wcj_disable_custom_php` from URL on settings save
|
27 |
* @todo [dev] allow tab in content (i.e. settings (textarea))
|
@@ -40,7 +40,7 @@ if ( ! class_exists( 'WCJ_Custom_PHP' ) ) :
|
|
40 |
sprintf(
|
41 |
/* translators: %s: translation added */
|
42 |
__( 'E.g.: %s', 'woocommerce-jetpack' ),
|
43 |
-
'<a href="' . admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=emails_and_misc§ion=custom_php&wcj_disable_custom_php' ) . '">' .
|
44 |
admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=emails_and_misc§ion=custom_php&wcj_disable_custom_php' ) . '</a>'
|
45 |
);
|
46 |
$this->link_slug = 'woocommerce-booster-custom-php';
|
@@ -49,10 +49,7 @@ if ( ! class_exists( 'WCJ_Custom_PHP' ) ) :
|
|
49 |
add_action( 'woojetpack_after_settings_save', array( $this, 'create_php_file' ), PHP_INT_MAX, 2 );
|
50 |
|
51 |
if ( $this->is_enabled() ) {
|
52 |
-
$wpnonce =
|
53 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
54 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
55 |
-
}
|
56 |
|
57 |
if ( isset( $_GET['wcj_disable_custom_php'] ) && $wpnonce ) {
|
58 |
if ( wcj_current_user_can( 'manage_woocommerce' ) ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Custom PHP
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 4.0.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
21 |
/**
|
22 |
* Constructor.
|
23 |
*
|
24 |
+
* @version 5.6.7
|
25 |
* @since 4.0.0
|
26 |
* @todo [dev] maybe remove `wcj_disable_custom_php` from URL on settings save
|
27 |
* @todo [dev] allow tab in content (i.e. settings (textarea))
|
40 |
sprintf(
|
41 |
/* translators: %s: translation added */
|
42 |
__( 'E.g.: %s', 'woocommerce-jetpack' ),
|
43 |
+
'<a href="' . admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=emails_and_misc§ion=custom_php&wcj_disable_custom_php&wcj_disable_custom_php_nonce=' . wp_create_nonce( 'wcj-disable-custom-php' ) ) . '">' .
|
44 |
admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=emails_and_misc§ion=custom_php&wcj_disable_custom_php' ) . '</a>'
|
45 |
);
|
46 |
$this->link_slug = 'woocommerce-booster-custom-php';
|
49 |
add_action( 'woojetpack_after_settings_save', array( $this, 'create_php_file' ), PHP_INT_MAX, 2 );
|
50 |
|
51 |
if ( $this->is_enabled() ) {
|
52 |
+
$wpnonce = isset( $_REQUEST['wcj_disable_custom_php_nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj_disable_custom_php_nonce'] ), 'wcj-disable-custom-php' ) : false;
|
|
|
|
|
|
|
53 |
|
54 |
if ( isset( $_GET['wcj_disable_custom_php'] ) && $wpnonce ) {
|
55 |
if ( wcj_current_user_can( 'manage_woocommerce' ) ) {
|
includes/class-wcj-debug-tools.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Debug Tools
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -45,17 +45,14 @@ if ( ! class_exists( 'WCJ_Debug_Tools' ) ) :
|
|
45 |
/**
|
46 |
* Create_debug_tools_tool.
|
47 |
*
|
48 |
-
* @version 5.6.
|
49 |
*/
|
50 |
public function create_debug_tools_tool() {
|
51 |
// Delete log.
|
52 |
-
$wpnonce =
|
53 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
54 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
55 |
-
}
|
56 |
if ( $wpnonce && isset( $_GET['wcj_delete_log'] ) && wcj_is_user_role( 'administrator' ) ) {
|
57 |
update_option( 'wcj_log', '' );
|
58 |
-
if ( wp_safe_redirect(
|
59 |
exit;
|
60 |
}
|
61 |
}
|
@@ -63,7 +60,14 @@ if ( ! class_exists( 'WCJ_Debug_Tools' ) ) :
|
|
63 |
$the_tools = '';
|
64 |
$the_tools .= '<div class="wcj-setting-jetpack-body wcj_tools_cnt_main">';
|
65 |
$the_tools .= $this->get_tool_header_html( 'debug_tools' );
|
66 |
-
$the_tools .= '<p><a href="' .
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
// Log.
|
68 |
$the_log = '';
|
69 |
/* translators: %s: translation added */
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Debug Tools
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
45 |
/**
|
46 |
* Create_debug_tools_tool.
|
47 |
*
|
48 |
+
* @version 5.6.7
|
49 |
*/
|
50 |
public function create_debug_tools_tool() {
|
51 |
// Delete log.
|
52 |
+
$wpnonce = isset( $_REQUEST['wcj_delete_log_nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj_delete_log_nonce'] ), 'wcj-delete-log' ) : false;
|
|
|
|
|
|
|
53 |
if ( $wpnonce && isset( $_GET['wcj_delete_log'] ) && wcj_is_user_role( 'administrator' ) ) {
|
54 |
update_option( 'wcj_log', '' );
|
55 |
+
if ( wp_safe_redirect( esc_url_raw( remove_query_arg( array( 'wcj_delete_log', 'wcj_delete_log_nonce' ) ) ) ) ) {
|
56 |
exit;
|
57 |
}
|
58 |
}
|
60 |
$the_tools = '';
|
61 |
$the_tools .= '<div class="wcj-setting-jetpack-body wcj_tools_cnt_main">';
|
62 |
$the_tools .= $this->get_tool_header_html( 'debug_tools' );
|
63 |
+
$the_tools .= '<p><a href="' . esc_url_raw(
|
64 |
+
add_query_arg(
|
65 |
+
array(
|
66 |
+
'wcj_delete_log' => '1',
|
67 |
+
'wcj_delete_log_nonce' => wp_create_nonce( 'wcj-delete-log' ),
|
68 |
+
)
|
69 |
+
)
|
70 |
+
) . '">' . __( 'Delete Log', 'woocommerce-jetpack' ) . '</a></p>';
|
71 |
// Log.
|
72 |
$the_log = '';
|
73 |
/* translators: %s: translation added */
|
includes/class-wcj-empty-cart-button.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Empty Cart Button
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.2.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -76,13 +76,10 @@ if ( ! class_exists( 'WCJ_Empty_Cart_Button' ) ) :
|
|
76 |
/**
|
77 |
* Maybe_empty_cart.
|
78 |
*
|
79 |
-
* @version
|
80 |
*/
|
81 |
public function maybe_empty_cart() {
|
82 |
-
$wpnonce =
|
83 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
84 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
85 |
-
}
|
86 |
|
87 |
if ( isset( $_POST['wcj_empty_cart'] ) && isset( WC()->cart ) && $wpnonce ) {
|
88 |
WC()->cart->empty_cart();
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Empty Cart Button
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.2.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
76 |
/**
|
77 |
* Maybe_empty_cart.
|
78 |
*
|
79 |
+
* @version 5.6.7
|
80 |
*/
|
81 |
public function maybe_empty_cart() {
|
82 |
+
$wpnonce = isset( $_REQUEST['wcj_empty_cart_nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj_empty_cart_nonce'] ), 'wcj-empty-cart' ) : false;
|
|
|
|
|
|
|
83 |
|
84 |
if ( isset( $_POST['wcj_empty_cart'] ) && isset( WC()->cart ) && $wpnonce ) {
|
85 |
WC()->cart->empty_cart();
|
includes/class-wcj-eu-vat-number.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - EU VAT Number
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.3.9
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -384,21 +384,18 @@ if ( ! class_exists( 'WCJ_EU_VAT_Number' ) ) :
|
|
384 |
/**
|
385 |
* Start_session.
|
386 |
*
|
387 |
-
* @version 5.6.
|
388 |
*/
|
389 |
public function start_session() {
|
390 |
if ( is_admin() ) {
|
391 |
return;
|
392 |
}
|
393 |
wcj_session_maybe_start();
|
394 |
-
$args
|
395 |
-
$
|
396 |
-
|
397 |
-
$wpnonce = isset( $
|
398 |
-
|
399 |
-
if ( $wpnonce && isset( $_POST['post_data'] ) ) {
|
400 |
-
parse_str( $_POST['post_data'], $args ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
|
401 |
-
if ( isset( $args['billing_eu_vat_number'] ) && wcj_session_get( 'wcj_eu_vat_number_to_check' ) !== $args['billing_eu_vat_number'] ) {
|
402 |
wcj_session_set( 'wcj_is_eu_vat_number_valid', null );
|
403 |
wcj_session_set( 'wcj_eu_vat_number_to_check', null );
|
404 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - EU VAT Number
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.3.9
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
384 |
/**
|
385 |
* Start_session.
|
386 |
*
|
387 |
+
* @version 5.6.7
|
388 |
*/
|
389 |
public function start_session() {
|
390 |
if ( is_admin() ) {
|
391 |
return;
|
392 |
}
|
393 |
wcj_session_maybe_start();
|
394 |
+
$args = array();
|
395 |
+
if ( isset( $_REQUEST['post_data'] ) ) {
|
396 |
+
parse_str( sanitize_text_field( wp_unslash( $_REQUEST['post_data'] ) ), $args );
|
397 |
+
$wpnonce = isset( $args['woocommerce-process-checkout-nonce'] ) ? wp_verify_nonce( sanitize_key( $args['woocommerce-process-checkout-nonce'] ), 'woocommerce-process_checkout' ) : false;
|
398 |
+
if ( $wpnonce && isset( $args['billing_eu_vat_number'] ) && wcj_session_get( 'wcj_eu_vat_number_to_check' ) !== $args['billing_eu_vat_number'] ) {
|
|
|
|
|
|
|
399 |
wcj_session_set( 'wcj_is_eu_vat_number_valid', null );
|
400 |
wcj_session_set( 'wcj_eu_vat_number_to_check', null );
|
401 |
}
|
includes/class-wcj-export-import.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Export
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.5.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -203,7 +203,7 @@ if ( ! class_exists( 'WCJ_Export_Import' ) ) :
|
|
203 |
/**
|
204 |
* Export_csv.
|
205 |
*
|
206 |
-
* @version 5.6.
|
207 |
* @since 2.4.8
|
208 |
*/
|
209 |
public function export_csv() {
|
@@ -216,10 +216,10 @@ if ( ! class_exists( 'WCJ_Export_Import' ) ) :
|
|
216 |
if ( is_array( $data ) ) {
|
217 |
$csv = '';
|
218 |
foreach ( $data as $row ) {
|
219 |
-
$row
|
220 |
-
$row
|
221 |
-
$row
|
222 |
-
$row
|
223 |
$csv .= implode( wcj_get_option( 'wcj_export_csv_separator', ',' ), $row ) . PHP_EOL;
|
224 |
}
|
225 |
if ( 'yes' === wcj_get_option( 'wcj_export_csv_add_utf_8_bom', 'yes' ) ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Export
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.5.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
203 |
/**
|
204 |
* Export_csv.
|
205 |
*
|
206 |
+
* @version 5.6.7
|
207 |
* @since 2.4.8
|
208 |
*/
|
209 |
public function export_csv() {
|
216 |
if ( is_array( $data ) ) {
|
217 |
$csv = '';
|
218 |
foreach ( $data as $row ) {
|
219 |
+
$row = $this->smart_format_fields( $row );
|
220 |
+
$row = implode( ',', $row );
|
221 |
+
$row = trim( preg_replace( '/\s+/', ' ', $row ) );
|
222 |
+
$row = explode( ',', $row );
|
223 |
$csv .= implode( wcj_get_option( 'wcj_export_csv_separator', ',' ), $row ) . PHP_EOL;
|
224 |
}
|
225 |
if ( 'yes' === wcj_get_option( 'wcj_export_csv_add_utf_8_bom', 'yes' ) ) {
|
includes/class-wcj-general.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - General
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -102,16 +102,13 @@ if ( ! class_exists( 'WCJ_General' ) ) :
|
|
102 |
/**
|
103 |
* Change_user_role_meta.
|
104 |
*
|
105 |
-
* @version 5.6.
|
106 |
* @since 2.9.0
|
107 |
* @todo [dev] (maybe) optionally via cookies
|
108 |
*/
|
109 |
public function change_user_role_meta() {
|
110 |
-
$wpnonce =
|
111 |
-
if (
|
112 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ), 'woocommerce-settings' ) : true;
|
113 |
-
}
|
114 |
-
if ( isset( $_GET['wcj_booster_user_role'] ) ) {
|
115 |
$current_user_id = get_current_user_id();
|
116 |
update_user_meta( $current_user_id, '_wcj_booster_user_role', sanitize_text_field( wp_unslash( $_GET['wcj_booster_user_role'] ) ) );
|
117 |
}
|
@@ -120,7 +117,7 @@ if ( ! class_exists( 'WCJ_General' ) ) :
|
|
120 |
/**
|
121 |
* Add_user_role_changer.
|
122 |
*
|
123 |
-
* @version 5.
|
124 |
* @since 2.9.0
|
125 |
* @param string | array $wp_admin_bar defines the wp_admin_bar.
|
126 |
*/
|
@@ -144,7 +141,14 @@ if ( ! class_exists( 'WCJ_General' ) ) :
|
|
144 |
'parent' => 'booster-user-role-changer',
|
145 |
'id' => 'booster-user-role-changer-role-' . $user_role_key,
|
146 |
'title' => $user_role_name,
|
147 |
-
'href' => esc_url(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
);
|
149 |
$wp_admin_bar->add_node( $args );
|
150 |
}
|
@@ -193,15 +197,17 @@ if ( ! class_exists( 'WCJ_General' ) ) :
|
|
193 |
/**
|
194 |
* Create_custom_roles_tool.
|
195 |
*
|
196 |
-
* @version 5.6.
|
197 |
* @since 2.5.3
|
198 |
*/
|
199 |
public function create_custom_roles_tool() {
|
200 |
-
$
|
|
|
201 |
if ( function_exists( 'wp_verify_nonce' ) ) {
|
202 |
-
$
|
|
|
203 |
}
|
204 |
-
if ( $
|
205 |
if ( empty( $_POST['wcj_custom_role_id'] ) || empty( $_POST['wcj_custom_role_name'] ) || empty( $_POST['wcj_custom_role_caps'] ) ) {
|
206 |
echo '<p style="color:red;font-weight:bold;">' . wp_kses_post( 'All fields are required!', 'woocommerce-jetpack' ) . '</p>';
|
207 |
} else {
|
@@ -227,7 +233,7 @@ if ( ! class_exists( 'WCJ_General' ) ) :
|
|
227 |
}
|
228 |
}
|
229 |
|
230 |
-
if ( isset( $_GET['wcj_delete_role'] ) && '' !== $_GET['wcj_delete_role'] ) {
|
231 |
remove_role( sanitize_text_field( wp_unslash( $_GET['wcj_delete_role'] ) ) );
|
232 |
$custom_roles = wcj_get_option( 'wcj_custom_roles', array() );
|
233 |
if ( isset( $custom_roles[ $_GET['wcj_delete_role'] ] ) ) {
|
@@ -248,7 +254,14 @@ if ( ! class_exists( 'WCJ_General' ) ) :
|
|
248 |
foreach ( $existing_roles as $role_key => $role_data ) {
|
249 |
$delete_html = ( in_array( $role_key, $default_wp_wc_roles, true ) )
|
250 |
? ''
|
251 |
-
: '<a href="' . esc_url(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
$caps = ( ! empty( $custom_roles[ $role_key ]['caps_role'] ) ? $custom_roles[ $role_key ]['caps_role'] : $role_key );
|
253 |
$table_data[] = array( $role_key, $role_data['name'], $caps, $delete_html );
|
254 |
}
|
@@ -271,6 +284,7 @@ if ( ! class_exists( 'WCJ_General' ) ) :
|
|
271 |
)
|
272 |
)
|
273 |
)
|
|
|
274 |
. '<p><input type="submit" name="wcj_add_new_role" class="button-primary" value="' . wp_kses_post( 'Add', 'woocommerce-jetpack' ) . '"></p>'
|
275 |
. '</form>';
|
276 |
echo '</div>';
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - General
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
102 |
/**
|
103 |
* Change_user_role_meta.
|
104 |
*
|
105 |
+
* @version 5.6.7
|
106 |
* @since 2.9.0
|
107 |
* @todo [dev] (maybe) optionally via cookies
|
108 |
*/
|
109 |
public function change_user_role_meta() {
|
110 |
+
$wpnonce = isset( $_REQUEST['wcj_booster_user_role_nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj_booster_user_role_nonce'] ), 'wcj_booster_user_role' ) : false;
|
111 |
+
if ( $wpnonce && isset( $_GET['wcj_booster_user_role'] ) ) {
|
|
|
|
|
|
|
112 |
$current_user_id = get_current_user_id();
|
113 |
update_user_meta( $current_user_id, '_wcj_booster_user_role', sanitize_text_field( wp_unslash( $_GET['wcj_booster_user_role'] ) ) );
|
114 |
}
|
117 |
/**
|
118 |
* Add_user_role_changer.
|
119 |
*
|
120 |
+
* @version 5.6.7
|
121 |
* @since 2.9.0
|
122 |
* @param string | array $wp_admin_bar defines the wp_admin_bar.
|
123 |
*/
|
141 |
'parent' => 'booster-user-role-changer',
|
142 |
'id' => 'booster-user-role-changer-role-' . $user_role_key,
|
143 |
'title' => $user_role_name,
|
144 |
+
'href' => esc_url(
|
145 |
+
add_query_arg(
|
146 |
+
array(
|
147 |
+
'wcj_booster_user_role' => $user_role_key,
|
148 |
+
'wcj_booster_user_role_nonce' => wp_cerate_nonce( 'wcj_booster_user_role' ),
|
149 |
+
)
|
150 |
+
)
|
151 |
+
),
|
152 |
);
|
153 |
$wp_admin_bar->add_node( $args );
|
154 |
}
|
197 |
/**
|
198 |
* Create_custom_roles_tool.
|
199 |
*
|
200 |
+
* @version 5.6.7
|
201 |
* @since 2.5.3
|
202 |
*/
|
203 |
public function create_custom_roles_tool() {
|
204 |
+
$add_role_wpnonce = false;
|
205 |
+
$delete_role_wpnonce = false;
|
206 |
if ( function_exists( 'wp_verify_nonce' ) ) {
|
207 |
+
$add_role_wpnonce = isset( $_REQUEST['wcj_add_new_role_nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj_add_new_role_nonce'] ), 'wcj_add_new_role_nonce' ) : false;
|
208 |
+
$delete_role_wpnonce = isset( $_REQUEST['wcj_delete_role_nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj_delete_role_nonce'] ), 'wcj_delete_role_nonce' ) : false;
|
209 |
}
|
210 |
+
if ( $add_role_wpnonce && isset( $_POST['wcj_add_new_role'] ) ) {
|
211 |
if ( empty( $_POST['wcj_custom_role_id'] ) || empty( $_POST['wcj_custom_role_name'] ) || empty( $_POST['wcj_custom_role_caps'] ) ) {
|
212 |
echo '<p style="color:red;font-weight:bold;">' . wp_kses_post( 'All fields are required!', 'woocommerce-jetpack' ) . '</p>';
|
213 |
} else {
|
233 |
}
|
234 |
}
|
235 |
|
236 |
+
if ( $delete_role_wpnonce && isset( $_GET['wcj_delete_role'] ) && '' !== $_GET['wcj_delete_role'] ) {
|
237 |
remove_role( sanitize_text_field( wp_unslash( $_GET['wcj_delete_role'] ) ) );
|
238 |
$custom_roles = wcj_get_option( 'wcj_custom_roles', array() );
|
239 |
if ( isset( $custom_roles[ $_GET['wcj_delete_role'] ] ) ) {
|
254 |
foreach ( $existing_roles as $role_key => $role_data ) {
|
255 |
$delete_html = ( in_array( $role_key, $default_wp_wc_roles, true ) )
|
256 |
? ''
|
257 |
+
: '<a href="' . esc_url(
|
258 |
+
add_query_arg(
|
259 |
+
array(
|
260 |
+
'wcj_delete_role' => $role_key,
|
261 |
+
'wcj_delete_role_nonce' => wp_create_nonce( 'wcj_delete_role_nonce' ),
|
262 |
+
)
|
263 |
+
)
|
264 |
+
) . '"' . wcj_get_js_confirmation() . '>' . __( 'Delete', 'woocommerce-jetpack' ) . '</a>';
|
265 |
$caps = ( ! empty( $custom_roles[ $role_key ]['caps_role'] ) ? $custom_roles[ $role_key ]['caps_role'] : $role_key );
|
266 |
$table_data[] = array( $role_key, $role_data['name'], $caps, $delete_html );
|
267 |
}
|
284 |
)
|
285 |
)
|
286 |
)
|
287 |
+
. wp_kses_post( wp_nonce_field( 'wcj_add_new_role_nonce', 'wcj_add_new_role_nonce' ) )
|
288 |
. '<p><input type="submit" name="wcj_add_new_role" class="button-primary" value="' . wp_kses_post( 'Add', 'woocommerce-jetpack' ) . '"></p>'
|
289 |
. '</form>';
|
290 |
echo '</div>';
|
includes/class-wcj-global-discount.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Global Discount
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.5.7
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -81,16 +81,12 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
81 |
/**
|
82 |
* Regenerate_wcj_sale_products_in_cache.
|
83 |
*
|
84 |
-
* @version 5.6.
|
85 |
* @since 4.8.0
|
86 |
*/
|
87 |
public function regenerate_wcj_sale_products_in_cache() {
|
88 |
-
$wpnonce =
|
89 |
-
if (
|
90 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : 'woocommerce-settings' ) ) : true;
|
91 |
-
}
|
92 |
-
if (
|
93 |
-
! $wpnonce ||
|
94 |
'yes' !== wcj_get_option( 'wcj_global_discount_products_shortcode_compatibility', 'no' ) ||
|
95 |
! isset( $_REQUEST['page'] ) || 'wc-settings' !== $_REQUEST['page'] ||
|
96 |
! isset( $_REQUEST['tab'] ) || 'jetpack' !== $_REQUEST['tab'] ||
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Global Discount
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.5.7
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
81 |
/**
|
82 |
* Regenerate_wcj_sale_products_in_cache.
|
83 |
*
|
84 |
+
* @version 5.6.7
|
85 |
* @since 4.8.0
|
86 |
*/
|
87 |
public function regenerate_wcj_sale_products_in_cache() {
|
88 |
+
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'woocommerce-settings' ) : false;
|
89 |
+
if ( ! $wpnonce ||
|
|
|
|
|
|
|
|
|
90 |
'yes' !== wcj_get_option( 'wcj_global_discount_products_shortcode_compatibility', 'no' ) ||
|
91 |
! isset( $_REQUEST['page'] ) || 'wc-settings' !== $_REQUEST['page'] ||
|
92 |
! isset( $_REQUEST['tab'] ) || 'jetpack' !== $_REQUEST['tab'] ||
|
includes/class-wcj-my-account.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - My Account
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -169,15 +169,12 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
169 |
/**
|
170 |
* Set_custom_page_title.
|
171 |
*
|
172 |
-
* @version 5.6.
|
173 |
* @since 4.3.0
|
174 |
* @param string $title defines the title.
|
175 |
*/
|
176 |
public function set_custom_page_title( $title ) {
|
177 |
-
$wpnonce = true;
|
178 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
179 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ), 'woocommerce-settings' ) : true;
|
180 |
-
}
|
181 |
if (
|
182 |
$wpnonce && (
|
183 |
! isset( $_GET['section'] ) ||
|
@@ -286,7 +283,7 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
286 |
/**
|
287 |
* Customize_dashboard.
|
288 |
*
|
289 |
-
* @version 5.6.
|
290 |
* @since 3.8.0
|
291 |
* @see woocommerce/templates/myaccount/dashboard.php
|
292 |
* @param string | array $value defines the value.
|
@@ -302,8 +299,7 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
302 |
if ( false !== $endpoint ) {
|
303 |
$endpoint_tab = wp_list_filter( $this->custom_pages, array( 'endpoint' => $endpoint ) );
|
304 |
}
|
305 |
-
$wpnonce = true;
|
306 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ), 'woocommerce-settings' ) : true;
|
307 |
$page_id = $wpnonce && sanitize_text_field( wp_unslash( ( $_GET['section'] ) ) ) ? sanitize_text_field( wp_unslash( ( $_GET['section'] ) ) ) : ( false !== $endpoint ? array_keys( wp_list_pluck( $endpoint_tab, 'endpoint' ) )[0] : '' );
|
308 |
if ( isset( $this->custom_pages[ $page_id ] ) ) {
|
309 |
echo do_shortcode( $this->custom_pages[ $page_id ]['content'] );
|
@@ -435,7 +431,7 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
435 |
/**
|
436 |
* Add_registration_extra_fields.
|
437 |
*
|
438 |
-
* @version 5.6.
|
439 |
* @since 3.6.0
|
440 |
* @todo (maybe) more fields to choose from (i.e. not only "user role" field)
|
441 |
* @todo (maybe) customizable position (check for other hooks or at least customizable priority on `woocommerce_register_form`)
|
@@ -443,7 +439,7 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
443 |
*/
|
444 |
public function add_registration_extra_fields() {
|
445 |
$user_roles_options_html = '';
|
446 |
-
$wpnonce = isset( $_REQUEST['woocommerce-register-nonce'] ) ? wp_verify_nonce( sanitize_key(
|
447 |
$current_user_role_input = ( $wpnonce && ! empty( $_POST['wcj_user_role'] ) ) ? sanitize_text_field( wp_unslash( $_POST['wcj_user_role'] ) ) :
|
448 |
get_option( 'wcj_my_account_registration_extra_fields_user_role_default', 'customer' );
|
449 |
$user_roles_options = wcj_get_option( 'wcj_my_account_registration_extra_fields_user_role_options', array( 'customer' ) );
|
@@ -462,7 +458,7 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
462 |
/**
|
463 |
* Process_registration_extra_fields.
|
464 |
*
|
465 |
-
* @version 5.6.
|
466 |
* @since 3.6.0
|
467 |
* @todo (maybe) optional admin confirmation for some user roles (probably will need to create additional `...-pending` user roles)
|
468 |
* @param id $customer_id defines the customer_id.
|
@@ -470,7 +466,7 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
470 |
* @param string $password_generated defines the password_generated.
|
471 |
*/
|
472 |
public function process_registration_extra_fields( $customer_id, $new_customer_data, $password_generated ) {
|
473 |
-
$wpnonce = isset( $_REQUEST['woocommerce-register-nonce'] ) ? wp_verify_nonce( sanitize_key(
|
474 |
if ( $wpnonce && isset( $_POST['wcj_user_role'] ) && '' !== $_POST['wcj_user_role'] ) {
|
475 |
$user_roles_options = wcj_get_option( 'wcj_my_account_registration_extra_fields_user_role_options', array( 'customer' ) );
|
476 |
if ( ! empty( $user_roles_options ) && in_array( $_POST['wcj_user_role'], $user_roles_options, true ) ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - My Account
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
169 |
/**
|
170 |
* Set_custom_page_title.
|
171 |
*
|
172 |
+
* @version 5.6.7
|
173 |
* @since 4.3.0
|
174 |
* @param string $title defines the title.
|
175 |
*/
|
176 |
public function set_custom_page_title( $title ) {
|
177 |
+
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'woocommerce-settings' ) : true;
|
|
|
|
|
|
|
178 |
if (
|
179 |
$wpnonce && (
|
180 |
! isset( $_GET['section'] ) ||
|
283 |
/**
|
284 |
* Customize_dashboard.
|
285 |
*
|
286 |
+
* @version 5.6.7
|
287 |
* @since 3.8.0
|
288 |
* @see woocommerce/templates/myaccount/dashboard.php
|
289 |
* @param string | array $value defines the value.
|
299 |
if ( false !== $endpoint ) {
|
300 |
$endpoint_tab = wp_list_filter( $this->custom_pages, array( 'endpoint' => $endpoint ) );
|
301 |
}
|
302 |
+
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'woocommerce-settings' ) : true;
|
|
|
303 |
$page_id = $wpnonce && sanitize_text_field( wp_unslash( ( $_GET['section'] ) ) ) ? sanitize_text_field( wp_unslash( ( $_GET['section'] ) ) ) : ( false !== $endpoint ? array_keys( wp_list_pluck( $endpoint_tab, 'endpoint' ) )[0] : '' );
|
304 |
if ( isset( $this->custom_pages[ $page_id ] ) ) {
|
305 |
echo do_shortcode( $this->custom_pages[ $page_id ]['content'] );
|
431 |
/**
|
432 |
* Add_registration_extra_fields.
|
433 |
*
|
434 |
+
* @version 5.6.7
|
435 |
* @since 3.6.0
|
436 |
* @todo (maybe) more fields to choose from (i.e. not only "user role" field)
|
437 |
* @todo (maybe) customizable position (check for other hooks or at least customizable priority on `woocommerce_register_form`)
|
439 |
*/
|
440 |
public function add_registration_extra_fields() {
|
441 |
$user_roles_options_html = '';
|
442 |
+
$wpnonce = isset( $_REQUEST['woocommerce-register-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['woocommerce-register-nonce'] ), 'woocommerce-register' ) : true;
|
443 |
$current_user_role_input = ( $wpnonce && ! empty( $_POST['wcj_user_role'] ) ) ? sanitize_text_field( wp_unslash( $_POST['wcj_user_role'] ) ) :
|
444 |
get_option( 'wcj_my_account_registration_extra_fields_user_role_default', 'customer' );
|
445 |
$user_roles_options = wcj_get_option( 'wcj_my_account_registration_extra_fields_user_role_options', array( 'customer' ) );
|
458 |
/**
|
459 |
* Process_registration_extra_fields.
|
460 |
*
|
461 |
+
* @version 5.6.7
|
462 |
* @since 3.6.0
|
463 |
* @todo (maybe) optional admin confirmation for some user roles (probably will need to create additional `...-pending` user roles)
|
464 |
* @param id $customer_id defines the customer_id.
|
466 |
* @param string $password_generated defines the password_generated.
|
467 |
*/
|
468 |
public function process_registration_extra_fields( $customer_id, $new_customer_data, $password_generated ) {
|
469 |
+
$wpnonce = isset( $_REQUEST['woocommerce-register-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['woocommerce-register-nonce'] ), 'woocommerce-register' ) : true;
|
470 |
if ( $wpnonce && isset( $_POST['wcj_user_role'] ) && '' !== $_POST['wcj_user_role'] ) {
|
471 |
$user_roles_options = wcj_get_option( 'wcj_my_account_registration_extra_fields_user_role_options', array( 'customer' ) );
|
472 |
if ( ! empty( $user_roles_options ) && in_array( $_POST['wcj_user_role'], $user_roles_options, true ) ) {
|
includes/class-wcj-offer-price.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Offer Price
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -134,14 +134,14 @@ if ( ! class_exists( 'WCJ_Offer_Price' ) ) :
|
|
134 |
/**
|
135 |
* Delete_offer_price_product_history.
|
136 |
*
|
137 |
-
* @version 5.6.
|
138 |
* @since 2.9.0
|
139 |
* @todo (maybe) add successful deletion notice
|
140 |
* @param int $post_id defines the post_id.
|
141 |
* @param string | array $post defines the post.
|
142 |
*/
|
143 |
public function delete_offer_price_product_history( $post_id, $post ) {
|
144 |
-
$wpnonce =
|
145 |
if ( $wpnonce && isset( $_POST['wcj_offer_price_delete_history'] ) ) {
|
146 |
delete_post_meta( $post_id, '_wcj_price_offers' );
|
147 |
add_action( 'admin_notices', array( $this, 'notice_delete_offer_price_product_history' ) );
|
@@ -502,7 +502,7 @@ if ( ! class_exists( 'WCJ_Offer_Price' ) ) :
|
|
502 |
/**
|
503 |
* Offer_price.
|
504 |
*
|
505 |
-
* @version 5.6.
|
506 |
* @since 2.9.0
|
507 |
* @todo (maybe) separate customer copy email template and subject
|
508 |
* @todo (maybe) redirect (no notice though)
|
@@ -513,7 +513,7 @@ if ( ! class_exists( 'WCJ_Offer_Price' ) ) :
|
|
513 |
*/
|
514 |
public function offer_price() {
|
515 |
if ( isset( $_POST['wcj-offer-price-submit'] ) ) {
|
516 |
-
$wpnonce =
|
517 |
$product_id = $wpnonce && isset( $_POST['wcj-offer-price-product-id'] ) ? sanitize_text_field( wp_unslash( $_POST['wcj-offer-price-product-id'] ) ) : '';
|
518 |
$_product = wc_get_product( $product_id );
|
519 |
if ( ! is_a( $_product, 'WC_Product' ) ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Offer Price
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
134 |
/**
|
135 |
* Delete_offer_price_product_history.
|
136 |
*
|
137 |
+
* @version 5.6.7
|
138 |
* @since 2.9.0
|
139 |
* @todo (maybe) add successful deletion notice
|
140 |
* @param int $post_id defines the post_id.
|
141 |
* @param string | array $post defines the post.
|
142 |
*/
|
143 |
public function delete_offer_price_product_history( $post_id, $post ) {
|
144 |
+
$wpnonce = isset( $_POST['woocommerce_meta_nonce'] ) ? wp_verify_nonce( wp_unslash( sanitize_text_field( wp_unslash( $_POST['woocommerce_meta_nonce'] ) ) ), 'woocommerce_save_data' ) : false;
|
145 |
if ( $wpnonce && isset( $_POST['wcj_offer_price_delete_history'] ) ) {
|
146 |
delete_post_meta( $post_id, '_wcj_price_offers' );
|
147 |
add_action( 'admin_notices', array( $this, 'notice_delete_offer_price_product_history' ) );
|
502 |
/**
|
503 |
* Offer_price.
|
504 |
*
|
505 |
+
* @version 5.6.7
|
506 |
* @since 2.9.0
|
507 |
* @todo (maybe) separate customer copy email template and subject
|
508 |
* @todo (maybe) redirect (no notice though)
|
513 |
*/
|
514 |
public function offer_price() {
|
515 |
if ( isset( $_POST['wcj-offer-price-submit'] ) ) {
|
516 |
+
$wpnonce = isset( $_REQUEST['wcj_offer_price_nonce'] ) ? wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['wcj_offer_price_nonce'] ) ), 'wcj-offer-price-modal' ) : false;
|
517 |
$product_id = $wpnonce && isset( $_POST['wcj-offer-price-product-id'] ) ? sanitize_text_field( wp_unslash( $_POST['wcj-offer-price-product-id'] ) ) : '';
|
518 |
$_product = wc_get_product( $product_id );
|
519 |
if ( ! is_a( $_product, 'WC_Product' ) ) {
|
includes/class-wcj-old-slugs.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Old Slugs
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -43,7 +43,7 @@ if ( ! class_exists( 'WCJ_Old_Slugs' ) ) :
|
|
43 |
/**
|
44 |
* Create_old_slugs_tool.
|
45 |
*
|
46 |
-
* @version 5.6.
|
47 |
*/
|
48 |
public function create_old_slugs_tool() {
|
49 |
|
@@ -84,15 +84,13 @@ if ( ! class_exists( 'WCJ_Old_Slugs' ) ) :
|
|
84 |
}
|
85 |
// Actions.
|
86 |
|
87 |
-
$
|
88 |
-
|
89 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
90 |
-
}
|
91 |
|
92 |
-
if ( isset( $_POST['remove_old_products_slugs'] ) || isset( $_POST['remove_old_non_products_slugs'] ) && $
|
93 |
$post_ids_to_delete = join( ',', ( isset( $_POST['remove_old_products_slugs'] ) ? $posts_ids['products'] : $posts_ids['non_products'] ) );
|
94 |
-
$delete_result = $wpdb->get_results( "DELETE FROM
|
95 |
-
$recheck_result = $wpdb->get_results( "SELECT * FROM
|
96 |
$recheck_result_count = count( $recheck_result );
|
97 |
$remove_result_html = '<div class="updated"><p>' .
|
98 |
sprintf(
|
@@ -109,7 +107,7 @@ if ( ! class_exists( 'WCJ_Old_Slugs' ) ) :
|
|
109 |
/**
|
110 |
* Output_old_slugs_tool.
|
111 |
*
|
112 |
-
* @version 5.
|
113 |
* @since 2.8.0
|
114 |
* @param string | array $remove_result_html defines the remove_result_html.
|
115 |
* @param array $multi_table_data defines the multi_table_data.
|
@@ -143,6 +141,7 @@ if ( ! class_exists( 'WCJ_Old_Slugs' ) ) :
|
|
143 |
$html .= '<p>' . $type['table_content'] . '</p>';
|
144 |
$html .= '<form method="post" action="">';
|
145 |
$html .= '<input class="button-primary" type="submit" name="' . $type['button_name'] . '" value="' . $type['button_label'] . '"/>';
|
|
|
146 |
$html .= '</form>';
|
147 |
}
|
148 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Old Slugs
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
43 |
/**
|
44 |
* Create_old_slugs_tool.
|
45 |
*
|
46 |
+
* @version 5.6.7
|
47 |
*/
|
48 |
public function create_old_slugs_tool() {
|
49 |
|
84 |
}
|
85 |
// Actions.
|
86 |
|
87 |
+
$remove_old_products_slugs_wpnonce = isset( $_REQUEST['remove_old_products_slugs-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['remove_old_products_slugs-nonce'] ), 'remove_old_products_slugs' ) : false;
|
88 |
+
$remove_old_non_products_slugs_wpnonce = isset( $_REQUEST['remove_old_non_products_slugs-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['remove_old_non_products_slugs-nonce'] ), 'remove_old_non_products_slugs' ) : false;
|
|
|
|
|
89 |
|
90 |
+
if ( ( isset( $_POST['remove_old_products_slugs'] ) && $remove_old_products_slugs_wpnonce ) || ( isset( $_POST['remove_old_non_products_slugs'] ) && $remove_old_non_products_slugs_wpnonce ) ) {
|
91 |
$post_ids_to_delete = join( ',', ( isset( $_POST['remove_old_products_slugs'] ) ? $posts_ids['products'] : $posts_ids['non_products'] ) );
|
92 |
+
$delete_result = $wpdb->get_results( "DELETE FROM $wp_postmeta_table WHERE meta_key = '_wp_old_slug' AND post_id IN ($post_ids_to_delete)" ); //phpcs:ignore
|
93 |
+
$recheck_result = $wpdb->get_results( "SELECT * FROM $wp_postmeta_table WHERE meta_key = '_wp_old_slug'" ); //phpcs:ignore
|
94 |
$recheck_result_count = count( $recheck_result );
|
95 |
$remove_result_html = '<div class="updated"><p>' .
|
96 |
sprintf(
|
107 |
/**
|
108 |
* Output_old_slugs_tool.
|
109 |
*
|
110 |
+
* @version 5.6.7
|
111 |
* @since 2.8.0
|
112 |
* @param string | array $remove_result_html defines the remove_result_html.
|
113 |
* @param array $multi_table_data defines the multi_table_data.
|
141 |
$html .= '<p>' . $type['table_content'] . '</p>';
|
142 |
$html .= '<form method="post" action="">';
|
143 |
$html .= '<input class="button-primary" type="submit" name="' . $type['button_name'] . '" value="' . $type['button_label'] . '"/>';
|
144 |
+
$html .= wp_nonce_field( $type['button_name'], $type['button_name'] . '-nonce' );
|
145 |
$html .= '</form>';
|
146 |
}
|
147 |
}
|
includes/class-wcj-order-numbers.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Order Numbers
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -192,7 +192,7 @@ if ( ! class_exists( 'WCJ_Order_Numbers' ) ) :
|
|
192 |
/**
|
193 |
* Search_by_custom_number.
|
194 |
*
|
195 |
-
* @version 5.6.
|
196 |
* @since 2.6.0
|
197 |
* @todo `_wcj_order_number` is used for `sequential` and `hash` only
|
198 |
* @param array | string $query defines the query.
|
@@ -232,7 +232,7 @@ if ( ! class_exists( 'WCJ_Order_Numbers' ) ) :
|
|
232 |
// Post Status.
|
233 |
$wpnonce = true;
|
234 |
if ( function_exists( 'wp_verify_nonce' ) ) {
|
235 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key(
|
236 |
}
|
237 |
$post_status = ( $wpnonce && isset( $_GET['post_status'] ) ) ? sanitize_text_field( wp_unslash( $_GET['post_status'] ) ) : 'any';
|
238 |
|
@@ -342,16 +342,13 @@ if ( ! class_exists( 'WCJ_Order_Numbers' ) ) :
|
|
342 |
/**
|
343 |
* Add Renumerate Orders tool to WooCommerce menu (the content).
|
344 |
*
|
345 |
-
* @version 5.6.
|
346 |
* @todo restyle
|
347 |
* @todo add more result info (e.g. number of regenerated orders etc.)
|
348 |
*/
|
349 |
public function create_renumerate_orders_tool() {
|
350 |
$result_message = '';
|
351 |
-
$wpnonce =
|
352 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
353 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ), 'woocommerce-settings' ) : true;
|
354 |
-
}
|
355 |
if ( $wpnonce && isset( $_POST['renumerate_orders'] ) ) {
|
356 |
$this->renumerate_orders();
|
357 |
$result_message = '<p><div class="updated"><p><strong>' . __( 'Orders successfully renumerated!', 'woocommerce-jetpack' ) . '</strong></p></div></p>';
|
@@ -381,6 +378,7 @@ if ( ! class_exists( 'WCJ_Order_Numbers' ) ) :
|
|
381 |
$html .= $result_message;
|
382 |
$html .= '<form method="post" action="">';
|
383 |
$html .= '<input class="button-primary" type="submit" name="renumerate_orders" value="' . __( 'Renumerate orders', 'woocommerce-jetpack' ) . '">';
|
|
|
384 |
$html .= '</form>';
|
385 |
$html .= '</div>';
|
386 |
$html .= '</div>';
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Order Numbers
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
192 |
/**
|
193 |
* Search_by_custom_number.
|
194 |
*
|
195 |
+
* @version 5.6.7
|
196 |
* @since 2.6.0
|
197 |
* @todo `_wcj_order_number` is used for `sequential` and `hash` only
|
198 |
* @param array | string $query defines the query.
|
232 |
// Post Status.
|
233 |
$wpnonce = true;
|
234 |
if ( function_exists( 'wp_verify_nonce' ) ) {
|
235 |
+
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'woocommerce-settings' ) : true;
|
236 |
}
|
237 |
$post_status = ( $wpnonce && isset( $_GET['post_status'] ) ) ? sanitize_text_field( wp_unslash( $_GET['post_status'] ) ) : 'any';
|
238 |
|
342 |
/**
|
343 |
* Add Renumerate Orders tool to WooCommerce menu (the content).
|
344 |
*
|
345 |
+
* @version 5.6.7
|
346 |
* @todo restyle
|
347 |
* @todo add more result info (e.g. number of regenerated orders etc.)
|
348 |
*/
|
349 |
public function create_renumerate_orders_tool() {
|
350 |
$result_message = '';
|
351 |
+
$wpnonce = isset( $_REQUEST['renumerate-orders-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['renumerate-orders-nonce'] ), 'renumerate_orders' ) : false;
|
|
|
|
|
|
|
352 |
if ( $wpnonce && isset( $_POST['renumerate_orders'] ) ) {
|
353 |
$this->renumerate_orders();
|
354 |
$result_message = '<p><div class="updated"><p><strong>' . __( 'Orders successfully renumerated!', 'woocommerce-jetpack' ) . '</strong></p></div></p>';
|
378 |
$html .= $result_message;
|
379 |
$html .= '<form method="post" action="">';
|
380 |
$html .= '<input class="button-primary" type="submit" name="renumerate_orders" value="' . __( 'Renumerate orders', 'woocommerce-jetpack' ) . '">';
|
381 |
+
$html .= wp_nonce_field( 'renumerate_orders', 'renumerate-orders-nonce' );
|
382 |
$html .= '</form>';
|
383 |
$html .= '</div>';
|
384 |
$html .= '</div>';
|
includes/class-wcj-order-quantities.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Order Min/Max Quantities
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -105,19 +105,16 @@ if ( ! class_exists( 'WCJ_Order_Quantities' ) ) :
|
|
105 |
/**
|
106 |
* Prevents outdated min/max Quantity options.
|
107 |
*
|
108 |
-
* @version 5.6.
|
109 |
* @since 4.4.0
|
110 |
* @param int $product_id defines the product_id.
|
111 |
*/
|
112 |
public function prevent_outdated_min_max( $product_id ) {
|
113 |
$product = wc_get_product( $product_id );
|
114 |
-
$wpnonce =
|
115 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
116 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
117 |
-
}
|
118 |
if (
|
119 |
! $product->is_type( 'variable' ) ||
|
120 |
-
isset( $_POST['_wcj_order_quantities_min'] )
|
121 |
) {
|
122 |
return;
|
123 |
}
|
@@ -632,7 +629,7 @@ if ( ! class_exists( 'WCJ_Order_Quantities' ) ) :
|
|
632 |
/**
|
633 |
* Check_quantities.
|
634 |
*
|
635 |
-
* @version
|
636 |
* @since 2.9.0
|
637 |
* @param string $min_or_max defines the min_or_max.
|
638 |
* @param int $cart_item_quantities defines the cart_item_quantities.
|
@@ -642,7 +639,7 @@ if ( ! class_exists( 'WCJ_Order_Quantities' ) ) :
|
|
642 |
*/
|
643 |
public function check_quantities( $min_or_max, $cart_item_quantities, $cart_total_quantity, $_is_cart, $_return ) {
|
644 |
$min_or_max_cart_total_quantity = wcj_get_option( 'wcj_order_quantities_' . $min_or_max . '_cart_total_quantity', 0 );
|
645 |
-
if ( 0 !== ( $min_or_max_cart_total_quantity ) ) {
|
646 |
if (
|
647 |
( 'max' === $min_or_max && $cart_total_quantity > $min_or_max_cart_total_quantity ) ||
|
648 |
( 'min' === $min_or_max && $cart_total_quantity < $min_or_max_cart_total_quantity )
|
@@ -657,7 +654,7 @@ if ( ! class_exists( 'WCJ_Order_Quantities' ) ) :
|
|
657 |
if ( 'yes' === apply_filters( 'booster_option', 'no', wcj_get_option( 'wcj_order_quantities_' . $min_or_max . '_per_item_quantity_per_product', 'no' ) ) ) {
|
658 |
foreach ( $cart_item_quantities as $_product_id => $cart_item_quantity ) {
|
659 |
$max_or_max_per_item_quantity = get_post_meta( $_product_id, '_wcj_order_quantities_' . $min_or_max, true );
|
660 |
-
if ( 0 !== ( $max_or_max_per_item_quantity ) ) {
|
661 |
if (
|
662 |
( 'max' === $min_or_max && $cart_item_quantity > $max_or_max_per_item_quantity ) ||
|
663 |
( 'min' === $min_or_max && $cart_item_quantity < $max_or_max_per_item_quantity )
|
@@ -672,7 +669,7 @@ if ( ! class_exists( 'WCJ_Order_Quantities' ) ) :
|
|
672 |
}
|
673 |
}
|
674 |
$max_or_max_per_item_quantity = apply_filters( 'booster_option', 0, wcj_get_option( 'wcj_order_quantities_' . $min_or_max . '_per_item_quantity', 0 ) );
|
675 |
-
if ( 0 !== ( $max_or_max_per_item_quantity ) ) {
|
676 |
foreach ( $cart_item_quantities as $_product_id => $cart_item_quantity ) {
|
677 |
if (
|
678 |
'yes' === apply_filters( 'booster_option', 'no', wcj_get_option( 'wcj_order_quantities_' . $min_or_max . '_per_item_quantity_per_product', 'no' ) ) &&
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Order Min/Max Quantities
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
105 |
/**
|
106 |
* Prevents outdated min/max Quantity options.
|
107 |
*
|
108 |
+
* @version 5.6.7
|
109 |
* @since 4.4.0
|
110 |
* @param int $product_id defines the product_id.
|
111 |
*/
|
112 |
public function prevent_outdated_min_max( $product_id ) {
|
113 |
$product = wc_get_product( $product_id );
|
114 |
+
$wpnonce = isset( $_REQUEST['woocommerce_meta_nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['woocommerce_meta_nonce'] ), 'woocommerce_save_data' ) : false;
|
|
|
|
|
|
|
115 |
if (
|
116 |
! $product->is_type( 'variable' ) ||
|
117 |
+
isset( $_POST['_wcj_order_quantities_min'] ) || ! $wpnonce
|
118 |
) {
|
119 |
return;
|
120 |
}
|
629 |
/**
|
630 |
* Check_quantities.
|
631 |
*
|
632 |
+
* @version 5.6.7
|
633 |
* @since 2.9.0
|
634 |
* @param string $min_or_max defines the min_or_max.
|
635 |
* @param int $cart_item_quantities defines the cart_item_quantities.
|
639 |
*/
|
640 |
public function check_quantities( $min_or_max, $cart_item_quantities, $cart_total_quantity, $_is_cart, $_return ) {
|
641 |
$min_or_max_cart_total_quantity = wcj_get_option( 'wcj_order_quantities_' . $min_or_max . '_cart_total_quantity', 0 );
|
642 |
+
if ( (string) 0 !== ( $min_or_max_cart_total_quantity ) ) {
|
643 |
if (
|
644 |
( 'max' === $min_or_max && $cart_total_quantity > $min_or_max_cart_total_quantity ) ||
|
645 |
( 'min' === $min_or_max && $cart_total_quantity < $min_or_max_cart_total_quantity )
|
654 |
if ( 'yes' === apply_filters( 'booster_option', 'no', wcj_get_option( 'wcj_order_quantities_' . $min_or_max . '_per_item_quantity_per_product', 'no' ) ) ) {
|
655 |
foreach ( $cart_item_quantities as $_product_id => $cart_item_quantity ) {
|
656 |
$max_or_max_per_item_quantity = get_post_meta( $_product_id, '_wcj_order_quantities_' . $min_or_max, true );
|
657 |
+
if ( (string) 0 !== ( $max_or_max_per_item_quantity ) ) {
|
658 |
if (
|
659 |
( 'max' === $min_or_max && $cart_item_quantity > $max_or_max_per_item_quantity ) ||
|
660 |
( 'min' === $min_or_max && $cart_item_quantity < $max_or_max_per_item_quantity )
|
669 |
}
|
670 |
}
|
671 |
$max_or_max_per_item_quantity = apply_filters( 'booster_option', 0, wcj_get_option( 'wcj_order_quantities_' . $min_or_max . '_per_item_quantity', 0 ) );
|
672 |
+
if ( (string) 0 !== ( $max_or_max_per_item_quantity ) ) {
|
673 |
foreach ( $cart_item_quantities as $_product_id => $cart_item_quantity ) {
|
674 |
if (
|
675 |
'yes' === apply_filters( 'booster_option', 'no', wcj_get_option( 'wcj_order_quantities_' . $min_or_max . '_per_item_quantity_per_product', 'no' ) ) &&
|
includes/class-wcj-orders.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Orders
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -106,12 +106,12 @@ if ( ! class_exists( 'WCJ_Orders' ) ) :
|
|
106 |
/**
|
107 |
* Handle_orders_navigation.
|
108 |
*
|
109 |
-
* @version 5.6.
|
110 |
* @since 3.4.0
|
111 |
*/
|
112 |
public function handle_orders_navigation() {
|
113 |
if ( isset( $_GET['wcj_orders_navigation'] ) ) {
|
114 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key(
|
115 |
$adjacent_order_id = $wpnonce && isset( $_GET['post'] ) && isset( $_GET['wcj_orders_navigation'] ) ? wcj_get_adjacent_order_id( sanitize_text_field( wp_unslash( $_GET['post'] ) ), sanitize_text_field( wp_unslash( $_GET['wcj_orders_navigation'] ) ) ) : false;
|
116 |
$url = ( ! isset( $_GET['post'] ) || false === ( $adjacent_order_id ) ?
|
117 |
remove_query_arg( 'wcj_orders_navigation' ) :
|
@@ -253,15 +253,12 @@ if ( ! class_exists( 'WCJ_Orders' ) ) :
|
|
253 |
/**
|
254 |
* Admin_notice_regenerate_download_permissions.
|
255 |
*
|
256 |
-
* @version 5.6.
|
257 |
* @since 3.2.0
|
258 |
*/
|
259 |
public function admin_notice_regenerate_download_permissions() {
|
260 |
-
$wpnonce =
|
261 |
-
if (
|
262 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ), 'woocommerce-settings' ) : true;
|
263 |
-
}
|
264 |
-
if ( ! empty( $_REQUEST['wcj_bulk_regenerated_download_permissions'] ) ) {
|
265 |
$orders_count = intval( $_REQUEST['wcj_bulk_regenerated_download_permissions'] );
|
266 |
$message = sprintf(
|
267 |
/* translators: %s: translation added */
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Orders
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
106 |
/**
|
107 |
* Handle_orders_navigation.
|
108 |
*
|
109 |
+
* @version 5.6.7
|
110 |
* @since 3.4.0
|
111 |
*/
|
112 |
public function handle_orders_navigation() {
|
113 |
if ( isset( $_GET['wcj_orders_navigation'] ) ) {
|
114 |
+
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'wcj-order-meta-nonce' ) : false;
|
115 |
$adjacent_order_id = $wpnonce && isset( $_GET['post'] ) && isset( $_GET['wcj_orders_navigation'] ) ? wcj_get_adjacent_order_id( sanitize_text_field( wp_unslash( $_GET['post'] ) ), sanitize_text_field( wp_unslash( $_GET['wcj_orders_navigation'] ) ) ) : false;
|
116 |
$url = ( ! isset( $_GET['post'] ) || false === ( $adjacent_order_id ) ?
|
117 |
remove_query_arg( 'wcj_orders_navigation' ) :
|
253 |
/**
|
254 |
* Admin_notice_regenerate_download_permissions.
|
255 |
*
|
256 |
+
* @version 5.6.7
|
257 |
* @since 3.2.0
|
258 |
*/
|
259 |
public function admin_notice_regenerate_download_permissions() {
|
260 |
+
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'woocommerce-settings' ) : false;
|
261 |
+
if ( $wpnonce && ! empty( $_REQUEST['wcj_bulk_regenerated_download_permissions'] ) ) {
|
|
|
|
|
|
|
262 |
$orders_count = intval( $_REQUEST['wcj_bulk_regenerated_download_permissions'] );
|
263 |
$message = sprintf(
|
264 |
/* translators: %s: translation added */
|
includes/class-wcj-payment-gateways-currency.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Gateways Currency Converter
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.3.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -68,14 +68,16 @@ if ( ! class_exists( 'WCJ_Payment_Gateways_Currency' ) ) :
|
|
68 |
/**
|
69 |
* Fix_chosen_payment_method.
|
70 |
*
|
71 |
-
* @version 5.6.
|
72 |
* @since 3.9.0
|
73 |
* @param string | array $post_data defines the post_data.
|
74 |
*/
|
75 |
public function fix_chosen_payment_method( $post_data ) {
|
76 |
-
$wpnonce =
|
77 |
-
|
78 |
-
|
|
|
|
|
79 |
}
|
80 |
|
81 |
$payment_gateway = ( empty( $_POST['payment_method'] ) ? '' : sanitize_text_field( wp_unslash( $_POST['payment_method'] ) ) );
|
@@ -104,7 +106,7 @@ if ( ! class_exists( 'WCJ_Payment_Gateways_Currency' ) ) :
|
|
104 |
/**
|
105 |
* Change_shipping_price_by_gateway.
|
106 |
*
|
107 |
-
* @version
|
108 |
* @since 2.4.8
|
109 |
* @param int | array $package_rates defines the package_rates.
|
110 |
* @param string | array $package defines the package.
|
@@ -112,7 +114,7 @@ if ( ! class_exists( 'WCJ_Payment_Gateways_Currency' ) ) :
|
|
112 |
public function change_shipping_price_by_gateway( $package_rates, $package ) {
|
113 |
if ( $this->is_cart_or_checkout() ) {
|
114 |
$current_gateway = $this->get_chosen_payment_method();
|
115 |
-
if ( '' !== $current_gateway ) {
|
116 |
$gateway_currency_exchange_rate = wcj_get_option( 'wcj_gateways_currency_exchange_rate_' . $current_gateway );
|
117 |
return wcj_change_price_shipping_package_rates( $package_rates, $gateway_currency_exchange_rate );
|
118 |
}
|
@@ -150,7 +152,7 @@ if ( ! class_exists( 'WCJ_Payment_Gateways_Currency' ) ) :
|
|
150 |
/**
|
151 |
* Change_price_by_gateway.
|
152 |
*
|
153 |
-
* @version 5.6.
|
154 |
* @since 2.3.0
|
155 |
* @param string $price defines the price.
|
156 |
* @param string | array $product defines the product.
|
@@ -159,7 +161,7 @@ if ( ! class_exists( 'WCJ_Payment_Gateways_Currency' ) ) :
|
|
159 |
if ( $this->is_cart_or_checkout() ) {
|
160 |
$current_gateway = $this->get_chosen_payment_method();
|
161 |
|
162 |
-
if ( '' !== $current_gateway ) {
|
163 |
$gateway_currency_exchange_rate = wcj_get_option( 'wcj_gateways_currency_exchange_rate_' . $current_gateway );
|
164 |
$gateway_currency_exchange_rate = str_replace( ',', '.', $gateway_currency_exchange_rate );
|
165 |
if ( is_numeric( $price ) ) {
|
@@ -173,14 +175,14 @@ if ( ! class_exists( 'WCJ_Payment_Gateways_Currency' ) ) :
|
|
173 |
/**
|
174 |
* Extend_paypal_supported_currencies.
|
175 |
*
|
176 |
-
* @version
|
177 |
* @since 2.3.0
|
178 |
* @param array $supported_currencies defines the supported_currencies.
|
179 |
*/
|
180 |
public function extend_paypal_supported_currencies( $supported_currencies ) {
|
181 |
if ( $this->is_cart_or_checkout() ) {
|
182 |
$current_gateway = $this->get_chosen_payment_method();
|
183 |
-
if ( '' !== $current_gateway ) {
|
184 |
$gateway_currency = wcj_get_option( 'wcj_gateways_currency_' . $current_gateway );
|
185 |
if ( 'no_changes' !== $gateway_currency ) {
|
186 |
$supported_currencies[] = $gateway_currency;
|
@@ -193,14 +195,14 @@ if ( ! class_exists( 'WCJ_Payment_Gateways_Currency' ) ) :
|
|
193 |
/**
|
194 |
* Change_currency_code.
|
195 |
*
|
196 |
-
* @version
|
197 |
* @since 2.3.0
|
198 |
* @param string $currency defines the currency.
|
199 |
*/
|
200 |
public function change_currency_code( $currency ) {
|
201 |
if ( $this->is_cart_or_checkout() ) {
|
202 |
$current_gateway = $this->get_chosen_payment_method();
|
203 |
-
if ( '' !== $current_gateway ) {
|
204 |
$gateway_currency = wcj_get_option( 'wcj_gateways_currency_' . $current_gateway );
|
205 |
if ( 'no_changes' !== $gateway_currency ) {
|
206 |
return $gateway_currency;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Gateways Currency Converter
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.3.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
68 |
/**
|
69 |
* Fix_chosen_payment_method.
|
70 |
*
|
71 |
+
* @version 5.6.7
|
72 |
* @since 3.9.0
|
73 |
* @param string | array $post_data defines the post_data.
|
74 |
*/
|
75 |
public function fix_chosen_payment_method( $post_data ) {
|
76 |
+
$wpnonce = false;
|
77 |
+
$args = array();
|
78 |
+
if ( isset( $_POST['post_data'] ) ) {
|
79 |
+
parse_str( sanitize_text_field( wp_unslash( $_POST['post_data'] ) ), $args );
|
80 |
+
$wpnonce = isset( $args['woocommerce-process-checkout-nonce'] ) ? wp_verify_nonce( sanitize_key( $args['woocommerce-process-checkout-nonce'] ), 'woocommerce-process_checkout' ) : false;
|
81 |
}
|
82 |
|
83 |
$payment_gateway = ( empty( $_POST['payment_method'] ) ? '' : sanitize_text_field( wp_unslash( $_POST['payment_method'] ) ) );
|
106 |
/**
|
107 |
* Change_shipping_price_by_gateway.
|
108 |
*
|
109 |
+
* @version 5.6.7
|
110 |
* @since 2.4.8
|
111 |
* @param int | array $package_rates defines the package_rates.
|
112 |
* @param string | array $package defines the package.
|
114 |
public function change_shipping_price_by_gateway( $package_rates, $package ) {
|
115 |
if ( $this->is_cart_or_checkout() ) {
|
116 |
$current_gateway = $this->get_chosen_payment_method();
|
117 |
+
if ( '' !== $current_gateway && null !== $current_gateway ) {
|
118 |
$gateway_currency_exchange_rate = wcj_get_option( 'wcj_gateways_currency_exchange_rate_' . $current_gateway );
|
119 |
return wcj_change_price_shipping_package_rates( $package_rates, $gateway_currency_exchange_rate );
|
120 |
}
|
152 |
/**
|
153 |
* Change_price_by_gateway.
|
154 |
*
|
155 |
+
* @version 5.6.7
|
156 |
* @since 2.3.0
|
157 |
* @param string $price defines the price.
|
158 |
* @param string | array $product defines the product.
|
161 |
if ( $this->is_cart_or_checkout() ) {
|
162 |
$current_gateway = $this->get_chosen_payment_method();
|
163 |
|
164 |
+
if ( '' !== $current_gateway && null !== $current_gateway ) {
|
165 |
$gateway_currency_exchange_rate = wcj_get_option( 'wcj_gateways_currency_exchange_rate_' . $current_gateway );
|
166 |
$gateway_currency_exchange_rate = str_replace( ',', '.', $gateway_currency_exchange_rate );
|
167 |
if ( is_numeric( $price ) ) {
|
175 |
/**
|
176 |
* Extend_paypal_supported_currencies.
|
177 |
*
|
178 |
+
* @version 5.6.7
|
179 |
* @since 2.3.0
|
180 |
* @param array $supported_currencies defines the supported_currencies.
|
181 |
*/
|
182 |
public function extend_paypal_supported_currencies( $supported_currencies ) {
|
183 |
if ( $this->is_cart_or_checkout() ) {
|
184 |
$current_gateway = $this->get_chosen_payment_method();
|
185 |
+
if ( '' !== $current_gateway && null !== $current_gateway ) {
|
186 |
$gateway_currency = wcj_get_option( 'wcj_gateways_currency_' . $current_gateway );
|
187 |
if ( 'no_changes' !== $gateway_currency ) {
|
188 |
$supported_currencies[] = $gateway_currency;
|
195 |
/**
|
196 |
* Change_currency_code.
|
197 |
*
|
198 |
+
* @version 5.6.7
|
199 |
* @since 2.3.0
|
200 |
* @param string $currency defines the currency.
|
201 |
*/
|
202 |
public function change_currency_code( $currency ) {
|
203 |
if ( $this->is_cart_or_checkout() ) {
|
204 |
$current_gateway = $this->get_chosen_payment_method();
|
205 |
+
if ( '' !== $current_gateway && null !== $current_gateway ) {
|
206 |
$gateway_currency = wcj_get_option( 'wcj_gateways_currency_' . $current_gateway );
|
207 |
if ( 'no_changes' !== $gateway_currency ) {
|
208 |
return $gateway_currency;
|
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 5.6.
|
6 |
* @since 2.4.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -77,7 +77,7 @@ if ( ! class_exists( 'WCJ_Payment_Gateways_Min_Max' ) ) :
|
|
77 |
/**
|
78 |
* Remove_payment_gateways.
|
79 |
*
|
80 |
-
* @version 5.6.
|
81 |
* @since 4.7.0
|
82 |
*
|
83 |
* @param array $_available_gateways defines the _available_gateways.
|
@@ -117,7 +117,7 @@ if ( ! class_exists( 'WCJ_Payment_Gateways_Min_Max' ) ) :
|
|
117 |
unset( $_available_gateways[ $key ] );
|
118 |
continue;
|
119 |
}
|
120 |
-
|
121 |
if ( '0' !== (string) $max && $total_in_cart > $max ) {
|
122 |
$notices[] = str_replace( array( '%gateway_title%', '%max_amount%' ), array( $gateway->title, wc_price( $max ) ), $notices_template_max );
|
123 |
unset( $_available_gateways[ $key ] );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Gateways Min/Max Amounts
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.4.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
77 |
/**
|
78 |
* Remove_payment_gateways.
|
79 |
*
|
80 |
+
* @version 5.6.7
|
81 |
* @since 4.7.0
|
82 |
*
|
83 |
* @param array $_available_gateways defines the _available_gateways.
|
117 |
unset( $_available_gateways[ $key ] );
|
118 |
continue;
|
119 |
}
|
120 |
+
|
121 |
if ( '0' !== (string) $max && $total_in_cart > $max ) {
|
122 |
$notices[] = str_replace( array( '%gateway_title%', '%max_amount%' ), array( $gateway->title, wc_price( $max ) ), $notices_template_max );
|
123 |
unset( $_available_gateways[ $key ] );
|
includes/class-wcj-payment-gateways.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Custom Gateways
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -58,7 +58,7 @@ if ( ! class_exists( 'WCJ_Payment_Gateways' ) ) :
|
|
58 |
/**
|
59 |
* Check_required_wcj_input_fields.
|
60 |
*
|
61 |
-
* @version 5.6.
|
62 |
* @since 3.0.1
|
63 |
* @param array $data defines the data.
|
64 |
* @param string | array $errors defines the errors.
|
@@ -66,7 +66,7 @@ if ( ! class_exists( 'WCJ_Payment_Gateways' ) ) :
|
|
66 |
public function check_required_wcj_input_fields( $data, $errors ) {
|
67 |
$payment_method = $data['payment_method'];
|
68 |
if ( 'jetpack_custom_gateway' === substr( $payment_method, 0, 22 ) ) {
|
69 |
-
$wpnonce = isset( $_REQUEST['woocommerce-process-checkout-nonce'] ) ? wp_verify_nonce( sanitize_key(
|
70 |
foreach ( $_POST as $key => $value ) {
|
71 |
if ( 'wcj_input_field_' === substr( $key, 0, 16 ) ) {
|
72 |
if ( $wpnonce && isset( $_POST[ 'for_' . $key ] ) && $payment_method === $_POST[ 'for_' . $key ] ) {
|
@@ -139,7 +139,7 @@ if ( ! class_exists( 'WCJ_Payment_Gateways' ) ) :
|
|
139 |
/**
|
140 |
* Update_custom_payment_gateways_fields_order_meta.
|
141 |
*
|
142 |
-
* @version 5.6.
|
143 |
* @since 2.5.2
|
144 |
* @param int $order_id defines the order_id.
|
145 |
* @param string $posted defines the posted.
|
@@ -148,7 +148,7 @@ if ( ! class_exists( 'WCJ_Payment_Gateways' ) ) :
|
|
148 |
$payment_method = get_post_meta( $order_id, '_payment_method', true );
|
149 |
if ( 'jetpack_custom_gateway' === substr( $payment_method, 0, 22 ) ) {
|
150 |
$input_fields = array();
|
151 |
-
$wpnonce = isset( $_REQUEST['woocommerce-process-checkout-nonce'] ) ? wp_verify_nonce( sanitize_key(
|
152 |
foreach ( $_POST as $key => $value ) {
|
153 |
if ( 'wcj_input_field_' === substr( $key, 0, 16 ) ) {
|
154 |
if ( ! is_array( $value ) ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Custom Gateways
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
58 |
/**
|
59 |
* Check_required_wcj_input_fields.
|
60 |
*
|
61 |
+
* @version 5.6.7
|
62 |
* @since 3.0.1
|
63 |
* @param array $data defines the data.
|
64 |
* @param string | array $errors defines the errors.
|
66 |
public function check_required_wcj_input_fields( $data, $errors ) {
|
67 |
$payment_method = $data['payment_method'];
|
68 |
if ( 'jetpack_custom_gateway' === substr( $payment_method, 0, 22 ) ) {
|
69 |
+
$wpnonce = isset( $_REQUEST['woocommerce-process-checkout-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['woocommerce-process-checkout-nonce'] ), 'woocommerce-process_checkout' ) : false;
|
70 |
foreach ( $_POST as $key => $value ) {
|
71 |
if ( 'wcj_input_field_' === substr( $key, 0, 16 ) ) {
|
72 |
if ( $wpnonce && isset( $_POST[ 'for_' . $key ] ) && $payment_method === $_POST[ 'for_' . $key ] ) {
|
139 |
/**
|
140 |
* Update_custom_payment_gateways_fields_order_meta.
|
141 |
*
|
142 |
+
* @version 5.6.7
|
143 |
* @since 2.5.2
|
144 |
* @param int $order_id defines the order_id.
|
145 |
* @param string $posted defines the posted.
|
148 |
$payment_method = get_post_meta( $order_id, '_payment_method', true );
|
149 |
if ( 'jetpack_custom_gateway' === substr( $payment_method, 0, 22 ) ) {
|
150 |
$input_fields = array();
|
151 |
+
$wpnonce = isset( $_REQUEST['woocommerce-process-checkout-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['woocommerce-process-checkout-nonce'] ), 'woocommerce-process_checkout' ) : false;
|
152 |
foreach ( $_POST as $key => $value ) {
|
153 |
if ( 'wcj_input_field_' === substr( $key, 0, 16 ) ) {
|
154 |
if ( ! is_array( $value ) ) {
|
includes/class-wcj-pdf-invoicing.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - PDF Invoicing
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -447,22 +447,21 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing' ) ) :
|
|
447 |
/**
|
448 |
* Catch_args.
|
449 |
*
|
450 |
-
* @version 5.6.
|
451 |
*/
|
452 |
public function catch_args() {
|
453 |
-
$
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
$this->
|
458 |
-
$this->
|
459 |
-
$this->
|
460 |
-
$this->get_invoice = ( $wpnonce && isset( $_GET['get_invoice'] ) && '1' === $_GET['get_invoice'] );
|
461 |
|
462 |
-
if ( $
|
463 |
$this->create_document( sanitize_text_field( wp_unslash( $_GET['create_invoice_for_order_id'] ) ), $this->invoice_type_id );
|
464 |
}
|
465 |
-
if ( $
|
466 |
$this->delete_document( sanitize_text_field( wp_unslash( $_GET['delete_invoice_for_order_id'] ) ), $this->invoice_type_id );
|
467 |
}
|
468 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - PDF Invoicing
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
447 |
/**
|
448 |
* Catch_args.
|
449 |
*
|
450 |
+
* @version 5.6.7
|
451 |
*/
|
452 |
public function catch_args() {
|
453 |
+
$create_invoice_for_order_id_wpnonce = isset( $_REQUEST['create_invoice_for_order_id-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['create_invoice_for_order_id-nonce'] ), 'create_invoice_for_order_id' ) : false;
|
454 |
+
$delete_invoice_for_order_id_wpnonce = isset( $_REQUEST['delete_invoice_for_order_id-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['delete_invoice_for_order_id-nonce'] ), 'delete_invoice_for_order_id' ) : false;
|
455 |
+
|
456 |
+
$this->order_id = ( isset( $_GET['order_id'] ) ) ? sanitize_text_field( wp_unslash( $_GET['order_id'] ) ) : 0;
|
457 |
+
$this->invoice_type_id = ( isset( $_GET['invoice_type_id'] ) ) ? sanitize_text_field( wp_unslash( $_GET['invoice_type_id'] ) ) : '';
|
458 |
+
$this->save_as_pdf = ( isset( $_GET['save_pdf_invoice'] ) && '1' === $_GET['save_pdf_invoice'] );
|
459 |
+
$this->get_invoice = ( isset( $_GET['get_invoice'] ) && '1' === $_GET['get_invoice'] );
|
|
|
460 |
|
461 |
+
if ( $create_invoice_for_order_id_wpnonce && isset( $_GET['create_invoice_for_order_id'] ) && $this->check_user_roles( false ) ) {
|
462 |
$this->create_document( sanitize_text_field( wp_unslash( $_GET['create_invoice_for_order_id'] ) ), $this->invoice_type_id );
|
463 |
}
|
464 |
+
if ( $delete_invoice_for_order_id_wpnonce && isset( $_GET['delete_invoice_for_order_id'] ) && $this->check_user_roles( false ) ) {
|
465 |
$this->delete_document( sanitize_text_field( wp_unslash( $_GET['delete_invoice_for_order_id'] ) ), $this->invoice_type_id );
|
466 |
}
|
467 |
}
|
includes/class-wcj-price-by-country.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Prices and Currencies by Country
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -153,14 +153,11 @@ if ( ! class_exists( 'WCJ_Price_By_Country' ) ) :
|
|
153 |
/**
|
154 |
* Recalculate_price_filter_products_prices.
|
155 |
*
|
156 |
-
* @version 5.6.
|
157 |
* @since 2.5.6
|
158 |
*/
|
159 |
public function recalculate_price_filter_products_prices() {
|
160 |
-
$wpnonce =
|
161 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
162 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ), 'woocommerce-settings' ) : true;
|
163 |
-
}
|
164 |
if ( $wpnonce && isset( $_GET['recalculate_price_filter_products_prices'] ) && ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) ) {
|
165 |
wcj_update_products_price_by_country();
|
166 |
global $wcj_notice;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Prices and Currencies by Country
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
153 |
/**
|
154 |
* Recalculate_price_filter_products_prices.
|
155 |
*
|
156 |
+
* @version 5.6.7
|
157 |
* @since 2.5.6
|
158 |
*/
|
159 |
public function recalculate_price_filter_products_prices() {
|
160 |
+
$wpnonce = isset( $_REQUEST['recalculate_price_filter_products_prices-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['recalculate_price_filter_products_prices-nonce'] ), 'recalculate_price_filter_products_prices' ) : false;
|
|
|
|
|
|
|
161 |
if ( $wpnonce && isset( $_GET['recalculate_price_filter_products_prices'] ) && ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) ) {
|
162 |
wcj_update_products_price_by_country();
|
163 |
global $wcj_notice;
|
includes/class-wcj-price-by-user-role.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Price based on User Role
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.5.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo Fix "Make Empty Price" option for variable products
|
@@ -228,33 +228,34 @@ if ( ! class_exists( 'WCJ_Price_By_User_Role' ) ) :
|
|
228 |
/**
|
229 |
* Add_notice_query_var.
|
230 |
*
|
231 |
-
* @version 5.6.
|
232 |
* @since 2.5.0
|
233 |
* @param string $location defines the location.
|
234 |
*/
|
235 |
public function add_notice_query_var( $location ) {
|
|
|
|
|
|
|
|
|
236 |
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
|
237 |
-
return esc_url_raw( add_query_arg(
|
238 |
}
|
239 |
|
240 |
/**
|
241 |
* Admin_notices.
|
242 |
*
|
243 |
-
* @version 5.6.
|
244 |
* @since 2.5.0
|
245 |
*/
|
246 |
public function admin_notices() {
|
247 |
-
$wpnonce =
|
248 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
249 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
250 |
-
}
|
251 |
if ( ! $wpnonce || ! isset( $_GET['wcj_product_price_by_user_role_admin_notice'] ) ) {
|
252 |
return;
|
253 |
}
|
254 |
?><div class="error"><p>
|
255 |
<?php
|
256 |
echo '<div class="message">'
|
257 |
-
. wp_kses_post( __( 'Booster: Free plugin\'s version is limited to only one price by user role per products settings product enabled at a time. You will need to get <a href="https://booster.io/
|
258 |
. '</div>';
|
259 |
?>
|
260 |
</p></div>
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Price based on User Role
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.5.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo Fix "Make Empty Price" option for variable products
|
228 |
/**
|
229 |
* Add_notice_query_var.
|
230 |
*
|
231 |
+
* @version 5.6.7
|
232 |
* @since 2.5.0
|
233 |
* @param string $location defines the location.
|
234 |
*/
|
235 |
public function add_notice_query_var( $location ) {
|
236 |
+
$query_arg = array(
|
237 |
+
'wcj_product_price_by_user_role_admin_notice' => true,
|
238 |
+
'wcj_product_price_by_user_role_admin_notice-nonce' => wp_create_nonce( 'wcj_product_price_by_user_role_admin_notice' ),
|
239 |
+
);
|
240 |
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
|
241 |
+
return esc_url_raw( add_query_arg( $query_arg, $location ) );
|
242 |
}
|
243 |
|
244 |
/**
|
245 |
* Admin_notices.
|
246 |
*
|
247 |
+
* @version 5.6.7
|
248 |
* @since 2.5.0
|
249 |
*/
|
250 |
public function admin_notices() {
|
251 |
+
$wpnonce = isset( $_REQUEST['wcj_product_price_by_user_role_admin_notice-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj_product_price_by_user_role_admin_notice-nonce'] ), 'wcj_product_price_by_user_role_admin_notice' ) : false;
|
|
|
|
|
|
|
252 |
if ( ! $wpnonce || ! isset( $_GET['wcj_product_price_by_user_role_admin_notice'] ) ) {
|
253 |
return;
|
254 |
}
|
255 |
?><div class="error"><p>
|
256 |
<?php
|
257 |
echo '<div class="message">'
|
258 |
+
. wp_kses_post( __( 'Booster: Free plugin\'s version is limited to only one price by user role per products settings product enabled at a time. You will need to get <a href="https://booster.io/buy-booster/" target="_blank">Booster Plus</a> to add unlimited number of price by user role per product settings products.', 'woocommerce-jetpack' ) )
|
259 |
. '</div>';
|
260 |
?>
|
261 |
</p></div>
|
includes/class-wcj-price-labels.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Custom Price Labels
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -107,13 +107,13 @@ if ( ! class_exists( 'WCJ_Price_Labels' ) ) :
|
|
107 |
/**
|
108 |
* Save_custom_price_labels.
|
109 |
*
|
110 |
-
* @version 5.6.
|
111 |
* @param int $post_id defines the post_id.
|
112 |
* @param string | array $post defines the post.
|
113 |
*/
|
114 |
public function save_custom_price_labels( $post_id, $post ) {
|
115 |
-
$
|
116 |
-
if ( ! isset( $_POST['woojetpack_price_labels_save_post'] )
|
117 |
return;
|
118 |
}
|
119 |
foreach ( $this->custom_tab_sections as $custom_tab_section ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Custom Price Labels
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
107 |
/**
|
108 |
* Save_custom_price_labels.
|
109 |
*
|
110 |
+
* @version 5.6.7
|
111 |
* @param int $post_id defines the post_id.
|
112 |
* @param string | array $post defines the post.
|
113 |
*/
|
114 |
public function save_custom_price_labels( $post_id, $post ) {
|
115 |
+
$wpnonce = isset( $_POST['woocommerce_meta_nonce'] ) ? wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['woocommerce_meta_nonce'] ) ), 'woocommerce_save_data' ) : false;
|
116 |
+
if ( ! isset( $_POST['woojetpack_price_labels_save_post'] ) || ! $wpnonce ) {
|
117 |
return;
|
118 |
}
|
119 |
foreach ( $this->custom_tab_sections as $custom_tab_section ) {
|
includes/class-wcj-product-addons.php
CHANGED
@@ -311,7 +311,7 @@ if ( ! class_exists( 'WCJ_Product_Addons' ) ) :
|
|
311 |
* @since 2.5.3
|
312 |
*/
|
313 |
public function get_the_notice() {
|
314 |
-
return __( 'Booster: Free plugin\'s version is limited to only three products with per product addons enabled at a time. You will need to get <a href="https://booster.io/
|
315 |
}
|
316 |
|
317 |
/**
|
311 |
* @since 2.5.3
|
312 |
*/
|
313 |
public function get_the_notice() {
|
314 |
+
return __( 'Booster: Free plugin\'s version is limited to only three products with per product addons enabled at a time. You will need to get <a href="https://booster.io/buy-booster/" target="_blank">Booster Plus</a> to add unlimited number of products with per product addons.', 'woocommerce-jetpack' );
|
315 |
}
|
316 |
|
317 |
/**
|
includes/class-wcj-product-bookings.php
CHANGED
@@ -534,7 +534,7 @@ if ( ! class_exists( 'WCJ_Product_Bookings' ) ) :
|
|
534 |
<div class="error"><p>
|
535 |
<?php
|
536 |
echo '<div class="message">'
|
537 |
-
. wp_kses_post( __( 'Booster: Free plugin\'s version is limited to only one bookings product enabled at a time. You will need to get <a href="https://booster.io/
|
538 |
. '</div>';
|
539 |
?>
|
540 |
</p></div>
|
534 |
<div class="error"><p>
|
535 |
<?php
|
536 |
echo '<div class="message">'
|
537 |
+
. wp_kses_post( __( 'Booster: Free plugin\'s version is limited to only one bookings product enabled at a time. You will need to get <a href="https://booster.io/buy-booster/" target="_blank">Booster Plus</a> to add unlimited number of bookings products.', 'woocommerce-jetpack' ) )
|
538 |
. '</div>';
|
539 |
?>
|
540 |
</p></div>
|
includes/class-wcj-product-input-fields.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Input Fields
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -152,22 +152,32 @@ if ( ! class_exists( 'WCJ_Product_Input_Fields' ) ) :
|
|
152 |
/**
|
153 |
* Handle_downloads.
|
154 |
*
|
155 |
-
* @version 5.6.
|
156 |
* @since 2.2.2
|
157 |
*/
|
158 |
public function handle_downloads() {
|
159 |
-
if ( isset( $_GET['wcj_download_file'] ) ) {
|
160 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
$upload_dir = wcj_get_wcj_uploads_dir( 'input_fields_uploads' );
|
162 |
$file_path = $upload_dir . '/' . $file_name;
|
|
|
163 |
if ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) {
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
|
|
|
|
171 |
exit();
|
172 |
}
|
173 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Input Fields
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
152 |
/**
|
153 |
* Handle_downloads.
|
154 |
*
|
155 |
+
* @version 5.6.7
|
156 |
* @since 2.2.2
|
157 |
*/
|
158 |
public function handle_downloads() {
|
159 |
+
if ( isset( $_GET['wcj_download_file'] ) ) {
|
160 |
+
$wcj_download_file_nonce = isset( $_GET['wcj_download_file_nonce'] ) ? sanitize_key( wp_unslash( $_GET['wcj_download_file_nonce'] ) ) : '';
|
161 |
+
$wpnonce = wp_verify_nonce( $wcj_download_file_nonce, 'wcj_download_file_nonce' );
|
162 |
+
if ( ! $wpnonce ) {
|
163 |
+
wp_safe_redirect( admin_url() );
|
164 |
+
return;
|
165 |
+
}
|
166 |
+
|
167 |
+
$file_name = sanitize_file_name( wp_unslash( $_GET['wcj_download_file'] ) );
|
168 |
$upload_dir = wcj_get_wcj_uploads_dir( 'input_fields_uploads' );
|
169 |
$file_path = $upload_dir . '/' . $file_name;
|
170 |
+
|
171 |
if ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) {
|
172 |
+
$real_file_path = realpath( $file_path );
|
173 |
+
$real_base_path = realpath( $upload_dir ) . DIRECTORY_SEPARATOR;
|
174 |
+
|
175 |
+
if ( false === $real_file_path || 0 !== strpos( $real_file_path, $real_base_path ) ) {
|
176 |
+
wp_safe_redirect( admin_url() );
|
177 |
+
return; // Traversal attempt.
|
178 |
+
}
|
179 |
+
|
180 |
+
WC_Download_Handler::download_file_force( $file_path, $file_name );
|
181 |
exit();
|
182 |
}
|
183 |
}
|
includes/class-wcj-product-open-pricing.php
CHANGED
@@ -247,7 +247,7 @@ if ( ! class_exists( 'WCJ_Product_Open_Pricing' ) ) :
|
|
247 |
?><div class="error"><p>
|
248 |
<?php
|
249 |
echo '<div class="message">'
|
250 |
-
. wp_kses_post( 'Booster: Free plugin\'s version is limited to only one open pricing product enabled at a time. You will need to get <a href="https://booster.io/
|
251 |
. '</div>';
|
252 |
?>
|
253 |
</p></div>
|
247 |
?><div class="error"><p>
|
248 |
<?php
|
249 |
echo '<div class="message">'
|
250 |
+
. wp_kses_post( 'Booster: Free plugin\'s version is limited to only one open pricing product enabled at a time. You will need to get <a href="https://booster.io/buy-booster/" target="_blank">Booster Plus</a> to add unlimited number of open pricing products.', 'woocommerce-jetpack' )
|
251 |
. '</div>';
|
252 |
?>
|
253 |
</p></div>
|
includes/class-wcj-product-price-by-formula.php
CHANGED
@@ -449,7 +449,7 @@ if ( ! class_exists( 'WCJ_Product_Price_By_Formula' ) ) :
|
|
449 |
?><div class="error"><p>
|
450 |
<?php
|
451 |
echo '<div class="message">'
|
452 |
-
. wp_kses_post( 'Booster: Free plugin\'s version is limited to only one price by formula product enabled at a time. You will need to get <a href="https://booster.io/
|
453 |
. '</div>';
|
454 |
?>
|
455 |
</p></div>
|
449 |
?><div class="error"><p>
|
450 |
<?php
|
451 |
echo '<div class="message">'
|
452 |
+
. wp_kses_post( 'Booster: Free plugin\'s version is limited to only one price by formula product enabled at a time. You will need to get <a href="https://booster.io/buy-booster/" target="_blank">Booster Plus</a> to add unlimited number of price by formula products.', 'woocommerce-jetpack' )
|
453 |
. '</div>';
|
454 |
?>
|
455 |
</p></div>
|
includes/class-wcj-products-per-page.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Products per Page
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.6.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -53,7 +53,7 @@ if ( ! class_exists( 'WCJ_Products_Per_Page' ) ) :
|
|
53 |
/**
|
54 |
* Add_products_per_page_form.
|
55 |
*
|
56 |
-
* @version 5.6.
|
57 |
* @since 2.5.3
|
58 |
*/
|
59 |
public function add_products_per_page_form() {
|
@@ -98,6 +98,7 @@ if ( ! class_exists( 'WCJ_Products_Per_Page' ) ) :
|
|
98 |
__( 'Products <strong>%1$from% - %to%</strong> from <strong>%total%</strong>. Products on page %2$select_form%', 'woocommerce-jetpack' )
|
99 |
);
|
100 |
$html .= str_replace( array( '%from%', '%to%', '%total%', '%select_form%' ), array( $products_from, $products_to, $products_total, $select_form ), $_text );
|
|
|
101 |
$html .= '</form>';
|
102 |
$html .= wcj_get_option( 'wcj_products_per_page_text_after', '</div>' );
|
103 |
|
@@ -133,15 +134,12 @@ if ( ! class_exists( 'WCJ_Products_Per_Page' ) ) :
|
|
133 |
/**
|
134 |
* Get_current_products_per_page_number.
|
135 |
*
|
136 |
-
* @version 5.6.
|
137 |
* @since 3.8.0
|
138 |
* @param string $do_save defines the do_save.
|
139 |
*/
|
140 |
public function get_current_products_per_page_number( $do_save ) {
|
141 |
-
$wpnonce
|
142 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
143 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
144 |
-
}
|
145 |
$products_per_page = $this->get_saved_products_per_page_number();
|
146 |
|
147 |
if ( isset( $_REQUEST['wcj_products_per_page'] ) && ! empty( $_REQUEST['wcj_products_per_page'] ) && $wpnonce ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Products per Page
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.6.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
53 |
/**
|
54 |
* Add_products_per_page_form.
|
55 |
*
|
56 |
+
* @version 5.6.7
|
57 |
* @since 2.5.3
|
58 |
*/
|
59 |
public function add_products_per_page_form() {
|
98 |
__( 'Products <strong>%1$from% - %to%</strong> from <strong>%total%</strong>. Products on page %2$select_form%', 'woocommerce-jetpack' )
|
99 |
);
|
100 |
$html .= str_replace( array( '%from%', '%to%', '%total%', '%select_form%' ), array( $products_from, $products_to, $products_total, $select_form ), $_text );
|
101 |
+
$html .= wp_nonce_field( 'wcj_products_per_page', 'wcj_products_per_page-nonce' );
|
102 |
$html .= '</form>';
|
103 |
$html .= wcj_get_option( 'wcj_products_per_page_text_after', '</div>' );
|
104 |
|
134 |
/**
|
135 |
* Get_current_products_per_page_number.
|
136 |
*
|
137 |
+
* @version 5.6.7
|
138 |
* @since 3.8.0
|
139 |
* @param string $do_save defines the do_save.
|
140 |
*/
|
141 |
public function get_current_products_per_page_number( $do_save ) {
|
142 |
+
$wpnonce = isset( $_REQUEST['wcj_products_per_page-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj_products_per_page-nonce'] ), 'wcj_products_per_page' ) : false;
|
|
|
|
|
|
|
143 |
$products_per_page = $this->get_saved_products_per_page_number();
|
144 |
|
145 |
if ( isset( $_REQUEST['wcj_products_per_page'] ) && ! empty( $_REQUEST['wcj_products_per_page'] ) && $wpnonce ) {
|
includes/class-wcj-sorting.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Sorting
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -298,21 +298,21 @@ if ( ! class_exists( 'WCJ_Sorting' ) ) :
|
|
298 |
* Add new sorting options to WooCommerce sorting.
|
299 |
*
|
300 |
* @param array $args Get args.
|
301 |
-
* @version 5.6.
|
302 |
*/
|
303 |
public function custom_woocommerce_get_catalog_ordering_args( $args ) {
|
304 |
// Get ordering from query string.
|
305 |
-
$
|
306 |
-
if (
|
307 |
-
|
308 |
}
|
309 |
-
|
310 |
$orderby_value = ( WCJ_IS_WC_VERSION_BELOW_3 ) ?
|
311 |
-
( ( isset( $
|
312 |
'woocommerce_default_catalog_orderby',
|
313 |
get_option( 'woocommerce_default_catalog_orderby' )
|
314 |
) ) :
|
315 |
-
( isset( $
|
316 |
'woocommerce_default_catalog_orderby',
|
317 |
get_option( 'woocommerce_default_catalog_orderby' )
|
318 |
)
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Sorting
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
298 |
* Add new sorting options to WooCommerce sorting.
|
299 |
*
|
300 |
* @param array $args Get args.
|
301 |
+
* @version 5.6.7
|
302 |
*/
|
303 |
public function custom_woocommerce_get_catalog_ordering_args( $args ) {
|
304 |
// Get ordering from query string.
|
305 |
+
$_get = array();
|
306 |
+
if ( ! isset( $_SERVER['QUERY_STRING'] ) ) {
|
307 |
+
return $args;
|
308 |
}
|
309 |
+
parse_str( sanitize_text_field( wp_unslash( $_SERVER['QUERY_STRING'] ) ), $_get );
|
310 |
$orderby_value = ( WCJ_IS_WC_VERSION_BELOW_3 ) ?
|
311 |
+
( ( isset( $_get['orderby'] ) && $wpnonce ) ? woocommerce_clean( sanitize_text_field( wp_unslash( $_get['orderby'] ) ) ) : apply_filters(
|
312 |
'woocommerce_default_catalog_orderby',
|
313 |
get_option( 'woocommerce_default_catalog_orderby' )
|
314 |
) ) :
|
315 |
+
( isset( $_get['orderby'] ) ? wc_clean( sanitize_text_field( wp_unslash( $_get['orderby'] ) ) ) : apply_filters(
|
316 |
'woocommerce_default_catalog_orderby',
|
317 |
get_option( 'woocommerce_default_catalog_orderby' )
|
318 |
)
|
includes/class-wcj-tax-display.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Tax Display
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -59,15 +59,12 @@ if ( ! class_exists( 'WCJ_Tax_Display' ) ) :
|
|
59 |
/**
|
60 |
* Tax_display_toggle_param.
|
61 |
*
|
62 |
-
* @version 5.6.
|
63 |
* @since 3.2.4
|
64 |
*/
|
65 |
public function tax_display_toggle_param() {
|
66 |
wcj_session_maybe_start();
|
67 |
-
$wpnonce =
|
68 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
69 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
70 |
-
}
|
71 |
if ( $wpnonce && isset( $_REQUEST['wcj_button_toggle_tax_display'] ) ) {
|
72 |
$session_value = wcj_session_get( 'wcj_toggle_tax_display' );
|
73 |
$current_value = ( '' === $session_value ? wcj_get_option( 'woocommerce_tax_display_shop', 'excl' ) : $session_value );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Tax Display
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
59 |
/**
|
60 |
* Tax_display_toggle_param.
|
61 |
*
|
62 |
+
* @version 5.6.7
|
63 |
* @since 3.2.4
|
64 |
*/
|
65 |
public function tax_display_toggle_param() {
|
66 |
wcj_session_maybe_start();
|
67 |
+
$wpnonce = isset( $_REQUEST['wcj-button-toggle-tax-display-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj-button-toggle-tax-display-nonce'] ), 'wcj_button_toggle_tax_display' ) : false;
|
|
|
|
|
|
|
68 |
if ( $wpnonce && isset( $_REQUEST['wcj_button_toggle_tax_display'] ) ) {
|
69 |
$session_value = wcj_session_get( 'wcj_toggle_tax_display' );
|
70 |
$current_value = ( '' === $session_value ? wcj_get_option( 'woocommerce_tax_display_shop', 'excl' ) : $session_value );
|
includes/class-wcj-url-coupons.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - URL Coupons
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.9.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -95,19 +95,20 @@ if ( ! class_exists( 'WCJ_URL_Coupons' ) ) :
|
|
95 |
/**
|
96 |
* Maybe_apply_url_coupon.
|
97 |
*
|
98 |
-
* @version 5.6.
|
99 |
* @since 2.7.0
|
100 |
* @todo (maybe) options to add products to cart with query arg
|
101 |
* @todo (maybe) if ( ! WC()->cart->has_discount( $coupon_code ) ) {}
|
102 |
*/
|
103 |
public function maybe_apply_url_coupon() {
|
104 |
$arg_key = wcj_get_option( 'wcj_url_coupons_key', 'wcj_apply_coupon' );
|
105 |
-
$
|
106 |
-
if (
|
107 |
-
|
108 |
}
|
109 |
-
|
110 |
-
|
|
|
111 |
$this->maybe_add_products_to_cart( $coupon_code );
|
112 |
WC()->cart->add_discount( $coupon_code );
|
113 |
wp_safe_redirect( $this->get_redirect_url( $arg_key ) );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - URL Coupons
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.9.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
95 |
/**
|
96 |
* Maybe_apply_url_coupon.
|
97 |
*
|
98 |
+
* @version 5.6.7
|
99 |
* @since 2.7.0
|
100 |
* @todo (maybe) options to add products to cart with query arg
|
101 |
* @todo (maybe) if ( ! WC()->cart->has_discount( $coupon_code ) ) {}
|
102 |
*/
|
103 |
public function maybe_apply_url_coupon() {
|
104 |
$arg_key = wcj_get_option( 'wcj_url_coupons_key', 'wcj_apply_coupon' );
|
105 |
+
$_get = array();
|
106 |
+
if ( ! isset( $_SERVER['QUERY_STRING'] ) ) {
|
107 |
+
return;
|
108 |
}
|
109 |
+
parse_str( sanitize_text_field( wp_unslash( $_SERVER['QUERY_STRING'] ) ), $_get );
|
110 |
+
if ( isset( $_get[ $arg_key ] ) && '' !== $_get[ $arg_key ] ) {
|
111 |
+
$coupon_code = sanitize_text_field( ( wp_unslash( $_get[ $arg_key ] ) ) );
|
112 |
$this->maybe_add_products_to_cart( $coupon_code );
|
113 |
WC()->cart->add_discount( $coupon_code );
|
114 |
wp_safe_redirect( $this->get_redirect_url( $arg_key ) );
|
includes/classes/class-wcj-module.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce Module
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo [dev] maybe should be `abstract` ?
|
@@ -382,7 +382,7 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
382 |
/* translators: %1$s,%2$s: translators Added */
|
383 |
wp_kses_post( __( 'Booster: Free plugin\'s version is limited to only one "%1$s" product with settings on per product basis enabled at a time. You will need to get <a href="%2$s" target="_blank">Booster Plus</a> to add unlimited number of "%1$s" products.', 'woocommerce-jetpack' ) ),
|
384 |
wp_kses_post( $this->short_desc ),
|
385 |
-
'https://booster.io/
|
386 |
) .
|
387 |
'</div></p></div>';
|
388 |
}
|
@@ -522,12 +522,12 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
522 |
/**
|
523 |
* Reset_settings.
|
524 |
*
|
525 |
-
* @version 5.6.
|
526 |
* @since 2.4.0
|
527 |
* @todo (maybe) always `delete_option()` (instead of `update_option()`)
|
528 |
*/
|
529 |
public function reset_settings() {
|
530 |
-
$wpnonce = isset( $_REQUEST['
|
531 |
if ( $wpnonce && isset( $_GET['wcj_reset_settings'] ) && $this->id === $_GET['wcj_reset_settings'] && wcj_is_user_role( 'administrator' ) && ! isset( $_POST['save'] ) ) {
|
532 |
foreach ( $this->get_settings() as $settings ) {
|
533 |
if ( false !== strpos( $settings['id'], '[' ) ) {
|
@@ -539,7 +539,7 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
539 |
update_option( $settings['id'], $default_value );
|
540 |
}
|
541 |
}
|
542 |
-
wp_safe_redirect( remove_query_arg( 'wcj_reset_settings' ) );
|
543 |
exit();
|
544 |
}
|
545 |
}
|
@@ -962,7 +962,7 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
962 |
/**
|
963 |
* Add_tool_link.
|
964 |
*
|
965 |
-
* @version
|
966 |
* @since 2.2.3
|
967 |
*/
|
968 |
public function add_tool_link() {
|
@@ -970,7 +970,7 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
970 |
$tool_title = $tool_data['title'];
|
971 |
echo '<p>';
|
972 |
echo ( $this->is_enabled() ) ?
|
973 |
-
'<a href="' .
|
974 |
'<code>' . wp_kses_post( $tool_title ) . '</code>';
|
975 |
echo '</p>';
|
976 |
}
|
@@ -979,7 +979,7 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
979 |
/**
|
980 |
* Add_reset_settings_button.
|
981 |
*
|
982 |
-
* @version 5.
|
983 |
* @since 2.4.0
|
984 |
* @param Array $settings Get settings.
|
985 |
*/
|
@@ -998,7 +998,12 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
998 |
'id' => 'wcj_' . $this->id . '_reset_settings',
|
999 |
'type' => 'custom_link',
|
1000 |
'link' => '<a onclick="return confirm(\'' . __( 'Are you sure?', 'woocommerce-jetpack' ) . '\')" class="button-primary" style="' .
|
1001 |
-
$reset_button_style . '" href="' . add_query_arg(
|
|
|
|
|
|
|
|
|
|
|
1002 |
),
|
1003 |
array(
|
1004 |
'type' => 'sectionend',
|
2 |
/**
|
3 |
* Booster for WooCommerce Module
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo [dev] maybe should be `abstract` ?
|
382 |
/* translators: %1$s,%2$s: translators Added */
|
383 |
wp_kses_post( __( 'Booster: Free plugin\'s version is limited to only one "%1$s" product with settings on per product basis enabled at a time. You will need to get <a href="%2$s" target="_blank">Booster Plus</a> to add unlimited number of "%1$s" products.', 'woocommerce-jetpack' ) ),
|
384 |
wp_kses_post( $this->short_desc ),
|
385 |
+
'https://booster.io/buy-booster/'
|
386 |
) .
|
387 |
'</div></p></div>';
|
388 |
}
|
522 |
/**
|
523 |
* Reset_settings.
|
524 |
*
|
525 |
+
* @version 5.6.7
|
526 |
* @since 2.4.0
|
527 |
* @todo (maybe) always `delete_option()` (instead of `update_option()`)
|
528 |
*/
|
529 |
public function reset_settings() {
|
530 |
+
$wpnonce = isset( $_REQUEST[ 'wcj_reset_settings-' . $this->id . '-nonce' ] ) ? wp_verify_nonce( sanitize_key( $_REQUEST[ 'wcj_reset_settings-' . $this->id . '-nonce' ] ), 'wcj_reset_settings' ) : false;
|
531 |
if ( $wpnonce && isset( $_GET['wcj_reset_settings'] ) && $this->id === $_GET['wcj_reset_settings'] && wcj_is_user_role( 'administrator' ) && ! isset( $_POST['save'] ) ) {
|
532 |
foreach ( $this->get_settings() as $settings ) {
|
533 |
if ( false !== strpos( $settings['id'], '[' ) ) {
|
539 |
update_option( $settings['id'], $default_value );
|
540 |
}
|
541 |
}
|
542 |
+
wp_safe_redirect( remove_query_arg( array( 'wcj_reset_settings', 'wcj_reset_settings-' . $this->id . '-nonce' ) ) );
|
543 |
exit();
|
544 |
}
|
545 |
}
|
962 |
/**
|
963 |
* Add_tool_link.
|
964 |
*
|
965 |
+
* @version 5.6.7
|
966 |
* @since 2.2.3
|
967 |
*/
|
968 |
public function add_tool_link() {
|
970 |
$tool_title = $tool_data['title'];
|
971 |
echo '<p>';
|
972 |
echo ( $this->is_enabled() ) ?
|
973 |
+
'<a href="' . esc_url_raw( admin_url( 'admin.php?page=wcj-tools&tab=' . $tool_id . '&wcj_tools_nonce=' . wp_create_nonce( 'wcj_tools' ) ) ) . '"><code>' . wp_kses_post( $tool_title ) . '</code></a>' :
|
974 |
'<code>' . wp_kses_post( $tool_title ) . '</code>';
|
975 |
echo '</p>';
|
976 |
}
|
979 |
/**
|
980 |
* Add_reset_settings_button.
|
981 |
*
|
982 |
+
* @version 5.6.7
|
983 |
* @since 2.4.0
|
984 |
* @param Array $settings Get settings.
|
985 |
*/
|
998 |
'id' => 'wcj_' . $this->id . '_reset_settings',
|
999 |
'type' => 'custom_link',
|
1000 |
'link' => '<a onclick="return confirm(\'' . __( 'Are you sure?', 'woocommerce-jetpack' ) . '\')" class="button-primary" style="' .
|
1001 |
+
$reset_button_style . '" href="' . add_query_arg(
|
1002 |
+
array(
|
1003 |
+
'wcj_reset_settings' => $this->id,
|
1004 |
+
'wcj_reset_settings-' . $this->id . '-nonce' => wp_create_nonce( 'wcj_reset_settings' ),
|
1005 |
+
)
|
1006 |
+
) . '">' . __( 'Reset settings', 'woocommerce-jetpack' ) . '</a>',
|
1007 |
),
|
1008 |
array(
|
1009 |
'type' => 'sectionend',
|
includes/core/class-wcj-admin.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Core - Admin
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
@@ -84,14 +84,11 @@ if ( ! class_exists( 'WCJ_Admin' ) ) :
|
|
84 |
/**
|
85 |
* Admin_footer_text
|
86 |
*
|
87 |
-
* @version 5.
|
88 |
* @param string $footer_text get admin footer texts.
|
89 |
*/
|
90 |
public function admin_footer_text( $footer_text ) {
|
91 |
-
$wpnonce = true;
|
92 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
93 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
94 |
-
}
|
95 |
if ( isset( $_GET['page'] ) && $wpnonce ) {
|
96 |
if ( 'wcj-tools' === $_GET['page'] || ( 'wc-settings' === $_GET['page'] && isset( $_GET['tab'] ) && 'jetpack' === $_GET['tab'] ) ) {
|
97 |
?>
|
@@ -144,7 +141,7 @@ if ( ! class_exists( 'WCJ_Admin' ) ) :
|
|
144 |
'<a href="' . esc_url( 'https://booster.io/' ) . '">' . __( 'Docs', 'woocommerce-jetpack' ) . '</a>',
|
145 |
);
|
146 |
if ( 'woocommerce-jetpack.php' === basename( WCJ_FREE_PLUGIN_FILE ) ) {
|
147 |
-
$custom_links[] = '<a target="_blank" href="' . esc_url( 'https://booster.io/
|
148 |
} else {
|
149 |
$custom_links[] = '<a target="_blank" href="' . esc_url( 'https://booster.io/my-account/booster-contact/' ) . '">' . __( 'Support', 'woocommerce-jetpack' ) . '</a>';
|
150 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Core - Admin
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
84 |
/**
|
85 |
* Admin_footer_text
|
86 |
*
|
87 |
+
* @version 5.6.7
|
88 |
* @param string $footer_text get admin footer texts.
|
89 |
*/
|
90 |
public function admin_footer_text( $footer_text ) {
|
91 |
+
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ) ) : true;
|
|
|
|
|
|
|
92 |
if ( isset( $_GET['page'] ) && $wpnonce ) {
|
93 |
if ( 'wcj-tools' === $_GET['page'] || ( 'wc-settings' === $_GET['page'] && isset( $_GET['tab'] ) && 'jetpack' === $_GET['tab'] ) ) {
|
94 |
?>
|
141 |
'<a href="' . esc_url( 'https://booster.io/' ) . '">' . __( 'Docs', 'woocommerce-jetpack' ) . '</a>',
|
142 |
);
|
143 |
if ( 'woocommerce-jetpack.php' === basename( WCJ_FREE_PLUGIN_FILE ) ) {
|
144 |
+
$custom_links[] = '<a target="_blank" href="' . esc_url( 'https://booster.io/buy-booster/' ) . '">' . __( 'Unlock all', 'woocommerce-jetpack' ) . '</a>';
|
145 |
} else {
|
146 |
$custom_links[] = '<a target="_blank" href="' . esc_url( 'https://booster.io/my-account/booster-contact/' ) . '">' . __( 'Support', 'woocommerce-jetpack' ) . '</a>';
|
147 |
}
|
includes/functions/wcj-functions-admin.php
CHANGED
@@ -360,20 +360,20 @@ if ( ! function_exists( 'wcj_get_plus_message' ) ) {
|
|
360 |
'<p><span>' . sprintf(
|
361 |
/* translators: %s: translation added */
|
362 |
__( 'Some settings fields are locked and you will need %s to modify all locked fields.', 'woocommerce-jetpack' ),
|
363 |
-
'<a href="https://booster.io/
|
364 |
) . '</span></p>' .
|
365 |
'<p>' .
|
366 |
-
'<a href="https://booster.io/
|
367 |
'</p>' .
|
368 |
'</div>';
|
369 |
|
370 |
case 'desc':
|
371 |
/* translators: %s: translation added */
|
372 |
-
return sprintf( __( 'Upgrade <a href="%s" target="_blank">Booster</a> to change value.', 'woocommerce-jetpack' ), 'https://booster.io/
|
373 |
|
374 |
case 'desc_advanced':
|
375 |
/* translators: %s: translation added */
|
376 |
-
return sprintf( __( 'Upgrade <a href="%1$s" target="_blank">Booster to unlock this feature</a> to enable "%2$s" option.', 'woocommerce-jetpack' ), 'https://booster.io/
|
377 |
|
378 |
case 'desc_advanced_no_link':
|
379 |
/* translators: %s: translation added */
|
@@ -381,11 +381,11 @@ if ( ! function_exists( 'wcj_get_plus_message' ) ) {
|
|
381 |
|
382 |
case 'desc_below':
|
383 |
/* translators: %s: translation added */
|
384 |
-
return sprintf( __( 'Upgrade <a href="%s" target="_blank">Booster</a> to change values below.', 'woocommerce-jetpack' ), 'https://booster.io/
|
385 |
|
386 |
case 'desc_above':
|
387 |
/* translators: %s: translation added */
|
388 |
-
return sprintf( __( 'Upgrade <a href="%s" target="_blank">Booster </a> to change values above.', 'woocommerce-jetpack' ), 'https://booster.io/
|
389 |
|
390 |
case 'desc_no_link':
|
391 |
return __( 'Upgrade Booster to change value.', 'woocommerce-jetpack' );
|
360 |
'<p><span>' . sprintf(
|
361 |
/* translators: %s: translation added */
|
362 |
__( 'Some settings fields are locked and you will need %s to modify all locked fields.', 'woocommerce-jetpack' ),
|
363 |
+
'<a href="https://booster.io/buy-booster/" target="_blank">Booster for WooCommerce </a>'
|
364 |
) . '</span></p>' .
|
365 |
'<p>' .
|
366 |
+
'<a href="https://booster.io/buy-booster/" target="_blank" class="button button-primary">' . __( 'Buy now', 'woocommerce-jetpack' ) . '</a> <a href="https://booster.io" target="_blank" class="button">' . __( 'Visit Booster Site', 'woocommerce-jetpack' ) . '</a>' .
|
367 |
'</p>' .
|
368 |
'</div>';
|
369 |
|
370 |
case 'desc':
|
371 |
/* translators: %s: translation added */
|
372 |
+
return sprintf( __( 'Upgrade <a href="%s" target="_blank">Booster</a> to change value.', 'woocommerce-jetpack' ), 'https://booster.io/buy-booster/' );
|
373 |
|
374 |
case 'desc_advanced':
|
375 |
/* translators: %s: translation added */
|
376 |
+
return sprintf( __( 'Upgrade <a href="%1$s" target="_blank">Booster to unlock this feature</a> to enable "%2$s" option.', 'woocommerce-jetpack' ), 'https://booster.io/buy-booster/', $args['option'] );
|
377 |
|
378 |
case 'desc_advanced_no_link':
|
379 |
/* translators: %s: translation added */
|
381 |
|
382 |
case 'desc_below':
|
383 |
/* translators: %s: translation added */
|
384 |
+
return sprintf( __( 'Upgrade <a href="%s" target="_blank">Booster</a> to change values below.', 'woocommerce-jetpack' ), 'https://booster.io/buy-booster/' );
|
385 |
|
386 |
case 'desc_above':
|
387 |
/* translators: %s: translation added */
|
388 |
+
return sprintf( __( 'Upgrade <a href="%s" target="_blank">Booster </a> to change values above.', 'woocommerce-jetpack' ), 'https://booster.io/buy-booster/' );
|
389 |
|
390 |
case 'desc_no_link':
|
391 |
return __( 'Upgrade Booster to change value.', 'woocommerce-jetpack' );
|
includes/functions/wcj-functions-html.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - HTML Functions
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/functions
|
8 |
*/
|
@@ -122,7 +122,7 @@ if ( ! function_exists( 'wcj_empty_cart_button_html' ) ) {
|
|
122 |
/**
|
123 |
* Wcj_empty_cart_button_html.
|
124 |
*
|
125 |
-
* @version
|
126 |
* @since 2.8.0
|
127 |
* @todo optional function parameters instead of default `get_option()` calls
|
128 |
*/
|
@@ -132,6 +132,7 @@ if ( ! function_exists( 'wcj_empty_cart_button_html' ) ) {
|
|
132 |
return '<div style="' . wcj_get_option( 'wcj_empty_cart_div_style', 'float: right;' ) . '">' .
|
133 |
'<form action="" method="post"><input type="submit" class="' . wcj_get_option( 'wcj_empty_cart_button_class', 'button' ) . '" name="wcj_empty_cart" value="' .
|
134 |
apply_filters( 'booster_option', 'Empty Cart', wcj_get_option( 'wcj_empty_cart_text', 'Empty Cart' ) ) . '"' . $confirmation_html . '>' .
|
|
|
135 |
'</form>' .
|
136 |
'</div>';
|
137 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - HTML Functions
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/functions
|
8 |
*/
|
122 |
/**
|
123 |
* Wcj_empty_cart_button_html.
|
124 |
*
|
125 |
+
* @version 5.6.7
|
126 |
* @since 2.8.0
|
127 |
* @todo optional function parameters instead of default `get_option()` calls
|
128 |
*/
|
132 |
return '<div style="' . wcj_get_option( 'wcj_empty_cart_div_style', 'float: right;' ) . '">' .
|
133 |
'<form action="" method="post"><input type="submit" class="' . wcj_get_option( 'wcj_empty_cart_button_class', 'button' ) . '" name="wcj_empty_cart" value="' .
|
134 |
apply_filters( 'booster_option', 'Empty Cart', wcj_get_option( 'wcj_empty_cart_text', 'Empty Cart' ) ) . '"' . $confirmation_html . '>' .
|
135 |
+
wp_nonce_field( 'wcj-empty-cart', 'wcj_empty_cart_nonce' ) .
|
136 |
'</form>' .
|
137 |
'</div>';
|
138 |
}
|
includes/functions/wcj-functions-price-currency.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Price and Currency
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.7.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/functions
|
@@ -129,7 +129,7 @@ if ( ! function_exists( 'wcj_change_price_shipping_package_rates' ) ) {
|
|
129 |
/**
|
130 |
* Wcj_change_price_shipping_package_rates.
|
131 |
*
|
132 |
-
* @version
|
133 |
* @since 3.2.0
|
134 |
* @param array $package_rates defines the package_rates.
|
135 |
* @param int $multiplier defines the multiplier.
|
@@ -138,7 +138,7 @@ if ( ! function_exists( 'wcj_change_price_shipping_package_rates' ) ) {
|
|
138 |
$modified_package_rates = array();
|
139 |
foreach ( $package_rates as $id => $package_rate ) {
|
140 |
if ( 1 !== $multiplier && isset( $package_rate->cost ) ) {
|
141 |
-
$package_rate->cost = $package_rate->cost * $multiplier;
|
142 |
if ( isset( $package_rate->taxes ) && ! empty( $package_rate->taxes ) ) {
|
143 |
if ( ! WCJ_IS_WC_VERSION_BELOW_3_2_0 ) {
|
144 |
$rate_taxes = $package_rate->taxes;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Price and Currency
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.7.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/functions
|
129 |
/**
|
130 |
* Wcj_change_price_shipping_package_rates.
|
131 |
*
|
132 |
+
* @version 5.6.7
|
133 |
* @since 3.2.0
|
134 |
* @param array $package_rates defines the package_rates.
|
135 |
* @param int $multiplier defines the multiplier.
|
138 |
$modified_package_rates = array();
|
139 |
foreach ( $package_rates as $id => $package_rate ) {
|
140 |
if ( 1 !== $multiplier && isset( $package_rate->cost ) ) {
|
141 |
+
$package_rate->cost = (float) $package_rate->cost * (float) $multiplier;
|
142 |
if ( isset( $package_rate->taxes ) && ! empty( $package_rate->taxes ) ) {
|
143 |
if ( ! WCJ_IS_WC_VERSION_BELOW_3_2_0 ) {
|
144 |
$rate_taxes = $package_rate->taxes;
|
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 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -415,7 +415,7 @@ if ( ! class_exists( 'WCJ_Product_Input_Fields_Core' ) ) :
|
|
415 |
/**
|
416 |
* Output_custom_input_fields_in_admin_order.
|
417 |
*
|
418 |
-
* @version 5.
|
419 |
* @param int $item_id Get item id.
|
420 |
* @param Array $item Get item.
|
421 |
* @param Array $_product Get products.
|
@@ -435,7 +435,14 @@ if ( ! class_exists( 'WCJ_Product_Input_Fields_Core' ) ) :
|
|
435 |
$value = maybe_unserialize( $value );
|
436 |
if ( isset( $value['name'] ) ) {
|
437 |
if ( isset( $value['wcj_uniqid'] ) ) {
|
438 |
-
$value = '<a href="' . esc_url(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
439 |
} else {
|
440 |
$value = '<a href="' . esc_url( add_query_arg( 'wcj_download_file', $item_id . '_' . $i . '.' . pathinfo( $value['name'], PATHINFO_EXTENSION ) ) ) . '">' . $value['name'] . '</a>';
|
441 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Product Input Fields - Core
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
415 |
/**
|
416 |
* Output_custom_input_fields_in_admin_order.
|
417 |
*
|
418 |
+
* @version 5.6.7
|
419 |
* @param int $item_id Get item id.
|
420 |
* @param Array $item Get item.
|
421 |
* @param Array $_product Get products.
|
435 |
$value = maybe_unserialize( $value );
|
436 |
if ( isset( $value['name'] ) ) {
|
437 |
if ( isset( $value['wcj_uniqid'] ) ) {
|
438 |
+
$value = '<a href="' . esc_url(
|
439 |
+
add_query_arg(
|
440 |
+
array(
|
441 |
+
'wcj_download_file' => $_product_id . '_' . $i . '_' . $value['wcj_uniqid'] . '.' . pathinfo( $value['name'], PATHINFO_EXTENSION ),
|
442 |
+
'wcj_download_file_nonce' => wp_create_nonce( 'wcj_download_file_nonce' ),
|
443 |
+
)
|
444 |
+
)
|
445 |
+
) . '">' . $value['name'] . '</a>';
|
446 |
} else {
|
447 |
$value = '<a href="' . esc_url( add_query_arg( 'wcj_download_file', $item_id . '_' . $i . '.' . pathinfo( $value['name'], PATHINFO_EXTENSION ) ) ) . '">' . $value['name'] . '</a>';
|
448 |
}
|
includes/js/wcj-admin.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
/**
|
2 |
* Wcj-admin.
|
3 |
*
|
4 |
-
* @version 5.6.
|
5 |
* @since 5.4.2
|
6 |
* @package Booster_For_WooCommerce/includes/JS
|
7 |
*/
|
@@ -24,12 +24,13 @@ jQuery( document ).ready(
|
|
24 |
jQuery( "#subscribe-email .subscribe-email-btn" ).click(
|
25 |
function() {
|
26 |
var email = jQuery( "#subscribe-email input[name=user_email]" );
|
|
|
27 |
if (IsValidEmail( email.val() ) == false) {
|
28 |
email.focus();
|
29 |
return false;
|
30 |
}
|
31 |
|
32 |
-
var redirectUrl = window.location.origin + window.location.pathname + "?page=jetpack-getting-started&wcj-redirect=1&msg=";
|
33 |
var msgId = 3;
|
34 |
var settings = {
|
35 |
"async": true,
|
1 |
/**
|
2 |
* Wcj-admin.
|
3 |
*
|
4 |
+
* @version 5.6.7
|
5 |
* @since 5.4.2
|
6 |
* @package Booster_For_WooCommerce/includes/JS
|
7 |
*/
|
24 |
jQuery( "#subscribe-email .subscribe-email-btn" ).click(
|
25 |
function() {
|
26 |
var email = jQuery( "#subscribe-email input[name=user_email]" );
|
27 |
+
var subscribe_email_nonce = jQuery( "#subscribe-email input[name=subscribe-email-nonce]" ).val();
|
28 |
if (IsValidEmail( email.val() ) == false) {
|
29 |
email.focus();
|
30 |
return false;
|
31 |
}
|
32 |
|
33 |
+
var redirectUrl = window.location.origin + window.location.pathname + "?page=jetpack-getting-started&subscribe-email-nonce=" + subscribe_email_nonce + " &wcj-redirect=1&msg=";
|
34 |
var msgId = 3;
|
35 |
var settings = {
|
36 |
"async": true,
|
includes/mini-plugin/wcj-mini-plugin.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Mini plugin customizations
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/mini-plugin
|
8 |
*/
|
@@ -18,37 +18,37 @@ add_filter(
|
|
18 |
ARRAY_FILTER_USE_KEY
|
19 |
);
|
20 |
$all_cat_ids1 = array( 'price_by_country', 'multicurrency', 'multicurrency_base_price', 'currency_per_product', 'currency', 'currency_external_products', 'bulk_price_converter', 'wholesale_price', 'product_open_pricing', 'offer_price', 'price_by_user_role', 'product_price_by_formula', 'global_discount', 'currency_exchange_rates', 'price_formats', 'price_labels', 'call_for_price', 'free_price', 'add_to_cart', 'more_button_labels', 'product_listings', 'tax_display', 'admin_products_list', 'products_per_page', 'product_tabs', 'product_custom_info', 'related_products', 'cross_sells', 'upsells', 'sorting', 'sku', 'stock', 'product_input_fields', 'product_add_to_cart', 'add_to_cart_button_visibility', 'purchase_data', 'product_bookings', 'crowdfunding', 'product_addons', 'product_images', 'sale_flash', 'product_by_country', 'product_by_user_role', 'product_custom_visibility', 'product_by_time', 'product_by_date', 'product_by_user', 'products_xml', 'product_bulk_meta_editor', 'product_msrp', 'product_extra_fees', 'cart', 'cart_customization', 'empty_cart', 'mini_cart', 'url_coupons', 'coupon_code_generator', 'coupon_by_user_role', 'checkout_core_fields', 'checkout_custom_fields', 'checkout_files_upload', 'checkout_custom_info', 'checkout_customization', 'checkout_fees', 'eu_vat_number', 'frequently_bought_together', 'one_page_checkout', 'payment_gateways', 'payment_gateways_icons', 'payment_gateways_fees', 'payment_gateways_per_category', 'payment_gateways_currency', 'payment_gateways_by_currency', 'payment_gateways_min_max', 'payment_gateways_by_country', 'payment_gateways_by_user_role', 'payment_gateways_by_shipping', 'shipping', 'shipping_options', 'shipping_icons', 'shipping_description', 'shipping_time', 'left_to_free_shipping', 'shipping_calculator', 'shipping_by_user_role', 'shipping_by_products', 'shipping_by_cities', 'shipping_by_time', 'shipping_by_order_amount', 'shipping_by_order_qty', 'address_formats', 'orders', 'admin_orders_list', 'order_min_amount', 'order_numbers', 'order_custom_statuses', 'order_quantities', 'max_products_per_user', 'pdf_invoicing', 'pdf_invoicing_numbering', 'pdf_invoicing_templates', 'pdf_invoicing_header', 'pdf_invoicing_footer', 'pdf_invoicing_styling', 'pdf_invoicing_page', 'pdf_invoicing_emails', 'pdf_invoicing_paid_stamp', 'pdf_invoicing_display', 'pdf_invoicing_advanced', 'pdf_invoicing_extra_columns', 'general', 'breadcrumbs', 'admin_bar', 'export', 'my_account', 'old_slugs', 'reports', 'admin_tools', 'debug_tools', 'emails', 'email_options', 'emails_verification', 'wpml', 'custom_css', 'custom_js', 'custom_php', 'track_users', 'modules_by_user_roles', 'template_editor', 'product_info' );
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
// ----- Modules By User Roles Module Options Start -----
|
25 |
-
|
26 |
-
|
27 |
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
|
38 |
-
|
39 |
|
40 |
-
|
41 |
-
|
42 |
|
43 |
-
|
44 |
-
|
45 |
|
46 |
-
|
47 |
-
|
48 |
|
49 |
-
|
|
|
50 |
}
|
51 |
-
}
|
52 |
// ----- Modules By User Roles Module Options End -----
|
53 |
|
54 |
if ( count( $all_cat_ids ) <= 1 && '' === $all_cat_ids[0] ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Mini plugin customizations
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/mini-plugin
|
8 |
*/
|
18 |
ARRAY_FILTER_USE_KEY
|
19 |
);
|
20 |
$all_cat_ids1 = array( 'price_by_country', 'multicurrency', 'multicurrency_base_price', 'currency_per_product', 'currency', 'currency_external_products', 'bulk_price_converter', 'wholesale_price', 'product_open_pricing', 'offer_price', 'price_by_user_role', 'product_price_by_formula', 'global_discount', 'currency_exchange_rates', 'price_formats', 'price_labels', 'call_for_price', 'free_price', 'add_to_cart', 'more_button_labels', 'product_listings', 'tax_display', 'admin_products_list', 'products_per_page', 'product_tabs', 'product_custom_info', 'related_products', 'cross_sells', 'upsells', 'sorting', 'sku', 'stock', 'product_input_fields', 'product_add_to_cart', 'add_to_cart_button_visibility', 'purchase_data', 'product_bookings', 'crowdfunding', 'product_addons', 'product_images', 'sale_flash', 'product_by_country', 'product_by_user_role', 'product_custom_visibility', 'product_by_time', 'product_by_date', 'product_by_user', 'products_xml', 'product_bulk_meta_editor', 'product_msrp', 'product_extra_fees', 'cart', 'cart_customization', 'empty_cart', 'mini_cart', 'url_coupons', 'coupon_code_generator', 'coupon_by_user_role', 'checkout_core_fields', 'checkout_custom_fields', 'checkout_files_upload', 'checkout_custom_info', 'checkout_customization', 'checkout_fees', 'eu_vat_number', 'frequently_bought_together', 'one_page_checkout', 'payment_gateways', 'payment_gateways_icons', 'payment_gateways_fees', 'payment_gateways_per_category', 'payment_gateways_currency', 'payment_gateways_by_currency', 'payment_gateways_min_max', 'payment_gateways_by_country', 'payment_gateways_by_user_role', 'payment_gateways_by_shipping', 'shipping', 'shipping_options', 'shipping_icons', 'shipping_description', 'shipping_time', 'left_to_free_shipping', 'shipping_calculator', 'shipping_by_user_role', 'shipping_by_products', 'shipping_by_cities', 'shipping_by_time', 'shipping_by_order_amount', 'shipping_by_order_qty', 'address_formats', 'orders', 'admin_orders_list', 'order_min_amount', 'order_numbers', 'order_custom_statuses', 'order_quantities', 'max_products_per_user', 'pdf_invoicing', 'pdf_invoicing_numbering', 'pdf_invoicing_templates', 'pdf_invoicing_header', 'pdf_invoicing_footer', 'pdf_invoicing_styling', 'pdf_invoicing_page', 'pdf_invoicing_emails', 'pdf_invoicing_paid_stamp', 'pdf_invoicing_display', 'pdf_invoicing_advanced', 'pdf_invoicing_extra_columns', 'general', 'breadcrumbs', 'admin_bar', 'export', 'my_account', 'old_slugs', 'reports', 'admin_tools', 'debug_tools', 'emails', 'email_options', 'emails_verification', 'wpml', 'custom_css', 'custom_js', 'custom_php', 'track_users', 'modules_by_user_roles', 'template_editor', 'product_info' );
|
21 |
+
$modules_all_cats = $modules_cats;
|
22 |
+
$all_cat_ids = $all_cat_ids1;
|
23 |
+
|
24 |
// ----- Modules By User Roles Module Options Start -----
|
25 |
+
if ( wcj_is_module_enabled( 'modules_by_user_roles' ) ) {
|
26 |
+
$current_user = wp_get_current_user();
|
27 |
|
28 |
+
$wcj_modules_by_user_roles_data['role'] = ( isset( $current_user->roles ) && is_array( $current_user->roles ) && ! empty( $current_user->roles ) ?
|
29 |
+
reset( $current_user->roles ) : 'guest' );
|
30 |
+
$wcj_modules_by_user_roles_data['role'] = ( '' !== $wcj_modules_by_user_roles_data['role'] ? $wcj_modules_by_user_roles_data['role'] : 'guest' );
|
31 |
+
$wcj_modules_by_user_roles_data['modules_incl'] = wcj_get_option( 'wcj_modules_by_user_roles_incl_' . $wcj_modules_by_user_roles_data['role'], '' );
|
32 |
+
$wcj_modules_by_user_roles_data['modules_excl'] = wcj_get_option( 'wcj_modules_by_user_roles_excl_' . $wcj_modules_by_user_roles_data['role'], '' );
|
33 |
|
34 |
+
if ( empty( $wcj_modules_by_user_roles_data['modules_incl'] ) && empty( $wcj_modules_by_user_roles_data['modules_excl'] ) ) {
|
35 |
+
$all_cat_ids = $all_cat_ids1;
|
36 |
+
} elseif ( ! empty( $wcj_modules_by_user_roles_data['modules_incl'] ) && empty( $wcj_modules_by_user_roles_data['modules_excl'] ) ) {
|
37 |
|
38 |
+
$all_cat_ids = $wcj_modules_by_user_roles_data['modules_incl'];
|
39 |
|
40 |
+
} elseif ( empty( $wcj_modules_by_user_roles_data['modules_incl'] ) && ! empty( $wcj_modules_by_user_roles_data['modules_excl'] ) ) {
|
41 |
+
$array = $all_cat_ids1;
|
42 |
|
43 |
+
$value = $wcj_modules_by_user_roles_data['modules_excl'];
|
44 |
+
$array = array_diff( $array, $value );
|
45 |
|
46 |
+
$all_cat_ids = $array;
|
47 |
+
} elseif ( ! empty( $wcj_modules_by_user_roles_data['modules_incl'] ) && ! empty( $wcj_modules_by_user_roles_data['modules_excl'] ) ) {
|
48 |
|
49 |
+
$all_cat_ids = $wcj_modules_by_user_roles_data['modules_incl'];
|
50 |
+
}
|
51 |
}
|
|
|
52 |
// ----- Modules By User Roles Module Options End -----
|
53 |
|
54 |
if ( count( $all_cat_ids ) <= 1 && '' === $all_cat_ids[0] ) {
|
includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - PDF Invoicing - Display
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -103,7 +103,7 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Display' ) ) :
|
|
103 |
/**
|
104 |
* Add_pdf_invoices_admin_actions_buttons_css.
|
105 |
*
|
106 |
-
* @version
|
107 |
* @since 2.4.7
|
108 |
*/
|
109 |
public function add_pdf_invoices_admin_actions_buttons_css() {
|
@@ -114,8 +114,8 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Display' ) ) :
|
|
114 |
echo '.view.' . esc_html( $invoice_type['id'] ) . '_create { color: ' . esc_html( $invoice_type['color'] ) . ' !important; }' . PHP_EOL;
|
115 |
echo '.view.' . esc_html( $invoice_type['id'] ) . '_delete { color: ' . esc_html( $invoice_type['color'] ) . ' !important; }' . PHP_EOL;
|
116 |
echo '.view.' . esc_html( $invoice_type['id'] ) . '::after { content: "\f498" !important; }' . PHP_EOL;
|
117 |
-
echo '.view.' . esc_html( $invoice_type['id'] ) . '_create
|
118 |
-
echo '.view.' . esc_html( $invoice_type['id'] ) . '_delete
|
119 |
}
|
120 |
echo '</style>' . PHP_EOL;
|
121 |
}
|
@@ -123,7 +123,7 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Display' ) ) :
|
|
123 |
/**
|
124 |
* Add_pdf_invoices_admin_actions.
|
125 |
*
|
126 |
-
* @version 5.
|
127 |
* @since 2.4.7
|
128 |
* @param Array $actions Get action data.
|
129 |
* @param Array $the_order Get the order.
|
@@ -142,7 +142,7 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Display' ) ) :
|
|
142 |
if ( 'yes' === wcj_get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_save_as_enabled', 'no' ) ) {
|
143 |
$query_args['save_pdf_invoice'] = '1';
|
144 |
}
|
145 |
-
$the_url = esc_url( add_query_arg( $query_args,
|
146 |
$the_name = __( 'View', 'woocommerce-jetpack' ) . ' ' . $invoice_type['title'];
|
147 |
$the_action = 'view ' . $invoice_type['id'];
|
148 |
$the_action_id = $invoice_type['id'];
|
@@ -156,9 +156,10 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Display' ) ) :
|
|
156 |
// Delete button.
|
157 |
$query_args = array(
|
158 |
'delete_invoice_for_order_id' => wcj_get_order_id( $the_order ),
|
|
|
159 |
'invoice_type_id' => $invoice_type['id'],
|
160 |
);
|
161 |
-
$the_url = esc_url( add_query_arg( $query_args,
|
162 |
$the_name = __( 'Delete', 'woocommerce-jetpack' ) . ' ' . $invoice_type['title'];
|
163 |
$the_action = 'view ' . $invoice_type['id'] . '_delete' . ( ( 'yes' === wcj_get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_delete_btn_confirm', 'yes' ) ) ? ' wcj_need_confirmation' : '' );
|
164 |
$the_action_id = $invoice_type['id'] . '_delete';
|
@@ -173,9 +174,10 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Display' ) ) :
|
|
173 |
// Create button.
|
174 |
$query_args = array(
|
175 |
'create_invoice_for_order_id' => wcj_get_order_id( $the_order ),
|
|
|
176 |
'invoice_type_id' => $invoice_type['id'],
|
177 |
);
|
178 |
-
$the_url = esc_url( add_query_arg( $query_args,
|
179 |
$the_name = __( 'Create', 'woocommerce-jetpack' ) . ' ' . $invoice_type['title'];
|
180 |
$the_action = 'view ' . $invoice_type['id'] . '_create' . ( ( 'yes' === wcj_get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_create_btn_confirm', 'yes' ) ) ? ' wcj_need_confirmation' : '' );
|
181 |
$the_action_id = $invoice_type['id'] . '_create';
|
@@ -209,7 +211,7 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Display' ) ) :
|
|
209 |
/**
|
210 |
* Output custom columns for products
|
211 |
*
|
212 |
-
* @version 5.6.
|
213 |
* @param string $column Get order columns.
|
214 |
*/
|
215 |
public function render_order_columns( $column ) {
|
@@ -233,7 +235,7 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Display' ) ) :
|
|
233 |
if ( 'yes' === wcj_get_option( 'wcj_invoicing_' . $invoice_type_id . '_save_as_enabled', 'no' ) ) {
|
234 |
$query_args['save_pdf_invoice'] = '1';
|
235 |
}
|
236 |
-
$html .= '<a href="' . esc_url( add_query_arg( $query_args, esc_url( remove_query_arg( array( 'create_invoice_for_order_id', 'delete_invoice_for_order_id' ) ) ) ) ) . '">' .
|
237 |
$the_number . '</a>';
|
238 |
}
|
239 |
echo wp_kses_post( $html );
|
@@ -343,7 +345,7 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Display' ) ) :
|
|
343 |
/**
|
344 |
* Create_invoices_meta_box.
|
345 |
*
|
346 |
-
* @version 5.6.
|
347 |
* @since 2.8.0
|
348 |
*/
|
349 |
public function create_invoices_meta_box() {
|
@@ -369,7 +371,7 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Display' ) ) :
|
|
369 |
$query_args['save_pdf_invoice'] = '1';
|
370 |
$target = '';
|
371 |
}
|
372 |
-
$the_url = esc_url( add_query_arg( $query_args, remove_query_arg( array( 'create_invoice_for_order_id', 'delete_invoice_for_order_id' ) ) ) );
|
373 |
$the_name = __( 'View', 'woocommerce-jetpack' );
|
374 |
$the_invoice = wcj_get_invoice( $order_id, $invoice_type['id'] );
|
375 |
$the_number = ' [#' . $the_invoice->get_invoice_number() . ']';
|
@@ -378,9 +380,10 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Display' ) ) :
|
|
378 |
// "Delete" link.
|
379 |
$query_args = array(
|
380 |
'delete_invoice_for_order_id' => $order_id,
|
|
|
381 |
'invoice_type_id' => $invoice_type['id'],
|
382 |
);
|
383 |
-
$the_url = esc_url( add_query_arg( $query_args, remove_query_arg( 'create_invoice_for_order_id' ) ) );
|
384 |
$the_name = __( 'Delete', 'woocommerce-jetpack' );
|
385 |
$delete_link = '<a class="wcj_need_confirmation" href="' . $the_url . '">' . $the_name . '</a>';
|
386 |
// Numbering & date.
|
@@ -401,9 +404,10 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Display' ) ) :
|
|
401 |
// "Create" link
|
402 |
$query_args = array(
|
403 |
'create_invoice_for_order_id' => $order_id,
|
|
|
404 |
'invoice_type_id' => $invoice_type['id'],
|
405 |
);
|
406 |
-
$the_url = esc_url( add_query_arg( $query_args, remove_query_arg( 'delete_invoice_for_order_id' ) ) );
|
407 |
$the_name = __( 'Create', 'woocommerce-jetpack' );
|
408 |
$actions = array( '<a class="wcj_need_confirmation" href="' . $the_url . '">' . $the_name . '</a>' );
|
409 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - PDF Invoicing - Display
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
103 |
/**
|
104 |
* Add_pdf_invoices_admin_actions_buttons_css.
|
105 |
*
|
106 |
+
* @version 5.6.7
|
107 |
* @since 2.4.7
|
108 |
*/
|
109 |
public function add_pdf_invoices_admin_actions_buttons_css() {
|
114 |
echo '.view.' . esc_html( $invoice_type['id'] ) . '_create { color: ' . esc_html( $invoice_type['color'] ) . ' !important; }' . PHP_EOL;
|
115 |
echo '.view.' . esc_html( $invoice_type['id'] ) . '_delete { color: ' . esc_html( $invoice_type['color'] ) . ' !important; }' . PHP_EOL;
|
116 |
echo '.view.' . esc_html( $invoice_type['id'] ) . '::after { content: "\f498" !important; }' . PHP_EOL;
|
117 |
+
echo '.view.' . esc_html( $invoice_type['id'] ) . '_create::after { content: "\f119" !important; }' . PHP_EOL;
|
118 |
+
echo '.view.' . esc_html( $invoice_type['id'] ) . '_delete::after { content: "\f153" !important; }' . PHP_EOL;
|
119 |
}
|
120 |
echo '</style>' . PHP_EOL;
|
121 |
}
|
123 |
/**
|
124 |
* Add_pdf_invoices_admin_actions.
|
125 |
*
|
126 |
+
* @version 5.6.7
|
127 |
* @since 2.4.7
|
128 |
* @param Array $actions Get action data.
|
129 |
* @param Array $the_order Get the order.
|
142 |
if ( 'yes' === wcj_get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_save_as_enabled', 'no' ) ) {
|
143 |
$query_args['save_pdf_invoice'] = '1';
|
144 |
}
|
145 |
+
$the_url = esc_url( add_query_arg( $query_args, remove_query_arg( array( 'create_invoice_for_order_id', 'create_invoice_for_order_id-nonce', 'delete_invoice_for_order_id', 'delete_invoice_for_order_id-nonce' ) ) ) );
|
146 |
$the_name = __( 'View', 'woocommerce-jetpack' ) . ' ' . $invoice_type['title'];
|
147 |
$the_action = 'view ' . $invoice_type['id'];
|
148 |
$the_action_id = $invoice_type['id'];
|
156 |
// Delete button.
|
157 |
$query_args = array(
|
158 |
'delete_invoice_for_order_id' => wcj_get_order_id( $the_order ),
|
159 |
+
'delete_invoice_for_order_id-nonce' => wp_create_nonce( 'delete_invoice_for_order_id' ),
|
160 |
'invoice_type_id' => $invoice_type['id'],
|
161 |
);
|
162 |
+
$the_url = esc_url( add_query_arg( $query_args, remove_query_arg( array( 'create_invoice_for_order_id', 'create_invoice_for_order_id-nonce' ) ) ) );
|
163 |
$the_name = __( 'Delete', 'woocommerce-jetpack' ) . ' ' . $invoice_type['title'];
|
164 |
$the_action = 'view ' . $invoice_type['id'] . '_delete' . ( ( 'yes' === wcj_get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_delete_btn_confirm', 'yes' ) ) ? ' wcj_need_confirmation' : '' );
|
165 |
$the_action_id = $invoice_type['id'] . '_delete';
|
174 |
// Create button.
|
175 |
$query_args = array(
|
176 |
'create_invoice_for_order_id' => wcj_get_order_id( $the_order ),
|
177 |
+
'create_invoice_for_order_id-nonce' => wp_create_nonce( 'create_invoice_for_order_id' ),
|
178 |
'invoice_type_id' => $invoice_type['id'],
|
179 |
);
|
180 |
+
$the_url = esc_url( add_query_arg( $query_args, remove_query_arg( array( 'delete_invoice_for_order_id', 'delete_invoice_for_order_id-nonce' ) ) ) );
|
181 |
$the_name = __( 'Create', 'woocommerce-jetpack' ) . ' ' . $invoice_type['title'];
|
182 |
$the_action = 'view ' . $invoice_type['id'] . '_create' . ( ( 'yes' === wcj_get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_create_btn_confirm', 'yes' ) ) ? ' wcj_need_confirmation' : '' );
|
183 |
$the_action_id = $invoice_type['id'] . '_create';
|
211 |
/**
|
212 |
* Output custom columns for products
|
213 |
*
|
214 |
+
* @version 5.6.7
|
215 |
* @param string $column Get order columns.
|
216 |
*/
|
217 |
public function render_order_columns( $column ) {
|
235 |
if ( 'yes' === wcj_get_option( 'wcj_invoicing_' . $invoice_type_id . '_save_as_enabled', 'no' ) ) {
|
236 |
$query_args['save_pdf_invoice'] = '1';
|
237 |
}
|
238 |
+
$html .= '<a href="' . esc_url( add_query_arg( $query_args, esc_url( remove_query_arg( array( 'create_invoice_for_order_id', 'create_invoice_for_order_id-nonce', 'delete_invoice_for_order_id', 'delete_invoice_for_order_id-nonce' ) ) ) ) ) . '">' .
|
239 |
$the_number . '</a>';
|
240 |
}
|
241 |
echo wp_kses_post( $html );
|
345 |
/**
|
346 |
* Create_invoices_meta_box.
|
347 |
*
|
348 |
+
* @version 5.6.7
|
349 |
* @since 2.8.0
|
350 |
*/
|
351 |
public function create_invoices_meta_box() {
|
371 |
$query_args['save_pdf_invoice'] = '1';
|
372 |
$target = '';
|
373 |
}
|
374 |
+
$the_url = esc_url( add_query_arg( $query_args, remove_query_arg( array( 'create_invoice_for_order_id', 'create_invoice_for_order_id-nonce', 'delete_invoice_for_order_id', 'delete_invoice_for_order_id-nonce' ) ) ) );
|
375 |
$the_name = __( 'View', 'woocommerce-jetpack' );
|
376 |
$the_invoice = wcj_get_invoice( $order_id, $invoice_type['id'] );
|
377 |
$the_number = ' [#' . $the_invoice->get_invoice_number() . ']';
|
380 |
// "Delete" link.
|
381 |
$query_args = array(
|
382 |
'delete_invoice_for_order_id' => $order_id,
|
383 |
+
'delete_invoice_for_order_id-nonce' => wp_create_nonce( 'delete_invoice_for_order_id' ),
|
384 |
'invoice_type_id' => $invoice_type['id'],
|
385 |
);
|
386 |
+
$the_url = esc_url( add_query_arg( $query_args, remove_query_arg( array( 'create_invoice_for_order_id', 'create_invoice_for_order_id-nonce' ) ) ) );
|
387 |
$the_name = __( 'Delete', 'woocommerce-jetpack' );
|
388 |
$delete_link = '<a class="wcj_need_confirmation" href="' . $the_url . '">' . $the_name . '</a>';
|
389 |
// Numbering & date.
|
404 |
// "Create" link
|
405 |
$query_args = array(
|
406 |
'create_invoice_for_order_id' => $order_id,
|
407 |
+
'create_invoice_for_order_id-nonce' => wp_create_nonce( 'create_invoice_for_order_id' ),
|
408 |
'invoice_type_id' => $invoice_type['id'],
|
409 |
);
|
410 |
+
$the_url = esc_url( add_query_arg( $query_args, remove_query_arg( array( 'delete_invoice_for_order_id', 'delete_invoice_for_order_id-nonce' ) ) ) );
|
411 |
$the_name = __( 'Create', 'woocommerce-jetpack' );
|
412 |
$actions = array( '<a class="wcj_need_confirmation" href="' . $the_url . '">' . $the_name . '</a>' );
|
413 |
}
|
includes/price-by-country/class-wcj-price-by-country-core.php
CHANGED
@@ -725,7 +725,7 @@ if ( ! class_exists( 'WCJ_Price_By_Country_Core' ) ) :
|
|
725 |
}
|
726 |
|
727 |
$this->customer_country_group_id = $this->get_country_group_id( $country );
|
728 |
-
if ( - 1
|
729 |
return $this->customer_country_group_id;
|
730 |
}
|
731 |
|
725 |
}
|
726 |
|
727 |
$this->customer_country_group_id = $this->get_country_group_id( $country );
|
728 |
+
if ( - 1 !== $this->customer_country_group_id ) {
|
729 |
return $this->customer_country_group_id;
|
730 |
}
|
731 |
|
includes/reports/class-wcj-reports-customers.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Reports - Customers
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -35,12 +35,11 @@ if ( ! class_exists( 'WCJ_Reports_Customers' ) ) :
|
|
35 |
|
36 |
/**
|
37 |
* Get_report function.
|
|
|
|
|
38 |
*/
|
39 |
public function get_report() {
|
40 |
-
$wpnonce
|
41 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
42 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
43 |
-
}
|
44 |
$report_type = $wpnonce && isset( $_GET['country'] ) ? sanitize_text_field( wp_unslash( $_GET['country'] ) ) : 'all_countries';
|
45 |
|
46 |
$html = '';
|
@@ -136,7 +135,7 @@ if ( ! class_exists( 'WCJ_Reports_Customers' ) ) :
|
|
136 |
/**
|
137 |
* Get_data function.
|
138 |
*
|
139 |
-
* @version 5.
|
140 |
* @param Array $data Get data.
|
141 |
* @param int $total_customers Get total number of customers.
|
142 |
* @param string $report_type Get all_countries.
|
@@ -159,12 +158,26 @@ if ( ! class_exists( 'WCJ_Reports_Customers' ) ) :
|
|
159 |
$result = $result['customer_counter'];
|
160 |
$html .= '<tr>';
|
161 |
$html .= '<td>' . ( ++$i ) . '</td>';
|
162 |
-
$country_code_link = '<a href="' . esc_url(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
$html .= ( 2 === strlen( $country_code ) ) ? '<td>' . $country_code_link . '</td>' : '<td>' . $country_code . '</td>';
|
164 |
$html .= '<td>' . $result . '</td>';
|
165 |
$html .= ( 0 !== $total_customers ) ? '<td>' . number_format( ( $result / $total_customers ) * 100, 2 ) . '% </td>' : '<td></td>';
|
166 |
$country_flag_img = wcj_get_country_flag_by_code( $country_code );
|
167 |
-
$country_flag_img_link = '<a href="' . esc_url(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
$country_flag_img . ' ' . wcj_get_country_name_by_code( $country_code ) . '</a>';
|
169 |
$html .= ( 2 === strlen( $country_code ) ) ? '<td>' . $country_flag_img_link . '</td>' : '<td></td>';
|
170 |
$html .= '</tr>';
|
2 |
/**
|
3 |
* Booster for WooCommerce - Reports - Customers
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
35 |
|
36 |
/**
|
37 |
* Get_report function.
|
38 |
+
*
|
39 |
+
* @version 5.6.7
|
40 |
*/
|
41 |
public function get_report() {
|
42 |
+
$wpnonce = isset( $_REQUEST['wcj_reports_customers_nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj_reports_customers_nonce'] ), 'wcj-reports-customers' ) : false;
|
|
|
|
|
|
|
43 |
$report_type = $wpnonce && isset( $_GET['country'] ) ? sanitize_text_field( wp_unslash( $_GET['country'] ) ) : 'all_countries';
|
44 |
|
45 |
$html = '';
|
135 |
/**
|
136 |
* Get_data function.
|
137 |
*
|
138 |
+
* @version 5.6.7
|
139 |
* @param Array $data Get data.
|
140 |
* @param int $total_customers Get total number of customers.
|
141 |
* @param string $report_type Get all_countries.
|
158 |
$result = $result['customer_counter'];
|
159 |
$html .= '<tr>';
|
160 |
$html .= '<td>' . ( ++$i ) . '</td>';
|
161 |
+
$country_code_link = '<a href="' . esc_url(
|
162 |
+
add_query_arg(
|
163 |
+
array(
|
164 |
+
'country' => $country_code,
|
165 |
+
'wcj_reports_customers_nonce' => wp_create_nonce( 'wcj-reports-customers' ),
|
166 |
+
)
|
167 |
+
)
|
168 |
+
) . '">' . $country_code . '</a>';
|
169 |
$html .= ( 2 === strlen( $country_code ) ) ? '<td>' . $country_code_link . '</td>' : '<td>' . $country_code . '</td>';
|
170 |
$html .= '<td>' . $result . '</td>';
|
171 |
$html .= ( 0 !== $total_customers ) ? '<td>' . number_format( ( $result / $total_customers ) * 100, 2 ) . '% </td>' : '<td></td>';
|
172 |
$country_flag_img = wcj_get_country_flag_by_code( $country_code );
|
173 |
+
$country_flag_img_link = '<a href="' . esc_url(
|
174 |
+
add_query_arg(
|
175 |
+
array(
|
176 |
+
'country' => $country_code,
|
177 |
+
'wcj_reports_customers_nonce' => wp_create_nonce( 'wcj-reports-customers' ),
|
178 |
+
)
|
179 |
+
)
|
180 |
+
) . '">' .
|
181 |
$country_flag_img . ' ' . wcj_get_country_name_by_code( $country_code ) . '</a>';
|
182 |
$html .= ( 2 === strlen( $country_code ) ) ? '<td>' . $country_flag_img_link . '</td>' : '<td></td>';
|
183 |
$html .= '</tr>';
|
includes/reports/class-wcj-reports-monthly-sales.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Reports - Monthly Sales (with Currency Conversion)
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.4.7
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -35,20 +35,18 @@ if ( ! class_exists( 'WCJ_Reports_Monthly_Sales' ) ) :
|
|
35 |
/**
|
36 |
* Get_report.
|
37 |
*
|
38 |
-
* @version 5.6.
|
39 |
* @since 2.4.7
|
40 |
*/
|
41 |
public function get_report() {
|
42 |
-
$html
|
43 |
-
$
|
44 |
-
|
45 |
-
|
46 |
-
}
|
47 |
-
if ( $wpnonce && isset( $_POST['wcj_save_currency_rates'] ) && isset( $_POST['wcj_save_currency_rates_array'] ) && is_array( $_POST['wcj_save_currency_rates_array'] ) ) {
|
48 |
// Save rates.
|
49 |
update_option( 'wcj_reports_currency_rates', array_replace_recursive( wcj_get_option( 'wcj_reports_currency_rates', array() ), sanitize_text_field( wp_unslash( $_POST['wcj_save_currency_rates_array'] ) ) ) );
|
50 |
$html .= '<div class="notice notice-success is-dismissible"><p><strong>' . __( 'Currency rates saved.', 'woocommerce-jetpack' ) . '</strong></p></div>';
|
51 |
-
} elseif ( isset( $_POST['wcj_reset_currency_rates'] ) ) {
|
52 |
// Delete rates.
|
53 |
delete_option( 'wcj_reports_currency_rates' );
|
54 |
$html .= '<div class="notice notice-success is-dismissible"><p><strong>' . __( 'Currency rates deleted.', 'woocommerce-jetpack' ) . '</strong></p></div>';
|
@@ -88,7 +86,7 @@ if ( ! class_exists( 'WCJ_Reports_Monthly_Sales' ) ) :
|
|
88 |
/**
|
89 |
* Get_monthly_sales_report.
|
90 |
*
|
91 |
-
* @version 5.
|
92 |
* @since 2.4.7
|
93 |
* @todo (maybe) visible rows selection by admin (as option)
|
94 |
* @todo (maybe) take not monthly average, but "Close" of closest day (probably create new "Daily Sales (with Currency Conversion)" report)
|
@@ -386,11 +384,13 @@ if ( ! class_exists( 'WCJ_Reports_Monthly_Sales' ) ) :
|
|
386 |
number_format( ( $execution_time_end - $execution_time_start ), 2, '.', ',' )
|
387 |
) . '</em></p>';
|
388 |
$html .= '<p><input name="wcj_save_currency_rates" type="submit" class="button button-primary" value="' .
|
389 |
-
__( 'Save Currency Rates', 'woocommerce-jetpack' ) . '"
|
|
|
390 |
$html .= '</form>';
|
391 |
$html .= '<form method="post" action="">' .
|
392 |
'<input name="wcj_reset_currency_rates" type="submit" class="button button-primary" value="' .
|
393 |
__( 'Reset Currency Rates', 'woocommerce-jetpack' ) . '" onclick="return confirm(\'' . __( 'Are you sure?', 'woocommerce-jetpack' ) . '\')">' .
|
|
|
394 |
'</form>';
|
395 |
return $html;
|
396 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Reports - Monthly Sales (with Currency Conversion)
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.4.7
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
35 |
/**
|
36 |
* Get_report.
|
37 |
*
|
38 |
+
* @version 5.6.7
|
39 |
* @since 2.4.7
|
40 |
*/
|
41 |
public function get_report() {
|
42 |
+
$html = '';
|
43 |
+
$save_currency_wpnonce = isset( $_REQUEST['wcj-save-currency-rates-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj-save-currency-rates-nonce'] ), 'wcj_save_currency_rates' ) : false;
|
44 |
+
$reset_currency_wpnonce = isset( $_REQUEST['wcj-reset-currency-rates-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['wcj-reset-currency-rates-nonce'] ), 'wcj_reset_currency_rates' ) : false;
|
45 |
+
if ( $save_currency_wpnonce && isset( $_POST['wcj_save_currency_rates'] ) && isset( $_POST['wcj_save_currency_rates_array'] ) && is_array( $_POST['wcj_save_currency_rates_array'] ) ) {
|
|
|
|
|
46 |
// Save rates.
|
47 |
update_option( 'wcj_reports_currency_rates', array_replace_recursive( wcj_get_option( 'wcj_reports_currency_rates', array() ), sanitize_text_field( wp_unslash( $_POST['wcj_save_currency_rates_array'] ) ) ) );
|
48 |
$html .= '<div class="notice notice-success is-dismissible"><p><strong>' . __( 'Currency rates saved.', 'woocommerce-jetpack' ) . '</strong></p></div>';
|
49 |
+
} elseif ( $reset_currency_wpnonce && isset( $_POST['wcj_reset_currency_rates'] ) ) {
|
50 |
// Delete rates.
|
51 |
delete_option( 'wcj_reports_currency_rates' );
|
52 |
$html .= '<div class="notice notice-success is-dismissible"><p><strong>' . __( 'Currency rates deleted.', 'woocommerce-jetpack' ) . '</strong></p></div>';
|
86 |
/**
|
87 |
* Get_monthly_sales_report.
|
88 |
*
|
89 |
+
* @version 5.6.7
|
90 |
* @since 2.4.7
|
91 |
* @todo (maybe) visible rows selection by admin (as option)
|
92 |
* @todo (maybe) take not monthly average, but "Close" of closest day (probably create new "Daily Sales (with Currency Conversion)" report)
|
384 |
number_format( ( $execution_time_end - $execution_time_start ), 2, '.', ',' )
|
385 |
) . '</em></p>';
|
386 |
$html .= '<p><input name="wcj_save_currency_rates" type="submit" class="button button-primary" value="' .
|
387 |
+
__( 'Save Currency Rates', 'woocommerce-jetpack' ) . '"> ' .
|
388 |
+
wp_nonce_field( 'wcj_save_currency_rates', 'wcj-save-currency-rates-nonce' ) . '</p>';
|
389 |
$html .= '</form>';
|
390 |
$html .= '<form method="post" action="">' .
|
391 |
'<input name="wcj_reset_currency_rates" type="submit" class="button button-primary" value="' .
|
392 |
__( 'Reset Currency Rates', 'woocommerce-jetpack' ) . '" onclick="return confirm(\'' . __( 'Are you sure?', 'woocommerce-jetpack' ) . '\')">' .
|
393 |
+
wp_nonce_field( 'wcj_reset_currency_rates', 'wcj-reset-currency-rates-nonce' ) .
|
394 |
'</form>';
|
395 |
return $html;
|
396 |
}
|
includes/reports/class-wcj-reports-product-sales-daily.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Reports - Product Sales (Daily)
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -47,15 +47,12 @@ if ( ! class_exists( 'WCJ_Reports_Product_Sales_Daily' ) ) :
|
|
47 |
/**
|
48 |
* Get_report_args.
|
49 |
*
|
50 |
-
* @version
|
51 |
* @since 2.9.0
|
52 |
*/
|
53 |
public function get_report_args() {
|
54 |
-
$current_time
|
55 |
-
$wpnonce
|
56 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
57 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
58 |
-
}
|
59 |
$this->start_date = $wpnonce && isset( $_GET['start_date'] ) ? sanitize_text_field( wp_unslash( $_GET['start_date'] ) ) : gmdate( 'Y-m-d', strtotime( '-7 days', $current_time ) );
|
60 |
$this->end_date = isset( $_GET['end_date'] ) ? sanitize_text_field( wp_unslash( $_GET['end_date'] ) ) : gmdate( 'Y-m-d', $current_time );
|
61 |
$this->product_title = isset( $_GET['product_title'] ) ? sanitize_text_field( wp_unslash( $_GET['product_title'] ) ) : '';
|
@@ -174,7 +171,7 @@ if ( ! class_exists( 'WCJ_Reports_Product_Sales_Daily' ) ) :
|
|
174 |
/**
|
175 |
* Output_report_header.
|
176 |
*
|
177 |
-
* @version 5.6.
|
178 |
* @since 2.9.0
|
179 |
*/
|
180 |
public function output_report_header() {
|
@@ -199,10 +196,7 @@ if ( ! class_exists( 'WCJ_Reports_Product_Sales_Daily' ) ) :
|
|
199 |
$menu .= '</ul>';
|
200 |
$menu .= '<br class="clear">';
|
201 |
// Product and date filter form.
|
202 |
-
$wpnonce
|
203 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
204 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
205 |
-
}
|
206 |
$pages = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : '';
|
207 |
$tabs = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : '';
|
208 |
$reports = isset( $_GET['report'] ) ? sanitize_text_field( wp_unslash( $_GET['report'] ) ) : '';
|
@@ -219,6 +213,7 @@ if ( ! class_exists( 'WCJ_Reports_Product_Sales_Daily' ) ) :
|
|
219 |
$filter_form .= ' ';
|
220 |
$filter_form .= '<label style="font-style:italic;" for="product_title">' . __( 'Product:', 'woocommerce-jetpack' ) . '</label> ' .
|
221 |
'<input type="text" name="product_title" id="product_title" title="" value="' . $this->product_title . '" />';
|
|
|
222 |
$filter_form .= '<input type="submit" value="' . __( 'Filter', 'woocommerce-jetpack' ) . '" />';
|
223 |
$filter_form .= '</form>';
|
224 |
// Final result.
|
2 |
/**
|
3 |
* Booster for WooCommerce - Reports - Product Sales (Daily)
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
47 |
/**
|
48 |
* Get_report_args.
|
49 |
*
|
50 |
+
* @version 5.6.7
|
51 |
* @since 2.9.0
|
52 |
*/
|
53 |
public function get_report_args() {
|
54 |
+
$current_time = (int) gmdate( 'U' );
|
55 |
+
$wpnonce = isset( $_REQUEST['booster_products_sales_daily_filter-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['booster_products_sales_daily_filter-nonce'] ), 'booster_products_sales_daily_filter' ) : false;
|
|
|
|
|
|
|
56 |
$this->start_date = $wpnonce && isset( $_GET['start_date'] ) ? sanitize_text_field( wp_unslash( $_GET['start_date'] ) ) : gmdate( 'Y-m-d', strtotime( '-7 days', $current_time ) );
|
57 |
$this->end_date = isset( $_GET['end_date'] ) ? sanitize_text_field( wp_unslash( $_GET['end_date'] ) ) : gmdate( 'Y-m-d', $current_time );
|
58 |
$this->product_title = isset( $_GET['product_title'] ) ? sanitize_text_field( wp_unslash( $_GET['product_title'] ) ) : '';
|
171 |
/**
|
172 |
* Output_report_header.
|
173 |
*
|
174 |
+
* @version 5.6.7
|
175 |
* @since 2.9.0
|
176 |
*/
|
177 |
public function output_report_header() {
|
196 |
$menu .= '</ul>';
|
197 |
$menu .= '<br class="clear">';
|
198 |
// Product and date filter form.
|
199 |
+
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ) ) : true;
|
|
|
|
|
|
|
200 |
$pages = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : '';
|
201 |
$tabs = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : '';
|
202 |
$reports = isset( $_GET['report'] ) ? sanitize_text_field( wp_unslash( $_GET['report'] ) ) : '';
|
213 |
$filter_form .= ' ';
|
214 |
$filter_form .= '<label style="font-style:italic;" for="product_title">' . __( 'Product:', 'woocommerce-jetpack' ) . '</label> ' .
|
215 |
'<input type="text" name="product_title" id="product_title" title="" value="' . $this->product_title . '" />';
|
216 |
+
$filter_form .= wp_nonce_field( 'booster_products_sales_daily_filter', 'booster_products_sales_daily_filter-nonce' );
|
217 |
$filter_form .= '<input type="submit" value="' . __( 'Filter', 'woocommerce-jetpack' ) . '" />';
|
218 |
$filter_form .= '</form>';
|
219 |
// Final result.
|
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 5.6.
|
6 |
* @since 2.8.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
@@ -190,7 +190,15 @@ $settings = array(
|
|
190 |
'title' => __( 'Price Filter Widget and Sorting by Price Support', 'woocommerce-jetpack' ),
|
191 |
'desc' => empty( $message ) ? __( 'Enable', 'woocommerce-jetpack' ) : $message,
|
192 |
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
193 |
-
'desc_tip' => '<a href="' . esc_url(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
__( 'Recalculate price filter widget and sorting by price product prices.', 'woocommerce-jetpack' ) . '</a>',
|
195 |
'id' => 'wcj_price_by_country_price_filter_widget_support_enabled',
|
196 |
'default' => 'no',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Prices and Currencies by Country
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.8.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
190 |
'title' => __( 'Price Filter Widget and Sorting by Price Support', 'woocommerce-jetpack' ),
|
191 |
'desc' => empty( $message ) ? __( 'Enable', 'woocommerce-jetpack' ) : $message,
|
192 |
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
193 |
+
'desc_tip' => '<a href="' . esc_url(
|
194 |
+
add_query_arg(
|
195 |
+
array(
|
196 |
+
'recalculate_price_filter_products_prices' => '1',
|
197 |
+
'recalculate_price_filter_products_prices-nonce' => wp_create_nonce( 'recalculate_price_filter_products_prices' ),
|
198 |
+
),
|
199 |
+
remove_query_arg( array( 'wcj_generate_country_groups' ) )
|
200 |
+
)
|
201 |
+
) . '">' .
|
202 |
__( 'Recalculate price filter widget and sorting by price product prices.', 'woocommerce-jetpack' ) . '</a>',
|
203 |
'id' => 'wcj_price_by_country_price_filter_widget_support_enabled',
|
204 |
'default' => 'no',
|
includes/settings/wcj-settings-products-per-page.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Products per Page
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.8.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
@@ -64,7 +64,7 @@ return array(
|
|
64 |
'title' => __( 'Template - Form', 'woocommerce-jetpack' ),
|
65 |
'id' => 'wcj_products_per_page_text',
|
66 |
/* translators: %s: translators Added */
|
67 |
-
'default' => __( 'Products <strong>%1$
|
68 |
'type' => 'custom_textarea',
|
69 |
'css' => 'width:100%',
|
70 |
),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Products per Page
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 2.8.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
64 |
'title' => __( 'Template - Form', 'woocommerce-jetpack' ),
|
65 |
'id' => 'wcj_products_per_page_text',
|
66 |
/* translators: %s: translators Added */
|
67 |
+
'default' => sprintf( __( 'Products <strong>%1$s - %2$s</strong> from <strong>%3$s</strong>. Products on page %4$s', 'woocommerce-jetpack' ), '%from%', '%to%', '%total%', '%select_form%' ) . '<br>',
|
68 |
'type' => 'custom_textarea',
|
69 |
'css' => 'width:100%',
|
70 |
),
|
includes/shortcodes/class-wcj-general-shortcodes.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - General
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/shortcodes
|
8 |
*/
|
@@ -399,7 +399,7 @@ if ( ! class_exists( 'WCJ_General_Shortcodes' ) ) :
|
|
399 |
/**
|
400 |
* Wcj_button_toggle_tax_display.
|
401 |
*
|
402 |
-
* @version 5.6.
|
403 |
* @since 3.2.4
|
404 |
* @todo (dev) different style/class for different tax state
|
405 |
* @todo (maybe) `get` instead of `post`
|
@@ -410,7 +410,7 @@ if ( ! class_exists( 'WCJ_General_Shortcodes' ) ) :
|
|
410 |
$current_value = ( ( '' === $session_value || null === $session_value ) ? wcj_get_option( 'woocommerce_tax_display_shop', 'excl' ) : $session_value );
|
411 |
$current_value = '' === $current_value ? 'excl' : $current_value;
|
412 |
$label = $atts[ 'label_' . $current_value ];
|
413 |
-
return '<form method="post" action=""
|
414 |
' class="' . $atts['class'] . '" style="' . $atts['style'] . '" value="' . $label . '"></form>';
|
415 |
}
|
416 |
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - General
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/shortcodes
|
8 |
*/
|
399 |
/**
|
400 |
* Wcj_button_toggle_tax_display.
|
401 |
*
|
402 |
+
* @version 5.6.7
|
403 |
* @since 3.2.4
|
404 |
* @todo (dev) different style/class for different tax state
|
405 |
* @todo (maybe) `get` instead of `post`
|
410 |
$current_value = ( ( '' === $session_value || null === $session_value ) ? wcj_get_option( 'woocommerce_tax_display_shop', 'excl' ) : $session_value );
|
411 |
$current_value = '' === $current_value ? 'excl' : $current_value;
|
412 |
$label = $atts[ 'label_' . $current_value ];
|
413 |
+
return '<form method="post" action="">' . wp_nonce_field( 'wcj_button_toggle_tax_display', 'wcj-button-toggle-tax-display-nonce' ) . '<input type="submit" name="wcj_button_toggle_tax_display"' .
|
414 |
' class="' . $atts['class'] . '" style="' . $atts['style'] . '" value="' . $label . '"></form>';
|
415 |
}
|
416 |
|
includes/shortcodes/class-wcj-order-items-shortcodes.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - Order Items
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/shortcodes
|
8 |
*/
|
@@ -32,18 +32,14 @@ if ( ! class_exists( 'WCJ_Order_Items_Shortcodes' ) ) :
|
|
32 |
/**
|
33 |
* Add_extra_atts.
|
34 |
*
|
35 |
-
* @version 5.6.
|
36 |
* @param array $atts The user defined shortcode attributes.
|
37 |
*/
|
38 |
public function add_extra_atts( $atts ) {
|
39 |
|
40 |
-
$wpnonce = true;
|
41 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
42 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : '' ) ) : true;
|
43 |
-
}
|
44 |
$modified_atts = array_merge(
|
45 |
array(
|
46 |
-
'order_id' => ( isset( $_GET['order_id'] )
|
47 |
'hide_currency' => 'no',
|
48 |
'table_class' => '',
|
49 |
'shipping_as_item' => '', // e.g.: 'Shipping'.
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - Order Items
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/shortcodes
|
8 |
*/
|
32 |
/**
|
33 |
* Add_extra_atts.
|
34 |
*
|
35 |
+
* @version 5.6.7
|
36 |
* @param array $atts The user defined shortcode attributes.
|
37 |
*/
|
38 |
public function add_extra_atts( $atts ) {
|
39 |
|
|
|
|
|
|
|
|
|
40 |
$modified_atts = array_merge(
|
41 |
array(
|
42 |
+
'order_id' => ( isset( $_GET['order_id'] ) ) ? sanitize_text_field( wp_unslash( $_GET['order_id'] ) ) : get_the_ID(), // phpcs:ignore WordPress.Security.NonceVerification
|
43 |
'hide_currency' => 'no',
|
44 |
'table_class' => '',
|
45 |
'shipping_as_item' => '', // e.g.: 'Shipping'.
|
includes/tools/class-wcj-order-statuses-tool.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Tool - Order Statuses
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 3.2.2
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/tools
|
@@ -177,7 +177,7 @@ if ( ! class_exists( 'WCJ_Order_Statuses_Tool' ) ) :
|
|
177 |
/**
|
178 |
* Get_custom_statuses_table.
|
179 |
*
|
180 |
-
* @version 5.6.
|
181 |
* @since 3.2.2
|
182 |
*/
|
183 |
public function get_custom_statuses_table() {
|
@@ -203,11 +203,23 @@ if ( ! class_exists( 'WCJ_Order_Statuses_Tool' ) ) :
|
|
203 |
$icon_data = $this->module->get_status_icon_data( substr( $status, 3 ) );
|
204 |
$color_html = '<input disabled type="color" value="' . $icon_data['color'] . '">';
|
205 |
$text_color_html = '<input disabled type="color" value="' . $icon_data['text_color'] . '">';
|
206 |
-
$delete_button = '<a class="button-primary" href="' . add_query_arg(
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
'" onclick="return confirm(\'' . __( 'Are you sure?', 'woocommerce-jetpack' ) . '\')">' . __( 'Delete', 'woocommerce-jetpack' ) . '</a>';
|
208 |
$edit_button = '<a class="button-primary"' . ( '' !== apply_filters( 'booster_message', '', 'desc' ) ?
|
209 |
' disabled title="' . __( 'Get Booster Plus to enable.', 'woocommerce-jetpack' ) . '"' :
|
210 |
-
' href="' . add_query_arg(
|
|
|
|
|
|
|
|
|
|
|
|
|
211 |
$row = array_merge(
|
212 |
$row,
|
213 |
array(
|
@@ -241,14 +253,11 @@ if ( ! class_exists( 'WCJ_Order_Statuses_Tool' ) ) :
|
|
241 |
/**
|
242 |
* Get_custom_statuses_add_edit_table.
|
243 |
*
|
244 |
-
* @version 5.6.
|
245 |
* @since 3.2.2
|
246 |
*/
|
247 |
public function get_custom_statuses_add_edit_table() {
|
248 |
-
$wpnonce
|
249 |
-
if ( function_exists( 'wp_verify_nonce' ) ) {
|
250 |
-
$wpnonce = isset( $_REQUEST['_wpnonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['_wpnonce'] ) ? $_REQUEST['_wpnonce'] : 'woocommerce-settings' ) ) : true;
|
251 |
-
}
|
252 |
$is_editing = ( $wpnonce && isset( $_GET['edit'] ) );
|
253 |
if ( $is_editing ) {
|
254 |
$edit_slug = sanitize_text_field( wp_unslash( $_GET['edit'] ) );
|
@@ -264,7 +273,8 @@ if ( ! class_exists( 'WCJ_Order_Statuses_Tool' ) ) :
|
|
264 |
$action_button = '<input class="button-primary" type="submit" name="' . ( $is_editing ? 'edit_custom_status' : 'add_custom_status' ) . '"' .
|
265 |
' value="' . ( $is_editing ? __( 'Edit custom status', 'woocommerce-jetpack' ) : __( 'Add new custom status', 'woocommerce-jetpack' ) ) . '">';
|
266 |
$clear_button = ( $is_editing ?
|
267 |
-
' <a class="button-primary" href="' . ( remove_query_arg( array( 'delete', 'edit' ) ) ) . '">' . __( 'Clear', 'woocommerce-jetpack' ) . '</a>' : '' );
|
|
|
268 |
$table_data = array(
|
269 |
array(
|
270 |
__( 'Slug (without <code>wc-</code> prefix)', 'woocommerce-jetpack' ),
|
@@ -280,7 +290,7 @@ if ( ! class_exists( 'WCJ_Order_Statuses_Tool' ) ) :
|
|
280 |
$icon_code_input_html,
|
281 |
$icon_color_input_html,
|
282 |
$text_color_input_html,
|
283 |
-
$action_button . $clear_button,
|
284 |
),
|
285 |
);
|
286 |
$columns_styles = array();
|
@@ -303,28 +313,29 @@ if ( ! class_exists( 'WCJ_Order_Statuses_Tool' ) ) :
|
|
303 |
/**
|
304 |
* Process_actions.
|
305 |
*
|
306 |
-
* @version 5.6.
|
307 |
* @since 3.2.2
|
308 |
* @todo (maybe) use `init` hook for processing actions
|
309 |
*/
|
310 |
public function process_actions() {
|
311 |
-
$
|
312 |
-
|
313 |
-
|
314 |
-
|
|
|
315 |
$new_status = isset( $_POST['new_status'] ) ? sanitize_text_field( wp_unslash( $_POST['new_status'] ) ) : '';
|
316 |
$new_status_label = isset( $_POST['new_status_label'] ) ? sanitize_text_field( wp_unslash( $_POST['new_status_label'] ) ) : '';
|
317 |
$new_status_icon_content = isset( $_POST['new_status_icon_content'] ) ? sanitize_text_field( wp_unslash( $_POST['new_status_icon_content'] ) ) : '';
|
318 |
$new_status_icon_color = isset( $_POST['new_status_icon_color'] ) ? sanitize_text_field( wp_unslash( $_POST['new_status_icon_color'] ) ) : '';
|
319 |
$new_status_text_color = isset( $_POST['new_status_text_color'] ) ? sanitize_text_field( wp_unslash( $_POST['new_status_text_color'] ) ) : '';
|
320 |
|
321 |
-
if ( $
|
322 |
return $this->add_custom_status( $new_status, $new_status_label, $new_status_icon_content, $new_status_icon_color, $new_status_text_color );
|
323 |
-
} elseif ( $
|
324 |
return $this->edit_custom_status( $new_status, $new_status_label, $new_status_icon_content, $new_status_icon_color, $new_status_text_color );
|
325 |
-
} elseif ( $
|
326 |
return $this->delete_custom_status( sanitize_text_field( wp_unslash( $_GET['delete'] ) ) );
|
327 |
-
} elseif ( $
|
328 |
return $this->delete_custom_status_all();
|
329 |
}
|
330 |
}
|
@@ -332,11 +343,23 @@ if ( ! class_exists( 'WCJ_Order_Statuses_Tool' ) ) :
|
|
332 |
/**
|
333 |
* Get_delete_all_custom_statuses_button.
|
334 |
*
|
335 |
-
* @version 5.
|
336 |
* @since 3.2.2
|
337 |
*/
|
338 |
public function get_delete_all_custom_statuses_button() {
|
339 |
-
return '<p> <a class="button-primary" href="' . (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
'" onclick="return confirm(\'' . __( 'Are you sure?', 'woocommerce-jetpack' ) . '\')">' . __( 'Delete All Custom Statuses', 'woocommerce-jetpack' ) . '</a>' .
|
341 |
'</p>';
|
342 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Tool - Order Statuses
|
4 |
*
|
5 |
+
* @version 5.6.7
|
6 |
* @since 3.2.2
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/tools
|
177 |
/**
|
178 |
* Get_custom_statuses_table.
|
179 |
*
|
180 |
+
* @version 5.6.7
|
181 |
* @since 3.2.2
|
182 |
*/
|
183 |
public function get_custom_statuses_table() {
|
203 |
$icon_data = $this->module->get_status_icon_data( substr( $status, 3 ) );
|
204 |
$color_html = '<input disabled type="color" value="' . $icon_data['color'] . '">';
|
205 |
$text_color_html = '<input disabled type="color" value="' . $icon_data['text_color'] . '">';
|
206 |
+
$delete_button = '<a class="button-primary" href="' . add_query_arg(
|
207 |
+
array(
|
208 |
+
'delete' => $status,
|
209 |
+
'delete_custom_status-nonce' => wp_create_nonce( 'delete_custom_status' ),
|
210 |
+
),
|
211 |
+
remove_query_arg( array( 'edit', 'edit-custom-statuses-nonce', 'delete_custom_status-nonce', 'delete_all_custom_status-nonce' ) )
|
212 |
+
) .
|
213 |
'" onclick="return confirm(\'' . __( 'Are you sure?', 'woocommerce-jetpack' ) . '\')">' . __( 'Delete', 'woocommerce-jetpack' ) . '</a>';
|
214 |
$edit_button = '<a class="button-primary"' . ( '' !== apply_filters( 'booster_message', '', 'desc' ) ?
|
215 |
' disabled title="' . __( 'Get Booster Plus to enable.', 'woocommerce-jetpack' ) . '"' :
|
216 |
+
' href="' . add_query_arg(
|
217 |
+
array(
|
218 |
+
'edit' => $status,
|
219 |
+
'edit-custom-statuses-nonce' => wp_create_nonce( 'edit-custom-statuses' ),
|
220 |
+
),
|
221 |
+
remove_query_arg( 'delete', 'edit-custom-statuses-nonce', 'delete_all_custom_status-nonce' )
|
222 |
+
) . '"' ) . '>' . __( 'Edit', 'woocommerce-jetpack' ) . '</a>';
|
223 |
$row = array_merge(
|
224 |
$row,
|
225 |
array(
|
253 |
/**
|
254 |
* Get_custom_statuses_add_edit_table.
|
255 |
*
|
256 |
+
* @version 5.6.7
|
257 |
* @since 3.2.2
|
258 |
*/
|
259 |
public function get_custom_statuses_add_edit_table() {
|
260 |
+
$wpnonce = isset( $_REQUEST['edit-custom-statuses-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['edit-custom-statuses-nonce'] ), 'edit-custom-statuses' ) : false;
|
|
|
|
|
|
|
261 |
$is_editing = ( $wpnonce && isset( $_GET['edit'] ) );
|
262 |
if ( $is_editing ) {
|
263 |
$edit_slug = sanitize_text_field( wp_unslash( $_GET['edit'] ) );
|
273 |
$action_button = '<input class="button-primary" type="submit" name="' . ( $is_editing ? 'edit_custom_status' : 'add_custom_status' ) . '"' .
|
274 |
' value="' . ( $is_editing ? __( 'Edit custom status', 'woocommerce-jetpack' ) : __( 'Add new custom status', 'woocommerce-jetpack' ) ) . '">';
|
275 |
$clear_button = ( $is_editing ?
|
276 |
+
' <a class="button-primary" href="' . ( remove_query_arg( array( 'delete', 'edit', 'edit-custom-statuses-nonce', 'delete_custom_status-nonce', 'delete_all_custom_status-nonce' ) ) ) . '">' . __( 'Clear', 'woocommerce-jetpack' ) . '</a>' : '' );
|
277 |
+
$nonce_field = wp_nonce_field( $is_editing ? 'edit_custom_status' : 'add_custom_status', $is_editing ? 'edit_custom_status-nonce' : 'add_custom_status-nonce' );
|
278 |
$table_data = array(
|
279 |
array(
|
280 |
__( 'Slug (without <code>wc-</code> prefix)', 'woocommerce-jetpack' ),
|
290 |
$icon_code_input_html,
|
291 |
$icon_color_input_html,
|
292 |
$text_color_input_html,
|
293 |
+
$action_button . $clear_button . $nonce_field,
|
294 |
),
|
295 |
);
|
296 |
$columns_styles = array();
|
313 |
/**
|
314 |
* Process_actions.
|
315 |
*
|
316 |
+
* @version 5.6.7
|
317 |
* @since 3.2.2
|
318 |
* @todo (maybe) use `init` hook for processing actions
|
319 |
*/
|
320 |
public function process_actions() {
|
321 |
+
$add_custom_status_wpnonce = isset( $_REQUEST['add_custom_status-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['add_custom_status-nonce'] ), 'add_custom_status' ) : false;
|
322 |
+
$edit_custom_status_wpnonce = isset( $_REQUEST['edit_custom_status-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['edit_custom_status-nonce'] ), 'edit_custom_status' ) : false;
|
323 |
+
$delete_custom_status_wpnonce = isset( $_REQUEST['delete_custom_status-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['delete_custom_status-nonce'] ), 'delete_custom_status' ) : false;
|
324 |
+
$delete_all_custom_status_wpnonce = isset( $_REQUEST['delete_all_custom_status-nonce'] ) ? wp_verify_nonce( sanitize_key( $_REQUEST['delete_all_custom_status-nonce'] ), 'delete_all_custom_status' ) : false;
|
325 |
+
|
326 |
$new_status = isset( $_POST['new_status'] ) ? sanitize_text_field( wp_unslash( $_POST['new_status'] ) ) : '';
|
327 |
$new_status_label = isset( $_POST['new_status_label'] ) ? sanitize_text_field( wp_unslash( $_POST['new_status_label'] ) ) : '';
|
328 |
$new_status_icon_content = isset( $_POST['new_status_icon_content'] ) ? sanitize_text_field( wp_unslash( $_POST['new_status_icon_content'] ) ) : '';
|
329 |
$new_status_icon_color = isset( $_POST['new_status_icon_color'] ) ? sanitize_text_field( wp_unslash( $_POST['new_status_icon_color'] ) ) : '';
|
330 |
$new_status_text_color = isset( $_POST['new_status_text_color'] ) ? sanitize_text_field( wp_unslash( $_POST['new_status_text_color'] ) ) : '';
|
331 |
|
332 |
+
if ( $add_custom_status_wpnonce && isset( $_POST['add_custom_status'] ) ) {
|
333 |
return $this->add_custom_status( $new_status, $new_status_label, $new_status_icon_content, $new_status_icon_color, $new_status_text_color );
|
334 |
+
} elseif ( $edit_custom_status_wpnonce && isset( $_POST['edit_custom_status'] ) ) {
|
335 |
return $this->edit_custom_status( $new_status, $new_status_label, $new_status_icon_content, $new_status_icon_color, $new_status_text_color );
|
336 |
+
} elseif ( $delete_custom_status_wpnonce && isset( $_GET['delete'] ) && '' !== $_GET['delete'] ) {
|
337 |
return $this->delete_custom_status( sanitize_text_field( wp_unslash( $_GET['delete'] ) ) );
|
338 |
+
} elseif ( $delete_all_custom_status_wpnonce && isset( $_GET['delete_all'] ) && '' !== $_GET['delete_all'] ) {
|
339 |
return $this->delete_custom_status_all();
|
340 |
}
|
341 |
}
|
343 |
/**
|
344 |
* Get_delete_all_custom_statuses_button.
|
345 |
*
|
346 |
+
* @version 5.6.7
|
347 |
* @since 3.2.2
|
348 |
*/
|
349 |
public function get_delete_all_custom_statuses_button() {
|
350 |
+
return '<p> <a class="button-primary" href="' . (
|
351 |
+
add_query_arg(
|
352 |
+
array(
|
353 |
+
'delete_all' => '1',
|
354 |
+
'delete_all_custom_status-nonce' => wp_create_nonce( 'delete_all_custom_status' ),
|
355 |
+
),
|
356 |
+
(
|
357 |
+
remove_query_arg(
|
358 |
+
array( 'edit', 'delete', 'edit-custom-statuses-nonce', 'delete_custom_status-nonce' )
|
359 |
+
)
|
360 |
+
)
|
361 |
+
)
|
362 |
+
) .
|
363 |
'" onclick="return confirm(\'' . __( 'Are you sure?', 'woocommerce-jetpack' ) . '\')">' . __( 'Delete All Custom Statuses', 'woocommerce-jetpack' ) . '</a>' .
|
364 |
'</p>';
|
365 |
}
|
langs/woocommerce-jetpack.pot
CHANGED
@@ -10,7 +10,7 @@ msgstr ""
|
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
13 |
-
"X-Generator: Poedit 2.
|
14 |
"X-Poedit-Basepath: ..\n"
|
15 |
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
16 |
"_n_noop:1,2;_c;_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
|
@@ -34,7 +34,7 @@ msgid "Product category (archive) view"
|
|
34 |
msgstr ""
|
35 |
|
36 |
#: includes/admin/class-wc-settings-jetpack.php:33
|
37 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
38 |
#: includes/class-wcj-admin-bar.php:299
|
39 |
#: includes/class-wcj-checkout-files-upload.php:273
|
40 |
#: includes/class-wcj-eu-vat-number.php:179
|
@@ -44,7 +44,7 @@ msgstr ""
|
|
44 |
#: includes/class-wcj-track-users.php:174 includes/class-wcj-track-users.php:265
|
45 |
#: includes/classes/class-wcj-module.php:678
|
46 |
#: includes/classes/class-wcj-module.php:887
|
47 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
48 |
msgid "Booster"
|
49 |
msgstr ""
|
50 |
|
@@ -71,39 +71,39 @@ msgid ""
|
|
71 |
"from Booster team!"
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
75 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
76 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
77 |
#: includes/admin/wcj-modules-cats.php:17 includes/class-wcj-admin-bar.php:234
|
78 |
#: includes/class-wcj-my-account.php:39
|
79 |
msgid "Dashboard"
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
83 |
msgid "All Module"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
87 |
msgid "Active Modules"
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
91 |
#: includes/class-wcj-admin-bar.php:167
|
92 |
msgid "Manage Settings"
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
96 |
#, php-format
|
97 |
msgid ""
|
98 |
"Please note that current <em>%1$s</em> module is deprecated and will be "
|
99 |
"removed in future updates. Please use <em>%2$s</em> module instead."
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
103 |
msgid "Module will be removed from the module's list as soon as you disable it."
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
107 |
#, php-format
|
108 |
msgid ""
|
109 |
"Please note that <em>%s</em> module is currently under development. Until "
|
@@ -111,88 +111,88 @@ msgid ""
|
|
111 |
"be moved to paid plugin version."
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
115 |
#: includes/class-wcj-admin-bar.php:411
|
116 |
#: includes/settings/wcj-settings-emails-verification.php:152
|
117 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
118 |
msgid "WooCommerce"
|
119 |
msgstr ""
|
120 |
|
121 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
122 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
123 |
#: includes/class-wcj-admin-bar.php:184 includes/class-wcj-admin-bar.php:535
|
124 |
-
#: includes/class-wcj-admin-bar.php:635 includes/core/class-wcj-admin.php:
|
125 |
msgid "Settings"
|
126 |
msgstr ""
|
127 |
|
128 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
129 |
msgid ""
|
130 |
"This section lets you export, import or reset all Booster's modules settings."
|
131 |
msgstr ""
|
132 |
|
133 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
134 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
135 |
#: includes/class-wcj-export-import.php:31
|
136 |
msgid "Export"
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
140 |
msgid "Export all Booster's options to a file."
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
144 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
145 |
#: includes/class-wcj-purchase-data.php:124
|
146 |
msgid "Import"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
150 |
msgid "Import all Booster's options from a file."
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
154 |
msgid ""
|
155 |
"This will reset settings to defaults for all Booster modules. Are you sure?"
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
159 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
160 |
msgid "Reset"
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
164 |
msgid "Reset all Booster's options."
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
168 |
msgid "This will delete all Booster meta. Are you sure?"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
172 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
173 |
msgid "Reset meta"
|
174 |
msgstr ""
|
175 |
|
176 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
177 |
msgid "Reset all Booster's meta."
|
178 |
msgstr ""
|
179 |
|
180 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
181 |
msgid "Version"
|
182 |
msgstr ""
|
183 |
|
184 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
185 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
186 |
msgid "Select All"
|
187 |
msgstr ""
|
188 |
|
189 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
190 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
191 |
msgid "Module"
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
195 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
196 |
#: includes/export/class-wcj-export-fields-helper.php:297
|
197 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:67
|
198 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:181
|
@@ -203,161 +203,161 @@ msgstr ""
|
|
203 |
msgid "Description"
|
204 |
msgstr ""
|
205 |
|
206 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
207 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
208 |
#: includes/class-wcj-admin-bar.php:188
|
209 |
-
#: includes/classes/class-wcj-module.php:
|
210 |
msgid "Documentation"
|
211 |
msgstr ""
|
212 |
|
213 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
214 |
msgid "No active modules found."
|
215 |
msgstr ""
|
216 |
|
217 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
218 |
msgid "Total Modules:"
|
219 |
msgstr ""
|
220 |
|
221 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
222 |
msgid "Autoload Booster's Options"
|
223 |
msgstr ""
|
224 |
|
225 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
226 |
msgid ""
|
227 |
"Choose if you want Booster's options to be autoloaded when calling "
|
228 |
"add_option. After saving this option, you need to Reset all Booster's "
|
229 |
"settings. Leave default value (i.e. Enabled) if not sure."
|
230 |
msgstr ""
|
231 |
|
232 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
233 |
msgid "Load Modules on Init Hook"
|
234 |
msgstr ""
|
235 |
|
236 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
237 |
msgid "Choose if you want to load Booster Modules on Init hook."
|
238 |
msgstr ""
|
239 |
|
240 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
241 |
msgid ""
|
242 |
"It will load the locale appropriately if users change it from the profile "
|
243 |
"page."
|
244 |
msgstr ""
|
245 |
|
246 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
247 |
msgid "Use List Instead of Comma Separated Text for Products in Settings"
|
248 |
msgstr ""
|
249 |
|
250 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
251 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
252 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
253 |
#, php-format
|
254 |
msgid "Supported modules: %s."
|
255 |
msgstr ""
|
256 |
|
257 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
258 |
#: includes/class-wcj-payment-gateways-per-category.php:31
|
259 |
msgid "Gateways per Product or Category"
|
260 |
msgstr ""
|
261 |
|
262 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
263 |
#: includes/class-wcj-global-discount.php:38
|
264 |
#: includes/settings/wcj-settings-product-addons.php:275
|
265 |
msgid "Global Discount"
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
269 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
270 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
271 |
#: includes/class-wcj-product-custom-info.php:29
|
272 |
#: includes/functions/wcj-functions-general.php:488
|
273 |
msgid "Product Info"
|
274 |
msgstr ""
|
275 |
|
276 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
277 |
#: includes/admin/wcj-welcome-screen-content.php:82
|
278 |
#: includes/class-wcj-product-input-fields.php:29
|
279 |
#: includes/input-fields/class-wcj-product-input-fields-core.php:214
|
280 |
msgid "Product Input Fields"
|
281 |
msgstr ""
|
282 |
|
283 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
284 |
msgid "Products XML"
|
285 |
msgstr ""
|
286 |
|
287 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
288 |
#: includes/class-wcj-related-products.php:52
|
289 |
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:33
|
290 |
#: includes/settings/wcj-settings-free-price.php:23
|
291 |
msgid "Related Products"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
295 |
msgid ""
|
296 |
"Use List Instead of Comma Separated Text for Products Categories in Settings"
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
300 |
msgid "Use List Instead of Comma Separated Text for Products Tags in Settings"
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
304 |
-
#: includes/core/class-wcj-admin.php:
|
305 |
msgid "Booster for WooCommerce"
|
306 |
msgstr ""
|
307 |
|
308 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
309 |
msgid "Need Help?"
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
313 |
#: includes/class-wcj-my-account.php:32
|
314 |
msgid "My Account"
|
315 |
msgstr ""
|
316 |
|
317 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
318 |
msgid "Get Booster Plus"
|
319 |
msgstr ""
|
320 |
|
321 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
322 |
msgid "Getting Started"
|
323 |
msgstr ""
|
324 |
|
325 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
326 |
msgid "Navigating Categories"
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
330 |
msgid "How to get started with booster"
|
331 |
msgstr ""
|
332 |
|
333 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
334 |
msgid "Frequently Asked Questions"
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
338 |
msgid "Do I need to have coding skills to use Booster Plus?"
|
339 |
msgstr ""
|
340 |
|
341 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
342 |
msgid ""
|
343 |
"Absolutely not. You can configure pretty much everything Booster Plus has to "
|
344 |
"offer without any coding knowledge."
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
348 |
msgid "Will Booster Plus slow down my website?"
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
352 |
msgid ""
|
353 |
"Absolutely not. Booster Plus is carefully built with performance in mind."
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
357 |
msgid "Do you offer refunds?"
|
358 |
msgstr ""
|
359 |
|
360 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
361 |
#, php-format
|
362 |
msgid ""
|
363 |
"If you are not completely satisfied with Booster Plus within the fist 30 "
|
@@ -365,38 +365,38 @@ msgid ""
|
|
365 |
"no questions asked."
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
369 |
msgid "Can I use Booster Plus on client sites?"
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
373 |
msgid ""
|
374 |
"Yes, you can use Booster Plus on client sites. You can purchase the multiple "
|
375 |
"sites license of Booster Plus."
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
379 |
msgid "Do you have an affiliate program?"
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
383 |
msgid "Yes, We do have an affiliate program. "
|
384 |
msgstr ""
|
385 |
|
386 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
387 |
msgid "Click here"
|
388 |
msgstr ""
|
389 |
|
390 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
391 |
msgid " for the details."
|
392 |
msgstr ""
|
393 |
|
394 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
395 |
msgid ""
|
396 |
"Why should I choose the Booster Plus suite over other individual plugins?"
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
400 |
msgid ""
|
401 |
"Oh, that's an easy one! Implementing just a few modules from the Booster Plus "
|
402 |
"suite is more cost-effective than using dozens of individual plugins often "
|
@@ -408,171 +408,171 @@ msgid ""
|
|
408 |
"your WooCommerce site easily."
|
409 |
msgstr ""
|
410 |
|
411 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
412 |
msgid "What features does Booster Plus have?"
|
413 |
msgstr ""
|
414 |
|
415 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
416 |
msgid "You can see all the features at "
|
417 |
msgstr ""
|
418 |
|
419 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
420 |
msgid "About Booster"
|
421 |
msgstr ""
|
422 |
|
423 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
424 |
msgid " page."
|
425 |
msgstr ""
|
426 |
|
427 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
428 |
msgid "Still have a question?"
|
429 |
msgstr ""
|
430 |
|
431 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
432 |
msgid "CONTACT BOOSTER SUPPORT"
|
433 |
msgstr ""
|
434 |
|
435 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
436 |
msgid "Connect with Booster"
|
437 |
msgstr ""
|
438 |
|
439 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
440 |
msgid "BOOSTER WEBSITE"
|
441 |
msgstr ""
|
442 |
|
443 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
444 |
-
#: includes/class-wcj-general.php:
|
445 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:166
|
446 |
#: includes/tools/class-wcj-order-statuses-tool.php:191
|
447 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
448 |
msgid "Actions"
|
449 |
msgstr ""
|
450 |
|
451 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
452 |
msgid "Import Booster options"
|
453 |
msgstr ""
|
454 |
|
455 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
456 |
msgid "Export Booster options"
|
457 |
msgstr ""
|
458 |
|
459 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
460 |
msgid "Reset all Booster's options"
|
461 |
msgstr ""
|
462 |
|
463 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
464 |
msgid "Reset all Booster's meta"
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
468 |
msgid "Here you can find all documentation of Booster"
|
469 |
msgstr ""
|
470 |
|
471 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
472 |
msgid "See Documentation"
|
473 |
msgstr ""
|
474 |
|
475 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
476 |
msgid "Latest updates"
|
477 |
msgstr ""
|
478 |
|
479 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
480 |
msgid "Version "
|
481 |
msgstr ""
|
482 |
|
483 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
484 |
msgid "SEE MORE"
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
488 |
-
#: includes/core/class-wcj-admin.php:
|
489 |
msgid "Please rate "
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
493 |
-
#: includes/core/class-wcj-admin.php:
|
494 |
msgid "Booster for Woocommerce"
|
495 |
msgstr ""
|
496 |
|
497 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
498 |
-
#: includes/core/class-wcj-admin.php:
|
499 |
msgid "WordPress.org"
|
500 |
msgstr ""
|
501 |
|
502 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
503 |
-
#: includes/core/class-wcj-admin.php:
|
504 |
msgid " to help us spread the word. Thank you from Booster team!"
|
505 |
msgstr ""
|
506 |
|
507 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
508 |
msgid "Upgrade today to unlock these popular premium features:"
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
512 |
msgid "+ PDF Invoices and Packing slips –"
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
516 |
msgid ""
|
517 |
"Add ability to create Proforma Invoices, Credit Notes and Packaging slips"
|
518 |
msgstr ""
|
519 |
|
520 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
521 |
msgid "+ Empty Cart –"
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
525 |
msgid ""
|
526 |
"customize empty cart button text, different button positions on cart page"
|
527 |
msgstr ""
|
528 |
|
529 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
530 |
msgid "+ Cart and checkout –"
|
531 |
msgstr ""
|
532 |
|
533 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
534 |
msgid "add multiple – custom fields, custom info blocks, check out file uploads"
|
535 |
msgstr ""
|
536 |
|
537 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
538 |
msgid "+ Mini cart –"
|
539 |
msgstr ""
|
540 |
|
541 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
542 |
msgid "More custom information options"
|
543 |
msgstr ""
|
544 |
|
545 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
546 |
msgid "+ Prices and currencies –"
|
547 |
msgstr ""
|
548 |
|
549 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
550 |
msgid "add more unlimited number of currencies to WooCommerce"
|
551 |
msgstr ""
|
552 |
|
553 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
554 |
msgid "+ Export options –"
|
555 |
msgstr ""
|
556 |
|
557 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
558 |
msgid "more fields enabled"
|
559 |
msgstr ""
|
560 |
|
561 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
562 |
msgid "+ Add to cart –"
|
563 |
msgstr ""
|
564 |
|
565 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
566 |
msgid ""
|
567 |
"customize add to cart messages, Button labels - multiple category groups "
|
568 |
"allowed+ +"
|
569 |
msgstr ""
|
570 |
|
571 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
572 |
msgid "+ More configuration options for payments and shipping"
|
573 |
msgstr ""
|
574 |
|
575 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
576 |
msgid "Upgrade to Booster Plus"
|
577 |
msgstr ""
|
578 |
|
@@ -625,11 +625,11 @@ msgstr ""
|
|
625 |
msgid "Tools Dashboard"
|
626 |
msgstr ""
|
627 |
|
628 |
-
#: includes/admin/class-wcj-tools.php:
|
629 |
msgid "Booster for WooCommerce Tools - Dashboard"
|
630 |
msgstr ""
|
631 |
|
632 |
-
#: includes/admin/class-wcj-tools.php:
|
633 |
msgid ""
|
634 |
"This dashboard lets you check statuses and short descriptions of all "
|
635 |
"available Booster for WooCommerce tools. Tools can be enabled through "
|
@@ -882,39 +882,39 @@ msgstr ""
|
|
882 |
msgid "Don't miss updates from us!"
|
883 |
msgstr ""
|
884 |
|
885 |
-
#: includes/admin/wcj-welcome-screen-content.php:
|
886 |
msgid "Thank you for subscribing your email"
|
887 |
msgstr ""
|
888 |
|
889 |
-
#: includes/admin/wcj-welcome-screen-content.php:
|
890 |
msgid "You have already subscribed your email"
|
891 |
msgstr ""
|
892 |
|
893 |
-
#: includes/admin/wcj-welcome-screen-content.php:
|
894 |
msgid "Something went wrong with your subscription. Please after some time !"
|
895 |
msgstr ""
|
896 |
|
897 |
-
#: includes/admin/wcj-welcome-screen-content.php:
|
898 |
msgid "Contact Us"
|
899 |
msgstr ""
|
900 |
|
901 |
-
#: includes/admin/wcj-welcome-screen-content.php:
|
902 |
msgid ""
|
903 |
"Booster Plus customers get access to Premium Support and we respond within 24 "
|
904 |
"business hours."
|
905 |
msgstr ""
|
906 |
|
907 |
-
#: includes/admin/wcj-welcome-screen-content.php:
|
908 |
msgid "Booster Plus Premium Support"
|
909 |
msgstr ""
|
910 |
|
911 |
-
#: includes/admin/wcj-welcome-screen-content.php:
|
912 |
msgid ""
|
913 |
"Free users post on WordPress Plugin Support forum here. We check these "
|
914 |
"threads twice every week Mon and Frid to respond."
|
915 |
msgstr ""
|
916 |
|
917 |
-
#: includes/admin/wcj-welcome-screen-content.php:
|
918 |
msgid "Booster Free Plugin Support"
|
919 |
msgstr ""
|
920 |
|
@@ -1280,25 +1280,25 @@ msgid ""
|
|
1280 |
"filtering."
|
1281 |
msgstr ""
|
1282 |
|
1283 |
-
#: includes/class-wcj-admin-orders-list.php:
|
1284 |
msgid "Not Completed"
|
1285 |
msgstr ""
|
1286 |
|
1287 |
-
#: includes/class-wcj-admin-orders-list.php:
|
1288 |
msgid "Trash"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
-
#: includes/class-wcj-admin-orders-list.php:
|
1292 |
#: includes/class-wcj-product-by-country.php:192
|
1293 |
#: includes/class-wcj-product-by-country.php:228
|
1294 |
msgid "All countries"
|
1295 |
msgstr ""
|
1296 |
|
1297 |
-
#: includes/class-wcj-admin-orders-list.php:
|
1298 |
msgid "All currencies"
|
1299 |
msgstr ""
|
1300 |
|
1301 |
-
#: includes/class-wcj-admin-orders-list.php:
|
1302 |
#: includes/export/class-wcj-export-fields-helper.php:52
|
1303 |
#: includes/export/class-wcj-export-fields-helper.php:136
|
1304 |
#: includes/export/class-wcj-export-fields-helper.php:219
|
@@ -1306,7 +1306,7 @@ msgstr ""
|
|
1306 |
msgid "Billing Country"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
-
#: includes/class-wcj-admin-orders-list.php:
|
1310 |
#: includes/settings/wcj-settings-admin-orders-list.php:37
|
1311 |
msgid "Currency Code"
|
1312 |
msgstr ""
|
@@ -1373,8 +1373,8 @@ msgstr ""
|
|
1373 |
msgid "Item Meta Value"
|
1374 |
msgstr ""
|
1375 |
|
1376 |
-
#: includes/class-wcj-admin-tools.php:
|
1377 |
-
#: includes/class-wcj-admin-tools.php:
|
1378 |
#: includes/class-wcj-product-bulk-meta-editor.php:383
|
1379 |
#: includes/class-wcj-sku.php:710
|
1380 |
#: includes/reports/class-wcj-reports-sales.php:212
|
@@ -1382,13 +1382,13 @@ msgstr ""
|
|
1382 |
msgid "Product"
|
1383 |
msgstr ""
|
1384 |
|
1385 |
-
#: includes/class-wcj-admin-tools.php:
|
1386 |
-
#: includes/class-wcj-admin-tools.php:
|
1387 |
#: includes/reports/class-wcj-reports-stock.php:290
|
1388 |
msgid "Category"
|
1389 |
msgstr ""
|
1390 |
|
1391 |
-
#: includes/class-wcj-admin-tools.php:
|
1392 |
msgid "Total Products:"
|
1393 |
msgstr ""
|
1394 |
|
@@ -1554,7 +1554,7 @@ msgstr ""
|
|
1554 |
msgid "Add fees to WooCommerce cart & checkout."
|
1555 |
msgstr ""
|
1556 |
|
1557 |
-
#: includes/class-wcj-checkout-fees.php:
|
1558 |
#: includes/settings/wcj-settings-checkout-fees.php:46
|
1559 |
#: includes/settings/wcj-settings-checkout-fees.php:67
|
1560 |
msgid "Fee"
|
@@ -1589,8 +1589,8 @@ msgstr ""
|
|
1589 |
|
1590 |
#: includes/class-wcj-checkout-files-upload.php:235
|
1591 |
#: includes/class-wcj-checkout-files-upload.php:250
|
1592 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1593 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1594 |
#: includes/settings/wcj-settings-checkout-files-upload.php:120
|
1595 |
#, php-format
|
1596 |
msgid "Wrong file type: \"%s\"!"
|
@@ -1600,62 +1600,62 @@ msgstr ""
|
|
1600 |
msgid "Uploaded Files"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1604 |
msgid "No files uploaded."
|
1605 |
msgstr ""
|
1606 |
|
1607 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1608 |
msgid "Delete all files"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1612 |
#: includes/settings/wcj-settings-checkout-files-upload.php:260
|
1613 |
msgid "Files were successfully removed."
|
1614 |
msgstr ""
|
1615 |
|
1616 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1617 |
msgid "Booster for WooCommerce: Checkout Files Upload: %action%"
|
1618 |
msgstr ""
|
1619 |
|
1620 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1621 |
#, php-format
|
1622 |
msgid "Order ID: %1$s; File name: %2$s"
|
1623 |
msgstr ""
|
1624 |
|
1625 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1626 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1627 |
#: includes/settings/wcj-settings-checkout-files-upload.php:150
|
1628 |
#, php-format
|
1629 |
msgid "File \"%s\" was successfully removed."
|
1630 |
msgstr ""
|
1631 |
|
1632 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1633 |
msgid "File Removed"
|
1634 |
msgstr ""
|
1635 |
|
1636 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1637 |
#: includes/settings/wcj-settings-checkout-files-upload.php:135
|
1638 |
#, php-format
|
1639 |
msgid "File \"%s\" was successfully uploaded."
|
1640 |
msgstr ""
|
1641 |
|
1642 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1643 |
msgid "File Uploaded"
|
1644 |
msgstr ""
|
1645 |
|
1646 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1647 |
#: includes/settings/wcj-settings-checkout-files-upload.php:141
|
1648 |
msgid "Please select file to upload!"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1652 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1653 |
#: includes/settings/wcj-settings-checkout-files-upload.php:105
|
1654 |
msgid "Upload"
|
1655 |
msgstr ""
|
1656 |
|
1657 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1658 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1659 |
#: includes/settings/wcj-settings-checkout-files-upload.php:111
|
1660 |
#: includes/settings/wcj-settings-price-by-user-role.php:81
|
1661 |
#: includes/settings/wcj-settings-price-by-user-role.php:89
|
@@ -2064,20 +2064,20 @@ msgstr ""
|
|
2064 |
msgid "Log."
|
2065 |
msgstr ""
|
2066 |
|
2067 |
-
#: includes/class-wcj-debug-tools.php:
|
2068 |
msgid "Delete Log"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
-
#: includes/class-wcj-debug-tools.php:
|
2072 |
#, php-format
|
2073 |
msgid "Now: %s"
|
2074 |
msgstr ""
|
2075 |
|
2076 |
-
#: includes/class-wcj-debug-tools.php:
|
2077 |
msgid "Log is empty."
|
2078 |
msgstr ""
|
2079 |
|
2080 |
-
#: includes/class-wcj-debug-tools.php:
|
2081 |
msgid "NOT DEFINED"
|
2082 |
msgstr ""
|
2083 |
|
@@ -2312,31 +2312,31 @@ msgstr ""
|
|
2312 |
msgid "Customer EU VAT Number"
|
2313 |
msgstr ""
|
2314 |
|
2315 |
-
#: includes/class-wcj-eu-vat-number.php:
|
2316 |
#: includes/settings/wcj-settings-eu-vat-number.php:169
|
2317 |
msgid "Validating VAT. Please wait..."
|
2318 |
msgstr ""
|
2319 |
|
2320 |
-
#: includes/class-wcj-eu-vat-number.php:
|
2321 |
#: includes/settings/wcj-settings-eu-vat-number.php:176
|
2322 |
msgid "VAT is valid."
|
2323 |
msgstr ""
|
2324 |
|
2325 |
-
#: includes/class-wcj-eu-vat-number.php:
|
2326 |
#: includes/settings/wcj-settings-eu-vat-number.php:183
|
2327 |
msgid "VAT is not valid."
|
2328 |
msgstr ""
|
2329 |
|
2330 |
-
#: includes/class-wcj-eu-vat-number.php:
|
2331 |
#: includes/settings/wcj-settings-eu-vat-number.php:191
|
2332 |
msgid "Validation failed. Please try again."
|
2333 |
msgstr ""
|
2334 |
|
2335 |
-
#: includes/class-wcj-eu-vat-number.php:
|
2336 |
msgid "<strong>Billing EU VAT Number</strong>is a required field."
|
2337 |
msgstr ""
|
2338 |
|
2339 |
-
#: includes/class-wcj-eu-vat-number.php:
|
2340 |
#: includes/settings/wcj-settings-eu-vat-number.php:78
|
2341 |
msgid "<strong>EU VAT Number</strong> is not valid."
|
2342 |
msgstr ""
|
@@ -2408,7 +2408,7 @@ msgid "Filter by Product Title"
|
|
2408 |
msgstr ""
|
2409 |
|
2410 |
#: includes/class-wcj-export-import.php:275
|
2411 |
-
#: includes/reports/class-wcj-reports-product-sales-daily.php:
|
2412 |
#: includes/reports/wcj-class-reports-sales-gateways.php:166
|
2413 |
#: includes/settings/wcj-settings-orders.php:48
|
2414 |
msgid "Filter"
|
@@ -2471,11 +2471,11 @@ msgstr ""
|
|
2471 |
msgid "Current PHP time limit: %s seconds."
|
2472 |
msgstr ""
|
2473 |
|
2474 |
-
#: includes/class-wcj-general.php:
|
2475 |
msgid "Booster User Role"
|
2476 |
msgstr ""
|
2477 |
|
2478 |
-
#: includes/class-wcj-general.php:
|
2479 |
#: includes/class-wcj-sku.php:709
|
2480 |
#: includes/reports/class-wcj-reports-sales.php:211
|
2481 |
#: includes/settings/wcj-settings-cross-sells.php:46
|
@@ -2487,7 +2487,7 @@ msgstr ""
|
|
2487 |
msgid "ID"
|
2488 |
msgstr ""
|
2489 |
|
2490 |
-
#: includes/class-wcj-general.php:
|
2491 |
#: includes/class-wcj-offer-price.php:179
|
2492 |
#: includes/export/class-wcj-export-fields-helper.php:287
|
2493 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:92
|
@@ -2495,18 +2495,18 @@ msgstr ""
|
|
2495 |
msgid "Name"
|
2496 |
msgstr ""
|
2497 |
|
2498 |
-
#: includes/class-wcj-general.php:
|
2499 |
msgid "Capabilities"
|
2500 |
msgstr ""
|
2501 |
|
2502 |
-
#: includes/class-wcj-general.php:
|
2503 |
#: includes/class-wcj-payment-gateways.php:134
|
2504 |
#: includes/class-wcj-product-bulk-meta-editor.php:411
|
2505 |
#: includes/class-wcj-product-by-user.php:287
|
2506 |
-
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:
|
2507 |
-
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:
|
2508 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:394
|
2509 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
2510 |
msgid "Delete"
|
2511 |
msgstr ""
|
2512 |
|
@@ -2723,12 +2723,12 @@ msgstr ""
|
|
2723 |
msgid "Lost password"
|
2724 |
msgstr ""
|
2725 |
|
2726 |
-
#: includes/class-wcj-my-account.php:
|
2727 |
#, php-format
|
2728 |
msgid "Hello %1$s (not %1$s? <a href=\"%2$s\">Log out</a>)"
|
2729 |
msgstr ""
|
2730 |
|
2731 |
-
#: includes/class-wcj-my-account.php:
|
2732 |
#, php-format
|
2733 |
msgid ""
|
2734 |
"From your account dashboard you can view your <a href=\"%1$s\">recent orders</"
|
@@ -2736,7 +2736,7 @@ msgid ""
|
|
2736 |
"href=\"%3$s\">edit your password and account details</a>."
|
2737 |
msgstr ""
|
2738 |
|
2739 |
-
#: includes/class-wcj-my-account.php:
|
2740 |
msgid "User role"
|
2741 |
msgstr ""
|
2742 |
|
@@ -2791,7 +2791,7 @@ msgstr ""
|
|
2791 |
#: includes/class-wcj-offer-price.php:180
|
2792 |
#: includes/export/class-wcj-export-fields-helper.php:83
|
2793 |
#: includes/input-fields/wcj-product-input-fields-options.php:47
|
2794 |
-
#: includes/reports/class-wcj-reports-customers.php:
|
2795 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:156
|
2796 |
msgid "Email"
|
2797 |
msgstr ""
|
@@ -2938,34 +2938,34 @@ msgstr ""
|
|
2938 |
msgid "Current slug"
|
2939 |
msgstr ""
|
2940 |
|
2941 |
-
#: includes/class-wcj-old-slugs.php:
|
2942 |
#, php-format
|
2943 |
msgid ""
|
2944 |
"Removing old slugs from database finished! <strong>%d</strong> old slug(s) "
|
2945 |
"deleted."
|
2946 |
msgstr ""
|
2947 |
|
2948 |
-
#: includes/class-wcj-old-slugs.php:
|
2949 |
msgid "Please <a href=\"\">refresh</a> the page."
|
2950 |
msgstr ""
|
2951 |
|
2952 |
-
#: includes/class-wcj-old-slugs.php:
|
2953 |
msgid "Old products slugs found:"
|
2954 |
msgstr ""
|
2955 |
|
2956 |
-
#: includes/class-wcj-old-slugs.php:
|
2957 |
msgid "Remove all old product slugs"
|
2958 |
msgstr ""
|
2959 |
|
2960 |
-
#: includes/class-wcj-old-slugs.php:
|
2961 |
msgid "Old non-products slugs found:"
|
2962 |
msgstr ""
|
2963 |
|
2964 |
-
#: includes/class-wcj-old-slugs.php:
|
2965 |
msgid "Remove all old non-product slugs"
|
2966 |
msgstr ""
|
2967 |
|
2968 |
-
#: includes/class-wcj-old-slugs.php:
|
2969 |
msgid "No old slugs found."
|
2970 |
msgstr ""
|
2971 |
|
@@ -3058,23 +3058,23 @@ msgstr ""
|
|
3058 |
msgid "Tool renumerates all orders."
|
3059 |
msgstr ""
|
3060 |
|
3061 |
-
#: includes/class-wcj-order-numbers.php:
|
3062 |
msgid "Orders successfully renumerated!"
|
3063 |
msgstr ""
|
3064 |
|
3065 |
-
#: includes/class-wcj-order-numbers.php:
|
3066 |
#, php-format
|
3067 |
msgid "Sequential number generation is enabled. Next order number will be %s."
|
3068 |
msgstr ""
|
3069 |
|
3070 |
-
#: includes/class-wcj-order-numbers.php:
|
3071 |
#, php-format
|
3072 |
msgid ""
|
3073 |
"Press the button below to renumerate all existing orders starting from order "
|
3074 |
"counter settings in <a href=\"%s\">Order Numbers</a> module."
|
3075 |
msgstr ""
|
3076 |
|
3077 |
-
#: includes/class-wcj-order-numbers.php:
|
3078 |
msgid "Renumerate orders"
|
3079 |
msgstr ""
|
3080 |
|
@@ -3088,42 +3088,42 @@ msgid ""
|
|
3088 |
"decimal quantities etc."
|
3089 |
msgstr ""
|
3090 |
|
3091 |
-
#: includes/class-wcj-order-quantities.php:
|
3092 |
#: includes/settings/wcj-settings-order-quantities.php:297
|
3093 |
msgid ""
|
3094 |
"Only one item can be added to the cart. Clear the cart or finish the order, "
|
3095 |
"before adding another item to the cart."
|
3096 |
msgstr ""
|
3097 |
|
3098 |
-
#: includes/class-wcj-order-quantities.php:
|
3099 |
#: includes/settings/wcj-settings-order-quantities.php:182
|
3100 |
msgid ""
|
3101 |
"Maximum allowed order quantity is %max_cart_total_quantity%. Your current "
|
3102 |
"order quantity is %cart_total_quantity%."
|
3103 |
msgstr ""
|
3104 |
|
3105 |
-
#: includes/class-wcj-order-quantities.php:
|
3106 |
#: includes/settings/wcj-settings-order-quantities.php:109
|
3107 |
msgid ""
|
3108 |
"Minimum allowed order quantity is %min_cart_total_quantity%. Your current "
|
3109 |
"order quantity is %cart_total_quantity%."
|
3110 |
msgstr ""
|
3111 |
|
3112 |
-
#: includes/class-wcj-order-quantities.php:
|
3113 |
#: includes/settings/wcj-settings-order-quantities.php:220
|
3114 |
msgid ""
|
3115 |
"Maximum allowed quantity for %product_title% is %max_per_item_quantity%. Your "
|
3116 |
"current item quantity is %item_quantity%."
|
3117 |
msgstr ""
|
3118 |
|
3119 |
-
#: includes/class-wcj-order-quantities.php:
|
3120 |
#: includes/settings/wcj-settings-order-quantities.php:146
|
3121 |
msgid ""
|
3122 |
"Minimum allowed quantity for %product_title% is %min_per_item_quantity%. Your "
|
3123 |
"current item quantity is %item_quantity%."
|
3124 |
msgstr ""
|
3125 |
|
3126 |
-
#: includes/class-wcj-order-quantities.php:
|
3127 |
#: includes/settings/wcj-settings-order-quantities.php:271
|
3128 |
msgid ""
|
3129 |
"Required step for %product_title% is %required_step%. Your current item "
|
@@ -3158,7 +3158,7 @@ msgstr ""
|
|
3158 |
msgid "Regenerate download permissions"
|
3159 |
msgstr ""
|
3160 |
|
3161 |
-
#: includes/class-wcj-orders.php:
|
3162 |
#, php-format
|
3163 |
msgid "Download permissions regenerated for %s order."
|
3164 |
msgid_plural "Download permissions regenerated for %s orders."
|
@@ -3355,7 +3355,7 @@ msgstr ""
|
|
3355 |
msgid "Change product price and currency automatically by customer's country."
|
3356 |
msgstr ""
|
3357 |
|
3358 |
-
#: includes/class-wcj-price-by-country.php:
|
3359 |
msgid "Price filter widget product prices recalculated."
|
3360 |
msgstr ""
|
3361 |
|
@@ -3392,11 +3392,11 @@ msgstr ""
|
|
3392 |
msgid "Copy price to all %s"
|
3393 |
msgstr ""
|
3394 |
|
3395 |
-
#: includes/class-wcj-price-by-user-role.php:
|
3396 |
msgid ""
|
3397 |
"Booster: Free plugin's version is limited to only one price by user role per "
|
3398 |
"products settings product enabled at a time. You will need to get <a href="
|
3399 |
-
"\"https://booster.io/
|
3400 |
"unlimited number of price by user role per product settings products."
|
3401 |
msgstr ""
|
3402 |
|
@@ -3606,12 +3606,12 @@ msgstr ""
|
|
3606 |
#: includes/settings/wcj-settings-price-by-country.php:117
|
3607 |
#: includes/settings/wcj-settings-price-by-country.php:144
|
3608 |
#: includes/settings/wcj-settings-price-by-country.php:191
|
3609 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
3610 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
3611 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
3612 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
3613 |
-
#: includes/settings/wcj-settings-price-by-country.php:276
|
3614 |
#: includes/settings/wcj-settings-price-by-country.php:284
|
|
|
3615 |
#: includes/settings/wcj-settings-price-by-user-role.php:23
|
3616 |
#: includes/settings/wcj-settings-price-by-user-role.php:50
|
3617 |
#: includes/settings/wcj-settings-price-by-user-role.php:97
|
@@ -3849,8 +3849,8 @@ msgstr ""
|
|
3849 |
msgid ""
|
3850 |
"Booster: Free plugin's version is limited to only three products with per "
|
3851 |
"product addons enabled at a time. You will need to get <a href=\"https://"
|
3852 |
-
"booster.io/
|
3853 |
-
"of products with per product addons."
|
3854 |
msgstr ""
|
3855 |
|
3856 |
#: includes/class-wcj-product-bookings.php:30
|
@@ -3914,9 +3914,9 @@ msgstr ""
|
|
3914 |
#: includes/class-wcj-product-bookings.php:537
|
3915 |
msgid ""
|
3916 |
"Booster: Free plugin's version is limited to only one bookings product "
|
3917 |
-
"enabled at a time. You will need to get <a href=\"https://booster.io/
|
3918 |
-
"target=\"_blank\">Booster Plus</a> to add unlimited number of
|
3919 |
-
"products."
|
3920 |
msgstr ""
|
3921 |
|
3922 |
#: includes/class-wcj-product-bulk-meta-editor.php:30
|
@@ -3986,11 +3986,11 @@ msgstr ""
|
|
3986 |
#: includes/classes/class-wcj-module.php:1000
|
3987 |
#: includes/functions/wcj-functions-general.php:208
|
3988 |
#: includes/functions/wcj-functions-html.php:131
|
3989 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
3990 |
#: includes/settings/wcj-settings-empty-cart.php:88
|
3991 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:394
|
3992 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
3993 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
3994 |
msgid "Are you sure?"
|
3995 |
msgstr ""
|
3996 |
|
@@ -4403,8 +4403,8 @@ msgstr ""
|
|
4403 |
|
4404 |
#: includes/class-wcj-product-by-user.php:286
|
4405 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:473
|
4406 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
4407 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
4408 |
msgid "Edit"
|
4409 |
msgstr ""
|
4410 |
|
@@ -4923,7 +4923,6 @@ msgid "Add \"products per page\" selector to WooCommerce."
|
|
4923 |
msgstr ""
|
4924 |
|
4925 |
#: includes/class-wcj-products-per-page.php:98
|
4926 |
-
#: includes/settings/wcj-settings-products-per-page.php:67
|
4927 |
msgid ""
|
4928 |
"Products <strong>%1$from% - %to%</strong> from <strong>%total%</strong>. "
|
4929 |
"Products on page %2$select_form%"
|
@@ -5329,7 +5328,7 @@ msgstr ""
|
|
5329 |
#: includes/settings/wcj-settings-sku.php:314
|
5330 |
#: includes/settings/wcj-settings-sku.php:341
|
5331 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:473
|
5332 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
5333 |
msgid "Add"
|
5334 |
msgstr ""
|
5335 |
|
@@ -5876,15 +5875,15 @@ msgstr ""
|
|
5876 |
msgid "Reset Submodule to Default Settings"
|
5877 |
msgstr ""
|
5878 |
|
5879 |
-
#: includes/classes/class-wcj-module.php:
|
5880 |
msgid "Reset settings"
|
5881 |
msgstr ""
|
5882 |
|
5883 |
-
#: includes/classes/class-wcj-module.php:
|
5884 |
msgid "Module Options"
|
5885 |
msgstr ""
|
5886 |
|
5887 |
-
#: includes/classes/class-wcj-module.php:
|
5888 |
msgid "Enable Module"
|
5889 |
msgstr ""
|
5890 |
|
@@ -5925,19 +5924,19 @@ msgstr ""
|
|
5925 |
msgid "Click <a target=\"_blank\" href=\"%s\">here</a> for more info."
|
5926 |
msgstr ""
|
5927 |
|
5928 |
-
#: includes/core/class-wcj-admin.php:
|
5929 |
msgid "Booster Settings"
|
5930 |
msgstr ""
|
5931 |
|
5932 |
-
#: includes/core/class-wcj-admin.php:
|
5933 |
msgid "Docs"
|
5934 |
msgstr ""
|
5935 |
|
5936 |
-
#: includes/core/class-wcj-admin.php:
|
5937 |
msgid "Unlock all"
|
5938 |
msgstr ""
|
5939 |
|
5940 |
-
#: includes/core/class-wcj-admin.php:
|
5941 |
msgid "Support"
|
5942 |
msgstr ""
|
5943 |
|
@@ -6235,7 +6234,7 @@ msgid "URL"
|
|
6235 |
msgstr ""
|
6236 |
|
6237 |
#: includes/export/class-wcj-export-fields-helper.php:89
|
6238 |
-
#: includes/reports/class-wcj-reports-customers.php:
|
6239 |
msgid "Registered"
|
6240 |
msgstr ""
|
6241 |
|
@@ -8102,20 +8101,20 @@ msgid "Total number of "
|
|
8102 |
msgstr ""
|
8103 |
|
8104 |
#: includes/input-fields/class-wcj-product-input-fields-core.php:253
|
8105 |
-
#: includes/input-fields/class-wcj-product-input-fields-core.php:
|
8106 |
#: includes/settings/wcj-settings-product-input-fields.php:96
|
8107 |
msgid "Product Input Field"
|
8108 |
msgstr ""
|
8109 |
|
8110 |
-
#: includes/input-fields/class-wcj-product-input-fields-core.php:
|
8111 |
msgid "Wrong file type!"
|
8112 |
msgstr ""
|
8113 |
|
8114 |
-
#: includes/input-fields/class-wcj-product-input-fields-core.php:
|
8115 |
msgid "File is too big!"
|
8116 |
msgstr ""
|
8117 |
|
8118 |
-
#: includes/input-fields/class-wcj-product-input-fields-core.php:
|
8119 |
msgid "Select a country…"
|
8120 |
msgstr ""
|
8121 |
|
@@ -8576,7 +8575,7 @@ msgstr ""
|
|
8576 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:67
|
8577 |
#: includes/settings/wcj-settings-multicurrency.php:244
|
8578 |
#: includes/settings/wcj-settings-order-min-amount.php:87
|
8579 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
8580 |
#: includes/settings/wcj-settings-price-by-user-role.php:110
|
8581 |
#: includes/settings/wcj-settings-product-addons.php:251
|
8582 |
msgid "Advanced"
|
@@ -8656,26 +8655,26 @@ msgid "Display & Misc."
|
|
8656 |
msgstr ""
|
8657 |
|
8658 |
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:146
|
8659 |
-
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:
|
8660 |
msgid "View"
|
8661 |
msgstr ""
|
8662 |
|
8663 |
-
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:
|
8664 |
-
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:
|
8665 |
msgid "Create"
|
8666 |
msgstr ""
|
8667 |
|
8668 |
-
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:
|
8669 |
#: includes/settings/wcj-settings-pdf-invoicing-display.php:104
|
8670 |
#, php-format
|
8671 |
msgid "Your %s:"
|
8672 |
msgstr ""
|
8673 |
|
8674 |
-
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:
|
8675 |
msgid "Booster: PDF Invoices"
|
8676 |
msgstr ""
|
8677 |
|
8678 |
-
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:
|
8679 |
msgid ""
|
8680 |
"In case of partial refund, you need to reload the page to see created "
|
8681 |
"document in this meta box."
|
@@ -8720,18 +8719,18 @@ msgstr ""
|
|
8720 |
|
8721 |
#: includes/price-by-country/class-wcj-price-by-country-local.php:124
|
8722 |
#: includes/settings/meta-box/wcj-settings-meta-box-price-by-country.php:77
|
8723 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
8724 |
msgid "Make empty price"
|
8725 |
msgstr ""
|
8726 |
|
8727 |
#: includes/price-by-country/class-wcj-price-by-country-local.php:249
|
8728 |
#: includes/settings/meta-box/wcj-settings-meta-box-price-by-country.php:21
|
8729 |
#: includes/settings/wcj-settings-add-to-cart.php:59
|
8730 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
8731 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
8732 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
8733 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
8734 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
8735 |
msgid "Group"
|
8736 |
msgstr ""
|
8737 |
|
@@ -8744,159 +8743,159 @@ msgstr ""
|
|
8744 |
msgid "Show reports only in"
|
8745 |
msgstr ""
|
8746 |
|
8747 |
-
#: includes/reports/class-wcj-reports-customers.php:
|
8748 |
msgid "No customers found."
|
8749 |
msgstr ""
|
8750 |
|
8751 |
-
#: includes/reports/class-wcj-reports-customers.php:
|
8752 |
msgid "Non Available"
|
8753 |
msgstr ""
|
8754 |
|
8755 |
-
#: includes/reports/class-wcj-reports-customers.php:
|
8756 |
#: includes/settings/wcj-settings-offer-price.php:212
|
8757 |
msgid "Customer Name"
|
8758 |
msgstr ""
|
8759 |
|
8760 |
-
#: includes/reports/class-wcj-reports-customers.php:
|
8761 |
msgid "Total Spent"
|
8762 |
msgstr ""
|
8763 |
|
8764 |
-
#: includes/reports/class-wcj-reports-customers.php:
|
8765 |
msgid "Total customers"
|
8766 |
msgstr ""
|
8767 |
|
8768 |
-
#: includes/reports/class-wcj-reports-customers.php:
|
8769 |
msgid "Country Code"
|
8770 |
msgstr ""
|
8771 |
|
8772 |
-
#: includes/reports/class-wcj-reports-customers.php:
|
8773 |
msgid "Customers Count"
|
8774 |
msgstr ""
|
8775 |
|
8776 |
-
#: includes/reports/class-wcj-reports-customers.php:
|
8777 |
msgid "Percent of total"
|
8778 |
msgstr ""
|
8779 |
|
8780 |
-
#: includes/reports/class-wcj-reports-customers.php:
|
8781 |
msgid "Report for:"
|
8782 |
msgstr ""
|
8783 |
|
8784 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8785 |
msgid "Currency rates saved."
|
8786 |
msgstr ""
|
8787 |
|
8788 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8789 |
msgid "Currency rates deleted."
|
8790 |
msgstr ""
|
8791 |
|
8792 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8793 |
msgid "Days"
|
8794 |
msgstr ""
|
8795 |
|
8796 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8797 |
msgid "Total Orders"
|
8798 |
msgstr ""
|
8799 |
|
8800 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8801 |
msgid "Orders Average / Day"
|
8802 |
msgstr ""
|
8803 |
|
8804 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8805 |
#: includes/reports/class-wcj-reports-sales.php:347
|
8806 |
msgid "Total Sum"
|
8807 |
msgstr ""
|
8808 |
|
8809 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8810 |
msgid "Total Sum (excl. TAX)"
|
8811 |
msgstr ""
|
8812 |
|
8813 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8814 |
msgid "Average / Order (excl. TAX)"
|
8815 |
msgstr ""
|
8816 |
|
8817 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8818 |
msgid "Average / Day (excl. TAX)"
|
8819 |
msgstr ""
|
8820 |
|
8821 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8822 |
msgid "Currency Rates"
|
8823 |
msgstr ""
|
8824 |
|
8825 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8826 |
msgid "Orders by Currency"
|
8827 |
msgstr ""
|
8828 |
|
8829 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8830 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8831 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8832 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8833 |
#, php-format
|
8834 |
msgid "Forecast: %s"
|
8835 |
msgstr ""
|
8836 |
|
8837 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8838 |
msgid "Grab average rate"
|
8839 |
msgstr ""
|
8840 |
|
8841 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8842 |
msgid "Totals"
|
8843 |
msgstr ""
|
8844 |
|
8845 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8846 |
msgid "Report currency"
|
8847 |
msgstr ""
|
8848 |
|
8849 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8850 |
#, php-format
|
8851 |
msgid "Report generated in: %s s"
|
8852 |
msgstr ""
|
8853 |
|
8854 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8855 |
msgid "Save Currency Rates"
|
8856 |
msgstr ""
|
8857 |
|
8858 |
-
#: includes/reports/class-wcj-reports-monthly-sales.php:
|
8859 |
msgid "Reset Currency Rates"
|
8860 |
msgstr ""
|
8861 |
|
8862 |
-
#: includes/reports/class-wcj-reports-product-sales-daily.php:
|
8863 |
#: includes/reports/class-wcj-reports-sales.php:367
|
8864 |
#: includes/reports/wcj-class-reports-sales-gateways.php:128
|
8865 |
msgid "Reports Settings"
|
8866 |
msgstr ""
|
8867 |
|
8868 |
-
#: includes/reports/class-wcj-reports-product-sales-daily.php:
|
8869 |
#: includes/reports/wcj-class-reports-sales-gateways.php:160
|
8870 |
msgid "From:"
|
8871 |
msgstr ""
|
8872 |
|
8873 |
-
#: includes/reports/class-wcj-reports-product-sales-daily.php:
|
8874 |
#: includes/reports/wcj-class-reports-sales-gateways.php:163
|
8875 |
msgid "To:"
|
8876 |
msgstr ""
|
8877 |
|
8878 |
-
#: includes/reports/class-wcj-reports-product-sales-daily.php:
|
8879 |
msgid "Product:"
|
8880 |
msgstr ""
|
8881 |
|
8882 |
-
#: includes/reports/class-wcj-reports-product-sales-daily.php:
|
8883 |
#, php-format
|
8884 |
msgid "Total: %d"
|
8885 |
msgstr ""
|
8886 |
|
|
|
8887 |
#: includes/reports/class-wcj-reports-product-sales-daily.php:315
|
8888 |
-
#: includes/reports/class-wcj-reports-product-sales-daily.php:320
|
8889 |
#, php-format
|
8890 |
msgid "Total: %s"
|
8891 |
msgstr ""
|
8892 |
|
8893 |
-
#: includes/reports/class-wcj-reports-product-sales-daily.php:
|
8894 |
#: includes/reports/wcj-class-reports-sales-gateways.php:196
|
8895 |
#, php-format
|
8896 |
msgid "Total orders: %d"
|
8897 |
msgstr ""
|
8898 |
|
8899 |
-
#: includes/reports/class-wcj-reports-product-sales-daily.php:
|
8900 |
#: includes/reports/class-wcj-reports-sales.php:400
|
8901 |
#: includes/reports/wcj-class-reports-sales-gateways.php:198
|
8902 |
msgid "No sales data for current period."
|
@@ -10027,7 +10026,7 @@ msgstr ""
|
|
10027 |
#: includes/settings/wcj-settings-offer-price.php:221
|
10028 |
#: includes/settings/wcj-settings-offer-price.php:229
|
10029 |
#: includes/tools/class-wcj-order-statuses-tool.php:187
|
10030 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
10031 |
msgid "Label"
|
10032 |
msgstr ""
|
10033 |
|
@@ -10124,7 +10123,7 @@ msgid "Preset"
|
|
10124 |
msgstr ""
|
10125 |
|
10126 |
#: includes/settings/wcj-settings-admin-orders-list.php:194
|
10127 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
10128 |
msgid "Statuses"
|
10129 |
msgstr ""
|
10130 |
|
@@ -10693,7 +10692,7 @@ msgstr ""
|
|
10693 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:219
|
10694 |
#: includes/settings/wcj-settings-eu-vat-number.php:51
|
10695 |
#: includes/templates/wcj-radio-for-variations.php:25
|
10696 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
10697 |
msgid "Clear"
|
10698 |
msgstr ""
|
10699 |
|
@@ -11860,7 +11859,7 @@ msgstr ""
|
|
11860 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:26
|
11861 |
#: includes/settings/wcj-settings-multicurrency.php:26
|
11862 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:76
|
11863 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
11864 |
msgid "Exchange Rates Updates"
|
11865 |
msgstr ""
|
11866 |
|
@@ -11974,7 +11973,7 @@ msgid "Custom Currency"
|
|
11974 |
msgstr ""
|
11975 |
|
11976 |
#: includes/settings/wcj-settings-currency-exchange-rates.php:192
|
11977 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
11978 |
msgid "Exchange Rates"
|
11979 |
msgstr ""
|
11980 |
|
@@ -11994,7 +11993,7 @@ msgstr ""
|
|
11994 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:151
|
11995 |
#: includes/settings/wcj-settings-multicurrency.php:322
|
11996 |
#: includes/settings/wcj-settings-multicurrency.php:366
|
11997 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
11998 |
#: includes/settings/wcj-settings-price-formats.php:68
|
11999 |
msgid "Currency"
|
12000 |
msgstr ""
|
@@ -12067,7 +12066,7 @@ msgstr ""
|
|
12067 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:31
|
12068 |
#: includes/settings/wcj-settings-multicurrency.php:32
|
12069 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:81
|
12070 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
12071 |
msgid "Enter Rates Manually"
|
12072 |
msgstr ""
|
12073 |
|
@@ -12075,7 +12074,7 @@ msgstr ""
|
|
12075 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:32
|
12076 |
#: includes/settings/wcj-settings-multicurrency.php:33
|
12077 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:82
|
12078 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
12079 |
msgid "Automatically via Currency Exchange Rates module"
|
12080 |
msgstr ""
|
12081 |
|
@@ -12083,7 +12082,7 @@ msgstr ""
|
|
12083 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:35
|
12084 |
#: includes/settings/wcj-settings-multicurrency.php:36
|
12085 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:85
|
12086 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
12087 |
msgid "Visit"
|
12088 |
msgstr ""
|
12089 |
|
@@ -12091,7 +12090,7 @@ msgstr ""
|
|
12091 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:35
|
12092 |
#: includes/settings/wcj-settings-multicurrency.php:36
|
12093 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:87
|
12094 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
12095 |
msgid "Currency Exchange Rates module"
|
12096 |
msgstr ""
|
12097 |
|
@@ -13200,7 +13199,7 @@ msgstr ""
|
|
13200 |
#: includes/settings/wcj-settings-global-discount.php:231
|
13201 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:80
|
13202 |
#: includes/settings/wcj-settings-multicurrency.php:259
|
13203 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
13204 |
#: includes/settings/wcj-settings-price-by-user-role.php:115
|
13205 |
#: includes/settings/wcj-settings-product-addons.php:279
|
13206 |
#: includes/settings/wcj-settings-product-price-by-formula.php:136
|
@@ -13210,7 +13209,7 @@ msgstr ""
|
|
13210 |
#: includes/settings/wcj-settings-global-discount.php:232
|
13211 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:81
|
13212 |
#: includes/settings/wcj-settings-multicurrency.php:260
|
13213 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
13214 |
#: includes/settings/wcj-settings-price-by-user-role.php:116
|
13215 |
#: includes/settings/wcj-settings-product-addons.php:280
|
13216 |
#: includes/settings/wcj-settings-product-price-by-formula.php:137
|
@@ -13437,7 +13436,7 @@ msgstr ""
|
|
13437 |
|
13438 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:72
|
13439 |
#: includes/settings/wcj-settings-multicurrency.php:274
|
13440 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
13441 |
#: includes/settings/wcj-settings-product-price-by-formula.php:143
|
13442 |
msgid "Save Calculated Products Prices"
|
13443 |
msgstr ""
|
@@ -13597,12 +13596,12 @@ msgid ""
|
|
13597 |
msgstr ""
|
13598 |
|
13599 |
#: includes/settings/wcj-settings-multicurrency.php:125
|
13600 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
13601 |
msgid "Free Shipping"
|
13602 |
msgstr ""
|
13603 |
|
13604 |
#: includes/settings/wcj-settings-multicurrency.php:128
|
13605 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
13606 |
msgid "Converts minimum amount from WooCommerce Free Shipping native method."
|
13607 |
msgstr ""
|
13608 |
|
@@ -13611,7 +13610,7 @@ msgid "WooCommerce Fixed Coupons"
|
|
13611 |
msgstr ""
|
13612 |
|
13613 |
#: includes/settings/wcj-settings-multicurrency.php:136
|
13614 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
13615 |
msgid ""
|
13616 |
"When a fixed coupon is used its value changes according to the current "
|
13617 |
"currency."
|
@@ -13751,7 +13750,7 @@ msgid ""
|
|
13751 |
msgstr ""
|
13752 |
|
13753 |
#: includes/settings/wcj-settings-multicurrency.php:275
|
13754 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
13755 |
#: includes/settings/wcj-settings-product-price-by-formula.php:144
|
13756 |
msgid ""
|
13757 |
"This may help if you are experiencing compatibility issues with other plugins."
|
@@ -15656,7 +15655,7 @@ msgid "Replace"
|
|
15656 |
msgstr ""
|
15657 |
|
15658 |
#: includes/settings/wcj-settings-pdf-invoicing-display.php:30
|
15659 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
15660 |
#: includes/settings/wcj-settings-shipping.php:34
|
15661 |
msgid "Admin Title"
|
15662 |
msgstr ""
|
@@ -16196,115 +16195,115 @@ msgstr ""
|
|
16196 |
msgid "Price Filter Widget and Sorting by Price Support"
|
16197 |
msgstr ""
|
16198 |
|
16199 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16200 |
msgid "Recalculate price filter widget and sorting by price product prices."
|
16201 |
msgstr ""
|
16202 |
|
16203 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16204 |
msgid "WooCommerce Coupons"
|
16205 |
msgstr ""
|
16206 |
|
16207 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16208 |
msgid "Woo Discount Rules"
|
16209 |
msgstr ""
|
16210 |
|
16211 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16212 |
#, php-format
|
16213 |
msgid ""
|
16214 |
"Adds compatibility with <a href=\"%s\" target=\"_blank\">Woo Discount Rules</"
|
16215 |
"a> plugin."
|
16216 |
msgstr ""
|
16217 |
|
16218 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16219 |
#, php-format
|
16220 |
msgid ""
|
16221 |
"If it doesn't work properly try to enable <a href=\"%s\">redirect to the cart "
|
16222 |
"page after successful addition</a> option."
|
16223 |
msgstr ""
|
16224 |
|
16225 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16226 |
msgid "WooCommerce Points and Rewards"
|
16227 |
msgstr ""
|
16228 |
|
16229 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16230 |
#, php-format
|
16231 |
msgid ""
|
16232 |
"Adds compatibility with <a href=\"%s\" target=\"_blank\">WooCommerce Points "
|
16233 |
"and Rewards</a> plugin."
|
16234 |
msgstr ""
|
16235 |
|
16236 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16237 |
msgid "User IP Detection Method"
|
16238 |
msgstr ""
|
16239 |
|
16240 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16241 |
msgid "Price Format Method"
|
16242 |
msgstr ""
|
16243 |
|
16244 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16245 |
msgid "The moment \"Pretty Price\" and \"Rounding\" will be applied"
|
16246 |
msgstr ""
|
16247 |
|
16248 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16249 |
msgid "get_price()"
|
16250 |
msgstr ""
|
16251 |
|
16252 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16253 |
msgid "wc_get_price_to_display()"
|
16254 |
msgstr ""
|
16255 |
|
16256 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16257 |
msgid "Save Country Group ID"
|
16258 |
msgstr ""
|
16259 |
|
16260 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16261 |
msgid ""
|
16262 |
"Try to disable it if the country detection is not correct, most probably if "
|
16263 |
"\"Override Country Options\" is enabled."
|
16264 |
msgstr ""
|
16265 |
|
16266 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16267 |
msgid "Country Groups"
|
16268 |
msgstr ""
|
16269 |
|
16270 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16271 |
msgid "Countries Selection"
|
16272 |
msgstr ""
|
16273 |
|
16274 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16275 |
msgid "Choose how do you want to enter countries groups in admin."
|
16276 |
msgstr ""
|
16277 |
|
16278 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16279 |
msgid "Comma separated list"
|
16280 |
msgstr ""
|
16281 |
|
16282 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16283 |
msgid "Multiselect"
|
16284 |
msgstr ""
|
16285 |
|
16286 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16287 |
#: includes/settings/wcj-settings-product-by-condition.php:90
|
16288 |
#: includes/settings/wcj-settings-related-products.php:181
|
16289 |
msgid "Chosen select"
|
16290 |
msgstr ""
|
16291 |
|
16292 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16293 |
msgid "Autogenerate Groups"
|
16294 |
msgstr ""
|
16295 |
|
16296 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16297 |
msgid "Groups Number"
|
16298 |
msgstr ""
|
16299 |
|
16300 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16301 |
msgid ""
|
16302 |
"Countries. List of comma separated country codes.<br>For country codes and "
|
16303 |
"predefined sets visit <a href=\"https://booster.io/country-codes/\" target="
|
16304 |
"\"_blank\">https://booster.io/country-codes/</a>"
|
16305 |
msgstr ""
|
16306 |
|
16307 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
16308 |
msgid "Multiply Price by"
|
16309 |
msgstr ""
|
16310 |
|
@@ -17170,7 +17169,7 @@ msgstr ""
|
|
17170 |
|
17171 |
#: includes/settings/wcj-settings-product-by-condition.php:91
|
17172 |
#: includes/settings/wcj-settings-related-products.php:182
|
17173 |
-
#: includes/shortcodes/class-wcj-order-items-shortcodes.php:
|
17174 |
msgid "Standard"
|
17175 |
msgstr ""
|
17176 |
|
@@ -18535,6 +18534,13 @@ msgstr ""
|
|
18535 |
msgid "Template - Form"
|
18536 |
msgstr ""
|
18537 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18538 |
#: includes/settings/wcj-settings-products-per-page.php:72
|
18539 |
msgid "Template - After Form"
|
18540 |
msgstr ""
|
@@ -20748,37 +20754,37 @@ msgid "%s status delete failed!"
|
|
20748 |
msgstr ""
|
20749 |
|
20750 |
#: includes/tools/class-wcj-order-statuses-tool.php:188
|
20751 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
20752 |
msgid "Icon Code"
|
20753 |
msgstr ""
|
20754 |
|
20755 |
#: includes/tools/class-wcj-order-statuses-tool.php:189
|
20756 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
20757 |
msgid "Color"
|
20758 |
msgstr ""
|
20759 |
|
20760 |
#: includes/tools/class-wcj-order-statuses-tool.php:190
|
20761 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
20762 |
msgid "Text Color"
|
20763 |
msgstr ""
|
20764 |
|
20765 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
20766 |
msgid "Get Booster Plus to enable."
|
20767 |
msgstr ""
|
20768 |
|
20769 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
20770 |
msgid "Edit custom status"
|
20771 |
msgstr ""
|
20772 |
|
20773 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
20774 |
msgid "Add new custom status"
|
20775 |
msgstr ""
|
20776 |
|
20777 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
20778 |
msgid "Slug (without <code>wc-</code> prefix)"
|
20779 |
msgstr ""
|
20780 |
|
20781 |
-
#: includes/tools/class-wcj-order-statuses-tool.php:
|
20782 |
msgid "Delete All Custom Statuses"
|
20783 |
msgstr ""
|
20784 |
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
13 |
+
"X-Generator: Poedit 2.3\n"
|
14 |
"X-Poedit-Basepath: ..\n"
|
15 |
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
16 |
"_n_noop:1,2;_c;_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
|
34 |
msgstr ""
|
35 |
|
36 |
#: includes/admin/class-wc-settings-jetpack.php:33
|
37 |
+
#: includes/admin/class-wc-settings-jetpack.php:394
|
38 |
#: includes/class-wcj-admin-bar.php:299
|
39 |
#: includes/class-wcj-checkout-files-upload.php:273
|
40 |
#: includes/class-wcj-eu-vat-number.php:179
|
44 |
#: includes/class-wcj-track-users.php:174 includes/class-wcj-track-users.php:265
|
45 |
#: includes/classes/class-wcj-module.php:678
|
46 |
#: includes/classes/class-wcj-module.php:887
|
47 |
+
#: includes/settings/wcj-settings-price-by-country.php:267
|
48 |
msgid "Booster"
|
49 |
msgstr ""
|
50 |
|
71 |
"from Booster team!"
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: includes/admin/class-wc-settings-jetpack.php:247
|
75 |
+
#: includes/admin/class-wc-settings-jetpack.php:313
|
76 |
+
#: includes/admin/class-wc-settings-jetpack.php:931
|
77 |
#: includes/admin/wcj-modules-cats.php:17 includes/class-wcj-admin-bar.php:234
|
78 |
#: includes/class-wcj-my-account.php:39
|
79 |
msgid "Dashboard"
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: includes/admin/class-wc-settings-jetpack.php:248
|
83 |
msgid "All Module"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: includes/admin/class-wc-settings-jetpack.php:249
|
87 |
msgid "Active Modules"
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: includes/admin/class-wc-settings-jetpack.php:250
|
91 |
#: includes/class-wcj-admin-bar.php:167
|
92 |
msgid "Manage Settings"
|
93 |
msgstr ""
|
94 |
|
95 |
+
#: includes/admin/class-wc-settings-jetpack.php:361
|
96 |
#, php-format
|
97 |
msgid ""
|
98 |
"Please note that current <em>%1$s</em> module is deprecated and will be "
|
99 |
"removed in future updates. Please use <em>%2$s</em> module instead."
|
100 |
msgstr ""
|
101 |
|
102 |
+
#: includes/admin/class-wc-settings-jetpack.php:367
|
103 |
msgid "Module will be removed from the module's list as soon as you disable it."
|
104 |
msgstr ""
|
105 |
|
106 |
+
#: includes/admin/class-wc-settings-jetpack.php:379
|
107 |
#, php-format
|
108 |
msgid ""
|
109 |
"Please note that <em>%s</em> module is currently under development. Until "
|
111 |
"be moved to paid plugin version."
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: includes/admin/class-wc-settings-jetpack.php:390
|
115 |
#: includes/class-wcj-admin-bar.php:411
|
116 |
#: includes/settings/wcj-settings-emails-verification.php:152
|
117 |
+
#: includes/settings/wcj-settings-price-by-country.php:266
|
118 |
msgid "WooCommerce"
|
119 |
msgstr ""
|
120 |
|
121 |
+
#: includes/admin/class-wc-settings-jetpack.php:392
|
122 |
+
#: includes/admin/class-wc-settings-jetpack.php:623
|
123 |
#: includes/class-wcj-admin-bar.php:184 includes/class-wcj-admin-bar.php:535
|
124 |
+
#: includes/class-wcj-admin-bar.php:635 includes/core/class-wcj-admin.php:140
|
125 |
msgid "Settings"
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: includes/admin/class-wc-settings-jetpack.php:449
|
129 |
msgid ""
|
130 |
"This section lets you export, import or reset all Booster's modules settings."
|
131 |
msgstr ""
|
132 |
|
133 |
+
#: includes/admin/class-wc-settings-jetpack.php:477
|
134 |
+
#: includes/admin/class-wc-settings-jetpack.php:1049
|
135 |
#: includes/class-wcj-export-import.php:31
|
136 |
msgid "Export"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: includes/admin/class-wc-settings-jetpack.php:478
|
140 |
msgid "Export all Booster's options to a file."
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: includes/admin/class-wc-settings-jetpack.php:481
|
144 |
+
#: includes/admin/class-wc-settings-jetpack.php:1040
|
145 |
#: includes/class-wcj-purchase-data.php:124
|
146 |
msgid "Import"
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: includes/admin/class-wc-settings-jetpack.php:483
|
150 |
msgid "Import all Booster's options from a file."
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: includes/admin/class-wc-settings-jetpack.php:487
|
154 |
msgid ""
|
155 |
"This will reset settings to defaults for all Booster modules. Are you sure?"
|
156 |
msgstr ""
|
157 |
|
158 |
+
#: includes/admin/class-wc-settings-jetpack.php:488
|
159 |
+
#: includes/admin/class-wc-settings-jetpack.php:1060
|
160 |
msgid "Reset"
|
161 |
msgstr ""
|
162 |
|
163 |
+
#: includes/admin/class-wc-settings-jetpack.php:489
|
164 |
msgid "Reset all Booster's options."
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: includes/admin/class-wc-settings-jetpack.php:493
|
168 |
msgid "This will delete all Booster meta. Are you sure?"
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: includes/admin/class-wc-settings-jetpack.php:494
|
172 |
+
#: includes/admin/class-wc-settings-jetpack.php:1069
|
173 |
msgid "Reset meta"
|
174 |
msgstr ""
|
175 |
|
176 |
+
#: includes/admin/class-wc-settings-jetpack.php:495
|
177 |
msgid "Reset all Booster's meta."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: includes/admin/class-wc-settings-jetpack.php:548
|
181 |
msgid "Version"
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: includes/admin/class-wc-settings-jetpack.php:575
|
185 |
+
#: includes/admin/class-wc-settings-jetpack.php:584
|
186 |
msgid "Select All"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: includes/admin/class-wc-settings-jetpack.php:577
|
190 |
+
#: includes/admin/class-wc-settings-jetpack.php:585
|
191 |
msgid "Module"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: includes/admin/class-wc-settings-jetpack.php:579
|
195 |
+
#: includes/admin/class-wc-settings-jetpack.php:588
|
196 |
#: includes/export/class-wcj-export-fields-helper.php:297
|
197 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:67
|
198 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:181
|
203 |
msgid "Description"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: includes/admin/class-wc-settings-jetpack.php:625
|
207 |
+
#: includes/admin/class-wc-settings-jetpack.php:1078
|
208 |
#: includes/class-wcj-admin-bar.php:188
|
209 |
+
#: includes/classes/class-wcj-module.php:1040
|
210 |
msgid "Documentation"
|
211 |
msgstr ""
|
212 |
|
213 |
+
#: includes/admin/class-wc-settings-jetpack.php:636
|
214 |
msgid "No active modules found."
|
215 |
msgstr ""
|
216 |
|
217 |
+
#: includes/admin/class-wc-settings-jetpack.php:642
|
218 |
msgid "Total Modules:"
|
219 |
msgstr ""
|
220 |
|
221 |
+
#: includes/admin/class-wc-settings-jetpack.php:706
|
222 |
msgid "Autoload Booster's Options"
|
223 |
msgstr ""
|
224 |
|
225 |
+
#: includes/admin/class-wc-settings-jetpack.php:708
|
226 |
msgid ""
|
227 |
"Choose if you want Booster's options to be autoloaded when calling "
|
228 |
"add_option. After saving this option, you need to Reset all Booster's "
|
229 |
"settings. Leave default value (i.e. Enabled) if not sure."
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: includes/admin/class-wc-settings-jetpack.php:713
|
233 |
msgid "Load Modules on Init Hook"
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: includes/admin/class-wc-settings-jetpack.php:715
|
237 |
msgid "Choose if you want to load Booster Modules on Init hook."
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: includes/admin/class-wc-settings-jetpack.php:715
|
241 |
msgid ""
|
242 |
"It will load the locale appropriately if users change it from the profile "
|
243 |
"page."
|
244 |
msgstr ""
|
245 |
|
246 |
+
#: includes/admin/class-wc-settings-jetpack.php:720
|
247 |
msgid "Use List Instead of Comma Separated Text for Products in Settings"
|
248 |
msgstr ""
|
249 |
|
250 |
+
#: includes/admin/class-wc-settings-jetpack.php:724
|
251 |
+
#: includes/admin/class-wc-settings-jetpack.php:745
|
252 |
+
#: includes/admin/class-wc-settings-jetpack.php:761
|
253 |
#, php-format
|
254 |
msgid "Supported modules: %s."
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: includes/admin/class-wc-settings-jetpack.php:728
|
258 |
#: includes/class-wcj-payment-gateways-per-category.php:31
|
259 |
msgid "Gateways per Product or Category"
|
260 |
msgstr ""
|
261 |
|
262 |
+
#: includes/admin/class-wc-settings-jetpack.php:729
|
263 |
#: includes/class-wcj-global-discount.php:38
|
264 |
#: includes/settings/wcj-settings-product-addons.php:275
|
265 |
msgid "Global Discount"
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: includes/admin/class-wc-settings-jetpack.php:730
|
269 |
+
#: includes/admin/class-wc-settings-jetpack.php:749
|
270 |
+
#: includes/admin/class-wc-settings-jetpack.php:765
|
271 |
#: includes/class-wcj-product-custom-info.php:29
|
272 |
#: includes/functions/wcj-functions-general.php:488
|
273 |
msgid "Product Info"
|
274 |
msgstr ""
|
275 |
|
276 |
+
#: includes/admin/class-wc-settings-jetpack.php:731
|
277 |
#: includes/admin/wcj-welcome-screen-content.php:82
|
278 |
#: includes/class-wcj-product-input-fields.php:29
|
279 |
#: includes/input-fields/class-wcj-product-input-fields-core.php:214
|
280 |
msgid "Product Input Fields"
|
281 |
msgstr ""
|
282 |
|
283 |
+
#: includes/admin/class-wc-settings-jetpack.php:732
|
284 |
msgid "Products XML"
|
285 |
msgstr ""
|
286 |
|
287 |
+
#: includes/admin/class-wc-settings-jetpack.php:733
|
288 |
#: includes/class-wcj-related-products.php:52
|
289 |
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:33
|
290 |
#: includes/settings/wcj-settings-free-price.php:23
|
291 |
msgid "Related Products"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: includes/admin/class-wc-settings-jetpack.php:741
|
295 |
msgid ""
|
296 |
"Use List Instead of Comma Separated Text for Products Categories in Settings"
|
297 |
msgstr ""
|
298 |
|
299 |
+
#: includes/admin/class-wc-settings-jetpack.php:757
|
300 |
msgid "Use List Instead of Comma Separated Text for Products Tags in Settings"
|
301 |
msgstr ""
|
302 |
|
303 |
+
#: includes/admin/class-wc-settings-jetpack.php:796
|
304 |
+
#: includes/core/class-wcj-admin.php:124
|
305 |
msgid "Booster for WooCommerce"
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: includes/admin/class-wc-settings-jetpack.php:890
|
309 |
msgid "Need Help?"
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: includes/admin/class-wc-settings-jetpack.php:917
|
313 |
#: includes/class-wcj-my-account.php:32
|
314 |
msgid "My Account"
|
315 |
msgstr ""
|
316 |
|
317 |
+
#: includes/admin/class-wc-settings-jetpack.php:921
|
318 |
msgid "Get Booster Plus"
|
319 |
msgstr ""
|
320 |
|
321 |
+
#: includes/admin/class-wc-settings-jetpack.php:928
|
322 |
msgid "Getting Started"
|
323 |
msgstr ""
|
324 |
|
325 |
+
#: includes/admin/class-wc-settings-jetpack.php:932
|
326 |
msgid "Navigating Categories"
|
327 |
msgstr ""
|
328 |
|
329 |
+
#: includes/admin/class-wc-settings-jetpack.php:933
|
330 |
msgid "How to get started with booster"
|
331 |
msgstr ""
|
332 |
|
333 |
+
#: includes/admin/class-wc-settings-jetpack.php:938
|
334 |
msgid "Frequently Asked Questions"
|
335 |
msgstr ""
|
336 |
|
337 |
+
#: includes/admin/class-wc-settings-jetpack.php:943
|
338 |
msgid "Do I need to have coding skills to use Booster Plus?"
|
339 |
msgstr ""
|
340 |
|
341 |
+
#: includes/admin/class-wc-settings-jetpack.php:947
|
342 |
msgid ""
|
343 |
"Absolutely not. You can configure pretty much everything Booster Plus has to "
|
344 |
"offer without any coding knowledge."
|
345 |
msgstr ""
|
346 |
|
347 |
+
#: includes/admin/class-wc-settings-jetpack.php:952
|
348 |
msgid "Will Booster Plus slow down my website?"
|
349 |
msgstr ""
|
350 |
|
351 |
+
#: includes/admin/class-wc-settings-jetpack.php:956
|
352 |
msgid ""
|
353 |
"Absolutely not. Booster Plus is carefully built with performance in mind."
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: includes/admin/class-wc-settings-jetpack.php:961
|
357 |
msgid "Do you offer refunds?"
|
358 |
msgstr ""
|
359 |
|
360 |
+
#: includes/admin/class-wc-settings-jetpack.php:965
|
361 |
#, php-format
|
362 |
msgid ""
|
363 |
"If you are not completely satisfied with Booster Plus within the fist 30 "
|
365 |
"no questions asked."
|
366 |
msgstr ""
|
367 |
|
368 |
+
#: includes/admin/class-wc-settings-jetpack.php:970
|
369 |
msgid "Can I use Booster Plus on client sites?"
|
370 |
msgstr ""
|
371 |
|
372 |
+
#: includes/admin/class-wc-settings-jetpack.php:974
|
373 |
msgid ""
|
374 |
"Yes, you can use Booster Plus on client sites. You can purchase the multiple "
|
375 |
"sites license of Booster Plus."
|
376 |
msgstr ""
|
377 |
|
378 |
+
#: includes/admin/class-wc-settings-jetpack.php:979
|
379 |
msgid "Do you have an affiliate program?"
|
380 |
msgstr ""
|
381 |
|
382 |
+
#: includes/admin/class-wc-settings-jetpack.php:983
|
383 |
msgid "Yes, We do have an affiliate program. "
|
384 |
msgstr ""
|
385 |
|
386 |
+
#: includes/admin/class-wc-settings-jetpack.php:983
|
387 |
msgid "Click here"
|
388 |
msgstr ""
|
389 |
|
390 |
+
#: includes/admin/class-wc-settings-jetpack.php:983
|
391 |
msgid " for the details."
|
392 |
msgstr ""
|
393 |
|
394 |
+
#: includes/admin/class-wc-settings-jetpack.php:988
|
395 |
msgid ""
|
396 |
"Why should I choose the Booster Plus suite over other individual plugins?"
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: includes/admin/class-wc-settings-jetpack.php:992
|
400 |
msgid ""
|
401 |
"Oh, that's an easy one! Implementing just a few modules from the Booster Plus "
|
402 |
"suite is more cost-effective than using dozens of individual plugins often "
|
408 |
"your WooCommerce site easily."
|
409 |
msgstr ""
|
410 |
|
411 |
+
#: includes/admin/class-wc-settings-jetpack.php:997
|
412 |
msgid "What features does Booster Plus have?"
|
413 |
msgstr ""
|
414 |
|
415 |
+
#: includes/admin/class-wc-settings-jetpack.php:1001
|
416 |
msgid "You can see all the features at "
|
417 |
msgstr ""
|
418 |
|
419 |
+
#: includes/admin/class-wc-settings-jetpack.php:1001
|
420 |
msgid "About Booster"
|
421 |
msgstr ""
|
422 |
|
423 |
+
#: includes/admin/class-wc-settings-jetpack.php:1001
|
424 |
msgid " page."
|
425 |
msgstr ""
|
426 |
|
427 |
+
#: includes/admin/class-wc-settings-jetpack.php:1005
|
428 |
msgid "Still have a question?"
|
429 |
msgstr ""
|
430 |
|
431 |
+
#: includes/admin/class-wc-settings-jetpack.php:1006
|
432 |
msgid "CONTACT BOOSTER SUPPORT"
|
433 |
msgstr ""
|
434 |
|
435 |
+
#: includes/admin/class-wc-settings-jetpack.php:1012
|
436 |
msgid "Connect with Booster"
|
437 |
msgstr ""
|
438 |
|
439 |
+
#: includes/admin/class-wc-settings-jetpack.php:1016
|
440 |
msgid "BOOSTER WEBSITE"
|
441 |
msgstr ""
|
442 |
|
443 |
+
#: includes/admin/class-wc-settings-jetpack.php:1030
|
444 |
+
#: includes/class-wcj-general.php:250 includes/class-wcj-product-by-user.php:278
|
445 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:166
|
446 |
#: includes/tools/class-wcj-order-statuses-tool.php:191
|
447 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:285
|
448 |
msgid "Actions"
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: includes/admin/class-wc-settings-jetpack.php:1041
|
452 |
msgid "Import Booster options"
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: includes/admin/class-wc-settings-jetpack.php:1050
|
456 |
msgid "Export Booster options"
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: includes/admin/class-wc-settings-jetpack.php:1061
|
460 |
msgid "Reset all Booster's options"
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: includes/admin/class-wc-settings-jetpack.php:1070
|
464 |
msgid "Reset all Booster's meta"
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: includes/admin/class-wc-settings-jetpack.php:1085
|
468 |
msgid "Here you can find all documentation of Booster"
|
469 |
msgstr ""
|
470 |
|
471 |
+
#: includes/admin/class-wc-settings-jetpack.php:1087
|
472 |
msgid "See Documentation"
|
473 |
msgstr ""
|
474 |
|
475 |
+
#: includes/admin/class-wc-settings-jetpack.php:1094
|
476 |
msgid "Latest updates"
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: includes/admin/class-wc-settings-jetpack.php:1097
|
480 |
msgid "Version "
|
481 |
msgstr ""
|
482 |
|
483 |
+
#: includes/admin/class-wc-settings-jetpack.php:1102
|
484 |
msgid "SEE MORE"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: includes/admin/class-wc-settings-jetpack.php:1113
|
488 |
+
#: includes/core/class-wcj-admin.php:98
|
489 |
msgid "Please rate "
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: includes/admin/class-wc-settings-jetpack.php:1113
|
493 |
+
#: includes/core/class-wcj-admin.php:98
|
494 |
msgid "Booster for Woocommerce"
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: includes/admin/class-wc-settings-jetpack.php:1121
|
498 |
+
#: includes/core/class-wcj-admin.php:106
|
499 |
msgid "WordPress.org"
|
500 |
msgstr ""
|
501 |
|
502 |
+
#: includes/admin/class-wc-settings-jetpack.php:1121
|
503 |
+
#: includes/core/class-wcj-admin.php:106
|
504 |
msgid " to help us spread the word. Thank you from Booster team!"
|
505 |
msgstr ""
|
506 |
|
507 |
+
#: includes/admin/class-wc-settings-jetpack.php:1125
|
508 |
msgid "Upgrade today to unlock these popular premium features:"
|
509 |
msgstr ""
|
510 |
|
511 |
+
#: includes/admin/class-wc-settings-jetpack.php:1127
|
512 |
msgid "+ PDF Invoices and Packing slips –"
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: includes/admin/class-wc-settings-jetpack.php:1127
|
516 |
msgid ""
|
517 |
"Add ability to create Proforma Invoices, Credit Notes and Packaging slips"
|
518 |
msgstr ""
|
519 |
|
520 |
+
#: includes/admin/class-wc-settings-jetpack.php:1128
|
521 |
msgid "+ Empty Cart –"
|
522 |
msgstr ""
|
523 |
|
524 |
+
#: includes/admin/class-wc-settings-jetpack.php:1128
|
525 |
msgid ""
|
526 |
"customize empty cart button text, different button positions on cart page"
|
527 |
msgstr ""
|
528 |
|
529 |
+
#: includes/admin/class-wc-settings-jetpack.php:1129
|
530 |
msgid "+ Cart and checkout –"
|
531 |
msgstr ""
|
532 |
|
533 |
+
#: includes/admin/class-wc-settings-jetpack.php:1129
|
534 |
msgid "add multiple – custom fields, custom info blocks, check out file uploads"
|
535 |
msgstr ""
|
536 |
|
537 |
+
#: includes/admin/class-wc-settings-jetpack.php:1130
|
538 |
msgid "+ Mini cart –"
|
539 |
msgstr ""
|
540 |
|
541 |
+
#: includes/admin/class-wc-settings-jetpack.php:1130
|
542 |
msgid "More custom information options"
|
543 |
msgstr ""
|
544 |
|
545 |
+
#: includes/admin/class-wc-settings-jetpack.php:1131
|
546 |
msgid "+ Prices and currencies –"
|
547 |
msgstr ""
|
548 |
|
549 |
+
#: includes/admin/class-wc-settings-jetpack.php:1131
|
550 |
msgid "add more unlimited number of currencies to WooCommerce"
|
551 |
msgstr ""
|
552 |
|
553 |
+
#: includes/admin/class-wc-settings-jetpack.php:1132
|
554 |
msgid "+ Export options –"
|
555 |
msgstr ""
|
556 |
|
557 |
+
#: includes/admin/class-wc-settings-jetpack.php:1132
|
558 |
msgid "more fields enabled"
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: includes/admin/class-wc-settings-jetpack.php:1133
|
562 |
msgid "+ Add to cart –"
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: includes/admin/class-wc-settings-jetpack.php:1133
|
566 |
msgid ""
|
567 |
"customize add to cart messages, Button labels - multiple category groups "
|
568 |
"allowed+ +"
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: includes/admin/class-wc-settings-jetpack.php:1134
|
572 |
msgid "+ More configuration options for payments and shipping"
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: includes/admin/class-wc-settings-jetpack.php:1137
|
576 |
msgid "Upgrade to Booster Plus"
|
577 |
msgstr ""
|
578 |
|
625 |
msgid "Tools Dashboard"
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: includes/admin/class-wcj-tools.php:109
|
629 |
msgid "Booster for WooCommerce Tools - Dashboard"
|
630 |
msgstr ""
|
631 |
|
632 |
+
#: includes/admin/class-wcj-tools.php:110
|
633 |
msgid ""
|
634 |
"This dashboard lets you check statuses and short descriptions of all "
|
635 |
"available Booster for WooCommerce tools. Tools can be enabled through "
|
882 |
msgid "Don't miss updates from us!"
|
883 |
msgstr ""
|
884 |
|
885 |
+
#: includes/admin/wcj-welcome-screen-content.php:148
|
886 |
msgid "Thank you for subscribing your email"
|
887 |
msgstr ""
|
888 |
|
889 |
+
#: includes/admin/wcj-welcome-screen-content.php:150
|
890 |
msgid "You have already subscribed your email"
|
891 |
msgstr ""
|
892 |
|
893 |
+
#: includes/admin/wcj-welcome-screen-content.php:152
|
894 |
msgid "Something went wrong with your subscription. Please after some time !"
|
895 |
msgstr ""
|
896 |
|
897 |
+
#: includes/admin/wcj-welcome-screen-content.php:160
|
898 |
msgid "Contact Us"
|
899 |
msgstr ""
|
900 |
|
901 |
+
#: includes/admin/wcj-welcome-screen-content.php:162
|
902 |
msgid ""
|
903 |
"Booster Plus customers get access to Premium Support and we respond within 24 "
|
904 |
"business hours."
|
905 |
msgstr ""
|
906 |
|
907 |
+
#: includes/admin/wcj-welcome-screen-content.php:163
|
908 |
msgid "Booster Plus Premium Support"
|
909 |
msgstr ""
|
910 |
|
911 |
+
#: includes/admin/wcj-welcome-screen-content.php:166
|
912 |
msgid ""
|
913 |
"Free users post on WordPress Plugin Support forum here. We check these "
|
914 |
"threads twice every week Mon and Frid to respond."
|
915 |
msgstr ""
|
916 |
|
917 |
+
#: includes/admin/wcj-welcome-screen-content.php:167
|
918 |
msgid "Booster Free Plugin Support"
|
919 |
msgstr ""
|
920 |
|
1280 |
"filtering."
|
1281 |
msgstr ""
|
1282 |
|
1283 |
+
#: includes/class-wcj-admin-orders-list.php:227
|
1284 |
msgid "Not Completed"
|
1285 |
msgstr ""
|
1286 |
|
1287 |
+
#: includes/class-wcj-admin-orders-list.php:269
|
1288 |
msgid "Trash"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
+
#: includes/class-wcj-admin-orders-list.php:367
|
1292 |
#: includes/class-wcj-product-by-country.php:192
|
1293 |
#: includes/class-wcj-product-by-country.php:228
|
1294 |
msgid "All countries"
|
1295 |
msgstr ""
|
1296 |
|
1297 |
+
#: includes/class-wcj-admin-orders-list.php:376
|
1298 |
msgid "All currencies"
|
1299 |
msgstr ""
|
1300 |
|
1301 |
+
#: includes/class-wcj-admin-orders-list.php:418
|
1302 |
#: includes/export/class-wcj-export-fields-helper.php:52
|
1303 |
#: includes/export/class-wcj-export-fields-helper.php:136
|
1304 |
#: includes/export/class-wcj-export-fields-helper.php:219
|
1306 |
msgid "Billing Country"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: includes/class-wcj-admin-orders-list.php:421
|
1310 |
#: includes/settings/wcj-settings-admin-orders-list.php:37
|
1311 |
msgid "Currency Code"
|
1312 |
msgstr ""
|
1373 |
msgid "Item Meta Value"
|
1374 |
msgstr ""
|
1375 |
|
1376 |
+
#: includes/class-wcj-admin-tools.php:295 includes/class-wcj-admin-tools.php:340
|
1377 |
+
#: includes/class-wcj-admin-tools.php:350
|
1378 |
#: includes/class-wcj-product-bulk-meta-editor.php:383
|
1379 |
#: includes/class-wcj-sku.php:710
|
1380 |
#: includes/reports/class-wcj-reports-sales.php:212
|
1382 |
msgid "Product"
|
1383 |
msgstr ""
|
1384 |
|
1385 |
+
#: includes/class-wcj-admin-tools.php:296 includes/class-wcj-admin-tools.php:341
|
1386 |
+
#: includes/class-wcj-admin-tools.php:351
|
1387 |
#: includes/reports/class-wcj-reports-stock.php:290
|
1388 |
msgid "Category"
|
1389 |
msgstr ""
|
1390 |
|
1391 |
+
#: includes/class-wcj-admin-tools.php:369
|
1392 |
msgid "Total Products:"
|
1393 |
msgstr ""
|
1394 |
|
1554 |
msgid "Add fees to WooCommerce cart & checkout."
|
1555 |
msgstr ""
|
1556 |
|
1557 |
+
#: includes/class-wcj-checkout-fees.php:250
|
1558 |
#: includes/settings/wcj-settings-checkout-fees.php:46
|
1559 |
#: includes/settings/wcj-settings-checkout-fees.php:67
|
1560 |
msgid "Fee"
|
1589 |
|
1590 |
#: includes/class-wcj-checkout-files-upload.php:235
|
1591 |
#: includes/class-wcj-checkout-files-upload.php:250
|
1592 |
+
#: includes/class-wcj-checkout-files-upload.php:525
|
1593 |
+
#: includes/class-wcj-checkout-files-upload.php:541
|
1594 |
#: includes/settings/wcj-settings-checkout-files-upload.php:120
|
1595 |
#, php-format
|
1596 |
msgid "Wrong file type: \"%s\"!"
|
1600 |
msgid "Uploaded Files"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
+
#: includes/class-wcj-checkout-files-upload.php:307
|
1604 |
msgid "No files uploaded."
|
1605 |
msgstr ""
|
1606 |
|
1607 |
+
#: includes/class-wcj-checkout-files-upload.php:315
|
1608 |
msgid "Delete all files"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
+
#: includes/class-wcj-checkout-files-upload.php:406
|
1612 |
#: includes/settings/wcj-settings-checkout-files-upload.php:260
|
1613 |
msgid "Files were successfully removed."
|
1614 |
msgstr ""
|
1615 |
|
1616 |
+
#: includes/class-wcj-checkout-files-upload.php:435
|
1617 |
msgid "Booster for WooCommerce: Checkout Files Upload: %action%"
|
1618 |
msgstr ""
|
1619 |
|
1620 |
+
#: includes/class-wcj-checkout-files-upload.php:438
|
1621 |
#, php-format
|
1622 |
msgid "Order ID: %1$s; File name: %2$s"
|
1623 |
msgstr ""
|
1624 |
|
1625 |
+
#: includes/class-wcj-checkout-files-upload.php:458
|
1626 |
+
#: includes/class-wcj-checkout-files-upload.php:495
|
1627 |
#: includes/settings/wcj-settings-checkout-files-upload.php:150
|
1628 |
#, php-format
|
1629 |
msgid "File \"%s\" was successfully removed."
|
1630 |
msgstr ""
|
1631 |
|
1632 |
+
#: includes/class-wcj-checkout-files-upload.php:470
|
1633 |
msgid "File Removed"
|
1634 |
msgstr ""
|
1635 |
|
1636 |
+
#: includes/class-wcj-checkout-files-upload.php:561
|
1637 |
#: includes/settings/wcj-settings-checkout-files-upload.php:135
|
1638 |
#, php-format
|
1639 |
msgid "File \"%s\" was successfully uploaded."
|
1640 |
msgstr ""
|
1641 |
|
1642 |
+
#: includes/class-wcj-checkout-files-upload.php:576
|
1643 |
msgid "File Uploaded"
|
1644 |
msgstr ""
|
1645 |
|
1646 |
+
#: includes/class-wcj-checkout-files-upload.php:604
|
1647 |
#: includes/settings/wcj-settings-checkout-files-upload.php:141
|
1648 |
msgid "Please select file to upload!"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
+
#: includes/class-wcj-checkout-files-upload.php:933
|
1652 |
+
#: includes/class-wcj-checkout-files-upload.php:934
|
1653 |
#: includes/settings/wcj-settings-checkout-files-upload.php:105
|
1654 |
msgid "Upload"
|
1655 |
msgstr ""
|
1656 |
|
1657 |
+
#: includes/class-wcj-checkout-files-upload.php:949
|
1658 |
+
#: includes/class-wcj-checkout-files-upload.php:950
|
1659 |
#: includes/settings/wcj-settings-checkout-files-upload.php:111
|
1660 |
#: includes/settings/wcj-settings-price-by-user-role.php:81
|
1661 |
#: includes/settings/wcj-settings-price-by-user-role.php:89
|
2064 |
msgid "Log."
|
2065 |
msgstr ""
|
2066 |
|
2067 |
+
#: includes/class-wcj-debug-tools.php:70
|
2068 |
msgid "Delete Log"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
+
#: includes/class-wcj-debug-tools.php:74
|
2072 |
#, php-format
|
2073 |
msgid "Now: %s"
|
2074 |
msgstr ""
|
2075 |
|
2076 |
+
#: includes/class-wcj-debug-tools.php:79
|
2077 |
msgid "Log is empty."
|
2078 |
msgstr ""
|
2079 |
|
2080 |
+
#: includes/class-wcj-debug-tools.php:111
|
2081 |
msgid "NOT DEFINED"
|
2082 |
msgstr ""
|
2083 |
|
2312 |
msgid "Customer EU VAT Number"
|
2313 |
msgstr ""
|
2314 |
|
2315 |
+
#: includes/class-wcj-eu-vat-number.php:448
|
2316 |
#: includes/settings/wcj-settings-eu-vat-number.php:169
|
2317 |
msgid "Validating VAT. Please wait..."
|
2318 |
msgstr ""
|
2319 |
|
2320 |
+
#: includes/class-wcj-eu-vat-number.php:449
|
2321 |
#: includes/settings/wcj-settings-eu-vat-number.php:176
|
2322 |
msgid "VAT is valid."
|
2323 |
msgstr ""
|
2324 |
|
2325 |
+
#: includes/class-wcj-eu-vat-number.php:450
|
2326 |
#: includes/settings/wcj-settings-eu-vat-number.php:183
|
2327 |
msgid "VAT is not valid."
|
2328 |
msgstr ""
|
2329 |
|
2330 |
+
#: includes/class-wcj-eu-vat-number.php:451
|
2331 |
#: includes/settings/wcj-settings-eu-vat-number.php:191
|
2332 |
msgid "Validation failed. Please try again."
|
2333 |
msgstr ""
|
2334 |
|
2335 |
+
#: includes/class-wcj-eu-vat-number.php:589
|
2336 |
msgid "<strong>Billing EU VAT Number</strong>is a required field."
|
2337 |
msgstr ""
|
2338 |
|
2339 |
+
#: includes/class-wcj-eu-vat-number.php:608
|
2340 |
#: includes/settings/wcj-settings-eu-vat-number.php:78
|
2341 |
msgid "<strong>EU VAT Number</strong> is not valid."
|
2342 |
msgstr ""
|
2408 |
msgstr ""
|
2409 |
|
2410 |
#: includes/class-wcj-export-import.php:275
|
2411 |
+
#: includes/reports/class-wcj-reports-product-sales-daily.php:217
|
2412 |
#: includes/reports/wcj-class-reports-sales-gateways.php:166
|
2413 |
#: includes/settings/wcj-settings-orders.php:48
|
2414 |
msgid "Filter"
|
2471 |
msgid "Current PHP time limit: %s seconds."
|
2472 |
msgstr ""
|
2473 |
|
2474 |
+
#: includes/class-wcj-general.php:135
|
2475 |
msgid "Booster User Role"
|
2476 |
msgstr ""
|
2477 |
|
2478 |
+
#: includes/class-wcj-general.php:250 includes/class-wcj-general.php:272
|
2479 |
#: includes/class-wcj-sku.php:709
|
2480 |
#: includes/reports/class-wcj-reports-sales.php:211
|
2481 |
#: includes/settings/wcj-settings-cross-sells.php:46
|
2487 |
msgid "ID"
|
2488 |
msgstr ""
|
2489 |
|
2490 |
+
#: includes/class-wcj-general.php:250 includes/class-wcj-general.php:273
|
2491 |
#: includes/class-wcj-offer-price.php:179
|
2492 |
#: includes/export/class-wcj-export-fields-helper.php:287
|
2493 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:92
|
2495 |
msgid "Name"
|
2496 |
msgstr ""
|
2497 |
|
2498 |
+
#: includes/class-wcj-general.php:250 includes/class-wcj-general.php:274
|
2499 |
msgid "Capabilities"
|
2500 |
msgstr ""
|
2501 |
|
2502 |
+
#: includes/class-wcj-general.php:264
|
2503 |
#: includes/class-wcj-payment-gateways.php:134
|
2504 |
#: includes/class-wcj-product-bulk-meta-editor.php:411
|
2505 |
#: includes/class-wcj-product-by-user.php:287
|
2506 |
+
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:163
|
2507 |
+
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:387
|
2508 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:394
|
2509 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:213
|
2510 |
msgid "Delete"
|
2511 |
msgstr ""
|
2512 |
|
2723 |
msgid "Lost password"
|
2724 |
msgstr ""
|
2725 |
|
2726 |
+
#: includes/class-wcj-my-account.php:331
|
2727 |
#, php-format
|
2728 |
msgid "Hello %1$s (not %1$s? <a href=\"%2$s\">Log out</a>)"
|
2729 |
msgstr ""
|
2730 |
|
2731 |
+
#: includes/class-wcj-my-account.php:342
|
2732 |
#, php-format
|
2733 |
msgid ""
|
2734 |
"From your account dashboard you can view your <a href=\"%1$s\">recent orders</"
|
2736 |
"href=\"%3$s\">edit your password and account details</a>."
|
2737 |
msgstr ""
|
2738 |
|
2739 |
+
#: includes/class-wcj-my-account.php:452
|
2740 |
msgid "User role"
|
2741 |
msgstr ""
|
2742 |
|
2791 |
#: includes/class-wcj-offer-price.php:180
|
2792 |
#: includes/export/class-wcj-export-fields-helper.php:83
|
2793 |
#: includes/input-fields/wcj-product-input-fields-options.php:47
|
2794 |
+
#: includes/reports/class-wcj-reports-customers.php:101
|
2795 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:156
|
2796 |
msgid "Email"
|
2797 |
msgstr ""
|
2938 |
msgid "Current slug"
|
2939 |
msgstr ""
|
2940 |
|
2941 |
+
#: includes/class-wcj-old-slugs.php:98
|
2942 |
#, php-format
|
2943 |
msgid ""
|
2944 |
"Removing old slugs from database finished! <strong>%d</strong> old slug(s) "
|
2945 |
"deleted."
|
2946 |
msgstr ""
|
2947 |
|
2948 |
+
#: includes/class-wcj-old-slugs.php:100
|
2949 |
msgid "Please <a href=\"\">refresh</a> the page."
|
2950 |
msgstr ""
|
2951 |
|
2952 |
+
#: includes/class-wcj-old-slugs.php:125
|
2953 |
msgid "Old products slugs found:"
|
2954 |
msgstr ""
|
2955 |
|
2956 |
+
#: includes/class-wcj-old-slugs.php:128
|
2957 |
msgid "Remove all old product slugs"
|
2958 |
msgstr ""
|
2959 |
|
2960 |
+
#: includes/class-wcj-old-slugs.php:131
|
2961 |
msgid "Old non-products slugs found:"
|
2962 |
msgstr ""
|
2963 |
|
2964 |
+
#: includes/class-wcj-old-slugs.php:134
|
2965 |
msgid "Remove all old non-product slugs"
|
2966 |
msgstr ""
|
2967 |
|
2968 |
+
#: includes/class-wcj-old-slugs.php:149
|
2969 |
msgid "No old slugs found."
|
2970 |
msgstr ""
|
2971 |
|
3058 |
msgid "Tool renumerates all orders."
|
3059 |
msgstr ""
|
3060 |
|
3061 |
+
#: includes/class-wcj-order-numbers.php:354
|
3062 |
msgid "Orders successfully renumerated!"
|
3063 |
msgstr ""
|
3064 |
|
3065 |
+
#: includes/class-wcj-order-numbers.php:359
|
3066 |
#, php-format
|
3067 |
msgid "Sequential number generation is enabled. Next order number will be %s."
|
3068 |
msgstr ""
|
3069 |
|
3070 |
+
#: includes/class-wcj-order-numbers.php:372
|
3071 |
#, php-format
|
3072 |
msgid ""
|
3073 |
"Press the button below to renumerate all existing orders starting from order "
|
3074 |
"counter settings in <a href=\"%s\">Order Numbers</a> module."
|
3075 |
msgstr ""
|
3076 |
|
3077 |
+
#: includes/class-wcj-order-numbers.php:380
|
3078 |
msgid "Renumerate orders"
|
3079 |
msgstr ""
|
3080 |
|
3088 |
"decimal quantities etc."
|
3089 |
msgstr ""
|
3090 |
|
3091 |
+
#: includes/class-wcj-order-quantities.php:288
|
3092 |
#: includes/settings/wcj-settings-order-quantities.php:297
|
3093 |
msgid ""
|
3094 |
"Only one item can be added to the cart. Clear the cart or finish the order, "
|
3095 |
"before adding another item to the cart."
|
3096 |
msgstr ""
|
3097 |
|
3098 |
+
#: includes/class-wcj-order-quantities.php:482
|
3099 |
#: includes/settings/wcj-settings-order-quantities.php:182
|
3100 |
msgid ""
|
3101 |
"Maximum allowed order quantity is %max_cart_total_quantity%. Your current "
|
3102 |
"order quantity is %cart_total_quantity%."
|
3103 |
msgstr ""
|
3104 |
|
3105 |
+
#: includes/class-wcj-order-quantities.php:493
|
3106 |
#: includes/settings/wcj-settings-order-quantities.php:109
|
3107 |
msgid ""
|
3108 |
"Minimum allowed order quantity is %min_cart_total_quantity%. Your current "
|
3109 |
"order quantity is %cart_total_quantity%."
|
3110 |
msgstr ""
|
3111 |
|
3112 |
+
#: includes/class-wcj-order-quantities.php:505
|
3113 |
#: includes/settings/wcj-settings-order-quantities.php:220
|
3114 |
msgid ""
|
3115 |
"Maximum allowed quantity for %product_title% is %max_per_item_quantity%. Your "
|
3116 |
"current item quantity is %item_quantity%."
|
3117 |
msgstr ""
|
3118 |
|
3119 |
+
#: includes/class-wcj-order-quantities.php:520
|
3120 |
#: includes/settings/wcj-settings-order-quantities.php:146
|
3121 |
msgid ""
|
3122 |
"Minimum allowed quantity for %product_title% is %min_per_item_quantity%. Your "
|
3123 |
"current item quantity is %item_quantity%."
|
3124 |
msgstr ""
|
3125 |
|
3126 |
+
#: includes/class-wcj-order-quantities.php:532
|
3127 |
#: includes/settings/wcj-settings-order-quantities.php:271
|
3128 |
msgid ""
|
3129 |
"Required step for %product_title% is %required_step%. Your current item "
|
3158 |
msgid "Regenerate download permissions"
|
3159 |
msgstr ""
|
3160 |
|
3161 |
+
#: includes/class-wcj-orders.php:265
|
3162 |
#, php-format
|
3163 |
msgid "Download permissions regenerated for %s order."
|
3164 |
msgid_plural "Download permissions regenerated for %s orders."
|
3355 |
msgid "Change product price and currency automatically by customer's country."
|
3356 |
msgstr ""
|
3357 |
|
3358 |
+
#: includes/class-wcj-price-by-country.php:164
|
3359 |
msgid "Price filter widget product prices recalculated."
|
3360 |
msgstr ""
|
3361 |
|
3392 |
msgid "Copy price to all %s"
|
3393 |
msgstr ""
|
3394 |
|
3395 |
+
#: includes/class-wcj-price-by-user-role.php:258
|
3396 |
msgid ""
|
3397 |
"Booster: Free plugin's version is limited to only one price by user role per "
|
3398 |
"products settings product enabled at a time. You will need to get <a href="
|
3399 |
+
"\"https://booster.io/buy-booster/\" target=\"_blank\">Booster Plus</a> to add "
|
3400 |
"unlimited number of price by user role per product settings products."
|
3401 |
msgstr ""
|
3402 |
|
3606 |
#: includes/settings/wcj-settings-price-by-country.php:117
|
3607 |
#: includes/settings/wcj-settings-price-by-country.php:144
|
3608 |
#: includes/settings/wcj-settings-price-by-country.php:191
|
3609 |
+
#: includes/settings/wcj-settings-price-by-country.php:209
|
3610 |
+
#: includes/settings/wcj-settings-price-by-country.php:218
|
3611 |
+
#: includes/settings/wcj-settings-price-by-country.php:227
|
3612 |
+
#: includes/settings/wcj-settings-price-by-country.php:237
|
|
|
3613 |
#: includes/settings/wcj-settings-price-by-country.php:284
|
3614 |
+
#: includes/settings/wcj-settings-price-by-country.php:292
|
3615 |
#: includes/settings/wcj-settings-price-by-user-role.php:23
|
3616 |
#: includes/settings/wcj-settings-price-by-user-role.php:50
|
3617 |
#: includes/settings/wcj-settings-price-by-user-role.php:97
|
3849 |
msgid ""
|
3850 |
"Booster: Free plugin's version is limited to only three products with per "
|
3851 |
"product addons enabled at a time. You will need to get <a href=\"https://"
|
3852 |
+
"booster.io/buy-booster/\" target=\"_blank\">Booster Plus</a> to add unlimited "
|
3853 |
+
"number of products with per product addons."
|
3854 |
msgstr ""
|
3855 |
|
3856 |
#: includes/class-wcj-product-bookings.php:30
|
3914 |
#: includes/class-wcj-product-bookings.php:537
|
3915 |
msgid ""
|
3916 |
"Booster: Free plugin's version is limited to only one bookings product "
|
3917 |
+
"enabled at a time. You will need to get <a href=\"https://booster.io/buy-"
|
3918 |
+
"booster/\" target=\"_blank\">Booster Plus</a> to add unlimited number of "
|
3919 |
+
"bookings products."
|
3920 |
msgstr ""
|
3921 |
|
3922 |
#: includes/class-wcj-product-bulk-meta-editor.php:30
|
3986 |
#: includes/classes/class-wcj-module.php:1000
|
3987 |
#: includes/functions/wcj-functions-general.php:208
|
3988 |
#: includes/functions/wcj-functions-html.php:131
|
3989 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:392
|
3990 |
#: includes/settings/wcj-settings-empty-cart.php:88
|
3991 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:394
|
3992 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:213
|
3993 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:363
|
3994 |
msgid "Are you sure?"
|
3995 |
msgstr ""
|
3996 |
|
4403 |
|
4404 |
#: includes/class-wcj-product-by-user.php:286
|
4405 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:473
|
4406 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:222
|
4407 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:300
|
4408 |
msgid "Edit"
|
4409 |
msgstr ""
|
4410 |
|
4923 |
msgstr ""
|
4924 |
|
4925 |
#: includes/class-wcj-products-per-page.php:98
|
|
|
4926 |
msgid ""
|
4927 |
"Products <strong>%1$from% - %to%</strong> from <strong>%total%</strong>. "
|
4928 |
"Products on page %2$select_form%"
|
5328 |
#: includes/settings/wcj-settings-sku.php:314
|
5329 |
#: includes/settings/wcj-settings-sku.php:341
|
5330 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:473
|
5331 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:300
|
5332 |
msgid "Add"
|
5333 |
msgstr ""
|
5334 |
|
5875 |
msgid "Reset Submodule to Default Settings"
|
5876 |
msgstr ""
|
5877 |
|
5878 |
+
#: includes/classes/class-wcj-module.php:1006
|
5879 |
msgid "Reset settings"
|
5880 |
msgstr ""
|
5881 |
|
5882 |
+
#: includes/classes/class-wcj-module.php:1044
|
5883 |
msgid "Module Options"
|
5884 |
msgstr ""
|
5885 |
|
5886 |
+
#: includes/classes/class-wcj-module.php:1051
|
5887 |
msgid "Enable Module"
|
5888 |
msgstr ""
|
5889 |
|
5924 |
msgid "Click <a target=\"_blank\" href=\"%s\">here</a> for more info."
|
5925 |
msgstr ""
|
5926 |
|
5927 |
+
#: includes/core/class-wcj-admin.php:125
|
5928 |
msgid "Booster Settings"
|
5929 |
msgstr ""
|
5930 |
|
5931 |
+
#: includes/core/class-wcj-admin.php:141
|
5932 |
msgid "Docs"
|
5933 |
msgstr ""
|
5934 |
|
5935 |
+
#: includes/core/class-wcj-admin.php:144
|
5936 |
msgid "Unlock all"
|
5937 |
msgstr ""
|
5938 |
|
5939 |
+
#: includes/core/class-wcj-admin.php:146
|
5940 |
msgid "Support"
|
5941 |
msgstr ""
|
5942 |
|
6234 |
msgstr ""
|
6235 |
|
6236 |
#: includes/export/class-wcj-export-fields-helper.php:89
|
6237 |
+
#: includes/reports/class-wcj-reports-customers.php:103
|
6238 |
msgid "Registered"
|
6239 |
msgstr ""
|
6240 |
|
8101 |
msgstr ""
|
8102 |
|
8103 |
#: includes/input-fields/class-wcj-product-input-fields-core.php:253
|
8104 |
+
#: includes/input-fields/class-wcj-product-input-fields-core.php:458
|
8105 |
#: includes/settings/wcj-settings-product-input-fields.php:96
|
8106 |
msgid "Product Input Field"
|
8107 |
msgstr ""
|
8108 |
|
8109 |
+
#: includes/input-fields/class-wcj-product-input-fields-core.php:543
|
8110 |
msgid "Wrong file type!"
|
8111 |
msgstr ""
|
8112 |
|
8113 |
+
#: includes/input-fields/class-wcj-product-input-fields-core.php:552
|
8114 |
msgid "File is too big!"
|
8115 |
msgstr ""
|
8116 |
|
8117 |
+
#: includes/input-fields/class-wcj-product-input-fields-core.php:789
|
8118 |
msgid "Select a country…"
|
8119 |
msgstr ""
|
8120 |
|
8575 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:67
|
8576 |
#: includes/settings/wcj-settings-multicurrency.php:244
|
8577 |
#: includes/settings/wcj-settings-order-min-amount.php:87
|
8578 |
+
#: includes/settings/wcj-settings-price-by-country.php:249
|
8579 |
#: includes/settings/wcj-settings-price-by-user-role.php:110
|
8580 |
#: includes/settings/wcj-settings-product-addons.php:251
|
8581 |
msgid "Advanced"
|
8655 |
msgstr ""
|
8656 |
|
8657 |
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:146
|
8658 |
+
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:375
|
8659 |
msgid "View"
|
8660 |
msgstr ""
|
8661 |
|
8662 |
+
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:181
|
8663 |
+
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:411
|
8664 |
msgid "Create"
|
8665 |
msgstr ""
|
8666 |
|
8667 |
+
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:278
|
8668 |
#: includes/settings/wcj-settings-pdf-invoicing-display.php:104
|
8669 |
#, php-format
|
8670 |
msgid "Your %s:"
|
8671 |
msgstr ""
|
8672 |
|
8673 |
+
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:336
|
8674 |
msgid "Booster: PDF Invoices"
|
8675 |
msgstr ""
|
8676 |
|
8677 |
+
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:417
|
8678 |
msgid ""
|
8679 |
"In case of partial refund, you need to reload the page to see created "
|
8680 |
"document in this meta box."
|
8719 |
|
8720 |
#: includes/price-by-country/class-wcj-price-by-country-local.php:124
|
8721 |
#: includes/settings/meta-box/wcj-settings-meta-box-price-by-country.php:77
|
8722 |
+
#: includes/settings/wcj-settings-price-by-country.php:457
|
8723 |
msgid "Make empty price"
|
8724 |
msgstr ""
|
8725 |
|
8726 |
#: includes/price-by-country/class-wcj-price-by-country-local.php:249
|
8727 |
#: includes/settings/meta-box/wcj-settings-meta-box-price-by-country.php:21
|
8728 |
#: includes/settings/wcj-settings-add-to-cart.php:59
|
8729 |
+
#: includes/settings/wcj-settings-price-by-country.php:342
|
8730 |
+
#: includes/settings/wcj-settings-price-by-country.php:343
|
8731 |
+
#: includes/settings/wcj-settings-price-by-country.php:348
|
8732 |
+
#: includes/settings/wcj-settings-price-by-country.php:398
|
8733 |
+
#: includes/settings/wcj-settings-price-by-country.php:448
|
8734 |
msgid "Group"
|
8735 |
msgstr ""
|
8736 |
|
8743 |
msgid "Show reports only in"
|
8744 |
msgstr ""
|
8745 |
|
8746 |
+
#: includes/reports/class-wcj-reports-customers.php:51
|
8747 |
msgid "No customers found."
|
8748 |
msgstr ""
|
8749 |
|
8750 |
+
#: includes/reports/class-wcj-reports-customers.php:87
|
8751 |
msgid "Non Available"
|
8752 |
msgstr ""
|
8753 |
|
8754 |
+
#: includes/reports/class-wcj-reports-customers.php:100
|
8755 |
#: includes/settings/wcj-settings-offer-price.php:212
|
8756 |
msgid "Customer Name"
|
8757 |
msgstr ""
|
8758 |
|
8759 |
+
#: includes/reports/class-wcj-reports-customers.php:102
|
8760 |
msgid "Total Spent"
|
8761 |
msgstr ""
|
8762 |
|
8763 |
+
#: includes/reports/class-wcj-reports-customers.php:146
|
8764 |
msgid "Total customers"
|
8765 |
msgstr ""
|
8766 |
|
8767 |
+
#: includes/reports/class-wcj-reports-customers.php:150
|
8768 |
msgid "Country Code"
|
8769 |
msgstr ""
|
8770 |
|
8771 |
+
#: includes/reports/class-wcj-reports-customers.php:151
|
8772 |
msgid "Customers Count"
|
8773 |
msgstr ""
|
8774 |
|
8775 |
+
#: includes/reports/class-wcj-reports-customers.php:152
|
8776 |
msgid "Percent of total"
|
8777 |
msgstr ""
|
8778 |
|
8779 |
+
#: includes/reports/class-wcj-reports-customers.php:188
|
8780 |
msgid "Report for:"
|
8781 |
msgstr ""
|
8782 |
|
8783 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:48
|
8784 |
msgid "Currency rates saved."
|
8785 |
msgstr ""
|
8786 |
|
8787 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:52
|
8788 |
msgid "Currency rates deleted."
|
8789 |
msgstr ""
|
8790 |
|
8791 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:99
|
8792 |
msgid "Days"
|
8793 |
msgstr ""
|
8794 |
|
8795 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:100
|
8796 |
msgid "Total Orders"
|
8797 |
msgstr ""
|
8798 |
|
8799 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:101
|
8800 |
msgid "Orders Average / Day"
|
8801 |
msgstr ""
|
8802 |
|
8803 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:102
|
8804 |
#: includes/reports/class-wcj-reports-sales.php:347
|
8805 |
msgid "Total Sum"
|
8806 |
msgstr ""
|
8807 |
|
8808 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:103
|
8809 |
msgid "Total Sum (excl. TAX)"
|
8810 |
msgstr ""
|
8811 |
|
8812 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:104
|
8813 |
msgid "Average / Order (excl. TAX)"
|
8814 |
msgstr ""
|
8815 |
|
8816 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:105
|
8817 |
msgid "Average / Day (excl. TAX)"
|
8818 |
msgstr ""
|
8819 |
|
8820 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:106
|
8821 |
msgid "Currency Rates"
|
8822 |
msgstr ""
|
8823 |
|
8824 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:107
|
8825 |
msgid "Orders by Currency"
|
8826 |
msgstr ""
|
8827 |
|
8828 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:220
|
8829 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:236
|
8830 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:308
|
8831 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:313
|
8832 |
#, php-format
|
8833 |
msgid "Forecast: %s"
|
8834 |
msgstr ""
|
8835 |
|
8836 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:260
|
8837 |
msgid "Grab average rate"
|
8838 |
msgstr ""
|
8839 |
|
8840 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:319
|
8841 |
msgid "Totals"
|
8842 |
msgstr ""
|
8843 |
|
8844 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:363
|
8845 |
msgid "Report currency"
|
8846 |
msgstr ""
|
8847 |
|
8848 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:383
|
8849 |
#, php-format
|
8850 |
msgid "Report generated in: %s s"
|
8851 |
msgstr ""
|
8852 |
|
8853 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:387
|
8854 |
msgid "Save Currency Rates"
|
8855 |
msgstr ""
|
8856 |
|
8857 |
+
#: includes/reports/class-wcj-reports-monthly-sales.php:392
|
8858 |
msgid "Reset Currency Rates"
|
8859 |
msgstr ""
|
8860 |
|
8861 |
+
#: includes/reports/class-wcj-reports-product-sales-daily.php:180
|
8862 |
#: includes/reports/class-wcj-reports-sales.php:367
|
8863 |
#: includes/reports/wcj-class-reports-sales-gateways.php:128
|
8864 |
msgid "Reports Settings"
|
8865 |
msgstr ""
|
8866 |
|
8867 |
+
#: includes/reports/class-wcj-reports-product-sales-daily.php:208
|
8868 |
#: includes/reports/wcj-class-reports-sales-gateways.php:160
|
8869 |
msgid "From:"
|
8870 |
msgstr ""
|
8871 |
|
8872 |
+
#: includes/reports/class-wcj-reports-product-sales-daily.php:211
|
8873 |
#: includes/reports/wcj-class-reports-sales-gateways.php:163
|
8874 |
msgid "To:"
|
8875 |
msgstr ""
|
8876 |
|
8877 |
+
#: includes/reports/class-wcj-reports-product-sales-daily.php:214
|
8878 |
msgid "Product:"
|
8879 |
msgstr ""
|
8880 |
|
8881 |
+
#: includes/reports/class-wcj-reports-product-sales-daily.php:305
|
8882 |
#, php-format
|
8883 |
msgid "Total: %d"
|
8884 |
msgstr ""
|
8885 |
|
8886 |
+
#: includes/reports/class-wcj-reports-product-sales-daily.php:310
|
8887 |
#: includes/reports/class-wcj-reports-product-sales-daily.php:315
|
|
|
8888 |
#, php-format
|
8889 |
msgid "Total: %s"
|
8890 |
msgstr ""
|
8891 |
|
8892 |
+
#: includes/reports/class-wcj-reports-product-sales-daily.php:334
|
8893 |
#: includes/reports/wcj-class-reports-sales-gateways.php:196
|
8894 |
#, php-format
|
8895 |
msgid "Total orders: %d"
|
8896 |
msgstr ""
|
8897 |
|
8898 |
+
#: includes/reports/class-wcj-reports-product-sales-daily.php:335
|
8899 |
#: includes/reports/class-wcj-reports-sales.php:400
|
8900 |
#: includes/reports/wcj-class-reports-sales-gateways.php:198
|
8901 |
msgid "No sales data for current period."
|
10026 |
#: includes/settings/wcj-settings-offer-price.php:221
|
10027 |
#: includes/settings/wcj-settings-offer-price.php:229
|
10028 |
#: includes/tools/class-wcj-order-statuses-tool.php:187
|
10029 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:281
|
10030 |
msgid "Label"
|
10031 |
msgstr ""
|
10032 |
|
10123 |
msgstr ""
|
10124 |
|
10125 |
#: includes/settings/wcj-settings-admin-orders-list.php:194
|
10126 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:240
|
10127 |
msgid "Statuses"
|
10128 |
msgstr ""
|
10129 |
|
10692 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:219
|
10693 |
#: includes/settings/wcj-settings-eu-vat-number.php:51
|
10694 |
#: includes/templates/wcj-radio-for-variations.php:25
|
10695 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:276
|
10696 |
msgid "Clear"
|
10697 |
msgstr ""
|
10698 |
|
11859 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:26
|
11860 |
#: includes/settings/wcj-settings-multicurrency.php:26
|
11861 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:76
|
11862 |
+
#: includes/settings/wcj-settings-price-by-country.php:417
|
11863 |
msgid "Exchange Rates Updates"
|
11864 |
msgstr ""
|
11865 |
|
11973 |
msgstr ""
|
11974 |
|
11975 |
#: includes/settings/wcj-settings-currency-exchange-rates.php:192
|
11976 |
+
#: includes/settings/wcj-settings-price-by-country.php:412
|
11977 |
msgid "Exchange Rates"
|
11978 |
msgstr ""
|
11979 |
|
11993 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:151
|
11994 |
#: includes/settings/wcj-settings-multicurrency.php:322
|
11995 |
#: includes/settings/wcj-settings-multicurrency.php:366
|
11996 |
+
#: includes/settings/wcj-settings-price-by-country.php:389
|
11997 |
#: includes/settings/wcj-settings-price-formats.php:68
|
11998 |
msgid "Currency"
|
11999 |
msgstr ""
|
12066 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:31
|
12067 |
#: includes/settings/wcj-settings-multicurrency.php:32
|
12068 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:81
|
12069 |
+
#: includes/settings/wcj-settings-price-by-country.php:422
|
12070 |
msgid "Enter Rates Manually"
|
12071 |
msgstr ""
|
12072 |
|
12074 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:32
|
12075 |
#: includes/settings/wcj-settings-multicurrency.php:33
|
12076 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:82
|
12077 |
+
#: includes/settings/wcj-settings-price-by-country.php:423
|
12078 |
msgid "Automatically via Currency Exchange Rates module"
|
12079 |
msgstr ""
|
12080 |
|
12082 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:35
|
12083 |
#: includes/settings/wcj-settings-multicurrency.php:36
|
12084 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:85
|
12085 |
+
#: includes/settings/wcj-settings-price-by-country.php:426
|
12086 |
msgid "Visit"
|
12087 |
msgstr ""
|
12088 |
|
12090 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:35
|
12091 |
#: includes/settings/wcj-settings-multicurrency.php:36
|
12092 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:87
|
12093 |
+
#: includes/settings/wcj-settings-price-by-country.php:426
|
12094 |
msgid "Currency Exchange Rates module"
|
12095 |
msgstr ""
|
12096 |
|
13199 |
#: includes/settings/wcj-settings-global-discount.php:231
|
13200 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:80
|
13201 |
#: includes/settings/wcj-settings-multicurrency.php:259
|
13202 |
+
#: includes/settings/wcj-settings-price-by-country.php:254
|
13203 |
#: includes/settings/wcj-settings-price-by-user-role.php:115
|
13204 |
#: includes/settings/wcj-settings-product-addons.php:279
|
13205 |
#: includes/settings/wcj-settings-product-price-by-formula.php:136
|
13209 |
#: includes/settings/wcj-settings-global-discount.php:232
|
13210 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:81
|
13211 |
#: includes/settings/wcj-settings-multicurrency.php:260
|
13212 |
+
#: includes/settings/wcj-settings-price-by-country.php:255
|
13213 |
#: includes/settings/wcj-settings-price-by-user-role.php:116
|
13214 |
#: includes/settings/wcj-settings-product-addons.php:280
|
13215 |
#: includes/settings/wcj-settings-product-price-by-formula.php:137
|
13436 |
|
13437 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:72
|
13438 |
#: includes/settings/wcj-settings-multicurrency.php:274
|
13439 |
+
#: includes/settings/wcj-settings-price-by-country.php:282
|
13440 |
#: includes/settings/wcj-settings-product-price-by-formula.php:143
|
13441 |
msgid "Save Calculated Products Prices"
|
13442 |
msgstr ""
|
13596 |
msgstr ""
|
13597 |
|
13598 |
#: includes/settings/wcj-settings-multicurrency.php:125
|
13599 |
+
#: includes/settings/wcj-settings-price-by-country.php:208
|
13600 |
msgid "Free Shipping"
|
13601 |
msgstr ""
|
13602 |
|
13603 |
#: includes/settings/wcj-settings-multicurrency.php:128
|
13604 |
+
#: includes/settings/wcj-settings-price-by-country.php:211
|
13605 |
msgid "Converts minimum amount from WooCommerce Free Shipping native method."
|
13606 |
msgstr ""
|
13607 |
|
13610 |
msgstr ""
|
13611 |
|
13612 |
#: includes/settings/wcj-settings-multicurrency.php:136
|
13613 |
+
#: includes/settings/wcj-settings-price-by-country.php:219
|
13614 |
msgid ""
|
13615 |
"When a fixed coupon is used its value changes according to the current "
|
13616 |
"currency."
|
13750 |
msgstr ""
|
13751 |
|
13752 |
#: includes/settings/wcj-settings-multicurrency.php:275
|
13753 |
+
#: includes/settings/wcj-settings-price-by-country.php:283
|
13754 |
#: includes/settings/wcj-settings-product-price-by-formula.php:144
|
13755 |
msgid ""
|
13756 |
"This may help if you are experiencing compatibility issues with other plugins."
|
15655 |
msgstr ""
|
15656 |
|
15657 |
#: includes/settings/wcj-settings-pdf-invoicing-display.php:30
|
15658 |
+
#: includes/settings/wcj-settings-price-by-country.php:396
|
15659 |
#: includes/settings/wcj-settings-shipping.php:34
|
15660 |
msgid "Admin Title"
|
15661 |
msgstr ""
|
16195 |
msgid "Price Filter Widget and Sorting by Price Support"
|
16196 |
msgstr ""
|
16197 |
|
16198 |
+
#: includes/settings/wcj-settings-price-by-country.php:202
|
16199 |
msgid "Recalculate price filter widget and sorting by price product prices."
|
16200 |
msgstr ""
|
16201 |
|
16202 |
+
#: includes/settings/wcj-settings-price-by-country.php:217
|
16203 |
msgid "WooCommerce Coupons"
|
16204 |
msgstr ""
|
16205 |
|
16206 |
+
#: includes/settings/wcj-settings-price-by-country.php:225
|
16207 |
msgid "Woo Discount Rules"
|
16208 |
msgstr ""
|
16209 |
|
16210 |
+
#: includes/settings/wcj-settings-price-by-country.php:229
|
16211 |
#, php-format
|
16212 |
msgid ""
|
16213 |
"Adds compatibility with <a href=\"%s\" target=\"_blank\">Woo Discount Rules</"
|
16214 |
"a> plugin."
|
16215 |
msgstr ""
|
16216 |
|
16217 |
+
#: includes/settings/wcj-settings-price-by-country.php:229
|
16218 |
#, php-format
|
16219 |
msgid ""
|
16220 |
"If it doesn't work properly try to enable <a href=\"%s\">redirect to the cart "
|
16221 |
"page after successful addition</a> option."
|
16222 |
msgstr ""
|
16223 |
|
16224 |
+
#: includes/settings/wcj-settings-price-by-country.php:235
|
16225 |
msgid "WooCommerce Points and Rewards"
|
16226 |
msgstr ""
|
16227 |
|
16228 |
+
#: includes/settings/wcj-settings-price-by-country.php:239
|
16229 |
#, php-format
|
16230 |
msgid ""
|
16231 |
"Adds compatibility with <a href=\"%s\" target=\"_blank\">WooCommerce Points "
|
16232 |
"and Rewards</a> plugin."
|
16233 |
msgstr ""
|
16234 |
|
16235 |
+
#: includes/settings/wcj-settings-price-by-country.php:261
|
16236 |
msgid "User IP Detection Method"
|
16237 |
msgstr ""
|
16238 |
|
16239 |
+
#: includes/settings/wcj-settings-price-by-country.php:271
|
16240 |
msgid "Price Format Method"
|
16241 |
msgstr ""
|
16242 |
|
16243 |
+
#: includes/settings/wcj-settings-price-by-country.php:272
|
16244 |
msgid "The moment \"Pretty Price\" and \"Rounding\" will be applied"
|
16245 |
msgstr ""
|
16246 |
|
16247 |
+
#: includes/settings/wcj-settings-price-by-country.php:277
|
16248 |
msgid "get_price()"
|
16249 |
msgstr ""
|
16250 |
|
16251 |
+
#: includes/settings/wcj-settings-price-by-country.php:278
|
16252 |
msgid "wc_get_price_to_display()"
|
16253 |
msgstr ""
|
16254 |
|
16255 |
+
#: includes/settings/wcj-settings-price-by-country.php:290
|
16256 |
msgid "Save Country Group ID"
|
16257 |
msgstr ""
|
16258 |
|
16259 |
+
#: includes/settings/wcj-settings-price-by-country.php:291
|
16260 |
msgid ""
|
16261 |
"Try to disable it if the country detection is not correct, most probably if "
|
16262 |
"\"Override Country Options\" is enabled."
|
16263 |
msgstr ""
|
16264 |
|
16265 |
+
#: includes/settings/wcj-settings-price-by-country.php:302
|
16266 |
msgid "Country Groups"
|
16267 |
msgstr ""
|
16268 |
|
16269 |
+
#: includes/settings/wcj-settings-price-by-country.php:307
|
16270 |
msgid "Countries Selection"
|
16271 |
msgstr ""
|
16272 |
|
16273 |
+
#: includes/settings/wcj-settings-price-by-country.php:308
|
16274 |
msgid "Choose how do you want to enter countries groups in admin."
|
16275 |
msgstr ""
|
16276 |
|
16277 |
+
#: includes/settings/wcj-settings-price-by-country.php:313
|
16278 |
msgid "Comma separated list"
|
16279 |
msgstr ""
|
16280 |
|
16281 |
+
#: includes/settings/wcj-settings-price-by-country.php:314
|
16282 |
msgid "Multiselect"
|
16283 |
msgstr ""
|
16284 |
|
16285 |
+
#: includes/settings/wcj-settings-price-by-country.php:315
|
16286 |
#: includes/settings/wcj-settings-product-by-condition.php:90
|
16287 |
#: includes/settings/wcj-settings-related-products.php:181
|
16288 |
msgid "Chosen select"
|
16289 |
msgstr ""
|
16290 |
|
16291 |
+
#: includes/settings/wcj-settings-price-by-country.php:319
|
16292 |
msgid "Autogenerate Groups"
|
16293 |
msgstr ""
|
16294 |
|
16295 |
+
#: includes/settings/wcj-settings-price-by-country.php:325
|
16296 |
msgid "Groups Number"
|
16297 |
msgstr ""
|
16298 |
|
16299 |
+
#: includes/settings/wcj-settings-price-by-country.php:354
|
16300 |
msgid ""
|
16301 |
"Countries. List of comma separated country codes.<br>For country codes and "
|
16302 |
"predefined sets visit <a href=\"https://booster.io/country-codes/\" target="
|
16303 |
"\"_blank\">https://booster.io/country-codes/</a>"
|
16304 |
msgstr ""
|
16305 |
|
16306 |
+
#: includes/settings/wcj-settings-price-by-country.php:449
|
16307 |
msgid "Multiply Price by"
|
16308 |
msgstr ""
|
16309 |
|
17169 |
|
17170 |
#: includes/settings/wcj-settings-product-by-condition.php:91
|
17171 |
#: includes/settings/wcj-settings-related-products.php:182
|
17172 |
+
#: includes/shortcodes/class-wcj-order-items-shortcodes.php:212
|
17173 |
msgid "Standard"
|
17174 |
msgstr ""
|
17175 |
|
18534 |
msgid "Template - Form"
|
18535 |
msgstr ""
|
18536 |
|
18537 |
+
#: includes/settings/wcj-settings-products-per-page.php:67
|
18538 |
+
#, php-format
|
18539 |
+
msgid ""
|
18540 |
+
"Products <strong>%1$s - %2$s</strong> from <strong>%3$s</strong>. Products on "
|
18541 |
+
"page %4$s"
|
18542 |
+
msgstr ""
|
18543 |
+
|
18544 |
#: includes/settings/wcj-settings-products-per-page.php:72
|
18545 |
msgid "Template - After Form"
|
18546 |
msgstr ""
|
20754 |
msgstr ""
|
20755 |
|
20756 |
#: includes/tools/class-wcj-order-statuses-tool.php:188
|
20757 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:282
|
20758 |
msgid "Icon Code"
|
20759 |
msgstr ""
|
20760 |
|
20761 |
#: includes/tools/class-wcj-order-statuses-tool.php:189
|
20762 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:283
|
20763 |
msgid "Color"
|
20764 |
msgstr ""
|
20765 |
|
20766 |
#: includes/tools/class-wcj-order-statuses-tool.php:190
|
20767 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:284
|
20768 |
msgid "Text Color"
|
20769 |
msgstr ""
|
20770 |
|
20771 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:215
|
20772 |
msgid "Get Booster Plus to enable."
|
20773 |
msgstr ""
|
20774 |
|
20775 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:274
|
20776 |
msgid "Edit custom status"
|
20777 |
msgstr ""
|
20778 |
|
20779 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:274
|
20780 |
msgid "Add new custom status"
|
20781 |
msgstr ""
|
20782 |
|
20783 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:280
|
20784 |
msgid "Slug (without <code>wc-</code> prefix)"
|
20785 |
msgstr ""
|
20786 |
|
20787 |
+
#: includes/tools/class-wcj-order-statuses-tool.php:363
|
20788 |
msgid "Delete All Custom Statuses"
|
20789 |
msgstr ""
|
20790 |
|
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: 6.0.
|
6 |
Requires PHP: 7.2
|
7 |
-
Stable tag: 5.6.
|
8 |
License: GNU General Public License v3.0
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -275,6 +275,23 @@ To unlock all Booster for WooCommerce features, please install additional paid B
|
|
275 |
|
276 |
== Changelog ==
|
277 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
278 |
= 5.6.6 28/09/2022 =
|
279 |
|
280 |
* FIXED - CART & CHECKOUT - Checkout Core Fields - Fixed checkout form design issues.
|
@@ -282,7 +299,7 @@ To unlock all Booster for WooCommerce features, please install additional paid B
|
|
282 |
* FIXED - BUTTON & PRICE LABELS - Custom Price Labels- Escape the HTML content from the "per page product meta box" value.
|
283 |
* FIXED - EMAILS & MISC. - Reports- Fixed date range filter on product sale report.
|
284 |
* FIXED - EMAILS & MISC. - Export - Fixed export order line break issue in this module.
|
285 |
-
FIXED - PHP Fatal error: Uncaught TypeError: Unsupported operand types: string in /includes/class-wcj-multicurrency.php...
|
286 |
* WooCommerce 6.9.4 tested
|
287 |
* WordPress 6.0.2 Tested
|
288 |
|
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: 6.0.3
|
6 |
Requires PHP: 7.2
|
7 |
+
Stable tag: 5.6.7
|
8 |
License: GNU General Public License v3.0
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
275 |
|
276 |
== Changelog ==
|
277 |
|
278 |
+
= 5.6.7 27/10/2022 =
|
279 |
+
|
280 |
+
* FIXED - PAYMENT GATEWAYS - Gateways Currency Converter - Fixed the issue of currency on the cart page.
|
281 |
+
* FIXED - CART & CHECKOUT - Checkout Files Upload - Fixed Security vulnerability for ShopManager + Arbitrary File Download.
|
282 |
+
* FIXED - CART & CHECKOUT - Checkout Files Upload - Fixed Security vulnerability for Checkout Files Deletion.
|
283 |
+
* FIXED - PRODUCTS - Product Input Fields - Fixed Security vulnerability for ShopManager + Arbitrary File Download.
|
284 |
+
* FIXED - PRODUCTS - Products per Page - Fixed "Template - Form" default text translators issue.
|
285 |
+
* FIXED - EMAILS & MISC. - Old Slugs - Fixed SQL error - syntax near 'WHERE meta_key = '_wp_old_slug'....
|
286 |
+
* FIXED - PRICES & CURRENCIES - Prices and Currencies by Country - Price conversion issue by user selection with country group
|
287 |
+
* FIXED - Added CSRF Token for each "Reset settings" button of the module.
|
288 |
+
* FIXED - Added Security vulnerability fixes - Multiple CSRF.
|
289 |
+
* FIXED - Added Security vulnerability fixes.
|
290 |
+
* FIXED - PDF INVOICING & PACKING SLIPS - PDF Invoicing - Fixed order item table issue while merging multiple invoice PDFs.
|
291 |
+
* FIXED - PHP Warning: A non-numeric value encountered in ...includes/functions/wcj-functions-price-currency.php on line 141
|
292 |
+
* WooCommerce 7.0.0 tested
|
293 |
+
* WordPress 6.0.3 Tested
|
294 |
+
|
295 |
= 5.6.6 28/09/2022 =
|
296 |
|
297 |
* FIXED - CART & CHECKOUT - Checkout Core Fields - Fixed checkout form design issues.
|
299 |
* FIXED - BUTTON & PRICE LABELS - Custom Price Labels- Escape the HTML content from the "per page product meta box" value.
|
300 |
* FIXED - EMAILS & MISC. - Reports- Fixed date range filter on product sale report.
|
301 |
* FIXED - EMAILS & MISC. - Export - Fixed export order line break issue in this module.
|
302 |
+
* FIXED - PHP Fatal error: Uncaught TypeError: Unsupported operand types: string in /includes/class-wcj-multicurrency.php...
|
303 |
* WooCommerce 6.9.4 tested
|
304 |
* WordPress 6.0.2 Tested
|
305 |
|
version-details.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
{
|
2 |
-
"0" : "= 5.6.
|
3 |
-
"1" : "* FIXED -
|
4 |
-
"2" : "* FIXED -
|
5 |
-
"3" : "* FIXED -
|
6 |
}
|
1 |
{
|
2 |
+
"0" : "= 5.6.7 27/10/2022 =",
|
3 |
+
"1" : "* FIXED - PAYMENT GATEWAYS - Gateways Currency Converter - Fixed the issue of currency on the cart page.",
|
4 |
+
"2" : "* FIXED - CART & CHECKOUT - Checkout Files Upload - Fixed Security vulnerability for ShopManager + Arbitrary File Download.",
|
5 |
+
"3" : "* FIXED - CART & CHECKOUT - Checkout Files Upload - Fixed Security vulnerability for Checkout Files Deletion."
|
6 |
}
|
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.6.
|
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:
|
13 |
* License: GNU General Public License v3.0
|
14 |
* php version 7.2
|
15 |
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
@@ -65,7 +65,7 @@ if ( ! class_exists( 'WC_Jetpack' ) ) :
|
|
65 |
* @var string
|
66 |
* @since 2.4.7
|
67 |
*/
|
68 |
-
public $version = '5.6.
|
69 |
|
70 |
/**
|
71 |
* 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.6.7
|
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: 7.0.0
|
13 |
* License: GNU General Public License v3.0
|
14 |
* php version 7.2
|
15 |
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
65 |
* @var string
|
66 |
* @since 2.4.7
|
67 |
*/
|
68 |
+
public $version = '5.6.7';
|
69 |
|
70 |
/**
|
71 |
* The single instance of the class
|