Version Description
- 18/03/2020 =
- Fix - Functions - General - Fix php warning if WPML isn't active and 'WPML: Get Terms in All Languages' is enabled.
- Fix - PRICES & CURRENCIES - Multicurrency Product Base Price - Remove "Third Party Price Filter Compatibility" option.
- Fix - PRICES & CURRENCIES - Multicurrency Product Base Price - Fix Compatibility with Price Filter widget.
- Fix - PRICES & CURRENCIES - Fix "WooCommerce Price Filter Compatibility" option.
- Fix - PRODUCTS - Product Availability by Date - Fix wrong availabilities by always creating the date with
DateTime::createFromFormat
. - Fix - PRODUCTS - Product Addons - Fix warning when exporting 'wcj_product_addons_per_productenable_by_variation_%' meta.
- Fix - PRODUCTS - Product Addons - Fix wrong 'wcj_product_addons_per_product_enable_byvariation_%' meta value after import.
- Fix - SHIPPING & ORDERS - Order Custom Statuses - Add compatibility with "Load Modules on Init Hook" option.
- Dev - CART & CHECKOUT - Checkout Custom Fields - Update fields on admin for subscription orders.
- Dev - EMAILS & MISC. - Admin Tools - Add 'Enable Interface By User Roles' option allowing to disable the whole Booster admin interface for not selected roles.
- Dev - EMAILS & MISC. - My Account - Add 'Endpoint' option to Custom Pages as a plus feature.
- Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Add 'Force Default Payment Gateway' option allowing to pre-set the default available payment gateway on cart and checkout pages.
- Dev - PRICES & CURRENCIES - Global Discount - Add 'Compatibility With Products Shortcode' option, allowing the on_sale attribute to work.
- Dev - PRICES & CURRENCIES - Prices and Currencies by Country - Add new compatibility option with native WooCommerce coupons.
- Dev - PRODUCTS - Product Addons - Add
%addon_title%
template variable on Each Addon from Cart Template. - Dev - SHIPPING & ORDERS - Order Custom Statuses - Add "Remove Status Prefix" option added.
- Dev - SHIPPING & ORDERS - Shipping Methods by Users - Add 'Multiple Role Checking' option for plus version.
- WC tested up to: 4.0
Download this release
Release Info
Developer | algoritmika |
Plugin | Booster for WooCommerce |
Version | 4.8.0 |
Comparing to | |
See all releases |
Code changes from version 4.7.1 to 4.8.0
- includes/admin/class-wcj-tools.php +15 -11
- includes/class-wcj-admin-tools.php +27 -1
- includes/class-wcj-checkout-custom-fields.php +5 -2
- includes/class-wcj-global-discount.php +225 -19
- includes/class-wcj-multicurrency-product-base-price.php +85 -69
- includes/class-wcj-my-account.php +449 -374
- includes/class-wcj-order-custom-statuses.php +38 -10
- includes/class-wcj-payment-gateways-fees.php +26 -5
- includes/class-wcj-price-by-country.php +34 -2
- includes/class-wcj-product-addons.php +11 -16
- includes/class-wcj-product-by-date.php +6 -9
- includes/class-wcj-shipping-by-user-role.php +17 -5
- includes/classes/class-wcj-module-shipping-by-condition.php +13 -1
- includes/core/class-wcj-admin.php +11 -8
- includes/functions/wcj-functions-general.php +10 -4
- includes/settings/wcj-settings-admin-tools.php +13 -2
- includes/settings/wcj-settings-global-discount.php +9 -1
- includes/settings/wcj-settings-multicurrency-base-price.php +1 -9
- includes/settings/wcj-settings-my-account.php +9 -1
- includes/settings/wcj-settings-order-custom-statuses.php +11 -1
- includes/settings/wcj-settings-payment-gateways-fees.php +21 -2
- includes/settings/wcj-settings-price-by-country.php +18 -1
- includes/settings/wcj-settings-product-addons.php +3 -3
- includes/settings/wcj-settings-shipping-by-condition.php +15 -1
- langs/woocommerce-jetpack.pot +306 -241
- readme.txt +22 -2
- woocommerce-jetpack.php +4 -4
includes/admin/class-wcj-tools.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce Tools
|
4 |
*
|
5 |
-
* @version
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -17,24 +17,28 @@ class WCJ_Tools {
|
|
17 |
*/
|
18 |
function __construct() {
|
19 |
if ( is_admin() ) {
|
20 |
-
|
|
|
|
|
21 |
}
|
22 |
}
|
23 |
|
24 |
/**
|
25 |
* add_wcj_tools.
|
26 |
*
|
27 |
-
* @version
|
28 |
*/
|
29 |
function add_wcj_tools() {
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
|
|
|
|
38 |
}
|
39 |
|
40 |
/**
|
2 |
/**
|
3 |
* Booster for WooCommerce Tools
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
17 |
*/
|
18 |
function __construct() {
|
19 |
if ( is_admin() ) {
|
20 |
+
if ( apply_filters( 'wcj_can_create_admin_interface', true ) ) {
|
21 |
+
add_action( 'admin_menu', array( $this, 'add_wcj_tools' ), 100 );
|
22 |
+
}
|
23 |
}
|
24 |
}
|
25 |
|
26 |
/**
|
27 |
* add_wcj_tools.
|
28 |
*
|
29 |
+
* @version 4.8.0
|
30 |
*/
|
31 |
function add_wcj_tools() {
|
32 |
+
if ( apply_filters( 'wcj_can_create_admin_interface', true ) ) {
|
33 |
+
add_submenu_page(
|
34 |
+
'woocommerce',
|
35 |
+
__( 'Booster for WooCommerce Tools', 'woocommerce-jetpack' ),
|
36 |
+
__( 'Booster Tools', 'woocommerce-jetpack' ),
|
37 |
+
( 'yes' === get_option( 'wcj_' . 'admin_tools' . '_enabled', 'no' ) && 'yes' === get_option( 'wcj_admin_tools_show_menus_to_admin_only', 'no' ) ? 'manage_options' : 'manage_woocommerce' ),
|
38 |
+
'wcj-tools',
|
39 |
+
array( $this, 'create_tools_page' )
|
40 |
+
);
|
41 |
+
}
|
42 |
}
|
43 |
|
44 |
/**
|
includes/class-wcj-admin-tools.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Admin Tools
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -63,9 +63,35 @@ class WCJ_Admin_Tools extends WCJ_Module {
|
|
63 |
if ( 0 != get_option( 'wcj_product_json_search_limit', 0 ) ) {
|
64 |
add_filter( 'woocommerce_json_search_limit', array( $this, 'set_json_search_limit' ) );
|
65 |
}
|
|
|
|
|
66 |
}
|
67 |
}
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
/**
|
70 |
* set_json_search_limit.
|
71 |
*
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Admin Tools
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
63 |
if ( 0 != get_option( 'wcj_product_json_search_limit', 0 ) ) {
|
64 |
add_filter( 'woocommerce_json_search_limit', array( $this, 'set_json_search_limit' ) );
|
65 |
}
|
66 |
+
// Enable interface by user role
|
67 |
+
add_filter( 'wcj_can_create_admin_interface', array( $this, 'enable_interface_by_user_roles' ) );
|
68 |
}
|
69 |
}
|
70 |
|
71 |
+
/**
|
72 |
+
* enable_interface_by_user_roles.
|
73 |
+
*
|
74 |
+
* @version 4.8.0
|
75 |
+
* @since 4.8.0
|
76 |
+
*
|
77 |
+
* @param $allowed
|
78 |
+
*
|
79 |
+
* @return bool
|
80 |
+
*/
|
81 |
+
function enable_interface_by_user_roles( $allowed ) {
|
82 |
+
if ( empty( $disabled_roles = get_option( 'wcj_admin_tools_enable_interface_by_role', array() ) ) ) {
|
83 |
+
return $allowed;
|
84 |
+
}
|
85 |
+
$current_user_roles = wcj_get_current_user_all_roles();
|
86 |
+
if (
|
87 |
+
! in_array( 'administrator', $current_user_roles ) &&
|
88 |
+
! array_intersect( $disabled_roles, $current_user_roles )
|
89 |
+
) {
|
90 |
+
$allowed = false;
|
91 |
+
}
|
92 |
+
return $allowed;
|
93 |
+
}
|
94 |
+
|
95 |
/**
|
96 |
* set_json_search_limit.
|
97 |
*
|
includes/class-wcj-checkout-custom-fields.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Custom Fields
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -15,7 +15,7 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
|
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
-
* @version 4.
|
19 |
* @todo (maybe) check if `'wcj_checkout_custom_field_customer_meta_fields_' . $i` option should affect `add_default_checkout_custom_fields`
|
20 |
*/
|
21 |
function __construct() {
|
@@ -53,6 +53,9 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
|
|
53 |
|
54 |
// Update checkout fields from admin edit order
|
55 |
add_action( 'save_post_shop_order', array( $this, 'update_custom_checkout_fields_order_meta' ) );
|
|
|
|
|
|
|
56 |
}
|
57 |
}
|
58 |
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Custom Fields
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
+
* @version 4.8.0
|
19 |
* @todo (maybe) check if `'wcj_checkout_custom_field_customer_meta_fields_' . $i` option should affect `add_default_checkout_custom_fields`
|
20 |
*/
|
21 |
function __construct() {
|
53 |
|
54 |
// Update checkout fields from admin edit order
|
55 |
add_action( 'save_post_shop_order', array( $this, 'update_custom_checkout_fields_order_meta' ) );
|
56 |
+
|
57 |
+
// Update checkout fields from admin on a subscription order
|
58 |
+
add_action( 'save_post_shop_subscription', array( $this, 'update_custom_checkout_fields_order_meta' ) );
|
59 |
}
|
60 |
}
|
61 |
|
includes/class-wcj-global-discount.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Global Discount
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.5.7
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -13,10 +13,12 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
13 |
|
14 |
class WCJ_Global_Discount extends WCJ_Module {
|
15 |
|
|
|
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version 4.
|
20 |
* @since 2.5.7
|
21 |
* @todo fee instead of discount
|
22 |
* @todo regular price coefficient
|
@@ -34,7 +36,195 @@ class WCJ_Global_Discount extends WCJ_Module {
|
|
34 |
if ( 'yes' === get_option( 'wcj_global_discount_enabled_in_admin', 'no' ) || wcj_is_frontend() ) {
|
35 |
wcj_add_change_price_hooks( $this, $this->price_hooks_priority, false );
|
36 |
}
|
|
|
|
|
|
|
37 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
}
|
39 |
|
40 |
/**
|
@@ -186,29 +376,45 @@ class WCJ_Global_Discount extends WCJ_Module {
|
|
186 |
return $price; // no changes
|
187 |
}
|
188 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
/**
|
190 |
* get_variation_prices_hash.
|
191 |
*
|
192 |
-
* @version
|
193 |
* @since 2.5.7
|
194 |
*/
|
195 |
function get_variation_prices_hash( $price_hash, $_product, $display ) {
|
196 |
-
$
|
197 |
-
$
|
198 |
-
$wcj_global_discount_price_hash['total_number'] = $total_number;
|
199 |
-
for ( $i = 1; $i <= $total_number; $i++ ) {
|
200 |
-
$wcj_global_discount_price_hash[ 'enabled_' . $i ] = get_option( 'wcj_global_discount_sale_enabled_' . $i, 'yes' );
|
201 |
-
$wcj_global_discount_price_hash[ 'type_' . $i ] = get_option( 'wcj_global_discount_sale_coefficient_type_' . $i, 'percent' );
|
202 |
-
$wcj_global_discount_price_hash[ 'value_' . $i ] = get_option( 'wcj_global_discount_sale_coefficient_' . $i, 0 );
|
203 |
-
$wcj_global_discount_price_hash[ 'scope_' . $i ] = get_option( 'wcj_global_discount_sale_product_scope_' . $i, 'all' );
|
204 |
-
$wcj_global_discount_price_hash[ 'cats_in_' . $i ] = get_option( 'wcj_global_discount_sale_categories_incl_' . $i, '' );
|
205 |
-
$wcj_global_discount_price_hash[ 'cats_ex_' . $i ] = get_option( 'wcj_global_discount_sale_categories_excl_' . $i, '' );
|
206 |
-
$wcj_global_discount_price_hash[ 'tags_in_' . $i ] = get_option( 'wcj_global_discount_sale_tags_incl_' . $i, '' );
|
207 |
-
$wcj_global_discount_price_hash[ 'tags_ex_' . $i ] = get_option( 'wcj_global_discount_sale_tags_excl_' . $i, '' );
|
208 |
-
$wcj_global_discount_price_hash[ 'products_in_' . $i ] = get_option( 'wcj_global_discount_sale_products_incl_' . $i, '' );
|
209 |
-
$wcj_global_discount_price_hash[ 'products_ex_' . $i ] = get_option( 'wcj_global_discount_sale_products_excl_' . $i, '' );
|
210 |
-
}
|
211 |
-
$price_hash['wcj_global_discount_price_hash'] = $wcj_global_discount_price_hash;
|
212 |
return $price_hash;
|
213 |
}
|
214 |
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Global Discount
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.5.7
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
13 |
|
14 |
class WCJ_Global_Discount extends WCJ_Module {
|
15 |
|
16 |
+
private $wcj_global_options = array();
|
17 |
+
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 4.8.0
|
22 |
* @since 2.5.7
|
23 |
* @todo fee instead of discount
|
24 |
* @todo regular price coefficient
|
36 |
if ( 'yes' === get_option( 'wcj_global_discount_enabled_in_admin', 'no' ) || wcj_is_frontend() ) {
|
37 |
wcj_add_change_price_hooks( $this, $this->price_hooks_priority, false );
|
38 |
}
|
39 |
+
|
40 |
+
add_action( 'admin_init', array( $this, 'regenerate_wcj_sale_products_in_cache' ) );
|
41 |
+
add_filter( 'woocommerce_shortcode_products_query', array( $this, 'add_wcj_sale_ids_to_products_shortcode' ), 10, 3 );
|
42 |
}
|
43 |
+
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* add_wcj_sale_ids_to_products_shortcode.
|
48 |
+
*
|
49 |
+
* @version 4.8.0
|
50 |
+
* @since 4.8.0
|
51 |
+
*
|
52 |
+
* @param $args
|
53 |
+
* @param $atts
|
54 |
+
* @param $type
|
55 |
+
*
|
56 |
+
* @return mixed
|
57 |
+
*/
|
58 |
+
function add_wcj_sale_ids_to_products_shortcode( $args, $atts, $type ) {
|
59 |
+
if (
|
60 |
+
'sale_products' != $type ||
|
61 |
+
'yes' != get_option( 'wcj_global_discount_products_shortcode_compatibility', 'no' )
|
62 |
+
) {
|
63 |
+
return $args;
|
64 |
+
}
|
65 |
+
|
66 |
+
$prev_post__in = isset( $args['post__in'] ) ? $args['post__in'] : array();
|
67 |
+
$args['post__in'] = array_merge( $prev_post__in, $this->get_wcj_sale_products() );
|
68 |
+
return $args;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* regenerate_wcj_sale_products_in_cache.
|
73 |
+
*
|
74 |
+
* @version 4.8.0
|
75 |
+
* @since 4.8.0
|
76 |
+
*/
|
77 |
+
function regenerate_wcj_sale_products_in_cache() {
|
78 |
+
if (
|
79 |
+
'yes' != get_option( 'wcj_global_discount_products_shortcode_compatibility', 'no' ) ||
|
80 |
+
! isset( $_REQUEST['page'] ) || 'wc-settings' !== $_REQUEST['page'] ||
|
81 |
+
! isset( $_REQUEST['tab'] ) || 'jetpack' !== $_REQUEST['tab'] ||
|
82 |
+
! isset( $_REQUEST['wcj-cat'] ) || 'prices_and_currencies' !== $_REQUEST['wcj-cat'] ||
|
83 |
+
! isset( $_REQUEST['section'] ) || 'global_discount' !== $_REQUEST['section'] ||
|
84 |
+
! isset( $_POST['save'] )
|
85 |
+
) {
|
86 |
+
return;
|
87 |
+
}
|
88 |
+
$this->clear_wcj_sale_products_from_cache();
|
89 |
+
$this->get_wcj_sale_products();
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* get_wcj_sale_products.
|
94 |
+
*
|
95 |
+
* @version 4.8.0
|
96 |
+
* @since 4.8.0
|
97 |
+
*
|
98 |
+
* @return array|mixed
|
99 |
+
*/
|
100 |
+
function get_wcj_sale_products() {
|
101 |
+
$transient_name = 'wcj_global_discount_sale_products';
|
102 |
+
$sale_products = get_transient( $transient_name );
|
103 |
+
if ( false === $sale_products ) {
|
104 |
+
$args = array(
|
105 |
+
'post_type' => 'product',
|
106 |
+
'posts_per_page' => - 1,
|
107 |
+
'fields' => 'ids',
|
108 |
+
);
|
109 |
+
$total_number = apply_filters( 'booster_option', 1, get_option( 'wcj_global_discount_groups_total_number', 1 ) );
|
110 |
+
for ( $i = 1; $i <= $total_number; $i ++ ) {
|
111 |
+
$enabled = get_option( 'wcj_global_discount_sale_enabled_' . $i, 'yes' );
|
112 |
+
if ( 'yes' !== $enabled ) {
|
113 |
+
continue;
|
114 |
+
}
|
115 |
+
|
116 |
+
// Categories
|
117 |
+
$include_cats = get_option( 'wcj_global_discount_sale_categories_incl_' . $i, array() );
|
118 |
+
$exclude_cats = get_option( 'wcj_global_discount_sale_categories_excl_' . $i, array() );
|
119 |
+
$cats = array();
|
120 |
+
if ( ! empty( $include_cats ) || ! empty( $exclude_cats ) ) {
|
121 |
+
$cats = array(
|
122 |
+
'relation' => 'AND',
|
123 |
+
);
|
124 |
+
if ( ! empty( $include_cats ) ) {
|
125 |
+
$cats[] = array(
|
126 |
+
'taxonomy' => 'product_cat',
|
127 |
+
'field' => 'term_id',
|
128 |
+
'include_children' => false,
|
129 |
+
'terms' => $include_cats
|
130 |
+
);
|
131 |
+
}
|
132 |
+
if ( ! empty( $exclude_cats ) ) {
|
133 |
+
$cats[] = array(
|
134 |
+
'taxonomy' => 'product_cat',
|
135 |
+
'field' => 'term_id',
|
136 |
+
'include_children' => false,
|
137 |
+
'terms' => $exclude_cats,
|
138 |
+
'operator' => 'NOT IN'
|
139 |
+
);
|
140 |
+
}
|
141 |
+
}
|
142 |
+
|
143 |
+
// Tags
|
144 |
+
$include_tags = get_option( 'wcj_global_discount_sale_tags_incl_' . $i, array() );
|
145 |
+
$exclude_tags = get_option( 'wcj_global_discount_sale_tags_excl_' . $i, array() );
|
146 |
+
$tags = array();
|
147 |
+
if ( ! empty( $include_tags ) || ! empty( $exclude_tags ) ) {
|
148 |
+
$tags = array(
|
149 |
+
'relation' => 'AND',
|
150 |
+
);
|
151 |
+
if ( ! empty( $include_tags ) ) {
|
152 |
+
$tags[] = array(
|
153 |
+
'taxonomy' => 'product_tag',
|
154 |
+
'field' => 'term_id',
|
155 |
+
'terms' => $include_tags
|
156 |
+
);
|
157 |
+
}
|
158 |
+
if ( ! empty( $exclude_tags ) ) {
|
159 |
+
$tags[] = array(
|
160 |
+
'taxonomy' => 'product_tag',
|
161 |
+
'field' => 'term_id',
|
162 |
+
'terms' => $exclude_tags,
|
163 |
+
'operator' => 'NOT IN'
|
164 |
+
);
|
165 |
+
}
|
166 |
+
}
|
167 |
+
|
168 |
+
// Tax Query
|
169 |
+
if ( ! empty( $cats ) || ! empty( $tags ) ) {
|
170 |
+
$args['tax_query'] = array(
|
171 |
+
'relation' => 'AND'
|
172 |
+
);
|
173 |
+
if ( ! empty( $cats ) ) {
|
174 |
+
$args['tax_query'][] = $cats;
|
175 |
+
}
|
176 |
+
if ( ! empty( $tags ) ) {
|
177 |
+
$args['tax_query'][] = $tags;
|
178 |
+
}
|
179 |
+
}
|
180 |
+
|
181 |
+
// Products
|
182 |
+
$products_incl = get_option( 'wcj_global_discount_sale_products_incl_' . $i, array() );
|
183 |
+
$products_excl = get_option( 'wcj_global_discount_sale_products_excl_' . $i, array() );
|
184 |
+
if ( ! empty( $products_incl ) || ! empty( $products_excl ) ) {
|
185 |
+
if ( ! empty( $products_incl ) ) {
|
186 |
+
$args['post__in'] = $products_incl;
|
187 |
+
}
|
188 |
+
if ( ! empty( $products_excl ) ) {
|
189 |
+
$args['post__not_in'] = $products_excl;
|
190 |
+
}
|
191 |
+
}
|
192 |
+
|
193 |
+
// Scope
|
194 |
+
$scope = get_option( 'wcj_global_discount_sale_product_scope_' . $i, 'all' );
|
195 |
+
if ( 'all' != $scope ) {
|
196 |
+
$wc_sale_products = wc_get_product_ids_on_sale();
|
197 |
+
if ( 'only_on_sale' == $scope ) {
|
198 |
+
$args['post__in'] = $wc_sale_products;
|
199 |
+
if ( empty( $wc_sale_products ) ) {
|
200 |
+
$args['post_type'] = 'do_not_search';
|
201 |
+
}
|
202 |
+
} elseif ( 'only_not_on_sale' == $scope ) {
|
203 |
+
$args['post__not_in'] = $wc_sale_products;
|
204 |
+
}
|
205 |
+
}
|
206 |
+
|
207 |
+
$query = new WP_Query( $args );
|
208 |
+
$sale_products = array_unique( $query->posts );
|
209 |
+
$prev_group_sale_products = get_transient( $transient_name );
|
210 |
+
if ( false !== $prev_group_sale_products ) {
|
211 |
+
$sale_products = array_unique( array_merge( $prev_group_sale_products, $sale_products ) );
|
212 |
+
}
|
213 |
+
|
214 |
+
set_transient( $transient_name, $sale_products, YEAR_IN_SECONDS );
|
215 |
+
}
|
216 |
+
}
|
217 |
+
return $sale_products;
|
218 |
+
}
|
219 |
+
|
220 |
+
/**
|
221 |
+
* clear_wcj_sale_products_from_cache.
|
222 |
+
*
|
223 |
+
* @version 4.8.0
|
224 |
+
* @since 4.8.0
|
225 |
+
*/
|
226 |
+
function clear_wcj_sale_products_from_cache() {
|
227 |
+
delete_transient( 'wcj_global_discount_sale_products' );
|
228 |
}
|
229 |
|
230 |
/**
|
376 |
return $price; // no changes
|
377 |
}
|
378 |
|
379 |
+
/**
|
380 |
+
* get_global_discount_options.
|
381 |
+
*
|
382 |
+
* @version 4.8.0
|
383 |
+
* @since 4.8.0
|
384 |
+
*
|
385 |
+
* @return array
|
386 |
+
*/
|
387 |
+
function get_global_discount_options() {
|
388 |
+
$options = $this->wcj_global_options;
|
389 |
+
if ( empty( $options ) ) {
|
390 |
+
$total_number = apply_filters( 'booster_option', 1, get_option( 'wcj_global_discount_groups_total_number', 1 ) );
|
391 |
+
$options['total_number'] = $total_number;
|
392 |
+
for ( $i = 1; $i <= $total_number; $i ++ ) {
|
393 |
+
$options['enabled'][ $i ] = get_option( 'wcj_global_discount_sale_enabled_' . $i, 'yes' );
|
394 |
+
$options['type'][ $i ] = get_option( 'wcj_global_discount_sale_coefficient_type_' . $i, 'percent' );
|
395 |
+
$options['value'][ $i ] = get_option( 'wcj_global_discount_sale_coefficient_' . $i, 0 );
|
396 |
+
$options['scope'][ $i ] = get_option( 'wcj_global_discount_sale_product_scope_' . $i, 'all' );
|
397 |
+
$options['cats_in'][ $i ] = get_option( 'wcj_global_discount_sale_categories_incl_' . $i, array() );
|
398 |
+
$options['cats_ex'][ $i ] = get_option( 'wcj_global_discount_sale_categories_excl_' . $i, array() );
|
399 |
+
$options['tags_in'][ $i ] = get_option( 'wcj_global_discount_sale_tags_incl_' . $i, array() );
|
400 |
+
$options['tags_ex'][ $i ] = get_option( 'wcj_global_discount_sale_tags_excl_' . $i, array() );
|
401 |
+
$options['products_in'][ $i ] = get_option( 'wcj_global_discount_sale_products_incl_' . $i, array() );
|
402 |
+
$options['products_ex'][ $i ] = get_option( 'wcj_global_discount_sale_products_excl_' . $i, array() );
|
403 |
+
}
|
404 |
+
$this->wcj_global_options = $options;
|
405 |
+
}
|
406 |
+
return $options;
|
407 |
+
}
|
408 |
+
|
409 |
/**
|
410 |
* get_variation_prices_hash.
|
411 |
*
|
412 |
+
* @version 4.8.0
|
413 |
* @since 2.5.7
|
414 |
*/
|
415 |
function get_variation_prices_hash( $price_hash, $_product, $display ) {
|
416 |
+
$options = $this->get_global_discount_options();
|
417 |
+
$price_hash['wcj_global_discount_price_hash'] = $options;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
418 |
return $price_hash;
|
419 |
}
|
420 |
|
includes/class-wcj-multicurrency-product-base-price.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Multicurrency Product Base Price
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.4.8
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -48,47 +48,109 @@ if ( ! class_exists( 'WCJ_Multicurrency_Base_Price' ) ) :
|
|
48 |
/**
|
49 |
* Adds Compatibility with WooCommerce Price Filter Widget.
|
50 |
*
|
51 |
-
* @version 4.
|
52 |
* @since 4.3.1
|
53 |
*/
|
54 |
function handle_price_filter_widget_compatibility() {
|
55 |
add_action( 'updated_post_meta', array( $this, 'update_base_price_meta_on_price_update' ), 10, 3 );
|
56 |
add_action( 'updated_post_meta', array( $this, 'update_base_price_meta_on_base_price_currency_update' ), 10, 3 );
|
57 |
add_action( 'added_post_meta', array( $this, 'update_base_price_meta_on_base_price_currency_update' ), 10, 3 );
|
58 |
-
add_filter( 'woocommerce_product_query_meta_query', array( $this, 'add_base_price_on_product_meta_query' ) );
|
59 |
add_action( 'updated_option', array( $this, 'update_products_base_price_on_exchange_rate_change' ), 10, 3 );
|
60 |
add_action( 'updated_post_meta', array( $this, 'handle_price_filter_compatibility_flag_on_base_price_update' ), 10, 4 );
|
61 |
add_action( 'updated_post_meta', array( $this, 'handle_price_filter_compatibility_flag_on_base_price_currency_update' ), 10, 4 );
|
62 |
add_filter( 'woocommerce_price_filter_sql', array( $this, 'change_woocommerce_price_filter_sql' ) );
|
63 |
-
|
64 |
-
// Compatibility with third party price filters
|
65 |
-
if ( 'yes' === get_option( 'wcj_multicurrency_base_price_advanced_price_filter_comp_tp', 'no' ) ) {
|
66 |
-
add_filter( 'query', array( $this, 'change_third_party_price_filter_sql' ) );
|
67 |
-
add_filter( 'prdctfltr_meta_query', array( $this, 'add_base_price_on_product_meta_query' ) );
|
68 |
-
}
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
-
*
|
73 |
-
* This is only necessary due to some third party plugin not use the 'woocommerce_price_filter_sql' hook
|
74 |
*
|
75 |
-
* @version 4.
|
76 |
-
* @since
|
77 |
*
|
78 |
-
* @
|
79 |
-
* @param $sql
|
80 |
*
|
81 |
-
* @return
|
82 |
*/
|
83 |
-
|
84 |
if (
|
85 |
-
|
86 |
-
|
|
|
87 |
) {
|
88 |
-
return $
|
89 |
}
|
90 |
-
|
91 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
}
|
93 |
|
94 |
/**
|
@@ -96,7 +158,7 @@ if ( ! class_exists( 'WCJ_Multicurrency_Base_Price' ) ) :
|
|
96 |
*
|
97 |
* All in all, it creates the min and max from '_price' meta, and from '_wcj_multicurrency_base_price' if there is the '_wcj_multicurrency_base_price_comp_pf' meta
|
98 |
*
|
99 |
-
* @version 4.
|
100 |
* @since 4.3.1
|
101 |
*
|
102 |
* @see WC_Widget_Price_Filter::get_filtered_price()
|
@@ -108,7 +170,6 @@ if ( ! class_exists( 'WCJ_Multicurrency_Base_Price' ) ) :
|
|
108 |
if (
|
109 |
is_admin() ||
|
110 |
( ! is_shop() && ! is_product_taxonomy() ) ||
|
111 |
-
! wc()->query->get_main_query()->post_count ||
|
112 |
'no' === get_option( 'wcj_multicurrency_base_price_advanced_price_filter_comp', 'no' )
|
113 |
) {
|
114 |
return $sql;
|
@@ -194,51 +255,6 @@ if ( ! class_exists( 'WCJ_Multicurrency_Base_Price' ) ) :
|
|
194 |
$this->update_wcj_multicurrency_base_price_meta( $product );
|
195 |
}
|
196 |
|
197 |
-
/**
|
198 |
-
* Adds compatibility with price filter adding '_wcj_multicurrency_base_price' on product meta query.
|
199 |
-
* It only compares products with '_wcj_multicurrency_base_price_comp_pf' meta
|
200 |
-
*
|
201 |
-
* @version 4.7.1
|
202 |
-
* @since 4.3.1
|
203 |
-
*
|
204 |
-
* @param $query
|
205 |
-
*
|
206 |
-
* @return mixed
|
207 |
-
*/
|
208 |
-
function add_base_price_on_product_meta_query( $query ) {
|
209 |
-
if (
|
210 |
-
! isset( $query['price_filter'] ) || empty( $query['price_filter'] ) ||
|
211 |
-
'no' === get_option( 'wcj_multicurrency_base_price_advanced_price_filter_comp', 'no' )
|
212 |
-
) {
|
213 |
-
return $query;
|
214 |
-
}
|
215 |
-
wcj_remove_class_filter( 'posts_clauses', 'WC_Query', 'price_filter_post_clauses' );
|
216 |
-
$price_filter = $price_filter_wcj = $query['price_filter'];
|
217 |
-
$price_filter_wcj['key'] = '_wcj_multicurrency_base_price';
|
218 |
-
$price_filter_wcj['wcj_mcpb_price_filter'] = 1;
|
219 |
-
unset( $query['price_filter'] );
|
220 |
-
$query['price_filter'] = array(
|
221 |
-
'relation' => 'OR',
|
222 |
-
array(
|
223 |
-
'relation' => 'AND',
|
224 |
-
$price_filter,
|
225 |
-
array(
|
226 |
-
'key' => '_wcj_multicurrency_base_price_comp_pf',
|
227 |
-
'compare' => 'NOT EXISTS',
|
228 |
-
)
|
229 |
-
),
|
230 |
-
array(
|
231 |
-
'relation' => 'AND',
|
232 |
-
$price_filter_wcj,
|
233 |
-
array(
|
234 |
-
'key' => '_wcj_multicurrency_base_price_comp_pf',
|
235 |
-
'compare' => 'EXISTS',
|
236 |
-
)
|
237 |
-
)
|
238 |
-
);
|
239 |
-
return $query;
|
240 |
-
}
|
241 |
-
|
242 |
/**
|
243 |
* Updates '_wcj_multicurrency_base_price' meta on products by currency when exchange rate changes inside 'Multicurrency Product Base Price' module.
|
244 |
*
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Multicurrency Product Base Price
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.4.8
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
48 |
/**
|
49 |
* Adds Compatibility with WooCommerce Price Filter Widget.
|
50 |
*
|
51 |
+
* @version 4.8.0
|
52 |
* @since 4.3.1
|
53 |
*/
|
54 |
function handle_price_filter_widget_compatibility() {
|
55 |
add_action( 'updated_post_meta', array( $this, 'update_base_price_meta_on_price_update' ), 10, 3 );
|
56 |
add_action( 'updated_post_meta', array( $this, 'update_base_price_meta_on_base_price_currency_update' ), 10, 3 );
|
57 |
add_action( 'added_post_meta', array( $this, 'update_base_price_meta_on_base_price_currency_update' ), 10, 3 );
|
|
|
58 |
add_action( 'updated_option', array( $this, 'update_products_base_price_on_exchange_rate_change' ), 10, 3 );
|
59 |
add_action( 'updated_post_meta', array( $this, 'handle_price_filter_compatibility_flag_on_base_price_update' ), 10, 4 );
|
60 |
add_action( 'updated_post_meta', array( $this, 'handle_price_filter_compatibility_flag_on_base_price_currency_update' ), 10, 4 );
|
61 |
add_filter( 'woocommerce_price_filter_sql', array( $this, 'change_woocommerce_price_filter_sql' ) );
|
62 |
+
add_action( 'woocommerce_product_query', array( $this, 'modify_default_price_filter_hook' ), PHP_INT_MAX );
|
|
|
|
|
|
|
|
|
|
|
63 |
}
|
64 |
|
65 |
/**
|
66 |
+
* modify_default_price_filter_hook.
|
|
|
67 |
*
|
68 |
+
* @version 4.8.0
|
69 |
+
* @since 4.8.0
|
70 |
*
|
71 |
+
* @param $query
|
|
|
72 |
*
|
73 |
+
* @return mixed
|
74 |
*/
|
75 |
+
function modify_default_price_filter_hook( $query ) {
|
76 |
if (
|
77 |
+
'no' === get_option( 'wcj_multicurrency_base_price_advanced_price_filter_comp', 'no' ) ||
|
78 |
+
! isset( $_GET['min_price'] ) ||
|
79 |
+
! isset( $_GET['max_price'] )
|
80 |
) {
|
81 |
+
return $query;
|
82 |
}
|
83 |
+
|
84 |
+
// Remove Price Filter Meta Query
|
85 |
+
$meta_query = $query->get( 'meta_query' );
|
86 |
+
$meta_query = empty( $meta_query ) ? array() : $meta_query;
|
87 |
+
foreach ( $meta_query as $key => $value ) {
|
88 |
+
if ( is_array( $value ) ) {
|
89 |
+
if ( isset( $value['price_filter'] ) ) {
|
90 |
+
unset( $meta_query[ $key ]['price_filter'] );
|
91 |
+
}
|
92 |
+
}
|
93 |
+
}
|
94 |
+
$query->set( 'meta_query', $meta_query );
|
95 |
+
|
96 |
+
// Remove Price Filter Hooks
|
97 |
+
wcj_remove_class_filter( 'posts_clauses', 'WC_Query', 'price_filter_post_clauses' );
|
98 |
+
|
99 |
+
// Remove Price Filter hooks from "Product Filter for WooCommerce" plugin
|
100 |
+
if ( class_exists( 'XforWC_Product_Filters_Frontend' ) ) {
|
101 |
+
remove_filter( 'posts_clauses', 'XforWC_Product_Filters_Frontend::price_filter_post_clauses', 10, 2 );
|
102 |
+
}
|
103 |
+
|
104 |
+
// Add Price Filter Hook
|
105 |
+
add_filter( 'posts_clauses', array( $this, 'price_filter_post_clauses' ), 10, 2 );
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* price_filter_post_clauses.
|
110 |
+
*
|
111 |
+
* @version 4.8.0
|
112 |
+
* @since 4.8.0
|
113 |
+
*
|
114 |
+
* @see WC_Query::price_filter_post_clauses
|
115 |
+
*
|
116 |
+
* @param $args
|
117 |
+
* @param $wp_query
|
118 |
+
*
|
119 |
+
* @return mixed
|
120 |
+
*/
|
121 |
+
function price_filter_post_clauses( $args, $wp_query ) {
|
122 |
+
global $wpdb;
|
123 |
+
if ( ! $wp_query->is_main_query() || ( ! isset( $_GET['max_price'] ) && ! isset( $_GET['min_price'] ) ) ) {
|
124 |
+
return $args;
|
125 |
+
}
|
126 |
+
$current_min_price = isset( $_GET['min_price'] ) ? floatval( wp_unslash( $_GET['min_price'] ) ) : 0; // WPCS: input var ok, CSRF ok.
|
127 |
+
$current_max_price = isset( $_GET['max_price'] ) ? floatval( wp_unslash( $_GET['max_price'] ) ) : PHP_INT_MAX; // WPCS: input var ok, CSRF ok.
|
128 |
+
if ( wc_tax_enabled() && 'incl' === get_option( 'woocommerce_tax_display_shop' ) && ! wc_prices_include_tax() ) {
|
129 |
+
$tax_class = apply_filters( 'woocommerce_price_filter_widget_tax_class', '' ); // Uses standard tax class.
|
130 |
+
$tax_rates = WC_Tax::get_rates( $tax_class );
|
131 |
+
if ( $tax_rates ) {
|
132 |
+
$current_min_price -= WC_Tax::get_tax_total( WC_Tax::calc_inclusive_tax( $current_min_price, $tax_rates ) );
|
133 |
+
$current_max_price -= WC_Tax::get_tax_total( WC_Tax::calc_inclusive_tax( $current_max_price, $tax_rates ) );
|
134 |
+
}
|
135 |
+
}
|
136 |
+
$args['where'] .= $wpdb->prepare(
|
137 |
+
"
|
138 |
+
AND {$wpdb->posts}.ID IN (
|
139 |
+
SELECT p.ID
|
140 |
+
FROM {$wpdb->posts} as p
|
141 |
+
LEFT JOIN {$wpdb->postmeta} as pm ON p.ID = pm.post_id AND pm.meta_key = '_wcj_multicurrency_base_price'
|
142 |
+
LEFT JOIN {$wpdb->postmeta} as pm2 ON (pm2.post_id=p.ID) AND (pm2.meta_key = '_price')
|
143 |
+
WHERE p.post_type = 'product' AND p.post_status = 'publish'
|
144 |
+
AND ( (pm.meta_value <= %f AND pm.meta_value >= %f) OR (pm2.meta_value <= %f AND pm2.meta_value >= %f) )
|
145 |
+
GROUP BY p.ID
|
146 |
+
)
|
147 |
+
",
|
148 |
+
$current_max_price,
|
149 |
+
$current_min_price,
|
150 |
+
$current_max_price,
|
151 |
+
$current_min_price
|
152 |
+
);
|
153 |
+
return $args;
|
154 |
}
|
155 |
|
156 |
/**
|
158 |
*
|
159 |
* All in all, it creates the min and max from '_price' meta, and from '_wcj_multicurrency_base_price' if there is the '_wcj_multicurrency_base_price_comp_pf' meta
|
160 |
*
|
161 |
+
* @version 4.8.0
|
162 |
* @since 4.3.1
|
163 |
*
|
164 |
* @see WC_Widget_Price_Filter::get_filtered_price()
|
170 |
if (
|
171 |
is_admin() ||
|
172 |
( ! is_shop() && ! is_product_taxonomy() ) ||
|
|
|
173 |
'no' === get_option( 'wcj_multicurrency_base_price_advanced_price_filter_comp', 'no' )
|
174 |
) {
|
175 |
return $sql;
|
255 |
$this->update_wcj_multicurrency_base_price_meta( $product );
|
256 |
}
|
257 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
/**
|
259 |
* Updates '_wcj_multicurrency_base_price' meta on products by currency when exchange rate changes inside 'Multicurrency Product Base Price' module.
|
260 |
*
|
includes/class-wcj-my-account.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - My Account
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -11,446 +11,521 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
|
11 |
|
12 |
if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
13 |
|
14 |
-
class WCJ_My_Account extends WCJ_Module {
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
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 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
$total_number = apply_filters( 'booster_option', 1, get_option( 'wcj_my_account_custom_info_total_number', 1 ) );
|
67 |
-
for ( $i = 1; $i <= $total_number; $i++ ) {
|
68 |
-
add_action(
|
69 |
-
get_option( 'wcj_my_account_custom_info_hook_' . $i, 'woocommerce_account_dashboard' ),
|
70 |
-
array( $this, 'add_my_account_custom_info' ),
|
71 |
-
get_option( 'wcj_my_account_custom_info_priority_' . $i, 10 )
|
72 |
-
);
|
73 |
}
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
|
|
|
|
|
|
|
|
|
|
84 |
}
|
85 |
-
|
86 |
-
if ( 'yes' ===
|
87 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
}
|
89 |
}
|
90 |
-
|
91 |
-
|
92 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
}
|
94 |
}
|
95 |
-
}
|
96 |
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
|
|
|
|
|
|
|
|
|
|
107 |
}
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
|
|
|
|
|
|
|
|
|
|
114 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
}
|
116 |
-
return $this->custom_pages;
|
117 |
-
}
|
118 |
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
return $title;
|
133 |
}
|
134 |
-
if ( ! isset( $this->custom_pages ) ) {
|
135 |
-
$this->get_custom_pages();
|
136 |
-
}
|
137 |
-
$endpoint = $_GET['section'];
|
138 |
-
return ( isset( $this->custom_pages[ $endpoint ] ) ? $this->custom_pages[ $endpoint ]['title'] : $title );
|
139 |
|
140 |
-
|
141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
|
|
|
|
153 |
}
|
154 |
-
return ( isset( $this->custom_pages[ $endpoint ] ) && ( $myaccount_page_id = get_option( 'woocommerce_myaccount_page_id' ) ) ?
|
155 |
-
add_query_arg( 'section', $endpoint, get_permalink( $myaccount_page_id ) ) : $url );
|
156 |
-
}
|
157 |
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
|
|
|
|
|
|
167 |
}
|
168 |
-
return $items;
|
169 |
-
}
|
170 |
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
if ( 3 === count( $parts ) && $parts[0] === $endpoint ) {
|
182 |
-
return $parts[2];
|
183 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
}
|
185 |
-
return $url;
|
186 |
-
}
|
187 |
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
}
|
203 |
-
if (
|
204 |
-
|
|
|
|
|
205 |
return;
|
206 |
}
|
207 |
}
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
|
|
213 |
}
|
214 |
-
}
|
215 |
|
216 |
-
|
217 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
|
219 |
-
|
220 |
-
|
221 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
|
234 |
-
if ( 'no' === get_option( 'wcj_my_account_custom_dashboard_hide_info', 'no' ) ) {
|
235 |
-
echo '<p>';
|
236 |
-
printf(
|
237 |
-
__( 'From your account dashboard you can view your <a href="%1$s">recent orders</a>, manage your <a href="%2$s">shipping and billing addresses</a>, and <a href="%3$s">edit your password and account details</a>.', 'woocommerce' ),
|
238 |
-
esc_url( wc_get_endpoint_url( 'orders' ) ),
|
239 |
-
esc_url( wc_get_endpoint_url( 'edit-address' ) ),
|
240 |
-
esc_url( wc_get_endpoint_url( 'edit-account' ) )
|
241 |
-
);
|
242 |
-
echo '</p>';
|
243 |
}
|
244 |
|
245 |
/**
|
246 |
-
*
|
247 |
*
|
248 |
-
* @
|
|
|
|
|
|
|
|
|
|
|
249 |
*/
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
do_action( 'woocommerce_before_my_account' );
|
258 |
|
259 |
/**
|
260 |
-
*
|
261 |
*
|
262 |
-
* @
|
|
|
|
|
263 |
*/
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
*
|
271 |
-
* @version 3.8.0
|
272 |
-
* @since 3.8.0
|
273 |
-
* @todo (maybe) 'orders': `if ( ! empty( $wp->query_vars['orders'] ) ) { $title = sprintf( __( 'Orders (page %d)', 'woocommerce' ), intval( $wp->query_vars['orders'] ) ); }`
|
274 |
-
* @todo (maybe) 'view-order': `$title = ( $order = wc_get_order( $wp->query_vars['view-order'] ) ) ? sprintf( __( 'Order #%s', 'woocommerce' ), $order->get_order_number() ) : '';`
|
275 |
-
* @todo (maybe) 'order-pay' => __( 'Pay for order', 'woocommerce' )
|
276 |
-
* @todo (maybe) 'order-received' => __( 'Order received', 'woocommerce' )
|
277 |
-
*/
|
278 |
-
function customize_endpoint_title( $title, $endpoint ) {
|
279 |
-
$menu_titles = get_option( 'wcj_my_account_menu_title', array() );
|
280 |
-
if ( ! empty( $menu_titles[ $endpoint ] ) ) {
|
281 |
-
return $menu_titles[ $endpoint ];
|
282 |
-
}
|
283 |
-
return $title;
|
284 |
-
}
|
285 |
-
|
286 |
-
/**
|
287 |
-
* customize_menu.
|
288 |
-
*
|
289 |
-
* @version 3.8.0
|
290 |
-
* @since 3.8.0
|
291 |
-
* @todo (maybe) option to disable menu
|
292 |
-
*/
|
293 |
-
function customize_menu( $items ) {
|
294 |
-
$menu_titles = get_option( 'wcj_my_account_menu_title', array() );
|
295 |
-
foreach ( $items as $item_id => $item_title ) {
|
296 |
-
if ( ! empty( $menu_titles[ $item_id ] ) ) {
|
297 |
-
$items[ $item_id ] = $menu_titles[ $item_id ];
|
298 |
}
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
}
|
|
|
308 |
}
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
$items[ $parts[0] ] = $parts[1];
|
317 |
}
|
318 |
}
|
|
|
319 |
}
|
320 |
-
return $items;
|
321 |
-
}
|
322 |
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
<label for="reg_wcj_user_role"><?php esc_html_e( 'User role', 'woocommerce-jetpack' ); ?></label>
|
344 |
<select name="wcj_user_role" id="reg_wcj_user_role"><?php echo $user_roles_options_html; ?></select>
|
345 |
-
|
346 |
-
|
347 |
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
|
|
360 |
}
|
361 |
}
|
362 |
-
}
|
363 |
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
|
|
381 |
}
|
382 |
}
|
383 |
-
}
|
384 |
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
|
|
405 |
}
|
406 |
}
|
|
|
407 |
}
|
408 |
-
return $actions;
|
409 |
-
}
|
410 |
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
|
|
|
|
424 |
}
|
425 |
-
echo '</script>';
|
426 |
}
|
427 |
-
}
|
428 |
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
|
|
448 |
}
|
449 |
}
|
450 |
}
|
451 |
-
}
|
452 |
|
453 |
-
}
|
454 |
|
455 |
endif;
|
456 |
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - My Account
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
11 |
|
12 |
if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
13 |
|
14 |
+
class WCJ_My_Account extends WCJ_Module {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Constructor.
|
18 |
+
*
|
19 |
+
* @version 4.8.0
|
20 |
+
* @since 2.9.0
|
21 |
+
* @todo [dev] Custom Menu Pages: add "Type" option with values: "param" (i.e. as it is now) or "endpoint"
|
22 |
+
* @todo [dev] Custom Menu Pages: deprecate "Add Custom Menu Items" (and add "link" value in "Type" options)
|
23 |
+
*/
|
24 |
+
function __construct() {
|
25 |
+
|
26 |
+
$this->id = 'my_account';
|
27 |
+
$this->short_desc = __( 'My Account', 'woocommerce-jetpack' );
|
28 |
+
$this->desc = __( 'WooCommerce "My Account" page customization.', 'woocommerce-jetpack' );
|
29 |
+
$this->link_slug = 'woocommerce-my-account';
|
30 |
+
parent::__construct();
|
31 |
+
|
32 |
+
$this->account_menu_items = array(
|
33 |
+
'dashboard' => __( 'Dashboard', 'woocommerce' ),
|
34 |
+
'orders' => __( 'Orders', 'woocommerce' ),
|
35 |
+
'downloads' => __( 'Downloads', 'woocommerce' ),
|
36 |
+
'edit-address' => __( 'Addresses', 'woocommerce' ),
|
37 |
+
'payment-methods' => __( 'Payment methods', 'woocommerce' ),
|
38 |
+
'edit-account' => __( 'Account details', 'woocommerce' ),
|
39 |
+
'customer-logout' => __( 'Logout', 'woocommerce' ),
|
40 |
+
);
|
41 |
+
$this->account_menu_endpoints = array(
|
42 |
+
'orders' => __( 'Orders', 'woocommerce' ),
|
43 |
+
'view-order' => __( 'View order', 'woocommerce' ),
|
44 |
+
'downloads' => __( 'Downloads', 'woocommerce' ),
|
45 |
+
'edit-account' => __( 'Edit account', 'woocommerce' ) . ' (' . __( 'Account details', 'woocommerce' ) . ')',
|
46 |
+
'edit-address' => __( 'Addresses', 'woocommerce' ),
|
47 |
+
'payment-methods' => __( 'Payment methods', 'woocommerce' ),
|
48 |
+
'lost-password' => __( 'Lost password', 'woocommerce' ),
|
49 |
+
'customer-logout' => __( 'Logout', 'woocommerce' ),
|
50 |
+
);
|
51 |
+
$this->menu_order_default = implode( PHP_EOL, array_keys( $this->account_menu_items ) );
|
52 |
+
|
53 |
+
if ( $this->is_enabled() ) {
|
54 |
+
add_filter( 'woocommerce_my_account_my_orders_actions', array( $this, 'maybe_add_my_account_order_actions' ), 10, 2 );
|
55 |
+
add_action( 'wp_footer', array( $this, 'maybe_add_js_conformation' ) );
|
56 |
+
add_action( 'init', array( $this, 'process_woocommerce_mark_order_status' ) );
|
57 |
+
// Custom pages
|
58 |
+
if ( 'yes' === get_option( 'wcj_my_account_custom_pages_enabled', 'no' ) ) {
|
59 |
+
add_action( 'woocommerce_account_' . 'page' . '_endpoint', array( $this, 'customize_dashboard' ), PHP_INT_MAX );
|
60 |
+
add_filter( 'the_title', array( $this, 'set_custom_page_title' ), PHP_INT_MAX );
|
61 |
+
add_filter( 'the_title', array( $this, 'set_custom_page_title_with_endpoint' ) );
|
62 |
+
add_filter( 'woocommerce_account_menu_items', array( $this, 'add_custom_page_menu_item' ), PHP_INT_MAX );
|
63 |
+
add_filter( 'woocommerce_get_endpoint_url', array( $this, 'set_custom_page_url' ), PHP_INT_MAX, 4 );
|
64 |
+
add_action( 'init', array( $this, 'add_endpoints' ) );
|
65 |
+
$this->customize_dashboard_for_endpoints();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
}
|
67 |
+
// Custom info
|
68 |
+
if ( 'yes' === get_option( 'wcj_my_account_custom_info_enabled', 'no' ) ) {
|
69 |
+
$total_number = apply_filters( 'booster_option', 1, get_option( 'wcj_my_account_custom_info_total_number', 1 ) );
|
70 |
+
for ( $i = 1; $i <= $total_number; $i++ ) {
|
71 |
+
add_action(
|
72 |
+
get_option( 'wcj_my_account_custom_info_hook_' . $i, 'woocommerce_account_dashboard' ),
|
73 |
+
array( $this, 'add_my_account_custom_info' ),
|
74 |
+
get_option( 'wcj_my_account_custom_info_priority_' . $i, 10 )
|
75 |
+
);
|
76 |
+
}
|
77 |
+
}
|
78 |
+
// Registration extra fields
|
79 |
+
if ( 'yes' === get_option( 'wcj_my_account_registration_extra_fields_user_role_enabled', 'no' ) ) {
|
80 |
+
add_action( 'woocommerce_register_form', array( $this, 'add_registration_extra_fields' ), PHP_INT_MAX );
|
81 |
+
add_action( 'woocommerce_created_customer', array( $this, 'process_registration_extra_fields' ), PHP_INT_MAX, 3 );
|
82 |
}
|
83 |
+
// Menu & Endpoints
|
84 |
+
if ( 'yes' === get_option( 'wcj_my_account_menu_customize_enabled', 'no' ) ) {
|
85 |
+
foreach ( $this->account_menu_endpoints as $account_menu_endpoint_id => $account_menu_endpoint_title ) {
|
86 |
+
add_filter( 'woocommerce_endpoint_' . $account_menu_endpoint_id . '_title', array( $this, 'customize_endpoint_title' ), PHP_INT_MAX, 2 );
|
87 |
+
}
|
88 |
+
add_filter( 'woocommerce_account_menu_items', array( $this, 'customize_menu' ), PHP_INT_MAX );
|
89 |
+
if ( 'yes' === apply_filters( 'booster_option', 'no', get_option( 'wcj_my_account_menu_order_custom_items_enabled', 'no' ) ) ) {
|
90 |
+
add_filter( 'woocommerce_get_endpoint_url', array( $this, 'customize_menu_custom_endpoints' ), PHP_INT_MAX, 4 );
|
91 |
+
}
|
92 |
+
}
|
93 |
+
// Dashboard customization
|
94 |
+
if ( 'yes' === get_option( 'wcj_my_account_custom_dashboard_enabled', 'no' ) ) {
|
95 |
+
add_action( 'woocommerce_account_' . 'page' . '_endpoint', array( $this, 'customize_dashboard' ), PHP_INT_MAX );
|
96 |
}
|
97 |
}
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* customize_dashboard_for_endpoints.
|
102 |
+
*
|
103 |
+
* @version 4.8.0
|
104 |
+
* @since 4.8.0
|
105 |
+
*/
|
106 |
+
function customize_dashboard_for_endpoints() {
|
107 |
+
foreach ( $this->get_custom_pages() as $custom_menu_page_id => $custom_menu_page_data ) {
|
108 |
+
if ( empty( $endpoint = $custom_menu_page_data['endpoint'] ) ) {
|
109 |
+
continue;
|
110 |
+
}
|
111 |
+
add_action( 'woocommerce_account_' . $endpoint . '_endpoint', array( $this, 'customize_dashboard' ), PHP_INT_MAX );
|
112 |
}
|
113 |
}
|
|
|
114 |
|
115 |
+
/**
|
116 |
+
* Register new endpoint to use inside My Account page.
|
117 |
+
*
|
118 |
+
* @version 4.8.0
|
119 |
+
* @since 4.8.0
|
120 |
+
*
|
121 |
+
* @see https://developer.wordpress.org/reference/functions/add_rewrite_endpoint/
|
122 |
+
*/
|
123 |
+
public function add_endpoints() {
|
124 |
+
foreach ( $this->get_custom_pages() as $custom_menu_page_id => $custom_menu_page_data ) {
|
125 |
+
if ( empty( $endpoint = $custom_menu_page_data['endpoint'] ) ) {
|
126 |
+
continue;
|
127 |
+
}
|
128 |
+
add_rewrite_endpoint( $endpoint, EP_ROOT | EP_PAGES );
|
129 |
+
}
|
130 |
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* get_custom_pages.
|
134 |
+
*
|
135 |
+
* @version 4.8.0
|
136 |
+
* @since 4.3.0
|
137 |
+
* @todo [dev] customizable ID (i.e. instead of `sanitize_title( $title[ $i ] )`)
|
138 |
+
*/
|
139 |
+
function get_custom_pages() {
|
140 |
+
if ( isset( $this->custom_pages ) ) {
|
141 |
+
return $this->custom_pages;
|
142 |
}
|
143 |
+
$this->custom_pages = array();
|
144 |
+
$title = get_option( 'wcj_my_account_custom_pages_title', array() );
|
145 |
+
$content = get_option( 'wcj_my_account_custom_pages_content', array() );
|
146 |
+
$endpoint = get_option( 'wcj_my_account_custom_pages_endpoint', array() );
|
147 |
+
for ( $i = 1; $i <= apply_filters( 'booster_option', 1, get_option( 'wcj_my_account_custom_pages_total_number', 1 ) ); $i ++ ) {
|
148 |
+
if ( ! empty( $title[ $i ] ) && ! empty( $content[ $i ] ) ) {
|
149 |
+
$endpoint[ $i ] = isset( $endpoint[ $i ] ) ? $endpoint[ $i ] : '';
|
150 |
+
$this->custom_pages[ sanitize_title( $title[ $i ] ) ] = array( 'endpoint' => $endpoint[ $i ], 'title' => $title[ $i ], 'content' => $content[ $i ] );
|
151 |
+
}
|
152 |
+
}
|
153 |
+
return $this->custom_pages;
|
154 |
}
|
|
|
|
|
155 |
|
156 |
+
/**
|
157 |
+
* set_custom_page_title.
|
158 |
+
*
|
159 |
+
* @version 4.5.0
|
160 |
+
* @since 4.3.0
|
161 |
+
*/
|
162 |
+
function set_custom_page_title( $title ) {
|
163 |
+
if (
|
164 |
+
! isset( $_GET['section'] ) ||
|
165 |
+
is_admin() ||
|
166 |
+
! in_the_loop() ||
|
167 |
+
! is_account_page()
|
168 |
+
) {
|
169 |
+
return $title;
|
170 |
+
}
|
171 |
+
if ( ! isset( $this->custom_pages ) ) {
|
172 |
+
$this->get_custom_pages();
|
173 |
+
}
|
174 |
+
$endpoint = $_GET['section'];
|
175 |
+
return ( isset( $this->custom_pages[ $endpoint ] ) ? $this->custom_pages[ $endpoint ]['title'] : $title );
|
176 |
+
|
177 |
return $title;
|
178 |
}
|
|
|
|
|
|
|
|
|
|
|
179 |
|
180 |
+
/**
|
181 |
+
* Set endpoint title.
|
182 |
+
*
|
183 |
+
* @version 4.8.0
|
184 |
+
* @since 4.8.0
|
185 |
+
*
|
186 |
+
* @param string $title
|
187 |
+
* @return string
|
188 |
+
*/
|
189 |
+
public function set_custom_page_title_with_endpoint( $title ) {
|
190 |
+
if (
|
191 |
+
is_admin() ||
|
192 |
+
! is_account_page() ||
|
193 |
+
! in_the_loop()
|
194 |
+
) {
|
195 |
+
return $title;
|
196 |
+
}
|
197 |
+
global $wp_query;
|
198 |
|
199 |
+
if ( ! isset( $this->custom_pages ) ) {
|
200 |
+
$this->get_custom_pages();
|
201 |
+
}
|
202 |
+
$endpoints = wp_list_pluck( $this->custom_pages, 'endpoint' );
|
203 |
+
$intersect = array_intersect_key( $wp_query->query_vars, array_flip( array_filter( $endpoints ) ) );
|
204 |
+
if ( ! empty( $intersect ) ) {
|
205 |
+
reset( $intersect );
|
206 |
+
$filter = wp_list_filter( $this->custom_pages, array( 'endpoint' => key( $intersect ) ) );
|
207 |
+
reset( $filter );
|
208 |
+
$title = ( isset( $this->custom_pages[ key( $filter ) ] ) ? $this->custom_pages[ key( $filter ) ]['title'] : $title );
|
209 |
+
}
|
210 |
+
return $title;
|
211 |
}
|
|
|
|
|
|
|
212 |
|
213 |
+
/**
|
214 |
+
* set_custom_page_url.
|
215 |
+
*
|
216 |
+
* @version 4.8.0
|
217 |
+
* @since 4.3.0
|
218 |
+
* @todo [dev] (maybe) customizable `section` (e.g. `wcj-section`)
|
219 |
+
*/
|
220 |
+
function set_custom_page_url( $url, $endpoint, $value, $permalink ) {
|
221 |
+
if ( ! isset( $this->custom_pages ) ) {
|
222 |
+
$this->get_custom_pages();
|
223 |
+
}
|
224 |
+
return ( isset( $this->custom_pages[ $endpoint ] ) && empty( $this->custom_pages[ $endpoint ]['endpoint'] ) && ( $myaccount_page_id = get_option( 'woocommerce_myaccount_page_id' ) ) ? add_query_arg( 'section', $endpoint, get_permalink( $myaccount_page_id ) ) : $url );
|
225 |
}
|
|
|
|
|
226 |
|
227 |
+
/**
|
228 |
+
* add_custom_page_menu_item.
|
229 |
+
*
|
230 |
+
* @version 4.8.0
|
231 |
+
* @since 4.3.0
|
232 |
+
*/
|
233 |
+
function add_custom_page_menu_item( $items ) {
|
234 |
+
foreach ( $this->get_custom_pages() as $custom_menu_page_id => $custom_menu_page_data ) {
|
235 |
+
$custom_menu_page_id = ! empty( $custom_menu_page_data['endpoint'] ) ? $custom_menu_page_data['endpoint'] : $custom_menu_page_id;
|
236 |
+
$items[ $custom_menu_page_id ] = $custom_menu_page_data['title'];
|
|
|
|
|
237 |
}
|
238 |
+
return $items;
|
239 |
+
}
|
240 |
+
|
241 |
+
/**
|
242 |
+
* customize_menu_custom_endpoints.
|
243 |
+
*
|
244 |
+
* @version 3.8.0
|
245 |
+
* @since 3.8.0
|
246 |
+
*/
|
247 |
+
function customize_menu_custom_endpoints( $url, $endpoint, $value, $permalink ) {
|
248 |
+
$custom_items = array_map( 'trim', explode( PHP_EOL, get_option( 'wcj_my_account_menu_order_custom_items', '' ) ) );
|
249 |
+
foreach ( $custom_items as $custom_item ) {
|
250 |
+
$parts = array_map( 'trim', explode( '|', $custom_item, 3 ) );
|
251 |
+
if ( 3 === count( $parts ) && $parts[0] === $endpoint ) {
|
252 |
+
return $parts[2];
|
253 |
+
}
|
254 |
+
}
|
255 |
+
return $url;
|
256 |
}
|
|
|
|
|
257 |
|
258 |
+
/**
|
259 |
+
* customize_dashboard.
|
260 |
+
*
|
261 |
+
* @version 4.8.0
|
262 |
+
* @since 3.8.0
|
263 |
+
* @see woocommerce/templates/myaccount/dashboard.php
|
264 |
+
*/
|
265 |
+
function customize_dashboard( $value ) {
|
266 |
+
|
267 |
+
// Custom pages
|
268 |
+
if ( 'yes' === get_option( 'wcj_my_account_custom_pages_enabled', 'no' ) ) {
|
269 |
+
if ( isset( $_GET['section'] ) || 'woocommerce_account_page_endpoint' != current_filter() ) {
|
270 |
+
if ( ! isset( $this->custom_pages ) ) {
|
271 |
+
$this->get_custom_pages();
|
272 |
+
}
|
273 |
+
$endpoint = 'woocommerce_account_page_endpoint' != current_filter() ? str_replace( array( 'woocommerce_account_', '_endpoint' ), array( '' ), current_filter() ) : false;
|
274 |
+
if ( false !== $endpoint ) {
|
275 |
+
$endpoint_tab = wp_list_filter( $this->custom_pages, array( 'endpoint' => $endpoint ) );
|
276 |
+
}
|
277 |
+
$page_id = isset( $_GET['section'] ) ? $_GET['section'] : ( false !== $endpoint ? array_keys( wp_list_pluck( $endpoint_tab, 'endpoint' ) )[0] : '' );
|
278 |
+
if ( isset( $this->custom_pages[ $page_id ] ) ) {
|
279 |
+
echo do_shortcode( $this->custom_pages[ $page_id ]['content'] );
|
280 |
+
return;
|
281 |
+
}
|
282 |
}
|
283 |
+
if ( 'no' === get_option( 'wcj_my_account_custom_dashboard_enabled', 'no' ) ) {
|
284 |
+
wc_get_template( 'myaccount/dashboard.php', array(
|
285 |
+
'current_user' => get_user_by( 'id', get_current_user_id() ),
|
286 |
+
) );
|
287 |
return;
|
288 |
}
|
289 |
}
|
290 |
+
|
291 |
+
// Dashboard customization
|
292 |
+
$current_user = get_user_by( 'id', get_current_user_id() );
|
293 |
+
|
294 |
+
if ( '' != ( $custom_content = get_option( 'wcj_my_account_custom_dashboard_content', '' ) ) ) {
|
295 |
+
echo do_shortcode( $custom_content );
|
296 |
}
|
|
|
297 |
|
298 |
+
if ( 'no' === get_option( 'wcj_my_account_custom_dashboard_hide_hello', 'no' ) ) {
|
299 |
+
echo '<p>';
|
300 |
+
/* translators: 1: user display name 2: logout url */
|
301 |
+
printf(
|
302 |
+
__( 'Hello %1$s (not %1$s? <a href="%2$s">Log out</a>)', 'woocommerce' ),
|
303 |
+
'<strong>' . esc_html( $current_user->display_name ) . '</strong>',
|
304 |
+
esc_url( wc_logout_url( wc_get_page_permalink( 'myaccount' ) ) )
|
305 |
+
);
|
306 |
+
echo '</p>';
|
307 |
+
}
|
308 |
|
309 |
+
if ( 'no' === get_option( 'wcj_my_account_custom_dashboard_hide_info', 'no' ) ) {
|
310 |
+
echo '<p>';
|
311 |
+
printf(
|
312 |
+
__( 'From your account dashboard you can view your <a href="%1$s">recent orders</a>, manage your <a href="%2$s">shipping and billing addresses</a>, and <a href="%3$s">edit your password and account details</a>.', 'woocommerce' ),
|
313 |
+
esc_url( wc_get_endpoint_url( 'orders' ) ),
|
314 |
+
esc_url( wc_get_endpoint_url( 'edit-address' ) ),
|
315 |
+
esc_url( wc_get_endpoint_url( 'edit-account' ) )
|
316 |
+
);
|
317 |
+
echo '</p>';
|
318 |
+
}
|
319 |
|
320 |
+
/**
|
321 |
+
* My Account dashboard.
|
322 |
+
*
|
323 |
+
* @since 2.6.0
|
324 |
+
*/
|
325 |
+
do_action( 'woocommerce_account_dashboard' );
|
326 |
+
|
327 |
+
/**
|
328 |
+
* Deprecated woocommerce_before_my_account action.
|
329 |
+
*
|
330 |
+
* @deprecated 2.6.0
|
331 |
+
*/
|
332 |
+
do_action( 'woocommerce_before_my_account' );
|
333 |
+
|
334 |
+
/**
|
335 |
+
* Deprecated woocommerce_after_my_account action.
|
336 |
+
*
|
337 |
+
* @deprecated 2.6.0
|
338 |
+
*/
|
339 |
+
do_action( 'woocommerce_after_my_account' );
|
340 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
341 |
}
|
342 |
|
343 |
/**
|
344 |
+
* customize_endpoint_title.
|
345 |
*
|
346 |
+
* @version 3.8.0
|
347 |
+
* @since 3.8.0
|
348 |
+
* @todo (maybe) 'orders': `if ( ! empty( $wp->query_vars['orders'] ) ) { $title = sprintf( __( 'Orders (page %d)', 'woocommerce' ), intval( $wp->query_vars['orders'] ) ); }`
|
349 |
+
* @todo (maybe) 'view-order': `$title = ( $order = wc_get_order( $wp->query_vars['view-order'] ) ) ? sprintf( __( 'Order #%s', 'woocommerce' ), $order->get_order_number() ) : '';`
|
350 |
+
* @todo (maybe) 'order-pay' => __( 'Pay for order', 'woocommerce' )
|
351 |
+
* @todo (maybe) 'order-received' => __( 'Order received', 'woocommerce' )
|
352 |
*/
|
353 |
+
function customize_endpoint_title( $title, $endpoint ) {
|
354 |
+
$menu_titles = get_option( 'wcj_my_account_menu_title', array() );
|
355 |
+
if ( ! empty( $menu_titles[ $endpoint ] ) ) {
|
356 |
+
return $menu_titles[ $endpoint ];
|
357 |
+
}
|
358 |
+
return $title;
|
359 |
+
}
|
|
|
360 |
|
361 |
/**
|
362 |
+
* customize_menu.
|
363 |
*
|
364 |
+
* @version 3.8.0
|
365 |
+
* @since 3.8.0
|
366 |
+
* @todo (maybe) option to disable menu
|
367 |
*/
|
368 |
+
function customize_menu( $items ) {
|
369 |
+
$menu_titles = get_option( 'wcj_my_account_menu_title', array() );
|
370 |
+
foreach ( $items as $item_id => $item_title ) {
|
371 |
+
if ( ! empty( $menu_titles[ $item_id ] ) ) {
|
372 |
+
$items[ $item_id ] = $menu_titles[ $item_id ];
|
373 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
374 |
}
|
375 |
+
if ( 'yes' === apply_filters( 'booster_option', 'no', get_option( 'wcj_my_account_menu_order_customize_enabled', 'no' ) ) ) {
|
376 |
+
$menu_order = array_map( 'trim', explode( PHP_EOL, get_option( 'wcj_my_account_menu_order', $this->menu_order_default ) ) );
|
377 |
+
$modified_menu = array();
|
378 |
+
foreach ( $menu_order as $item_id ) {
|
379 |
+
if ( isset( $items[ $item_id ] ) ) {
|
380 |
+
$modified_menu[ $item_id ] = $items[ $item_id ];
|
381 |
+
unset( $items[ $item_id ] );
|
382 |
+
}
|
383 |
}
|
384 |
+
$items = array_merge( $modified_menu, $items );
|
385 |
}
|
386 |
+
if ( 'yes' === apply_filters( 'booster_option', 'no', get_option( 'wcj_my_account_menu_order_custom_items_enabled', 'no' ) ) ) {
|
387 |
+
$custom_items = array_map( 'trim', explode( PHP_EOL, get_option( 'wcj_my_account_menu_order_custom_items', '' ) ) );
|
388 |
+
foreach ( $custom_items as $custom_item ) {
|
389 |
+
$parts = array_map( 'trim', explode( '|', $custom_item, 3 ) );
|
390 |
+
if ( 3 === count( $parts ) ) {
|
391 |
+
$items[ $parts[0] ] = $parts[1];
|
392 |
+
}
|
|
|
393 |
}
|
394 |
}
|
395 |
+
return $items;
|
396 |
}
|
|
|
|
|
397 |
|
398 |
+
/**
|
399 |
+
* add_registration_extra_fields.
|
400 |
+
*
|
401 |
+
* @version 3.6.0
|
402 |
+
* @since 3.6.0
|
403 |
+
* @todo (maybe) more fields to choose from (i.e. not only "user role" field)
|
404 |
+
* @todo (maybe) customizable position (check for other hooks or at least customizable priority on `woocommerce_register_form`)
|
405 |
+
* @todo (maybe) move to new module (e.g. "Registration Form")
|
406 |
+
*/
|
407 |
+
function add_registration_extra_fields() {
|
408 |
+
$user_roles_options_html = '';
|
409 |
+
$current_user_role_input = ! empty( $_POST['wcj_user_role'] ) ? $_POST['wcj_user_role'] :
|
410 |
+
get_option( 'wcj_my_account_registration_extra_fields_user_role_default', 'customer' );
|
411 |
+
$user_roles_options = get_option( 'wcj_my_account_registration_extra_fields_user_role_options', array( 'customer' ) );
|
412 |
+
$all_user_roles = wcj_get_user_roles_options();
|
413 |
+
foreach ( $user_roles_options as $user_role_id ) {
|
414 |
+
$user_roles_options_html .= '<option value="' . $user_role_id . '" ' . selected( $user_role_id, $current_user_role_input, false ) . '>' .
|
415 |
+
( isset( $all_user_roles[ $user_role_id ] ) ? $all_user_roles[ $user_role_id ] : $user_role_id ) . '</option>';
|
416 |
+
}
|
417 |
+
?><p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
|
418 |
<label for="reg_wcj_user_role"><?php esc_html_e( 'User role', 'woocommerce-jetpack' ); ?></label>
|
419 |
<select name="wcj_user_role" id="reg_wcj_user_role"><?php echo $user_roles_options_html; ?></select>
|
420 |
+
</p><?php
|
421 |
+
}
|
422 |
|
423 |
+
/**
|
424 |
+
* process_registration_extra_fields.
|
425 |
+
*
|
426 |
+
* @version 3.6.0
|
427 |
+
* @since 3.6.0
|
428 |
+
* @todo (maybe) optional admin confirmation for some user roles (probably will need to create additional `...-pending` user roles)
|
429 |
+
*/
|
430 |
+
function process_registration_extra_fields( $customer_id, $new_customer_data, $password_generated ) {
|
431 |
+
if ( isset( $_POST['wcj_user_role'] ) && '' != $_POST['wcj_user_role'] ) {
|
432 |
+
$user_roles_options = get_option( 'wcj_my_account_registration_extra_fields_user_role_options', array( 'customer' ) );
|
433 |
+
if ( ! empty( $user_roles_options ) && in_array( $_POST['wcj_user_role'], $user_roles_options ) ) {
|
434 |
+
wp_update_user( array( 'ID' => $customer_id, 'role' => $_POST['wcj_user_role'] ) );
|
435 |
+
}
|
436 |
}
|
437 |
}
|
|
|
438 |
|
439 |
+
/**
|
440 |
+
* add_my_account_custom_info.
|
441 |
+
*
|
442 |
+
* @version 3.4.0
|
443 |
+
* @since 3.4.0
|
444 |
+
*/
|
445 |
+
function add_my_account_custom_info() {
|
446 |
+
$current_filter = current_filter();
|
447 |
+
$current_filter_priority = wcj_current_filter_priority();
|
448 |
+
$total_number = apply_filters( 'booster_option', 1, get_option( 'wcj_my_account_custom_info_total_number', 1 ) );
|
449 |
+
for ( $i = 1; $i <= $total_number; $i++ ) {
|
450 |
+
if (
|
451 |
+
'' != get_option( 'wcj_my_account_custom_info_content_' . $i ) &&
|
452 |
+
$current_filter === get_option( 'wcj_my_account_custom_info_hook_' . $i, 'woocommerce_account_dashboard' ) &&
|
453 |
+
$current_filter_priority == get_option( 'wcj_my_account_custom_info_priority_' . $i, 10 )
|
454 |
+
) {
|
455 |
+
echo do_shortcode( get_option( 'wcj_my_account_custom_info_content_' . $i ) );
|
456 |
+
}
|
457 |
}
|
458 |
}
|
|
|
459 |
|
460 |
+
/*
|
461 |
+
* maybe_add_my_account_order_actions.
|
462 |
+
*
|
463 |
+
* @version 2.9.0
|
464 |
+
* @since 2.9.0
|
465 |
+
* @see http://snippet.fm/snippets/add-order-complete-action-to-woocommerce-my-orders-customer-table/
|
466 |
+
*/
|
467 |
+
function maybe_add_my_account_order_actions( $actions, $order ) {
|
468 |
+
$statuses_to_add = get_option( 'wcj_my_account_add_order_status_actions', '' );
|
469 |
+
if ( ! empty( $statuses_to_add ) ) {
|
470 |
+
$all_statuses = wcj_get_order_statuses();
|
471 |
+
foreach ( $statuses_to_add as $status_to_add ) {
|
472 |
+
if ( $status_to_add != $order->get_status() ) {
|
473 |
+
$actions[ 'wcj_mark_' . $status_to_add . '_by_customer' ] = array(
|
474 |
+
'url' => wp_nonce_url( add_query_arg( array(
|
475 |
+
'wcj_action' => 'wcj_woocommerce_mark_order_status',
|
476 |
+
'status' => $status_to_add,
|
477 |
+
'order_id' => $order->get_id() ) ), 'wcj-woocommerce-mark-order-status' ),
|
478 |
+
'name' => $all_statuses[ $status_to_add ],
|
479 |
+
);
|
480 |
+
}
|
481 |
}
|
482 |
}
|
483 |
+
return $actions;
|
484 |
}
|
|
|
|
|
485 |
|
486 |
+
/*
|
487 |
+
* maybe_add_js_conformation.
|
488 |
+
*
|
489 |
+
* @version 2.9.0
|
490 |
+
* @since 2.9.0
|
491 |
+
*/
|
492 |
+
function maybe_add_js_conformation() {
|
493 |
+
$statuses_to_add = get_option( 'wcj_my_account_add_order_status_actions', '' );
|
494 |
+
if ( ! empty( $statuses_to_add ) ) {
|
495 |
+
echo '<script>';
|
496 |
+
foreach ( $statuses_to_add as $status_to_add ) {
|
497 |
+
echo 'jQuery("a.wcj_mark_' . $status_to_add . '_by_customer").each( function() { jQuery(this).attr("onclick", "return confirm(\'' .
|
498 |
+
__( 'Are you sure?', 'woocommerce-jetpack' ) . '\')") } );';
|
499 |
+
}
|
500 |
+
echo '</script>';
|
501 |
}
|
|
|
502 |
}
|
|
|
503 |
|
504 |
+
/*
|
505 |
+
* process_woocommerce_mark_order_status.
|
506 |
+
*
|
507 |
+
* @version 2.9.0
|
508 |
+
* @since 2.9.0
|
509 |
+
*/
|
510 |
+
function process_woocommerce_mark_order_status() {
|
511 |
+
if (
|
512 |
+
isset( $_GET['wcj_action'] ) && 'wcj_woocommerce_mark_order_status' === $_GET['wcj_action'] &&
|
513 |
+
isset( $_GET['status'] ) &&
|
514 |
+
isset( $_GET['order_id'] ) &&
|
515 |
+
isset( $_GET['_wpnonce'] )
|
516 |
+
) {
|
517 |
+
if ( wp_verify_nonce( $_GET['_wpnonce'], 'wcj-woocommerce-mark-order-status' ) ) {
|
518 |
+
$_order = wc_get_order( $_GET['order_id'] );
|
519 |
+
if ( $_order->get_customer_id() === get_current_user_id() ) {
|
520 |
+
$_order->update_status( $_GET['status'] );
|
521 |
+
wp_safe_redirect( remove_query_arg( array( 'wcj_action', 'status', 'order_id', '_wpnonce' ) ) );
|
522 |
+
exit;
|
523 |
+
}
|
524 |
}
|
525 |
}
|
526 |
}
|
|
|
527 |
|
528 |
+
}
|
529 |
|
530 |
endif;
|
531 |
|
includes/class-wcj-order-custom-statuses.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Order Custom Statuses
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,7 +16,7 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version 4.
|
20 |
* @todo [feature] add options to change icon and icon's color for all statuses (i.e. not only custom)
|
21 |
* @todo [dev] maybe rename module to "Custom Order Statuses"
|
22 |
*/
|
@@ -38,8 +38,12 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
38 |
if ( $this->is_enabled() ) {
|
39 |
|
40 |
// Core
|
41 |
-
add_filter( 'wc_order_statuses',
|
42 |
-
|
|
|
|
|
|
|
|
|
43 |
|
44 |
// CSS
|
45 |
add_action( 'admin_head', array( $this, 'hook_statuses_icons_css' ) );
|
@@ -101,7 +105,7 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
101 |
} else {
|
102 |
if ( $cut_prefix ) {
|
103 |
$orders_custom_statuses_no_prefix = array();
|
104 |
-
foreach( $orders_custom_statuses as $status => $status_name ) {
|
105 |
$orders_custom_statuses_no_prefix[ substr( $status, 3 ) ] = $status_name;
|
106 |
}
|
107 |
return $orders_custom_statuses_no_prefix;
|
@@ -309,11 +313,11 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
309 |
/**
|
310 |
* register_custom_post_statuses.
|
311 |
*
|
312 |
-
* @version
|
313 |
*/
|
314 |
function register_custom_post_statuses() {
|
315 |
-
$custom_statuses = $this->get_custom_order_statuses();
|
316 |
-
foreach ( $custom_statuses as $slug => $label )
|
317 |
register_post_status( $slug, array(
|
318 |
'label' => $label,
|
319 |
'public' => true,
|
@@ -322,15 +326,39 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
322 |
'show_in_admin_status_list' => true,
|
323 |
'label_count' => _n_noop( $label . ' <span class="count">(%s)</span>', $label . ' <span class="count">(%s)</span>' ),
|
324 |
) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
325 |
}
|
326 |
|
327 |
/**
|
328 |
* add_custom_statuses_to_filter.
|
329 |
*
|
330 |
-
* @version
|
|
|
|
|
331 |
*/
|
332 |
function add_custom_statuses_to_filter( $order_statuses ) {
|
333 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
334 |
}
|
335 |
|
336 |
/**
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Order Custom Statuses
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 4.8.0
|
20 |
* @todo [feature] add options to change icon and icon's color for all statuses (i.e. not only custom)
|
21 |
* @todo [dev] maybe rename module to "Custom Order Statuses"
|
22 |
*/
|
38 |
if ( $this->is_enabled() ) {
|
39 |
|
40 |
// Core
|
41 |
+
add_filter( 'wc_order_statuses', array( $this, 'add_custom_statuses_to_filter' ), PHP_INT_MAX );
|
42 |
+
if ( 'no' === get_option( 'wcj_load_modules_on_init', 'no' ) ) {
|
43 |
+
add_action( 'init', array( $this, 'register_custom_post_statuses' ) );
|
44 |
+
} else {
|
45 |
+
$this->register_custom_post_statuses();
|
46 |
+
}
|
47 |
|
48 |
// CSS
|
49 |
add_action( 'admin_head', array( $this, 'hook_statuses_icons_css' ) );
|
105 |
} else {
|
106 |
if ( $cut_prefix ) {
|
107 |
$orders_custom_statuses_no_prefix = array();
|
108 |
+
foreach ( $orders_custom_statuses as $status => $status_name ) {
|
109 |
$orders_custom_statuses_no_prefix[ substr( $status, 3 ) ] = $status_name;
|
110 |
}
|
111 |
return $orders_custom_statuses_no_prefix;
|
313 |
/**
|
314 |
* register_custom_post_statuses.
|
315 |
*
|
316 |
+
* @version 4.8.0
|
317 |
*/
|
318 |
function register_custom_post_statuses() {
|
319 |
+
$custom_statuses = $this->get_custom_order_statuses( $this->cut_prefix() );
|
320 |
+
foreach ( $custom_statuses as $slug => $label ) {
|
321 |
register_post_status( $slug, array(
|
322 |
'label' => $label,
|
323 |
'public' => true,
|
326 |
'show_in_admin_status_list' => true,
|
327 |
'label_count' => _n_noop( $label . ' <span class="count">(%s)</span>', $label . ' <span class="count">(%s)</span>' ),
|
328 |
) );
|
329 |
+
}
|
330 |
+
}
|
331 |
+
|
332 |
+
/**
|
333 |
+
* cut_prefix.
|
334 |
+
*
|
335 |
+
* @version 4.8.0
|
336 |
+
* @since 4.8.0
|
337 |
+
*
|
338 |
+
* @return mixed
|
339 |
+
*/
|
340 |
+
function cut_prefix() {
|
341 |
+
return filter_var( get_option( 'wcj_orders_custom_statuses_remove_prefix', 'no' ), FILTER_VALIDATE_BOOLEAN );
|
342 |
}
|
343 |
|
344 |
/**
|
345 |
* add_custom_statuses_to_filter.
|
346 |
*
|
347 |
+
* @version 4.8.0
|
348 |
+
*
|
349 |
+
* @todo Check if there is a way to output the Status Label and not its slug when using the option "Remove Status Prefix", because `wc_get_order_status_name()` has issues when there is no prefix.
|
350 |
*/
|
351 |
function add_custom_statuses_to_filter( $order_statuses ) {
|
352 |
+
if (
|
353 |
+
function_exists('get_current_screen') &&
|
354 |
+
! empty( $screen = get_current_screen() ) &&
|
355 |
+
'edit-shop_order' === $screen->id
|
356 |
+
) {
|
357 |
+
$custom_order_statuses = $this->get_custom_order_statuses( $this->cut_prefix() );
|
358 |
+
} else {
|
359 |
+
$custom_order_statuses = $this->get_custom_order_statuses();
|
360 |
+
}
|
361 |
+
return array_merge( ( '' == $order_statuses ? array() : $order_statuses ), $custom_order_statuses );
|
362 |
}
|
363 |
|
364 |
/**
|
includes/class-wcj-payment-gateways-fees.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Gateways Fees and Discounts
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.2.2
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -129,20 +129,41 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
129 |
/**
|
130 |
* get_current_gateway.
|
131 |
*
|
132 |
-
* @version
|
133 |
* @since 3.3.0
|
134 |
*/
|
135 |
function get_current_gateway() {
|
|
|
|
|
136 |
if ( isset( $_GET['wc-api'] ) && 'WC_Gateway_PayPal_Express_AngellEYE' === $_GET['wc-api'] ) {
|
137 |
-
|
138 |
} elseif (
|
139 |
( isset( $_GET['wc-ajax'] ) && 'wc_ppec_generate_cart' === $_GET['wc-ajax'] ) ||
|
140 |
( isset( $_GET['startcheckout'] ) && 'true' === $_GET['startcheckout'] )
|
141 |
) {
|
142 |
-
|
143 |
} else {
|
144 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
}
|
|
|
146 |
}
|
147 |
|
148 |
/**
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Gateways Fees and Discounts
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.2.2
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
129 |
/**
|
130 |
* get_current_gateway.
|
131 |
*
|
132 |
+
* @version 4.8.0
|
133 |
* @since 3.3.0
|
134 |
*/
|
135 |
function get_current_gateway() {
|
136 |
+
$gateway = '';
|
137 |
+
|
138 |
if ( isset( $_GET['wc-api'] ) && 'WC_Gateway_PayPal_Express_AngellEYE' === $_GET['wc-api'] ) {
|
139 |
+
$gateway = 'paypal_express'; // PayPal for WooCommerce (By Angell EYE)
|
140 |
} elseif (
|
141 |
( isset( $_GET['wc-ajax'] ) && 'wc_ppec_generate_cart' === $_GET['wc-ajax'] ) ||
|
142 |
( isset( $_GET['startcheckout'] ) && 'true' === $_GET['startcheckout'] )
|
143 |
) {
|
144 |
+
$gateway = 'ppec_paypal'; // WooCommerce PayPal Express Checkout Payment Gateway (By WooCommerce)
|
145 |
} else {
|
146 |
+
$gateway = WC()->session->get( 'chosen_payment_method' );
|
147 |
+
}
|
148 |
+
|
149 |
+
// Pre-sets the default available payment gateway on cart and checkout pages.
|
150 |
+
if (
|
151 |
+
empty( $gateway ) &&
|
152 |
+
'yes' === get_option( 'wcj_gateways_fees_force_default_payment_gateway', 'no' ) &&
|
153 |
+
( is_checkout() || is_cart() )
|
154 |
+
) {
|
155 |
+
$gateways = WC()->payment_gateways->get_available_payment_gateways();
|
156 |
+
if ( $gateways ) {
|
157 |
+
foreach ( $gateways as $gateway ) {
|
158 |
+
if ( 'yes' === $gateway->enabled ) {
|
159 |
+
WC()->session->set( 'chosen_payment_method', $gateway->id );
|
160 |
+
$gateway = WC()->session->get( 'chosen_payment_method' );
|
161 |
+
break;
|
162 |
+
}
|
163 |
+
}
|
164 |
+
}
|
165 |
}
|
166 |
+
return $gateway;
|
167 |
}
|
168 |
|
169 |
/**
|
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 4.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -22,7 +22,7 @@ class WCJ_Price_By_Country extends WCJ_Module {
|
|
22 |
/**
|
23 |
* Constructor.
|
24 |
*
|
25 |
-
* @version 4.
|
26 |
*/
|
27 |
function __construct() {
|
28 |
|
@@ -74,6 +74,9 @@ class WCJ_Price_By_Country extends WCJ_Module {
|
|
74 |
add_action( 'woocommerce_ajax_save_product_variations', array( $this, 'update_products_price_by_country_product_saved_ajax' ), PHP_INT_MAX, 1 );
|
75 |
}
|
76 |
}
|
|
|
|
|
|
|
77 |
}
|
78 |
|
79 |
// Price Filter Widget
|
@@ -86,6 +89,35 @@ class WCJ_Price_By_Country extends WCJ_Module {
|
|
86 |
}
|
87 |
}
|
88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
/**
|
90 |
* recalculate_price_filter_products_prices.
|
91 |
*
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Prices and Currencies by Country
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
22 |
/**
|
23 |
* Constructor.
|
24 |
*
|
25 |
+
* @version 4.8.0
|
26 |
*/
|
27 |
function __construct() {
|
28 |
|
74 |
add_action( 'woocommerce_ajax_save_product_variations', array( $this, 'update_products_price_by_country_product_saved_ajax' ), PHP_INT_MAX, 1 );
|
75 |
}
|
76 |
}
|
77 |
+
|
78 |
+
// Coupons Compatibility
|
79 |
+
add_filter( 'woocommerce_coupon_get_discount_amount', array( $this, 'fix_wc_coupon_currency' ), 10, 5 );
|
80 |
}
|
81 |
|
82 |
// Price Filter Widget
|
89 |
}
|
90 |
}
|
91 |
|
92 |
+
/**
|
93 |
+
* fix_wc_coupon_currency.
|
94 |
+
*
|
95 |
+
* @version 4.8.0
|
96 |
+
* @since 4.8.0
|
97 |
+
*
|
98 |
+
* @param $amount
|
99 |
+
* @param $discount
|
100 |
+
* @param $cart_item
|
101 |
+
* @param $single
|
102 |
+
* @param $wc_coupon
|
103 |
+
*
|
104 |
+
* @return float|int
|
105 |
+
*/
|
106 |
+
function fix_wc_coupon_currency( $amount, $discount, $cart_item, $single, $wc_coupon ) {
|
107 |
+
if (
|
108 |
+
'yes' !== get_option( 'wcj_price_by_country_compatibility_wc_coupons', 'no' ) ||
|
109 |
+
'fixed_cart' !== $wc_coupon->get_discount_type()
|
110 |
+
) {
|
111 |
+
return $amount;
|
112 |
+
}
|
113 |
+
|
114 |
+
if ( ! empty( $this->core ) ) {
|
115 |
+
$amount = $this->core->change_price( $amount, null );
|
116 |
+
}
|
117 |
+
|
118 |
+
return $amount;
|
119 |
+
}
|
120 |
+
|
121 |
/**
|
122 |
* recalculate_price_filter_products_prices.
|
123 |
*
|
includes/class-wcj-product-addons.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Addons
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.5.3
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo admin order view (names)
|
@@ -101,7 +101,7 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
101 |
/**
|
102 |
* import_enable_by_variation_meta.
|
103 |
*
|
104 |
-
* @version 4.
|
105 |
* @since 4.7.0
|
106 |
*
|
107 |
* @param $data
|
@@ -117,17 +117,12 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
117 |
) {
|
118 |
return $data;
|
119 |
}
|
120 |
-
$meta_data_key = - 1;
|
121 |
foreach ( $data['meta_data'] as $key => $meta_data ) {
|
122 |
if ( false !== strpos( $meta_data['key'], '_wcj_product_addons_per_product_enable_by_variation_' ) ) {
|
123 |
-
$
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
if ( - 1 != $meta_data_key ) {
|
128 |
-
$new_value = array_filter( preg_split( "/\r\n|\n|\r/", $data['meta_data'][ $meta_data_key ]['value'] ) );
|
129 |
-
if ( ! empty( $new_value ) ) {
|
130 |
-
$data['meta_data'][ $meta_data_key ]['value'] = $new_value;
|
131 |
}
|
132 |
}
|
133 |
return $data;
|
@@ -136,7 +131,7 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
136 |
/**
|
137 |
* export_enable_by_variation_meta.
|
138 |
*
|
139 |
-
* @version 4.
|
140 |
* @since 4.7.0
|
141 |
*
|
142 |
* @param $value
|
@@ -153,7 +148,7 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
153 |
) {
|
154 |
return $value;
|
155 |
}
|
156 |
-
$value = implode( "\n", $value );
|
157 |
return $value;
|
158 |
}
|
159 |
|
@@ -557,7 +552,7 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
557 |
/**
|
558 |
* Adds info to order details (and emails).
|
559 |
*
|
560 |
-
* @version
|
561 |
* @since 2.5.3
|
562 |
*/
|
563 |
function add_info_to_order_item_name( $name, $item, $is_cart = false ) {
|
@@ -577,8 +572,8 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
577 |
if ( isset( $item[ $addon['price_key'] ] ) ) {
|
578 |
$addon_price = ( $is_cart ) ? $this->maybe_convert_currency( $item[ $addon['price_key'] ], $_product ) : $item[ $addon['price_key'] ];
|
579 |
$addons_info .= str_replace(
|
580 |
-
array( '%addon_label%', '%addon_price%' ),
|
581 |
-
array( $item[ $addon['label_key'] ], wc_price( wcj_get_product_display_price( $_product, $addon_price ) ) ),
|
582 |
$item_format
|
583 |
);
|
584 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Addons
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.5.3
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo admin order view (names)
|
101 |
/**
|
102 |
* import_enable_by_variation_meta.
|
103 |
*
|
104 |
+
* @version 4.8.0
|
105 |
* @since 4.7.0
|
106 |
*
|
107 |
* @param $data
|
117 |
) {
|
118 |
return $data;
|
119 |
}
|
|
|
120 |
foreach ( $data['meta_data'] as $key => $meta_data ) {
|
121 |
if ( false !== strpos( $meta_data['key'], '_wcj_product_addons_per_product_enable_by_variation_' ) ) {
|
122 |
+
$new_value = array_filter( preg_split( "/\n|\r\n?/", $data['meta_data'][ $key ]['value'] ) );
|
123 |
+
if ( ! empty( $new_value ) ) {
|
124 |
+
$data['meta_data'][ $key ]['value'] = $new_value;
|
125 |
+
}
|
|
|
|
|
|
|
|
|
126 |
}
|
127 |
}
|
128 |
return $data;
|
131 |
/**
|
132 |
* export_enable_by_variation_meta.
|
133 |
*
|
134 |
+
* @version 4.8.0
|
135 |
* @since 4.7.0
|
136 |
*
|
137 |
* @param $value
|
148 |
) {
|
149 |
return $value;
|
150 |
}
|
151 |
+
$value = implode( "\n", (array) $value );
|
152 |
return $value;
|
153 |
}
|
154 |
|
552 |
/**
|
553 |
* Adds info to order details (and emails).
|
554 |
*
|
555 |
+
* @version 4.8.0
|
556 |
* @since 2.5.3
|
557 |
*/
|
558 |
function add_info_to_order_item_name( $name, $item, $is_cart = false ) {
|
572 |
if ( isset( $item[ $addon['price_key'] ] ) ) {
|
573 |
$addon_price = ( $is_cart ) ? $this->maybe_convert_currency( $item[ $addon['price_key'] ], $_product ) : $item[ $addon['price_key'] ];
|
574 |
$addons_info .= str_replace(
|
575 |
+
array( '%addon_label%', '%addon_price%', '%addon_title%' ),
|
576 |
+
array( $item[ $addon['label_key'] ], wc_price( wcj_get_product_display_price( $_product, $addon_price ) ), $addon['title'] ),
|
577 |
$item_format
|
578 |
);
|
579 |
}
|
includes/class-wcj-product-by-date.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Availability by Date
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.9.1
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -147,21 +147,18 @@ class WCJ_Product_By_Date extends WCJ_Module {
|
|
147 |
/**
|
148 |
* check_is_purchasable_by_date.
|
149 |
*
|
150 |
-
* @version 4.
|
151 |
* @since 2.9.1
|
152 |
* @todo validate `wcj_product_by_date_` option before checking (or even better earlier, when option is saved by admin)
|
153 |
*/
|
154 |
function check_is_purchasable_by_date( $purchasable, $_product ) {
|
155 |
if ( $purchasable ) {
|
156 |
if ( false !== ( $direct_date = $this->maybe_get_direct_date( wcj_get_product_id_or_variation_parent_id( $_product ) ) ) ) {
|
157 |
-
$
|
158 |
-
if ( false === $
|
159 |
-
|
160 |
-
if ( false === $date ) {
|
161 |
-
return false;
|
162 |
-
}
|
163 |
-
$timestamp = $date->getTimestamp();
|
164 |
}
|
|
|
165 |
return ( $this->time_now >= $timestamp );
|
166 |
} else {
|
167 |
$_date = $this->get_product_availability_this_month( $_product );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Availability by Date
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.9.1
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
147 |
/**
|
148 |
* check_is_purchasable_by_date.
|
149 |
*
|
150 |
+
* @version 4.8.0
|
151 |
* @since 2.9.1
|
152 |
* @todo validate `wcj_product_by_date_` option before checking (or even better earlier, when option is saved by admin)
|
153 |
*/
|
154 |
function check_is_purchasable_by_date( $purchasable, $_product ) {
|
155 |
if ( $purchasable ) {
|
156 |
if ( false !== ( $direct_date = $this->maybe_get_direct_date( wcj_get_product_id_or_variation_parent_id( $_product ) ) ) ) {
|
157 |
+
$date = DateTime::createFromFormat( get_option( 'wcj_product_by_date_direct_date_format', 'm/d/Y' ), $direct_date, wcj_timezone() );
|
158 |
+
if ( false === $date ) {
|
159 |
+
return false;
|
|
|
|
|
|
|
|
|
160 |
}
|
161 |
+
$timestamp = $date->getTimestamp();
|
162 |
return ( $this->time_now >= $timestamp );
|
163 |
} else {
|
164 |
$_date = $this->get_product_availability_this_month( $_product );
|
includes/class-wcj-shipping-by-user-role.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Shipping by User Role
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -51,20 +51,32 @@ class WCJ_Shipping_By_User_Role extends WCJ_Module_Shipping_By_Condition {
|
|
51 |
|
52 |
}
|
53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
/**
|
55 |
* check.
|
56 |
*
|
57 |
-
* @version
|
58 |
* @since 3.2.0
|
59 |
* @todo use `$package` (and in this case update `wcj_get_left_to_free_shipping()`)
|
60 |
*/
|
61 |
function check( $options_id, $user_roles_or_ids_or_membership_plans, $include_or_exclude, $package ) {
|
62 |
switch( $options_id ) {
|
63 |
case 'user_roles':
|
64 |
-
if (
|
65 |
-
$this->
|
66 |
}
|
67 |
-
return
|
68 |
case 'user_id':
|
69 |
if ( ! isset( $this->user_id ) ) {
|
70 |
$this->user_id = get_current_user_id();
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Shipping by User Role
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
51 |
|
52 |
}
|
53 |
|
54 |
+
/**
|
55 |
+
* check_multiple_roles.
|
56 |
+
*
|
57 |
+
* @version 4.8.0
|
58 |
+
* @since 4.8.0
|
59 |
+
*
|
60 |
+
* @return bool
|
61 |
+
*/
|
62 |
+
public function add_multiple_roles_option() {
|
63 |
+
return true;
|
64 |
+
}
|
65 |
+
|
66 |
/**
|
67 |
* check.
|
68 |
*
|
69 |
+
* @version 4.8.0
|
70 |
* @since 3.2.0
|
71 |
* @todo use `$package` (and in this case update `wcj_get_left_to_free_shipping()`)
|
72 |
*/
|
73 |
function check( $options_id, $user_roles_or_ids_or_membership_plans, $include_or_exclude, $package ) {
|
74 |
switch( $options_id ) {
|
75 |
case 'user_roles':
|
76 |
+
if ( empty( $this->customer_roles ) ) {
|
77 |
+
$this->customer_roles = 'no' === ( $multi_role_check = get_option( 'wcj_' . $this->id . '_check_multiple_roles', 'no' ) ) ? array( wcj_get_current_user_first_role() ) : wcj_get_current_user_all_roles();
|
78 |
}
|
79 |
+
return count( array_intersect( $this->customer_roles, $user_roles_or_ids_or_membership_plans ) ) > 0;
|
80 |
case 'user_id':
|
81 |
if ( ! isset( $this->user_id ) ) {
|
82 |
$this->user_id = get_current_user_id();
|
includes/classes/class-wcj-module-shipping-by-condition.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Shipping by Condition
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 3.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -27,6 +27,18 @@ abstract class WCJ_Module_Shipping_By_Condition extends WCJ_Module {
|
|
27 |
}
|
28 |
}
|
29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
/**
|
31 |
* available_shipping_methods.
|
32 |
*
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Shipping by Condition
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 3.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
27 |
}
|
28 |
}
|
29 |
|
30 |
+
/**
|
31 |
+
* check_multiple_roles.
|
32 |
+
*
|
33 |
+
* @version 4.8.0
|
34 |
+
* @since 4.8.0
|
35 |
+
*
|
36 |
+
* @return bool
|
37 |
+
*/
|
38 |
+
function add_multiple_roles_option(){
|
39 |
+
return false;
|
40 |
+
}
|
41 |
+
|
42 |
/**
|
43 |
* available_shipping_methods.
|
44 |
*
|
includes/core/class-wcj-admin.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Core - Admin
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 3.2.4
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,18 +16,21 @@ class WCJ_Admin {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version
|
20 |
* @since 3.2.4
|
21 |
*/
|
22 |
function __construct() {
|
23 |
if ( is_admin() ) {
|
24 |
add_filter( 'booster_message', 'wcj_get_plus_message', 100, 3 );
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
|
|
|
|
|
|
31 |
}
|
32 |
}
|
33 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Core - Admin
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 3.2.4
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 4.8.0
|
20 |
* @since 3.2.4
|
21 |
*/
|
22 |
function __construct() {
|
23 |
if ( is_admin() ) {
|
24 |
add_filter( 'booster_message', 'wcj_get_plus_message', 100, 3 );
|
25 |
+
|
26 |
+
if ( apply_filters( 'wcj_can_create_admin_interface', true ) ) {
|
27 |
+
add_filter( 'woocommerce_get_settings_pages', array( $this, 'add_wcj_settings_tab' ), 1 );
|
28 |
+
add_filter( 'plugin_action_links_' . plugin_basename( WCJ_PLUGIN_FILE ), array( $this, 'action_links' ) );
|
29 |
+
add_action( 'admin_menu', array( $this, 'booster_menu' ), 100 );
|
30 |
+
add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ), 2 );
|
31 |
+
if ( 'woocommerce-jetpack.php' === basename( WCJ_PLUGIN_FILE ) ) {
|
32 |
+
add_action( 'admin_notices', array( $this, 'check_plus_version' ) );
|
33 |
+
}
|
34 |
}
|
35 |
}
|
36 |
}
|
includes/functions/wcj-functions-general.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - General
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @author Algoritmika Ltd.
|
7 |
* @todo add `wcj_add_actions()` and `wcj_add_filters()`
|
8 |
*/
|
@@ -884,7 +884,7 @@ if ( ! function_exists( 'wcj_remove_class_filter' ) ) {
|
|
884 |
}
|
885 |
}
|
886 |
|
887 |
-
if ( ! function_exists( '
|
888 |
/**
|
889 |
* Remove action added with a callback to a class without access.
|
890 |
*
|
@@ -933,11 +933,14 @@ if ( ! function_exists( 'wcj_remove_wpml_terms_filters' ) ) {
|
|
933 |
*
|
934 |
* @see https://wpml.org/forums/topic/get-all-terms-of-all-languages-outside-loop/
|
935 |
*
|
936 |
-
* @version 4.
|
937 |
* @since 4.7.0
|
938 |
*/
|
939 |
function wcj_remove_wpml_terms_filters() {
|
940 |
global $sitepress;
|
|
|
|
|
|
|
941 |
remove_filter( 'get_terms_args', array( $sitepress, 'get_terms_args_filter' ) );
|
942 |
remove_filter( 'get_term', array( $sitepress, 'get_term_adjust_id' ) );
|
943 |
remove_filter( 'terms_clauses', array( $sitepress, 'terms_clauses' ) );
|
@@ -950,12 +953,15 @@ if ( ! function_exists( 'wcj_add_wpml_terms_filters' ) ) {
|
|
950 |
*
|
951 |
* @see http://support.themeblvd.com/forums/topic/wpml-sitepress-php-error-on-backend-due-to-layout-builder/
|
952 |
*
|
953 |
-
* @version 4.
|
954 |
* @since 4.7.0
|
955 |
*/
|
956 |
function wcj_add_wpml_terms_filters() {
|
957 |
// restore WPML term filters
|
958 |
global $sitepress;
|
|
|
|
|
|
|
959 |
add_filter( 'terms_clauses', array( $sitepress, 'terms_clauses' ), 10, 3 );
|
960 |
add_filter( 'get_term', array( $sitepress, 'get_term_adjust_id' ) );
|
961 |
add_filter( 'get_terms_args', array( $sitepress, 'get_terms_args_filter' ), 10, 2 );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - General
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
* @todo add `wcj_add_actions()` and `wcj_add_filters()`
|
8 |
*/
|
884 |
}
|
885 |
}
|
886 |
|
887 |
+
if ( ! function_exists( 'wcj_remove_class_action' ) ) {
|
888 |
/**
|
889 |
* Remove action added with a callback to a class without access.
|
890 |
*
|
933 |
*
|
934 |
* @see https://wpml.org/forums/topic/get-all-terms-of-all-languages-outside-loop/
|
935 |
*
|
936 |
+
* @version 4.8.0
|
937 |
* @since 4.7.0
|
938 |
*/
|
939 |
function wcj_remove_wpml_terms_filters() {
|
940 |
global $sitepress;
|
941 |
+
if ( ! $sitepress ) {
|
942 |
+
return;
|
943 |
+
}
|
944 |
remove_filter( 'get_terms_args', array( $sitepress, 'get_terms_args_filter' ) );
|
945 |
remove_filter( 'get_term', array( $sitepress, 'get_term_adjust_id' ) );
|
946 |
remove_filter( 'terms_clauses', array( $sitepress, 'terms_clauses' ) );
|
953 |
*
|
954 |
* @see http://support.themeblvd.com/forums/topic/wpml-sitepress-php-error-on-backend-due-to-layout-builder/
|
955 |
*
|
956 |
+
* @version 4.8.0
|
957 |
* @since 4.7.0
|
958 |
*/
|
959 |
function wcj_add_wpml_terms_filters() {
|
960 |
// restore WPML term filters
|
961 |
global $sitepress;
|
962 |
+
if ( ! $sitepress ) {
|
963 |
+
return;
|
964 |
+
}
|
965 |
add_filter( 'terms_clauses', array( $sitepress, 'terms_clauses' ), 10, 3 );
|
966 |
add_filter( 'get_term', array( $sitepress, 'get_term_adjust_id' ) );
|
967 |
add_filter( 'get_terms_args', array( $sitepress, 'get_terms_args_filter' ), 10, 2 );
|
includes/settings/wcj-settings-admin-tools.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Admin Tools
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
-
* @since 2.
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
9 |
|
@@ -41,6 +41,17 @@ return array(
|
|
41 |
'default' => 'no',
|
42 |
'type' => 'checkbox',
|
43 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
array(
|
45 |
'type' => 'sectionend',
|
46 |
'id' => 'wcj_admin_tools_general_options',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Admin Tools
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
+
* @since 2.7.2
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
9 |
|
41 |
'default' => 'no',
|
42 |
'type' => 'checkbox',
|
43 |
),
|
44 |
+
array(
|
45 |
+
'title' => __( 'Enable Interface By User Roles', 'woocommerce-jetpack' ),
|
46 |
+
'desc_tip' => __( 'The interface can\'t be disabled for The Administrator role.', 'woocommerce-jetpack' ) . '<br /><br />' . __( 'Leave it empty to enable the interface for all the roles.', 'woocommerce-jetpack' ),
|
47 |
+
'desc' => empty( $message = apply_filters( 'booster_message', '', 'desc' ) ) ? __( 'Disables the whole Booster admin interface for not selected roles.', 'woocommerce-jetpack' ) : $message,
|
48 |
+
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
49 |
+
'id' => 'wcj_admin_tools_enable_interface_by_role',
|
50 |
+
'default' => '',
|
51 |
+
'type' => 'multiselect',
|
52 |
+
'class' => 'chosen_select',
|
53 |
+
'options' => wcj_get_user_roles_options(),
|
54 |
+
),
|
55 |
array(
|
56 |
'type' => 'sectionend',
|
57 |
'id' => 'wcj_admin_tools_general_options',
|
includes/settings/wcj-settings-global-discount.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Global Discount
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -181,6 +181,14 @@ $settings = array_merge( $settings, array(
|
|
181 |
'type' => 'title',
|
182 |
'id' => 'wcj_global_discount_advanced_options',
|
183 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
array(
|
185 |
'title' => __( 'Global Discount in Admin', 'woocommerce-jetpack' ),
|
186 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Global Discount
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
181 |
'type' => 'title',
|
182 |
'id' => 'wcj_global_discount_advanced_options',
|
183 |
),
|
184 |
+
array(
|
185 |
+
'title' => __( 'Compatibility With Products Shortcode', 'woocommerce-jetpack' ),
|
186 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
187 |
+
'desc_tip' => __( 'This will add compatibility with [products] shortcode that try to get sale products, like [products on_sale="true"]', 'woocommerce-jetpack' ),
|
188 |
+
'id' => 'wcj_global_discount_products_shortcode_compatibility',
|
189 |
+
'default' => 'no',
|
190 |
+
'type' => 'checkbox',
|
191 |
+
),
|
192 |
array(
|
193 |
'title' => __( 'Global Discount in Admin', 'woocommerce-jetpack' ),
|
194 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
includes/settings/wcj-settings-multicurrency-base-price.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Multicurrency Product Base Price
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo (maybe) `if ( isset( $all_currencies[ $currency_from ] ) ) { unset( $all_currencies[ $currency_from ] ); }`
|
@@ -86,14 +86,6 @@ $settings = array(
|
|
86 |
'default' => 'no',
|
87 |
'type' => 'checkbox',
|
88 |
),
|
89 |
-
array(
|
90 |
-
'title' => __( 'Third Party Price Filter Compatibility', 'woocommerce-jetpack' ),
|
91 |
-
'desc' => __( 'Add compatibility with Third Party Price Filter Widgets','woocommerce-jetpack' ),
|
92 |
-
'desc_tip' => __( 'Requires WooCommerce Price Filter Compatibility option enabled','woocommerce-jetpack' ),
|
93 |
-
'id' => 'wcj_multicurrency_base_price_advanced_price_filter_comp_tp',
|
94 |
-
'default' => 'no',
|
95 |
-
'type' => 'checkbox',
|
96 |
-
),
|
97 |
array(
|
98 |
'type' => 'sectionend',
|
99 |
'id' => 'wcj_multicurrency_base_price_options',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Multicurrency Product Base Price
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo (maybe) `if ( isset( $all_currencies[ $currency_from ] ) ) { unset( $all_currencies[ $currency_from ] ); }`
|
86 |
'default' => 'no',
|
87 |
'type' => 'checkbox',
|
88 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
array(
|
90 |
'type' => 'sectionend',
|
91 |
'id' => 'wcj_multicurrency_base_price_options',
|
includes/settings/wcj-settings-my-account.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - My Account
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -162,6 +162,14 @@ for ( $i = 1; $i <= apply_filters( 'booster_option', 1, get_option( 'wcj_my_acco
|
|
162 |
'type' => 'text',
|
163 |
'id' => "wcj_my_account_custom_pages_title[{$i}]",
|
164 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
array(
|
166 |
'title' => __( 'Content', 'woocommerce-jetpack' ),
|
167 |
'desc_tip' => __( 'You can use HTML and/or shortcodes here.', 'woocommerce-jetpack' ),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - My Account
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
162 |
'type' => 'text',
|
163 |
'id' => "wcj_my_account_custom_pages_title[{$i}]",
|
164 |
),
|
165 |
+
array(
|
166 |
+
'title' => __( 'Endpoint', 'woocommerce-jetpack' ),
|
167 |
+
'desc' => apply_filters( 'booster_message', '', 'desc' ),
|
168 |
+
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
169 |
+
'desc_tip' => __( 'The Custom Page url, after /my-account/', 'woocommerce-jetpack' ) . '<br /><br />' . sprintf( __( 'If empty, it will be added "?section=your-page" after /my-account/', 'woocommerce-jetpack' ) ),
|
170 |
+
'type' => 'text',
|
171 |
+
'id' => "wcj_my_account_custom_pages_endpoint[{$i}]",
|
172 |
+
),
|
173 |
array(
|
174 |
'title' => __( 'Content', 'woocommerce-jetpack' ),
|
175 |
'desc_tip' => __( 'You can use HTML and/or shortcodes here.', 'woocommerce-jetpack' ),
|
includes/settings/wcj-settings-order-custom-statuses.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce Settings - Order Custom Statuses
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -50,6 +50,16 @@ return array(
|
|
50 |
'type' => 'checkbox',
|
51 |
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
52 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
array(
|
54 |
'title' => __( '"Processing" and "Complete" Action Buttons', 'woocommerce-jetpack' ),
|
55 |
'desc_tip' => __( 'By default, when order has custom status, "Processing" and "Complete" action buttons are hidden. You can enable it here. Possible values are: Show both; Show "Processing" only; Show "Complete" only; Hide (default).', 'woocommerce-jetpack' ),
|
2 |
/**
|
3 |
* Booster for WooCommerce Settings - Order Custom Statuses
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
50 |
'type' => 'checkbox',
|
51 |
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
52 |
),
|
53 |
+
array(
|
54 |
+
'title' => __( 'Remove Status Prefix', 'woocommerce-jetpack' ),
|
55 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
56 |
+
'desc_tip' => __( 'Removes the <code>wc-</code> prefix from custom statuses.', 'woocommerce-jetpack' ) . ' ' . __( 'Enable it if you can\'t see the orders or the statuses.', 'woocommerce-jetpack' ) . ' ' .
|
57 |
+
apply_filters( 'booster_message', '', 'desc' ),
|
58 |
+
'id' => 'wcj_orders_custom_statuses_remove_prefix',
|
59 |
+
'default' => 'no',
|
60 |
+
'type' => 'checkbox',
|
61 |
+
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
62 |
+
),
|
63 |
array(
|
64 |
'title' => __( '"Processing" and "Complete" Action Buttons', 'woocommerce-jetpack' ),
|
65 |
'desc_tip' => __( 'By default, when order has custom status, "Processing" and "Complete" action buttons are hidden. You can enable it here. Possible values are: Show both; Show "Processing" only; Show "Complete" only; Hide (default).', 'woocommerce-jetpack' ),
|
includes/settings/wcj-settings-payment-gateways-fees.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Gateways Fees and Discounts
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -10,7 +10,26 @@
|
|
10 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
|
12 |
$products = wcj_get_products();
|
13 |
-
$settings = array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
$available_gateways = WC()->payment_gateways->payment_gateways();
|
15 |
foreach ( $available_gateways as $key => $gateway ) {
|
16 |
$settings = array_merge( $settings, array(
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Gateways Fees and Discounts
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
10 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
|
12 |
$products = wcj_get_products();
|
13 |
+
$settings = array(
|
14 |
+
array(
|
15 |
+
'title' => __( 'General Options', 'woocommerce-jetpack' ),
|
16 |
+
'type' => 'title',
|
17 |
+
'id' => "wcj_gateways_fees",
|
18 |
+
),
|
19 |
+
array(
|
20 |
+
'title' => __( 'Force Default Payment Gateway', 'woocommerce-jetpack' ),
|
21 |
+
'desc' => empty( $message = apply_filters( 'booster_message', '', 'desc' ) ) ? __( 'Enable', 'woocommerce-jetpack' ) : $message,
|
22 |
+
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
23 |
+
'desc_tip' => sprintf( __( 'Pre-sets the default available payment gateway on cart and checkout pages.' ) . '<br />' . __( 'The chosen payment will be the first one from the <a href="%s">Payments</a> page', 'woocommerce-jetpack' ), admin_url( 'admin.php?page=wc-settings&tab=checkout' ) ),
|
24 |
+
'type' => 'checkbox',
|
25 |
+
'default' => 'no',
|
26 |
+
'id' => "wcj_gateways_fees_force_default_payment_gateway",
|
27 |
+
),
|
28 |
+
array(
|
29 |
+
'type' => 'sectionend',
|
30 |
+
'id' => "wcj_gateways_fees",
|
31 |
+
),
|
32 |
+
);
|
33 |
$available_gateways = WC()->payment_gateways->payment_gateways();
|
34 |
foreach ( $available_gateways as $key => $gateway ) {
|
35 |
$settings = array_merge( $settings, array(
|
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 4.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -156,6 +156,23 @@ $settings = array(
|
|
156 |
'type' => 'sectionend',
|
157 |
'id' => 'wcj_price_by_country_options',
|
158 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
array(
|
160 |
'title' => __( 'Advanced', 'woocommerce-jetpack' ),
|
161 |
'type' => 'title',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Prices and Currencies by Country
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
156 |
'type' => 'sectionend',
|
157 |
'id' => 'wcj_price_by_country_options',
|
158 |
),
|
159 |
+
array(
|
160 |
+
'title' => __( 'Compatibility', 'woocommerce-jetpack' ),
|
161 |
+
'type' => 'title',
|
162 |
+
'id' => 'wcj_price_by_country_compatibility',
|
163 |
+
),
|
164 |
+
array(
|
165 |
+
'title' => __( 'WooCommerce Coupons', 'woocommerce-jetpack' ),
|
166 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
167 |
+
'desc_tip' => __( 'When a fixed coupon is used its value changes according to the current currency', 'woocommerce-jetpack' ),
|
168 |
+
'id' => 'wcj_price_by_country_compatibility_wc_coupons',
|
169 |
+
'default' => 'no',
|
170 |
+
'type' => 'checkbox',
|
171 |
+
),
|
172 |
+
array(
|
173 |
+
'type' => 'sectionend',
|
174 |
+
'id' => 'wcj_price_by_country_compatibility',
|
175 |
+
),
|
176 |
array(
|
177 |
'title' => __( 'Advanced', 'woocommerce-jetpack' ),
|
178 |
'type' => 'title',
|
includes/settings/wcj-settings-product-addons.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Addons
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo (maybe) add `woocommerce_payment_complete` to `$qty_triggers` (also maybe add this trigger to "PDF Invoicing" module)
|
@@ -368,7 +368,7 @@ $settings = array_merge( $settings, array(
|
|
368 |
),
|
369 |
array(
|
370 |
'title' => __( 'Each Addon', 'woocommerce-jetpack' ),
|
371 |
-
'desc' => wcj_message_replaced_values( array( '%addon_label%', '%addon_price%' ) ),
|
372 |
'id' => 'wcj_product_addons_cart_format_each_addon',
|
373 |
'default' => '<dt>%addon_label%:</dt><dd>%addon_price%</dd>',
|
374 |
'type' => 'textarea',
|
@@ -399,7 +399,7 @@ $settings = array_merge( $settings, array(
|
|
399 |
),
|
400 |
array(
|
401 |
'title' => __( 'Each Addon', 'woocommerce-jetpack' ),
|
402 |
-
'desc' => wcj_message_replaced_values( array( '%addon_label%', '%addon_price%' ) ),
|
403 |
'id' => 'wcj_product_addons_order_details_format_each_addon',
|
404 |
'default' => ' | %addon_label%: %addon_price%',
|
405 |
'type' => 'textarea',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Addons
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo (maybe) add `woocommerce_payment_complete` to `$qty_triggers` (also maybe add this trigger to "PDF Invoicing" module)
|
368 |
),
|
369 |
array(
|
370 |
'title' => __( 'Each Addon', 'woocommerce-jetpack' ),
|
371 |
+
'desc' => wcj_message_replaced_values( array( '%addon_label%', '%addon_price%', '%addon_title%' ) ),
|
372 |
'id' => 'wcj_product_addons_cart_format_each_addon',
|
373 |
'default' => '<dt>%addon_label%:</dt><dd>%addon_price%</dd>',
|
374 |
'type' => 'textarea',
|
399 |
),
|
400 |
array(
|
401 |
'title' => __( 'Each Addon', 'woocommerce-jetpack' ),
|
402 |
+
'desc' => wcj_message_replaced_values( array( '%addon_label%', '%addon_price%', '%addon_title%' ) ),
|
403 |
'id' => 'wcj_product_addons_order_details_format_each_addon',
|
404 |
'default' => ' | %addon_label%: %addon_price%',
|
405 |
'type' => 'textarea',
|
includes/settings/wcj-settings-shipping-by-condition.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Shipping by Condition
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 3.2.1
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo [dev] hide settings for the disabled subsection
|
@@ -15,6 +15,18 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
15 |
$use_shipping_instances = ( 'yes' === get_option( 'wcj_' . $this->id . '_use_shipping_instance', 'no' ) );
|
16 |
$shipping_methods = ( $use_shipping_instances ? wcj_get_shipping_methods_instances( true ) : WC()->shipping()->load_shipping_methods() );
|
17 |
$settings = array();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
$settings = array_merge( $settings, array(
|
19 |
array(
|
20 |
'title' => __( 'General Options', 'woocommerce-jetpack' ),
|
@@ -30,11 +42,13 @@ $settings = array_merge( $settings, array(
|
|
30 |
'id' => 'wcj_' . $this->id . '_use_shipping_instance',
|
31 |
'default' => 'no',
|
32 |
),
|
|
|
33 |
array(
|
34 |
'type' => 'sectionend',
|
35 |
'id' => 'wcj_' . $this->id . '_general_options',
|
36 |
),
|
37 |
) );
|
|
|
38 |
foreach ( $this->condition_options as $options_id => $options_data ) {
|
39 |
$settings = array_merge( $settings, array(
|
40 |
array(
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Shipping by Condition
|
4 |
*
|
5 |
+
* @version 4.8.0
|
6 |
* @since 3.2.1
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo [dev] hide settings for the disabled subsection
|
15 |
$use_shipping_instances = ( 'yes' === get_option( 'wcj_' . $this->id . '_use_shipping_instance', 'no' ) );
|
16 |
$shipping_methods = ( $use_shipping_instances ? wcj_get_shipping_methods_instances( true ) : WC()->shipping()->load_shipping_methods() );
|
17 |
$settings = array();
|
18 |
+
|
19 |
+
// Multiple Roles Option
|
20 |
+
$check_multiple_roles_option = array(
|
21 |
+
'title' => __( 'Multiple Role Checking', 'woocommerce-jetpack' ),
|
22 |
+
'type' => 'checkbox',
|
23 |
+
'default' => 'no',
|
24 |
+
'desc_tip' => __( 'Enable if you have some plugin that allows users with multiple roles like "User Role Editor".', 'woocommerce-jetpack' ),
|
25 |
+
'desc' => empty( $message = apply_filters( 'booster_message', '', 'desc' ) ) ? __( 'Enable', 'woocommerce-jetpack' ) : $message,
|
26 |
+
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
27 |
+
'id' => 'wcj_' . $this->id . '_check_multiple_roles',
|
28 |
+
);
|
29 |
+
|
30 |
$settings = array_merge( $settings, array(
|
31 |
array(
|
32 |
'title' => __( 'General Options', 'woocommerce-jetpack' ),
|
42 |
'id' => 'wcj_' . $this->id . '_use_shipping_instance',
|
43 |
'default' => 'no',
|
44 |
),
|
45 |
+
$this->add_multiple_roles_option() ? $check_multiple_roles_option : array(),
|
46 |
array(
|
47 |
'type' => 'sectionend',
|
48 |
'id' => 'wcj_' . $this->id . '_general_options',
|
49 |
),
|
50 |
) );
|
51 |
+
|
52 |
foreach ( $this->condition_options as $options_id => $options_data ) {
|
53 |
$settings = array_merge( $settings, array(
|
54 |
array(
|
langs/woocommerce-jetpack.pot
CHANGED
@@ -45,7 +45,7 @@ msgstr ""
|
|
45 |
#: includes/class-wcj-track-users.php:251
|
46 |
#: includes/classes/class-wcj-module.php:532
|
47 |
#: includes/classes/class-wcj-module.php:732
|
48 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
49 |
msgid "Booster"
|
50 |
msgstr ""
|
51 |
|
@@ -98,14 +98,14 @@ msgstr ""
|
|
98 |
#: includes/admin/class-wc-settings-jetpack.php:217
|
99 |
#: includes/class-wcj-admin-bar.php:384
|
100 |
#: includes/settings/wcj-settings-emails-verification.php:146
|
101 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
102 |
msgid "WooCommerce"
|
103 |
msgstr ""
|
104 |
|
105 |
#: includes/admin/class-wc-settings-jetpack.php:219
|
106 |
#: includes/admin/class-wc-settings-jetpack.php:414
|
107 |
#: includes/class-wcj-admin-bar.php:168 includes/class-wcj-admin-bar.php:508
|
108 |
-
#: includes/class-wcj-admin-bar.php:608 includes/core/class-wcj-admin.php:
|
109 |
msgid "Settings"
|
110 |
msgstr ""
|
111 |
|
@@ -168,13 +168,13 @@ msgstr ""
|
|
168 |
|
169 |
#: includes/admin/class-wc-settings-jetpack.php:372
|
170 |
#: includes/admin/class-wc-settings-jetpack.php:379
|
171 |
-
#: includes/admin/class-wcj-tools.php:
|
172 |
msgid "Module"
|
173 |
msgstr ""
|
174 |
|
175 |
#: includes/admin/class-wc-settings-jetpack.php:373
|
176 |
#: includes/admin/class-wc-settings-jetpack.php:380
|
177 |
-
#: includes/admin/class-wcj-tools.php:
|
178 |
#: includes/export/class-wcj-fields-helper.php:293
|
179 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:63
|
180 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:172
|
@@ -241,7 +241,7 @@ msgid "Gateways per Product or Category"
|
|
241 |
msgstr ""
|
242 |
|
243 |
#: includes/admin/class-wc-settings-jetpack.php:486
|
244 |
-
#: includes/class-wcj-global-discount.php:
|
245 |
#: includes/settings/wcj-settings-product-addons.php:254
|
246 |
msgid "Global Discount"
|
247 |
msgstr ""
|
@@ -281,7 +281,7 @@ msgid "Use List Instead of Comma Separated Text for Products Tags in Settings"
|
|
281 |
msgstr ""
|
282 |
|
283 |
#: includes/admin/class-wc-settings-jetpack.php:532
|
284 |
-
#: includes/core/class-wcj-admin.php:
|
285 |
msgid "Booster for WooCommerce"
|
286 |
msgstr ""
|
287 |
|
@@ -327,23 +327,23 @@ msgstr ""
|
|
327 |
msgid "%d options successfully deleted."
|
328 |
msgstr ""
|
329 |
|
330 |
-
#: includes/admin/class-wcj-tools.php:
|
331 |
msgid "Booster for WooCommerce Tools"
|
332 |
msgstr ""
|
333 |
|
334 |
-
#: includes/admin/class-wcj-tools.php:
|
335 |
msgid "Booster Tools"
|
336 |
msgstr ""
|
337 |
|
338 |
-
#: includes/admin/class-wcj-tools.php:
|
339 |
msgid "Tools Dashboard"
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: includes/admin/class-wcj-tools.php:
|
343 |
msgid "Booster for WooCommerce Tools - Dashboard"
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: includes/admin/class-wcj-tools.php:
|
347 |
msgid ""
|
348 |
"This dashboard lets you check statuses and short descriptions of all "
|
349 |
"available Booster for WooCommerce tools. Tools can be enabled through "
|
@@ -351,11 +351,11 @@ msgid ""
|
|
351 |
"above."
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: includes/admin/class-wcj-tools.php:
|
355 |
msgid "Tool"
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: includes/admin/class-wcj-tools.php:
|
359 |
#: includes/class-wcj-product-by-user.php:197
|
360 |
#: includes/export/class-wcj-fields-helper.php:294
|
361 |
msgid "Status"
|
@@ -853,37 +853,37 @@ msgstr ""
|
|
853 |
msgid "All Products and All Attributes."
|
854 |
msgstr ""
|
855 |
|
856 |
-
#: includes/class-wcj-admin-tools.php:
|
857 |
#: includes/settings/wcj-settings-export.php:157
|
858 |
#: includes/settings/wcj-settings-export.php:236
|
859 |
msgid "Product Meta"
|
860 |
msgstr ""
|
861 |
|
862 |
-
#: includes/class-wcj-admin-tools.php:
|
863 |
#: includes/settings/wcj-settings-export.php:86
|
864 |
#: includes/settings/wcj-settings-export.php:154
|
865 |
msgid "Order Meta"
|
866 |
msgstr ""
|
867 |
|
868 |
-
#: includes/class-wcj-admin-tools.php:
|
869 |
msgid "Order Items Meta"
|
870 |
msgstr ""
|
871 |
|
872 |
-
#: includes/class-wcj-admin-tools.php:
|
873 |
msgid "Item Key"
|
874 |
msgstr ""
|
875 |
|
876 |
-
#: includes/class-wcj-admin-tools.php:
|
877 |
msgid "Item Meta Key"
|
878 |
msgstr ""
|
879 |
|
880 |
-
#: includes/class-wcj-admin-tools.php:
|
881 |
msgid "Item Meta Value"
|
882 |
msgstr ""
|
883 |
|
884 |
-
#: includes/class-wcj-admin-tools.php:
|
885 |
-
#: includes/class-wcj-admin-tools.php:
|
886 |
-
#: includes/class-wcj-admin-tools.php:
|
887 |
#: includes/class-wcj-product-bulk-meta-editor.php:339
|
888 |
#: includes/class-wcj-product-bulk-price-converter.php:148
|
889 |
#: includes/class-wcj-sku.php:668
|
@@ -892,14 +892,14 @@ msgstr ""
|
|
892 |
msgid "Product"
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: includes/class-wcj-admin-tools.php:
|
896 |
-
#: includes/class-wcj-admin-tools.php:
|
897 |
-
#: includes/class-wcj-admin-tools.php:
|
898 |
#: includes/reports/wcj-class-reports-stock.php:270
|
899 |
msgid "Category"
|
900 |
msgstr ""
|
901 |
|
902 |
-
#: includes/class-wcj-admin-tools.php:
|
903 |
msgid "Total Products:"
|
904 |
msgstr ""
|
905 |
|
@@ -1932,8 +1932,8 @@ msgstr ""
|
|
1932 |
#: includes/settings/wcj-settings-export.php:27
|
1933 |
#: includes/settings/wcj-settings-order-custom-statuses.php:29
|
1934 |
#: includes/settings/wcj-settings-order-custom-statuses.php:37
|
1935 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
1936 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
1937 |
#: includes/settings/wcj-settings-order-min-amount.php:53
|
1938 |
#: includes/settings/wcj-settings-orders.php:132
|
1939 |
#: includes/settings/wcj-settings-orders.php:159
|
@@ -1954,7 +1954,7 @@ msgstr ""
|
|
1954 |
msgid "Add"
|
1955 |
msgstr ""
|
1956 |
|
1957 |
-
#: includes/class-wcj-global-discount.php:
|
1958 |
msgid "Add global discount to all products."
|
1959 |
msgstr ""
|
1960 |
|
@@ -2131,7 +2131,7 @@ msgid "Logout"
|
|
2131 |
msgstr ""
|
2132 |
|
2133 |
#: includes/class-wcj-my-account.php:43
|
2134 |
-
#: includes/settings/wcj-settings-my-account.php:
|
2135 |
msgid "View order"
|
2136 |
msgstr ""
|
2137 |
|
@@ -2143,12 +2143,12 @@ msgstr ""
|
|
2143 |
msgid "Lost password"
|
2144 |
msgstr ""
|
2145 |
|
2146 |
-
#: includes/class-wcj-my-account.php:
|
2147 |
#, php-format
|
2148 |
msgid "Hello %1$s (not %1$s? <a href=\"%2$s\">Log out</a>)"
|
2149 |
msgstr ""
|
2150 |
|
2151 |
-
#: includes/class-wcj-my-account.php:
|
2152 |
#, php-format
|
2153 |
msgid ""
|
2154 |
"From your account dashboard you can view your <a href=\"%1$s\">recent "
|
@@ -2156,11 +2156,11 @@ msgid ""
|
|
2156 |
"and <a href=\"%3$s\">edit your password and account details</a>."
|
2157 |
msgstr ""
|
2158 |
|
2159 |
-
#: includes/class-wcj-my-account.php:
|
2160 |
msgid "User role"
|
2161 |
msgstr ""
|
2162 |
|
2163 |
-
#: includes/class-wcj-my-account.php:
|
2164 |
#: includes/class-wcj-product-bulk-meta-editor.php:279
|
2165 |
#: includes/class-wcj-product-by-user.php:206
|
2166 |
#: includes/class-wcj-purchase-data.php:94
|
@@ -2422,32 +2422,32 @@ msgid ""
|
|
2422 |
"Tool lets you add, edit or delete any custom status for WooCommerce orders."
|
2423 |
msgstr ""
|
2424 |
|
2425 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2426 |
#, php-format
|
2427 |
msgid "Change order status to %s"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2431 |
msgid "Change status: "
|
2432 |
msgstr ""
|
2433 |
|
2434 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2435 |
msgid "Processing"
|
2436 |
msgstr ""
|
2437 |
|
2438 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2439 |
msgid "Complete"
|
2440 |
msgstr ""
|
2441 |
|
2442 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2443 |
#, php-format
|
2444 |
msgid " <span class=\"count\">(%s)</span>"
|
2445 |
msgid_plural " <span class=\"count\">(%s)</span>"
|
2446 |
msgstr[0] ""
|
2447 |
msgstr[1] ""
|
2448 |
|
2449 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2450 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2451 |
msgid "Mark"
|
2452 |
msgstr ""
|
2453 |
|
@@ -2772,7 +2772,7 @@ msgstr ""
|
|
2772 |
msgid "Change product price and currency automatically by customer's country."
|
2773 |
msgstr ""
|
2774 |
|
2775 |
-
#: includes/class-wcj-price-by-country.php:
|
2776 |
msgid "Price filter widget product prices recalculated."
|
2777 |
msgstr ""
|
2778 |
|
@@ -2863,10 +2863,10 @@ msgstr ""
|
|
2863 |
#: includes/settings/wcj-settings-admin-tools.php:22
|
2864 |
#: includes/settings/wcj-settings-admin-tools.php:29
|
2865 |
#: includes/settings/wcj-settings-admin-tools.php:38
|
2866 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
2867 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
2868 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
2869 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
2870 |
#: includes/settings/wcj-settings-breadcrumbs.php:20
|
2871 |
#: includes/settings/wcj-settings-call-for-price.php:79
|
2872 |
#: includes/settings/wcj-settings-cart-customization.php:34
|
@@ -2916,6 +2916,7 @@ msgstr ""
|
|
2916 |
#: includes/settings/wcj-settings-general.php:197
|
2917 |
#: includes/settings/wcj-settings-global-discount.php:57
|
2918 |
#: includes/settings/wcj-settings-global-discount.php:186
|
|
|
2919 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:28
|
2920 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:57
|
2921 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:91
|
@@ -2939,7 +2940,8 @@ msgstr ""
|
|
2939 |
#: includes/settings/wcj-settings-my-account.php:104
|
2940 |
#: includes/settings/wcj-settings-offer-price.php:27
|
2941 |
#: includes/settings/wcj-settings-order-custom-statuses.php:45
|
2942 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
|
|
2943 |
#: includes/settings/wcj-settings-order-numbers.php:97
|
2944 |
#: includes/settings/wcj-settings-order-numbers.php:105
|
2945 |
#: includes/settings/wcj-settings-order-numbers.php:112
|
@@ -2958,8 +2960,9 @@ msgstr ""
|
|
2958 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:23
|
2959 |
#: includes/settings/wcj-settings-payment-gateways-by-user-role.php:23
|
2960 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:95
|
2961 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
2962 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
|
|
2963 |
#: includes/settings/wcj-settings-payment-gateways-per-category.php:25
|
2964 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:55
|
2965 |
#: includes/settings/wcj-settings-pdf-invoicing-display.php:118
|
@@ -2973,6 +2976,7 @@ msgstr ""
|
|
2973 |
#: includes/settings/wcj-settings-price-by-country.php:106
|
2974 |
#: includes/settings/wcj-settings-price-by-country.php:133
|
2975 |
#: includes/settings/wcj-settings-price-by-country.php:142
|
|
|
2976 |
#: includes/settings/wcj-settings-price-by-user-role.php:19
|
2977 |
#: includes/settings/wcj-settings-price-by-user-role.php:46
|
2978 |
#: includes/settings/wcj-settings-price-by-user-role.php:93
|
@@ -3037,7 +3041,8 @@ msgstr ""
|
|
3037 |
#: includes/settings/wcj-settings-related-products.php:112
|
3038 |
#: includes/settings/wcj-settings-related-products.php:119
|
3039 |
#: includes/settings/wcj-settings-related-products.php:149
|
3040 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
|
|
3041 |
#: includes/settings/wcj-settings-shipping-by-order-amount.php:21
|
3042 |
#: includes/settings/wcj-settings-shipping-by-order-qty.php:21
|
3043 |
#: includes/settings/wcj-settings-shipping-calculator.php:20
|
@@ -3170,11 +3175,11 @@ msgstr ""
|
|
3170 |
msgid "Add (paid/free/discount) addons to products."
|
3171 |
msgstr ""
|
3172 |
|
3173 |
-
#: includes/class-wcj-product-addons.php:
|
3174 |
msgid "Some of the required addons are not selected!"
|
3175 |
msgstr ""
|
3176 |
|
3177 |
-
#: includes/class-wcj-product-addons.php:
|
3178 |
msgid ""
|
3179 |
"Booster: Free plugin's version is limited to only three products with per "
|
3180 |
"product addons enabled at a time. You will need to get <a href=\"https://"
|
@@ -3820,7 +3825,7 @@ msgstr ""
|
|
3820 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:73
|
3821 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:107
|
3822 |
#: includes/settings/wcj-settings-mini-cart.php:46
|
3823 |
-
#: includes/settings/wcj-settings-my-account.php:
|
3824 |
#: includes/settings/wcj-settings-product-add-to-cart.php:286
|
3825 |
#: includes/settings/wcj-settings-product-add-to-cart.php:321
|
3826 |
#: includes/settings/wcj-settings-product-custom-info.php:96
|
@@ -4013,8 +4018,8 @@ msgstr ""
|
|
4013 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:65
|
4014 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:99
|
4015 |
#: includes/settings/wcj-settings-mini-cart.php:39
|
4016 |
-
#: includes/settings/wcj-settings-my-account.php:
|
4017 |
-
#: includes/settings/wcj-settings-my-account.php:
|
4018 |
#: includes/settings/wcj-settings-product-custom-info.php:88
|
4019 |
#: includes/settings/wcj-settings-product-tabs.php:92
|
4020 |
#: includes/widgets/class-wcj-widget-left-to-free-shipping.php:59
|
@@ -4445,7 +4450,7 @@ msgstr ""
|
|
4445 |
|
4446 |
#: includes/class-wcj-shipping-by-products.php:205
|
4447 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:25
|
4448 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
4449 |
#: includes/settings/wcj-settings-shipping-by-order-amount.php:23
|
4450 |
#: includes/settings/wcj-settings-shipping-by-order-qty.php:23
|
4451 |
#: includes/settings/wcj-settings-shipping-description.php:61
|
@@ -4962,38 +4967,38 @@ msgstr ""
|
|
4962 |
msgid "Page %page_number% / %total_pages%"
|
4963 |
msgstr ""
|
4964 |
|
4965 |
-
#: includes/core/class-wcj-admin.php:
|
4966 |
msgid "Please update <strong>Booster Plus for WooCommerce</strong> plugin."
|
4967 |
msgstr ""
|
4968 |
|
4969 |
-
#: includes/core/class-wcj-admin.php:
|
4970 |
#, php-format
|
4971 |
msgid ""
|
4972 |
"Visit <a target=\"_blank\" href=\"%s\">your account page</a> on booster.io "
|
4973 |
"to download the latest Booster Plus version."
|
4974 |
msgstr ""
|
4975 |
|
4976 |
-
#: includes/core/class-wcj-admin.php:
|
4977 |
#, php-format
|
4978 |
msgid "Click <a target=\"_blank\" href=\"%s\">here</a> for more info."
|
4979 |
msgstr ""
|
4980 |
|
4981 |
-
#: includes/core/class-wcj-admin.php:
|
4982 |
#, php-format
|
4983 |
msgid ""
|
4984 |
"If you like <strong>Booster for WooCommerce</strong> please leave us a %s "
|
4985 |
"rating. Thank you, we couldn't have done it without you!"
|
4986 |
msgstr ""
|
4987 |
|
4988 |
-
#: includes/core/class-wcj-admin.php:
|
4989 |
msgid "Booster Settings"
|
4990 |
msgstr ""
|
4991 |
|
4992 |
-
#: includes/core/class-wcj-admin.php:
|
4993 |
msgid "Docs"
|
4994 |
msgstr ""
|
4995 |
|
4996 |
-
#: includes/core/class-wcj-admin.php:
|
4997 |
msgid "Unlock all"
|
4998 |
msgstr ""
|
4999 |
|
@@ -7618,7 +7623,7 @@ msgstr ""
|
|
7618 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:63
|
7619 |
#: includes/settings/wcj-settings-multicurrency.php:162
|
7620 |
#: includes/settings/wcj-settings-order-min-amount.php:69
|
7621 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
7622 |
#: includes/settings/wcj-settings-price-by-user-role.php:106
|
7623 |
#: includes/settings/wcj-settings-product-addons.php:230
|
7624 |
msgid "Advanced"
|
@@ -7855,18 +7860,18 @@ msgstr ""
|
|
7855 |
|
7856 |
#: includes/price-by-country/class-wcj-price-by-country-local.php:111
|
7857 |
#: includes/settings/meta-box/wcj-settings-meta-box-price-by-country.php:67
|
7858 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
7859 |
msgid "Make empty price"
|
7860 |
msgstr ""
|
7861 |
|
7862 |
#: includes/price-by-country/class-wcj-price-by-country-local.php:215
|
7863 |
#: includes/settings/meta-box/wcj-settings-meta-box-price-by-country.php:17
|
7864 |
#: includes/settings/wcj-settings-add-to-cart.php:50
|
7865 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
7866 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
7867 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
7868 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
7869 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
7870 |
msgid "Group"
|
7871 |
msgstr ""
|
7872 |
|
@@ -8180,9 +8185,9 @@ msgstr ""
|
|
8180 |
#: includes/settings/wcj-settings-checkout-customization.php:107
|
8181 |
#: includes/settings/wcj-settings-cross-sells.php:87
|
8182 |
#: includes/settings/wcj-settings-currency.php:22
|
8183 |
-
#: includes/settings/wcj-settings-my-account.php:
|
8184 |
-
#: includes/settings/wcj-settings-my-account.php:
|
8185 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
8186 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:48
|
8187 |
#: includes/settings/wcj-settings-product-addons.php:291
|
8188 |
#: includes/settings/wcj-settings-product-bookings.php:100
|
@@ -8213,9 +8218,9 @@ msgstr ""
|
|
8213 |
#: includes/settings/meta-box/wcj-settings-meta-box-add-to-cart-button-visibility.php:30
|
8214 |
#: includes/settings/meta-box/wcj-settings-meta-box-add-to-cart-button-visibility.php:49
|
8215 |
#: includes/settings/wcj-settings-checkout-customization.php:196
|
8216 |
-
#: includes/settings/wcj-settings-my-account.php:
|
8217 |
-
#: includes/settings/wcj-settings-my-account.php:
|
8218 |
-
#: includes/settings/wcj-settings-my-account.php:
|
8219 |
#: includes/settings/wcj-settings-sale-flash.php:27
|
8220 |
#: includes/settings/wcj-settings-sale-flash.php:111
|
8221 |
msgid "You can use HTML and/or shortcodes here."
|
@@ -8321,7 +8326,7 @@ msgstr ""
|
|
8321 |
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:25
|
8322 |
#: includes/settings/wcj-settings-currency-exchange-rates.php:60
|
8323 |
#: includes/settings/wcj-settings-offer-price.php:168
|
8324 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
8325 |
#: includes/settings/wcj-settings-product-by-user.php:70
|
8326 |
msgid "Number of decimals"
|
8327 |
msgstr ""
|
@@ -8701,7 +8706,7 @@ msgstr ""
|
|
8701 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:18
|
8702 |
#: includes/settings/wcj-settings-checkout-fees.php:72
|
8703 |
#: includes/settings/wcj-settings-global-discount.php:69
|
8704 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
8705 |
#: includes/settings/wcj-settings-purchase-data.php:89
|
8706 |
#: includes/settings/wcj-settings-wholesale-price.php:80
|
8707 |
msgid "Percent"
|
@@ -8710,7 +8715,7 @@ msgstr ""
|
|
8710 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:19
|
8711 |
#: includes/settings/wcj-settings-checkout-fees.php:71
|
8712 |
#: includes/settings/wcj-settings-global-discount.php:70
|
8713 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
8714 |
#: includes/settings/wcj-settings-price-by-user-role.php:31
|
8715 |
#: includes/settings/wcj-settings-purchase-data.php:88
|
8716 |
#: includes/settings/wcj-settings-wholesale-price.php:81
|
@@ -8784,8 +8789,8 @@ msgstr ""
|
|
8784 |
#: includes/settings/wcj-settings-max-products-per-user.php:43
|
8785 |
#: includes/settings/wcj-settings-my-account.php:67
|
8786 |
#: includes/settings/wcj-settings-my-account.php:135
|
8787 |
-
#: includes/settings/wcj-settings-my-account.php:
|
8788 |
-
#: includes/settings/wcj-settings-my-account.php:
|
8789 |
#: includes/settings/wcj-settings-order-quantities.php:85
|
8790 |
#: includes/settings/wcj-settings-order-quantities.php:143
|
8791 |
#: includes/settings/wcj-settings-order-quantities.php:201
|
@@ -8797,7 +8802,7 @@ msgstr ""
|
|
8797 |
#: includes/settings/wcj-settings-sale-flash.php:20
|
8798 |
#: includes/settings/wcj-settings-sale-flash.php:65
|
8799 |
#: includes/settings/wcj-settings-sale-flash.php:90
|
8800 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
8801 |
#: includes/settings/wcj-settings-shipping-options.php:21
|
8802 |
#: includes/settings/wcj-settings-stock.php:20
|
8803 |
#: includes/settings/wcj-settings-stock.php:87
|
@@ -9010,7 +9015,7 @@ msgstr ""
|
|
9010 |
#: includes/settings/wcj-settings-add-to-cart.php:156
|
9011 |
#: includes/settings/wcj-settings-add-to-cart.php:213
|
9012 |
#: includes/settings/wcj-settings-add-to-cart.php:222
|
9013 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
9014 |
#: includes/settings/wcj-settings-product-custom-info.php:191
|
9015 |
msgid "Leave blank to disable."
|
9016 |
msgstr ""
|
@@ -9311,57 +9316,73 @@ msgstr ""
|
|
9311 |
msgid "Will remove admin notices (including the Connect notice)."
|
9312 |
msgstr ""
|
9313 |
|
9314 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9315 |
msgid "Orders Options"
|
9316 |
msgstr ""
|
9317 |
|
9318 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
9319 |
msgid "Show Order Meta"
|
9320 |
msgstr ""
|
9321 |
|
9322 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
9323 |
msgid "Will show order meta table in meta box."
|
9324 |
msgstr ""
|
9325 |
|
9326 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
9327 |
msgid "Products Options"
|
9328 |
msgstr ""
|
9329 |
|
9330 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
9331 |
msgid "Show Product Meta"
|
9332 |
msgstr ""
|
9333 |
|
9334 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
9335 |
msgid "Will show product meta table in meta box."
|
9336 |
msgstr ""
|
9337 |
|
9338 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
9339 |
msgid "Show Variable Product Pricing Table"
|
9340 |
msgstr ""
|
9341 |
|
9342 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
9343 |
msgid "Will allow to set all variations prices in single meta box."
|
9344 |
msgstr ""
|
9345 |
|
9346 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
9347 |
msgid "Product Revisions"
|
9348 |
msgstr ""
|
9349 |
|
9350 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
9351 |
msgid "Will enable product revisions."
|
9352 |
msgstr ""
|
9353 |
|
9354 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
9355 |
msgid "JSON Product Search Limit"
|
9356 |
msgstr ""
|
9357 |
|
9358 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
9359 |
msgid ""
|
9360 |
"This will set the maximum number of products to return on JSON search (e.g. "
|
9361 |
"when setting Upsells and Cross-sells on product edit page)."
|
9362 |
msgstr ""
|
9363 |
|
9364 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
9365 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:240
|
9366 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:249
|
9367 |
#: includes/settings/wcj-settings-order-quantities.php:208
|
@@ -9488,7 +9509,7 @@ msgstr ""
|
|
9488 |
#: includes/settings/wcj-settings-cart.php:24
|
9489 |
#: includes/settings/wcj-settings-checkout-custom-info.php:20
|
9490 |
#: includes/settings/wcj-settings-mini-cart.php:19
|
9491 |
-
#: includes/settings/wcj-settings-my-account.php:
|
9492 |
#: includes/settings/wcj-settings-product-custom-info.php:52
|
9493 |
msgid "Total Blocks"
|
9494 |
msgstr ""
|
@@ -9496,14 +9517,14 @@ msgstr ""
|
|
9496 |
#: includes/settings/wcj-settings-cart.php:39
|
9497 |
#: includes/settings/wcj-settings-checkout-custom-info.php:36
|
9498 |
#: includes/settings/wcj-settings-mini-cart.php:34
|
9499 |
-
#: includes/settings/wcj-settings-my-account.php:
|
9500 |
msgid "Info Block"
|
9501 |
msgstr ""
|
9502 |
|
9503 |
#: includes/settings/wcj-settings-cart.php:58
|
9504 |
#: includes/settings/wcj-settings-checkout-custom-info.php:85
|
9505 |
#: includes/settings/wcj-settings-mini-cart.php:57
|
9506 |
-
#: includes/settings/wcj-settings-my-account.php:
|
9507 |
#: includes/settings/wcj-settings-product-custom-info.php:124
|
9508 |
msgid "Position Order (i.e. Priority)"
|
9509 |
msgstr ""
|
@@ -9533,11 +9554,12 @@ msgstr ""
|
|
9533 |
#: includes/settings/wcj-settings-payment-gateways-by-country.php:15
|
9534 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:17
|
9535 |
#: includes/settings/wcj-settings-payment-gateways-by-user-role.php:14
|
|
|
9536 |
#: includes/settings/wcj-settings-payment-gateways-min-max.php:15
|
9537 |
#: includes/settings/wcj-settings-payment-gateways-per-category.php:19
|
9538 |
#: includes/settings/wcj-settings-price-formats.php:15
|
9539 |
#: includes/settings/wcj-settings-product-tabs.php:15
|
9540 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
9541 |
#: includes/settings/wcj-settings-shipping-by-order-amount.php:15
|
9542 |
#: includes/settings/wcj-settings-shipping-by-order-qty.php:15
|
9543 |
#: includes/settings/wcj-settings-shipping-time.php:25
|
@@ -9891,7 +9913,7 @@ msgstr ""
|
|
9891 |
|
9892 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:360
|
9893 |
#: includes/settings/wcj-settings-global-discount.php:163
|
9894 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
9895 |
#: includes/settings/wcj-settings-product-addons.php:149
|
9896 |
#: includes/settings/wcj-settings-related-products.php:244
|
9897 |
msgid "Exclude Products"
|
@@ -10254,7 +10276,7 @@ msgid "Total Fees"
|
|
10254 |
msgstr ""
|
10255 |
|
10256 |
#: includes/settings/wcj-settings-checkout-fees.php:53
|
10257 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
10258 |
msgid "Taxable"
|
10259 |
msgstr ""
|
10260 |
|
@@ -10604,7 +10626,7 @@ msgstr ""
|
|
10604 |
#: includes/settings/wcj-settings-product-by-date.php:117
|
10605 |
#: includes/settings/wcj-settings-product-custom-info.php:185
|
10606 |
#: includes/settings/wcj-settings-product-input-fields.php:348
|
10607 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
10608 |
msgid "Advanced Options"
|
10609 |
msgstr ""
|
10610 |
|
@@ -10896,7 +10918,7 @@ msgstr ""
|
|
10896 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:22
|
10897 |
#: includes/settings/wcj-settings-multicurrency.php:22
|
10898 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:68
|
10899 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
10900 |
msgid "Exchange Rates Updates"
|
10901 |
msgstr ""
|
10902 |
|
@@ -10990,7 +11012,7 @@ msgid "Custom Currency"
|
|
10990 |
msgstr ""
|
10991 |
|
10992 |
#: includes/settings/wcj-settings-currency-exchange-rates.php:173
|
10993 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
10994 |
msgid "Exchange Rates"
|
10995 |
msgstr ""
|
10996 |
|
@@ -11007,9 +11029,9 @@ msgstr ""
|
|
11007 |
|
11008 |
#: includes/settings/wcj-settings-currency-external-products.php:20
|
11009 |
#: includes/settings/wcj-settings-currency-per-product.php:180
|
11010 |
-
#: includes/settings/wcj-settings-multicurrency-base-price.php:
|
11011 |
#: includes/settings/wcj-settings-multicurrency.php:234
|
11012 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
11013 |
#: includes/settings/wcj-settings-price-formats.php:59
|
11014 |
msgid "Currency"
|
11015 |
msgstr ""
|
@@ -11084,7 +11106,7 @@ msgstr ""
|
|
11084 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:27
|
11085 |
#: includes/settings/wcj-settings-multicurrency.php:28
|
11086 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:73
|
11087 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
11088 |
msgid "Enter Rates Manually"
|
11089 |
msgstr ""
|
11090 |
|
@@ -11092,7 +11114,7 @@ msgstr ""
|
|
11092 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:28
|
11093 |
#: includes/settings/wcj-settings-multicurrency.php:29
|
11094 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:74
|
11095 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
11096 |
msgid "Automatically via Currency Exchange Rates module"
|
11097 |
msgstr ""
|
11098 |
|
@@ -11100,7 +11122,7 @@ msgstr ""
|
|
11100 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:31
|
11101 |
#: includes/settings/wcj-settings-multicurrency.php:32
|
11102 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:77
|
11103 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
11104 |
msgid "Visit"
|
11105 |
msgstr ""
|
11106 |
|
@@ -11108,12 +11130,12 @@ msgstr ""
|
|
11108 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:31
|
11109 |
#: includes/settings/wcj-settings-multicurrency.php:32
|
11110 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:79
|
11111 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
11112 |
msgid "Currency Exchange Rates module"
|
11113 |
msgstr ""
|
11114 |
|
11115 |
#: includes/settings/wcj-settings-currency-per-product.php:138
|
11116 |
-
#: includes/settings/wcj-settings-multicurrency-base-price.php:
|
11117 |
#: includes/settings/wcj-settings-multicurrency.php:203
|
11118 |
msgid "Currencies Options"
|
11119 |
msgstr ""
|
@@ -11126,7 +11148,7 @@ msgid ""
|
|
11126 |
msgstr ""
|
11127 |
|
11128 |
#: includes/settings/wcj-settings-currency-per-product.php:144
|
11129 |
-
#: includes/settings/wcj-settings-multicurrency-base-price.php:
|
11130 |
#: includes/settings/wcj-settings-multicurrency.php:209
|
11131 |
msgid "Total Currencies"
|
11132 |
msgstr ""
|
@@ -12125,29 +12147,39 @@ msgid "Advanced Settings"
|
|
12125 |
msgstr ""
|
12126 |
|
12127 |
#: includes/settings/wcj-settings-global-discount.php:185
|
12128 |
-
msgid "
|
12129 |
msgstr ""
|
12130 |
|
12131 |
#: includes/settings/wcj-settings-global-discount.php:187
|
12132 |
msgid ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12133 |
"This will enable \"global discount\" product pricing in backend. It will "
|
12134 |
"also affect some modules, e.g.: \"Products XML Feeds\" module."
|
12135 |
msgstr ""
|
12136 |
|
12137 |
-
#: includes/settings/wcj-settings-global-discount.php:
|
12138 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:76
|
12139 |
#: includes/settings/wcj-settings-multicurrency.php:176
|
12140 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
12141 |
#: includes/settings/wcj-settings-price-by-user-role.php:111
|
12142 |
#: includes/settings/wcj-settings-product-addons.php:258
|
12143 |
#: includes/settings/wcj-settings-product-price-by-formula.php:100
|
12144 |
msgid "Price Filters Priority"
|
12145 |
msgstr ""
|
12146 |
|
12147 |
-
#: includes/settings/wcj-settings-global-discount.php:
|
12148 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:77
|
12149 |
#: includes/settings/wcj-settings-multicurrency.php:177
|
12150 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
12151 |
#: includes/settings/wcj-settings-price-by-user-role.php:112
|
12152 |
#: includes/settings/wcj-settings-product-addons.php:259
|
12153 |
#: includes/settings/wcj-settings-product-price-by-formula.php:101
|
@@ -12378,18 +12410,6 @@ msgstr ""
|
|
12378 |
msgid "Add compatibility with WooCommerce Price Filter Widget"
|
12379 |
msgstr ""
|
12380 |
|
12381 |
-
#: includes/settings/wcj-settings-multicurrency-base-price.php:90
|
12382 |
-
msgid "Third Party Price Filter Compatibility"
|
12383 |
-
msgstr ""
|
12384 |
-
|
12385 |
-
#: includes/settings/wcj-settings-multicurrency-base-price.php:91
|
12386 |
-
msgid "Add compatibility with Third Party Price Filter Widgets"
|
12387 |
-
msgstr ""
|
12388 |
-
|
12389 |
-
#: includes/settings/wcj-settings-multicurrency-base-price.php:92
|
12390 |
-
msgid "Requires WooCommerce Price Filter Compatibility option enabled"
|
12391 |
-
msgstr ""
|
12392 |
-
|
12393 |
#: includes/settings/wcj-settings-multicurrency.php:23
|
12394 |
msgid ""
|
12395 |
"Select how you want currency exchange rates to be updated. Possible options "
|
@@ -12449,7 +12469,7 @@ msgid "Revert on both cart & checkout pages"
|
|
12449 |
msgstr ""
|
12450 |
|
12451 |
#: includes/settings/wcj-settings-multicurrency.php:72
|
12452 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12453 |
#: includes/settings/wcj-settings-product-price-by-formula.php:64
|
12454 |
msgid "Rounding"
|
12455 |
msgstr ""
|
@@ -12496,15 +12516,18 @@ msgstr ""
|
|
12496 |
|
12497 |
#: includes/settings/wcj-settings-multicurrency.php:106
|
12498 |
#: includes/settings/wcj-settings-payment-gateways-min-max.php:65
|
|
|
12499 |
#: includes/settings/wcj-settings-product-msrp.php:105
|
12500 |
msgid "Compatibility"
|
12501 |
msgstr ""
|
12502 |
|
12503 |
#: includes/settings/wcj-settings-multicurrency.php:111
|
|
|
12504 |
msgid "WooCommerce Coupons"
|
12505 |
msgstr ""
|
12506 |
|
12507 |
#: includes/settings/wcj-settings-multicurrency.php:113
|
|
|
12508 |
msgid ""
|
12509 |
"When a fixed coupon is used its value changes according to the current "
|
12510 |
"currency"
|
@@ -12692,184 +12715,196 @@ msgstr ""
|
|
12692 |
msgid "Custom Page"
|
12693 |
msgstr ""
|
12694 |
|
12695 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12696 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12697 |
msgid "Dashboard Customization"
|
12698 |
msgstr ""
|
12699 |
|
12700 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12701 |
msgid "Custom Dashboard Content"
|
12702 |
msgstr ""
|
12703 |
|
12704 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12705 |
msgid ""
|
12706 |
"This will add content at the beginning of dashboard. If you need to add "
|
12707 |
"custom content to the end of the dashboard, use <strong>Custom Info Blocks</"
|
12708 |
"strong> section and select <strong>Account dashboard</strong> position."
|
12709 |
msgstr ""
|
12710 |
|
12711 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12712 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12713 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12714 |
#: includes/settings/wcj-settings-stock.php:42
|
12715 |
#: includes/settings/wcj-settings-stock.php:55
|
12716 |
msgid "Ignored if empty."
|
12717 |
msgstr ""
|
12718 |
|
12719 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12720 |
msgid "Hide \"Hello ...\" Message"
|
12721 |
msgstr ""
|
12722 |
|
12723 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12724 |
msgid "Hide \"From your account dashboard ...\" Message"
|
12725 |
msgstr ""
|
12726 |
|
12727 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12728 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12729 |
msgid "Custom Info Blocks"
|
12730 |
msgstr ""
|
12731 |
|
12732 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12733 |
msgid "Account content"
|
12734 |
msgstr ""
|
12735 |
|
12736 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12737 |
msgid "Account dashboard"
|
12738 |
msgstr ""
|
12739 |
|
12740 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12741 |
msgid "Account navigation"
|
12742 |
msgstr ""
|
12743 |
|
12744 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12745 |
msgid "After account downloads"
|
12746 |
msgstr ""
|
12747 |
|
12748 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12749 |
msgid "After account navigation"
|
12750 |
msgstr ""
|
12751 |
|
12752 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12753 |
msgid "After account orders"
|
12754 |
msgstr ""
|
12755 |
|
12756 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12757 |
msgid "After account payment methods"
|
12758 |
msgstr ""
|
12759 |
|
12760 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12761 |
msgid "After available downloads"
|
12762 |
msgstr ""
|
12763 |
|
12764 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12765 |
msgid "After customer login form"
|
12766 |
msgstr ""
|
12767 |
|
12768 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12769 |
msgid "After edit account address form"
|
12770 |
msgstr ""
|
12771 |
|
12772 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12773 |
msgid "After edit account form"
|
12774 |
msgstr ""
|
12775 |
|
12776 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12777 |
msgid "After my account"
|
12778 |
msgstr ""
|
12779 |
|
12780 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12781 |
msgid "Available download end"
|
12782 |
msgstr ""
|
12783 |
|
12784 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12785 |
msgid "Available download start"
|
12786 |
msgstr ""
|
12787 |
|
12788 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12789 |
msgid "Available downloads"
|
12790 |
msgstr ""
|
12791 |
|
12792 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12793 |
msgid "Before account downloads"
|
12794 |
msgstr ""
|
12795 |
|
12796 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12797 |
msgid "Before account navigation"
|
12798 |
msgstr ""
|
12799 |
|
12800 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12801 |
msgid "Before account orders"
|
12802 |
msgstr ""
|
12803 |
|
12804 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12805 |
msgid "Before account orders pagination"
|
12806 |
msgstr ""
|
12807 |
|
12808 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12809 |
msgid "Before account payment methods"
|
12810 |
msgstr ""
|
12811 |
|
12812 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12813 |
msgid "Before Available downloads"
|
12814 |
msgstr ""
|
12815 |
|
12816 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12817 |
msgid "Before customer login form"
|
12818 |
msgstr ""
|
12819 |
|
12820 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12821 |
msgid "Before edit account address form"
|
12822 |
msgstr ""
|
12823 |
|
12824 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12825 |
msgid "Before edit account form"
|
12826 |
msgstr ""
|
12827 |
|
12828 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12829 |
msgid "Before my account"
|
12830 |
msgstr ""
|
12831 |
|
12832 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12833 |
msgid "Edit account form"
|
12834 |
msgstr ""
|
12835 |
|
12836 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12837 |
msgid "Edit account form end"
|
12838 |
msgstr ""
|
12839 |
|
12840 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12841 |
msgid "Edit account form start"
|
12842 |
msgstr ""
|
12843 |
|
12844 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12845 |
msgid "Login form"
|
12846 |
msgstr ""
|
12847 |
|
12848 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12849 |
msgid "Login form end"
|
12850 |
msgstr ""
|
12851 |
|
12852 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12853 |
msgid "Login form start"
|
12854 |
msgstr ""
|
12855 |
|
12856 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12857 |
msgid "Lost password form"
|
12858 |
msgstr ""
|
12859 |
|
12860 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12861 |
msgid "Register form"
|
12862 |
msgstr ""
|
12863 |
|
12864 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12865 |
msgid "Register form end"
|
12866 |
msgstr ""
|
12867 |
|
12868 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12869 |
msgid "Register form start"
|
12870 |
msgstr ""
|
12871 |
|
12872 |
-
#: includes/settings/wcj-settings-my-account.php:
|
12873 |
msgid "Reset password form"
|
12874 |
msgstr ""
|
12875 |
|
@@ -12915,7 +12950,7 @@ msgstr ""
|
|
12915 |
#: includes/settings/wcj-settings-offer-price.php:48
|
12916 |
#: includes/settings/wcj-settings-order-min-amount.php:29
|
12917 |
#: includes/settings/wcj-settings-order-min-amount.php:36
|
12918 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12919 |
msgid "Exclude"
|
12920 |
msgstr ""
|
12921 |
|
@@ -13127,59 +13162,71 @@ msgid ""
|
|
13127 |
msgstr ""
|
13128 |
|
13129 |
#: includes/settings/wcj-settings-order-custom-statuses.php:54
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13130 |
msgid "\"Processing\" and \"Complete\" Action Buttons"
|
13131 |
msgstr ""
|
13132 |
|
13133 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
13134 |
msgid ""
|
13135 |
"By default, when order has custom status, \"Processing\" and \"Complete\" "
|
13136 |
"action buttons are hidden. You can enable it here. Possible values are: Show "
|
13137 |
"both; Show \"Processing\" only; Show \"Complete\" only; Hide (default)."
|
13138 |
msgstr ""
|
13139 |
|
13140 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
13141 |
msgid "Show both"
|
13142 |
msgstr ""
|
13143 |
|
13144 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
13145 |
msgid "Show \"Processing\" only"
|
13146 |
msgstr ""
|
13147 |
|
13148 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
13149 |
msgid "Show \"Complete\" only"
|
13150 |
msgstr ""
|
13151 |
|
13152 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
13153 |
msgid "Add Custom Statuses to Admin Order List Action Buttons"
|
13154 |
msgstr ""
|
13155 |
|
13156 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
13157 |
msgid ""
|
13158 |
"If you wish to add custom statuses buttons to the admin Orders page action "
|
13159 |
"buttons (Actions column), enable the checkbox here."
|
13160 |
msgstr ""
|
13161 |
|
13162 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
13163 |
msgid "Enable Colors"
|
13164 |
msgstr ""
|
13165 |
|
13166 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
13167 |
msgid "Choose if you want the buttons to have colors."
|
13168 |
msgstr ""
|
13169 |
|
13170 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
13171 |
msgid "Enable Colors in Status Column"
|
13172 |
msgstr ""
|
13173 |
|
13174 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
13175 |
msgid "Enable this if you want the statuses in Status column to have colors."
|
13176 |
msgstr ""
|
13177 |
|
13178 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
13179 |
msgid "Add Custom Statuses Buttons to Admin Order Preview Actions"
|
13180 |
msgstr ""
|
13181 |
|
13182 |
-
#: includes/settings/wcj-settings-order-custom-statuses.php:
|
13183 |
msgid ""
|
13184 |
"If you wish to add custom statuses buttons to the admin orders preview page, "
|
13185 |
"enable the checkbox here."
|
@@ -13728,7 +13775,7 @@ msgstr ""
|
|
13728 |
|
13729 |
#: includes/settings/wcj-settings-payment-gateways-by-currency.php:16
|
13730 |
#: includes/settings/wcj-settings-payment-gateways-by-user-role.php:34
|
13731 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
13732 |
msgid "Leave empty to disable."
|
13733 |
msgstr ""
|
13734 |
|
@@ -13746,7 +13793,7 @@ msgid "Denied Currencies"
|
|
13746 |
msgstr ""
|
13747 |
|
13748 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:22
|
13749 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
13750 |
#: includes/settings/wcj-settings-shipping-by-order-amount.php:20
|
13751 |
#: includes/settings/wcj-settings-shipping-by-order-qty.php:20
|
13752 |
#: includes/settings/wcj-settings-shipping-description.php:58
|
@@ -13756,7 +13803,7 @@ msgid "Use Shipping Instances"
|
|
13756 |
msgstr ""
|
13757 |
|
13758 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:24
|
13759 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
13760 |
#: includes/settings/wcj-settings-shipping-by-order-amount.php:22
|
13761 |
#: includes/settings/wcj-settings-shipping-by-order-qty.php:22
|
13762 |
#: includes/settings/wcj-settings-shipping-description.php:60
|
@@ -13774,10 +13821,12 @@ msgid ""
|
|
13774 |
msgstr ""
|
13775 |
|
13776 |
#: includes/settings/wcj-settings-payment-gateways-by-user-role.php:19
|
|
|
13777 |
msgid "Multiple Role Checking"
|
13778 |
msgstr ""
|
13779 |
|
13780 |
#: includes/settings/wcj-settings-payment-gateways-by-user-role.php:22
|
|
|
13781 |
msgid ""
|
13782 |
"Enable if you have some plugin that allows users with multiple roles like "
|
13783 |
"\"User Role Editor\"."
|
@@ -13831,101 +13880,117 @@ msgid ""
|
|
13831 |
"or modules."
|
13832 |
msgstr ""
|
13833 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13834 |
#: includes/settings/wcj-settings-payment-gateways-fees.php:23
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13835 |
msgid "Fee (or Discount) Title"
|
13836 |
msgstr ""
|
13837 |
|
13838 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13839 |
msgid "Fee (or discount) title to show to customer."
|
13840 |
msgstr ""
|
13841 |
|
13842 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13843 |
msgid "Fee (or Discount) Type"
|
13844 |
msgstr ""
|
13845 |
|
13846 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13847 |
msgid "Percent or fixed value."
|
13848 |
msgstr ""
|
13849 |
|
13850 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13851 |
msgid "Fee (or Discount) Value"
|
13852 |
msgstr ""
|
13853 |
|
13854 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13855 |
msgid "The value. For discount enter a negative number."
|
13856 |
msgstr ""
|
13857 |
|
13858 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13859 |
msgid "Minimum Cart Amount"
|
13860 |
msgstr ""
|
13861 |
|
13862 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13863 |
msgid "Minimum cart amount for adding the fee (or discount)."
|
13864 |
msgstr ""
|
13865 |
|
13866 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13867 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13868 |
msgid "Set 0 to disable."
|
13869 |
msgstr ""
|
13870 |
|
13871 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13872 |
msgid "Maximum Cart Amount"
|
13873 |
msgstr ""
|
13874 |
|
13875 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13876 |
msgid "Maximum cart amount for adding the fee (or discount)."
|
13877 |
msgstr ""
|
13878 |
|
13879 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13880 |
msgid "Round the fee (or discount) value before adding to the cart."
|
13881 |
msgstr ""
|
13882 |
|
13883 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13884 |
msgid "If rounding is enabled, set precision (i.e. number of decimals) here."
|
13885 |
msgstr ""
|
13886 |
|
13887 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13888 |
msgid "Tax class"
|
13889 |
msgstr ""
|
13890 |
|
13891 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13892 |
msgid "If taxing is enabled, set tax class here."
|
13893 |
msgstr ""
|
13894 |
|
13895 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13896 |
msgid "Standard Rate"
|
13897 |
msgstr ""
|
13898 |
|
13899 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13900 |
msgid "Exclude Shipping when Calculating Total Cart Amount"
|
13901 |
msgstr ""
|
13902 |
|
13903 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13904 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13905 |
msgid ""
|
13906 |
"This affects \"Percent\" type fees and \"Minimum/Maximum Cart Amount\" "
|
13907 |
"options."
|
13908 |
msgstr ""
|
13909 |
|
13910 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13911 |
msgid "Include Taxes"
|
13912 |
msgstr ""
|
13913 |
|
13914 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13915 |
msgid "Include taxes when calculating Total Cart Amount"
|
13916 |
msgstr ""
|
13917 |
|
13918 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13919 |
msgid "Require Products"
|
13920 |
msgstr ""
|
13921 |
|
13922 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13923 |
msgid ""
|
13924 |
"Require at least one of selected products to be in cart for fee to be "
|
13925 |
"applied."
|
13926 |
msgstr ""
|
13927 |
|
13928 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
13929 |
msgid "Do not apply fee, if at least one of selected products is in cart."
|
13930 |
msgstr ""
|
13931 |
|
@@ -14273,7 +14338,7 @@ msgid "Replace"
|
|
14273 |
msgstr ""
|
14274 |
|
14275 |
#: includes/settings/wcj-settings-pdf-invoicing-display.php:25
|
14276 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14277 |
#: includes/settings/wcj-settings-shipping.php:30
|
14278 |
msgid "Admin Title"
|
14279 |
msgstr ""
|
@@ -14763,68 +14828,68 @@ msgstr ""
|
|
14763 |
msgid "Disable Price by Country for Bots"
|
14764 |
msgstr ""
|
14765 |
|
14766 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14767 |
msgid "User IP Detection Method"
|
14768 |
msgstr ""
|
14769 |
|
14770 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14771 |
msgid "Price Format Method"
|
14772 |
msgstr ""
|
14773 |
|
14774 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14775 |
msgid "The moment \"Pretty Price\" and \"Rounding\" will be applied"
|
14776 |
msgstr ""
|
14777 |
|
14778 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14779 |
msgid "get_price()"
|
14780 |
msgstr ""
|
14781 |
|
14782 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14783 |
msgid "wc_get_price_to_display()"
|
14784 |
msgstr ""
|
14785 |
|
14786 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14787 |
msgid "Country Groups"
|
14788 |
msgstr ""
|
14789 |
|
14790 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14791 |
msgid "Countries Selection"
|
14792 |
msgstr ""
|
14793 |
|
14794 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14795 |
msgid "Choose how do you want to enter countries groups in admin."
|
14796 |
msgstr ""
|
14797 |
|
14798 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14799 |
msgid "Comma separated list"
|
14800 |
msgstr ""
|
14801 |
|
14802 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14803 |
msgid "Multiselect"
|
14804 |
msgstr ""
|
14805 |
|
14806 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14807 |
#: includes/settings/wcj-settings-product-by-condition.php:82
|
14808 |
#: includes/settings/wcj-settings-related-products.php:164
|
14809 |
msgid "Chosen select"
|
14810 |
msgstr ""
|
14811 |
|
14812 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14813 |
msgid "Autogenerate Groups"
|
14814 |
msgstr ""
|
14815 |
|
14816 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14817 |
msgid "Groups Number"
|
14818 |
msgstr ""
|
14819 |
|
14820 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14821 |
msgid ""
|
14822 |
"Countries. List of comma separated country codes.<br>For country codes and "
|
14823 |
"predefined sets visit <a href=\"https://booster.io/country-codes/\" target="
|
14824 |
"\"_blank\">https://booster.io/country-codes/</a>"
|
14825 |
msgstr ""
|
14826 |
|
14827 |
-
#: includes/settings/wcj-settings-price-by-country.php:
|
14828 |
msgid "Multiply Price by"
|
14829 |
msgstr ""
|
14830 |
|
@@ -15389,7 +15454,7 @@ msgid "Position Priority on Frontend"
|
|
15389 |
msgstr ""
|
15390 |
|
15391 |
#: includes/settings/wcj-settings-product-addons.php:220
|
15392 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
15393 |
#: includes/settings/wcj-settings-shipping-options.php:41
|
15394 |
msgid "Set to zero to use the default priority."
|
15395 |
msgstr ""
|
@@ -17470,23 +17535,23 @@ msgstr ""
|
|
17470 |
msgid "Term #%s"
|
17471 |
msgstr ""
|
17472 |
|
17473 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
17474 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
17475 |
#, php-format
|
17476 |
msgid "Shipping Methods by %s"
|
17477 |
msgstr ""
|
17478 |
|
17479 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
17480 |
#, php-format
|
17481 |
msgid "Include %s"
|
17482 |
msgstr ""
|
17483 |
|
17484 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
17485 |
#, php-format
|
17486 |
msgid "Exclude %s"
|
17487 |
msgstr ""
|
17488 |
|
17489 |
-
#: includes/settings/wcj-settings-shipping-by-condition.php:
|
17490 |
msgid "Filter Priority"
|
17491 |
msgstr ""
|
17492 |
|
45 |
#: includes/class-wcj-track-users.php:251
|
46 |
#: includes/classes/class-wcj-module.php:532
|
47 |
#: includes/classes/class-wcj-module.php:732
|
48 |
+
#: includes/settings/wcj-settings-price-by-country.php:195
|
49 |
msgid "Booster"
|
50 |
msgstr ""
|
51 |
|
98 |
#: includes/admin/class-wc-settings-jetpack.php:217
|
99 |
#: includes/class-wcj-admin-bar.php:384
|
100 |
#: includes/settings/wcj-settings-emails-verification.php:146
|
101 |
+
#: includes/settings/wcj-settings-price-by-country.php:194
|
102 |
msgid "WooCommerce"
|
103 |
msgstr ""
|
104 |
|
105 |
#: includes/admin/class-wc-settings-jetpack.php:219
|
106 |
#: includes/admin/class-wc-settings-jetpack.php:414
|
107 |
#: includes/class-wcj-admin-bar.php:168 includes/class-wcj-admin-bar.php:508
|
108 |
+
#: includes/class-wcj-admin-bar.php:608 includes/core/class-wcj-admin.php:116
|
109 |
msgid "Settings"
|
110 |
msgstr ""
|
111 |
|
168 |
|
169 |
#: includes/admin/class-wc-settings-jetpack.php:372
|
170 |
#: includes/admin/class-wc-settings-jetpack.php:379
|
171 |
+
#: includes/admin/class-wcj-tools.php:76
|
172 |
msgid "Module"
|
173 |
msgstr ""
|
174 |
|
175 |
#: includes/admin/class-wc-settings-jetpack.php:373
|
176 |
#: includes/admin/class-wc-settings-jetpack.php:380
|
177 |
+
#: includes/admin/class-wcj-tools.php:77
|
178 |
#: includes/export/class-wcj-fields-helper.php:293
|
179 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:63
|
180 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:172
|
241 |
msgstr ""
|
242 |
|
243 |
#: includes/admin/class-wc-settings-jetpack.php:486
|
244 |
+
#: includes/class-wcj-global-discount.php:29
|
245 |
#: includes/settings/wcj-settings-product-addons.php:254
|
246 |
msgid "Global Discount"
|
247 |
msgstr ""
|
281 |
msgstr ""
|
282 |
|
283 |
#: includes/admin/class-wc-settings-jetpack.php:532
|
284 |
+
#: includes/core/class-wcj-admin.php:100
|
285 |
msgid "Booster for WooCommerce"
|
286 |
msgstr ""
|
287 |
|
327 |
msgid "%d options successfully deleted."
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: includes/admin/class-wcj-tools.php:35
|
331 |
msgid "Booster for WooCommerce Tools"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: includes/admin/class-wcj-tools.php:36
|
335 |
msgid "Booster Tools"
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: includes/admin/class-wcj-tools.php:55
|
339 |
msgid "Tools Dashboard"
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: includes/admin/class-wcj-tools.php:69
|
343 |
msgid "Booster for WooCommerce Tools - Dashboard"
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: includes/admin/class-wcj-tools.php:70
|
347 |
msgid ""
|
348 |
"This dashboard lets you check statuses and short descriptions of all "
|
349 |
"available Booster for WooCommerce tools. Tools can be enabled through "
|
351 |
"above."
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: includes/admin/class-wcj-tools.php:75
|
355 |
msgid "Tool"
|
356 |
msgstr ""
|
357 |
|
358 |
+
#: includes/admin/class-wcj-tools.php:78
|
359 |
#: includes/class-wcj-product-by-user.php:197
|
360 |
#: includes/export/class-wcj-fields-helper.php:294
|
361 |
msgid "Status"
|
853 |
msgid "All Products and All Attributes."
|
854 |
msgstr ""
|
855 |
|
856 |
+
#: includes/class-wcj-admin-tools.php:152
|
857 |
#: includes/settings/wcj-settings-export.php:157
|
858 |
#: includes/settings/wcj-settings-export.php:236
|
859 |
msgid "Product Meta"
|
860 |
msgstr ""
|
861 |
|
862 |
+
#: includes/class-wcj-admin-tools.php:169
|
863 |
#: includes/settings/wcj-settings-export.php:86
|
864 |
#: includes/settings/wcj-settings-export.php:154
|
865 |
msgid "Order Meta"
|
866 |
msgstr ""
|
867 |
|
868 |
+
#: includes/class-wcj-admin-tools.php:203
|
869 |
msgid "Order Items Meta"
|
870 |
msgstr ""
|
871 |
|
872 |
+
#: includes/class-wcj-admin-tools.php:205
|
873 |
msgid "Item Key"
|
874 |
msgstr ""
|
875 |
|
876 |
+
#: includes/class-wcj-admin-tools.php:205
|
877 |
msgid "Item Meta Key"
|
878 |
msgstr ""
|
879 |
|
880 |
+
#: includes/class-wcj-admin-tools.php:205
|
881 |
msgid "Item Meta Value"
|
882 |
msgstr ""
|
883 |
|
884 |
+
#: includes/class-wcj-admin-tools.php:240
|
885 |
+
#: includes/class-wcj-admin-tools.php:282
|
886 |
+
#: includes/class-wcj-admin-tools.php:291
|
887 |
#: includes/class-wcj-product-bulk-meta-editor.php:339
|
888 |
#: includes/class-wcj-product-bulk-price-converter.php:148
|
889 |
#: includes/class-wcj-sku.php:668
|
892 |
msgid "Product"
|
893 |
msgstr ""
|
894 |
|
895 |
+
#: includes/class-wcj-admin-tools.php:241
|
896 |
+
#: includes/class-wcj-admin-tools.php:283
|
897 |
+
#: includes/class-wcj-admin-tools.php:292
|
898 |
#: includes/reports/wcj-class-reports-stock.php:270
|
899 |
msgid "Category"
|
900 |
msgstr ""
|
901 |
|
902 |
+
#: includes/class-wcj-admin-tools.php:308
|
903 |
msgid "Total Products:"
|
904 |
msgstr ""
|
905 |
|
1932 |
#: includes/settings/wcj-settings-export.php:27
|
1933 |
#: includes/settings/wcj-settings-order-custom-statuses.php:29
|
1934 |
#: includes/settings/wcj-settings-order-custom-statuses.php:37
|
1935 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:80
|
1936 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:107
|
1937 |
#: includes/settings/wcj-settings-order-min-amount.php:53
|
1938 |
#: includes/settings/wcj-settings-orders.php:132
|
1939 |
#: includes/settings/wcj-settings-orders.php:159
|
1954 |
msgid "Add"
|
1955 |
msgstr ""
|
1956 |
|
1957 |
+
#: includes/class-wcj-global-discount.php:30
|
1958 |
msgid "Add global discount to all products."
|
1959 |
msgstr ""
|
1960 |
|
2131 |
msgstr ""
|
2132 |
|
2133 |
#: includes/class-wcj-my-account.php:43
|
2134 |
+
#: includes/settings/wcj-settings-my-account.php:310
|
2135 |
msgid "View order"
|
2136 |
msgstr ""
|
2137 |
|
2143 |
msgid "Lost password"
|
2144 |
msgstr ""
|
2145 |
|
2146 |
+
#: includes/class-wcj-my-account.php:302
|
2147 |
#, php-format
|
2148 |
msgid "Hello %1$s (not %1$s? <a href=\"%2$s\">Log out</a>)"
|
2149 |
msgstr ""
|
2150 |
|
2151 |
+
#: includes/class-wcj-my-account.php:312
|
2152 |
#, php-format
|
2153 |
msgid ""
|
2154 |
"From your account dashboard you can view your <a href=\"%1$s\">recent "
|
2156 |
"and <a href=\"%3$s\">edit your password and account details</a>."
|
2157 |
msgstr ""
|
2158 |
|
2159 |
+
#: includes/class-wcj-my-account.php:418
|
2160 |
msgid "User role"
|
2161 |
msgstr ""
|
2162 |
|
2163 |
+
#: includes/class-wcj-my-account.php:498
|
2164 |
#: includes/class-wcj-product-bulk-meta-editor.php:279
|
2165 |
#: includes/class-wcj-product-by-user.php:206
|
2166 |
#: includes/class-wcj-purchase-data.php:94
|
2422 |
"Tool lets you add, edit or delete any custom status for WooCommerce orders."
|
2423 |
msgstr ""
|
2424 |
|
2425 |
+
#: includes/class-wcj-order-custom-statuses.php:162
|
2426 |
#, php-format
|
2427 |
msgid "Change order status to %s"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
+
#: includes/class-wcj-order-custom-statuses.php:172
|
2431 |
msgid "Change status: "
|
2432 |
msgstr ""
|
2433 |
|
2434 |
+
#: includes/class-wcj-order-custom-statuses.php:212
|
2435 |
msgid "Processing"
|
2436 |
msgstr ""
|
2437 |
|
2438 |
+
#: includes/class-wcj-order-custom-statuses.php:222
|
2439 |
msgid "Complete"
|
2440 |
msgstr ""
|
2441 |
|
2442 |
+
#: includes/class-wcj-order-custom-statuses.php:327
|
2443 |
#, php-format
|
2444 |
msgid " <span class=\"count\">(%s)</span>"
|
2445 |
msgid_plural " <span class=\"count\">(%s)</span>"
|
2446 |
msgstr[0] ""
|
2447 |
msgstr[1] ""
|
2448 |
|
2449 |
+
#: includes/class-wcj-order-custom-statuses.php:425
|
2450 |
+
#: includes/class-wcj-order-custom-statuses.php:427
|
2451 |
msgid "Mark"
|
2452 |
msgstr ""
|
2453 |
|
2772 |
msgid "Change product price and currency automatically by customer's country."
|
2773 |
msgstr ""
|
2774 |
|
2775 |
+
#: includes/class-wcj-price-by-country.php:131
|
2776 |
msgid "Price filter widget product prices recalculated."
|
2777 |
msgstr ""
|
2778 |
|
2863 |
#: includes/settings/wcj-settings-admin-tools.php:22
|
2864 |
#: includes/settings/wcj-settings-admin-tools.php:29
|
2865 |
#: includes/settings/wcj-settings-admin-tools.php:38
|
2866 |
+
#: includes/settings/wcj-settings-admin-tools.php:67
|
2867 |
+
#: includes/settings/wcj-settings-admin-tools.php:84
|
2868 |
+
#: includes/settings/wcj-settings-admin-tools.php:92
|
2869 |
+
#: includes/settings/wcj-settings-admin-tools.php:100
|
2870 |
#: includes/settings/wcj-settings-breadcrumbs.php:20
|
2871 |
#: includes/settings/wcj-settings-call-for-price.php:79
|
2872 |
#: includes/settings/wcj-settings-cart-customization.php:34
|
2916 |
#: includes/settings/wcj-settings-general.php:197
|
2917 |
#: includes/settings/wcj-settings-global-discount.php:57
|
2918 |
#: includes/settings/wcj-settings-global-discount.php:186
|
2919 |
+
#: includes/settings/wcj-settings-global-discount.php:194
|
2920 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:28
|
2921 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:57
|
2922 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:91
|
2940 |
#: includes/settings/wcj-settings-my-account.php:104
|
2941 |
#: includes/settings/wcj-settings-offer-price.php:27
|
2942 |
#: includes/settings/wcj-settings-order-custom-statuses.php:45
|
2943 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:55
|
2944 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:98
|
2945 |
#: includes/settings/wcj-settings-order-numbers.php:97
|
2946 |
#: includes/settings/wcj-settings-order-numbers.php:105
|
2947 |
#: includes/settings/wcj-settings-order-numbers.php:112
|
2960 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:23
|
2961 |
#: includes/settings/wcj-settings-payment-gateways-by-user-role.php:23
|
2962 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:95
|
2963 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:21
|
2964 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:86
|
2965 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:102
|
2966 |
#: includes/settings/wcj-settings-payment-gateways-per-category.php:25
|
2967 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:55
|
2968 |
#: includes/settings/wcj-settings-pdf-invoicing-display.php:118
|
2976 |
#: includes/settings/wcj-settings-price-by-country.php:106
|
2977 |
#: includes/settings/wcj-settings-price-by-country.php:133
|
2978 |
#: includes/settings/wcj-settings-price-by-country.php:142
|
2979 |
+
#: includes/settings/wcj-settings-price-by-country.php:166
|
2980 |
#: includes/settings/wcj-settings-price-by-user-role.php:19
|
2981 |
#: includes/settings/wcj-settings-price-by-user-role.php:46
|
2982 |
#: includes/settings/wcj-settings-price-by-user-role.php:93
|
3041 |
#: includes/settings/wcj-settings-related-products.php:112
|
3042 |
#: includes/settings/wcj-settings-related-products.php:119
|
3043 |
#: includes/settings/wcj-settings-related-products.php:149
|
3044 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:25
|
3045 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:38
|
3046 |
#: includes/settings/wcj-settings-shipping-by-order-amount.php:21
|
3047 |
#: includes/settings/wcj-settings-shipping-by-order-qty.php:21
|
3048 |
#: includes/settings/wcj-settings-shipping-calculator.php:20
|
3175 |
msgid "Add (paid/free/discount) addons to products."
|
3176 |
msgstr ""
|
3177 |
|
3178 |
+
#: includes/class-wcj-product-addons.php:278
|
3179 |
msgid "Some of the required addons are not selected!"
|
3180 |
msgstr ""
|
3181 |
|
3182 |
+
#: includes/class-wcj-product-addons.php:293
|
3183 |
msgid ""
|
3184 |
"Booster: Free plugin's version is limited to only three products with per "
|
3185 |
"product addons enabled at a time. You will need to get <a href=\"https://"
|
3825 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:73
|
3826 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:107
|
3827 |
#: includes/settings/wcj-settings-mini-cart.php:46
|
3828 |
+
#: includes/settings/wcj-settings-my-account.php:269
|
3829 |
#: includes/settings/wcj-settings-product-add-to-cart.php:286
|
3830 |
#: includes/settings/wcj-settings-product-add-to-cart.php:321
|
3831 |
#: includes/settings/wcj-settings-product-custom-info.php:96
|
4018 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:65
|
4019 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:99
|
4020 |
#: includes/settings/wcj-settings-mini-cart.php:39
|
4021 |
+
#: includes/settings/wcj-settings-my-account.php:174
|
4022 |
+
#: includes/settings/wcj-settings-my-account.php:261
|
4023 |
#: includes/settings/wcj-settings-product-custom-info.php:88
|
4024 |
#: includes/settings/wcj-settings-product-tabs.php:92
|
4025 |
#: includes/widgets/class-wcj-widget-left-to-free-shipping.php:59
|
4450 |
|
4451 |
#: includes/class-wcj-shipping-by-products.php:205
|
4452 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:25
|
4453 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:40
|
4454 |
#: includes/settings/wcj-settings-shipping-by-order-amount.php:23
|
4455 |
#: includes/settings/wcj-settings-shipping-by-order-qty.php:23
|
4456 |
#: includes/settings/wcj-settings-shipping-description.php:61
|
4967 |
msgid "Page %page_number% / %total_pages%"
|
4968 |
msgstr ""
|
4969 |
|
4970 |
+
#: includes/core/class-wcj-admin.php:60
|
4971 |
msgid "Please update <strong>Booster Plus for WooCommerce</strong> plugin."
|
4972 |
msgstr ""
|
4973 |
|
4974 |
+
#: includes/core/class-wcj-admin.php:62
|
4975 |
#, php-format
|
4976 |
msgid ""
|
4977 |
"Visit <a target=\"_blank\" href=\"%s\">your account page</a> on booster.io "
|
4978 |
"to download the latest Booster Plus version."
|
4979 |
msgstr ""
|
4980 |
|
4981 |
+
#: includes/core/class-wcj-admin.php:66
|
4982 |
#, php-format
|
4983 |
msgid "Click <a target=\"_blank\" href=\"%s\">here</a> for more info."
|
4984 |
msgstr ""
|
4985 |
|
4986 |
+
#: includes/core/class-wcj-admin.php:84
|
4987 |
#, php-format
|
4988 |
msgid ""
|
4989 |
"If you like <strong>Booster for WooCommerce</strong> please leave us a %s "
|
4990 |
"rating. Thank you, we couldn't have done it without you!"
|
4991 |
msgstr ""
|
4992 |
|
4993 |
+
#: includes/core/class-wcj-admin.php:101
|
4994 |
msgid "Booster Settings"
|
4995 |
msgstr ""
|
4996 |
|
4997 |
+
#: includes/core/class-wcj-admin.php:117
|
4998 |
msgid "Docs"
|
4999 |
msgstr ""
|
5000 |
|
5001 |
+
#: includes/core/class-wcj-admin.php:120
|
5002 |
msgid "Unlock all"
|
5003 |
msgstr ""
|
5004 |
|
7623 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:63
|
7624 |
#: includes/settings/wcj-settings-multicurrency.php:162
|
7625 |
#: includes/settings/wcj-settings-order-min-amount.php:69
|
7626 |
+
#: includes/settings/wcj-settings-price-by-country.php:177
|
7627 |
#: includes/settings/wcj-settings-price-by-user-role.php:106
|
7628 |
#: includes/settings/wcj-settings-product-addons.php:230
|
7629 |
msgid "Advanced"
|
7860 |
|
7861 |
#: includes/price-by-country/class-wcj-price-by-country-local.php:111
|
7862 |
#: includes/settings/meta-box/wcj-settings-meta-box-price-by-country.php:67
|
7863 |
+
#: includes/settings/wcj-settings-price-by-country.php:355
|
7864 |
msgid "Make empty price"
|
7865 |
msgstr ""
|
7866 |
|
7867 |
#: includes/price-by-country/class-wcj-price-by-country-local.php:215
|
7868 |
#: includes/settings/meta-box/wcj-settings-meta-box-price-by-country.php:17
|
7869 |
#: includes/settings/wcj-settings-add-to-cart.php:50
|
7870 |
+
#: includes/settings/wcj-settings-price-by-country.php:249
|
7871 |
+
#: includes/settings/wcj-settings-price-by-country.php:250
|
7872 |
+
#: includes/settings/wcj-settings-price-by-country.php:255
|
7873 |
+
#: includes/settings/wcj-settings-price-by-country.php:303
|
7874 |
+
#: includes/settings/wcj-settings-price-by-country.php:346
|
7875 |
msgid "Group"
|
7876 |
msgstr ""
|
7877 |
|
8185 |
#: includes/settings/wcj-settings-checkout-customization.php:107
|
8186 |
#: includes/settings/wcj-settings-cross-sells.php:87
|
8187 |
#: includes/settings/wcj-settings-currency.php:22
|
8188 |
+
#: includes/settings/wcj-settings-my-account.php:210
|
8189 |
+
#: includes/settings/wcj-settings-my-account.php:217
|
8190 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:73
|
8191 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:48
|
8192 |
#: includes/settings/wcj-settings-product-addons.php:291
|
8193 |
#: includes/settings/wcj-settings-product-bookings.php:100
|
8218 |
#: includes/settings/meta-box/wcj-settings-meta-box-add-to-cart-button-visibility.php:30
|
8219 |
#: includes/settings/meta-box/wcj-settings-meta-box-add-to-cart-button-visibility.php:49
|
8220 |
#: includes/settings/wcj-settings-checkout-customization.php:196
|
8221 |
+
#: includes/settings/wcj-settings-my-account.php:175
|
8222 |
+
#: includes/settings/wcj-settings-my-account.php:202
|
8223 |
+
#: includes/settings/wcj-settings-my-account.php:262
|
8224 |
#: includes/settings/wcj-settings-sale-flash.php:27
|
8225 |
#: includes/settings/wcj-settings-sale-flash.php:111
|
8226 |
msgid "You can use HTML and/or shortcodes here."
|
8326 |
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:25
|
8327 |
#: includes/settings/wcj-settings-currency-exchange-rates.php:60
|
8328 |
#: includes/settings/wcj-settings-offer-price.php:168
|
8329 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:93
|
8330 |
#: includes/settings/wcj-settings-product-by-user.php:70
|
8331 |
msgid "Number of decimals"
|
8332 |
msgstr ""
|
8706 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:18
|
8707 |
#: includes/settings/wcj-settings-checkout-fees.php:72
|
8708 |
#: includes/settings/wcj-settings-global-discount.php:69
|
8709 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:57
|
8710 |
#: includes/settings/wcj-settings-purchase-data.php:89
|
8711 |
#: includes/settings/wcj-settings-wholesale-price.php:80
|
8712 |
msgid "Percent"
|
8715 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:19
|
8716 |
#: includes/settings/wcj-settings-checkout-fees.php:71
|
8717 |
#: includes/settings/wcj-settings-global-discount.php:70
|
8718 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:56
|
8719 |
#: includes/settings/wcj-settings-price-by-user-role.php:31
|
8720 |
#: includes/settings/wcj-settings-purchase-data.php:88
|
8721 |
#: includes/settings/wcj-settings-wholesale-price.php:81
|
8789 |
#: includes/settings/wcj-settings-max-products-per-user.php:43
|
8790 |
#: includes/settings/wcj-settings-my-account.php:67
|
8791 |
#: includes/settings/wcj-settings-my-account.php:135
|
8792 |
+
#: includes/settings/wcj-settings-my-account.php:194
|
8793 |
+
#: includes/settings/wcj-settings-my-account.php:235
|
8794 |
#: includes/settings/wcj-settings-order-quantities.php:85
|
8795 |
#: includes/settings/wcj-settings-order-quantities.php:143
|
8796 |
#: includes/settings/wcj-settings-order-quantities.php:201
|
8802 |
#: includes/settings/wcj-settings-sale-flash.php:20
|
8803 |
#: includes/settings/wcj-settings-sale-flash.php:65
|
8804 |
#: includes/settings/wcj-settings-sale-flash.php:90
|
8805 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:62
|
8806 |
#: includes/settings/wcj-settings-shipping-options.php:21
|
8807 |
#: includes/settings/wcj-settings-stock.php:20
|
8808 |
#: includes/settings/wcj-settings-stock.php:87
|
9015 |
#: includes/settings/wcj-settings-add-to-cart.php:156
|
9016 |
#: includes/settings/wcj-settings-add-to-cart.php:213
|
9017 |
#: includes/settings/wcj-settings-add-to-cart.php:222
|
9018 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:43
|
9019 |
#: includes/settings/wcj-settings-product-custom-info.php:191
|
9020 |
msgid "Leave blank to disable."
|
9021 |
msgstr ""
|
9316 |
msgid "Will remove admin notices (including the Connect notice)."
|
9317 |
msgstr ""
|
9318 |
|
9319 |
+
#: includes/settings/wcj-settings-admin-tools.php:45
|
9320 |
+
msgid "Enable Interface By User Roles"
|
9321 |
+
msgstr ""
|
9322 |
+
|
9323 |
+
#: includes/settings/wcj-settings-admin-tools.php:46
|
9324 |
+
msgid "The interface can't be disabled for The Administrator role."
|
9325 |
+
msgstr ""
|
9326 |
+
|
9327 |
+
#: includes/settings/wcj-settings-admin-tools.php:46
|
9328 |
+
msgid "Leave it empty to enable the interface for all the roles."
|
9329 |
+
msgstr ""
|
9330 |
+
|
9331 |
+
#: includes/settings/wcj-settings-admin-tools.php:47
|
9332 |
+
msgid "Disables the whole Booster admin interface for not selected roles."
|
9333 |
+
msgstr ""
|
9334 |
+
|
9335 |
+
#: includes/settings/wcj-settings-admin-tools.php:60
|
9336 |
msgid "Orders Options"
|
9337 |
msgstr ""
|
9338 |
|
9339 |
+
#: includes/settings/wcj-settings-admin-tools.php:65
|
9340 |
msgid "Show Order Meta"
|
9341 |
msgstr ""
|
9342 |
|
9343 |
+
#: includes/settings/wcj-settings-admin-tools.php:66
|
9344 |
msgid "Will show order meta table in meta box."
|
9345 |
msgstr ""
|
9346 |
|
9347 |
+
#: includes/settings/wcj-settings-admin-tools.php:77
|
9348 |
msgid "Products Options"
|
9349 |
msgstr ""
|
9350 |
|
9351 |
+
#: includes/settings/wcj-settings-admin-tools.php:82
|
9352 |
msgid "Show Product Meta"
|
9353 |
msgstr ""
|
9354 |
|
9355 |
+
#: includes/settings/wcj-settings-admin-tools.php:83
|
9356 |
msgid "Will show product meta table in meta box."
|
9357 |
msgstr ""
|
9358 |
|
9359 |
+
#: includes/settings/wcj-settings-admin-tools.php:90
|
9360 |
msgid "Show Variable Product Pricing Table"
|
9361 |
msgstr ""
|
9362 |
|
9363 |
+
#: includes/settings/wcj-settings-admin-tools.php:91
|
9364 |
msgid "Will allow to set all variations prices in single meta box."
|
9365 |
msgstr ""
|
9366 |
|
9367 |
+
#: includes/settings/wcj-settings-admin-tools.php:98
|
9368 |
msgid "Product Revisions"
|
9369 |
msgstr ""
|
9370 |
|
9371 |
+
#: includes/settings/wcj-settings-admin-tools.php:99
|
9372 |
msgid "Will enable product revisions."
|
9373 |
msgstr ""
|
9374 |
|
9375 |
+
#: includes/settings/wcj-settings-admin-tools.php:106
|
9376 |
msgid "JSON Product Search Limit"
|
9377 |
msgstr ""
|
9378 |
|
9379 |
+
#: includes/settings/wcj-settings-admin-tools.php:107
|
9380 |
msgid ""
|
9381 |
"This will set the maximum number of products to return on JSON search (e.g. "
|
9382 |
"when setting Upsells and Cross-sells on product edit page)."
|
9383 |
msgstr ""
|
9384 |
|
9385 |
+
#: includes/settings/wcj-settings-admin-tools.php:108
|
9386 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:240
|
9387 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:249
|
9388 |
#: includes/settings/wcj-settings-order-quantities.php:208
|
9509 |
#: includes/settings/wcj-settings-cart.php:24
|
9510 |
#: includes/settings/wcj-settings-checkout-custom-info.php:20
|
9511 |
#: includes/settings/wcj-settings-mini-cart.php:19
|
9512 |
+
#: includes/settings/wcj-settings-my-account.php:241
|
9513 |
#: includes/settings/wcj-settings-product-custom-info.php:52
|
9514 |
msgid "Total Blocks"
|
9515 |
msgstr ""
|
9517 |
#: includes/settings/wcj-settings-cart.php:39
|
9518 |
#: includes/settings/wcj-settings-checkout-custom-info.php:36
|
9519 |
#: includes/settings/wcj-settings-mini-cart.php:34
|
9520 |
+
#: includes/settings/wcj-settings-my-account.php:256
|
9521 |
msgid "Info Block"
|
9522 |
msgstr ""
|
9523 |
|
9524 |
#: includes/settings/wcj-settings-cart.php:58
|
9525 |
#: includes/settings/wcj-settings-checkout-custom-info.php:85
|
9526 |
#: includes/settings/wcj-settings-mini-cart.php:57
|
9527 |
+
#: includes/settings/wcj-settings-my-account.php:314
|
9528 |
#: includes/settings/wcj-settings-product-custom-info.php:124
|
9529 |
msgid "Position Order (i.e. Priority)"
|
9530 |
msgstr ""
|
9554 |
#: includes/settings/wcj-settings-payment-gateways-by-country.php:15
|
9555 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:17
|
9556 |
#: includes/settings/wcj-settings-payment-gateways-by-user-role.php:14
|
9557 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:15
|
9558 |
#: includes/settings/wcj-settings-payment-gateways-min-max.php:15
|
9559 |
#: includes/settings/wcj-settings-payment-gateways-per-category.php:19
|
9560 |
#: includes/settings/wcj-settings-price-formats.php:15
|
9561 |
#: includes/settings/wcj-settings-product-tabs.php:15
|
9562 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:32
|
9563 |
#: includes/settings/wcj-settings-shipping-by-order-amount.php:15
|
9564 |
#: includes/settings/wcj-settings-shipping-by-order-qty.php:15
|
9565 |
#: includes/settings/wcj-settings-shipping-time.php:25
|
9913 |
|
9914 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:360
|
9915 |
#: includes/settings/wcj-settings-global-discount.php:163
|
9916 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:144
|
9917 |
#: includes/settings/wcj-settings-product-addons.php:149
|
9918 |
#: includes/settings/wcj-settings-related-products.php:244
|
9919 |
msgid "Exclude Products"
|
10276 |
msgstr ""
|
10277 |
|
10278 |
#: includes/settings/wcj-settings-checkout-fees.php:53
|
10279 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:101
|
10280 |
msgid "Taxable"
|
10281 |
msgstr ""
|
10282 |
|
10626 |
#: includes/settings/wcj-settings-product-by-date.php:117
|
10627 |
#: includes/settings/wcj-settings-product-custom-info.php:185
|
10628 |
#: includes/settings/wcj-settings-product-input-fields.php:348
|
10629 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:122
|
10630 |
msgid "Advanced Options"
|
10631 |
msgstr ""
|
10632 |
|
10918 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:22
|
10919 |
#: includes/settings/wcj-settings-multicurrency.php:22
|
10920 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:68
|
10921 |
+
#: includes/settings/wcj-settings-price-by-country.php:319
|
10922 |
msgid "Exchange Rates Updates"
|
10923 |
msgstr ""
|
10924 |
|
11012 |
msgstr ""
|
11013 |
|
11014 |
#: includes/settings/wcj-settings-currency-exchange-rates.php:173
|
11015 |
+
#: includes/settings/wcj-settings-price-by-country.php:314
|
11016 |
msgid "Exchange Rates"
|
11017 |
msgstr ""
|
11018 |
|
11029 |
|
11030 |
#: includes/settings/wcj-settings-currency-external-products.php:20
|
11031 |
#: includes/settings/wcj-settings-currency-per-product.php:180
|
11032 |
+
#: includes/settings/wcj-settings-multicurrency-base-price.php:123
|
11033 |
#: includes/settings/wcj-settings-multicurrency.php:234
|
11034 |
+
#: includes/settings/wcj-settings-price-by-country.php:294
|
11035 |
#: includes/settings/wcj-settings-price-formats.php:59
|
11036 |
msgid "Currency"
|
11037 |
msgstr ""
|
11106 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:27
|
11107 |
#: includes/settings/wcj-settings-multicurrency.php:28
|
11108 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:73
|
11109 |
+
#: includes/settings/wcj-settings-price-by-country.php:324
|
11110 |
msgid "Enter Rates Manually"
|
11111 |
msgstr ""
|
11112 |
|
11114 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:28
|
11115 |
#: includes/settings/wcj-settings-multicurrency.php:29
|
11116 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:74
|
11117 |
+
#: includes/settings/wcj-settings-price-by-country.php:325
|
11118 |
msgid "Automatically via Currency Exchange Rates module"
|
11119 |
msgstr ""
|
11120 |
|
11122 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:31
|
11123 |
#: includes/settings/wcj-settings-multicurrency.php:32
|
11124 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:77
|
11125 |
+
#: includes/settings/wcj-settings-price-by-country.php:328
|
11126 |
msgid "Visit"
|
11127 |
msgstr ""
|
11128 |
|
11130 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:31
|
11131 |
#: includes/settings/wcj-settings-multicurrency.php:32
|
11132 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:79
|
11133 |
+
#: includes/settings/wcj-settings-price-by-country.php:328
|
11134 |
msgid "Currency Exchange Rates module"
|
11135 |
msgstr ""
|
11136 |
|
11137 |
#: includes/settings/wcj-settings-currency-per-product.php:138
|
11138 |
+
#: includes/settings/wcj-settings-multicurrency-base-price.php:94
|
11139 |
#: includes/settings/wcj-settings-multicurrency.php:203
|
11140 |
msgid "Currencies Options"
|
11141 |
msgstr ""
|
11148 |
msgstr ""
|
11149 |
|
11150 |
#: includes/settings/wcj-settings-currency-per-product.php:144
|
11151 |
+
#: includes/settings/wcj-settings-multicurrency-base-price.php:99
|
11152 |
#: includes/settings/wcj-settings-multicurrency.php:209
|
11153 |
msgid "Total Currencies"
|
11154 |
msgstr ""
|
12147 |
msgstr ""
|
12148 |
|
12149 |
#: includes/settings/wcj-settings-global-discount.php:185
|
12150 |
+
msgid "Compatibility With Products Shortcode"
|
12151 |
msgstr ""
|
12152 |
|
12153 |
#: includes/settings/wcj-settings-global-discount.php:187
|
12154 |
msgid ""
|
12155 |
+
"This will add compatibility with [products] shortcode that try to get sale "
|
12156 |
+
"products, like [products on_sale=\"true\"]"
|
12157 |
+
msgstr ""
|
12158 |
+
|
12159 |
+
#: includes/settings/wcj-settings-global-discount.php:193
|
12160 |
+
msgid "Global Discount in Admin"
|
12161 |
+
msgstr ""
|
12162 |
+
|
12163 |
+
#: includes/settings/wcj-settings-global-discount.php:195
|
12164 |
+
msgid ""
|
12165 |
"This will enable \"global discount\" product pricing in backend. It will "
|
12166 |
"also affect some modules, e.g.: \"Products XML Feeds\" module."
|
12167 |
msgstr ""
|
12168 |
|
12169 |
+
#: includes/settings/wcj-settings-global-discount.php:201
|
12170 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:76
|
12171 |
#: includes/settings/wcj-settings-multicurrency.php:176
|
12172 |
+
#: includes/settings/wcj-settings-price-by-country.php:182
|
12173 |
#: includes/settings/wcj-settings-price-by-user-role.php:111
|
12174 |
#: includes/settings/wcj-settings-product-addons.php:258
|
12175 |
#: includes/settings/wcj-settings-product-price-by-formula.php:100
|
12176 |
msgid "Price Filters Priority"
|
12177 |
msgstr ""
|
12178 |
|
12179 |
+
#: includes/settings/wcj-settings-global-discount.php:202
|
12180 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:77
|
12181 |
#: includes/settings/wcj-settings-multicurrency.php:177
|
12182 |
+
#: includes/settings/wcj-settings-price-by-country.php:183
|
12183 |
#: includes/settings/wcj-settings-price-by-user-role.php:112
|
12184 |
#: includes/settings/wcj-settings-product-addons.php:259
|
12185 |
#: includes/settings/wcj-settings-product-price-by-formula.php:101
|
12410 |
msgid "Add compatibility with WooCommerce Price Filter Widget"
|
12411 |
msgstr ""
|
12412 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12413 |
#: includes/settings/wcj-settings-multicurrency.php:23
|
12414 |
msgid ""
|
12415 |
"Select how you want currency exchange rates to be updated. Possible options "
|
12469 |
msgstr ""
|
12470 |
|
12471 |
#: includes/settings/wcj-settings-multicurrency.php:72
|
12472 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:85
|
12473 |
#: includes/settings/wcj-settings-product-price-by-formula.php:64
|
12474 |
msgid "Rounding"
|
12475 |
msgstr ""
|
12516 |
|
12517 |
#: includes/settings/wcj-settings-multicurrency.php:106
|
12518 |
#: includes/settings/wcj-settings-payment-gateways-min-max.php:65
|
12519 |
+
#: includes/settings/wcj-settings-price-by-country.php:160
|
12520 |
#: includes/settings/wcj-settings-product-msrp.php:105
|
12521 |
msgid "Compatibility"
|
12522 |
msgstr ""
|
12523 |
|
12524 |
#: includes/settings/wcj-settings-multicurrency.php:111
|
12525 |
+
#: includes/settings/wcj-settings-price-by-country.php:165
|
12526 |
msgid "WooCommerce Coupons"
|
12527 |
msgstr ""
|
12528 |
|
12529 |
#: includes/settings/wcj-settings-multicurrency.php:113
|
12530 |
+
#: includes/settings/wcj-settings-price-by-country.php:167
|
12531 |
msgid ""
|
12532 |
"When a fixed coupon is used its value changes according to the current "
|
12533 |
"currency"
|
12715 |
msgid "Custom Page"
|
12716 |
msgstr ""
|
12717 |
|
12718 |
+
#: includes/settings/wcj-settings-my-account.php:166
|
12719 |
+
msgid "Endpoint"
|
12720 |
+
msgstr ""
|
12721 |
+
|
12722 |
+
#: includes/settings/wcj-settings-my-account.php:169
|
12723 |
+
msgid "The Custom Page url, after /my-account/"
|
12724 |
+
msgstr ""
|
12725 |
+
|
12726 |
+
#: includes/settings/wcj-settings-my-account.php:169
|
12727 |
+
msgid "If empty, it will be added \"?section=your-page\" after /my-account/"
|
12728 |
+
msgstr ""
|
12729 |
+
|
12730 |
+
#: includes/settings/wcj-settings-my-account.php:188
|
12731 |
+
#: includes/settings/wcj-settings-my-account.php:193
|
12732 |
msgid "Dashboard Customization"
|
12733 |
msgstr ""
|
12734 |
|
12735 |
+
#: includes/settings/wcj-settings-my-account.php:200
|
12736 |
msgid "Custom Dashboard Content"
|
12737 |
msgstr ""
|
12738 |
|
12739 |
+
#: includes/settings/wcj-settings-my-account.php:201
|
12740 |
msgid ""
|
12741 |
"This will add content at the beginning of dashboard. If you need to add "
|
12742 |
"custom content to the end of the dashboard, use <strong>Custom Info Blocks</"
|
12743 |
"strong> section and select <strong>Account dashboard</strong> position."
|
12744 |
msgstr ""
|
12745 |
|
12746 |
+
#: includes/settings/wcj-settings-my-account.php:202
|
12747 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:134
|
12748 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:146
|
12749 |
#: includes/settings/wcj-settings-stock.php:42
|
12750 |
#: includes/settings/wcj-settings-stock.php:55
|
12751 |
msgid "Ignored if empty."
|
12752 |
msgstr ""
|
12753 |
|
12754 |
+
#: includes/settings/wcj-settings-my-account.php:209
|
12755 |
msgid "Hide \"Hello ...\" Message"
|
12756 |
msgstr ""
|
12757 |
|
12758 |
+
#: includes/settings/wcj-settings-my-account.php:216
|
12759 |
msgid "Hide \"From your account dashboard ...\" Message"
|
12760 |
msgstr ""
|
12761 |
|
12762 |
+
#: includes/settings/wcj-settings-my-account.php:229
|
12763 |
+
#: includes/settings/wcj-settings-my-account.php:234
|
12764 |
msgid "Custom Info Blocks"
|
12765 |
msgstr ""
|
12766 |
|
12767 |
+
#: includes/settings/wcj-settings-my-account.php:274
|
12768 |
msgid "Account content"
|
12769 |
msgstr ""
|
12770 |
|
12771 |
+
#: includes/settings/wcj-settings-my-account.php:275
|
12772 |
msgid "Account dashboard"
|
12773 |
msgstr ""
|
12774 |
|
12775 |
+
#: includes/settings/wcj-settings-my-account.php:276
|
12776 |
msgid "Account navigation"
|
12777 |
msgstr ""
|
12778 |
|
12779 |
+
#: includes/settings/wcj-settings-my-account.php:277
|
12780 |
msgid "After account downloads"
|
12781 |
msgstr ""
|
12782 |
|
12783 |
+
#: includes/settings/wcj-settings-my-account.php:278
|
12784 |
msgid "After account navigation"
|
12785 |
msgstr ""
|
12786 |
|
12787 |
+
#: includes/settings/wcj-settings-my-account.php:279
|
12788 |
msgid "After account orders"
|
12789 |
msgstr ""
|
12790 |
|
12791 |
+
#: includes/settings/wcj-settings-my-account.php:280
|
12792 |
msgid "After account payment methods"
|
12793 |
msgstr ""
|
12794 |
|
12795 |
+
#: includes/settings/wcj-settings-my-account.php:281
|
12796 |
msgid "After available downloads"
|
12797 |
msgstr ""
|
12798 |
|
12799 |
+
#: includes/settings/wcj-settings-my-account.php:282
|
12800 |
msgid "After customer login form"
|
12801 |
msgstr ""
|
12802 |
|
12803 |
+
#: includes/settings/wcj-settings-my-account.php:283
|
12804 |
msgid "After edit account address form"
|
12805 |
msgstr ""
|
12806 |
|
12807 |
+
#: includes/settings/wcj-settings-my-account.php:284
|
12808 |
msgid "After edit account form"
|
12809 |
msgstr ""
|
12810 |
|
12811 |
+
#: includes/settings/wcj-settings-my-account.php:285
|
12812 |
msgid "After my account"
|
12813 |
msgstr ""
|
12814 |
|
12815 |
+
#: includes/settings/wcj-settings-my-account.php:286
|
12816 |
msgid "Available download end"
|
12817 |
msgstr ""
|
12818 |
|
12819 |
+
#: includes/settings/wcj-settings-my-account.php:287
|
12820 |
msgid "Available download start"
|
12821 |
msgstr ""
|
12822 |
|
12823 |
+
#: includes/settings/wcj-settings-my-account.php:288
|
12824 |
msgid "Available downloads"
|
12825 |
msgstr ""
|
12826 |
|
12827 |
+
#: includes/settings/wcj-settings-my-account.php:289
|
12828 |
msgid "Before account downloads"
|
12829 |
msgstr ""
|
12830 |
|
12831 |
+
#: includes/settings/wcj-settings-my-account.php:290
|
12832 |
msgid "Before account navigation"
|
12833 |
msgstr ""
|
12834 |
|
12835 |
+
#: includes/settings/wcj-settings-my-account.php:291
|
12836 |
msgid "Before account orders"
|
12837 |
msgstr ""
|
12838 |
|
12839 |
+
#: includes/settings/wcj-settings-my-account.php:292
|
12840 |
msgid "Before account orders pagination"
|
12841 |
msgstr ""
|
12842 |
|
12843 |
+
#: includes/settings/wcj-settings-my-account.php:293
|
12844 |
msgid "Before account payment methods"
|
12845 |
msgstr ""
|
12846 |
|
12847 |
+
#: includes/settings/wcj-settings-my-account.php:294
|
12848 |
msgid "Before Available downloads"
|
12849 |
msgstr ""
|
12850 |
|
12851 |
+
#: includes/settings/wcj-settings-my-account.php:295
|
12852 |
msgid "Before customer login form"
|
12853 |
msgstr ""
|
12854 |
|
12855 |
+
#: includes/settings/wcj-settings-my-account.php:296
|
12856 |
msgid "Before edit account address form"
|
12857 |
msgstr ""
|
12858 |
|
12859 |
+
#: includes/settings/wcj-settings-my-account.php:297
|
12860 |
msgid "Before edit account form"
|
12861 |
msgstr ""
|
12862 |
|
12863 |
+
#: includes/settings/wcj-settings-my-account.php:298
|
12864 |
msgid "Before my account"
|
12865 |
msgstr ""
|
12866 |
|
12867 |
+
#: includes/settings/wcj-settings-my-account.php:299
|
12868 |
msgid "Edit account form"
|
12869 |
msgstr ""
|
12870 |
|
12871 |
+
#: includes/settings/wcj-settings-my-account.php:300
|
12872 |
msgid "Edit account form end"
|
12873 |
msgstr ""
|
12874 |
|
12875 |
+
#: includes/settings/wcj-settings-my-account.php:301
|
12876 |
msgid "Edit account form start"
|
12877 |
msgstr ""
|
12878 |
|
12879 |
+
#: includes/settings/wcj-settings-my-account.php:302
|
12880 |
msgid "Login form"
|
12881 |
msgstr ""
|
12882 |
|
12883 |
+
#: includes/settings/wcj-settings-my-account.php:303
|
12884 |
msgid "Login form end"
|
12885 |
msgstr ""
|
12886 |
|
12887 |
+
#: includes/settings/wcj-settings-my-account.php:304
|
12888 |
msgid "Login form start"
|
12889 |
msgstr ""
|
12890 |
|
12891 |
+
#: includes/settings/wcj-settings-my-account.php:305
|
12892 |
msgid "Lost password form"
|
12893 |
msgstr ""
|
12894 |
|
12895 |
+
#: includes/settings/wcj-settings-my-account.php:306
|
12896 |
msgid "Register form"
|
12897 |
msgstr ""
|
12898 |
|
12899 |
+
#: includes/settings/wcj-settings-my-account.php:307
|
12900 |
msgid "Register form end"
|
12901 |
msgstr ""
|
12902 |
|
12903 |
+
#: includes/settings/wcj-settings-my-account.php:308
|
12904 |
msgid "Register form start"
|
12905 |
msgstr ""
|
12906 |
|
12907 |
+
#: includes/settings/wcj-settings-my-account.php:309
|
12908 |
msgid "Reset password form"
|
12909 |
msgstr ""
|
12910 |
|
12950 |
#: includes/settings/wcj-settings-offer-price.php:48
|
12951 |
#: includes/settings/wcj-settings-order-min-amount.php:29
|
12952 |
#: includes/settings/wcj-settings-order-min-amount.php:36
|
12953 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:117
|
12954 |
msgid "Exclude"
|
12955 |
msgstr ""
|
12956 |
|
13162 |
msgstr ""
|
13163 |
|
13164 |
#: includes/settings/wcj-settings-order-custom-statuses.php:54
|
13165 |
+
msgid "Remove Status Prefix"
|
13166 |
+
msgstr ""
|
13167 |
+
|
13168 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:56
|
13169 |
+
msgid "Removes the <code>wc-</code> prefix from custom statuses."
|
13170 |
+
msgstr ""
|
13171 |
+
|
13172 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:56
|
13173 |
+
msgid "Enable it if you can't see the orders or the statuses."
|
13174 |
+
msgstr ""
|
13175 |
+
|
13176 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:64
|
13177 |
msgid "\"Processing\" and \"Complete\" Action Buttons"
|
13178 |
msgstr ""
|
13179 |
|
13180 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:65
|
13181 |
msgid ""
|
13182 |
"By default, when order has custom status, \"Processing\" and \"Complete\" "
|
13183 |
"action buttons are hidden. You can enable it here. Possible values are: Show "
|
13184 |
"both; Show \"Processing\" only; Show \"Complete\" only; Hide (default)."
|
13185 |
msgstr ""
|
13186 |
|
13187 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:70
|
13188 |
msgid "Show both"
|
13189 |
msgstr ""
|
13190 |
|
13191 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:71
|
13192 |
msgid "Show \"Processing\" only"
|
13193 |
msgstr ""
|
13194 |
|
13195 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:72
|
13196 |
msgid "Show \"Complete\" only"
|
13197 |
msgstr ""
|
13198 |
|
13199 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:79
|
13200 |
msgid "Add Custom Statuses to Admin Order List Action Buttons"
|
13201 |
msgstr ""
|
13202 |
|
13203 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:81
|
13204 |
msgid ""
|
13205 |
"If you wish to add custom statuses buttons to the admin Orders page action "
|
13206 |
"buttons (Actions column), enable the checkbox here."
|
13207 |
msgstr ""
|
13208 |
|
13209 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:89
|
13210 |
msgid "Enable Colors"
|
13211 |
msgstr ""
|
13212 |
|
13213 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:90
|
13214 |
msgid "Choose if you want the buttons to have colors."
|
13215 |
msgstr ""
|
13216 |
|
13217 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:97
|
13218 |
msgid "Enable Colors in Status Column"
|
13219 |
msgstr ""
|
13220 |
|
13221 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:99
|
13222 |
msgid "Enable this if you want the statuses in Status column to have colors."
|
13223 |
msgstr ""
|
13224 |
|
13225 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:106
|
13226 |
msgid "Add Custom Statuses Buttons to Admin Order Preview Actions"
|
13227 |
msgstr ""
|
13228 |
|
13229 |
+
#: includes/settings/wcj-settings-order-custom-statuses.php:108
|
13230 |
msgid ""
|
13231 |
"If you wish to add custom statuses buttons to the admin orders preview page, "
|
13232 |
"enable the checkbox here."
|
13775 |
|
13776 |
#: includes/settings/wcj-settings-payment-gateways-by-currency.php:16
|
13777 |
#: includes/settings/wcj-settings-payment-gateways-by-user-role.php:34
|
13778 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:57
|
13779 |
msgid "Leave empty to disable."
|
13780 |
msgstr ""
|
13781 |
|
13793 |
msgstr ""
|
13794 |
|
13795 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:22
|
13796 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:37
|
13797 |
#: includes/settings/wcj-settings-shipping-by-order-amount.php:20
|
13798 |
#: includes/settings/wcj-settings-shipping-by-order-qty.php:20
|
13799 |
#: includes/settings/wcj-settings-shipping-description.php:58
|
13803 |
msgstr ""
|
13804 |
|
13805 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:24
|
13806 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:39
|
13807 |
#: includes/settings/wcj-settings-shipping-by-order-amount.php:22
|
13808 |
#: includes/settings/wcj-settings-shipping-by-order-qty.php:22
|
13809 |
#: includes/settings/wcj-settings-shipping-description.php:60
|
13821 |
msgstr ""
|
13822 |
|
13823 |
#: includes/settings/wcj-settings-payment-gateways-by-user-role.php:19
|
13824 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:21
|
13825 |
msgid "Multiple Role Checking"
|
13826 |
msgstr ""
|
13827 |
|
13828 |
#: includes/settings/wcj-settings-payment-gateways-by-user-role.php:22
|
13829 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:24
|
13830 |
msgid ""
|
13831 |
"Enable if you have some plugin that allows users with multiple roles like "
|
13832 |
"\"User Role Editor\"."
|
13880 |
"or modules."
|
13881 |
msgstr ""
|
13882 |
|
13883 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:20
|
13884 |
+
msgid "Force Default Payment Gateway"
|
13885 |
+
msgstr ""
|
13886 |
+
|
13887 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:23
|
13888 |
+
msgid ""
|
13889 |
+
"Pre-sets the default available payment gateway on cart and checkout pages."
|
13890 |
+
msgstr ""
|
13891 |
+
|
13892 |
#: includes/settings/wcj-settings-payment-gateways-fees.php:23
|
13893 |
+
#, php-format
|
13894 |
+
msgid ""
|
13895 |
+
"The chosen payment will be the first one from the <a href=\"%s\">Payments</"
|
13896 |
+
"a> page"
|
13897 |
+
msgstr ""
|
13898 |
+
|
13899 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:42
|
13900 |
msgid "Fee (or Discount) Title"
|
13901 |
msgstr ""
|
13902 |
|
13903 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:43
|
13904 |
msgid "Fee (or discount) title to show to customer."
|
13905 |
msgstr ""
|
13906 |
|
13907 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:50
|
13908 |
msgid "Fee (or Discount) Type"
|
13909 |
msgstr ""
|
13910 |
|
13911 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:51
|
13912 |
msgid "Percent or fixed value."
|
13913 |
msgstr ""
|
13914 |
|
13915 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:61
|
13916 |
msgid "Fee (or Discount) Value"
|
13917 |
msgstr ""
|
13918 |
|
13919 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:62
|
13920 |
msgid "The value. For discount enter a negative number."
|
13921 |
msgstr ""
|
13922 |
|
13923 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:69
|
13924 |
msgid "Minimum Cart Amount"
|
13925 |
msgstr ""
|
13926 |
|
13927 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:70
|
13928 |
msgid "Minimum cart amount for adding the fee (or discount)."
|
13929 |
msgstr ""
|
13930 |
|
13931 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:70
|
13932 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:78
|
13933 |
msgid "Set 0 to disable."
|
13934 |
msgstr ""
|
13935 |
|
13936 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:77
|
13937 |
msgid "Maximum Cart Amount"
|
13938 |
msgstr ""
|
13939 |
|
13940 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:78
|
13941 |
msgid "Maximum cart amount for adding the fee (or discount)."
|
13942 |
msgstr ""
|
13943 |
|
13944 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:87
|
13945 |
msgid "Round the fee (or discount) value before adding to the cart."
|
13946 |
msgstr ""
|
13947 |
|
13948 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:94
|
13949 |
msgid "If rounding is enabled, set precision (i.e. number of decimals) here."
|
13950 |
msgstr ""
|
13951 |
|
13952 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:108
|
13953 |
msgid "Tax class"
|
13954 |
msgstr ""
|
13955 |
|
13956 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:109
|
13957 |
msgid "If taxing is enabled, set tax class here."
|
13958 |
msgstr ""
|
13959 |
|
13960 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:113
|
13961 |
msgid "Standard Rate"
|
13962 |
msgstr ""
|
13963 |
|
13964 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:116
|
13965 |
msgid "Exclude Shipping when Calculating Total Cart Amount"
|
13966 |
msgstr ""
|
13967 |
|
13968 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:118
|
13969 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:126
|
13970 |
msgid ""
|
13971 |
"This affects \"Percent\" type fees and \"Minimum/Maximum Cart Amount\" "
|
13972 |
"options."
|
13973 |
msgstr ""
|
13974 |
|
13975 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:124
|
13976 |
msgid "Include Taxes"
|
13977 |
msgstr ""
|
13978 |
|
13979 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:125
|
13980 |
msgid "Include taxes when calculating Total Cart Amount"
|
13981 |
msgstr ""
|
13982 |
|
13983 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:132
|
13984 |
msgid "Require Products"
|
13985 |
msgstr ""
|
13986 |
|
13987 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:133
|
13988 |
msgid ""
|
13989 |
"Require at least one of selected products to be in cart for fee to be "
|
13990 |
"applied."
|
13991 |
msgstr ""
|
13992 |
|
13993 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:145
|
13994 |
msgid "Do not apply fee, if at least one of selected products is in cart."
|
13995 |
msgstr ""
|
13996 |
|
14338 |
msgstr ""
|
14339 |
|
14340 |
#: includes/settings/wcj-settings-pdf-invoicing-display.php:25
|
14341 |
+
#: includes/settings/wcj-settings-price-by-country.php:301
|
14342 |
#: includes/settings/wcj-settings-shipping.php:30
|
14343 |
msgid "Admin Title"
|
14344 |
msgstr ""
|
14828 |
msgid "Disable Price by Country for Bots"
|
14829 |
msgstr ""
|
14830 |
|
14831 |
+
#: includes/settings/wcj-settings-price-by-country.php:189
|
14832 |
msgid "User IP Detection Method"
|
14833 |
msgstr ""
|
14834 |
|
14835 |
+
#: includes/settings/wcj-settings-price-by-country.php:199
|
14836 |
msgid "Price Format Method"
|
14837 |
msgstr ""
|
14838 |
|
14839 |
+
#: includes/settings/wcj-settings-price-by-country.php:200
|
14840 |
msgid "The moment \"Pretty Price\" and \"Rounding\" will be applied"
|
14841 |
msgstr ""
|
14842 |
|
14843 |
+
#: includes/settings/wcj-settings-price-by-country.php:205
|
14844 |
msgid "get_price()"
|
14845 |
msgstr ""
|
14846 |
|
14847 |
+
#: includes/settings/wcj-settings-price-by-country.php:206
|
14848 |
msgid "wc_get_price_to_display()"
|
14849 |
msgstr ""
|
14850 |
|
14851 |
+
#: includes/settings/wcj-settings-price-by-country.php:214
|
14852 |
msgid "Country Groups"
|
14853 |
msgstr ""
|
14854 |
|
14855 |
+
#: includes/settings/wcj-settings-price-by-country.php:219
|
14856 |
msgid "Countries Selection"
|
14857 |
msgstr ""
|
14858 |
|
14859 |
+
#: includes/settings/wcj-settings-price-by-country.php:220
|
14860 |
msgid "Choose how do you want to enter countries groups in admin."
|
14861 |
msgstr ""
|
14862 |
|
14863 |
+
#: includes/settings/wcj-settings-price-by-country.php:225
|
14864 |
msgid "Comma separated list"
|
14865 |
msgstr ""
|
14866 |
|
14867 |
+
#: includes/settings/wcj-settings-price-by-country.php:226
|
14868 |
msgid "Multiselect"
|
14869 |
msgstr ""
|
14870 |
|
14871 |
+
#: includes/settings/wcj-settings-price-by-country.php:227
|
14872 |
#: includes/settings/wcj-settings-product-by-condition.php:82
|
14873 |
#: includes/settings/wcj-settings-related-products.php:164
|
14874 |
msgid "Chosen select"
|
14875 |
msgstr ""
|
14876 |
|
14877 |
+
#: includes/settings/wcj-settings-price-by-country.php:231
|
14878 |
msgid "Autogenerate Groups"
|
14879 |
msgstr ""
|
14880 |
|
14881 |
+
#: includes/settings/wcj-settings-price-by-country.php:237
|
14882 |
msgid "Groups Number"
|
14883 |
msgstr ""
|
14884 |
|
14885 |
+
#: includes/settings/wcj-settings-price-by-country.php:261
|
14886 |
msgid ""
|
14887 |
"Countries. List of comma separated country codes.<br>For country codes and "
|
14888 |
"predefined sets visit <a href=\"https://booster.io/country-codes/\" target="
|
14889 |
"\"_blank\">https://booster.io/country-codes/</a>"
|
14890 |
msgstr ""
|
14891 |
|
14892 |
+
#: includes/settings/wcj-settings-price-by-country.php:347
|
14893 |
msgid "Multiply Price by"
|
14894 |
msgstr ""
|
14895 |
|
15454 |
msgstr ""
|
15455 |
|
15456 |
#: includes/settings/wcj-settings-product-addons.php:220
|
15457 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:128
|
15458 |
#: includes/settings/wcj-settings-shipping-options.php:41
|
15459 |
msgid "Set to zero to use the default priority."
|
15460 |
msgstr ""
|
17535 |
msgid "Term #%s"
|
17536 |
msgstr ""
|
17537 |
|
17538 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:55
|
17539 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:61
|
17540 |
#, php-format
|
17541 |
msgid "Shipping Methods by %s"
|
17542 |
msgstr ""
|
17543 |
|
17544 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:91
|
17545 |
#, php-format
|
17546 |
msgid "Include %s"
|
17547 |
msgstr ""
|
17548 |
|
17549 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:102
|
17550 |
#, php-format
|
17551 |
msgid "Exclude %s"
|
17552 |
msgstr ""
|
17553 |
|
17554 |
+
#: includes/settings/wcj-settings-shipping-by-condition.php:127
|
17555 |
msgid "Filter Priority"
|
17556 |
msgstr ""
|
17557 |
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: algoritmika, anbinder, debugeris, karzin
|
3 |
Tags: woocommerce, booster for woocommerce, woocommerce jetpack
|
4 |
Requires at least: 4.4
|
5 |
-
Tested up to: 5.
|
6 |
-
Stable tag: 4.
|
7 |
License: GNU General Public License v3.0
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
@@ -193,6 +193,26 @@ You can see the differences between versions in this [table](https://booster.io/
|
|
193 |
|
194 |
== Changelog ==
|
195 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
= 4.7.1 - 10/02/2020 =
|
197 |
* Feature - EMAILS & MISC. - Template Editor - Add option to set custom `/woocommerce/` folder among other paths from other possible plugins.
|
198 |
* Fix - CART & CHECKOUT - EU VAT Number - Fix possible errors like "Call to Undefined WooCommerce functions".
|
2 |
Contributors: algoritmika, anbinder, debugeris, karzin
|
3 |
Tags: woocommerce, booster for woocommerce, woocommerce jetpack
|
4 |
Requires at least: 4.4
|
5 |
+
Tested up to: 5.4
|
6 |
+
Stable tag: 4.8.0
|
7 |
License: GNU General Public License v3.0
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
193 |
|
194 |
== Changelog ==
|
195 |
|
196 |
+
= 4.8.0 - 18/03/2020 =
|
197 |
+
* Fix - Functions - General - Fix php warning if WPML isn't active and 'WPML: Get Terms in All Languages' is enabled.
|
198 |
+
* Fix - PRICES & CURRENCIES - Multicurrency Product Base Price - Remove "Third Party Price Filter Compatibility" option.
|
199 |
+
* Fix - PRICES & CURRENCIES - Multicurrency Product Base Price - Fix Compatibility with Price Filter widget.
|
200 |
+
* Fix - PRICES & CURRENCIES - Fix "WooCommerce Price Filter Compatibility" option.
|
201 |
+
* Fix - PRODUCTS - Product Availability by Date - Fix wrong availabilities by always creating the date with `DateTime::createFromFormat`.
|
202 |
+
* Fix - PRODUCTS - Product Addons - Fix warning when exporting '_wcj_product_addons_per_product_enable_by_variation_%' meta.
|
203 |
+
* Fix - PRODUCTS - Product Addons - Fix wrong '_wcj_product_addons_per_product_enable_by_variation_%' meta value after import.
|
204 |
+
* Fix - SHIPPING & ORDERS - Order Custom Statuses - Add compatibility with "Load Modules on Init Hook" option.
|
205 |
+
* Dev - CART & CHECKOUT - Checkout Custom Fields - Update fields on admin for subscription orders.
|
206 |
+
* Dev - EMAILS & MISC. - Admin Tools - Add 'Enable Interface By User Roles' option allowing to disable the whole Booster admin interface for not selected roles.
|
207 |
+
* Dev - EMAILS & MISC. - My Account - Add 'Endpoint' option to Custom Pages as a plus feature.
|
208 |
+
* Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Add 'Force Default Payment Gateway' option allowing to pre-set the default available payment gateway on cart and checkout pages.
|
209 |
+
* Dev - PRICES & CURRENCIES - Global Discount - Add 'Compatibility With Products Shortcode' option, allowing the on_sale attribute to work.
|
210 |
+
* Dev - PRICES & CURRENCIES - Prices and Currencies by Country - Add new compatibility option with native WooCommerce coupons.
|
211 |
+
* Dev - PRODUCTS - Product Addons - Add `%addon_title%` template variable on Each Addon from Cart Template.
|
212 |
+
* Dev - SHIPPING & ORDERS - Order Custom Statuses - Add "Remove Status Prefix" option added.
|
213 |
+
* Dev - SHIPPING & ORDERS - Shipping Methods by Users - Add 'Multiple Role Checking' option for plus version.
|
214 |
+
* WC tested up to: 4.0
|
215 |
+
|
216 |
= 4.7.1 - 10/02/2020 =
|
217 |
* Feature - EMAILS & MISC. - Template Editor - Add option to set custom `/woocommerce/` folder among other paths from other possible plugins.
|
218 |
* Fix - CART & CHECKOUT - EU VAT Number - Fix possible errors like "Call to Undefined WooCommerce functions".
|
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: 4.
|
7 |
Author: Algoritmika Ltd
|
8 |
Author URI: https://booster.io
|
9 |
Text Domain: woocommerce-jetpack
|
10 |
Domain Path: /langs
|
11 |
-
Copyright: ©
|
12 |
-
WC tested up to:
|
13 |
License: GNU General Public License v3.0
|
14 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
15 |
*/
|
@@ -57,7 +57,7 @@ final class WC_Jetpack {
|
|
57 |
* @var string
|
58 |
* @since 2.4.7
|
59 |
*/
|
60 |
-
public $version = '4.
|
61 |
|
62 |
/**
|
63 |
* @var WC_Jetpack The single instance of the class
|
3 |
Plugin Name: Booster for WooCommerce
|
4 |
Plugin URI: https://booster.io
|
5 |
Description: Supercharge your WooCommerce site with these awesome powerful features. More than 100 modules. All in one WooCommerce plugin.
|
6 |
+
Version: 4.8.0
|
7 |
Author: Algoritmika Ltd
|
8 |
Author URI: https://booster.io
|
9 |
Text Domain: woocommerce-jetpack
|
10 |
Domain Path: /langs
|
11 |
+
Copyright: © 2020 Algoritmika Ltd.
|
12 |
+
WC tested up to: 4.0
|
13 |
License: GNU General Public License v3.0
|
14 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
15 |
*/
|
57 |
* @var string
|
58 |
* @since 2.4.7
|
59 |
*/
|
60 |
+
public $version = '4.8.0';
|
61 |
|
62 |
/**
|
63 |
* @var WC_Jetpack The single instance of the class
|