Version Description
- 12/12/2018 =
- Feature - CART & CHECKOUT - Checkout Customization - Add option to recalculate checkout.
- Feature - CART & CHECKOUT - Checkout Customization - Add option to update checkout when some field have its value changed.
- Feature - PAYMENT GATEWAYS - Gateways per Product or Category - "Use Variations" option added.
- Feature - SHIPPING & ORDERS - Maximum Products per User - "Order Status" option added.
- Feature - EMAILS & MISC. - Admin Tools - Products Options - "JSON Product Search Limit" option added.
- Feature - Shortcodes - General -
[wcj_post_meta_sum]
shortcode added. - Fix - PRICES & CURRENCIES - Price Formats - Current currency issue fixed (e.g. price format on admin order edit page).
- Fix - PRICES & CURRENCIES - Product Price by Formula - Fix shortcodes as parameters miscalculating price on cart by adding
product_id
attribute on shortcodes. - Fix - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - Empty price issue fixed.
- Fix - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - "Multicurrency (Currency Switcher)" module support added.
- Fix - PRODUCTS - Product Images -
product_images_hide_on_archive()
- Issue with replacing single product's image with custom HTML on archives fixed. - Fix - PRODUCTS - Product Input Fields - Fix multiple uploads generating a single file by renaming them uniquely.
- Fix - PRODUCTS - Product MSRP - Comma decimal separator issue fixed.
- Fix - PRODUCTS - Related Products - Relate Manually - Fix warning if there aren't any products selected.
- Fix - CART & CHECKOUT - Checkout Custom Fields - Hidden fields are not added to order meta now (i.e. not showing hidden fields on thank you page and in emails now).
- Fix - PAYMENT GATEWAYS - Gateways Fees and Discounts -
init_options()
is now initialized oninit
hook for better translation and performance. - Fix - SHIPPING & ORDERS - Order Min/Max Quantities - Fix quantity attribute of add to cart button on loop pages.
- Fix - SHIPPING & ORDERS - Order Minimum Amount - Add compatibility with Price by country module.
- Fix - PDF INVOICING & PACKING SLIPS - Bulk actions - "Undefined variable: sendback" PHP notice fixed.
- Fix - PDF INVOICING & PACKING SLIPS - Possible deprecated
each()
PHP notice fixed (compatibility with PHP v7.2.0). - Fix - EMAILS & MISC. - Admin Bar - Page reload added after "Enable Module" checkbox is enabled (so admin bar is shown at once).
- Fix - EMAILS & MISC. - Custom Emails -
$_GET['order_id']
param added (fixes the issue with bulk status update emails on some servers). - Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - Message on Price too Small / too Big -
%price%
,%min_price%
and%max_price%
replaced values added. - Dev - PRICES & CURRENCIES - Wholesale Price - "Advanced: Price Filters Priority" option added.
- Dev - PRICES & CURRENCIES - Product Price by Formula - Add option to use the module on admin scope.
- Dev - PRODUCTS - Product Images -
wcj_product_images_loop_product_thumbnail_filter
,wcj_product_images_loop_product_thumbnail_filter_priority
,wcj_product_images_single_product_images_filter
andwcj_product_images_single_product_images_filter_priority
filters added. - Dev - PRODUCTS - Tax Display - Add shop scope on display by user role option.
- Dev - PRODUCTS - Products per Page - Add compatibility with DIVI theme.
- Dev - PRODUCTS - Related Products - Relate Manually - Add new option to set the related products metabox value by default.
- Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Shortcodes are now processed in fee titles.
- Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Add new option to include taxes when calculating total cart amount.
- Dev - SHIPPING & ORDERS - Order Min/Max Quantities - Sync quantity button with add to cart button quantity.
- Dev - SHIPPING & ORDERS - Order Min/Max Quantities - Prevent add to cart button on shop pages from being clicked if input requirements haven't been met.
- Dev - EMAILS & MISC. - Admin Bar - "WooCommerce" Admin Bar - "List product categories" and "List product tags" options added.
- Dev - EMAILS & MISC. - Admin Tools - "Products Attributes" tool and "Product Revisions" option moved from "General" module.
- Dev - EMAILS & MISC. - Admin Tools - Module description updated. Admin settings restyled and descriptions updated. "Show extended info" link added.
- Dev - EMAILS & MISC. - Debug Tools - Initial module release (tools moved from "Admin Tools" module). Admin settings descriptions updated. Log restyled.
- Dev - EMAILS & MISC. - General - "PHP Options" options moved from "Admin Tools" module.
- Dev - EMAILS & MISC. - General - Module description updated. Admin settings descriptions updated.
- Dev - Functions - Products -
wcj_get_products()
- Code optimized. - Dev - Shortcodes - Orders -
[wcj_order_total_in_words]
-whole
attribute now automatically gets order currency symbol or currency code (set byuse_currency_symbol
attribute) (instead ofDollars
).decimal
attribute set to¢
(instead ofCents
). - Dev - Shortcodes - Products -
[wcj_product_you_save_percent]
- Add compatibility with "Dynamic Pricing" plugin. - Dev - Shortcodes - Products Crowdfunding -
get_product_orders_data()
-start_date
andorder_status
optional attributes added. - Dev - Shortcodes - Products Crowdfunding -
get_product_orders_data()
- Code cleaned up. - Dev - Classes -
WCJ_Module_Product_By_Condition
-pre_get_posts
- WP_Query optimized (post__not_in
added).
Download this release
Release Info
Developer | algoritmika |
Plugin | Booster for WooCommerce |
Version | 4.1.0 |
Comparing to | |
See all releases |
Code changes from version 4.0.1 to 4.1.0
- includes/admin/class-wc-settings-jetpack.php +3 -3
- includes/admin/wcj-modules-cats.php +2 -1
- includes/class-wcj-admin-bar.php +34 -4
- includes/class-wcj-admin-tools.php +119 -71
- includes/class-wcj-checkout-custom-fields.php +11 -4
- includes/class-wcj-checkout-customization.php +60 -2
- includes/class-wcj-debug-tools.php +107 -0
- includes/class-wcj-general.php +21 -121
- includes/class-wcj-max-products-per-user.php +18 -10
- includes/class-wcj-order-min-amount.php +7 -3
- includes/class-wcj-order-quantities.php +62 -2
- includes/class-wcj-payment-gateways-fees.php +9 -6
- includes/class-wcj-payment-gateways-per-category.php +11 -12
- includes/class-wcj-pdf-invoicing.php +3 -2
- includes/class-wcj-price-by-country.php +10 -3
- includes/class-wcj-price-formats.php +4 -3
- includes/class-wcj-product-images.php +22 -8
- includes/class-wcj-product-msrp.php +3 -2
- includes/class-wcj-product-open-pricing.php +50 -31
- includes/class-wcj-product-price-by-formula.php +31 -4
- includes/class-wcj-products-per-page.php +18 -2
- includes/class-wcj-related-products.php +17 -14
- includes/class-wcj-tax-display.php +6 -4
- includes/class-wcj-wholesale-price.php +7 -5
- includes/classes/class-wcj-module-product-by-condition.php +6 -4
- includes/core/wcj-loader.php +2 -2
- includes/core/wcj-modules.php +2 -1
- includes/emails/class-wc-email-wcj-custom.php +3 -2
- includes/functions/wcj-functions-debug.php +4 -4
- includes/functions/wcj-functions-price-currency.php +3 -2
- includes/functions/wcj-functions-products.php +10 -10
- includes/input-fields/class-wcj-product-input-fields-core.php +5 -5
- includes/lib/tcpdf/tcpdf.php +18 -5
- includes/price-by-country/class-wcj-price-by-country-core.php +61 -14
- includes/settings/meta-box/wcj-settings-meta-box-admin-tools.php +1 -1
- includes/settings/meta-box/wcj-settings-meta-box-product-images.php +3 -1
- includes/settings/meta-box/wcj-settings-meta-box-related-products.php +3 -2
- includes/settings/wcj-settings-admin-bar.php +19 -4
- includes/settings/wcj-settings-admin-tools.php +30 -46
- includes/settings/wcj-settings-checkout-custom-info.php +1 -0
- includes/settings/wcj-settings-checkout-customization.php +51 -1
- includes/settings/wcj-settings-debug-tools.php +55 -0
- includes/settings/wcj-settings-general.php +44 -27
- includes/settings/wcj-settings-max-products-per-user.php +12 -1
- includes/settings/wcj-settings-payment-gateways-fees.php +85 -76
- includes/settings/wcj-settings-payment-gateways-per-category.php +23 -5
- includes/settings/wcj-settings-product-open-pricing.php +3 -1
- includes/settings/wcj-settings-product-price-by-formula.php +9 -1
- includes/settings/wcj-settings-related-products.php +12 -1
- includes/settings/wcj-settings-tax-display.php +15 -2
- includes/settings/wcj-settings-wholesale-price.php +8 -1
- includes/shortcodes/class-wcj-shortcodes-general.php +18 -2
- includes/shortcodes/class-wcj-shortcodes-invoices.php +2 -7
- includes/shortcodes/class-wcj-shortcodes-orders.php +20 -17
- includes/shortcodes/class-wcj-shortcodes-products-crowdfunding.php +22 -37
- includes/shortcodes/class-wcj-shortcodes-products.php +6 -3
- langs/woocommerce-jetpack.pot +673 -452
- readme.txt +53 -5
- woocommerce-jetpack.php +3 -3
includes/admin/class-wc-settings-jetpack.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 1.0.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -168,7 +168,7 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
168 |
/**
|
169 |
* Output the settings.
|
170 |
*
|
171 |
-
* @version
|
172 |
* @todo (maybe) admin_notices
|
173 |
*/
|
174 |
function output() {
|
@@ -209,7 +209,7 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
209 |
echo '</div>';
|
210 |
}
|
211 |
|
212 |
-
if ( 'yes' === get_option( '
|
213 |
// Breadcrumbs
|
214 |
$breadcrumbs_html = '';
|
215 |
$breadcrumbs_html .= '<p>';
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 1.0.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
168 |
/**
|
169 |
* Output the settings.
|
170 |
*
|
171 |
+
* @version 4.1.0
|
172 |
* @todo (maybe) admin_notices
|
173 |
*/
|
174 |
function output() {
|
209 |
echo '</div>';
|
210 |
}
|
211 |
|
212 |
+
if ( 'yes' === get_option( 'wcj_debug_tools_enabled', 'no' ) && 'yes' === get_option( 'wcj_debuging_enabled', 'no' ) ) {
|
213 |
// Breadcrumbs
|
214 |
$breadcrumbs_html = '';
|
215 |
$breadcrumbs_html .= '<p>';
|
includes/admin/wcj-modules-cats.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Modules Array
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo (maybe) split "Shipping & Orders", "Cart & Checkout", "Products", "Prices & Currencies" etc.
|
@@ -186,6 +186,7 @@ return apply_filters( 'wcj_modules', array(
|
|
186 |
'old_slugs',
|
187 |
'reports',
|
188 |
'admin_tools',
|
|
|
189 |
'emails',
|
190 |
'email_options',
|
191 |
'emails_verification',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Modules Array
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo (maybe) split "Shipping & Orders", "Cart & Checkout", "Products", "Prices & Currencies" etc.
|
186 |
'old_slugs',
|
187 |
'reports',
|
188 |
'admin_tools',
|
189 |
+
'debug_tools',
|
190 |
'emails',
|
191 |
'email_options',
|
192 |
'emails_verification',
|
includes/class-wcj-admin-bar.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Admin Bar
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,7 +16,7 @@ class WCJ_Admin_Bar extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version
|
20 |
* @since 2.9.0
|
21 |
* @todo (maybe) custom user nodes
|
22 |
* @todo (maybe) optional nodes selection
|
@@ -48,8 +48,8 @@ class WCJ_Admin_Bar extends WCJ_Module {
|
|
48 |
add_action( 'wp_head', array( $this, 'add_booster_admin_bar_icon_style' ) );
|
49 |
add_action( 'admin_head', array( $this, 'add_booster_admin_bar_icon_style' ) );
|
50 |
}
|
51 |
-
add_action( 'woojetpack_after_settings_save', array( $this, 'reload_page_after_settings_save' ), PHP_INT_MAX, 2 );
|
52 |
}
|
|
|
53 |
}
|
54 |
|
55 |
/**
|
@@ -336,10 +336,38 @@ class WCJ_Admin_Bar extends WCJ_Module {
|
|
336 |
return $nodes;
|
337 |
}
|
338 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
339 |
/**
|
340 |
* add_woocommerce_admin_bar.
|
341 |
*
|
342 |
-
* @version
|
343 |
* @since 2.9.0
|
344 |
* @todo (maybe) reports > customers > customers > add dates
|
345 |
* @todo (maybe) reports > taxes > taxes_by_code > add dates
|
@@ -449,10 +477,12 @@ class WCJ_Admin_Bar extends WCJ_Module {
|
|
449 |
'categories' => array(
|
450 |
'title' => __( 'Categories', 'woocommerce' ),
|
451 |
'href' => admin_url( 'edit-tags.php?taxonomy=product_cat&post_type=product' ),
|
|
|
452 |
),
|
453 |
'tags' => array(
|
454 |
'title' => __( 'Tags', 'woocommerce' ),
|
455 |
'href' => admin_url( 'edit-tags.php?taxonomy=product_tag&post_type=product' ),
|
|
|
456 |
),
|
457 |
'attributes' => array(
|
458 |
'title' => __( 'Attributes', 'woocommerce' ),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Admin Bar
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 4.1.0
|
20 |
* @since 2.9.0
|
21 |
* @todo (maybe) custom user nodes
|
22 |
* @todo (maybe) optional nodes selection
|
48 |
add_action( 'wp_head', array( $this, 'add_booster_admin_bar_icon_style' ) );
|
49 |
add_action( 'admin_head', array( $this, 'add_booster_admin_bar_icon_style' ) );
|
50 |
}
|
|
|
51 |
}
|
52 |
+
add_action( 'woojetpack_after_settings_save', array( $this, 'reload_page_after_settings_save' ), PHP_INT_MAX, 2 );
|
53 |
}
|
54 |
|
55 |
/**
|
336 |
return $nodes;
|
337 |
}
|
338 |
|
339 |
+
/**
|
340 |
+
* get_nodes_product_taxonomy.
|
341 |
+
*
|
342 |
+
* @version 4.1.0
|
343 |
+
* @since 4.1.0
|
344 |
+
* @todo [dev] hierarchy
|
345 |
+
* @todo [dev] count
|
346 |
+
* @todo [dev] custom taxonomy
|
347 |
+
*/
|
348 |
+
function get_nodes_product_taxonomy( $taxonomy ) {
|
349 |
+
$nodes = array();
|
350 |
+
$terms = get_terms( array(
|
351 |
+
'taxonomy' => $taxonomy,
|
352 |
+
'orderby' => 'name',
|
353 |
+
'order' => 'ASC',
|
354 |
+
'hide_empty' => false,
|
355 |
+
) );
|
356 |
+
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
|
357 |
+
foreach ( $terms as $term ) {
|
358 |
+
$nodes[ $term->slug ] = array(
|
359 |
+
'title' => $term->name,
|
360 |
+
'href' => admin_url( 'edit.php?post_type=product&' . $taxonomy . '=' . $term->slug ),
|
361 |
+
);
|
362 |
+
}
|
363 |
+
}
|
364 |
+
return $nodes;
|
365 |
+
}
|
366 |
+
|
367 |
/**
|
368 |
* add_woocommerce_admin_bar.
|
369 |
*
|
370 |
+
* @version 4.1.0
|
371 |
* @since 2.9.0
|
372 |
* @todo (maybe) reports > customers > customers > add dates
|
373 |
* @todo (maybe) reports > taxes > taxes_by_code > add dates
|
477 |
'categories' => array(
|
478 |
'title' => __( 'Categories', 'woocommerce' ),
|
479 |
'href' => admin_url( 'edit-tags.php?taxonomy=product_cat&post_type=product' ),
|
480 |
+
'nodes' => ( 'no' === get_option( 'wcj_admin_bar_wc_list_cats', 'no' ) ? array() : $this->get_nodes_product_taxonomy( 'product_cat' ) ),
|
481 |
),
|
482 |
'tags' => array(
|
483 |
'title' => __( 'Tags', 'woocommerce' ),
|
484 |
'href' => admin_url( 'edit-tags.php?taxonomy=product_tag&post_type=product' ),
|
485 |
+
'nodes' => ( 'no' === get_option( 'wcj_admin_bar_wc_list_tags', 'no' ) ? array() : $this->get_nodes_product_taxonomy( 'product_tag' ) ),
|
486 |
),
|
487 |
'attributes' => array(
|
488 |
'title' => __( 'Attributes', 'woocommerce' ),
|
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 |
|
@@ -15,38 +15,25 @@ class WCJ_Admin_Tools extends WCJ_Module {
|
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
-
* @version 4.
|
19 |
-
* @todo (maybe) add editable (product and order) metas
|
20 |
*/
|
21 |
function __construct() {
|
22 |
|
23 |
$this->id = 'admin_tools';
|
24 |
$this->short_desc = __( 'Admin Tools', 'woocommerce-jetpack' );
|
25 |
-
$this->desc = __( 'Booster for WooCommerce
|
26 |
$this->link_slug = 'woocommerce-booster-admin-tools';
|
27 |
parent::__construct();
|
28 |
|
29 |
$this->add_tools( array(
|
30 |
-
'
|
31 |
-
'title' => __( '
|
32 |
-
'desc' => __( '
|
33 |
-
'tab_title' => __( 'Log', 'woocommerce-jetpack' ),
|
34 |
),
|
35 |
) );
|
36 |
|
37 |
-
$this->current_php_memory_limit = '';
|
38 |
-
$this->current_php_time_limit = '';
|
39 |
if ( $this->is_enabled() ) {
|
40 |
-
// PHP Memory Limit
|
41 |
-
if ( 0 != ( $php_memory_limit = get_option( 'wcj_admin_tools_php_memory_limit', 0 ) ) ) {
|
42 |
-
ini_set( 'memory_limit', $php_memory_limit . 'M' );
|
43 |
-
}
|
44 |
-
$this->current_php_memory_limit = sprintf( ' ' . __( 'Current PHP memory limit: %s.', 'woocommerce-jetpack' ), ini_get( 'memory_limit' ) );
|
45 |
-
// PHP Time Limit
|
46 |
-
if ( 0 != ( $php_time_limit = get_option( 'wcj_admin_tools_php_time_limit', 0 ) ) ) {
|
47 |
-
set_time_limit( $php_time_limit );
|
48 |
-
}
|
49 |
-
$this->current_php_time_limit = sprintf( ' ' . __( 'Current PHP time limit: %s seconds.', 'woocommerce-jetpack' ), ini_get( 'max_execution_time' ) );
|
50 |
// Order Meta
|
51 |
if ( 'yes' === get_option( 'wcj_admin_tools_show_order_meta_enabled', 'no' ) ) {
|
52 |
add_action( 'add_meta_boxes', array( $this, 'add_order_meta_meta_box' ) );
|
@@ -61,6 +48,10 @@ class WCJ_Admin_Tools extends WCJ_Module {
|
|
61 |
add_action( 'add_meta_boxes', array( $this, 'maybe_add_variable_product_pricing_meta_box' ) );
|
62 |
add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
|
63 |
}
|
|
|
|
|
|
|
|
|
64 |
// Admin Notices
|
65 |
if ( 'yes' === get_option( 'wcj_admin_tools_suppress_connect_notice', 'no' ) ) {
|
66 |
add_filter( 'woocommerce_helper_suppress_connect_notice', '__return_true' );
|
@@ -68,15 +59,40 @@ class WCJ_Admin_Tools extends WCJ_Module {
|
|
68 |
if ( 'yes' === get_option( 'wcj_admin_tools_suppress_admin_notices', 'no' ) ) {
|
69 |
add_filter( 'woocommerce_helper_suppress_admin_notices', '__return_true' );
|
70 |
}
|
|
|
|
|
|
|
|
|
71 |
}
|
72 |
}
|
73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
/**
|
75 |
* make_original_variable_product_pricing_readonly.
|
76 |
*
|
77 |
* @version 3.3.0
|
78 |
* @since 3.3.0
|
79 |
-
* @todo this is not really making fields readonly (e.g. field is still editable via keyboard tab button)
|
80 |
*/
|
81 |
function make_original_variable_product_pricing_readonly() {
|
82 |
echo '<style>
|
@@ -171,67 +187,99 @@ class WCJ_Admin_Tools extends WCJ_Module {
|
|
171 |
}
|
172 |
|
173 |
/**
|
174 |
-
*
|
175 |
*
|
176 |
-
* @version
|
|
|
177 |
*/
|
178 |
-
function
|
179 |
-
// Delete log
|
180 |
-
if ( isset( $_GET['wcj_delete_log'] ) && wcj_is_user_role( 'administrator' ) ) {
|
181 |
-
update_option( 'wcj_log', '' );
|
182 |
-
if ( wp_safe_redirect( remove_query_arg( 'wcj_delete_log' ) ) ) {
|
183 |
-
exit;
|
184 |
-
}
|
185 |
-
}
|
186 |
-
// Header
|
187 |
-
$the_tools = '';
|
188 |
-
$the_tools .= $this->get_tool_header_html( 'admin_tools' );
|
189 |
-
$the_tools .= '<p><a href="' . add_query_arg( 'wcj_delete_log', '1' ) . '">' . __( 'Delete Log', 'woocommerce-jetpack' ) . '</a></p>';
|
190 |
-
// Log
|
191 |
-
$the_log = '';
|
192 |
-
$the_log .= '<p style="font-style:italic;color:gray;">' . sprintf( __( 'Now: %s', 'woocommerce-jetpack' ), date( 'Y-m-d H:i:s' ) ) . '</p>';
|
193 |
-
if ( '' != ( $log = get_option( 'wcj_log', '' ) ) ) {
|
194 |
-
$the_log .= '<pre style="color:green;background-color:black;padding:5px;">' . $log . '</pre>';
|
195 |
-
} else {
|
196 |
-
$the_log .= '<p style="font-style:italic;color:gray;">' . __( 'Log is empty.', 'woocommerce-jetpack' ) . '</p>';
|
197 |
-
}
|
198 |
-
// Final output
|
199 |
$html = '';
|
200 |
-
$html .=
|
201 |
-
$html .= '<p>' . $the_tools . '</p>';
|
202 |
-
$html .= '<p>' . $the_log . '</p>';
|
203 |
-
$html .= '</div>';
|
204 |
echo $html;
|
205 |
}
|
206 |
|
207 |
-
|
208 |
-
*
|
209 |
*
|
210 |
-
* @version
|
211 |
-
* @since 2.
|
212 |
-
* @todo
|
213 |
*/
|
214 |
-
function
|
215 |
-
|
216 |
-
$
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
)
|
226 |
-
|
227 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
}
|
229 |
-
|
230 |
-
|
231 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
}
|
233 |
}
|
234 |
-
|
|
|
235 |
}
|
236 |
|
237 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Admin Tools
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
+
* @version 4.1.0
|
19 |
+
* @todo [feature] (maybe) add editable (product and order) metas
|
20 |
*/
|
21 |
function __construct() {
|
22 |
|
23 |
$this->id = 'admin_tools';
|
24 |
$this->short_desc = __( 'Admin Tools', 'woocommerce-jetpack' );
|
25 |
+
$this->desc = __( 'Booster for WooCommerce general back-end tools.', 'woocommerce-jetpack' );
|
26 |
$this->link_slug = 'woocommerce-booster-admin-tools';
|
27 |
parent::__construct();
|
28 |
|
29 |
$this->add_tools( array(
|
30 |
+
'products_atts' => array(
|
31 |
+
'title' => __( 'Products Attributes', 'woocommerce-jetpack' ),
|
32 |
+
'desc' => __( 'All Products and All Attributes.', 'woocommerce-jetpack' ),
|
|
|
33 |
),
|
34 |
) );
|
35 |
|
|
|
|
|
36 |
if ( $this->is_enabled() ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
// Order Meta
|
38 |
if ( 'yes' === get_option( 'wcj_admin_tools_show_order_meta_enabled', 'no' ) ) {
|
39 |
add_action( 'add_meta_boxes', array( $this, 'add_order_meta_meta_box' ) );
|
48 |
add_action( 'add_meta_boxes', array( $this, 'maybe_add_variable_product_pricing_meta_box' ) );
|
49 |
add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
|
50 |
}
|
51 |
+
// Product revisions
|
52 |
+
if ( 'yes' === get_option( 'wcj_product_revisions_enabled', 'no' ) ) {
|
53 |
+
add_filter( 'woocommerce_register_post_type_product', array( $this, 'enable_product_revisions' ) );
|
54 |
+
}
|
55 |
// Admin Notices
|
56 |
if ( 'yes' === get_option( 'wcj_admin_tools_suppress_connect_notice', 'no' ) ) {
|
57 |
add_filter( 'woocommerce_helper_suppress_connect_notice', '__return_true' );
|
59 |
if ( 'yes' === get_option( 'wcj_admin_tools_suppress_admin_notices', 'no' ) ) {
|
60 |
add_filter( 'woocommerce_helper_suppress_admin_notices', '__return_true' );
|
61 |
}
|
62 |
+
// JSON product search limit
|
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 |
+
*
|
72 |
+
* @version 4.1.0
|
73 |
+
* @since 4.1.0
|
74 |
+
*/
|
75 |
+
function set_json_search_limit( $limit ) {
|
76 |
+
return get_option( 'wcj_product_json_search_limit', 0 );
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* enable_product_revisions.
|
81 |
+
*
|
82 |
+
* @version 2.4.0
|
83 |
+
* @since 2.4.0
|
84 |
+
*/
|
85 |
+
function enable_product_revisions( $args ) {
|
86 |
+
$args['supports'][] = 'revisions';
|
87 |
+
return $args;
|
88 |
+
}
|
89 |
+
|
90 |
/**
|
91 |
* make_original_variable_product_pricing_readonly.
|
92 |
*
|
93 |
* @version 3.3.0
|
94 |
* @since 3.3.0
|
95 |
+
* @todo [fix] this is not really making fields readonly (e.g. field is still editable via keyboard tab button)
|
96 |
*/
|
97 |
function make_original_variable_product_pricing_readonly() {
|
98 |
echo '<style>
|
187 |
}
|
188 |
|
189 |
/**
|
190 |
+
* create_products_atts_tool.
|
191 |
*
|
192 |
+
* @version 2.3.9
|
193 |
+
* @since 2.3.9
|
194 |
*/
|
195 |
+
function create_products_atts_tool() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
$html = '';
|
197 |
+
$html .= $this->get_products_atts();
|
|
|
|
|
|
|
198 |
echo $html;
|
199 |
}
|
200 |
|
201 |
+
/*
|
202 |
+
* get_products_atts.
|
203 |
*
|
204 |
+
* @version 4.0.0
|
205 |
+
* @since 2.3.9
|
206 |
+
* @todo [dev] rewrite; add module link;
|
207 |
*/
|
208 |
+
function get_products_atts() {
|
209 |
+
|
210 |
+
$total_products = 0;
|
211 |
+
|
212 |
+
$products_attributes = array();
|
213 |
+
$attributes_names = array();
|
214 |
+
$attributes_names['wcj_title'] = __( 'Product', 'woocommerce-jetpack' );
|
215 |
+
$attributes_names['wcj_category'] = __( 'Category', 'woocommerce-jetpack' );
|
216 |
+
|
217 |
+
$offset = 0;
|
218 |
+
$block_size = 96;
|
219 |
+
while( true ) {
|
220 |
+
|
221 |
+
$args_products = array(
|
222 |
+
'post_type' => 'product',
|
223 |
+
'post_status' => 'publish',
|
224 |
+
'posts_per_page' => $block_size,
|
225 |
+
'orderby' => 'title',
|
226 |
+
'order' => 'ASC',
|
227 |
+
'offset' => $offset,
|
228 |
+
);
|
229 |
+
$loop_products = new WP_Query( $args_products );
|
230 |
+
if ( ! $loop_products->have_posts() ) break;
|
231 |
+
while ( $loop_products->have_posts() ) : $loop_products->the_post();
|
232 |
+
|
233 |
+
$total_products++;
|
234 |
+
$product_id = $loop_products->post->ID;
|
235 |
+
$the_product = wc_get_product( $product_id );
|
236 |
+
|
237 |
+
$products_attributes[ $product_id ]['wcj_title'] = '<a href="' . get_permalink( $product_id ) . '">' . $the_product->get_title() . '</a>';
|
238 |
+
$products_attributes[ $product_id ]['wcj_category'] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $the_product->get_categories() : wc_get_product_category_list( $product_id ) );
|
239 |
+
|
240 |
+
foreach ( $the_product->get_attributes() as $attribute ) {
|
241 |
+
$products_attributes[ $product_id ][ $attribute['name'] ] = $the_product->get_attribute( $attribute['name'] );
|
242 |
+
if ( ! isset( $attributes_names[ $attribute['name'] ] ) ) {
|
243 |
+
$attributes_names[ $attribute['name'] ] = wc_attribute_label( $attribute['name'] );
|
244 |
+
}
|
245 |
+
}
|
246 |
+
|
247 |
+
endwhile;
|
248 |
+
|
249 |
+
$offset += $block_size;
|
250 |
+
|
251 |
+
}
|
252 |
+
|
253 |
+
$table_data = array();
|
254 |
+
if ( isset( $_GET['wcj_attribute'] ) && '' != $_GET['wcj_attribute'] ) {
|
255 |
+
$table_data[] = array(
|
256 |
+
__( 'Product', 'woocommerce-jetpack' ),
|
257 |
+
__( 'Category', 'woocommerce-jetpack' ),
|
258 |
+
$_GET['wcj_attribute'],
|
259 |
+
);
|
260 |
+
} else {
|
261 |
+
$header = $attributes_names;
|
262 |
+
unset( $header['wcj_title'] );
|
263 |
+
unset( $header['wcj_category'] );
|
264 |
+
$table_data[] = array_merge( array(
|
265 |
+
__( 'Product', 'woocommerce-jetpack' ),
|
266 |
+
__( 'Category', 'woocommerce-jetpack' ),
|
267 |
+
), array_keys( $header ) );
|
268 |
}
|
269 |
+
foreach ( $attributes_names as $attributes_name => $attribute_title ) {
|
270 |
+
|
271 |
+
if ( isset( $_GET['wcj_attribute'] ) && '' != $_GET['wcj_attribute'] ) {
|
272 |
+
if ( 'wcj_title' != $attributes_name && 'wcj_category' != $attributes_name && $_GET['wcj_attribute'] != $attributes_name ) {
|
273 |
+
continue;
|
274 |
+
}
|
275 |
+
}
|
276 |
+
|
277 |
+
foreach ( $products_attributes as $product_id => $product_attributes ) {
|
278 |
+
$table_data[ $product_id ][ $attributes_name ] = isset( $product_attributes[ $attributes_name ] ) ? $product_attributes[ $attributes_name ] : '';
|
279 |
}
|
280 |
}
|
281 |
+
|
282 |
+
return '<p>' . __( 'Total Products:', 'woocommerce-jetpack' ) . ' ' . $total_products . '</p>' . wcj_get_table_html( $table_data, array( 'table_class' => 'widefat striped' ) );
|
283 |
}
|
284 |
|
285 |
}
|
includes/class-wcj-checkout-custom-fields.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Custom Fields
|
4 |
*
|
5 |
-
* @version
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -187,11 +187,14 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
|
|
187 |
/**
|
188 |
* update_custom_checkout_fields_order_meta.
|
189 |
*
|
190 |
-
* @version
|
191 |
*/
|
192 |
function update_custom_checkout_fields_order_meta( $order_id ) {
|
193 |
for ( $i = 1; $i <= apply_filters( 'booster_option', 1, get_option( 'wcj_checkout_custom_fields_total_number', 1 ) ); $i++ ) {
|
194 |
if ( 'yes' === get_option( 'wcj_checkout_custom_field_enabled_' . $i ) ) {
|
|
|
|
|
|
|
195 |
$the_section = get_option( 'wcj_checkout_custom_field_section_' . $i );
|
196 |
$the_type = get_option( 'wcj_checkout_custom_field_type_' . $i );
|
197 |
$option_name = $the_section . '_' . 'wcj_checkout_field_' . $i;
|
@@ -378,8 +381,12 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
|
|
378 |
$the_meta = get_post_meta( get_the_ID(), '_' . $section . '_' . $the_key, true );
|
379 |
if ( is_array( $the_meta ) ) {
|
380 |
// Converting from before version 2.3.0
|
381 |
-
if ( isset( $the_meta['value'] ) )
|
382 |
-
|
|
|
|
|
|
|
|
|
383 |
}
|
384 |
$fields[ $the_key ] = array(
|
385 |
'type' => $the_type,
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Custom Fields
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
187 |
/**
|
188 |
* update_custom_checkout_fields_order_meta.
|
189 |
*
|
190 |
+
* @version 4.1.0
|
191 |
*/
|
192 |
function update_custom_checkout_fields_order_meta( $order_id ) {
|
193 |
for ( $i = 1; $i <= apply_filters( 'booster_option', 1, get_option( 'wcj_checkout_custom_fields_total_number', 1 ) ); $i++ ) {
|
194 |
if ( 'yes' === get_option( 'wcj_checkout_custom_field_enabled_' . $i ) ) {
|
195 |
+
if ( ! $this->is_visible( $i ) ) {
|
196 |
+
continue;
|
197 |
+
}
|
198 |
$the_section = get_option( 'wcj_checkout_custom_field_section_' . $i );
|
199 |
$the_type = get_option( 'wcj_checkout_custom_field_type_' . $i );
|
200 |
$option_name = $the_section . '_' . 'wcj_checkout_field_' . $i;
|
381 |
$the_meta = get_post_meta( get_the_ID(), '_' . $section . '_' . $the_key, true );
|
382 |
if ( is_array( $the_meta ) ) {
|
383 |
// Converting from before version 2.3.0
|
384 |
+
if ( isset( $the_meta['value'] ) ) {
|
385 |
+
update_post_meta( get_the_ID(), '_' . $section . '_' . $the_key, $the_meta['value'] );
|
386 |
+
}
|
387 |
+
if ( isset( $the_meta['label'] ) ) {
|
388 |
+
update_post_meta( get_the_ID(), '_' . $section . '_' . $the_key_label, $the_meta['label'] );
|
389 |
+
}
|
390 |
}
|
391 |
$fields[ $the_key ] = array(
|
392 |
'type' => $the_type,
|
includes/class-wcj-checkout-customization.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Customization
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.7.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,7 +16,7 @@ class WCJ_Checkout_Customization extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version
|
20 |
* @since 2.7.0
|
21 |
*/
|
22 |
function __construct() {
|
@@ -73,7 +73,65 @@ class WCJ_Checkout_Customization extends WCJ_Module {
|
|
73 |
if ( 'yes' === apply_filters( 'booster_option', 'no', get_option( 'wcj_checkout_restrict_countries_by_customer_ip_shipping', 'no' ) ) ) {
|
74 |
add_filter( 'woocommerce_countries_shipping_countries', array( $this, 'restrict_countries_by_customer_ip' ), PHP_INT_MAX );
|
75 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
}
|
78 |
|
79 |
/**
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Customization
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.7.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 4.1.0
|
20 |
* @since 2.7.0
|
21 |
*/
|
22 |
function __construct() {
|
73 |
if ( 'yes' === apply_filters( 'booster_option', 'no', get_option( 'wcj_checkout_restrict_countries_by_customer_ip_shipping', 'no' ) ) ) {
|
74 |
add_filter( 'woocommerce_countries_shipping_countries', array( $this, 'restrict_countries_by_customer_ip' ), PHP_INT_MAX );
|
75 |
}
|
76 |
+
// Recalculate Checkout
|
77 |
+
if ( 'yes' === get_option( 'wcj_checkout_recalculate_checkout_update_enable', 'no' ) ) {
|
78 |
+
add_action( 'wp_footer', array( $this, 'recalculate_checkout' ), 50 );
|
79 |
+
}
|
80 |
+
// Update Checkout
|
81 |
+
if ( 'yes' === get_option( 'wcj_checkout_force_checkout_update_enable', 'no' ) ) {
|
82 |
+
add_action( 'wp_footer', array( $this, 'update_checkout' ), 50 );
|
83 |
+
}
|
84 |
+
}
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Updates checkout.
|
89 |
+
*
|
90 |
+
* @version 4.1.0
|
91 |
+
* @since 4.1.0
|
92 |
+
*/
|
93 |
+
function update_checkout() {
|
94 |
+
if ( ! is_checkout() ) {
|
95 |
+
return;
|
96 |
+
}
|
97 |
+
?>
|
98 |
+
<script type="text/javascript">
|
99 |
+
jQuery(function ($) {
|
100 |
+
var selector = <?php echo wp_json_encode( get_option( 'wcj_checkout_force_checkout_update_fields', '' ) ); ?>;
|
101 |
+
jQuery(selector).on('change', function () {
|
102 |
+
$('body').trigger('update_checkout');
|
103 |
+
});
|
104 |
+
});
|
105 |
+
</script>
|
106 |
+
<?php
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Recalculates checkout.
|
111 |
+
*
|
112 |
+
* @version 4.1.0
|
113 |
+
* @since 4.1.0
|
114 |
+
*/
|
115 |
+
function recalculate_checkout() {
|
116 |
+
if ( ! is_checkout() ) {
|
117 |
+
return;
|
118 |
}
|
119 |
+
?>
|
120 |
+
<script type="text/javascript">
|
121 |
+
jQuery(function ($) {
|
122 |
+
var old_values = [];
|
123 |
+
var selector = <?php echo wp_json_encode( get_option( 'wcj_checkout_recalculate_checkout_update_fields', '#billing_country, #shipping_country' ) ); ?>;
|
124 |
+
jQuery(document.body).on("updated_checkout", function () {
|
125 |
+
jQuery(selector).each(function (index) {
|
126 |
+
if (old_values[index] != $(this).val()) {
|
127 |
+
$('body').trigger('update_checkout');
|
128 |
+
}
|
129 |
+
old_values[index] = $(this).val();
|
130 |
+
});
|
131 |
+
});
|
132 |
+
});
|
133 |
+
</script>
|
134 |
+
<?php
|
135 |
}
|
136 |
|
137 |
/**
|
includes/class-wcj-debug-tools.php
ADDED
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Booster for WooCommerce - Module - Debug Tools
|
4 |
+
*
|
5 |
+
* @version 4.1.0
|
6 |
+
* @version 4.1.0
|
7 |
+
* @author Algoritmika Ltd.
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
11 |
+
|
12 |
+
if ( ! class_exists( 'WCJ_Debug_Tools' ) ) :
|
13 |
+
|
14 |
+
class WCJ_Debug_Tools extends WCJ_Module {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Constructor.
|
18 |
+
*
|
19 |
+
* @version 4.1.0
|
20 |
+
* @version 4.1.0
|
21 |
+
*/
|
22 |
+
function __construct() {
|
23 |
+
|
24 |
+
$this->id = 'debug_tools';
|
25 |
+
$this->short_desc = __( 'Debug Tools', 'woocommerce-jetpack' );
|
26 |
+
$this->desc = __( 'Booster for WooCommerce debug and log tools.', 'woocommerce-jetpack' );
|
27 |
+
$this->link_slug = 'woocommerce-booster-debug-tools';
|
28 |
+
parent::__construct();
|
29 |
+
|
30 |
+
$this->add_tools( array(
|
31 |
+
'debug_tools' => array(
|
32 |
+
'title' => __( 'Log', 'woocommerce-jetpack' ),
|
33 |
+
'desc' => __( 'Log.', 'woocommerce-jetpack' ),
|
34 |
+
),
|
35 |
+
) );
|
36 |
+
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* create_debug_tools_tool.
|
41 |
+
*
|
42 |
+
* @version 4.1.0
|
43 |
+
*/
|
44 |
+
function create_debug_tools_tool() {
|
45 |
+
// Delete log
|
46 |
+
if ( isset( $_GET['wcj_delete_log'] ) && wcj_is_user_role( 'administrator' ) ) {
|
47 |
+
update_option( 'wcj_log', '' );
|
48 |
+
if ( wp_safe_redirect( remove_query_arg( 'wcj_delete_log' ) ) ) {
|
49 |
+
exit;
|
50 |
+
}
|
51 |
+
}
|
52 |
+
// Header
|
53 |
+
$the_tools = '';
|
54 |
+
$the_tools .= $this->get_tool_header_html( 'debug_tools' );
|
55 |
+
$the_tools .= '<p><a href="' . add_query_arg( 'wcj_delete_log', '1' ) . '">' . __( 'Delete Log', 'woocommerce-jetpack' ) . '</a></p>';
|
56 |
+
// Log
|
57 |
+
$the_log = '';
|
58 |
+
$the_log .= '<p style="font-style:italic;color:gray;">' . sprintf( __( 'Now: %s', 'woocommerce-jetpack' ), date( 'Y-m-d H:i:s' ) ) . '</p>';
|
59 |
+
if ( '' != ( $log = get_option( 'wcj_log', '' ) ) ) {
|
60 |
+
$the_log .= '<pre style="color:green;background-color:black;padding:5px;">' . $log . '</pre>';
|
61 |
+
} else {
|
62 |
+
$the_log .= '<p style="font-style:italic;color:gray;">' . __( 'Log is empty.', 'woocommerce-jetpack' ) . '</p>';
|
63 |
+
}
|
64 |
+
// Final output
|
65 |
+
$html = '';
|
66 |
+
$html .= '<div class="wrap">';
|
67 |
+
$html .= '<p>' . $the_tools . '</p>';
|
68 |
+
$html .= '<p>' . $the_log . '</p>';
|
69 |
+
$html .= '</div>';
|
70 |
+
echo $html;
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* get_system_info_table_array.
|
75 |
+
*
|
76 |
+
* @version 4.1.0
|
77 |
+
* @since 2.5.7
|
78 |
+
* @todo [feature] (maybe) 'DB_NAME', 'DB_USER', 'DB_PASSWORD', 'DB_HOST', 'DB_CHARSET', 'DB_COLLATE'
|
79 |
+
*/
|
80 |
+
function get_system_info_table_array() {
|
81 |
+
$system_info = array();
|
82 |
+
$constants_array = array(
|
83 |
+
'WP_MEMORY_LIMIT',
|
84 |
+
'WP_MAX_MEMORY_LIMIT',
|
85 |
+
'WP_DEBUG',
|
86 |
+
'ABSPATH',
|
87 |
+
'DISABLE_WP_CRON',
|
88 |
+
'WP_CRON_LOCK_TIMEOUT',
|
89 |
+
'WCJ_WC_VERSION',
|
90 |
+
'WCJ_SESSION_TYPE',
|
91 |
+
);
|
92 |
+
foreach ( $constants_array as $the_constant ) {
|
93 |
+
$system_info[] = array( $the_constant, ( defined( $the_constant ) ? constant( $the_constant ) : __( 'NOT DEFINED', 'woocommerce-jetpack' ) ) );
|
94 |
+
}
|
95 |
+
if ( isset( $_GET['wcj_debug'] ) ) {
|
96 |
+
foreach ( $_SERVER as $server_var_id => $server_var_value ) {
|
97 |
+
$system_info[] = array( $server_var_id, esc_html( $server_var_value ) );
|
98 |
+
}
|
99 |
+
}
|
100 |
+
return $system_info;
|
101 |
+
}
|
102 |
+
|
103 |
+
}
|
104 |
+
|
105 |
+
endif;
|
106 |
+
|
107 |
+
return new WCJ_Debug_Tools();
|
includes/class-wcj-general.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - General
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -15,22 +15,18 @@ class WCJ_General extends WCJ_Module {
|
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
-
* @version
|
19 |
-
* @todo expand `$this->desc`
|
20 |
*/
|
21 |
function __construct() {
|
22 |
|
23 |
$this->id = 'general';
|
24 |
$this->short_desc = __( 'General', 'woocommerce-jetpack' );
|
25 |
-
$this->desc = __( '
|
26 |
$this->link_slug = 'woocommerce-booster-general-tools';
|
27 |
parent::__construct();
|
28 |
|
29 |
$this->add_tools( array(
|
30 |
-
'products_atts' => array(
|
31 |
-
'title' => __( 'Products Attributes', 'woocommerce-jetpack' ),
|
32 |
-
'desc' => __( 'All Products and All Attributes.', 'woocommerce-jetpack' ),
|
33 |
-
),
|
34 |
'custom_roles' => array(
|
35 |
'title' => __( 'Add/Manage Custom Roles', 'woocommerce-jetpack' ),
|
36 |
'tab_title' => __( 'Custom Roles', 'woocommerce-jetpack' ),
|
@@ -38,18 +34,28 @@ class WCJ_General extends WCJ_Module {
|
|
38 |
),
|
39 |
) );
|
40 |
|
|
|
|
|
|
|
41 |
if ( $this->is_enabled() ) {
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
// Recalculate cart totals
|
44 |
if ( 'yes' === get_option( 'wcj_general_advanced_recalculate_cart_totals', 'no' ) ) {
|
45 |
add_action( 'wp_loaded', array( $this, 'fix_mini_cart' ), PHP_INT_MAX );
|
46 |
}
|
47 |
|
48 |
-
// Product revisions
|
49 |
-
if ( 'yes' === get_option( 'wcj_product_revisions_enabled', 'no' ) ) {
|
50 |
-
add_filter( 'woocommerce_register_post_type_product', array( $this, 'enable_product_revisions' ) );
|
51 |
-
}
|
52 |
-
|
53 |
// Shortcodes in text widgets
|
54 |
if ( 'yes' === get_option( 'wcj_general_shortcodes_in_text_widgets_enabled' ) ) {
|
55 |
add_filter( 'widget_text', 'do_shortcode' );
|
@@ -82,7 +88,7 @@ class WCJ_General extends WCJ_Module {
|
|
82 |
*
|
83 |
* @version 2.9.0
|
84 |
* @since 2.9.0
|
85 |
-
* @todo (maybe) optionally via cookies
|
86 |
*/
|
87 |
function change_user_role_meta() {
|
88 |
if ( isset( $_GET['wcj_booster_user_role'] ) ) {
|
@@ -127,7 +133,7 @@ class WCJ_General extends WCJ_Module {
|
|
127 |
*
|
128 |
* @version 2.5.2
|
129 |
* @since 2.5.2
|
130 |
-
* @todo this is only temporary solution!
|
131 |
*/
|
132 |
function fix_mini_cart() {
|
133 |
if ( wcj_is_frontend() ) {
|
@@ -251,112 +257,6 @@ class WCJ_General extends WCJ_Module {
|
|
251 |
return $load_gateways;
|
252 |
}
|
253 |
|
254 |
-
/**
|
255 |
-
* enable_product_revisions.
|
256 |
-
*
|
257 |
-
* @version 2.4.0
|
258 |
-
* @since 2.4.0
|
259 |
-
*/
|
260 |
-
function enable_product_revisions( $args ) {
|
261 |
-
$args['supports'][] = 'revisions';
|
262 |
-
return $args;
|
263 |
-
}
|
264 |
-
|
265 |
-
/**
|
266 |
-
* create_products_atts_tool.
|
267 |
-
*
|
268 |
-
* @version 2.3.9
|
269 |
-
* @since 2.3.9
|
270 |
-
*/
|
271 |
-
function create_products_atts_tool() {
|
272 |
-
$html = '';
|
273 |
-
$html .= $this->get_products_atts();
|
274 |
-
echo $html;
|
275 |
-
}
|
276 |
-
|
277 |
-
/*
|
278 |
-
* get_products_atts.
|
279 |
-
*
|
280 |
-
* @version 4.0.0
|
281 |
-
* @since 2.3.9
|
282 |
-
*/
|
283 |
-
function get_products_atts() {
|
284 |
-
|
285 |
-
$total_products = 0;
|
286 |
-
|
287 |
-
$products_attributes = array();
|
288 |
-
$attributes_names = array();
|
289 |
-
$attributes_names['wcj_title'] = __( 'Product', 'woocommerce-jetpack' );
|
290 |
-
$attributes_names['wcj_category'] = __( 'Category', 'woocommerce-jetpack' );
|
291 |
-
|
292 |
-
$offset = 0;
|
293 |
-
$block_size = 96;
|
294 |
-
while( true ) {
|
295 |
-
|
296 |
-
$args_products = array(
|
297 |
-
'post_type' => 'product',
|
298 |
-
'post_status' => 'publish',
|
299 |
-
'posts_per_page' => $block_size,
|
300 |
-
'orderby' => 'title',
|
301 |
-
'order' => 'ASC',
|
302 |
-
'offset' => $offset,
|
303 |
-
);
|
304 |
-
$loop_products = new WP_Query( $args_products );
|
305 |
-
if ( ! $loop_products->have_posts() ) break;
|
306 |
-
while ( $loop_products->have_posts() ) : $loop_products->the_post();
|
307 |
-
|
308 |
-
$total_products++;
|
309 |
-
$product_id = $loop_products->post->ID;
|
310 |
-
$the_product = wc_get_product( $product_id );
|
311 |
-
|
312 |
-
$products_attributes[ $product_id ]['wcj_title'] = '<a href="' . get_permalink( $product_id ) . '">' . $the_product->get_title() . '</a>';
|
313 |
-
$products_attributes[ $product_id ]['wcj_category'] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $the_product->get_categories() : wc_get_product_category_list( $product_id ) );
|
314 |
-
|
315 |
-
foreach ( $the_product->get_attributes() as $attribute ) {
|
316 |
-
$products_attributes[ $product_id ][ $attribute['name'] ] = $the_product->get_attribute( $attribute['name'] );
|
317 |
-
if ( ! isset( $attributes_names[ $attribute['name'] ] ) ) {
|
318 |
-
$attributes_names[ $attribute['name'] ] = wc_attribute_label( $attribute['name'] );
|
319 |
-
}
|
320 |
-
}
|
321 |
-
|
322 |
-
endwhile;
|
323 |
-
|
324 |
-
$offset += $block_size;
|
325 |
-
|
326 |
-
}
|
327 |
-
|
328 |
-
$table_data = array();
|
329 |
-
if ( isset( $_GET['wcj_attribute'] ) && '' != $_GET['wcj_attribute'] ) {
|
330 |
-
$table_data[] = array(
|
331 |
-
__( 'Product', 'woocommerce-jetpack' ),
|
332 |
-
__( 'Category', 'woocommerce-jetpack' ),
|
333 |
-
$_GET['wcj_attribute'],
|
334 |
-
);
|
335 |
-
} else {
|
336 |
-
$header = $attributes_names;
|
337 |
-
unset( $header['wcj_title'] );
|
338 |
-
unset( $header['wcj_category'] );
|
339 |
-
$table_data[] = array_merge( array(
|
340 |
-
__( 'Product', 'woocommerce-jetpack' ),
|
341 |
-
__( 'Category', 'woocommerce-jetpack' ),
|
342 |
-
), array_keys( $header ) );
|
343 |
-
}
|
344 |
-
foreach ( $attributes_names as $attributes_name => $attribute_title ) {
|
345 |
-
|
346 |
-
if ( isset( $_GET['wcj_attribute'] ) && '' != $_GET['wcj_attribute'] ) {
|
347 |
-
if ( 'wcj_title' != $attributes_name && 'wcj_category' != $attributes_name && $_GET['wcj_attribute'] != $attributes_name ) {
|
348 |
-
continue;
|
349 |
-
}
|
350 |
-
}
|
351 |
-
|
352 |
-
foreach ( $products_attributes as $product_id => $product_attributes ) {
|
353 |
-
$table_data[ $product_id ][ $attributes_name ] = isset( $product_attributes[ $attributes_name ] ) ? $product_attributes[ $attributes_name ] : '';
|
354 |
-
}
|
355 |
-
}
|
356 |
-
|
357 |
-
return '<p>' . __( 'Total Products:', 'woocommerce-jetpack' ) . ' ' . $total_products . '</p>' . wcj_get_table_html( $table_data, array( 'table_class' => 'widefat striped' ) );
|
358 |
-
}
|
359 |
-
|
360 |
}
|
361 |
|
362 |
endif;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - General
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
+
* @version 4.1.0
|
19 |
+
* @todo [dev] maybe expand `$this->desc` (e.g.: Custom roles tool, shortcodes in WordPress text widgets etc.)
|
20 |
*/
|
21 |
function __construct() {
|
22 |
|
23 |
$this->id = 'general';
|
24 |
$this->short_desc = __( 'General', 'woocommerce-jetpack' );
|
25 |
+
$this->desc = __( 'Booster for WooCommerce general front-end tools.', 'woocommerce-jetpack' );
|
26 |
$this->link_slug = 'woocommerce-booster-general-tools';
|
27 |
parent::__construct();
|
28 |
|
29 |
$this->add_tools( array(
|
|
|
|
|
|
|
|
|
30 |
'custom_roles' => array(
|
31 |
'title' => __( 'Add/Manage Custom Roles', 'woocommerce-jetpack' ),
|
32 |
'tab_title' => __( 'Custom Roles', 'woocommerce-jetpack' ),
|
34 |
),
|
35 |
) );
|
36 |
|
37 |
+
$this->current_php_memory_limit = '';
|
38 |
+
$this->current_php_time_limit = '';
|
39 |
+
|
40 |
if ( $this->is_enabled() ) {
|
41 |
|
42 |
+
// PHP Memory Limit
|
43 |
+
if ( 0 != ( $php_memory_limit = get_option( 'wcj_admin_tools_php_memory_limit', 0 ) ) ) {
|
44 |
+
ini_set( 'memory_limit', $php_memory_limit . 'M' );
|
45 |
+
}
|
46 |
+
$this->current_php_memory_limit = sprintf( ' ' . __( 'Current PHP memory limit: %s.', 'woocommerce-jetpack' ), ini_get( 'memory_limit' ) );
|
47 |
+
|
48 |
+
// PHP Time Limit
|
49 |
+
if ( 0 != ( $php_time_limit = get_option( 'wcj_admin_tools_php_time_limit', 0 ) ) ) {
|
50 |
+
set_time_limit( $php_time_limit );
|
51 |
+
}
|
52 |
+
$this->current_php_time_limit = sprintf( ' ' . __( 'Current PHP time limit: %s seconds.', 'woocommerce-jetpack' ), ini_get( 'max_execution_time' ) );
|
53 |
+
|
54 |
// Recalculate cart totals
|
55 |
if ( 'yes' === get_option( 'wcj_general_advanced_recalculate_cart_totals', 'no' ) ) {
|
56 |
add_action( 'wp_loaded', array( $this, 'fix_mini_cart' ), PHP_INT_MAX );
|
57 |
}
|
58 |
|
|
|
|
|
|
|
|
|
|
|
59 |
// Shortcodes in text widgets
|
60 |
if ( 'yes' === get_option( 'wcj_general_shortcodes_in_text_widgets_enabled' ) ) {
|
61 |
add_filter( 'widget_text', 'do_shortcode' );
|
88 |
*
|
89 |
* @version 2.9.0
|
90 |
* @since 2.9.0
|
91 |
+
* @todo [dev] (maybe) optionally via cookies
|
92 |
*/
|
93 |
function change_user_role_meta() {
|
94 |
if ( isset( $_GET['wcj_booster_user_role'] ) ) {
|
133 |
*
|
134 |
* @version 2.5.2
|
135 |
* @since 2.5.2
|
136 |
+
* @todo [dev] this is only temporary solution!
|
137 |
*/
|
138 |
function fix_mini_cart() {
|
139 |
if ( wcj_is_frontend() ) {
|
257 |
return $load_gateways;
|
258 |
}
|
259 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
260 |
}
|
261 |
|
262 |
endif;
|
includes/class-wcj-max-products-per-user.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Max Products per User
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 3.5.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,18 +16,20 @@ class WCJ_Max_products_Per_User extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version
|
20 |
* @since 3.5.0
|
21 |
* @todo (maybe) JS
|
22 |
* @todo (maybe) zero quantity for "Guest"
|
23 |
* @todo (maybe) editable sales data (i.e. change "Qty Bought" for product for user)
|
|
|
|
|
24 |
*/
|
25 |
function __construct() {
|
26 |
|
27 |
$this->id = 'max_products_per_user';
|
28 |
$this->short_desc = __( 'Maximum Products per User', 'woocommerce-jetpack' );
|
29 |
$this->desc = __( 'Limit number of items your (logged) customers can buy.', 'woocommerce-jetpack' );
|
30 |
-
$this->extra_desc = __( 'Please note, that there is no maximum quantity set for not-logged (i.e. guest) users. Product quantities are updated, when order status is changed to
|
31 |
$this->link_slug = 'woocommerce-maximum-products-per-user';
|
32 |
parent::__construct();
|
33 |
|
@@ -43,10 +45,17 @@ class WCJ_Max_products_Per_User extends WCJ_Module {
|
|
43 |
add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
|
44 |
}
|
45 |
}
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
}
|
51 |
}
|
52 |
|
@@ -68,7 +77,7 @@ class WCJ_Max_products_Per_User extends WCJ_Module {
|
|
68 |
/**
|
69 |
* calculate_data.
|
70 |
*
|
71 |
-
* @version
|
72 |
* @since 3.5.0
|
73 |
* @todo reset `wcj_max_products_per_user_report` and `wcj_max_products_per_user_saved` meta
|
74 |
*/
|
@@ -80,7 +89,7 @@ class WCJ_Max_products_Per_User extends WCJ_Module {
|
|
80 |
while( true ) {
|
81 |
$args = array(
|
82 |
'post_type' => 'shop_order',
|
83 |
-
'post_status' =>
|
84 |
'posts_per_page' => $block_size,
|
85 |
'orderby' => 'ID',
|
86 |
'order' => 'DESC',
|
@@ -150,7 +159,6 @@ class WCJ_Max_products_Per_User extends WCJ_Module {
|
|
150 |
*
|
151 |
* @version 3.5.0
|
152 |
* @since 3.5.0
|
153 |
-
* @todo (maybe) customizable `save_quantities` trigger
|
154 |
*/
|
155 |
function save_quantities( $order_id ) {
|
156 |
if ( $order = wc_get_order( $order_id ) ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Max Products per User
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 3.5.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 4.1.0
|
20 |
* @since 3.5.0
|
21 |
* @todo (maybe) JS
|
22 |
* @todo (maybe) zero quantity for "Guest"
|
23 |
* @todo (maybe) editable sales data (i.e. change "Qty Bought" for product for user)
|
24 |
+
* @todo (maybe) `wcj_max_products_per_user_order_status` - add "Any" option
|
25 |
+
* @todo (maybe) `wcj_max_products_per_user_order_status` - add "Manually" option
|
26 |
*/
|
27 |
function __construct() {
|
28 |
|
29 |
$this->id = 'max_products_per_user';
|
30 |
$this->short_desc = __( 'Maximum Products per User', 'woocommerce-jetpack' );
|
31 |
$this->desc = __( 'Limit number of items your (logged) customers can buy.', 'woocommerce-jetpack' );
|
32 |
+
$this->extra_desc = __( 'Please note, that there is no maximum quantity set for not-logged (i.e. guest) users. Product quantities are updated, when order status is changed to status listed in module\'s "Order Status" option.', 'woocommerce-jetpack' );
|
33 |
$this->link_slug = 'woocommerce-maximum-products-per-user';
|
34 |
parent::__construct();
|
35 |
|
45 |
add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
|
46 |
}
|
47 |
}
|
48 |
+
$this->order_status = get_option( 'wcj_max_products_per_user_order_status', array( 'wc-completed' ) );
|
49 |
+
if ( empty( $this->order_status ) ) {
|
50 |
+
$this->order_status = array( 'wc-completed' );
|
51 |
+
}
|
52 |
+
foreach ( $this->order_status as $status ) {
|
53 |
+
$status = substr( $status, 3 );
|
54 |
+
add_action( 'woocommerce_order_status_' . $status, array( $this, 'save_quantities' ), PHP_INT_MAX );
|
55 |
+
}
|
56 |
+
add_action( 'add_meta_boxes', array( $this, 'add_report_meta_box' ) );
|
57 |
+
add_action( 'admin_init', array( $this, 'calculate_data' ) );
|
58 |
+
add_action( 'admin_notices', array( $this, 'calculate_data_notice' ) );
|
59 |
}
|
60 |
}
|
61 |
|
77 |
/**
|
78 |
* calculate_data.
|
79 |
*
|
80 |
+
* @version 4.1.0
|
81 |
* @since 3.5.0
|
82 |
* @todo reset `wcj_max_products_per_user_report` and `wcj_max_products_per_user_saved` meta
|
83 |
*/
|
89 |
while( true ) {
|
90 |
$args = array(
|
91 |
'post_type' => 'shop_order',
|
92 |
+
'post_status' => $this->order_status,
|
93 |
'posts_per_page' => $block_size,
|
94 |
'orderby' => 'ID',
|
95 |
'order' => 'DESC',
|
159 |
*
|
160 |
* @version 3.5.0
|
161 |
* @since 3.5.0
|
|
|
162 |
*/
|
163 |
function save_quantities( $order_id ) {
|
164 |
if ( $order = wc_get_order( $order_id ) ) {
|
includes/class-wcj-order-min-amount.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Order Minimum Amount
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.5.7
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo order max amount
|
@@ -64,7 +64,7 @@ class WCJ_Order_Min_Amount extends WCJ_Module {
|
|
64 |
/**
|
65 |
* get_order_minimum_amount_with_user_roles.
|
66 |
*
|
67 |
-
* @version
|
68 |
* @since 2.5.3
|
69 |
*/
|
70 |
function get_order_minimum_amount_with_user_roles() {
|
@@ -73,7 +73,7 @@ class WCJ_Order_Min_Amount extends WCJ_Module {
|
|
73 |
foreach ( wcj_get_user_roles() as $role_key => $role_data ) {
|
74 |
if ( $role_key === $current_user_role ) {
|
75 |
$order_minimum_amount_by_user_role = get_option( 'wcj_order_minimum_amount_by_user_role_' . $role_key, 0 );
|
76 |
-
if ( $order_minimum_amount_by_user_role >
|
77 |
$minimum = $order_minimum_amount_by_user_role;
|
78 |
}
|
79 |
break;
|
@@ -83,6 +83,10 @@ class WCJ_Order_Min_Amount extends WCJ_Module {
|
|
83 |
if ( WCJ()->modules['multicurrency']->is_enabled() ) {
|
84 |
$minimum = WCJ()->modules['multicurrency']->change_price( $minimum, null );
|
85 |
}
|
|
|
|
|
|
|
|
|
86 |
return $minimum;
|
87 |
}
|
88 |
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Order Minimum Amount
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.5.7
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo order max amount
|
64 |
/**
|
65 |
* get_order_minimum_amount_with_user_roles.
|
66 |
*
|
67 |
+
* @version 4.1.0
|
68 |
* @since 2.5.3
|
69 |
*/
|
70 |
function get_order_minimum_amount_with_user_roles() {
|
73 |
foreach ( wcj_get_user_roles() as $role_key => $role_data ) {
|
74 |
if ( $role_key === $current_user_role ) {
|
75 |
$order_minimum_amount_by_user_role = get_option( 'wcj_order_minimum_amount_by_user_role_' . $role_key, 0 );
|
76 |
+
if ( $order_minimum_amount_by_user_role > 0 ) {
|
77 |
$minimum = $order_minimum_amount_by_user_role;
|
78 |
}
|
79 |
break;
|
83 |
if ( WCJ()->modules['multicurrency']->is_enabled() ) {
|
84 |
$minimum = WCJ()->modules['multicurrency']->change_price( $minimum, null );
|
85 |
}
|
86 |
+
// Price by country module
|
87 |
+
if ( WCJ()->modules['price_by_country']->is_enabled() ) {
|
88 |
+
$minimum = WCJ()->modules['price_by_country']->core->change_price( $minimum, null );
|
89 |
+
}
|
90 |
return $minimum;
|
91 |
}
|
92 |
|
includes/class-wcj-order-quantities.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Order Min/Max Quantities
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,7 +16,7 @@ class WCJ_Order_Quantities extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version
|
20 |
* @since 2.9.0
|
21 |
* @todo maybe rename the module to "Order Quantities" or "Order Product Quantities" or "Product Quantities"?
|
22 |
* @todo loop (`woocommerce_loop_add_to_cart_link`)
|
@@ -68,9 +68,69 @@ class WCJ_Order_Quantities extends WCJ_Module {
|
|
68 |
}
|
69 |
// For cart
|
70 |
add_filter( 'woocommerce_quantity_input_args', array( $this, 'set_quantity_input_args' ), PHP_INT_MAX, 2 );
|
|
|
|
|
|
|
71 |
}
|
72 |
}
|
73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
/**
|
75 |
* set_quantity_input_args.
|
76 |
*
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Order Min/Max Quantities
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 4.1.0
|
20 |
* @since 2.9.0
|
21 |
* @todo maybe rename the module to "Order Quantities" or "Order Product Quantities" or "Product Quantities"?
|
22 |
* @todo loop (`woocommerce_loop_add_to_cart_link`)
|
68 |
}
|
69 |
// For cart
|
70 |
add_filter( 'woocommerce_quantity_input_args', array( $this, 'set_quantity_input_args' ), PHP_INT_MAX, 2 );
|
71 |
+
// Handle Add to cart button on loop
|
72 |
+
add_filter( 'woocommerce_loop_add_to_cart_args', array( $this, 'handle_wc_loop_add_to_cart_args' ), 10, 2 );
|
73 |
+
add_action( 'wp_footer', array( $this, 'sync_qty_input_with_add_to_cart_btn_on_loop' ) );
|
74 |
}
|
75 |
}
|
76 |
|
77 |
+
/**
|
78 |
+
* Syncs Quantity input with Add to cart button on loop page.
|
79 |
+
*
|
80 |
+
* @version 4.1.0
|
81 |
+
* @since 4.1.0
|
82 |
+
*/
|
83 |
+
function sync_qty_input_with_add_to_cart_btn_on_loop() {
|
84 |
+
if ( ! is_shop() && ! is_product_category() && ! is_product_tag() && ! is_product_taxonomy() ) {
|
85 |
+
return;
|
86 |
+
}
|
87 |
+
$js = "
|
88 |
+
var wcj_sqwb = {
|
89 |
+
init: function () {
|
90 |
+
var qtyInput = document.querySelectorAll('.quantity .qty');
|
91 |
+
[].forEach.call(qtyInput, function (el) {
|
92 |
+
var productWrapper = el.closest('.products .product');
|
93 |
+
var addToCartBtn = productWrapper.querySelector('.ajax_add_to_cart');
|
94 |
+
var dataProductIDAttr = addToCartBtn.getAttribute('data-product_id');
|
95 |
+
el.addEventListener('change', function() {
|
96 |
+
if(!this.checkValidity()){
|
97 |
+
addToCartBtn.removeAttribute('data-product_id');
|
98 |
+
this.reportValidity();
|
99 |
+
}else{
|
100 |
+
wcj_sqwb.sync(this.value,addToCartBtn);
|
101 |
+
addToCartBtn.setAttribute('data-product_id',dataProductIDAttr);
|
102 |
+
}
|
103 |
+
});
|
104 |
+
wcj_sqwb.sync(el.value,addToCartBtn);
|
105 |
+
});
|
106 |
+
},
|
107 |
+
sync:function(qty_value,addToCartBtn){
|
108 |
+
addToCartBtn.setAttribute('data-quantity', qty_value);
|
109 |
+
}
|
110 |
+
};
|
111 |
+
jQuery(document).ready(function(){
|
112 |
+
wcj_sqwb.init();
|
113 |
+
});
|
114 |
+
";
|
115 |
+
wc_enqueue_js( $js );
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Handles arguments passed to add to cart loop.
|
120 |
+
*
|
121 |
+
* @version 4.1.0
|
122 |
+
* @since 4.1.0
|
123 |
+
*
|
124 |
+
* @param $args
|
125 |
+
* @param $product
|
126 |
+
*
|
127 |
+
* @return mixed
|
128 |
+
*/
|
129 |
+
function handle_wc_loop_add_to_cart_args( $args, $product ) {
|
130 |
+
$args['quantity'] = $this->get_product_quantity( 'min', $product, $args['quantity'] );
|
131 |
+
return $args;
|
132 |
+
}
|
133 |
+
|
134 |
/**
|
135 |
* set_quantity_input_args.
|
136 |
*
|
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
|
6 |
* @since 2.2.2
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,7 +16,7 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version
|
20 |
* @todo (maybe) add settings subsections for each gateway
|
21 |
*/
|
22 |
function __construct() {
|
@@ -28,7 +28,7 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
28 |
parent::__construct();
|
29 |
|
30 |
if ( $this->is_enabled() ) {
|
31 |
-
$this
|
32 |
add_action( 'woocommerce_cart_calculate_fees', array( $this, 'gateways_fees' ) );
|
33 |
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_checkout_script' ) );
|
34 |
}
|
@@ -37,7 +37,7 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
37 |
/**
|
38 |
* init_options.
|
39 |
*
|
40 |
-
* @version
|
41 |
* @since 3.8.0
|
42 |
*/
|
43 |
function init_options() {
|
@@ -52,6 +52,7 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
52 |
'is_taxable' => get_option( 'wcj_gateways_fees_is_taxable', array() ),
|
53 |
'tax_class_id' => get_option( 'wcj_gateways_fees_tax_class_id', array() ),
|
54 |
'exclude_shipping' => get_option( 'wcj_gateways_fees_exclude_shipping', array() ),
|
|
|
55 |
'include_products' => apply_filters( 'booster_option', array(), get_option( 'wcj_gateways_fees_include_products', array() ) ),
|
56 |
'exclude_products' => apply_filters( 'booster_option', array(), get_option( 'wcj_gateways_fees_exclude_products', array() ) ),
|
57 |
);
|
@@ -66,6 +67,7 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
66 |
'is_taxable' => 'no',
|
67 |
'tax_class_id' => '',
|
68 |
'exclude_shipping' => 'no',
|
|
|
69 |
'include_products' => '',
|
70 |
'exclude_products' => '',
|
71 |
);
|
@@ -180,13 +182,13 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
180 |
/**
|
181 |
* gateways_fees.
|
182 |
*
|
183 |
-
* @version
|
184 |
*/
|
185 |
function gateways_fees() {
|
186 |
global $woocommerce;
|
187 |
$current_gateway = $this->get_current_gateway();
|
188 |
if ( '' != $current_gateway ) {
|
189 |
-
$fee_text = $this->get_option( 'text', $current_gateway );
|
190 |
$min_cart_amount = $this->get_option( 'min_cart_amount', $current_gateway );
|
191 |
$max_cart_amount = $this->get_option( 'max_cart_amount', $current_gateway );
|
192 |
// Multicurrency (Currency Switcher) module
|
@@ -198,6 +200,7 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
198 |
$woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total :
|
199 |
$woocommerce->cart->cart_contents_total
|
200 |
);
|
|
|
201 |
if ( '' != $fee_text && $total_in_cart >= $min_cart_amount && ( 0 == $max_cart_amount || $total_in_cart <= $max_cart_amount ) && $this->check_cart_products( $current_gateway ) ) {
|
202 |
$fee_value = $this->get_option( 'value', $current_gateway );
|
203 |
$fee_type = $this->get_option( 'type', $current_gateway );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Gateways Fees and Discounts
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.2.2
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 4.1.0
|
20 |
* @todo (maybe) add settings subsections for each gateway
|
21 |
*/
|
22 |
function __construct() {
|
28 |
parent::__construct();
|
29 |
|
30 |
if ( $this->is_enabled() ) {
|
31 |
+
add_action( 'init', array( $this, 'init_options' ) );
|
32 |
add_action( 'woocommerce_cart_calculate_fees', array( $this, 'gateways_fees' ) );
|
33 |
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_checkout_script' ) );
|
34 |
}
|
37 |
/**
|
38 |
* init_options.
|
39 |
*
|
40 |
+
* @version 4.1.0
|
41 |
* @since 3.8.0
|
42 |
*/
|
43 |
function init_options() {
|
52 |
'is_taxable' => get_option( 'wcj_gateways_fees_is_taxable', array() ),
|
53 |
'tax_class_id' => get_option( 'wcj_gateways_fees_tax_class_id', array() ),
|
54 |
'exclude_shipping' => get_option( 'wcj_gateways_fees_exclude_shipping', array() ),
|
55 |
+
'include_taxes' => get_option( 'wcj_gateways_fees_include_taxes', array() ),
|
56 |
'include_products' => apply_filters( 'booster_option', array(), get_option( 'wcj_gateways_fees_include_products', array() ) ),
|
57 |
'exclude_products' => apply_filters( 'booster_option', array(), get_option( 'wcj_gateways_fees_exclude_products', array() ) ),
|
58 |
);
|
67 |
'is_taxable' => 'no',
|
68 |
'tax_class_id' => '',
|
69 |
'exclude_shipping' => 'no',
|
70 |
+
'include_taxes' => 'no',
|
71 |
'include_products' => '',
|
72 |
'exclude_products' => '',
|
73 |
);
|
182 |
/**
|
183 |
* gateways_fees.
|
184 |
*
|
185 |
+
* @version 4.1.0
|
186 |
*/
|
187 |
function gateways_fees() {
|
188 |
global $woocommerce;
|
189 |
$current_gateway = $this->get_current_gateway();
|
190 |
if ( '' != $current_gateway ) {
|
191 |
+
$fee_text = do_shortcode( $this->get_option( 'text', $current_gateway ) );
|
192 |
$min_cart_amount = $this->get_option( 'min_cart_amount', $current_gateway );
|
193 |
$max_cart_amount = $this->get_option( 'max_cart_amount', $current_gateway );
|
194 |
// Multicurrency (Currency Switcher) module
|
200 |
$woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total :
|
201 |
$woocommerce->cart->cart_contents_total
|
202 |
);
|
203 |
+
$total_in_cart += 'no' === $this->get_option( 'include_taxes', $current_gateway ) ? 0 : $woocommerce->cart->get_subtotal_tax() + $woocommerce->cart->get_shipping_tax();
|
204 |
if ( '' != $fee_text && $total_in_cart >= $min_cart_amount && ( 0 == $max_cart_amount || $total_in_cart <= $max_cart_amount ) && $this->check_cart_products( $current_gateway ) ) {
|
205 |
$fee_value = $this->get_option( 'value', $current_gateway );
|
206 |
$fee_type = $this->get_option( 'type', $current_gateway );
|
includes/class-wcj-payment-gateways-per-category.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Gateways per Product or Category
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,7 +16,9 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version
|
|
|
|
|
20 |
*/
|
21 |
function __construct() {
|
22 |
|
@@ -27,24 +29,19 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
27 |
parent::__construct();
|
28 |
|
29 |
if ( $this->is_enabled() ) {
|
30 |
-
// add_filter( 'woocommerce_payment_gateways_settings', array( $this, 'add_per_category_settings' ), 100 );
|
31 |
add_filter( 'woocommerce_available_payment_gateways', array( $this, 'filter_available_payment_gateways_per_category' ), 100 );
|
|
|
32 |
}
|
33 |
}
|
34 |
|
35 |
/**
|
36 |
* filter_available_payment_gateways_per_category.
|
37 |
*
|
38 |
-
* @version
|
|
|
39 |
*/
|
40 |
function filter_available_payment_gateways_per_category( $available_gateways ) {
|
41 |
|
42 |
-
/*
|
43 |
-
if ( ! is_checkout() ) {
|
44 |
-
return $available_gateways;
|
45 |
-
}
|
46 |
-
*/
|
47 |
-
|
48 |
if ( ! isset( WC()->cart ) ) {
|
49 |
return $available_gateways;
|
50 |
}
|
@@ -114,7 +111,8 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
114 |
if ( ! empty( $products_in ) ) {
|
115 |
$do_skip = true;
|
116 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
|
117 |
-
|
|
|
118 |
// Current gateway is OK
|
119 |
$do_skip = false;
|
120 |
break;
|
@@ -134,7 +132,8 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
134 |
if ( ! empty( $products_excl ) ) {
|
135 |
$do_skip = false;
|
136 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
|
137 |
-
|
|
|
138 |
// Skip (i.e. hide/unset) current gateway
|
139 |
if ( isset( $available_gateways[ $gateway_id ] ) ) {
|
140 |
unset( $available_gateways[ $gateway_id ] );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Gateways per Product or Category
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 4.1.0
|
20 |
+
* @todo [dev] (maybe) add `$this->do_use_variations_and_variable`
|
21 |
+
* @todo [dev] (maybe) `add_filter( 'woocommerce_payment_gateways_settings', array( $this, 'add_per_category_settings' ), 100 );`
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
29 |
parent::__construct();
|
30 |
|
31 |
if ( $this->is_enabled() ) {
|
|
|
32 |
add_filter( 'woocommerce_available_payment_gateways', array( $this, 'filter_available_payment_gateways_per_category' ), 100 );
|
33 |
+
$this->do_use_variations = ( 'yes' === get_option( 'wcj_gateways_per_category_use_variations', 'no' ) );
|
34 |
}
|
35 |
}
|
36 |
|
37 |
/**
|
38 |
* filter_available_payment_gateways_per_category.
|
39 |
*
|
40 |
+
* @version 4.1.0
|
41 |
+
* @todo [dev] (maybe) `if ( ! is_checkout() ) { return $available_gateways; }`
|
42 |
*/
|
43 |
function filter_available_payment_gateways_per_category( $available_gateways ) {
|
44 |
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
if ( ! isset( WC()->cart ) ) {
|
46 |
return $available_gateways;
|
47 |
}
|
111 |
if ( ! empty( $products_in ) ) {
|
112 |
$do_skip = true;
|
113 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
|
114 |
+
$product_id = ( $this->do_use_variations ? ( ! empty( $values['variation_id'] ) ? $values['variation_id'] : $values['product_id'] ) : $values['product_id'] );
|
115 |
+
if ( in_array( $product_id, $products_in ) ) {
|
116 |
// Current gateway is OK
|
117 |
$do_skip = false;
|
118 |
break;
|
132 |
if ( ! empty( $products_excl ) ) {
|
133 |
$do_skip = false;
|
134 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
|
135 |
+
$product_id = ( $this->do_use_variations ? ( ! empty( $values['variation_id'] ) ? $values['variation_id'] : $values['product_id'] ) : $values['product_id'] );
|
136 |
+
if ( in_array( $product_id, $products_excl ) ) {
|
137 |
// Skip (i.e. hide/unset) current gateway
|
138 |
if ( isset( $available_gateways[ $gateway_id ] ) ) {
|
139 |
unset( $available_gateways[ $gateway_id ] );
|
includes/class-wcj-pdf-invoicing.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - PDF Invoicing
|
4 |
*
|
5 |
-
* @version
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -162,7 +162,7 @@ class WCJ_PDF_Invoicing extends WCJ_Module {
|
|
162 |
/**
|
163 |
* bulk_actions_pdfs.
|
164 |
*
|
165 |
-
* @version
|
166 |
* @since 2.5.7
|
167 |
* @todo on `generate` (and maybe other actions) validate user permissions/capabilities - `if ( ! current_user_can( $post_type_object->cap->export_post, $post_id ) ) { wp_die( __( 'You are not allowed to export this post.' ) ); }`
|
168 |
* @todo add security check - `check_admin_referer( 'bulk-posts' )`
|
@@ -186,6 +186,7 @@ class WCJ_PDF_Invoicing extends WCJ_Module {
|
|
186 |
$post_ids = $_GET['post'];
|
187 |
$the_action = $action_exploded[0];
|
188 |
$the_type = $action_exploded[1];
|
|
|
189 |
switch( $the_action ) {
|
190 |
case 'generate':
|
191 |
$generated = 0;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - PDF Invoicing
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
162 |
/**
|
163 |
* bulk_actions_pdfs.
|
164 |
*
|
165 |
+
* @version 4.1.0
|
166 |
* @since 2.5.7
|
167 |
* @todo on `generate` (and maybe other actions) validate user permissions/capabilities - `if ( ! current_user_can( $post_type_object->cap->export_post, $post_id ) ) { wp_die( __( 'You are not allowed to export this post.' ) ); }`
|
168 |
* @todo add security check - `check_admin_referer( 'bulk-posts' )`
|
186 |
$post_ids = $_GET['post'];
|
187 |
$the_action = $action_exploded[0];
|
188 |
$the_type = $action_exploded[1];
|
189 |
+
$sendback = false;
|
190 |
switch( $the_action ) {
|
191 |
case 'generate':
|
192 |
$generated = 0;
|
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
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -12,10 +12,17 @@ if ( ! class_exists( 'WCJ_Price_By_Country' ) ) :
|
|
12 |
|
13 |
class WCJ_Price_By_Country extends WCJ_Module {
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
-
* @version
|
19 |
*/
|
20 |
function __construct() {
|
21 |
|
@@ -38,7 +45,7 @@ class WCJ_Price_By_Country extends WCJ_Module {
|
|
38 |
}
|
39 |
if ( $do_load_core ) {
|
40 |
// Frontend
|
41 |
-
include_once( 'price-by-country/class-wcj-price-by-country-core.php' );
|
42 |
}
|
43 |
}
|
44 |
if ( is_admin() ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Prices and Currencies by Country
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
12 |
|
13 |
class WCJ_Price_By_Country extends WCJ_Module {
|
14 |
|
15 |
+
/**
|
16 |
+
* @var WCJ_Price_by_Country_Core
|
17 |
+
*
|
18 |
+
* @since 4.1.0
|
19 |
+
*/
|
20 |
+
public $core;
|
21 |
+
|
22 |
/**
|
23 |
* Constructor.
|
24 |
*
|
25 |
+
* @version 4.1.0
|
26 |
*/
|
27 |
function __construct() {
|
28 |
|
45 |
}
|
46 |
if ( $do_load_core ) {
|
47 |
// Frontend
|
48 |
+
$this->core = include_once( 'price-by-country/class-wcj-price-by-country-core.php' );
|
49 |
}
|
50 |
}
|
51 |
if ( is_admin() ) {
|
includes/class-wcj-price-formats.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Price Formats
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.5.2
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -76,12 +76,13 @@ class WCJ_Price_Formats extends WCJ_Module {
|
|
76 |
/**
|
77 |
* price_format.
|
78 |
*
|
79 |
-
* @version
|
80 |
* @since 2.5.2
|
81 |
*/
|
82 |
function price_format( $args ) {
|
|
|
83 |
for ( $i = 1; $i <= apply_filters( 'booster_option', 1, get_option( 'wcj_price_formats_total_number', 1 ) ); $i++ ) {
|
84 |
-
if (
|
85 |
if ( defined( 'ICL_LANGUAGE_CODE' ) && '' != ( $wpml_language = get_option( 'wcj_price_formats_wpml_language_' . $i, '' ) ) ) {
|
86 |
$wpml_language = explode( ',', trim( str_replace( ' ', '', $wpml_language ), ',' ) );
|
87 |
if ( ! in_array( ICL_LANGUAGE_CODE, $wpml_language ) ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Price Formats
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.5.2
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
76 |
/**
|
77 |
* price_format.
|
78 |
*
|
79 |
+
* @version 4.1.0
|
80 |
* @since 2.5.2
|
81 |
*/
|
82 |
function price_format( $args ) {
|
83 |
+
$current_currency = ( '' !== $args['currency'] ? $args['currency'] : get_woocommerce_currency() );
|
84 |
for ( $i = 1; $i <= apply_filters( 'booster_option', 1, get_option( 'wcj_price_formats_total_number', 1 ) ); $i++ ) {
|
85 |
+
if ( $current_currency === get_option( 'wcj_price_formats_currency_' . $i ) ) {
|
86 |
if ( defined( 'ICL_LANGUAGE_CODE' ) && '' != ( $wpml_language = get_option( 'wcj_price_formats_wpml_language_' . $i, '' ) ) ) {
|
87 |
$wpml_language = explode( ',', trim( str_replace( ' ', '', $wpml_language ), ',' ) );
|
88 |
if ( ! in_array( ICL_LANGUAGE_CODE, $wpml_language ) ) {
|
includes/class-wcj-product-images.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Images
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -76,26 +76,30 @@ class WCJ_Product_Images extends WCJ_Module {
|
|
76 |
/**
|
77 |
* hide_per_product_image_on_archives_start.
|
78 |
*
|
79 |
-
* @version
|
80 |
* @since 2.5.2
|
81 |
*/
|
82 |
function hide_per_product_image_on_archives_start() {
|
83 |
$post_id = get_the_ID();
|
84 |
if ( $post_id > 0 && 'yes' === get_post_meta( $post_id, '_' . 'wcj_product_images_hide_image_on_archives', true ) ) {
|
85 |
-
remove_action( 'woocommerce_before_shop_loop_item_title',
|
|
|
|
|
86 |
}
|
87 |
}
|
88 |
|
89 |
/**
|
90 |
* hide_per_product_image_on_archives_end.
|
91 |
*
|
92 |
-
* @version
|
93 |
* @since 2.5.2
|
94 |
*/
|
95 |
function hide_per_product_image_on_archives_end() {
|
96 |
$post_id = get_the_ID();
|
97 |
if ( $post_id > 0 && 'yes' === get_post_meta( $post_id, '_' . 'wcj_product_images_hide_image_on_archives', true ) ) {
|
98 |
-
add_action( 'woocommerce_before_shop_loop_item_title',
|
|
|
|
|
99 |
}
|
100 |
}
|
101 |
|
@@ -117,7 +121,7 @@ class WCJ_Product_Images extends WCJ_Module {
|
|
117 |
/**
|
118 |
* product_images_hide_on_archive.
|
119 |
*
|
120 |
-
* @version
|
121 |
*/
|
122 |
function product_images_hide_on_archive() {
|
123 |
if (
|
@@ -125,15 +129,25 @@ class WCJ_Product_Images extends WCJ_Module {
|
|
125 |
'' != get_option( 'wcj_product_images_custom_on_archives', '' ) ||
|
126 |
( ( $post_id = get_the_ID() ) > 0 && '' != get_post_meta( $post_id, '_' . 'wcj_product_images_meta_custom_on_archives', true ) )
|
127 |
) {
|
128 |
-
remove_action( 'woocommerce_before_shop_loop_item_title',
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
}
|
130 |
}
|
131 |
|
132 |
/**
|
133 |
* product_images_and_thumbnails_hide_on_single.
|
|
|
|
|
134 |
*/
|
135 |
function product_images_and_thumbnails_hide_on_single() {
|
136 |
-
remove_action( 'woocommerce_before_single_product_summary',
|
|
|
|
|
137 |
}
|
138 |
|
139 |
/**
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Images
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
76 |
/**
|
77 |
* hide_per_product_image_on_archives_start.
|
78 |
*
|
79 |
+
* @version 4.1.0
|
80 |
* @since 2.5.2
|
81 |
*/
|
82 |
function hide_per_product_image_on_archives_start() {
|
83 |
$post_id = get_the_ID();
|
84 |
if ( $post_id > 0 && 'yes' === get_post_meta( $post_id, '_' . 'wcj_product_images_hide_image_on_archives', true ) ) {
|
85 |
+
remove_action( 'woocommerce_before_shop_loop_item_title',
|
86 |
+
apply_filters( 'wcj_product_images_loop_product_thumbnail_filter', 'woocommerce_template_loop_product_thumbnail' ),
|
87 |
+
apply_filters( 'wcj_product_images_loop_product_thumbnail_filter_priority', 10 ) );
|
88 |
}
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
* hide_per_product_image_on_archives_end.
|
93 |
*
|
94 |
+
* @version 4.1.0
|
95 |
* @since 2.5.2
|
96 |
*/
|
97 |
function hide_per_product_image_on_archives_end() {
|
98 |
$post_id = get_the_ID();
|
99 |
if ( $post_id > 0 && 'yes' === get_post_meta( $post_id, '_' . 'wcj_product_images_hide_image_on_archives', true ) ) {
|
100 |
+
add_action( 'woocommerce_before_shop_loop_item_title',
|
101 |
+
apply_filters( 'wcj_product_images_loop_product_thumbnail_filter', 'woocommerce_template_loop_product_thumbnail' ),
|
102 |
+
apply_filters( 'wcj_product_images_loop_product_thumbnail_filter_priority', 10 ) );
|
103 |
}
|
104 |
}
|
105 |
|
121 |
/**
|
122 |
* product_images_hide_on_archive.
|
123 |
*
|
124 |
+
* @version 4.1.0
|
125 |
*/
|
126 |
function product_images_hide_on_archive() {
|
127 |
if (
|
129 |
'' != get_option( 'wcj_product_images_custom_on_archives', '' ) ||
|
130 |
( ( $post_id = get_the_ID() ) > 0 && '' != get_post_meta( $post_id, '_' . 'wcj_product_images_meta_custom_on_archives', true ) )
|
131 |
) {
|
132 |
+
remove_action( 'woocommerce_before_shop_loop_item_title',
|
133 |
+
apply_filters( 'wcj_product_images_loop_product_thumbnail_filter', 'woocommerce_template_loop_product_thumbnail' ),
|
134 |
+
apply_filters( 'wcj_product_images_loop_product_thumbnail_filter_priority', 10 ) );
|
135 |
+
} else {
|
136 |
+
add_action( 'woocommerce_before_shop_loop_item_title',
|
137 |
+
apply_filters( 'wcj_product_images_loop_product_thumbnail_filter', 'woocommerce_template_loop_product_thumbnail' ),
|
138 |
+
apply_filters( 'wcj_product_images_loop_product_thumbnail_filter_priority', 10 ) );
|
139 |
}
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
* product_images_and_thumbnails_hide_on_single.
|
144 |
+
*
|
145 |
+
* @version 4.1.0
|
146 |
*/
|
147 |
function product_images_and_thumbnails_hide_on_single() {
|
148 |
+
remove_action( 'woocommerce_before_single_product_summary',
|
149 |
+
apply_filters( 'wcj_product_images_single_product_images_filter', 'woocommerce_show_product_images' ),
|
150 |
+
apply_filters( 'wcj_product_images_single_product_images_filter_priority', 20 ) );
|
151 |
}
|
152 |
|
153 |
/**
|
includes/class-wcj-product-msrp.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product MSRP
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 3.6.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -114,7 +114,7 @@ class WCJ_Product_MSRP extends WCJ_Module {
|
|
114 |
/**
|
115 |
* display.
|
116 |
*
|
117 |
-
* @version
|
118 |
* @since 3.6.0
|
119 |
* @todo (maybe) multicurrency
|
120 |
* @todo (feature) (maybe) variable product's msrp: add another option to enter MSRP directly for the whole variable product, instead of taking first variation's MSRP
|
@@ -137,6 +137,7 @@ class WCJ_Product_MSRP extends WCJ_Module {
|
|
137 |
$product_id = wcj_get_product_id( $product );
|
138 |
}
|
139 |
$msrp = apply_filters( 'wcj_product_msrp', get_post_meta( $product_id, '_' . 'wcj_msrp', true ), $product );
|
|
|
140 |
if ( '' == $msrp || 0 == $msrp ) {
|
141 |
return $price_html;
|
142 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product MSRP
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 3.6.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
114 |
/**
|
115 |
* display.
|
116 |
*
|
117 |
+
* @version 4.1.0
|
118 |
* @since 3.6.0
|
119 |
* @todo (maybe) multicurrency
|
120 |
* @todo (feature) (maybe) variable product's msrp: add another option to enter MSRP directly for the whole variable product, instead of taking first variation's MSRP
|
137 |
$product_id = wcj_get_product_id( $product );
|
138 |
}
|
139 |
$msrp = apply_filters( 'wcj_product_msrp', get_post_meta( $product_id, '_' . 'wcj_msrp', true ), $product );
|
140 |
+
$msrp = str_replace( ',', '.', $msrp );
|
141 |
if ( '' == $msrp || 0 == $msrp ) {
|
142 |
return $price_html;
|
143 |
}
|
includes/class-wcj-product-open-pricing.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Open Pricing
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.4.8
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,7 +16,7 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version
|
20 |
* @since 2.4.8
|
21 |
*/
|
22 |
function __construct() {
|
@@ -57,6 +57,7 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
57 |
add_filter( 'manage_edit-product_columns', array( $this, 'add_product_column_open_pricing' ), PHP_INT_MAX );
|
58 |
add_action( 'manage_product_posts_custom_column', array( $this, 'render_product_column_open_pricing' ), PHP_INT_MAX );
|
59 |
}
|
|
|
60 |
}
|
61 |
}
|
62 |
|
@@ -86,21 +87,32 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
86 |
}
|
87 |
}
|
88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
/**
|
90 |
* add_price_info_to_loop.
|
91 |
*
|
92 |
-
* @version
|
93 |
* @since 2.8.0
|
94 |
*/
|
95 |
function add_price_info_to_loop() {
|
96 |
$_product_id = get_the_ID();
|
97 |
if ( $this->is_open_price_product( $_product_id ) ) {
|
98 |
$replaceable_values = array(
|
99 |
-
'%default_price%' =>
|
100 |
-
'%min_price%' =>
|
101 |
-
'%max_price%' =>
|
102 |
);
|
103 |
-
echo
|
104 |
}
|
105 |
}
|
106 |
|
@@ -258,39 +270,46 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
258 |
/**
|
259 |
* get_open_price.
|
260 |
*
|
261 |
-
* @version
|
262 |
* @since 2.4.8
|
263 |
*/
|
264 |
function get_open_price( $price, $_product ) {
|
265 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
}
|
267 |
|
268 |
/**
|
269 |
* validate_open_price_on_add_to_cart.
|
270 |
*
|
271 |
-
* @version
|
272 |
* @since 2.4.8
|
273 |
*/
|
274 |
function validate_open_price_on_add_to_cart( $passed, $product_id ) {
|
275 |
$the_product = wc_get_product( $product_id );
|
276 |
if ( $this->is_open_price_product( $the_product ) ) {
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
}
|
288 |
}
|
289 |
-
if ( $max_price > 0 ) {
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
}
|
294 |
}
|
295 |
}
|
296 |
return $passed;
|
@@ -338,7 +357,7 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
338 |
/**
|
339 |
* add_open_price_input_field_to_frontend.
|
340 |
*
|
341 |
-
* @version
|
342 |
* @since 2.4.8
|
343 |
*/
|
344 |
function add_open_price_input_field_to_frontend() {
|
@@ -371,7 +390,7 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
371 |
. 'value="' . $value . '" '
|
372 |
. $custom_attributes . '>';
|
373 |
// Currency symbol
|
374 |
-
$currency_symbol = get_woocommerce_currency_symbol();
|
375 |
// Replacing final values
|
376 |
$replacement_values = array(
|
377 |
'%frontend_label%' => $title,
|
@@ -380,9 +399,9 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
380 |
'%min_price_simple%' => $min_price,
|
381 |
'%max_price_simple%' => $max_price,
|
382 |
'%default_price_simple%' => $default_price,
|
383 |
-
'%min_price%' =>
|
384 |
-
'%max_price%' =>
|
385 |
-
'%default_price%' =>
|
386 |
);
|
387 |
echo str_replace(
|
388 |
array_keys( $replacement_values ),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Open Pricing
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.4.8
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 4.1.0
|
20 |
* @since 2.4.8
|
21 |
*/
|
22 |
function __construct() {
|
57 |
add_filter( 'manage_edit-product_columns', array( $this, 'add_product_column_open_pricing' ), PHP_INT_MAX );
|
58 |
add_action( 'manage_product_posts_custom_column', array( $this, 'render_product_column_open_pricing' ), PHP_INT_MAX );
|
59 |
}
|
60 |
+
$this->shop_currency = get_option( 'woocommerce_currency' );
|
61 |
}
|
62 |
}
|
63 |
|
87 |
}
|
88 |
}
|
89 |
|
90 |
+
/**
|
91 |
+
* wc_price_shop_currency.
|
92 |
+
*
|
93 |
+
* @version 4.1.0
|
94 |
+
* @since 4.1.0
|
95 |
+
*/
|
96 |
+
function wc_price_shop_currency( $price, $args = array() ) {
|
97 |
+
$args['currency'] = $this->shop_currency;
|
98 |
+
return wc_price( $price, $args );
|
99 |
+
}
|
100 |
+
|
101 |
/**
|
102 |
* add_price_info_to_loop.
|
103 |
*
|
104 |
+
* @version 4.1.0
|
105 |
* @since 2.8.0
|
106 |
*/
|
107 |
function add_price_info_to_loop() {
|
108 |
$_product_id = get_the_ID();
|
109 |
if ( $this->is_open_price_product( $_product_id ) ) {
|
110 |
$replaceable_values = array(
|
111 |
+
'%default_price%' => $this->wc_price_shop_currency( get_post_meta( $_product_id, '_' . 'wcj_product_open_price_default_price', true ) ),
|
112 |
+
'%min_price%' => $this->wc_price_shop_currency( get_post_meta( $_product_id, '_' . 'wcj_product_open_price_min_price', true ) ),
|
113 |
+
'%max_price%' => $this->wc_price_shop_currency( get_post_meta( $_product_id, '_' . 'wcj_product_open_price_max_price', true ) ),
|
114 |
);
|
115 |
+
echo wcj_handle_replacements( $replaceable_values, $this->loop_price_info_template );
|
116 |
}
|
117 |
}
|
118 |
|
270 |
/**
|
271 |
* get_open_price.
|
272 |
*
|
273 |
+
* @version 4.1.0
|
274 |
* @since 2.4.8
|
275 |
*/
|
276 |
function get_open_price( $price, $_product ) {
|
277 |
+
if ( $this->is_open_price_product( $_product ) && isset( $_product->wcj_open_price ) ) {
|
278 |
+
$price = $_product->wcj_open_price;
|
279 |
+
// Multicurrency (Currency Switcher) module
|
280 |
+
if ( WCJ()->modules['multicurrency']->is_enabled() ) {
|
281 |
+
$price = WCJ()->modules['multicurrency']->change_price( $price, null );
|
282 |
+
}
|
283 |
+
return $price;
|
284 |
+
} else {
|
285 |
+
return $price;
|
286 |
+
}
|
287 |
}
|
288 |
|
289 |
/**
|
290 |
* validate_open_price_on_add_to_cart.
|
291 |
*
|
292 |
+
* @version 4.1.0
|
293 |
* @since 2.4.8
|
294 |
*/
|
295 |
function validate_open_price_on_add_to_cart( $passed, $product_id ) {
|
296 |
$the_product = wc_get_product( $product_id );
|
297 |
if ( $this->is_open_price_product( $the_product ) ) {
|
298 |
+
// Empty price
|
299 |
+
if ( ! isset( $_POST['wcj_open_price'] ) || '' === $_POST['wcj_open_price'] ) {
|
300 |
+
wc_add_notice( get_option( 'wcj_product_open_price_messages_required', __( 'Price is required!', 'woocommerce-jetpack' ) ), 'error' );
|
301 |
+
return false;
|
302 |
+
}
|
303 |
+
// Min & Max
|
304 |
+
if ( ( $min_price = get_post_meta( $product_id, '_' . 'wcj_product_open_price_min_price', true ) ) > 0 && $_POST['wcj_open_price'] < $min_price ) {
|
305 |
+
wc_add_notice( wcj_handle_replacements( array( '%price%' => $this->wc_price_shop_currency( $_POST['wcj_open_price'] ), '%min_price%' => $this->wc_price_shop_currency( $min_price ) ),
|
306 |
+
get_option( 'wcj_product_open_price_messages_to_small', __( 'Entered price is too small!', 'woocommerce-jetpack' ) ) ), 'error' );
|
307 |
+
return false;
|
|
|
308 |
}
|
309 |
+
if ( ( $max_price = get_post_meta( $product_id, '_' . 'wcj_product_open_price_max_price', true ) ) > 0 && $_POST['wcj_open_price'] > $max_price ) {
|
310 |
+
wc_add_notice( wcj_handle_replacements( array( '%price%' => $this->wc_price_shop_currency( $_POST['wcj_open_price'] ), '%max_price%' => $this->wc_price_shop_currency( $max_price ) ),
|
311 |
+
get_option( 'wcj_product_open_price_messages_to_big', __( 'Entered price is too big!', 'woocommerce-jetpack' ) ) ), 'error' );
|
312 |
+
return false;
|
|
|
313 |
}
|
314 |
}
|
315 |
return $passed;
|
357 |
/**
|
358 |
* add_open_price_input_field_to_frontend.
|
359 |
*
|
360 |
+
* @version 4.1.0
|
361 |
* @since 2.4.8
|
362 |
*/
|
363 |
function add_open_price_input_field_to_frontend() {
|
390 |
. 'value="' . $value . '" '
|
391 |
. $custom_attributes . '>';
|
392 |
// Currency symbol
|
393 |
+
$currency_symbol = get_woocommerce_currency_symbol( $this->shop_currency );
|
394 |
// Replacing final values
|
395 |
$replacement_values = array(
|
396 |
'%frontend_label%' => $title,
|
399 |
'%min_price_simple%' => $min_price,
|
400 |
'%max_price_simple%' => $max_price,
|
401 |
'%default_price_simple%' => $default_price,
|
402 |
+
'%min_price%' => $this->wc_price_shop_currency( $min_price ),
|
403 |
+
'%max_price%' => $this->wc_price_shop_currency( $max_price ),
|
404 |
+
'%default_price%' => $this->wc_price_shop_currency( $default_price ),
|
405 |
);
|
406 |
echo str_replace(
|
407 |
array_keys( $replacement_values ),
|
includes/class-wcj-product-price-by-formula.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Price by Formula
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.5.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,7 +16,7 @@ class WCJ_Product_Price_by_Formula extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version
|
20 |
* @since 2.5.0
|
21 |
* @todo use WC math library instead of `PHPMathParser`
|
22 |
*/
|
@@ -34,7 +34,11 @@ class WCJ_Product_Price_by_Formula extends WCJ_Module {
|
|
34 |
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
35 |
add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
|
36 |
|
37 |
-
if (
|
|
|
|
|
|
|
|
|
38 |
wcj_add_change_price_hooks( $this, wcj_get_module_price_hooks_priority( 'product_price_by_formula' ), false );
|
39 |
}
|
40 |
|
@@ -66,10 +70,32 @@ class WCJ_Product_Price_by_Formula extends WCJ_Module {
|
|
66 |
return $price;
|
67 |
}
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
/**
|
70 |
* change_price.
|
71 |
*
|
72 |
-
* @version
|
73 |
* @since 2.5.0
|
74 |
*/
|
75 |
function change_price( $price, $_product, $output_errors = false ) {
|
@@ -95,6 +121,7 @@ class WCJ_Product_Price_by_Formula extends WCJ_Module {
|
|
95 |
$the_param = ( $is_per_product )
|
96 |
? get_post_meta( $_product_id, '_' . 'wcj_product_price_by_formula_param_' . $i, true )
|
97 |
: get_option( 'wcj_product_price_by_formula_param_' . $i, '' );
|
|
|
98 |
$the_param = do_shortcode( $the_param );
|
99 |
if ( '' != $the_param ) {
|
100 |
$math->registerVariable( 'p' . $i, $the_param );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Price by Formula
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.5.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 4.1.0
|
20 |
* @since 2.5.0
|
21 |
* @todo use WC math library instead of `PHPMathParser`
|
22 |
*/
|
34 |
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
35 |
add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
|
36 |
|
37 |
+
if (
|
38 |
+
( wcj_is_frontend() && "yes" === get_option( 'wcj_product_price_by_formula_admin_scope', 'yes' ) ) ||
|
39 |
+
( "no" === get_option( 'wcj_product_price_by_formula_admin_scope', 'yes' ) && ( wcj_is_frontend() || is_admin() ) ) ||
|
40 |
+
isset( $_GET['wcj_create_products_xml'] )
|
41 |
+
) {
|
42 |
wcj_add_change_price_hooks( $this, wcj_get_module_price_hooks_priority( 'product_price_by_formula' ), false );
|
43 |
}
|
44 |
|
70 |
return $price;
|
71 |
}
|
72 |
|
73 |
+
/**
|
74 |
+
* Adds product id param on shortcodes.
|
75 |
+
*
|
76 |
+
* @version 4.1.0
|
77 |
+
* @since 4.1.0
|
78 |
+
*
|
79 |
+
* @param $the_param
|
80 |
+
* @param $_product
|
81 |
+
*
|
82 |
+
* @return string
|
83 |
+
*/
|
84 |
+
function add_product_id_param( $the_param, $_product ) {
|
85 |
+
if (
|
86 |
+
preg_match( '/^\[.*\]$/', $the_param ) &&
|
87 |
+
! preg_match( '/product_id=[\'"]?\d+[\'"]?/', $the_param )
|
88 |
+
) {
|
89 |
+
$product_id = $_product->get_id();
|
90 |
+
$the_param = preg_replace( '/\[[^\]]*/', "$0 product_id='{$product_id}'", $the_param );
|
91 |
+
}
|
92 |
+
return $the_param;
|
93 |
+
}
|
94 |
+
|
95 |
/**
|
96 |
* change_price.
|
97 |
*
|
98 |
+
* @version 4.1.0
|
99 |
* @since 2.5.0
|
100 |
*/
|
101 |
function change_price( $price, $_product, $output_errors = false ) {
|
121 |
$the_param = ( $is_per_product )
|
122 |
? get_post_meta( $_product_id, '_' . 'wcj_product_price_by_formula_param_' . $i, true )
|
123 |
: get_option( 'wcj_product_price_by_formula_param_' . $i, '' );
|
124 |
+
$the_param = $this->add_product_id_param( $the_param, $_product );
|
125 |
$the_param = do_shortcode( $the_param );
|
126 |
if ( '' != $the_param ) {
|
127 |
$math->registerVariable( 'p' . $i, $the_param );
|
includes/class-wcj-products-per-page.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Products per Page
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.6.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,7 +16,7 @@ class WCJ_Products_Per_Page extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version
|
20 |
* @since 2.6.0
|
21 |
* @todo (dev) position priority for every hook
|
22 |
* @todo (dev) post or get
|
@@ -35,6 +35,7 @@ class WCJ_Products_Per_Page extends WCJ_Module {
|
|
35 |
add_action( 'init', 'wcj_session_maybe_start' );
|
36 |
}
|
37 |
add_filter( 'loop_shop_per_page', array( $this, 'set_products_per_page_number' ), PHP_INT_MAX );
|
|
|
38 |
$position_hooks = get_option( 'wcj_products_per_page_position', array( 'woocommerce_before_shop_loop' ) );
|
39 |
foreach ( $position_hooks as $position_hook ) {
|
40 |
add_action( $position_hook, array( $this, 'add_products_per_page_form' ), get_option( 'wcj_products_per_page_position_priority', 40 ) );
|
@@ -99,6 +100,21 @@ class WCJ_Products_Per_Page extends WCJ_Module {
|
|
99 |
return $this->get_current_products_per_page_number( true );
|
100 |
}
|
101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
/**
|
103 |
* get_current_products_per_page_number.
|
104 |
*
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Products per Page
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.6.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 4.1.0
|
20 |
* @since 2.6.0
|
21 |
* @todo (dev) position priority for every hook
|
22 |
* @todo (dev) post or get
|
35 |
add_action( 'init', 'wcj_session_maybe_start' );
|
36 |
}
|
37 |
add_filter( 'loop_shop_per_page', array( $this, 'set_products_per_page_number' ), PHP_INT_MAX );
|
38 |
+
add_filter( 'option_et_divi', array( $this, 'set_products_per_page_number_on_divi' ), PHP_INT_MAX );
|
39 |
$position_hooks = get_option( 'wcj_products_per_page_position', array( 'woocommerce_before_shop_loop' ) );
|
40 |
foreach ( $position_hooks as $position_hook ) {
|
41 |
add_action( $position_hook, array( $this, 'add_products_per_page_form' ), get_option( 'wcj_products_per_page_position_priority', 40 ) );
|
100 |
return $this->get_current_products_per_page_number( true );
|
101 |
}
|
102 |
|
103 |
+
/**
|
104 |
+
* Sets products per page on DIVI theme.
|
105 |
+
*
|
106 |
+
* @version 4.1.0
|
107 |
+
* @since 4.1.0
|
108 |
+
*
|
109 |
+
* @param $option
|
110 |
+
*
|
111 |
+
* @return mixed
|
112 |
+
*/
|
113 |
+
function set_products_per_page_number_on_divi( $option ) {
|
114 |
+
$option['divi_woocommerce_archive_num_posts'] = $this->get_current_products_per_page_number( true );
|
115 |
+
return $option;
|
116 |
+
}
|
117 |
+
|
118 |
/**
|
119 |
* get_current_products_per_page_number.
|
120 |
*
|
includes/class-wcj-related-products.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Related Products
|
4 |
*
|
5 |
-
* @version
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -30,7 +30,7 @@ class WCJ_Related_Products extends WCJ_Module {
|
|
30 |
/**
|
31 |
* Constructor.
|
32 |
*
|
33 |
-
* @version
|
34 |
*/
|
35 |
function __construct() {
|
36 |
|
@@ -39,7 +39,7 @@ class WCJ_Related_Products extends WCJ_Module {
|
|
39 |
$this->desc = __( 'Change displayed related products number, columns, order; relate by tag, category, product attribute or manually on per product basis. Hide related products completely.', 'woocommerce-jetpack' );
|
40 |
$this->link_slug = 'woocommerce-related-products';
|
41 |
$this->extra_desc = sprintf(
|
42 |
-
__( 'You may need to <a
|
43 |
add_query_arg( 'wcj_clear_all_products_transients', 'yes' )
|
44 |
);
|
45 |
parent::__construct();
|
@@ -48,7 +48,6 @@ class WCJ_Related_Products extends WCJ_Module {
|
|
48 |
add_action( 'admin_init', array( $this, 'maybe_delete_product_transients' ), PHP_INT_MAX, 2 );
|
49 |
|
50 |
if ( $this->is_enabled() ) {
|
51 |
-
|
52 |
// Related per Product
|
53 |
if ( 'yes' === apply_filters( 'booster_option', 'no', get_option( 'wcj_product_info_related_products_per_product', 'no' ) ) ) {
|
54 |
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
@@ -175,13 +174,16 @@ class WCJ_Related_Products extends WCJ_Module {
|
|
175 |
/**
|
176 |
* get_related_products_ids_wc3.
|
177 |
*
|
178 |
-
* @version
|
179 |
* @since 2.8.0
|
180 |
*/
|
181 |
function get_related_products_ids_wc3( $product_id ) {
|
182 |
$include_ids = array();
|
183 |
// Change Related Products
|
184 |
-
if (
|
|
|
|
|
|
|
185 |
// Relate per Product (Manual)
|
186 |
$related_per_product = get_post_meta( get_the_ID(), '_' . 'wcj_product_info_related_products_ids', true );
|
187 |
$include_ids = ( ! empty( $related_per_product ) ? $related_per_product : false );
|
@@ -228,14 +230,13 @@ class WCJ_Related_Products extends WCJ_Module {
|
|
228 |
/**
|
229 |
* related_products_query_wc3.
|
230 |
*
|
231 |
-
* @version
|
232 |
* @since 2.8.0
|
233 |
* @see WC_Product_Data_Store_CPT::get_related_products_query()
|
234 |
* @todo "Relate by Product Attribute" - directly to `$query['where']` instead of getting ids via `WP_Query`
|
235 |
* @todo rethink hide related (for >= WC3)
|
236 |
*/
|
237 |
function related_products_query_wc3( $_query, $product_id ) {
|
238 |
-
|
239 |
//////////////////////////////////////////////////////////////////////
|
240 |
// Algoritmika
|
241 |
if ( 'yes' === get_option( 'wcj_product_info_related_products_hide', 'no' ) ) {
|
@@ -262,7 +263,6 @@ class WCJ_Related_Products extends WCJ_Module {
|
|
262 |
$limit += 20;
|
263 |
}
|
264 |
//////////////////////////////////////////////////////////////////////
|
265 |
-
|
266 |
global $wpdb;
|
267 |
|
268 |
// Arrays to string.
|
@@ -282,7 +282,7 @@ class WCJ_Related_Products extends WCJ_Module {
|
|
282 |
$query['where'] .= " AND p.ID NOT IN ( {$exclude_ids} )";
|
283 |
//////////////////////////////////////////////////////////////////////
|
284 |
// Algoritmika
|
285 |
-
if ( $include_ids ) {
|
286 |
$query['where'] .= " AND p.ID IN ( {$include_ids} )";
|
287 |
}
|
288 |
//////////////////////////////////////////////////////////////////////
|
@@ -322,7 +322,7 @@ class WCJ_Related_Products extends WCJ_Module {
|
|
322 |
/**
|
323 |
* fix_empty_initial_related_products.
|
324 |
*
|
325 |
-
* @version
|
326 |
* @since 2.6.0
|
327 |
*/
|
328 |
function fix_empty_initial_related_products( $terms, $product_id ) {
|
@@ -331,7 +331,7 @@ class WCJ_Related_Products extends WCJ_Module {
|
|
331 |
$do_fix = true;
|
332 |
} elseif (
|
333 |
'yes' === apply_filters( 'booster_option', 'no', get_option( 'wcj_product_info_related_products_per_product', 'no' ) ) &&
|
334 |
-
'yes' === get_post_meta(
|
335 |
'' != get_post_meta( $product_id, '_' . 'wcj_product_info_related_products_ids', true )
|
336 |
) {
|
337 |
$do_fix = true;
|
@@ -394,7 +394,7 @@ class WCJ_Related_Products extends WCJ_Module {
|
|
394 |
/**
|
395 |
* related_products_args.
|
396 |
*
|
397 |
-
* @version
|
398 |
* @todo save custom results as product transient (for < WC3)
|
399 |
*/
|
400 |
function related_products_args( $args ) {
|
@@ -415,7 +415,10 @@ class WCJ_Related_Products extends WCJ_Module {
|
|
415 |
$args['order'] = get_option( 'wcj_product_info_related_products_order', 'desc' );
|
416 |
}
|
417 |
// Change Related Products
|
418 |
-
if (
|
|
|
|
|
|
|
419 |
// Relate per Product (Manual)
|
420 |
$related_per_product = get_post_meta( get_the_ID(), '_' . 'wcj_product_info_related_products_ids', true );
|
421 |
if ( '' != $related_per_product ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Related Products
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
30 |
/**
|
31 |
* Constructor.
|
32 |
*
|
33 |
+
* @version 4.1.0
|
34 |
*/
|
35 |
function __construct() {
|
36 |
|
39 |
$this->desc = __( 'Change displayed related products number, columns, order; relate by tag, category, product attribute or manually on per product basis. Hide related products completely.', 'woocommerce-jetpack' );
|
40 |
$this->link_slug = 'woocommerce-related-products';
|
41 |
$this->extra_desc = sprintf(
|
42 |
+
__( 'You may need to <a href="%s">clear all products transients</a> to immediately see results on frontend after changing module\'s settings. Alternatively you can just update each product individually to clear its transients.', 'woocommerce-jetpack' ),
|
43 |
add_query_arg( 'wcj_clear_all_products_transients', 'yes' )
|
44 |
);
|
45 |
parent::__construct();
|
48 |
add_action( 'admin_init', array( $this, 'maybe_delete_product_transients' ), PHP_INT_MAX, 2 );
|
49 |
|
50 |
if ( $this->is_enabled() ) {
|
|
|
51 |
// Related per Product
|
52 |
if ( 'yes' === apply_filters( 'booster_option', 'no', get_option( 'wcj_product_info_related_products_per_product', 'no' ) ) ) {
|
53 |
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
174 |
/**
|
175 |
* get_related_products_ids_wc3.
|
176 |
*
|
177 |
+
* @version 4.1.0
|
178 |
* @since 2.8.0
|
179 |
*/
|
180 |
function get_related_products_ids_wc3( $product_id ) {
|
181 |
$include_ids = array();
|
182 |
// Change Related Products
|
183 |
+
if (
|
184 |
+
'yes' === apply_filters( 'booster_option', 'no', get_option( 'wcj_product_info_related_products_per_product', 'no' ) ) &&
|
185 |
+
( 'yes' === get_post_meta( get_the_ID(), '_' . 'wcj_product_info_related_products_enabled', true ) || ( 'yes' === get_option( 'wcj_product_info_related_products_per_product_cmb_default', 'no' ) ) && '' === get_post_meta( get_the_ID(), '_' . 'wcj_product_info_related_products_enabled', true ) )
|
186 |
+
) {
|
187 |
// Relate per Product (Manual)
|
188 |
$related_per_product = get_post_meta( get_the_ID(), '_' . 'wcj_product_info_related_products_ids', true );
|
189 |
$include_ids = ( ! empty( $related_per_product ) ? $related_per_product : false );
|
230 |
/**
|
231 |
* related_products_query_wc3.
|
232 |
*
|
233 |
+
* @version 4.1.0
|
234 |
* @since 2.8.0
|
235 |
* @see WC_Product_Data_Store_CPT::get_related_products_query()
|
236 |
* @todo "Relate by Product Attribute" - directly to `$query['where']` instead of getting ids via `WP_Query`
|
237 |
* @todo rethink hide related (for >= WC3)
|
238 |
*/
|
239 |
function related_products_query_wc3( $_query, $product_id ) {
|
|
|
240 |
//////////////////////////////////////////////////////////////////////
|
241 |
// Algoritmika
|
242 |
if ( 'yes' === get_option( 'wcj_product_info_related_products_hide', 'no' ) ) {
|
263 |
$limit += 20;
|
264 |
}
|
265 |
//////////////////////////////////////////////////////////////////////
|
|
|
266 |
global $wpdb;
|
267 |
|
268 |
// Arrays to string.
|
282 |
$query['where'] .= " AND p.ID NOT IN ( {$exclude_ids} )";
|
283 |
//////////////////////////////////////////////////////////////////////
|
284 |
// Algoritmika
|
285 |
+
if ( ! is_array( $include_ids ) && $include_ids ) {
|
286 |
$query['where'] .= " AND p.ID IN ( {$include_ids} )";
|
287 |
}
|
288 |
//////////////////////////////////////////////////////////////////////
|
322 |
/**
|
323 |
* fix_empty_initial_related_products.
|
324 |
*
|
325 |
+
* @version 4.1.0
|
326 |
* @since 2.6.0
|
327 |
*/
|
328 |
function fix_empty_initial_related_products( $terms, $product_id ) {
|
331 |
$do_fix = true;
|
332 |
} elseif (
|
333 |
'yes' === apply_filters( 'booster_option', 'no', get_option( 'wcj_product_info_related_products_per_product', 'no' ) ) &&
|
334 |
+
( 'yes' === get_post_meta( get_the_ID(), '_' . 'wcj_product_info_related_products_enabled', true ) || ( 'yes' === get_option( 'wcj_product_info_related_products_per_product_cmb_default', 'no' ) ) && '' === get_post_meta( get_the_ID(), '_' . 'wcj_product_info_related_products_enabled', true ) ) &&
|
335 |
'' != get_post_meta( $product_id, '_' . 'wcj_product_info_related_products_ids', true )
|
336 |
) {
|
337 |
$do_fix = true;
|
394 |
/**
|
395 |
* related_products_args.
|
396 |
*
|
397 |
+
* @version 4.1.0
|
398 |
* @todo save custom results as product transient (for < WC3)
|
399 |
*/
|
400 |
function related_products_args( $args ) {
|
415 |
$args['order'] = get_option( 'wcj_product_info_related_products_order', 'desc' );
|
416 |
}
|
417 |
// Change Related Products
|
418 |
+
if (
|
419 |
+
'yes' === apply_filters( 'booster_option', 'no', get_option( 'wcj_product_info_related_products_per_product', 'no' ) ) &&
|
420 |
+
( 'yes' === get_post_meta( get_the_ID(), '_' . 'wcj_product_info_related_products_enabled', true ) || ( 'yes' === get_option( 'wcj_product_info_related_products_per_product_cmb_default', 'no' ) ) && '' === get_post_meta( get_the_ID(), '_' . 'wcj_product_info_related_products_enabled', true ) )
|
421 |
+
) {
|
422 |
// Relate per Product (Manual)
|
423 |
$related_per_product = get_post_meta( get_the_ID(), '_' . 'wcj_product_info_related_products_ids', true );
|
424 |
if ( '' != $related_per_product ) {
|
includes/class-wcj-tax-display.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Tax Display
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 3.2.4
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,7 +16,7 @@ class WCJ_Tax_Display extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version
|
20 |
* @since 3.2.4
|
21 |
*/
|
22 |
function __construct() {
|
@@ -37,6 +37,7 @@ class WCJ_Tax_Display extends WCJ_Module {
|
|
37 |
// Tax Incl./Excl. by user role
|
38 |
if ( 'yes' === get_option( 'wcj_product_listings_display_taxes_by_user_role_enabled', 'no' ) ) {
|
39 |
add_filter( 'option_woocommerce_tax_display_shop', array( $this, 'tax_display_by_user_role' ), PHP_INT_MAX );
|
|
|
40 |
}
|
41 |
|
42 |
// Tax toggle
|
@@ -84,7 +85,7 @@ class WCJ_Tax_Display extends WCJ_Module {
|
|
84 |
/**
|
85 |
* tax_display_by_user_role.
|
86 |
*
|
87 |
-
* @version
|
88 |
* @since 3.2.0
|
89 |
*/
|
90 |
function tax_display_by_user_role( $value ) {
|
@@ -94,7 +95,8 @@ class WCJ_Tax_Display extends WCJ_Module {
|
|
94 |
if ( '' != ( $display_taxes_by_user_role_roles = get_option( 'wcj_product_listings_display_taxes_by_user_role_roles', '' ) ) ) {
|
95 |
$current_user_first_role = wcj_get_current_user_first_role();
|
96 |
if ( in_array( $current_user_first_role, $display_taxes_by_user_role_roles ) ) {
|
97 |
-
|
|
|
98 |
return $tax_display;
|
99 |
}
|
100 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Tax Display
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 3.2.4
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 4.1.0
|
20 |
* @since 3.2.4
|
21 |
*/
|
22 |
function __construct() {
|
37 |
// Tax Incl./Excl. by user role
|
38 |
if ( 'yes' === get_option( 'wcj_product_listings_display_taxes_by_user_role_enabled', 'no' ) ) {
|
39 |
add_filter( 'option_woocommerce_tax_display_shop', array( $this, 'tax_display_by_user_role' ), PHP_INT_MAX );
|
40 |
+
add_filter( 'option_woocommerce_tax_display_cart', array( $this, 'tax_display_by_user_role' ), PHP_INT_MAX );
|
41 |
}
|
42 |
|
43 |
// Tax toggle
|
85 |
/**
|
86 |
* tax_display_by_user_role.
|
87 |
*
|
88 |
+
* @version 4.1.0
|
89 |
* @since 3.2.0
|
90 |
*/
|
91 |
function tax_display_by_user_role( $value ) {
|
95 |
if ( '' != ( $display_taxes_by_user_role_roles = get_option( 'wcj_product_listings_display_taxes_by_user_role_roles', '' ) ) ) {
|
96 |
$current_user_first_role = wcj_get_current_user_first_role();
|
97 |
if ( in_array( $current_user_first_role, $display_taxes_by_user_role_roles ) ) {
|
98 |
+
$option_name = 'option_woocommerce_tax_display_shop' === current_filter() ? 'wcj_product_listings_display_taxes_by_user_role_' . $current_user_first_role : 'wcj_product_listings_display_taxes_on_cart_by_user_role_' . $current_user_first_role;
|
99 |
+
if ( 'no_changes' != ( $tax_display = get_option( $option_name, 'no_changes' ) ) ) {
|
100 |
return $tax_display;
|
101 |
}
|
102 |
}
|
includes/class-wcj-wholesale-price.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Wholesale Price
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo per variation
|
@@ -18,7 +18,7 @@ class WCJ_Wholesale_Price extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version
|
22 |
* @todo (maybe) `woocommerce_get_variation_prices_hash`
|
23 |
*/
|
24 |
function __construct() {
|
@@ -37,10 +37,12 @@ class WCJ_Wholesale_Price extends WCJ_Module {
|
|
37 |
}
|
38 |
|
39 |
add_action( 'woocommerce_cart_loaded_from_session', array( $this, 'cart_loaded_from_session' ), PHP_INT_MAX, 1 );
|
40 |
-
add_action( 'woocommerce_before_calculate_totals', array( $this, 'calculate_totals' ),
|
41 |
-
|
|
|
|
|
42 |
if ( ! WCJ_IS_WC_VERSION_BELOW_3 ) {
|
43 |
-
add_filter( 'woocommerce_product_variation_get_price', array( $this, 'wholesale_price' ),
|
44 |
}
|
45 |
|
46 |
if ( 'yes' === get_option( 'wcj_wholesale_price_show_info_on_cart', 'no' ) ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Wholesale Price
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo per variation
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 4.1.0
|
22 |
* @todo (maybe) `woocommerce_get_variation_prices_hash`
|
23 |
*/
|
24 |
function __construct() {
|
37 |
}
|
38 |
|
39 |
add_action( 'woocommerce_cart_loaded_from_session', array( $this, 'cart_loaded_from_session' ), PHP_INT_MAX, 1 );
|
40 |
+
add_action( 'woocommerce_before_calculate_totals', array( $this, 'calculate_totals' ), PHP_INT_MAX, 1 );
|
41 |
+
|
42 |
+
$this->price_hooks_priority = wcj_get_module_price_hooks_priority( 'wholesale_price' );
|
43 |
+
add_filter( WCJ_PRODUCT_GET_PRICE_FILTER, array( $this, 'wholesale_price' ), $this->price_hooks_priority, 2 );
|
44 |
if ( ! WCJ_IS_WC_VERSION_BELOW_3 ) {
|
45 |
+
add_filter( 'woocommerce_product_variation_get_price', array( $this, 'wholesale_price' ), $this->price_hooks_priority, 2 );
|
46 |
}
|
47 |
|
48 |
if ( 'yes' === get_option( 'wcj_wholesale_price_show_info_on_cart', 'no' ) ) {
|
includes/classes/class-wcj-module-product-by-condition.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product by Condition
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 3.6.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -212,8 +212,9 @@ abstract class WCJ_Module_Product_By_Condition extends WCJ_Module {
|
|
212 |
/**
|
213 |
* pre_get_posts.
|
214 |
*
|
215 |
-
* @version
|
216 |
* @since 3.6.0
|
|
|
217 |
*/
|
218 |
function pre_get_posts( $query ) {
|
219 |
if ( is_admin() ) {
|
@@ -224,8 +225,8 @@ abstract class WCJ_Module_Product_By_Condition extends WCJ_Module {
|
|
224 |
}
|
225 |
remove_action( 'pre_get_posts', array( $this, 'pre_get_posts' ) );
|
226 |
$option_to_check = $this->get_check_option();
|
227 |
-
$post__not_in
|
228 |
-
$meta_query
|
229 |
if ( 'invisible' != apply_filters( 'booster_option', 'visible', get_option( 'wcj_' . $this->id . '_visibility_method', 'visible' ) ) ) {
|
230 |
$meta_query[] = array(
|
231 |
'key' => '_' . 'wcj_' . $this->id . '_visible',
|
@@ -248,6 +249,7 @@ abstract class WCJ_Module_Product_By_Condition extends WCJ_Module {
|
|
248 |
'posts_per_page' => -1,
|
249 |
'fields' => 'ids',
|
250 |
'meta_query' => $meta_query,
|
|
|
251 |
);
|
252 |
$loop = new WP_Query( $args );
|
253 |
foreach ( $loop->posts as $product_id ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product by Condition
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 3.6.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
212 |
/**
|
213 |
* pre_get_posts.
|
214 |
*
|
215 |
+
* @version 4.1.0
|
216 |
* @since 3.6.0
|
217 |
+
* @todo [dev] maybe move `if ( ! function_exists( 'is_user_logged_in' ) ) {`
|
218 |
*/
|
219 |
function pre_get_posts( $query ) {
|
220 |
if ( is_admin() ) {
|
225 |
}
|
226 |
remove_action( 'pre_get_posts', array( $this, 'pre_get_posts' ) );
|
227 |
$option_to_check = $this->get_check_option();
|
228 |
+
$post__not_in = $query->get( 'post__not_in' );
|
229 |
+
$meta_query = array();
|
230 |
if ( 'invisible' != apply_filters( 'booster_option', 'visible', get_option( 'wcj_' . $this->id . '_visibility_method', 'visible' ) ) ) {
|
231 |
$meta_query[] = array(
|
232 |
'key' => '_' . 'wcj_' . $this->id . '_visible',
|
249 |
'posts_per_page' => -1,
|
250 |
'fields' => 'ids',
|
251 |
'meta_query' => $meta_query,
|
252 |
+
'post__not_in' => $post__not_in,
|
253 |
);
|
254 |
$loop = new WP_Query( $args );
|
255 |
foreach ( $loop->posts as $product_id ) {
|
includes/core/wcj-loader.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Core - Loader
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 3.2.4
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -12,7 +12,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
12 |
}
|
13 |
|
14 |
// Debug Mode
|
15 |
-
if ( 'yes' === get_option( '
|
16 |
error_reporting( E_ALL );
|
17 |
}
|
18 |
|
2 |
/**
|
3 |
* Booster for WooCommerce - Core - Loader
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 3.2.4
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
12 |
}
|
13 |
|
14 |
// Debug Mode
|
15 |
+
if ( 'yes' === get_option( 'wcj_debug_tools_enabled', 'no' ) && 'yes' === get_option( 'wcj_debuging_enabled', 'no' ) ) {
|
16 |
error_reporting( E_ALL );
|
17 |
}
|
18 |
|
includes/core/wcj-modules.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Modules
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 3.2.4
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -10,6 +10,7 @@
|
|
10 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
11 |
|
12 |
$wcj_module_files = array(
|
|
|
13 |
'class-wcj-admin-tools.php',
|
14 |
'class-wcj-price-labels.php',
|
15 |
'class-wcj-call-for-price.php',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Modules
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 3.2.4
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
10 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
11 |
|
12 |
$wcj_module_files = array(
|
13 |
+
'class-wcj-debug-tools.php',
|
14 |
'class-wcj-admin-tools.php',
|
15 |
'class-wcj-price-labels.php',
|
16 |
'class-wcj-call-for-price.php',
|
includes/emails/class-wc-email-wcj-custom.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* An email sent to recipient list when selected triggers are called.
|
6 |
*
|
7 |
-
* @version
|
8 |
* @since 2.3.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
* @extends WC_Email
|
@@ -105,7 +105,7 @@ class WC_Email_WCJ_Custom extends WC_Email {
|
|
105 |
/**
|
106 |
* trigger.
|
107 |
*
|
108 |
-
* @version
|
109 |
*/
|
110 |
function trigger( $order_id ) {
|
111 |
|
@@ -150,6 +150,7 @@ class WC_Email_WCJ_Custom extends WC_Email {
|
|
150 |
global $post;
|
151 |
$post = ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->object->post : get_post( $order_id ) );
|
152 |
setup_postdata( $post );
|
|
|
153 |
}
|
154 |
|
155 |
$this->recipient = do_shortcode( $this->recipient );
|
4 |
*
|
5 |
* An email sent to recipient list when selected triggers are called.
|
6 |
*
|
7 |
+
* @version 4.1.0
|
8 |
* @since 2.3.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
* @extends WC_Email
|
105 |
/**
|
106 |
* trigger.
|
107 |
*
|
108 |
+
* @version 4.1.0
|
109 |
*/
|
110 |
function trigger( $order_id ) {
|
111 |
|
150 |
global $post;
|
151 |
$post = ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->object->post : get_post( $order_id ) );
|
152 |
setup_postdata( $post );
|
153 |
+
$_GET['order_id'] = $order_id;
|
154 |
}
|
155 |
|
156 |
$this->recipient = do_shortcode( $this->recipient );
|
includes/functions/wcj-functions-debug.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Debug
|
4 |
*
|
5 |
-
* @version
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -12,10 +12,10 @@ if ( ! function_exists( 'wcj_log' ) ) {
|
|
12 |
/**
|
13 |
* wcj_log.
|
14 |
*
|
15 |
-
* @version
|
16 |
*/
|
17 |
function wcj_log( $message = '', $do_var_dump = false ) {
|
18 |
-
if ( ! wcj_is_module_enabled( '
|
19 |
return;
|
20 |
}
|
21 |
if ( $do_var_dump ) {
|
@@ -26,7 +26,7 @@ if ( ! function_exists( 'wcj_log' ) ) {
|
|
26 |
$message = print_r( $message, true );
|
27 |
}
|
28 |
if ( 'yes' === get_option( 'wcj_logging_enabled', 'no' ) ) {
|
29 |
-
update_option( 'wcj_log', date( 'Y-m-d H:i:s' ) . ' ' . esc_url( $_SERVER['REQUEST_URI'] ) . ' [' . $message . ']' . '<br>' . get_option( 'wcj_log', '' ) );
|
30 |
}
|
31 |
// WC log
|
32 |
if ( 'yes' === get_option( 'wcj_wc_logging_enabled', 'no' ) && function_exists( 'wc_get_logger' ) ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Debug
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
12 |
/**
|
13 |
* wcj_log.
|
14 |
*
|
15 |
+
* @version 4.1.0
|
16 |
*/
|
17 |
function wcj_log( $message = '', $do_var_dump = false ) {
|
18 |
+
if ( ! wcj_is_module_enabled( 'debug_tools' ) || ( 'no' === get_option( 'wcj_logging_enabled', 'no' ) && 'no' === get_option( 'wcj_wc_logging_enabled', 'no' ) ) ) {
|
19 |
return;
|
20 |
}
|
21 |
if ( $do_var_dump ) {
|
26 |
$message = print_r( $message, true );
|
27 |
}
|
28 |
if ( 'yes' === get_option( 'wcj_logging_enabled', 'no' ) ) {
|
29 |
+
update_option( 'wcj_log', '<span style="color:red;">' . date( 'Y-m-d H:i:s' ) . ' ' . esc_url( $_SERVER['REQUEST_URI'] ) . '</span> <span style="color:orange;">[</span>' . $message . '<span style="color:orange;">]</span>' . '<br>' . get_option( 'wcj_log', '' ) );
|
30 |
}
|
31 |
// WC log
|
32 |
if ( 'yes' === get_option( 'wcj_wc_logging_enabled', 'no' ) && function_exists( 'wc_get_logger' ) ) {
|
includes/functions/wcj-functions-price-currency.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Price and Currency
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.7.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -26,7 +26,7 @@ if ( ! function_exists( 'wcj_get_module_price_hooks_priority' ) ) {
|
|
26 |
/**
|
27 |
* wcj_get_module_price_hooks_priority.
|
28 |
*
|
29 |
-
* @version
|
30 |
* @since 3.2.2
|
31 |
* @todo add all corresponding modules
|
32 |
*/
|
@@ -38,6 +38,7 @@ if ( ! function_exists( 'wcj_get_module_price_hooks_priority' ) ) {
|
|
38 |
'multicurrency_base_price' => PHP_INT_MAX - 10,
|
39 |
'multicurrency' => PHP_INT_MAX - 1,
|
40 |
'price_by_country' => PHP_INT_MAX - 1,
|
|
|
41 |
'global_discount' => PHP_INT_MAX,
|
42 |
);
|
43 |
return ( 0 != ( $priority = get_option( 'wcj_' . $module_id . '_advanced_price_hooks_priority', 0 ) ) ? $priority : $modules_priorities[ $module_id ] );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Price and Currency
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.7.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
26 |
/**
|
27 |
* wcj_get_module_price_hooks_priority.
|
28 |
*
|
29 |
+
* @version 4.1.0
|
30 |
* @since 3.2.2
|
31 |
* @todo add all corresponding modules
|
32 |
*/
|
38 |
'multicurrency_base_price' => PHP_INT_MAX - 10,
|
39 |
'multicurrency' => PHP_INT_MAX - 1,
|
40 |
'price_by_country' => PHP_INT_MAX - 1,
|
41 |
+
'wholesale_price' => PHP_INT_MAX,
|
42 |
'global_discount' => PHP_INT_MAX,
|
43 |
);
|
44 |
return ( 0 != ( $priority = get_option( 'wcj_' . $module_id . '_advanced_price_hooks_priority', 0 ) ) ? $priority : $modules_priorities[ $module_id ] );
|
includes/functions/wcj-functions-products.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Products
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -340,13 +340,15 @@ if ( ! function_exists( 'wcj_get_products' ) ) {
|
|
340 |
/**
|
341 |
* wcj_get_products.
|
342 |
*
|
343 |
-
* @version
|
|
|
|
|
344 |
*/
|
345 |
-
function wcj_get_products( $products = array(), $post_status = 'any', $block_size = 256, $add_variations = false ) {
|
346 |
$offset = 0;
|
347 |
while( true ) {
|
348 |
$args = array(
|
349 |
-
'post_type' => 'product',
|
350 |
'post_status' => $post_status,
|
351 |
'posts_per_page' => $block_size,
|
352 |
'offset' => $offset,
|
@@ -359,15 +361,13 @@ if ( ! function_exists( 'wcj_get_products' ) ) {
|
|
359 |
break;
|
360 |
}
|
361 |
foreach ( $loop->posts as $post_id ) {
|
362 |
-
|
363 |
-
if ( $add_variations ) {
|
364 |
$_product = wc_get_product( $post_id );
|
365 |
if ( $_product->is_type( 'variable' ) ) {
|
366 |
-
|
367 |
-
$products[ $child_id ] = get_the_title( $child_id ) . ' (ID:' . $child_id . ')';
|
368 |
-
}
|
369 |
}
|
370 |
}
|
|
|
371 |
}
|
372 |
$offset += $block_size;
|
373 |
}
|
@@ -526,7 +526,7 @@ if ( ! function_exists( 'wcj_get_terms' ) ) {
|
|
526 |
$_terms = get_terms( $_taxonomy, $args );
|
527 |
}
|
528 |
$_terms_options = array();
|
529 |
-
if ( ! empty( $_terms ) && ! is_wp_error( $_terms ) ){
|
530 |
foreach ( $_terms as $_term ) {
|
531 |
$_terms_options[ $_term->term_id ] = $_term->name;
|
532 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Products
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
340 |
/**
|
341 |
* wcj_get_products.
|
342 |
*
|
343 |
+
* @version 4.1.0
|
344 |
+
* @todo [dev] optimize `if ( $variations_only ) { ... }`
|
345 |
+
* @todo [dev] maybe use `wc_get_products()` instead of `WP_Query`
|
346 |
*/
|
347 |
+
function wcj_get_products( $products = array(), $post_status = 'any', $block_size = 256, $add_variations = false, $variations_only = false ) {
|
348 |
$offset = 0;
|
349 |
while( true ) {
|
350 |
$args = array(
|
351 |
+
'post_type' => ( $add_variations ? array( 'product', 'product_variation' ) : 'product' ),
|
352 |
'post_status' => $post_status,
|
353 |
'posts_per_page' => $block_size,
|
354 |
'offset' => $offset,
|
361 |
break;
|
362 |
}
|
363 |
foreach ( $loop->posts as $post_id ) {
|
364 |
+
if ( $variations_only ) {
|
|
|
365 |
$_product = wc_get_product( $post_id );
|
366 |
if ( $_product->is_type( 'variable' ) ) {
|
367 |
+
continue;
|
|
|
|
|
368 |
}
|
369 |
}
|
370 |
+
$products[ $post_id ] = get_the_title( $post_id ) . ' (ID:' . $post_id . ')';
|
371 |
}
|
372 |
$offset += $block_size;
|
373 |
}
|
526 |
$_terms = get_terms( $_taxonomy, $args );
|
527 |
}
|
528 |
$_terms_options = array();
|
529 |
+
if ( ! empty( $_terms ) && ! is_wp_error( $_terms ) ) {
|
530 |
foreach ( $_terms as $_term ) {
|
531 |
$_terms_options[ $_term->term_id ] = $_term->name;
|
532 |
}
|
includes/input-fields/class-wcj-product-input-fields-core.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Product Input Fields - Core
|
4 |
*
|
5 |
-
* @version
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -306,7 +306,7 @@ class WCJ_Product_Input_Fields_Core {
|
|
306 |
/**
|
307 |
* output_custom_input_fields_in_admin_order.
|
308 |
*
|
309 |
-
* @version
|
310 |
*/
|
311 |
function output_custom_input_fields_in_admin_order( $item_id, $item, $_product ) {
|
312 |
if ( null === $_product ) {
|
@@ -327,7 +327,7 @@ class WCJ_Product_Input_Fields_Core {
|
|
327 |
if ( 'file' === $type ) {
|
328 |
$the_value = maybe_unserialize( $the_value );
|
329 |
if ( isset( $the_value['name'] ) ) {
|
330 |
-
$the_value = '<a href="' . add_query_arg( 'wcj_download_file', $item_id . '.' . pathinfo( $the_value['name'], PATHINFO_EXTENSION ) ) . '">' . $the_value['name'] . '</a>';
|
331 |
}
|
332 |
} else {
|
333 |
if ( 'no' === get_option( 'wcj_product_input_fields_make_nicer_name_enabled', 'yes' ) ) {
|
@@ -842,7 +842,7 @@ class WCJ_Product_Input_Fields_Core {
|
|
842 |
/**
|
843 |
* add_product_input_fields_to_order_item_meta.
|
844 |
*
|
845 |
-
* @version
|
846 |
*/
|
847 |
function add_product_input_fields_to_order_item_meta( $item_id, $values, $cart_item_key ) {
|
848 |
$total_number = apply_filters( 'booster_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $values['product_id'], 1 ) );
|
@@ -854,7 +854,7 @@ class WCJ_Product_Input_Fields_Core {
|
|
854 |
if ( 'file' === $type ) {
|
855 |
$tmp_name = $input_field_value['tmp_name'];
|
856 |
$ext = pathinfo( $input_field_value['name'], PATHINFO_EXTENSION );
|
857 |
-
$name = $item_id . '.' . $ext;//$input_field_value['name'];
|
858 |
$upload_dir = wcj_get_wcj_uploads_dir( 'input_fields_uploads' );
|
859 |
if ( ! file_exists( $upload_dir ) ) {
|
860 |
mkdir( $upload_dir, 0755, true );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Product Input Fields - Core
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
306 |
/**
|
307 |
* output_custom_input_fields_in_admin_order.
|
308 |
*
|
309 |
+
* @version 4.1.0
|
310 |
*/
|
311 |
function output_custom_input_fields_in_admin_order( $item_id, $item, $_product ) {
|
312 |
if ( null === $_product ) {
|
327 |
if ( 'file' === $type ) {
|
328 |
$the_value = maybe_unserialize( $the_value );
|
329 |
if ( isset( $the_value['name'] ) ) {
|
330 |
+
$the_value = '<a href="' . add_query_arg( 'wcj_download_file', $item_id . '_' . $i . '.' . pathinfo( $the_value['name'], PATHINFO_EXTENSION ) ) . '">' . $the_value['name'] . '</a>';
|
331 |
}
|
332 |
} else {
|
333 |
if ( 'no' === get_option( 'wcj_product_input_fields_make_nicer_name_enabled', 'yes' ) ) {
|
842 |
/**
|
843 |
* add_product_input_fields_to_order_item_meta.
|
844 |
*
|
845 |
+
* @version 4.1.0
|
846 |
*/
|
847 |
function add_product_input_fields_to_order_item_meta( $item_id, $values, $cart_item_key ) {
|
848 |
$total_number = apply_filters( 'booster_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $values['product_id'], 1 ) );
|
854 |
if ( 'file' === $type ) {
|
855 |
$tmp_name = $input_field_value['tmp_name'];
|
856 |
$ext = pathinfo( $input_field_value['name'], PATHINFO_EXTENSION );
|
857 |
+
$name = $item_id . '_' . $i . '.' . $ext;//$input_field_value['name'];
|
858 |
$upload_dir = wcj_get_wcj_uploads_dir( 'input_fields_uploads' );
|
859 |
if ( ! file_exists( $upload_dir ) ) {
|
860 |
mkdir( $upload_dir, 0755, true );
|
includes/lib/tcpdf/tcpdf.php
CHANGED
@@ -16545,8 +16545,14 @@ class TCPDF {
|
|
16545 |
// get attributes
|
16546 |
preg_match_all('/([^=\s]*)[\s]*=[\s]*"([^"]*)"/', $element, $attr_array, PREG_PATTERN_ORDER);
|
16547 |
$dom[$key]['attribute'] = array(); // reset attribute array
|
16548 |
-
|
16549 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
16550 |
}
|
16551 |
if (!empty($css)) {
|
16552 |
// merge CSS style to current style
|
@@ -16558,9 +16564,16 @@ class TCPDF {
|
|
16558 |
// get style attributes
|
16559 |
preg_match_all('/([^;:\s]*):([^;]*)/', $dom[$key]['attribute']['style'], $style_array, PREG_PATTERN_ORDER);
|
16560 |
$dom[$key]['style'] = array(); // reset style attribute array
|
16561 |
-
|
16562 |
-
|
16563 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16564 |
}
|
16565 |
// --- get some style attributes ---
|
16566 |
// text direction
|
16545 |
// get attributes
|
16546 |
preg_match_all('/([^=\s]*)[\s]*=[\s]*"([^"]*)"/', $element, $attr_array, PREG_PATTERN_ORDER);
|
16547 |
$dom[$key]['attribute'] = array(); // reset attribute array
|
16548 |
+
if ( version_compare( PHP_VERSION, '7.2.0', '>=' ) ) { // Algoritmika // added in Booster v4.1.0
|
16549 |
+
foreach ( $attr_array[1] as $id => $name ) {
|
16550 |
+
$dom[$key]['attribute'][strtolower($name)] = $attr_array[2][$id];
|
16551 |
+
}
|
16552 |
+
} else {
|
16553 |
+
while (list($id, $name) = each($attr_array[1])) {
|
16554 |
+
$dom[$key]['attribute'][strtolower($name)] = $attr_array[2][$id];
|
16555 |
+
}
|
16556 |
}
|
16557 |
if (!empty($css)) {
|
16558 |
// merge CSS style to current style
|
16564 |
// get style attributes
|
16565 |
preg_match_all('/([^;:\s]*):([^;]*)/', $dom[$key]['attribute']['style'], $style_array, PREG_PATTERN_ORDER);
|
16566 |
$dom[$key]['style'] = array(); // reset style attribute array
|
16567 |
+
if ( version_compare( PHP_VERSION, '7.2.0', '>=' ) ) { // Algoritmika // added in Booster v4.1.0
|
16568 |
+
foreach ( $style_array[1] as $id => $name ) {
|
16569 |
+
// in case of duplicate attribute the last replace the previous
|
16570 |
+
$dom[$key]['style'][strtolower($name)] = trim($style_array[2][$id]);
|
16571 |
+
}
|
16572 |
+
} else {
|
16573 |
+
while (list($id, $name) = each($style_array[1])) {
|
16574 |
+
// in case of duplicate attribute the last replace the previous
|
16575 |
+
$dom[$key]['style'][strtolower($name)] = trim($style_array[2][$id]);
|
16576 |
+
}
|
16577 |
}
|
16578 |
// --- get some style attributes ---
|
16579 |
// text direction
|
includes/price-by-country/class-wcj-price-by-country-core.php
CHANGED
@@ -43,11 +43,42 @@ class WCJ_Price_by_Country_Core {
|
|
43 |
*/
|
44 |
function init() {
|
45 |
wcj_session_maybe_start();
|
46 |
-
if ( isset( $_REQUEST[
|
47 |
-
wcj_session_set( 'wcj-country', $_REQUEST[
|
48 |
}
|
49 |
-
if ( isset( $_REQUEST[
|
50 |
-
wcj_session_set( 'wcj-country', $_REQUEST[
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
}
|
52 |
}
|
53 |
|
@@ -228,7 +259,7 @@ class WCJ_Price_by_Country_Core {
|
|
228 |
/**
|
229 |
* get_customer_country_group_id.
|
230 |
*
|
231 |
-
* @version 4.
|
232 |
* @todo [feature] (maybe) `( 'cart_and_checkout' === get_option( 'wcj_price_by_country_override_scope', 'all' ) && ( is_cart() || is_checkout() ) ) ||`
|
233 |
*/
|
234 |
function get_customer_country_group_id() {
|
@@ -272,30 +303,46 @@ class WCJ_Price_by_Country_Core {
|
|
272 |
return null;
|
273 |
}
|
274 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
// Get the country group id - go through all the groups, first found group is returned
|
276 |
-
for ( $i = 1; $i <= apply_filters( 'booster_option', 1, get_option( 'wcj_price_by_country_total_groups_number', 1 ) ); $i++ ) {
|
277 |
switch ( get_option( 'wcj_price_by_country_selection', 'comma_list' ) ) {
|
278 |
case 'comma_list':
|
279 |
$country_exchange_rate_group = get_option( 'wcj_price_by_country_exchange_rate_countries_group_' . $i );
|
280 |
$country_exchange_rate_group = str_replace( ' ', '', $country_exchange_rate_group );
|
281 |
$country_exchange_rate_group = explode( ',', $country_exchange_rate_group );
|
282 |
-
|
283 |
case 'multiselect':
|
284 |
$country_exchange_rate_group = get_option( 'wcj_price_by_country_countries_group_' . $i, '' );
|
285 |
-
|
286 |
case 'chosen_select':
|
287 |
$country_exchange_rate_group = get_option( 'wcj_price_by_country_countries_group_chosen_select_' . $i, '' );
|
288 |
-
|
289 |
}
|
290 |
if ( is_array( $country_exchange_rate_group ) && in_array( $country, $country_exchange_rate_group ) ) {
|
291 |
-
$this->customer_country_group_id = $i;
|
292 |
return $i;
|
293 |
}
|
294 |
}
|
295 |
-
|
296 |
-
// No country group found
|
297 |
-
$this->customer_country_group_id = -1;
|
298 |
-
return null;
|
299 |
}
|
300 |
|
301 |
/**
|
43 |
*/
|
44 |
function init() {
|
45 |
wcj_session_maybe_start();
|
46 |
+
if ( isset( $_REQUEST['wcj-country'] ) ) {
|
47 |
+
wcj_session_set( 'wcj-country', $_REQUEST['wcj-country'] );
|
48 |
}
|
49 |
+
if ( isset( $_REQUEST['wcj_country_selector'] ) ) {
|
50 |
+
wcj_session_set( 'wcj-country', $_REQUEST['wcj_country_selector'] );
|
51 |
+
}
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Gets currency by country.
|
56 |
+
*
|
57 |
+
* @version 4.1.0
|
58 |
+
* @since 4.1.0
|
59 |
+
*
|
60 |
+
* @param $country
|
61 |
+
*
|
62 |
+
* @return bool|mixed|void
|
63 |
+
*/
|
64 |
+
function get_currency_by_country( $country ) {
|
65 |
+
$group_id = $this->get_country_group_id( $country );
|
66 |
+
$country_currency_code = get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $group_id );
|
67 |
+
return ( '' != $country_currency_code ? $country_currency_code : false );
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Saves currency on session by country.
|
72 |
+
*
|
73 |
+
* @version 4.1.0
|
74 |
+
* @since 4.1.0
|
75 |
+
*
|
76 |
+
* @param $country
|
77 |
+
*/
|
78 |
+
function save_currency_on_session_by_country( $country ) {
|
79 |
+
$currency = $this->get_currency_by_country( $country );
|
80 |
+
if ( ! empty( $currency ) ) {
|
81 |
+
wcj_session_set( 'wcj-currency', $currency );
|
82 |
}
|
83 |
}
|
84 |
|
259 |
/**
|
260 |
* get_customer_country_group_id.
|
261 |
*
|
262 |
+
* @version 4.1.0
|
263 |
* @todo [feature] (maybe) `( 'cart_and_checkout' === get_option( 'wcj_price_by_country_override_scope', 'all' ) && ( is_cart() || is_checkout() ) ) ||`
|
264 |
*/
|
265 |
function get_customer_country_group_id() {
|
303 |
return null;
|
304 |
}
|
305 |
|
306 |
+
$this->customer_country_group_id = $this->get_country_group_id( $country );
|
307 |
+
if ( - 1 != $this->customer_country_group_id ) {
|
308 |
+
return $this->customer_country_group_id;
|
309 |
+
}
|
310 |
+
|
311 |
+
// No country group found
|
312 |
+
$this->customer_country_group_id = -1;
|
313 |
+
return null;
|
314 |
+
}
|
315 |
+
|
316 |
+
/**
|
317 |
+
* Gets country group id.
|
318 |
+
*
|
319 |
+
* @version 4.1.0
|
320 |
+
* @since 4.1.0
|
321 |
+
* @param $country
|
322 |
+
*
|
323 |
+
* @return int
|
324 |
+
*/
|
325 |
+
function get_country_group_id( $country ) {
|
326 |
// Get the country group id - go through all the groups, first found group is returned
|
327 |
+
for ( $i = 1; $i <= apply_filters( 'booster_option', 1, get_option( 'wcj_price_by_country_total_groups_number', 1 ) ); $i ++ ) {
|
328 |
switch ( get_option( 'wcj_price_by_country_selection', 'comma_list' ) ) {
|
329 |
case 'comma_list':
|
330 |
$country_exchange_rate_group = get_option( 'wcj_price_by_country_exchange_rate_countries_group_' . $i );
|
331 |
$country_exchange_rate_group = str_replace( ' ', '', $country_exchange_rate_group );
|
332 |
$country_exchange_rate_group = explode( ',', $country_exchange_rate_group );
|
333 |
+
break;
|
334 |
case 'multiselect':
|
335 |
$country_exchange_rate_group = get_option( 'wcj_price_by_country_countries_group_' . $i, '' );
|
336 |
+
break;
|
337 |
case 'chosen_select':
|
338 |
$country_exchange_rate_group = get_option( 'wcj_price_by_country_countries_group_chosen_select_' . $i, '' );
|
339 |
+
break;
|
340 |
}
|
341 |
if ( is_array( $country_exchange_rate_group ) && in_array( $country, $country_exchange_rate_group ) ) {
|
|
|
342 |
return $i;
|
343 |
}
|
344 |
}
|
345 |
+
return - 1;
|
|
|
|
|
|
|
346 |
}
|
347 |
|
348 |
/**
|
includes/settings/meta-box/wcj-settings-meta-box-admin-tools.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* @version 3.5.0
|
6 |
* @since 3.3.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
-
* @todo (maybe) sort `$products` with available variations listed at the top
|
9 |
*/
|
10 |
|
11 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
5 |
* @version 3.5.0
|
6 |
* @since 3.3.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
+
* @todo [dev] (maybe) sort `$products` with available variations listed at the top
|
9 |
*/
|
10 |
|
11 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
includes/settings/meta-box/wcj-settings-meta-box-product-images.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings Meta Box - Product Images
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,6 +16,7 @@ return array(
|
|
16 |
'type' => 'textarea',
|
17 |
'title' => __( 'Replace image with custom HTML on single product page', 'woocommerce-jetpack' ),
|
18 |
'tooltip' => __( 'You can use shortcodes here.', 'woocommerce-jetpack' ),
|
|
|
19 |
),
|
20 |
array(
|
21 |
'name' => 'wcj_product_images_meta_custom_on_archives',
|
@@ -23,6 +24,7 @@ return array(
|
|
23 |
'type' => 'textarea',
|
24 |
'title' => __( 'Replace image with custom HTML on archives', 'woocommerce-jetpack' ),
|
25 |
'tooltip' => __( 'You can use shortcodes here.', 'woocommerce-jetpack' ),
|
|
|
26 |
),
|
27 |
array(
|
28 |
'name' => 'wcj_product_images_hide_image_on_single',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings Meta Box - Product Images
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
'type' => 'textarea',
|
17 |
'title' => __( 'Replace image with custom HTML on single product page', 'woocommerce-jetpack' ),
|
18 |
'tooltip' => __( 'You can use shortcodes here.', 'woocommerce-jetpack' ),
|
19 |
+
'css' => 'width:100%;height:75px;',
|
20 |
),
|
21 |
array(
|
22 |
'name' => 'wcj_product_images_meta_custom_on_archives',
|
24 |
'type' => 'textarea',
|
25 |
'title' => __( 'Replace image with custom HTML on archives', 'woocommerce-jetpack' ),
|
26 |
'tooltip' => __( 'You can use shortcodes here.', 'woocommerce-jetpack' ),
|
27 |
+
'css' => 'width:100%;height:75px;',
|
28 |
),
|
29 |
array(
|
30 |
'name' => 'wcj_product_images_hide_image_on_single',
|
includes/settings/meta-box/wcj-settings-meta-box-related-products.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings Meta Box - Related Products
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -12,13 +12,14 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
|
12 |
$product_id = get_the_ID();
|
13 |
$products = wcj_get_products( array(), 'publish' );
|
14 |
$is_chosen_select = ( 'chosen_select' === get_option( 'wcj_product_info_related_products_per_product_box_type', 'chosen_select' ) );
|
|
|
15 |
unset( $products[ $product_id ] );
|
16 |
$options = array(
|
17 |
array(
|
18 |
'title' => __( 'Enable', 'woocommerce-jetpack' ),
|
19 |
'tooltip' => __( 'If enabled and no products selected - will hide related products section on frontend for current product.', 'woocommerce-jetpack' ),
|
20 |
'name' => 'wcj_product_info_related_products_enabled',
|
21 |
-
'default' =>
|
22 |
'type' => 'select',
|
23 |
'options' => array(
|
24 |
'no' => __( 'No', 'woocommerce-jetpack' ),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings Meta Box - Related Products
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
12 |
$product_id = get_the_ID();
|
13 |
$products = wcj_get_products( array(), 'publish' );
|
14 |
$is_chosen_select = ( 'chosen_select' === get_option( 'wcj_product_info_related_products_per_product_box_type', 'chosen_select' ) );
|
15 |
+
$default_value = get_option( 'wcj_product_info_related_products_per_product_cmb_default', 'no' );
|
16 |
unset( $products[ $product_id ] );
|
17 |
$options = array(
|
18 |
array(
|
19 |
'title' => __( 'Enable', 'woocommerce-jetpack' ),
|
20 |
'tooltip' => __( 'If enabled and no products selected - will hide related products section on frontend for current product.', 'woocommerce-jetpack' ),
|
21 |
'name' => 'wcj_product_info_related_products_enabled',
|
22 |
+
'default' => $default_value,
|
23 |
'type' => 'select',
|
24 |
'options' => array(
|
25 |
'no' => __( 'No', 'woocommerce-jetpack' ),
|
includes/settings/wcj-settings-admin-bar.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Admin Bar
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -17,21 +17,36 @@ return array(
|
|
17 |
),
|
18 |
array(
|
19 |
'title' => __( '"WooCommerce" Admin Bar', 'woocommerce-jetpack' ),
|
20 |
-
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
21 |
'id' => 'wcj_admin_bar_wc_enabled',
|
22 |
'default' => 'yes',
|
23 |
'type' => 'checkbox',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
),
|
25 |
array(
|
26 |
'title' => __( '"Booster" Admin Bar', 'woocommerce-jetpack' ),
|
27 |
-
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
28 |
'id' => 'wcj_admin_bar_booster_enabled',
|
29 |
'default' => 'yes',
|
30 |
'type' => 'checkbox',
|
31 |
),
|
32 |
array(
|
33 |
'title' => __( '"Booster: Active" Admin Bar', 'woocommerce-jetpack' ),
|
34 |
-
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
35 |
'id' => 'wcj_admin_bar_booster_active_enabled',
|
36 |
'default' => 'yes',
|
37 |
'type' => 'checkbox',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Admin Bar
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
17 |
),
|
18 |
array(
|
19 |
'title' => __( '"WooCommerce" Admin Bar', 'woocommerce-jetpack' ),
|
20 |
+
'desc' => '<strong>' . __( 'Enable', 'woocommerce-jetpack' ) . '</strong>',
|
21 |
'id' => 'wcj_admin_bar_wc_enabled',
|
22 |
'default' => 'yes',
|
23 |
'type' => 'checkbox',
|
24 |
+
'checkboxgroup' => 'start',
|
25 |
+
),
|
26 |
+
array(
|
27 |
+
'desc' => __( 'List product categories in "WooCommerce > Products > Categories"', 'woocommerce-jetpack' ),
|
28 |
+
'id' => 'wcj_admin_bar_wc_list_cats',
|
29 |
+
'default' => 'no',
|
30 |
+
'type' => 'checkbox',
|
31 |
+
'checkboxgroup' => '',
|
32 |
+
),
|
33 |
+
array(
|
34 |
+
'desc' => __( 'List product tags in "WooCommerce > Products > Tags"', 'woocommerce-jetpack' ),
|
35 |
+
'id' => 'wcj_admin_bar_wc_list_tags',
|
36 |
+
'default' => 'no',
|
37 |
+
'type' => 'checkbox',
|
38 |
+
'checkboxgroup' => 'end',
|
39 |
),
|
40 |
array(
|
41 |
'title' => __( '"Booster" Admin Bar', 'woocommerce-jetpack' ),
|
42 |
+
'desc' => '<strong>' . __( 'Enable', 'woocommerce-jetpack' ) . '</strong>',
|
43 |
'id' => 'wcj_admin_bar_booster_enabled',
|
44 |
'default' => 'yes',
|
45 |
'type' => 'checkbox',
|
46 |
),
|
47 |
array(
|
48 |
'title' => __( '"Booster: Active" Admin Bar', 'woocommerce-jetpack' ),
|
49 |
+
'desc' => '<strong>' . __( 'Enable', 'woocommerce-jetpack' ) . '</strong>',
|
50 |
'id' => 'wcj_admin_bar_booster_active_enabled',
|
51 |
'default' => 'yes',
|
52 |
'type' => 'checkbox',
|
includes/settings/wcj-settings-admin-tools.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Admin Tools
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -13,10 +13,12 @@ return array(
|
|
13 |
array(
|
14 |
'title' => __( 'Admin Tools Options', 'woocommerce-jetpack' ),
|
15 |
'type' => 'title',
|
16 |
-
'id' => '
|
17 |
),
|
18 |
array(
|
19 |
'title' => __( 'Show Booster Menus Only to Admin', 'woocommerce-jetpack' ),
|
|
|
|
|
20 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
21 |
'id' => 'wcj_admin_tools_show_menus_to_admin_only',
|
22 |
'default' => 'no',
|
@@ -40,84 +42,66 @@ return array(
|
|
40 |
'type' => 'checkbox',
|
41 |
),
|
42 |
array(
|
43 |
-
'
|
44 |
-
'
|
45 |
-
'desc_tip' => __( 'Set zero to disable.', 'woocommerce-jetpack' ) . $this->current_php_memory_limit,
|
46 |
-
'id' => 'wcj_admin_tools_php_memory_limit',
|
47 |
-
'default' => 0,
|
48 |
-
'type' => 'number',
|
49 |
-
'custom_attributes' => array( 'min' => 0 ),
|
50 |
),
|
51 |
array(
|
52 |
-
'title' => __( '
|
53 |
-
'
|
54 |
-
'
|
55 |
-
'id' => 'wcj_admin_tools_php_time_limit',
|
56 |
-
'default' => 0,
|
57 |
-
'type' => 'number',
|
58 |
-
'custom_attributes' => array( 'min' => 0 ),
|
59 |
),
|
60 |
array(
|
61 |
'title' => __( 'Show Order Meta', 'woocommerce-jetpack' ),
|
|
|
62 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
63 |
'id' => 'wcj_admin_tools_show_order_meta_enabled',
|
64 |
'default' => 'no',
|
65 |
'type' => 'checkbox',
|
66 |
),
|
67 |
-
array(
|
68 |
-
'title' => __( 'Show Product Meta', 'woocommerce-jetpack' ),
|
69 |
-
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
70 |
-
'id' => 'wcj_admin_tools_show_product_meta_enabled',
|
71 |
-
'default' => 'no',
|
72 |
-
'type' => 'checkbox',
|
73 |
-
),
|
74 |
-
array(
|
75 |
-
'title' => __( 'Show Variable Product Pricing Table', 'woocommerce-jetpack' ),
|
76 |
-
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
77 |
-
'id' => 'wcj_admin_tools_variable_product_pricing_table_enabled',
|
78 |
-
'default' => 'no',
|
79 |
-
'type' => 'checkbox',
|
80 |
-
),
|
81 |
array(
|
82 |
'type' => 'sectionend',
|
83 |
-
'id' => '
|
84 |
),
|
85 |
array(
|
86 |
-
'title' => __( '
|
87 |
'type' => 'title',
|
88 |
-
'id' => '
|
89 |
),
|
90 |
array(
|
91 |
-
'title' => __( '
|
|
|
92 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
93 |
-
'id' => '
|
94 |
'default' => 'no',
|
95 |
'type' => 'checkbox',
|
96 |
),
|
97 |
array(
|
98 |
-
'title' => __( '
|
|
|
99 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
100 |
-
'id' => '
|
101 |
'default' => 'no',
|
102 |
'type' => 'checkbox',
|
103 |
),
|
104 |
array(
|
105 |
-
'title' => __( '
|
|
|
106 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
107 |
-
'id' => '
|
108 |
'default' => 'no',
|
109 |
'type' => 'checkbox',
|
110 |
),
|
111 |
array(
|
112 |
-
'title' => __( '
|
113 |
-
'
|
114 |
-
|
115 |
-
'
|
116 |
-
'
|
117 |
-
|
|
|
118 |
),
|
119 |
array(
|
120 |
'type' => 'sectionend',
|
121 |
-
'id' => '
|
122 |
),
|
123 |
);
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Admin Tools
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
13 |
array(
|
14 |
'title' => __( 'Admin Tools Options', 'woocommerce-jetpack' ),
|
15 |
'type' => 'title',
|
16 |
+
'id' => 'wcj_admin_tools_general_options',
|
17 |
),
|
18 |
array(
|
19 |
'title' => __( 'Show Booster Menus Only to Admin', 'woocommerce-jetpack' ),
|
20 |
+
'desc_tip' => sprintf( __( 'Will require %s capability to see Booster menus (instead of %s capability).', 'woocommerce-jetpack' ),
|
21 |
+
'<code>manage_options</code>', '<code>manage_woocommerce</code>' ),
|
22 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
23 |
'id' => 'wcj_admin_tools_show_menus_to_admin_only',
|
24 |
'default' => 'no',
|
42 |
'type' => 'checkbox',
|
43 |
),
|
44 |
array(
|
45 |
+
'type' => 'sectionend',
|
46 |
+
'id' => 'wcj_admin_tools_general_options',
|
|
|
|
|
|
|
|
|
|
|
47 |
),
|
48 |
array(
|
49 |
+
'title' => __( 'Orders Options', 'woocommerce-jetpack' ),
|
50 |
+
'type' => 'title',
|
51 |
+
'id' => 'wcj_admin_tools_orders_options',
|
|
|
|
|
|
|
|
|
52 |
),
|
53 |
array(
|
54 |
'title' => __( 'Show Order Meta', 'woocommerce-jetpack' ),
|
55 |
+
'desc_tip' => __( 'Will show order meta table in meta box.', 'woocommerce-jetpack' ),
|
56 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
57 |
'id' => 'wcj_admin_tools_show_order_meta_enabled',
|
58 |
'default' => 'no',
|
59 |
'type' => 'checkbox',
|
60 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
array(
|
62 |
'type' => 'sectionend',
|
63 |
+
'id' => 'wcj_admin_tools_orders_options',
|
64 |
),
|
65 |
array(
|
66 |
+
'title' => __( 'Products Options', 'woocommerce-jetpack' ),
|
67 |
'type' => 'title',
|
68 |
+
'id' => 'wcj_admin_tools_products_options',
|
69 |
),
|
70 |
array(
|
71 |
+
'title' => __( 'Show Product Meta', 'woocommerce-jetpack' ),
|
72 |
+
'desc_tip' => __( 'Will show product meta table in meta box.', 'woocommerce-jetpack' ),
|
73 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
74 |
+
'id' => 'wcj_admin_tools_show_product_meta_enabled',
|
75 |
'default' => 'no',
|
76 |
'type' => 'checkbox',
|
77 |
),
|
78 |
array(
|
79 |
+
'title' => __( 'Show Variable Product Pricing Table', 'woocommerce-jetpack' ),
|
80 |
+
'desc_tip' => __( 'Will allow to set all variations prices in single meta box.', 'woocommerce-jetpack' ),
|
81 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
82 |
+
'id' => 'wcj_admin_tools_variable_product_pricing_table_enabled',
|
83 |
'default' => 'no',
|
84 |
'type' => 'checkbox',
|
85 |
),
|
86 |
array(
|
87 |
+
'title' => __( 'Product Revisions', 'woocommerce-jetpack' ),
|
88 |
+
'desc_tip' => __( 'Will enable product revisions.', 'woocommerce-jetpack' ),
|
89 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
90 |
+
'id' => 'wcj_product_revisions_enabled',
|
91 |
'default' => 'no',
|
92 |
'type' => 'checkbox',
|
93 |
),
|
94 |
array(
|
95 |
+
'title' => __( 'JSON Product Search Limit', 'woocommerce-jetpack' ),
|
96 |
+
'desc_tip' => __( 'This will set the maximum number of products to return on JSON search (e.g. when setting Upsells and Cross-sells on product edit page).', 'woocommerce-jetpack' ) . ' ' .
|
97 |
+
__( 'Ignored if set to zero.', 'woocommerce-jetpack' ),
|
98 |
+
'id' => 'wcj_product_json_search_limit',
|
99 |
+
'default' => 0,
|
100 |
+
'type' => 'number',
|
101 |
+
'custom_attributes' => array( 'min' => 0 ),
|
102 |
),
|
103 |
array(
|
104 |
'type' => 'sectionend',
|
105 |
+
'id' => 'wcj_admin_tools_products_options',
|
106 |
),
|
107 |
);
|
includes/settings/wcj-settings-checkout-custom-info.php
CHANGED
@@ -5,6 +5,7 @@
|
|
5 |
* @version 3.3.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
|
|
8 |
*/
|
9 |
|
10 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
5 |
* @version 3.3.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
+
* @todo [dev] clean up
|
9 |
*/
|
10 |
|
11 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
includes/settings/wcj-settings-checkout-customization.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Checkout Customization
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -186,4 +186,54 @@ return array(
|
|
186 |
'type' => 'sectionend',
|
187 |
'id' => 'wcj_checkout_customization_checkout_login_message_options',
|
188 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
);
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Checkout Customization
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
186 |
'type' => 'sectionend',
|
187 |
'id' => 'wcj_checkout_customization_checkout_login_message_options',
|
188 |
),
|
189 |
+
array(
|
190 |
+
'title' => __( 'Recalculate Checkout', 'woocommerce-jetpack' ),
|
191 |
+
'desc' => __( 'Recalculate checkout right after the default calculation has been requested.', 'woocommerce-jetpack' ),
|
192 |
+
'type' => 'title',
|
193 |
+
'id' => 'wcj_checkout_recalculate_checkout_update_options',
|
194 |
+
),
|
195 |
+
array(
|
196 |
+
'title' => __( 'Recalculate Checkout', 'woocommerce-jetpack' ),
|
197 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
198 |
+
'id' => 'wcj_checkout_recalculate_checkout_update_enable',
|
199 |
+
'default' => 'no',
|
200 |
+
'type' => 'checkbox',
|
201 |
+
),
|
202 |
+
array(
|
203 |
+
'title' => __( 'Fields', 'woocommerce-jetpack' ),
|
204 |
+
'desc' => __( 'Required fields that need to be changed in order to recalculate checkout.', 'woocommerce-jetpack' ),
|
205 |
+
'desc_tip' => __( 'Use CSS selector syntax.', 'woocommerce-jetpack' ),
|
206 |
+
'id' => 'wcj_checkout_recalculate_checkout_update_fields',
|
207 |
+
'default' => '#billing_country, #shipping_country',
|
208 |
+
'type' => 'text',
|
209 |
+
),
|
210 |
+
array(
|
211 |
+
'type' => 'sectionend',
|
212 |
+
'id' => 'wcj_checkout_recalculate_checkout_update_options',
|
213 |
+
),
|
214 |
+
array(
|
215 |
+
'title' => __( 'Force Checkout Update', 'woocommerce-jetpack' ),
|
216 |
+
'desc' => __( 'Update checkout when some field have its value changed.', 'woocommerce-jetpack' ),
|
217 |
+
'type' => 'title',
|
218 |
+
'id' => 'wcj_checkout_force_checkout_update_options',
|
219 |
+
),
|
220 |
+
array(
|
221 |
+
'title' => __( 'Force Checkout Update', 'woocommerce-jetpack' ),
|
222 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
223 |
+
'id' => 'wcj_checkout_force_checkout_update_enable',
|
224 |
+
'default' => 'no',
|
225 |
+
'type' => 'checkbox',
|
226 |
+
),
|
227 |
+
array(
|
228 |
+
'title' => __( 'Fields', 'woocommerce-jetpack' ),
|
229 |
+
'desc' => __( 'Fields that need to be changed in order to update checkout.', 'woocommerce-jetpack' ),
|
230 |
+
'desc_tip' => __( 'Use CSS selector syntax.', 'woocommerce-jetpack' ),
|
231 |
+
'id' => 'wcj_checkout_force_checkout_update_fields',
|
232 |
+
'default' => '',
|
233 |
+
'type' => 'text',
|
234 |
+
),
|
235 |
+
array(
|
236 |
+
'type' => 'sectionend',
|
237 |
+
'id' => 'wcj_checkout_force_checkout_update_options',
|
238 |
+
),
|
239 |
);
|
includes/settings/wcj-settings-debug-tools.php
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Booster for WooCommerce - Settings - Debug Tools
|
4 |
+
*
|
5 |
+
* @version 4.1.0
|
6 |
+
* @since 4.1.0
|
7 |
+
* @author Algoritmika Ltd.
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
+
|
12 |
+
return array(
|
13 |
+
array(
|
14 |
+
'title' => __( 'Debug Tools Options', 'woocommerce-jetpack' ),
|
15 |
+
'type' => 'title',
|
16 |
+
'id' => 'wcj_debug_tools_options',
|
17 |
+
),
|
18 |
+
array(
|
19 |
+
'title' => __( 'Log', 'woocommerce-jetpack' ),
|
20 |
+
'desc_tip' => __( 'Enables logging to Booster log.', 'woocommerce-jetpack' ),
|
21 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
22 |
+
'id' => 'wcj_logging_enabled',
|
23 |
+
'default' => 'no',
|
24 |
+
'type' => 'checkbox',
|
25 |
+
),
|
26 |
+
array(
|
27 |
+
'title' => __( 'WooCommerce Log', 'woocommerce-jetpack' ),
|
28 |
+
'desc_tip' => __( 'Enables logging to WooCommerce log.', 'woocommerce-jetpack' ),
|
29 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
30 |
+
'id' => 'wcj_wc_logging_enabled',
|
31 |
+
'default' => 'no',
|
32 |
+
'type' => 'checkbox',
|
33 |
+
),
|
34 |
+
array(
|
35 |
+
'title' => __( 'Debug', 'woocommerce-jetpack' ),
|
36 |
+
'desc_tip' => __( 'Enables debug mode.', 'woocommerce-jetpack' ),
|
37 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
38 |
+
'id' => 'wcj_debuging_enabled',
|
39 |
+
'default' => 'no',
|
40 |
+
'type' => 'checkbox',
|
41 |
+
),
|
42 |
+
array(
|
43 |
+
'title' => __( 'System Info', 'woocommerce-jetpack' ),
|
44 |
+
'id' => 'wcj_debug_tools_system_info',
|
45 |
+
'default' => '',
|
46 |
+
'type' => 'custom_link',
|
47 |
+
'link' => '<a href="' . add_query_arg( 'wcj_debug', true ) . '">' . __( 'Show extended info', 'woocommerce-jetpack' ) . '</a>' .
|
48 |
+
'<pre style="background-color: white; padding: 5px;">' . wcj_get_table_html( $this->get_system_info_table_array(),
|
49 |
+
array( 'columns_styles' => array( 'padding:0;', 'padding:0;' ), 'table_heading_type' => 'vertical' ) ) . '</pre>',
|
50 |
+
),
|
51 |
+
array(
|
52 |
+
'type' => 'sectionend',
|
53 |
+
'id' => 'wcj_debug_tools_options',
|
54 |
+
),
|
55 |
+
);
|
includes/settings/wcj-settings-general.php
CHANGED
@@ -2,10 +2,9 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - General
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
-
* @todo add link to Booster's shortcodes list
|
9 |
*/
|
10 |
|
11 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
@@ -17,7 +16,7 @@ $settings = array(
|
|
17 |
'id' => 'wcj_general_shortcodes_options',
|
18 |
),
|
19 |
array(
|
20 |
-
'title' => __( '
|
21 |
'desc_tip' => __( 'This will enable all (including non Booster\'s) shortcodes in WordPress text widgets.', 'woocommerce-jetpack' ),
|
22 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
23 |
'id' => 'wcj_general_shortcodes_in_text_widgets_enabled',
|
@@ -25,8 +24,9 @@ $settings = array(
|
|
25 |
'type' => 'checkbox',
|
26 |
),
|
27 |
array(
|
28 |
-
'title' => __( '
|
29 |
-
'desc_tip' => __( 'Disable all Booster\'s shortcodes (for memory saving).', 'woocommerce-jetpack' ),
|
|
|
30 |
'desc' => __( 'Disable', 'woocommerce-jetpack' ),
|
31 |
'id' => 'wcj_general_shortcodes_disable_booster_shortcodes',
|
32 |
'default' => 'no',
|
@@ -36,29 +36,15 @@ $settings = array(
|
|
36 |
'type' => 'sectionend',
|
37 |
'id' => 'wcj_general_shortcodes_options',
|
38 |
),
|
39 |
-
array(
|
40 |
-
'title' => __( 'Product Revisions', 'woocommerce-jetpack' ),
|
41 |
-
'type' => 'title',
|
42 |
-
'id' => 'wcj_product_revisions_options',
|
43 |
-
),
|
44 |
-
array(
|
45 |
-
'title' => __( 'Product Revisions', 'woocommerce-jetpack' ),
|
46 |
-
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
47 |
-
'id' => 'wcj_product_revisions_enabled',
|
48 |
-
'default' => 'no',
|
49 |
-
'type' => 'checkbox',
|
50 |
-
),
|
51 |
-
array(
|
52 |
-
'type' => 'sectionend',
|
53 |
-
'id' => 'wcj_product_revisions_options',
|
54 |
-
),
|
55 |
array(
|
56 |
'title' => __( 'Advanced Options', 'woocommerce-jetpack' ),
|
57 |
'type' => 'title',
|
58 |
'id' => 'wcj_general_advanced_options',
|
59 |
),
|
60 |
array(
|
61 |
-
'title' => __( 'Recalculate Cart Totals
|
|
|
|
|
62 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
63 |
'id' => 'wcj_general_advanced_recalculate_cart_totals',
|
64 |
'default' => 'no',
|
@@ -75,35 +61,39 @@ $settings = array(
|
|
75 |
),
|
76 |
),
|
77 |
array(
|
78 |
-
'title' => __( '
|
|
|
79 |
'desc' => __( 'Disable', 'woocommerce-jetpack' ),
|
80 |
'id' => 'wcj_general_advanced_disable_datepicker_css',
|
81 |
'default' => 'no',
|
82 |
'type' => 'checkbox',
|
83 |
),
|
84 |
array(
|
85 |
-
'title' => __( 'Datepicker/Weekpicker CSS', 'woocommerce-jetpack' ),
|
86 |
'id' => 'wcj_general_advanced_datepicker_css',
|
87 |
'default' => '//ajax.googleapis.com/ajax/libs/jqueryui/1.9.0/themes/base/jquery-ui.css',
|
88 |
'type' => 'text',
|
89 |
'css' => 'width:66%;min-width:300px;',
|
90 |
),
|
91 |
array(
|
92 |
-
'title' => __( '
|
|
|
93 |
'desc' => __( 'Disable', 'woocommerce-jetpack' ),
|
94 |
'id' => 'wcj_general_advanced_disable_datepicker_js',
|
95 |
'default' => 'no',
|
96 |
'type' => 'checkbox',
|
97 |
),
|
98 |
array(
|
99 |
-
'title' => __( '
|
|
|
100 |
'desc' => __( 'Disable', 'woocommerce-jetpack' ),
|
101 |
'id' => 'wcj_general_advanced_disable_timepicker_css',
|
102 |
'default' => 'no',
|
103 |
'type' => 'checkbox',
|
104 |
),
|
105 |
array(
|
106 |
-
'title' => __( '
|
|
|
107 |
'desc' => __( 'Disable', 'woocommerce-jetpack' ),
|
108 |
'id' => 'wcj_general_advanced_disable_timepicker_js',
|
109 |
'default' => 'no',
|
@@ -190,5 +180,32 @@ $settings = array(
|
|
190 |
'type' => 'sectionend',
|
191 |
'id' => 'wcj_general_user_role_changer_options',
|
192 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
);
|
194 |
return $settings;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - General
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
|
|
8 |
*/
|
9 |
|
10 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
16 |
'id' => 'wcj_general_shortcodes_options',
|
17 |
),
|
18 |
array(
|
19 |
+
'title' => __( 'Shortcodes in WordPress Text Widgets', 'woocommerce-jetpack' ),
|
20 |
'desc_tip' => __( 'This will enable all (including non Booster\'s) shortcodes in WordPress text widgets.', 'woocommerce-jetpack' ),
|
21 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
22 |
'id' => 'wcj_general_shortcodes_in_text_widgets_enabled',
|
24 |
'type' => 'checkbox',
|
25 |
),
|
26 |
array(
|
27 |
+
'title' => __( 'Booster\'s Shortcodes', 'woocommerce-jetpack' ),
|
28 |
+
'desc_tip' => sprintf( __( 'Disable all <a href="%s" target="_blank">Booster\'s shortcodes</a> (for memory saving).', 'woocommerce-jetpack' ),
|
29 |
+
'https://booster.io/shortcodes/' ),
|
30 |
'desc' => __( 'Disable', 'woocommerce-jetpack' ),
|
31 |
'id' => 'wcj_general_shortcodes_disable_booster_shortcodes',
|
32 |
'default' => 'no',
|
36 |
'type' => 'sectionend',
|
37 |
'id' => 'wcj_general_shortcodes_options',
|
38 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
array(
|
40 |
'title' => __( 'Advanced Options', 'woocommerce-jetpack' ),
|
41 |
'type' => 'title',
|
42 |
'id' => 'wcj_general_advanced_options',
|
43 |
),
|
44 |
array(
|
45 |
+
'title' => __( 'Recalculate Cart Totals', 'woocommerce-jetpack' ),
|
46 |
+
'desc_tip' => __( 'Will recalculate cart totals on every page load.', 'woocommerce-jetpack' ) . ' ' .
|
47 |
+
__( 'This may solve multicurrency issues with wrong currency symbol in mini-cart.', 'woocommerce-jetpack' ),
|
48 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
49 |
'id' => 'wcj_general_advanced_recalculate_cart_totals',
|
50 |
'default' => 'no',
|
61 |
),
|
62 |
),
|
63 |
array(
|
64 |
+
'title' => __( 'Datepicker/Weekpicker CSS Loading', 'woocommerce-jetpack' ),
|
65 |
+
'desc_tip' => __( 'Disables datepicker/weekpicker CSS loading.', 'woocommerce-jetpack' ),
|
66 |
'desc' => __( 'Disable', 'woocommerce-jetpack' ),
|
67 |
'id' => 'wcj_general_advanced_disable_datepicker_css',
|
68 |
'default' => 'no',
|
69 |
'type' => 'checkbox',
|
70 |
),
|
71 |
array(
|
72 |
+
'title' => __( 'Datepicker/Weekpicker CSS Source', 'woocommerce-jetpack' ),
|
73 |
'id' => 'wcj_general_advanced_datepicker_css',
|
74 |
'default' => '//ajax.googleapis.com/ajax/libs/jqueryui/1.9.0/themes/base/jquery-ui.css',
|
75 |
'type' => 'text',
|
76 |
'css' => 'width:66%;min-width:300px;',
|
77 |
),
|
78 |
array(
|
79 |
+
'title' => __( 'Datepicker/Weekpicker JavaScript Loading', 'woocommerce-jetpack' ),
|
80 |
+
'desc_tip' => __( 'Disables datepicker/weekpicker JavaScript loading.', 'woocommerce-jetpack' ),
|
81 |
'desc' => __( 'Disable', 'woocommerce-jetpack' ),
|
82 |
'id' => 'wcj_general_advanced_disable_datepicker_js',
|
83 |
'default' => 'no',
|
84 |
'type' => 'checkbox',
|
85 |
),
|
86 |
array(
|
87 |
+
'title' => __( 'Timepicker CSS Loading', 'woocommerce-jetpack' ),
|
88 |
+
'desc_tip' => __( 'Disables timepicker CSS loading.', 'woocommerce-jetpack' ),
|
89 |
'desc' => __( 'Disable', 'woocommerce-jetpack' ),
|
90 |
'id' => 'wcj_general_advanced_disable_timepicker_css',
|
91 |
'default' => 'no',
|
92 |
'type' => 'checkbox',
|
93 |
),
|
94 |
array(
|
95 |
+
'title' => __( 'Timepicker JavaScript Loading', 'woocommerce-jetpack' ),
|
96 |
+
'desc_tip' => __( 'Disables timepicker JavaScript loading.', 'woocommerce-jetpack' ),
|
97 |
'desc' => __( 'Disable', 'woocommerce-jetpack' ),
|
98 |
'id' => 'wcj_general_advanced_disable_timepicker_js',
|
99 |
'default' => 'no',
|
180 |
'type' => 'sectionend',
|
181 |
'id' => 'wcj_general_user_role_changer_options',
|
182 |
),
|
183 |
+
array(
|
184 |
+
'title' => __( 'PHP Options', 'woocommerce-jetpack' ),
|
185 |
+
'type' => 'title',
|
186 |
+
'id' => 'wcj_admin_tools_php_options',
|
187 |
+
),
|
188 |
+
array(
|
189 |
+
'title' => __( 'PHP Memory Limit', 'woocommerce-jetpack' ),
|
190 |
+
'desc' => __( 'megabytes.', 'woocommerce-jetpack' ),
|
191 |
+
'desc_tip' => __( 'Set zero to disable.', 'woocommerce-jetpack' ) . $this->current_php_memory_limit,
|
192 |
+
'id' => 'wcj_admin_tools_php_memory_limit',
|
193 |
+
'default' => 0,
|
194 |
+
'type' => 'number',
|
195 |
+
'custom_attributes' => array( 'min' => 0 ),
|
196 |
+
),
|
197 |
+
array(
|
198 |
+
'title' => __( 'PHP Time Limit', 'woocommerce-jetpack' ),
|
199 |
+
'desc' => __( 'seconds.', 'woocommerce-jetpack' ),
|
200 |
+
'desc_tip' => __( 'Set zero to disable.', 'woocommerce-jetpack' ) . $this->current_php_time_limit,
|
201 |
+
'id' => 'wcj_admin_tools_php_time_limit',
|
202 |
+
'default' => 0,
|
203 |
+
'type' => 'number',
|
204 |
+
'custom_attributes' => array( 'min' => 0 ),
|
205 |
+
),
|
206 |
+
array(
|
207 |
+
'type' => 'sectionend',
|
208 |
+
'id' => 'wcj_admin_tools_php_options',
|
209 |
+
),
|
210 |
);
|
211 |
return $settings;
|
includes/settings/wcj-settings-max-products-per-user.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Max Products per User
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 3.5.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -56,6 +56,17 @@ return array(
|
|
56 |
'type' => 'title',
|
57 |
'id' => 'wcj_max_products_per_user_general_options',
|
58 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
array(
|
60 |
'title' => __( 'Customer Message', 'woocommerce-jetpack' ),
|
61 |
'desc' => wcj_message_replaced_values( array( '%max_qty%', '%product_title%', '%qty_already_bought%', '%remaining_qty%' ) ),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Max Products per User
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 3.5.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
56 |
'type' => 'title',
|
57 |
'id' => 'wcj_max_products_per_user_general_options',
|
58 |
),
|
59 |
+
array(
|
60 |
+
'title' => __( 'Order Status', 'woocommerce-jetpack' ),
|
61 |
+
'desc_tip' => __( 'This sets when (i.e. on which order status) users\' quantities should be updated.', 'woocommerce-jetpack' ) . ' ' .
|
62 |
+
__( 'You can select multiple order status here - quantities will be updated only once, on whichever status is triggered first.', 'woocommerce-jetpack' ) . ' ' .
|
63 |
+
__( 'If no status are selected - "Completed" order status is used.', 'woocommerce-jetpack' ),
|
64 |
+
'id' => 'wcj_max_products_per_user_order_status',
|
65 |
+
'default' => array( 'wc-completed' ),
|
66 |
+
'options' => wcj_get_order_statuses( false ),
|
67 |
+
'type' => 'multiselect',
|
68 |
+
'class' => 'chosen_select',
|
69 |
+
),
|
70 |
array(
|
71 |
'title' => __( 'Customer Message', 'woocommerce-jetpack' ),
|
72 |
'desc' => wcj_message_replaced_values( array( '%max_qty%', '%product_title%', '%qty_already_bought%', '%remaining_qty%' ) ),
|
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
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -15,118 +15,127 @@ $available_gateways = WC()->payment_gateways->payment_gateways();
|
|
15 |
foreach ( $available_gateways as $key => $gateway ) {
|
16 |
$settings = array_merge( $settings, array(
|
17 |
array(
|
18 |
-
'title'
|
19 |
-
'type'
|
20 |
-
'id'
|
21 |
),
|
22 |
array(
|
23 |
-
'title'
|
24 |
-
'desc_tip'
|
25 |
-
'id'
|
26 |
-
'default'
|
27 |
-
'type'
|
|
|
28 |
),
|
29 |
array(
|
30 |
-
'title'
|
31 |
-
'desc_tip'
|
32 |
-
'id'
|
33 |
-
'default'
|
34 |
-
'type'
|
35 |
-
'options'
|
36 |
'fixed' => __( 'Fixed', 'woocommerce-jetpack' ),
|
37 |
'percent' => __( 'Percent', 'woocommerce-jetpack' ),
|
38 |
),
|
39 |
),
|
40 |
array(
|
41 |
-
'title'
|
42 |
-
'desc_tip'
|
43 |
-
'id'
|
44 |
-
'default'
|
45 |
-
'type'
|
46 |
'custom_attributes' => array( 'step' => '0.01' ),
|
47 |
),
|
48 |
array(
|
49 |
-
'title'
|
50 |
-
'desc_tip'
|
51 |
-
'id'
|
52 |
-
'default'
|
53 |
-
'type'
|
54 |
'custom_attributes' => array( 'step' => '0.01', 'min' => '0' ),
|
55 |
),
|
56 |
array(
|
57 |
-
'title'
|
58 |
-
'desc_tip'
|
59 |
-
'id'
|
60 |
-
'default'
|
61 |
-
'type'
|
62 |
'custom_attributes' => array( 'step' => '0.01', 'min' => '0' ),
|
63 |
),
|
64 |
array(
|
65 |
-
'title'
|
66 |
-
'desc'
|
67 |
-
'desc_tip'
|
68 |
-
'id'
|
69 |
-
'default'
|
70 |
-
'type'
|
71 |
),
|
72 |
array(
|
73 |
-
'desc'
|
74 |
-
'desc_tip'
|
75 |
-
'id'
|
76 |
-
'default'
|
77 |
-
'type'
|
78 |
'custom_attributes' => array( 'step' => '1', 'min' => '0' ),
|
79 |
),
|
80 |
array(
|
81 |
-
'title'
|
82 |
-
'desc'
|
83 |
-
'id'
|
84 |
-
'default'
|
85 |
-
'type'
|
86 |
),
|
87 |
array(
|
88 |
-
'desc'
|
89 |
-
'desc_tip'
|
90 |
-
'id'
|
91 |
-
'default'
|
92 |
-
'type'
|
93 |
-
'options'
|
94 |
),
|
95 |
array(
|
96 |
-
'title'
|
97 |
-
'desc'
|
98 |
-
'desc_tip'
|
99 |
-
'id'
|
100 |
-
'default'
|
101 |
-
'type'
|
102 |
),
|
103 |
array(
|
104 |
-
'title'
|
105 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
__( 'Ignored if empty.', 'woocommerce-jetpack' ),
|
107 |
-
'id'
|
108 |
-
'default'
|
109 |
-
'type'
|
110 |
-
'class'
|
111 |
-
'options'
|
112 |
-
'desc'
|
113 |
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
114 |
),
|
115 |
array(
|
116 |
-
'title'
|
117 |
-
'desc_tip'
|
118 |
__( 'Ignored if empty.', 'woocommerce-jetpack' ),
|
119 |
-
'id'
|
120 |
-
'default'
|
121 |
-
'type'
|
122 |
-
'class'
|
123 |
-
'options'
|
124 |
-
'desc'
|
125 |
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
126 |
),
|
127 |
array(
|
128 |
-
'type'
|
129 |
-
'id'
|
130 |
),
|
131 |
) );
|
132 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Gateways Fees and Discounts
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
15 |
foreach ( $available_gateways as $key => $gateway ) {
|
16 |
$settings = array_merge( $settings, array(
|
17 |
array(
|
18 |
+
'title' => $gateway->title . ( $gateway->is_available() ? ' ✓' : '' ),
|
19 |
+
'type' => 'title',
|
20 |
+
'id' => "wcj_gateways_fees_options[{$key}]",
|
21 |
),
|
22 |
array(
|
23 |
+
'title' => __( 'Fee (or Discount) Title', 'woocommerce-jetpack' ),
|
24 |
+
'desc_tip' => __( 'Fee (or discount) title to show to customer.', 'woocommerce-jetpack' ) . ' ' . __( 'Leave blank to disable.', 'woocommerce-jetpack' ),
|
25 |
+
'id' => "wcj_gateways_fees_text[{$key}]",
|
26 |
+
'default' => '',
|
27 |
+
'type' => 'text',
|
28 |
+
'css' => 'width:100%;',
|
29 |
),
|
30 |
array(
|
31 |
+
'title' => __( 'Fee (or Discount) Type', 'woocommerce-jetpack' ),
|
32 |
+
'desc_tip' => __( 'Percent or fixed value.', 'woocommerce-jetpack' ),
|
33 |
+
'id' => "wcj_gateways_fees_type[{$key}]",
|
34 |
+
'default' => 'fixed',
|
35 |
+
'type' => 'select',
|
36 |
+
'options' => array(
|
37 |
'fixed' => __( 'Fixed', 'woocommerce-jetpack' ),
|
38 |
'percent' => __( 'Percent', 'woocommerce-jetpack' ),
|
39 |
),
|
40 |
),
|
41 |
array(
|
42 |
+
'title' => __( 'Fee (or Discount) Value', 'woocommerce-jetpack' ),
|
43 |
+
'desc_tip' => __( 'The value. For discount enter a negative number.', 'woocommerce-jetpack' ),
|
44 |
+
'id' => "wcj_gateways_fees_value[{$key}]",
|
45 |
+
'default' => 0,
|
46 |
+
'type' => 'number',
|
47 |
'custom_attributes' => array( 'step' => '0.01' ),
|
48 |
),
|
49 |
array(
|
50 |
+
'title' => __( 'Minimum Cart Amount', 'woocommerce-jetpack' ),
|
51 |
+
'desc_tip' => __( 'Minimum cart amount for adding the fee (or discount).', 'woocommerce-jetpack' ) . ' ' . __( 'Set 0 to disable.', 'woocommerce-jetpack' ),
|
52 |
+
'id' => "wcj_gateways_fees_min_cart_amount[{$key}]",
|
53 |
+
'default' => 0,
|
54 |
+
'type' => 'number',
|
55 |
'custom_attributes' => array( 'step' => '0.01', 'min' => '0' ),
|
56 |
),
|
57 |
array(
|
58 |
+
'title' => __( 'Maximum Cart Amount', 'woocommerce-jetpack' ),
|
59 |
+
'desc_tip' => __( 'Maximum cart amount for adding the fee (or discount).', 'woocommerce-jetpack' ) . ' ' . __( 'Set 0 to disable.', 'woocommerce-jetpack' ),
|
60 |
+
'id' => "wcj_gateways_fees_max_cart_amount[{$key}]",
|
61 |
+
'default' => 0,
|
62 |
+
'type' => 'number',
|
63 |
'custom_attributes' => array( 'step' => '0.01', 'min' => '0' ),
|
64 |
),
|
65 |
array(
|
66 |
+
'title' => __( 'Rounding', 'woocommerce-jetpack' ),
|
67 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
68 |
+
'desc_tip' => __( 'Round the fee (or discount) value before adding to the cart.', 'woocommerce-jetpack' ),
|
69 |
+
'id' => "wcj_gateways_fees_round[{$key}]",
|
70 |
+
'default' => 'no',
|
71 |
+
'type' => 'checkbox',
|
72 |
),
|
73 |
array(
|
74 |
+
'desc' => __( 'Number of decimals', 'woocommerce-jetpack' ),
|
75 |
+
'desc_tip' => __( 'If rounding is enabled, set precision (i.e. number of decimals) here.', 'woocommerce-jetpack' ),
|
76 |
+
'id' => "wcj_gateways_fees_round_precision[{$key}]",
|
77 |
+
'default' => get_option( 'woocommerce_price_num_decimals', 2 ),
|
78 |
+
'type' => 'number',
|
79 |
'custom_attributes' => array( 'step' => '1', 'min' => '0' ),
|
80 |
),
|
81 |
array(
|
82 |
+
'title' => __( 'Taxable', 'woocommerce-jetpack' ),
|
83 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
84 |
+
'id' => "wcj_gateways_fees_is_taxable[{$key}]",
|
85 |
+
'default' => 'no',
|
86 |
+
'type' => 'checkbox',
|
87 |
),
|
88 |
array(
|
89 |
+
'desc' => __( 'Tax class', 'woocommerce-jetpack' ),
|
90 |
+
'desc_tip' => __( 'If taxing is enabled, set tax class here.', 'woocommerce-jetpack' ),
|
91 |
+
'id' => "wcj_gateways_fees_tax_class_id[{$key}]",
|
92 |
+
'default' => '',
|
93 |
+
'type' => 'select',
|
94 |
+
'options' => array_merge( array( __( 'Standard Rate', 'woocommerce-jetpack' ) ), WC_Tax::get_tax_classes() ),
|
95 |
),
|
96 |
array(
|
97 |
+
'title' => __( 'Exclude Shipping when Calculating Total Cart Amount', 'woocommerce-jetpack' ),
|
98 |
+
'desc' => __( 'Exclude', 'woocommerce-jetpack' ),
|
99 |
+
'desc_tip' => __( 'This affects "Percent" type fees and "Minimum/Maximum Cart Amount" options.', 'woocommerce-jetpack' ),
|
100 |
+
'id' => "wcj_gateways_fees_exclude_shipping[{$key}]",
|
101 |
+
'default' => 'no',
|
102 |
+
'type' => 'checkbox',
|
103 |
),
|
104 |
array(
|
105 |
+
'title' => __( 'Include Taxes', 'woocommerce-jetpack' ),
|
106 |
+
'desc' => __( 'Include taxes when calculating Total Cart Amount', 'woocommerce-jetpack' ),
|
107 |
+
'desc_tip' => __( 'This affects "Percent" type fees and "Minimum/Maximum Cart Amount" options.', 'woocommerce-jetpack' ),
|
108 |
+
'id' => "wcj_gateways_fees_include_taxes[{$key}]",
|
109 |
+
'default' => 'no',
|
110 |
+
'type' => 'checkbox',
|
111 |
+
),
|
112 |
+
array(
|
113 |
+
'title' => __( 'Require Products', 'woocommerce-jetpack' ),
|
114 |
+
'desc_tip' => __( 'Require at least one of selected products to be in cart for fee to be applied.', 'woocommerce-jetpack' ) . ' ' .
|
115 |
__( 'Ignored if empty.', 'woocommerce-jetpack' ),
|
116 |
+
'id' => "wcj_gateways_fees_include_products[{$key}]",
|
117 |
+
'default' => '',
|
118 |
+
'type' => 'multiselect',
|
119 |
+
'class' => 'chosen_select',
|
120 |
+
'options' => $products,
|
121 |
+
'desc' => apply_filters( 'booster_message', '', 'desc' ),
|
122 |
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
123 |
),
|
124 |
array(
|
125 |
+
'title' => __( 'Exclude Products', 'woocommerce-jetpack' ),
|
126 |
+
'desc_tip' => __( 'Do not apply fee, if at least one of selected products is in cart.', 'woocommerce-jetpack' ) . ' ' .
|
127 |
__( 'Ignored if empty.', 'woocommerce-jetpack' ),
|
128 |
+
'id' => "wcj_gateways_fees_exclude_products[{$key}]",
|
129 |
+
'default' => '',
|
130 |
+
'type' => 'multiselect',
|
131 |
+
'class' => 'chosen_select',
|
132 |
+
'options' => $products,
|
133 |
+
'desc' => apply_filters( 'booster_message', '', 'desc' ),
|
134 |
'custom_attributes' => apply_filters( 'booster_message', '', 'disabled' ),
|
135 |
),
|
136 |
array(
|
137 |
+
'type' => 'sectionend',
|
138 |
+
'id' => "wcj_gateways_fees_options[{$key}]",
|
139 |
),
|
140 |
) );
|
141 |
}
|
includes/settings/wcj-settings-payment-gateways-per-category.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Gateways per Product or Category
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -11,11 +11,29 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
|
11 |
|
12 |
$product_cats = wcj_get_terms( 'product_cat' );
|
13 |
$is_multiselect_products = ( 'yes' === get_option( 'wcj_list_for_products', 'yes' ) );
|
14 |
-
$
|
|
|
15 |
$available_gateways = WC()->payment_gateways->payment_gateways();
|
16 |
$settings = array(
|
17 |
array(
|
18 |
-
'title' => __( 'Options', 'woocommerce-jetpack' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
'type' => 'title',
|
20 |
'id' => 'wcj_gateways_per_category_options',
|
21 |
),
|
@@ -51,7 +69,7 @@ foreach ( $available_gateways as $gateway_id => $gateway ) {
|
|
51 |
wcj_get_settings_as_multiselect_or_text(
|
52 |
array(
|
53 |
'title' => '',
|
54 |
-
'desc' => __( 'Products - Include', 'woocommerce-jetpack' ) . '
|
55 |
'desc_tip' => __( 'Show gateway only if there is selected products in cart. Leave blank to disable the option.', 'woocommerce-jetpack' ),
|
56 |
'id' => 'wcj_gateways_per_products_' . $gateway_id,
|
57 |
'default' => '',
|
@@ -64,7 +82,7 @@ foreach ( $available_gateways as $gateway_id => $gateway ) {
|
|
64 |
wcj_get_settings_as_multiselect_or_text(
|
65 |
array(
|
66 |
'title' => '',
|
67 |
-
'desc' => __( 'Products - Exclude', 'woocommerce-jetpack' ) . '
|
68 |
'desc_tip' => __( 'Hide gateway if there is selected products in cart. Leave blank to disable the option.', 'woocommerce-jetpack' ),
|
69 |
'id' => 'wcj_gateways_per_products_excl_' . $gateway_id,
|
70 |
'default' => '',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Gateways per Product or Category
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
11 |
|
12 |
$product_cats = wcj_get_terms( 'product_cat' );
|
13 |
$is_multiselect_products = ( 'yes' === get_option( 'wcj_list_for_products', 'yes' ) );
|
14 |
+
$do_use_variations = ( 'yes' === get_option( 'wcj_gateways_per_category_use_variations', 'no' ) );
|
15 |
+
$products = ( $is_multiselect_products ? wcj_get_products( array(), 'any', 512, $do_use_variations, $do_use_variations ) : false );
|
16 |
$available_gateways = WC()->payment_gateways->payment_gateways();
|
17 |
$settings = array(
|
18 |
array(
|
19 |
+
'title' => __( 'General Options', 'woocommerce-jetpack' ),
|
20 |
+
'type' => 'title',
|
21 |
+
'id' => 'wcj_gateways_per_category_general_options',
|
22 |
+
),
|
23 |
+
array(
|
24 |
+
'title' => __( 'Use Variations', 'woocommerce-jetpack' ),
|
25 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
26 |
+
'desc_tip' => __( 'Will use variations instead of main product for variable type products.', 'woocommerce-jetpack' ),
|
27 |
+
'type' => 'checkbox',
|
28 |
+
'id' => 'wcj_gateways_per_category_use_variations',
|
29 |
+
'default' => 'no',
|
30 |
+
),
|
31 |
+
array(
|
32 |
+
'type' => 'sectionend',
|
33 |
+
'id' => 'wcj_gateways_per_category_general_options',
|
34 |
+
),
|
35 |
+
array(
|
36 |
+
'title' => __( 'Gateways', 'woocommerce-jetpack' ),
|
37 |
'type' => 'title',
|
38 |
'id' => 'wcj_gateways_per_category_options',
|
39 |
),
|
69 |
wcj_get_settings_as_multiselect_or_text(
|
70 |
array(
|
71 |
'title' => '',
|
72 |
+
'desc' => __( 'Products - Include', 'woocommerce-jetpack' ) . '<br>' . apply_filters( 'booster_message', '', 'desc' ),
|
73 |
'desc_tip' => __( 'Show gateway only if there is selected products in cart. Leave blank to disable the option.', 'woocommerce-jetpack' ),
|
74 |
'id' => 'wcj_gateways_per_products_' . $gateway_id,
|
75 |
'default' => '',
|
82 |
wcj_get_settings_as_multiselect_or_text(
|
83 |
array(
|
84 |
'title' => '',
|
85 |
+
'desc' => __( 'Products - Exclude', 'woocommerce-jetpack' ) . '<br>' . apply_filters( 'booster_message', '', 'desc' ),
|
86 |
'desc_tip' => __( 'Hide gateway if there is selected products in cart. Leave blank to disable the option.', 'woocommerce-jetpack' ),
|
87 |
'id' => 'wcj_gateways_per_products_excl_' . $gateway_id,
|
88 |
'default' => '',
|
includes/settings/wcj-settings-product-open-pricing.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Open Pricing
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo set default for "wcj_product_open_price_enable_js_validation" to "yes"
|
@@ -76,6 +76,7 @@ return array(
|
|
76 |
),
|
77 |
array(
|
78 |
'title' => __( 'Message on Price too Small', 'woocommerce-jetpack' ),
|
|
|
79 |
'id' => 'wcj_product_open_price_messages_to_small',
|
80 |
'default' => __( 'Entered price is too small!', 'woocommerce-jetpack' ),
|
81 |
'type' => 'text',
|
@@ -83,6 +84,7 @@ return array(
|
|
83 |
),
|
84 |
array(
|
85 |
'title' => __( 'Message on Price too Big', 'woocommerce-jetpack' ),
|
|
|
86 |
'id' => 'wcj_product_open_price_messages_to_big',
|
87 |
'default' => __( 'Entered price is too big!', 'woocommerce-jetpack' ),
|
88 |
'type' => 'text',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Open Pricing
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo set default for "wcj_product_open_price_enable_js_validation" to "yes"
|
76 |
),
|
77 |
array(
|
78 |
'title' => __( 'Message on Price too Small', 'woocommerce-jetpack' ),
|
79 |
+
'desc' => wcj_message_replaced_values( array( '%price%', '%min_price%' ) ),
|
80 |
'id' => 'wcj_product_open_price_messages_to_small',
|
81 |
'default' => __( 'Entered price is too small!', 'woocommerce-jetpack' ),
|
82 |
'type' => 'text',
|
84 |
),
|
85 |
array(
|
86 |
'title' => __( 'Message on Price too Big', 'woocommerce-jetpack' ),
|
87 |
+
'desc' => wcj_message_replaced_values( array( '%price%', '%max_price%' ) ),
|
88 |
'id' => 'wcj_product_open_price_messages_to_big',
|
89 |
'default' => __( 'Entered price is too big!', 'woocommerce-jetpack' ),
|
90 |
'type' => 'text',
|
includes/settings/wcj-settings-product-price-by-formula.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Price by Formula
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -79,6 +79,14 @@ $settings = array_merge( $settings, array(
|
|
79 |
'default' => 0,
|
80 |
'custom_attributes' => array( 'min' => 0 ),
|
81 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
array(
|
83 |
'type' => 'sectionend',
|
84 |
'id' => 'wcj_product_price_by_formula_general_options',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Price by Formula
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
79 |
'default' => 0,
|
80 |
'custom_attributes' => array( 'min' => 0 ),
|
81 |
),
|
82 |
+
array(
|
83 |
+
'title' => __( 'Disable Admin Scope', 'woocommerce-jetpack' ),
|
84 |
+
'desc' => __( 'Disable module on Admin scope.', 'woocommerce-jetpack' ),
|
85 |
+
'desc_tip' => __( "Disable if you want to use ‘Product Price by Formula’ module only on Frontend.", 'woocommerce-jetpack' ) . '<br />' . __( 'For example if you use ‘Cost of Goods’ module the profit will be correctly calculated if you leave the box unticked', 'woocommerce-jetpack' ),
|
86 |
+
'type' => 'checkbox',
|
87 |
+
'id' => 'wcj_product_price_by_formula_admin_scope',
|
88 |
+
'default' => 'yes',
|
89 |
+
),
|
90 |
array(
|
91 |
'type' => 'sectionend',
|
92 |
'id' => 'wcj_product_price_by_formula_general_options',
|
includes/settings/wcj-settings-related-products.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Related Products
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -165,6 +165,17 @@ $settings = array_merge( $settings, array(
|
|
165 |
'standard' => __( 'Standard', 'woocommerce-jetpack' ),
|
166 |
),
|
167 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
array(
|
169 |
'type' => 'sectionend',
|
170 |
'id' => 'wcj_product_info_related_products_relate_options',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Related Products
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
165 |
'standard' => __( 'Standard', 'woocommerce-jetpack' ),
|
166 |
),
|
167 |
),
|
168 |
+
array(
|
169 |
+
'desc' => __( 'Default metabox value', 'woocommerce-jetpack' ),
|
170 |
+
'desc_tip' => __( 'If set to "Yes" and no products are selected it will hide related products', 'woocommerce-jetpack' ),
|
171 |
+
'id' => 'wcj_product_info_related_products_per_product_cmb_default',
|
172 |
+
'default' => 'no',
|
173 |
+
'type' => 'select',
|
174 |
+
'options' => array(
|
175 |
+
'yes' => __( 'Yes', 'woocommerce-jetpack' ),
|
176 |
+
'no' => __( 'No', 'woocommerce-jetpack' ),
|
177 |
+
),
|
178 |
+
),
|
179 |
array(
|
180 |
'type' => 'sectionend',
|
181 |
'id' => 'wcj_product_info_related_products_relate_options',
|
includes/settings/wcj-settings-tax-display.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Tax Display
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 3.2.4
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -119,8 +119,21 @@ if ( '' != ( $display_taxes_by_user_role_roles = get_option( 'wcj_product_listin
|
|
119 |
foreach ( $display_taxes_by_user_role_roles as $display_taxes_by_user_role_role ) {
|
120 |
$settings = array_merge( $settings, array(
|
121 |
array(
|
122 |
-
'title' => sprintf( __( 'Role: %s', 'woocommerce-jetpack' ), $display_taxes_by_user_role_role ),
|
123 |
'id' => 'wcj_product_listings_display_taxes_by_user_role_' . $display_taxes_by_user_role_role,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
'default' => 'no_changes',
|
125 |
'type' => 'select',
|
126 |
'options' => array(
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Tax Display
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 3.2.4
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
119 |
foreach ( $display_taxes_by_user_role_roles as $display_taxes_by_user_role_role ) {
|
120 |
$settings = array_merge( $settings, array(
|
121 |
array(
|
122 |
+
'title' => sprintf( __( 'Role: %s - shop', 'woocommerce-jetpack' ), $display_taxes_by_user_role_role ),
|
123 |
'id' => 'wcj_product_listings_display_taxes_by_user_role_' . $display_taxes_by_user_role_role,
|
124 |
+
'desc_tip' => __( 'Setup how taxes will be applied during in the shop.', 'woocommerce-jetpack' ),
|
125 |
+
'default' => 'no_changes',
|
126 |
+
'type' => 'select',
|
127 |
+
'options' => array(
|
128 |
+
'no_changes' => __( 'Default TAX display (no changes)', 'woocommerce-jetpack' ),
|
129 |
+
'incl' => __( 'Including tax', 'woocommerce-jetpack' ),
|
130 |
+
'excl' => __( 'Excluding tax', 'woocommerce-jetpack' ),
|
131 |
+
),
|
132 |
+
),
|
133 |
+
array(
|
134 |
+
'title' => sprintf( __( 'Role: %s - cart', 'woocommerce-jetpack' ), $display_taxes_by_user_role_role ),
|
135 |
+
'id' => 'wcj_product_listings_display_taxes_on_cart_by_user_role_' . $display_taxes_by_user_role_role,
|
136 |
+
'desc_tip' => __( 'Setup how taxes will be applied during cart and checkout.', 'woocommerce-jetpack' ),
|
137 |
'default' => 'no_changes',
|
138 |
'type' => 'select',
|
139 |
'options' => array(
|
includes/settings/wcj-settings-wholesale-price.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Wholesale Price
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -121,6 +121,13 @@ $settings = array(
|
|
121 |
'default' => 'no',
|
122 |
'type' => 'checkbox',
|
123 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
array(
|
125 |
'type' => 'sectionend',
|
126 |
'id' => 'wcj_wholesale_price_general_options',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Wholesale Price
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
121 |
'default' => 'no',
|
122 |
'type' => 'checkbox',
|
123 |
),
|
124 |
+
array(
|
125 |
+
'title' => __( 'Advanced: Price Filters Priority', 'woocommerce-jetpack' ),
|
126 |
+
'desc_tip' => __( 'Priority for all module\'s price filters. Set to zero to use default priority.' ),
|
127 |
+
'id' => 'wcj_wholesale_price_advanced_price_hooks_priority',
|
128 |
+
'default' => 0,
|
129 |
+
'type' => 'number',
|
130 |
+
),
|
131 |
array(
|
132 |
'type' => 'sectionend',
|
133 |
'id' => 'wcj_wholesale_price_general_options',
|
includes/shortcodes/class-wcj-shortcodes-general.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - General
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -15,7 +15,7 @@ class WCJ_General_Shortcodes extends WCJ_Shortcodes {
|
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
-
* @version
|
19 |
*/
|
20 |
function __construct() {
|
21 |
|
@@ -44,6 +44,7 @@ class WCJ_General_Shortcodes extends WCJ_Shortcodes {
|
|
44 |
'wcj_get_left_to_free_shipping',
|
45 |
'wcj_get_option',
|
46 |
'wcj_image',
|
|
|
47 |
'wcj_product_category_count',
|
48 |
'wcj_request_value',
|
49 |
'wcj_selector',
|
@@ -108,6 +109,21 @@ class WCJ_General_Shortcodes extends WCJ_Shortcodes {
|
|
108 |
|
109 |
}
|
110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
/**
|
112 |
* wcj_get_option.
|
113 |
*
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - General
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
+
* @version 4.1.0
|
19 |
*/
|
20 |
function __construct() {
|
21 |
|
44 |
'wcj_get_left_to_free_shipping',
|
45 |
'wcj_get_option',
|
46 |
'wcj_image',
|
47 |
+
'wcj_post_meta_sum',
|
48 |
'wcj_product_category_count',
|
49 |
'wcj_request_value',
|
50 |
'wcj_selector',
|
109 |
|
110 |
}
|
111 |
|
112 |
+
/**
|
113 |
+
* wcj_post_meta_sum.
|
114 |
+
*
|
115 |
+
* @version 4.1.0
|
116 |
+
* @since 4.1.0
|
117 |
+
*/
|
118 |
+
function wcj_post_meta_sum( $atts ) {
|
119 |
+
if ( '' === $atts['key'] ) {
|
120 |
+
return '';
|
121 |
+
}
|
122 |
+
global $wpdb;
|
123 |
+
$sum = $wpdb->get_var( $wpdb->prepare( "SELECT sum(meta_value) FROM $wpdb->postmeta WHERE meta_key = %s", $atts['key'] ) );
|
124 |
+
return ( ! empty( $atts['offset'] ) ? $sum + $atts['offset'] : $sum );
|
125 |
+
}
|
126 |
+
|
127 |
/**
|
128 |
* wcj_get_option.
|
129 |
*
|
includes/shortcodes/class-wcj-shortcodes-invoices.php
CHANGED
@@ -44,7 +44,7 @@ class WCJ_Invoices_Shortcodes extends WCJ_Shortcodes {
|
|
44 |
);
|
45 |
|
46 |
parent::__construct();
|
47 |
-
|
48 |
|
49 |
/**
|
50 |
* init_atts.
|
@@ -58,18 +58,13 @@ class WCJ_Invoices_Shortcodes extends WCJ_Shortcodes {
|
|
58 |
}
|
59 |
if ( 'shop_order' !== get_post_type( $atts['order_id'] ) ) return false;
|
60 |
|
61 |
-
// Class properties
|
62 |
-
/*if ( ! in_array( $atts['invoice_type'], wcj_enabled_invoice_types_ids() ) ) return false;
|
63 |
-
$this->the_invoice = wc_get_invoice( $atts['order_id'], $atts['invoice_type'] );
|
64 |
-
if ( ! $this->the_invoice ) return false;*/
|
65 |
-
|
66 |
return $atts;
|
67 |
}
|
68 |
|
69 |
/**
|
70 |
* wcj_invoice_date.
|
71 |
*/
|
72 |
-
|
73 |
return wcj_get_invoice_date( $atts['order_id'], $atts['invoice_type'], $atts['days'], $atts['date_format'] );
|
74 |
}
|
75 |
|
44 |
);
|
45 |
|
46 |
parent::__construct();
|
47 |
+
}
|
48 |
|
49 |
/**
|
50 |
* init_atts.
|
58 |
}
|
59 |
if ( 'shop_order' !== get_post_type( $atts['order_id'] ) ) return false;
|
60 |
|
|
|
|
|
|
|
|
|
|
|
61 |
return $atts;
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
* wcj_invoice_date.
|
66 |
*/
|
67 |
+
function wcj_invoice_date( $atts ) {
|
68 |
return wcj_get_invoice_date( $atts['order_id'], $atts['invoice_type'], $atts['days'], $atts['date_format'] );
|
69 |
}
|
70 |
|
includes/shortcodes/class-wcj-shortcodes-orders.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - Orders
|
4 |
*
|
5 |
-
* @version
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -97,7 +97,7 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
97 |
/**
|
98 |
* add_extra_atts.
|
99 |
*
|
100 |
-
* @version
|
101 |
*/
|
102 |
function add_extra_atts( $atts ) {
|
103 |
$modified_atts = array_merge( array(
|
@@ -110,8 +110,8 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
110 |
'field_id' => '',
|
111 |
'name' => '',
|
112 |
'round_by_line' => 'no',
|
113 |
-
'whole' =>
|
114 |
-
'decimal' =>
|
115 |
'precision' => get_option( 'woocommerce_price_num_decimals', 2 ),
|
116 |
'lang' => 'EN',
|
117 |
'unique_only' => 'no',
|
@@ -1276,39 +1276,42 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
1276 |
/**
|
1277 |
* wcj_order_total_in_words.
|
1278 |
*
|
1279 |
-
* @version
|
1280 |
*/
|
1281 |
function wcj_order_total_in_words( $atts ) {
|
1282 |
|
1283 |
-
$order_total
|
1284 |
-
$order_total_whole
|
1285 |
-
$order_total_decimal
|
1286 |
|
1287 |
-
$the_number_in_words
|
1288 |
$the_number_in_words .= ( 0 != $order_total_decimal ) ? ', %s %s.' : '.';
|
1289 |
|
1290 |
-
$
|
1291 |
-
|
|
|
|
|
|
|
1292 |
|
1293 |
switch ( $atts['lang'] ) {
|
1294 |
case 'LT':
|
1295 |
return sprintf( $the_number_in_words,
|
1296 |
$this->mb_ucfirst( convert_number_to_words_lt( $order_total_whole ) ),
|
1297 |
-
$
|
1298 |
$this->mb_ucfirst( convert_number_to_words_lt( $order_total_decimal ) ),
|
1299 |
-
$
|
1300 |
case 'BG':
|
1301 |
return sprintf( $the_number_in_words,
|
1302 |
$this->mb_ucfirst( trim( convert_number_to_words_bg( $order_total_whole ) ) ),
|
1303 |
-
$
|
1304 |
$this->mb_ucfirst( trim( convert_number_to_words_bg( $order_total_decimal ) ) ),
|
1305 |
-
$
|
1306 |
default: // 'EN'
|
1307 |
return sprintf( $the_number_in_words,
|
1308 |
ucfirst( convert_number_to_words( $order_total_whole ) ),
|
1309 |
-
$
|
1310 |
ucfirst( convert_number_to_words( $order_total_decimal ) ),
|
1311 |
-
$
|
1312 |
}
|
1313 |
}
|
1314 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - Orders
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
97 |
/**
|
98 |
* add_extra_atts.
|
99 |
*
|
100 |
+
* @version 4.1.0
|
101 |
*/
|
102 |
function add_extra_atts( $atts ) {
|
103 |
$modified_atts = array_merge( array(
|
110 |
'field_id' => '',
|
111 |
'name' => '',
|
112 |
'round_by_line' => 'no',
|
113 |
+
'whole' => '',
|
114 |
+
'decimal' => '¢',
|
115 |
'precision' => get_option( 'woocommerce_price_num_decimals', 2 ),
|
116 |
'lang' => 'EN',
|
117 |
'unique_only' => 'no',
|
1276 |
/**
|
1277 |
* wcj_order_total_in_words.
|
1278 |
*
|
1279 |
+
* @version 4.1.0
|
1280 |
*/
|
1281 |
function wcj_order_total_in_words( $atts ) {
|
1282 |
|
1283 |
+
$order_total = ( true === $atts['excl_tax'] ) ? $this->the_order->get_total() - $this->the_order->get_total_tax() : $this->the_order->get_total();
|
1284 |
+
$order_total_whole = intval( $order_total );
|
1285 |
+
$order_total_decimal = round( ( $order_total - $order_total_whole ) * 100 );
|
1286 |
|
1287 |
+
$the_number_in_words = '%s %s';
|
1288 |
$the_number_in_words .= ( 0 != $order_total_decimal ) ? ', %s %s.' : '.';
|
1289 |
|
1290 |
+
$whole = ( '' === $atts['whole'] ?
|
1291 |
+
( isset( $atts['use_currency_symbol'] ) && 'yes' === $atts['use_currency_symbol'] ?
|
1292 |
+
get_woocommerce_currency_symbol( $this->the_order->get_currency() ) : $this->the_order->get_currency()
|
1293 |
+
) : $atts['whole'] );
|
1294 |
+
$decimal = $atts['decimal'];
|
1295 |
|
1296 |
switch ( $atts['lang'] ) {
|
1297 |
case 'LT':
|
1298 |
return sprintf( $the_number_in_words,
|
1299 |
$this->mb_ucfirst( convert_number_to_words_lt( $order_total_whole ) ),
|
1300 |
+
$whole,
|
1301 |
$this->mb_ucfirst( convert_number_to_words_lt( $order_total_decimal ) ),
|
1302 |
+
$decimal );
|
1303 |
case 'BG':
|
1304 |
return sprintf( $the_number_in_words,
|
1305 |
$this->mb_ucfirst( trim( convert_number_to_words_bg( $order_total_whole ) ) ),
|
1306 |
+
$whole,
|
1307 |
$this->mb_ucfirst( trim( convert_number_to_words_bg( $order_total_decimal ) ) ),
|
1308 |
+
$decimal );
|
1309 |
default: // 'EN'
|
1310 |
return sprintf( $the_number_in_words,
|
1311 |
ucfirst( convert_number_to_words( $order_total_whole ) ),
|
1312 |
+
$whole,
|
1313 |
ucfirst( convert_number_to_words( $order_total_decimal ) ),
|
1314 |
+
$decimal );
|
1315 |
}
|
1316 |
}
|
1317 |
}
|
includes/shortcodes/class-wcj-shortcodes-products-crowdfunding.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - Products Crowdfunding
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.5.4
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -84,29 +84,21 @@ class WCJ_Products_Crowdfunding_Shortcodes extends WCJ_Shortcodes {
|
|
84 |
/**
|
85 |
* get_product_orders_data.
|
86 |
*
|
87 |
-
* @version
|
88 |
* @since 2.2.6
|
89 |
*/
|
90 |
function get_product_orders_data( $return_value = 'total_orders', $atts ) {
|
91 |
-
$product_ids
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
$saved_wc_loop = $woocommerce_loop;
|
99 |
-
$saved_post = $post;
|
100 |
-
$total_orders = 0;
|
101 |
-
$total_qty = 0;
|
102 |
-
$total_sum = 0;
|
103 |
-
$offset = 0;
|
104 |
-
$block_size = 256;
|
105 |
-
$date_query_after = get_post_meta( wcj_get_product_id_or_variation_parent_id( $this->the_product ), '_' . 'wcj_crowdfunding_startdate', true );
|
106 |
while( true ) {
|
107 |
$args = array(
|
108 |
'post_type' => 'shop_order',
|
109 |
-
'post_status' => 'wc-completed',
|
110 |
'posts_per_page' => $block_size,
|
111 |
'offset' => $offset,
|
112 |
'orderby' => 'date',
|
@@ -124,8 +116,8 @@ class WCJ_Products_Crowdfunding_Shortcodes extends WCJ_Shortcodes {
|
|
124 |
break;
|
125 |
}
|
126 |
foreach ( $loop->posts as $order_id ) {
|
127 |
-
$the_order
|
128 |
-
$the_items
|
129 |
$item_found = false;
|
130 |
foreach( $the_items as $item ) {
|
131 |
if ( in_array( $item['product_id'], $product_ids ) ) {
|
@@ -140,10 +132,6 @@ class WCJ_Products_Crowdfunding_Shortcodes extends WCJ_Shortcodes {
|
|
140 |
}
|
141 |
$offset += $block_size;
|
142 |
}
|
143 |
-
// wp_reset_postdata();
|
144 |
-
$woocommerce_loop = $saved_wc_loop;
|
145 |
-
$post = $saved_post;
|
146 |
-
setup_postdata( $post );
|
147 |
switch ( $return_value ) {
|
148 |
case 'orders_sum':
|
149 |
$return = $total_sum;
|
@@ -223,22 +211,19 @@ class WCJ_Products_Crowdfunding_Shortcodes extends WCJ_Shortcodes {
|
|
223 |
$days_remaining = floor( $seconds_remaining / ( 24 * 60 * 60 ) );
|
224 |
$hours_remaining = floor( $seconds_remaining / ( 60 * 60 ) );
|
225 |
$minutes_remaining = floor( $seconds_remaining / 60 );
|
226 |
-
if ( $seconds_remaining <= 0 )
|
227 |
-
|
228 |
-
|
229 |
-
if ( $
|
230 |
-
|
231 |
-
/* if ( ( $seconds_remaining = strtotime( $this->wcj_product_crowdfunding_deadline( $atts ) ) - time() ) <= 0 ) return '';
|
232 |
-
if ( ( $days_remaining = floor( $seconds_remaining / ( 24 * 60 * 60 ) ) ) > 0 ) {
|
233 |
-
return ( 1 === $days_remaining ) ? $days_remaining . ' day left' : $days_remaining . ' days left';
|
234 |
}
|
235 |
-
if (
|
236 |
-
return ( 1
|
237 |
}
|
238 |
-
if (
|
239 |
-
return ( 1
|
240 |
}
|
241 |
-
return
|
242 |
}
|
243 |
|
244 |
/**
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - Products Crowdfunding
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @since 2.5.4
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
84 |
/**
|
85 |
* get_product_orders_data.
|
86 |
*
|
87 |
+
* @version 4.1.0
|
88 |
* @since 2.2.6
|
89 |
*/
|
90 |
function get_product_orders_data( $return_value = 'total_orders', $atts ) {
|
91 |
+
$product_ids = ( $this->the_product->is_type( 'grouped' ) ? $this->the_product->get_children() : array( wcj_get_product_id_or_variation_parent_id( $this->the_product ) ) );
|
92 |
+
$total_orders = 0;
|
93 |
+
$total_qty = 0;
|
94 |
+
$total_sum = 0;
|
95 |
+
$offset = 0;
|
96 |
+
$block_size = 512;
|
97 |
+
$date_query_after = ( isset( $atts['start_date'] ) ? $atts['start_date'] : get_post_meta( wcj_get_product_id_or_variation_parent_id( $this->the_product ), '_' . 'wcj_crowdfunding_startdate', true ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
while( true ) {
|
99 |
$args = array(
|
100 |
'post_type' => 'shop_order',
|
101 |
+
'post_status' => ( isset( $atts['order_status'] ) ? array_map( 'trim', explode( ',', $atts['order_status'] ) ) : 'wc-completed' ),
|
102 |
'posts_per_page' => $block_size,
|
103 |
'offset' => $offset,
|
104 |
'orderby' => 'date',
|
116 |
break;
|
117 |
}
|
118 |
foreach ( $loop->posts as $order_id ) {
|
119 |
+
$the_order = wc_get_order( $order_id );
|
120 |
+
$the_items = $the_order->get_items();
|
121 |
$item_found = false;
|
122 |
foreach( $the_items as $item ) {
|
123 |
if ( in_array( $item['product_id'], $product_ids ) ) {
|
132 |
}
|
133 |
$offset += $block_size;
|
134 |
}
|
|
|
|
|
|
|
|
|
135 |
switch ( $return_value ) {
|
136 |
case 'orders_sum':
|
137 |
$return = $total_sum;
|
211 |
$days_remaining = floor( $seconds_remaining / ( 24 * 60 * 60 ) );
|
212 |
$hours_remaining = floor( $seconds_remaining / ( 60 * 60 ) );
|
213 |
$minutes_remaining = floor( $seconds_remaining / 60 );
|
214 |
+
if ( $seconds_remaining <= 0 ) {
|
215 |
+
return '';
|
216 |
+
}
|
217 |
+
if ( $days_remaining > 0 ) {
|
218 |
+
return ( 1 == $days_remaining ) ? $days_remaining . ' day left' : $days_remaining . ' days left';
|
|
|
|
|
|
|
219 |
}
|
220 |
+
if ( $hours_remaining > 0 ) {
|
221 |
+
return ( 1 == $hours_remaining ) ? $hours_remaining . ' hour left' : $hours_remaining . ' hours left';
|
222 |
}
|
223 |
+
if ( $minutes_remaining > 0 ) {
|
224 |
+
return ( 1 == $minutes_remaining ) ? $minutes_remaining . ' minute left' : $minutes_remaining . ' minutes left';
|
225 |
}
|
226 |
+
return ( 1 == $seconds_remaining ) ? $seconds_remaining . ' second left' : $seconds_remaining . ' seconds left';
|
227 |
}
|
228 |
|
229 |
/**
|
includes/shortcodes/class-wcj-shortcodes-products.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - Products
|
4 |
*
|
5 |
-
* @version 4.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -699,7 +699,7 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
699 |
* wcj_product_you_save_percent.
|
700 |
*
|
701 |
* @return string
|
702 |
-
* @version
|
703 |
*/
|
704 |
function wcj_product_you_save_percent( $atts ) {
|
705 |
if ( $this->the_product->is_on_sale() ) {
|
@@ -707,7 +707,10 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
707 |
$you_save = ( $this->the_product->get_variation_regular_price( 'max' ) - $this->the_product->get_variation_sale_price( 'max' ) );
|
708 |
$regular_price = $this->the_product->get_variation_regular_price( 'max' );
|
709 |
} else {
|
710 |
-
$
|
|
|
|
|
|
|
711 |
$regular_price = $this->the_product->get_regular_price();
|
712 |
}
|
713 |
if ( 0 != $regular_price ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - Products
|
4 |
*
|
5 |
+
* @version 4.1.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
699 |
* wcj_product_you_save_percent.
|
700 |
*
|
701 |
* @return string
|
702 |
+
* @version 4.1.0
|
703 |
*/
|
704 |
function wcj_product_you_save_percent( $atts ) {
|
705 |
if ( $this->the_product->is_on_sale() ) {
|
707 |
$you_save = ( $this->the_product->get_variation_regular_price( 'max' ) - $this->the_product->get_variation_sale_price( 'max' ) );
|
708 |
$regular_price = $this->the_product->get_variation_regular_price( 'max' );
|
709 |
} else {
|
710 |
+
$sale_price = $this->the_product->get_sale_price();
|
711 |
+
$price = $this->the_product->get_price();
|
712 |
+
$final_price = ! empty( $sale_price ) && $sale_price < $price ? $this->the_product->get_sale_price() : $this->the_product->get_price();
|
713 |
+
$you_save = ( $this->the_product->get_regular_price() - $final_price );
|
714 |
$regular_price = $this->the_product->get_regular_price();
|
715 |
}
|
716 |
if ( 0 != $regular_price ) {
|
langs/woocommerce-jetpack.pot
CHANGED
@@ -67,8 +67,8 @@ msgstr ""
|
|
67 |
msgid "Manage Settings"
|
68 |
msgstr ""
|
69 |
|
70 |
-
#: includes/class-wcj-admin-bar.php:168 includes/class-wcj-admin-bar.php:
|
71 |
-
#: includes/class-wcj-admin-bar.php:
|
72 |
#: includes/admin/class-wc-settings-jetpack.php:219
|
73 |
#: includes/admin/class-wc-settings-jetpack.php:414
|
74 |
#: includes/core/class-wcj-admin.php:113
|
@@ -95,7 +95,7 @@ msgid ""
|
|
95 |
msgstr ""
|
96 |
|
97 |
#: includes/class-wcj-admin-bar.php:245 includes/class-wcj-admin-bar.php:288
|
98 |
-
#: includes/class-wcj-admin-bar.php:
|
99 |
#: includes/classes/class-wcj-module.php:522
|
100 |
#: includes/settings/wcj-settings-wpml.php:74
|
101 |
msgid "Tools"
|
@@ -112,7 +112,7 @@ msgstr ""
|
|
112 |
#: includes/class-wcj-admin-bar.php:276
|
113 |
#: includes/class-wcj-checkout-files-upload.php:218
|
114 |
#: includes/class-wcj-eu-vat-number.php:126
|
115 |
-
#: includes/class-wcj-max-products-per-user.php:
|
116 |
#: includes/class-wcj-orders.php:124 includes/class-wcj-orders.php:153
|
117 |
#: includes/class-wcj-payment-gateways.php:91
|
118 |
#: includes/class-wcj-track-users.php:163
|
@@ -170,19 +170,19 @@ msgstr ""
|
|
170 |
msgid "Year"
|
171 |
msgstr ""
|
172 |
|
173 |
-
#: includes/class-wcj-admin-bar.php:
|
174 |
#: includes/admin/class-wc-settings-jetpack.php:217
|
175 |
#: includes/settings/wcj-settings-emails-verification.php:138
|
176 |
#: includes/settings/wcj-settings-price-by-country.php:168
|
177 |
msgid "WooCommerce"
|
178 |
msgstr ""
|
179 |
|
180 |
-
#: includes/class-wcj-admin-bar.php:
|
181 |
msgid "WooCommerce settings"
|
182 |
msgstr ""
|
183 |
|
184 |
-
#: includes/class-wcj-admin-bar.php:
|
185 |
-
#: includes/class-wcj-admin-bar.php:
|
186 |
#: includes/class-wcj-my-account.php:40 includes/class-wcj-orders.php:26
|
187 |
#: includes/reports/wcj-class-reports-sales-gateways.php:153
|
188 |
#: includes/settings/wcj-settings-reports.php:21
|
@@ -192,29 +192,29 @@ msgstr ""
|
|
192 |
msgid "Orders"
|
193 |
msgstr ""
|
194 |
|
195 |
-
#: includes/class-wcj-admin-bar.php:
|
196 |
msgid "Add order"
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: includes/class-wcj-admin-bar.php:
|
200 |
#: includes/settings/wcj-settings-reports.php:135
|
201 |
#: includes/settings/wcj-settings-reports.php:141
|
202 |
msgid "Customers"
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: includes/class-wcj-admin-bar.php:
|
206 |
msgid "Reports"
|
207 |
msgstr ""
|
208 |
|
209 |
-
#: includes/class-wcj-admin-bar.php:
|
210 |
msgid "Customers vs. guests"
|
211 |
msgstr ""
|
212 |
|
213 |
-
#: includes/class-wcj-admin-bar.php:
|
214 |
msgid "Customer list"
|
215 |
msgstr ""
|
216 |
|
217 |
-
#: includes/class-wcj-admin-bar.php:
|
218 |
#: includes/reports/wcj-class-reports-stock.php:272
|
219 |
#: includes/settings/wcj-settings-reports.php:156
|
220 |
#: includes/settings/wcj-settings-reports.php:162
|
@@ -222,35 +222,35 @@ msgstr ""
|
|
222 |
msgid "Stock"
|
223 |
msgstr ""
|
224 |
|
225 |
-
#: includes/class-wcj-admin-bar.php:
|
226 |
msgid "Low in stock"
|
227 |
msgstr ""
|
228 |
|
229 |
-
#: includes/class-wcj-admin-bar.php:
|
230 |
#: includes/settings/wcj-settings-stock.php:101
|
231 |
#: includes/shortcodes/class-wcj-shortcodes-products.php:565
|
232 |
msgid "Out of stock"
|
233 |
msgstr ""
|
234 |
|
235 |
-
#: includes/class-wcj-admin-bar.php:
|
236 |
msgid "Most Stocked"
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: includes/class-wcj-admin-bar.php:
|
240 |
#: includes/class-wcj-eu-vat-number.php:190
|
241 |
msgid "Taxes"
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: includes/class-wcj-admin-bar.php:
|
245 |
msgid "Taxes by code"
|
246 |
msgstr ""
|
247 |
|
248 |
-
#: includes/class-wcj-admin-bar.php:
|
249 |
msgid "Taxes by date"
|
250 |
msgstr ""
|
251 |
|
252 |
-
#: includes/class-wcj-admin-bar.php:
|
253 |
-
#: includes/class-wcj-admin-bar.php:
|
254 |
#: includes/class-wcj-product-bulk-meta-editor.php:263
|
255 |
#: includes/class-wcj-product-by-user.php:96
|
256 |
#: includes/class-wcj-product-by-user.php:132
|
@@ -261,11 +261,11 @@ msgstr ""
|
|
261 |
msgid "Products"
|
262 |
msgstr ""
|
263 |
|
264 |
-
#: includes/class-wcj-admin-bar.php:
|
265 |
msgid "Add product"
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: includes/class-wcj-admin-bar.php:
|
269 |
#: includes/class-wcj-product-bulk-price-converter.php:149
|
270 |
#: includes/class-wcj-sku.php:538
|
271 |
#: includes/export/class-wcj-fields-helper.php:318
|
@@ -275,7 +275,7 @@ msgstr ""
|
|
275 |
msgid "Categories"
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: includes/class-wcj-admin-bar.php:
|
279 |
#: includes/export/class-wcj-fields-helper.php:319
|
280 |
#: includes/settings/wcj-settings-product-by-user.php:20
|
281 |
#: includes/shortcodes/class-wcj-shortcodes-products-add-form.php:183
|
@@ -283,124 +283,124 @@ msgstr ""
|
|
283 |
msgid "Tags"
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: includes/class-wcj-admin-bar.php:
|
287 |
msgid "Attributes"
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: includes/class-wcj-admin-bar.php:
|
291 |
msgid "Coupons"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: includes/class-wcj-admin-bar.php:
|
295 |
msgid "Add coupon"
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: includes/class-wcj-admin-bar.php:
|
299 |
#: includes/class-wcj-general.php:24 includes/class-wcj-pdf-invoicing.php:24
|
300 |
#: includes/settings/wcj-settings-related-products.php:38
|
301 |
msgid "General"
|
302 |
msgstr ""
|
303 |
|
304 |
-
#: includes/class-wcj-admin-bar.php:
|
305 |
#: includes/settings/wcj-settings-eu-vat-number.php:146
|
306 |
#: includes/settings/wcj-settings-product-msrp.php:25
|
307 |
msgid "Display"
|
308 |
msgstr ""
|
309 |
|
310 |
-
#: includes/class-wcj-admin-bar.php:
|
311 |
msgid "Inventory"
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: includes/class-wcj-admin-bar.php:
|
315 |
msgid "Downloadable products"
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: includes/class-wcj-admin-bar.php:
|
319 |
msgid "Tax"
|
320 |
msgstr ""
|
321 |
|
322 |
-
#: includes/class-wcj-admin-bar.php:
|
323 |
msgid "Tax options"
|
324 |
msgstr ""
|
325 |
|
326 |
-
#: includes/class-wcj-admin-bar.php:
|
327 |
msgid "Standard rates"
|
328 |
msgstr ""
|
329 |
|
330 |
-
#: includes/class-wcj-admin-bar.php:
|
331 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:193
|
332 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
333 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:115
|
334 |
#: includes/settings/wcj-settings-price-by-user-role.php:46
|
335 |
msgid "Shipping"
|
336 |
msgstr ""
|
337 |
|
338 |
-
#: includes/class-wcj-admin-bar.php:
|
339 |
msgid "Shipping zones"
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: includes/class-wcj-admin-bar.php:
|
343 |
msgid "Shipping options"
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: includes/class-wcj-admin-bar.php:
|
347 |
msgid "Shipping classes"
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: includes/class-wcj-admin-bar.php:
|
351 |
msgid "Checkout"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: includes/class-wcj-admin-bar.php:
|
355 |
msgid "Checkout options"
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: includes/class-wcj-admin-bar.php:
|
359 |
msgid "BACS"
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: includes/class-wcj-admin-bar.php:
|
363 |
msgid "Check payments"
|
364 |
msgstr ""
|
365 |
|
366 |
-
#: includes/class-wcj-admin-bar.php:
|
367 |
msgid "Cash on delivery"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: includes/class-wcj-admin-bar.php:
|
371 |
msgid "PayPal"
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: includes/class-wcj-admin-bar.php:
|
375 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:195
|
376 |
msgid "Account"
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: includes/class-wcj-admin-bar.php:
|
380 |
msgid "Emails"
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: includes/class-wcj-admin-bar.php:
|
384 |
msgid "API"
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: includes/class-wcj-admin-bar.php:
|
388 |
msgid "Keys/Apps"
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: includes/class-wcj-admin-bar.php:
|
392 |
msgid "Webhooks"
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: includes/class-wcj-admin-bar.php:
|
396 |
msgid "System status"
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: includes/class-wcj-admin-bar.php:
|
400 |
msgid "Logs"
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: includes/class-wcj-admin-bar.php:
|
404 |
msgid "Extensions"
|
405 |
msgstr ""
|
406 |
|
@@ -457,75 +457,65 @@ msgid "Admin Tools"
|
|
457 |
msgstr ""
|
458 |
|
459 |
#: includes/class-wcj-admin-tools.php:25
|
460 |
-
msgid "Booster for WooCommerce
|
461 |
msgstr ""
|
462 |
|
463 |
#: includes/class-wcj-admin-tools.php:31
|
464 |
-
msgid "
|
465 |
msgstr ""
|
466 |
|
467 |
#: includes/class-wcj-admin-tools.php:32
|
468 |
-
msgid "
|
469 |
-
msgstr ""
|
470 |
-
|
471 |
-
#: includes/class-wcj-admin-tools.php:33
|
472 |
-
#: includes/settings/wcj-settings-admin-tools.php:91
|
473 |
-
msgid "Log"
|
474 |
-
msgstr ""
|
475 |
-
|
476 |
-
#: includes/class-wcj-admin-tools.php:44
|
477 |
-
#, php-format
|
478 |
-
msgid "Current PHP memory limit: %s."
|
479 |
-
msgstr ""
|
480 |
-
|
481 |
-
#: includes/class-wcj-admin-tools.php:49
|
482 |
-
#, php-format
|
483 |
-
msgid "Current PHP time limit: %s seconds."
|
484 |
msgstr ""
|
485 |
|
486 |
-
#: includes/class-wcj-admin-tools.php:
|
487 |
#: includes/settings/wcj-settings-export.php:157
|
488 |
#: includes/settings/wcj-settings-export.php:236
|
489 |
msgid "Product Meta"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: includes/class-wcj-admin-tools.php:
|
493 |
#: includes/settings/wcj-settings-export.php:86
|
494 |
#: includes/settings/wcj-settings-export.php:154
|
495 |
msgid "Order Meta"
|
496 |
msgstr ""
|
497 |
|
498 |
-
#: includes/class-wcj-admin-tools.php:
|
499 |
msgid "Order Items Meta"
|
500 |
msgstr ""
|
501 |
|
502 |
-
#: includes/class-wcj-admin-tools.php:
|
503 |
msgid "Item Key"
|
504 |
msgstr ""
|
505 |
|
506 |
-
#: includes/class-wcj-admin-tools.php:
|
507 |
msgid "Item Meta Key"
|
508 |
msgstr ""
|
509 |
|
510 |
-
#: includes/class-wcj-admin-tools.php:
|
511 |
msgid "Item Meta Value"
|
512 |
msgstr ""
|
513 |
|
514 |
-
#: includes/class-wcj-admin-tools.php:
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
#: includes/class-wcj-
|
519 |
-
|
520 |
-
|
|
|
|
|
521 |
msgstr ""
|
522 |
|
523 |
-
#: includes/class-wcj-admin-tools.php:
|
524 |
-
|
|
|
|
|
|
|
525 |
msgstr ""
|
526 |
|
527 |
-
#: includes/class-wcj-admin-tools.php:
|
528 |
-
msgid "
|
529 |
msgstr ""
|
530 |
|
531 |
#: includes/class-wcj-breadcrumbs.php:28
|
@@ -607,18 +597,18 @@ msgid ""
|
|
607 |
"and more."
|
608 |
msgstr ""
|
609 |
|
610 |
-
#: includes/class-wcj-checkout-customization.php:
|
611 |
#: includes/settings/wcj-settings-checkout-customization.php:181
|
612 |
msgid "Returning customer?"
|
613 |
msgstr ""
|
614 |
|
615 |
-
#: includes/class-wcj-checkout-customization.php:
|
616 |
#: includes/settings/wcj-settings-checkout-customization.php:159
|
617 |
msgid "Thank you. Your order has been received."
|
618 |
msgstr ""
|
619 |
|
620 |
-
#: includes/class-wcj-checkout-customization.php:
|
621 |
-
#: includes/class-wcj-checkout-customization.php:
|
622 |
#: includes/settings/wcj-settings-checkout-customization.php:116
|
623 |
msgid "This field can not be changed"
|
624 |
msgstr ""
|
@@ -1047,7 +1037,7 @@ msgid "Custom PHP"
|
|
1047 |
msgstr ""
|
1048 |
|
1049 |
#: includes/class-wcj-custom-php.php:28
|
1050 |
-
msgid "Custom PHP."
|
1051 |
msgstr ""
|
1052 |
|
1053 |
#: includes/class-wcj-custom-php.php:30
|
@@ -1066,6 +1056,40 @@ msgstr ""
|
|
1066 |
msgid "E.g.: %s"
|
1067 |
msgstr ""
|
1068 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1069 |
#: includes/class-wcj-email-options.php:26
|
1070 |
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-emails.php:24
|
1071 |
#: includes/settings/wcj-settings-emails-verification.php:107
|
@@ -1228,7 +1252,7 @@ msgid "Booster: Send Email: %s"
|
|
1228 |
msgstr ""
|
1229 |
|
1230 |
#: includes/class-wcj-empty-cart-button.php:25
|
1231 |
-
#: includes/shortcodes/class-wcj-shortcodes-general.php:
|
1232 |
msgid "Empty Cart Button"
|
1233 |
msgstr ""
|
1234 |
|
@@ -1411,55 +1435,57 @@ msgid "Free!"
|
|
1411 |
msgstr ""
|
1412 |
|
1413 |
#: includes/class-wcj-general.php:25
|
1414 |
-
msgid "
|
1415 |
msgstr ""
|
1416 |
|
1417 |
#: includes/class-wcj-general.php:31
|
1418 |
-
msgid "
|
1419 |
msgstr ""
|
1420 |
|
1421 |
#: includes/class-wcj-general.php:32
|
1422 |
-
msgid "
|
1423 |
msgstr ""
|
1424 |
|
1425 |
-
#: includes/class-wcj-general.php:
|
1426 |
-
msgid "
|
1427 |
msgstr ""
|
1428 |
|
1429 |
-
#: includes/class-wcj-general.php:
|
1430 |
-
|
|
|
1431 |
msgstr ""
|
1432 |
|
1433 |
-
#: includes/class-wcj-general.php:
|
1434 |
-
|
|
|
1435 |
msgstr ""
|
1436 |
|
1437 |
-
#: includes/class-wcj-general.php:
|
1438 |
msgid "Booster User Role"
|
1439 |
msgstr ""
|
1440 |
|
1441 |
-
#: includes/class-wcj-general.php:
|
1442 |
msgid "All fields are required!"
|
1443 |
msgstr ""
|
1444 |
|
1445 |
-
#: includes/class-wcj-general.php:
|
1446 |
msgid "Role ID must not be numbers only!"
|
1447 |
msgstr ""
|
1448 |
|
1449 |
-
#: includes/class-wcj-general.php:
|
1450 |
msgid "Role successfully added!"
|
1451 |
msgstr ""
|
1452 |
|
1453 |
-
#: includes/class-wcj-general.php:
|
1454 |
msgid "Role already exists!"
|
1455 |
msgstr ""
|
1456 |
|
1457 |
-
#: includes/class-wcj-general.php:
|
1458 |
#, php-format
|
1459 |
msgid "Role %s successfully deleted!"
|
1460 |
msgstr ""
|
1461 |
|
1462 |
-
#: includes/class-wcj-general.php:
|
1463 |
#: includes/class-wcj-sku.php:536
|
1464 |
#: includes/reports/wcj-class-reports-sales.php:196
|
1465 |
#: includes/settings/wcj-settings-cross-sells.php:43
|
@@ -1471,7 +1497,7 @@ msgstr ""
|
|
1471 |
msgid "ID"
|
1472 |
msgstr ""
|
1473 |
|
1474 |
-
#: includes/class-wcj-general.php:
|
1475 |
#: includes/class-wcj-offer-price.php:172
|
1476 |
#: includes/export/class-wcj-fields-helper.php:282
|
1477 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:70
|
@@ -1479,11 +1505,11 @@ msgstr ""
|
|
1479 |
msgid "Name"
|
1480 |
msgstr ""
|
1481 |
|
1482 |
-
#: includes/class-wcj-general.php:
|
1483 |
msgid "Capabilities"
|
1484 |
msgstr ""
|
1485 |
|
1486 |
-
#: includes/class-wcj-general.php:
|
1487 |
#: includes/class-wcj-product-by-user.php:197
|
1488 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:100
|
1489 |
#: includes/tools/class-wcj-order-statuses-tool.php:145
|
@@ -1491,7 +1517,7 @@ msgstr ""
|
|
1491 |
msgid "Actions"
|
1492 |
msgstr ""
|
1493 |
|
1494 |
-
#: includes/class-wcj-general.php:
|
1495 |
#: includes/class-wcj-payment-gateways.php:117
|
1496 |
#: includes/class-wcj-product-bulk-meta-editor.php:367
|
1497 |
#: includes/class-wcj-product-by-user.php:206
|
@@ -1502,15 +1528,15 @@ msgstr ""
|
|
1502 |
msgid "Delete"
|
1503 |
msgstr ""
|
1504 |
|
1505 |
-
#: includes/class-wcj-general.php:
|
1506 |
msgid "Existing Roles"
|
1507 |
msgstr ""
|
1508 |
|
1509 |
-
#: includes/class-wcj-general.php:
|
1510 |
msgid "Add New Role"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
-
#: includes/class-wcj-general.php:
|
1514 |
#: includes/class-wcj-shipping-by-products.php:206
|
1515 |
#: includes/settings/wcj-settings-admin-orders-list.php:134
|
1516 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:22
|
@@ -1532,7 +1558,7 @@ msgstr ""
|
|
1532 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:183
|
1533 |
#: includes/settings/wcj-settings-product-by-condition.php:107
|
1534 |
#: includes/settings/wcj-settings-product-by-user.php:114
|
1535 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
1536 |
#: includes/settings/wcj-settings-product-tabs.php:247
|
1537 |
#: includes/settings/wcj-settings-purchase-data.php:134
|
1538 |
#: includes/settings/wcj-settings-purchase-data.php:143
|
@@ -1545,26 +1571,6 @@ msgstr ""
|
|
1545 |
msgid "Add"
|
1546 |
msgstr ""
|
1547 |
|
1548 |
-
#: includes/class-wcj-general.php:289 includes/class-wcj-general.php:331
|
1549 |
-
#: includes/class-wcj-general.php:340
|
1550 |
-
#: includes/class-wcj-product-bulk-meta-editor.php:339
|
1551 |
-
#: includes/class-wcj-product-bulk-price-converter.php:148
|
1552 |
-
#: includes/class-wcj-sku.php:537
|
1553 |
-
#: includes/reports/wcj-class-reports-sales.php:197
|
1554 |
-
#: includes/reports/wcj-class-reports-stock.php:269
|
1555 |
-
msgid "Product"
|
1556 |
-
msgstr ""
|
1557 |
-
|
1558 |
-
#: includes/class-wcj-general.php:290 includes/class-wcj-general.php:332
|
1559 |
-
#: includes/class-wcj-general.php:341
|
1560 |
-
#: includes/reports/wcj-class-reports-stock.php:270
|
1561 |
-
msgid "Category"
|
1562 |
-
msgstr ""
|
1563 |
-
|
1564 |
-
#: includes/class-wcj-general.php:357
|
1565 |
-
msgid "Total Products:"
|
1566 |
-
msgstr ""
|
1567 |
-
|
1568 |
#: includes/class-wcj-global-discount.php:27
|
1569 |
#: includes/admin/class-wc-settings-jetpack.php:479
|
1570 |
#: includes/settings/wcj-settings-product-addons.php:237
|
@@ -1595,58 +1601,58 @@ msgstr ""
|
|
1595 |
msgid "%left_to_free% left to free shipping"
|
1596 |
msgstr ""
|
1597 |
|
1598 |
-
#: includes/class-wcj-max-products-per-user.php:
|
1599 |
msgid "Maximum Products per User"
|
1600 |
msgstr ""
|
1601 |
|
1602 |
-
#: includes/class-wcj-max-products-per-user.php:
|
1603 |
msgid "Limit number of items your (logged) customers can buy."
|
1604 |
msgstr ""
|
1605 |
|
1606 |
-
#: includes/class-wcj-max-products-per-user.php:
|
1607 |
msgid ""
|
1608 |
"Please note, that there is no maximum quantity set for not-logged (i.e. "
|
1609 |
"guest) users. Product quantities are updated, when order status is changed "
|
1610 |
-
"to
|
1611 |
msgstr ""
|
1612 |
|
1613 |
-
#: includes/class-wcj-max-products-per-user.php:
|
1614 |
msgid "Data re-calculated."
|
1615 |
msgstr ""
|
1616 |
|
1617 |
-
#: includes/class-wcj-max-products-per-user.php:
|
1618 |
#, php-format
|
1619 |
msgid "%s order(s) processed."
|
1620 |
msgstr ""
|
1621 |
|
1622 |
-
#: includes/class-wcj-max-products-per-user.php:
|
1623 |
msgid "Maximum Products per User: Sales Data"
|
1624 |
msgstr ""
|
1625 |
|
1626 |
-
#: includes/class-wcj-max-products-per-user.php:
|
1627 |
msgid "User ID"
|
1628 |
msgstr ""
|
1629 |
|
1630 |
-
#: includes/class-wcj-max-products-per-user.php:
|
1631 |
msgid "User Name"
|
1632 |
msgstr ""
|
1633 |
|
1634 |
-
#: includes/class-wcj-max-products-per-user.php:
|
1635 |
msgid "Qty Bought"
|
1636 |
msgstr ""
|
1637 |
|
1638 |
-
#: includes/class-wcj-max-products-per-user.php:
|
1639 |
#: includes/functions/wcj-functions-users.php:151
|
1640 |
#: includes/functions/wcj-functions-users.php:171
|
1641 |
msgid "Guest"
|
1642 |
msgstr ""
|
1643 |
|
1644 |
-
#: includes/class-wcj-max-products-per-user.php:
|
1645 |
msgid "No data yet."
|
1646 |
msgstr ""
|
1647 |
|
1648 |
-
#: includes/class-wcj-max-products-per-user.php:
|
1649 |
-
#: includes/settings/wcj-settings-max-products-per-user.php:
|
1650 |
msgid ""
|
1651 |
"You can only buy maximum %max_qty% pcs. of %product_title% (you already "
|
1652 |
"bought %qty_already_bought% pcs.)."
|
@@ -2114,35 +2120,35 @@ msgstr ""
|
|
2114 |
msgid "Set min/max product quantities in WooCommerce order."
|
2115 |
msgstr ""
|
2116 |
|
2117 |
-
#: includes/class-wcj-order-quantities.php:
|
2118 |
#: includes/settings/wcj-settings-order-quantities.php:224
|
2119 |
msgid ""
|
2120 |
"Only one item can be added to the cart. Clear the cart or finish the order, "
|
2121 |
"before adding another item to the cart."
|
2122 |
msgstr ""
|
2123 |
|
2124 |
-
#: includes/class-wcj-order-quantities.php:
|
2125 |
#: includes/settings/wcj-settings-order-quantities.php:96
|
2126 |
msgid ""
|
2127 |
"Maximum allowed order quantity is %max_cart_total_quantity%. Your current "
|
2128 |
"order quantity is %cart_total_quantity%."
|
2129 |
msgstr ""
|
2130 |
|
2131 |
-
#: includes/class-wcj-order-quantities.php:
|
2132 |
#: includes/settings/wcj-settings-order-quantities.php:38
|
2133 |
msgid ""
|
2134 |
"Minimum allowed order quantity is %min_cart_total_quantity%. Your current "
|
2135 |
"order quantity is %cart_total_quantity%."
|
2136 |
msgstr ""
|
2137 |
|
2138 |
-
#: includes/class-wcj-order-quantities.php:
|
2139 |
#: includes/settings/wcj-settings-order-quantities.php:122
|
2140 |
msgid ""
|
2141 |
"Maximum allowed quantity for %product_title% is %max_per_item_quantity%. "
|
2142 |
"Your current item quantity is %item_quantity%."
|
2143 |
msgstr ""
|
2144 |
|
2145 |
-
#: includes/class-wcj-order-quantities.php:
|
2146 |
#: includes/settings/wcj-settings-order-quantities.php:64
|
2147 |
msgid ""
|
2148 |
"Minimum allowed quantity for %product_title% is %min_per_item_quantity%. "
|
@@ -2260,12 +2266,12 @@ msgstr ""
|
|
2260 |
msgid "Maximum amount for %gateway_title% is %max_amount%"
|
2261 |
msgstr ""
|
2262 |
|
2263 |
-
#: includes/class-wcj-payment-gateways-per-category.php:
|
2264 |
#: includes/admin/class-wc-settings-jetpack.php:478
|
2265 |
msgid "Gateways per Product or Category"
|
2266 |
msgstr ""
|
2267 |
|
2268 |
-
#: includes/class-wcj-payment-gateways-per-category.php:
|
2269 |
msgid ""
|
2270 |
"Show payment gateway only if there is selected product or product category "
|
2271 |
"in cart."
|
@@ -2363,19 +2369,19 @@ msgstr ""
|
|
2363 |
msgid "Booster: %s."
|
2364 |
msgstr ""
|
2365 |
|
2366 |
-
#: includes/class-wcj-pdf-invoicing.php:
|
2367 |
msgid "You are not allowed to view the invoice."
|
2368 |
msgstr ""
|
2369 |
|
2370 |
-
#: includes/class-wcj-price-by-country.php:
|
2371 |
msgid "Prices and Currencies by Country"
|
2372 |
msgstr ""
|
2373 |
|
2374 |
-
#: includes/class-wcj-price-by-country.php:
|
2375 |
msgid "Change product price and currency automatically by customer's country."
|
2376 |
msgstr ""
|
2377 |
|
2378 |
-
#: includes/class-wcj-price-by-country.php:
|
2379 |
msgid "Price filter widget product prices recalculated."
|
2380 |
msgstr ""
|
2381 |
|
@@ -2454,17 +2460,15 @@ msgstr ""
|
|
2454 |
#: includes/settings/wcj-settings-add-to-cart.php:51
|
2455 |
#: includes/settings/wcj-settings-address-formats.php:20
|
2456 |
#: includes/settings/wcj-settings-admin-bar.php:20
|
2457 |
-
#: includes/settings/wcj-settings-admin-bar.php:
|
2458 |
-
#: includes/settings/wcj-settings-admin-bar.php:
|
2459 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
2460 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
2461 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
2462 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
2463 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
2464 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
2465 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
2466 |
-
#: includes/settings/wcj-settings-admin-tools.php:99
|
2467 |
-
#: includes/settings/wcj-settings-admin-tools.php:106
|
2468 |
#: includes/settings/wcj-settings-breadcrumbs.php:20
|
2469 |
#: includes/settings/wcj-settings-call-for-price.php:79
|
2470 |
#: includes/settings/wcj-settings-cart-customization.php:34
|
@@ -2476,6 +2480,8 @@ msgstr ""
|
|
2476 |
#: includes/settings/wcj-settings-checkout-customization.php:27
|
2477 |
#: includes/settings/wcj-settings-checkout-customization.php:151
|
2478 |
#: includes/settings/wcj-settings-checkout-customization.php:174
|
|
|
|
|
2479 |
#: includes/settings/wcj-settings-checkout-fees.php:41
|
2480 |
#: includes/settings/wcj-settings-checkout-fees.php:71
|
2481 |
#: includes/settings/wcj-settings-checkout-files-upload.php:227
|
@@ -2496,19 +2502,21 @@ msgstr ""
|
|
2496 |
#: includes/settings/wcj-settings-currency-per-product.php:104
|
2497 |
#: includes/settings/wcj-settings-currency-per-product.php:258
|
2498 |
#: includes/settings/wcj-settings-custom-css.php:44
|
|
|
|
|
|
|
2499 |
#: includes/settings/wcj-settings-emails-verification.php:28
|
2500 |
#: includes/settings/wcj-settings-emails-verification.php:36
|
2501 |
-
#: includes/settings/wcj-settings-general.php:
|
2502 |
-
#: includes/settings/wcj-settings-general.php:
|
2503 |
-
#: includes/settings/wcj-settings-general.php:
|
2504 |
-
#: includes/settings/wcj-settings-general.php:
|
2505 |
-
#: includes/settings/wcj-settings-general.php:174
|
2506 |
#: includes/settings/wcj-settings-global-discount.php:52
|
2507 |
#: includes/settings/wcj-settings-global-discount.php:181
|
2508 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:28
|
2509 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:57
|
2510 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:91
|
2511 |
-
#: includes/settings/wcj-settings-max-products-per-user.php:
|
2512 |
#: includes/settings/wcj-settings-more-button-labels.php:28
|
2513 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:38
|
2514 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:53
|
@@ -2535,8 +2543,9 @@ msgstr ""
|
|
2535 |
#: includes/settings/wcj-settings-orders.php:105
|
2536 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:23
|
2537 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:93
|
2538 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
2539 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
|
|
2540 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:55
|
2541 |
#: includes/settings/wcj-settings-pdf-invoicing-display.php:118
|
2542 |
#: includes/settings/wcj-settings-pdf-invoicing-footer.php:23
|
@@ -2589,9 +2598,9 @@ msgstr ""
|
|
2589 |
#: includes/settings/wcj-settings-product-input-fields.php:318
|
2590 |
#: includes/settings/wcj-settings-product-input-fields.php:336
|
2591 |
#: includes/settings/wcj-settings-product-input-fields.php:344
|
2592 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
2593 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
2594 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
2595 |
#: includes/settings/wcj-settings-product-price-by-formula.php:30
|
2596 |
#: includes/settings/wcj-settings-product-tabs.php:43
|
2597 |
#: includes/settings/wcj-settings-product-tabs.php:232
|
@@ -2640,7 +2649,7 @@ msgstr ""
|
|
2640 |
#: includes/settings/wcj-settings-wpml.php:45
|
2641 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-add-to-cart.php:68
|
2642 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:35
|
2643 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:
|
2644 |
#: includes/settings/meta-box/wcj-settings-meta-box-sale-flash.php:14
|
2645 |
msgid "Enable"
|
2646 |
msgstr ""
|
@@ -2775,7 +2784,7 @@ msgid "\"Date to\" must be after \"Date from\""
|
|
2775 |
msgstr ""
|
2776 |
|
2777 |
#: includes/class-wcj-product-bookings.php:148
|
2778 |
-
#: includes/class-wcj-product-open-pricing.php:
|
2779 |
#: includes/settings/wcj-settings-add-to-cart.php:140
|
2780 |
#: includes/settings/wcj-settings-add-to-cart.php:167
|
2781 |
#: includes/settings/wcj-settings-add-to-cart.php:202
|
@@ -3300,7 +3309,6 @@ msgstr ""
|
|
3300 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:17
|
3301 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:61
|
3302 |
#: includes/settings/wcj-settings-payment-gateways-icons.php:14
|
3303 |
-
#: includes/settings/wcj-settings-payment-gateways-per-category.php:18
|
3304 |
#: includes/settings/wcj-settings-price-by-user-role.php:14
|
3305 |
#: includes/settings/wcj-settings-product-addons.php:173
|
3306 |
#: includes/settings/wcj-settings-product-bookings.php:86
|
@@ -3391,7 +3399,7 @@ msgstr ""
|
|
3391 |
|
3392 |
#: includes/class-wcj-product-info.php:242
|
3393 |
#: includes/settings/wcj-settings-cart.php:51
|
3394 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
3395 |
#: includes/settings/wcj-settings-checkout-files-upload.php:52
|
3396 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:42
|
3397 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:73
|
@@ -3493,11 +3501,11 @@ msgstr ""
|
|
3493 |
msgid "Let your store customers enter price for the product manually."
|
3494 |
msgstr ""
|
3495 |
|
3496 |
-
#: includes/class-wcj-product-open-pricing.php:
|
3497 |
msgid "Open Pricing"
|
3498 |
msgstr ""
|
3499 |
|
3500 |
-
#: includes/class-wcj-product-open-pricing.php:
|
3501 |
msgid ""
|
3502 |
"Booster: Free plugin's version is limited to only one open pricing product "
|
3503 |
"enabled at a time. You will need to get <a href=\"https://booster.io/plus/\" "
|
@@ -3505,22 +3513,22 @@ msgid ""
|
|
3505 |
"products."
|
3506 |
msgstr ""
|
3507 |
|
3508 |
-
#: includes/class-wcj-product-open-pricing.php:
|
3509 |
#: includes/settings/wcj-settings-product-open-pricing.php:73
|
3510 |
msgid "Price is required!"
|
3511 |
msgstr ""
|
3512 |
|
3513 |
-
#: includes/class-wcj-product-open-pricing.php:
|
3514 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
3515 |
msgid "Entered price is too small!"
|
3516 |
msgstr ""
|
3517 |
|
3518 |
-
#: includes/class-wcj-product-open-pricing.php:
|
3519 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
3520 |
msgid "Entered price is too big!"
|
3521 |
msgstr ""
|
3522 |
|
3523 |
-
#: includes/class-wcj-product-open-pricing.php:
|
3524 |
#: includes/settings/wcj-settings-product-open-pricing.php:29
|
3525 |
msgid "Name Your Price"
|
3526 |
msgstr ""
|
@@ -3533,11 +3541,11 @@ msgstr ""
|
|
3533 |
msgid "Set formula for automatic product price calculation."
|
3534 |
msgstr ""
|
3535 |
|
3536 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
3537 |
msgid "Error in formula"
|
3538 |
msgstr ""
|
3539 |
|
3540 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
3541 |
msgid ""
|
3542 |
"Booster: Free plugin's version is limited to only one price by formula "
|
3543 |
"product enabled at a time. You will need to get <a href=\"https://booster.io/"
|
@@ -3545,7 +3553,7 @@ msgid ""
|
|
3545 |
"by formula products."
|
3546 |
msgstr ""
|
3547 |
|
3548 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
3549 |
msgid "Final Price Preview"
|
3550 |
msgstr ""
|
3551 |
|
@@ -3591,7 +3599,7 @@ msgstr ""
|
|
3591 |
#: includes/settings/wcj-settings-add-to-cart-button-visibility.php:122
|
3592 |
#: includes/settings/wcj-settings-add-to-cart-button-visibility.php:138
|
3593 |
#: includes/settings/wcj-settings-cart.php:44
|
3594 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
3595 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:34
|
3596 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:65
|
3597 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:99
|
@@ -3626,6 +3634,7 @@ msgstr ""
|
|
3626 |
#: includes/settings/wcj-settings-admin-orders-list.php:84
|
3627 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:265
|
3628 |
#: includes/settings/wcj-settings-product-addons.php:225
|
|
|
3629 |
#: includes/settings/meta-box/wcj-settings-meta-box-custom-css.php:20
|
3630 |
#: includes/settings/meta-box/wcj-settings-meta-box-multicurrency.php:60
|
3631 |
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:20
|
@@ -3638,12 +3647,12 @@ msgstr ""
|
|
3638 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:41
|
3639 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:117
|
3640 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-bookings.php:20
|
3641 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:
|
3642 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:
|
3643 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:
|
3644 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-open-pricing.php:20
|
3645 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-price-by-formula.php:19
|
3646 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:
|
3647 |
#: includes/settings/meta-box/wcj-settings-meta-box-sale-flash.php:20
|
3648 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:32
|
3649 |
#: includes/widgets/class-wcj-widget-country-switcher.php:82
|
@@ -3660,6 +3669,7 @@ msgstr ""
|
|
3660 |
#: includes/settings/wcj-settings-eu-vat-number.php:111
|
3661 |
#: includes/settings/wcj-settings-eu-vat-number.php:130
|
3662 |
#: includes/settings/wcj-settings-product-addons.php:224
|
|
|
3663 |
#: includes/settings/meta-box/wcj-settings-meta-box-custom-css.php:19
|
3664 |
#: includes/settings/meta-box/wcj-settings-meta-box-multicurrency.php:61
|
3665 |
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:19
|
@@ -3672,12 +3682,12 @@ msgstr ""
|
|
3672 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:40
|
3673 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:116
|
3674 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-bookings.php:19
|
3675 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:
|
3676 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:
|
3677 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:
|
3678 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-open-pricing.php:19
|
3679 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-price-by-formula.php:18
|
3680 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:
|
3681 |
#: includes/settings/meta-box/wcj-settings-meta-box-sale-flash.php:19
|
3682 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:31
|
3683 |
#: includes/widgets/class-wcj-widget-country-switcher.php:83
|
@@ -3709,7 +3719,7 @@ msgstr ""
|
|
3709 |
msgid "Add \"products per page\" selector to WooCommerce."
|
3710 |
msgstr ""
|
3711 |
|
3712 |
-
#: includes/class-wcj-products-per-page.php:
|
3713 |
#: includes/settings/wcj-settings-products-per-page.php:63
|
3714 |
msgid ""
|
3715 |
"Products <strong>%from% - %to%</strong> from <strong>%total%</strong>. "
|
@@ -3814,7 +3824,7 @@ msgstr ""
|
|
3814 |
#: includes/class-wcj-related-products.php:38
|
3815 |
#: includes/admin/class-wc-settings-jetpack.php:483
|
3816 |
#: includes/settings/wcj-settings-free-price.php:20
|
3817 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:
|
3818 |
msgid "Related Products"
|
3819 |
msgstr ""
|
3820 |
|
@@ -3828,10 +3838,10 @@ msgstr ""
|
|
3828 |
#: includes/class-wcj-related-products.php:42
|
3829 |
#, php-format
|
3830 |
msgid ""
|
3831 |
-
"You may need to <a
|
3832 |
-
"
|
3833 |
-
"
|
3834 |
-
"
|
3835 |
msgstr ""
|
3836 |
|
3837 |
#: includes/class-wcj-reports.php:34
|
@@ -4043,7 +4053,7 @@ msgid ""
|
|
4043 |
msgstr ""
|
4044 |
|
4045 |
#: includes/class-wcj-shipping-by-time.php:33
|
4046 |
-
msgid "Time"
|
4047 |
msgstr ""
|
4048 |
|
4049 |
#: includes/class-wcj-shipping-by-time.php:34
|
@@ -4815,7 +4825,7 @@ msgid "Unexpected error"
|
|
4815 |
msgstr ""
|
4816 |
|
4817 |
#: includes/classes/class-wcj-shortcodes.php:109
|
4818 |
-
#: includes/shortcodes/class-wcj-shortcodes-general.php:
|
4819 |
#, php-format
|
4820 |
msgid "\"%s\" module is not enabled!"
|
4821 |
msgstr ""
|
@@ -4874,22 +4884,22 @@ msgstr ""
|
|
4874 |
msgid "[{site_title}] Custom Subject - Order ({order_number}) - {order_date}"
|
4875 |
msgstr ""
|
4876 |
|
4877 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4878 |
#, php-format
|
4879 |
msgid "New order (%s)"
|
4880 |
msgstr ""
|
4881 |
|
4882 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4883 |
#, php-format
|
4884 |
msgid "Order status updated to %s"
|
4885 |
msgstr ""
|
4886 |
|
4887 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4888 |
#, php-format
|
4889 |
msgid "Order status %s to %s"
|
4890 |
msgstr ""
|
4891 |
|
4892 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4893 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:48
|
4894 |
#: includes/settings/wcj-settings-admin-products-list.php:19
|
4895 |
#: includes/settings/wcj-settings-admin-products-list.php:75
|
@@ -4899,15 +4909,15 @@ msgstr ""
|
|
4899 |
msgid "Enable/Disable"
|
4900 |
msgstr ""
|
4901 |
|
4902 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4903 |
msgid "Enable this email notification"
|
4904 |
msgstr ""
|
4905 |
|
4906 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4907 |
msgid "Trigger(s)"
|
4908 |
msgstr ""
|
4909 |
|
4910 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4911 |
msgid ""
|
4912 |
"Please note, that all new orders in WooCommerce by default are created with "
|
4913 |
"Pending Payment status. If you want to change the default order status - you "
|
@@ -4915,103 +4925,103 @@ msgid ""
|
|
4915 |
"Settings > Booster > Shipping & Orders > Order Custom Statuses)."
|
4916 |
msgstr ""
|
4917 |
|
4918 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4919 |
msgid "New order (Any status)"
|
4920 |
msgstr ""
|
4921 |
|
4922 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4923 |
msgid "Reset password notification"
|
4924 |
msgstr ""
|
4925 |
|
4926 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4927 |
msgid "Order fully refunded notification"
|
4928 |
msgstr ""
|
4929 |
|
4930 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4931 |
msgid "Order partially refunded notification"
|
4932 |
msgstr ""
|
4933 |
|
4934 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4935 |
msgid "New customer note notification"
|
4936 |
msgstr ""
|
4937 |
|
4938 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4939 |
msgid "Low stock notification"
|
4940 |
msgstr ""
|
4941 |
|
4942 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4943 |
msgid "No stock notification"
|
4944 |
msgstr ""
|
4945 |
|
4946 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4947 |
msgid "Product on backorder notification"
|
4948 |
msgstr ""
|
4949 |
|
4950 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4951 |
msgid "Created customer notification"
|
4952 |
msgstr ""
|
4953 |
|
4954 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4955 |
msgid "Recipient(s)"
|
4956 |
msgstr ""
|
4957 |
|
4958 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4959 |
#, php-format
|
4960 |
msgid ""
|
4961 |
"Enter recipients (comma separated) for this email. Defaults to <code>%s</"
|
4962 |
"code>."
|
4963 |
msgstr ""
|
4964 |
|
4965 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4966 |
msgid "Or enter <code>%customer%</code> to send to customer billing email."
|
4967 |
msgstr ""
|
4968 |
|
4969 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4970 |
msgid "Subject"
|
4971 |
msgstr ""
|
4972 |
|
4973 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4974 |
#, php-format
|
4975 |
msgid ""
|
4976 |
"This controls the email subject line. Leave blank to use the default "
|
4977 |
"subject: <code>%s</code>."
|
4978 |
msgstr ""
|
4979 |
|
4980 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4981 |
msgid "Email type"
|
4982 |
msgstr ""
|
4983 |
|
4984 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4985 |
msgid "Choose which format of email to send."
|
4986 |
msgstr ""
|
4987 |
|
4988 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4989 |
msgid "Wrap in WC Email Template"
|
4990 |
msgstr ""
|
4991 |
|
4992 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4993 |
msgid ""
|
4994 |
"WC Email Heading. Used only if \"Wrap in WC Email Template\" is enabled and "
|
4995 |
"only for HTML templates."
|
4996 |
msgstr ""
|
4997 |
|
4998 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
4999 |
#, php-format
|
5000 |
msgid ""
|
5001 |
"This controls the main heading contained within the email notification. "
|
5002 |
"Leave blank to use the default heading: <code>%s</code>."
|
5003 |
msgstr ""
|
5004 |
|
5005 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
5006 |
msgid "HTML template"
|
5007 |
msgstr ""
|
5008 |
|
5009 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
5010 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
5011 |
msgid "You can use shortcodes here. E.g. Booster's order shortcodes."
|
5012 |
msgstr ""
|
5013 |
|
5014 |
-
#: includes/emails/class-wc-email-wcj-custom.php:
|
5015 |
msgid "Plain text template"
|
5016 |
msgstr ""
|
5017 |
|
@@ -5171,6 +5181,7 @@ msgstr ""
|
|
5171 |
|
5172 |
#: includes/export/class-wcj-fields-helper.php:112
|
5173 |
#: includes/export/class-wcj-fields-helper.php:195
|
|
|
5174 |
msgid "Order Status"
|
5175 |
msgstr ""
|
5176 |
|
@@ -7988,16 +7999,16 @@ msgstr ""
|
|
7988 |
#: includes/settings/wcj-settings-add-to-cart-button-visibility.php:30
|
7989 |
#: includes/settings/wcj-settings-add-to-cart-button-visibility.php:56
|
7990 |
#: includes/settings/wcj-settings-general.php:30
|
7991 |
-
#: includes/settings/wcj-settings-general.php:
|
7992 |
-
#: includes/settings/wcj-settings-general.php:
|
7993 |
-
#: includes/settings/wcj-settings-general.php:
|
7994 |
-
#: includes/settings/wcj-settings-general.php:
|
7995 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:84
|
7996 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:109
|
7997 |
#: includes/settings/wcj-settings-price-by-user-role.php:56
|
7998 |
#: includes/settings/wcj-settings-price-by-user-role.php:96
|
7999 |
#: includes/settings/wcj-settings-product-add-to-cart.php:131
|
8000 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
8001 |
#: includes/settings/wcj-settings-sku.php:283
|
8002 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-add-to-cart.php:67
|
8003 |
msgid "Disable"
|
@@ -8090,7 +8101,7 @@ msgstr ""
|
|
8090 |
#: includes/settings/wcj-settings-add-to-cart.php:21
|
8091 |
#: includes/settings/wcj-settings-add-to-cart.php:92
|
8092 |
#: includes/settings/wcj-settings-add-to-cart.php:110
|
8093 |
-
#: includes/settings/wcj-settings-general.php:
|
8094 |
#: includes/settings/wcj-settings-shipping-calculator.php:69
|
8095 |
#: includes/settings/wcj-settings-sorting.php:20
|
8096 |
#: includes/settings/wcj-settings-sorting.php:99
|
@@ -8293,11 +8304,19 @@ msgstr ""
|
|
8293 |
msgid "\"WooCommerce\" Admin Bar"
|
8294 |
msgstr ""
|
8295 |
|
8296 |
-
#: includes/settings/wcj-settings-admin-bar.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8297 |
msgid "\"Booster\" Admin Bar"
|
8298 |
msgstr ""
|
8299 |
|
8300 |
-
#: includes/settings/wcj-settings-admin-bar.php:
|
8301 |
msgid "\"Booster: Active\" Admin Bar"
|
8302 |
msgstr ""
|
8303 |
|
@@ -8413,8 +8432,8 @@ msgstr ""
|
|
8413 |
#: includes/settings/wcj-settings-product-images.php:27
|
8414 |
#: includes/settings/wcj-settings-product-images.php:34
|
8415 |
#: includes/settings/wcj-settings-product-images.php:41
|
8416 |
-
#: includes/settings/wcj-settings-related-products.php:
|
8417 |
-
#: includes/settings/wcj-settings-related-products.php:
|
8418 |
#: includes/settings/wcj-settings-sale-flash.php:35
|
8419 |
#: includes/settings/wcj-settings-sale-flash.php:42
|
8420 |
#: includes/settings/wcj-settings-sale-flash.php:49
|
@@ -8495,80 +8514,90 @@ msgstr ""
|
|
8495 |
msgid "Show Booster Menus Only to Admin"
|
8496 |
msgstr ""
|
8497 |
|
8498 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8499 |
-
|
|
|
|
|
8500 |
msgstr ""
|
8501 |
|
8502 |
#: includes/settings/wcj-settings-admin-tools.php:28
|
|
|
|
|
|
|
|
|
8503 |
#, php-format
|
8504 |
msgid "Will remove \"%s\" admin notice."
|
8505 |
msgstr ""
|
8506 |
|
8507 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8508 |
msgid ""
|
8509 |
"Connect your store to WooCommerce.com to receive extensions updates and "
|
8510 |
"support."
|
8511 |
msgstr ""
|
8512 |
|
8513 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8514 |
msgid "Suppress Admin Notices"
|
8515 |
msgstr ""
|
8516 |
|
8517 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8518 |
msgid "Will remove admin notices (including the Connect notice)."
|
8519 |
msgstr ""
|
8520 |
|
8521 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8522 |
-
msgid "
|
8523 |
msgstr ""
|
8524 |
|
8525 |
-
#: includes/settings/wcj-settings-admin-tools.php:44
|
8526 |
-
msgid "megabytes."
|
8527 |
-
msgstr ""
|
8528 |
-
|
8529 |
-
#: includes/settings/wcj-settings-admin-tools.php:45
|
8530 |
#: includes/settings/wcj-settings-admin-tools.php:54
|
8531 |
-
|
8532 |
-
#: includes/settings/wcj-settings-offer-price.php:180
|
8533 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:43
|
8534 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:52
|
8535 |
-
msgid "Set zero to disable."
|
8536 |
msgstr ""
|
8537 |
|
8538 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8539 |
-
msgid "
|
8540 |
msgstr ""
|
8541 |
|
8542 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8543 |
-
msgid "
|
8544 |
msgstr ""
|
8545 |
|
8546 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8547 |
-
msgid "Show
|
8548 |
msgstr ""
|
8549 |
|
8550 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8551 |
-
msgid "
|
8552 |
msgstr ""
|
8553 |
|
8554 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8555 |
msgid "Show Variable Product Pricing Table"
|
8556 |
msgstr ""
|
8557 |
|
8558 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8559 |
-
msgid "
|
8560 |
msgstr ""
|
8561 |
|
8562 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8563 |
-
msgid "
|
8564 |
msgstr ""
|
8565 |
|
8566 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8567 |
-
msgid "
|
8568 |
msgstr ""
|
8569 |
|
8570 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
8571 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8572 |
msgstr ""
|
8573 |
|
8574 |
#: includes/settings/wcj-settings-breadcrumbs.php:19
|
@@ -8689,7 +8718,7 @@ msgid ""
|
|
8689 |
msgstr ""
|
8690 |
|
8691 |
#: includes/settings/wcj-settings-cart.php:24
|
8692 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
8693 |
#: includes/settings/wcj-settings-mini-cart.php:19
|
8694 |
#: includes/settings/wcj-settings-my-account.php:182
|
8695 |
#: includes/settings/wcj-settings-product-custom-info.php:53
|
@@ -8697,14 +8726,14 @@ msgid "Total Blocks"
|
|
8697 |
msgstr ""
|
8698 |
|
8699 |
#: includes/settings/wcj-settings-cart.php:39
|
8700 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
8701 |
#: includes/settings/wcj-settings-mini-cart.php:34
|
8702 |
#: includes/settings/wcj-settings-my-account.php:197
|
8703 |
msgid "Info Block"
|
8704 |
msgstr ""
|
8705 |
|
8706 |
#: includes/settings/wcj-settings-cart.php:58
|
8707 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
8708 |
#: includes/settings/wcj-settings-mini-cart.php:57
|
8709 |
#: includes/settings/wcj-settings-my-account.php:255
|
8710 |
#: includes/settings/wcj-settings-product-custom-info.php:125
|
@@ -8736,6 +8765,7 @@ msgstr ""
|
|
8736 |
#: includes/settings/wcj-settings-payment-gateways-by-country.php:15
|
8737 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:17
|
8738 |
#: includes/settings/wcj-settings-payment-gateways-min-max.php:15
|
|
|
8739 |
#: includes/settings/wcj-settings-price-formats.php:15
|
8740 |
#: includes/settings/wcj-settings-product-tabs.php:15
|
8741 |
#: includes/settings/wcj-settings-shipping-by-condition.php:20
|
@@ -8946,7 +8976,7 @@ msgid "Section"
|
|
8946 |
msgstr ""
|
8947 |
|
8948 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:192
|
8949 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
8950 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:114
|
8951 |
msgid "Billing"
|
8952 |
msgstr ""
|
@@ -8998,12 +9028,6 @@ msgstr ""
|
|
8998 |
msgid "select2: Number of characters necessary to start a search."
|
8999 |
msgstr ""
|
9000 |
|
9001 |
-
#: includes/settings/wcj-settings-checkout-custom-fields.php:240
|
9002 |
-
#: includes/settings/wcj-settings-checkout-custom-fields.php:249
|
9003 |
-
#: includes/settings/wcj-settings-order-quantities.php:187
|
9004 |
-
msgid "Ignored if set to zero."
|
9005 |
-
msgstr ""
|
9006 |
-
|
9007 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:247
|
9008 |
msgid "select2: max input length"
|
9009 |
msgstr ""
|
@@ -9103,9 +9127,9 @@ msgstr ""
|
|
9103 |
|
9104 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:360
|
9105 |
#: includes/settings/wcj-settings-global-discount.php:158
|
9106 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
9107 |
#: includes/settings/wcj-settings-product-addons.php:149
|
9108 |
-
#: includes/settings/wcj-settings-related-products.php:
|
9109 |
msgid "Exclude Products"
|
9110 |
msgstr ""
|
9111 |
|
@@ -9115,7 +9139,7 @@ msgstr ""
|
|
9115 |
|
9116 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:369
|
9117 |
#: includes/settings/wcj-settings-global-discount.php:147
|
9118 |
-
#: includes/settings/wcj-settings-related-products.php:
|
9119 |
msgid "Include Products"
|
9120 |
msgstr ""
|
9121 |
|
@@ -9143,50 +9167,50 @@ msgid ""
|
|
9143 |
"disable."
|
9144 |
msgstr ""
|
9145 |
|
9146 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
9147 |
msgid "Checkout Custom Info Blocks"
|
9148 |
msgstr ""
|
9149 |
|
9150 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
9151 |
#: includes/settings/wcj-settings-checkout-files-upload.php:56
|
9152 |
#: includes/settings/wcj-settings-empty-cart.php:68
|
9153 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:112
|
9154 |
msgid "Before checkout form"
|
9155 |
msgstr ""
|
9156 |
|
9157 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
9158 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:113
|
9159 |
msgid "Before customer details"
|
9160 |
msgstr ""
|
9161 |
|
9162 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
9163 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:116
|
9164 |
msgid "After customer details"
|
9165 |
msgstr ""
|
9166 |
|
9167 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
9168 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:117
|
9169 |
msgid "Before order review"
|
9170 |
msgstr ""
|
9171 |
|
9172 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
9173 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:118
|
9174 |
msgid "Order review"
|
9175 |
msgstr ""
|
9176 |
|
9177 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
9178 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:121
|
9179 |
msgid "After order review"
|
9180 |
msgstr ""
|
9181 |
|
9182 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
9183 |
#: includes/settings/wcj-settings-checkout-files-upload.php:57
|
9184 |
#: includes/settings/wcj-settings-empty-cart.php:69
|
9185 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:122
|
9186 |
msgid "After checkout form"
|
9187 |
msgstr ""
|
9188 |
|
9189 |
-
#: includes/settings/wcj-settings-checkout-custom-info.php:
|
9190 |
msgid "Order Received (Thank You) page"
|
9191 |
msgstr ""
|
9192 |
|
@@ -9382,6 +9406,44 @@ msgstr ""
|
|
9382 |
msgid "\"Returning customer?\" Message Options"
|
9383 |
msgstr ""
|
9384 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9385 |
#: includes/settings/wcj-settings-checkout-fees.php:14
|
9386 |
msgid "Fees"
|
9387 |
msgstr ""
|
@@ -9392,7 +9454,7 @@ msgstr ""
|
|
9392 |
|
9393 |
#: includes/settings/wcj-settings-checkout-fees.php:58
|
9394 |
#: includes/settings/wcj-settings-global-discount.php:65
|
9395 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
9396 |
#: includes/settings/wcj-settings-price-by-user-role.php:32
|
9397 |
#: includes/settings/wcj-settings-purchase-data.php:77
|
9398 |
#: includes/settings/wcj-settings-wholesale-price.php:79
|
@@ -9402,7 +9464,7 @@ msgstr ""
|
|
9402 |
|
9403 |
#: includes/settings/wcj-settings-checkout-fees.php:59
|
9404 |
#: includes/settings/wcj-settings-global-discount.php:64
|
9405 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
9406 |
#: includes/settings/wcj-settings-purchase-data.php:78
|
9407 |
#: includes/settings/wcj-settings-wholesale-price.php:78
|
9408 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:18
|
@@ -9410,7 +9472,7 @@ msgid "Percent"
|
|
9410 |
msgstr ""
|
9411 |
|
9412 |
#: includes/settings/wcj-settings-checkout-fees.php:70
|
9413 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
9414 |
msgid "Taxable"
|
9415 |
msgstr ""
|
9416 |
|
@@ -9696,7 +9758,7 @@ msgstr ""
|
|
9696 |
#: includes/settings/wcj-settings-checkout-files-upload.php:421
|
9697 |
#: includes/settings/wcj-settings-currency-per-product.php:251
|
9698 |
#: includes/settings/wcj-settings-eu-vat-number.php:203
|
9699 |
-
#: includes/settings/wcj-settings-general.php:
|
9700 |
#: includes/settings/wcj-settings-payment-gateways.php:49
|
9701 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:43
|
9702 |
#: includes/settings/wcj-settings-product-by-date.php:117
|
@@ -10008,7 +10070,7 @@ msgstr ""
|
|
10008 |
|
10009 |
#: includes/settings/wcj-settings-currency-exchange-rates.php:60
|
10010 |
#: includes/settings/wcj-settings-offer-price.php:157
|
10011 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
10012 |
#: includes/settings/wcj-settings-product-by-user.php:70
|
10013 |
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:25
|
10014 |
msgid "Number of decimals"
|
@@ -10325,6 +10387,38 @@ msgstr ""
|
|
10325 |
msgid "Automatically created file: %s."
|
10326 |
msgstr ""
|
10327 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10328 |
#: includes/settings/wcj-settings-email-options.php:14
|
10329 |
msgid "Product Info in Item Name"
|
10330 |
msgstr ""
|
@@ -10795,78 +10889,101 @@ msgstr ""
|
|
10795 |
msgid "Variations"
|
10796 |
msgstr ""
|
10797 |
|
10798 |
-
#: includes/settings/wcj-settings-general.php:
|
10799 |
msgid "Shortcodes Options"
|
10800 |
msgstr ""
|
10801 |
|
10802 |
-
#: includes/settings/wcj-settings-general.php:
|
10803 |
-
msgid "
|
10804 |
msgstr ""
|
10805 |
|
10806 |
-
#: includes/settings/wcj-settings-general.php:
|
10807 |
msgid ""
|
10808 |
"This will enable all (including non Booster's) shortcodes in WordPress text "
|
10809 |
"widgets."
|
10810 |
msgstr ""
|
10811 |
|
10812 |
-
#: includes/settings/wcj-settings-general.php:
|
10813 |
-
msgid "
|
10814 |
msgstr ""
|
10815 |
|
10816 |
-
#: includes/settings/wcj-settings-general.php:
|
10817 |
-
|
|
|
|
|
|
|
10818 |
msgstr ""
|
10819 |
|
10820 |
-
#: includes/settings/wcj-settings-general.php:40
|
10821 |
#: includes/settings/wcj-settings-general.php:45
|
10822 |
-
msgid "
|
10823 |
msgstr ""
|
10824 |
|
10825 |
-
#: includes/settings/wcj-settings-general.php:
|
10826 |
-
msgid "
|
10827 |
msgstr ""
|
10828 |
|
10829 |
-
#: includes/settings/wcj-settings-general.php:
|
|
|
|
|
|
|
|
|
|
|
10830 |
msgid "Session Type in Booster"
|
10831 |
msgstr ""
|
10832 |
|
10833 |
-
#: includes/settings/wcj-settings-general.php:
|
10834 |
msgid "Standard PHP sessions"
|
10835 |
msgstr ""
|
10836 |
|
10837 |
-
#: includes/settings/wcj-settings-general.php:
|
10838 |
msgid "WC sessions"
|
10839 |
msgstr ""
|
10840 |
|
10841 |
-
#: includes/settings/wcj-settings-general.php:
|
10842 |
-
msgid "
|
|
|
|
|
|
|
|
|
10843 |
msgstr ""
|
10844 |
|
10845 |
-
#: includes/settings/wcj-settings-general.php:
|
10846 |
-
msgid "Datepicker/Weekpicker CSS"
|
10847 |
msgstr ""
|
10848 |
|
10849 |
-
#: includes/settings/wcj-settings-general.php:
|
10850 |
-
msgid "
|
10851 |
msgstr ""
|
10852 |
|
10853 |
-
#: includes/settings/wcj-settings-general.php:
|
10854 |
-
msgid "
|
10855 |
msgstr ""
|
10856 |
|
10857 |
-
#: includes/settings/wcj-settings-general.php:
|
10858 |
-
msgid "
|
10859 |
msgstr ""
|
10860 |
|
10861 |
-
#: includes/settings/wcj-settings-general.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10862 |
msgid "PayPal Email per Product Options"
|
10863 |
msgstr ""
|
10864 |
|
10865 |
-
#: includes/settings/wcj-settings-general.php:
|
10866 |
msgid "PayPal Email per Product"
|
10867 |
msgstr ""
|
10868 |
|
10869 |
-
#: includes/settings/wcj-settings-general.php:
|
10870 |
#: includes/settings/wcj-settings-max-products-per-user.php:44
|
10871 |
#: includes/settings/wcj-settings-product-by-date.php:54
|
10872 |
#: includes/settings/wcj-settings-product-by-time.php:54
|
@@ -10874,43 +10991,72 @@ msgstr ""
|
|
10874 |
msgid "This will add new meta box to each product's edit page."
|
10875 |
msgstr ""
|
10876 |
|
10877 |
-
#: includes/settings/wcj-settings-general.php:
|
10878 |
msgid "Session Expiration Options"
|
10879 |
msgstr ""
|
10880 |
|
10881 |
-
#: includes/settings/wcj-settings-general.php:
|
10882 |
-
#: includes/settings/wcj-settings-general.php:
|
10883 |
msgid "Session Expiration"
|
10884 |
msgstr ""
|
10885 |
|
10886 |
-
#: includes/settings/wcj-settings-general.php:
|
10887 |
msgid "Session Expiring"
|
10888 |
msgstr ""
|
10889 |
|
10890 |
-
#: includes/settings/wcj-settings-general.php:
|
10891 |
msgid "In seconds. Default: 47 hours (60 * 60 * 47)"
|
10892 |
msgstr ""
|
10893 |
|
10894 |
-
#: includes/settings/wcj-settings-general.php:
|
10895 |
msgid "In seconds. Default: 48 hours (60 * 60 * 48)"
|
10896 |
msgstr ""
|
10897 |
|
10898 |
-
#: includes/settings/wcj-settings-general.php:
|
10899 |
msgid "Booster User Roles Changer Options"
|
10900 |
msgstr ""
|
10901 |
|
10902 |
-
#: includes/settings/wcj-settings-general.php:
|
10903 |
msgid "This will add user roles changer tool to admin bar."
|
10904 |
msgstr ""
|
10905 |
|
10906 |
-
#: includes/settings/wcj-settings-general.php:
|
10907 |
msgid "Booster User Roles Changer"
|
10908 |
msgstr ""
|
10909 |
|
10910 |
-
#: includes/settings/wcj-settings-general.php:
|
10911 |
msgid "Enabled for"
|
10912 |
msgstr ""
|
10913 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10914 |
#: includes/settings/wcj-settings-global-discount.php:24
|
10915 |
msgid "Total Groups"
|
10916 |
msgstr ""
|
@@ -10993,7 +11139,7 @@ msgid "Only products that are not on sale"
|
|
10993 |
msgstr ""
|
10994 |
|
10995 |
#: includes/settings/wcj-settings-global-discount.php:110
|
10996 |
-
#: includes/settings/wcj-settings-related-products.php:
|
10997 |
msgid "Include Product Categories"
|
10998 |
msgstr ""
|
10999 |
|
@@ -11004,7 +11150,7 @@ msgid ""
|
|
11004 |
msgstr ""
|
11005 |
|
11006 |
#: includes/settings/wcj-settings-global-discount.php:119
|
11007 |
-
#: includes/settings/wcj-settings-related-products.php:
|
11008 |
msgid "Exclude Product Categories"
|
11009 |
msgstr ""
|
11010 |
|
@@ -11015,7 +11161,7 @@ msgid ""
|
|
11015 |
msgstr ""
|
11016 |
|
11017 |
#: includes/settings/wcj-settings-global-discount.php:128
|
11018 |
-
#: includes/settings/wcj-settings-related-products.php:
|
11019 |
msgid "Include Product Tags"
|
11020 |
msgstr ""
|
11021 |
|
@@ -11026,7 +11172,7 @@ msgid ""
|
|
11026 |
msgstr ""
|
11027 |
|
11028 |
#: includes/settings/wcj-settings-global-discount.php:137
|
11029 |
-
#: includes/settings/wcj-settings-related-products.php:
|
11030 |
msgid "Exclude Product Tags"
|
11031 |
msgstr ""
|
11032 |
|
@@ -11049,7 +11195,7 @@ msgid ""
|
|
11049 |
msgstr ""
|
11050 |
|
11051 |
#: includes/settings/wcj-settings-global-discount.php:175
|
11052 |
-
#: includes/settings/wcj-settings-product-price-by-formula.php:
|
11053 |
msgid "Advanced Settings"
|
11054 |
msgstr ""
|
11055 |
|
@@ -11064,7 +11210,7 @@ msgid ""
|
|
11064 |
msgstr ""
|
11065 |
|
11066 |
#: includes/settings/wcj-settings-global-discount.php:188
|
11067 |
-
#: includes/settings/wcj-settings-product-price-by-formula.php:
|
11068 |
msgid "Price Filters Priority"
|
11069 |
msgstr ""
|
11070 |
|
@@ -11074,7 +11220,8 @@ msgstr ""
|
|
11074 |
#: includes/settings/wcj-settings-price-by-country.php:157
|
11075 |
#: includes/settings/wcj-settings-price-by-user-role.php:70
|
11076 |
#: includes/settings/wcj-settings-product-addons.php:242
|
11077 |
-
#: includes/settings/wcj-settings-product-price-by-formula.php:
|
|
|
11078 |
msgid ""
|
11079 |
"Priority for all module's price filters. Set to zero to use default priority."
|
11080 |
msgstr ""
|
@@ -11172,23 +11319,39 @@ msgstr ""
|
|
11172 |
msgid "Maximum Allowed Each Product's Quantity per User"
|
11173 |
msgstr ""
|
11174 |
|
11175 |
-
#: includes/settings/wcj-settings-max-products-per-user.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11176 |
#: includes/settings/wcj-settings-offer-price.php:203
|
11177 |
msgid "Customer Message"
|
11178 |
msgstr ""
|
11179 |
|
11180 |
-
#: includes/settings/wcj-settings-max-products-per-user.php:
|
11181 |
msgid "Block Checkout Page"
|
11182 |
msgstr ""
|
11183 |
|
11184 |
-
#: includes/settings/wcj-settings-max-products-per-user.php:
|
11185 |
msgid ""
|
11186 |
"This will stop customer from accessing the checkout page on exceeded "
|
11187 |
"quantities. Customer will be redirected to the cart page."
|
11188 |
msgstr ""
|
11189 |
|
11190 |
-
#: includes/settings/wcj-settings-max-products-per-user.php:
|
11191 |
-
#: includes/settings/wcj-settings-max-products-per-user.php:
|
11192 |
msgid "Calculate Data"
|
11193 |
msgstr ""
|
11194 |
|
@@ -11260,6 +11423,7 @@ msgstr ""
|
|
11260 |
#: includes/settings/wcj-settings-price-by-country.php:156
|
11261 |
#: includes/settings/wcj-settings-price-by-user-role.php:69
|
11262 |
#: includes/settings/wcj-settings-product-addons.php:241
|
|
|
11263 |
msgid "Advanced: Price Filters Priority"
|
11264 |
msgstr ""
|
11265 |
|
@@ -11322,7 +11486,7 @@ msgid "Revert on both cart & checkout pages"
|
|
11322 |
msgstr ""
|
11323 |
|
11324 |
#: includes/settings/wcj-settings-multicurrency.php:72
|
11325 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
11326 |
#: includes/settings/wcj-settings-product-price-by-formula.php:64
|
11327 |
msgid "Rounding"
|
11328 |
msgstr ""
|
@@ -11394,7 +11558,7 @@ msgid "Roles"
|
|
11394 |
msgstr ""
|
11395 |
|
11396 |
#: includes/settings/wcj-settings-multicurrency.php:186
|
11397 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
11398 |
msgid "Save settings after you change this option. Leave blank to disable."
|
11399 |
msgstr ""
|
11400 |
|
@@ -11494,8 +11658,8 @@ msgid ""
|
|
11494 |
msgstr ""
|
11495 |
|
11496 |
#: includes/settings/wcj-settings-my-account.php:143
|
11497 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
11498 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
11499 |
#: includes/settings/wcj-settings-stock.php:42
|
11500 |
#: includes/settings/wcj-settings-stock.php:55
|
11501 |
msgid "Ignored if empty."
|
@@ -11987,7 +12151,7 @@ msgstr ""
|
|
11987 |
|
11988 |
#: includes/settings/wcj-settings-order-min-amount.php:29
|
11989 |
#: includes/settings/wcj-settings-order-min-amount.php:36
|
11990 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
11991 |
msgid "Exclude"
|
11992 |
msgstr ""
|
11993 |
|
@@ -12602,84 +12766,93 @@ msgstr ""
|
|
12602 |
msgid "Fee (or discount) title to show to customer."
|
12603 |
msgstr ""
|
12604 |
|
12605 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12606 |
msgid "Fee (or Discount) Type"
|
12607 |
msgstr ""
|
12608 |
|
12609 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12610 |
msgid "Percent or fixed value."
|
12611 |
msgstr ""
|
12612 |
|
12613 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12614 |
msgid "Fee (or Discount) Value"
|
12615 |
msgstr ""
|
12616 |
|
12617 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12618 |
msgid "The value. For discount enter a negative number."
|
12619 |
msgstr ""
|
12620 |
|
12621 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12622 |
msgid "Minimum Cart Amount"
|
12623 |
msgstr ""
|
12624 |
|
12625 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12626 |
msgid "Minimum cart amount for adding the fee (or discount)."
|
12627 |
msgstr ""
|
12628 |
|
12629 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12630 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12631 |
msgid "Set 0 to disable."
|
12632 |
msgstr ""
|
12633 |
|
12634 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12635 |
msgid "Maximum Cart Amount"
|
12636 |
msgstr ""
|
12637 |
|
12638 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12639 |
msgid "Maximum cart amount for adding the fee (or discount)."
|
12640 |
msgstr ""
|
12641 |
|
12642 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12643 |
msgid "Round the fee (or discount) value before adding to the cart."
|
12644 |
msgstr ""
|
12645 |
|
12646 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12647 |
msgid "If rounding is enabled, set precision (i.e. number of decimals) here."
|
12648 |
msgstr ""
|
12649 |
|
12650 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12651 |
msgid "Tax class"
|
12652 |
msgstr ""
|
12653 |
|
12654 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12655 |
msgid "If taxing is enabled, set tax class here."
|
12656 |
msgstr ""
|
12657 |
|
12658 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12659 |
msgid "Standard Rate"
|
12660 |
msgstr ""
|
12661 |
|
12662 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12663 |
msgid "Exclude Shipping when Calculating Total Cart Amount"
|
12664 |
msgstr ""
|
12665 |
|
12666 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
|
|
12667 |
msgid ""
|
12668 |
"This affects \"Percent\" type fees and \"Minimum/Maximum Cart Amount\" "
|
12669 |
"options."
|
12670 |
msgstr ""
|
12671 |
|
12672 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12673 |
msgid "Require Products"
|
12674 |
msgstr ""
|
12675 |
|
12676 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12677 |
msgid ""
|
12678 |
"Require at least one of selected products to be in cart for fee to be "
|
12679 |
"applied."
|
12680 |
msgstr ""
|
12681 |
|
12682 |
-
#: includes/settings/wcj-settings-payment-gateways-fees.php:
|
12683 |
msgid "Do not apply fee, if at least one of selected products is in cart."
|
12684 |
msgstr ""
|
12685 |
|
@@ -12740,49 +12913,61 @@ msgstr ""
|
|
12740 |
msgid "Max"
|
12741 |
msgstr ""
|
12742 |
|
12743 |
-
#: includes/settings/wcj-settings-payment-gateways-per-category.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12744 |
#: includes/settings/wcj-settings-price-labels.php:125
|
12745 |
#: includes/settings/wcj-settings-product-input-fields.php:110
|
12746 |
msgid "Product Categories - Include"
|
12747 |
msgstr ""
|
12748 |
|
12749 |
-
#: includes/settings/wcj-settings-payment-gateways-per-category.php:
|
12750 |
msgid ""
|
12751 |
"Show gateway only if there is product of selected category in cart. Leave "
|
12752 |
"blank to disable the option."
|
12753 |
msgstr ""
|
12754 |
|
12755 |
-
#: includes/settings/wcj-settings-payment-gateways-per-category.php:
|
12756 |
#: includes/settings/wcj-settings-price-labels.php:134
|
12757 |
#: includes/settings/wcj-settings-product-input-fields.php:121
|
12758 |
msgid "Product Categories - Exclude"
|
12759 |
msgstr ""
|
12760 |
|
12761 |
-
#: includes/settings/wcj-settings-payment-gateways-per-category.php:
|
12762 |
msgid ""
|
12763 |
"Hide gateway if there is product of selected category in cart. Leave blank "
|
12764 |
"to disable the option."
|
12765 |
msgstr ""
|
12766 |
|
12767 |
-
#: includes/settings/wcj-settings-payment-gateways-per-category.php:
|
12768 |
#: includes/settings/wcj-settings-price-labels.php:107
|
12769 |
#: includes/settings/wcj-settings-product-input-fields.php:155
|
12770 |
msgid "Products - Include"
|
12771 |
msgstr ""
|
12772 |
|
12773 |
-
#: includes/settings/wcj-settings-payment-gateways-per-category.php:
|
12774 |
msgid ""
|
12775 |
"Show gateway only if there is selected products in cart. Leave blank to "
|
12776 |
"disable the option."
|
12777 |
msgstr ""
|
12778 |
|
12779 |
-
#: includes/settings/wcj-settings-payment-gateways-per-category.php:
|
12780 |
#: includes/settings/wcj-settings-price-labels.php:116
|
12781 |
#: includes/settings/wcj-settings-product-input-fields.php:167
|
12782 |
msgid "Products - Exclude"
|
12783 |
msgstr ""
|
12784 |
|
12785 |
-
#: includes/settings/wcj-settings-payment-gateways-per-category.php:
|
12786 |
msgid ""
|
12787 |
"Hide gateway if there is selected products in cart. Leave blank to disable "
|
12788 |
"the option."
|
@@ -14152,14 +14337,14 @@ msgstr ""
|
|
14152 |
|
14153 |
#: includes/settings/wcj-settings-product-addons.php:248
|
14154 |
#: includes/settings/wcj-settings-product-bookings.php:98
|
14155 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
14156 |
msgid "Advanced: Check for Outputted Data"
|
14157 |
msgstr ""
|
14158 |
|
14159 |
#: includes/settings/wcj-settings-product-addons.php:250
|
14160 |
#: includes/settings/wcj-settings-product-bookings.php:100
|
14161 |
#: includes/settings/wcj-settings-product-input-fields.php:337
|
14162 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
14163 |
msgid ""
|
14164 |
"Ensures that data outputted only once. Enable this if you see data outputted "
|
14165 |
"on frontend twice. Disable if you see no data outputted."
|
@@ -14616,7 +14801,7 @@ msgstr ""
|
|
14616 |
#: includes/settings/wcj-settings-product-images.php:67
|
14617 |
#: includes/settings/wcj-settings-products-xml.php:111
|
14618 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:18
|
14619 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:
|
14620 |
msgid "You can use shortcodes here."
|
14621 |
msgstr ""
|
14622 |
|
@@ -15191,29 +15376,29 @@ msgstr ""
|
|
15191 |
msgid "Message on Price too Small"
|
15192 |
msgstr ""
|
15193 |
|
15194 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
15195 |
msgid "Message on Price too Big"
|
15196 |
msgstr ""
|
15197 |
|
15198 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
15199 |
msgid "Disable Quantity Input"
|
15200 |
msgstr ""
|
15201 |
|
15202 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
15203 |
msgid "Enable JS Min/Max Validation"
|
15204 |
msgstr ""
|
15205 |
|
15206 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
15207 |
msgid "Display Product Price Info in Archives"
|
15208 |
msgstr ""
|
15209 |
|
15210 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
15211 |
msgid ""
|
15212 |
"Product price info in archives template. Replaceable values: <code>"
|
15213 |
"%default_price%</code>, <code>%min_price%</code>, <code>%max_price%</code>."
|
15214 |
msgstr ""
|
15215 |
|
15216 |
-
#: includes/settings/wcj-settings-product-open-pricing.php:
|
15217 |
msgid "Add \"Open Pricing\" Column to Admin Product List"
|
15218 |
msgstr ""
|
15219 |
|
@@ -15253,6 +15438,25 @@ msgstr ""
|
|
15253 |
msgid "No rounding (disabled)"
|
15254 |
msgstr ""
|
15255 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15256 |
#: includes/settings/wcj-settings-product-tabs.php:20
|
15257 |
msgid "Content Processing"
|
15258 |
msgstr ""
|
@@ -15862,41 +16066,50 @@ msgstr ""
|
|
15862 |
msgid "Relate Manually: Select box type"
|
15863 |
msgstr ""
|
15864 |
|
15865 |
-
#: includes/settings/wcj-settings-related-products.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15866 |
msgid "Hide Related Products"
|
15867 |
msgstr ""
|
15868 |
|
15869 |
-
#: includes/settings/wcj-settings-related-products.php:
|
15870 |
msgid ""
|
15871 |
"Set this field to hide related products on selected product categories only. "
|
15872 |
"Leave blank to hide on all products."
|
15873 |
msgstr ""
|
15874 |
|
15875 |
-
#: includes/settings/wcj-settings-related-products.php:
|
15876 |
msgid ""
|
15877 |
"Set this field to NOT hide related products on selected product categories. "
|
15878 |
"Leave blank to hide on all products."
|
15879 |
msgstr ""
|
15880 |
|
15881 |
-
#: includes/settings/wcj-settings-related-products.php:
|
15882 |
msgid ""
|
15883 |
"Set this field to hide related products on selected product tags only. Leave "
|
15884 |
"blank to hide on all products."
|
15885 |
msgstr ""
|
15886 |
|
15887 |
-
#: includes/settings/wcj-settings-related-products.php:
|
15888 |
msgid ""
|
15889 |
"Set this field to NOT hide related products on selected product tags. Leave "
|
15890 |
"blank to hide on all products."
|
15891 |
msgstr ""
|
15892 |
|
15893 |
-
#: includes/settings/wcj-settings-related-products.php:
|
15894 |
msgid ""
|
15895 |
"Set this field to hide related products on selected products only. Leave "
|
15896 |
"blank to hide on all products."
|
15897 |
msgstr ""
|
15898 |
|
15899 |
-
#: includes/settings/wcj-settings-related-products.php:
|
15900 |
msgid ""
|
15901 |
"Set this field to NOT hide related products on selected products. Leave "
|
15902 |
"blank to hide on all products."
|
@@ -16857,21 +17070,37 @@ msgstr ""
|
|
16857 |
|
16858 |
#: includes/settings/wcj-settings-tax-display.php:122
|
16859 |
#, php-format
|
16860 |
-
msgid "Role: %s"
|
16861 |
msgstr ""
|
16862 |
|
16863 |
-
#: includes/settings/wcj-settings-tax-display.php:
|
16864 |
-
msgid "
|
16865 |
msgstr ""
|
16866 |
|
16867 |
#: includes/settings/wcj-settings-tax-display.php:128
|
16868 |
-
|
|
|
16869 |
msgstr ""
|
16870 |
|
16871 |
#: includes/settings/wcj-settings-tax-display.php:129
|
|
|
|
|
|
|
|
|
|
|
|
|
16872 |
msgid "Excluding tax"
|
16873 |
msgstr ""
|
16874 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16875 |
#: includes/settings/wcj-settings-template-editor.php:25
|
16876 |
msgid "Templates to Edit"
|
16877 |
msgstr ""
|
@@ -17108,46 +17337,46 @@ msgstr ""
|
|
17108 |
msgid "Disable wholesale pricing for products with \"Price Changes\""
|
17109 |
msgstr ""
|
17110 |
|
17111 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17112 |
msgid "Wholesale Levels Options"
|
17113 |
msgstr ""
|
17114 |
|
17115 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17116 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17117 |
msgid "Number of Levels"
|
17118 |
msgstr ""
|
17119 |
|
17120 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17121 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17122 |
msgid "Min Quantity"
|
17123 |
msgstr ""
|
17124 |
|
17125 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17126 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17127 |
msgid "Minimum quantity to apply discount"
|
17128 |
msgstr ""
|
17129 |
|
17130 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17131 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17132 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17133 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17134 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:72
|
17135 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:108
|
17136 |
msgid "Discount"
|
17137 |
msgstr ""
|
17138 |
|
17139 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17140 |
msgid "Additional User Roles Options"
|
17141 |
msgstr ""
|
17142 |
|
17143 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17144 |
msgid ""
|
17145 |
"If you want to set different wholesale pricing options for different user "
|
17146 |
"roles, fill this section. Please note that you can also use Booster's "
|
17147 |
"\"Price based on User Role\" module without filling this section."
|
17148 |
msgstr ""
|
17149 |
|
17150 |
-
#: includes/settings/wcj-settings-wholesale-price.php:
|
17151 |
msgid "User Roles Settings"
|
17152 |
msgstr ""
|
17153 |
|
@@ -17368,19 +17597,19 @@ msgstr ""
|
|
17368 |
msgid "Replace image with custom HTML on single product page"
|
17369 |
msgstr ""
|
17370 |
|
17371 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:
|
17372 |
msgid "Replace image with custom HTML on archives"
|
17373 |
msgstr ""
|
17374 |
|
17375 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:
|
17376 |
msgid "Hide Image on Single"
|
17377 |
msgstr ""
|
17378 |
|
17379 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:
|
17380 |
msgid "Hide Thumbnails on Single"
|
17381 |
msgstr ""
|
17382 |
|
17383 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:
|
17384 |
msgid "Hide Image on Archives"
|
17385 |
msgstr ""
|
17386 |
|
@@ -17406,13 +17635,13 @@ msgstr ""
|
|
17406 |
msgid "Number of Parameters"
|
17407 |
msgstr ""
|
17408 |
|
17409 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:
|
17410 |
msgid ""
|
17411 |
"If enabled and no products selected - will hide related products section on "
|
17412 |
"frontend for current product."
|
17413 |
msgstr ""
|
17414 |
|
17415 |
-
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:
|
17416 |
msgid ""
|
17417 |
"Hold Control (Ctrl) key to select multiple products. Ctrl and \"A\" to "
|
17418 |
"select all products."
|
@@ -17559,11 +17788,11 @@ msgstr ""
|
|
17559 |
msgid "Enable Custom Shipping"
|
17560 |
msgstr ""
|
17561 |
|
17562 |
-
#: includes/shortcodes/class-wcj-shortcodes-general.php:
|
17563 |
msgid "Tax toggle (incl.)"
|
17564 |
msgstr ""
|
17565 |
|
17566 |
-
#: includes/shortcodes/class-wcj-shortcodes-general.php:
|
17567 |
msgid "Tax toggle (excl.)"
|
17568 |
msgstr ""
|
17569 |
|
@@ -17571,14 +17800,6 @@ msgstr ""
|
|
17571 |
msgid "Attribute \"name\" is required!"
|
17572 |
msgstr ""
|
17573 |
|
17574 |
-
#: includes/shortcodes/class-wcj-shortcodes-orders.php:113
|
17575 |
-
msgid "Dollars"
|
17576 |
-
msgstr ""
|
17577 |
-
|
17578 |
-
#: includes/shortcodes/class-wcj-shortcodes-orders.php:114
|
17579 |
-
msgid "Cents"
|
17580 |
-
msgstr ""
|
17581 |
-
|
17582 |
#: includes/shortcodes/class-wcj-shortcodes-products-add-form.php:54
|
17583 |
msgid "Product by User"
|
17584 |
msgstr ""
|
67 |
msgid "Manage Settings"
|
68 |
msgstr ""
|
69 |
|
70 |
+
#: includes/class-wcj-admin-bar.php:168 includes/class-wcj-admin-bar.php:508
|
71 |
+
#: includes/class-wcj-admin-bar.php:608
|
72 |
#: includes/admin/class-wc-settings-jetpack.php:219
|
73 |
#: includes/admin/class-wc-settings-jetpack.php:414
|
74 |
#: includes/core/class-wcj-admin.php:113
|
95 |
msgstr ""
|
96 |
|
97 |
#: includes/class-wcj-admin-bar.php:245 includes/class-wcj-admin-bar.php:288
|
98 |
+
#: includes/class-wcj-admin-bar.php:632
|
99 |
#: includes/classes/class-wcj-module.php:522
|
100 |
#: includes/settings/wcj-settings-wpml.php:74
|
101 |
msgid "Tools"
|
112 |
#: includes/class-wcj-admin-bar.php:276
|
113 |
#: includes/class-wcj-checkout-files-upload.php:218
|
114 |
#: includes/class-wcj-eu-vat-number.php:126
|
115 |
+
#: includes/class-wcj-max-products-per-user.php:124
|
116 |
#: includes/class-wcj-orders.php:124 includes/class-wcj-orders.php:153
|
117 |
#: includes/class-wcj-payment-gateways.php:91
|
118 |
#: includes/class-wcj-track-users.php:163
|
170 |
msgid "Year"
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: includes/class-wcj-admin-bar.php:384
|
174 |
#: includes/admin/class-wc-settings-jetpack.php:217
|
175 |
#: includes/settings/wcj-settings-emails-verification.php:138
|
176 |
#: includes/settings/wcj-settings-price-by-country.php:168
|
177 |
msgid "WooCommerce"
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: includes/class-wcj-admin-bar.php:387
|
181 |
msgid "WooCommerce settings"
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: includes/class-wcj-admin-bar.php:391 includes/class-wcj-admin-bar.php:395
|
185 |
+
#: includes/class-wcj-admin-bar.php:413 includes/class-wcj-my-account.php:32
|
186 |
#: includes/class-wcj-my-account.php:40 includes/class-wcj-orders.php:26
|
187 |
#: includes/reports/wcj-class-reports-sales-gateways.php:153
|
188 |
#: includes/settings/wcj-settings-reports.php:21
|
192 |
msgid "Orders"
|
193 |
msgstr ""
|
194 |
|
195 |
+
#: includes/class-wcj-admin-bar.php:399
|
196 |
msgid "Add order"
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: includes/class-wcj-admin-bar.php:403 includes/class-wcj-admin-bar.php:418
|
200 |
#: includes/settings/wcj-settings-reports.php:135
|
201 |
#: includes/settings/wcj-settings-reports.php:141
|
202 |
msgid "Customers"
|
203 |
msgstr ""
|
204 |
|
205 |
+
#: includes/class-wcj-admin-bar.php:409 includes/class-wcj-reports.php:33
|
206 |
msgid "Reports"
|
207 |
msgstr ""
|
208 |
|
209 |
+
#: includes/class-wcj-admin-bar.php:422
|
210 |
msgid "Customers vs. guests"
|
211 |
msgstr ""
|
212 |
|
213 |
+
#: includes/class-wcj-admin-bar.php:426
|
214 |
msgid "Customer list"
|
215 |
msgstr ""
|
216 |
|
217 |
+
#: includes/class-wcj-admin-bar.php:432 includes/class-wcj-stock.php:27
|
218 |
#: includes/reports/wcj-class-reports-stock.php:272
|
219 |
#: includes/settings/wcj-settings-reports.php:156
|
220 |
#: includes/settings/wcj-settings-reports.php:162
|
222 |
msgid "Stock"
|
223 |
msgstr ""
|
224 |
|
225 |
+
#: includes/class-wcj-admin-bar.php:436
|
226 |
msgid "Low in stock"
|
227 |
msgstr ""
|
228 |
|
229 |
+
#: includes/class-wcj-admin-bar.php:440
|
230 |
#: includes/settings/wcj-settings-stock.php:101
|
231 |
#: includes/shortcodes/class-wcj-shortcodes-products.php:565
|
232 |
msgid "Out of stock"
|
233 |
msgstr ""
|
234 |
|
235 |
+
#: includes/class-wcj-admin-bar.php:444
|
236 |
msgid "Most Stocked"
|
237 |
msgstr ""
|
238 |
|
239 |
+
#: includes/class-wcj-admin-bar.php:450
|
240 |
#: includes/class-wcj-eu-vat-number.php:190
|
241 |
msgid "Taxes"
|
242 |
msgstr ""
|
243 |
|
244 |
+
#: includes/class-wcj-admin-bar.php:454
|
245 |
msgid "Taxes by code"
|
246 |
msgstr ""
|
247 |
|
248 |
+
#: includes/class-wcj-admin-bar.php:458
|
249 |
msgid "Taxes by date"
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: includes/class-wcj-admin-bar.php:466 includes/class-wcj-admin-bar.php:470
|
253 |
+
#: includes/class-wcj-admin-bar.php:516
|
254 |
#: includes/class-wcj-product-bulk-meta-editor.php:263
|
255 |
#: includes/class-wcj-product-by-user.php:96
|
256 |
#: includes/class-wcj-product-by-user.php:132
|
261 |
msgid "Products"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: includes/class-wcj-admin-bar.php:474
|
265 |
msgid "Add product"
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: includes/class-wcj-admin-bar.php:478
|
269 |
#: includes/class-wcj-product-bulk-price-converter.php:149
|
270 |
#: includes/class-wcj-sku.php:538
|
271 |
#: includes/export/class-wcj-fields-helper.php:318
|
275 |
msgid "Categories"
|
276 |
msgstr ""
|
277 |
|
278 |
+
#: includes/class-wcj-admin-bar.php:483
|
279 |
#: includes/export/class-wcj-fields-helper.php:319
|
280 |
#: includes/settings/wcj-settings-product-by-user.php:20
|
281 |
#: includes/shortcodes/class-wcj-shortcodes-products-add-form.php:183
|
283 |
msgid "Tags"
|
284 |
msgstr ""
|
285 |
|
286 |
+
#: includes/class-wcj-admin-bar.php:488
|
287 |
msgid "Attributes"
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: includes/class-wcj-admin-bar.php:494 includes/class-wcj-admin-bar.php:498
|
291 |
msgid "Coupons"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: includes/class-wcj-admin-bar.php:502
|
295 |
msgid "Add coupon"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: includes/class-wcj-admin-bar.php:512 includes/class-wcj-admin-bar.php:520
|
299 |
#: includes/class-wcj-general.php:24 includes/class-wcj-pdf-invoicing.php:24
|
300 |
#: includes/settings/wcj-settings-related-products.php:38
|
301 |
msgid "General"
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: includes/class-wcj-admin-bar.php:524
|
305 |
#: includes/settings/wcj-settings-eu-vat-number.php:146
|
306 |
#: includes/settings/wcj-settings-product-msrp.php:25
|
307 |
msgid "Display"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: includes/class-wcj-admin-bar.php:528
|
311 |
msgid "Inventory"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: includes/class-wcj-admin-bar.php:532
|
315 |
msgid "Downloadable products"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: includes/class-wcj-admin-bar.php:538
|
319 |
msgid "Tax"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: includes/class-wcj-admin-bar.php:542
|
323 |
msgid "Tax options"
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: includes/class-wcj-admin-bar.php:546
|
327 |
msgid "Standard rates"
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: includes/class-wcj-admin-bar.php:552
|
331 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:193
|
332 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:57
|
333 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:115
|
334 |
#: includes/settings/wcj-settings-price-by-user-role.php:46
|
335 |
msgid "Shipping"
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: includes/class-wcj-admin-bar.php:556
|
339 |
msgid "Shipping zones"
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: includes/class-wcj-admin-bar.php:560
|
343 |
msgid "Shipping options"
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: includes/class-wcj-admin-bar.php:564
|
347 |
msgid "Shipping classes"
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: includes/class-wcj-admin-bar.php:570
|
351 |
msgid "Checkout"
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: includes/class-wcj-admin-bar.php:574
|
355 |
msgid "Checkout options"
|
356 |
msgstr ""
|
357 |
|
358 |
+
#: includes/class-wcj-admin-bar.php:578
|
359 |
msgid "BACS"
|
360 |
msgstr ""
|
361 |
|
362 |
+
#: includes/class-wcj-admin-bar.php:582
|
363 |
msgid "Check payments"
|
364 |
msgstr ""
|
365 |
|
366 |
+
#: includes/class-wcj-admin-bar.php:586
|
367 |
msgid "Cash on delivery"
|
368 |
msgstr ""
|
369 |
|
370 |
+
#: includes/class-wcj-admin-bar.php:590
|
371 |
msgid "PayPal"
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: includes/class-wcj-admin-bar.php:596
|
375 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:195
|
376 |
msgid "Account"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: includes/class-wcj-admin-bar.php:600
|
380 |
msgid "Emails"
|
381 |
msgstr ""
|
382 |
|
383 |
+
#: includes/class-wcj-admin-bar.php:604
|
384 |
msgid "API"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: includes/class-wcj-admin-bar.php:612
|
388 |
msgid "Keys/Apps"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: includes/class-wcj-admin-bar.php:616
|
392 |
msgid "Webhooks"
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: includes/class-wcj-admin-bar.php:624 includes/class-wcj-admin-bar.php:628
|
396 |
msgid "System status"
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: includes/class-wcj-admin-bar.php:636
|
400 |
msgid "Logs"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: includes/class-wcj-admin-bar.php:642
|
404 |
msgid "Extensions"
|
405 |
msgstr ""
|
406 |
|
457 |
msgstr ""
|
458 |
|
459 |
#: includes/class-wcj-admin-tools.php:25
|
460 |
+
msgid "Booster for WooCommerce general back-end tools."
|
461 |
msgstr ""
|
462 |
|
463 |
#: includes/class-wcj-admin-tools.php:31
|
464 |
+
msgid "Products Attributes"
|
465 |
msgstr ""
|
466 |
|
467 |
#: includes/class-wcj-admin-tools.php:32
|
468 |
+
msgid "All Products and All Attributes."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
469 |
msgstr ""
|
470 |
|
471 |
+
#: includes/class-wcj-admin-tools.php:126
|
472 |
#: includes/settings/wcj-settings-export.php:157
|
473 |
#: includes/settings/wcj-settings-export.php:236
|
474 |
msgid "Product Meta"
|
475 |
msgstr ""
|
476 |
|
477 |
+
#: includes/class-wcj-admin-tools.php:143
|
478 |
#: includes/settings/wcj-settings-export.php:86
|
479 |
#: includes/settings/wcj-settings-export.php:154
|
480 |
msgid "Order Meta"
|
481 |
msgstr ""
|
482 |
|
483 |
+
#: includes/class-wcj-admin-tools.php:177
|
484 |
msgid "Order Items Meta"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: includes/class-wcj-admin-tools.php:179
|
488 |
msgid "Item Key"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: includes/class-wcj-admin-tools.php:179
|
492 |
msgid "Item Meta Key"
|
493 |
msgstr ""
|
494 |
|
495 |
+
#: includes/class-wcj-admin-tools.php:179
|
496 |
msgid "Item Meta Value"
|
497 |
msgstr ""
|
498 |
|
499 |
+
#: includes/class-wcj-admin-tools.php:214
|
500 |
+
#: includes/class-wcj-admin-tools.php:256
|
501 |
+
#: includes/class-wcj-admin-tools.php:265
|
502 |
+
#: includes/class-wcj-product-bulk-meta-editor.php:339
|
503 |
+
#: includes/class-wcj-product-bulk-price-converter.php:148
|
504 |
+
#: includes/class-wcj-sku.php:537
|
505 |
+
#: includes/reports/wcj-class-reports-sales.php:197
|
506 |
+
#: includes/reports/wcj-class-reports-stock.php:269
|
507 |
+
msgid "Product"
|
508 |
msgstr ""
|
509 |
|
510 |
+
#: includes/class-wcj-admin-tools.php:215
|
511 |
+
#: includes/class-wcj-admin-tools.php:257
|
512 |
+
#: includes/class-wcj-admin-tools.php:266
|
513 |
+
#: includes/reports/wcj-class-reports-stock.php:270
|
514 |
+
msgid "Category"
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: includes/class-wcj-admin-tools.php:282
|
518 |
+
msgid "Total Products:"
|
519 |
msgstr ""
|
520 |
|
521 |
#: includes/class-wcj-breadcrumbs.php:28
|
597 |
"and more."
|
598 |
msgstr ""
|
599 |
|
600 |
+
#: includes/class-wcj-checkout-customization.php:157
|
601 |
#: includes/settings/wcj-settings-checkout-customization.php:181
|
602 |
msgid "Returning customer?"
|
603 |
msgstr ""
|
604 |
|
605 |
+
#: includes/class-wcj-checkout-customization.php:172
|
606 |
#: includes/settings/wcj-settings-checkout-customization.php:159
|
607 |
msgid "Thank you. Your order has been received."
|
608 |
msgstr ""
|
609 |
|
610 |
+
#: includes/class-wcj-checkout-customization.php:197
|
611 |
+
#: includes/class-wcj-checkout-customization.php:227
|
612 |
#: includes/settings/wcj-settings-checkout-customization.php:116
|
613 |
msgid "This field can not be changed"
|
614 |
msgstr ""
|
1037 |
msgstr ""
|
1038 |
|
1039 |
#: includes/class-wcj-custom-php.php:28
|
1040 |
+
msgid "Custom PHP tool."
|
1041 |
msgstr ""
|
1042 |
|
1043 |
#: includes/class-wcj-custom-php.php:30
|
1056 |
msgid "E.g.: %s"
|
1057 |
msgstr ""
|
1058 |
|
1059 |
+
#: includes/class-wcj-debug-tools.php:25
|
1060 |
+
msgid "Debug Tools"
|
1061 |
+
msgstr ""
|
1062 |
+
|
1063 |
+
#: includes/class-wcj-debug-tools.php:26
|
1064 |
+
msgid "Booster for WooCommerce debug and log tools."
|
1065 |
+
msgstr ""
|
1066 |
+
|
1067 |
+
#: includes/class-wcj-debug-tools.php:32
|
1068 |
+
#: includes/settings/wcj-settings-debug-tools.php:19
|
1069 |
+
msgid "Log"
|
1070 |
+
msgstr ""
|
1071 |
+
|
1072 |
+
#: includes/class-wcj-debug-tools.php:33
|
1073 |
+
msgid "Log."
|
1074 |
+
msgstr ""
|
1075 |
+
|
1076 |
+
#: includes/class-wcj-debug-tools.php:55
|
1077 |
+
msgid "Delete Log"
|
1078 |
+
msgstr ""
|
1079 |
+
|
1080 |
+
#: includes/class-wcj-debug-tools.php:58
|
1081 |
+
#, php-format
|
1082 |
+
msgid "Now: %s"
|
1083 |
+
msgstr ""
|
1084 |
+
|
1085 |
+
#: includes/class-wcj-debug-tools.php:62
|
1086 |
+
msgid "Log is empty."
|
1087 |
+
msgstr ""
|
1088 |
+
|
1089 |
+
#: includes/class-wcj-debug-tools.php:93
|
1090 |
+
msgid "NOT DEFINED"
|
1091 |
+
msgstr ""
|
1092 |
+
|
1093 |
#: includes/class-wcj-email-options.php:26
|
1094 |
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-emails.php:24
|
1095 |
#: includes/settings/wcj-settings-emails-verification.php:107
|
1252 |
msgstr ""
|
1253 |
|
1254 |
#: includes/class-wcj-empty-cart-button.php:25
|
1255 |
+
#: includes/shortcodes/class-wcj-shortcodes-general.php:517
|
1256 |
msgid "Empty Cart Button"
|
1257 |
msgstr ""
|
1258 |
|
1435 |
msgstr ""
|
1436 |
|
1437 |
#: includes/class-wcj-general.php:25
|
1438 |
+
msgid "Booster for WooCommerce general front-end tools."
|
1439 |
msgstr ""
|
1440 |
|
1441 |
#: includes/class-wcj-general.php:31
|
1442 |
+
msgid "Add/Manage Custom Roles"
|
1443 |
msgstr ""
|
1444 |
|
1445 |
#: includes/class-wcj-general.php:32
|
1446 |
+
msgid "Custom Roles"
|
1447 |
msgstr ""
|
1448 |
|
1449 |
+
#: includes/class-wcj-general.php:33
|
1450 |
+
msgid "Manage Custom Roles."
|
1451 |
msgstr ""
|
1452 |
|
1453 |
+
#: includes/class-wcj-general.php:46
|
1454 |
+
#, php-format
|
1455 |
+
msgid "Current PHP memory limit: %s."
|
1456 |
msgstr ""
|
1457 |
|
1458 |
+
#: includes/class-wcj-general.php:52
|
1459 |
+
#, php-format
|
1460 |
+
msgid "Current PHP time limit: %s seconds."
|
1461 |
msgstr ""
|
1462 |
|
1463 |
+
#: includes/class-wcj-general.php:116
|
1464 |
msgid "Booster User Role"
|
1465 |
msgstr ""
|
1466 |
|
1467 |
+
#: includes/class-wcj-general.php:177
|
1468 |
msgid "All fields are required!"
|
1469 |
msgstr ""
|
1470 |
|
1471 |
+
#: includes/class-wcj-general.php:181
|
1472 |
msgid "Role ID must not be numbers only!"
|
1473 |
msgstr ""
|
1474 |
|
1475 |
+
#: includes/class-wcj-general.php:190
|
1476 |
msgid "Role successfully added!"
|
1477 |
msgstr ""
|
1478 |
|
1479 |
+
#: includes/class-wcj-general.php:192
|
1480 |
msgid "Role already exists!"
|
1481 |
msgstr ""
|
1482 |
|
1483 |
+
#: includes/class-wcj-general.php:205
|
1484 |
#, php-format
|
1485 |
msgid "Role %s successfully deleted!"
|
1486 |
msgstr ""
|
1487 |
|
1488 |
+
#: includes/class-wcj-general.php:211 includes/class-wcj-general.php:226
|
1489 |
#: includes/class-wcj-sku.php:536
|
1490 |
#: includes/reports/wcj-class-reports-sales.php:196
|
1491 |
#: includes/settings/wcj-settings-cross-sells.php:43
|
1497 |
msgid "ID"
|
1498 |
msgstr ""
|
1499 |
|
1500 |
+
#: includes/class-wcj-general.php:211 includes/class-wcj-general.php:227
|
1501 |
#: includes/class-wcj-offer-price.php:172
|
1502 |
#: includes/export/class-wcj-fields-helper.php:282
|
1503 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:70
|
1505 |
msgid "Name"
|
1506 |
msgstr ""
|
1507 |
|
1508 |
+
#: includes/class-wcj-general.php:211 includes/class-wcj-general.php:228
|
1509 |
msgid "Capabilities"
|
1510 |
msgstr ""
|
1511 |
|
1512 |
+
#: includes/class-wcj-general.php:211
|
1513 |
#: includes/class-wcj-product-by-user.php:197
|
1514 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:100
|
1515 |
#: includes/tools/class-wcj-order-statuses-tool.php:145
|
1517 |
msgid "Actions"
|
1518 |
msgstr ""
|
1519 |
|
1520 |
+
#: includes/class-wcj-general.php:218
|
1521 |
#: includes/class-wcj-payment-gateways.php:117
|
1522 |
#: includes/class-wcj-product-bulk-meta-editor.php:367
|
1523 |
#: includes/class-wcj-product-by-user.php:206
|
1528 |
msgid "Delete"
|
1529 |
msgstr ""
|
1530 |
|
1531 |
+
#: includes/class-wcj-general.php:222
|
1532 |
msgid "Existing Roles"
|
1533 |
msgstr ""
|
1534 |
|
1535 |
+
#: includes/class-wcj-general.php:229
|
1536 |
msgid "Add New Role"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
+
#: includes/class-wcj-general.php:232
|
1540 |
#: includes/class-wcj-shipping-by-products.php:206
|
1541 |
#: includes/settings/wcj-settings-admin-orders-list.php:134
|
1542 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:22
|
1558 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:183
|
1559 |
#: includes/settings/wcj-settings-product-by-condition.php:107
|
1560 |
#: includes/settings/wcj-settings-product-by-user.php:114
|
1561 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:123
|
1562 |
#: includes/settings/wcj-settings-product-tabs.php:247
|
1563 |
#: includes/settings/wcj-settings-purchase-data.php:134
|
1564 |
#: includes/settings/wcj-settings-purchase-data.php:143
|
1571 |
msgid "Add"
|
1572 |
msgstr ""
|
1573 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1574 |
#: includes/class-wcj-global-discount.php:27
|
1575 |
#: includes/admin/class-wc-settings-jetpack.php:479
|
1576 |
#: includes/settings/wcj-settings-product-addons.php:237
|
1601 |
msgid "%left_to_free% left to free shipping"
|
1602 |
msgstr ""
|
1603 |
|
1604 |
+
#: includes/class-wcj-max-products-per-user.php:30
|
1605 |
msgid "Maximum Products per User"
|
1606 |
msgstr ""
|
1607 |
|
1608 |
+
#: includes/class-wcj-max-products-per-user.php:31
|
1609 |
msgid "Limit number of items your (logged) customers can buy."
|
1610 |
msgstr ""
|
1611 |
|
1612 |
+
#: includes/class-wcj-max-products-per-user.php:32
|
1613 |
msgid ""
|
1614 |
"Please note, that there is no maximum quantity set for not-logged (i.e. "
|
1615 |
"guest) users. Product quantities are updated, when order status is changed "
|
1616 |
+
"to status listed in module's \"Order Status\" option."
|
1617 |
msgstr ""
|
1618 |
|
1619 |
+
#: includes/class-wcj-max-products-per-user.php:71
|
1620 |
msgid "Data re-calculated."
|
1621 |
msgstr ""
|
1622 |
|
1623 |
+
#: includes/class-wcj-max-products-per-user.php:72
|
1624 |
#, php-format
|
1625 |
msgid "%s order(s) processed."
|
1626 |
msgstr ""
|
1627 |
|
1628 |
+
#: includes/class-wcj-max-products-per-user.php:124
|
1629 |
msgid "Maximum Products per User: Sales Data"
|
1630 |
msgstr ""
|
1631 |
|
1632 |
+
#: includes/class-wcj-max-products-per-user.php:141
|
1633 |
msgid "User ID"
|
1634 |
msgstr ""
|
1635 |
|
1636 |
+
#: includes/class-wcj-max-products-per-user.php:141
|
1637 |
msgid "User Name"
|
1638 |
msgstr ""
|
1639 |
|
1640 |
+
#: includes/class-wcj-max-products-per-user.php:141
|
1641 |
msgid "Qty Bought"
|
1642 |
msgstr ""
|
1643 |
|
1644 |
+
#: includes/class-wcj-max-products-per-user.php:144
|
1645 |
#: includes/functions/wcj-functions-users.php:151
|
1646 |
#: includes/functions/wcj-functions-users.php:171
|
1647 |
msgid "Guest"
|
1648 |
msgstr ""
|
1649 |
|
1650 |
+
#: includes/class-wcj-max-products-per-user.php:153
|
1651 |
msgid "No data yet."
|
1652 |
msgstr ""
|
1653 |
|
1654 |
+
#: includes/class-wcj-max-products-per-user.php:271
|
1655 |
+
#: includes/settings/wcj-settings-max-products-per-user.php:74
|
1656 |
msgid ""
|
1657 |
"You can only buy maximum %max_qty% pcs. of %product_title% (you already "
|
1658 |
"bought %qty_already_bought% pcs.)."
|
2120 |
msgid "Set min/max product quantities in WooCommerce order."
|
2121 |
msgstr ""
|
2122 |
|
2123 |
+
#: includes/class-wcj-order-quantities.php:180
|
2124 |
#: includes/settings/wcj-settings-order-quantities.php:224
|
2125 |
msgid ""
|
2126 |
"Only one item can be added to the cart. Clear the cart or finish the order, "
|
2127 |
"before adding another item to the cart."
|
2128 |
msgstr ""
|
2129 |
|
2130 |
+
#: includes/class-wcj-order-quantities.php:343
|
2131 |
#: includes/settings/wcj-settings-order-quantities.php:96
|
2132 |
msgid ""
|
2133 |
"Maximum allowed order quantity is %max_cart_total_quantity%. Your current "
|
2134 |
"order quantity is %cart_total_quantity%."
|
2135 |
msgstr ""
|
2136 |
|
2137 |
+
#: includes/class-wcj-order-quantities.php:351
|
2138 |
#: includes/settings/wcj-settings-order-quantities.php:38
|
2139 |
msgid ""
|
2140 |
"Minimum allowed order quantity is %min_cart_total_quantity%. Your current "
|
2141 |
"order quantity is %cart_total_quantity%."
|
2142 |
msgstr ""
|
2143 |
|
2144 |
+
#: includes/class-wcj-order-quantities.php:361
|
2145 |
#: includes/settings/wcj-settings-order-quantities.php:122
|
2146 |
msgid ""
|
2147 |
"Maximum allowed quantity for %product_title% is %max_per_item_quantity%. "
|
2148 |
"Your current item quantity is %item_quantity%."
|
2149 |
msgstr ""
|
2150 |
|
2151 |
+
#: includes/class-wcj-order-quantities.php:371
|
2152 |
#: includes/settings/wcj-settings-order-quantities.php:64
|
2153 |
msgid ""
|
2154 |
"Minimum allowed quantity for %product_title% is %min_per_item_quantity%. "
|
2266 |
msgid "Maximum amount for %gateway_title% is %max_amount%"
|
2267 |
msgstr ""
|
2268 |
|
2269 |
+
#: includes/class-wcj-payment-gateways-per-category.php:26
|
2270 |
#: includes/admin/class-wc-settings-jetpack.php:478
|
2271 |
msgid "Gateways per Product or Category"
|
2272 |
msgstr ""
|
2273 |
|
2274 |
+
#: includes/class-wcj-payment-gateways-per-category.php:27
|
2275 |
msgid ""
|
2276 |
"Show payment gateway only if there is selected product or product category "
|
2277 |
"in cart."
|
2369 |
msgid "Booster: %s."
|
2370 |
msgstr ""
|
2371 |
|
2372 |
+
#: includes/class-wcj-pdf-invoicing.php:452
|
2373 |
msgid "You are not allowed to view the invoice."
|
2374 |
msgstr ""
|
2375 |
|
2376 |
+
#: includes/class-wcj-price-by-country.php:30
|
2377 |
msgid "Prices and Currencies by Country"
|
2378 |
msgstr ""
|
2379 |
|
2380 |
+
#: includes/class-wcj-price-by-country.php:31
|
2381 |
msgid "Change product price and currency automatically by customer's country."
|
2382 |
msgstr ""
|
2383 |
|
2384 |
+
#: includes/class-wcj-price-by-country.php:99
|
2385 |
msgid "Price filter widget product prices recalculated."
|
2386 |
msgstr ""
|
2387 |
|
2460 |
#: includes/settings/wcj-settings-add-to-cart.php:51
|
2461 |
#: includes/settings/wcj-settings-address-formats.php:20
|
2462 |
#: includes/settings/wcj-settings-admin-bar.php:20
|
2463 |
+
#: includes/settings/wcj-settings-admin-bar.php:42
|
2464 |
+
#: includes/settings/wcj-settings-admin-bar.php:49
|
2465 |
+
#: includes/settings/wcj-settings-admin-tools.php:22
|
2466 |
+
#: includes/settings/wcj-settings-admin-tools.php:29
|
2467 |
+
#: includes/settings/wcj-settings-admin-tools.php:38
|
2468 |
+
#: includes/settings/wcj-settings-admin-tools.php:56
|
2469 |
+
#: includes/settings/wcj-settings-admin-tools.php:73
|
2470 |
+
#: includes/settings/wcj-settings-admin-tools.php:81
|
2471 |
+
#: includes/settings/wcj-settings-admin-tools.php:89
|
|
|
|
|
2472 |
#: includes/settings/wcj-settings-breadcrumbs.php:20
|
2473 |
#: includes/settings/wcj-settings-call-for-price.php:79
|
2474 |
#: includes/settings/wcj-settings-cart-customization.php:34
|
2480 |
#: includes/settings/wcj-settings-checkout-customization.php:27
|
2481 |
#: includes/settings/wcj-settings-checkout-customization.php:151
|
2482 |
#: includes/settings/wcj-settings-checkout-customization.php:174
|
2483 |
+
#: includes/settings/wcj-settings-checkout-customization.php:197
|
2484 |
+
#: includes/settings/wcj-settings-checkout-customization.php:222
|
2485 |
#: includes/settings/wcj-settings-checkout-fees.php:41
|
2486 |
#: includes/settings/wcj-settings-checkout-fees.php:71
|
2487 |
#: includes/settings/wcj-settings-checkout-files-upload.php:227
|
2502 |
#: includes/settings/wcj-settings-currency-per-product.php:104
|
2503 |
#: includes/settings/wcj-settings-currency-per-product.php:258
|
2504 |
#: includes/settings/wcj-settings-custom-css.php:44
|
2505 |
+
#: includes/settings/wcj-settings-debug-tools.php:21
|
2506 |
+
#: includes/settings/wcj-settings-debug-tools.php:29
|
2507 |
+
#: includes/settings/wcj-settings-debug-tools.php:37
|
2508 |
#: includes/settings/wcj-settings-emails-verification.php:28
|
2509 |
#: includes/settings/wcj-settings-emails-verification.php:36
|
2510 |
+
#: includes/settings/wcj-settings-general.php:21
|
2511 |
+
#: includes/settings/wcj-settings-general.php:48
|
2512 |
+
#: includes/settings/wcj-settings-general.php:113
|
2513 |
+
#: includes/settings/wcj-settings-general.php:164
|
|
|
2514 |
#: includes/settings/wcj-settings-global-discount.php:52
|
2515 |
#: includes/settings/wcj-settings-global-discount.php:181
|
2516 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:28
|
2517 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:57
|
2518 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:91
|
2519 |
+
#: includes/settings/wcj-settings-max-products-per-user.php:80
|
2520 |
#: includes/settings/wcj-settings-more-button-labels.php:28
|
2521 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:38
|
2522 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:53
|
2543 |
#: includes/settings/wcj-settings-orders.php:105
|
2544 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:23
|
2545 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:93
|
2546 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:67
|
2547 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:83
|
2548 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:25
|
2549 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:55
|
2550 |
#: includes/settings/wcj-settings-pdf-invoicing-display.php:118
|
2551 |
#: includes/settings/wcj-settings-pdf-invoicing-footer.php:23
|
2598 |
#: includes/settings/wcj-settings-product-input-fields.php:318
|
2599 |
#: includes/settings/wcj-settings-product-input-fields.php:336
|
2600 |
#: includes/settings/wcj-settings-product-input-fields.php:344
|
2601 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:102
|
2602 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:109
|
2603 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:130
|
2604 |
#: includes/settings/wcj-settings-product-price-by-formula.php:30
|
2605 |
#: includes/settings/wcj-settings-product-tabs.php:43
|
2606 |
#: includes/settings/wcj-settings-product-tabs.php:232
|
2649 |
#: includes/settings/wcj-settings-wpml.php:45
|
2650 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-add-to-cart.php:68
|
2651 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:35
|
2652 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:19
|
2653 |
#: includes/settings/meta-box/wcj-settings-meta-box-sale-flash.php:14
|
2654 |
msgid "Enable"
|
2655 |
msgstr ""
|
2784 |
msgstr ""
|
2785 |
|
2786 |
#: includes/class-wcj-product-bookings.php:148
|
2787 |
+
#: includes/class-wcj-product-open-pricing.php:237
|
2788 |
#: includes/settings/wcj-settings-add-to-cart.php:140
|
2789 |
#: includes/settings/wcj-settings-add-to-cart.php:167
|
2790 |
#: includes/settings/wcj-settings-add-to-cart.php:202
|
3309 |
#: includes/settings/wcj-settings-multicurrency-base-price.php:17
|
3310 |
#: includes/settings/wcj-settings-payment-gateways-currency.php:61
|
3311 |
#: includes/settings/wcj-settings-payment-gateways-icons.php:14
|
|
|
3312 |
#: includes/settings/wcj-settings-price-by-user-role.php:14
|
3313 |
#: includes/settings/wcj-settings-product-addons.php:173
|
3314 |
#: includes/settings/wcj-settings-product-bookings.php:86
|
3399 |
|
3400 |
#: includes/class-wcj-product-info.php:242
|
3401 |
#: includes/settings/wcj-settings-cart.php:51
|
3402 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:48
|
3403 |
#: includes/settings/wcj-settings-checkout-files-upload.php:52
|
3404 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:42
|
3405 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:73
|
3501 |
msgid "Let your store customers enter price for the product manually."
|
3502 |
msgstr ""
|
3503 |
|
3504 |
+
#: includes/class-wcj-product-open-pricing.php:71
|
3505 |
msgid "Open Pricing"
|
3506 |
msgstr ""
|
3507 |
|
3508 |
+
#: includes/class-wcj-product-open-pricing.php:198
|
3509 |
msgid ""
|
3510 |
"Booster: Free plugin's version is limited to only one open pricing product "
|
3511 |
"enabled at a time. You will need to get <a href=\"https://booster.io/plus/\" "
|
3513 |
"products."
|
3514 |
msgstr ""
|
3515 |
|
3516 |
+
#: includes/class-wcj-product-open-pricing.php:300
|
3517 |
#: includes/settings/wcj-settings-product-open-pricing.php:73
|
3518 |
msgid "Price is required!"
|
3519 |
msgstr ""
|
3520 |
|
3521 |
+
#: includes/class-wcj-product-open-pricing.php:306
|
3522 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:81
|
3523 |
msgid "Entered price is too small!"
|
3524 |
msgstr ""
|
3525 |
|
3526 |
+
#: includes/class-wcj-product-open-pricing.php:311
|
3527 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:89
|
3528 |
msgid "Entered price is too big!"
|
3529 |
msgstr ""
|
3530 |
|
3531 |
+
#: includes/class-wcj-product-open-pricing.php:370
|
3532 |
#: includes/settings/wcj-settings-product-open-pricing.php:29
|
3533 |
msgid "Name Your Price"
|
3534 |
msgstr ""
|
3541 |
msgid "Set formula for automatic product price calculation."
|
3542 |
msgstr ""
|
3543 |
|
3544 |
+
#: includes/class-wcj-product-price-by-formula.php:136
|
3545 |
msgid "Error in formula"
|
3546 |
msgstr ""
|
3547 |
|
3548 |
+
#: includes/class-wcj-product-price-by-formula.php:228
|
3549 |
msgid ""
|
3550 |
"Booster: Free plugin's version is limited to only one price by formula "
|
3551 |
"product enabled at a time. You will need to get <a href=\"https://booster.io/"
|
3553 |
"by formula products."
|
3554 |
msgstr ""
|
3555 |
|
3556 |
+
#: includes/class-wcj-product-price-by-formula.php:260
|
3557 |
msgid "Final Price Preview"
|
3558 |
msgstr ""
|
3559 |
|
3599 |
#: includes/settings/wcj-settings-add-to-cart-button-visibility.php:122
|
3600 |
#: includes/settings/wcj-settings-add-to-cart-button-visibility.php:138
|
3601 |
#: includes/settings/wcj-settings-cart.php:44
|
3602 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:41
|
3603 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:34
|
3604 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:65
|
3605 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:99
|
3634 |
#: includes/settings/wcj-settings-admin-orders-list.php:84
|
3635 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:265
|
3636 |
#: includes/settings/wcj-settings-product-addons.php:225
|
3637 |
+
#: includes/settings/wcj-settings-related-products.php:176
|
3638 |
#: includes/settings/meta-box/wcj-settings-meta-box-custom-css.php:20
|
3639 |
#: includes/settings/meta-box/wcj-settings-meta-box-multicurrency.php:60
|
3640 |
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:20
|
3647 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:41
|
3648 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:117
|
3649 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-bookings.php:20
|
3650 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:35
|
3651 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:45
|
3652 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:55
|
3653 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-open-pricing.php:20
|
3654 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-price-by-formula.php:19
|
3655 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:25
|
3656 |
#: includes/settings/meta-box/wcj-settings-meta-box-sale-flash.php:20
|
3657 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:32
|
3658 |
#: includes/widgets/class-wcj-widget-country-switcher.php:82
|
3669 |
#: includes/settings/wcj-settings-eu-vat-number.php:111
|
3670 |
#: includes/settings/wcj-settings-eu-vat-number.php:130
|
3671 |
#: includes/settings/wcj-settings-product-addons.php:224
|
3672 |
+
#: includes/settings/wcj-settings-related-products.php:175
|
3673 |
#: includes/settings/meta-box/wcj-settings-meta-box-custom-css.php:19
|
3674 |
#: includes/settings/meta-box/wcj-settings-meta-box-multicurrency.php:61
|
3675 |
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:19
|
3682 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:40
|
3683 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:116
|
3684 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-bookings.php:19
|
3685 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:34
|
3686 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:44
|
3687 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:54
|
3688 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-open-pricing.php:19
|
3689 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-price-by-formula.php:18
|
3690 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:26
|
3691 |
#: includes/settings/meta-box/wcj-settings-meta-box-sale-flash.php:19
|
3692 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:31
|
3693 |
#: includes/widgets/class-wcj-widget-country-switcher.php:83
|
3719 |
msgid "Add \"products per page\" selector to WooCommerce."
|
3720 |
msgstr ""
|
3721 |
|
3722 |
+
#: includes/class-wcj-products-per-page.php:85
|
3723 |
#: includes/settings/wcj-settings-products-per-page.php:63
|
3724 |
msgid ""
|
3725 |
"Products <strong>%from% - %to%</strong> from <strong>%total%</strong>. "
|
3824 |
#: includes/class-wcj-related-products.php:38
|
3825 |
#: includes/admin/class-wc-settings-jetpack.php:483
|
3826 |
#: includes/settings/wcj-settings-free-price.php:20
|
3827 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:30
|
3828 |
msgid "Related Products"
|
3829 |
msgstr ""
|
3830 |
|
3838 |
#: includes/class-wcj-related-products.php:42
|
3839 |
#, php-format
|
3840 |
msgid ""
|
3841 |
+
"You may need to <a href=\"%s\">clear all products transients</a> to "
|
3842 |
+
"immediately see results on frontend after changing module's settings. "
|
3843 |
+
"Alternatively you can just update each product individually to clear its "
|
3844 |
+
"transients."
|
3845 |
msgstr ""
|
3846 |
|
3847 |
#: includes/class-wcj-reports.php:34
|
4053 |
msgstr ""
|
4054 |
|
4055 |
#: includes/class-wcj-shipping-by-time.php:33
|
4056 |
+
msgid "Current Date/Time"
|
4057 |
msgstr ""
|
4058 |
|
4059 |
#: includes/class-wcj-shipping-by-time.php:34
|
4825 |
msgstr ""
|
4826 |
|
4827 |
#: includes/classes/class-wcj-shortcodes.php:109
|
4828 |
+
#: includes/shortcodes/class-wcj-shortcodes-general.php:517
|
4829 |
#, php-format
|
4830 |
msgid "\"%s\" module is not enabled!"
|
4831 |
msgstr ""
|
4884 |
msgid "[{site_title}] Custom Subject - Order ({order_number}) - {order_date}"
|
4885 |
msgstr ""
|
4886 |
|
4887 |
+
#: includes/emails/class-wc-email-wcj-custom.php:219
|
4888 |
#, php-format
|
4889 |
msgid "New order (%s)"
|
4890 |
msgstr ""
|
4891 |
|
4892 |
+
#: includes/emails/class-wc-email-wcj-custom.php:220
|
4893 |
#, php-format
|
4894 |
msgid "Order status updated to %s"
|
4895 |
msgstr ""
|
4896 |
|
4897 |
+
#: includes/emails/class-wc-email-wcj-custom.php:223
|
4898 |
#, php-format
|
4899 |
msgid "Order status %s to %s"
|
4900 |
msgstr ""
|
4901 |
|
4902 |
+
#: includes/emails/class-wc-email-wcj-custom.php:230
|
4903 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:48
|
4904 |
#: includes/settings/wcj-settings-admin-products-list.php:19
|
4905 |
#: includes/settings/wcj-settings-admin-products-list.php:75
|
4909 |
msgid "Enable/Disable"
|
4910 |
msgstr ""
|
4911 |
|
4912 |
+
#: includes/emails/class-wc-email-wcj-custom.php:232
|
4913 |
msgid "Enable this email notification"
|
4914 |
msgstr ""
|
4915 |
|
4916 |
+
#: includes/emails/class-wc-email-wcj-custom.php:236
|
4917 |
msgid "Trigger(s)"
|
4918 |
msgstr ""
|
4919 |
|
4920 |
+
#: includes/emails/class-wc-email-wcj-custom.php:240
|
4921 |
msgid ""
|
4922 |
"Please note, that all new orders in WooCommerce by default are created with "
|
4923 |
"Pending Payment status. If you want to change the default order status - you "
|
4925 |
"Settings > Booster > Shipping & Orders > Order Custom Statuses)."
|
4926 |
msgstr ""
|
4927 |
|
4928 |
+
#: includes/emails/class-wc-email-wcj-custom.php:243
|
4929 |
msgid "New order (Any status)"
|
4930 |
msgstr ""
|
4931 |
|
4932 |
+
#: includes/emails/class-wc-email-wcj-custom.php:248
|
4933 |
msgid "Reset password notification"
|
4934 |
msgstr ""
|
4935 |
|
4936 |
+
#: includes/emails/class-wc-email-wcj-custom.php:249
|
4937 |
msgid "Order fully refunded notification"
|
4938 |
msgstr ""
|
4939 |
|
4940 |
+
#: includes/emails/class-wc-email-wcj-custom.php:250
|
4941 |
msgid "Order partially refunded notification"
|
4942 |
msgstr ""
|
4943 |
|
4944 |
+
#: includes/emails/class-wc-email-wcj-custom.php:251
|
4945 |
msgid "New customer note notification"
|
4946 |
msgstr ""
|
4947 |
|
4948 |
+
#: includes/emails/class-wc-email-wcj-custom.php:252
|
4949 |
msgid "Low stock notification"
|
4950 |
msgstr ""
|
4951 |
|
4952 |
+
#: includes/emails/class-wc-email-wcj-custom.php:253
|
4953 |
msgid "No stock notification"
|
4954 |
msgstr ""
|
4955 |
|
4956 |
+
#: includes/emails/class-wc-email-wcj-custom.php:254
|
4957 |
msgid "Product on backorder notification"
|
4958 |
msgstr ""
|
4959 |
|
4960 |
+
#: includes/emails/class-wc-email-wcj-custom.php:255
|
4961 |
msgid "Created customer notification"
|
4962 |
msgstr ""
|
4963 |
|
4964 |
+
#: includes/emails/class-wc-email-wcj-custom.php:262
|
4965 |
msgid "Recipient(s)"
|
4966 |
msgstr ""
|
4967 |
|
4968 |
+
#: includes/emails/class-wc-email-wcj-custom.php:264
|
4969 |
#, php-format
|
4970 |
msgid ""
|
4971 |
"Enter recipients (comma separated) for this email. Defaults to <code>%s</"
|
4972 |
"code>."
|
4973 |
msgstr ""
|
4974 |
|
4975 |
+
#: includes/emails/class-wc-email-wcj-custom.php:265
|
4976 |
msgid "Or enter <code>%customer%</code> to send to customer billing email."
|
4977 |
msgstr ""
|
4978 |
|
4979 |
+
#: includes/emails/class-wc-email-wcj-custom.php:271
|
4980 |
msgid "Subject"
|
4981 |
msgstr ""
|
4982 |
|
4983 |
+
#: includes/emails/class-wc-email-wcj-custom.php:273
|
4984 |
#, php-format
|
4985 |
msgid ""
|
4986 |
"This controls the email subject line. Leave blank to use the default "
|
4987 |
"subject: <code>%s</code>."
|
4988 |
msgstr ""
|
4989 |
|
4990 |
+
#: includes/emails/class-wc-email-wcj-custom.php:279
|
4991 |
msgid "Email type"
|
4992 |
msgstr ""
|
4993 |
|
4994 |
+
#: includes/emails/class-wc-email-wcj-custom.php:281
|
4995 |
msgid "Choose which format of email to send."
|
4996 |
msgstr ""
|
4997 |
|
4998 |
+
#: includes/emails/class-wc-email-wcj-custom.php:287
|
4999 |
msgid "Wrap in WC Email Template"
|
5000 |
msgstr ""
|
5001 |
|
5002 |
+
#: includes/emails/class-wc-email-wcj-custom.php:293
|
5003 |
msgid ""
|
5004 |
"WC Email Heading. Used only if \"Wrap in WC Email Template\" is enabled and "
|
5005 |
"only for HTML templates."
|
5006 |
msgstr ""
|
5007 |
|
5008 |
+
#: includes/emails/class-wc-email-wcj-custom.php:294
|
5009 |
#, php-format
|
5010 |
msgid ""
|
5011 |
"This controls the main heading contained within the email notification. "
|
5012 |
"Leave blank to use the default heading: <code>%s</code>."
|
5013 |
msgstr ""
|
5014 |
|
5015 |
+
#: includes/emails/class-wc-email-wcj-custom.php:300
|
5016 |
msgid "HTML template"
|
5017 |
msgstr ""
|
5018 |
|
5019 |
+
#: includes/emails/class-wc-email-wcj-custom.php:302
|
5020 |
+
#: includes/emails/class-wc-email-wcj-custom.php:311
|
5021 |
msgid "You can use shortcodes here. E.g. Booster's order shortcodes."
|
5022 |
msgstr ""
|
5023 |
|
5024 |
+
#: includes/emails/class-wc-email-wcj-custom.php:309
|
5025 |
msgid "Plain text template"
|
5026 |
msgstr ""
|
5027 |
|
5181 |
|
5182 |
#: includes/export/class-wcj-fields-helper.php:112
|
5183 |
#: includes/export/class-wcj-fields-helper.php:195
|
5184 |
+
#: includes/settings/wcj-settings-max-products-per-user.php:60
|
5185 |
msgid "Order Status"
|
5186 |
msgstr ""
|
5187 |
|
7999 |
#: includes/settings/wcj-settings-add-to-cart-button-visibility.php:30
|
8000 |
#: includes/settings/wcj-settings-add-to-cart-button-visibility.php:56
|
8001 |
#: includes/settings/wcj-settings-general.php:30
|
8002 |
+
#: includes/settings/wcj-settings-general.php:66
|
8003 |
+
#: includes/settings/wcj-settings-general.php:81
|
8004 |
+
#: includes/settings/wcj-settings-general.php:89
|
8005 |
+
#: includes/settings/wcj-settings-general.php:97
|
8006 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:84
|
8007 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:109
|
8008 |
#: includes/settings/wcj-settings-price-by-user-role.php:56
|
8009 |
#: includes/settings/wcj-settings-price-by-user-role.php:96
|
8010 |
#: includes/settings/wcj-settings-product-add-to-cart.php:131
|
8011 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:95
|
8012 |
#: includes/settings/wcj-settings-sku.php:283
|
8013 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-add-to-cart.php:67
|
8014 |
msgid "Disable"
|
8101 |
#: includes/settings/wcj-settings-add-to-cart.php:21
|
8102 |
#: includes/settings/wcj-settings-add-to-cart.php:92
|
8103 |
#: includes/settings/wcj-settings-add-to-cart.php:110
|
8104 |
+
#: includes/settings/wcj-settings-general.php:130
|
8105 |
#: includes/settings/wcj-settings-shipping-calculator.php:69
|
8106 |
#: includes/settings/wcj-settings-sorting.php:20
|
8107 |
#: includes/settings/wcj-settings-sorting.php:99
|
8304 |
msgid "\"WooCommerce\" Admin Bar"
|
8305 |
msgstr ""
|
8306 |
|
8307 |
+
#: includes/settings/wcj-settings-admin-bar.php:27
|
8308 |
+
msgid "List product categories in \"WooCommerce > Products > Categories\""
|
8309 |
+
msgstr ""
|
8310 |
+
|
8311 |
+
#: includes/settings/wcj-settings-admin-bar.php:34
|
8312 |
+
msgid "List product tags in \"WooCommerce > Products > Tags\""
|
8313 |
+
msgstr ""
|
8314 |
+
|
8315 |
+
#: includes/settings/wcj-settings-admin-bar.php:41
|
8316 |
msgid "\"Booster\" Admin Bar"
|
8317 |
msgstr ""
|
8318 |
|
8319 |
+
#: includes/settings/wcj-settings-admin-bar.php:48
|
8320 |
msgid "\"Booster: Active\" Admin Bar"
|
8321 |
msgstr ""
|
8322 |
|
8432 |
#: includes/settings/wcj-settings-product-images.php:27
|
8433 |
#: includes/settings/wcj-settings-product-images.php:34
|
8434 |
#: includes/settings/wcj-settings-product-images.php:41
|
8435 |
+
#: includes/settings/wcj-settings-related-products.php:184
|
8436 |
+
#: includes/settings/wcj-settings-related-products.php:190
|
8437 |
#: includes/settings/wcj-settings-sale-flash.php:35
|
8438 |
#: includes/settings/wcj-settings-sale-flash.php:42
|
8439 |
#: includes/settings/wcj-settings-sale-flash.php:49
|
8514 |
msgid "Show Booster Menus Only to Admin"
|
8515 |
msgstr ""
|
8516 |
|
8517 |
+
#: includes/settings/wcj-settings-admin-tools.php:20
|
8518 |
+
#, php-format
|
8519 |
+
msgid ""
|
8520 |
+
"Will require %s capability to see Booster menus (instead of %s capability)."
|
8521 |
msgstr ""
|
8522 |
|
8523 |
#: includes/settings/wcj-settings-admin-tools.php:28
|
8524 |
+
msgid "Suppress Admin Connect Notice"
|
8525 |
+
msgstr ""
|
8526 |
+
|
8527 |
+
#: includes/settings/wcj-settings-admin-tools.php:30
|
8528 |
#, php-format
|
8529 |
msgid "Will remove \"%s\" admin notice."
|
8530 |
msgstr ""
|
8531 |
|
8532 |
+
#: includes/settings/wcj-settings-admin-tools.php:31
|
8533 |
msgid ""
|
8534 |
"Connect your store to WooCommerce.com to receive extensions updates and "
|
8535 |
"support."
|
8536 |
msgstr ""
|
8537 |
|
8538 |
+
#: includes/settings/wcj-settings-admin-tools.php:37
|
8539 |
msgid "Suppress Admin Notices"
|
8540 |
msgstr ""
|
8541 |
|
8542 |
+
#: includes/settings/wcj-settings-admin-tools.php:39
|
8543 |
msgid "Will remove admin notices (including the Connect notice)."
|
8544 |
msgstr ""
|
8545 |
|
8546 |
+
#: includes/settings/wcj-settings-admin-tools.php:49
|
8547 |
+
msgid "Orders Options"
|
8548 |
msgstr ""
|
8549 |
|
|
|
|
|
|
|
|
|
|
|
8550 |
#: includes/settings/wcj-settings-admin-tools.php:54
|
8551 |
+
msgid "Show Order Meta"
|
|
|
|
|
|
|
|
|
8552 |
msgstr ""
|
8553 |
|
8554 |
+
#: includes/settings/wcj-settings-admin-tools.php:55
|
8555 |
+
msgid "Will show order meta table in meta box."
|
8556 |
msgstr ""
|
8557 |
|
8558 |
+
#: includes/settings/wcj-settings-admin-tools.php:66
|
8559 |
+
msgid "Products Options"
|
8560 |
msgstr ""
|
8561 |
|
8562 |
+
#: includes/settings/wcj-settings-admin-tools.php:71
|
8563 |
+
msgid "Show Product Meta"
|
8564 |
msgstr ""
|
8565 |
|
8566 |
+
#: includes/settings/wcj-settings-admin-tools.php:72
|
8567 |
+
msgid "Will show product meta table in meta box."
|
8568 |
msgstr ""
|
8569 |
|
8570 |
+
#: includes/settings/wcj-settings-admin-tools.php:79
|
8571 |
msgid "Show Variable Product Pricing Table"
|
8572 |
msgstr ""
|
8573 |
|
8574 |
+
#: includes/settings/wcj-settings-admin-tools.php:80
|
8575 |
+
msgid "Will allow to set all variations prices in single meta box."
|
8576 |
msgstr ""
|
8577 |
|
8578 |
+
#: includes/settings/wcj-settings-admin-tools.php:87
|
8579 |
+
msgid "Product Revisions"
|
8580 |
msgstr ""
|
8581 |
|
8582 |
+
#: includes/settings/wcj-settings-admin-tools.php:88
|
8583 |
+
msgid "Will enable product revisions."
|
8584 |
msgstr ""
|
8585 |
|
8586 |
+
#: includes/settings/wcj-settings-admin-tools.php:95
|
8587 |
+
msgid "JSON Product Search Limit"
|
8588 |
+
msgstr ""
|
8589 |
+
|
8590 |
+
#: includes/settings/wcj-settings-admin-tools.php:96
|
8591 |
+
msgid ""
|
8592 |
+
"This will set the maximum number of products to return on JSON search (e.g. "
|
8593 |
+
"when setting Upsells and Cross-sells on product edit page)."
|
8594 |
+
msgstr ""
|
8595 |
+
|
8596 |
+
#: includes/settings/wcj-settings-admin-tools.php:97
|
8597 |
+
#: includes/settings/wcj-settings-checkout-custom-fields.php:240
|
8598 |
+
#: includes/settings/wcj-settings-checkout-custom-fields.php:249
|
8599 |
+
#: includes/settings/wcj-settings-order-quantities.php:187
|
8600 |
+
msgid "Ignored if set to zero."
|
8601 |
msgstr ""
|
8602 |
|
8603 |
#: includes/settings/wcj-settings-breadcrumbs.php:19
|
8718 |
msgstr ""
|
8719 |
|
8720 |
#: includes/settings/wcj-settings-cart.php:24
|
8721 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:20
|
8722 |
#: includes/settings/wcj-settings-mini-cart.php:19
|
8723 |
#: includes/settings/wcj-settings-my-account.php:182
|
8724 |
#: includes/settings/wcj-settings-product-custom-info.php:53
|
8726 |
msgstr ""
|
8727 |
|
8728 |
#: includes/settings/wcj-settings-cart.php:39
|
8729 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:36
|
8730 |
#: includes/settings/wcj-settings-mini-cart.php:34
|
8731 |
#: includes/settings/wcj-settings-my-account.php:197
|
8732 |
msgid "Info Block"
|
8733 |
msgstr ""
|
8734 |
|
8735 |
#: includes/settings/wcj-settings-cart.php:58
|
8736 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:85
|
8737 |
#: includes/settings/wcj-settings-mini-cart.php:57
|
8738 |
#: includes/settings/wcj-settings-my-account.php:255
|
8739 |
#: includes/settings/wcj-settings-product-custom-info.php:125
|
8765 |
#: includes/settings/wcj-settings-payment-gateways-by-country.php:15
|
8766 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:17
|
8767 |
#: includes/settings/wcj-settings-payment-gateways-min-max.php:15
|
8768 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:19
|
8769 |
#: includes/settings/wcj-settings-price-formats.php:15
|
8770 |
#: includes/settings/wcj-settings-product-tabs.php:15
|
8771 |
#: includes/settings/wcj-settings-shipping-by-condition.php:20
|
8976 |
msgstr ""
|
8977 |
|
8978 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:192
|
8979 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:56
|
8980 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:114
|
8981 |
msgid "Billing"
|
8982 |
msgstr ""
|
9028 |
msgid "select2: Number of characters necessary to start a search."
|
9029 |
msgstr ""
|
9030 |
|
|
|
|
|
|
|
|
|
|
|
|
|
9031 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:247
|
9032 |
msgid "select2: max input length"
|
9033 |
msgstr ""
|
9127 |
|
9128 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:360
|
9129 |
#: includes/settings/wcj-settings-global-discount.php:158
|
9130 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:125
|
9131 |
#: includes/settings/wcj-settings-product-addons.php:149
|
9132 |
+
#: includes/settings/wcj-settings-related-products.php:244
|
9133 |
msgid "Exclude Products"
|
9134 |
msgstr ""
|
9135 |
|
9139 |
|
9140 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:369
|
9141 |
#: includes/settings/wcj-settings-global-discount.php:147
|
9142 |
+
#: includes/settings/wcj-settings-related-products.php:233
|
9143 |
msgid "Include Products"
|
9144 |
msgstr ""
|
9145 |
|
9167 |
"disable."
|
9168 |
msgstr ""
|
9169 |
|
9170 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:15
|
9171 |
msgid "Checkout Custom Info Blocks"
|
9172 |
msgstr ""
|
9173 |
|
9174 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:54
|
9175 |
#: includes/settings/wcj-settings-checkout-files-upload.php:56
|
9176 |
#: includes/settings/wcj-settings-empty-cart.php:68
|
9177 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:112
|
9178 |
msgid "Before checkout form"
|
9179 |
msgstr ""
|
9180 |
|
9181 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:55
|
9182 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:113
|
9183 |
msgid "Before customer details"
|
9184 |
msgstr ""
|
9185 |
|
9186 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:58
|
9187 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:116
|
9188 |
msgid "After customer details"
|
9189 |
msgstr ""
|
9190 |
|
9191 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:59
|
9192 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:117
|
9193 |
msgid "Before order review"
|
9194 |
msgstr ""
|
9195 |
|
9196 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:60
|
9197 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:118
|
9198 |
msgid "Order review"
|
9199 |
msgstr ""
|
9200 |
|
9201 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:61
|
9202 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:121
|
9203 |
msgid "After order review"
|
9204 |
msgstr ""
|
9205 |
|
9206 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:62
|
9207 |
#: includes/settings/wcj-settings-checkout-files-upload.php:57
|
9208 |
#: includes/settings/wcj-settings-empty-cart.php:69
|
9209 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:122
|
9210 |
msgid "After checkout form"
|
9211 |
msgstr ""
|
9212 |
|
9213 |
+
#: includes/settings/wcj-settings-checkout-custom-info.php:81
|
9214 |
msgid "Order Received (Thank You) page"
|
9215 |
msgstr ""
|
9216 |
|
9406 |
msgid "\"Returning customer?\" Message Options"
|
9407 |
msgstr ""
|
9408 |
|
9409 |
+
#: includes/settings/wcj-settings-checkout-customization.php:190
|
9410 |
+
#: includes/settings/wcj-settings-checkout-customization.php:196
|
9411 |
+
msgid "Recalculate Checkout"
|
9412 |
+
msgstr ""
|
9413 |
+
|
9414 |
+
#: includes/settings/wcj-settings-checkout-customization.php:191
|
9415 |
+
msgid ""
|
9416 |
+
"Recalculate checkout right after the default calculation has been requested."
|
9417 |
+
msgstr ""
|
9418 |
+
|
9419 |
+
#: includes/settings/wcj-settings-checkout-customization.php:203
|
9420 |
+
#: includes/settings/wcj-settings-checkout-customization.php:228
|
9421 |
+
msgid "Fields"
|
9422 |
+
msgstr ""
|
9423 |
+
|
9424 |
+
#: includes/settings/wcj-settings-checkout-customization.php:204
|
9425 |
+
msgid ""
|
9426 |
+
"Required fields that need to be changed in order to recalculate checkout."
|
9427 |
+
msgstr ""
|
9428 |
+
|
9429 |
+
#: includes/settings/wcj-settings-checkout-customization.php:205
|
9430 |
+
#: includes/settings/wcj-settings-checkout-customization.php:230
|
9431 |
+
msgid "Use CSS selector syntax."
|
9432 |
+
msgstr ""
|
9433 |
+
|
9434 |
+
#: includes/settings/wcj-settings-checkout-customization.php:215
|
9435 |
+
#: includes/settings/wcj-settings-checkout-customization.php:221
|
9436 |
+
msgid "Force Checkout Update"
|
9437 |
+
msgstr ""
|
9438 |
+
|
9439 |
+
#: includes/settings/wcj-settings-checkout-customization.php:216
|
9440 |
+
msgid "Update checkout when some field have its value changed."
|
9441 |
+
msgstr ""
|
9442 |
+
|
9443 |
+
#: includes/settings/wcj-settings-checkout-customization.php:229
|
9444 |
+
msgid "Fields that need to be changed in order to update checkout."
|
9445 |
+
msgstr ""
|
9446 |
+
|
9447 |
#: includes/settings/wcj-settings-checkout-fees.php:14
|
9448 |
msgid "Fees"
|
9449 |
msgstr ""
|
9454 |
|
9455 |
#: includes/settings/wcj-settings-checkout-fees.php:58
|
9456 |
#: includes/settings/wcj-settings-global-discount.php:65
|
9457 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:37
|
9458 |
#: includes/settings/wcj-settings-price-by-user-role.php:32
|
9459 |
#: includes/settings/wcj-settings-purchase-data.php:77
|
9460 |
#: includes/settings/wcj-settings-wholesale-price.php:79
|
9464 |
|
9465 |
#: includes/settings/wcj-settings-checkout-fees.php:59
|
9466 |
#: includes/settings/wcj-settings-global-discount.php:64
|
9467 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:38
|
9468 |
#: includes/settings/wcj-settings-purchase-data.php:78
|
9469 |
#: includes/settings/wcj-settings-wholesale-price.php:78
|
9470 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:18
|
9472 |
msgstr ""
|
9473 |
|
9474 |
#: includes/settings/wcj-settings-checkout-fees.php:70
|
9475 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:82
|
9476 |
msgid "Taxable"
|
9477 |
msgstr ""
|
9478 |
|
9758 |
#: includes/settings/wcj-settings-checkout-files-upload.php:421
|
9759 |
#: includes/settings/wcj-settings-currency-per-product.php:251
|
9760 |
#: includes/settings/wcj-settings-eu-vat-number.php:203
|
9761 |
+
#: includes/settings/wcj-settings-general.php:40
|
9762 |
#: includes/settings/wcj-settings-payment-gateways.php:49
|
9763 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:43
|
9764 |
#: includes/settings/wcj-settings-product-by-date.php:117
|
10070 |
|
10071 |
#: includes/settings/wcj-settings-currency-exchange-rates.php:60
|
10072 |
#: includes/settings/wcj-settings-offer-price.php:157
|
10073 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:74
|
10074 |
#: includes/settings/wcj-settings-product-by-user.php:70
|
10075 |
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:25
|
10076 |
msgid "Number of decimals"
|
10387 |
msgid "Automatically created file: %s."
|
10388 |
msgstr ""
|
10389 |
|
10390 |
+
#: includes/settings/wcj-settings-debug-tools.php:14
|
10391 |
+
msgid "Debug Tools Options"
|
10392 |
+
msgstr ""
|
10393 |
+
|
10394 |
+
#: includes/settings/wcj-settings-debug-tools.php:20
|
10395 |
+
msgid "Enables logging to Booster log."
|
10396 |
+
msgstr ""
|
10397 |
+
|
10398 |
+
#: includes/settings/wcj-settings-debug-tools.php:27
|
10399 |
+
msgid "WooCommerce Log"
|
10400 |
+
msgstr ""
|
10401 |
+
|
10402 |
+
#: includes/settings/wcj-settings-debug-tools.php:28
|
10403 |
+
msgid "Enables logging to WooCommerce log."
|
10404 |
+
msgstr ""
|
10405 |
+
|
10406 |
+
#: includes/settings/wcj-settings-debug-tools.php:35
|
10407 |
+
msgid "Debug"
|
10408 |
+
msgstr ""
|
10409 |
+
|
10410 |
+
#: includes/settings/wcj-settings-debug-tools.php:36
|
10411 |
+
msgid "Enables debug mode."
|
10412 |
+
msgstr ""
|
10413 |
+
|
10414 |
+
#: includes/settings/wcj-settings-debug-tools.php:43
|
10415 |
+
msgid "System Info"
|
10416 |
+
msgstr ""
|
10417 |
+
|
10418 |
+
#: includes/settings/wcj-settings-debug-tools.php:47
|
10419 |
+
msgid "Show extended info"
|
10420 |
+
msgstr ""
|
10421 |
+
|
10422 |
#: includes/settings/wcj-settings-email-options.php:14
|
10423 |
msgid "Product Info in Item Name"
|
10424 |
msgstr ""
|
10889 |
msgid "Variations"
|
10890 |
msgstr ""
|
10891 |
|
10892 |
+
#: includes/settings/wcj-settings-general.php:14
|
10893 |
msgid "Shortcodes Options"
|
10894 |
msgstr ""
|
10895 |
|
10896 |
+
#: includes/settings/wcj-settings-general.php:19
|
10897 |
+
msgid "Shortcodes in WordPress Text Widgets"
|
10898 |
msgstr ""
|
10899 |
|
10900 |
+
#: includes/settings/wcj-settings-general.php:20
|
10901 |
msgid ""
|
10902 |
"This will enable all (including non Booster's) shortcodes in WordPress text "
|
10903 |
"widgets."
|
10904 |
msgstr ""
|
10905 |
|
10906 |
+
#: includes/settings/wcj-settings-general.php:27
|
10907 |
+
msgid "Booster's Shortcodes"
|
10908 |
msgstr ""
|
10909 |
|
10910 |
+
#: includes/settings/wcj-settings-general.php:28
|
10911 |
+
#, php-format
|
10912 |
+
msgid ""
|
10913 |
+
"Disable all <a href=\"%s\" target=\"_blank\">Booster's shortcodes</a> (for "
|
10914 |
+
"memory saving)."
|
10915 |
msgstr ""
|
10916 |
|
|
|
10917 |
#: includes/settings/wcj-settings-general.php:45
|
10918 |
+
msgid "Recalculate Cart Totals"
|
10919 |
msgstr ""
|
10920 |
|
10921 |
+
#: includes/settings/wcj-settings-general.php:46
|
10922 |
+
msgid "Will recalculate cart totals on every page load."
|
10923 |
msgstr ""
|
10924 |
|
10925 |
+
#: includes/settings/wcj-settings-general.php:47
|
10926 |
+
msgid ""
|
10927 |
+
"This may solve multicurrency issues with wrong currency symbol in mini-cart."
|
10928 |
+
msgstr ""
|
10929 |
+
|
10930 |
+
#: includes/settings/wcj-settings-general.php:54
|
10931 |
msgid "Session Type in Booster"
|
10932 |
msgstr ""
|
10933 |
|
10934 |
+
#: includes/settings/wcj-settings-general.php:59
|
10935 |
msgid "Standard PHP sessions"
|
10936 |
msgstr ""
|
10937 |
|
10938 |
+
#: includes/settings/wcj-settings-general.php:60
|
10939 |
msgid "WC sessions"
|
10940 |
msgstr ""
|
10941 |
|
10942 |
+
#: includes/settings/wcj-settings-general.php:64
|
10943 |
+
msgid "Datepicker/Weekpicker CSS Loading"
|
10944 |
+
msgstr ""
|
10945 |
+
|
10946 |
+
#: includes/settings/wcj-settings-general.php:65
|
10947 |
+
msgid "Disables datepicker/weekpicker CSS loading."
|
10948 |
msgstr ""
|
10949 |
|
10950 |
+
#: includes/settings/wcj-settings-general.php:72
|
10951 |
+
msgid "Datepicker/Weekpicker CSS Source"
|
10952 |
msgstr ""
|
10953 |
|
10954 |
+
#: includes/settings/wcj-settings-general.php:79
|
10955 |
+
msgid "Datepicker/Weekpicker JavaScript Loading"
|
10956 |
msgstr ""
|
10957 |
|
10958 |
+
#: includes/settings/wcj-settings-general.php:80
|
10959 |
+
msgid "Disables datepicker/weekpicker JavaScript loading."
|
10960 |
msgstr ""
|
10961 |
|
10962 |
+
#: includes/settings/wcj-settings-general.php:87
|
10963 |
+
msgid "Timepicker CSS Loading"
|
10964 |
msgstr ""
|
10965 |
|
10966 |
+
#: includes/settings/wcj-settings-general.php:88
|
10967 |
+
msgid "Disables timepicker CSS loading."
|
10968 |
+
msgstr ""
|
10969 |
+
|
10970 |
+
#: includes/settings/wcj-settings-general.php:95
|
10971 |
+
msgid "Timepicker JavaScript Loading"
|
10972 |
+
msgstr ""
|
10973 |
+
|
10974 |
+
#: includes/settings/wcj-settings-general.php:96
|
10975 |
+
msgid "Disables timepicker JavaScript loading."
|
10976 |
+
msgstr ""
|
10977 |
+
|
10978 |
+
#: includes/settings/wcj-settings-general.php:107
|
10979 |
msgid "PayPal Email per Product Options"
|
10980 |
msgstr ""
|
10981 |
|
10982 |
+
#: includes/settings/wcj-settings-general.php:112
|
10983 |
msgid "PayPal Email per Product"
|
10984 |
msgstr ""
|
10985 |
|
10986 |
+
#: includes/settings/wcj-settings-general.php:114
|
10987 |
#: includes/settings/wcj-settings-max-products-per-user.php:44
|
10988 |
#: includes/settings/wcj-settings-product-by-date.php:54
|
10989 |
#: includes/settings/wcj-settings-product-by-time.php:54
|
10991 |
msgid "This will add new meta box to each product's edit page."
|
10992 |
msgstr ""
|
10993 |
|
10994 |
+
#: includes/settings/wcj-settings-general.php:124
|
10995 |
msgid "Session Expiration Options"
|
10996 |
msgstr ""
|
10997 |
|
10998 |
+
#: includes/settings/wcj-settings-general.php:129
|
10999 |
+
#: includes/settings/wcj-settings-general.php:144
|
11000 |
msgid "Session Expiration"
|
11001 |
msgstr ""
|
11002 |
|
11003 |
+
#: includes/settings/wcj-settings-general.php:136
|
11004 |
msgid "Session Expiring"
|
11005 |
msgstr ""
|
11006 |
|
11007 |
+
#: includes/settings/wcj-settings-general.php:137
|
11008 |
msgid "In seconds. Default: 47 hours (60 * 60 * 47)"
|
11009 |
msgstr ""
|
11010 |
|
11011 |
+
#: includes/settings/wcj-settings-general.php:145
|
11012 |
msgid "In seconds. Default: 48 hours (60 * 60 * 48)"
|
11013 |
msgstr ""
|
11014 |
|
11015 |
+
#: includes/settings/wcj-settings-general.php:156
|
11016 |
msgid "Booster User Roles Changer Options"
|
11017 |
msgstr ""
|
11018 |
|
11019 |
+
#: includes/settings/wcj-settings-general.php:157
|
11020 |
msgid "This will add user roles changer tool to admin bar."
|
11021 |
msgstr ""
|
11022 |
|
11023 |
+
#: includes/settings/wcj-settings-general.php:163
|
11024 |
msgid "Booster User Roles Changer"
|
11025 |
msgstr ""
|
11026 |
|
11027 |
+
#: includes/settings/wcj-settings-general.php:172
|
11028 |
msgid "Enabled for"
|
11029 |
msgstr ""
|
11030 |
|
11031 |
+
#: includes/settings/wcj-settings-general.php:184
|
11032 |
+
msgid "PHP Options"
|
11033 |
+
msgstr ""
|
11034 |
+
|
11035 |
+
#: includes/settings/wcj-settings-general.php:189
|
11036 |
+
msgid "PHP Memory Limit"
|
11037 |
+
msgstr ""
|
11038 |
+
|
11039 |
+
#: includes/settings/wcj-settings-general.php:190
|
11040 |
+
msgid "megabytes."
|
11041 |
+
msgstr ""
|
11042 |
+
|
11043 |
+
#: includes/settings/wcj-settings-general.php:191
|
11044 |
+
#: includes/settings/wcj-settings-general.php:200
|
11045 |
+
#: includes/settings/wcj-settings-offer-price.php:172
|
11046 |
+
#: includes/settings/wcj-settings-offer-price.php:180
|
11047 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:43
|
11048 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:52
|
11049 |
+
msgid "Set zero to disable."
|
11050 |
+
msgstr ""
|
11051 |
+
|
11052 |
+
#: includes/settings/wcj-settings-general.php:198
|
11053 |
+
msgid "PHP Time Limit"
|
11054 |
+
msgstr ""
|
11055 |
+
|
11056 |
+
#: includes/settings/wcj-settings-general.php:199
|
11057 |
+
msgid "seconds."
|
11058 |
+
msgstr ""
|
11059 |
+
|
11060 |
#: includes/settings/wcj-settings-global-discount.php:24
|
11061 |
msgid "Total Groups"
|
11062 |
msgstr ""
|
11139 |
msgstr ""
|
11140 |
|
11141 |
#: includes/settings/wcj-settings-global-discount.php:110
|
11142 |
+
#: includes/settings/wcj-settings-related-products.php:196
|
11143 |
msgid "Include Product Categories"
|
11144 |
msgstr ""
|
11145 |
|
11150 |
msgstr ""
|
11151 |
|
11152 |
#: includes/settings/wcj-settings-global-discount.php:119
|
11153 |
+
#: includes/settings/wcj-settings-related-products.php:205
|
11154 |
msgid "Exclude Product Categories"
|
11155 |
msgstr ""
|
11156 |
|
11161 |
msgstr ""
|
11162 |
|
11163 |
#: includes/settings/wcj-settings-global-discount.php:128
|
11164 |
+
#: includes/settings/wcj-settings-related-products.php:214
|
11165 |
msgid "Include Product Tags"
|
11166 |
msgstr ""
|
11167 |
|
11172 |
msgstr ""
|
11173 |
|
11174 |
#: includes/settings/wcj-settings-global-discount.php:137
|
11175 |
+
#: includes/settings/wcj-settings-related-products.php:223
|
11176 |
msgid "Exclude Product Tags"
|
11177 |
msgstr ""
|
11178 |
|
11195 |
msgstr ""
|
11196 |
|
11197 |
#: includes/settings/wcj-settings-global-discount.php:175
|
11198 |
+
#: includes/settings/wcj-settings-product-price-by-formula.php:95
|
11199 |
msgid "Advanced Settings"
|
11200 |
msgstr ""
|
11201 |
|
11210 |
msgstr ""
|
11211 |
|
11212 |
#: includes/settings/wcj-settings-global-discount.php:188
|
11213 |
+
#: includes/settings/wcj-settings-product-price-by-formula.php:100
|
11214 |
msgid "Price Filters Priority"
|
11215 |
msgstr ""
|
11216 |
|
11220 |
#: includes/settings/wcj-settings-price-by-country.php:157
|
11221 |
#: includes/settings/wcj-settings-price-by-user-role.php:70
|
11222 |
#: includes/settings/wcj-settings-product-addons.php:242
|
11223 |
+
#: includes/settings/wcj-settings-product-price-by-formula.php:101
|
11224 |
+
#: includes/settings/wcj-settings-wholesale-price.php:126
|
11225 |
msgid ""
|
11226 |
"Priority for all module's price filters. Set to zero to use default priority."
|
11227 |
msgstr ""
|
11319 |
msgid "Maximum Allowed Each Product's Quantity per User"
|
11320 |
msgstr ""
|
11321 |
|
11322 |
+
#: includes/settings/wcj-settings-max-products-per-user.php:61
|
11323 |
+
msgid ""
|
11324 |
+
"This sets when (i.e. on which order status) users' quantities should be "
|
11325 |
+
"updated."
|
11326 |
+
msgstr ""
|
11327 |
+
|
11328 |
+
#: includes/settings/wcj-settings-max-products-per-user.php:62
|
11329 |
+
msgid ""
|
11330 |
+
"You can select multiple order status here - quantities will be updated only "
|
11331 |
+
"once, on whichever status is triggered first."
|
11332 |
+
msgstr ""
|
11333 |
+
|
11334 |
+
#: includes/settings/wcj-settings-max-products-per-user.php:63
|
11335 |
+
msgid "If no status are selected - \"Completed\" order status is used."
|
11336 |
+
msgstr ""
|
11337 |
+
|
11338 |
+
#: includes/settings/wcj-settings-max-products-per-user.php:71
|
11339 |
#: includes/settings/wcj-settings-offer-price.php:203
|
11340 |
msgid "Customer Message"
|
11341 |
msgstr ""
|
11342 |
|
11343 |
+
#: includes/settings/wcj-settings-max-products-per-user.php:79
|
11344 |
msgid "Block Checkout Page"
|
11345 |
msgstr ""
|
11346 |
|
11347 |
+
#: includes/settings/wcj-settings-max-products-per-user.php:81
|
11348 |
msgid ""
|
11349 |
"This will stop customer from accessing the checkout page on exceeded "
|
11350 |
"quantities. Customer will be redirected to the cart page."
|
11351 |
msgstr ""
|
11352 |
|
11353 |
+
#: includes/settings/wcj-settings-max-products-per-user.php:87
|
11354 |
+
#: includes/settings/wcj-settings-max-products-per-user.php:93
|
11355 |
msgid "Calculate Data"
|
11356 |
msgstr ""
|
11357 |
|
11423 |
#: includes/settings/wcj-settings-price-by-country.php:156
|
11424 |
#: includes/settings/wcj-settings-price-by-user-role.php:69
|
11425 |
#: includes/settings/wcj-settings-product-addons.php:241
|
11426 |
+
#: includes/settings/wcj-settings-wholesale-price.php:125
|
11427 |
msgid "Advanced: Price Filters Priority"
|
11428 |
msgstr ""
|
11429 |
|
11486 |
msgstr ""
|
11487 |
|
11488 |
#: includes/settings/wcj-settings-multicurrency.php:72
|
11489 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:66
|
11490 |
#: includes/settings/wcj-settings-product-price-by-formula.php:64
|
11491 |
msgid "Rounding"
|
11492 |
msgstr ""
|
11558 |
msgstr ""
|
11559 |
|
11560 |
#: includes/settings/wcj-settings-multicurrency.php:186
|
11561 |
+
#: includes/settings/wcj-settings-wholesale-price.php:185
|
11562 |
msgid "Save settings after you change this option. Leave blank to disable."
|
11563 |
msgstr ""
|
11564 |
|
11658 |
msgstr ""
|
11659 |
|
11660 |
#: includes/settings/wcj-settings-my-account.php:143
|
11661 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:115
|
11662 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:127
|
11663 |
#: includes/settings/wcj-settings-stock.php:42
|
11664 |
#: includes/settings/wcj-settings-stock.php:55
|
11665 |
msgid "Ignored if empty."
|
12151 |
|
12152 |
#: includes/settings/wcj-settings-order-min-amount.php:29
|
12153 |
#: includes/settings/wcj-settings-order-min-amount.php:36
|
12154 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:98
|
12155 |
msgid "Exclude"
|
12156 |
msgstr ""
|
12157 |
|
12766 |
msgid "Fee (or discount) title to show to customer."
|
12767 |
msgstr ""
|
12768 |
|
12769 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:31
|
12770 |
msgid "Fee (or Discount) Type"
|
12771 |
msgstr ""
|
12772 |
|
12773 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:32
|
12774 |
msgid "Percent or fixed value."
|
12775 |
msgstr ""
|
12776 |
|
12777 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:42
|
12778 |
msgid "Fee (or Discount) Value"
|
12779 |
msgstr ""
|
12780 |
|
12781 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:43
|
12782 |
msgid "The value. For discount enter a negative number."
|
12783 |
msgstr ""
|
12784 |
|
12785 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:50
|
12786 |
msgid "Minimum Cart Amount"
|
12787 |
msgstr ""
|
12788 |
|
12789 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:51
|
12790 |
msgid "Minimum cart amount for adding the fee (or discount)."
|
12791 |
msgstr ""
|
12792 |
|
12793 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:51
|
12794 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:59
|
12795 |
msgid "Set 0 to disable."
|
12796 |
msgstr ""
|
12797 |
|
12798 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:58
|
12799 |
msgid "Maximum Cart Amount"
|
12800 |
msgstr ""
|
12801 |
|
12802 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:59
|
12803 |
msgid "Maximum cart amount for adding the fee (or discount)."
|
12804 |
msgstr ""
|
12805 |
|
12806 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:68
|
12807 |
msgid "Round the fee (or discount) value before adding to the cart."
|
12808 |
msgstr ""
|
12809 |
|
12810 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:75
|
12811 |
msgid "If rounding is enabled, set precision (i.e. number of decimals) here."
|
12812 |
msgstr ""
|
12813 |
|
12814 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:89
|
12815 |
msgid "Tax class"
|
12816 |
msgstr ""
|
12817 |
|
12818 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:90
|
12819 |
msgid "If taxing is enabled, set tax class here."
|
12820 |
msgstr ""
|
12821 |
|
12822 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:94
|
12823 |
msgid "Standard Rate"
|
12824 |
msgstr ""
|
12825 |
|
12826 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:97
|
12827 |
msgid "Exclude Shipping when Calculating Total Cart Amount"
|
12828 |
msgstr ""
|
12829 |
|
12830 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:99
|
12831 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:107
|
12832 |
msgid ""
|
12833 |
"This affects \"Percent\" type fees and \"Minimum/Maximum Cart Amount\" "
|
12834 |
"options."
|
12835 |
msgstr ""
|
12836 |
|
12837 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:105
|
12838 |
+
msgid "Include Taxes"
|
12839 |
+
msgstr ""
|
12840 |
+
|
12841 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:106
|
12842 |
+
msgid "Include taxes when calculating Total Cart Amount"
|
12843 |
+
msgstr ""
|
12844 |
+
|
12845 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:113
|
12846 |
msgid "Require Products"
|
12847 |
msgstr ""
|
12848 |
|
12849 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:114
|
12850 |
msgid ""
|
12851 |
"Require at least one of selected products to be in cart for fee to be "
|
12852 |
"applied."
|
12853 |
msgstr ""
|
12854 |
|
12855 |
+
#: includes/settings/wcj-settings-payment-gateways-fees.php:126
|
12856 |
msgid "Do not apply fee, if at least one of selected products is in cart."
|
12857 |
msgstr ""
|
12858 |
|
12913 |
msgid "Max"
|
12914 |
msgstr ""
|
12915 |
|
12916 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:24
|
12917 |
+
msgid "Use Variations"
|
12918 |
+
msgstr ""
|
12919 |
+
|
12920 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:26
|
12921 |
+
msgid "Will use variations instead of main product for variable type products."
|
12922 |
+
msgstr ""
|
12923 |
+
|
12924 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:36
|
12925 |
+
msgid "Gateways"
|
12926 |
+
msgstr ""
|
12927 |
+
|
12928 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:49
|
12929 |
#: includes/settings/wcj-settings-price-labels.php:125
|
12930 |
#: includes/settings/wcj-settings-product-input-fields.php:110
|
12931 |
msgid "Product Categories - Include"
|
12932 |
msgstr ""
|
12933 |
|
12934 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:50
|
12935 |
msgid ""
|
12936 |
"Show gateway only if there is product of selected category in cart. Leave "
|
12937 |
"blank to disable the option."
|
12938 |
msgstr ""
|
12939 |
|
12940 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:60
|
12941 |
#: includes/settings/wcj-settings-price-labels.php:134
|
12942 |
#: includes/settings/wcj-settings-product-input-fields.php:121
|
12943 |
msgid "Product Categories - Exclude"
|
12944 |
msgstr ""
|
12945 |
|
12946 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:61
|
12947 |
msgid ""
|
12948 |
"Hide gateway if there is product of selected category in cart. Leave blank "
|
12949 |
"to disable the option."
|
12950 |
msgstr ""
|
12951 |
|
12952 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:72
|
12953 |
#: includes/settings/wcj-settings-price-labels.php:107
|
12954 |
#: includes/settings/wcj-settings-product-input-fields.php:155
|
12955 |
msgid "Products - Include"
|
12956 |
msgstr ""
|
12957 |
|
12958 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:73
|
12959 |
msgid ""
|
12960 |
"Show gateway only if there is selected products in cart. Leave blank to "
|
12961 |
"disable the option."
|
12962 |
msgstr ""
|
12963 |
|
12964 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:85
|
12965 |
#: includes/settings/wcj-settings-price-labels.php:116
|
12966 |
#: includes/settings/wcj-settings-product-input-fields.php:167
|
12967 |
msgid "Products - Exclude"
|
12968 |
msgstr ""
|
12969 |
|
12970 |
+
#: includes/settings/wcj-settings-payment-gateways-per-category.php:86
|
12971 |
msgid ""
|
12972 |
"Hide gateway if there is selected products in cart. Leave blank to disable "
|
12973 |
"the option."
|
14337 |
|
14338 |
#: includes/settings/wcj-settings-product-addons.php:248
|
14339 |
#: includes/settings/wcj-settings-product-bookings.php:98
|
14340 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:129
|
14341 |
msgid "Advanced: Check for Outputted Data"
|
14342 |
msgstr ""
|
14343 |
|
14344 |
#: includes/settings/wcj-settings-product-addons.php:250
|
14345 |
#: includes/settings/wcj-settings-product-bookings.php:100
|
14346 |
#: includes/settings/wcj-settings-product-input-fields.php:337
|
14347 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:131
|
14348 |
msgid ""
|
14349 |
"Ensures that data outputted only once. Enable this if you see data outputted "
|
14350 |
"on frontend twice. Disable if you see no data outputted."
|
14801 |
#: includes/settings/wcj-settings-product-images.php:67
|
14802 |
#: includes/settings/wcj-settings-products-xml.php:111
|
14803 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:18
|
14804 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:26
|
14805 |
msgid "You can use shortcodes here."
|
14806 |
msgstr ""
|
14807 |
|
15376 |
msgid "Message on Price too Small"
|
15377 |
msgstr ""
|
15378 |
|
15379 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:86
|
15380 |
msgid "Message on Price too Big"
|
15381 |
msgstr ""
|
15382 |
|
15383 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:94
|
15384 |
msgid "Disable Quantity Input"
|
15385 |
msgstr ""
|
15386 |
|
15387 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:101
|
15388 |
msgid "Enable JS Min/Max Validation"
|
15389 |
msgstr ""
|
15390 |
|
15391 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:108
|
15392 |
msgid "Display Product Price Info in Archives"
|
15393 |
msgstr ""
|
15394 |
|
15395 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:115
|
15396 |
msgid ""
|
15397 |
"Product price info in archives template. Replaceable values: <code>"
|
15398 |
"%default_price%</code>, <code>%min_price%</code>, <code>%max_price%</code>."
|
15399 |
msgstr ""
|
15400 |
|
15401 |
+
#: includes/settings/wcj-settings-product-open-pricing.php:122
|
15402 |
msgid "Add \"Open Pricing\" Column to Admin Product List"
|
15403 |
msgstr ""
|
15404 |
|
15438 |
msgid "No rounding (disabled)"
|
15439 |
msgstr ""
|
15440 |
|
15441 |
+
#: includes/settings/wcj-settings-product-price-by-formula.php:83
|
15442 |
+
msgid "Disable Admin Scope"
|
15443 |
+
msgstr ""
|
15444 |
+
|
15445 |
+
#: includes/settings/wcj-settings-product-price-by-formula.php:84
|
15446 |
+
msgid "Disable module on Admin scope."
|
15447 |
+
msgstr ""
|
15448 |
+
|
15449 |
+
#: includes/settings/wcj-settings-product-price-by-formula.php:85
|
15450 |
+
msgid ""
|
15451 |
+
"Disable if you want to use Product Price by Formula module only on Frontend."
|
15452 |
+
msgstr ""
|
15453 |
+
|
15454 |
+
#: includes/settings/wcj-settings-product-price-by-formula.php:85
|
15455 |
+
msgid ""
|
15456 |
+
"For example if you use Cost of Goods module the profit will be correctly "
|
15457 |
+
"calculated if you leave the box unticked"
|
15458 |
+
msgstr ""
|
15459 |
+
|
15460 |
#: includes/settings/wcj-settings-product-tabs.php:20
|
15461 |
msgid "Content Processing"
|
15462 |
msgstr ""
|
16066 |
msgid "Relate Manually: Select box type"
|
16067 |
msgstr ""
|
16068 |
|
16069 |
+
#: includes/settings/wcj-settings-related-products.php:169
|
16070 |
+
msgid "Default metabox value"
|
16071 |
+
msgstr ""
|
16072 |
+
|
16073 |
+
#: includes/settings/wcj-settings-related-products.php:170
|
16074 |
+
msgid ""
|
16075 |
+
"If set to \"Yes\" and no products are selected it will hide related products"
|
16076 |
+
msgstr ""
|
16077 |
+
|
16078 |
+
#: includes/settings/wcj-settings-related-products.php:189
|
16079 |
msgid "Hide Related Products"
|
16080 |
msgstr ""
|
16081 |
|
16082 |
+
#: includes/settings/wcj-settings-related-products.php:197
|
16083 |
msgid ""
|
16084 |
"Set this field to hide related products on selected product categories only. "
|
16085 |
"Leave blank to hide on all products."
|
16086 |
msgstr ""
|
16087 |
|
16088 |
+
#: includes/settings/wcj-settings-related-products.php:206
|
16089 |
msgid ""
|
16090 |
"Set this field to NOT hide related products on selected product categories. "
|
16091 |
"Leave blank to hide on all products."
|
16092 |
msgstr ""
|
16093 |
|
16094 |
+
#: includes/settings/wcj-settings-related-products.php:215
|
16095 |
msgid ""
|
16096 |
"Set this field to hide related products on selected product tags only. Leave "
|
16097 |
"blank to hide on all products."
|
16098 |
msgstr ""
|
16099 |
|
16100 |
+
#: includes/settings/wcj-settings-related-products.php:224
|
16101 |
msgid ""
|
16102 |
"Set this field to NOT hide related products on selected product tags. Leave "
|
16103 |
"blank to hide on all products."
|
16104 |
msgstr ""
|
16105 |
|
16106 |
+
#: includes/settings/wcj-settings-related-products.php:234
|
16107 |
msgid ""
|
16108 |
"Set this field to hide related products on selected products only. Leave "
|
16109 |
"blank to hide on all products."
|
16110 |
msgstr ""
|
16111 |
|
16112 |
+
#: includes/settings/wcj-settings-related-products.php:245
|
16113 |
msgid ""
|
16114 |
"Set this field to NOT hide related products on selected products. Leave "
|
16115 |
"blank to hide on all products."
|
17070 |
|
17071 |
#: includes/settings/wcj-settings-tax-display.php:122
|
17072 |
#, php-format
|
17073 |
+
msgid "Role: %s - shop"
|
17074 |
msgstr ""
|
17075 |
|
17076 |
+
#: includes/settings/wcj-settings-tax-display.php:124
|
17077 |
+
msgid "Setup how taxes will be applied during in the shop."
|
17078 |
msgstr ""
|
17079 |
|
17080 |
#: includes/settings/wcj-settings-tax-display.php:128
|
17081 |
+
#: includes/settings/wcj-settings-tax-display.php:140
|
17082 |
+
msgid "Default TAX display (no changes)"
|
17083 |
msgstr ""
|
17084 |
|
17085 |
#: includes/settings/wcj-settings-tax-display.php:129
|
17086 |
+
#: includes/settings/wcj-settings-tax-display.php:141
|
17087 |
+
msgid "Including tax"
|
17088 |
+
msgstr ""
|
17089 |
+
|
17090 |
+
#: includes/settings/wcj-settings-tax-display.php:130
|
17091 |
+
#: includes/settings/wcj-settings-tax-display.php:142
|
17092 |
msgid "Excluding tax"
|
17093 |
msgstr ""
|
17094 |
|
17095 |
+
#: includes/settings/wcj-settings-tax-display.php:134
|
17096 |
+
#, php-format
|
17097 |
+
msgid "Role: %s - cart"
|
17098 |
+
msgstr ""
|
17099 |
+
|
17100 |
+
#: includes/settings/wcj-settings-tax-display.php:136
|
17101 |
+
msgid "Setup how taxes will be applied during cart and checkout."
|
17102 |
+
msgstr ""
|
17103 |
+
|
17104 |
#: includes/settings/wcj-settings-template-editor.php:25
|
17105 |
msgid "Templates to Edit"
|
17106 |
msgstr ""
|
17337 |
msgid "Disable wholesale pricing for products with \"Price Changes\""
|
17338 |
msgstr ""
|
17339 |
|
17340 |
+
#: includes/settings/wcj-settings-wholesale-price.php:136
|
17341 |
msgid "Wholesale Levels Options"
|
17342 |
msgstr ""
|
17343 |
|
17344 |
+
#: includes/settings/wcj-settings-wholesale-price.php:141
|
17345 |
+
#: includes/settings/wcj-settings-wholesale-price.php:198
|
17346 |
msgid "Number of Levels"
|
17347 |
msgstr ""
|
17348 |
|
17349 |
+
#: includes/settings/wcj-settings-wholesale-price.php:155
|
17350 |
+
#: includes/settings/wcj-settings-wholesale-price.php:212
|
17351 |
msgid "Min Quantity"
|
17352 |
msgstr ""
|
17353 |
|
17354 |
+
#: includes/settings/wcj-settings-wholesale-price.php:156
|
17355 |
+
#: includes/settings/wcj-settings-wholesale-price.php:213
|
17356 |
msgid "Minimum quantity to apply discount"
|
17357 |
msgstr ""
|
17358 |
|
17359 |
+
#: includes/settings/wcj-settings-wholesale-price.php:163
|
17360 |
+
#: includes/settings/wcj-settings-wholesale-price.php:164
|
17361 |
+
#: includes/settings/wcj-settings-wholesale-price.php:220
|
17362 |
+
#: includes/settings/wcj-settings-wholesale-price.php:221
|
17363 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:72
|
17364 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:108
|
17365 |
msgid "Discount"
|
17366 |
msgstr ""
|
17367 |
|
17368 |
+
#: includes/settings/wcj-settings-wholesale-price.php:178
|
17369 |
msgid "Additional User Roles Options"
|
17370 |
msgstr ""
|
17371 |
|
17372 |
+
#: includes/settings/wcj-settings-wholesale-price.php:180
|
17373 |
msgid ""
|
17374 |
"If you want to set different wholesale pricing options for different user "
|
17375 |
"roles, fill this section. Please note that you can also use Booster's "
|
17376 |
"\"Price based on User Role\" module without filling this section."
|
17377 |
msgstr ""
|
17378 |
|
17379 |
+
#: includes/settings/wcj-settings-wholesale-price.php:184
|
17380 |
msgid "User Roles Settings"
|
17381 |
msgstr ""
|
17382 |
|
17597 |
msgid "Replace image with custom HTML on single product page"
|
17598 |
msgstr ""
|
17599 |
|
17600 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:25
|
17601 |
msgid "Replace image with custom HTML on archives"
|
17602 |
msgstr ""
|
17603 |
|
17604 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:37
|
17605 |
msgid "Hide Image on Single"
|
17606 |
msgstr ""
|
17607 |
|
17608 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:47
|
17609 |
msgid "Hide Thumbnails on Single"
|
17610 |
msgstr ""
|
17611 |
|
17612 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-images.php:57
|
17613 |
msgid "Hide Image on Archives"
|
17614 |
msgstr ""
|
17615 |
|
17635 |
msgid "Number of Parameters"
|
17636 |
msgstr ""
|
17637 |
|
17638 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:20
|
17639 |
msgid ""
|
17640 |
"If enabled and no products selected - will hide related products section on "
|
17641 |
"frontend for current product."
|
17642 |
msgstr ""
|
17643 |
|
17644 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-related-products.php:31
|
17645 |
msgid ""
|
17646 |
"Hold Control (Ctrl) key to select multiple products. Ctrl and \"A\" to "
|
17647 |
"select all products."
|
17788 |
msgid "Enable Custom Shipping"
|
17789 |
msgstr ""
|
17790 |
|
17791 |
+
#: includes/shortcodes/class-wcj-shortcodes-general.php:95
|
17792 |
msgid "Tax toggle (incl.)"
|
17793 |
msgstr ""
|
17794 |
|
17795 |
+
#: includes/shortcodes/class-wcj-shortcodes-general.php:96
|
17796 |
msgid "Tax toggle (excl.)"
|
17797 |
msgstr ""
|
17798 |
|
17800 |
msgid "Attribute \"name\" is required!"
|
17801 |
msgstr ""
|
17802 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17803 |
#: includes/shortcodes/class-wcj-shortcodes-products-add-form.php:54
|
17804 |
msgid "Product by User"
|
17805 |
msgstr ""
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== Booster for WooCommerce ===
|
2 |
-
Contributors: algoritmika, anbinder, debugeris
|
3 |
Tags: woocommerce, booster for woocommerce, woocommerce jetpack
|
4 |
Requires at least: 4.4
|
5 |
-
Tested up to:
|
6 |
-
Stable tag: 4.0
|
7 |
License: GNU General Public License v3.0
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
@@ -134,17 +134,18 @@ Booster for WooCommerce is a WordPress WooCommerce plugin that supercharges your
|
|
134 |
**Emails & Misc.**
|
135 |
|
136 |
* *Admin Bar* - WooCommerce admin bar.
|
137 |
-
* *Admin Tools* - Booster for WooCommerce
|
138 |
* *Booster WPML* - Booster for WooCommerce basic WPML support.
|
139 |
* *Breadcrumbs* - Customize WooCommerce breadcrumbs.
|
140 |
* *Custom CSS* - Separate custom CSS for front and back end. Per product CSS.
|
141 |
* *Custom Emails* - Add custom emails to WooCommerce.
|
142 |
* *Custom JS* - Separate custom JS for front and back end.
|
143 |
* *Custom PHP* - Custom PHP tool.
|
|
|
144 |
* *Email Options* - WooCommerce email options. E.g.: add another email recipient(s) to all WooCommerce emails.
|
145 |
* *Email Verification* - Add WooCommerce email verification.
|
146 |
* *Export* - WooCommerce export tools.
|
147 |
-
* *General* -
|
148 |
* *Modules By User Roles* - Enable/disable Booster for WooCommerce modules by user roles.
|
149 |
* *My Account* - WooCommerce "My Account" page customization.
|
150 |
* *Old Slugs* - Remove old products slugs.
|
@@ -191,6 +192,53 @@ You can see the differences between versions in this [table](https://booster.io/
|
|
191 |
|
192 |
== Changelog ==
|
193 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
= 4.0.1 - 12/10/2018 =
|
195 |
* Fix - SHIPPING & ORDERS - Shipping Methods by Current Date/Time - Admin settings section title fixed.
|
196 |
* Dev - EMAILS & MISC. - Custom PHP - Module description updated.
|
1 |
=== Booster for WooCommerce ===
|
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.0
|
6 |
+
Stable tag: 4.1.0
|
7 |
License: GNU General Public License v3.0
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
134 |
**Emails & Misc.**
|
135 |
|
136 |
* *Admin Bar* - WooCommerce admin bar.
|
137 |
+
* *Admin Tools* - Booster for WooCommerce general back-end tools.
|
138 |
* *Booster WPML* - Booster for WooCommerce basic WPML support.
|
139 |
* *Breadcrumbs* - Customize WooCommerce breadcrumbs.
|
140 |
* *Custom CSS* - Separate custom CSS for front and back end. Per product CSS.
|
141 |
* *Custom Emails* - Add custom emails to WooCommerce.
|
142 |
* *Custom JS* - Separate custom JS for front and back end.
|
143 |
* *Custom PHP* - Custom PHP tool.
|
144 |
+
* *Debug Tools* - Booster for WooCommerce debug and log tools.
|
145 |
* *Email Options* - WooCommerce email options. E.g.: add another email recipient(s) to all WooCommerce emails.
|
146 |
* *Email Verification* - Add WooCommerce email verification.
|
147 |
* *Export* - WooCommerce export tools.
|
148 |
+
* *General* - Booster for WooCommerce general front-end tools.
|
149 |
* *Modules By User Roles* - Enable/disable Booster for WooCommerce modules by user roles.
|
150 |
* *My Account* - WooCommerce "My Account" page customization.
|
151 |
* *Old Slugs* - Remove old products slugs.
|
192 |
|
193 |
== Changelog ==
|
194 |
|
195 |
+
= 4.1.0 - 12/12/2018 =
|
196 |
+
* Feature - CART & CHECKOUT - Checkout Customization - Add option to recalculate checkout.
|
197 |
+
* Feature - CART & CHECKOUT - Checkout Customization - Add option to update checkout when some field have its value changed.
|
198 |
+
* Feature - PAYMENT GATEWAYS - Gateways per Product or Category - "Use Variations" option added.
|
199 |
+
* Feature - SHIPPING & ORDERS - Maximum Products per User - "Order Status" option added.
|
200 |
+
* Feature - EMAILS & MISC. - Admin Tools - Products Options - "JSON Product Search Limit" option added.
|
201 |
+
* Feature - Shortcodes - General - `[wcj_post_meta_sum]` shortcode added.
|
202 |
+
* Fix - PRICES & CURRENCIES - Price Formats - Current currency issue fixed (e.g. price format on admin order edit page).
|
203 |
+
* Fix - PRICES & CURRENCIES - Product Price by Formula - Fix shortcodes as parameters miscalculating price on cart by adding `product_id` attribute on shortcodes.
|
204 |
+
* Fix - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - Empty price issue fixed.
|
205 |
+
* Fix - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - "Multicurrency (Currency Switcher)" module support added.
|
206 |
+
* Fix - PRODUCTS - Product Images - `product_images_hide_on_archive()` - Issue with replacing single product's image with custom HTML on archives fixed.
|
207 |
+
* Fix - PRODUCTS - Product Input Fields - Fix multiple uploads generating a single file by renaming them uniquely.
|
208 |
+
* Fix - PRODUCTS - Product MSRP - Comma decimal separator issue fixed.
|
209 |
+
* Fix - PRODUCTS - Related Products - Relate Manually - Fix warning if there aren't any products selected.
|
210 |
+
* Fix - CART & CHECKOUT - Checkout Custom Fields - Hidden fields are not added to order meta now (i.e. not showing hidden fields on thank you page and in emails now).
|
211 |
+
* Fix - PAYMENT GATEWAYS - Gateways Fees and Discounts - `init_options()` is now initialized on `init` hook for better translation and performance.
|
212 |
+
* Fix - SHIPPING & ORDERS - Order Min/Max Quantities - Fix quantity attribute of add to cart button on loop pages.
|
213 |
+
* Fix - SHIPPING & ORDERS - Order Minimum Amount - Add compatibility with Price by country module.
|
214 |
+
* Fix - PDF INVOICING & PACKING SLIPS - Bulk actions - "Undefined variable: sendback" PHP notice fixed.
|
215 |
+
* Fix - PDF INVOICING & PACKING SLIPS - Possible deprecated `each()` PHP notice fixed (compatibility with PHP v7.2.0).
|
216 |
+
* Fix - EMAILS & MISC. - Admin Bar - Page reload added after "Enable Module" checkbox is enabled (so admin bar is shown at once).
|
217 |
+
* Fix - EMAILS & MISC. - Custom Emails - `$_GET['order_id']` param added (fixes the issue with bulk status update emails on some servers).
|
218 |
+
* Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - Message on Price too Small / too Big - `%price%`, `%min_price%` and `%max_price%` replaced values added.
|
219 |
+
* Dev - PRICES & CURRENCIES - Wholesale Price - "Advanced: Price Filters Priority" option added.
|
220 |
+
* Dev - PRICES & CURRENCIES - Product Price by Formula - Add option to use the module on admin scope.
|
221 |
+
* Dev - PRODUCTS - Product Images - `wcj_product_images_loop_product_thumbnail_filter`, `wcj_product_images_loop_product_thumbnail_filter_priority`, `wcj_product_images_single_product_images_filter` and `wcj_product_images_single_product_images_filter_priority` filters added.
|
222 |
+
* Dev - PRODUCTS - Tax Display - Add shop scope on display by user role option.
|
223 |
+
* Dev - PRODUCTS - Products per Page - Add compatibility with DIVI theme.
|
224 |
+
* Dev - PRODUCTS - Related Products - Relate Manually - Add new option to set the related products metabox value by default.
|
225 |
+
* Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Shortcodes are now processed in fee titles.
|
226 |
+
* Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Add new option to include taxes when calculating total cart amount.
|
227 |
+
* Dev - SHIPPING & ORDERS - Order Min/Max Quantities - Sync quantity button with add to cart button quantity.
|
228 |
+
* Dev - SHIPPING & ORDERS - Order Min/Max Quantities - Prevent add to cart button on shop pages from being clicked if input requirements haven't been met.
|
229 |
+
* Dev - EMAILS & MISC. - Admin Bar - "WooCommerce" Admin Bar - "List product categories" and "List product tags" options added.
|
230 |
+
* Dev - EMAILS & MISC. - Admin Tools - "Products Attributes" tool and "Product Revisions" option moved from "General" module.
|
231 |
+
* Dev - EMAILS & MISC. - Admin Tools - Module description updated. Admin settings restyled and descriptions updated. "Show extended info" link added.
|
232 |
+
* Dev - EMAILS & MISC. - Debug Tools - Initial module release (tools moved from "Admin Tools" module). Admin settings descriptions updated. Log restyled.
|
233 |
+
* Dev - EMAILS & MISC. - General - "PHP Options" options moved from "Admin Tools" module.
|
234 |
+
* Dev - EMAILS & MISC. - General - Module description updated. Admin settings descriptions updated.
|
235 |
+
* Dev - Functions - Products - `wcj_get_products()` - Code optimized.
|
236 |
+
* Dev - Shortcodes - Orders - `[wcj_order_total_in_words]` - `whole` attribute now automatically gets order currency symbol or currency code (set by `use_currency_symbol` attribute) (instead of `Dollars`). `decimal` attribute set to `¢` (instead of `Cents`).
|
237 |
+
* Dev - Shortcodes - Products - `[wcj_product_you_save_percent]` - Add compatibility with "Dynamic Pricing" plugin.
|
238 |
+
* Dev - Shortcodes - Products Crowdfunding - `get_product_orders_data()` - `start_date` and `order_status` optional attributes added.
|
239 |
+
* Dev - Shortcodes - Products Crowdfunding - `get_product_orders_data()` - Code cleaned up.
|
240 |
+
* Dev - Classes - `WCJ_Module_Product_By_Condition` - `pre_get_posts` - WP_Query optimized (`post__not_in` added).
|
241 |
+
|
242 |
= 4.0.1 - 12/10/2018 =
|
243 |
* Fix - SHIPPING & ORDERS - Shipping Methods by Current Date/Time - Admin settings section title fixed.
|
244 |
* Dev - EMAILS & MISC. - Custom PHP - Module description updated.
|
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.0
|
7 |
Author: Algoritmika Ltd
|
8 |
Author URI: https://booster.io
|
9 |
Text Domain: woocommerce-jetpack
|
10 |
Domain Path: /langs
|
11 |
Copyright: © 2018 Algoritmika Ltd.
|
12 |
-
WC tested up to: 3.
|
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.0
|
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.1.0
|
7 |
Author: Algoritmika Ltd
|
8 |
Author URI: https://booster.io
|
9 |
Text Domain: woocommerce-jetpack
|
10 |
Domain Path: /langs
|
11 |
Copyright: © 2018 Algoritmika Ltd.
|
12 |
+
WC tested up to: 3.5
|
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.1.0';
|
61 |
|
62 |
/**
|
63 |
* @var WC_Jetpack The single instance of the class
|