Version Description
01/07/2022 =
- FIXED - PRODUCTS - User Products - Fixed Fatal Error: Uncaught Error: Cannot access protected property XXX::$id.
- FIXED - PRODUCTS - Tax Display - Fixed Price displayed without taxes as default
- FIXED - PRODUCTS - Price based on User Role - Parse error: syntax error, unexpected ) in .../includes/class-wcj-price-by-user-role.php on line 417.
- FIXED - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - Allowing cents to Min, Max & Default input box
- FIXED - PRICES & CURRENCIES - Bulk Price Converter - PHP Notice: Undefined index: bulk_change_prices_preview...
- FIXED - PRICES & CURRENCIES - Global Discount - Fixed Include/Exclude Product Categories, Tags, Products options
- FIXED - PHP Notice: Undefined variable: old_option ...
- FIXED - Added Security vulnerability fixes.
Download this release
Release Info
Developer | ronyp |
Plugin | Booster for WooCommerce |
Version | 5.6.1 |
Comparing to | |
See all releases |
Code changes from version 5.6.0 to 5.6.1
- includes/admin/class-wc-settings-jetpack.php +14 -14
- includes/admin/class-wcj-settings-custom-fields.php +3 -3
- includes/admin/class-wcj-welcome.php +3 -3
- includes/class-wcj-admin-bar.php +3 -3
- includes/class-wcj-checkout-custom-fields.php +3 -3
- includes/class-wcj-checkout-files-upload.php +3 -3
- includes/class-wcj-custom-php.php +3 -3
- includes/class-wcj-global-discount.php +21 -21
- includes/class-wcj-multicurrency.php +33 -33
- includes/class-wcj-my-account.php +6 -6
- includes/class-wcj-offer-price.php +5 -5
- includes/class-wcj-pdf-invoicing.php +3 -3
- includes/class-wcj-price-by-country.php +3 -3
- includes/class-wcj-price-by-user-role.php +3 -3
- includes/class-wcj-product-add-to-cart.php +3 -3
- includes/class-wcj-product-bulk-price-converter.php +3 -3
- includes/class-wcj-product-by-country.php +3 -3
- includes/class-wcj-product-by-user.php +6 -9
- includes/class-wcj-product-custom-visibility.php +3 -3
- includes/class-wcj-product-input-fields.php +3 -3
- includes/class-wcj-product-msrp.php +3 -3
- includes/class-wcj-product-open-pricing.php +4 -4
- includes/class-wcj-product-price-by-formula.php +3 -3
- includes/class-wcj-products-per-page.php +3 -3
- includes/class-wcj-purchase-data.php +3 -3
- includes/class-wcj-shipping-by-time.php +4 -4
- includes/class-wcj-sku.php +3 -3
- includes/class-wcj-tax-display.php +1 -1
- includes/class-wcj-track-users.php +4 -4
- includes/class-wcj-wpml.php +3 -3
- includes/classes/class-wcj-module-product-by-condition.php +5 -5
- includes/classes/class-wcj-module-shipping-by-condition.php +3 -3
- includes/classes/class-wcj-module.php +11 -11
- includes/classes/class-wcj-pdf-invoice.php +3 -3
- includes/classes/class-wcj-tcpdf.php +3 -3
- includes/core/class-wcj-admin.php +8 -8
- includes/core/wcj-constants.php +3 -3
- includes/core/wcj-functions.php +2 -2
- includes/core/wcj-loader.php +24 -24
- includes/core/wcj-modules.php +2 -2
- includes/core/wcj-shortcodes.php +3 -3
- includes/css/wcj-admin.css +1 -4
- includes/emails/class-wc-email-wcj-custom.php +4 -4
- includes/functions/wcj-functions-admin.php +3 -3
- includes/functions/wcj-functions-booster-core.php +4 -4
- includes/functions/wcj-functions-country.php +3 -3
- includes/functions/wcj-functions-general.php +14 -5
- includes/functions/wcj-functions-products.php +8 -8
- includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php +4 -4
- includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-styling.php +3 -3
- includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-templates.php +3 -3
- includes/settings/wcj-settings-admin-tools.php +4 -4
- includes/settings/wcj-settings-checkout-files-upload.php +4 -4
- includes/settings/wcj-settings-cross-sells.php +3 -3
- includes/settings/wcj-settings-left-to-free-shipping.php +4 -4
- includes/settings/wcj-settings-my-account.php +3 -3
- includes/settings/wcj-settings-offer-price.php +5 -5
- includes/settings/wcj-settings-order-min-amount.php +5 -5
- includes/settings/wcj-settings-product-input-fields.php +3 -3
- includes/settings/wcj-settings-product-price-by-formula.php +2 -2
- includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php +5 -5
- includes/widgets/class-wcj-widget-multicurrency.php +4 -3
- langs/woocommerce-jetpack.pot +96 -71
- readme.txt +12 -1
- version-details.txt +4 -5
- woocommerce-jetpack.php +12 -10
includes/admin/class-wc-settings-jetpack.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 1.0.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/admin
|
@@ -74,11 +74,11 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
74 |
/**
|
75 |
* Create_free_version_notice_about_plus.
|
76 |
*
|
77 |
-
* @version 5.
|
78 |
* @since 5.3.0
|
79 |
*/
|
80 |
public function create_free_version_notice_about_plus() {
|
81 |
-
if ( 'woocommerce-jetpack.php' !== basename(
|
82 |
return;
|
83 |
}
|
84 |
$class = 'notice notice-info';
|
@@ -96,18 +96,18 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
96 |
/**
|
97 |
* Create_free_version_footer_review_notice.
|
98 |
*
|
99 |
-
* @version 5.
|
100 |
* @since 5.3.0
|
101 |
*/
|
102 |
public function create_free_version_footer_review_notice() {
|
103 |
-
if ( 'woocommerce-jetpack.php' !== basename(
|
104 |
return;
|
105 |
}
|
106 |
$class = 'notice notice-info inline';
|
107 |
$link = 'https://wordpress.org/support/plugin/woocommerce-jetpack/reviews/?filter=5#new-post';
|
108 |
$star = '<span class="wcj-review-icon dashicons dashicons-star-filled"></span>';
|
109 |
$stars_link = '<a href="' . $link . '" target="_blank">' . $star . $star . $star . $star . $star . '</a>';
|
110 |
-
$message = sprintf( __( 'Please rate <strong>Booster for WooCommerce</strong> %
|
111 |
?>
|
112 |
<style>
|
113 |
.wcj-review-icon { vertical-align: middle; margin: -6px 0 0 0; }
|
@@ -118,7 +118,7 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
118 |
/**
|
119 |
* Create_pro_version_footer_review_notice.
|
120 |
*
|
121 |
-
* @version 5.
|
122 |
* @since 5.3.1
|
123 |
*/
|
124 |
public function create_pro_version_footer_review_notice() {
|
@@ -158,7 +158,7 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
158 |
</div>
|
159 |
</div>
|
160 |
<?php
|
161 |
-
if ( 'booster-plus-for-woocommerce.php' !== basename(
|
162 |
return;
|
163 |
}
|
164 |
$class = 'notice notice-info inline';
|
@@ -166,7 +166,7 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
166 |
$star = '<span class="wcj-review-icon dashicons dashicons-star-filled"></span>';
|
167 |
$stars_link = '<a href="' . $link . '" target="_blank">' . $star . $star . $star . $star . $star . '</a>';
|
168 |
/* translators: %s: search term */
|
169 |
-
$message = sprintf( __( 'Please rate <strong>Booster for WooCommerce</strong> %
|
170 |
?>
|
171 |
<style>
|
172 |
.wcj-review-icon { vertical-align: middle; margin: -6px 0 0 0; }
|
@@ -332,7 +332,7 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
332 |
/**
|
333 |
* Output the settings.
|
334 |
*
|
335 |
-
* @version 5.
|
336 |
* @todo (maybe) admin_notices
|
337 |
*/
|
338 |
public function output() {
|
@@ -353,7 +353,7 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
353 |
echo wp_kses_post(
|
354 |
sprintf(
|
355 |
/* translators: %s: search term */
|
356 |
-
__( 'Please note that current <em>%
|
357 |
w_c_j()->modules[ $current_section ]->short_desc,
|
358 |
'<a href="' . admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=' . $replacement_module['cat'] . '§ion=' . $replacement_module['module'] ) . '">' .
|
359 |
$replacement_module['title'] . '</a>'
|
@@ -419,7 +419,7 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
419 |
/**
|
420 |
* Output_dashboard.
|
421 |
*
|
422 |
-
* @version 5.
|
423 |
* @param array $current_section defines the current section.
|
424 |
*/
|
425 |
public function output_dashboard( $current_section ) {
|
@@ -527,7 +527,7 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
527 |
);
|
528 |
}
|
529 |
|
530 |
-
$plugin_data = get_plugin_data(
|
531 |
$plugin_title = ( isset( $plugin_data['Name'] ) ? '[' . $plugin_data['Name'] . '] ' : '' );
|
532 |
echo wp_kses_post(
|
533 |
'<p style="text-align:right;color:gray;font-size:x-small;font-style:italic;">' . $plugin_title .
|
@@ -807,7 +807,7 @@ if ( ! class_exists( 'WC_Settings_Jetpack' ) ) :
|
|
807 |
|
808 |
public function version_details() {
|
809 |
|
810 |
-
$file =
|
811 |
if ( file_exists( $file ) ) {
|
812 |
|
813 |
$doc = file_get_contents( $file );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 1.0.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/admin
|
74 |
/**
|
75 |
* Create_free_version_notice_about_plus.
|
76 |
*
|
77 |
+
* @version 5.6.1
|
78 |
* @since 5.3.0
|
79 |
*/
|
80 |
public function create_free_version_notice_about_plus() {
|
81 |
+
if ( 'woocommerce-jetpack.php' !== basename( WCJ_FREE_PLUGIN_FILE ) ) {
|
82 |
return;
|
83 |
}
|
84 |
$class = 'notice notice-info';
|
96 |
/**
|
97 |
* Create_free_version_footer_review_notice.
|
98 |
*
|
99 |
+
* @version 5.6.1
|
100 |
* @since 5.3.0
|
101 |
*/
|
102 |
public function create_free_version_footer_review_notice() {
|
103 |
+
if ( 'woocommerce-jetpack.php' !== basename( WCJ_FREE_PLUGIN_FILE ) ) {
|
104 |
return;
|
105 |
}
|
106 |
$class = 'notice notice-info inline';
|
107 |
$link = 'https://wordpress.org/support/plugin/woocommerce-jetpack/reviews/?filter=5#new-post';
|
108 |
$star = '<span class="wcj-review-icon dashicons dashicons-star-filled"></span>';
|
109 |
$stars_link = '<a href="' . $link . '" target="_blank">' . $star . $star . $star . $star . $star . '</a>';
|
110 |
+
$message = sprintf( __( 'Please rate <strong>Booster for WooCommerce</strong> %s on <a href="%s" target="_blank">WordPress.org</a> to help us spread the word. Thank you from Booster team!', 'woocommerce-jetpack' ), $stars_link, $link );
|
111 |
?>
|
112 |
<style>
|
113 |
.wcj-review-icon { vertical-align: middle; margin: -6px 0 0 0; }
|
118 |
/**
|
119 |
* Create_pro_version_footer_review_notice.
|
120 |
*
|
121 |
+
* @version 5.6.1
|
122 |
* @since 5.3.1
|
123 |
*/
|
124 |
public function create_pro_version_footer_review_notice() {
|
158 |
</div>
|
159 |
</div>
|
160 |
<?php
|
161 |
+
if ( 'booster-plus-for-woocommerce.php' !== basename( WCJ_FREE_PLUGIN_FILE ) ) {
|
162 |
return;
|
163 |
}
|
164 |
$class = 'notice notice-info inline';
|
166 |
$star = '<span class="wcj-review-icon dashicons dashicons-star-filled"></span>';
|
167 |
$stars_link = '<a href="' . $link . '" target="_blank">' . $star . $star . $star . $star . $star . '</a>';
|
168 |
/* translators: %s: search term */
|
169 |
+
$message = sprintf( __( 'Please rate <strong>Booster for WooCommerce</strong> %s on <a href="%s" target="_blank">WordPress.org</a> to help us spread the word. Thank you from Booster team!', 'woocommerce-jetpack' ), $stars_link, $link );
|
170 |
?>
|
171 |
<style>
|
172 |
.wcj-review-icon { vertical-align: middle; margin: -6px 0 0 0; }
|
332 |
/**
|
333 |
* Output the settings.
|
334 |
*
|
335 |
+
* @version 5.6.1
|
336 |
* @todo (maybe) admin_notices
|
337 |
*/
|
338 |
public function output() {
|
353 |
echo wp_kses_post(
|
354 |
sprintf(
|
355 |
/* translators: %s: search term */
|
356 |
+
__( 'Please note that current <em>%s</em> module is deprecated and will be removed in future updates. Please use <em>%s</em> module instead.', 'woocommerce-jetpack' ),
|
357 |
w_c_j()->modules[ $current_section ]->short_desc,
|
358 |
'<a href="' . admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=' . $replacement_module['cat'] . '§ion=' . $replacement_module['module'] ) . '">' .
|
359 |
$replacement_module['title'] . '</a>'
|
419 |
/**
|
420 |
* Output_dashboard.
|
421 |
*
|
422 |
+
* @version 5.6.1
|
423 |
* @param array $current_section defines the current section.
|
424 |
*/
|
425 |
public function output_dashboard( $current_section ) {
|
527 |
);
|
528 |
}
|
529 |
|
530 |
+
$plugin_data = get_plugin_data( WCJ_FREE_PLUGIN_FILE );
|
531 |
$plugin_title = ( isset( $plugin_data['Name'] ) ? '[' . $plugin_data['Name'] . '] ' : '' );
|
532 |
echo wp_kses_post(
|
533 |
'<p style="text-align:right;color:gray;font-size:x-small;font-style:italic;">' . $plugin_title .
|
807 |
|
808 |
public function version_details() {
|
809 |
|
810 |
+
$file = wcj_free_plugin_path() . '/version-details.txt';
|
811 |
if ( file_exists( $file ) ) {
|
812 |
|
813 |
$doc = file_get_contents( $file );
|
includes/admin/class-wcj-settings-custom-fields.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings Custom Fields
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.8.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/admin
|
@@ -41,7 +41,7 @@ if ( ! class_exists( 'WCJ_Settings_Custom_Fields' ) ) :
|
|
41 |
/**
|
42 |
* Output_exchange_rate_settings_button.
|
43 |
*
|
44 |
-
* @version 5.
|
45 |
* @param Array $value Get values.
|
46 |
*/
|
47 |
public function output_exchange_rate_settings_button( $value ) {
|
@@ -76,7 +76,7 @@ if ( ! class_exists( 'WCJ_Settings_Custom_Fields' ) ) :
|
|
76 |
$description = '';
|
77 |
$exchange_rate_server = wcj_get_currency_exchange_rate_server_name( $value['custom_attributes_button']['currency_from'], $value['custom_attributes_button']['currency_to'] );
|
78 |
/* translators: %s: translation added */
|
79 |
-
$value_title = sprintf( __( 'Grab raw %
|
80 |
' ' . __( 'Doesn\'t apply rounding, offset etc.', 'woocommerce-jetpack' );
|
81 |
?>
|
82 |
<tr valign="top">
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings Custom Fields
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.8.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/admin
|
41 |
/**
|
42 |
* Output_exchange_rate_settings_button.
|
43 |
*
|
44 |
+
* @version 5.6.1
|
45 |
* @param Array $value Get values.
|
46 |
*/
|
47 |
public function output_exchange_rate_settings_button( $value ) {
|
76 |
$description = '';
|
77 |
$exchange_rate_server = wcj_get_currency_exchange_rate_server_name( $value['custom_attributes_button']['currency_from'], $value['custom_attributes_button']['currency_to'] );
|
78 |
/* translators: %s: translation added */
|
79 |
+
$value_title = sprintf( __( 'Grab raw %s rate from %s.', 'woocommerce-jetpack' ), $value['value'], $exchange_rate_server ) .
|
80 |
' ' . __( 'Doesn\'t apply rounding, offset etc.', 'woocommerce-jetpack' );
|
81 |
?>
|
82 |
<tr valign="top">
|
includes/admin/class-wcj-welcome.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster getting started
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/admin
|
8 |
*/
|
@@ -87,10 +87,10 @@ if ( ! class_exists( 'WCJ_Welcome' ) ) :
|
|
87 |
/**
|
88 |
* Wcj_welcome_screen_content.
|
89 |
*
|
90 |
-
* @version 5.
|
91 |
*/
|
92 |
public function wcj_welcome_screen_content() {
|
93 |
-
require_once
|
94 |
}
|
95 |
|
96 |
/**
|
2 |
/**
|
3 |
* Booster getting started
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/admin
|
8 |
*/
|
87 |
/**
|
88 |
* Wcj_welcome_screen_content.
|
89 |
*
|
90 |
+
* @version 5.6.1
|
91 |
*/
|
92 |
public function wcj_welcome_screen_content() {
|
93 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/admin/wcj-welcome-screen-content.php';
|
94 |
}
|
95 |
|
96 |
/**
|
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 Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -131,7 +131,7 @@ if ( ! class_exists( 'WCJ_Admin_Bar' ) ) :
|
|
131 |
/**
|
132 |
* Get_nodes_booster_modules.
|
133 |
*
|
134 |
-
* @version
|
135 |
* @since 2.9.0
|
136 |
* @todo (maybe) dashes instead of underscores
|
137 |
* @todo (maybe) dashboard > alphabetically - list all modules
|
@@ -139,7 +139,7 @@ if ( ! class_exists( 'WCJ_Admin_Bar' ) ) :
|
|
139 |
*/
|
140 |
public function get_nodes_booster_modules() {
|
141 |
$nodes = array();
|
142 |
-
$cats = include
|
143 |
$this->active_modules = array();
|
144 |
foreach ( $cats as $id => $label_info ) {
|
145 |
$nodes[ $id ] = array(
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Admin Bar
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
131 |
/**
|
132 |
* Get_nodes_booster_modules.
|
133 |
*
|
134 |
+
* @version 5.6.1
|
135 |
* @since 2.9.0
|
136 |
* @todo (maybe) dashes instead of underscores
|
137 |
* @todo (maybe) dashboard > alphabetically - list all modules
|
139 |
*/
|
140 |
public function get_nodes_booster_modules() {
|
141 |
$nodes = array();
|
142 |
+
$cats = include wcj_free_plugin_path() . '/includes/admin/wcj-modules-cats.php';
|
143 |
$this->active_modules = array();
|
144 |
foreach ( $cats as $id => $label_info ) {
|
145 |
$nodes[ $id ] = array(
|
includes/class-wcj-checkout-custom-fields.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Custom Fields
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -23,7 +23,7 @@ if ( ! class_exists( 'WCJ_Checkout_Custom_Fields' ) ) :
|
|
23 |
/**
|
24 |
* Constructor.
|
25 |
*
|
26 |
-
* @version 5.
|
27 |
* @todo (maybe) check if `'wcj_checkout_custom_field_customer_meta_fields_' . $i` option should affect `add_default_checkout_custom_fields`
|
28 |
*/
|
29 |
public function __construct() {
|
@@ -45,7 +45,7 @@ if ( ! class_exists( 'WCJ_Checkout_Custom_Fields' ) ) :
|
|
45 |
'</li>' .
|
46 |
'<li>' . sprintf(
|
47 |
/* translators: %s: search term */
|
48 |
-
__( '<strong>PHP code:</strong> by using %
|
49 |
'<code>do_shortcode()</code>',
|
50 |
'<code>echo do_shortcode( \'[wcj_order_checkout_field meta_key = "billing_wcj_checkout_field_1]\' );</code>'
|
51 |
) .
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Custom Fields
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
23 |
/**
|
24 |
* Constructor.
|
25 |
*
|
26 |
+
* @version 5.6.1
|
27 |
* @todo (maybe) check if `'wcj_checkout_custom_field_customer_meta_fields_' . $i` option should affect `add_default_checkout_custom_fields`
|
28 |
*/
|
29 |
public function __construct() {
|
45 |
'</li>' .
|
46 |
'<li>' . sprintf(
|
47 |
/* translators: %s: search term */
|
48 |
+
__( '<strong>PHP code:</strong> by using %s function,<br> e.g.: %s', 'woocommerce-jetpack' ),
|
49 |
'<code>do_shortcode()</code>',
|
50 |
'<code>echo do_shortcode( \'[wcj_order_checkout_field meta_key = "billing_wcj_checkout_field_1]\' );</code>'
|
51 |
) .
|
includes/class-wcj-checkout-files-upload.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Files Upload
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.4.5
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -411,7 +411,7 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
411 |
/**
|
412 |
* Process_checkout_files_upload.
|
413 |
*
|
414 |
-
* @version
|
415 |
* @since 2.4.5
|
416 |
* @todo add option for admin to delete files one by one (i.e. not all at once)
|
417 |
* @todo `$this->additional_admin_emails_settings` - more customization options, e.g.: admin email, subject, content, from
|
@@ -421,7 +421,7 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
421 |
$admin_email = wcj_get_option( 'admin_email' );
|
422 |
$admin_email_subject = __( 'Booster for WooCommerce: Checkout Files Upload: %action%', 'woocommerce-jetpack' );
|
423 |
/* translators: %s: search term */
|
424 |
-
$admin_email_content = __( 'Order ID: %
|
425 |
$total_number = apply_filters( 'booster_option', 1, wcj_get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
|
426 |
// Remove file.
|
427 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Files Upload
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.4.5
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
411 |
/**
|
412 |
* Process_checkout_files_upload.
|
413 |
*
|
414 |
+
* @version 5.6.1
|
415 |
* @since 2.4.5
|
416 |
* @todo add option for admin to delete files one by one (i.e. not all at once)
|
417 |
* @todo `$this->additional_admin_emails_settings` - more customization options, e.g.: admin email, subject, content, from
|
421 |
$admin_email = wcj_get_option( 'admin_email' );
|
422 |
$admin_email_subject = __( 'Booster for WooCommerce: Checkout Files Upload: %action%', 'woocommerce-jetpack' );
|
423 |
/* translators: %s: search term */
|
424 |
+
$admin_email_content = __( 'Order ID: %order_id%; File name: %file_name%', 'woocommerce-jetpack' );
|
425 |
$total_number = apply_filters( 'booster_option', 1, wcj_get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
|
426 |
// Remove file.
|
427 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
includes/class-wcj-custom-php.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Custom PHP
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 4.0.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -21,7 +21,7 @@ if ( ! class_exists( 'WCJ_Custom_PHP' ) ) :
|
|
21 |
/**
|
22 |
* Constructor.
|
23 |
*
|
24 |
-
* @version
|
25 |
* @since 4.0.0
|
26 |
* @todo [dev] maybe remove `wcj_disable_custom_php` from URL on settings save
|
27 |
* @todo [dev] allow tab in content (i.e. settings (textarea))
|
@@ -33,7 +33,7 @@ if ( ! class_exists( 'WCJ_Custom_PHP' ) ) :
|
|
33 |
$this->desc = __( 'Custom PHP tool.', 'woocommerce-jetpack' );
|
34 |
$this->extra_desc = sprintf(
|
35 |
/* translators: %s: translation added */
|
36 |
-
__( 'Please note that if you enable the module and enter non-valid PHP code here, your site will become unavailable. To fix this you will have to add %
|
37 |
'<code>wcj_disable_custom_php</code>',
|
38 |
'<strong>wp-login.php</strong>'
|
39 |
) . ' ' .
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Custom PHP
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 4.0.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
21 |
/**
|
22 |
* Constructor.
|
23 |
*
|
24 |
+
* @version 5.6.1
|
25 |
* @since 4.0.0
|
26 |
* @todo [dev] maybe remove `wcj_disable_custom_php` from URL on settings save
|
27 |
* @todo [dev] allow tab in content (i.e. settings (textarea))
|
33 |
$this->desc = __( 'Custom PHP tool.', 'woocommerce-jetpack' );
|
34 |
$this->extra_desc = sprintf(
|
35 |
/* translators: %s: translation added */
|
36 |
+
__( 'Please note that if you enable the module and enter non-valid PHP code here, your site will become unavailable. To fix this you will have to add %s attribute to the URL (you must be logged as shop manager or admin (for this reason custom PHP code is not executed on %s page)).', 'woocommerce-jetpack' ),
|
37 |
'<code>wcj_disable_custom_php</code>',
|
38 |
'<strong>wp-login.php</strong>'
|
39 |
) . ' ' .
|
includes/class-wcj-global-discount.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Global Discount
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.5.7
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -56,7 +56,7 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
56 |
/**
|
57 |
* Add_wcj_sale_ids_to_products_shortcode.
|
58 |
*
|
59 |
-
* @version
|
60 |
* @since 4.8.0
|
61 |
*
|
62 |
* @param array $args defines the args.
|
@@ -67,8 +67,8 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
67 |
*/
|
68 |
public function add_wcj_sale_ids_to_products_shortcode( $args, $atts, $type ) {
|
69 |
if (
|
70 |
-
'sale_products'
|
71 |
-
'yes'
|
72 |
) {
|
73 |
return $args;
|
74 |
}
|
@@ -81,12 +81,12 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
81 |
/**
|
82 |
* Regenerate_wcj_sale_products_in_cache.
|
83 |
*
|
84 |
-
* @version
|
85 |
* @since 4.8.0
|
86 |
*/
|
87 |
public function regenerate_wcj_sale_products_in_cache() {
|
88 |
if (
|
89 |
-
'yes'
|
90 |
! isset( $_REQUEST['page'] ) || 'wc-settings' !== $_REQUEST['page'] ||
|
91 |
! isset( $_REQUEST['tab'] ) || 'jetpack' !== $_REQUEST['tab'] ||
|
92 |
! isset( $_REQUEST['wcj-cat'] ) || 'prices_and_currencies' !== $_REQUEST['wcj-cat'] ||
|
@@ -102,7 +102,7 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
102 |
/**
|
103 |
* Get_wcj_sale_products.
|
104 |
*
|
105 |
-
* @version
|
106 |
* @since 4.8.0
|
107 |
*
|
108 |
* @return array|mixed
|
@@ -202,14 +202,14 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
202 |
|
203 |
// Scope.
|
204 |
$scope = wcj_get_option( 'wcj_global_discount_sale_product_scope_' . $i, 'all' );
|
205 |
-
if ( 'all'
|
206 |
$wc_sale_products = wc_get_product_ids_on_sale();
|
207 |
-
if ( 'only_on_sale'
|
208 |
$args['post__in'] = $wc_sale_products;
|
209 |
if ( empty( $wc_sale_products ) ) {
|
210 |
$args['post_type'] = 'do_not_search';
|
211 |
}
|
212 |
-
} elseif ( 'only_not_on_sale'
|
213 |
$args['post__not_in'] = $wc_sale_products;
|
214 |
}
|
215 |
}
|
@@ -264,7 +264,7 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
264 |
/**
|
265 |
* Change_price_grouped.
|
266 |
*
|
267 |
-
* @version
|
268 |
* @since 2.5.7
|
269 |
* @param int $price defines the price.
|
270 |
* @param int $qty defines the qty.
|
@@ -276,7 +276,7 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
276 |
$the_price = get_post_meta( $child_id, '_price', true );
|
277 |
$the_product = wc_get_product( $child_id );
|
278 |
$the_price = wcj_get_product_display_price( $the_product, $the_price, 1 );
|
279 |
-
if ( $the_price
|
280 |
return $this->add_global_discount( $price, $the_product, 'price' );
|
281 |
}
|
282 |
}
|
@@ -287,7 +287,7 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
287 |
/**
|
288 |
* Calculate_price.
|
289 |
*
|
290 |
-
* @version
|
291 |
* @since 2.5.7
|
292 |
* @param int $price defines the price.
|
293 |
* @param int $coefficient defines the coefficient.
|
@@ -302,7 +302,7 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
302 |
( $price + $coefficient );
|
303 |
$return_price = ( $return_price >= 0 ? $return_price : 0 );
|
304 |
$final_correction_function = wcj_get_option( 'wcj_global_discount_sale_final_correction_func_' . $group, 'none' );
|
305 |
-
if ( 'none'
|
306 |
$final_correction_coef = wcj_get_option( 'wcj_global_discount_sale_final_correction_coef_' . $group, 1 );
|
307 |
$return_price = $final_correction_function( $return_price / $final_correction_coef ) * $final_correction_coef;
|
308 |
}
|
@@ -348,7 +348,7 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
348 |
/**
|
349 |
* Check_if_applicable_by_product_scope.
|
350 |
*
|
351 |
-
* @version
|
352 |
* @since 3.1.0
|
353 |
* @param string | array $_product defines the _product.
|
354 |
* @param int $price defines the price.
|
@@ -358,7 +358,7 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
358 |
public function check_if_applicable_by_product_scope( $_product, $price, $price_type, $scope ) {
|
359 |
$return = true;
|
360 |
if ( 'sale_price' === $price_type ) {
|
361 |
-
if ( 0
|
362 |
// The product is currently not on sale.
|
363 |
if ( 'only_on_sale' === $scope ) {
|
364 |
$return = false;
|
@@ -371,9 +371,9 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
371 |
}
|
372 |
} else {
|
373 |
wcj_remove_change_price_hooks( $this, $this->price_hooks_priority, false );
|
374 |
-
if ( 'only_on_sale' === $scope && 0
|
375 |
$return = false;
|
376 |
-
} elseif ( 'only_not_on_sale' === $scope && 0
|
377 |
$return = false;
|
378 |
}
|
379 |
wcj_add_change_price_hooks( $this, $this->price_hooks_priority, false );
|
@@ -384,7 +384,7 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
384 |
/**
|
385 |
* Add_global_discount.
|
386 |
*
|
387 |
-
* @version
|
388 |
* @since 2.5.7
|
389 |
* @param int $price defines the price.
|
390 |
* @param string | array $_product defines the _product.
|
@@ -401,11 +401,11 @@ if ( ! class_exists( 'WCJ_Global_Discount' ) ) :
|
|
401 |
continue; // no changes by current discount group.
|
402 |
}
|
403 |
$coefficient = wcj_get_option( 'wcj_global_discount_sale_coefficient_' . $i, 0 );
|
404 |
-
if ( 0
|
405 |
if ( ! $this->check_if_applicable_by_product_scope( $_product, $price, $price_type, wcj_get_option( 'wcj_global_discount_sale_product_scope_' . $i, 'all' ) ) ) {
|
406 |
continue; // no changes by current discount group.
|
407 |
}
|
408 |
-
if ( 'sale_price' === $price_type && 0
|
409 |
$price = $_product->get_regular_price();
|
410 |
}
|
411 |
return $this->calculate_price( $price, $coefficient, $i ); // discount applied.
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Global Discount
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.5.7
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
56 |
/**
|
57 |
* Add_wcj_sale_ids_to_products_shortcode.
|
58 |
*
|
59 |
+
* @version 5.6.1
|
60 |
* @since 4.8.0
|
61 |
*
|
62 |
* @param array $args defines the args.
|
67 |
*/
|
68 |
public function add_wcj_sale_ids_to_products_shortcode( $args, $atts, $type ) {
|
69 |
if (
|
70 |
+
'sale_products' != $type ||
|
71 |
+
'yes' != wcj_get_option( 'wcj_global_discount_products_shortcode_compatibility', 'no' )
|
72 |
) {
|
73 |
return $args;
|
74 |
}
|
81 |
/**
|
82 |
* Regenerate_wcj_sale_products_in_cache.
|
83 |
*
|
84 |
+
* @version 5.6.1
|
85 |
* @since 4.8.0
|
86 |
*/
|
87 |
public function regenerate_wcj_sale_products_in_cache() {
|
88 |
if (
|
89 |
+
'yes' != wcj_get_option( 'wcj_global_discount_products_shortcode_compatibility', 'no' ) ||
|
90 |
! isset( $_REQUEST['page'] ) || 'wc-settings' !== $_REQUEST['page'] ||
|
91 |
! isset( $_REQUEST['tab'] ) || 'jetpack' !== $_REQUEST['tab'] ||
|
92 |
! isset( $_REQUEST['wcj-cat'] ) || 'prices_and_currencies' !== $_REQUEST['wcj-cat'] ||
|
102 |
/**
|
103 |
* Get_wcj_sale_products.
|
104 |
*
|
105 |
+
* @version 5.6.1
|
106 |
* @since 4.8.0
|
107 |
*
|
108 |
* @return array|mixed
|
202 |
|
203 |
// Scope.
|
204 |
$scope = wcj_get_option( 'wcj_global_discount_sale_product_scope_' . $i, 'all' );
|
205 |
+
if ( 'all' != $scope ) {
|
206 |
$wc_sale_products = wc_get_product_ids_on_sale();
|
207 |
+
if ( 'only_on_sale' == $scope ) {
|
208 |
$args['post__in'] = $wc_sale_products;
|
209 |
if ( empty( $wc_sale_products ) ) {
|
210 |
$args['post_type'] = 'do_not_search';
|
211 |
}
|
212 |
+
} elseif ( 'only_not_on_sale' == $scope ) {
|
213 |
$args['post__not_in'] = $wc_sale_products;
|
214 |
}
|
215 |
}
|
264 |
/**
|
265 |
* Change_price_grouped.
|
266 |
*
|
267 |
+
* @version 5.6.1
|
268 |
* @since 2.5.7
|
269 |
* @param int $price defines the price.
|
270 |
* @param int $qty defines the qty.
|
276 |
$the_price = get_post_meta( $child_id, '_price', true );
|
277 |
$the_product = wc_get_product( $child_id );
|
278 |
$the_price = wcj_get_product_display_price( $the_product, $the_price, 1 );
|
279 |
+
if ( $the_price == $price ) {
|
280 |
return $this->add_global_discount( $price, $the_product, 'price' );
|
281 |
}
|
282 |
}
|
287 |
/**
|
288 |
* Calculate_price.
|
289 |
*
|
290 |
+
* @version 5.6.1
|
291 |
* @since 2.5.7
|
292 |
* @param int $price defines the price.
|
293 |
* @param int $coefficient defines the coefficient.
|
302 |
( $price + $coefficient );
|
303 |
$return_price = ( $return_price >= 0 ? $return_price : 0 );
|
304 |
$final_correction_function = wcj_get_option( 'wcj_global_discount_sale_final_correction_func_' . $group, 'none' );
|
305 |
+
if ( 'none' != ( $final_correction_function ) ) {
|
306 |
$final_correction_coef = wcj_get_option( 'wcj_global_discount_sale_final_correction_coef_' . $group, 1 );
|
307 |
$return_price = $final_correction_function( $return_price / $final_correction_coef ) * $final_correction_coef;
|
308 |
}
|
348 |
/**
|
349 |
* Check_if_applicable_by_product_scope.
|
350 |
*
|
351 |
+
* @version 5.6.1
|
352 |
* @since 3.1.0
|
353 |
* @param string | array $_product defines the _product.
|
354 |
* @param int $price defines the price.
|
358 |
public function check_if_applicable_by_product_scope( $_product, $price, $price_type, $scope ) {
|
359 |
$return = true;
|
360 |
if ( 'sale_price' === $price_type ) {
|
361 |
+
if ( 0 == $price ) {
|
362 |
// The product is currently not on sale.
|
363 |
if ( 'only_on_sale' === $scope ) {
|
364 |
$return = false;
|
371 |
}
|
372 |
} else {
|
373 |
wcj_remove_change_price_hooks( $this, $this->price_hooks_priority, false );
|
374 |
+
if ( 'only_on_sale' === $scope && 0 == $_product->get_sale_price() ) {
|
375 |
$return = false;
|
376 |
+
} elseif ( 'only_not_on_sale' === $scope && 0 != $_product->get_sale_price() ) {
|
377 |
$return = false;
|
378 |
}
|
379 |
wcj_add_change_price_hooks( $this, $this->price_hooks_priority, false );
|
384 |
/**
|
385 |
* Add_global_discount.
|
386 |
*
|
387 |
+
* @version 5.6.1
|
388 |
* @since 2.5.7
|
389 |
* @param int $price defines the price.
|
390 |
* @param string | array $_product defines the _product.
|
401 |
continue; // no changes by current discount group.
|
402 |
}
|
403 |
$coefficient = wcj_get_option( 'wcj_global_discount_sale_coefficient_' . $i, 0 );
|
404 |
+
if ( 0 != $coefficient ) {
|
405 |
if ( ! $this->check_if_applicable_by_product_scope( $_product, $price, $price_type, wcj_get_option( 'wcj_global_discount_sale_product_scope_' . $i, 'all' ) ) ) {
|
406 |
continue; // no changes by current discount group.
|
407 |
}
|
408 |
+
if ( 'sale_price' === $price_type && 0 == (int) $price ) {
|
409 |
$price = $_product->get_regular_price();
|
410 |
}
|
411 |
return $this->calculate_price( $price, $coefficient, $i ); // discount applied.
|
includes/class-wcj-multicurrency.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Multicurrency (Currency Switcher)
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.4.3
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -19,7 +19,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
19 |
class WCJ_Multicurrency extends WCJ_Module {
|
20 |
|
21 |
/**
|
22 |
-
|
23 |
*
|
24 |
* @var bkg_process_price_updater
|
25 |
*/
|
@@ -28,7 +28,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
28 |
/**
|
29 |
* Constructor.
|
30 |
*
|
31 |
-
* @version 5.
|
32 |
* @todo check if we can just always execute `init()` on `init` hook
|
33 |
*/
|
34 |
public function __construct() {
|
@@ -56,7 +56,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
56 |
'</li>' .
|
57 |
'<li>' . sprintf(
|
58 |
/* translators: %s: translation added */
|
59 |
-
__( '<strong>PHP code:</strong> by using %
|
60 |
'<code>do_shortcode()</code>',
|
61 |
'<code>echo do_shortcode( \'[wcj_currency_select_drop_down_list]\' );</code>'
|
62 |
) .
|
@@ -98,12 +98,12 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
98 |
/**
|
99 |
* Init_bkg_process_class.
|
100 |
*
|
101 |
-
* @version
|
102 |
* @since 4.5.0
|
103 |
*/
|
104 |
public function init_bkg_process_class() {
|
105 |
if ( 'yes' === wcj_get_option( 'wcj_multicurrency_update_prices_on_exch_update', 'no' ) ) {
|
106 |
-
require_once
|
107 |
$this->bkg_process_price_updater = new WCJ_Multicurrency_Price_Updater();
|
108 |
}
|
109 |
}
|
@@ -218,7 +218,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
218 |
/**
|
219 |
* Product_addons_price_raw.
|
220 |
*
|
221 |
-
* @version 5.
|
222 |
* @since 5.1.1
|
223 |
*
|
224 |
* @param int $price defines the price.
|
@@ -229,7 +229,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
229 |
public function product_addons_price_raw( $price, $addon ) {
|
230 |
if (
|
231 |
'no' === wcj_get_option( 'wcj_multicurrency_compatibility_product_addons', 'no' )
|
232 |
-
|| ( 'quantity_based'
|
233 |
) {
|
234 |
return $price;
|
235 |
}
|
@@ -315,7 +315,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
315 |
/**
|
316 |
* Get_wc_tree_table_rate_settings.
|
317 |
*
|
318 |
-
* @version 5.1
|
319 |
* @since 4.9.0
|
320 |
* @param array $option defines the option.
|
321 |
*
|
@@ -336,7 +336,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
336 |
'exchange_rate' => $this->get_currency_exchange_rate( $this->get_current_currency_code() ),
|
337 |
)
|
338 |
);
|
339 |
-
set_transient( $transition_name,
|
340 |
}
|
341 |
$option['rule'] = $modified_rule_result;
|
342 |
remove_filter( current_filter(), array( $this, 'convert_wc_tree_table_rate_settings' ) );
|
@@ -346,7 +346,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
346 |
/**
|
347 |
* Recursively_convert_wc_tree_settings.
|
348 |
*
|
349 |
-
* @version 5.1
|
350 |
* @since 4.9.0
|
351 |
*
|
352 |
* @param array $array defines the array.
|
@@ -369,7 +369,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
369 |
if (
|
370 |
is_array( $array ) &&
|
371 |
isset( $array['condition'] ) &&
|
372 |
-
'price'
|
373 |
! empty( $value ) &&
|
374 |
is_numeric( $value )
|
375 |
) {
|
@@ -440,7 +440,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
440 |
'yes' !== wcj_get_option( 'wcj_multicurrency_compatibility_wc_coupons', 'no' ) ||
|
441 |
is_admin() ||
|
442 |
empty( $coupon_id ) ||
|
443 |
-
'fixed_cart'
|
444 |
) {
|
445 |
return $false;
|
446 |
}
|
@@ -690,7 +690,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
690 |
*
|
691 |
* @see price-slider.js, init_price_filter()
|
692 |
*
|
693 |
-
* @version 5.
|
694 |
* @since 4.3.0
|
695 |
*/
|
696 |
public function add_compatibility_with_price_filter_widget() {
|
@@ -700,7 +700,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
700 |
?>
|
701 |
<?php
|
702 |
$exchange_rate = $this->get_currency_exchange_rate( $this->get_current_currency_code() );
|
703 |
-
if ( 1
|
704 |
return;
|
705 |
}
|
706 |
?>
|
@@ -1078,7 +1078,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
1078 |
/**
|
1079 |
* Finds old add-ons fields on cart and replace by correct price.
|
1080 |
*
|
1081 |
-
* @version 5.
|
1082 |
* @since 4.3.0
|
1083 |
*
|
1084 |
* @param array $other_data defines the other_data.
|
@@ -1096,9 +1096,9 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
1096 |
$name_old = $addon['name'];
|
1097 |
|
1098 |
// Get old field name (with wrong currency price).
|
1099 |
-
if ( 0
|
1100 |
$name_old .= '';
|
1101 |
-
} elseif ( 'percentage_based' === $addon['price_type'] && 0
|
1102 |
$name_old .= '';
|
1103 |
} elseif ( 'percentage_based' !== $addon['price_type'] && $addon['price'] && apply_filters( 'woocommerce_addons_add_price_to_name', '__return_true' ) ) {
|
1104 |
$name_old .= ' (' . wc_price( \WC_Product_Addons_Helper::get_product_addon_price_for_display( $addon['price'], $cart_item['data'], true ) ) . ')';
|
@@ -1111,9 +1111,9 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
1111 |
// Get new field name (with correct currency price).
|
1112 |
$name_new = $addon['name'];
|
1113 |
$addon['price'] = $this->change_price( $addon['price'], null );
|
1114 |
-
if ( 0
|
1115 |
$name_new .= '';
|
1116 |
-
} elseif ( 'percentage_based' === $addon['price_type'] && 0
|
1117 |
$name_new .= '';
|
1118 |
} elseif ( 'percentage_based' !== $addon['price_type'] && $addon['price'] && apply_filters( 'woocommerce_addons_add_price_to_name', '__return_true' ) ) {
|
1119 |
$name_new .= ' (' . wc_price( \WC_Product_Addons_Helper::get_product_addon_price_for_display( $addon['price'], $cart_item['data'], true ) ) . ')';
|
@@ -1125,7 +1125,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
1125 |
|
1126 |
// Find old field on cart and replace by correct price.
|
1127 |
foreach ( $other_data as $key => $data ) {
|
1128 |
-
if ( $data['name']
|
1129 |
$other_data[ $key ]['name'] = $name_new;
|
1130 |
}
|
1131 |
}
|
@@ -1246,7 +1246,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
1246 |
/**
|
1247 |
* Saves price so it won't be necessary to calculate it multiple times.
|
1248 |
*
|
1249 |
-
* @version
|
1250 |
* @since 4.6.0
|
1251 |
*
|
1252 |
* @param int $price defines the price.
|
@@ -1294,7 +1294,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
1294 |
$_product_id = wcj_get_product_id( $_product );
|
1295 |
$do_save = $args['do_save'];
|
1296 |
$_current_filter = current_filter();
|
1297 |
-
if ( ''
|
1298 |
$_current_filter = 'wcj_filter__none';
|
1299 |
}
|
1300 |
if ( $do_save && isset( w_c_j()->modules['multicurrency']->calculated_products_prices[ $_product_id ][ $_current_filter ] ) ) {
|
@@ -1311,27 +1311,27 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
1311 |
$price = '';
|
1312 |
$this->save_price( $price, $_product_id, $_current_filter );
|
1313 |
return $price;
|
1314 |
-
} elseif ( ''
|
1315 |
-
if ( 'woocommerce_get_price_including_tax'
|
1316 |
$price = wcj_get_product_display_price( $_product );
|
1317 |
$this->save_price( $price, $_product_id, $_current_filter );
|
1318 |
return $price;
|
1319 |
-
} elseif ( WCJ_PRODUCT_GET_PRICE_FILTER
|
1320 |
if ( $_product->is_on_sale() ) {
|
1321 |
$sale_price_per_product = get_post_meta( $_product_id, '_wcj_multicurrency_per_product_sale_price_' . $this->get_current_currency_code(), true );
|
1322 |
-
$price = ( ''
|
1323 |
} else {
|
1324 |
$price = $regular_price_per_product;
|
1325 |
}
|
1326 |
$this->save_price( $price, $_product_id, $_current_filter );
|
1327 |
return $price;
|
1328 |
-
} elseif ( WCJ_PRODUCT_GET_REGULAR_PRICE_FILTER
|
1329 |
$price = $regular_price_per_product;
|
1330 |
$this->save_price( $price, $_product_id, $_current_filter );
|
1331 |
return $price;
|
1332 |
-
} elseif ( WCJ_PRODUCT_GET_SALE_PRICE_FILTER
|
1333 |
$sale_price_per_product = get_post_meta( $_product_id, '_wcj_multicurrency_per_product_sale_price_' . $this->get_current_currency_code(), true );
|
1334 |
-
$price = ( ''
|
1335 |
$this->save_price( $price, $_product_id, $_current_filter );
|
1336 |
return $price;
|
1337 |
}
|
@@ -1340,7 +1340,7 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
1340 |
|
1341 |
// Global.
|
1342 |
$currency_exchange_rate = $this->get_currency_exchange_rate( $this->get_current_currency_code() );
|
1343 |
-
if ( 1
|
1344 |
$price = (float) $price * (float) $currency_exchange_rate;
|
1345 |
switch ( wcj_get_option( 'wcj_multicurrency_rounding', 'no_round' ) ) {
|
1346 |
case 'round':
|
@@ -1376,9 +1376,9 @@ if ( ! class_exists( 'WCJ_Multicurrency' ) ) :
|
|
1376 |
$module_roles = wcj_get_option( 'wcj_multicurrency_role_defaults_roles', '' );
|
1377 |
if ( ! empty( $module_roles ) ) {
|
1378 |
$current_user_role = wcj_get_current_user_first_role();
|
1379 |
-
if ( in_array( $current_user_role, $module_roles
|
1380 |
$roles_default_currency = wcj_get_option( 'wcj_multicurrency_role_defaults_' . $current_user_role, '' );
|
1381 |
-
if ( ''
|
1382 |
return $roles_default_currency;
|
1383 |
}
|
1384 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Multicurrency (Currency Switcher)
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.4.3
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
19 |
class WCJ_Multicurrency extends WCJ_Module {
|
20 |
|
21 |
/**
|
22 |
+
* Bkg_process_price_updater
|
23 |
*
|
24 |
* @var bkg_process_price_updater
|
25 |
*/
|
28 |
/**
|
29 |
* Constructor.
|
30 |
*
|
31 |
+
* @version 5.6.1
|
32 |
* @todo check if we can just always execute `init()` on `init` hook
|
33 |
*/
|
34 |
public function __construct() {
|
56 |
'</li>' .
|
57 |
'<li>' . sprintf(
|
58 |
/* translators: %s: translation added */
|
59 |
+
__( '<strong>PHP code:</strong> by using %s function, e.g.: %s', 'woocommerce-jetpack' ),
|
60 |
'<code>do_shortcode()</code>',
|
61 |
'<code>echo do_shortcode( \'[wcj_currency_select_drop_down_list]\' );</code>'
|
62 |
) .
|
98 |
/**
|
99 |
* Init_bkg_process_class.
|
100 |
*
|
101 |
+
* @version 5.6.1
|
102 |
* @since 4.5.0
|
103 |
*/
|
104 |
public function init_bkg_process_class() {
|
105 |
if ( 'yes' === wcj_get_option( 'wcj_multicurrency_update_prices_on_exch_update', 'no' ) ) {
|
106 |
+
require_once wcj_free_plugin_path() . '/includes/background-process/class-wcj-multicurrency-price-updater.php';
|
107 |
$this->bkg_process_price_updater = new WCJ_Multicurrency_Price_Updater();
|
108 |
}
|
109 |
}
|
218 |
/**
|
219 |
* Product_addons_price_raw.
|
220 |
*
|
221 |
+
* @version 5.6.1
|
222 |
* @since 5.1.1
|
223 |
*
|
224 |
* @param int $price defines the price.
|
229 |
public function product_addons_price_raw( $price, $addon ) {
|
230 |
if (
|
231 |
'no' === wcj_get_option( 'wcj_multicurrency_compatibility_product_addons', 'no' )
|
232 |
+
|| ( 'quantity_based' != $addon['price_type'] && 'flat_fee' != $addon['price_type'] )
|
233 |
) {
|
234 |
return $price;
|
235 |
}
|
315 |
/**
|
316 |
* Get_wc_tree_table_rate_settings.
|
317 |
*
|
318 |
+
* @version 5.6.1
|
319 |
* @since 4.9.0
|
320 |
* @param array $option defines the option.
|
321 |
*
|
336 |
'exchange_rate' => $this->get_currency_exchange_rate( $this->get_current_currency_code() ),
|
337 |
)
|
338 |
);
|
339 |
+
set_transient( $transition_name, json_encode( $modified_rule ), 5 * MINUTE_IN_SECONDS );
|
340 |
}
|
341 |
$option['rule'] = $modified_rule_result;
|
342 |
remove_filter( current_filter(), array( $this, 'convert_wc_tree_table_rate_settings' ) );
|
346 |
/**
|
347 |
* Recursively_convert_wc_tree_settings.
|
348 |
*
|
349 |
+
* @version 5.6.1
|
350 |
* @since 4.9.0
|
351 |
*
|
352 |
* @param array $array defines the array.
|
369 |
if (
|
370 |
is_array( $array ) &&
|
371 |
isset( $array['condition'] ) &&
|
372 |
+
'price' == $array['condition'] &&
|
373 |
! empty( $value ) &&
|
374 |
is_numeric( $value )
|
375 |
) {
|
440 |
'yes' !== wcj_get_option( 'wcj_multicurrency_compatibility_wc_coupons', 'no' ) ||
|
441 |
is_admin() ||
|
442 |
empty( $coupon_id ) ||
|
443 |
+
'fixed_cart' != get_post_meta( $coupon_id, 'discount_type', true )
|
444 |
) {
|
445 |
return $false;
|
446 |
}
|
690 |
*
|
691 |
* @see price-slider.js, init_price_filter()
|
692 |
*
|
693 |
+
* @version 5.6.1
|
694 |
* @since 4.3.0
|
695 |
*/
|
696 |
public function add_compatibility_with_price_filter_widget() {
|
700 |
?>
|
701 |
<?php
|
702 |
$exchange_rate = $this->get_currency_exchange_rate( $this->get_current_currency_code() );
|
703 |
+
if ( 1 == $exchange_rate ) {
|
704 |
return;
|
705 |
}
|
706 |
?>
|
1078 |
/**
|
1079 |
* Finds old add-ons fields on cart and replace by correct price.
|
1080 |
*
|
1081 |
+
* @version 5.6.1
|
1082 |
* @since 4.3.0
|
1083 |
*
|
1084 |
* @param array $other_data defines the other_data.
|
1096 |
$name_old = $addon['name'];
|
1097 |
|
1098 |
// Get old field name (with wrong currency price).
|
1099 |
+
if ( 0 == $addon['price'] ) {
|
1100 |
$name_old .= '';
|
1101 |
+
} elseif ( 'percentage_based' === $addon['price_type'] && 0 == $price ) {
|
1102 |
$name_old .= '';
|
1103 |
} elseif ( 'percentage_based' !== $addon['price_type'] && $addon['price'] && apply_filters( 'woocommerce_addons_add_price_to_name', '__return_true' ) ) {
|
1104 |
$name_old .= ' (' . wc_price( \WC_Product_Addons_Helper::get_product_addon_price_for_display( $addon['price'], $cart_item['data'], true ) ) . ')';
|
1111 |
// Get new field name (with correct currency price).
|
1112 |
$name_new = $addon['name'];
|
1113 |
$addon['price'] = $this->change_price( $addon['price'], null );
|
1114 |
+
if ( 0 == $addon['price'] ) {
|
1115 |
$name_new .= '';
|
1116 |
+
} elseif ( 'percentage_based' === $addon['price_type'] && 0 == $price ) {
|
1117 |
$name_new .= '';
|
1118 |
} elseif ( 'percentage_based' !== $addon['price_type'] && $addon['price'] && apply_filters( 'woocommerce_addons_add_price_to_name', '__return_true' ) ) {
|
1119 |
$name_new .= ' (' . wc_price( \WC_Product_Addons_Helper::get_product_addon_price_for_display( $addon['price'], $cart_item['data'], true ) ) . ')';
|
1125 |
|
1126 |
// Find old field on cart and replace by correct price.
|
1127 |
foreach ( $other_data as $key => $data ) {
|
1128 |
+
if ( $data['name'] == $name_old ) {
|
1129 |
$other_data[ $key ]['name'] = $name_new;
|
1130 |
}
|
1131 |
}
|
1246 |
/**
|
1247 |
* Saves price so it won't be necessary to calculate it multiple times.
|
1248 |
*
|
1249 |
+
* @version 5.6.1
|
1250 |
* @since 4.6.0
|
1251 |
*
|
1252 |
* @param int $price defines the price.
|
1294 |
$_product_id = wcj_get_product_id( $_product );
|
1295 |
$do_save = $args['do_save'];
|
1296 |
$_current_filter = current_filter();
|
1297 |
+
if ( '' == $_current_filter ) {
|
1298 |
$_current_filter = 'wcj_filter__none';
|
1299 |
}
|
1300 |
if ( $do_save && isset( w_c_j()->modules['multicurrency']->calculated_products_prices[ $_product_id ][ $_current_filter ] ) ) {
|
1311 |
$price = '';
|
1312 |
$this->save_price( $price, $_product_id, $_current_filter );
|
1313 |
return $price;
|
1314 |
+
} elseif ( '' != ( $regular_price_per_product ) ) {
|
1315 |
+
if ( 'woocommerce_get_price_including_tax' == $_current_filter || 'woocommerce_get_price_excluding_tax' == $_current_filter ) {
|
1316 |
$price = wcj_get_product_display_price( $_product );
|
1317 |
$this->save_price( $price, $_product_id, $_current_filter );
|
1318 |
return $price;
|
1319 |
+
} elseif ( WCJ_PRODUCT_GET_PRICE_FILTER == $_current_filter || 'woocommerce_variation_prices_price' == $_current_filter || 'woocommerce_product_variation_get_price' == $_current_filter || in_array( $_current_filter, $this->additional_price_filters ) ) {
|
1320 |
if ( $_product->is_on_sale() ) {
|
1321 |
$sale_price_per_product = get_post_meta( $_product_id, '_wcj_multicurrency_per_product_sale_price_' . $this->get_current_currency_code(), true );
|
1322 |
+
$price = ( '' != $sale_price_per_product && $sale_price_per_product < $regular_price_per_product ) ? $sale_price_per_product : $regular_price_per_product;
|
1323 |
} else {
|
1324 |
$price = $regular_price_per_product;
|
1325 |
}
|
1326 |
$this->save_price( $price, $_product_id, $_current_filter );
|
1327 |
return $price;
|
1328 |
+
} elseif ( WCJ_PRODUCT_GET_REGULAR_PRICE_FILTER == $_current_filter || 'woocommerce_variation_prices_regular_price' == $_current_filter || 'woocommerce_product_variation_get_regular_price' == $_current_filter ) {
|
1329 |
$price = $regular_price_per_product;
|
1330 |
$this->save_price( $price, $_product_id, $_current_filter );
|
1331 |
return $price;
|
1332 |
+
} elseif ( WCJ_PRODUCT_GET_SALE_PRICE_FILTER == $_current_filter || 'woocommerce_variation_prices_sale_price' == $_current_filter || 'woocommerce_product_variation_get_sale_price' == $_current_filter ) {
|
1333 |
$sale_price_per_product = get_post_meta( $_product_id, '_wcj_multicurrency_per_product_sale_price_' . $this->get_current_currency_code(), true );
|
1334 |
+
$price = ( '' != $sale_price_per_product ) ? $sale_price_per_product : $price;
|
1335 |
$this->save_price( $price, $_product_id, $_current_filter );
|
1336 |
return $price;
|
1337 |
}
|
1340 |
|
1341 |
// Global.
|
1342 |
$currency_exchange_rate = $this->get_currency_exchange_rate( $this->get_current_currency_code() );
|
1343 |
+
if ( 1 != ( $currency_exchange_rate ) ) {
|
1344 |
$price = (float) $price * (float) $currency_exchange_rate;
|
1345 |
switch ( wcj_get_option( 'wcj_multicurrency_rounding', 'no_round' ) ) {
|
1346 |
case 'round':
|
1376 |
$module_roles = wcj_get_option( 'wcj_multicurrency_role_defaults_roles', '' );
|
1377 |
if ( ! empty( $module_roles ) ) {
|
1378 |
$current_user_role = wcj_get_current_user_first_role();
|
1379 |
+
if ( in_array( $current_user_role, $module_roles ) ) {
|
1380 |
$roles_default_currency = wcj_get_option( 'wcj_multicurrency_role_defaults_' . $current_user_role, '' );
|
1381 |
+
if ( '' != $roles_default_currency ) {
|
1382 |
return $roles_default_currency;
|
1383 |
}
|
1384 |
}
|
includes/class-wcj-my-account.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - My Account
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -282,7 +282,7 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
282 |
/**
|
283 |
* Customize_dashboard.
|
284 |
*
|
285 |
-
* @version
|
286 |
* @since 3.8.0
|
287 |
* @see woocommerce/templates/myaccount/dashboard.php
|
288 |
* @param string | array $value defines the value.
|
@@ -326,7 +326,7 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
326 |
echo '<p>';
|
327 |
/* translators: 1: user display name 2: logout url */
|
328 |
printf(
|
329 |
-
|
330 |
'<strong>' . esc_html( $current_user->display_name ) . '</strong>',
|
331 |
esc_url( wc_logout_url( wc_get_page_permalink( 'myaccount' ) ) )
|
332 |
);
|
@@ -336,7 +336,7 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
336 |
if ( 'no' === wcj_get_option( 'wcj_my_account_custom_dashboard_hide_info', 'no' ) ) {
|
337 |
echo '<p>';
|
338 |
printf(
|
339 |
-
|
340 |
esc_url( wc_get_endpoint_url( 'orders' ) ),
|
341 |
esc_url( wc_get_endpoint_url( 'edit-address' ) ),
|
342 |
esc_url( wc_get_endpoint_url( 'edit-account' ) )
|
@@ -478,7 +478,7 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
478 |
/**
|
479 |
* Add_my_account_custom_info.
|
480 |
*
|
481 |
-
* @version
|
482 |
* @since 3.4.0
|
483 |
*/
|
484 |
public function add_my_account_custom_info() {
|
@@ -489,7 +489,7 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
489 |
if (
|
490 |
'' !== wcj_get_option( 'wcj_my_account_custom_info_content_' . $i ) &&
|
491 |
wcj_get_option( 'wcj_my_account_custom_info_hook_' . $i, 'woocommerce_account_dashboard' ) === $current_filter &&
|
492 |
-
wcj_get_option( 'wcj_my_account_custom_info_priority_' . $i, 10 ) === $current_filter_priority
|
493 |
) {
|
494 |
echo do_shortcode( wcj_get_option( 'wcj_my_account_custom_info_content_' . $i ) );
|
495 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - My Account
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
282 |
/**
|
283 |
* Customize_dashboard.
|
284 |
*
|
285 |
+
* @version 5.6.1
|
286 |
* @since 3.8.0
|
287 |
* @see woocommerce/templates/myaccount/dashboard.php
|
288 |
* @param string | array $value defines the value.
|
326 |
echo '<p>';
|
327 |
/* translators: 1: user display name 2: logout url */
|
328 |
printf(
|
329 |
+
__( 'Hello %1$s (not %1$s? <a href="%2$s">Log out</a>)', 'woocommerce' ),
|
330 |
'<strong>' . esc_html( $current_user->display_name ) . '</strong>',
|
331 |
esc_url( wc_logout_url( wc_get_page_permalink( 'myaccount' ) ) )
|
332 |
);
|
336 |
if ( 'no' === wcj_get_option( 'wcj_my_account_custom_dashboard_hide_info', 'no' ) ) {
|
337 |
echo '<p>';
|
338 |
printf(
|
339 |
+
__( 'From your account dashboard you can view your <a href="%1$s">recent orders</a>, manage your <a href="%2$s">shipping and billing addresses</a>, and <a href="%3$s">edit your password and account details</a>.', 'woocommerce' ),
|
340 |
esc_url( wc_get_endpoint_url( 'orders' ) ),
|
341 |
esc_url( wc_get_endpoint_url( 'edit-address' ) ),
|
342 |
esc_url( wc_get_endpoint_url( 'edit-account' ) )
|
478 |
/**
|
479 |
* Add_my_account_custom_info.
|
480 |
*
|
481 |
+
* @version 5.6.1
|
482 |
* @since 3.4.0
|
483 |
*/
|
484 |
public function add_my_account_custom_info() {
|
489 |
if (
|
490 |
'' !== wcj_get_option( 'wcj_my_account_custom_info_content_' . $i ) &&
|
491 |
wcj_get_option( 'wcj_my_account_custom_info_hook_' . $i, 'woocommerce_account_dashboard' ) === $current_filter &&
|
492 |
+
wcj_get_option( 'wcj_my_account_custom_info_priority_' . $i, '10' ) === (string)$current_filter_priority
|
493 |
) {
|
494 |
echo do_shortcode( wcj_get_option( 'wcj_my_account_custom_info_content_' . $i ) );
|
495 |
}
|
includes/class-wcj-offer-price.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Offer Price
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -186,7 +186,7 @@ if ( ! class_exists( 'WCJ_Offer_Price' ) ) :
|
|
186 |
/**
|
187 |
* Create_offer_price_history_meta_box.
|
188 |
*
|
189 |
-
* @version
|
190 |
* @since 2.9.0
|
191 |
*/
|
192 |
public function create_offer_price_history_meta_box() {
|
@@ -254,9 +254,9 @@ if ( ! class_exists( 'WCJ_Offer_Price' ) ) :
|
|
254 |
echo wp_kses_post( wcj_get_table_html( $table_data, array( 'table_class' => 'widefat striped' ) ) );
|
255 |
foreach ( $average_offers as $average_offer_currency_code => $average_offer_data ) {
|
256 |
echo '<p>' . sprintf(
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
) . '</p>';
|
261 |
}
|
262 |
echo '<p>' .
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Offer Price
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
186 |
/**
|
187 |
* Create_offer_price_history_meta_box.
|
188 |
*
|
189 |
+
* @version 5.6.1
|
190 |
* @since 2.9.0
|
191 |
*/
|
192 |
public function create_offer_price_history_meta_box() {
|
254 |
echo wp_kses_post( wcj_get_table_html( $table_data, array( 'table_class' => 'widefat striped' ) ) );
|
255 |
foreach ( $average_offers as $average_offer_currency_code => $average_offer_data ) {
|
256 |
echo '<p>' . sprintf(
|
257 |
+
__( 'Average offer: %s (from %s offer(s))', 'woocommerce-jetpack' ),
|
258 |
+
wc_price( ( $average_offer_data['offers_sum'] / $average_offer_data['total_offers'] ), array( 'currency' => $average_offer_currency_code ) ),
|
259 |
+
$average_offer_data['total_offers']
|
260 |
) . '</p>';
|
261 |
}
|
262 |
echo '<p>' .
|
includes/class-wcj-pdf-invoicing.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - PDF Invoicing
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -304,8 +304,8 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing' ) ) :
|
|
304 |
if ( empty( $files ) ) {
|
305 |
return 'merge_pdfs_no_files';
|
306 |
}
|
307 |
-
require_once
|
308 |
-
$fpdi_pdf = require_once
|
309 |
$fpdi_pdf->SetTitle( 'docs.pdf' );
|
310 |
$fpdi_pdf->setPrintHeader( false );
|
311 |
$fpdi_pdf->setPrintFooter( false );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - PDF Invoicing
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
304 |
if ( empty( $files ) ) {
|
305 |
return 'merge_pdfs_no_files';
|
306 |
}
|
307 |
+
require_once wcj_free_plugin_path() . '/includes/lib/FPDI/src/autoload.php';
|
308 |
+
$fpdi_pdf = require_once wcj_free_plugin_path() . '/includes/pdf-invoices/tcpdffpdi.php';
|
309 |
$fpdi_pdf->SetTitle( 'docs.pdf' );
|
310 |
$fpdi_pdf->setPrintHeader( false );
|
311 |
$fpdi_pdf->setPrintFooter( false );
|
includes/class-wcj-price-by-country.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Prices and Currencies by Country
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -112,11 +112,11 @@ if ( ! class_exists( 'WCJ_Price_By_Country' ) ) :
|
|
112 |
/**
|
113 |
* Init_bkg_process_class.
|
114 |
*
|
115 |
-
* @version 5.1
|
116 |
* @since 5.1.0
|
117 |
*/
|
118 |
public function init_bkg_process_class() {
|
119 |
-
require_once
|
120 |
$this->bkg_process_price_updater = new WCJ_Price_By_Country_Updater();
|
121 |
}
|
122 |
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Prices and Currencies by Country
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
112 |
/**
|
113 |
* Init_bkg_process_class.
|
114 |
*
|
115 |
+
* @version 5.6.1
|
116 |
* @since 5.1.0
|
117 |
*/
|
118 |
public function init_bkg_process_class() {
|
119 |
+
require_once wcj_free_plugin_path() . '/includes/background-process/class-wcj-price-by-country-updater.php';
|
120 |
$this->bkg_process_price_updater = new WCJ_Price_By_Country_Updater();
|
121 |
}
|
122 |
|
includes/class-wcj-price-by-user-role.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Price based on User Role
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.5.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo Fix "Make Empty Price" option for variable products
|
@@ -305,7 +305,7 @@ if ( ! class_exists( 'WCJ_Price_By_User_Role' ) ) :
|
|
305 |
/**
|
306 |
* Change_price.
|
307 |
*
|
308 |
-
* @version
|
309 |
* @since 2.5.0
|
310 |
* @todo (maybe) add "enable compound multipliers" option
|
311 |
* @todo (maybe) check for `( '' === $price )` only once, at the beginning of the function (instead of comparing before each `return`)
|
@@ -413,7 +413,7 @@ if ( ! class_exists( 'WCJ_Price_By_User_Role' ) ) :
|
|
413 |
WCJ_PRODUCT_GET_REGULAR_PRICE_FILTER,
|
414 |
'woocommerce_variation_prices_regular_price',
|
415 |
'woocommerce_product_variation_get_regular_price',
|
416 |
-
)
|
417 |
) ) {
|
418 |
return $price;
|
419 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Price based on User Role
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.5.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo Fix "Make Empty Price" option for variable products
|
305 |
/**
|
306 |
* Change_price.
|
307 |
*
|
308 |
+
* @version 5.6.1
|
309 |
* @since 2.5.0
|
310 |
* @todo (maybe) add "enable compound multipliers" option
|
311 |
* @todo (maybe) check for `( '' === $price )` only once, at the beginning of the function (instead of comparing before each `return`)
|
413 |
WCJ_PRODUCT_GET_REGULAR_PRICE_FILTER,
|
414 |
'woocommerce_variation_prices_regular_price',
|
415 |
'woocommerce_product_variation_get_regular_price',
|
416 |
+
)
|
417 |
) ) {
|
418 |
return $price;
|
419 |
}
|
includes/class-wcj-product-add-to-cart.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Add To Cart
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -347,7 +347,7 @@ if ( ! class_exists( 'WCJ_Product_Add_To_Cart' ) ) :
|
|
347 |
/**
|
348 |
* Adds radio buttons template for variations
|
349 |
*
|
350 |
-
* @version
|
351 |
* @since 4.3.0
|
352 |
* @see woocommerce_variable_add_to_cart()
|
353 |
*/
|
@@ -362,7 +362,7 @@ if ( ! class_exists( 'WCJ_Product_Add_To_Cart' ) ) :
|
|
362 |
'selected_attributes' => $product->get_default_attributes(),
|
363 |
),
|
364 |
'',
|
365 |
-
|
366 |
);
|
367 |
?>
|
368 |
<style>
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Add To Cart
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
347 |
/**
|
348 |
* Adds radio buttons template for variations
|
349 |
*
|
350 |
+
* @version 5.6.1
|
351 |
* @since 4.3.0
|
352 |
* @see woocommerce_variable_add_to_cart()
|
353 |
*/
|
362 |
'selected_attributes' => $product->get_default_attributes(),
|
363 |
),
|
364 |
'',
|
365 |
+
WCJ_FREE_PLUGIN_PATH . '/includes/templates/'
|
366 |
);
|
367 |
?>
|
368 |
<style>
|
includes/class-wcj-product-bulk-price-converter.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Bulk Price Converter
|
4 |
*
|
5 |
-
* @version
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -243,13 +243,13 @@ if ( ! class_exists( 'WCJ_Bulk_Price_Converter' ) ) :
|
|
243 |
/**
|
244 |
* Create_bulk_price_converter_tool.
|
245 |
*
|
246 |
-
* @version
|
247 |
*/
|
248 |
public function create_bulk_price_converter_tool() {
|
249 |
$result_message = '';
|
250 |
|
251 |
$multiply_prices_by = isset( $_POST['multiply_prices_by'] ) ? $_POST['multiply_prices_by'] : 1;
|
252 |
-
$is_preview = $_POST['bulk_change_prices_preview'];
|
253 |
|
254 |
$result_changing_prices = '';
|
255 |
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Bulk Price Converter
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
243 |
/**
|
244 |
* Create_bulk_price_converter_tool.
|
245 |
*
|
246 |
+
* @version 5.6.1
|
247 |
*/
|
248 |
public function create_bulk_price_converter_tool() {
|
249 |
$result_message = '';
|
250 |
|
251 |
$multiply_prices_by = isset( $_POST['multiply_prices_by'] ) ? $_POST['multiply_prices_by'] : 1;
|
252 |
+
$is_preview = isset( $_POST['bulk_change_prices_preview'] );
|
253 |
|
254 |
$result_changing_prices = '';
|
255 |
|
includes/class-wcj-product-by-country.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Visibility by Country
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.5.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -145,7 +145,7 @@ if ( ! class_exists( 'WCJ_Product_By_Country' ) ) :
|
|
145 |
/**
|
146 |
* Maybe_add_extra_settings.
|
147 |
*
|
148 |
-
* @version 5.
|
149 |
* @since 3.6.0
|
150 |
* @todo (maybe) move "Country List" inside the "Admin Options" section
|
151 |
*/
|
@@ -161,7 +161,7 @@ if ( ! class_exists( 'WCJ_Product_By_Country' ) ) :
|
|
161 |
'desc_tip' => __( 'Possible values: "Automatically by IP" or "Manually".', 'woocommerce-jetpack' ),
|
162 |
'desc' => sprintf(
|
163 |
/* translators: %s: translation added */
|
164 |
-
'<p>' . __( 'If "Manually" option is selected, you can add country selection drop box to frontend with "%
|
165 |
__( 'Booster - Selector', 'woocommerce-jetpack' ),
|
166 |
'<code>[wcj_selector selector_type="country"]</code>'
|
167 |
) .
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Visibility by Country
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.5.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
145 |
/**
|
146 |
* Maybe_add_extra_settings.
|
147 |
*
|
148 |
+
* @version 5.6.1
|
149 |
* @since 3.6.0
|
150 |
* @todo (maybe) move "Country List" inside the "Admin Options" section
|
151 |
*/
|
161 |
'desc_tip' => __( 'Possible values: "Automatically by IP" or "Manually".', 'woocommerce-jetpack' ),
|
162 |
'desc' => sprintf(
|
163 |
/* translators: %s: translation added */
|
164 |
+
'<p>' . __( 'If "Manually" option is selected, you can add country selection drop box to frontend with "%s" widget or %s shortcode.', 'woocommerce-jetpack' ),
|
165 |
__( 'Booster - Selector', 'woocommerce-jetpack' ),
|
166 |
'<code>[wcj_selector selector_type="country"]</code>'
|
167 |
) .
|
includes/class-wcj-product-by-user.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product by User
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.5.2
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -69,9 +69,6 @@ if ( ! class_exists( 'WCJ_Product_By_User' ) ) :
|
|
69 |
return;
|
70 |
}
|
71 |
$order = wc_get_order( $order_id );
|
72 |
-
if ( ! $order ) {
|
73 |
-
return -1;
|
74 |
-
}
|
75 |
|
76 |
foreach ( $order->get_items() as $item_id => $item ) {
|
77 |
$productid = $item['product_id'];
|
@@ -85,15 +82,15 @@ if ( ! class_exists( 'WCJ_Product_By_User' ) ) :
|
|
85 |
/**
|
86 |
* Send Email To Product User at success page when email send setting enable
|
87 |
*
|
88 |
-
* @version 5.6.
|
89 |
* @since 1.0.0
|
90 |
* @param string $headers defines the headers.
|
91 |
* @param string $email_id defines the email_id.
|
92 |
-
* @param array $
|
93 |
*/
|
94 |
-
public function sendemail_to_productowner_order_place_successfully( $headers, $email_id, $
|
95 |
-
$
|
96 |
-
|
97 |
$headers .= 'Cc: Name <' . $useremail . '>' . "\r\n";
|
98 |
}
|
99 |
return $headers;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product by User
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.5.2
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
69 |
return;
|
70 |
}
|
71 |
$order = wc_get_order( $order_id );
|
|
|
|
|
|
|
72 |
|
73 |
foreach ( $order->get_items() as $item_id => $item ) {
|
74 |
$productid = $item['product_id'];
|
82 |
/**
|
83 |
* Send Email To Product User at success page when email send setting enable
|
84 |
*
|
85 |
+
* @version 5.6.1
|
86 |
* @since 1.0.0
|
87 |
* @param string $headers defines the headers.
|
88 |
* @param string $email_id defines the email_id.
|
89 |
+
* @param array $object defines the object.
|
90 |
*/
|
91 |
+
public function sendemail_to_productowner_order_place_successfully( $headers, $email_id, $object ) {
|
92 |
+
if ( 'new_order' === $email_id && is_a( $object, 'WC_Order' ) ) {
|
93 |
+
$useremail = $this->getProductOwnerEmail( wcj_get_order_id( $object ) );
|
94 |
$headers .= 'Cc: Name <' . $useremail . '>' . "\r\n";
|
95 |
}
|
96 |
return $headers;
|
includes/class-wcj-product-custom-visibility.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Custom Visibility
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -21,7 +21,7 @@ if ( ! class_exists( 'WCJ_Product_Custom_Visibility' ) ) :
|
|
21 |
/**
|
22 |
* Constructor.
|
23 |
*
|
24 |
-
* @version 5.
|
25 |
* @since 3.2.4
|
26 |
*/
|
27 |
public function __construct() {
|
@@ -34,7 +34,7 @@ if ( ! class_exists( 'WCJ_Product_Custom_Visibility' ) ) :
|
|
34 |
$this->extra_desc = __( 'When enabled, module will add new "Booster: Product Custom Visibility" meta box to each product\'s edit page.', 'woocommerce-jetpack' ) . '<br>' .
|
35 |
sprintf(
|
36 |
/* translators: %s: translation added */
|
37 |
-
__( 'You can add selection drop box to frontend with "%
|
38 |
__( 'Booster - Selector', 'woocommerce-jetpack' ),
|
39 |
'<code>[wcj_selector selector_type="product_custom_visibility"]</code>'
|
40 |
);
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Custom Visibility
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
21 |
/**
|
22 |
* Constructor.
|
23 |
*
|
24 |
+
* @version 5.6.1
|
25 |
* @since 3.2.4
|
26 |
*/
|
27 |
public function __construct() {
|
34 |
$this->extra_desc = __( 'When enabled, module will add new "Booster: Product Custom Visibility" meta box to each product\'s edit page.', 'woocommerce-jetpack' ) . '<br>' .
|
35 |
sprintf(
|
36 |
/* translators: %s: translation added */
|
37 |
+
__( 'You can add selection drop box to frontend with "%s" widget (set "Product custom visibility" as "Selector Type") or %s shortcode.', 'woocommerce-jetpack' ),
|
38 |
__( 'Booster - Selector', 'woocommerce-jetpack' ),
|
39 |
'<code>[wcj_selector selector_type="product_custom_visibility"]</code>'
|
40 |
);
|
includes/class-wcj-product-input-fields.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Input Fields
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -20,7 +20,7 @@ if ( ! class_exists( 'WCJ_Product_Input_Fields' ) ) :
|
|
20 |
/**
|
21 |
* Constructor.
|
22 |
*
|
23 |
-
* @version 5.
|
24 |
* @todo (maybe) option to change local and global fields order (i.e. output local fields before the global)
|
25 |
*/
|
26 |
public function __construct() {
|
@@ -42,7 +42,7 @@ if ( ! class_exists( 'WCJ_Product_Input_Fields' ) ) :
|
|
42 |
'</li>' .
|
43 |
'<li>' . sprintf(
|
44 |
/* translators: %s: translation added */
|
45 |
-
__( '<strong>PHP code:</strong> by using %
|
46 |
'<code>do_shortcode()</code>',
|
47 |
'<code>echo do_shortcode( \'[wcj_order_items_meta meta_key = "_wcj_product_input_fields_global_1]\' );</code>'
|
48 |
) .
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Input Fields
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
20 |
/**
|
21 |
* Constructor.
|
22 |
*
|
23 |
+
* @version 5.6.1
|
24 |
* @todo (maybe) option to change local and global fields order (i.e. output local fields before the global)
|
25 |
*/
|
26 |
public function __construct() {
|
42 |
'</li>' .
|
43 |
'<li>' . sprintf(
|
44 |
/* translators: %s: translation added */
|
45 |
+
__( '<strong>PHP code:</strong> by using %s function,<br> e.g.: %s', 'woocommerce-jetpack' ),
|
46 |
'<code>do_shortcode()</code>',
|
47 |
'<code>echo do_shortcode( \'[wcj_order_items_meta meta_key = "_wcj_product_input_fields_global_1]\' );</code>'
|
48 |
) .
|
includes/class-wcj-product-msrp.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product MSRP
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 3.6.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -211,7 +211,7 @@ if ( ! class_exists( 'WCJ_Product_MSRP' ) ) :
|
|
211 |
/**
|
212 |
* Display.
|
213 |
*
|
214 |
-
* @version 5.
|
215 |
* @since 3.6.0
|
216 |
* @todo (maybe) multicurrency
|
217 |
* @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
|
@@ -268,7 +268,7 @@ if ( ! class_exists( 'WCJ_Product_MSRP' ) ) :
|
|
268 |
}
|
269 |
|
270 |
// WCJ Math.
|
271 |
-
require_once
|
272 |
$math = new WCJ_Math();
|
273 |
|
274 |
// You Save Formula.
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product MSRP
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 3.6.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
211 |
/**
|
212 |
* Display.
|
213 |
*
|
214 |
+
* @version 5.6.1
|
215 |
* @since 3.6.0
|
216 |
* @todo (maybe) multicurrency
|
217 |
* @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
|
268 |
}
|
269 |
|
270 |
// WCJ Math.
|
271 |
+
require_once wcj_free_plugin_path() . '/includes/lib/PHPMathParser/Math.php';
|
272 |
$math = new WCJ_Math();
|
273 |
|
274 |
// You Save Formula.
|
includes/class-wcj-product-open-pricing.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Open Pricing
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.4.8
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -494,7 +494,7 @@ if ( ! class_exists( 'WCJ_Product_Open_Pricing' ) ) :
|
|
494 |
/**
|
495 |
* Add_open_price_input_field_to_frontend.
|
496 |
*
|
497 |
-
* @version
|
498 |
* @since 2.4.8
|
499 |
*/
|
500 |
public function add_open_price_input_field_to_frontend() {
|
@@ -515,8 +515,8 @@ if ( ! class_exists( 'WCJ_Product_Open_Pricing' ) ) :
|
|
515 |
$default_price_step = 1 / pow( 10, absint( wcj_get_option( 'woocommerce_price_num_decimals', 2 ) ) );
|
516 |
$custom_attributes = '';
|
517 |
$custom_attributes .= 'step="' . wcj_get_option( 'wcj_product_open_price_price_step', $default_price_step ) . '" ';
|
518 |
-
$custom_attributes .= ( ''
|
519 |
-
$custom_attributes .= ( ''
|
520 |
$input_field = '<input '
|
521 |
. 'type="number" '
|
522 |
. 'class="text" '
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Open Pricing
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.4.8
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
494 |
/**
|
495 |
* Add_open_price_input_field_to_frontend.
|
496 |
*
|
497 |
+
* @version 5.6.1
|
498 |
* @since 2.4.8
|
499 |
*/
|
500 |
public function add_open_price_input_field_to_frontend() {
|
515 |
$default_price_step = 1 / pow( 10, absint( wcj_get_option( 'woocommerce_price_num_decimals', 2 ) ) );
|
516 |
$custom_attributes = '';
|
517 |
$custom_attributes .= 'step="' . wcj_get_option( 'wcj_product_open_price_price_step', $default_price_step ) . '" ';
|
518 |
+
$custom_attributes .= ( '' == $min_price || 'no' === wcj_get_option( 'wcj_product_open_price_enable_js_validation', 'no' ) ) ? 'min="0" ' : 'min="' . $min_price . '" ';
|
519 |
+
$custom_attributes .= ( '' == $max_price || 'no' === wcj_get_option( 'wcj_product_open_price_enable_js_validation', 'no' ) ) ? '' : 'max="' . $max_price . '" ';
|
520 |
$input_field = '<input '
|
521 |
. 'type="number" '
|
522 |
. 'class="text" '
|
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 5.
|
6 |
* @since 2.5.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -21,7 +21,7 @@ if ( ! class_exists( 'WCJ_Product_Price_by_Formula' ) ) :
|
|
21 |
/**
|
22 |
* Constructor.
|
23 |
*
|
24 |
-
* @version 5.
|
25 |
* @since 2.5.1
|
26 |
* @todo use WC math library instead of `PHPMathParser`
|
27 |
*/
|
@@ -35,7 +35,7 @@ if ( ! class_exists( 'WCJ_Product_Price_by_Formula' ) ) :
|
|
35 |
parent::__construct();
|
36 |
|
37 |
if ( $this->is_enabled() ) {
|
38 |
-
require_once
|
39 |
|
40 |
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
41 |
add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Price by Formula
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.5.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
21 |
/**
|
22 |
* Constructor.
|
23 |
*
|
24 |
+
* @version 5.6.1
|
25 |
* @since 2.5.1
|
26 |
* @todo use WC math library instead of `PHPMathParser`
|
27 |
*/
|
35 |
parent::__construct();
|
36 |
|
37 |
if ( $this->is_enabled() ) {
|
38 |
+
require_once wcj_free_plugin_path() . '/includes/lib/PHPMathParser/Math.php';
|
39 |
|
40 |
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
41 |
add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
|
includes/class-wcj-products-per-page.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Products per Page
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.6.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -53,7 +53,7 @@ if ( ! class_exists( 'WCJ_Products_Per_Page' ) ) :
|
|
53 |
/**
|
54 |
* Add_products_per_page_form.
|
55 |
*
|
56 |
-
* @version
|
57 |
* @since 2.5.3
|
58 |
*/
|
59 |
public function add_products_per_page_form() {
|
@@ -93,7 +93,7 @@ if ( ! class_exists( 'WCJ_Products_Per_Page' ) ) :
|
|
93 |
$html .= '<form action="' . esc_url( remove_query_arg( 'paged' ) ) . '" method="' . $form_method . '">';
|
94 |
$_text = wcj_get_option(
|
95 |
'wcj_products_per_page_text',
|
96 |
-
__( 'Products <strong>%
|
97 |
);
|
98 |
$html .= str_replace( array( '%from%', '%to%', '%total%', '%select_form%' ), array( $products_from, $products_to, $products_total, $select_form ), $_text );
|
99 |
$html .= '</form>';
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Products per Page
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.6.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
53 |
/**
|
54 |
* Add_products_per_page_form.
|
55 |
*
|
56 |
+
* @version 5.6.1
|
57 |
* @since 2.5.3
|
58 |
*/
|
59 |
public function add_products_per_page_form() {
|
93 |
$html .= '<form action="' . esc_url( remove_query_arg( 'paged' ) ) . '" method="' . $form_method . '">';
|
94 |
$_text = wcj_get_option(
|
95 |
'wcj_products_per_page_text',
|
96 |
+
__( 'Products <strong>%from% - %to%</strong> from <strong>%total%</strong>. Products on page %select_form%', 'woocommerce-jetpack' )
|
97 |
);
|
98 |
$html .= str_replace( array( '%from%', '%to%', '%total%', '%select_form%' ), array( $products_from, $products_to, $products_total, $select_form ), $_text );
|
99 |
$html .= '</form>';
|
includes/class-wcj-purchase-data.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Cost of Goods (formerly Product Cost Price)
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -21,7 +21,7 @@ if ( ! class_exists( 'WCJ_Purchase_Data' ) ) :
|
|
21 |
/**
|
22 |
* Constructor.
|
23 |
*
|
24 |
-
* @version 5.
|
25 |
* @todo (maybe) pre-calculate profit for orders
|
26 |
* @todo (maybe) "Apply costs to orders that do not have costs set"
|
27 |
* @todo (maybe) "Apply costs to all orders, overriding previous costs"
|
@@ -46,7 +46,7 @@ if ( ! class_exists( 'WCJ_Purchase_Data' ) ) :
|
|
46 |
'</li>' .
|
47 |
'<li>' . sprintf(
|
48 |
/* translators: %s: translation added */
|
49 |
-
__( '<strong>PHP code:</strong> by using %
|
50 |
'<code>do_shortcode()</code>',
|
51 |
'<code>echo do_shortcode( \'[wcj_order_profit]\' );</code>'
|
52 |
) .
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Cost of Goods (formerly Product Cost Price)
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
21 |
/**
|
22 |
* Constructor.
|
23 |
*
|
24 |
+
* @version 5.6.1
|
25 |
* @todo (maybe) pre-calculate profit for orders
|
26 |
* @todo (maybe) "Apply costs to orders that do not have costs set"
|
27 |
* @todo (maybe) "Apply costs to all orders, overriding previous costs"
|
46 |
'</li>' .
|
47 |
'<li>' . sprintf(
|
48 |
/* translators: %s: translation added */
|
49 |
+
__( '<strong>PHP code:</strong> by using %s function, e.g.: %s', 'woocommerce-jetpack' ),
|
50 |
'<code>do_shortcode()</code>',
|
51 |
'<code>echo do_shortcode( \'[wcj_order_profit]\' );</code>'
|
52 |
) .
|
includes/class-wcj-shipping-by-time.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Shipping by Time
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 4.0.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -135,7 +135,7 @@ if ( ! class_exists( 'WCJ_Shipping_By_Time' ) ) :
|
|
135 |
/**
|
136 |
* Get_extra_option_desc.
|
137 |
*
|
138 |
-
* @version
|
139 |
* @since 4.0.0
|
140 |
* @param string $option_id defines the option_id.
|
141 |
*/
|
@@ -145,8 +145,8 @@ if ( ! class_exists( 'WCJ_Shipping_By_Time' ) ) :
|
|
145 |
$parsed_time = $this->parse_time( $values );
|
146 |
if ( $parsed_time ) {
|
147 |
return '. ' . sprintf(
|
148 |
-
/* translators: %
|
149 |
-
__( 'According to current time, your time input will be parsed as: from %
|
150 |
'<code>' . gmdate( 'Y-m-d H:i:s', $parsed_time['time_from'] ) . '</code>',
|
151 |
'<code>' . gmdate( 'Y-m-d H:i:s', $parsed_time['time_to'] ) . '</code>'
|
152 |
);
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Shipping by Time
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 4.0.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
135 |
/**
|
136 |
* Get_extra_option_desc.
|
137 |
*
|
138 |
+
* @version 5.6.1
|
139 |
* @since 4.0.0
|
140 |
* @param string $option_id defines the option_id.
|
141 |
*/
|
145 |
$parsed_time = $this->parse_time( $values );
|
146 |
if ( $parsed_time ) {
|
147 |
return '. ' . sprintf(
|
148 |
+
/* translators: %s: translators Added */
|
149 |
+
__( 'According to current time, your time input will be parsed as: from %s to %s.', 'woocommerce-jetpack' ),
|
150 |
'<code>' . gmdate( 'Y-m-d H:i:s', $parsed_time['time_from'] ) . '</code>',
|
151 |
'<code>' . gmdate( 'Y-m-d H:i:s', $parsed_time['time_to'] ) . '</code>'
|
152 |
);
|
includes/class-wcj-sku.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - SKU
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -104,7 +104,7 @@ if ( ! class_exists( 'WCJ_SKU' ) ) :
|
|
104 |
/**
|
105 |
* Load_hashids_lib.
|
106 |
*
|
107 |
-
* @version
|
108 |
* @since 4.7.0
|
109 |
*
|
110 |
* @return Hashids\Hashids
|
@@ -117,7 +117,7 @@ if ( ! class_exists( 'WCJ_SKU' ) ) :
|
|
117 |
return;
|
118 |
}
|
119 |
if ( empty( $this->hashids ) ) {
|
120 |
-
require_once
|
121 |
$sku_format = wcj_get_option( 'wcj_sku_hashids_sku_format', 'letters_and_numbers' );
|
122 |
$characters_case = wcj_get_option( 'wcj_sku_characters_case', 'original' );
|
123 |
$letters = 'original' === $characters_case ? 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' : ( 'lower' === $characters_case ? 'abcdefghijklmnopqrstuvwxyz' : 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - SKU
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
104 |
/**
|
105 |
* Load_hashids_lib.
|
106 |
*
|
107 |
+
* @version 5.6.1
|
108 |
* @since 4.7.0
|
109 |
*
|
110 |
* @return Hashids\Hashids
|
117 |
return;
|
118 |
}
|
119 |
if ( empty( $this->hashids ) ) {
|
120 |
+
require_once wcj_free_plugin_path() . '/includes/lib/hashids/src/Hashids.php';
|
121 |
$sku_format = wcj_get_option( 'wcj_sku_hashids_sku_format', 'letters_and_numbers' );
|
122 |
$characters_case = wcj_get_option( 'wcj_sku_characters_case', 'original' );
|
123 |
$letters = 'original' === $characters_case ? 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' : ( 'lower' === $characters_case ? 'abcdefghijklmnopqrstuvwxyz' : 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' );
|
includes/class-wcj-tax-display.php
CHANGED
@@ -86,7 +86,7 @@ if ( ! class_exists( 'WCJ_Tax_Display' ) ) :
|
|
86 |
return $value;
|
87 |
}
|
88 |
$session_value = wcj_session_get( 'wcj_toggle_tax_display' );
|
89 |
-
if ( '' !== ( $session_value ) ) {
|
90 |
return $session_value;
|
91 |
}
|
92 |
return $value;
|
86 |
return $value;
|
87 |
}
|
88 |
$session_value = wcj_session_get( 'wcj_toggle_tax_display' );
|
89 |
+
if ( '' !== ( $session_value ) && NULL !== ( $session_value ) ) {
|
90 |
return $session_value;
|
91 |
}
|
92 |
return $value;
|
includes/class-wcj-track-users.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - User Tracking
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 3.1.3
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -321,7 +321,7 @@ if ( ! class_exists( 'WCJ_User_Tracking' ) ) :
|
|
321 |
/**
|
322 |
* Track_users_by_country_dashboard_widget.
|
323 |
*
|
324 |
-
* @version 5.
|
325 |
* @since 2.9.1
|
326 |
* @todo (maybe) display all info (IP, referer etc.) on country click
|
327 |
* @todo (maybe) display stats by day and/or month
|
@@ -370,8 +370,8 @@ if ( ! class_exists( 'WCJ_User_Tracking' ) ) :
|
|
370 |
$_time = wcj_get_option( 'wcj_track_users_cron_time_schedule', '' );
|
371 |
$cron_next_schedule = ( '' !== ( $_time ) ? gmdate( 'Y-m-d H:i:s', $_time ) : '-' );
|
372 |
echo '<p>' .
|
373 |
-
sprintf(
|
374 |
-
'<a href="' . esc_url( add_query_arg( 'wcj_track_users_update_county_stats', '1' ) ) . '">' .
|
375 |
'</p>';
|
376 |
}
|
377 |
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - User Tracking
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 3.1.3
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
321 |
/**
|
322 |
* Track_users_by_country_dashboard_widget.
|
323 |
*
|
324 |
+
* @version 5.6.1
|
325 |
* @since 2.9.1
|
326 |
* @todo (maybe) display all info (IP, referer etc.) on country click
|
327 |
* @todo (maybe) display stats by day and/or month
|
370 |
$_time = wcj_get_option( 'wcj_track_users_cron_time_schedule', '' );
|
371 |
$cron_next_schedule = ( '' !== ( $_time ) ? gmdate( 'Y-m-d H:i:s', $_time ) : '-' );
|
372 |
echo '<p>' .
|
373 |
+
sprintf( __( 'Stats generated at %s. Next update is scheduled at %s.', 'woocommerce-jetpack' ), $cron_last_run, $cron_next_schedule ) . ' ' .
|
374 |
+
'<a href="' . esc_url( add_query_arg( 'wcj_track_users_update_county_stats', '1' ) ) . '">' . __( 'Update now', 'woocommerce-jetpack' ) . '</a>.' .
|
375 |
'</p>';
|
376 |
}
|
377 |
|
includes/class-wcj-wpml.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - WPML
|
4 |
*
|
5 |
-
* @version 5.1
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -208,11 +208,11 @@ if ( ! class_exists( 'WCJ_WPML' ) ) :
|
|
208 |
/**
|
209 |
* Create_wpml_xml_file.
|
210 |
*
|
211 |
-
* @version
|
212 |
* @see https://wpml.org/documentation/support/language-configuration-files/#admin-texts
|
213 |
*/
|
214 |
public function create_wpml_xml_file() {
|
215 |
-
$file_path =
|
216 |
$handle = fopen( $file_path, 'w' );
|
217 |
if ( false !== ( $handle ) ) {
|
218 |
fwrite( $handle, '<wpml-config>' . PHP_EOL );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - WPML
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
208 |
/**
|
209 |
* Create_wpml_xml_file.
|
210 |
*
|
211 |
+
* @version 5.6.1
|
212 |
* @see https://wpml.org/documentation/support/language-configuration-files/#admin-texts
|
213 |
*/
|
214 |
public function create_wpml_xml_file() {
|
215 |
+
$file_path = wcj_free_plugin_path() . '/wpml-config.xml';
|
216 |
$handle = fopen( $file_path, 'w' );
|
217 |
if ( false !== ( $handle ) ) {
|
218 |
fwrite( $handle, '<wpml-config>' . PHP_EOL );
|
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 5.
|
6 |
* @since 3.6.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/classes
|
@@ -475,22 +475,22 @@ if ( ! class_exists( 'WCJ_Module_Product_By_Condition' ) ) :
|
|
475 |
/**
|
476 |
* Add_settings_from_file.
|
477 |
*
|
478 |
-
* @version
|
479 |
* @since 3.6.0
|
480 |
* @param mixed $settings get settings.
|
481 |
*/
|
482 |
public function add_settings_from_file( $settings ) {
|
483 |
-
return $this->maybe_fix_settings( require
|
484 |
}
|
485 |
|
486 |
/**
|
487 |
* Met_meta_box_options.
|
488 |
*
|
489 |
-
* @version
|
490 |
* @since 3.6.0
|
491 |
*/
|
492 |
public function get_meta_box_options() {
|
493 |
-
$filename =
|
494 |
return ( file_exists( $filename ) ? require $filename : array() );
|
495 |
}
|
496 |
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product by Condition
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 3.6.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/classes
|
475 |
/**
|
476 |
* Add_settings_from_file.
|
477 |
*
|
478 |
+
* @version 5.6.1
|
479 |
* @since 3.6.0
|
480 |
* @param mixed $settings get settings.
|
481 |
*/
|
482 |
public function add_settings_from_file( $settings ) {
|
483 |
+
return $this->maybe_fix_settings( require wcj_free_plugin_path() . '/includes/settings/wcj-settings-product-by-condition.php' );
|
484 |
}
|
485 |
|
486 |
/**
|
487 |
* Met_meta_box_options.
|
488 |
*
|
489 |
+
* @version 5.6.1
|
490 |
* @since 3.6.0
|
491 |
*/
|
492 |
public function get_meta_box_options() {
|
493 |
+
$filename = wcj_free_plugin_path() . '/includes/settings/meta-box/wcj-settings-meta-box-product-by-condition.php';
|
494 |
return ( file_exists( $filename ) ? require $filename : array() );
|
495 |
}
|
496 |
|
includes/classes/class-wcj-module-shipping-by-condition.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Shipping by Condition
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 3.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/classes
|
@@ -97,12 +97,12 @@ if ( ! class_exists( 'WCJ_Module_Shipping_By_Condition' ) ) :
|
|
97 |
/**
|
98 |
* Add_settings_from_file.
|
99 |
*
|
100 |
-
* @version
|
101 |
* @since 3.2.1
|
102 |
* @param mixed $settings get settings.
|
103 |
*/
|
104 |
public function add_settings_from_file( $settings ) {
|
105 |
-
return $this->maybe_fix_settings( require
|
106 |
}
|
107 |
|
108 |
/**
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Shipping by Condition
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 3.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/classes
|
97 |
/**
|
98 |
* Add_settings_from_file.
|
99 |
*
|
100 |
+
* @version 5.6.1
|
101 |
* @since 3.2.1
|
102 |
* @param mixed $settings get settings.
|
103 |
*/
|
104 |
public function add_settings_from_file( $settings ) {
|
105 |
+
return $this->maybe_fix_settings( require wcj_free_plugin_path() . '/includes/settings/wcj-settings-shipping-by-condition.php' );
|
106 |
}
|
107 |
|
108 |
/**
|
includes/classes/class-wcj-module.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce Module
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo [dev] maybe should be `abstract` ?
|
@@ -300,16 +300,16 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
300 |
/**
|
301 |
* Handle_deprecated_options.
|
302 |
*
|
303 |
-
* @version
|
304 |
* @since 3.8.0
|
305 |
*/
|
306 |
public function handle_deprecated_options() {
|
307 |
$deprecated_options = $this->get_deprecated_options();
|
308 |
-
$old_value = wcj_get_option( $old_option, null );
|
309 |
if ( $deprecated_options ) {
|
310 |
foreach ( $deprecated_options as $new_option => $old_options ) {
|
311 |
$new_value = wcj_get_option( $new_option, array() );
|
312 |
foreach ( $old_options as $new_key => $old_option ) {
|
|
|
313 |
if ( null !== ( $old_value ) ) {
|
314 |
$new_value[ $new_key ] = $old_value;
|
315 |
delete_option( $old_option );
|
@@ -390,11 +390,11 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
390 |
/**
|
391 |
* Get_meta_box_options.
|
392 |
*
|
393 |
-
* @version
|
394 |
* @since 2.8.0
|
395 |
*/
|
396 |
public function get_meta_box_options() {
|
397 |
-
$filename =
|
398 |
return ( file_exists( $filename ) ? require $filename : array() );
|
399 |
}
|
400 |
|
@@ -435,12 +435,12 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
435 |
/**
|
436 |
* Add_settings_from_file.
|
437 |
*
|
438 |
-
* @version
|
439 |
* @since 2.8.0
|
440 |
* @param Array $settings get settings.
|
441 |
*/
|
442 |
public function add_settings_from_file( $settings ) {
|
443 |
-
$filename =
|
444 |
$settings = ( file_exists( $filename ) ? require $filename : $settings );
|
445 |
return $this->maybe_fix_settings( $settings );
|
446 |
}
|
@@ -595,7 +595,7 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
595 |
/**
|
596 |
* Handle_hide_on_free_parameter.
|
597 |
*
|
598 |
-
* @version 5.
|
599 |
* @since 5.3.6
|
600 |
*
|
601 |
* @param Array $settings Get settings.
|
@@ -603,7 +603,7 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
603 |
* @return array
|
604 |
*/
|
605 |
public function handle_hide_on_free_parameter( $settings ) {
|
606 |
-
if ( 'woocommerce-jetpack.php' !== basename(
|
607 |
return $settings;
|
608 |
}
|
609 |
$settings = wp_list_filter( $settings, array( 'hide_on_free' => true ), 'NOT' );
|
@@ -803,12 +803,12 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
803 |
/**
|
804 |
* Get_cat_by_section.
|
805 |
*
|
806 |
-
* @version
|
807 |
* @since 2.2.3
|
808 |
* @param Array $section Get sections.
|
809 |
*/
|
810 |
public function get_cat_by_section( $section ) {
|
811 |
-
$cats = include
|
812 |
foreach ( $cats as $id => $label_info ) {
|
813 |
if ( ( ! empty( $label_info['all_cat_ids'] ) ) &&
|
814 |
( is_array( $label_info['all_cat_ids'] ) ) &&
|
2 |
/**
|
3 |
* Booster for WooCommerce Module
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo [dev] maybe should be `abstract` ?
|
300 |
/**
|
301 |
* Handle_deprecated_options.
|
302 |
*
|
303 |
+
* @version 5.6.1
|
304 |
* @since 3.8.0
|
305 |
*/
|
306 |
public function handle_deprecated_options() {
|
307 |
$deprecated_options = $this->get_deprecated_options();
|
|
|
308 |
if ( $deprecated_options ) {
|
309 |
foreach ( $deprecated_options as $new_option => $old_options ) {
|
310 |
$new_value = wcj_get_option( $new_option, array() );
|
311 |
foreach ( $old_options as $new_key => $old_option ) {
|
312 |
+
$old_value = wcj_get_option( $old_option, null );
|
313 |
if ( null !== ( $old_value ) ) {
|
314 |
$new_value[ $new_key ] = $old_value;
|
315 |
delete_option( $old_option );
|
390 |
/**
|
391 |
* Get_meta_box_options.
|
392 |
*
|
393 |
+
* @version 5.6.1
|
394 |
* @since 2.8.0
|
395 |
*/
|
396 |
public function get_meta_box_options() {
|
397 |
+
$filename = wcj_free_plugin_path() . '/includes/settings/meta-box/wcj-settings-meta-box-' . str_replace( '_', '-', $this->id ) . '.php';
|
398 |
return ( file_exists( $filename ) ? require $filename : array() );
|
399 |
}
|
400 |
|
435 |
/**
|
436 |
* Add_settings_from_file.
|
437 |
*
|
438 |
+
* @version 5.6.1
|
439 |
* @since 2.8.0
|
440 |
* @param Array $settings get settings.
|
441 |
*/
|
442 |
public function add_settings_from_file( $settings ) {
|
443 |
+
$filename = wcj_free_plugin_path() . '/includes/settings/wcj-settings-' . str_replace( '_', '-', $this->id ) . '.php';
|
444 |
$settings = ( file_exists( $filename ) ? require $filename : $settings );
|
445 |
return $this->maybe_fix_settings( $settings );
|
446 |
}
|
595 |
/**
|
596 |
* Handle_hide_on_free_parameter.
|
597 |
*
|
598 |
+
* @version 5.6.1
|
599 |
* @since 5.3.6
|
600 |
*
|
601 |
* @param Array $settings Get settings.
|
603 |
* @return array
|
604 |
*/
|
605 |
public function handle_hide_on_free_parameter( $settings ) {
|
606 |
+
if ( 'woocommerce-jetpack.php' !== basename( WCJ_FREE_PLUGIN_FILE ) ) {
|
607 |
return $settings;
|
608 |
}
|
609 |
$settings = wp_list_filter( $settings, array( 'hide_on_free' => true ), 'NOT' );
|
803 |
/**
|
804 |
* Get_cat_by_section.
|
805 |
*
|
806 |
+
* @version 5.6.1
|
807 |
* @since 2.2.3
|
808 |
* @param Array $section Get sections.
|
809 |
*/
|
810 |
public function get_cat_by_section( $section ) {
|
811 |
+
$cats = include wcj_free_plugin_path() . '/includes/admin/wcj-modules-cats.php';
|
812 |
foreach ( $cats as $id => $label_info ) {
|
813 |
if ( ( ! empty( $label_info['all_cat_ids'] ) ) &&
|
814 |
( is_array( $label_info['all_cat_ids'] ) ) &&
|
includes/classes/class-wcj-pdf-invoice.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce PDF Invoice
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/classes
|
8 |
*/
|
@@ -36,7 +36,7 @@ if ( ! class_exists( 'WCJ_PDF_Invoice' ) ) :
|
|
36 |
/**
|
37 |
* Prepare_pdf.
|
38 |
*
|
39 |
-
* @version 5.
|
40 |
* @todo [dev] check `addTTFfont()`
|
41 |
* @todo [dev] maybe `$pdf->SetAuthor( 'Booster for WooCommerce' )`
|
42 |
* @todo [dev] maybe `$pdf->setLanguageArray( $l )`
|
@@ -57,7 +57,7 @@ if ( ! class_exists( 'WCJ_PDF_Invoice' ) ) :
|
|
57 |
}
|
58 |
|
59 |
// Create new PDF document.
|
60 |
-
require_once
|
61 |
$pdf = new WCJ_TCPDF(
|
62 |
get_option( 'wcj_invoicing_' . $invoice_type . '_page_orientation', 'P' ),
|
63 |
PDF_UNIT,
|
2 |
/**
|
3 |
* Booster for WooCommerce PDF Invoice
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/classes
|
8 |
*/
|
36 |
/**
|
37 |
* Prepare_pdf.
|
38 |
*
|
39 |
+
* @version 5.6.1
|
40 |
* @todo [dev] check `addTTFfont()`
|
41 |
* @todo [dev] maybe `$pdf->SetAuthor( 'Booster for WooCommerce' )`
|
42 |
* @todo [dev] maybe `$pdf->setLanguageArray( $l )`
|
57 |
}
|
58 |
|
59 |
// Create new PDF document.
|
60 |
+
require_once wcj_free_plugin_path() . '/includes/classes/class-wcj-tcpdf.php';
|
61 |
$pdf = new WCJ_TCPDF(
|
62 |
get_option( 'wcj_invoicing_' . $invoice_type . '_page_orientation', 'P' ),
|
63 |
PDF_UNIT,
|
includes/classes/class-wcj-tcpdf.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - TCPDF
|
4 |
*
|
5 |
-
* @version
|
6 |
* @author Pluggabl LLC.
|
7 |
* @todo (maybe) `Header()`
|
8 |
* @package Booster_For_WooCommerce/classes
|
@@ -16,11 +16,11 @@ if ( ! class_exists( 'WCJ_TCPDF' ) ) :
|
|
16 |
|
17 |
// Enable custom TCPDF config.
|
18 |
define( 'K_TCPDF_EXTERNAL_CONFIG', true );
|
19 |
-
require_once
|
20 |
|
21 |
// Include TCPDF library.
|
22 |
if ( ! class_exists( 'TCPDF' ) ) {
|
23 |
-
require_once
|
24 |
}
|
25 |
/**
|
26 |
* WCJ_TCPDF.
|
2 |
/**
|
3 |
* Booster for WooCommerce - TCPDF
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @todo (maybe) `Header()`
|
8 |
* @package Booster_For_WooCommerce/classes
|
16 |
|
17 |
// Enable custom TCPDF config.
|
18 |
define( 'K_TCPDF_EXTERNAL_CONFIG', true );
|
19 |
+
require_once wcj_free_plugin_path() . '/includes/lib/tcpdf_config.php';
|
20 |
|
21 |
// Include TCPDF library.
|
22 |
if ( ! class_exists( 'TCPDF' ) ) {
|
23 |
+
require_once wcj_free_plugin_path() . '/includes/lib/tcpdf/tcpdf.php';
|
24 |
}
|
25 |
/**
|
26 |
* WCJ_TCPDF.
|
includes/core/class-wcj-admin.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Core - Admin
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
@@ -25,7 +25,7 @@ if ( ! class_exists( 'WCJ_Admin' ) ) :
|
|
25 |
/**
|
26 |
* Constructor.
|
27 |
*
|
28 |
-
* @version 5.
|
29 |
* @since 3.2.4
|
30 |
*/
|
31 |
public function __construct() {
|
@@ -34,10 +34,10 @@ if ( ! class_exists( 'WCJ_Admin' ) ) :
|
|
34 |
|
35 |
if ( apply_filters( 'wcj_can_create_admin_interface', true ) ) {
|
36 |
add_filter( 'woocommerce_get_settings_pages', array( $this, 'add_wcj_settings_tab' ), 1 );
|
37 |
-
add_filter( 'plugin_action_links_' . plugin_basename(
|
38 |
add_action( 'admin_menu', array( $this, 'booster_menu' ), 100 );
|
39 |
add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ), 2 );
|
40 |
-
if ( 'woocommerce-jetpack.php' === basename(
|
41 |
add_action( 'admin_notices', array( $this, 'check_plus_version' ) );
|
42 |
}
|
43 |
}
|
@@ -130,7 +130,7 @@ if ( ! class_exists( 'WCJ_Admin' ) ) :
|
|
130 |
/**
|
131 |
* Show action links on the plugin screen
|
132 |
*
|
133 |
-
* @version 5.
|
134 |
* @param mixed $links get links.
|
135 |
* @return array
|
136 |
*/
|
@@ -139,7 +139,7 @@ if ( ! class_exists( 'WCJ_Admin' ) ) :
|
|
139 |
'<a href="' . admin_url( 'admin.php?page=wc-settings&tab=jetpack' ) . '">' . __( 'Settings', 'woocommerce' ) . '</a>',
|
140 |
'<a href="' . esc_url( 'https://booster.io/' ) . '">' . __( 'Docs', 'woocommerce-jetpack' ) . '</a>',
|
141 |
);
|
142 |
-
if ( 'woocommerce-jetpack.php' === basename(
|
143 |
$custom_links[] = '<a target="_blank" href="' . esc_url( 'https://booster.io/plus/' ) . '">' . __( 'Unlock all', 'woocommerce-jetpack' ) . '</a>';
|
144 |
} else {
|
145 |
$custom_links[] = '<a target="_blank" href="' . esc_url( 'https://booster.io/my-account/booster-contact/' ) . '">' . __( 'Support', 'woocommerce-jetpack' ) . '</a>';
|
@@ -150,11 +150,11 @@ if ( ! class_exists( 'WCJ_Admin' ) ) :
|
|
150 |
/**
|
151 |
* Add Jetpack settings tab to WooCommerce settings.
|
152 |
*
|
153 |
-
* @version
|
154 |
* @param array $settings get module settings.
|
155 |
*/
|
156 |
public function add_wcj_settings_tab( $settings ) {
|
157 |
-
$_settings = include
|
158 |
$_settings->add_module_statuses( w_c_j()->module_statuses );
|
159 |
$settings[] = $_settings;
|
160 |
return $settings;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Core - Admin
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
25 |
/**
|
26 |
* Constructor.
|
27 |
*
|
28 |
+
* @version 5.6.1
|
29 |
* @since 3.2.4
|
30 |
*/
|
31 |
public function __construct() {
|
34 |
|
35 |
if ( apply_filters( 'wcj_can_create_admin_interface', true ) ) {
|
36 |
add_filter( 'woocommerce_get_settings_pages', array( $this, 'add_wcj_settings_tab' ), 1 );
|
37 |
+
add_filter( 'plugin_action_links_' . plugin_basename( WCJ_FREE_PLUGIN_FILE ), array( $this, 'action_links' ) );
|
38 |
add_action( 'admin_menu', array( $this, 'booster_menu' ), 100 );
|
39 |
add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ), 2 );
|
40 |
+
if ( 'woocommerce-jetpack.php' === basename( WCJ_FREE_PLUGIN_FILE ) ) {
|
41 |
add_action( 'admin_notices', array( $this, 'check_plus_version' ) );
|
42 |
}
|
43 |
}
|
130 |
/**
|
131 |
* Show action links on the plugin screen
|
132 |
*
|
133 |
+
* @version 5.6.1
|
134 |
* @param mixed $links get links.
|
135 |
* @return array
|
136 |
*/
|
139 |
'<a href="' . admin_url( 'admin.php?page=wc-settings&tab=jetpack' ) . '">' . __( 'Settings', 'woocommerce' ) . '</a>',
|
140 |
'<a href="' . esc_url( 'https://booster.io/' ) . '">' . __( 'Docs', 'woocommerce-jetpack' ) . '</a>',
|
141 |
);
|
142 |
+
if ( 'woocommerce-jetpack.php' === basename( WCJ_FREE_PLUGIN_FILE ) ) {
|
143 |
$custom_links[] = '<a target="_blank" href="' . esc_url( 'https://booster.io/plus/' ) . '">' . __( 'Unlock all', 'woocommerce-jetpack' ) . '</a>';
|
144 |
} else {
|
145 |
$custom_links[] = '<a target="_blank" href="' . esc_url( 'https://booster.io/my-account/booster-contact/' ) . '">' . __( 'Support', 'woocommerce-jetpack' ) . '</a>';
|
150 |
/**
|
151 |
* Add Jetpack settings tab to WooCommerce settings.
|
152 |
*
|
153 |
+
* @version 5.6.1
|
154 |
* @param array $settings get module settings.
|
155 |
*/
|
156 |
public function add_wcj_settings_tab( $settings ) {
|
157 |
+
$_settings = include WCJ_FREE_PLUGIN_PATH . '/includes/admin/class-wc-settings-jetpack.php';
|
158 |
$_settings->add_module_statuses( w_c_j()->module_statuses );
|
159 |
$settings[] = $_settings;
|
160 |
return $settings;
|
includes/core/wcj-constants.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce Constants
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.7.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
@@ -107,9 +107,9 @@ if ( ! defined( 'WCJ_VERSION_OPTION' ) ) {
|
|
107 |
/**
|
108 |
* Booster version option name.
|
109 |
*
|
110 |
-
* @version
|
111 |
* @since 3.3.0
|
112 |
* @todo (maybe) option should have `wcj_` prefix (however it will be deleted during "Reset", and "Booster was updated to v..." message will show up)
|
113 |
*/
|
114 |
-
define( 'WCJ_VERSION_OPTION', ( 'woocommerce-jetpack.php' === basename(
|
115 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce Constants
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.7.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
107 |
/**
|
108 |
* Booster version option name.
|
109 |
*
|
110 |
+
* @version 5.6.1
|
111 |
* @since 3.3.0
|
112 |
* @todo (maybe) option should have `wcj_` prefix (however it will be deleted during "Reset", and "Booster was updated to v..." message will show up)
|
113 |
*/
|
114 |
+
define( 'WCJ_VERSION_OPTION', ( 'woocommerce-jetpack.php' === basename( WCJ_FREE_PLUGIN_FILE ) ? 'booster_for_woocommerce_version' : 'booster_plus_for_woocommerce_version' ) );
|
115 |
}
|
includes/core/wcj-functions.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
@@ -36,7 +36,7 @@ $wcj_function_files = array(
|
|
36 |
'wcj-functions-reports.php',
|
37 |
);
|
38 |
|
39 |
-
$wcj_functions_dir =
|
40 |
foreach ( $wcj_function_files as $wcj_function_file ) {
|
41 |
include_once $wcj_functions_dir . $wcj_function_file;
|
42 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
36 |
'wcj-functions-reports.php',
|
37 |
);
|
38 |
|
39 |
+
$wcj_functions_dir = WCJ_FREE_PLUGIN_PATH . '/includes/functions/';
|
40 |
foreach ( $wcj_function_files as $wcj_function_file ) {
|
41 |
include_once $wcj_functions_dir . $wcj_function_file;
|
42 |
}
|
includes/core/wcj-loader.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Core - Loader
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
@@ -17,24 +17,24 @@ if ( 'yes' === wcj_get_option( 'wcj_debug_tools_enabled', 'no' ) && 'yes' === wc
|
|
17 |
error_reporting( E_ALL );
|
18 |
}
|
19 |
|
20 |
-
if ( ! defined( '
|
21 |
/**
|
22 |
-
*
|
23 |
*
|
24 |
-
* @version
|
25 |
* @since 3.2.4
|
26 |
*/
|
27 |
-
define( '
|
28 |
}
|
29 |
|
30 |
// Set up localisation.
|
31 |
if ( 'no' === wcj_get_option( 'wcj_load_modules_on_init', 'no' ) ) {
|
32 |
-
load_plugin_textdomain( 'woocommerce-jetpack', false, dirname( plugin_basename(
|
33 |
} else {
|
34 |
add_action(
|
35 |
'init',
|
36 |
function () {
|
37 |
-
load_plugin_textdomain( 'woocommerce-jetpack', false, dirname( plugin_basename(
|
38 |
},
|
39 |
9
|
40 |
);
|
@@ -49,33 +49,33 @@ require_once 'wcj-constants.php';
|
|
49 |
require_once 'wcj-functions.php';
|
50 |
|
51 |
// Classes.
|
52 |
-
require_once
|
53 |
-
require_once
|
54 |
-
require_once
|
55 |
-
require_once
|
56 |
-
require_once
|
57 |
-
require_once
|
58 |
|
59 |
// Mini Plugin.
|
60 |
-
require_once
|
61 |
|
62 |
// Plus.
|
63 |
-
if ( 'booster-plus-for-woocommerce.php' === basename(
|
64 |
-
require_once
|
65 |
}
|
66 |
|
67 |
// Tools.
|
68 |
-
require_once
|
69 |
|
70 |
// Shortcodes.
|
71 |
require_once 'wcj-shortcodes.php';
|
72 |
|
73 |
// Widgets.
|
74 |
-
require_once
|
75 |
-
require_once
|
76 |
-
require_once
|
77 |
-
require_once
|
78 |
-
require_once
|
79 |
|
80 |
// Scripts.
|
81 |
require_once 'class-wcj-scripts.php';
|
@@ -91,7 +91,7 @@ if ( 'no' === wcj_get_option( 'wcj_load_modules_on_init', 'no' ) ) {
|
|
91 |
require_once 'class-wcj-admin.php';
|
92 |
|
93 |
// Settings manager.
|
94 |
-
require_once
|
95 |
|
96 |
// Loaded action.
|
97 |
do_action( 'wcj_loaded' );
|
@@ -108,7 +108,7 @@ if ( 'no' === wcj_get_option( 'wcj_load_modules_on_init', 'no' ) ) {
|
|
108 |
require_once 'class-wcj-admin.php';
|
109 |
|
110 |
// Settings manager.
|
111 |
-
require_once
|
112 |
|
113 |
// Loaded action.
|
114 |
do_action( 'wcj_loaded' );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Core - Loader
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
17 |
error_reporting( E_ALL );
|
18 |
}
|
19 |
|
20 |
+
if ( ! defined( 'WCJ_FREE_PLUGIN_PATH' ) ) {
|
21 |
/**
|
22 |
+
* WCJ_FREE_PLUGIN_PATH.
|
23 |
*
|
24 |
+
* @version 5.6.1
|
25 |
* @since 3.2.4
|
26 |
*/
|
27 |
+
define( 'WCJ_FREE_PLUGIN_PATH', untrailingslashit( realpath( plugin_dir_path( WCJ_FREE_PLUGIN_FILE ) ) ) );
|
28 |
}
|
29 |
|
30 |
// Set up localisation.
|
31 |
if ( 'no' === wcj_get_option( 'wcj_load_modules_on_init', 'no' ) ) {
|
32 |
+
load_plugin_textdomain( 'woocommerce-jetpack', false, dirname( plugin_basename( WCJ_FREE_PLUGIN_FILE ) ) . '/langs/' );
|
33 |
} else {
|
34 |
add_action(
|
35 |
'init',
|
36 |
function () {
|
37 |
+
load_plugin_textdomain( 'woocommerce-jetpack', false, dirname( plugin_basename( WCJ_FREE_PLUGIN_FILE ) ) . '/langs/' );
|
38 |
},
|
39 |
9
|
40 |
);
|
49 |
require_once 'wcj-functions.php';
|
50 |
|
51 |
// Classes.
|
52 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/classes/class-wcj-module.php';
|
53 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/classes/class-wcj-module-product-by-condition.php';
|
54 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/classes/class-wcj-module-shipping-by-condition.php';
|
55 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/classes/class-wcj-invoice.php';
|
56 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/classes/class-wcj-pdf-invoice.php';
|
57 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/admin/class-wcj-welcome.php';
|
58 |
|
59 |
// Mini Plugin.
|
60 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/mini-plugin/wcj-mini-plugin.php';
|
61 |
|
62 |
// Plus.
|
63 |
+
if ( 'booster-plus-for-woocommerce.php' === basename( WCJ_FREE_PLUGIN_FILE ) && apply_filters( 'wcj_full_pack', true ) ) {
|
64 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/plus/class-wcj-plus.php';
|
65 |
}
|
66 |
|
67 |
// Tools.
|
68 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/admin/class-wcj-tools.php';
|
69 |
|
70 |
// Shortcodes.
|
71 |
require_once 'wcj-shortcodes.php';
|
72 |
|
73 |
// Widgets.
|
74 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/classes/class-wcj-widget.php';
|
75 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/widgets/class-wcj-widget-multicurrency.php';
|
76 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/widgets/class-wcj-widget-country-switcher.php';
|
77 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/widgets/class-wcj-widget-left-to-free-shipping.php';
|
78 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/widgets/class-wcj-widget-selector.php';
|
79 |
|
80 |
// Scripts.
|
81 |
require_once 'class-wcj-scripts.php';
|
91 |
require_once 'class-wcj-admin.php';
|
92 |
|
93 |
// Settings manager.
|
94 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/admin/class-wcj-settings-manager.php';
|
95 |
|
96 |
// Loaded action.
|
97 |
do_action( 'wcj_loaded' );
|
108 |
require_once 'class-wcj-admin.php';
|
109 |
|
110 |
// Settings manager.
|
111 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/admin/class-wcj-settings-manager.php';
|
112 |
|
113 |
// Loaded action.
|
114 |
do_action( 'wcj_loaded' );
|
includes/core/wcj-modules.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Modules
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
@@ -141,7 +141,7 @@ $wcj_module_files = array(
|
|
141 |
);
|
142 |
|
143 |
$this->modules = array();
|
144 |
-
$wcj_modules_dir =
|
145 |
foreach ( $wcj_module_files as $wcj_module_file ) {
|
146 |
$module = include_once $wcj_modules_dir . $wcj_module_file;
|
147 |
$this->modules[ $module->id ] = $module;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Modules
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
141 |
);
|
142 |
|
143 |
$this->modules = array();
|
144 |
+
$wcj_modules_dir = WCJ_FREE_PLUGIN_PATH . '/includes/';
|
145 |
foreach ( $wcj_module_files as $wcj_module_file ) {
|
146 |
$module = include_once $wcj_modules_dir . $wcj_module_file;
|
147 |
$this->modules[ $module->id ] = $module;
|
includes/core/wcj-shortcodes.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
|
15 |
if ( ! wcj_is_module_enabled( 'general' ) || ( wcj_is_module_enabled( 'general' ) && 'no' === wcj_get_option( 'wcj_general_shortcodes_disable_booster_shortcodes', 'no' ) ) ) {
|
16 |
|
17 |
-
include_once
|
18 |
|
19 |
$wcj_shortcodes_files = array(
|
20 |
'general' => 'class-wcj-general-shortcodes.php',
|
@@ -28,7 +28,7 @@ if ( ! wcj_is_module_enabled( 'general' ) || ( wcj_is_module_enabled( 'general'
|
|
28 |
'input_field' => 'class-wcj-input-field-shortcodes.php',
|
29 |
);
|
30 |
|
31 |
-
$wcj_shortcodes_dir =
|
32 |
foreach ( $wcj_shortcodes_files as $wcj_shortcodes_file_id => $wcj_shortcodes_file ) {
|
33 |
$this->shortcodes[ $wcj_shortcodes_file_id ] = include_once $wcj_shortcodes_dir . $wcj_shortcodes_file;
|
34 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 3.2.4
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/core
|
14 |
|
15 |
if ( ! wcj_is_module_enabled( 'general' ) || ( wcj_is_module_enabled( 'general' ) && 'no' === wcj_get_option( 'wcj_general_shortcodes_disable_booster_shortcodes', 'no' ) ) ) {
|
16 |
|
17 |
+
include_once WCJ_FREE_PLUGIN_PATH . '/includes/classes/class-wcj-shortcodes.php';
|
18 |
|
19 |
$wcj_shortcodes_files = array(
|
20 |
'general' => 'class-wcj-general-shortcodes.php',
|
28 |
'input_field' => 'class-wcj-input-field-shortcodes.php',
|
29 |
);
|
30 |
|
31 |
+
$wcj_shortcodes_dir = WCJ_FREE_PLUGIN_PATH . '/includes/shortcodes/';
|
32 |
foreach ( $wcj_shortcodes_files as $wcj_shortcodes_file_id => $wcj_shortcodes_file ) {
|
33 |
$this->shortcodes[ $wcj_shortcodes_file_id ] = include_once $wcj_shortcodes_dir . $wcj_shortcodes_file;
|
34 |
}
|
includes/css/wcj-admin.css
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
/**
|
2 |
* wcj-admin.
|
3 |
*
|
4 |
-
* @version 5.
|
5 |
* @since 2.5.3
|
6 |
*/
|
7 |
|
@@ -309,9 +309,6 @@ img.wcj-rocket-icon:hover {
|
|
309 |
.wclj_tl_foot .wcj-review-footer {
|
310 |
margin-bottom: 0px;
|
311 |
}
|
312 |
-
#wpfooter {
|
313 |
-
position: relative;
|
314 |
-
}
|
315 |
.wclj_tl_foot .wcj-review-footer label,
|
316 |
.wclj_tl_foot .wcj-review-footer p {
|
317 |
font-size: 12px;
|
1 |
/**
|
2 |
* wcj-admin.
|
3 |
*
|
4 |
+
* @version 5.6.1
|
5 |
* @since 2.5.3
|
6 |
*/
|
7 |
|
309 |
.wclj_tl_foot .wcj-review-footer {
|
310 |
margin-bottom: 0px;
|
311 |
}
|
|
|
|
|
|
|
312 |
.wclj_tl_foot .wcj-review-footer label,
|
313 |
.wclj_tl_foot .wcj-review-footer p {
|
314 |
font-size: 12px;
|
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 5.
|
8 |
* @since 2.3.9
|
9 |
* @author Pluggabl LLC.
|
10 |
* @extends WC_Email
|
@@ -213,7 +213,7 @@ if ( ! class_exists( 'WC_Email_WCJ_Custom' ) ) :
|
|
213 |
/**
|
214 |
* Initialise settings form fields.
|
215 |
*
|
216 |
-
* @version 5.
|
217 |
* @todo (maybe) `chosen_select` class in `trigger`.
|
218 |
*/
|
219 |
public function init_form_fields() {
|
@@ -236,8 +236,8 @@ if ( ! class_exists( 'WC_Email_WCJ_Custom' ) ) :
|
|
236 |
$status_triggers[ 'woocommerce_order_status_' . $slug . '_notification' ] = sprintf( __( 'Order status updated to %s', 'woocommerce-jetpack' ), $name );
|
237 |
foreach ( $order_statuses as $slug2 => $name2 ) {
|
238 |
if ( $slug !== $slug2 ) {
|
239 |
-
/* translators: %
|
240 |
-
$status_change_triggers[ 'woocommerce_order_status_' . $slug . '_to_' . $slug2 . '_notification' ] = sprintf( __( 'Order status %
|
241 |
}
|
242 |
}
|
243 |
}
|
4 |
*
|
5 |
* An email sent to recipient list when selected triggers are called.
|
6 |
*
|
7 |
+
* @version 5.6.1
|
8 |
* @since 2.3.9
|
9 |
* @author Pluggabl LLC.
|
10 |
* @extends WC_Email
|
213 |
/**
|
214 |
* Initialise settings form fields.
|
215 |
*
|
216 |
+
* @version 5.6.1
|
217 |
* @todo (maybe) `chosen_select` class in `trigger`.
|
218 |
*/
|
219 |
public function init_form_fields() {
|
236 |
$status_triggers[ 'woocommerce_order_status_' . $slug . '_notification' ] = sprintf( __( 'Order status updated to %s', 'woocommerce-jetpack' ), $name );
|
237 |
foreach ( $order_statuses as $slug2 => $name2 ) {
|
238 |
if ( $slug !== $slug2 ) {
|
239 |
+
/* translators: %s: search term */
|
240 |
+
$status_change_triggers[ 'woocommerce_order_status_' . $slug . '_to_' . $slug2 . '_notification' ] = sprintf( __( 'Order status %s to %s', 'woocommerce-jetpack' ), $name, $name2 );
|
241 |
}
|
242 |
}
|
243 |
}
|
includes/functions/wcj-functions-admin.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Admin
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/functions
|
@@ -30,7 +30,7 @@ if ( ! function_exists( 'wcj_get_module_category' ) ) {
|
|
30 |
/**
|
31 |
* Wcj_get_module_category.
|
32 |
*
|
33 |
-
* @version
|
34 |
* @since 3.3.0
|
35 |
* @todo better solution for `global $wcj_modules_cats`
|
36 |
* @todo use this function where needed (e.g. in `class-wc-settings-jetpack.php`)
|
@@ -39,7 +39,7 @@ if ( ! function_exists( 'wcj_get_module_category' ) ) {
|
|
39 |
function wcj_get_module_category( $module_id ) {
|
40 |
global $wcj_modules_cats;
|
41 |
if ( ! isset( $wcj_modules_cats ) ) {
|
42 |
-
$wcj_modules_cats = include
|
43 |
}
|
44 |
foreach ( $wcj_modules_cats as $cat_id => $cat_data ) {
|
45 |
if ( ! empty( $cat_data['all_cat_ids'] ) && in_array( $module_id, $cat_data['all_cat_ids'], true ) ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Admin
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/functions
|
30 |
/**
|
31 |
* Wcj_get_module_category.
|
32 |
*
|
33 |
+
* @version 5.6.1
|
34 |
* @since 3.3.0
|
35 |
* @todo better solution for `global $wcj_modules_cats`
|
36 |
* @todo use this function where needed (e.g. in `class-wc-settings-jetpack.php`)
|
39 |
function wcj_get_module_category( $module_id ) {
|
40 |
global $wcj_modules_cats;
|
41 |
if ( ! isset( $wcj_modules_cats ) ) {
|
42 |
+
$wcj_modules_cats = include WCJ_FREE_PLUGIN_PATH . '/includes/admin/wcj-modules-cats.php';
|
43 |
}
|
44 |
foreach ( $wcj_modules_cats as $cat_id => $cat_data ) {
|
45 |
if ( ! empty( $cat_data['all_cat_ids'] ) && in_array( $module_id, $cat_data['all_cat_ids'], true ) ) {
|
includes/functions/wcj-functions-booster-core.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Booster Core
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/functions
|
@@ -38,14 +38,14 @@ if ( ! function_exists( 'wcj_plugin_url' ) ) {
|
|
38 |
}
|
39 |
}
|
40 |
|
41 |
-
if ( ! function_exists( '
|
42 |
/**
|
43 |
* Get the plugin path.
|
44 |
*
|
45 |
* @return string
|
46 |
-
* @todo use `
|
47 |
*/
|
48 |
-
function
|
49 |
return untrailingslashit( realpath( plugin_dir_path( __FILE__ ) . '/../..' ) );
|
50 |
}
|
51 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Booster Core
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/functions
|
38 |
}
|
39 |
}
|
40 |
|
41 |
+
if ( ! function_exists( 'wcj_free_plugin_path' ) ) {
|
42 |
/**
|
43 |
* Get the plugin path.
|
44 |
*
|
45 |
* @return string
|
46 |
+
* @todo use `wcj_free_plugin_path` constant instead
|
47 |
*/
|
48 |
+
function wcj_free_plugin_path() {
|
49 |
return untrailingslashit( realpath( plugin_dir_path( __FILE__ ) . '/../..' ) );
|
50 |
}
|
51 |
}
|
includes/functions/wcj-functions-country.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Country
|
4 |
*
|
5 |
-
* @version
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/functions
|
8 |
*/
|
@@ -49,12 +49,12 @@ if ( ! function_exists( 'wcj_get_country_flag_by_code' ) ) {
|
|
49 |
/**
|
50 |
* Wcj_get_country_flag_by_code.
|
51 |
*
|
52 |
-
* @version
|
53 |
* @param string $country_code defines the country_code.
|
54 |
*/
|
55 |
function wcj_get_country_flag_by_code( $country_code ) {
|
56 |
$img = '/assets/images/flag-icons/' . strtolower( $country_code ) . '.png';
|
57 |
-
$img_path =
|
58 |
$img_src = wcj_plugin_url() . ( file_exists( $img_path ) ? $img : '/assets/images/flag-icons/no-flag.png' );
|
59 |
return '<img src="' . $img_src . '" title="' . wcj_get_country_name_by_code( $country_code ) . '">';
|
60 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Country
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/functions
|
8 |
*/
|
49 |
/**
|
50 |
* Wcj_get_country_flag_by_code.
|
51 |
*
|
52 |
+
* @version 5.6.1
|
53 |
* @param string $country_code defines the country_code.
|
54 |
*/
|
55 |
function wcj_get_country_flag_by_code( $country_code ) {
|
56 |
$img = '/assets/images/flag-icons/' . strtolower( $country_code ) . '.png';
|
57 |
+
$img_path = wcj_free_plugin_path() . $img;
|
58 |
$img_src = wcj_plugin_url() . ( file_exists( $img_path ) ? $img : '/assets/images/flag-icons/no-flag.png' );
|
59 |
return '<img src="' . $img_src . '" title="' . wcj_get_country_name_by_code( $country_code ) . '">';
|
60 |
}
|
includes/functions/wcj-functions-general.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - General
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @todo add `wcj_add_actions()` and `wcj_add_filters()`
|
8 |
* @package Booster_For_WooCommerce/functions
|
@@ -296,7 +296,7 @@ if ( ! function_exists( 'wcj_barcode' ) ) {
|
|
296 |
/**
|
297 |
* Wcj_barcode.
|
298 |
*
|
299 |
-
* @version
|
300 |
* @since 3.3.0
|
301 |
* @todo (maybe) "Barcodes" module
|
302 |
* @todo (maybe) `getBarcodePNG()`
|
@@ -316,10 +316,10 @@ if ( ! function_exists( 'wcj_barcode' ) ) {
|
|
316 |
$atts['height'] = ( '1D' === $atts['dimension'] ? 30 : 10 );
|
317 |
}
|
318 |
if ( '1D' === $atts['dimension'] ) {
|
319 |
-
require_once
|
320 |
$barcode = new TCPDFBarcode( $atts['code'], $atts['type'] );
|
321 |
} else {
|
322 |
-
require_once
|
323 |
$barcode = new TCPDF2DBarcode( $atts['code'], $atts['type'] );
|
324 |
}
|
325 |
$barcode_array = $barcode->getBarcodeArray();
|
@@ -1031,7 +1031,7 @@ if ( ! function_exists( 'wcj_add_allowed_html' ) ) {
|
|
1031 |
/**
|
1032 |
* Wcj_add_allowed_html.
|
1033 |
*
|
1034 |
-
* @version
|
1035 |
* @since 5.6.0
|
1036 |
* @param array $allowed_html to get default allowed html.
|
1037 |
* @param string $context to get default context.
|
@@ -1057,6 +1057,15 @@ if ( ! function_exists( 'wcj_add_allowed_html' ) ) {
|
|
1057 |
'max' => true,
|
1058 |
'disabled' => true,
|
1059 |
'onchange' => true,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1060 |
),
|
1061 |
'textarea' => array(
|
1062 |
'name' => true,
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - General
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @todo add `wcj_add_actions()` and `wcj_add_filters()`
|
8 |
* @package Booster_For_WooCommerce/functions
|
296 |
/**
|
297 |
* Wcj_barcode.
|
298 |
*
|
299 |
+
* @version 5.6.1
|
300 |
* @since 3.3.0
|
301 |
* @todo (maybe) "Barcodes" module
|
302 |
* @todo (maybe) `getBarcodePNG()`
|
316 |
$atts['height'] = ( '1D' === $atts['dimension'] ? 30 : 10 );
|
317 |
}
|
318 |
if ( '1D' === $atts['dimension'] ) {
|
319 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/lib/tcpdf/tcpdf_barcodes_1d.php';
|
320 |
$barcode = new TCPDFBarcode( $atts['code'], $atts['type'] );
|
321 |
} else {
|
322 |
+
require_once WCJ_FREE_PLUGIN_PATH . '/includes/lib/tcpdf/tcpdf_barcodes_2d.php';
|
323 |
$barcode = new TCPDF2DBarcode( $atts['code'], $atts['type'] );
|
324 |
}
|
325 |
$barcode_array = $barcode->getBarcodeArray();
|
1031 |
/**
|
1032 |
* Wcj_add_allowed_html.
|
1033 |
*
|
1034 |
+
* @version 5.6.1
|
1035 |
* @since 5.6.0
|
1036 |
* @param array $allowed_html to get default allowed html.
|
1037 |
* @param string $context to get default context.
|
1057 |
'max' => true,
|
1058 |
'disabled' => true,
|
1059 |
'onchange' => true,
|
1060 |
+
'step' => true,
|
1061 |
+
'changeyear' => true,
|
1062 |
+
'yearrange' => true,
|
1063 |
+
'timeformat' => true,
|
1064 |
+
'interval' => true,
|
1065 |
+
'readonly' => true,
|
1066 |
+
'data-blocked_dates' => true,
|
1067 |
+
'currentday_time_limit' => true,
|
1068 |
+
'data-blocked_dates_format' => true,
|
1069 |
),
|
1070 |
'textarea' => array(
|
1071 |
'name' => true,
|
includes/functions/wcj-functions-products.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Products
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/functions
|
@@ -32,7 +32,7 @@ if ( ! function_exists( 'wcj_is_enabled_for_product' ) ) {
|
|
32 |
/**
|
33 |
* Wcj_is_enabled_for_product.
|
34 |
*
|
35 |
-
* @version
|
36 |
* @since 3.1.0
|
37 |
* @param int $product_id Get product id.
|
38 |
* @param Array $args Get product args.
|
@@ -42,7 +42,7 @@ if ( ! function_exists( 'wcj_is_enabled_for_product' ) ) {
|
|
42 |
if ( ! is_array( $args['include_products'] ) ) {
|
43 |
$args['include_products'] = array_map( 'trim', explode( ',', $args['include_products'] ) );
|
44 |
}
|
45 |
-
if ( ! in_array( $product_id, $args['include_products']
|
46 |
return false;
|
47 |
}
|
48 |
}
|
@@ -50,7 +50,7 @@ if ( ! function_exists( 'wcj_is_enabled_for_product' ) ) {
|
|
50 |
if ( ! is_array( $args['exclude_products'] ) ) {
|
51 |
$args['exclude_products'] = array_map( 'trim', explode( ',', $args['exclude_products'] ) );
|
52 |
}
|
53 |
-
if ( in_array( $product_id, $args['exclude_products']
|
54 |
return false;
|
55 |
}
|
56 |
}
|
@@ -522,7 +522,7 @@ if ( ! function_exists( 'wcj_is_product_wholesale_enabled' ) ) {
|
|
522 |
if ( 'no' === wcj_get_option( 'wcj_wholesale_price_per_product_enable', 'yes' ) ) {
|
523 |
$product_cats_to_exclude = wcj_get_option( 'wcj_wholesale_price_product_cats_to_exclude', array() );
|
524 |
if ( ! empty( $product_cats_to_exclude ) && wcj_is_product_term( $product_id, $product_cats_to_exclude, 'product_cat' ) ) {
|
525 |
-
if ( ! empty( $product_cats_to_exclude ) && in_array( $product_id, $product_cats_to_exclude
|
526 |
$is_product_eligible_new = false;
|
527 |
}
|
528 |
return $is_product_eligible_new ?? false;
|
@@ -530,7 +530,7 @@ if ( ! function_exists( 'wcj_is_product_wholesale_enabled' ) ) {
|
|
530 |
}
|
531 |
|
532 |
$products_to_include = wcj_get_option( 'wcj_wholesale_price_products_to_include', array() );
|
533 |
-
if ( ! empty( $products_to_include ) && in_array( $product_id, $products_to_include
|
534 |
$is_product_eligible = true;
|
535 |
} elseif ( empty( $products_to_include ) && empty( $product_cats_to_include ) ) {
|
536 |
$is_product_eligible = true;
|
@@ -538,7 +538,7 @@ if ( ! function_exists( 'wcj_is_product_wholesale_enabled' ) ) {
|
|
538 |
|
539 |
if ( 'no' === wcj_get_option( 'wcj_wholesale_price_per_product_enable', 'yes' ) ) {
|
540 |
$products_to_exclude = wcj_get_option( 'wcj_wholesale_price_products_to_exclude', array() );
|
541 |
-
if ( ! empty( $products_to_exclude ) && in_array( $product_id, $products_to_exclude
|
542 |
$is_product_eligible = false;
|
543 |
}
|
544 |
}
|
@@ -590,7 +590,7 @@ if ( ! function_exists( 'wcj_is_product_term' ) ) {
|
|
590 |
return false;
|
591 |
}
|
592 |
foreach ( $product_terms as $product_term ) {
|
593 |
-
if ( in_array( $product_term->term_id, $term_ids
|
594 |
return true;
|
595 |
}
|
596 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Products
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/functions
|
32 |
/**
|
33 |
* Wcj_is_enabled_for_product.
|
34 |
*
|
35 |
+
* @version 5.6.1
|
36 |
* @since 3.1.0
|
37 |
* @param int $product_id Get product id.
|
38 |
* @param Array $args Get product args.
|
42 |
if ( ! is_array( $args['include_products'] ) ) {
|
43 |
$args['include_products'] = array_map( 'trim', explode( ',', $args['include_products'] ) );
|
44 |
}
|
45 |
+
if ( ! in_array( $product_id, $args['include_products'] ) ) {
|
46 |
return false;
|
47 |
}
|
48 |
}
|
50 |
if ( ! is_array( $args['exclude_products'] ) ) {
|
51 |
$args['exclude_products'] = array_map( 'trim', explode( ',', $args['exclude_products'] ) );
|
52 |
}
|
53 |
+
if ( in_array( $product_id, $args['exclude_products'] ) ) {
|
54 |
return false;
|
55 |
}
|
56 |
}
|
522 |
if ( 'no' === wcj_get_option( 'wcj_wholesale_price_per_product_enable', 'yes' ) ) {
|
523 |
$product_cats_to_exclude = wcj_get_option( 'wcj_wholesale_price_product_cats_to_exclude', array() );
|
524 |
if ( ! empty( $product_cats_to_exclude ) && wcj_is_product_term( $product_id, $product_cats_to_exclude, 'product_cat' ) ) {
|
525 |
+
if ( ! empty( $product_cats_to_exclude ) && in_array( $product_id, $product_cats_to_exclude ) ) {
|
526 |
$is_product_eligible_new = false;
|
527 |
}
|
528 |
return $is_product_eligible_new ?? false;
|
530 |
}
|
531 |
|
532 |
$products_to_include = wcj_get_option( 'wcj_wholesale_price_products_to_include', array() );
|
533 |
+
if ( ! empty( $products_to_include ) && in_array( $product_id, $products_to_include ) ) {
|
534 |
$is_product_eligible = true;
|
535 |
} elseif ( empty( $products_to_include ) && empty( $product_cats_to_include ) ) {
|
536 |
$is_product_eligible = true;
|
538 |
|
539 |
if ( 'no' === wcj_get_option( 'wcj_wholesale_price_per_product_enable', 'yes' ) ) {
|
540 |
$products_to_exclude = wcj_get_option( 'wcj_wholesale_price_products_to_exclude', array() );
|
541 |
+
if ( ! empty( $products_to_exclude ) && in_array( $product_id, $products_to_exclude ) ) {
|
542 |
$is_product_eligible = false;
|
543 |
}
|
544 |
}
|
590 |
return false;
|
591 |
}
|
592 |
foreach ( $product_terms as $product_term ) {
|
593 |
+
if ( in_array( $product_term->term_id, $term_ids ) ) {
|
594 |
return true;
|
595 |
}
|
596 |
}
|
includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - PDF Invoicing - Report Tool
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.2.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -283,15 +283,15 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Report_Tool' ) ) :
|
|
283 |
/**
|
284 |
* Get_no_documents_found_message.
|
285 |
*
|
286 |
-
* @version
|
287 |
* @since 3.1.0
|
288 |
* @param int | string $year Get year.
|
289 |
* @param int | string $month Get month.
|
290 |
* @param int $invoice_type_id Get invoice type id.
|
291 |
*/
|
292 |
public function get_no_documents_found_message( $year, $month, $invoice_type_id ) {
|
293 |
-
/* translators:
|
294 |
-
return sprintf( __( 'No documents (%
|
295 |
}
|
296 |
|
297 |
/**
|
2 |
/**
|
3 |
* Booster for WooCommerce - PDF Invoicing - Report Tool
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.2.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
283 |
/**
|
284 |
* Get_no_documents_found_message.
|
285 |
*
|
286 |
+
* @version 5.6.1
|
287 |
* @since 3.1.0
|
288 |
* @param int | string $year Get year.
|
289 |
* @param int | string $month Get month.
|
290 |
* @param int $invoice_type_id Get invoice type id.
|
291 |
*/
|
292 |
public function get_no_documents_found_message( $year, $month, $invoice_type_id ) {
|
293 |
+
/* translators: %s: search term */
|
294 |
+
return sprintf( __( 'No documents (%s) found for %d-%02d.', 'woocommerce-jetpack' ), $invoice_type_id, $year, $month );
|
295 |
}
|
296 |
|
297 |
/**
|
includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-styling.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - PDF Invoicing - Styling
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -39,14 +39,14 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Styling' ) ) :
|
|
39 |
/**
|
40 |
* Get_default_css_template.
|
41 |
*
|
42 |
-
* @version
|
43 |
* @version 3.1.0
|
44 |
* @param int $invoice_type_id Get invoice ID.
|
45 |
*/
|
46 |
public function get_default_css_template( $invoice_type_id ) {
|
47 |
if ( ! isset( $this->default_css_template[ $invoice_type_id ] ) ) {
|
48 |
$default_template_filename = ( false === strpos( $invoice_type_id, 'custom_doc_' ) ? $invoice_type_id : 'custom_doc' );
|
49 |
-
$default_template_filename =
|
50 |
if ( file_exists( $default_template_filename ) ) {
|
51 |
ob_start();
|
52 |
include $default_template_filename;
|
2 |
/**
|
3 |
* Booster for WooCommerce - PDF Invoicing - Styling
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
39 |
/**
|
40 |
* Get_default_css_template.
|
41 |
*
|
42 |
+
* @version 5.6.1
|
43 |
* @version 3.1.0
|
44 |
* @param int $invoice_type_id Get invoice ID.
|
45 |
*/
|
46 |
public function get_default_css_template( $invoice_type_id ) {
|
47 |
if ( ! isset( $this->default_css_template[ $invoice_type_id ] ) ) {
|
48 |
$default_template_filename = ( false === strpos( $invoice_type_id, 'custom_doc_' ) ? $invoice_type_id : 'custom_doc' );
|
49 |
+
$default_template_filename = wcj_free_plugin_path() . '/includes/settings/pdf-invoicing/wcj-' . $default_template_filename . '.css';
|
50 |
if ( file_exists( $default_template_filename ) ) {
|
51 |
ob_start();
|
52 |
include $default_template_filename;
|
includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-templates.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - PDF Invoicing - Templates
|
4 |
*
|
5 |
-
* @version
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -35,14 +35,14 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Templates' ) ) :
|
|
35 |
/**
|
36 |
* Get_default_template.
|
37 |
*
|
38 |
-
* @version
|
39 |
* @since 3.1.0
|
40 |
* @param int $invoice_type_id Get invoice ID.
|
41 |
*/
|
42 |
public function get_default_template( $invoice_type_id ) {
|
43 |
if ( ! isset( $this->default_template[ $invoice_type_id ] ) ) {
|
44 |
$default_template_filename = ( false === strpos( $invoice_type_id, 'custom_doc_' ) ? $invoice_type_id : 'custom_doc' );
|
45 |
-
$default_template_filename =
|
46 |
if ( file_exists( $default_template_filename ) ) {
|
47 |
ob_start();
|
48 |
include $default_template_filename;
|
2 |
/**
|
3 |
* Booster for WooCommerce - PDF Invoicing - Templates
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
35 |
/**
|
36 |
* Get_default_template.
|
37 |
*
|
38 |
+
* @version 5.6.1
|
39 |
* @since 3.1.0
|
40 |
* @param int $invoice_type_id Get invoice ID.
|
41 |
*/
|
42 |
public function get_default_template( $invoice_type_id ) {
|
43 |
if ( ! isset( $this->default_template[ $invoice_type_id ] ) ) {
|
44 |
$default_template_filename = ( false === strpos( $invoice_type_id, 'custom_doc_' ) ? $invoice_type_id : 'custom_doc' );
|
45 |
+
$default_template_filename = wcj_free_plugin_path() . '/includes/settings/pdf-invoicing/wcj-content-template-' . $default_template_filename . '.php';
|
46 |
if ( file_exists( $default_template_filename ) ) {
|
47 |
ob_start();
|
48 |
include $default_template_filename;
|
includes/settings/wcj-settings-admin-tools.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Admin Tools
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.7.2
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
@@ -21,8 +21,8 @@ return array(
|
|
21 |
array(
|
22 |
'title' => __( 'Show Booster Menus Only to Admin', 'woocommerce-jetpack' ),
|
23 |
'desc_tip' => sprintf(
|
24 |
-
/* translators:
|
25 |
-
__( 'Will require %
|
26 |
'<code>manage_options</code>',
|
27 |
'<code>manage_woocommerce</code>'
|
28 |
),
|
@@ -35,7 +35,7 @@ return array(
|
|
35 |
'title' => __( 'Suppress Admin Connect Notice', 'woocommerce-jetpack' ),
|
36 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
37 |
'desc_tip' => sprintf(
|
38 |
-
/* translators:
|
39 |
__( 'Will remove "%s" admin notice.', 'woocommerce-jetpack' ),
|
40 |
__( 'Connect your store to WooCommerce.com to receive extensions updates and support.', 'woocommerce-jetpack' )
|
41 |
),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Admin Tools
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.7.2
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
21 |
array(
|
22 |
'title' => __( 'Show Booster Menus Only to Admin', 'woocommerce-jetpack' ),
|
23 |
'desc_tip' => sprintf(
|
24 |
+
/* translators: %s: translators Added */
|
25 |
+
__( 'Will require %s capability to see Booster menus (instead of %s capability).', 'woocommerce-jetpack' ),
|
26 |
'<code>manage_options</code>',
|
27 |
'<code>manage_woocommerce</code>'
|
28 |
),
|
35 |
'title' => __( 'Suppress Admin Connect Notice', 'woocommerce-jetpack' ),
|
36 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
37 |
'desc_tip' => sprintf(
|
38 |
+
/* translators: %s: translators Added */
|
39 |
__( 'Will remove "%s" admin notice.', 'woocommerce-jetpack' ),
|
40 |
__( 'Connect your store to WooCommerce.com to receive extensions updates and support.', 'woocommerce-jetpack' )
|
41 |
),
|
includes/settings/wcj-settings-checkout-files-upload.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Checkout Files Upload
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.8.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
@@ -331,7 +331,7 @@ $settings = array_merge(
|
|
331 |
array(
|
332 |
'title' => __( 'Label', 'woocommerce-jetpack' ),
|
333 |
/* translators: %s: translators Added */
|
334 |
-
'desc_tip' => __( 'Replaced values: %
|
335 |
'id' => 'wcj_checkout_files_upload_form_template_label',
|
336 |
/* translators: %s: translators Added */
|
337 |
'default' => '<tr><td colspan="2"><label for="%field_id%">%field_label%</label>%required_html%</td></tr>',
|
@@ -341,7 +341,7 @@ $settings = array_merge(
|
|
341 |
array(
|
342 |
'title' => __( 'Field', 'woocommerce-jetpack' ),
|
343 |
/* translators: %s: translators Added */
|
344 |
-
'desc_tip' => __( 'Replaced values: %
|
345 |
'id' => 'wcj_checkout_files_upload_form_template_field',
|
346 |
/* translators: %s: translators Added */
|
347 |
'default' => '<tr><td style="width:50%;max-width:50vw;">%field_html%</td><td style="width:50%;">%button_html%</td></tr>',
|
@@ -409,7 +409,7 @@ $settings = array_merge(
|
|
409 |
'desc' => __( 'Image style', 'woocommerce-jetpack' ),
|
410 |
'desc_tip' => sprintf(
|
411 |
/* translators: %s: translators Added */
|
412 |
-
__( 'Ignored, if %
|
413 |
'<em>%image%</em>',
|
414 |
'<em>' . __( 'Item', 'woocommerce-jetpack' ) . '</em>'
|
415 |
),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Checkout Files Upload
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.8.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
331 |
array(
|
332 |
'title' => __( 'Label', 'woocommerce-jetpack' ),
|
333 |
/* translators: %s: translators Added */
|
334 |
+
'desc_tip' => __( 'Replaced values: %field_id%, %field_label%, %required_html%.', 'woocommerce-jetpack' ),
|
335 |
'id' => 'wcj_checkout_files_upload_form_template_label',
|
336 |
/* translators: %s: translators Added */
|
337 |
'default' => '<tr><td colspan="2"><label for="%field_id%">%field_label%</label>%required_html%</td></tr>',
|
341 |
array(
|
342 |
'title' => __( 'Field', 'woocommerce-jetpack' ),
|
343 |
/* translators: %s: translators Added */
|
344 |
+
'desc_tip' => __( 'Replaced values: %field_html%, %button_html%.', 'woocommerce-jetpack' ),
|
345 |
'id' => 'wcj_checkout_files_upload_form_template_field',
|
346 |
/* translators: %s: translators Added */
|
347 |
'default' => '<tr><td style="width:50%;max-width:50vw;">%field_html%</td><td style="width:50%;">%button_html%</td></tr>',
|
409 |
'desc' => __( 'Image style', 'woocommerce-jetpack' ),
|
410 |
'desc_tip' => sprintf(
|
411 |
/* translators: %s: translators Added */
|
412 |
+
__( 'Ignored, if %s is not included in %s option above.', 'woocommerce-jetpack' ),
|
413 |
'<em>%image%</em>',
|
414 |
'<em>' . __( 'Item', 'woocommerce-jetpack' ) . '</em>'
|
415 |
),
|
includes/settings/wcj-settings-cross-sells.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Cross-sells
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 3.5.3
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
@@ -133,8 +133,8 @@ if ( ! WCJ_IS_WC_VERSION_BELOW_3 ) {
|
|
133 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
134 |
'desc_tip' => __( 'Enable this, if you want original products to be removed from cart and replaced with cross-sells, if customer adds cross-sells on cart page.', 'woocommerce-jetpack' ) . '<br>' .
|
135 |
sprintf(
|
136 |
-
/* translators: %
|
137 |
-
__( 'Please note that this option will work only if "%
|
138 |
__( 'Enable AJAX add to cart buttons on archives', 'woocommerce' ),
|
139 |
'<a href="' . admin_url( 'admin.php?page=wc-settings&tab=products' ) . '">' .
|
140 |
__( 'WooCommerce > Settings > Products > General > Shop pages > Add to cart behaviour', 'woocommerce-jetpack' ) . '</a>'
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Cross-sells
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 3.5.3
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
133 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
134 |
'desc_tip' => __( 'Enable this, if you want original products to be removed from cart and replaced with cross-sells, if customer adds cross-sells on cart page.', 'woocommerce-jetpack' ) . '<br>' .
|
135 |
sprintf(
|
136 |
+
/* translators: %s: translators Added */
|
137 |
+
__( 'Please note that this option will work only if "%s" option is disabled in %s.', 'woocommerce-jetpack' ),
|
138 |
__( 'Enable AJAX add to cart buttons on archives', 'woocommerce' ),
|
139 |
'<a href="' . admin_url( 'admin.php?page=wc-settings&tab=products' ) . '">' .
|
140 |
__( 'WooCommerce > Settings > Products > General > Shop pages > Add to cart behaviour', 'woocommerce-jetpack' ) . '</a>'
|
includes/settings/wcj-settings-left-to-free-shipping.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Left to Free Shipping
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.8.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
@@ -19,13 +19,13 @@ return array(
|
|
19 |
'desc' => __( 'This section lets you enable info on cart, mini cart and checkout pages.', 'woocommerce-jetpack' ) . '<br><br>' .
|
20 |
sprintf(
|
21 |
/* translators: %s: translators Added */
|
22 |
-
__( 'You can also use <em>Booster - Left to Free Shipping</em> widget, %
|
23 |
'<code>[wcj_get_left_to_free_shipping content=""]</code>',
|
24 |
'<code>wcj_get_left_to_free_shipping( $content );</code>'
|
25 |
) . '<br><br>' .
|
26 |
sprintf(
|
27 |
-
/* translators: %
|
28 |
-
__( 'In content replaced values are: %
|
29 |
'<code>%left_to_free%</code>',
|
30 |
'<code>%free_shipping_min_amount%</code>',
|
31 |
'<code>%cart_total%</code>'
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Left to Free Shipping
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.8.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
19 |
'desc' => __( 'This section lets you enable info on cart, mini cart and checkout pages.', 'woocommerce-jetpack' ) . '<br><br>' .
|
20 |
sprintf(
|
21 |
/* translators: %s: translators Added */
|
22 |
+
__( 'You can also use <em>Booster - Left to Free Shipping</em> widget, %s shortcode or %s function.', 'woocommerce-jetpack' ),
|
23 |
'<code>[wcj_get_left_to_free_shipping content=""]</code>',
|
24 |
'<code>wcj_get_left_to_free_shipping( $content );</code>'
|
25 |
) . '<br><br>' .
|
26 |
sprintf(
|
27 |
+
/* translators: %s: translators Added */
|
28 |
+
__( 'In content replaced values are: %s, %s and %s.', 'woocommerce-jetpack' ),
|
29 |
'<code>%left_to_free%</code>',
|
30 |
'<code>%free_shipping_min_amount%</code>',
|
31 |
'<code>%cart_total%</code>'
|
includes/settings/wcj-settings-my-account.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - My Account
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
@@ -126,8 +126,8 @@ $settings = array_merge(
|
|
126 |
array(
|
127 |
'desc' => __( 'Custom menu items.', 'woocommerce-jetpack' ) . ' ' .
|
128 |
sprintf(
|
129 |
-
/* translators: %
|
130 |
-
__( 'Add in %
|
131 |
'<code>endpoint|label|link</code>',
|
132 |
'<code>shop|Shop|/shop/</code>'
|
133 |
),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - My Account
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
126 |
array(
|
127 |
'desc' => __( 'Custom menu items.', 'woocommerce-jetpack' ) . ' ' .
|
128 |
sprintf(
|
129 |
+
/* translators: %s: translators Added */
|
130 |
+
__( 'Add in %s format. One per line. E.g.: %s.', 'woocommerce-jetpack' ),
|
131 |
'<code>endpoint|label|link</code>',
|
132 |
'<code>shop|Shop|/shop/</code>'
|
133 |
),
|
includes/settings/wcj-settings-offer-price.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Offer Price
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
@@ -321,9 +321,9 @@ return array(
|
|
321 |
'title' => __( 'Email Recipient', 'woocommerce-jetpack' ),
|
322 |
'desc' => __( 'Can be comma separated list.', 'woocommerce-jetpack' ) . ' ' .
|
323 |
sprintf(
|
324 |
-
/* translators: %
|
325 |
__(
|
326 |
-
'Use %
|
327 |
'woocommerce-jetpack'
|
328 |
),
|
329 |
'<code>%admin_email%</code>',
|
@@ -352,8 +352,8 @@ return array(
|
|
352 |
sprintf( __( 'Product: %s', 'woocommerce-jetpack' ), '<a href="%product_edit_link%">%product_title%</a>' ) . '<br>' . PHP_EOL .
|
353 |
/* translators: %s: translators Added */
|
354 |
sprintf( __( 'Offered price: %s', 'woocommerce-jetpack' ), '%offered_price%' ) . '<br>' . PHP_EOL .
|
355 |
-
/* translators: %
|
356 |
-
sprintf( __( 'From: %
|
357 |
/* translators: %s: translators Added */
|
358 |
sprintf( __( 'Message: %s', 'woocommerce-jetpack' ), '%customer_message%' ),
|
359 |
'css' => 'width:100%;height:200px;',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Offer Price
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
321 |
'title' => __( 'Email Recipient', 'woocommerce-jetpack' ),
|
322 |
'desc' => __( 'Can be comma separated list.', 'woocommerce-jetpack' ) . ' ' .
|
323 |
sprintf(
|
324 |
+
/* translators: %s: translators Added */
|
325 |
__(
|
326 |
+
'Use %s to send to administrator email: %s.',
|
327 |
'woocommerce-jetpack'
|
328 |
),
|
329 |
'<code>%admin_email%</code>',
|
352 |
sprintf( __( 'Product: %s', 'woocommerce-jetpack' ), '<a href="%product_edit_link%">%product_title%</a>' ) . '<br>' . PHP_EOL .
|
353 |
/* translators: %s: translators Added */
|
354 |
sprintf( __( 'Offered price: %s', 'woocommerce-jetpack' ), '%offered_price%' ) . '<br>' . PHP_EOL .
|
355 |
+
/* translators: %s %s: translators Added */
|
356 |
+
sprintf( __( 'From: %s %s', 'woocommerce-jetpack' ), '%customer_name%', '%customer_email%' ) . '<br>' . PHP_EOL .
|
357 |
/* translators: %s: translators Added */
|
358 |
sprintf( __( 'Message: %s', 'woocommerce-jetpack' ), '%customer_message%' ),
|
359 |
'css' => 'width:100%;height:200px;',
|
includes/settings/wcj-settings-order-min-amount.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Order Minimum Amount
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.8.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
@@ -55,8 +55,8 @@ $settings = array(
|
|
55 |
array(
|
56 |
'title' => __( 'Error message', 'woocommerce-jetpack' ),
|
57 |
'desc' => apply_filters( 'booster_message', '', 'desc' ),
|
58 |
-
/* translators: %
|
59 |
-
'desc_tip' => __( 'Message to customer if order is below minimum amount. Default: You must have an order with a minimum of %
|
60 |
'id' => 'wcj_order_minimum_amount_error_message',
|
61 |
/* translators: %s: translators Added */
|
62 |
'default' => 'You must have an order with a minimum of %s to place your order, your current order total is %s.',
|
@@ -74,8 +74,8 @@ $settings = array(
|
|
74 |
array(
|
75 |
'title' => __( 'Message on cart page', 'woocommerce-jetpack' ),
|
76 |
'desc' => apply_filters( 'booster_message', '', 'desc' ),
|
77 |
-
/* translators: %
|
78 |
-
'desc_tip' => __( 'Message to customer if order is below minimum amount. Default: You must have an order with a minimum of %
|
79 |
'id' => 'wcj_order_minimum_amount_cart_notice_message',
|
80 |
/* translators: %s: translators Added */
|
81 |
'default' => 'You must have an order with a minimum of %s to place your order, your current order total is %s.',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Order Minimum Amount
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.8.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
55 |
array(
|
56 |
'title' => __( 'Error message', 'woocommerce-jetpack' ),
|
57 |
'desc' => apply_filters( 'booster_message', '', 'desc' ),
|
58 |
+
/* translators: %s: translators Added */
|
59 |
+
'desc_tip' => __( 'Message to customer if order is below minimum amount. Default: You must have an order with a minimum of %s to place your order, your current order total is %s.', 'woocommerce-jetpack' ),
|
60 |
'id' => 'wcj_order_minimum_amount_error_message',
|
61 |
/* translators: %s: translators Added */
|
62 |
'default' => 'You must have an order with a minimum of %s to place your order, your current order total is %s.',
|
74 |
array(
|
75 |
'title' => __( 'Message on cart page', 'woocommerce-jetpack' ),
|
76 |
'desc' => apply_filters( 'booster_message', '', 'desc' ),
|
77 |
+
/* translators: %s: translators Added */
|
78 |
+
'desc_tip' => __( 'Message to customer if order is below minimum amount. Default: You must have an order with a minimum of %s to place your order, your current order total is %s.', 'woocommerce-jetpack' ),
|
79 |
'id' => 'wcj_order_minimum_amount_cart_notice_message',
|
80 |
/* translators: %s: translators Added */
|
81 |
'default' => 'You must have an order with a minimum of %s to place your order, your current order total is %s.',
|
includes/settings/wcj-settings-product-input-fields.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Input Fields
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.8.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo [dev] maybe set "Strip slashes" option to `yes` by default (or even remove the option completely and always strip slashes)
|
@@ -406,8 +406,8 @@ $settings = array_merge(
|
|
406 |
array(
|
407 |
'title' => __( 'Strip Slashes', 'woocommerce-jetpack' ),
|
408 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
409 |
-
/* translators: %
|
410 |
-
'desc_tip' => sprintf( __( 'Enable this if you have single quotes %
|
411 |
'id' => 'wcj_product_input_fields_stripslashes',
|
412 |
'default' => 'no',
|
413 |
'type' => 'checkbox',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Input Fields
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.8.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo [dev] maybe set "Strip slashes" option to `yes` by default (or even remove the option completely and always strip slashes)
|
406 |
array(
|
407 |
'title' => __( 'Strip Slashes', 'woocommerce-jetpack' ),
|
408 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
409 |
+
/* translators: %s: translators Added */
|
410 |
+
'desc_tip' => sprintf( __( 'Enable this if you have single quotes %s converted to %s.', 'woocommerce-jetpack' ), '<code>\'</code>', '<code>\\\'</code>' ),
|
411 |
'id' => 'wcj_product_input_fields_stripslashes',
|
412 |
'default' => 'no',
|
413 |
'type' => 'checkbox',
|
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 5.6.
|
6 |
* @since 2.8.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
@@ -23,7 +23,7 @@ $settings = array(
|
|
23 |
'title' => __( 'Formula', 'woocommerce-jetpack' ),
|
24 |
'desc' => sprintf(
|
25 |
/* translators: %s: translators Added */
|
26 |
-
__( 'Use %
|
27 |
'<code> x </code>',
|
28 |
'<code> x+p1*p2 </code>'
|
29 |
),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Price by Formula
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.8.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/settings
|
23 |
'title' => __( 'Formula', 'woocommerce-jetpack' ),
|
24 |
'desc' => sprintf(
|
25 |
/* translators: %s: translators Added */
|
26 |
+
__( 'Use %s variable for product\'s base price. For example: %s.', 'woocommerce-jetpack' ),
|
27 |
'<code> x </code>',
|
28 |
'<code> x+p1*p2 </code>'
|
29 |
),
|
includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shipping - Custom Shipping with Shipping Zones
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.5.6
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -285,8 +285,8 @@ if ( ! class_exists( 'WC_Shipping_WCJ_Custom_W_Zones' ) ) :
|
|
285 |
'apply_formula' => array(
|
286 |
'title' => __( 'Apply Formula and Shortcodes to Costs', 'woocommerce' ),
|
287 |
'description' => sprintf(
|
288 |
-
/* translators: %
|
289 |
-
__( 'You can use %
|
290 |
'<em>weight</em>',
|
291 |
'<em>quantity</em>',
|
292 |
'<em>2.5+weight</em>',
|
@@ -336,7 +336,7 @@ if ( ! class_exists( 'WC_Shipping_WCJ_Custom_W_Zones' ) ) :
|
|
336 |
/**
|
337 |
* Maybe_apply_formula.
|
338 |
*
|
339 |
-
* @version
|
340 |
* @since 3.4.0
|
341 |
* @todo use WC math library instead of `PHPMathParser`
|
342 |
* @param int | string $formula Get formula.
|
@@ -346,7 +346,7 @@ if ( ! class_exists( 'WC_Shipping_WCJ_Custom_W_Zones' ) ) :
|
|
346 |
return $formula;
|
347 |
}
|
348 |
$formula = do_shortcode( $formula );
|
349 |
-
require_once
|
350 |
$math = new WCJ_Math();
|
351 |
$variables = array(
|
352 |
'quantity' => $this->get_total_cart_quantity(),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shipping - Custom Shipping with Shipping Zones
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.5.6
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
285 |
'apply_formula' => array(
|
286 |
'title' => __( 'Apply Formula and Shortcodes to Costs', 'woocommerce' ),
|
287 |
'description' => sprintf(
|
288 |
+
/* translators: %s: search term */
|
289 |
+
__( 'You can use %s and %s params in formula, e.g.: %s. Also you can use shortcodes, e.g.: %s.', 'woocommerce-jetpack' ),
|
290 |
'<em>weight</em>',
|
291 |
'<em>quantity</em>',
|
292 |
'<em>2.5+weight</em>',
|
336 |
/**
|
337 |
* Maybe_apply_formula.
|
338 |
*
|
339 |
+
* @version 5.6.1
|
340 |
* @since 3.4.0
|
341 |
* @todo use WC math library instead of `PHPMathParser`
|
342 |
* @param int | string $formula Get formula.
|
346 |
return $formula;
|
347 |
}
|
348 |
$formula = do_shortcode( $formula );
|
349 |
+
require_once wcj_free_plugin_path() . '/includes/lib/PHPMathParser/Math.php';
|
350 |
$math = new WCJ_Math();
|
351 |
$variables = array(
|
352 |
'quantity' => $this->get_total_cart_quantity(),
|
includes/widgets/class-wcj-widget-multicurrency.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Widget - Multicurrency
|
4 |
*
|
5 |
-
* @version
|
6 |
* @since 2.4.3
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/Widget
|
@@ -43,7 +43,7 @@ if ( ! class_exists( 'WCJ_Widget_Multicurrency' ) ) :
|
|
43 |
/**
|
44 |
* Get_content.
|
45 |
*
|
46 |
-
* @version
|
47 |
* @since 3.1.0
|
48 |
* @param array $instance Saved values from database.
|
49 |
*/
|
@@ -51,7 +51,8 @@ if ( ! class_exists( 'WCJ_Widget_Multicurrency' ) ) :
|
|
51 |
if ( ! wcj_is_module_enabled( 'multicurrency' ) ) {
|
52 |
return __( 'Multicurrency module not enabled!', 'woocommerce-jetpack' );
|
53 |
} else {
|
54 |
-
|
|
|
55 |
case 'link_list':
|
56 |
return do_shortcode( '[wcj_currency_select_link_list]' );
|
57 |
case 'radio_list':
|
2 |
/**
|
3 |
* Booster for WooCommerce - Widget - Multicurrency
|
4 |
*
|
5 |
+
* @version 5.6.1
|
6 |
* @since 2.4.3
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/Widget
|
43 |
/**
|
44 |
* Get_content.
|
45 |
*
|
46 |
+
* @version 5.6.1
|
47 |
* @since 3.1.0
|
48 |
* @param array $instance Saved values from database.
|
49 |
*/
|
51 |
if ( ! wcj_is_module_enabled( 'multicurrency' ) ) {
|
52 |
return __( 'Multicurrency module not enabled!', 'woocommerce-jetpack' );
|
53 |
} else {
|
54 |
+
$switcher_type = isset( $instance['switcher_type'] ) ? $instance['switcher_type'] : '';
|
55 |
+
switch ( $switcher_type ) {
|
56 |
case 'link_list':
|
57 |
return do_shortcode( '[wcj_currency_select_link_list]' );
|
58 |
case 'radio_list':
|
langs/woocommerce-jetpack.pot
CHANGED
@@ -58,7 +58,7 @@ msgstr ""
|
|
58 |
#: includes/admin/class-wc-settings-jetpack.php:110
|
59 |
#, php-format
|
60 |
msgid ""
|
61 |
-
"Please rate <strong>Booster for WooCommerce</strong> %
|
62 |
"target=\"_blank\">WordPress.org</a> to help us spread the word. Thank you "
|
63 |
"from Booster team!"
|
64 |
msgstr ""
|
@@ -66,8 +66,8 @@ msgstr ""
|
|
66 |
#: includes/admin/class-wc-settings-jetpack.php:169
|
67 |
#, php-format
|
68 |
msgid ""
|
69 |
-
"Please rate <strong>Booster for WooCommerce</strong> %
|
70 |
-
"
|
71 |
"from Booster team!"
|
72 |
msgstr ""
|
73 |
|
@@ -95,8 +95,8 @@ msgstr ""
|
|
95 |
#: includes/admin/class-wc-settings-jetpack.php:356
|
96 |
#, php-format
|
97 |
msgid ""
|
98 |
-
"Please note that current <em>%
|
99 |
-
"
|
100 |
msgstr ""
|
101 |
|
102 |
#: includes/admin/class-wc-settings-jetpack.php:362
|
@@ -441,7 +441,7 @@ msgid "BOOSTER WEBSITE"
|
|
441 |
msgstr ""
|
442 |
|
443 |
#: includes/admin/class-wc-settings-jetpack.php:992
|
444 |
-
#: includes/class-wcj-general.php:236 includes/class-wcj-product-by-user.php:
|
445 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:166
|
446 |
#: includes/tools/class-wcj-order-statuses-tool.php:191
|
447 |
#: includes/tools/class-wcj-order-statuses-tool.php:271
|
@@ -578,7 +578,7 @@ msgstr ""
|
|
578 |
|
579 |
#: includes/admin/class-wcj-settings-custom-fields.php:79
|
580 |
#, php-format
|
581 |
-
msgid "Grab raw %
|
582 |
msgstr ""
|
583 |
|
584 |
#: includes/admin/class-wcj-settings-custom-fields.php:80
|
@@ -671,8 +671,8 @@ msgstr ""
|
|
671 |
#: includes/admin/wcj-modules-cats.php:61 includes/class-wcj-admin-bar.php:493
|
672 |
#: includes/class-wcj-admin-bar.php:497 includes/class-wcj-admin-bar.php:543
|
673 |
#: includes/class-wcj-product-bulk-meta-editor.php:285
|
674 |
-
#: includes/class-wcj-product-by-user.php:
|
675 |
-
#: includes/class-wcj-product-by-user.php:
|
676 |
#: includes/class-wcj-shipping-by-products.php:40
|
677 |
#: includes/settings/wcj-settings-reports.php:181
|
678 |
#: includes/settings/wcj-settings-shipping-options.php:77
|
@@ -1485,7 +1485,7 @@ msgstr ""
|
|
1485 |
#: includes/class-wcj-checkout-custom-fields.php:48
|
1486 |
#: includes/class-wcj-product-input-fields.php:45
|
1487 |
#, php-format
|
1488 |
-
msgid "<strong>PHP code:</strong> by using %
|
1489 |
msgstr ""
|
1490 |
|
1491 |
#: includes/class-wcj-checkout-custom-info.php:30
|
@@ -1611,7 +1611,7 @@ msgid "Booster for WooCommerce: Checkout Files Upload: %action%"
|
|
1611 |
msgstr ""
|
1612 |
|
1613 |
#: includes/class-wcj-checkout-files-upload.php:424
|
1614 |
-
msgid "Order ID: %
|
1615 |
msgstr ""
|
1616 |
|
1617 |
#: includes/class-wcj-checkout-files-upload.php:441
|
@@ -2027,9 +2027,9 @@ msgstr ""
|
|
2027 |
#, php-format
|
2028 |
msgid ""
|
2029 |
"Please note that if you enable the module and enter non-valid PHP code here, "
|
2030 |
-
"your site will become unavailable. To fix this you will have to add %
|
2031 |
"attribute to the URL (you must be logged as shop manager or admin (for this "
|
2032 |
-
"reason custom PHP code is not executed on %
|
2033 |
msgstr ""
|
2034 |
|
2035 |
#: includes/class-wcj-custom-php.php:42
|
@@ -2494,7 +2494,7 @@ msgstr ""
|
|
2494 |
#: includes/class-wcj-general.php:243
|
2495 |
#: includes/class-wcj-payment-gateways.php:133
|
2496 |
#: includes/class-wcj-product-bulk-meta-editor.php:402
|
2497 |
-
#: includes/class-wcj-product-by-user.php:
|
2498 |
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:162
|
2499 |
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:384
|
2500 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:391
|
@@ -2667,7 +2667,7 @@ msgstr ""
|
|
2667 |
#: includes/class-wcj-multicurrency.php:59
|
2668 |
#: includes/class-wcj-purchase-data.php:49
|
2669 |
#, php-format
|
2670 |
-
msgid "<strong>PHP code:</strong> by using %
|
2671 |
msgstr ""
|
2672 |
|
2673 |
#: includes/class-wcj-my-account.php:33
|
@@ -2715,6 +2715,19 @@ msgstr ""
|
|
2715 |
msgid "Lost password"
|
2716 |
msgstr ""
|
2717 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2718 |
#: includes/class-wcj-my-account.php:448
|
2719 |
msgid "User role"
|
2720 |
msgstr ""
|
@@ -2796,6 +2809,11 @@ msgstr ""
|
|
2796 |
msgid "No price offers yet."
|
2797 |
msgstr ""
|
2798 |
|
|
|
|
|
|
|
|
|
|
|
2799 |
#: includes/class-wcj-offer-price.php:265
|
2800 |
msgid "Update product after checking the box."
|
2801 |
msgstr ""
|
@@ -2855,7 +2873,6 @@ msgid "Offered price: %s"
|
|
2855 |
msgstr ""
|
2856 |
|
2857 |
#: includes/class-wcj-offer-price.php:560
|
2858 |
-
#: includes/settings/wcj-settings-offer-price.php:356
|
2859 |
#, php-format
|
2860 |
msgid "From: %1$s %2$s"
|
2861 |
msgstr ""
|
@@ -3032,23 +3049,23 @@ msgstr ""
|
|
3032 |
msgid "Tool renumerates all orders."
|
3033 |
msgstr ""
|
3034 |
|
3035 |
-
#: includes/class-wcj-order-numbers.php:
|
3036 |
msgid "Orders successfully renumerated!"
|
3037 |
msgstr ""
|
3038 |
|
3039 |
-
#: includes/class-wcj-order-numbers.php:
|
3040 |
#, php-format
|
3041 |
msgid "Sequential number generation is enabled. Next order number will be %s."
|
3042 |
msgstr ""
|
3043 |
|
3044 |
-
#: includes/class-wcj-order-numbers.php:
|
3045 |
#, php-format
|
3046 |
msgid ""
|
3047 |
"Press the button below to renumerate all existing orders starting from order "
|
3048 |
"counter settings in <a href=\"%s\">Order Numbers</a> module."
|
3049 |
msgstr ""
|
3050 |
|
3051 |
-
#: includes/class-wcj-order-numbers.php:
|
3052 |
msgid "Renumerate orders"
|
3053 |
msgstr ""
|
3054 |
|
@@ -3950,7 +3967,7 @@ msgid ""
|
|
3950 |
msgstr ""
|
3951 |
|
3952 |
#: includes/class-wcj-product-bulk-meta-editor.php:306
|
3953 |
-
#: includes/class-wcj-product-by-user.php:
|
3954 |
#: includes/class-wcj-purchase-data.php:121
|
3955 |
#: includes/classes/class-wcj-module.php:989
|
3956 |
#: includes/functions/wcj-functions-general.php:208
|
@@ -4142,7 +4159,7 @@ msgstr ""
|
|
4142 |
#, php-format
|
4143 |
msgid ""
|
4144 |
"If \"Manually\" option is selected, you can add country selection drop box to "
|
4145 |
-
"frontend with \"%
|
4146 |
msgstr ""
|
4147 |
|
4148 |
#: includes/class-wcj-product-by-country.php:165
|
@@ -4327,17 +4344,17 @@ msgid ""
|
|
4327 |
"form to frontend."
|
4328 |
msgstr ""
|
4329 |
|
4330 |
-
#: includes/class-wcj-product-by-user.php:
|
4331 |
-
#: includes/class-wcj-product-by-user.php:
|
4332 |
msgid "Wrong user ID!"
|
4333 |
msgstr ""
|
4334 |
|
4335 |
-
#: includes/class-wcj-product-by-user.php:
|
4336 |
#: includes/export/class-wcj-export-fields-helper.php:298
|
4337 |
msgid "Status"
|
4338 |
msgstr ""
|
4339 |
|
4340 |
-
#: includes/class-wcj-product-by-user.php:
|
4341 |
#: includes/class-wcj-product-tabs.php:651
|
4342 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:59
|
4343 |
#: includes/input-fields/wcj-product-input-fields-options.php:53
|
@@ -4365,12 +4382,12 @@ msgstr ""
|
|
4365 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:361
|
4366 |
#: includes/widgets/class-wcj-widget-country-switcher.php:77
|
4367 |
#: includes/widgets/class-wcj-widget-left-to-free-shipping.php:63
|
4368 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
4369 |
#: includes/widgets/class-wcj-widget-selector.php:63
|
4370 |
msgid "Title"
|
4371 |
msgstr ""
|
4372 |
|
4373 |
-
#: includes/class-wcj-product-by-user.php:
|
4374 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:470
|
4375 |
#: includes/tools/class-wcj-order-statuses-tool.php:210
|
4376 |
#: includes/tools/class-wcj-order-statuses-tool.php:286
|
@@ -4409,8 +4426,8 @@ msgstr ""
|
|
4409 |
#: includes/class-wcj-product-custom-visibility.php:37
|
4410 |
#, php-format
|
4411 |
msgid ""
|
4412 |
-
"You can add selection drop box to frontend with \"%
|
4413 |
-
"
|
4414 |
msgstr ""
|
4415 |
|
4416 |
#: includes/class-wcj-product-custom-visibility.php:42
|
@@ -4892,8 +4909,10 @@ msgid "Add \"products per page\" selector to WooCommerce."
|
|
4892 |
msgstr ""
|
4893 |
|
4894 |
#: includes/class-wcj-products-per-page.php:96
|
|
|
4895 |
msgid ""
|
4896 |
-
"Products <strong>%
|
|
|
4897 |
msgstr ""
|
4898 |
|
4899 |
#: includes/class-wcj-products-xml.php:31
|
@@ -5343,8 +5362,7 @@ msgstr ""
|
|
5343 |
#: includes/class-wcj-shipping-by-time.php:149
|
5344 |
#, php-format
|
5345 |
msgid ""
|
5346 |
-
"According to current time, your time input will be parsed as: from %
|
5347 |
-
"%2$s."
|
5348 |
msgstr ""
|
5349 |
|
5350 |
#: includes/class-wcj-shipping-by-time.php:155
|
@@ -5697,6 +5715,15 @@ msgstr ""
|
|
5697 |
msgid "Visits"
|
5698 |
msgstr ""
|
5699 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5700 |
#: includes/class-wcj-upsells.php:37
|
5701 |
msgid "Upsells"
|
5702 |
msgstr ""
|
@@ -5925,7 +5952,7 @@ msgstr ""
|
|
5925 |
|
5926 |
#: includes/emails/class-wc-email-wcj-custom.php:240
|
5927 |
#, php-format
|
5928 |
-
msgid "Order status %
|
5929 |
msgstr ""
|
5930 |
|
5931 |
#: includes/emails/class-wc-email-wcj-custom.php:247
|
@@ -6421,7 +6448,7 @@ msgstr ""
|
|
6421 |
#: includes/settings/wcj-settings-shipping-options.php:85
|
6422 |
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:231
|
6423 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:129
|
6424 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
6425 |
msgid "Type"
|
6426 |
msgstr ""
|
6427 |
|
@@ -8525,7 +8552,7 @@ msgstr ""
|
|
8525 |
|
8526 |
#: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:294
|
8527 |
#, php-format
|
8528 |
-
msgid "No documents (%
|
8529 |
msgstr ""
|
8530 |
|
8531 |
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-advanced.php:33
|
@@ -10119,8 +10146,7 @@ msgstr ""
|
|
10119 |
#: includes/settings/wcj-settings-admin-tools.php:25
|
10120 |
#, php-format
|
10121 |
msgid ""
|
10122 |
-
"Will require %
|
10123 |
-
"capability)."
|
10124 |
msgstr ""
|
10125 |
|
10126 |
#: includes/settings/wcj-settings-admin-tools.php:35
|
@@ -10633,7 +10659,7 @@ msgstr ""
|
|
10633 |
|
10634 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:208
|
10635 |
#: includes/settings/wcj-settings-eu-vat-number.php:58
|
10636 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
10637 |
msgid "Class"
|
10638 |
msgstr ""
|
10639 |
|
@@ -11471,7 +11497,7 @@ msgid "Before"
|
|
11471 |
msgstr ""
|
11472 |
|
11473 |
#: includes/settings/wcj-settings-checkout-files-upload.php:334
|
11474 |
-
msgid "Replaced values: %
|
11475 |
msgstr ""
|
11476 |
|
11477 |
#: includes/settings/wcj-settings-checkout-files-upload.php:342
|
@@ -11482,7 +11508,7 @@ msgid "Field"
|
|
11482 |
msgstr ""
|
11483 |
|
11484 |
#: includes/settings/wcj-settings-checkout-files-upload.php:344
|
11485 |
-
msgid "Replaced values: %
|
11486 |
msgstr ""
|
11487 |
|
11488 |
#: includes/settings/wcj-settings-checkout-files-upload.php:352
|
@@ -11514,7 +11540,7 @@ msgstr ""
|
|
11514 |
|
11515 |
#: includes/settings/wcj-settings-checkout-files-upload.php:412
|
11516 |
#, php-format
|
11517 |
-
msgid "Ignored, if %
|
11518 |
msgstr ""
|
11519 |
|
11520 |
#: includes/settings/wcj-settings-checkout-files-upload.php:430
|
@@ -11793,8 +11819,8 @@ msgstr ""
|
|
11793 |
#: includes/settings/wcj-settings-cross-sells.php:137
|
11794 |
#, php-format
|
11795 |
msgid ""
|
11796 |
-
"Please note that this option will work only if \"%
|
11797 |
-
"%
|
11798 |
msgstr ""
|
11799 |
|
11800 |
#: includes/settings/wcj-settings-cross-sells.php:138
|
@@ -13195,13 +13221,13 @@ msgstr ""
|
|
13195 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:22
|
13196 |
#, php-format
|
13197 |
msgid ""
|
13198 |
-
"You can also use <em>Booster - Left to Free Shipping</em> widget, %
|
13199 |
-
"shortcode or %
|
13200 |
msgstr ""
|
13201 |
|
13202 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:28
|
13203 |
#, php-format
|
13204 |
-
msgid "In content replaced values are: %
|
13205 |
msgstr ""
|
13206 |
|
13207 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:36
|
@@ -13844,7 +13870,7 @@ msgstr ""
|
|
13844 |
|
13845 |
#: includes/settings/wcj-settings-my-account.php:130
|
13846 |
#, php-format
|
13847 |
-
msgid "Add in %
|
13848 |
msgstr ""
|
13849 |
|
13850 |
#: includes/settings/wcj-settings-my-account.php:149
|
@@ -14247,7 +14273,12 @@ msgstr ""
|
|
14247 |
|
14248 |
#: includes/settings/wcj-settings-offer-price.php:326
|
14249 |
#, php-format
|
14250 |
-
msgid "Use %
|
|
|
|
|
|
|
|
|
|
|
14251 |
msgstr ""
|
14252 |
|
14253 |
#: includes/settings/wcj-settings-offer-price.php:366
|
@@ -14420,8 +14451,8 @@ msgstr ""
|
|
14420 |
#, php-format
|
14421 |
msgid ""
|
14422 |
"Message to customer if order is below minimum amount. Default: You must have "
|
14423 |
-
"an order with a minimum of %
|
14424 |
-
"is %
|
14425 |
msgstr ""
|
14426 |
|
14427 |
#: includes/settings/wcj-settings-order-min-amount.php:68
|
@@ -17817,7 +17848,7 @@ msgstr ""
|
|
17817 |
|
17818 |
#: includes/settings/wcj-settings-product-input-fields.php:410
|
17819 |
#, php-format
|
17820 |
-
msgid "Enable this if you have single quotes %
|
17821 |
msgstr ""
|
17822 |
|
17823 |
#: includes/settings/wcj-settings-product-listings.php:34
|
@@ -18180,7 +18211,7 @@ msgstr ""
|
|
18180 |
|
18181 |
#: includes/settings/wcj-settings-product-price-by-formula.php:26
|
18182 |
#, php-format
|
18183 |
-
msgid "Use %
|
18184 |
msgstr ""
|
18185 |
|
18186 |
#: includes/settings/wcj-settings-product-price-by-formula.php:36
|
@@ -18497,19 +18528,13 @@ msgstr ""
|
|
18497 |
msgid "Template - Form"
|
18498 |
msgstr ""
|
18499 |
|
18500 |
-
#: includes/settings/wcj-settings-products-per-page.php:67
|
18501 |
-
msgid ""
|
18502 |
-
"Products <strong>%from% - %to%</strong> from <strong>%total%</strong>. "
|
18503 |
-
"Products on page %select_form%"
|
18504 |
-
msgstr ""
|
18505 |
-
|
18506 |
#: includes/settings/wcj-settings-products-per-page.php:72
|
18507 |
msgid "Template - After Form"
|
18508 |
msgstr ""
|
18509 |
|
18510 |
#: includes/settings/wcj-settings-products-per-page.php:79
|
18511 |
#: includes/widgets/class-wcj-widget-country-switcher.php:102
|
18512 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
18513 |
msgid "Form Method"
|
18514 |
msgstr ""
|
18515 |
|
@@ -20527,8 +20552,8 @@ msgstr ""
|
|
20527 |
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:289
|
20528 |
#, php-format
|
20529 |
msgid ""
|
20530 |
-
"You can use %
|
20531 |
-
"shortcodes, e.g.: %
|
20532 |
msgstr ""
|
20533 |
|
20534 |
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:302
|
@@ -20770,17 +20795,17 @@ msgid "Replace with currency"
|
|
20770 |
msgstr ""
|
20771 |
|
20772 |
#: includes/widgets/class-wcj-widget-country-switcher.php:103
|
20773 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
20774 |
msgid "HTML form method for \"Drop down\" and \"Radio list\" types."
|
20775 |
msgstr ""
|
20776 |
|
20777 |
#: includes/widgets/class-wcj-widget-country-switcher.php:108
|
20778 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
20779 |
msgid "Post"
|
20780 |
msgstr ""
|
20781 |
|
20782 |
#: includes/widgets/class-wcj-widget-country-switcher.php:109
|
20783 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
20784 |
msgid "Get"
|
20785 |
msgstr ""
|
20786 |
|
@@ -20800,27 +20825,27 @@ msgstr ""
|
|
20800 |
msgid "Multicurrency module not enabled!"
|
20801 |
msgstr ""
|
20802 |
|
20803 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
20804 |
msgid "Drop down"
|
20805 |
msgstr ""
|
20806 |
|
20807 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
20808 |
msgid "Radio list"
|
20809 |
msgstr ""
|
20810 |
|
20811 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
20812 |
msgid "Link list"
|
20813 |
msgstr ""
|
20814 |
|
20815 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
20816 |
msgid "HTML class for \"Drop down\" type."
|
20817 |
msgstr ""
|
20818 |
|
20819 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
20820 |
msgid "Style"
|
20821 |
msgstr ""
|
20822 |
|
20823 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:
|
20824 |
msgid "HTML style for \"Drop down\" type."
|
20825 |
msgstr ""
|
20826 |
|
58 |
#: includes/admin/class-wc-settings-jetpack.php:110
|
59 |
#, php-format
|
60 |
msgid ""
|
61 |
+
"Please rate <strong>Booster for WooCommerce</strong> %s on <a href=\"%s\" "
|
62 |
"target=\"_blank\">WordPress.org</a> to help us spread the word. Thank you "
|
63 |
"from Booster team!"
|
64 |
msgstr ""
|
66 |
#: includes/admin/class-wc-settings-jetpack.php:169
|
67 |
#, php-format
|
68 |
msgid ""
|
69 |
+
"Please rate <strong>Booster for WooCommerce</strong> %s on <a href=\"%s\" "
|
70 |
+
"target=\"_blank\">WordPress.org</a> to help us spread the word. Thank you "
|
71 |
"from Booster team!"
|
72 |
msgstr ""
|
73 |
|
95 |
#: includes/admin/class-wc-settings-jetpack.php:356
|
96 |
#, php-format
|
97 |
msgid ""
|
98 |
+
"Please note that current <em>%s</em> module is deprecated and will be removed "
|
99 |
+
"in future updates. Please use <em>%s</em> module instead."
|
100 |
msgstr ""
|
101 |
|
102 |
#: includes/admin/class-wc-settings-jetpack.php:362
|
441 |
msgstr ""
|
442 |
|
443 |
#: includes/admin/class-wc-settings-jetpack.php:992
|
444 |
+
#: includes/class-wcj-general.php:236 includes/class-wcj-product-by-user.php:275
|
445 |
#: includes/settings/wcj-settings-pdf-invoicing-advanced.php:166
|
446 |
#: includes/tools/class-wcj-order-statuses-tool.php:191
|
447 |
#: includes/tools/class-wcj-order-statuses-tool.php:271
|
578 |
|
579 |
#: includes/admin/class-wcj-settings-custom-fields.php:79
|
580 |
#, php-format
|
581 |
+
msgid "Grab raw %s rate from %s."
|
582 |
msgstr ""
|
583 |
|
584 |
#: includes/admin/class-wcj-settings-custom-fields.php:80
|
671 |
#: includes/admin/wcj-modules-cats.php:61 includes/class-wcj-admin-bar.php:493
|
672 |
#: includes/class-wcj-admin-bar.php:497 includes/class-wcj-admin-bar.php:543
|
673 |
#: includes/class-wcj-product-bulk-meta-editor.php:285
|
674 |
+
#: includes/class-wcj-product-by-user.php:177
|
675 |
+
#: includes/class-wcj-product-by-user.php:214
|
676 |
#: includes/class-wcj-shipping-by-products.php:40
|
677 |
#: includes/settings/wcj-settings-reports.php:181
|
678 |
#: includes/settings/wcj-settings-shipping-options.php:77
|
1485 |
#: includes/class-wcj-checkout-custom-fields.php:48
|
1486 |
#: includes/class-wcj-product-input-fields.php:45
|
1487 |
#, php-format
|
1488 |
+
msgid "<strong>PHP code:</strong> by using %s function,<br> e.g.: %s"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
#: includes/class-wcj-checkout-custom-info.php:30
|
1611 |
msgstr ""
|
1612 |
|
1613 |
#: includes/class-wcj-checkout-files-upload.php:424
|
1614 |
+
msgid "Order ID: %order_id%; File name: %file_name%"
|
1615 |
msgstr ""
|
1616 |
|
1617 |
#: includes/class-wcj-checkout-files-upload.php:441
|
2027 |
#, php-format
|
2028 |
msgid ""
|
2029 |
"Please note that if you enable the module and enter non-valid PHP code here, "
|
2030 |
+
"your site will become unavailable. To fix this you will have to add %s "
|
2031 |
"attribute to the URL (you must be logged as shop manager or admin (for this "
|
2032 |
+
"reason custom PHP code is not executed on %s page))."
|
2033 |
msgstr ""
|
2034 |
|
2035 |
#: includes/class-wcj-custom-php.php:42
|
2494 |
#: includes/class-wcj-general.php:243
|
2495 |
#: includes/class-wcj-payment-gateways.php:133
|
2496 |
#: includes/class-wcj-product-bulk-meta-editor.php:402
|
2497 |
+
#: includes/class-wcj-product-by-user.php:284
|
2498 |
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:162
|
2499 |
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-display.php:384
|
2500 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:391
|
2667 |
#: includes/class-wcj-multicurrency.php:59
|
2668 |
#: includes/class-wcj-purchase-data.php:49
|
2669 |
#, php-format
|
2670 |
+
msgid "<strong>PHP code:</strong> by using %s function, e.g.: %s"
|
2671 |
msgstr ""
|
2672 |
|
2673 |
#: includes/class-wcj-my-account.php:33
|
2715 |
msgid "Lost password"
|
2716 |
msgstr ""
|
2717 |
|
2718 |
+
#: includes/class-wcj-my-account.php:329
|
2719 |
+
#, php-format
|
2720 |
+
msgid "Hello %1$s (not %1$s? <a href=\"%2$s\">Log out</a>)"
|
2721 |
+
msgstr ""
|
2722 |
+
|
2723 |
+
#: includes/class-wcj-my-account.php:339
|
2724 |
+
#, php-format
|
2725 |
+
msgid ""
|
2726 |
+
"From your account dashboard you can view your <a href=\"%1$s\">recent orders</"
|
2727 |
+
"a>, manage your <a href=\"%2$s\">shipping and billing addresses</a>, and <a "
|
2728 |
+
"href=\"%3$s\">edit your password and account details</a>."
|
2729 |
+
msgstr ""
|
2730 |
+
|
2731 |
#: includes/class-wcj-my-account.php:448
|
2732 |
msgid "User role"
|
2733 |
msgstr ""
|
2809 |
msgid "No price offers yet."
|
2810 |
msgstr ""
|
2811 |
|
2812 |
+
#: includes/class-wcj-offer-price.php:257
|
2813 |
+
#, php-format
|
2814 |
+
msgid "Average offer: %s (from %s offer(s))"
|
2815 |
+
msgstr ""
|
2816 |
+
|
2817 |
#: includes/class-wcj-offer-price.php:265
|
2818 |
msgid "Update product after checking the box."
|
2819 |
msgstr ""
|
2873 |
msgstr ""
|
2874 |
|
2875 |
#: includes/class-wcj-offer-price.php:560
|
|
|
2876 |
#, php-format
|
2877 |
msgid "From: %1$s %2$s"
|
2878 |
msgstr ""
|
3049 |
msgid "Tool renumerates all orders."
|
3050 |
msgstr ""
|
3051 |
|
3052 |
+
#: includes/class-wcj-order-numbers.php:348
|
3053 |
msgid "Orders successfully renumerated!"
|
3054 |
msgstr ""
|
3055 |
|
3056 |
+
#: includes/class-wcj-order-numbers.php:353
|
3057 |
#, php-format
|
3058 |
msgid "Sequential number generation is enabled. Next order number will be %s."
|
3059 |
msgstr ""
|
3060 |
|
3061 |
+
#: includes/class-wcj-order-numbers.php:366
|
3062 |
#, php-format
|
3063 |
msgid ""
|
3064 |
"Press the button below to renumerate all existing orders starting from order "
|
3065 |
"counter settings in <a href=\"%s\">Order Numbers</a> module."
|
3066 |
msgstr ""
|
3067 |
|
3068 |
+
#: includes/class-wcj-order-numbers.php:374
|
3069 |
msgid "Renumerate orders"
|
3070 |
msgstr ""
|
3071 |
|
3967 |
msgstr ""
|
3968 |
|
3969 |
#: includes/class-wcj-product-bulk-meta-editor.php:306
|
3970 |
+
#: includes/class-wcj-product-by-user.php:284
|
3971 |
#: includes/class-wcj-purchase-data.php:121
|
3972 |
#: includes/classes/class-wcj-module.php:989
|
3973 |
#: includes/functions/wcj-functions-general.php:208
|
4159 |
#, php-format
|
4160 |
msgid ""
|
4161 |
"If \"Manually\" option is selected, you can add country selection drop box to "
|
4162 |
+
"frontend with \"%s\" widget or %s shortcode."
|
4163 |
msgstr ""
|
4164 |
|
4165 |
#: includes/class-wcj-product-by-country.php:165
|
4344 |
"form to frontend."
|
4345 |
msgstr ""
|
4346 |
|
4347 |
+
#: includes/class-wcj-product-by-user.php:233
|
4348 |
+
#: includes/class-wcj-product-by-user.php:242
|
4349 |
msgid "Wrong user ID!"
|
4350 |
msgstr ""
|
4351 |
|
4352 |
+
#: includes/class-wcj-product-by-user.php:275
|
4353 |
#: includes/export/class-wcj-export-fields-helper.php:298
|
4354 |
msgid "Status"
|
4355 |
msgstr ""
|
4356 |
|
4357 |
+
#: includes/class-wcj-product-by-user.php:275
|
4358 |
#: includes/class-wcj-product-tabs.php:651
|
4359 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:59
|
4360 |
#: includes/input-fields/wcj-product-input-fields-options.php:53
|
4382 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:361
|
4383 |
#: includes/widgets/class-wcj-widget-country-switcher.php:77
|
4384 |
#: includes/widgets/class-wcj-widget-left-to-free-shipping.php:63
|
4385 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:85
|
4386 |
#: includes/widgets/class-wcj-widget-selector.php:63
|
4387 |
msgid "Title"
|
4388 |
msgstr ""
|
4389 |
|
4390 |
+
#: includes/class-wcj-product-by-user.php:283
|
4391 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:470
|
4392 |
#: includes/tools/class-wcj-order-statuses-tool.php:210
|
4393 |
#: includes/tools/class-wcj-order-statuses-tool.php:286
|
4426 |
#: includes/class-wcj-product-custom-visibility.php:37
|
4427 |
#, php-format
|
4428 |
msgid ""
|
4429 |
+
"You can add selection drop box to frontend with \"%s\" widget (set \"Product "
|
4430 |
+
"custom visibility\" as \"Selector Type\") or %s shortcode."
|
4431 |
msgstr ""
|
4432 |
|
4433 |
#: includes/class-wcj-product-custom-visibility.php:42
|
4909 |
msgstr ""
|
4910 |
|
4911 |
#: includes/class-wcj-products-per-page.php:96
|
4912 |
+
#: includes/settings/wcj-settings-products-per-page.php:67
|
4913 |
msgid ""
|
4914 |
+
"Products <strong>%from% - %to%</strong> from <strong>%total%</strong>. "
|
4915 |
+
"Products on page %select_form%"
|
4916 |
msgstr ""
|
4917 |
|
4918 |
#: includes/class-wcj-products-xml.php:31
|
5362 |
#: includes/class-wcj-shipping-by-time.php:149
|
5363 |
#, php-format
|
5364 |
msgid ""
|
5365 |
+
"According to current time, your time input will be parsed as: from %s to %s."
|
|
|
5366 |
msgstr ""
|
5367 |
|
5368 |
#: includes/class-wcj-shipping-by-time.php:155
|
5715 |
msgid "Visits"
|
5716 |
msgstr ""
|
5717 |
|
5718 |
+
#: includes/class-wcj-track-users.php:373
|
5719 |
+
#, php-format
|
5720 |
+
msgid "Stats generated at %s. Next update is scheduled at %s."
|
5721 |
+
msgstr ""
|
5722 |
+
|
5723 |
+
#: includes/class-wcj-track-users.php:374
|
5724 |
+
msgid "Update now"
|
5725 |
+
msgstr ""
|
5726 |
+
|
5727 |
#: includes/class-wcj-upsells.php:37
|
5728 |
msgid "Upsells"
|
5729 |
msgstr ""
|
5952 |
|
5953 |
#: includes/emails/class-wc-email-wcj-custom.php:240
|
5954 |
#, php-format
|
5955 |
+
msgid "Order status %s to %s"
|
5956 |
msgstr ""
|
5957 |
|
5958 |
#: includes/emails/class-wc-email-wcj-custom.php:247
|
6448 |
#: includes/settings/wcj-settings-shipping-options.php:85
|
6449 |
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:231
|
6450 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:129
|
6451 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:92
|
6452 |
msgid "Type"
|
6453 |
msgstr ""
|
6454 |
|
8552 |
|
8553 |
#: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:294
|
8554 |
#, php-format
|
8555 |
+
msgid "No documents (%s) found for %d-%02d."
|
8556 |
msgstr ""
|
8557 |
|
8558 |
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-advanced.php:33
|
10146 |
#: includes/settings/wcj-settings-admin-tools.php:25
|
10147 |
#, php-format
|
10148 |
msgid ""
|
10149 |
+
"Will require %s capability to see Booster menus (instead of %s capability)."
|
|
|
10150 |
msgstr ""
|
10151 |
|
10152 |
#: includes/settings/wcj-settings-admin-tools.php:35
|
10659 |
|
10660 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:208
|
10661 |
#: includes/settings/wcj-settings-eu-vat-number.php:58
|
10662 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:116
|
10663 |
msgid "Class"
|
10664 |
msgstr ""
|
10665 |
|
11497 |
msgstr ""
|
11498 |
|
11499 |
#: includes/settings/wcj-settings-checkout-files-upload.php:334
|
11500 |
+
msgid "Replaced values: %field_id%, %field_label%, %required_html%."
|
11501 |
msgstr ""
|
11502 |
|
11503 |
#: includes/settings/wcj-settings-checkout-files-upload.php:342
|
11508 |
msgstr ""
|
11509 |
|
11510 |
#: includes/settings/wcj-settings-checkout-files-upload.php:344
|
11511 |
+
msgid "Replaced values: %field_html%, %button_html%."
|
11512 |
msgstr ""
|
11513 |
|
11514 |
#: includes/settings/wcj-settings-checkout-files-upload.php:352
|
11540 |
|
11541 |
#: includes/settings/wcj-settings-checkout-files-upload.php:412
|
11542 |
#, php-format
|
11543 |
+
msgid "Ignored, if %s is not included in %s option above."
|
11544 |
msgstr ""
|
11545 |
|
11546 |
#: includes/settings/wcj-settings-checkout-files-upload.php:430
|
11819 |
#: includes/settings/wcj-settings-cross-sells.php:137
|
11820 |
#, php-format
|
11821 |
msgid ""
|
11822 |
+
"Please note that this option will work only if \"%s\" option is disabled in "
|
11823 |
+
"%s."
|
11824 |
msgstr ""
|
11825 |
|
11826 |
#: includes/settings/wcj-settings-cross-sells.php:138
|
13221 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:22
|
13222 |
#, php-format
|
13223 |
msgid ""
|
13224 |
+
"You can also use <em>Booster - Left to Free Shipping</em> widget, %s "
|
13225 |
+
"shortcode or %s function."
|
13226 |
msgstr ""
|
13227 |
|
13228 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:28
|
13229 |
#, php-format
|
13230 |
+
msgid "In content replaced values are: %s, %s and %s."
|
13231 |
msgstr ""
|
13232 |
|
13233 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:36
|
13870 |
|
13871 |
#: includes/settings/wcj-settings-my-account.php:130
|
13872 |
#, php-format
|
13873 |
+
msgid "Add in %s format. One per line. E.g.: %s."
|
13874 |
msgstr ""
|
13875 |
|
13876 |
#: includes/settings/wcj-settings-my-account.php:149
|
14273 |
|
14274 |
#: includes/settings/wcj-settings-offer-price.php:326
|
14275 |
#, php-format
|
14276 |
+
msgid "Use %s to send to administrator email: %s."
|
14277 |
+
msgstr ""
|
14278 |
+
|
14279 |
+
#: includes/settings/wcj-settings-offer-price.php:356
|
14280 |
+
#, php-format
|
14281 |
+
msgid "From: %s %s"
|
14282 |
msgstr ""
|
14283 |
|
14284 |
#: includes/settings/wcj-settings-offer-price.php:366
|
14451 |
#, php-format
|
14452 |
msgid ""
|
14453 |
"Message to customer if order is below minimum amount. Default: You must have "
|
14454 |
+
"an order with a minimum of %s to place your order, your current order total "
|
14455 |
+
"is %s."
|
14456 |
msgstr ""
|
14457 |
|
14458 |
#: includes/settings/wcj-settings-order-min-amount.php:68
|
17848 |
|
17849 |
#: includes/settings/wcj-settings-product-input-fields.php:410
|
17850 |
#, php-format
|
17851 |
+
msgid "Enable this if you have single quotes %s converted to %s."
|
17852 |
msgstr ""
|
17853 |
|
17854 |
#: includes/settings/wcj-settings-product-listings.php:34
|
18211 |
|
18212 |
#: includes/settings/wcj-settings-product-price-by-formula.php:26
|
18213 |
#, php-format
|
18214 |
+
msgid "Use %s variable for product's base price. For example: %s."
|
18215 |
msgstr ""
|
18216 |
|
18217 |
#: includes/settings/wcj-settings-product-price-by-formula.php:36
|
18528 |
msgid "Template - Form"
|
18529 |
msgstr ""
|
18530 |
|
|
|
|
|
|
|
|
|
|
|
|
|
18531 |
#: includes/settings/wcj-settings-products-per-page.php:72
|
18532 |
msgid "Template - After Form"
|
18533 |
msgstr ""
|
18534 |
|
18535 |
#: includes/settings/wcj-settings-products-per-page.php:79
|
18536 |
#: includes/widgets/class-wcj-widget-country-switcher.php:102
|
18537 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:104
|
18538 |
msgid "Form Method"
|
18539 |
msgstr ""
|
18540 |
|
20552 |
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:289
|
20553 |
#, php-format
|
20554 |
msgid ""
|
20555 |
+
"You can use %s and %s params in formula, e.g.: %s. Also you can use "
|
20556 |
+
"shortcodes, e.g.: %s."
|
20557 |
msgstr ""
|
20558 |
|
20559 |
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:302
|
20795 |
msgstr ""
|
20796 |
|
20797 |
#: includes/widgets/class-wcj-widget-country-switcher.php:103
|
20798 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:105
|
20799 |
msgid "HTML form method for \"Drop down\" and \"Radio list\" types."
|
20800 |
msgstr ""
|
20801 |
|
20802 |
#: includes/widgets/class-wcj-widget-country-switcher.php:108
|
20803 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:110
|
20804 |
msgid "Post"
|
20805 |
msgstr ""
|
20806 |
|
20807 |
#: includes/widgets/class-wcj-widget-country-switcher.php:109
|
20808 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:111
|
20809 |
msgid "Get"
|
20810 |
msgstr ""
|
20811 |
|
20825 |
msgid "Multicurrency module not enabled!"
|
20826 |
msgstr ""
|
20827 |
|
20828 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:97
|
20829 |
msgid "Drop down"
|
20830 |
msgstr ""
|
20831 |
|
20832 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:98
|
20833 |
msgid "Radio list"
|
20834 |
msgstr ""
|
20835 |
|
20836 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:99
|
20837 |
msgid "Link list"
|
20838 |
msgstr ""
|
20839 |
|
20840 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:117
|
20841 |
msgid "HTML class for \"Drop down\" type."
|
20842 |
msgstr ""
|
20843 |
|
20844 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:124
|
20845 |
msgid "Style"
|
20846 |
msgstr ""
|
20847 |
|
20848 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:125
|
20849 |
msgid "HTML style for \"Drop down\" type."
|
20850 |
msgstr ""
|
20851 |
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: woocommerce customization, woocommerce bundle, woocommerce product addon,
|
|
4 |
Requires at least: 4.4
|
5 |
Tested up to: 6.0
|
6 |
Requires PHP: 5.6
|
7 |
-
Stable tag: 5.6.
|
8 |
License: GNU General Public License v3.0
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -275,6 +275,17 @@ To unlock all Booster for WooCommerce features, please install additional paid B
|
|
275 |
|
276 |
== Changelog ==
|
277 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
278 |
= 5.6.0 29/06/2022 =
|
279 |
|
280 |
* FIXED - PRICES & CURRENCIES - Wholesale Price - Fixed debug.log warning.
|
4 |
Requires at least: 4.4
|
5 |
Tested up to: 6.0
|
6 |
Requires PHP: 5.6
|
7 |
+
Stable tag: 5.6.1
|
8 |
License: GNU General Public License v3.0
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
275 |
|
276 |
== Changelog ==
|
277 |
|
278 |
+
= 5.6.1 01/07/2022 =
|
279 |
+
|
280 |
+
* FIXED - PRODUCTS - User Products - Fixed Fatal Error: Uncaught Error: Cannot access protected property XXX::$id.
|
281 |
+
* FIXED - PRODUCTS - Tax Display - Fixed Price displayed without taxes as default
|
282 |
+
* FIXED - PRODUCTS - Price based on User Role - Parse error: syntax error, unexpected ‘)’ in .../includes/class-wcj-price-by-user-role.php on line 417.
|
283 |
+
* FIXED - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - Allowing cents to Min, Max & Default input box
|
284 |
+
* FIXED - PRICES & CURRENCIES - Bulk Price Converter - PHP Notice: Undefined index: bulk_change_prices_preview...
|
285 |
+
* FIXED - PRICES & CURRENCIES - Global Discount - Fixed Include/Exclude Product Categories, Tags, Products options
|
286 |
+
* FIXED - PHP Notice: Undefined variable: old_option ...
|
287 |
+
* FIXED - Added Security vulnerability fixes.
|
288 |
+
|
289 |
= 5.6.0 29/06/2022 =
|
290 |
|
291 |
* FIXED - PRICES & CURRENCIES - Wholesale Price - Fixed debug.log warning.
|
version-details.txt
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
-
= 5.6.
|
2 |
|
3 |
-
* FIXED -
|
4 |
-
* FIXED -
|
5 |
-
*
|
6 |
-
* WordPress 6.0 tested
|
1 |
+
= 5.6.1 01/07/2022 =
|
2 |
|
3 |
+
* FIXED - PRODUCTS - User Products - Fixed Fatal Error: Uncaught Error: Cannot access protected property XXX::$id.
|
4 |
+
* FIXED - PRODUCTS - Tax Display - Fixed Price displayed without taxes as default
|
5 |
+
* FIXED - PRODUCTS - Price based on User Role - Parse error: syntax error, unexpected ‘)’ in .../includes/class-wcj-price-by-user-role.php on line 417.
|
|
woocommerce-jetpack.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Booster for WooCommerce
|
4 |
* Plugin URI: https://booster.io
|
5 |
* Description: Supercharge your WooCommerce site with these awesome powerful features. More than 100 modules.All in one WooCommerce plugin.
|
6 |
-
* Version: 5.6.
|
7 |
* Author: Pluggabl LLC
|
8 |
* Author URI: https://booster.io
|
9 |
* Text Domain: woocommerce-jetpack
|
@@ -30,17 +30,22 @@ if ( ! wcj_is_plugin_activated( 'woocommerce', 'woocommerce.php' ) ) {
|
|
30 |
}
|
31 |
|
32 |
// Check if Plus is active.
|
33 |
-
if ( 'woocommerce-jetpack.php' === basename( __FILE__ ) &&
|
|
|
|
|
|
|
|
|
|
|
34 |
return;
|
35 |
}
|
36 |
|
37 |
-
if ( ! defined( '
|
38 |
/**
|
39 |
-
*
|
40 |
*
|
41 |
-
* @since
|
42 |
*/
|
43 |
-
define( '
|
44 |
}
|
45 |
|
46 |
if ( ! class_exists( 'WC_Jetpack' ) ) :
|
@@ -54,16 +59,13 @@ if ( ! class_exists( 'WC_Jetpack' ) ) :
|
|
54 |
*/
|
55 |
final class WC_Jetpack {
|
56 |
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
/**
|
61 |
* Booster for WooCommerce version.
|
62 |
*
|
63 |
* @var string
|
64 |
* @since 2.4.7
|
65 |
*/
|
66 |
-
public $version = '5.6.
|
67 |
|
68 |
/**
|
69 |
* The single instance of the class
|
3 |
* Plugin Name: Booster for WooCommerce
|
4 |
* Plugin URI: https://booster.io
|
5 |
* Description: Supercharge your WooCommerce site with these awesome powerful features. More than 100 modules.All in one WooCommerce plugin.
|
6 |
+
* Version: 5.6.1
|
7 |
* Author: Pluggabl LLC
|
8 |
* Author URI: https://booster.io
|
9 |
* Text Domain: woocommerce-jetpack
|
30 |
}
|
31 |
|
32 |
// Check if Plus is active.
|
33 |
+
if ( 'woocommerce-jetpack.php' === basename( __FILE__ ) &&
|
34 |
+
( wcj_is_plugin_activated( 'booster-plus-for-woocommerce', 'booster-plus-for-woocommerce.php' ) ||
|
35 |
+
wcj_is_plugin_activated( 'booster-elite-for-woocommerce', 'booster-elite-for-woocommerce.php' ) ||
|
36 |
+
wcj_is_plugin_activated( 'booster-basic-for-woocommerce', 'booster-basic-for-woocommerce.php' ) ||
|
37 |
+
wcj_is_plugin_activated( 'booster-pro-for-woocommerce', 'booster-pro-for-woocommerce.php' ) )
|
38 |
+
) {
|
39 |
return;
|
40 |
}
|
41 |
|
42 |
+
if ( ! defined( 'WCJ_FREE_PLUGIN_FILE' ) ) {
|
43 |
/**
|
44 |
+
* WCJ_FREE_PLUGIN_FILE.
|
45 |
*
|
46 |
+
* @since 5.6.1
|
47 |
*/
|
48 |
+
define( 'WCJ_FREE_PLUGIN_FILE', __FILE__ );
|
49 |
}
|
50 |
|
51 |
if ( ! class_exists( 'WC_Jetpack' ) ) :
|
59 |
*/
|
60 |
final class WC_Jetpack {
|
61 |
|
|
|
|
|
|
|
62 |
/**
|
63 |
* Booster for WooCommerce version.
|
64 |
*
|
65 |
* @var string
|
66 |
* @since 2.4.7
|
67 |
*/
|
68 |
+
public $version = '5.6.1';
|
69 |
|
70 |
/**
|
71 |
* The single instance of the class
|