Version Description
- 17/07/2017
- Dev -
WCJ_Module
-save_meta_box_validate_value()
added. - Dev - Manage Settings - "Use List Instead of Comma Separated Text for Products in Settings" option added (Supported modules: Product Info).
- Dev - Functions - Country -
wcj_get_country_flag_by_code()
- "No flag" added. - Dev - Shortcodes - General -
[wcj_site_url]
shortcode added. - Dev - PRODUCTS - Product Availability by Date - Initial module release.
- Fix - PRODUCTS - Product Availability by Time - Settings - Description fixed.
- Dev - PRODUCTS - Product Availability by Time - "Per Product" options added.
- Dev - SHIPPING & ORDERS - Shipping Options - Hide if Free Shipping is Available -
Hide all except "Local Pickup"
andHide "Flat Rate" only
options added. - Fix - EMAILS & MISC. - Admin Bar - Booster - Dashboard - Active - Submodules excluded from the list.
- Dev - EMAILS & MISC. - Admin Bar - Booster - Modules - Sorted by title.
- Dev - EMAILS & MISC. - Admin Tools - "WooCommerce Log" option added.
- Dev - EMAILS & MISC. - Custom Emails - Renamed from "Emails" module.
- Dev - EMAILS & MISC. - Custom JS - Shortcodes can now be used in custom JS.
- Dev - EMAILS & MISC. - Email Options - Initial module release (separated from "Emails" module).
- Dev - EMAILS & MISC. - General - "Track Users" section added. "Top countries by visits" admin dashboard widget added. "Track Orders" (i.e. "Save customer's acquisition source (i.e. HTTP referer) for orders") option added.
- Dev - EMAILS & MISC. - Reports - Orders - Monthly Sales (with Currency Conversion) - Monthly rates are set manually now.
- Dev - EMAILS & MISC. - Reports - Orders - Monthly Sales (with Currency Conversion) - "Forecast total orders and sum (excl. TAX) for current month" option added.
- Dev - EMAILS & MISC. - Reports - Orders - Monthly Sales (with Currency Conversion) - "Include current day for current month" option added.
- Dev - EMAILS & MISC. - Reports - Orders - Monthly Sales (with Currency Conversion) - "Orders by Currency" row added.
- Dev - EMAILS & MISC. - Reports - Orders - Monthly Sales (with Currency Conversion) - Code refactoring, cleanup etc.
- Dev - EMAILS & MISC. - Reports - Stock - "Total current stock purchase price" added.
- Dev - EMAILS & MISC. - Reports - Stock -
WP_Query
optimized to returnids
only. - Dev - EMAILS & MISC. - Reports - Stock - Code cleanup.
- Dev - EMAILS & MISC. - URL Coupons - "Redirect URL" options added.
- Dev - EMAILS & MISC. - URL Coupons - "Automatically add coupon's products to the cart" option added.
- Dev - EMAILS & MISC. - URL Coupons - Initial module release (separated from "General" module).
- Tweak - Flags images updated.
Download this release
Release Info
Developer | algoritmika |
Plugin | Booster for WooCommerce |
Version | 2.9.1 |
Comparing to | |
See all releases |
Code changes from version 2.9.0 to 2.9.1
- assets/images/flag-icons/ch.png +0 -0
- assets/images/flag-icons/im.png +0 -0
- assets/images/flag-icons/me.png +0 -0
- assets/images/flag-icons/no-flag.png +0 -0
- assets/images/flag-icons/np.png +0 -0
- includes/admin/class-wc-settings-jetpack.php +33 -20
- includes/admin/wcj-modules-cats.php +4 -1
- includes/class-wcj-admin-bar.php +13 -13
- includes/class-wcj-custom-js.php +5 -5
- includes/class-wcj-email-options.php +141 -0
- includes/class-wcj-emails.php +9 -124
- includes/class-wcj-general.php +348 -26
- includes/class-wcj-product-by-date.php +152 -0
- includes/class-wcj-product-by-time.php +41 -12
- includes/class-wcj-product-custom-info.php +4 -4
- includes/class-wcj-product-images.php +1 -0
- includes/class-wcj-reports.php +3 -3
- includes/class-wcj-shipping-options.php +40 -23
- includes/class-wcj-url-coupons.php +130 -0
- includes/classes/class-wcj-module.php +62 -1
- includes/functions/wcj-admin-functions.php +82 -1
- includes/functions/wcj-country-functions.php +5 -3
- includes/functions/wcj-date-time-functions.php +46 -1
- includes/functions/wcj-debug-functions.php +12 -4
- includes/functions/wcj-exchange-rates-functions.php +71 -1
- includes/js/wcj-track-users.js +19 -0
- includes/reports/wcj-class-reports-monthly-sales.php +136 -128
- includes/reports/wcj-class-reports-stock.php +125 -202
- includes/settings/meta-box/wcj-settings-meta-box-product-by-date.php +38 -0
- includes/settings/meta-box/wcj-settings-meta-box-product-by-time.php +38 -0
- includes/settings/wcj-settings-admin-tools.php +9 -2
- includes/settings/wcj-settings-email-options.php +39 -0
- includes/settings/wcj-settings-emails.php +2 -27
- includes/settings/wcj-settings-general.php +51 -29
- includes/settings/wcj-settings-product-by-date.php +97 -0
- includes/settings/wcj-settings-product-by-time.php +32 -6
- includes/settings/wcj-settings-product-custom-info.php +34 -24
- includes/settings/wcj-settings-reports.php +16 -2
- includes/settings/wcj-settings-shipping-options.php +16 -14
- includes/settings/wcj-settings-url-coupons.php +65 -0
- includes/shortcodes/class-wcj-general-shortcodes.php +13 -2
- langs/woocommerce-jetpack.pot +895 -619
- readme.txt +34 -2
- woocommerce-jetpack.php +7 -4
assets/images/flag-icons/ch.png
CHANGED
Binary file
|
assets/images/flag-icons/im.png
ADDED
Binary file
|
assets/images/flag-icons/me.png
CHANGED
Binary file
|
assets/images/flag-icons/no-flag.png
ADDED
Binary file
|
assets/images/flag-icons/np.png
CHANGED
Binary file
|
includes/admin/class-wc-settings-jetpack.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @since 1.0.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -227,7 +227,7 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
227 |
/**
|
228 |
* output_dashboard.
|
229 |
*
|
230 |
-
* @version 2.
|
231 |
*/
|
232 |
function output_dashboard( $current_section ) {
|
233 |
|
@@ -267,7 +267,6 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
267 |
} elseif ( 'active' === $current_section ) {
|
268 |
$this->output_dashboard_modules( $the_settings, 'active_modules_only' );
|
269 |
} elseif ( 'manager' === $current_section ) {
|
270 |
-
$autoload_settings = $this->get_autoload_settings();
|
271 |
$table_data = array(
|
272 |
array(
|
273 |
'<button style="width:100px;" class="button-primary" type="submit" name="booster_export_settings">' . __( 'Export', 'woocommerce-jetpack' ) . '</button>',
|
@@ -282,14 +281,17 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
282 |
'<button style="width:100px;" class="button-primary" type="submit" name="booster_reset_settings" onclick="return confirm(\'' . __( 'This will reset settings to defaults for all Booster modules. Are you sure?', 'woocommerce-jetpack' ) . '\')">' . __( 'Reset', 'woocommerce-jetpack' ) . '</button>',
|
283 |
'<em>' . __( 'Reset all Booster\'s options.', 'woocommerce-jetpack' ) . '</em>',
|
284 |
),
|
285 |
-
array(
|
286 |
-
'<label for="' . $autoload_settings['id'] . '">' .
|
287 |
-
'<input name="' . $autoload_settings['id'] . '" id="' . $autoload_settings['id'] . '" type="' . $autoload_settings['type'] . '" class="" value="1" ' . checked( get_option( $autoload_settings['id'], $autoload_settings['default'] ), 'yes', false ) . '>' .
|
288 |
-
' ' . '<strong>' . $autoload_settings['title'] . '</strong>' .
|
289 |
-
'</label>',
|
290 |
-
'<em>' . $autoload_settings['desc'] . '</em>',
|
291 |
-
),
|
292 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
293 |
echo wcj_get_table_html( $table_data, array( 'table_class' => 'widefat striped', 'table_heading_type' => 'none' ) );
|
294 |
}
|
295 |
|
@@ -392,33 +394,44 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
392 |
}
|
393 |
|
394 |
/**
|
395 |
-
*
|
396 |
*
|
397 |
-
* @version 2.
|
398 |
* @since 2.6.0
|
399 |
* @return array
|
400 |
*/
|
401 |
-
function
|
402 |
return array(
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
408 |
);
|
409 |
}
|
410 |
|
411 |
/**
|
412 |
* Get settings array
|
413 |
*
|
414 |
-
* @version 2.
|
415 |
* @return array
|
416 |
*/
|
417 |
function get_settings( $current_section = '' ) {
|
418 |
if ( '' != $current_section && 'alphabetically' != $current_section && 'by_category' != $current_section && 'active' != $current_section && 'manager' != $current_section ) {
|
419 |
return apply_filters( 'wcj_settings_' . $current_section, array() );
|
420 |
} elseif ( 'manager' === $current_section ) {
|
421 |
-
return
|
422 |
} else {
|
423 |
$cat_id = ( isset( $_GET['wcj-cat'] ) && '' != $_GET['wcj-cat'] ) ? $_GET['wcj-cat'] : 'dashboard';
|
424 |
$settings[] = array(
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 1.0.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
227 |
/**
|
228 |
* output_dashboard.
|
229 |
*
|
230 |
+
* @version 2.9.1
|
231 |
*/
|
232 |
function output_dashboard( $current_section ) {
|
233 |
|
267 |
} elseif ( 'active' === $current_section ) {
|
268 |
$this->output_dashboard_modules( $the_settings, 'active_modules_only' );
|
269 |
} elseif ( 'manager' === $current_section ) {
|
|
|
270 |
$table_data = array(
|
271 |
array(
|
272 |
'<button style="width:100px;" class="button-primary" type="submit" name="booster_export_settings">' . __( 'Export', 'woocommerce-jetpack' ) . '</button>',
|
281 |
'<button style="width:100px;" class="button-primary" type="submit" name="booster_reset_settings" onclick="return confirm(\'' . __( 'This will reset settings to defaults for all Booster modules. Are you sure?', 'woocommerce-jetpack' ) . '\')">' . __( 'Reset', 'woocommerce-jetpack' ) . '</button>',
|
282 |
'<em>' . __( 'Reset all Booster\'s options.', 'woocommerce-jetpack' ) . '</em>',
|
283 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
);
|
285 |
+
$manager_settings = $this->get_manager_settings();
|
286 |
+
foreach ( $manager_settings as $manager_settings_field ) {
|
287 |
+
$table_data[] = array(
|
288 |
+
'<label for="' . $manager_settings_field['id'] . '">' .
|
289 |
+
'<input name="' . $manager_settings_field['id'] . '" id="' . $manager_settings_field['id'] . '" type="' . $manager_settings_field['type'] . '" class="" value="1" ' . checked( get_option( $manager_settings_field['id'], $manager_settings_field['default'] ), 'yes', false ) . '>' .
|
290 |
+
' ' . '<strong>' . $manager_settings_field['title'] . '</strong>' .
|
291 |
+
'</label>',
|
292 |
+
'<em>' . $manager_settings_field['desc'] . '</em>',
|
293 |
+
);
|
294 |
+
}
|
295 |
echo wcj_get_table_html( $table_data, array( 'table_class' => 'widefat striped', 'table_heading_type' => 'none' ) );
|
296 |
}
|
297 |
|
394 |
}
|
395 |
|
396 |
/**
|
397 |
+
* get_manager_settings.
|
398 |
*
|
399 |
+
* @version 2.9.1
|
400 |
* @since 2.6.0
|
401 |
* @return array
|
402 |
*/
|
403 |
+
function get_manager_settings() {
|
404 |
return array(
|
405 |
+
array(
|
406 |
+
'title' => __( 'Autoload Booster\'s Options', 'woocommerce-jetpack' ),
|
407 |
+
'type' => 'checkbox',
|
408 |
+
'desc' => __( 'Choose if you want Booster\'s options to be autoloaded when calling add_option. After saving this option, you need to Reset all Booster\'s settings. Leave default value (i.e. Enabled) if not sure.', 'woocommerce-jetpack' ),
|
409 |
+
'id' => 'wcj_autoload_options',
|
410 |
+
'default' => 'yes',
|
411 |
+
),
|
412 |
+
array(
|
413 |
+
'title' => __( 'Use List Instead of Comma Separated Text for Products in Settings', 'woocommerce-jetpack' ),
|
414 |
+
'type' => 'checkbox',
|
415 |
+
'desc' => sprintf( __( 'Supported modules: %s.', 'woocommerce-jetpack' ), implode( ', ', array(
|
416 |
+
__( 'Product Info', 'woocommerce-jetpack' ),
|
417 |
+
) ) ),
|
418 |
+
'id' => 'wcj_list_for_products',
|
419 |
+
'default' => 'yes',
|
420 |
+
),
|
421 |
);
|
422 |
}
|
423 |
|
424 |
/**
|
425 |
* Get settings array
|
426 |
*
|
427 |
+
* @version 2.9.1
|
428 |
* @return array
|
429 |
*/
|
430 |
function get_settings( $current_section = '' ) {
|
431 |
if ( '' != $current_section && 'alphabetically' != $current_section && 'by_category' != $current_section && 'active' != $current_section && 'manager' != $current_section ) {
|
432 |
return apply_filters( 'wcj_settings_' . $current_section, array() );
|
433 |
} elseif ( 'manager' === $current_section ) {
|
434 |
+
return $this->get_manager_settings();
|
435 |
} else {
|
436 |
$cat_id = ( isset( $_GET['wcj-cat'] ) && '' != $_GET['wcj-cat'] ) ? $_GET['wcj-cat'] : 'dashboard';
|
437 |
$settings[] = array(
|
includes/admin/wcj-modules-cats.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Modules Array.
|
6 |
*
|
7 |
-
* @version 2.9.
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -78,6 +78,7 @@ return array(
|
|
78 |
'product_by_country',
|
79 |
'product_by_user_role',
|
80 |
'product_by_time',
|
|
|
81 |
'product_by_user',
|
82 |
'products_xml',
|
83 |
'product_bulk_meta_editor',
|
@@ -157,6 +158,7 @@ return array(
|
|
157 |
'all_cat_ids' => array(
|
158 |
'general',
|
159 |
'breadcrumbs',
|
|
|
160 |
'admin_bar',
|
161 |
'export',
|
162 |
'my_account',
|
@@ -164,6 +166,7 @@ return array(
|
|
164 |
'reports',
|
165 |
'admin_tools',
|
166 |
'emails',
|
|
|
167 |
'emails_verification',
|
168 |
'wpml',
|
169 |
'custom_css',
|
4 |
*
|
5 |
* The WooCommerce Modules Array.
|
6 |
*
|
7 |
+
* @version 2.9.1
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
78 |
'product_by_country',
|
79 |
'product_by_user_role',
|
80 |
'product_by_time',
|
81 |
+
'product_by_date',
|
82 |
'product_by_user',
|
83 |
'products_xml',
|
84 |
'product_bulk_meta_editor',
|
158 |
'all_cat_ids' => array(
|
159 |
'general',
|
160 |
'breadcrumbs',
|
161 |
+
'url_coupons',
|
162 |
'admin_bar',
|
163 |
'export',
|
164 |
'my_account',
|
166 |
'reports',
|
167 |
'admin_tools',
|
168 |
'emails',
|
169 |
+
'email_options',
|
170 |
'emails_verification',
|
171 |
'wpml',
|
172 |
'custom_css',
|
includes/class-wcj-admin-bar.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Admin Bar
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -117,7 +117,7 @@ class WCJ_Admin_Bar extends WCJ_Module {
|
|
117 |
/**
|
118 |
* get_nodes_booster_modules.
|
119 |
*
|
120 |
-
* @version 2.9.
|
121 |
* @since 2.9.0
|
122 |
* @todo (maybe) dashes instead of underscores
|
123 |
* @todo (maybe) dashboard > alphabetically - list all modules
|
@@ -153,11 +153,12 @@ class WCJ_Admin_Bar extends WCJ_Module {
|
|
153 |
),
|
154 |
);
|
155 |
} else {
|
|
|
156 |
foreach ( $label_info['all_cat_ids'] as $link_id ) {
|
157 |
if ( wcj_is_module_deprecated( $link_id, false, true ) ) {
|
158 |
continue;
|
159 |
}
|
160 |
-
$
|
161 |
'title' => WCJ()->modules[ $link_id ]->short_desc,
|
162 |
'href' => admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=' . $id . '§ion=' . $link_id ),
|
163 |
'meta' => array( 'title' => WCJ()->modules[ $link_id ]->desc ),
|
@@ -173,10 +174,12 @@ class WCJ_Admin_Bar extends WCJ_Module {
|
|
173 |
),
|
174 |
),
|
175 |
);
|
176 |
-
if ( WCJ()->modules[ $link_id ]->is_enabled() ) {
|
177 |
-
$active_modules[ $link_id ] = $
|
178 |
}
|
179 |
}
|
|
|
|
|
180 |
}
|
181 |
}
|
182 |
if ( ! empty( $active_modules ) ) {
|
@@ -189,14 +192,11 @@ class WCJ_Admin_Bar extends WCJ_Module {
|
|
189 |
/**
|
190 |
* usort_compare_by_title.
|
191 |
*
|
192 |
-
* @version 2.9.
|
193 |
* @since 2.9.0
|
194 |
*/
|
195 |
function usort_compare_by_title( $a, $b ) {
|
196 |
-
|
197 |
-
return 0;
|
198 |
-
}
|
199 |
-
return ( $a['title'] < $b['title'] ) ? -1 : 1;
|
200 |
}
|
201 |
|
202 |
/**
|
@@ -229,7 +229,7 @@ class WCJ_Admin_Bar extends WCJ_Module {
|
|
229 |
/**
|
230 |
* add_booster_admin_bar.
|
231 |
*
|
232 |
-
* @version 2.9.
|
233 |
* @since 2.9.0
|
234 |
*/
|
235 |
function add_booster_admin_bar( $wp_admin_bar ) {
|
@@ -241,8 +241,8 @@ class WCJ_Admin_Bar extends WCJ_Module {
|
|
241 |
'title' => __( 'Booster - Settings', 'woocommerce-jetpack' ),
|
242 |
),
|
243 |
'nodes' => array(
|
244 |
-
'
|
245 |
-
'title' => __( '
|
246 |
'href' => admin_url( 'admin.php?page=wc-settings&tab=jetpack' ),
|
247 |
'nodes' => $this->get_nodes_booster_modules(),
|
248 |
),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Admin Bar
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
117 |
/**
|
118 |
* get_nodes_booster_modules.
|
119 |
*
|
120 |
+
* @version 2.9.1
|
121 |
* @since 2.9.0
|
122 |
* @todo (maybe) dashes instead of underscores
|
123 |
* @todo (maybe) dashboard > alphabetically - list all modules
|
153 |
),
|
154 |
);
|
155 |
} else {
|
156 |
+
$cat_nodes = array();
|
157 |
foreach ( $label_info['all_cat_ids'] as $link_id ) {
|
158 |
if ( wcj_is_module_deprecated( $link_id, false, true ) ) {
|
159 |
continue;
|
160 |
}
|
161 |
+
$cat_nodes[ $link_id ] = array(
|
162 |
'title' => WCJ()->modules[ $link_id ]->short_desc,
|
163 |
'href' => admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=' . $id . '§ion=' . $link_id ),
|
164 |
'meta' => array( 'title' => WCJ()->modules[ $link_id ]->desc ),
|
174 |
),
|
175 |
),
|
176 |
);
|
177 |
+
if ( WCJ()->modules[ $link_id ]->is_enabled() && 'module' === WCJ()->modules[ $link_id ]->type ) {
|
178 |
+
$active_modules[ $link_id ] = $cat_nodes[ $link_id ];
|
179 |
}
|
180 |
}
|
181 |
+
usort( $cat_nodes, array( $this, 'usort_compare_by_title' ) );
|
182 |
+
$nodes[ $id ]['nodes'] = $cat_nodes;
|
183 |
}
|
184 |
}
|
185 |
if ( ! empty( $active_modules ) ) {
|
192 |
/**
|
193 |
* usort_compare_by_title.
|
194 |
*
|
195 |
+
* @version 2.9.1
|
196 |
* @since 2.9.0
|
197 |
*/
|
198 |
function usort_compare_by_title( $a, $b ) {
|
199 |
+
return strcasecmp( $a['title'], $b['title'] );
|
|
|
|
|
|
|
200 |
}
|
201 |
|
202 |
/**
|
229 |
/**
|
230 |
* add_booster_admin_bar.
|
231 |
*
|
232 |
+
* @version 2.9.1
|
233 |
* @since 2.9.0
|
234 |
*/
|
235 |
function add_booster_admin_bar( $wp_admin_bar ) {
|
241 |
'title' => __( 'Booster - Settings', 'woocommerce-jetpack' ),
|
242 |
),
|
243 |
'nodes' => array(
|
244 |
+
'modules' => array(
|
245 |
+
'title' => __( 'Modules', 'woocommerce-jetpack' ),
|
246 |
'href' => admin_url( 'admin.php?page=wc-settings&tab=jetpack' ),
|
247 |
'nodes' => $this->get_nodes_booster_modules(),
|
248 |
),
|
includes/class-wcj-custom-js.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Custom JS
|
4 |
*
|
5 |
-
* @version 2.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -43,21 +43,21 @@ class WCJ_Custom_JS extends WCJ_Module {
|
|
43 |
/**
|
44 |
* custom_frontend_js.
|
45 |
*
|
46 |
-
* @version 2.
|
47 |
* @since 2.8.0
|
48 |
*/
|
49 |
function custom_frontend_js() {
|
50 |
-
echo '<script>' . get_option( 'wcj_custom_js_frontend', '' ) . '</script>';
|
51 |
}
|
52 |
|
53 |
/**
|
54 |
* custom_backend_js.
|
55 |
*
|
56 |
-
* @version 2.
|
57 |
* @since 2.8.0
|
58 |
*/
|
59 |
function custom_backend_js() {
|
60 |
-
echo '<script>' . get_option( 'wcj_custom_js_backend', '' ) . '</script>';
|
61 |
}
|
62 |
|
63 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Custom JS
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
43 |
/**
|
44 |
* custom_frontend_js.
|
45 |
*
|
46 |
+
* @version 2.9.1
|
47 |
* @since 2.8.0
|
48 |
*/
|
49 |
function custom_frontend_js() {
|
50 |
+
echo '<script>' . do_shortcode( get_option( 'wcj_custom_js_frontend', '' ) ) . '</script>';
|
51 |
}
|
52 |
|
53 |
/**
|
54 |
* custom_backend_js.
|
55 |
*
|
56 |
+
* @version 2.9.1
|
57 |
* @since 2.8.0
|
58 |
*/
|
59 |
function custom_backend_js() {
|
60 |
+
echo '<script>' . do_shortcode( get_option( 'wcj_custom_js_backend', '' ) ) . '</script>';
|
61 |
}
|
62 |
|
63 |
}
|
includes/class-wcj-email-options.php
ADDED
@@ -0,0 +1,141 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Booster for WooCommerce - Module - Email Options
|
4 |
+
*
|
5 |
+
* @version 2.9.1
|
6 |
+
* @since 2.9.1
|
7 |
+
* @author Algoritmika Ltd.
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
+
|
12 |
+
if ( ! class_exists( 'WCJ_Email_Options' ) ) :
|
13 |
+
|
14 |
+
class WCJ_Email_Options extends WCJ_Module {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Constructor.
|
18 |
+
*
|
19 |
+
* @version 2.9.1
|
20 |
+
* @since 2.9.1
|
21 |
+
* @todo meta customizer - check "gravity-forms-emails-woocommerce" plugin
|
22 |
+
*/
|
23 |
+
function __construct() {
|
24 |
+
|
25 |
+
$this->id = 'email_options';
|
26 |
+
$this->short_desc = __( 'Email Options', 'woocommerce-jetpack' );
|
27 |
+
$this->desc = __( 'WooCommerce email options. E.g.: add another email recipient(s) to all WooCommerce emails.', 'woocommerce-jetpack' );
|
28 |
+
$this->link_slug = 'woocommerce-email-options';
|
29 |
+
parent::__construct();
|
30 |
+
|
31 |
+
if ( $this->is_enabled() ) {
|
32 |
+
// Email Forwarding
|
33 |
+
if ( '' != get_option( 'wcj_emails_bcc_email', '' ) ) {
|
34 |
+
add_filter( 'woocommerce_email_headers', array( $this, 'add_bcc_email' ) );
|
35 |
+
}
|
36 |
+
if ( '' != get_option( 'wcj_emails_cc_email', '' ) ) {
|
37 |
+
add_filter( 'woocommerce_email_headers', array( $this, 'add_cc_email' ) );
|
38 |
+
}
|
39 |
+
// Product Info
|
40 |
+
if ( 'yes' === get_option( 'wcj_product_info_in_email_order_item_name_enabled', 'no' ) ) {
|
41 |
+
add_filter( 'woocommerce_order_item_name', array( $this, 'add_product_info_to_email_order_item_name' ), PHP_INT_MAX, 2 );
|
42 |
+
}
|
43 |
+
// Settings
|
44 |
+
add_filter( 'woocommerce_email_settings', array( $this, 'add_email_forwarding_fields_to_wc_standard_settings' ), PHP_INT_MAX );
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* add_product_info_to_email_order_item_name.
|
50 |
+
*
|
51 |
+
* @version 2.7.0
|
52 |
+
* @since 2.7.0
|
53 |
+
*/
|
54 |
+
function add_product_info_to_email_order_item_name( $item_name, $item ) {
|
55 |
+
if ( $item['product_id'] ) {
|
56 |
+
global $post;
|
57 |
+
$post = get_post( $item['product_id'] );
|
58 |
+
setup_postdata( $post );
|
59 |
+
$item_name .= do_shortcode( get_option( 'wcj_product_info_in_email_order_item_name', '[wcj_product_categories strip_tags="yes" before="<hr><em>" after="</em>"]' ) );
|
60 |
+
wp_reset_postdata();
|
61 |
+
}
|
62 |
+
return $item_name;
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Add another email recipient to all WooCommerce emails.
|
67 |
+
*
|
68 |
+
* @version 2.9.1
|
69 |
+
*/
|
70 |
+
function add_bcc_email( $email_headers ) {
|
71 |
+
return $email_headers . "Bcc: " . get_option( 'wcj_emails_bcc_email', '' ) . "\r\n";
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Add another email recipient to all WooCommerce emails.
|
76 |
+
*
|
77 |
+
* @version 2.9.1
|
78 |
+
*/
|
79 |
+
function add_cc_email( $email_headers ) {
|
80 |
+
return $email_headers . "Cc: " . get_option( 'wcj_emails_cc_email', '' ) . "\r\n";
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* get_emails_forwarding_settings.
|
85 |
+
*
|
86 |
+
* @version 2.3.9
|
87 |
+
* @since 2.3.9
|
88 |
+
*/
|
89 |
+
function get_emails_forwarding_settings( $extended_title = false ) {
|
90 |
+
return array(
|
91 |
+
array(
|
92 |
+
'title' => ( $extended_title ) ?
|
93 |
+
__( 'Booster: Email Forwarding Options', 'woocommerce-jetpack' ) :
|
94 |
+
__( 'Email Forwarding Options', 'woocommerce-jetpack' ),
|
95 |
+
'type' => 'title',
|
96 |
+
'desc' => __( 'This section lets you add another email recipient(s) to all WooCommerce emails. Leave blank to disable.', 'woocommerce-jetpack' ),
|
97 |
+
'id' => 'wcj_emails_forwarding_options',
|
98 |
+
),
|
99 |
+
array(
|
100 |
+
'title' => __( 'Cc Email', 'woocommerce-jetpack' ),
|
101 |
+
'desc_tip' => __( 'Cc to email, e.g. youremail@yourdomain.com. Leave blank to disable.', 'woocommerce-jetpack' ),
|
102 |
+
'id' => 'wcj_emails_cc_email',
|
103 |
+
'default' => '',
|
104 |
+
'type' => 'text',
|
105 |
+
),
|
106 |
+
array(
|
107 |
+
'title' => __( 'Bcc Email', 'woocommerce-jetpack' ),
|
108 |
+
'desc_tip' => __( 'Bcc to email, e.g. youremail@yourdomain.com. Leave blank to disable.', 'woocommerce-jetpack' ),
|
109 |
+
'id' => 'wcj_emails_bcc_email',
|
110 |
+
'default' => '',
|
111 |
+
'type' => 'text',
|
112 |
+
),
|
113 |
+
array(
|
114 |
+
'type' => 'sectionend',
|
115 |
+
'id' => 'wcj_emails_forwarding_options',
|
116 |
+
),
|
117 |
+
);
|
118 |
+
}
|
119 |
+
|
120 |
+
/**
|
121 |
+
* add_email_forwarding_fields_to_wc_standard_settings.
|
122 |
+
*
|
123 |
+
* @version 2.3.9
|
124 |
+
* @todo (maybe) remove this completely (and then move `get_emails_forwarding_settings()` to settings file)
|
125 |
+
*/
|
126 |
+
function add_email_forwarding_fields_to_wc_standard_settings( $settings ) {
|
127 |
+
$updated_settings = array();
|
128 |
+
foreach ( $settings as $section ) {
|
129 |
+
if ( isset( $section['id'] ) && 'email_template_options' == $section['id'] && isset( $section['type'] ) && 'title' == $section['type'] ) {
|
130 |
+
$updated_settings = array_merge( $updated_settings, $this->get_emails_forwarding_settings( true ) );
|
131 |
+
}
|
132 |
+
$updated_settings[] = $section;
|
133 |
+
}
|
134 |
+
return $updated_settings;
|
135 |
+
}
|
136 |
+
|
137 |
+
}
|
138 |
+
|
139 |
+
endif;
|
140 |
+
|
141 |
+
return new WCJ_Email_Options();
|
includes/class-wcj-emails.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Emails
|
4 |
*
|
5 |
-
* @version 2.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -15,80 +15,33 @@ class WCJ_Emails extends WCJ_Module {
|
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
-
* @version 2.
|
19 |
-
* @todo meta customizer - check "gravity-forms-emails-woocommerce" plugin
|
20 |
*/
|
21 |
function __construct() {
|
22 |
|
23 |
$this->id = 'emails';
|
24 |
-
$this->short_desc = __( 'Emails', 'woocommerce-jetpack' );
|
25 |
-
$this->desc = __( 'Add custom emails
|
26 |
-
$this->link_slug = 'woocommerce-emails';
|
27 |
parent::__construct();
|
28 |
|
29 |
if ( $this->is_enabled() ) {
|
30 |
// Custom Emails
|
31 |
-
add_filter( 'woocommerce_email_actions',
|
32 |
-
add_filter( 'woocommerce_email_classes',
|
33 |
add_filter( 'woocommerce_resend_order_emails_available', array( $this, 'add_custom_emails_to_wc_resend_order_emails' ) );
|
34 |
-
// Email Forwarding
|
35 |
-
if ( '' != get_option( 'wcj_emails_bcc_email' ) ) {
|
36 |
-
add_filter( 'woocommerce_email_headers', array( $this, 'add_bcc_email' ) );
|
37 |
-
}
|
38 |
-
if ( '' != get_option( 'wcj_emails_cc_email' ) ) {
|
39 |
-
add_filter( 'woocommerce_email_headers', array( $this, 'add_cc_email' ) );
|
40 |
-
}
|
41 |
-
// Product Info
|
42 |
-
if ( 'yes' === get_option( 'wcj_product_info_in_email_order_item_name_enabled', 'no' ) ) {
|
43 |
-
add_filter( 'woocommerce_order_item_name', array( $this, 'add_product_info_to_email_order_item_name' ), PHP_INT_MAX, 2 );
|
44 |
-
}
|
45 |
-
// Settings
|
46 |
-
add_filter( 'woocommerce_email_settings', array( $this, 'add_email_forwarding_fields_to_wc_standard_settings' ), PHP_INT_MAX );
|
47 |
-
}
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* add_product_info_to_email_order_item_name.
|
52 |
-
*
|
53 |
-
* @version 2.7.0
|
54 |
-
* @since 2.7.0
|
55 |
-
*/
|
56 |
-
function add_product_info_to_email_order_item_name( $item_name, $item ) {
|
57 |
-
if ( $item['product_id'] ) {
|
58 |
-
global $post;
|
59 |
-
$post = get_post( $item['product_id'] );
|
60 |
-
setup_postdata( $post );
|
61 |
-
$item_name .= do_shortcode( get_option( 'wcj_product_info_in_email_order_item_name', '[wcj_product_categories strip_tags="yes" before="<hr><em>" after="</em>"]' ) );
|
62 |
-
wp_reset_postdata();
|
63 |
}
|
64 |
-
return $item_name;
|
65 |
-
}
|
66 |
-
|
67 |
-
/**
|
68 |
-
* get_order_statuses.
|
69 |
-
*
|
70 |
-
* @version 2.4.8
|
71 |
-
* @since 2.4.8
|
72 |
-
* @todo use global wcj function
|
73 |
-
*/
|
74 |
-
function get_order_statuses() {
|
75 |
-
$result = array();
|
76 |
-
$statuses = function_exists( 'wc_get_order_statuses' ) ? wc_get_order_statuses() : array();
|
77 |
-
foreach( $statuses as $status => $status_name ) {
|
78 |
-
$result[ substr( $status, 3 ) ] = $statuses[ $status ];
|
79 |
-
}
|
80 |
-
return $result;
|
81 |
}
|
82 |
|
83 |
/**
|
84 |
* add_custom_woocommerce_email_actions.
|
85 |
*
|
86 |
-
* @version 2.
|
87 |
* @since 2.4.5
|
88 |
*/
|
89 |
function add_custom_woocommerce_email_actions( $email_actions ) {
|
90 |
$email_actions[] = 'woocommerce_checkout_order_processed';
|
91 |
-
$order_statuses =
|
92 |
foreach ( $order_statuses as $slug => $name ) {
|
93 |
$email_actions[] = 'woocommerce_order_status_' . $slug;
|
94 |
foreach ( $order_statuses as $slug2 => $name2 ) {
|
@@ -129,74 +82,6 @@ class WCJ_Emails extends WCJ_Module {
|
|
129 |
return $emails;
|
130 |
}
|
131 |
|
132 |
-
/**
|
133 |
-
* Add another email recipient to all WooCommerce emails
|
134 |
-
*/
|
135 |
-
function add_bcc_email( $email_headers ) {
|
136 |
-
return $email_headers . "Bcc: " . get_option( 'wcj_emails_bcc_email' ) . "\r\n";
|
137 |
-
}
|
138 |
-
|
139 |
-
/**
|
140 |
-
* Add another email recipient to all WooCommerce emails
|
141 |
-
*/
|
142 |
-
function add_cc_email( $email_headers ) {
|
143 |
-
return $email_headers . "Cc: " . get_option( 'wcj_emails_cc_email' ) . "\r\n";
|
144 |
-
}
|
145 |
-
|
146 |
-
/**
|
147 |
-
* get_emails_forwarding_settings.
|
148 |
-
*
|
149 |
-
* @version 2.3.9
|
150 |
-
* @since 2.3.9
|
151 |
-
*/
|
152 |
-
function get_emails_forwarding_settings( $extended_title = false ) {
|
153 |
-
return array(
|
154 |
-
array(
|
155 |
-
'title' => ( $extended_title ) ?
|
156 |
-
__( 'Booster: Email Forwarding Options', 'woocommerce-jetpack' ) :
|
157 |
-
__( 'Email Forwarding Options', 'woocommerce-jetpack' ),
|
158 |
-
'type' => 'title',
|
159 |
-
'desc' => __( 'This section lets you add another email recipient(s) to all WooCommerce emails. Leave blank to disable.', 'woocommerce-jetpack' ),
|
160 |
-
'id' => 'wcj_emails_forwarding_options',
|
161 |
-
),
|
162 |
-
array(
|
163 |
-
'title' => __( 'Cc Email', 'woocommerce-jetpack' ),
|
164 |
-
'desc_tip' => __( 'Cc to email, e.g. youremail@yourdomain.com. Leave blank to disable.', 'woocommerce-jetpack' ),
|
165 |
-
'id' => 'wcj_emails_cc_email',
|
166 |
-
'default' => '',
|
167 |
-
'type' => 'text',
|
168 |
-
),
|
169 |
-
array(
|
170 |
-
'title' => __( 'Bcc Email', 'woocommerce-jetpack' ),
|
171 |
-
'desc_tip' => __( 'Bcc to email, e.g. youremail@yourdomain.com. Leave blank to disable.', 'woocommerce-jetpack' ),
|
172 |
-
'id' => 'wcj_emails_bcc_email',
|
173 |
-
'default' => '',
|
174 |
-
'type' => 'text',
|
175 |
-
),
|
176 |
-
array(
|
177 |
-
'type' => 'sectionend',
|
178 |
-
'id' => 'wcj_emails_forwarding_options',
|
179 |
-
),
|
180 |
-
);
|
181 |
-
}
|
182 |
-
|
183 |
-
/**
|
184 |
-
* add_email_forwarding_fields_to_wc_standard_settings.
|
185 |
-
*
|
186 |
-
* @version 2.3.9
|
187 |
-
* @todo (maybe) remove this completely (and then move `get_emails_forwarding_settings()` to settings file)
|
188 |
-
*/
|
189 |
-
function add_email_forwarding_fields_to_wc_standard_settings( $settings ) {
|
190 |
-
$updated_settings = array();
|
191 |
-
foreach ( $settings as $section ) {
|
192 |
-
if ( isset( $section['id'] ) && 'email_template_options' == $section['id'] && isset( $section['type'] ) && 'title' == $section['type'] ) {
|
193 |
-
$updated_settings = array_merge( $updated_settings, $this->get_emails_forwarding_settings( true ) );
|
194 |
-
}
|
195 |
-
$updated_settings[] = $section;
|
196 |
-
}
|
197 |
-
return $updated_settings;
|
198 |
-
}
|
199 |
-
|
200 |
}
|
201 |
|
202 |
endif;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Emails
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
+
* @version 2.9.1
|
|
|
19 |
*/
|
20 |
function __construct() {
|
21 |
|
22 |
$this->id = 'emails';
|
23 |
+
$this->short_desc = __( 'Custom Emails', 'woocommerce-jetpack' );
|
24 |
+
$this->desc = __( 'Add custom emails to WooCommerce.', 'woocommerce-jetpack' );
|
25 |
+
$this->link_slug = 'woocommerce-custom-emails';
|
26 |
parent::__construct();
|
27 |
|
28 |
if ( $this->is_enabled() ) {
|
29 |
// Custom Emails
|
30 |
+
add_filter( 'woocommerce_email_actions', array( $this, 'add_custom_woocommerce_email_actions' ) );
|
31 |
+
add_filter( 'woocommerce_email_classes', array( $this, 'add_custom_emails_to_wc' ) );
|
32 |
add_filter( 'woocommerce_resend_order_emails_available', array( $this, 'add_custom_emails_to_wc_resend_order_emails' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
* add_custom_woocommerce_email_actions.
|
38 |
*
|
39 |
+
* @version 2.9.1
|
40 |
* @since 2.4.5
|
41 |
*/
|
42 |
function add_custom_woocommerce_email_actions( $email_actions ) {
|
43 |
$email_actions[] = 'woocommerce_checkout_order_processed';
|
44 |
+
$order_statuses = wcj_get_order_statuses_v2();
|
45 |
foreach ( $order_statuses as $slug => $name ) {
|
46 |
$email_actions[] = 'woocommerce_order_status_' . $slug;
|
47 |
foreach ( $order_statuses as $slug2 => $name2 ) {
|
82 |
return $emails;
|
83 |
}
|
84 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
}
|
86 |
|
87 |
endif;
|
includes/class-wcj-general.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - General
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -15,7 +15,7 @@ class WCJ_General extends WCJ_Module {
|
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
-
* @version 2.9.
|
19 |
*/
|
20 |
function __construct() {
|
21 |
|
@@ -37,6 +37,14 @@ class WCJ_General extends WCJ_Module {
|
|
37 |
),
|
38 |
) );
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
if ( $this->is_enabled() ) {
|
41 |
|
42 |
// Recalculate cart totals
|
@@ -67,17 +75,350 @@ class WCJ_General extends WCJ_Module {
|
|
67 |
add_filter( 'wc_session_expiration', array( $this, 'change_session_expiration' ), PHP_INT_MAX );
|
68 |
}
|
69 |
|
70 |
-
// URL Coupons
|
71 |
-
if ( 'yes' === get_option( 'wcj_url_coupons_enabled', 'no' ) ) {
|
72 |
-
add_action( 'wp_loaded', array( $this, 'maybe_apply_url_coupon' ), PHP_INT_MAX );
|
73 |
-
}
|
74 |
-
|
75 |
// Booster role user changer
|
76 |
if ( wcj_is_booster_role_changer_enabled() ) {
|
77 |
add_action( 'admin_bar_menu', array( $this, 'add_user_role_changer' ), PHP_INT_MAX );
|
78 |
add_action( 'init', array( $this, 'change_user_role_meta' ) );
|
79 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
}
|
82 |
|
83 |
/**
|
@@ -142,25 +483,6 @@ class WCJ_General extends WCJ_Module {
|
|
142 |
}
|
143 |
}
|
144 |
|
145 |
-
/**
|
146 |
-
* maybe_apply_url_coupon.
|
147 |
-
*
|
148 |
-
* @version 2.7.0
|
149 |
-
* @since 2.7.0
|
150 |
-
* @todo (maybe) predefined $arg_key
|
151 |
-
* @todo (maybe) additional $_GET['coupon_code']
|
152 |
-
* @todo (maybe) if ( ! WC()->cart->has_discount( $coupon_code ) ) {}
|
153 |
-
*/
|
154 |
-
function maybe_apply_url_coupon() {
|
155 |
-
$arg_key = get_option( 'wcj_url_coupons_key', 'wcj_apply_coupon' );
|
156 |
-
if ( isset( $_GET[ $arg_key ] ) && '' != $_GET[ $arg_key ] ) {
|
157 |
-
$coupon_code = sanitize_text_field( $_GET[ $arg_key ] );
|
158 |
-
WC()->cart->add_discount( $coupon_code );
|
159 |
-
wp_safe_redirect( remove_query_arg( $arg_key ) );
|
160 |
-
exit;
|
161 |
-
}
|
162 |
-
}
|
163 |
-
|
164 |
/**
|
165 |
* change_session_expiring.
|
166 |
*
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - General
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
+
* @version 2.9.1
|
19 |
*/
|
20 |
function __construct() {
|
21 |
|
37 |
),
|
38 |
) );
|
39 |
|
40 |
+
// By country scopes
|
41 |
+
$this->track_users_scopes = array(
|
42 |
+
'1' => __( 'Last 24 hours', 'woocommerce-jetpack' ),
|
43 |
+
'7' => __( 'Last 7 days', 'woocommerce-jetpack' ),
|
44 |
+
'28' => __( 'Last 28 days', 'woocommerce-jetpack' ),
|
45 |
+
'all_time' => __( 'All time', 'woocommerce-jetpack' ),
|
46 |
+
);
|
47 |
+
|
48 |
if ( $this->is_enabled() ) {
|
49 |
|
50 |
// Recalculate cart totals
|
75 |
add_filter( 'wc_session_expiration', array( $this, 'change_session_expiration' ), PHP_INT_MAX );
|
76 |
}
|
77 |
|
|
|
|
|
|
|
|
|
|
|
78 |
// Booster role user changer
|
79 |
if ( wcj_is_booster_role_changer_enabled() ) {
|
80 |
add_action( 'admin_bar_menu', array( $this, 'add_user_role_changer' ), PHP_INT_MAX );
|
81 |
add_action( 'init', array( $this, 'change_user_role_meta' ) );
|
82 |
}
|
83 |
+
|
84 |
+
// Track users
|
85 |
+
if ( 'yes' === get_option( 'wcj_track_users_enabled', 'no' ) ) {
|
86 |
+
// User tracking
|
87 |
+
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_track_users_script' ) );
|
88 |
+
add_action( 'wp_ajax_' . 'wcj_track_users', array( $this, 'track_users' ) );
|
89 |
+
add_action( 'wp_ajax_nopriv_' . 'wcj_track_users', array( $this, 'track_users' ) );
|
90 |
+
// Stats in dashboard widgets
|
91 |
+
if ( 'yes' === get_option( 'wcj_track_users_by_country_widget_enabled', 'yes' ) ) {
|
92 |
+
add_action( 'wp_dashboard_setup', array( $this, 'add_track_users_dashboard_widgets' ) );
|
93 |
+
add_action( 'admin_init', array( $this, 'maybe_delete_track_users_stats' ) );
|
94 |
+
add_action( 'admin_init', array( $this, 'track_users_update_county_stats' ) );
|
95 |
+
}
|
96 |
+
// Order tracking
|
97 |
+
if ( 'yes' === apply_filters( 'booster_get_option', 'no', get_option( 'wcj_track_users_save_order_http_referer_enabled', 'no' ) ) ) {
|
98 |
+
add_action( 'woocommerce_new_order', array( $this, 'add_http_referer_to_order' ) );
|
99 |
+
add_action( 'add_meta_boxes', array( $this, 'add_http_referer_order_meta_box' ) );
|
100 |
+
}
|
101 |
+
// Cron
|
102 |
+
add_action( 'init', array( $this, 'track_users_schedule_the_event' ) );
|
103 |
+
add_action( 'admin_init', array( $this, 'track_users_schedule_the_event' ) );
|
104 |
+
add_action( 'wcj_track_users_generate_stats', array( $this, 'track_users_generate_stats_cron' ) );
|
105 |
+
}
|
106 |
+
}
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* track_users_update_county_stats.
|
111 |
+
*
|
112 |
+
* @version 2.9.1
|
113 |
+
* @since 2.9.1
|
114 |
+
* @todo (maybe) `wp_nonce`
|
115 |
+
*/
|
116 |
+
function track_users_update_county_stats() {
|
117 |
+
if ( isset( $_GET['wcj_track_users_update_county_stats'] ) ) {
|
118 |
+
$this->track_users_generate_stats_cron();
|
119 |
+
wp_safe_redirect( remove_query_arg( 'wcj_track_users_update_county_stats' ) );
|
120 |
+
exit;
|
121 |
+
}
|
122 |
+
}
|
123 |
+
|
124 |
+
/**
|
125 |
+
* track_users_schedule_the_event.
|
126 |
+
*
|
127 |
+
* @version 2.9.1
|
128 |
+
* @since 2.9.1
|
129 |
+
* @todo (maybe) customizable interval
|
130 |
+
* @todo (maybe) separate events for all time, last 28 days, last 7 days, last 24 hours
|
131 |
+
*/
|
132 |
+
function track_users_schedule_the_event() {
|
133 |
+
$event_timestamp = wp_next_scheduled( 'wcj_track_users_generate_stats', array( 'hourly' ) );
|
134 |
+
update_option( 'wcj_track_users_cron_time_schedule', $event_timestamp );
|
135 |
+
if ( ! $event_timestamp ) {
|
136 |
+
wp_schedule_event( time(), 'hourly', 'wcj_track_users_generate_stats', array( 'hourly' ) );
|
137 |
+
}
|
138 |
+
}
|
139 |
+
|
140 |
+
/**
|
141 |
+
* track_users_generate_stats_cron.
|
142 |
+
*
|
143 |
+
* @version 2.9.1
|
144 |
+
* @since 2.9.1
|
145 |
+
*/
|
146 |
+
function track_users_generate_stats_cron( $interval ) {
|
147 |
+
update_option( 'wcj_track_users_cron_time_last_run', time() );
|
148 |
+
$stats = get_option( 'wcj_track_users_stats_by_country', array() );
|
149 |
+
foreach ( $this->track_users_scopes as $scope => $scope_title ) {
|
150 |
+
$stats[ $scope ] = $this->generate_track_users_stats_by_country( $scope );
|
151 |
+
}
|
152 |
+
update_option( 'wcj_track_users_stats_by_country', $stats );
|
153 |
+
}
|
154 |
+
|
155 |
+
/**
|
156 |
+
* add_http_referer_order_meta_box.
|
157 |
+
*
|
158 |
+
* @version 2.9.1
|
159 |
+
* @since 2.9.1
|
160 |
+
*/
|
161 |
+
function add_http_referer_order_meta_box() {
|
162 |
+
add_meta_box(
|
163 |
+
'wc-jetpack-' . $this->id,
|
164 |
+
__( 'Booster', 'woocommerce-jetpack' ) . ': ' . __( 'Acquisition Source', 'woocommerce-jetpack' ),
|
165 |
+
array( $this, 'create_http_referer_order_meta_box' ),
|
166 |
+
'shop_order',
|
167 |
+
'side',
|
168 |
+
'low'
|
169 |
+
);
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* get_referer_type.
|
174 |
+
*
|
175 |
+
* @version 2.9.1
|
176 |
+
* @since 2.9.1
|
177 |
+
* @todo this is not finished!
|
178 |
+
*/
|
179 |
+
function get_referer_type( $http_referer ) {
|
180 |
+
if ( '' != $http_referer && 'N/A' != $http_referer ) {
|
181 |
+
if ( ( $http_referer_info = parse_url( $http_referer ) ) && isset( $http_referer_info['host'] ) ) {
|
182 |
+
if ( false !== stripos( $http_referer_info['host'], 'google.' ) ) {
|
183 |
+
return 'Google';
|
184 |
+
} elseif ( false !== stripos( $http_referer_info['host'], 'wordpress.' ) ) {
|
185 |
+
return 'WordPress';
|
186 |
+
} elseif ( false !== stripos( $http_referer_info['host'], 'facebook.' ) ) {
|
187 |
+
return 'Facebook';
|
188 |
+
} else {
|
189 |
+
return __( 'Other', 'woocommerce-jetpack' );
|
190 |
+
}
|
191 |
+
}
|
192 |
+
}
|
193 |
+
return 'N/A';
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* create_http_referer_order_meta_box.
|
198 |
+
*
|
199 |
+
* @version 2.9.1
|
200 |
+
* @since 2.9.1
|
201 |
+
*/
|
202 |
+
function create_http_referer_order_meta_box() {
|
203 |
+
if ( '' == ( $http_referer = get_post_meta( get_the_ID(), '_wcj_track_users_http_referer', true ) ) ) {
|
204 |
+
$http_referer = 'N/A';
|
205 |
+
}
|
206 |
+
echo '<p>' . __( 'URL:', 'woocommerce-jetpack' ) . ' ' . $http_referer . '</p>';
|
207 |
+
echo '<p>' . __( 'Type:', 'woocommerce-jetpack' ) . ' ' . $this->get_referer_type( $http_referer ) . '</p>';
|
208 |
+
}
|
209 |
+
|
210 |
+
/**
|
211 |
+
* add_http_referer_to_order.
|
212 |
+
*
|
213 |
+
* @version 2.9.1
|
214 |
+
* @since 2.9.1
|
215 |
+
* @todo add "all orders by referer type" stats
|
216 |
+
*/
|
217 |
+
function add_http_referer_to_order( $order_id ) {
|
218 |
+
global $wpdb;
|
219 |
+
$table_name = $wpdb->prefix . 'wcj_track_users';
|
220 |
+
$http_referer = 'N/A';
|
221 |
+
if ( $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) === $table_name ) {
|
222 |
+
$user_ip = ( class_exists( 'WC_Geolocation' ) ? WC_Geolocation::get_ip_address() : wcj_get_the_ip() );
|
223 |
+
$result = $wpdb->get_row( "SELECT * FROM $table_name WHERE ip = '$user_ip' ORDER BY time DESC" );
|
224 |
+
if ( $result ) {
|
225 |
+
$http_referer = $result->referer;
|
226 |
+
}
|
227 |
+
}
|
228 |
+
update_post_meta( $order_id, '_wcj_track_users_http_referer', $http_referer );
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* maybe_delete_track_users_stats.
|
233 |
+
*
|
234 |
+
* @version 2.9.1
|
235 |
+
* @since 2.9.1
|
236 |
+
* @todo (maybe) wp_nonce
|
237 |
+
*/
|
238 |
+
function maybe_delete_track_users_stats() {
|
239 |
+
if ( isset( $_GET['wcj_delete_track_users_stats'] ) /* && is_super_admin() */ ) {
|
240 |
+
global $wpdb;
|
241 |
+
$table_name = $wpdb->prefix . 'wcj_track_users';
|
242 |
+
$sql = "DROP TABLE IF EXISTS $table_name";
|
243 |
+
$wpdb->query( $sql );
|
244 |
+
delete_option( 'wcj_track_users_stats_by_country' );
|
245 |
+
delete_option( 'wcj_track_users_cron_time_last_run' );
|
246 |
+
wp_safe_redirect( remove_query_arg( 'wcj_delete_track_users_stats' ) );
|
247 |
+
exit;
|
248 |
+
}
|
249 |
+
}
|
250 |
+
|
251 |
+
/**
|
252 |
+
* Add a widgets to the dashboard.
|
253 |
+
*
|
254 |
+
* @version 2.9.1
|
255 |
+
* @since 2.9.1
|
256 |
+
*/
|
257 |
+
function add_track_users_dashboard_widgets() {
|
258 |
+
wp_add_dashboard_widget(
|
259 |
+
'wcj_track_users_dashboard_widget',
|
260 |
+
__( 'Booster', 'woocommerce-jetpack' ) . ': ' . sprintf( __( 'Top %d countries by visits', 'woocommerce-jetpack' ),
|
261 |
+
get_option( 'wcj_track_users_by_country_widget_top_count', 10 ) ),
|
262 |
+
array( $this, 'track_users_by_country_dashboard_widget' )
|
263 |
+
);
|
264 |
+
}
|
265 |
+
|
266 |
+
/**
|
267 |
+
* get_saved_track_users_stats_by_country.
|
268 |
+
*
|
269 |
+
* @version 2.9.1
|
270 |
+
* @since 2.9.1
|
271 |
+
*/
|
272 |
+
function get_saved_track_users_stats_by_country( $scope ) {
|
273 |
+
$stats = get_option( 'wcj_track_users_stats_by_country', array() );
|
274 |
+
return ( isset( $stats[ $scope ] ) ? $stats[ $scope ] : array() );
|
275 |
+
}
|
276 |
+
|
277 |
+
/**
|
278 |
+
* generate_track_users_stats_by_country.
|
279 |
+
*
|
280 |
+
* @version 2.9.1
|
281 |
+
* @since 2.9.1
|
282 |
+
*/
|
283 |
+
function generate_track_users_stats_by_country( $scope ) {
|
284 |
+
global $wpdb;
|
285 |
+
$table_name = $wpdb->prefix . 'wcj_track_users';
|
286 |
+
switch ( $scope ) {
|
287 |
+
case 'all_time':
|
288 |
+
$select_query = "SELECT * FROM $table_name";
|
289 |
+
break;
|
290 |
+
default: // '28', '7', '1'
|
291 |
+
$time_expired = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) - $scope * 24 * 60 * 60 ) );
|
292 |
+
$select_query = "SELECT * FROM $table_name WHERE time > '" . $time_expired . "'";
|
293 |
+
break;
|
294 |
+
}
|
295 |
+
$totals = array();
|
296 |
+
if ( $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) === $table_name && ( $results = $wpdb->get_results( $select_query ) ) ) {
|
297 |
+
foreach ( $results as $result ) {
|
298 |
+
if ( ! isset( $totals[ $result->country ] ) ) {
|
299 |
+
$totals[ $result->country ] = 1;
|
300 |
+
} else {
|
301 |
+
$totals[ $result->country ]++;
|
302 |
+
}
|
303 |
+
}
|
304 |
+
arsort( $totals );
|
305 |
}
|
306 |
+
return $totals;
|
307 |
+
}
|
308 |
+
|
309 |
+
/**
|
310 |
+
* track_users_by_country_dashboard_widget.
|
311 |
+
*
|
312 |
+
* @version 2.9.1
|
313 |
+
* @since 2.9.1
|
314 |
+
* @todo (maybe) display all info (IP, referer etc.) on country click
|
315 |
+
* @todo (maybe) display stats by day and/or month
|
316 |
+
* @todo (maybe) display stats by state
|
317 |
+
*/
|
318 |
+
function track_users_by_country_dashboard_widget( $post, $args ) {
|
319 |
+
$top_count = get_option( 'wcj_track_users_by_country_widget_top_count', 10 );
|
320 |
+
foreach ( $this->track_users_scopes as $scope => $scope_title ) {
|
321 |
+
if ( ! in_array( $scope, get_option( 'wcj_track_users_by_country_widget_scopes', array( '1', '28' ) ) ) ) {
|
322 |
+
continue;
|
323 |
+
}
|
324 |
+
$totals = $this->get_saved_track_users_stats_by_country( $scope );
|
325 |
+
if ( ! empty( $totals ) ) {
|
326 |
+
$totals = array_slice( $totals, 0, $top_count );
|
327 |
+
$table_data = array();
|
328 |
+
$table_data[] = array( '', __( 'Country', 'woocommerce-jetpack' ), __( 'Visits', 'woocommerce-jetpack' ) );
|
329 |
+
$i = 0;
|
330 |
+
foreach ( $totals as $country_code => $visits ) {
|
331 |
+
$i++;
|
332 |
+
$country_info = ( '' != $country_code ? wcj_get_country_flag_by_code( $country_code ) . ' ' . wcj_get_country_name_by_code( $country_code ) : 'N/A' );
|
333 |
+
$table_data[] = array( $i, $country_info, $visits );
|
334 |
+
}
|
335 |
+
echo '<strong>' . $scope_title . '</strong>';
|
336 |
+
echo wcj_get_table_html( $table_data, array( 'table_class' => 'widefat striped', 'table_heading_type' => 'horizontal' ) );
|
337 |
+
} else {
|
338 |
+
echo '<p>' . '<em>' . __( 'No stats yet.', 'woocommerce-jetpack' ) . '</em>' . '</p>';
|
339 |
+
}
|
340 |
+
}
|
341 |
+
echo '<p>' .
|
342 |
+
'<a class="button-primary" href="' . add_query_arg( 'wcj_delete_track_users_stats', '1' ) . '" ' .
|
343 |
+
'onclick="return confirm(\'' . __( 'Are you sure?', 'woocommerce-jetpack' ) . '\')"' .
|
344 |
+
'>' . __( 'Delete all tracking data', 'woocommerce-jetpack' ) . '</a>' .
|
345 |
+
'</p>';
|
346 |
+
$cron_last_run = ( '' != ( $_time = get_option( 'wcj_track_users_cron_time_last_run', '' ) ) ? date( 'Y-m-d H:i:s', $_time ) : '-' );
|
347 |
+
$cron_next_schedule = ( '' != ( $_time = get_option( 'wcj_track_users_cron_time_schedule', '' ) ) ? date( 'Y-m-d H:i:s', $_time ) : '-' );
|
348 |
+
echo '<p>' .
|
349 |
+
sprintf( __( 'Stats generated at %s. Next update is scheduled at %s.', 'woocommerce-jetpack' ), $cron_last_run, $cron_next_schedule ) . ' ' .
|
350 |
+
'<a href="' . add_query_arg( 'wcj_track_users_update_county_stats', '1' ) . '">' . __( 'Update now', 'woocommerce-jetpack' ) . '</a>.' .
|
351 |
+
'</p>';
|
352 |
+
}
|
353 |
+
|
354 |
+
/**
|
355 |
+
* enqueue_track_users_script.
|
356 |
+
*
|
357 |
+
* @version 2.9.1
|
358 |
+
* @since 2.9.1
|
359 |
+
*/
|
360 |
+
function enqueue_track_users_script() {
|
361 |
+
wp_enqueue_script( 'wcj-track-users', trailingslashit( wcj_plugin_url() ) . 'includes/js/wcj-track-users.js', array( 'jquery' ), WCJ()->version, true );
|
362 |
+
wp_localize_script( 'wcj-track-users', 'track_users_ajax_object', array(
|
363 |
+
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
364 |
+
'http_referer' => ( isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : 'N/A' ),
|
365 |
+
'user_ip' => ( class_exists( 'WC_Geolocation' ) ? WC_Geolocation::get_ip_address() : wcj_get_the_ip() ),
|
366 |
+
) );
|
367 |
+
}
|
368 |
+
|
369 |
+
/**
|
370 |
+
* track_users.
|
371 |
+
*
|
372 |
+
* @version 2.9.1
|
373 |
+
* @since 2.9.1
|
374 |
+
* @todo (maybe) customizable `$time_expired`
|
375 |
+
* @todo (maybe) optionally do not track selected user roles (e.g. admin)
|
376 |
+
*/
|
377 |
+
function track_users() {
|
378 |
+
if ( ! isset( $_POST['wcj_user_ip'] ) ) {
|
379 |
+
die();
|
380 |
+
}
|
381 |
+
$user_ip = $_POST['wcj_user_ip'];
|
382 |
+
global $wpdb;
|
383 |
+
$table_name = $wpdb->prefix . 'wcj_track_users';
|
384 |
+
if ( $wpdb->get_var( "SHOW TABLES LIKE '$table_name'" ) != $table_name ) {
|
385 |
+
// Create DB table
|
386 |
+
$charset_collate = $wpdb->get_charset_collate();
|
387 |
+
$sql = "CREATE TABLE $table_name (
|
388 |
+
id int NOT NULL AUTO_INCREMENT,
|
389 |
+
time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
|
390 |
+
country tinytext NOT NULL,
|
391 |
+
state tinytext NOT NULL,
|
392 |
+
ip text NOT NULL,
|
393 |
+
referer text NOT NULL,
|
394 |
+
PRIMARY KEY (id)
|
395 |
+
) $charset_collate;";
|
396 |
+
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
|
397 |
+
dbDelta( $sql );
|
398 |
+
} else {
|
399 |
+
// Check if already tracked recently
|
400 |
+
$time_expired = date( 'Y-m-d H:i:s', strtotime( '-1 day', current_time( 'timestamp' ) ) );
|
401 |
+
$result = $wpdb->get_row( "SELECT * FROM $table_name WHERE ip = '$user_ip' AND time > '$time_expired'" );
|
402 |
+
if ( $result ) {
|
403 |
+
return;
|
404 |
+
}
|
405 |
+
}
|
406 |
+
// Country by IP
|
407 |
+
$location = ( class_exists( 'WC_Geolocation' ) ? WC_Geolocation::geolocate_ip( $user_ip ) : array( 'country' => '', 'state' => '' ) );
|
408 |
+
// HTTP referrer
|
409 |
+
$http_referer = ( isset( $_POST['wcj_http_referer'] ) ? $_POST['wcj_http_referer'] : 'N/A' );
|
410 |
+
// Add row to DB table
|
411 |
+
$wpdb->insert(
|
412 |
+
$table_name,
|
413 |
+
array(
|
414 |
+
'time' => current_time( 'mysql' ),
|
415 |
+
'country' => $location['country'],
|
416 |
+
'state' => $location['state'],
|
417 |
+
'ip' => $user_ip,
|
418 |
+
'referer' => $http_referer,
|
419 |
+
)
|
420 |
+
);
|
421 |
+
die();
|
422 |
}
|
423 |
|
424 |
/**
|
483 |
}
|
484 |
}
|
485 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
486 |
/**
|
487 |
* change_session_expiring.
|
488 |
*
|
includes/class-wcj-product-by-date.php
ADDED
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Booster for WooCommerce - Module - Product Availability by Date
|
4 |
+
*
|
5 |
+
* @version 2.9.1
|
6 |
+
* @since 2.9.1
|
7 |
+
* @author Algoritmika Ltd.
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
+
|
12 |
+
if ( ! class_exists( 'WCJ_Product_By_Date' ) ) :
|
13 |
+
|
14 |
+
class WCJ_Product_By_Date extends WCJ_Module {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Constructor.
|
18 |
+
*
|
19 |
+
* @version 2.9.1
|
20 |
+
* @since 2.9.1
|
21 |
+
* @todo per category
|
22 |
+
* @todo per tag
|
23 |
+
* @todo (maybe) per products sets
|
24 |
+
* @todo redirect to custom URL when product is not available
|
25 |
+
*/
|
26 |
+
function __construct() {
|
27 |
+
|
28 |
+
$this->id = 'product_by_date';
|
29 |
+
$this->short_desc = __( 'Product Availability by Date', 'woocommerce-jetpack' );
|
30 |
+
$this->desc = __( 'WooCommerce product availability by date.', 'woocommerce-jetpack' );
|
31 |
+
$this->link_slug = 'woocommerce-product-availability-by-date';
|
32 |
+
parent::__construct();
|
33 |
+
|
34 |
+
$this->time_now = current_time( 'timestamp' );
|
35 |
+
|
36 |
+
if ( $this->is_enabled() ) {
|
37 |
+
// Per product meta box
|
38 |
+
if ( 'yes' === get_option( 'wcj_product_by_date_per_product_enabled', 'no' ) ) {
|
39 |
+
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
40 |
+
add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
|
41 |
+
add_filter( 'wcj_save_meta_box_value', array( $this, 'save_meta_box_validate_value' ), PHP_INT_MAX, 3 );
|
42 |
+
add_action( 'admin_notices', array( $this, 'validate_value_admin_notices' ) );
|
43 |
+
$this->meta_box_validate_value = 'wcj_product_by_date_enabled';
|
44 |
+
}
|
45 |
+
if ( 'yes' === get_option( 'wcj_product_by_date_per_product_enabled', 'no' ) || 'yes' === get_option( 'wcj_product_by_date_section_enabled', 'no' ) ) {
|
46 |
+
// Time now
|
47 |
+
$this->day_now = intval( date( 'j', $this->time_now ) ); // Day of the month without leading zeros: 1 to 31
|
48 |
+
$this->month_now = intval( date( 'n', $this->time_now ) ); // Numeric representation of a month, without leading zeros: 1 through 12
|
49 |
+
// Filters
|
50 |
+
add_filter( 'woocommerce_is_purchasable', array( $this, 'check_is_purchasable_by_date' ), PHP_INT_MAX, 2 );
|
51 |
+
add_action( 'woocommerce_single_product_summary', array( $this, 'maybe_add_unavailable_by_date_message' ), 30 );
|
52 |
+
}
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* get_default_date.
|
58 |
+
*
|
59 |
+
* @version 2.9.1
|
60 |
+
* @version 2.9.1
|
61 |
+
*/
|
62 |
+
function get_default_date( $i ) {
|
63 |
+
$date_defaults = array(
|
64 |
+
'1-31',
|
65 |
+
'1-29',
|
66 |
+
'1-31',
|
67 |
+
'1-30',
|
68 |
+
'1-31',
|
69 |
+
'-',
|
70 |
+
'-',
|
71 |
+
'-',
|
72 |
+
'10-30',
|
73 |
+
'1-31',
|
74 |
+
'1-30',
|
75 |
+
'1-20,26-31',
|
76 |
+
);
|
77 |
+
return $date_defaults[ $i - 1 ];
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* maybe_add_unavailable_by_date_message.
|
82 |
+
*
|
83 |
+
* @version 2.9.1
|
84 |
+
* @version 2.9.1
|
85 |
+
*/
|
86 |
+
function maybe_add_unavailable_by_date_message() {
|
87 |
+
$_product = wc_get_product();
|
88 |
+
if ( ! $this->check_is_purchasable_by_date( true, $_product ) ) {
|
89 |
+
$_date = $this->get_product_availability_this_month( $_product );
|
90 |
+
$replaceable_values = array(
|
91 |
+
'%date_this_month%' => $_date,
|
92 |
+
'%product_title%' => $_product->get_title(),
|
93 |
+
);
|
94 |
+
$message = ( ( '-' === $_date ) ?
|
95 |
+
apply_filters( 'booster_get_option', __( '<p style="color:red;">%product_title% is not available this month.</p>', 'woocommerce-jetpack' ),
|
96 |
+
get_option( 'wcj_product_by_date_unavailable_message_month_off',
|
97 |
+
__( '<p style="color:red;">%product_title% is not available this month.</p>', 'woocommerce-jetpack' ) ) ) :
|
98 |
+
apply_filters( 'booster_get_option', __( '<p style="color:red;">%product_title% is available only on %date_this_month% this month.</p>', 'woocommerce-jetpack' ),
|
99 |
+
get_option( 'wcj_product_by_date_unavailable_message',
|
100 |
+
__( '<p style="color:red;">%product_title% is available only on %date_this_month% this month.</p>', 'woocommerce-jetpack' ) ) )
|
101 |
+
);
|
102 |
+
echo str_replace(
|
103 |
+
array_keys( $replaceable_values ),
|
104 |
+
array_values( $replaceable_values ),
|
105 |
+
do_shortcode( $message )
|
106 |
+
);
|
107 |
+
}
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* get_product_availability_this_month.
|
112 |
+
*
|
113 |
+
* @version 2.9.1
|
114 |
+
* @version 2.9.1
|
115 |
+
*/
|
116 |
+
function get_product_availability_this_month( $_product ) {
|
117 |
+
$product_id = wcj_get_product_id_or_variation_parent_id( $_product );
|
118 |
+
if ( 'yes' === get_option( 'wcj_product_by_date_per_product_enabled', 'no' ) && 'yes' === get_post_meta( $product_id, '_' . 'wcj_product_by_date_enabled', true ) ) {
|
119 |
+
return get_post_meta( $product_id, '_' . 'wcj_product_by_date_' . $this->month_now, true );
|
120 |
+
} elseif ( 'yes' === get_option( 'wcj_product_by_date_section_enabled', 'no' ) ) {
|
121 |
+
return get_option( 'wcj_product_by_date_' . $this->month_now, $this->get_default_date( $this->month_now ) );
|
122 |
+
} else {
|
123 |
+
return '';
|
124 |
+
}
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* check_is_purchasable_by_date.
|
129 |
+
*
|
130 |
+
* @version 2.9.1
|
131 |
+
* @version 2.9.1
|
132 |
+
* @todo validate `wcj_product_by_date_` option before checking (or even better earlier, when option is saved by admin)
|
133 |
+
*/
|
134 |
+
function check_is_purchasable_by_date( $purchasable, $_product ) {
|
135 |
+
if ( $purchasable ) {
|
136 |
+
$_date = $this->get_product_availability_this_month( $_product );
|
137 |
+
if ( '-' === $_date ) {
|
138 |
+
return false;
|
139 |
+
} elseif ( '' == $_date ) {
|
140 |
+
return true;
|
141 |
+
} else {
|
142 |
+
return wcj_check_date( $_date, array( 'day_now' => $this->day_now ) );
|
143 |
+
}
|
144 |
+
}
|
145 |
+
return $purchasable;
|
146 |
+
}
|
147 |
+
|
148 |
+
}
|
149 |
+
|
150 |
+
endif;
|
151 |
+
|
152 |
+
return new WCJ_Product_By_Date();
|
includes/class-wcj-product-by-time.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Availability by Time
|
4 |
*
|
5 |
-
* @version 2.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,12 +16,11 @@ class WCJ_Product_By_Time extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version 2.
|
20 |
* @since 2.8.0
|
21 |
-
* @todo per product
|
22 |
* @todo per category
|
23 |
* @todo per tag
|
24 |
-
* @todo
|
25 |
* @todo redirect to custom URL when product is not available
|
26 |
*/
|
27 |
function __construct() {
|
@@ -35,10 +34,20 @@ class WCJ_Product_By_Time extends WCJ_Module {
|
|
35 |
$this->time_now = current_time( 'timestamp' );
|
36 |
|
37 |
if ( $this->is_enabled() ) {
|
38 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
$this->day_of_week_now = intval( date( 'w', $this->time_now ) );
|
40 |
$this->hours_now = intval( date( 'H', $this->time_now ) );
|
41 |
$this->minutes_now = intval( date( 'i', $this->time_now ) );
|
|
|
42 |
add_filter( 'woocommerce_is_purchasable', array( $this, 'check_is_purchasable_by_time' ), PHP_INT_MAX, 2 );
|
43 |
add_action( 'woocommerce_single_product_summary', array( $this, 'maybe_add_unavailable_by_time_message' ), 30 );
|
44 |
}
|
@@ -67,13 +76,13 @@ class WCJ_Product_By_Time extends WCJ_Module {
|
|
67 |
/**
|
68 |
* maybe_add_unavailable_by_time_message.
|
69 |
*
|
70 |
-
* @version 2.
|
71 |
* @version 2.8.0
|
72 |
*/
|
73 |
function maybe_add_unavailable_by_time_message() {
|
74 |
-
|
75 |
-
|
76 |
-
$
|
77 |
$replaceable_values = array(
|
78 |
'%time_today%' => $_time,
|
79 |
'%product_title%' => $_product->get_title(),
|
@@ -94,20 +103,40 @@ class WCJ_Product_By_Time extends WCJ_Module {
|
|
94 |
}
|
95 |
}
|
96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
/**
|
98 |
* check_is_purchasable_by_time.
|
99 |
*
|
100 |
-
* @version 2.
|
101 |
* @version 2.8.0
|
102 |
* @todo validate `wcj_product_by_time_` option before checking (or even better earlier, when option is saved by admin)
|
103 |
*/
|
104 |
function check_is_purchasable_by_time( $purchasable, $_product ) {
|
105 |
if ( $purchasable ) {
|
106 |
-
$_time =
|
107 |
if ( '-' === $_time ) {
|
108 |
return false;
|
|
|
|
|
|
|
|
|
109 |
}
|
110 |
-
return wcj_check_time( $_time, array( 'hours_now' => $this->hours_now, 'minutes_now' => $this->minutes_now ) );
|
111 |
}
|
112 |
return $purchasable;
|
113 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Availability by Time
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 2.9.1
|
20 |
* @since 2.8.0
|
|
|
21 |
* @todo per category
|
22 |
* @todo per tag
|
23 |
+
* @todo (maybe) per products sets
|
24 |
* @todo redirect to custom URL when product is not available
|
25 |
*/
|
26 |
function __construct() {
|
34 |
$this->time_now = current_time( 'timestamp' );
|
35 |
|
36 |
if ( $this->is_enabled() ) {
|
37 |
+
// Per product meta box
|
38 |
+
if ( 'yes' === get_option( 'wcj_product_by_time_per_product_enabled', 'no' ) ) {
|
39 |
+
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
40 |
+
add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
|
41 |
+
add_filter( 'wcj_save_meta_box_value', array( $this, 'save_meta_box_validate_value' ), PHP_INT_MAX, 3 );
|
42 |
+
add_action( 'admin_notices', array( $this, 'validate_value_admin_notices' ) );
|
43 |
+
$this->meta_box_validate_value = 'wcj_product_by_time_enabled';
|
44 |
+
}
|
45 |
+
if ( 'yes' === get_option( 'wcj_product_by_time_per_product_enabled', 'no' ) || 'yes' === get_option( 'wcj_product_by_time_section_enabled', 'no' ) ) {
|
46 |
+
// Time now
|
47 |
$this->day_of_week_now = intval( date( 'w', $this->time_now ) );
|
48 |
$this->hours_now = intval( date( 'H', $this->time_now ) );
|
49 |
$this->minutes_now = intval( date( 'i', $this->time_now ) );
|
50 |
+
// Filters
|
51 |
add_filter( 'woocommerce_is_purchasable', array( $this, 'check_is_purchasable_by_time' ), PHP_INT_MAX, 2 );
|
52 |
add_action( 'woocommerce_single_product_summary', array( $this, 'maybe_add_unavailable_by_time_message' ), 30 );
|
53 |
}
|
76 |
/**
|
77 |
* maybe_add_unavailable_by_time_message.
|
78 |
*
|
79 |
+
* @version 2.9.1
|
80 |
* @version 2.8.0
|
81 |
*/
|
82 |
function maybe_add_unavailable_by_time_message() {
|
83 |
+
$_product = wc_get_product();
|
84 |
+
if ( ! $this->check_is_purchasable_by_time( true, $_product ) ) {
|
85 |
+
$_time = $this->get_product_availability_this_day( $_product );
|
86 |
$replaceable_values = array(
|
87 |
'%time_today%' => $_time,
|
88 |
'%product_title%' => $_product->get_title(),
|
103 |
}
|
104 |
}
|
105 |
|
106 |
+
/**
|
107 |
+
* get_product_availability_this_day.
|
108 |
+
*
|
109 |
+
* @version 2.9.1
|
110 |
+
* @version 2.9.1
|
111 |
+
*/
|
112 |
+
function get_product_availability_this_day( $_product ) {
|
113 |
+
$product_id = wcj_get_product_id_or_variation_parent_id( $_product );
|
114 |
+
if ( 'yes' === get_option( 'wcj_product_by_time_per_product_enabled', 'no' ) && 'yes' === get_post_meta( $product_id, '_' . 'wcj_product_by_time_enabled', true ) ) {
|
115 |
+
return get_post_meta( $product_id, '_' . 'wcj_product_by_time_' . $this->day_of_week_now, true );
|
116 |
+
} elseif ( 'yes' === get_option( 'wcj_product_by_time_section_enabled', 'no' ) ) {
|
117 |
+
return get_option( 'wcj_product_by_time_' . $this->day_of_week_now, $this->get_default_time( $this->day_of_week_now ) );
|
118 |
+
} else {
|
119 |
+
return '';
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
/**
|
124 |
* check_is_purchasable_by_time.
|
125 |
*
|
126 |
+
* @version 2.9.1
|
127 |
* @version 2.8.0
|
128 |
* @todo validate `wcj_product_by_time_` option before checking (or even better earlier, when option is saved by admin)
|
129 |
*/
|
130 |
function check_is_purchasable_by_time( $purchasable, $_product ) {
|
131 |
if ( $purchasable ) {
|
132 |
+
$_time = $this->get_product_availability_this_day( $_product );
|
133 |
if ( '-' === $_time ) {
|
134 |
return false;
|
135 |
+
} elseif ( '' == $_time ) {
|
136 |
+
return true;
|
137 |
+
} else {
|
138 |
+
return wcj_check_time( $_time, array( 'hours_now' => $this->hours_now, 'minutes_now' => $this->minutes_now ) );
|
139 |
}
|
|
|
140 |
}
|
141 |
return $purchasable;
|
142 |
}
|
includes/class-wcj-product-custom-info.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Info
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @since 2.4.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -71,7 +71,7 @@ class WCJ_Product_Custom_info extends WCJ_Module {
|
|
71 |
/**
|
72 |
* check_included_and_excluded.
|
73 |
*
|
74 |
-
* @version 2.9.
|
75 |
* @since 2.9.0
|
76 |
*/
|
77 |
function check_included_and_excluded( $product_id, $single_or_archive, $i ) {
|
@@ -79,8 +79,8 @@ class WCJ_Product_Custom_info extends WCJ_Module {
|
|
79 |
$product_cats_to_exclude = get_option( 'wcj_product_custom_info_product_cats_to_exclude_' . $single_or_archive . '_' . $i );
|
80 |
$product_tags_to_include = get_option( 'wcj_product_custom_info_product_tags_to_include_' . $single_or_archive . '_' . $i );
|
81 |
$product_tags_to_exclude = get_option( 'wcj_product_custom_info_product_tags_to_exclude_' . $single_or_archive . '_' . $i );
|
82 |
-
$products_to_exclude = get_option( 'wcj_product_custom_info_products_to_exclude_'
|
83 |
-
$products_to_include = get_option( 'wcj_product_custom_info_products_to_include_'
|
84 |
return (
|
85 |
( empty( $product_cats_to_exclude ) || ! wcj_is_product_term( $product_id, $product_cats_to_exclude, 'product_cat' ) ) &&
|
86 |
( empty( $product_cats_to_include ) || wcj_is_product_term( $product_id, $product_cats_to_include, 'product_cat' ) ) &&
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Info
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.4.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
71 |
/**
|
72 |
* check_included_and_excluded.
|
73 |
*
|
74 |
+
* @version 2.9.1
|
75 |
* @since 2.9.0
|
76 |
*/
|
77 |
function check_included_and_excluded( $product_id, $single_or_archive, $i ) {
|
79 |
$product_cats_to_exclude = get_option( 'wcj_product_custom_info_product_cats_to_exclude_' . $single_or_archive . '_' . $i );
|
80 |
$product_tags_to_include = get_option( 'wcj_product_custom_info_product_tags_to_include_' . $single_or_archive . '_' . $i );
|
81 |
$product_tags_to_exclude = get_option( 'wcj_product_custom_info_product_tags_to_exclude_' . $single_or_archive . '_' . $i );
|
82 |
+
$products_to_exclude = wcj_maybe_convert_string_to_array( get_option( 'wcj_product_custom_info_products_to_exclude_' . $single_or_archive . '_' . $i ) );
|
83 |
+
$products_to_include = wcj_maybe_convert_string_to_array( get_option( 'wcj_product_custom_info_products_to_include_' . $single_or_archive . '_' . $i ) );
|
84 |
return (
|
85 |
( empty( $product_cats_to_exclude ) || ! wcj_is_product_term( $product_id, $product_cats_to_exclude, 'product_cat' ) ) &&
|
86 |
( empty( $product_cats_to_include ) || wcj_is_product_term( $product_id, $product_cats_to_include, 'product_cat' ) ) &&
|
includes/class-wcj-product-images.php
CHANGED
@@ -17,6 +17,7 @@ class WCJ_Product_Images extends WCJ_Module {
|
|
17 |
* Constructor.
|
18 |
*
|
19 |
* @version 2.8.0
|
|
|
20 |
*/
|
21 |
function __construct() {
|
22 |
|
17 |
* Constructor.
|
18 |
*
|
19 |
* @version 2.8.0
|
20 |
+
* @todo Add watermarks to images (http://php.net/manual/en/image.examples-watermark.php); Filter: `wp_get_attachment_image_src`.
|
21 |
*/
|
22 |
function __construct() {
|
23 |
|
includes/class-wcj-reports.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Reports
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -198,7 +198,7 @@ class WCJ_Reports extends WCJ_Module {
|
|
198 |
/**
|
199 |
* Add reports to WooCommerce > Reports > Sales
|
200 |
*
|
201 |
-
* @version 2.9.
|
202 |
* @since 2.3.0
|
203 |
*/
|
204 |
function add_sales_reports( $reports ) {
|
@@ -218,7 +218,7 @@ class WCJ_Reports extends WCJ_Module {
|
|
218 |
);
|
219 |
|
220 |
$reports['orders']['reports']['booster_monthly_sales'] = array(
|
221 |
-
'title' => __( 'Booster: Monthly Sales', 'woocommerce-jetpack' ),
|
222 |
'description' => '',
|
223 |
'hide_title' => false,
|
224 |
'callback' => array( $this, 'get_report_monthly_sales' ),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Reports
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
198 |
/**
|
199 |
* Add reports to WooCommerce > Reports > Sales
|
200 |
*
|
201 |
+
* @version 2.9.1
|
202 |
* @since 2.3.0
|
203 |
*/
|
204 |
function add_sales_reports( $reports ) {
|
218 |
);
|
219 |
|
220 |
$reports['orders']['reports']['booster_monthly_sales'] = array(
|
221 |
+
'title' => __( 'Booster: Monthly Sales (with Currency Conversion)', 'woocommerce-jetpack' ),
|
222 |
'description' => '',
|
223 |
'hide_title' => false,
|
224 |
'callback' => array( $this, 'get_report_monthly_sales' ),
|
includes/class-wcj-shipping-options.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Shipping Options
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,7 +16,7 @@ class WCJ_Shipping_Options extends WCJ_Module {
|
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
-
* @version 2.9.
|
20 |
* @since 2.9.0
|
21 |
*/
|
22 |
function __construct() {
|
@@ -35,7 +35,7 @@ class WCJ_Shipping_Options extends WCJ_Module {
|
|
35 |
if ( 'yes' === get_option( 'wcj_shipping_hide_if_free_available_all', 'no' ) ) {
|
36 |
add_filter( 'woocommerce_package_rates', array( $this, 'hide_shipping_when_free_is_available' ), 10, 2 );
|
37 |
}
|
38 |
-
add_filter( 'woocommerce_shipping_settings', array( $this, 'add_hide_shipping_if_free_available_fields' ),
|
39 |
|
40 |
// Shipping Descriptions
|
41 |
if ( 'yes' === get_option( 'wcj_shipping_description_enabled', 'no' ) ) {
|
@@ -129,8 +129,7 @@ class WCJ_Shipping_Options extends WCJ_Module {
|
|
129 |
/**
|
130 |
* hide_shipping_when_free_is_available.
|
131 |
*
|
132 |
-
* @version 2.
|
133 |
-
* @todo if ( 'yes' === get_option( 'wcj_shipping_hide_if_free_available_local_delivery' ) ) { unset( $rates['local_delivery'] ); }
|
134 |
*/
|
135 |
function hide_shipping_when_free_is_available( $rates, $package ) {
|
136 |
$free_shipping_rates = array();
|
@@ -139,6 +138,18 @@ class WCJ_Shipping_Options extends WCJ_Module {
|
|
139 |
if ( false !== strpos( $rate_key, 'free_shipping' ) ) {
|
140 |
$is_free_shipping_available = true;
|
141 |
$free_shipping_rates[ $rate_key ] = $rate;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
}
|
143 |
}
|
144 |
return ( $is_free_shipping_available ) ? $free_shipping_rates : $rates;
|
@@ -147,30 +158,36 @@ class WCJ_Shipping_Options extends WCJ_Module {
|
|
147 |
/**
|
148 |
* add_hide_shipping_if_free_available_fields.
|
149 |
*
|
150 |
-
* @version 2.
|
|
|
151 |
*/
|
152 |
function add_hide_shipping_if_free_available_fields( $settings ) {
|
153 |
$updated_settings = array();
|
154 |
foreach ( $settings as $section ) {
|
155 |
$updated_settings[] = $section;
|
156 |
if ( isset( $section['id'] ) && 'woocommerce_ship_to_destination' === $section['id'] ) {
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
|
|
|
|
|
|
|
|
|
|
174 |
}
|
175 |
}
|
176 |
return $updated_settings;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Shipping Options
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
/**
|
17 |
* Constructor.
|
18 |
*
|
19 |
+
* @version 2.9.1
|
20 |
* @since 2.9.0
|
21 |
*/
|
22 |
function __construct() {
|
35 |
if ( 'yes' === get_option( 'wcj_shipping_hide_if_free_available_all', 'no' ) ) {
|
36 |
add_filter( 'woocommerce_package_rates', array( $this, 'hide_shipping_when_free_is_available' ), 10, 2 );
|
37 |
}
|
38 |
+
add_filter( 'woocommerce_shipping_settings', array( $this, 'add_hide_shipping_if_free_available_fields' ), PHP_INT_MAX );
|
39 |
|
40 |
// Shipping Descriptions
|
41 |
if ( 'yes' === get_option( 'wcj_shipping_description_enabled', 'no' ) ) {
|
129 |
/**
|
130 |
* hide_shipping_when_free_is_available.
|
131 |
*
|
132 |
+
* @version 2.9.1
|
|
|
133 |
*/
|
134 |
function hide_shipping_when_free_is_available( $rates, $package ) {
|
135 |
$free_shipping_rates = array();
|
138 |
if ( false !== strpos( $rate_key, 'free_shipping' ) ) {
|
139 |
$is_free_shipping_available = true;
|
140 |
$free_shipping_rates[ $rate_key ] = $rate;
|
141 |
+
} else {
|
142 |
+
if (
|
143 |
+
'except_local_pickup' === apply_filters( 'booster_get_option', 'hide_all', get_option( 'wcj_shipping_hide_if_free_available_type', 'hide_all' ) ) &&
|
144 |
+
false !== strpos( $rate_key, 'local_pickup' )
|
145 |
+
) {
|
146 |
+
$free_shipping_rates[ $rate_key ] = $rate;
|
147 |
+
} elseif (
|
148 |
+
'flat_rate_only' === apply_filters( 'booster_get_option', 'hide_all', get_option( 'wcj_shipping_hide_if_free_available_type', 'hide_all' ) ) &&
|
149 |
+
false === strpos( $rate_key, 'flat_rate' )
|
150 |
+
) {
|
151 |
+
$free_shipping_rates[ $rate_key ] = $rate;
|
152 |
+
}
|
153 |
}
|
154 |
}
|
155 |
return ( $is_free_shipping_available ) ? $free_shipping_rates : $rates;
|
158 |
/**
|
159 |
* add_hide_shipping_if_free_available_fields.
|
160 |
*
|
161 |
+
* @version 2.9.1
|
162 |
+
* @todo (maybe) delete this
|
163 |
*/
|
164 |
function add_hide_shipping_if_free_available_fields( $settings ) {
|
165 |
$updated_settings = array();
|
166 |
foreach ( $settings as $section ) {
|
167 |
$updated_settings[] = $section;
|
168 |
if ( isset( $section['id'] ) && 'woocommerce_ship_to_destination' === $section['id'] ) {
|
169 |
+
$updated_settings = array_merge( $updated_settings, array(
|
170 |
+
array(
|
171 |
+
'title' => __( 'Booster: Hide when free is available', 'woocommerce-jetpack' ),
|
172 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
173 |
+
'id' => 'wcj_shipping_hide_if_free_available_all',
|
174 |
+
'default' => 'no',
|
175 |
+
'type' => 'checkbox',
|
176 |
+
),
|
177 |
+
array(
|
178 |
+
'id' => 'wcj_shipping_hide_if_free_available_type',
|
179 |
+
'desc_tip' => sprintf( __( 'Available options: hide all; hide all except "Local Pickup"; hide "Flat Rate" only.', 'woocommerce-jetpack' ) ),
|
180 |
+
'default' => 'hide_all',
|
181 |
+
'type' => 'select',
|
182 |
+
'options' => array(
|
183 |
+
'hide_all' => __( 'Hide all', 'woocommerce-jetpack' ),
|
184 |
+
'except_local_pickup' => __( 'Hide all except "Local Pickup"', 'woocommerce-jetpack' ),
|
185 |
+
'flat_rate_only' => __( 'Hide "Flat Rate" only', 'woocommerce-jetpack' ),
|
186 |
+
),
|
187 |
+
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
188 |
+
'custom_attributes' => apply_filters( 'booster_get_message', '', 'disabled' ),
|
189 |
+
),
|
190 |
+
) );
|
191 |
}
|
192 |
}
|
193 |
return $updated_settings;
|
includes/class-wcj-url-coupons.php
ADDED
@@ -0,0 +1,130 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Booster for WooCommerce - Module - URL Coupons
|
4 |
+
*
|
5 |
+
* @version 2.9.1
|
6 |
+
* @since 2.9.1
|
7 |
+
* @author Algoritmika Ltd.
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
+
|
12 |
+
if ( ! class_exists( 'WCJ_URL_Coupons' ) ) :
|
13 |
+
|
14 |
+
class WCJ_URL_Coupons extends WCJ_Module {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Constructor.
|
18 |
+
*
|
19 |
+
* @version 2.9.1
|
20 |
+
* @since 2.9.1
|
21 |
+
*/
|
22 |
+
function __construct() {
|
23 |
+
|
24 |
+
$this->id = 'url_coupons';
|
25 |
+
$this->short_desc = __( 'URL Coupons', 'woocommerce-jetpack' );
|
26 |
+
$this->desc = __( 'WooCommerce URL coupons.', 'woocommerce-jetpack' );
|
27 |
+
$this->link_slug = 'woocommerce-url-coupons';
|
28 |
+
parent::__construct();
|
29 |
+
|
30 |
+
if ( $this->is_enabled() ) {
|
31 |
+
add_action( 'wp_loaded', array( $this, 'maybe_apply_url_coupon' ), PHP_INT_MAX );
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* is_product_in_cart.
|
37 |
+
*
|
38 |
+
* @version 2.9.1
|
39 |
+
* @since 2.9.1
|
40 |
+
*/
|
41 |
+
function is_product_in_cart( $product_id ) {
|
42 |
+
if ( 0 != $product_id ) {
|
43 |
+
if ( isset( WC()->cart->cart_contents ) && is_array( WC()->cart->cart_contents ) ) {
|
44 |
+
foreach ( WC()->cart->cart_contents as $cart_item_key => $cart_item_data ) {
|
45 |
+
if (
|
46 |
+
( isset( $cart_item_data['product_id'] ) && $product_id == $cart_item_data['product_id'] ) ||
|
47 |
+
( isset( $cart_item_data['variation_id'] ) && $product_id == $cart_item_data['variation_id'] )
|
48 |
+
) {
|
49 |
+
return true;
|
50 |
+
}
|
51 |
+
}
|
52 |
+
}
|
53 |
+
}
|
54 |
+
return false;
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* get_redirect_url.
|
59 |
+
*
|
60 |
+
* @version 2.9.1
|
61 |
+
* @since 2.9.1
|
62 |
+
*/
|
63 |
+
function get_redirect_url( $arg_key ) {
|
64 |
+
switch ( apply_filters( 'booster_get_option', 'no', get_option( 'wcj_url_coupons_redirect', 'no' ) ) ) {
|
65 |
+
case 'cart':
|
66 |
+
return wc_get_cart_url();
|
67 |
+
case 'checkout':
|
68 |
+
return wc_get_checkout_url();
|
69 |
+
case 'custom':
|
70 |
+
return get_option( 'wcj_url_coupons_redirect_custom_url', '' );
|
71 |
+
default: // 'no'
|
72 |
+
return remove_query_arg( $arg_key );
|
73 |
+
}
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* maybe_add_products_to_cart.
|
78 |
+
*
|
79 |
+
* @version 2.9.1
|
80 |
+
* @since 2.9.1
|
81 |
+
* @todo (maybe) check if coupon is valid
|
82 |
+
*/
|
83 |
+
function maybe_add_products_to_cart( $coupon_code ) {
|
84 |
+
if ( 'no' === apply_filters( 'booster_get_option', 'no', get_option( 'wcj_url_coupons_fixed_product_discount_add_products', 'no' ) ) ) {
|
85 |
+
return false;
|
86 |
+
}
|
87 |
+
// Coupons are globally disabled.
|
88 |
+
if ( ! wc_coupons_enabled() ) {
|
89 |
+
return false;
|
90 |
+
}
|
91 |
+
// Sanitize coupon code.
|
92 |
+
$coupon_code = wc_format_coupon_code( $coupon_code );
|
93 |
+
// Get the coupon.
|
94 |
+
$the_coupon = new WC_Coupon( $coupon_code );
|
95 |
+
if ( 'fixed_product' === $the_coupon->get_discount_type() ) {
|
96 |
+
$product_ids = $the_coupon->get_product_ids();
|
97 |
+
if ( ! empty( $product_ids ) ) {
|
98 |
+
foreach ( $product_ids as $product_id ) {
|
99 |
+
if ( ! $this->is_product_in_cart( $product_id ) ) {
|
100 |
+
WC()->cart->add_to_cart( $product_id );
|
101 |
+
}
|
102 |
+
}
|
103 |
+
}
|
104 |
+
}
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* maybe_apply_url_coupon.
|
109 |
+
*
|
110 |
+
* @version 2.9.1
|
111 |
+
* @since 2.7.0
|
112 |
+
* @todo (maybe) options to add products to cart with query arg
|
113 |
+
* @todo (maybe) if ( ! WC()->cart->has_discount( $coupon_code ) ) {}
|
114 |
+
*/
|
115 |
+
function maybe_apply_url_coupon() {
|
116 |
+
$arg_key = get_option( 'wcj_url_coupons_key', 'wcj_apply_coupon' );
|
117 |
+
if ( isset( $_GET[ $arg_key ] ) && '' != $_GET[ $arg_key ] ) {
|
118 |
+
$coupon_code = sanitize_text_field( $_GET[ $arg_key ] );
|
119 |
+
$this->maybe_add_products_to_cart( $coupon_code );
|
120 |
+
WC()->cart->add_discount( $coupon_code );
|
121 |
+
wp_safe_redirect( $this->get_redirect_url( $arg_key ) );
|
122 |
+
exit;
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
}
|
127 |
+
|
128 |
+
endif;
|
129 |
+
|
130 |
+
return new WCJ_URL_Coupons();
|
includes/classes/class-wcj-module.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce Module
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @since 2.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -36,6 +36,67 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
36 |
add_action( 'init', array( $this, 'reset_settings' ), PHP_INT_MAX );
|
37 |
}
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
/**
|
40 |
* get_meta_box_options.
|
41 |
*
|
2 |
/**
|
3 |
* Booster for WooCommerce Module
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.2.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
36 |
add_action( 'init', array( $this, 'reset_settings' ), PHP_INT_MAX );
|
37 |
}
|
38 |
|
39 |
+
/**
|
40 |
+
* save_meta_box_validate_value.
|
41 |
+
*
|
42 |
+
* @version 2.9.1
|
43 |
+
* @since 2.9.1
|
44 |
+
*/
|
45 |
+
function save_meta_box_validate_value( $option_value, $option_name, $module_id ) {
|
46 |
+
if ( true === apply_filters( 'booster_get_option', false, true ) ) {
|
47 |
+
return $option_value;
|
48 |
+
}
|
49 |
+
if ( 'no' === $option_value ) {
|
50 |
+
return $option_value;
|
51 |
+
}
|
52 |
+
if ( $this->id === $module_id && $this->meta_box_validate_value === $option_name ) {
|
53 |
+
$args = array(
|
54 |
+
'post_type' => 'product',
|
55 |
+
'post_status' => 'any',
|
56 |
+
'posts_per_page' => 1,
|
57 |
+
'meta_key' => '_' . $this->meta_box_validate_value,
|
58 |
+
'meta_value' => 'yes',
|
59 |
+
'post__not_in' => array( get_the_ID() ),
|
60 |
+
);
|
61 |
+
$loop = new WP_Query( $args );
|
62 |
+
$c = $loop->found_posts + 1;
|
63 |
+
if ( $c >= 2 ) {
|
64 |
+
add_filter( 'redirect_post_location', array( $this, 'validate_value_add_notice_query_var' ), 99 );
|
65 |
+
return 'no';
|
66 |
+
}
|
67 |
+
}
|
68 |
+
return $option_value;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* validate_value_add_notice_query_var.
|
73 |
+
*
|
74 |
+
* @version 2.9.1
|
75 |
+
* @since 2.9.1
|
76 |
+
*/
|
77 |
+
function validate_value_add_notice_query_var( $location ) {
|
78 |
+
remove_filter( 'redirect_post_location', array( $this, 'validate_value_add_notice_query_var' ), 99 );
|
79 |
+
return add_query_arg( array( 'wcj_' . $this->id . '_meta_box_admin_notice' => true ), $location );
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* validate_value_admin_notices.
|
84 |
+
*
|
85 |
+
* @version 2.9.1
|
86 |
+
* @since 2.9.1
|
87 |
+
*/
|
88 |
+
function validate_value_admin_notices() {
|
89 |
+
if ( ! isset( $_GET[ 'wcj_' . $this->id . '_meta_box_admin_notice' ] ) ) {
|
90 |
+
return;
|
91 |
+
}
|
92 |
+
echo '<div class="error">' . '<p>' . '<div class="message">' .
|
93 |
+
sprintf(
|
94 |
+
__( 'Booster: Free plugin\'s version is limited to only one "%1$s" product with settings on per product basis enabled at a time. You will need to get <a href="%2$s" target="_blank">Booster Plus</a> to add unlimited number of "%1$s" products.', 'woocommerce-jetpack' ),
|
95 |
+
$this->short_desc, 'https://booster.io/plus/'
|
96 |
+
) .
|
97 |
+
'</div>' . '</p>' . '</div>';
|
98 |
+
}
|
99 |
+
|
100 |
/**
|
101 |
* get_meta_box_options.
|
102 |
*
|
includes/functions/wcj-admin-functions.php
CHANGED
@@ -2,13 +2,94 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Admin
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
9 |
|
10 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
if ( ! function_exists( 'wcj_message_replaced_values' ) ) {
|
13 |
/**
|
14 |
* wcj_message_replaced_values.
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Admin
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
9 |
|
10 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
11 |
|
12 |
+
if ( ! function_exists( 'wcj_get_settings_as_multiselect_or_text' ) ) {
|
13 |
+
/**
|
14 |
+
* wcj_get_settings_as_multiselect_or_text.
|
15 |
+
*
|
16 |
+
* @version 2.9.1
|
17 |
+
* @since 2.9.1
|
18 |
+
*/
|
19 |
+
function wcj_get_settings_as_multiselect_or_text( $values, $multiselect_options, $is_multiselect ) {
|
20 |
+
return ( $is_multiselect ?
|
21 |
+
array_merge( $values, array(
|
22 |
+
'type' => 'multiselect',
|
23 |
+
'class' => 'chosen_select',
|
24 |
+
'options' => $multiselect_options,
|
25 |
+
) ) :
|
26 |
+
array_merge( $values, array(
|
27 |
+
'type' => 'text',
|
28 |
+
'desc' => __( 'Enter comma separated list of IDs.', 'woocommerce-jetpack' ),
|
29 |
+
) )
|
30 |
+
);
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
if ( ! function_exists( 'wcj_convert_string_to_array' ) ) {
|
35 |
+
/**
|
36 |
+
* wcj_convert_string_to_array.
|
37 |
+
*
|
38 |
+
* @version 2.9.1
|
39 |
+
* @since 2.9.1
|
40 |
+
* @todo check `custom_explode` function
|
41 |
+
*/
|
42 |
+
function wcj_convert_string_to_array( $value ) {
|
43 |
+
if ( '' === $value ) {
|
44 |
+
$value = array();
|
45 |
+
} else {
|
46 |
+
$value = str_replace( ' ', '', $value );
|
47 |
+
$value = explode( ',', $value );
|
48 |
+
}
|
49 |
+
return $value;
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
if ( ! function_exists( 'wcj_maybe_convert_and_update_option_value' ) ) {
|
54 |
+
/**
|
55 |
+
* wcj_maybe_convert_and_update_option_value.
|
56 |
+
*
|
57 |
+
* @version 2.9.1
|
58 |
+
* @since 2.9.1
|
59 |
+
*/
|
60 |
+
function wcj_maybe_convert_and_update_option_value( $options, $is_multiselect ) {
|
61 |
+
foreach ( $options as $option ) {
|
62 |
+
$value = get_option( $option['id'], $option['default'] );
|
63 |
+
if ( ! $is_multiselect ) {
|
64 |
+
if ( is_array( $value ) ) {
|
65 |
+
$value = implode( ',', $value );
|
66 |
+
update_option( $option['id'], $value );
|
67 |
+
}
|
68 |
+
} else {
|
69 |
+
if ( is_string( $value ) ) {
|
70 |
+
$value = wcj_convert_string_to_array( $value );
|
71 |
+
update_option( $option['id'], $value );
|
72 |
+
}
|
73 |
+
}
|
74 |
+
}
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
if ( ! function_exists( 'wcj_maybe_convert_string_to_array' ) ) {
|
79 |
+
/**
|
80 |
+
* wcj_maybe_convert_string_to_array.
|
81 |
+
*
|
82 |
+
* @version 2.9.1
|
83 |
+
* @since 2.9.1
|
84 |
+
*/
|
85 |
+
function wcj_maybe_convert_string_to_array( $value ) {
|
86 |
+
if ( is_string( $value ) ) {
|
87 |
+
$value = wcj_convert_string_to_array( $value );
|
88 |
+
}
|
89 |
+
return $value;
|
90 |
+
}
|
91 |
+
}
|
92 |
+
|
93 |
if ( ! function_exists( 'wcj_message_replaced_values' ) ) {
|
94 |
/**
|
95 |
* wcj_message_replaced_values.
|
includes/functions/wcj-country-functions.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Country
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -10,10 +10,12 @@ if ( ! function_exists( 'wcj_get_country_flag_by_code' ) ) {
|
|
10 |
/**
|
11 |
* wcj_get_country_flag_by_code.
|
12 |
*
|
13 |
-
@version 2.
|
14 |
*/
|
15 |
function wcj_get_country_flag_by_code( $country_code ) {
|
16 |
-
$
|
|
|
|
|
17 |
return '<img src="' . $img_src . '" title="' . wcj_get_country_name_by_code( $country_code ) . '">';
|
18 |
}
|
19 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Country
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
10 |
/**
|
11 |
* wcj_get_country_flag_by_code.
|
12 |
*
|
13 |
+
@version 2.9.1
|
14 |
*/
|
15 |
function wcj_get_country_flag_by_code( $country_code ) {
|
16 |
+
$img = '/assets/images/flag-icons/' . strtolower( $country_code ) . '.png';
|
17 |
+
$img_path = wcj_plugin_path() . $img;
|
18 |
+
$img_src = wcj_plugin_url() . ( file_exists( $img_path ) ? $img : '/assets/images/flag-icons/no-flag.png' );
|
19 |
return '<img src="' . $img_src . '" title="' . wcj_get_country_name_by_code( $country_code ) . '">';
|
20 |
}
|
21 |
}
|
includes/functions/wcj-date-time-functions.php
CHANGED
@@ -2,13 +2,58 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Date and Time
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
9 |
|
10 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
if ( ! function_exists( 'wcj_check_time_from' ) ) {
|
13 |
/**
|
14 |
* wcj_check_time_from.
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Date and Time
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
9 |
|
10 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
11 |
|
12 |
+
if ( ! function_exists( 'wcj_check_single_date' ) ) {
|
13 |
+
/**
|
14 |
+
* wcj_check_single_date.
|
15 |
+
*
|
16 |
+
* @version 2.9.1
|
17 |
+
* @since 2.9.1
|
18 |
+
*/
|
19 |
+
function wcj_check_single_date( $_date, $args ) {
|
20 |
+
$_date = explode( '-', $_date );
|
21 |
+
if ( isset( $_date[0] ) ) {
|
22 |
+
if ( $args['day_now'] < $_date[0] ) {
|
23 |
+
return false;
|
24 |
+
}
|
25 |
+
}
|
26 |
+
if ( isset( $_date[1] ) ) {
|
27 |
+
if ( $args['day_now'] > $_date[1] ) {
|
28 |
+
return false;
|
29 |
+
}
|
30 |
+
}
|
31 |
+
return true;
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
if ( ! function_exists( 'wcj_check_date' ) ) {
|
36 |
+
/**
|
37 |
+
* wcj_check_date.
|
38 |
+
*
|
39 |
+
* @version 2.9.1
|
40 |
+
* @since 2.9.1
|
41 |
+
*/
|
42 |
+
function wcj_check_date( $_date, $args = array() ) {
|
43 |
+
if ( empty( $args ) ) {
|
44 |
+
$time_now = current_time( 'timestamp' );
|
45 |
+
$args['day_now'] = intval( date( 'j', $time_now ) );
|
46 |
+
}
|
47 |
+
$_date = explode( ',', $_date );
|
48 |
+
foreach ( $_date as $_single_date ) {
|
49 |
+
if ( wcj_check_single_date( $_single_date, $args ) ) {
|
50 |
+
return true;
|
51 |
+
}
|
52 |
+
}
|
53 |
+
return false;
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
if ( ! function_exists( 'wcj_check_time_from' ) ) {
|
58 |
/**
|
59 |
* wcj_check_time_from.
|
includes/functions/wcj-debug-functions.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Debug
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -17,10 +17,10 @@ if ( ! function_exists( 'wcj_log' ) ) {
|
|
17 |
/**
|
18 |
* wcj_log.
|
19 |
*
|
20 |
-
* @version 2.9.
|
21 |
*/
|
22 |
function wcj_log( $message = '' ) {
|
23 |
-
if ( ! wcj_is_module_enabled( 'admin_tools' ) || 'no' === get_option( 'wcj_logging_enabled', 'no' ) ) {
|
24 |
return;
|
25 |
}
|
26 |
if ( '' == $message ) {
|
@@ -29,6 +29,14 @@ if ( ! function_exists( 'wcj_log' ) ) {
|
|
29 |
if ( is_array( $message ) || is_object( $message ) ) {
|
30 |
$message = print_r( $message, true );
|
31 |
}
|
32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
}
|
34 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Debug
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
17 |
/**
|
18 |
* wcj_log.
|
19 |
*
|
20 |
+
* @version 2.9.1
|
21 |
*/
|
22 |
function wcj_log( $message = '' ) {
|
23 |
+
if ( ! wcj_is_module_enabled( 'admin_tools' ) || ( 'no' === get_option( 'wcj_logging_enabled', 'no' ) && 'no' === get_option( 'wcj_wc_logging_enabled', 'no' ) ) ) {
|
24 |
return;
|
25 |
}
|
26 |
if ( '' == $message ) {
|
29 |
if ( is_array( $message ) || is_object( $message ) ) {
|
30 |
$message = print_r( $message, true );
|
31 |
}
|
32 |
+
if ( 'yes' === get_option( 'wcj_logging_enabled', 'no' ) ) {
|
33 |
+
update_option( 'wcj_log', date( 'Y-m-d H:i:s' ) . ' ' . $_SERVER['REQUEST_URI'] . ' [' . $message . ']' . '<br>' . get_option( 'wcj_log', '' ) );
|
34 |
+
}
|
35 |
+
// WC log
|
36 |
+
if ( 'yes' === get_option( 'wcj_wc_logging_enabled', 'no' ) && function_exists( 'wc_get_logger' ) ) {
|
37 |
+
if ( $log = wc_get_logger() ) {
|
38 |
+
$log->log( 'info', $message, array( 'source' => 'booster_for_woocommerce' ) );
|
39 |
+
}
|
40 |
+
}
|
41 |
}
|
42 |
}
|
includes/functions/wcj-exchange-rates-functions.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Exchange Rates
|
4 |
*
|
5 |
-
* @version 2.
|
6 |
* @since 2.7.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -169,6 +169,7 @@ if ( ! function_exists( 'alg_yahoo_get_exchange_rate' ) ) {
|
|
169 |
*
|
170 |
* @version 2.7.0
|
171 |
* @return float rate on success, else 0
|
|
|
172 |
*/
|
173 |
function alg_yahoo_get_exchange_rate( $currency_from, $currency_to ) {
|
174 |
|
@@ -197,3 +198,72 @@ if ( ! function_exists( 'alg_yahoo_get_exchange_rate' ) ) {
|
|
197 |
// return ( isset( $exchange_rate->rate ) ) ? $exchange_rate->rate : 0;
|
198 |
}
|
199 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - Exchange Rates
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.7.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
169 |
*
|
170 |
* @version 2.7.0
|
171 |
* @return float rate on success, else 0
|
172 |
+
* @todo `alg_` to `wcj_`
|
173 |
*/
|
174 |
function alg_yahoo_get_exchange_rate( $currency_from, $currency_to ) {
|
175 |
|
198 |
// return ( isset( $exchange_rate->rate ) ) ? $exchange_rate->rate : 0;
|
199 |
}
|
200 |
}
|
201 |
+
|
202 |
+
if ( ! function_exists( 'wcj_yahoo_get_exchange_rate_average_USD' ) ) {
|
203 |
+
/*
|
204 |
+
* wcj_yahoo_get_exchange_rate_average_USD.
|
205 |
+
*
|
206 |
+
* @version 2.9.1
|
207 |
+
* @since 2.5.3
|
208 |
+
* @return false or rate
|
209 |
+
* @see https://stackoverflow.com/questions/44075788/yahoo-yql-yahoo-finance-historicaldata-returning-empty-results
|
210 |
+
* @see https://forums.yahoo.net/t5/Yahoo-Finance-help/Is-Yahoo-Finance-API-broken/td-p/250503/page/3
|
211 |
+
* @deprecated This feature was discontinued by the Yahoo Finance team and they will not be reintroducing that functionality.
|
212 |
+
*/
|
213 |
+
function wcj_yahoo_get_exchange_rate_average_USD( $currency, $start_date, $end_date ) {
|
214 |
+
$url = 'https://query.yahooapis.com/v1/public/yql?q=select%20Close%20from%20yahoo.finance.historicaldata%20where%20symbol%20%3D%20%22'
|
215 |
+
. $currency . '%3DX%22%20and%20startDate%20%3D%20%22'
|
216 |
+
. $start_date . '%22%20and%20endDate%20%3D%20%22'
|
217 |
+
. $end_date. '%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=';
|
218 |
+
ob_start();
|
219 |
+
$max_execution_time = ini_get( 'max_execution_time' );
|
220 |
+
set_time_limit( 15 );
|
221 |
+
$exchange_rate = json_decode( file_get_contents( $url ) );
|
222 |
+
set_time_limit( $max_execution_time );
|
223 |
+
ob_end_clean();
|
224 |
+
if ( ! isset( $exchange_rate->query->results->quote ) || count( $exchange_rate->query->results->quote ) < 1 ) {
|
225 |
+
return false;
|
226 |
+
}
|
227 |
+
$average_currency = 0;
|
228 |
+
foreach ( $exchange_rate->query->results->quote as $quote ) {
|
229 |
+
$average_currency += $quote->Close;
|
230 |
+
}
|
231 |
+
$average_currency = $average_currency / count( $exchange_rate->query->results->quote );
|
232 |
+
if ( 0 == $average_currency ) {
|
233 |
+
return false;
|
234 |
+
}
|
235 |
+
return $average_currency;
|
236 |
+
}
|
237 |
+
}
|
238 |
+
|
239 |
+
if ( ! function_exists( 'wcj_yahoo_get_exchange_rate_average' ) ) {
|
240 |
+
/*
|
241 |
+
* wcj_yahoo_get_exchange_rate_average.
|
242 |
+
*
|
243 |
+
* @version 2.9.1
|
244 |
+
* @since 2.4.7
|
245 |
+
* @return false or rate
|
246 |
+
*/
|
247 |
+
function wcj_yahoo_get_exchange_rate_average( $currency_from, $currency_to, $start_date, $end_date ) {
|
248 |
+
// USD / $currency_from
|
249 |
+
if ( 'USD' != $currency_from ) {
|
250 |
+
$average_currency_from = wcj_yahoo_get_exchange_rate_average_USD( $currency_from, $start_date, $end_date );
|
251 |
+
if ( 0 == $average_currency_from ) {
|
252 |
+
return false;
|
253 |
+
}
|
254 |
+
} else {
|
255 |
+
$average_currency_from = 1.0;
|
256 |
+
}
|
257 |
+
// USD / $currency_to
|
258 |
+
if ( 'USD' != $currency_to ) {
|
259 |
+
$average_currency_to = wcj_yahoo_get_exchange_rate_average_USD( $currency_to, $start_date, $end_date );
|
260 |
+
if ( 0 == $average_currency_to ) {
|
261 |
+
return false;
|
262 |
+
}
|
263 |
+
} else {
|
264 |
+
$average_currency_to = 1.0;
|
265 |
+
}
|
266 |
+
// Final rate
|
267 |
+
return $average_currency_to / $average_currency_from;
|
268 |
+
}
|
269 |
+
}
|
includes/js/wcj-track-users.js
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* wcj-track-users.js
|
3 |
+
*
|
4 |
+
* @version 2.9.1
|
5 |
+
* @version 2.9.1
|
6 |
+
*/
|
7 |
+
|
8 |
+
jQuery(document).ready(function() {
|
9 |
+
var data = {
|
10 |
+
'action': 'wcj_track_users',
|
11 |
+
'wcj_http_referer': track_users_ajax_object.http_referer,
|
12 |
+
'wcj_user_ip': track_users_ajax_object.user_ip
|
13 |
+
};
|
14 |
+
jQuery.ajax({
|
15 |
+
type: "POST",
|
16 |
+
url: track_users_ajax_object.ajax_url,
|
17 |
+
data: data,
|
18 |
+
});
|
19 |
+
});
|
includes/reports/wcj-class-reports-monthly-sales.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* Booster for WooCommerce - Reports -
|
4 |
*
|
5 |
-
* @version 2.
|
6 |
* @since 2.4.7
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -26,106 +26,56 @@ class WCJ_Reports_Monthly_Sales {
|
|
26 |
/**
|
27 |
* get_report.
|
28 |
*
|
29 |
-
* @version 2.
|
30 |
* @since 2.4.7
|
31 |
*/
|
32 |
function get_report() {
|
33 |
$html = '';
|
34 |
-
|
35 |
-
|
|
|
|
|
|
|
|
|
36 |
delete_option( 'wcj_reports_currency_rates' );
|
37 |
-
$html .= '<p>' . __( 'Currency rates deleted.', 'woocommerce-jetpack' ) . '</p>';
|
38 |
}
|
|
|
|
|
39 |
$html .= $this->get_monthly_sales_report();
|
40 |
return $html;
|
41 |
}
|
42 |
|
43 |
/*
|
44 |
-
*
|
45 |
-
*
|
46 |
-
* @version 2.5.3
|
47 |
-
* @since 2.5.3
|
48 |
-
*/
|
49 |
-
function get_exchange_rate_average_USD( $currency, $start_date, $end_date ) {
|
50 |
-
$url = 'https://query.yahooapis.com/v1/public/yql?q=select%20Close%20from%20yahoo.finance.historicaldata%20where%20symbol%20%3D%20%22'
|
51 |
-
. $currency . '%3DX%22%20and%20startDate%20%3D%20%22'
|
52 |
-
. $start_date . '%22%20and%20endDate%20%3D%20%22'
|
53 |
-
. $end_date. '%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=';
|
54 |
-
ob_start();
|
55 |
-
$max_execution_time = ini_get( 'max_execution_time' );
|
56 |
-
set_time_limit( 5 );
|
57 |
-
$exchange_rate = json_decode( file_get_contents( $url ) );
|
58 |
-
set_time_limit( $max_execution_time );
|
59 |
-
ob_end_clean();
|
60 |
-
if ( ! isset( $exchange_rate->query->results->quote ) || count( $exchange_rate->query->results->quote ) < 1 ) {
|
61 |
-
return false;
|
62 |
-
}
|
63 |
-
$average_currency = 0;
|
64 |
-
foreach ( $exchange_rate->query->results->quote as $quote ) {
|
65 |
-
$average_currency += $quote->Close;
|
66 |
-
}
|
67 |
-
$average_currency = $average_currency / count( $exchange_rate->query->results->quote );
|
68 |
-
if ( 0 == $average_currency ) {
|
69 |
-
return false;
|
70 |
-
}
|
71 |
-
return $average_currency;
|
72 |
-
}
|
73 |
-
|
74 |
-
/*
|
75 |
-
* get_exchange_rate_average.
|
76 |
*
|
77 |
-
* @version 2.
|
78 |
* @since 2.4.7
|
79 |
-
* @todo current month rate - save only once a day (now saving every time)
|
80 |
*/
|
81 |
-
function
|
82 |
// Same currency
|
83 |
if ( $currency_from == $currency_to ) {
|
84 |
return 1.0;
|
85 |
}
|
86 |
// Saved values
|
87 |
$saved_rates = get_option( 'wcj_reports_currency_rates', array() );
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
if ( isset( $saved_rates[ $currency_from ][ $currency_to ][ $start_date ][ $end_date ] ) ) {
|
92 |
-
return $saved_rates[ $currency_from ][ $currency_to ][ $start_date ][ $end_date ];
|
93 |
-
}
|
94 |
-
}
|
95 |
-
}
|
96 |
-
// Get exchange rate
|
97 |
-
if ( 'USD' != $currency_from ) {
|
98 |
-
// USD/$currency_from
|
99 |
-
$average_currency_from = $this->get_exchange_rate_average_USD( $currency_from, $start_date, $end_date );
|
100 |
-
if ( false === $average_currency_from ) {
|
101 |
-
return false;
|
102 |
-
}
|
103 |
-
} else {
|
104 |
-
$average_currency_from = 1.0;
|
105 |
-
}
|
106 |
-
if ( 'USD' != $currency_to ) {
|
107 |
-
// USD/$currency_to
|
108 |
-
$average_currency_to = $this->get_exchange_rate_average_USD( $currency_to, $start_date, $end_date );
|
109 |
-
if ( false === $average_currency_to ) {
|
110 |
-
return false;
|
111 |
}
|
112 |
-
} else {
|
113 |
-
$average_currency_to = 1.0;
|
114 |
-
}
|
115 |
-
$the_rate = $average_currency_to / $average_currency_from;
|
116 |
-
if ( ! $is_current_month ) {
|
117 |
-
$saved_rates[ $currency_from ][ $currency_to ][ $start_date ][ $end_date ] = $the_rate;
|
118 |
-
update_option( 'wcj_reports_currency_rates', $saved_rates );
|
119 |
}
|
120 |
-
|
|
|
121 |
}
|
122 |
|
123 |
/*
|
124 |
* get_monthly_sales_report.
|
125 |
*
|
126 |
-
* @version 2.
|
127 |
* @since 2.4.7
|
128 |
-
* @todo
|
|
|
|
|
129 |
*/
|
130 |
function get_monthly_sales_report() {
|
131 |
|
@@ -140,23 +90,31 @@ class WCJ_Reports_Monthly_Sales {
|
|
140 |
$total_orders_sum_average_order_array = array( __( 'Average / Order (excl. TAX)', 'woocommerce-jetpack' ) );
|
141 |
$total_orders_sum_average_array = array( __( 'Average / Day (excl. TAX)', 'woocommerce-jetpack' ) );
|
142 |
$currency_rates_array = array( __( 'Currency Rates', 'woocommerce-jetpack' ) );
|
|
|
143 |
|
144 |
$total_months_days = 0;
|
145 |
$total_orders_total = 0;
|
146 |
$total_orders_sum_total = 0;
|
147 |
$total_orders_sum_excl_tax_total = 0;
|
148 |
|
149 |
-
$order_currencies_array
|
150 |
-
$
|
151 |
-
$
|
152 |
-
$
|
|
|
|
|
|
|
153 |
for ( $i = 1; $i <= 12; $i++ ) {
|
154 |
$current_months_averages = array();
|
155 |
-
$total_orders
|
156 |
-
$total_orders_sum
|
157 |
$total_orders_sum_excl_tax = 0;
|
158 |
-
$offset
|
159 |
-
$
|
|
|
|
|
|
|
|
|
160 |
if ( 0 == $day_for_average ) {
|
161 |
$months_array[] = date_i18n( 'F', mktime( 0, 0, 0, $i, 1, $this->year ) );
|
162 |
$months_days_array[] = '-';
|
@@ -167,6 +125,7 @@ class WCJ_Reports_Monthly_Sales {
|
|
167 |
$total_orders_sum_average_order_array[] = '-';
|
168 |
$total_orders_sum_average_array[] = '-';
|
169 |
$currency_rates_array[] = '';
|
|
|
170 |
continue;
|
171 |
}
|
172 |
while( true ) {
|
@@ -177,6 +136,7 @@ class WCJ_Reports_Monthly_Sales {
|
|
177 |
'orderby' => 'date',
|
178 |
'order' => 'DESC',
|
179 |
'offset' => $offset,
|
|
|
180 |
'date_query' => array(
|
181 |
'after' => array(
|
182 |
'year' => $this->year,
|
@@ -192,61 +152,71 @@ class WCJ_Reports_Monthly_Sales {
|
|
192 |
),
|
193 |
);
|
194 |
$loop_orders = new WP_Query( $args_orders );
|
195 |
-
if ( ! $loop_orders->have_posts() )
|
196 |
-
|
197 |
-
|
198 |
-
|
|
|
199 |
$order_currency = wcj_get_order_currency( $order );
|
200 |
-
|
201 |
-
|
|
|
202 |
}
|
203 |
-
$order_currencies_array[ $order_currency ]++;
|
|
|
|
|
|
|
|
|
|
|
204 |
$total_orders++;
|
205 |
$order_total = $order->get_total();
|
206 |
$order_total_excl_tax = $order->get_total() - $order->get_total_tax();
|
207 |
if ( ! isset( $current_months_averages[ $order_currency ][ $report_currency ] ) ) {
|
208 |
$start_date = $this->year . '-' . sprintf( '%02d', $i ) . '-' . '01';
|
209 |
$end_date = date( 'Y-m-t', strtotime( $start_date ) );
|
210 |
-
$the_rate = $this->
|
211 |
-
if (
|
212 |
-
|
213 |
-
$start_date_prev_month = date( 'Y-m-d', strtotime( 'first day of last month', strtotime( $start_date ) ) );
|
214 |
-
$end_date_prev_month = date( 'Y-m-t', strtotime( $start_date_prev_month ) );
|
215 |
-
$the_rate = $this->get_exchange_rate_average( $order_currency, $report_currency, $start_date_prev_month, $end_date_prev_month );
|
216 |
-
if ( false === $the_rate ) {
|
217 |
-
return '<p>' . sprintf( __( 'Error getting currency rate for %s', 'woocommerce-jetpack' ), $order_currency . $report_currency ) . '</p>';
|
218 |
-
}
|
219 |
}
|
220 |
$current_months_averages[ $order_currency ][ $report_currency ] = $the_rate;
|
221 |
}
|
222 |
-
$total_orders_sum
|
223 |
$total_orders_sum_excl_tax += $order_total_excl_tax * $current_months_averages[ $order_currency ][ $report_currency ];
|
224 |
-
|
225 |
$offset += $block_size;
|
226 |
}
|
227 |
|
228 |
// Month Name
|
229 |
-
$months_array[] = date_i18n( 'F', mktime( 0, 0, 0, $i, 1, $this->year ) )
|
230 |
// Month Days
|
231 |
$months_days_array[] = ( date( 'm' ) >= $i || $this->year != date( 'Y' ) ? $day_for_average : '-' );
|
232 |
$total_months_days += ( date( 'm' ) >= $i || $this->year != date( 'Y' ) ? $day_for_average : 0 );
|
233 |
|
234 |
// Sales
|
235 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
$total_orders_total += $total_orders;
|
237 |
// Sales Average
|
238 |
-
$average_sales_result = $total_orders / $day_for_average;
|
239 |
$total_orders_average_array[] = ( $average_sales_result > 0 ? number_format( $average_sales_result, 2, '.', ',' ) : '-' );
|
240 |
|
241 |
// Sum
|
242 |
$total_orders_sum_array[] = ( $total_orders_sum > 0 ? $report_currency . ' ' . number_format( $total_orders_sum, 2, '.', ',' ) : '-' );
|
243 |
$total_orders_sum_total += $total_orders_sum;
|
244 |
// Sum excl. Tax
|
245 |
-
|
246 |
-
$
|
247 |
-
|
248 |
-
|
249 |
-
|
|
|
|
|
|
|
250 |
// Order Average
|
251 |
$total_orders_sum_average_order_array[] = ( $total_orders_sum_excl_tax > 0 && $total_orders > 0 ?
|
252 |
$report_currency . ' ' . number_format( $total_orders_sum_excl_tax / $total_orders, 2, '.', ',' ) : '-' );
|
@@ -255,20 +225,45 @@ class WCJ_Reports_Monthly_Sales {
|
|
255 |
$total_orders_sum_average_array[] = ( $average_result > 0 ? $report_currency . ' ' . number_format( $average_result, 2, '.', ',' ) : '-' );
|
256 |
|
257 |
// Currency Rates
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
$
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
|
|
267 |
}
|
268 |
}
|
269 |
-
|
270 |
-
|
271 |
$currency_rates_array[] = $currency_rates_html;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
}
|
273 |
|
274 |
// Totals
|
@@ -278,9 +273,12 @@ class WCJ_Reports_Monthly_Sales {
|
|
278 |
$total_orders_average_array[] = ( $total_months_days > 0 ? number_format( ( $total_orders_total / $total_months_days ), 2, '.', ',' ) : '-' );
|
279 |
$total_orders_sum_array[] = $report_currency . ' ' . number_format( $total_orders_sum_total, 2, '.', ',' );
|
280 |
$total_orders_sum_excl_tax_array[] = $report_currency . ' ' . number_format( $total_orders_sum_excl_tax_total, 2, '.', ',' );
|
281 |
-
$total_orders_sum_average_order_array[] = ( $total_orders_total > 0 ?
|
282 |
-
|
|
|
|
|
283 |
$currency_rates_array[] = '';
|
|
|
284 |
|
285 |
// Table
|
286 |
$table_data[] = $months_array;
|
@@ -292,19 +290,23 @@ class WCJ_Reports_Monthly_Sales {
|
|
292 |
$table_data[] = $total_orders_sum_average_order_array;
|
293 |
$table_data[] = $total_orders_sum_average_array;
|
294 |
$table_data[] = $currency_rates_array;
|
295 |
-
|
296 |
-
$table_data[] = array( $order_currency . ' (' . $total_currency_orders . ')' );
|
297 |
-
} */
|
298 |
|
299 |
$execution_time_end = microtime( true );
|
300 |
|
301 |
// HTML
|
302 |
$html = '';
|
303 |
$menu = '';
|
|
|
304 |
$menu .= '<ul class="subsubsub">';
|
305 |
-
$menu .= '<li><a href="' . add_query_arg( 'year', date( 'Y' ) ) . '" class="' .
|
306 |
-
|
|
|
|
|
|
|
|
|
307 |
$menu .= '</ul>';
|
|
|
308 |
$menu .= '<br class="clear">';
|
309 |
$html .= $menu;
|
310 |
$html .= '<h4>' . __( 'Report currency', 'woocommerce-jetpack' ) . ': ' . $report_currency . '</h4>';
|
@@ -312,6 +314,7 @@ class WCJ_Reports_Monthly_Sales {
|
|
312 |
for ( $i = 1; $i <= 12; $i++ ) {
|
313 |
$months_styles[] = 'width:6%;';
|
314 |
}
|
|
|
315 |
$html .= wcj_get_table_html( $table_data, array(
|
316 |
'table_class' => 'widefat striped',
|
317 |
'table_heading_type' => 'horizontal',
|
@@ -323,8 +326,13 @@ class WCJ_Reports_Monthly_Sales {
|
|
323 |
) );
|
324 |
$html .= '<p style="font-size:x-small;"><em>' . sprintf( __( 'Report generated in: %s s', 'woocommerce-jetpack' ),
|
325 |
number_format( ( $execution_time_end - $execution_time_start ), 2, '.', ',' ) ) . '</em></p>';
|
326 |
-
$html .= '<
|
327 |
-
|
|
|
|
|
|
|
|
|
|
|
328 |
return $html;
|
329 |
}
|
330 |
}
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Booster for WooCommerce - Reports - Monthly Sales (with Currency Conversion)
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.4.7
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
26 |
/**
|
27 |
* get_report.
|
28 |
*
|
29 |
+
* @version 2.9.1
|
30 |
* @since 2.4.7
|
31 |
*/
|
32 |
function get_report() {
|
33 |
$html = '';
|
34 |
+
if ( isset( $_POST['wcj_save_currency_rates'] ) && isset( $_POST['wcj_save_currency_rates_array'] ) && is_array( $_POST['wcj_save_currency_rates_array'] ) ) {
|
35 |
+
// Save rates
|
36 |
+
update_option( 'wcj_reports_currency_rates', array_replace_recursive( get_option( 'wcj_reports_currency_rates', array() ), $_POST['wcj_save_currency_rates_array'] ) );
|
37 |
+
$html .= '<div class="notice notice-success is-dismissible"><p><strong>' . __( 'Currency rates saved.', 'woocommerce-jetpack' ) . '</strong></p></div>';
|
38 |
+
} elseif ( isset( $_POST['wcj_reset_currency_rates'] ) ) {
|
39 |
+
// Delete rates
|
40 |
delete_option( 'wcj_reports_currency_rates' );
|
41 |
+
$html .= '<div class="notice notice-success is-dismissible"><p><strong>' . __( 'Currency rates deleted.', 'woocommerce-jetpack' ) . '</strong></p></div>';
|
42 |
}
|
43 |
+
// Show report
|
44 |
+
$this->year = isset( $_GET['year'] ) ? $_GET['year'] : date( 'Y' );
|
45 |
$html .= $this->get_monthly_sales_report();
|
46 |
return $html;
|
47 |
}
|
48 |
|
49 |
/*
|
50 |
+
* get_saved_exchange_rate.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
*
|
52 |
+
* @version 2.9.1
|
53 |
* @since 2.4.7
|
|
|
54 |
*/
|
55 |
+
function get_saved_exchange_rate( $currency_from, $currency_to, $start_date, $end_date ) {
|
56 |
// Same currency
|
57 |
if ( $currency_from == $currency_to ) {
|
58 |
return 1.0;
|
59 |
}
|
60 |
// Saved values
|
61 |
$saved_rates = get_option( 'wcj_reports_currency_rates', array() );
|
62 |
+
if ( ! empty( $saved_rates ) ) {
|
63 |
+
if ( isset( $saved_rates[ $currency_from ][ $currency_to ][ $start_date ][ $end_date ] ) ) {
|
64 |
+
return $saved_rates[ $currency_from ][ $currency_to ][ $start_date ][ $end_date ];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
}
|
67 |
+
// Fallback rate
|
68 |
+
return 1.0;
|
69 |
}
|
70 |
|
71 |
/*
|
72 |
* get_monthly_sales_report.
|
73 |
*
|
74 |
+
* @version 2.9.1
|
75 |
* @since 2.4.7
|
76 |
+
* @todo (maybe) visible rows selection by admin (as option)
|
77 |
+
* @todo (maybe) take not monthly average, but "Close" of closest day (probably create new "Daily Sales (with Currency Conversion)" report)
|
78 |
+
* @todo (maybe) option to grab average monthly exchange rates from some data server (unfortunately discontinued by the Yahoo)
|
79 |
*/
|
80 |
function get_monthly_sales_report() {
|
81 |
|
90 |
$total_orders_sum_average_order_array = array( __( 'Average / Order (excl. TAX)', 'woocommerce-jetpack' ) );
|
91 |
$total_orders_sum_average_array = array( __( 'Average / Day (excl. TAX)', 'woocommerce-jetpack' ) );
|
92 |
$currency_rates_array = array( __( 'Currency Rates', 'woocommerce-jetpack' ) );
|
93 |
+
$orders_by_currency_array = array( __( 'Orders by Currency', 'woocommerce-jetpack' ) );
|
94 |
|
95 |
$total_months_days = 0;
|
96 |
$total_orders_total = 0;
|
97 |
$total_orders_sum_total = 0;
|
98 |
$total_orders_sum_excl_tax_total = 0;
|
99 |
|
100 |
+
$order_currencies_array = array();
|
101 |
+
$order_currencies_array_totals = array();
|
102 |
+
$report_currency = ( isset( $_GET['currency'] ) && 'merge' != $_GET['currency'] ) ? $_GET['currency'] : get_woocommerce_currency();
|
103 |
+
$block_size = 256;
|
104 |
+
$table_data = array();
|
105 |
+
$do_forecast = ( 'yes' === get_option( 'wcj_reports_orders_monthly_sales_forecast', 'no' ) );
|
106 |
+
$do_include_today = ( 'yes' === get_option( 'wcj_reports_orders_monthly_sales_include_today', 'no' ) );
|
107 |
for ( $i = 1; $i <= 12; $i++ ) {
|
108 |
$current_months_averages = array();
|
109 |
+
$total_orders = 0;
|
110 |
+
$total_orders_sum = 0;
|
111 |
$total_orders_sum_excl_tax = 0;
|
112 |
+
$offset = 0;
|
113 |
+
$is_current_month = ( $i == date( 'm' ) && $this->year == date( 'Y' ) );
|
114 |
+
$day_for_average = ( $is_current_month ?
|
115 |
+
( $do_include_today ? date( 'd' ) : ( date( 'd' ) - 1 ) ) : // today or yesterday
|
116 |
+
date( 't', strtotime( $this->year . '-' . sprintf( '%02d', $i ) . '-' . '01' ) ) // last day of the month
|
117 |
+
);
|
118 |
if ( 0 == $day_for_average ) {
|
119 |
$months_array[] = date_i18n( 'F', mktime( 0, 0, 0, $i, 1, $this->year ) );
|
120 |
$months_days_array[] = '-';
|
125 |
$total_orders_sum_average_order_array[] = '-';
|
126 |
$total_orders_sum_average_array[] = '-';
|
127 |
$currency_rates_array[] = '';
|
128 |
+
$orders_by_currency_array[] = '';
|
129 |
continue;
|
130 |
}
|
131 |
while( true ) {
|
136 |
'orderby' => 'date',
|
137 |
'order' => 'DESC',
|
138 |
'offset' => $offset,
|
139 |
+
'fields' => 'ids',
|
140 |
'date_query' => array(
|
141 |
'after' => array(
|
142 |
'year' => $this->year,
|
152 |
),
|
153 |
);
|
154 |
$loop_orders = new WP_Query( $args_orders );
|
155 |
+
if ( ! $loop_orders->have_posts() ) {
|
156 |
+
break;
|
157 |
+
}
|
158 |
+
foreach ( $loop_orders->posts as $order_id ) {
|
159 |
+
$order = wc_get_order( $order_id );
|
160 |
$order_currency = wcj_get_order_currency( $order );
|
161 |
+
// Orders by currency by month
|
162 |
+
if ( ! isset( $order_currencies_array[ $i ][ $order_currency ] ) ) {
|
163 |
+
$order_currencies_array[ $i ][ $order_currency ] = 0;
|
164 |
}
|
165 |
+
$order_currencies_array[ $i ][ $order_currency ]++;
|
166 |
+
// Orders by currency total
|
167 |
+
if ( ! isset( $order_currencies_array_totals[ $order_currency ] ) ) {
|
168 |
+
$order_currencies_array_totals[ $order_currency ] = 0;
|
169 |
+
}
|
170 |
+
$order_currencies_array_totals[ $order_currency ]++;
|
171 |
$total_orders++;
|
172 |
$order_total = $order->get_total();
|
173 |
$order_total_excl_tax = $order->get_total() - $order->get_total_tax();
|
174 |
if ( ! isset( $current_months_averages[ $order_currency ][ $report_currency ] ) ) {
|
175 |
$start_date = $this->year . '-' . sprintf( '%02d', $i ) . '-' . '01';
|
176 |
$end_date = date( 'Y-m-t', strtotime( $start_date ) );
|
177 |
+
$the_rate = $this->get_saved_exchange_rate( $order_currency, $report_currency, $start_date, $end_date );
|
178 |
+
if ( 0 == $the_rate ) {
|
179 |
+
$the_rate = 1;
|
|
|
|
|
|
|
|
|
|
|
|
|
180 |
}
|
181 |
$current_months_averages[ $order_currency ][ $report_currency ] = $the_rate;
|
182 |
}
|
183 |
+
$total_orders_sum += $order_total * $current_months_averages[ $order_currency ][ $report_currency ];
|
184 |
$total_orders_sum_excl_tax += $order_total_excl_tax * $current_months_averages[ $order_currency ][ $report_currency ];
|
185 |
+
}
|
186 |
$offset += $block_size;
|
187 |
}
|
188 |
|
189 |
// Month Name
|
190 |
+
$months_array[] = date_i18n( 'F', mktime( 0, 0, 0, $i, 1, $this->year ) );
|
191 |
// Month Days
|
192 |
$months_days_array[] = ( date( 'm' ) >= $i || $this->year != date( 'Y' ) ? $day_for_average : '-' );
|
193 |
$total_months_days += ( date( 'm' ) >= $i || $this->year != date( 'Y' ) ? $day_for_average : 0 );
|
194 |
|
195 |
// Sales
|
196 |
+
$average_sales_result = $total_orders / $day_for_average;
|
197 |
+
if ( $is_current_month && $do_forecast ) {
|
198 |
+
$forecast_total_orders = ( $average_sales_result ) * ( date( 't', strtotime( $this->year . '-' . sprintf( '%02d', $i ) . '-' . '01' ) ) );
|
199 |
+
}
|
200 |
+
$total_orders_array[] = ( $total_orders > 0 ? $total_orders . ( $is_current_month && $do_forecast ?
|
201 |
+
' <span style="font-size:smaller;">(' . round( $forecast_total_orders ) . ')</span>' : ''
|
202 |
+
) : '-'
|
203 |
+
);
|
204 |
$total_orders_total += $total_orders;
|
205 |
// Sales Average
|
|
|
206 |
$total_orders_average_array[] = ( $average_sales_result > 0 ? number_format( $average_sales_result, 2, '.', ',' ) : '-' );
|
207 |
|
208 |
// Sum
|
209 |
$total_orders_sum_array[] = ( $total_orders_sum > 0 ? $report_currency . ' ' . number_format( $total_orders_sum, 2, '.', ',' ) : '-' );
|
210 |
$total_orders_sum_total += $total_orders_sum;
|
211 |
// Sum excl. Tax
|
212 |
+
$total_orders_sum_excl_tax_array[] = ( $total_orders_sum_excl_tax > 0 ?
|
213 |
+
$report_currency . ' ' . number_format( $total_orders_sum_excl_tax, 2, '.', ',' ) . ( $is_current_month && $do_forecast ?
|
214 |
+
' <span style="font-size:smaller;">(' . $report_currency . ' ' .
|
215 |
+
number_format( $forecast_total_orders * $total_orders_sum_excl_tax / $total_orders, 2 ) . ')</span>' : ''
|
216 |
+
) : '-'
|
217 |
+
);
|
218 |
+
$total_orders_sum_excl_tax_total += $total_orders_sum_excl_tax;
|
219 |
+
|
220 |
// Order Average
|
221 |
$total_orders_sum_average_order_array[] = ( $total_orders_sum_excl_tax > 0 && $total_orders > 0 ?
|
222 |
$report_currency . ' ' . number_format( $total_orders_sum_excl_tax / $total_orders, 2, '.', ',' ) : '-' );
|
225 |
$total_orders_sum_average_array[] = ( $average_result > 0 ? $report_currency . ' ' . number_format( $average_result, 2, '.', ',' ) : '-' );
|
226 |
|
227 |
// Currency Rates
|
228 |
+
ksort( $current_months_averages );
|
229 |
+
$currency_rates_html = '<pre style="font-size:x-small;">';
|
230 |
+
foreach ( $current_months_averages as $currency_from => $currencies_to ) {
|
231 |
+
foreach ( $currencies_to as $currency_to => $rate ) {
|
232 |
+
if ( $currency_from != $currency_to ) {
|
233 |
+
$currency_rates_html .= $currency_from . $currency_to . ' ' .
|
234 |
+
'<input style="width:50px;font-size:x-small;" type="number" ' .
|
235 |
+
'name="wcj_save_currency_rates_array[' . $currency_from . '][' . $currency_to . '][' . $start_date . '][' . $end_date . ']" ' .
|
236 |
+
'value="' . $rate . '" step="0.000001">' .
|
237 |
+
'<br>';
|
238 |
}
|
239 |
}
|
240 |
+
}
|
241 |
+
$currency_rates_html .= '</pre>';
|
242 |
$currency_rates_array[] = $currency_rates_html;
|
243 |
+
|
244 |
+
// Orders by Currency by Month
|
245 |
+
if ( isset( $order_currencies_array[ $i ] ) ) {
|
246 |
+
ksort( $order_currencies_array[ $i ] );
|
247 |
+
$orders_by_currency_html = '<pre style="font-size:x-small;">';
|
248 |
+
foreach ( $order_currencies_array[ $i ] as $_order_currency => $total_orders_by_currency ) {
|
249 |
+
$orders_by_currency_html .= $_order_currency . ' ' . $total_orders_by_currency . '<br>';
|
250 |
+
}
|
251 |
+
$orders_by_currency_html .= '</pre>';
|
252 |
+
$orders_by_currency_array[] = $orders_by_currency_html;
|
253 |
+
} else {
|
254 |
+
$orders_by_currency_array[] = '';
|
255 |
+
}
|
256 |
+
}
|
257 |
+
|
258 |
+
// Orders by Currency Total
|
259 |
+
$order_currencies_totals_html = '';
|
260 |
+
if ( ! empty ( $order_currencies_array_totals ) ) {
|
261 |
+
ksort( $order_currencies_array_totals );
|
262 |
+
$order_currencies_totals_html = '<pre style="font-size:x-small;">';
|
263 |
+
foreach ( $order_currencies_array_totals as $_order_currency => $total_orders_by_currency ) {
|
264 |
+
$order_currencies_totals_html .= $_order_currency . ' ' . $total_orders_by_currency . '<br>';
|
265 |
+
}
|
266 |
+
$order_currencies_totals_html .= '</pre>';
|
267 |
}
|
268 |
|
269 |
// Totals
|
273 |
$total_orders_average_array[] = ( $total_months_days > 0 ? number_format( ( $total_orders_total / $total_months_days ), 2, '.', ',' ) : '-' );
|
274 |
$total_orders_sum_array[] = $report_currency . ' ' . number_format( $total_orders_sum_total, 2, '.', ',' );
|
275 |
$total_orders_sum_excl_tax_array[] = $report_currency . ' ' . number_format( $total_orders_sum_excl_tax_total, 2, '.', ',' );
|
276 |
+
$total_orders_sum_average_order_array[] = ( $total_orders_total > 0 ?
|
277 |
+
$report_currency . ' ' . number_format( ( $total_orders_sum_excl_tax_total / $total_orders_total ), 2, '.', ',' ) : '-' );
|
278 |
+
$total_orders_sum_average_array[] = ( $total_months_days > 0 ?
|
279 |
+
$report_currency . ' ' . number_format( ( $total_orders_sum_excl_tax_total / $total_months_days ), 2, '.', ',' ) : '-' );
|
280 |
$currency_rates_array[] = '';
|
281 |
+
$orders_by_currency_array[] = $order_currencies_totals_html;
|
282 |
|
283 |
// Table
|
284 |
$table_data[] = $months_array;
|
290 |
$table_data[] = $total_orders_sum_average_order_array;
|
291 |
$table_data[] = $total_orders_sum_average_array;
|
292 |
$table_data[] = $currency_rates_array;
|
293 |
+
$table_data[] = $orders_by_currency_array;
|
|
|
|
|
294 |
|
295 |
$execution_time_end = microtime( true );
|
296 |
|
297 |
// HTML
|
298 |
$html = '';
|
299 |
$menu = '';
|
300 |
+
$menu .= '<p>';
|
301 |
$menu .= '<ul class="subsubsub">';
|
302 |
+
$menu .= '<li><a href="' . add_query_arg( 'year', date( 'Y' ) ) . '" class="' .
|
303 |
+
( ( $this->year == date( 'Y' ) ) ? 'current' : '' ) . '">' . date( 'Y' ) . '</a> | </li>';
|
304 |
+
$menu .= '<li><a href="' . add_query_arg( 'year', ( date( 'Y' ) - 1 ) ) . '" class="' .
|
305 |
+
( ( $this->year == ( date( 'Y' ) - 1 ) ) ? 'current' : '' ) . '">' . ( date( 'Y' ) - 1 ) . '</a> | </li>';
|
306 |
+
$menu .= '<li><a href="' . add_query_arg( 'year', ( date( 'Y' ) - 2 ) ) . '" class="' .
|
307 |
+
( ( $this->year == ( date( 'Y' ) - 2 ) ) ? 'current' : '' ) . '">' . ( date( 'Y' ) - 2 ) . '</a> | </li>';
|
308 |
$menu .= '</ul>';
|
309 |
+
$menu .= '</p>';
|
310 |
$menu .= '<br class="clear">';
|
311 |
$html .= $menu;
|
312 |
$html .= '<h4>' . __( 'Report currency', 'woocommerce-jetpack' ) . ': ' . $report_currency . '</h4>';
|
314 |
for ( $i = 1; $i <= 12; $i++ ) {
|
315 |
$months_styles[] = 'width:6%;';
|
316 |
}
|
317 |
+
$html .= '<form method="post" action="">';
|
318 |
$html .= wcj_get_table_html( $table_data, array(
|
319 |
'table_class' => 'widefat striped',
|
320 |
'table_heading_type' => 'horizontal',
|
326 |
) );
|
327 |
$html .= '<p style="font-size:x-small;"><em>' . sprintf( __( 'Report generated in: %s s', 'woocommerce-jetpack' ),
|
328 |
number_format( ( $execution_time_end - $execution_time_start ), 2, '.', ',' ) ) . '</em></p>';
|
329 |
+
$html .= '<p><input name="wcj_save_currency_rates" type="submit" class="button button-primary" value="' .
|
330 |
+
__( 'Save Currency Rates', 'woocommerce-jetpack' ) . '"></p>';
|
331 |
+
$html .= '</form>';
|
332 |
+
$html .= '<form method="post" action="">' .
|
333 |
+
'<input name="wcj_reset_currency_rates" type="submit" class="button button-primary" value="' .
|
334 |
+
__( 'Reset Currency Rates', 'woocommerce-jetpack' ) . '" onclick="return confirm(\'' . __( 'Are you sure?', 'woocommerce-jetpack' ) . '\')">' .
|
335 |
+
'</form>';
|
336 |
return $html;
|
337 |
}
|
338 |
}
|
includes/reports/wcj-class-reports-stock.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Reports - Stock
|
4 |
*
|
5 |
-
* @version 2.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -17,56 +17,47 @@ class WCJ_Reports_Stock {
|
|
17 |
|
18 |
/**
|
19 |
* Constructor.
|
|
|
|
|
|
|
|
|
20 |
*/
|
21 |
function __construct( $args = null ) {
|
22 |
-
$this->ranges_in_days = array( 7, 14, 30, 60, 90, 180, 360
|
23 |
-
$this->report_id
|
24 |
-
$this->range_days
|
25 |
-
$this->reports_info
|
26 |
-
'on_stock'
|
27 |
-
'id'
|
28 |
-
'title'
|
29 |
-
'desc'
|
30 |
),
|
31 |
-
'understocked'
|
32 |
-
'id'
|
33 |
-
'title'
|
34 |
-
'desc'
|
35 |
-
|
36 |
-
. __( 'Threshold for minimum stock is equal to half of the sales in selected days range.', 'woocommerce-jetpack' ),
|
37 |
),
|
38 |
-
'overstocked'
|
39 |
-
'id'
|
40 |
-
'title'
|
41 |
-
'desc'
|
42 |
-
. ' '
|
43 |
-
. __( '', 'woocommerce-jetpack' ),
|
44 |
),
|
45 |
);
|
46 |
-
$this->start_time
|
47 |
-
$products_info
|
48 |
$this->gather_products_data( $products_info );
|
49 |
-
|
50 |
-
//if ( 'most_stock_price' !== $this->report )
|
51 |
-
$this->gather_orders_data( $products_info );
|
52 |
-
//wp_reset_postdata();
|
53 |
$info = $this->get_stock_summary( $products_info );
|
54 |
-
if ( 'on_stock' === $this->report_id || 'overstocked' === $this->report_id )
|
55 |
$this->sort_products_info( $products_info, 'stock_price' );
|
56 |
-
|
57 |
-
|
58 |
-
//if ( 'good_sales_low_stock' === $this->report_id )
|
59 |
-
//$this->sort_products_info( $products_info, 'stock_to_sales', $this->range_days );
|
60 |
-
if ( 'understocked' === $this->report_id )
|
61 |
$this->sort_products_info( $products_info, 'sales_in_period', $this->range_days );
|
62 |
-
|
63 |
-
$this->data_products
|
64 |
-
$this->data_summary
|
65 |
-
$this->data_reports
|
66 |
-
|
67 |
-
//echo '<p>' . __( 'Here you can generate reports. Some reports are generated using all your orders and products, so if you have a lot of them - it may take a while.', 'woocommerce-jetpack' ) . '</p>';
|
68 |
-
//if ( 'yes' === get_option( 'woocommerce_manage_stock' ) ) {
|
69 |
-
//echo '<p>' . __( 'Please enable stock management in <strong>WooCommerce > Settings > Products > Inventory</strong> to generate stock based reports.', 'woocommerce-jetpack' ) . '</p>';
|
70 |
}
|
71 |
|
72 |
/*
|
@@ -74,7 +65,6 @@ class WCJ_Reports_Stock {
|
|
74 |
*/
|
75 |
function get_submenu_html() {
|
76 |
$html = '';
|
77 |
-
//$html = '<strong>' . __( 'Sales data range:', 'woocommerce-jetpack' ) . '</strong>';
|
78 |
$html .= '<ul class="subsubsub">';
|
79 |
foreach ( $this->ranges_in_days as $the_period ) {
|
80 |
$html .= '<li>';
|
@@ -92,47 +82,40 @@ class WCJ_Reports_Stock {
|
|
92 |
/*
|
93 |
* gather_products_data.
|
94 |
*
|
95 |
-
* @version 2.
|
96 |
-
* @todo
|
97 |
*/
|
98 |
function gather_products_data( &$products_info ) {
|
99 |
-
|
100 |
-
$
|
101 |
-
$block_size = 96;
|
102 |
while( true ) {
|
103 |
$args = array(
|
104 |
'post_type' => 'product',
|
105 |
'posts_per_page' => $block_size,
|
106 |
'offset' => $offset,
|
|
|
107 |
);
|
108 |
$loop = new WP_Query( $args );
|
109 |
-
if ( ! $loop->have_posts() )
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
$the_product
|
114 |
-
$the_price
|
115 |
-
$the_stock
|
116 |
-
|
117 |
-
|
118 |
-
$
|
119 |
-
$
|
120 |
-
$
|
121 |
-
$
|
122 |
-
|
123 |
-
$post_custom = get_post_custom( $the_ID );
|
124 |
-
$total_sales = isset( $post_custom['total_sales'][0] ) ? $post_custom['total_sales'][0] : 0;
|
125 |
-
|
126 |
-
//$available_variations = $the_product->get_available_variations();
|
127 |
-
|
128 |
-
$purchase_price = wc_get_product_purchase_price( $the_ID );
|
129 |
-
|
130 |
$sales_in_day_range = array();
|
131 |
-
foreach( $this->ranges_in_days as $the_range )
|
132 |
$sales_in_day_range[ $the_range ] = 0;
|
133 |
-
|
134 |
-
$products_info[$
|
135 |
-
'ID' => $
|
136 |
'title' => $the_title,
|
137 |
'category' => $the_categories,
|
138 |
'permalink' => $the_permalink,
|
@@ -141,14 +124,11 @@ class WCJ_Reports_Stock {
|
|
141 |
'stock_price' => $the_price * $the_stock,
|
142 |
'total_sales' => $total_sales,
|
143 |
'date_added' => $the_date,
|
144 |
-
|
145 |
'purchase_price' => $purchase_price,
|
146 |
-
|
147 |
'last_sale' => 0,
|
148 |
'sales_in_period' => $sales_in_day_range,
|
149 |
);
|
150 |
-
|
151 |
-
endwhile;
|
152 |
$offset += $block_size;
|
153 |
}
|
154 |
}
|
@@ -156,14 +136,12 @@ class WCJ_Reports_Stock {
|
|
156 |
/*
|
157 |
* gather_orders_data.
|
158 |
*
|
159 |
-
* @version 2.
|
160 |
*/
|
161 |
function gather_orders_data( &$products_info ) {
|
162 |
-
|
163 |
-
$
|
164 |
-
$block_size = 96;
|
165 |
while( true ) {
|
166 |
-
|
167 |
$args_orders = array(
|
168 |
'post_type' => 'shop_order',
|
169 |
'post_status' => 'wc-completed',
|
@@ -177,106 +155,68 @@ class WCJ_Reports_Stock {
|
|
177 |
'after' => $this->range_days . ' days ago',
|
178 |
),
|
179 |
),
|
|
|
180 |
);
|
181 |
-
|
182 |
-
//$one_day_seconds = ( 24 * 60 * 60 );
|
183 |
-
//$now_time = time();
|
184 |
-
|
185 |
-
$the_period = $this->range_days;
|
186 |
-
|
187 |
$loop_orders = new WP_Query( $args_orders );
|
188 |
-
if ( ! $loop_orders->have_posts() )
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
$order =
|
193 |
$items = $order->get_items();
|
194 |
-
|
195 |
-
//$the_timestamp = get_the_time( 'U' );
|
196 |
-
//$order_age = ( $now_time - $the_timestamp );
|
197 |
-
|
198 |
-
|
199 |
foreach ( $items as $item ) {
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
'total_sales' => '',
|
219 |
-
'date_added' => '',
|
220 |
-
'purchase_price' => '',
|
221 |
-
'last_sale' => 0,
|
222 |
-
'sales_in_period' => array( $the_period => 0 ),
|
223 |
-
);
|
224 |
-
}
|
225 |
-
$products_info[ $item['product_id'] ]['sales_in_period'][ $the_period ] += $item['qty'];
|
226 |
-
//}
|
227 |
-
//}
|
228 |
-
//}
|
229 |
-
|
230 |
if ( 0 == $products_info[ $item['product_id'] ]['last_sale'] ) {
|
231 |
-
$products_info[ $item['product_id'] ]['last_sale'] = get_the_time( 'U' )
|
232 |
}
|
233 |
-
|
234 |
}
|
235 |
-
|
236 |
-
endwhile;
|
237 |
-
|
238 |
$offset += $block_size;
|
239 |
}
|
240 |
-
|
241 |
-
//wp_reset_query();
|
242 |
}
|
243 |
|
244 |
/*
|
245 |
* get_stock_summary.
|
246 |
*/
|
247 |
function get_stock_summary( $products_info ) {
|
248 |
-
|
249 |
-
$info
|
250 |
-
|
251 |
-
$info['
|
252 |
-
$info['stock_price_average'] = 0;
|
253 |
-
$info['stock_average'] = 0;
|
254 |
$info['sales_in_period_average'][ $this->range_days ] = 0;
|
255 |
-
$stock_non_zero_number
|
256 |
-
|
257 |
foreach ( $products_info as $product_info ) {
|
258 |
-
|
259 |
-
/**if ( $product_info['sales_in_period'][$this->period] > 0 )
|
260 |
-
$products_info[ $product_info['ID'] ]['stock_to_sales'] = $product_info['stock'] / $product_info['sales_in_period'][$this->period];
|
261 |
-
else
|
262 |
-
$products_info[ $product_info['ID'] ]['stock_to_sales'] = 0;/**/
|
263 |
-
|
264 |
if ( $product_info['stock_price'] > 0 ) {
|
265 |
$info['stock_price_average'] += $product_info['stock_price'];
|
266 |
$info['stock_average'] += $product_info['stock'];
|
267 |
$info['sales_in_period_average'][ $this->range_days ] += $product_info['sales_in_period'][ $this->range_days ];
|
268 |
$stock_non_zero_number++;
|
269 |
}
|
270 |
-
|
271 |
$info['total_stock_price'] += $product_info['stock_price'];
|
272 |
}
|
273 |
-
|
274 |
if ( 0 != $stock_non_zero_number ) {
|
275 |
-
$info['stock_price_average']
|
276 |
-
$info['stock_average']
|
277 |
$info['sales_in_period_average'][ $this->range_days ] /= $stock_non_zero_number;
|
278 |
}
|
279 |
-
|
280 |
return $info;
|
281 |
}
|
282 |
|
@@ -286,8 +226,7 @@ class WCJ_Reports_Stock {
|
|
286 |
function sort_products_info( &$products_info, $field_name, $second_field_name = '', $order_of_sorting = SORT_DESC ) {
|
287 |
$field_name_array = array();
|
288 |
foreach ( $products_info as $key => $row ) {
|
289 |
-
|
290 |
-
else $field_name_array[ $key ] = $row[ $field_name ][ $second_field_name ];
|
291 |
}
|
292 |
array_multisort( $field_name_array, $order_of_sorting, $products_info );
|
293 |
}
|
@@ -295,22 +234,18 @@ class WCJ_Reports_Stock {
|
|
295 |
/*
|
296 |
* get_report_html.
|
297 |
*
|
298 |
-
* @version 2.
|
299 |
*/
|
300 |
function get_report_html() {
|
301 |
-
|
302 |
$products_info = $this->data_products;
|
303 |
-
$info
|
304 |
-
$report_info
|
305 |
-
|
306 |
$html = '';
|
307 |
-
|
308 |
// Style
|
309 |
$html .= '<style>';
|
310 |
$html .= '.wcj_report_table_sales_columns { background-color: #F6F6F6; }';
|
311 |
$html .= '.widefat { width: 90%; }';
|
312 |
$html .= '</style>';
|
313 |
-
|
314 |
// Products table - header
|
315 |
$html .= '<table class="widefat"><tbody>';
|
316 |
$html .= '<tr>';
|
@@ -321,38 +256,32 @@ class WCJ_Reports_Stock {
|
|
321 |
$html .= '<th>' . __( 'Stock', 'woocommerce-jetpack' ) . '</th>';
|
322 |
$html .= '<th>' . __( 'Stock price', 'woocommerce-jetpack' ) . '</th>';
|
323 |
$html .= '<th>' . __( 'Total stock price', 'woocommerce-jetpack' ) . '</th>';
|
324 |
-
|
325 |
$html .= '<th class="wcj_report_table_sales_columns">' . __( 'Last sale', 'woocommerce-jetpack' ) . '</th>';
|
326 |
$html .= '<th class="wcj_report_table_sales_columns">' . sprintf( __( 'Sales in last %s days', 'woocommerce-jetpack' ), $this->range_days ) . '</th>';
|
327 |
$html .= '<th class="wcj_report_table_sales_columns">' . __( 'Total sales', 'woocommerce-jetpack' ) . '</th>';
|
328 |
-
|
329 |
-
if ( 'understocked' === $this->report_id )
|
330 |
$html .= '<th>' . __( 'Stock to minimum', 'woocommerce-jetpack' ) . '</th>';
|
331 |
-
|
332 |
$html .= '</tr>';
|
333 |
-
|
334 |
// Products table - info loop
|
335 |
-
$total_current_stock_price
|
336 |
-
$product_counter
|
|
|
337 |
foreach ( $products_info as $product_info ) {
|
338 |
-
|
339 |
if (
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
( $product_info['stock'] < ( $product_info['sales_in_period'][ $this->range_days ] / 2 ) ) )
|
354 |
-
) {
|
355 |
-
|
356 |
$total_current_stock_price += $product_info['stock_price'];
|
357 |
$product_counter++;
|
358 |
$html .= '<tr>';
|
@@ -360,55 +289,49 @@ class WCJ_Reports_Stock {
|
|
360 |
$html .= '<th>' . '<a href='. $product_info['permalink'] . '>' . $product_info['title'] . '</a>' . '</th>';
|
361 |
$html .= '<th>' . '<a href='. $product_info['permalink'] . '>' . $product_info['category'] . '</a>' . '</th>';
|
362 |
$purchase_price_html = ( $product_info['purchase_price'] > 0 ) ?
|
363 |
-
'<br><em>' . __( 'purchase price:', 'woocommerce-jetpack' ) . '</em>' . ' ' . wc_price( $product_info['purchase_price'] ) :
|
364 |
-
'';
|
365 |
$html .= '<td>' . wc_price( $product_info['price'] ) . $purchase_price_html . '</td>';
|
366 |
$html .= '<td>' . $product_info['stock'] . '</td>';
|
367 |
$purchase_stock_price_html = ( $product_info['purchase_price'] > 0 ) ?
|
368 |
-
'<br><em>' . __( 'stock purchase price:', 'woocommerce-jetpack' ) . '</em>' . ' ' . wc_price( $product_info['purchase_price'] * $product_info['stock'] ) :
|
369 |
-
|
370 |
$html .= '<td>' . wc_price( $product_info['stock_price'] ) . $purchase_stock_price_html . '</td>';
|
371 |
$html .= '<td>' . wc_price( $total_current_stock_price ) . '</td>';
|
372 |
-
|
373 |
$html .= '<td class="wcj_report_table_sales_columns">';
|
374 |
if ( 0 == $product_info['last_sale'] ) $html .= __( 'No sales yet', 'woocommerce-jetpack' );
|
375 |
else $html .= date_i18n( get_option( 'date_format' ), $product_info['last_sale'] );
|
376 |
$html .= '</td>';
|
377 |
-
|
378 |
$profit_html = ( $product_info['purchase_price'] > 0 && $product_info['sales_in_period'][ $this->range_days ] > 0 ) ?
|
379 |
'<br><em>' . __( 'profit:', 'woocommerce-jetpack' ) . '</em>' . ' '
|
380 |
. wc_price( ( $product_info['price'] - $product_info['purchase_price'] ) * $product_info['sales_in_period'][ $this->range_days ] ) :
|
381 |
'';
|
382 |
$html .= '<td class="wcj_report_table_sales_columns">' . $product_info['sales_in_period'][ $this->range_days ] . $profit_html . '</td>';
|
383 |
$html .= '<td class="wcj_report_table_sales_columns">' . $product_info['total_sales'] . '</td>';
|
384 |
-
|
385 |
-
|
386 |
if ( $product_info['sales_in_period'][ $this->range_days ] > 0 ) {
|
387 |
$stock_to_minimum = ( $product_info['sales_in_period'][ $this->range_days ] / 2 ) - $product_info['stock'];
|
388 |
$stock_to_minimum = ( $stock_to_minimum > 0 ) ? round( $stock_to_minimum ) : '';
|
|
|
|
|
389 |
}
|
390 |
-
|
391 |
-
|
392 |
-
if ( 'understocked' === $this->report_id )
|
393 |
$html .= '<td>' . $stock_to_minimum . '</td>';
|
394 |
-
|
395 |
$html .= '</tr>';
|
396 |
}
|
397 |
}
|
398 |
$html .= '</tbody></table>';
|
399 |
-
|
400 |
$html_header = '<h4>' . $report_info['title'] . ': ' . $report_info['desc'] . '</h4>';
|
401 |
-
|
402 |
$html_header .= '<table class="widefat" style="width:30% !important;"><tbody>';
|
403 |
$html_header .= '<tr>' . '<th>' . __( 'Total current stock value', 'woocommerce-jetpack' ) . '</th>' . '<td>' . wc_price( $total_current_stock_price ) . '</td>' . '</tr>';
|
404 |
$html_header .= '<tr>' . '<th>' . __( 'Total stock value', 'woocommerce-jetpack' ) . '</th>' . '<td>' . wc_price( $info['total_stock_price'] ) . '</td>' . '</tr>';
|
405 |
$html_header .= '<tr>' . '<th>' . __( 'Product stock value average', 'woocommerce-jetpack' ) . '</th>' . '<td>' . wc_price( $info['stock_price_average'] ) . '</td>' . '</tr>';
|
406 |
$html_header .= '<tr>' . '<th>' . __( 'Product stock average', 'woocommerce-jetpack' ) . '</th>' . '<td>' . number_format( $info['stock_average'], 2, '.', '' ) . '</td>' . '</tr>';
|
|
|
|
|
|
|
407 |
$html_header .= '</tbody></table>';
|
408 |
$html_header .= '<br class="clear">';
|
409 |
-
|
410 |
$time_elapsed_html = '<p><em>' . __( 'Report was generated in: ', 'woocommerce-jetpack' ) . intval( microtime( true ) - $this->start_time ) . ' s' . '</em></p>';
|
411 |
-
|
412 |
return $this->get_submenu_html() . $html_header . $html . $time_elapsed_html;
|
413 |
}
|
414 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Reports - Stock
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
17 |
|
18 |
/**
|
19 |
* Constructor.
|
20 |
+
*
|
21 |
+
* @todo (maybe) `most_stock_price`, `sales_up`, `good_sales_low_stock`
|
22 |
+
* @todo (maybe) `echo __( 'Here you can generate reports. Some reports are generated using all your orders and products, so if you have a lot of them - it may take a while.', 'woocommerce-jetpack' );`
|
23 |
+
* @todo (maybe) get_option( 'woocommerce_manage_stock' ) -> `echo __( 'Please enable stock management in <strong>WooCommerce > Settings > Products > Inventory</strong> to generate stock based reports.', 'woocommerce-jetpack' );`
|
24 |
*/
|
25 |
function __construct( $args = null ) {
|
26 |
+
$this->ranges_in_days = array( 7, 14, 30, 60, 90, 180, 360 );
|
27 |
+
$this->report_id = isset( $args['report_id'] ) ? $args['report_id'] : 'on_stock';
|
28 |
+
$this->range_days = isset( $args['range_days'] ) ? $args['range_days'] : 30;
|
29 |
+
$this->reports_info = array(
|
30 |
+
'on_stock' => array(
|
31 |
+
'id' => 'on_stock',
|
32 |
+
'title' => __( 'All Products on Stock', 'woocommerce-jetpack' ),
|
33 |
+
'desc' => __( 'Report shows all products that are on stock and some sales info.', 'woocommerce-jetpack' ),
|
34 |
),
|
35 |
+
'understocked' => array(
|
36 |
+
'id' => 'understocked',
|
37 |
+
'title' => __( 'Understocked', 'woocommerce-jetpack' ),
|
38 |
+
'desc' => __( 'Report shows all products that are low in stock calculated on product\'s sales data.', 'woocommerce-jetpack' ) . ' ' .
|
39 |
+
__( 'Threshold for minimum stock is equal to half of the sales in selected days range.', 'woocommerce-jetpack' ),
|
|
|
40 |
),
|
41 |
+
'overstocked' => array(
|
42 |
+
'id' => 'overstocked',
|
43 |
+
'title' => __( 'Overstocked', 'woocommerce-jetpack' ),
|
44 |
+
'desc' => __( 'Report shows all products that are on stock, but have no sales in selected period. Only products added before the start date of selected period are accounted.', 'woocommerce-jetpack' ),
|
|
|
|
|
45 |
),
|
46 |
);
|
47 |
+
$this->start_time = microtime( true );
|
48 |
+
$products_info = array();
|
49 |
$this->gather_products_data( $products_info );
|
50 |
+
$this->gather_orders_data( $products_info );
|
|
|
|
|
|
|
51 |
$info = $this->get_stock_summary( $products_info );
|
52 |
+
if ( 'on_stock' === $this->report_id || 'overstocked' === $this->report_id ) {
|
53 |
$this->sort_products_info( $products_info, 'stock_price' );
|
54 |
+
}
|
55 |
+
if ( 'understocked' === $this->report_id ) {
|
|
|
|
|
|
|
56 |
$this->sort_products_info( $products_info, 'sales_in_period', $this->range_days );
|
57 |
+
}
|
58 |
+
$this->data_products = $products_info;
|
59 |
+
$this->data_summary = $info;
|
60 |
+
$this->data_reports = $this->reports_info[ $this->report_id ];
|
|
|
|
|
|
|
|
|
61 |
}
|
62 |
|
63 |
/*
|
65 |
*/
|
66 |
function get_submenu_html() {
|
67 |
$html = '';
|
|
|
68 |
$html .= '<ul class="subsubsub">';
|
69 |
foreach ( $this->ranges_in_days as $the_period ) {
|
70 |
$html .= '<li>';
|
82 |
/*
|
83 |
* gather_products_data.
|
84 |
*
|
85 |
+
* @version 2.9.1
|
86 |
+
* @todo variations
|
87 |
*/
|
88 |
function gather_products_data( &$products_info ) {
|
89 |
+
$offset = 0;
|
90 |
+
$block_size = 256;
|
|
|
91 |
while( true ) {
|
92 |
$args = array(
|
93 |
'post_type' => 'product',
|
94 |
'posts_per_page' => $block_size,
|
95 |
'offset' => $offset,
|
96 |
+
'fields' => 'ids',
|
97 |
);
|
98 |
$loop = new WP_Query( $args );
|
99 |
+
if ( ! $loop->have_posts() ) {
|
100 |
+
break;
|
101 |
+
}
|
102 |
+
foreach ( $loop->posts as $product_id ) {
|
103 |
+
$the_product = wc_get_product( $product_id );
|
104 |
+
$the_price = $the_product->get_price();
|
105 |
+
$the_stock = wcj_get_product_total_stock( $the_product );
|
106 |
+
$the_title = get_the_title( $product_id );
|
107 |
+
$the_categories = ( WCJ_IS_WC_VERSION_BELOW_3 ? $the_product->get_categories() : wc_get_product_category_list( $product_id ) );
|
108 |
+
$the_date = get_the_date( get_option( 'date_format' ), $product_id );
|
109 |
+
$the_permalink = get_the_permalink( $product_id );
|
110 |
+
$post_custom = get_post_custom( $product_id );
|
111 |
+
$total_sales = isset( $post_custom['total_sales'][0] ) ? $post_custom['total_sales'][0] : 0;
|
112 |
+
$purchase_price = wc_get_product_purchase_price( $product_id );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
$sales_in_day_range = array();
|
114 |
+
foreach( $this->ranges_in_days as $the_range ) {
|
115 |
$sales_in_day_range[ $the_range ] = 0;
|
116 |
+
}
|
117 |
+
$products_info[ $product_id ] = array(
|
118 |
+
'ID' => $product_id,
|
119 |
'title' => $the_title,
|
120 |
'category' => $the_categories,
|
121 |
'permalink' => $the_permalink,
|
124 |
'stock_price' => $the_price * $the_stock,
|
125 |
'total_sales' => $total_sales,
|
126 |
'date_added' => $the_date,
|
|
|
127 |
'purchase_price' => $purchase_price,
|
|
|
128 |
'last_sale' => 0,
|
129 |
'sales_in_period' => $sales_in_day_range,
|
130 |
);
|
131 |
+
}
|
|
|
132 |
$offset += $block_size;
|
133 |
}
|
134 |
}
|
136 |
/*
|
137 |
* gather_orders_data.
|
138 |
*
|
139 |
+
* @version 2.9.1
|
140 |
*/
|
141 |
function gather_orders_data( &$products_info ) {
|
142 |
+
$offset = 0;
|
143 |
+
$block_size = 256;
|
|
|
144 |
while( true ) {
|
|
|
145 |
$args_orders = array(
|
146 |
'post_type' => 'shop_order',
|
147 |
'post_status' => 'wc-completed',
|
155 |
'after' => $this->range_days . ' days ago',
|
156 |
),
|
157 |
),
|
158 |
+
'fields' => 'ids',
|
159 |
);
|
160 |
+
$the_period = $this->range_days;
|
|
|
|
|
|
|
|
|
|
|
161 |
$loop_orders = new WP_Query( $args_orders );
|
162 |
+
if ( ! $loop_orders->have_posts() ) {
|
163 |
+
break;
|
164 |
+
}
|
165 |
+
foreach ( $loop_orders->posts as $order_id ) {
|
166 |
+
$order = wc_get_order( $order_id );
|
167 |
$items = $order->get_items();
|
|
|
|
|
|
|
|
|
|
|
168 |
foreach ( $items as $item ) {
|
169 |
+
if ( ! isset( $products_info[ $item['product_id'] ] ) ) {
|
170 |
+
// Deleted product
|
171 |
+
$products_info[ $item['product_id'] ] = array(
|
172 |
+
'ID' => $item['product_id'],
|
173 |
+
'title' => $item['name'] . ' (' . __( 'deleted', 'woocommerce-jetpack' ) . ')',
|
174 |
+
'category' => '',
|
175 |
+
'permalink' => '',
|
176 |
+
'price' => '',
|
177 |
+
'stock' => '',
|
178 |
+
'stock_price' => '',
|
179 |
+
'total_sales' => '',
|
180 |
+
'date_added' => '',
|
181 |
+
'purchase_price' => '',
|
182 |
+
'last_sale' => 0,
|
183 |
+
'sales_in_period' => array( $the_period => 0 ),
|
184 |
+
);
|
185 |
+
}
|
186 |
+
$products_info[ $item['product_id'] ]['sales_in_period'][ $the_period ] += $item['qty'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
if ( 0 == $products_info[ $item['product_id'] ]['last_sale'] ) {
|
188 |
+
$products_info[ $item['product_id'] ]['last_sale'] = get_the_time( 'U' );
|
189 |
}
|
|
|
190 |
}
|
191 |
+
}
|
|
|
|
|
192 |
$offset += $block_size;
|
193 |
}
|
|
|
|
|
194 |
}
|
195 |
|
196 |
/*
|
197 |
* get_stock_summary.
|
198 |
*/
|
199 |
function get_stock_summary( $products_info ) {
|
200 |
+
$info = array();
|
201 |
+
$info['total_stock_price'] = 0;
|
202 |
+
$info['stock_price_average'] = 0;
|
203 |
+
$info['stock_average'] = 0;
|
|
|
|
|
204 |
$info['sales_in_period_average'][ $this->range_days ] = 0;
|
205 |
+
$stock_non_zero_number = 0;
|
|
|
206 |
foreach ( $products_info as $product_info ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
if ( $product_info['stock_price'] > 0 ) {
|
208 |
$info['stock_price_average'] += $product_info['stock_price'];
|
209 |
$info['stock_average'] += $product_info['stock'];
|
210 |
$info['sales_in_period_average'][ $this->range_days ] += $product_info['sales_in_period'][ $this->range_days ];
|
211 |
$stock_non_zero_number++;
|
212 |
}
|
|
|
213 |
$info['total_stock_price'] += $product_info['stock_price'];
|
214 |
}
|
|
|
215 |
if ( 0 != $stock_non_zero_number ) {
|
216 |
+
$info['stock_price_average'] /= $stock_non_zero_number;
|
217 |
+
$info['stock_average'] /= $stock_non_zero_number;
|
218 |
$info['sales_in_period_average'][ $this->range_days ] /= $stock_non_zero_number;
|
219 |
}
|
|
|
220 |
return $info;
|
221 |
}
|
222 |
|
226 |
function sort_products_info( &$products_info, $field_name, $second_field_name = '', $order_of_sorting = SORT_DESC ) {
|
227 |
$field_name_array = array();
|
228 |
foreach ( $products_info as $key => $row ) {
|
229 |
+
$field_name_array[ $key ] = ( '' == $second_field_name ? $row[ $field_name ] : $row[ $field_name ][ $second_field_name ] );
|
|
|
230 |
}
|
231 |
array_multisort( $field_name_array, $order_of_sorting, $products_info );
|
232 |
}
|
234 |
/*
|
235 |
* get_report_html.
|
236 |
*
|
237 |
+
* @version 2.9.1
|
238 |
*/
|
239 |
function get_report_html() {
|
|
|
240 |
$products_info = $this->data_products;
|
241 |
+
$info = $this->data_summary;
|
242 |
+
$report_info = $this->data_reports;
|
|
|
243 |
$html = '';
|
|
|
244 |
// Style
|
245 |
$html .= '<style>';
|
246 |
$html .= '.wcj_report_table_sales_columns { background-color: #F6F6F6; }';
|
247 |
$html .= '.widefat { width: 90%; }';
|
248 |
$html .= '</style>';
|
|
|
249 |
// Products table - header
|
250 |
$html .= '<table class="widefat"><tbody>';
|
251 |
$html .= '<tr>';
|
256 |
$html .= '<th>' . __( 'Stock', 'woocommerce-jetpack' ) . '</th>';
|
257 |
$html .= '<th>' . __( 'Stock price', 'woocommerce-jetpack' ) . '</th>';
|
258 |
$html .= '<th>' . __( 'Total stock price', 'woocommerce-jetpack' ) . '</th>';
|
|
|
259 |
$html .= '<th class="wcj_report_table_sales_columns">' . __( 'Last sale', 'woocommerce-jetpack' ) . '</th>';
|
260 |
$html .= '<th class="wcj_report_table_sales_columns">' . sprintf( __( 'Sales in last %s days', 'woocommerce-jetpack' ), $this->range_days ) . '</th>';
|
261 |
$html .= '<th class="wcj_report_table_sales_columns">' . __( 'Total sales', 'woocommerce-jetpack' ) . '</th>';
|
262 |
+
if ( 'understocked' === $this->report_id ) {
|
|
|
263 |
$html .= '<th>' . __( 'Stock to minimum', 'woocommerce-jetpack' ) . '</th>';
|
264 |
+
}
|
265 |
$html .= '</tr>';
|
|
|
266 |
// Products table - info loop
|
267 |
+
$total_current_stock_price = 0;
|
268 |
+
$product_counter = 0;
|
269 |
+
$total_current_stock_purchase_price = 0;
|
270 |
foreach ( $products_info as $product_info ) {
|
|
|
271 |
if (
|
272 |
+
( ( 'on_stock' === $report_info['id'] ) &&
|
273 |
+
( $product_info['stock'] != 0 ) ) ||
|
274 |
+
|
275 |
+
( ( 'overstocked' === $report_info['id'] ) &&
|
276 |
+
( $product_info['stock'] > 0 ) &&
|
277 |
+
( ( current_time( 'timestamp' ) - strtotime( $product_info['date_added'] ) ) > $this->range_days * 24 * 60 * 60 ) &&
|
278 |
+
( 0 === $product_info['sales_in_period'][ $this->range_days ] ) ) ||
|
279 |
+
|
280 |
+
( ( 'understocked' === $report_info['id'] ) &&
|
281 |
+
( '' !== $product_info['stock'] ) &&
|
282 |
+
( $product_info['sales_in_period'][ $this->range_days ] > 1 ) &&
|
283 |
+
( $product_info['stock'] < ( $product_info['sales_in_period'][ $this->range_days ] / 2 ) ) )
|
284 |
+
) {
|
|
|
|
|
|
|
285 |
$total_current_stock_price += $product_info['stock_price'];
|
286 |
$product_counter++;
|
287 |
$html .= '<tr>';
|
289 |
$html .= '<th>' . '<a href='. $product_info['permalink'] . '>' . $product_info['title'] . '</a>' . '</th>';
|
290 |
$html .= '<th>' . '<a href='. $product_info['permalink'] . '>' . $product_info['category'] . '</a>' . '</th>';
|
291 |
$purchase_price_html = ( $product_info['purchase_price'] > 0 ) ?
|
292 |
+
'<br><em>' . __( 'purchase price:', 'woocommerce-jetpack' ) . '</em>' . ' ' . wc_price( $product_info['purchase_price'] ) : '';
|
|
|
293 |
$html .= '<td>' . wc_price( $product_info['price'] ) . $purchase_price_html . '</td>';
|
294 |
$html .= '<td>' . $product_info['stock'] . '</td>';
|
295 |
$purchase_stock_price_html = ( $product_info['purchase_price'] > 0 ) ?
|
296 |
+
'<br><em>' . __( 'stock purchase price:', 'woocommerce-jetpack' ) . '</em>' . ' ' . wc_price( $product_info['purchase_price'] * $product_info['stock'] ) : '';
|
297 |
+
$total_current_stock_purchase_price += ( $product_info['purchase_price'] > 0 ? $product_info['purchase_price'] * $product_info['stock'] : 0 );
|
298 |
$html .= '<td>' . wc_price( $product_info['stock_price'] ) . $purchase_stock_price_html . '</td>';
|
299 |
$html .= '<td>' . wc_price( $total_current_stock_price ) . '</td>';
|
|
|
300 |
$html .= '<td class="wcj_report_table_sales_columns">';
|
301 |
if ( 0 == $product_info['last_sale'] ) $html .= __( 'No sales yet', 'woocommerce-jetpack' );
|
302 |
else $html .= date_i18n( get_option( 'date_format' ), $product_info['last_sale'] );
|
303 |
$html .= '</td>';
|
|
|
304 |
$profit_html = ( $product_info['purchase_price'] > 0 && $product_info['sales_in_period'][ $this->range_days ] > 0 ) ?
|
305 |
'<br><em>' . __( 'profit:', 'woocommerce-jetpack' ) . '</em>' . ' '
|
306 |
. wc_price( ( $product_info['price'] - $product_info['purchase_price'] ) * $product_info['sales_in_period'][ $this->range_days ] ) :
|
307 |
'';
|
308 |
$html .= '<td class="wcj_report_table_sales_columns">' . $product_info['sales_in_period'][ $this->range_days ] . $profit_html . '</td>';
|
309 |
$html .= '<td class="wcj_report_table_sales_columns">' . $product_info['total_sales'] . '</td>';
|
|
|
|
|
310 |
if ( $product_info['sales_in_period'][ $this->range_days ] > 0 ) {
|
311 |
$stock_to_minimum = ( $product_info['sales_in_period'][ $this->range_days ] / 2 ) - $product_info['stock'];
|
312 |
$stock_to_minimum = ( $stock_to_minimum > 0 ) ? round( $stock_to_minimum ) : '';
|
313 |
+
} else {
|
314 |
+
$stock_to_minimum = '';
|
315 |
}
|
316 |
+
if ( 'understocked' === $this->report_id ) {
|
|
|
|
|
317 |
$html .= '<td>' . $stock_to_minimum . '</td>';
|
318 |
+
}
|
319 |
$html .= '</tr>';
|
320 |
}
|
321 |
}
|
322 |
$html .= '</tbody></table>';
|
|
|
323 |
$html_header = '<h4>' . $report_info['title'] . ': ' . $report_info['desc'] . '</h4>';
|
|
|
324 |
$html_header .= '<table class="widefat" style="width:30% !important;"><tbody>';
|
325 |
$html_header .= '<tr>' . '<th>' . __( 'Total current stock value', 'woocommerce-jetpack' ) . '</th>' . '<td>' . wc_price( $total_current_stock_price ) . '</td>' . '</tr>';
|
326 |
$html_header .= '<tr>' . '<th>' . __( 'Total stock value', 'woocommerce-jetpack' ) . '</th>' . '<td>' . wc_price( $info['total_stock_price'] ) . '</td>' . '</tr>';
|
327 |
$html_header .= '<tr>' . '<th>' . __( 'Product stock value average', 'woocommerce-jetpack' ) . '</th>' . '<td>' . wc_price( $info['stock_price_average'] ) . '</td>' . '</tr>';
|
328 |
$html_header .= '<tr>' . '<th>' . __( 'Product stock average', 'woocommerce-jetpack' ) . '</th>' . '<td>' . number_format( $info['stock_average'], 2, '.', '' ) . '</td>' . '</tr>';
|
329 |
+
if ( 0 != $total_current_stock_purchase_price ) {
|
330 |
+
$html_header .= '<tr>' . '<th>' . __( 'Total current stock purchase price', 'woocommerce-jetpack' ) . '</th>' . '<td>' . wc_price( $total_current_stock_purchase_price ) . '</td>' . '</tr>';
|
331 |
+
}
|
332 |
$html_header .= '</tbody></table>';
|
333 |
$html_header .= '<br class="clear">';
|
|
|
334 |
$time_elapsed_html = '<p><em>' . __( 'Report was generated in: ', 'woocommerce-jetpack' ) . intval( microtime( true ) - $this->start_time ) . ' s' . '</em></p>';
|
|
|
335 |
return $this->get_submenu_html() . $html_header . $html . $time_elapsed_html;
|
336 |
}
|
337 |
}
|
includes/settings/meta-box/wcj-settings-meta-box-product-by-date.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Booster for WooCommerce - Settings Meta Box - Product Availability by Date
|
4 |
+
*
|
5 |
+
* @version 2.9.1
|
6 |
+
* @since 2.9.1
|
7 |
+
* @author Algoritmika Ltd.
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
+
|
12 |
+
$settings = array(
|
13 |
+
array(
|
14 |
+
'title' => __( 'Enable/Disable per Product Settings', 'woocommerce-jetpack' ),
|
15 |
+
'name' => 'wcj_product_by_date_enabled',
|
16 |
+
'default' => 'no',
|
17 |
+
'type' => 'select',
|
18 |
+
'options' => array(
|
19 |
+
'no' => __( 'Disabled', 'woocommerce-jetpack' ),
|
20 |
+
'yes' => __( 'Enabled', 'woocommerce-jetpack' ),
|
21 |
+
),
|
22 |
+
// 'tooltip' => __( 'Date formats:', 'woocommerce-jetpack' ) . ' ' . '<code>DD-DD</code>' . ', ' . '<code>DD-DD,DD-DD</code>' . ', ' . '<code>-</code>' . '.',
|
23 |
+
),
|
24 |
+
);
|
25 |
+
$_timestamp = strtotime( '2017-01' );
|
26 |
+
for ( $i = 1; $i <= 12; $i++ ) {
|
27 |
+
$settings = array_merge( $settings, array(
|
28 |
+
array(
|
29 |
+
'title' => date_i18n( 'F', $_timestamp ),
|
30 |
+
'name' => 'wcj_product_by_date_' . $i,
|
31 |
+
'default' => '',
|
32 |
+
'type' => 'text',
|
33 |
+
'css' => 'width:300px;',
|
34 |
+
),
|
35 |
+
) );
|
36 |
+
$_timestamp = strtotime( '+1 month', $_timestamp );
|
37 |
+
}
|
38 |
+
return $settings;
|
includes/settings/meta-box/wcj-settings-meta-box-product-by-time.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Booster for WooCommerce - Settings Meta Box - Product Availability by Time
|
4 |
+
*
|
5 |
+
* @version 2.9.1
|
6 |
+
* @since 2.9.1
|
7 |
+
* @author Algoritmika Ltd.
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
+
|
12 |
+
$settings = array(
|
13 |
+
array(
|
14 |
+
'title' => __( 'Enable/Disable per Product Settings', 'woocommerce-jetpack' ),
|
15 |
+
'name' => 'wcj_product_by_time_enabled',
|
16 |
+
'default' => 'no',
|
17 |
+
'type' => 'select',
|
18 |
+
'options' => array(
|
19 |
+
'no' => __( 'Disabled', 'woocommerce-jetpack' ),
|
20 |
+
'yes' => __( 'Enabled', 'woocommerce-jetpack' ),
|
21 |
+
),
|
22 |
+
// 'tooltip' => __( 'Time formats:', 'woocommerce-jetpack' ) . ' ' . '<code>HH:MM-HH:MM</code>' . ', ' . '<code>HH:MM-HH:MM,HH:MM-HH:MM</code>' . ', ' . '<code>-</code>' . '.',
|
23 |
+
),
|
24 |
+
);
|
25 |
+
$_timestamp = strtotime( 'next Sunday' );
|
26 |
+
for ( $i = 0; $i < 7; $i++ ) {
|
27 |
+
$settings = array_merge( $settings, array(
|
28 |
+
array(
|
29 |
+
'title' => date_i18n( 'l', $_timestamp ),
|
30 |
+
'name' => 'wcj_product_by_time_' . $i,
|
31 |
+
'default' => '',
|
32 |
+
'type' => 'text',
|
33 |
+
'css' => 'width:300px;',
|
34 |
+
),
|
35 |
+
) );
|
36 |
+
$_timestamp = strtotime( '+1 day', $_timestamp );
|
37 |
+
}
|
38 |
+
return $settings;
|
includes/settings/wcj-settings-admin-tools.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Admin Tools
|
4 |
*
|
5 |
-
* @version 2.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -16,12 +16,19 @@ return array(
|
|
16 |
'id' => 'wcj_admin_tools_module_options',
|
17 |
),
|
18 |
array(
|
19 |
-
'title' => __( '
|
20 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
21 |
'id' => 'wcj_logging_enabled',
|
22 |
'default' => 'no',
|
23 |
'type' => 'checkbox',
|
24 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
array(
|
26 |
'title' => __( 'Debug', 'woocommerce-jetpack' ),
|
27 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Admin Tools
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
16 |
'id' => 'wcj_admin_tools_module_options',
|
17 |
),
|
18 |
array(
|
19 |
+
'title' => __( 'Log', 'woocommerce-jetpack' ),
|
20 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
21 |
'id' => 'wcj_logging_enabled',
|
22 |
'default' => 'no',
|
23 |
'type' => 'checkbox',
|
24 |
),
|
25 |
+
array(
|
26 |
+
'title' => __( 'WooCommerce Log', 'woocommerce-jetpack' ),
|
27 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
28 |
+
'id' => 'wcj_wc_logging_enabled',
|
29 |
+
'default' => 'no',
|
30 |
+
'type' => 'checkbox',
|
31 |
+
),
|
32 |
array(
|
33 |
'title' => __( 'Debug', 'woocommerce-jetpack' ),
|
34 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
includes/settings/wcj-settings-email-options.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Booster for WooCommerce - Settings - Email Options
|
4 |
+
*
|
5 |
+
* @version 2.9.1
|
6 |
+
* @since 2.9.1
|
7 |
+
* @author Algoritmika Ltd.
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
+
|
12 |
+
$settings = array(
|
13 |
+
array(
|
14 |
+
'title' => __( 'Product Info in Item Name', 'woocommerce-jetpack' ),
|
15 |
+
'type' => 'title',
|
16 |
+
'id' => 'wcj_product_info_in_email_order_item_name_options',
|
17 |
+
),
|
18 |
+
array(
|
19 |
+
'title' => __( 'Add Product Info to Item Name', 'woocommerce-jetpack' ),
|
20 |
+
'desc' => __( 'Add', 'woocommerce-jetpack' ),
|
21 |
+
'type' => 'checkbox',
|
22 |
+
'id' => 'wcj_product_info_in_email_order_item_name_enabled',
|
23 |
+
'default' => 'no',
|
24 |
+
),
|
25 |
+
array(
|
26 |
+
'title' => __( 'Info', 'woocommerce-jetpack' ),
|
27 |
+
'desc' => sprintf( __( 'You can use <a target="_blank" href="%s">Booster\'s products shortcodes</a> here.', 'woocommerce-jetpack' ), 'http://booster.io/category/shortcodes/products-shortcodes/' ),
|
28 |
+
'type' => 'custom_textarea',
|
29 |
+
'id' => 'wcj_product_info_in_email_order_item_name',
|
30 |
+
'default' => '[wcj_product_categories strip_tags="yes" before="<hr><em>" after="</em>"]',
|
31 |
+
'css' => 'width:66%;min-width:300px;height:150px;',
|
32 |
+
),
|
33 |
+
array(
|
34 |
+
'type' => 'sectionend',
|
35 |
+
'id' => 'wcj_product_info_in_email_order_item_name_options',
|
36 |
+
),
|
37 |
+
);
|
38 |
+
$settings = array_merge( $settings, $this->get_emails_forwarding_settings() );
|
39 |
+
return $settings;
|
includes/settings/wcj-settings-emails.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* Booster for WooCommerce - Settings - Emails
|
4 |
*
|
5 |
-
* @version 2.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -44,30 +44,5 @@ $settings = array_merge( $settings, array(
|
|
44 |
'type' => 'sectionend',
|
45 |
'id' => 'wcj_emails_custom_emails_options',
|
46 |
),
|
47 |
-
array(
|
48 |
-
'title' => __( 'Product Info in Item Name', 'woocommerce-jetpack' ),
|
49 |
-
'type' => 'title',
|
50 |
-
'id' => 'wcj_product_info_in_email_order_item_name_options',
|
51 |
-
),
|
52 |
-
array(
|
53 |
-
'title' => __( 'Add Product Info to Item Name', 'woocommerce-jetpack' ),
|
54 |
-
'desc' => __( 'Add', 'woocommerce-jetpack' ),
|
55 |
-
'type' => 'checkbox',
|
56 |
-
'id' => 'wcj_product_info_in_email_order_item_name_enabled',
|
57 |
-
'default' => 'no',
|
58 |
-
),
|
59 |
-
array(
|
60 |
-
'title' => __( 'Info', 'woocommerce-jetpack' ),
|
61 |
-
'desc' => sprintf( __( 'You can use <a target="_blank" href="%s">Booster\'s products shortcodes</a> here.', 'woocommerce-jetpack' ), 'http://booster.io/category/shortcodes/products-shortcodes/' ),
|
62 |
-
'type' => 'custom_textarea',
|
63 |
-
'id' => 'wcj_product_info_in_email_order_item_name',
|
64 |
-
'default' => '[wcj_product_categories strip_tags="yes" before="<hr><em>" after="</em>"]',
|
65 |
-
'css' => 'width:66%;min-width:300px;height:150px;',
|
66 |
-
),
|
67 |
-
array(
|
68 |
-
'type' => 'sectionend',
|
69 |
-
'id' => 'wcj_product_info_in_email_order_item_name_options',
|
70 |
-
),
|
71 |
) );
|
72 |
-
$settings = array_merge( $settings, $this->get_emails_forwarding_settings() );
|
73 |
return $settings;
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Booster for WooCommerce - Settings - Custom Emails
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
44 |
'type' => 'sectionend',
|
45 |
'id' => 'wcj_emails_custom_emails_options',
|
46 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
) );
|
|
|
48 |
return $settings;
|
includes/settings/wcj-settings-general.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - General
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo add link to Booster's shortcodes list
|
@@ -178,37 +178,10 @@ $settings = array(
|
|
178 |
'type' => 'sectionend',
|
179 |
'id' => 'wcj_session_expiration_options',
|
180 |
),
|
181 |
-
array(
|
182 |
-
'title' => __( 'URL Coupons Options', 'woocommerce-jetpack' ),
|
183 |
-
'desc' => sprintf( __( 'Additionally you can hide standard coupon field on cart page in Booster\'s <a href="%s">Cart Customization</a> module.', 'woocommerce-jetpack' ),
|
184 |
-
admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=cart_and_checkout§ion=cart_customization' ) ),
|
185 |
-
'type' => 'title',
|
186 |
-
'id' => 'wcj_url_coupons_options',
|
187 |
-
),
|
188 |
-
array(
|
189 |
-
'title' => __( 'URL Coupons', 'woocommerce-jetpack' ),
|
190 |
-
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
191 |
-
'desc_tip' => __( 'When enabled, your users can apply shop\'s standard coupons, by visiting URL. E.g.: http://yoursite.com/?wcj_apply_coupon=couponcode.', 'woocommerce-jetpack' ),
|
192 |
-
'id' => 'wcj_url_coupons_enabled',
|
193 |
-
'default' => 'no',
|
194 |
-
'type' => 'checkbox',
|
195 |
-
),
|
196 |
-
array(
|
197 |
-
'title' => __( 'URL Coupons Key', 'woocommerce-jetpack' ),
|
198 |
-
'desc_tip' => __( 'URL key. If you change this, make sure it\'s unique and is not used anywhere on your site (e.g. by another plugin).', 'woocommerce-jetpack' ),
|
199 |
-
'id' => 'wcj_url_coupons_key',
|
200 |
-
'default' => 'wcj_apply_coupon',
|
201 |
-
'type' => 'text',
|
202 |
-
),
|
203 |
-
array(
|
204 |
-
'type' => 'sectionend',
|
205 |
-
'id' => 'wcj_url_coupons_options',
|
206 |
-
),
|
207 |
array(
|
208 |
'title' => __( 'Booster User Roles Changer Options', 'woocommerce-jetpack' ),
|
209 |
'desc' => __( 'This will add user roles changer tool to admin bar.', 'woocommerce-jetpack' )/* . ' ' .
|
210 |
-
|
211 |
-
|
212 |
'type' => 'title',
|
213 |
'id' => 'wcj_general_user_role_changer_options',
|
214 |
),
|
@@ -233,6 +206,55 @@ $settings = array(
|
|
233 |
'type' => 'sectionend',
|
234 |
'id' => 'wcj_general_user_role_changer_options',
|
235 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
/*
|
237 |
array(
|
238 |
'title' => __( 'WooCommerce Templates Editor Links', 'woocommerce-jetpack' ),
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - General
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
* @todo add link to Booster's shortcodes list
|
178 |
'type' => 'sectionend',
|
179 |
'id' => 'wcj_session_expiration_options',
|
180 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
array(
|
182 |
'title' => __( 'Booster User Roles Changer Options', 'woocommerce-jetpack' ),
|
183 |
'desc' => __( 'This will add user roles changer tool to admin bar.', 'woocommerce-jetpack' )/* . ' ' .
|
184 |
+
__( 'You will be able to change user roles for Booster modules (e.g. when creating orders manually by admin for "Price by User Role" module).', 'woocommerce-jetpack' ) */,
|
|
|
185 |
'type' => 'title',
|
186 |
'id' => 'wcj_general_user_role_changer_options',
|
187 |
),
|
206 |
'type' => 'sectionend',
|
207 |
'id' => 'wcj_general_user_role_changer_options',
|
208 |
),
|
209 |
+
array(
|
210 |
+
'title' => __( 'Track Users Options', 'woocommerce-jetpack' ),
|
211 |
+
'type' => 'title',
|
212 |
+
'id' => 'wcj_track_users_options',
|
213 |
+
),
|
214 |
+
array(
|
215 |
+
'title' => __( 'Track Users', 'woocommerce-jetpack' ),
|
216 |
+
'desc' => '<strong>' . __( 'Enable section', 'woocommerce-jetpack' ) . '</strong>',
|
217 |
+
'id' => 'wcj_track_users_enabled',
|
218 |
+
'default' => 'no',
|
219 |
+
'type' => 'checkbox',
|
220 |
+
),
|
221 |
+
array(
|
222 |
+
'title' => __( 'Countries by Visits', 'woocommerce-jetpack' ),
|
223 |
+
'desc' => __( 'Enable admin dashboard widget', 'woocommerce-jetpack' ),
|
224 |
+
'id' => 'wcj_track_users_by_country_widget_enabled',
|
225 |
+
'default' => 'yes',
|
226 |
+
'type' => 'checkbox',
|
227 |
+
),
|
228 |
+
array(
|
229 |
+
'desc_tip' => __( 'Select which info show in admin dashboard widget.', 'woocommerce-jetpack' ),
|
230 |
+
'id' => 'wcj_track_users_by_country_widget_scopes',
|
231 |
+
'default' => array( '1', '28' ),
|
232 |
+
'type' => 'multiselect',
|
233 |
+
'class' => 'chosen_select',
|
234 |
+
'options' => $this->track_users_scopes,
|
235 |
+
),
|
236 |
+
array(
|
237 |
+
'desc_tip' => __( 'Select which how many top countries to show.', 'woocommerce-jetpack' ),
|
238 |
+
'id' => 'wcj_track_users_by_country_widget_top_count',
|
239 |
+
'default' => 10,
|
240 |
+
'type' => 'number',
|
241 |
+
'custom_attributes' => ( array( 'min' => 0 ) ),
|
242 |
+
),
|
243 |
+
array(
|
244 |
+
'title' => __( 'Track Orders', 'woocommerce-jetpack' ),
|
245 |
+
'desc_tip' => __( 'Save customer\'s acquisition source (i.e. HTTP referer) for orders.', 'woocommerce-jetpack' ) . ' ' .
|
246 |
+
__( 'This will add "Booster: Acquisition Source" meta box to each order\'s edit page.', 'woocommerce-jetpack' ) . ' ' .
|
247 |
+
apply_filters( 'booster_get_message', '', 'desc' ),
|
248 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
249 |
+
'id' => 'wcj_track_users_save_order_http_referer_enabled',
|
250 |
+
'default' => 'no',
|
251 |
+
'type' => 'checkbox',
|
252 |
+
'custom_attributes' => apply_filters( 'booster_get_message', '', 'disabled' ),
|
253 |
+
),
|
254 |
+
array(
|
255 |
+
'type' => 'sectionend',
|
256 |
+
'id' => 'wcj_track_users_options',
|
257 |
+
),
|
258 |
/*
|
259 |
array(
|
260 |
'title' => __( 'WooCommerce Templates Editor Links', 'woocommerce-jetpack' ),
|
includes/settings/wcj-settings-product-by-date.php
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Booster for WooCommerce - Settings - Product Availability by Date
|
4 |
+
*
|
5 |
+
* @version 2.9.1
|
6 |
+
* @since 2.9.1
|
7 |
+
* @author Algoritmika Ltd.
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
+
|
12 |
+
$settings = array(
|
13 |
+
array(
|
14 |
+
'title' => __( 'All Products Options', 'woocommerce-jetpack' ),
|
15 |
+
'desc' => '<span id="local-date">' . sprintf( __( 'Today is <code>%s</code>.', 'woocommerce-jetpack' ), date( 'F j', $this->time_now ) ) . '</span>',
|
16 |
+
'type' => 'title',
|
17 |
+
'id' => 'wcj_product_by_date_all_products_options',
|
18 |
+
),
|
19 |
+
array(
|
20 |
+
'title' => __( 'All Products', 'woocommerce-jetpack' ),
|
21 |
+
'desc' => '<strong>' . __( 'Enable', 'woocommerce-jetpack' ) . '</strong>',
|
22 |
+
'desc_tip' => __( 'Date formats:', 'woocommerce-jetpack' ) . ' ' . '<code>DD-DD</code>' . ', ' . '<code>DD-DD,DD-DD</code>' . ', ' . '<code>-</code>' . '.',
|
23 |
+
'id' => 'wcj_product_by_date_section_enabled',
|
24 |
+
'default' => 'no',
|
25 |
+
'type' => 'checkbox',
|
26 |
+
),
|
27 |
+
);
|
28 |
+
$_timestamp = strtotime( '2017-01' );
|
29 |
+
for ( $i = 1; $i <= 12; $i++ ) {
|
30 |
+
$settings = array_merge( $settings, array(
|
31 |
+
array(
|
32 |
+
'title' => date_i18n( 'F', $_timestamp ),
|
33 |
+
'id' => 'wcj_product_by_date_' . $i,
|
34 |
+
'default' => $this->get_default_date( $i ),
|
35 |
+
'type' => 'text',
|
36 |
+
'css' => 'width:300px;',
|
37 |
+
),
|
38 |
+
) );
|
39 |
+
$_timestamp = strtotime( '+1 month', $_timestamp );
|
40 |
+
}
|
41 |
+
$settings = array_merge( $settings, array(
|
42 |
+
array(
|
43 |
+
'type' => 'sectionend',
|
44 |
+
'id' => 'wcj_product_by_date_all_products_options',
|
45 |
+
),
|
46 |
+
array(
|
47 |
+
'title' => __( 'Per Product Options', 'woocommerce-jetpack' ),
|
48 |
+
'type' => 'title',
|
49 |
+
'id' => 'wcj_product_by_date_per_product_options',
|
50 |
+
),
|
51 |
+
array(
|
52 |
+
'title' => __( 'Per Product', 'woocommerce-jetpack' ),
|
53 |
+
'desc' => '<strong>' . __( 'Enable', 'woocommerce-jetpack' ) . '</strong>',
|
54 |
+
'desc_tip' => __( 'This will add new meta box to each product\'s edit page.', 'woocommerce-jetpack' ),
|
55 |
+
'id' => 'wcj_product_by_date_per_product_enabled',
|
56 |
+
'default' => 'no',
|
57 |
+
'type' => 'checkbox',
|
58 |
+
),
|
59 |
+
array(
|
60 |
+
'type' => 'sectionend',
|
61 |
+
'id' => 'wcj_product_by_date_per_product_options',
|
62 |
+
),
|
63 |
+
array(
|
64 |
+
'title' => __( 'Frontend Messages Options', 'woocommerce-jetpack' ),
|
65 |
+
'type' => 'title',
|
66 |
+
'id' => 'wcj_product_by_date_messages_options',
|
67 |
+
),
|
68 |
+
array(
|
69 |
+
'title' => __( 'Message', 'woocommerce-jetpack' ),
|
70 |
+
'desc' => __( 'Message when product is not available by date.', 'woocommerce-jetpack' ) .
|
71 |
+
' ' . wcj_message_replaced_values( array( '%product_title%', '%date_this_month%' ) ) . '.' .
|
72 |
+
' ' . __( 'You can also use shortcodes here.', 'woocommerce-jetpack' ) .
|
73 |
+
' ' . apply_filters( 'booster_get_message', '', 'desc' ),
|
74 |
+
'id' => 'wcj_product_by_date_unavailable_message',
|
75 |
+
'default' => __( '<p style="color:red;">%product_title% is available only on %date_this_month% this month.</p>', 'woocommerce-jetpack' ),
|
76 |
+
'type' => 'custom_textarea',
|
77 |
+
'css' => 'width:66%;min-width:300px;',
|
78 |
+
'custom_attributes' => apply_filters( 'booster_get_message', '', 'readonly' ),
|
79 |
+
),
|
80 |
+
array(
|
81 |
+
'title' => __( 'Message (Month Off)', 'woocommerce-jetpack' ),
|
82 |
+
'desc' => __( 'Message when product is not available by date (month off).', 'woocommerce-jetpack' ) .
|
83 |
+
' ' . wcj_message_replaced_values( array( '%product_title%' ) ) . '.' .
|
84 |
+
' ' . __( 'You can also use shortcodes here.', 'woocommerce-jetpack' ) .
|
85 |
+
' ' . apply_filters( 'booster_get_message', '', 'desc' ),
|
86 |
+
'id' => 'wcj_product_by_date_unavailable_message_month_off',
|
87 |
+
'default' => __( '<p style="color:red;">%product_title% is not available this month.</p>', 'woocommerce-jetpack' ),
|
88 |
+
'type' => 'custom_textarea',
|
89 |
+
'css' => 'width:66%;min-width:300px;',
|
90 |
+
'custom_attributes' => apply_filters( 'booster_get_message', '', 'readonly' ),
|
91 |
+
),
|
92 |
+
array(
|
93 |
+
'type' => 'sectionend',
|
94 |
+
'id' => 'wcj_product_by_date_messages_options',
|
95 |
+
),
|
96 |
+
) );
|
97 |
+
return $settings;
|
includes/settings/wcj-settings-product-by-time.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Availability by Time
|
4 |
*
|
5 |
-
* @version 2.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -11,15 +11,15 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
|
11 |
|
12 |
$settings = array(
|
13 |
array(
|
14 |
-
'title' => __( 'Options', 'woocommerce-jetpack' ),
|
15 |
'desc' => '<span id="local-time">' . sprintf( __( 'Local time is <code>%s</code>.', 'woocommerce-jetpack' ), date( 'l, H:i:s', $this->time_now ) ) . '</span>',
|
16 |
'type' => 'title',
|
17 |
-
'id' => '
|
18 |
),
|
19 |
array(
|
20 |
'title' => __( 'Product by Time', 'woocommerce-jetpack' ),
|
21 |
-
'desc' => '<strong>' . __( 'Enable
|
22 |
-
'desc_tip' => __( 'Time formats:', 'woocommerce-jetpack' ) . ' ' . '<code>HH:MM</code>' . ', ' . '<code>HH:MM,HH:MM</code>' . ', ' . '<code>-</code>' . '.',
|
23 |
'id' => 'wcj_product_by_time_section_enabled',
|
24 |
'default' => 'no',
|
25 |
'type' => 'checkbox',
|
@@ -39,6 +39,32 @@ for ( $i = 0; $i < 7; $i++ ) {
|
|
39 |
$timestamp = strtotime( '+1 day', $timestamp );
|
40 |
}
|
41 |
$settings = array_merge( $settings, array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
array(
|
43 |
'title' => __( 'Message', 'woocommerce-jetpack' ),
|
44 |
'desc' => __( 'Message when product is not available by time.', 'woocommerce-jetpack' ) .
|
@@ -65,7 +91,7 @@ $settings = array_merge( $settings, array(
|
|
65 |
),
|
66 |
array(
|
67 |
'type' => 'sectionend',
|
68 |
-
'id' => '
|
69 |
),
|
70 |
) );
|
71 |
return $settings;
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Availability by Time
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
11 |
|
12 |
$settings = array(
|
13 |
array(
|
14 |
+
'title' => __( 'All Products Options', 'woocommerce-jetpack' ),
|
15 |
'desc' => '<span id="local-time">' . sprintf( __( 'Local time is <code>%s</code>.', 'woocommerce-jetpack' ), date( 'l, H:i:s', $this->time_now ) ) . '</span>',
|
16 |
'type' => 'title',
|
17 |
+
'id' => 'wcj_product_by_time_all_products_options',
|
18 |
),
|
19 |
array(
|
20 |
'title' => __( 'Product by Time', 'woocommerce-jetpack' ),
|
21 |
+
'desc' => '<strong>' . __( 'Enable', 'woocommerce-jetpack' ) . '</strong>',
|
22 |
+
'desc_tip' => __( 'Time formats:', 'woocommerce-jetpack' ) . ' ' . '<code>HH:MM-HH:MM</code>' . ', ' . '<code>HH:MM-HH:MM,HH:MM-HH:MM</code>' . ', ' . '<code>-</code>' . '.',
|
23 |
'id' => 'wcj_product_by_time_section_enabled',
|
24 |
'default' => 'no',
|
25 |
'type' => 'checkbox',
|
39 |
$timestamp = strtotime( '+1 day', $timestamp );
|
40 |
}
|
41 |
$settings = array_merge( $settings, array(
|
42 |
+
array(
|
43 |
+
'type' => 'sectionend',
|
44 |
+
'id' => 'wcj_product_by_time_all_products_options',
|
45 |
+
),
|
46 |
+
array(
|
47 |
+
'title' => __( 'Per Product Options', 'woocommerce-jetpack' ),
|
48 |
+
'type' => 'title',
|
49 |
+
'id' => 'wcj_product_by_time_per_product_options',
|
50 |
+
),
|
51 |
+
array(
|
52 |
+
'title' => __( 'Per Product', 'woocommerce-jetpack' ),
|
53 |
+
'desc' => '<strong>' . __( 'Enable', 'woocommerce-jetpack' ) . '</strong>',
|
54 |
+
'desc_tip' => __( 'This will add new meta box to each product\'s edit page.', 'woocommerce-jetpack' ),
|
55 |
+
'id' => 'wcj_product_by_time_per_product_enabled',
|
56 |
+
'default' => 'no',
|
57 |
+
'type' => 'checkbox',
|
58 |
+
),
|
59 |
+
array(
|
60 |
+
'type' => 'sectionend',
|
61 |
+
'id' => 'wcj_product_by_time_per_product_options',
|
62 |
+
),
|
63 |
+
array(
|
64 |
+
'title' => __( 'Frontend Messages Options', 'woocommerce-jetpack' ),
|
65 |
+
'type' => 'title',
|
66 |
+
'id' => 'wcj_product_by_time_messages_options',
|
67 |
+
),
|
68 |
array(
|
69 |
'title' => __( 'Message', 'woocommerce-jetpack' ),
|
70 |
'desc' => __( 'Message when product is not available by time.', 'woocommerce-jetpack' ) .
|
91 |
),
|
92 |
array(
|
93 |
'type' => 'sectionend',
|
94 |
+
'id' => 'wcj_product_by_time_messages_options',
|
95 |
),
|
96 |
) );
|
97 |
return $settings;
|
includes/settings/wcj-settings-product-custom-info.php
CHANGED
@@ -2,18 +2,20 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Info
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
9 |
|
10 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
|
12 |
-
$
|
13 |
-
$
|
14 |
-
$
|
15 |
-
$
|
16 |
-
$
|
|
|
|
|
17 |
foreach ( $single_or_archive_array as $single_or_archive ) {
|
18 |
$single_or_archive_desc = ( 'single' === $single_or_archive ) ? __( 'Single', 'woocommerce-jetpack' ) : __( 'Archive', 'woocommerce-jetpack' );
|
19 |
$settings = array_merge( $settings, array(
|
@@ -36,6 +38,12 @@ foreach ( $single_or_archive_array as $single_or_archive ) {
|
|
36 |
),
|
37 |
) );
|
38 |
for ( $i = 1; $i <= apply_filters( 'booster_get_option', 1, get_option( 'wcj_product_custom_info_total_number_' . $single_or_archive, 1 ) ); $i++ ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
$settings = array_merge( $settings, array(
|
40 |
array(
|
41 |
'title' => __( 'Info Block', 'woocommerce-jetpack' ) . ' #' . $i . ' - ' . $single_or_archive_desc,
|
@@ -123,25 +131,27 @@ foreach ( $single_or_archive_array as $single_or_archive ) {
|
|
123 |
'css' => 'width: 450px;',
|
124 |
'options' => $product_tags,
|
125 |
),
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
|
|
135 |
),
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
|
|
145 |
),
|
146 |
array(
|
147 |
'type' => 'sectionend',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Product Info
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
9 |
|
10 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
|
12 |
+
$is_multiselect_products = ( 'yes' === get_option( 'wcj_list_for_products', 'yes' ) );
|
13 |
+
$products = ( $is_multiselect_products ? wcj_get_products() : false );
|
14 |
+
$product_cats = wcj_get_terms( 'product_cat' );
|
15 |
+
$product_tags = wcj_get_terms( 'product_tag' );
|
16 |
+
$settings = array();
|
17 |
+
$single_or_archive_array = array( 'single', 'archive' );
|
18 |
+
|
19 |
foreach ( $single_or_archive_array as $single_or_archive ) {
|
20 |
$single_or_archive_desc = ( 'single' === $single_or_archive ) ? __( 'Single', 'woocommerce-jetpack' ) : __( 'Archive', 'woocommerce-jetpack' );
|
21 |
$settings = array_merge( $settings, array(
|
38 |
),
|
39 |
) );
|
40 |
for ( $i = 1; $i <= apply_filters( 'booster_get_option', 1, get_option( 'wcj_product_custom_info_total_number_' . $single_or_archive, 1 ) ); $i++ ) {
|
41 |
+
|
42 |
+
wcj_maybe_convert_and_update_option_value( array(
|
43 |
+
array( 'id' => 'wcj_product_custom_info_products_to_include_' . $single_or_archive . '_' . $i, 'default' => '' ),
|
44 |
+
array( 'id' => 'wcj_product_custom_info_products_to_exclude_' . $single_or_archive . '_' . $i, 'default' => '' ),
|
45 |
+
), $is_multiselect_products );
|
46 |
+
|
47 |
$settings = array_merge( $settings, array(
|
48 |
array(
|
49 |
'title' => __( 'Info Block', 'woocommerce-jetpack' ) . ' #' . $i . ' - ' . $single_or_archive_desc,
|
131 |
'css' => 'width: 450px;',
|
132 |
'options' => $product_tags,
|
133 |
),
|
134 |
+
wcj_get_settings_as_multiselect_or_text(
|
135 |
+
array(
|
136 |
+
'title' => __( 'Products to Include', 'woocommerce-jetpack' ),
|
137 |
+
'desc_tip' => __( 'Leave blank to disable the option.', 'woocommerce-jetpack' ),
|
138 |
+
'id' => 'wcj_product_custom_info_products_to_include_' . $single_or_archive . '_' . $i,
|
139 |
+
'default' => '',
|
140 |
+
'css' => 'width: 450px;',
|
141 |
+
),
|
142 |
+
$products,
|
143 |
+
$is_multiselect_products
|
144 |
),
|
145 |
+
wcj_get_settings_as_multiselect_or_text(
|
146 |
+
array(
|
147 |
+
'title' => __( 'Products to Exclude', 'woocommerce-jetpack' ),
|
148 |
+
'desc_tip' => __( 'Leave blank to disable the option.', 'woocommerce-jetpack' ),
|
149 |
+
'id' => 'wcj_product_custom_info_products_to_exclude_' . $single_or_archive . '_' . $i,
|
150 |
+
'default' => '',
|
151 |
+
'css' => 'width: 450px;',
|
152 |
+
),
|
153 |
+
$products,
|
154 |
+
$is_multiselect_products
|
155 |
),
|
156 |
array(
|
157 |
'type' => 'sectionend',
|
includes/settings/wcj-settings-reports.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Reports
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -90,11 +90,25 @@ $reports_and_settings = array(
|
|
90 |
'checkboxgroup' => 'end',
|
91 |
),
|
92 |
array(
|
93 |
-
'title' => __( 'Monthly Sales (with
|
94 |
'tab' => 'orders',
|
95 |
'tab_title' => __( 'Orders', 'woocommerce-jetpack' ),
|
96 |
'report' => 'booster_monthly_sales',
|
97 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
array(
|
99 |
'title' => __( 'Customers by Country', 'woocommerce-jetpack' ),
|
100 |
'tab' => 'customers',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Reports
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.8.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
90 |
'checkboxgroup' => 'end',
|
91 |
),
|
92 |
array(
|
93 |
+
'title' => __( 'Monthly Sales (with Currency Conversion)', 'woocommerce-jetpack' ),
|
94 |
'tab' => 'orders',
|
95 |
'tab_title' => __( 'Orders', 'woocommerce-jetpack' ),
|
96 |
'report' => 'booster_monthly_sales',
|
97 |
),
|
98 |
+
array(
|
99 |
+
'id' => 'wcj_reports_orders_monthly_sales_include_today',
|
100 |
+
'desc' => __( 'Include current day for current month', 'woocommerce-jetpack' ),
|
101 |
+
'type' => 'checkbox',
|
102 |
+
'default' => 'no',
|
103 |
+
'checkboxgroup' => 'start',
|
104 |
+
),
|
105 |
+
array(
|
106 |
+
'id' => 'wcj_reports_orders_monthly_sales_forecast',
|
107 |
+
'desc' => __( 'Forecast total orders and sum (excl. TAX) for current month', 'woocommerce-jetpack' ),
|
108 |
+
'type' => 'checkbox',
|
109 |
+
'default' => 'no',
|
110 |
+
'checkboxgroup' => 'end',
|
111 |
+
),
|
112 |
array(
|
113 |
'title' => __( 'Customers by Country', 'woocommerce-jetpack' ),
|
114 |
'tab' => 'customers',
|
includes/settings/wcj-settings-shipping-options.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Shipping Options
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -11,28 +11,30 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
|
11 |
|
12 |
$settings = array(
|
13 |
array(
|
14 |
-
'title' => __( 'Hide if Free is Available', 'woocommerce-jetpack' ),
|
15 |
'type' => 'title',
|
16 |
'desc' => __( 'This section lets you hide other shipping options when free shipping is available on shop frontend.', 'woocommerce-jetpack' ),
|
17 |
'id' => 'wcj_shipping_hide_if_free_available_options',
|
18 |
),
|
19 |
-
/*
|
20 |
array(
|
21 |
-
'title' => __( 'Hide
|
22 |
-
'desc' => __( '
|
23 |
-
'id' => '
|
24 |
'default' => 'no',
|
25 |
'type' => 'checkbox',
|
26 |
-
'checkboxgroup' => 'start',
|
27 |
),
|
28 |
-
*/
|
29 |
array(
|
30 |
-
'
|
31 |
-
'
|
32 |
-
'
|
33 |
-
'
|
34 |
-
'
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
36 |
),
|
37 |
array(
|
38 |
'type' => 'sectionend',
|
2 |
/**
|
3 |
* Booster for WooCommerce - Settings - Shipping Options
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @since 2.9.0
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
11 |
|
12 |
$settings = array(
|
13 |
array(
|
14 |
+
'title' => __( 'Hide if Free Shipping is Available', 'woocommerce-jetpack' ),
|
15 |
'type' => 'title',
|
16 |
'desc' => __( 'This section lets you hide other shipping options when free shipping is available on shop frontend.', 'woocommerce-jetpack' ),
|
17 |
'id' => 'wcj_shipping_hide_if_free_available_options',
|
18 |
),
|
|
|
19 |
array(
|
20 |
+
'title' => __( 'Hide when free is available', 'woocommerce-jetpack' ),
|
21 |
+
'desc' => __( 'Enable section', 'woocommerce-jetpack' ),
|
22 |
+
'id' => 'wcj_shipping_hide_if_free_available_all',
|
23 |
'default' => 'no',
|
24 |
'type' => 'checkbox',
|
|
|
25 |
),
|
|
|
26 |
array(
|
27 |
+
'id' => 'wcj_shipping_hide_if_free_available_type',
|
28 |
+
'desc_tip' => sprintf( __( 'Available options: hide all; hide all except "Local Pickup"; hide "Flat Rate" only.', 'woocommerce-jetpack' ) ),
|
29 |
+
'default' => 'hide_all',
|
30 |
+
'type' => 'select',
|
31 |
+
'options' => array(
|
32 |
+
'hide_all' => __( 'Hide all', 'woocommerce-jetpack' ),
|
33 |
+
'except_local_pickup' => __( 'Hide all except "Local Pickup"', 'woocommerce-jetpack' ),
|
34 |
+
'flat_rate_only' => __( 'Hide "Flat Rate" only', 'woocommerce-jetpack' ),
|
35 |
+
),
|
36 |
+
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
37 |
+
'custom_attributes' => apply_filters( 'booster_get_message', '', 'disabled' ),
|
38 |
),
|
39 |
array(
|
40 |
'type' => 'sectionend',
|
includes/settings/wcj-settings-url-coupons.php
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Booster for WooCommerce - Settings - URL Coupons
|
4 |
+
*
|
5 |
+
* @version 2.9.1
|
6 |
+
* @since 2.9.1
|
7 |
+
* @author Algoritmika Ltd.
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
11 |
+
|
12 |
+
$settings = array(
|
13 |
+
array(
|
14 |
+
'title' => __( 'Options', 'woocommerce-jetpack' ),
|
15 |
+
'desc' => sprintf( __( 'Additionally you can hide standard coupon field on cart page in Booster\'s <a href="%s">Cart Customization</a> module.', 'woocommerce-jetpack' ),
|
16 |
+
admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=cart_and_checkout§ion=cart_customization' ) ),
|
17 |
+
'type' => 'title',
|
18 |
+
'id' => 'wcj_url_coupons_options',
|
19 |
+
),
|
20 |
+
array(
|
21 |
+
'title' => __( 'URL Coupons Key', 'woocommerce-jetpack' ),
|
22 |
+
'desc_tip' => __( 'URL key. If you change this, make sure it\'s unique and is not used anywhere on your site (e.g. by another plugin).', 'woocommerce-jetpack' ),
|
23 |
+
'desc' => sprintf( __( 'Your users can apply shop\'s standard coupons, by visiting URL. E.g.: %s.', 'woocommerce-jetpack' ),
|
24 |
+
'<code>' . site_url() . '/?' . get_option( 'wcj_url_coupons_key', 'wcj_apply_coupon' ) . '=couponcode' . '</code>' ),
|
25 |
+
'id' => 'wcj_url_coupons_key',
|
26 |
+
'default' => 'wcj_apply_coupon',
|
27 |
+
'type' => 'text',
|
28 |
+
),
|
29 |
+
array(
|
30 |
+
'title' => __( 'Redirect URL', 'woocommerce-jetpack' ),
|
31 |
+
'desc_tip' => __( 'Possible values: No redirect; redirect to cart; redirect to checkout; redirect to custom local URL.', 'woocommerce-jetpack' ),
|
32 |
+
'id' => 'wcj_url_coupons_redirect',
|
33 |
+
'default' => 'no',
|
34 |
+
'type' => 'select',
|
35 |
+
'options' => array(
|
36 |
+
'no' => __( 'No redirect', 'woocommerce-jetpack' ),
|
37 |
+
'cart' => __( 'Redirect to cart', 'woocommerce-jetpack' ),
|
38 |
+
'checkout' => __( 'Redirect to checkout', 'woocommerce-jetpack' ),
|
39 |
+
'custom' => __( 'Redirect to custom local URL', 'woocommerce-jetpack' ),
|
40 |
+
),
|
41 |
+
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
42 |
+
'custom_attributes' => apply_filters( 'booster_get_message', '', 'disabled' ),
|
43 |
+
),
|
44 |
+
array(
|
45 |
+
'desc' => __( 'Custom Local URL', 'woocommerce-jetpack' ),
|
46 |
+
'id' => 'wcj_url_coupons_redirect_custom_url',
|
47 |
+
'default' => '',
|
48 |
+
'type' => 'text',
|
49 |
+
'css' => 'min-width:300px;',
|
50 |
+
),
|
51 |
+
array(
|
52 |
+
'title' => __( '"Fixed product discount" Coupons', 'woocommerce-jetpack' ),
|
53 |
+
'desc' => __( 'Automatically add coupon\'s products to the cart', 'woocommerce-jetpack' ),
|
54 |
+
'id' => 'wcj_url_coupons_fixed_product_discount_add_products',
|
55 |
+
'default' => 'no',
|
56 |
+
'type' => 'checkbox',
|
57 |
+
'desc_tip' => apply_filters( 'booster_get_message', '', 'desc' ),
|
58 |
+
'custom_attributes' => apply_filters( 'booster_get_message', '', 'disabled' ),
|
59 |
+
),
|
60 |
+
array(
|
61 |
+
'type' => 'sectionend',
|
62 |
+
'id' => 'wcj_url_coupons_options',
|
63 |
+
),
|
64 |
+
);
|
65 |
+
return $settings;
|
includes/shortcodes/class-wcj-general-shortcodes.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - General
|
4 |
*
|
5 |
-
* @version 2.9.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
@@ -15,11 +15,12 @@ class WCJ_General_Shortcodes extends WCJ_Shortcodes {
|
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
-
* @version 2.9.
|
19 |
*/
|
20 |
function __construct() {
|
21 |
|
22 |
$this->the_shortcodes = array(
|
|
|
23 |
'wcj_current_date',
|
24 |
'wcj_current_time',
|
25 |
'wcj_current_datetime',
|
@@ -75,6 +76,16 @@ class WCJ_General_Shortcodes extends WCJ_Shortcodes {
|
|
75 |
|
76 |
}
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
/**
|
79 |
* wcj_currency_exchange_rate.
|
80 |
*
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - General
|
4 |
*
|
5 |
+
* @version 2.9.1
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
15 |
/**
|
16 |
* Constructor.
|
17 |
*
|
18 |
+
* @version 2.9.1
|
19 |
*/
|
20 |
function __construct() {
|
21 |
|
22 |
$this->the_shortcodes = array(
|
23 |
+
'wcj_site_url',
|
24 |
'wcj_current_date',
|
25 |
'wcj_current_time',
|
26 |
'wcj_current_datetime',
|
76 |
|
77 |
}
|
78 |
|
79 |
+
/**
|
80 |
+
* wcj_site_url.
|
81 |
+
*
|
82 |
+
* @version 2.9.1
|
83 |
+
* @since 2.9.1
|
84 |
+
*/
|
85 |
+
function wcj_site_url( $atts ) {
|
86 |
+
return site_url();
|
87 |
+
}
|
88 |
+
|
89 |
/**
|
90 |
* wcj_currency_exchange_rate.
|
91 |
*
|
langs/woocommerce-jetpack.pot
CHANGED
@@ -3,16 +3,15 @@
|
|
3 |
# This file is distributed under the same license as the PACKAGE package.
|
4 |
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5 |
#
|
6 |
-
#: includes/reports/wcj-class-reports-stock.php:43
|
7 |
#: includes/settings/wcj-settings-add-to-cart.php:60
|
8 |
#: includes/settings/wcj-settings-shipping-calculator.php:47
|
9 |
#, fuzzy
|
10 |
msgid ""
|
11 |
msgstr ""
|
12 |
-
"Project-Id-Version: Booster for WooCommerce 2.9.
|
13 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocommerce-"
|
14 |
"jetpack\n"
|
15 |
-
"POT-Creation-Date: 2017-07-
|
16 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
17 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
18 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
@@ -38,7 +37,7 @@ msgid ""
|
|
38 |
msgstr ""
|
39 |
|
40 |
#: woocommerce-jetpack.php:191
|
41 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
42 |
msgid "Booster for WooCommerce"
|
43 |
msgstr ""
|
44 |
|
@@ -46,11 +45,10 @@ msgstr ""
|
|
46 |
msgid "Booster Settings"
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: woocommerce-jetpack.php:207 includes/class-wcj-admin-bar.php:
|
50 |
-
#: includes/class-wcj-admin-bar.php:
|
51 |
-
#: includes/class-wcj-admin-bar.php:537
|
52 |
#: includes/admin/class-wc-settings-jetpack.php:195
|
53 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
54 |
msgid "Settings"
|
55 |
msgstr ""
|
56 |
|
@@ -62,7 +60,7 @@ msgstr ""
|
|
62 |
msgid "Unlock all"
|
63 |
msgstr ""
|
64 |
|
65 |
-
#: woocommerce-jetpack.php:
|
66 |
#, php-format
|
67 |
msgid ""
|
68 |
"<strong>Booster for WooCommerce</strong> plugin was successfully updated to "
|
@@ -117,9 +115,9 @@ msgstr ""
|
|
117 |
msgid "Manage Settings"
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: includes/class-wcj-admin-bar.php:
|
121 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
122 |
-
#: includes/classes/class-wcj-module.php:
|
123 |
msgid "Documentation"
|
124 |
msgstr ""
|
125 |
|
@@ -138,12 +136,13 @@ msgstr ""
|
|
138 |
|
139 |
#: includes/class-wcj-admin-bar.php:238
|
140 |
#: includes/class-wcj-checkout-files-upload.php:138
|
141 |
-
#: includes/class-wcj-eu-vat-number.php:86
|
|
|
142 |
#: includes/class-wcj-payment-gateways.php:53
|
143 |
#: includes/admin/class-wc-settings-jetpack.php:24
|
144 |
#: includes/admin/class-wc-settings-jetpack.php:197
|
145 |
-
#: includes/classes/class-wcj-module.php:
|
146 |
-
#: includes/classes/class-wcj-module.php:
|
147 |
msgid "Booster"
|
148 |
msgstr ""
|
149 |
|
@@ -151,8 +150,12 @@ msgstr ""
|
|
151 |
msgid "Booster - Settings"
|
152 |
msgstr ""
|
153 |
|
|
|
|
|
|
|
|
|
154 |
#: includes/class-wcj-admin-bar.php:250 includes/class-wcj-admin-bar.php:561
|
155 |
-
#: includes/classes/class-wcj-module.php:
|
156 |
#: includes/settings/wcj-settings-wpml.php:15
|
157 |
msgid "Tools"
|
158 |
msgstr ""
|
@@ -173,7 +176,7 @@ msgstr ""
|
|
173 |
msgid "Coupons by date"
|
174 |
msgstr ""
|
175 |
|
176 |
-
#: includes/class-wcj-admin-bar.php:280
|
177 |
#: includes/functions/wcj-reports-functions.php:62
|
178 |
msgid "Last 7 days"
|
179 |
msgstr ""
|
@@ -216,8 +219,8 @@ msgid "Add order"
|
|
216 |
msgstr ""
|
217 |
|
218 |
#: includes/class-wcj-admin-bar.php:334 includes/class-wcj-admin-bar.php:349
|
219 |
-
#: includes/settings/wcj-settings-reports.php:
|
220 |
-
#: includes/settings/wcj-settings-reports.php:
|
221 |
msgid "Customers"
|
222 |
msgstr ""
|
223 |
|
@@ -234,10 +237,10 @@ msgid "Customer list"
|
|
234 |
msgstr ""
|
235 |
|
236 |
#: includes/class-wcj-admin-bar.php:363 includes/class-wcj-stock.php:26
|
237 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
238 |
-
#: includes/settings/wcj-settings-reports.php:
|
239 |
-
#: includes/settings/wcj-settings-reports.php:
|
240 |
-
#: includes/settings/wcj-settings-reports.php:
|
241 |
msgid "Stock"
|
242 |
msgstr ""
|
243 |
|
@@ -272,7 +275,7 @@ msgstr ""
|
|
272 |
#: includes/class-wcj-product-by-user.php:96
|
273 |
#: includes/class-wcj-product-by-user.php:132
|
274 |
#: includes/admin/wcj-modules-cats.php:60
|
275 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
276 |
msgid "Products"
|
277 |
msgstr ""
|
278 |
|
@@ -392,7 +395,7 @@ msgstr ""
|
|
392 |
msgid "Account"
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: includes/class-wcj-admin-bar.php:529
|
396 |
msgid "Emails"
|
397 |
msgstr ""
|
398 |
|
@@ -433,6 +436,7 @@ msgid "Log."
|
|
433 |
msgstr ""
|
434 |
|
435 |
#: includes/class-wcj-admin-tools.php:32
|
|
|
436 |
msgid "Log"
|
437 |
msgstr ""
|
438 |
|
@@ -731,6 +735,48 @@ msgstr ""
|
|
731 |
msgid "Separate custom JS for front and back end."
|
732 |
msgstr ""
|
733 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
734 |
#: includes/class-wcj-emails-verification.php:26
|
735 |
msgid "Email Verification"
|
736 |
msgstr ""
|
@@ -788,43 +834,17 @@ msgid ""
|
|
788 |
"check your email."
|
789 |
msgstr ""
|
790 |
|
791 |
-
#: includes/class-wcj-emails.php:
|
792 |
-
|
793 |
-
"
|
794 |
-
msgstr ""
|
795 |
-
|
796 |
-
#: includes/class-wcj-emails.php:156
|
797 |
-
msgid "Booster: Email Forwarding Options"
|
798 |
-
msgstr ""
|
799 |
-
|
800 |
-
#: includes/class-wcj-emails.php:157
|
801 |
-
msgid "Email Forwarding Options"
|
802 |
-
msgstr ""
|
803 |
-
|
804 |
-
#: includes/class-wcj-emails.php:159
|
805 |
-
msgid ""
|
806 |
-
"This section lets you add another email recipient(s) to all WooCommerce "
|
807 |
-
"emails. Leave blank to disable."
|
808 |
-
msgstr ""
|
809 |
-
|
810 |
-
#: includes/class-wcj-emails.php:163
|
811 |
-
msgid "Cc Email"
|
812 |
-
msgstr ""
|
813 |
-
|
814 |
-
#: includes/class-wcj-emails.php:164
|
815 |
-
msgid "Cc to email, e.g. youremail@yourdomain.com. Leave blank to disable."
|
816 |
-
msgstr ""
|
817 |
-
|
818 |
-
#: includes/class-wcj-emails.php:170
|
819 |
-
msgid "Bcc Email"
|
820 |
msgstr ""
|
821 |
|
822 |
-
#: includes/class-wcj-emails.php:
|
823 |
-
msgid "
|
824 |
msgstr ""
|
825 |
|
826 |
#: includes/class-wcj-empty-cart-button.php:25
|
827 |
-
#: includes/shortcodes/class-wcj-general-shortcodes.php:
|
828 |
msgid "Empty Cart Button"
|
829 |
msgstr ""
|
830 |
|
@@ -894,7 +914,7 @@ msgid "<strong>EU VAT Number</strong> is not valid."
|
|
894 |
msgstr ""
|
895 |
|
896 |
#: includes/class-wcj-export-import.php:26
|
897 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
898 |
msgid "Export"
|
899 |
msgstr ""
|
900 |
|
@@ -1011,32 +1031,109 @@ msgstr ""
|
|
1011 |
msgid "Manage Custom Roles."
|
1012 |
msgstr ""
|
1013 |
|
1014 |
-
#: includes/class-wcj-general.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1015 |
msgid "Booster User Role"
|
1016 |
msgstr ""
|
1017 |
|
1018 |
-
#: includes/class-wcj-general.php:
|
1019 |
msgid "Both fields are required!"
|
1020 |
msgstr ""
|
1021 |
|
1022 |
-
#: includes/class-wcj-general.php:
|
1023 |
msgid "Role ID must not be numbers only!"
|
1024 |
msgstr ""
|
1025 |
|
1026 |
-
#: includes/class-wcj-general.php:
|
1027 |
msgid "Role successfully added!"
|
1028 |
msgstr ""
|
1029 |
|
1030 |
-
#: includes/class-wcj-general.php:
|
1031 |
msgid "Role already exists!"
|
1032 |
msgstr ""
|
1033 |
|
1034 |
-
#: includes/class-wcj-general.php:
|
1035 |
#, php-format
|
1036 |
msgid "Role %s successfully deleted!"
|
1037 |
msgstr ""
|
1038 |
|
1039 |
-
#: includes/class-wcj-general.php:
|
1040 |
#: includes/class-wcj-sku.php:330
|
1041 |
#: includes/reports/wcj-class-reports-sales.php:191
|
1042 |
#: includes/settings/wcj-settings-product-by-user.php:161
|
@@ -1044,7 +1141,7 @@ msgstr ""
|
|
1044 |
msgid "ID"
|
1045 |
msgstr ""
|
1046 |
|
1047 |
-
#: includes/class-wcj-general.php:
|
1048 |
#: includes/class-wcj-offer-price.php:116
|
1049 |
#: includes/export/class-wcj-fields-helper.php:282
|
1050 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:70
|
@@ -1052,14 +1149,14 @@ msgstr ""
|
|
1052 |
msgid "Name"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
-
#: includes/class-wcj-general.php:
|
1056 |
#: includes/class-wcj-order-custom-statuses.php:337
|
1057 |
#: includes/class-wcj-product-by-user.php:197
|
1058 |
#: includes/settings/wcj-settings-pdf-invoicing-styling.php:125
|
1059 |
msgid "Actions"
|
1060 |
msgstr ""
|
1061 |
|
1062 |
-
#: includes/class-wcj-general.php:
|
1063 |
#: includes/class-wcj-order-custom-statuses.php:359
|
1064 |
#: includes/class-wcj-product-bulk-meta-editor.php:359
|
1065 |
#: includes/class-wcj-product-by-user.php:206
|
@@ -1069,20 +1166,20 @@ msgstr ""
|
|
1069 |
msgid "Delete"
|
1070 |
msgstr ""
|
1071 |
|
1072 |
-
#: includes/class-wcj-general.php:
|
1073 |
msgid "Existing Roles"
|
1074 |
msgstr ""
|
1075 |
|
1076 |
-
#: includes/class-wcj-general.php:
|
1077 |
msgid "Add New Role"
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#: includes/class-wcj-general.php:
|
1081 |
#: includes/class-wcj-order-custom-statuses.php:384
|
1082 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:22
|
1083 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:29
|
1084 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:36
|
1085 |
-
#: includes/settings/wcj-settings-
|
1086 |
#: includes/settings/wcj-settings-eu-vat-number.php:157
|
1087 |
#: includes/settings/wcj-settings-eu-vat-number.php:193
|
1088 |
#: includes/settings/wcj-settings-export.php:27
|
@@ -1104,21 +1201,21 @@ msgstr ""
|
|
1104 |
msgid "Add"
|
1105 |
msgstr ""
|
1106 |
|
1107 |
-
#: includes/class-wcj-general.php:
|
1108 |
#: includes/class-wcj-product-bulk-meta-editor.php:331
|
1109 |
#: includes/class-wcj-product-bulk-price-converter.php:148
|
1110 |
#: includes/class-wcj-sku.php:331
|
1111 |
#: includes/reports/wcj-class-reports-sales.php:192
|
1112 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
1113 |
msgid "Product"
|
1114 |
msgstr ""
|
1115 |
|
1116 |
-
#: includes/class-wcj-general.php:
|
1117 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
1118 |
msgid "Category"
|
1119 |
msgstr ""
|
1120 |
|
1121 |
-
#: includes/class-wcj-general.php:
|
1122 |
msgid "Total Products:"
|
1123 |
msgstr ""
|
1124 |
|
@@ -1200,18 +1297,6 @@ msgstr ""
|
|
1200 |
msgid "WooCommerce \"My Account\" page customization."
|
1201 |
msgstr ""
|
1202 |
|
1203 |
-
#: includes/class-wcj-my-account.php:75
|
1204 |
-
#: includes/class-wcj-order-custom-statuses.php:359
|
1205 |
-
#: includes/class-wcj-product-bulk-meta-editor.php:275
|
1206 |
-
#: includes/class-wcj-product-by-user.php:206
|
1207 |
-
#: includes/class-wcj-purchase-data.php:93
|
1208 |
-
#: includes/classes/class-wcj-module.php:515
|
1209 |
-
#: includes/functions/wcj-html-functions.php:95
|
1210 |
-
#: includes/settings/wcj-settings-empty-cart.php:80
|
1211 |
-
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:367
|
1212 |
-
msgid "Are you sure?"
|
1213 |
-
msgstr ""
|
1214 |
-
|
1215 |
#: includes/class-wcj-offer-price.php:36
|
1216 |
msgid "Offer Your Price"
|
1217 |
msgstr ""
|
@@ -1237,7 +1322,7 @@ msgstr ""
|
|
1237 |
|
1238 |
#: includes/class-wcj-offer-price.php:114
|
1239 |
#: includes/export/class-wcj-fields-helper.php:288
|
1240 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
1241 |
#: includes/settings/wcj-settings-related-products.php:24
|
1242 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:72
|
1243 |
msgid "Price"
|
@@ -1246,7 +1331,8 @@ msgstr ""
|
|
1246 |
#: includes/class-wcj-offer-price.php:115
|
1247 |
#: includes/settings/wcj-settings-currency-per-product.php:41
|
1248 |
#: includes/settings/wcj-settings-currency-per-product.php:48
|
1249 |
-
#: includes/settings/wcj-settings-product-by-
|
|
|
1250 |
msgid "Message"
|
1251 |
msgstr ""
|
1252 |
|
@@ -1954,14 +2040,16 @@ msgstr ""
|
|
1954 |
|
1955 |
#: includes/class-wcj-price-labels.php:40
|
1956 |
#: includes/class-wcj-product-info.php:254
|
|
|
1957 |
#: includes/settings/wcj-settings-add-to-cart.php:52
|
1958 |
#: includes/settings/wcj-settings-address-formats.php:20
|
1959 |
#: includes/settings/wcj-settings-admin-bar.php:20
|
1960 |
#: includes/settings/wcj-settings-admin-bar.php:27
|
1961 |
#: includes/settings/wcj-settings-admin-tools.php:20
|
1962 |
#: includes/settings/wcj-settings-admin-tools.php:27
|
1963 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
1964 |
#: includes/settings/wcj-settings-admin-tools.php:74
|
|
|
1965 |
#: includes/settings/wcj-settings-breadcrumbs.php:20
|
1966 |
#: includes/settings/wcj-settings-call-for-price.php:69
|
1967 |
#: includes/settings/wcj-settings-cart-customization.php:34
|
@@ -1981,7 +2069,7 @@ msgstr ""
|
|
1981 |
#: includes/settings/wcj-settings-general.php:81
|
1982 |
#: includes/settings/wcj-settings-general.php:139
|
1983 |
#: includes/settings/wcj-settings-general.php:190
|
1984 |
-
#: includes/settings/wcj-settings-general.php:
|
1985 |
#: includes/settings/wcj-settings-global-discount.php:43
|
1986 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:23
|
1987 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:56
|
@@ -2025,6 +2113,10 @@ msgstr ""
|
|
2025 |
#: includes/settings/wcj-settings-product-by-country.php:20
|
2026 |
#: includes/settings/wcj-settings-product-by-country.php:27
|
2027 |
#: includes/settings/wcj-settings-product-by-country.php:34
|
|
|
|
|
|
|
|
|
2028 |
#: includes/settings/wcj-settings-product-by-user-role.php:20
|
2029 |
#: includes/settings/wcj-settings-product-by-user-role.php:27
|
2030 |
#: includes/settings/wcj-settings-product-by-user-role.php:34
|
@@ -2056,7 +2148,7 @@ msgstr ""
|
|
2056 |
#: includes/settings/wcj-settings-shipping-calculator.php:27
|
2057 |
#: includes/settings/wcj-settings-shipping-calculator.php:34
|
2058 |
#: includes/settings/wcj-settings-shipping-calculator.php:41
|
2059 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
2060 |
#: includes/settings/wcj-settings-shipping.php:24
|
2061 |
#: includes/settings/wcj-settings-sku.php:47
|
2062 |
#: includes/settings/wcj-settings-sku.php:150
|
@@ -2452,23 +2544,46 @@ msgstr ""
|
|
2452 |
msgid "Countries"
|
2453 |
msgstr ""
|
2454 |
|
2455 |
-
#: includes/class-wcj-product-by-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2456 |
msgid "Product Availability by Time"
|
2457 |
msgstr ""
|
2458 |
|
2459 |
-
#: includes/class-wcj-product-by-time.php:
|
2460 |
msgid "WooCommerce product availability by time."
|
2461 |
msgstr ""
|
2462 |
|
2463 |
-
#: includes/class-wcj-product-by-time.php:
|
2464 |
-
#: includes/class-wcj-product-by-time.php:
|
2465 |
-
#: includes/settings/wcj-settings-product-by-time.php:
|
2466 |
msgid "<p style=\"color:red;\">%product_title% is not available today.</p>"
|
2467 |
msgstr ""
|
2468 |
|
2469 |
-
#: includes/class-wcj-product-by-time.php:
|
2470 |
-
#: includes/class-wcj-product-by-time.php:
|
2471 |
-
#: includes/settings/wcj-settings-product-by-time.php:
|
2472 |
msgid ""
|
2473 |
"<p style=\"color:red;\">%product_title% is available only at %time_today% "
|
2474 |
"today.</p>"
|
@@ -2532,6 +2647,7 @@ msgid "Title"
|
|
2532 |
msgstr ""
|
2533 |
|
2534 |
#: includes/class-wcj-product-custom-info.php:24
|
|
|
2535 |
#: includes/functions/wcj-general-functions.php:33
|
2536 |
msgid "Product Info"
|
2537 |
msgstr ""
|
@@ -2541,15 +2657,15 @@ msgstr ""
|
|
2541 |
msgid "Add additional info to WooCommerce category and single product pages."
|
2542 |
msgstr ""
|
2543 |
|
2544 |
-
#: includes/class-wcj-product-images.php:
|
2545 |
msgid "Product Images"
|
2546 |
msgstr ""
|
2547 |
|
2548 |
-
#: includes/class-wcj-product-images.php:
|
2549 |
msgid "Customize WooCommerce products images, thumbnails and sale flashes."
|
2550 |
msgstr ""
|
2551 |
|
2552 |
-
#: includes/class-wcj-product-images.php:
|
2553 |
#: includes/settings/wcj-settings-product-images.php:103
|
2554 |
msgid "Sale!"
|
2555 |
msgstr ""
|
@@ -2560,41 +2676,41 @@ msgstr ""
|
|
2560 |
|
2561 |
#: includes/class-wcj-product-info.php:123
|
2562 |
#: includes/settings/wcj-settings-offer-price.php:91
|
2563 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
2564 |
msgid "Before product"
|
2565 |
msgstr ""
|
2566 |
|
2567 |
#: includes/class-wcj-product-info.php:124
|
2568 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
2569 |
msgid "Before product title"
|
2570 |
msgstr ""
|
2571 |
|
2572 |
#: includes/class-wcj-product-info.php:125
|
2573 |
#: includes/settings/wcj-settings-offer-price.php:92
|
2574 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
2575 |
msgid "After product"
|
2576 |
msgstr ""
|
2577 |
|
2578 |
#: includes/class-wcj-product-info.php:126
|
2579 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
2580 |
msgid "After product title"
|
2581 |
msgstr ""
|
2582 |
|
2583 |
#: includes/class-wcj-product-info.php:138
|
2584 |
#: includes/settings/wcj-settings-offer-price.php:72
|
2585 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
2586 |
msgid "Inside single product summary"
|
2587 |
msgstr ""
|
2588 |
|
2589 |
#: includes/class-wcj-product-info.php:139
|
2590 |
#: includes/settings/wcj-settings-offer-price.php:71
|
2591 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
2592 |
msgid "Before single product summary"
|
2593 |
msgstr ""
|
2594 |
|
2595 |
#: includes/class-wcj-product-info.php:140
|
2596 |
#: includes/settings/wcj-settings-offer-price.php:73
|
2597 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
2598 |
msgid "After single product summary"
|
2599 |
msgstr ""
|
2600 |
|
@@ -2606,7 +2722,7 @@ msgstr ""
|
|
2606 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:74
|
2607 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:113
|
2608 |
#: includes/settings/wcj-settings-mini-cart.php:46
|
2609 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
2610 |
#: includes/settings/wcj-settings-product-info.php:50
|
2611 |
#: includes/settings/wcj-settings-product-info.php:83
|
2612 |
#: includes/settings/wcj-settings-products-per-page.php:36
|
@@ -2758,7 +2874,7 @@ msgstr ""
|
|
2758 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:65
|
2759 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:104
|
2760 |
#: includes/settings/wcj-settings-mini-cart.php:39
|
2761 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
2762 |
#: includes/settings/wcj-settings-product-tabs.php:57
|
2763 |
msgid "Content"
|
2764 |
msgstr ""
|
@@ -2844,6 +2960,8 @@ msgstr ""
|
|
2844 |
#: includes/settings/wcj-settings-currency-exchange-rates.php:141
|
2845 |
#: includes/settings/wcj-settings-pdf-invoicing.php:21
|
2846 |
#: includes/settings/wcj-settings-product-add-to-cart.php:64
|
|
|
|
|
2847 |
msgid "Disabled"
|
2848 |
msgstr ""
|
2849 |
|
@@ -2923,7 +3041,7 @@ msgid "Booster: Product cost (destination)"
|
|
2923 |
msgstr ""
|
2924 |
|
2925 |
#: includes/class-wcj-purchase-data.php:92
|
2926 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
2927 |
msgid "Import"
|
2928 |
msgstr ""
|
2929 |
|
@@ -3009,7 +3127,7 @@ msgid "Booster: Product Sales (Monthly)"
|
|
3009 |
msgstr ""
|
3010 |
|
3011 |
#: includes/class-wcj-reports.php:221
|
3012 |
-
msgid "Booster: Monthly Sales"
|
3013 |
msgstr ""
|
3014 |
|
3015 |
#: includes/class-wcj-reports.php:236
|
@@ -3066,13 +3184,30 @@ msgstr ""
|
|
3066 |
msgid "Grant free shipping on per product basis."
|
3067 |
msgstr ""
|
3068 |
|
3069 |
-
#: includes/class-wcj-shipping-options.php:
|
3070 |
-
msgid "Booster: Hide
|
3071 |
msgstr ""
|
3072 |
|
3073 |
-
#: includes/class-wcj-shipping-options.php:
|
3074 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
3075 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3076 |
msgstr ""
|
3077 |
|
3078 |
#: includes/class-wcj-shipping.php:23
|
@@ -3168,6 +3303,14 @@ msgstr ""
|
|
3168 |
msgid "WooCommerce products stock management."
|
3169 |
msgstr ""
|
3170 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3171 |
#: includes/class-wcj-wholesale-price.php:25
|
3172 |
msgid "Wholesale Price"
|
3173 |
msgstr ""
|
@@ -3227,44 +3370,44 @@ msgid ""
|
|
3227 |
"This section lets you export, import or reset all Booster's modules settings."
|
3228 |
msgstr ""
|
3229 |
|
3230 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3231 |
msgid "Export all Booster's options to a file."
|
3232 |
msgstr ""
|
3233 |
|
3234 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3235 |
msgid "Import all Booster's options from a file."
|
3236 |
msgstr ""
|
3237 |
|
3238 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3239 |
msgid ""
|
3240 |
"This will reset settings to defaults for all Booster modules. Are you sure?"
|
3241 |
msgstr ""
|
3242 |
|
3243 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3244 |
msgid "Reset"
|
3245 |
msgstr ""
|
3246 |
|
3247 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3248 |
msgid "Reset all Booster's options."
|
3249 |
msgstr ""
|
3250 |
|
3251 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3252 |
msgid "Version"
|
3253 |
msgstr ""
|
3254 |
|
3255 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3256 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3257 |
msgid "Select All"
|
3258 |
msgstr ""
|
3259 |
|
3260 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3261 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3262 |
#: includes/admin/class-wcj-tools.php:72
|
3263 |
msgid "Module"
|
3264 |
msgstr ""
|
3265 |
|
3266 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3267 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3268 |
#: includes/admin/class-wcj-tools.php:73
|
3269 |
#: includes/export/class-wcj-fields-helper.php:293
|
3270 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:74
|
@@ -3275,25 +3418,34 @@ msgstr ""
|
|
3275 |
msgid "Description"
|
3276 |
msgstr ""
|
3277 |
|
3278 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3279 |
msgid "No active modules found."
|
3280 |
msgstr ""
|
3281 |
|
3282 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3283 |
msgid "Total Modules:"
|
3284 |
msgstr ""
|
3285 |
|
3286 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3287 |
msgid "Autoload Booster's Options"
|
3288 |
msgstr ""
|
3289 |
|
3290 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
3291 |
msgid ""
|
3292 |
"Choose if you want Booster's options to be autoloaded when calling "
|
3293 |
"add_option. After saving this option, you need to Reset all Booster's "
|
3294 |
"settings. Leave default value (i.e. Enabled) if not sure."
|
3295 |
msgstr ""
|
3296 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3297 |
#: includes/admin/class-wcj-settings-custom-fields.php:187
|
3298 |
#: includes/settings/wcj-settings-wpml.php:21
|
3299 |
msgid "To use tools, module must be enabled."
|
@@ -3382,15 +3534,15 @@ msgid ""
|
|
3382 |
"Listings, Product Tabs and more."
|
3383 |
msgstr ""
|
3384 |
|
3385 |
-
#: includes/admin/wcj-modules-cats.php:
|
3386 |
msgid "Cart & Checkout"
|
3387 |
msgstr ""
|
3388 |
|
3389 |
-
#: includes/admin/wcj-modules-cats.php:
|
3390 |
msgid "Cart and Checkout Customization, Empty Cart Button, Mini Cart and more."
|
3391 |
msgstr ""
|
3392 |
|
3393 |
-
#: includes/admin/wcj-modules-cats.php:
|
3394 |
#: includes/settings/wcj-settings-payment-gateways-by-country.php:14
|
3395 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:21
|
3396 |
#: includes/settings/wcj-settings-payment-gateways-by-user-role.php:14
|
@@ -3398,57 +3550,66 @@ msgstr ""
|
|
3398 |
msgid "Payment Gateways"
|
3399 |
msgstr ""
|
3400 |
|
3401 |
-
#: includes/admin/wcj-modules-cats.php:
|
3402 |
msgid ""
|
3403 |
"Custom Payment Gateways, Gateways Currency, Gateways Fees and Discounts and "
|
3404 |
"more."
|
3405 |
msgstr ""
|
3406 |
|
3407 |
-
#: includes/admin/wcj-modules-cats.php:
|
3408 |
msgid "Shipping & Orders"
|
3409 |
msgstr ""
|
3410 |
|
3411 |
-
#: includes/admin/wcj-modules-cats.php:
|
3412 |
msgid ""
|
3413 |
"Order Custom Statuses, Order Minimum Amount, Order Numbers, Custom Shipping "
|
3414 |
"Methods and more."
|
3415 |
msgstr ""
|
3416 |
|
3417 |
-
#: includes/admin/wcj-modules-cats.php:
|
3418 |
msgid "PDF Invoicing & Packing Slips"
|
3419 |
msgstr ""
|
3420 |
|
3421 |
-
#: includes/admin/wcj-modules-cats.php:
|
3422 |
msgid "PDF Documents"
|
3423 |
msgstr ""
|
3424 |
|
3425 |
-
#: includes/admin/wcj-modules-cats.php:
|
3426 |
msgid "Emails & Misc."
|
3427 |
msgstr ""
|
3428 |
|
3429 |
-
#: includes/admin/wcj-modules-cats.php:
|
3430 |
msgid "Emails, Reports, Export, Admin Tools, General Options and more."
|
3431 |
msgstr ""
|
3432 |
|
3433 |
-
#: includes/classes/class-wcj-module.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3434 |
msgid "Back to Module Settings"
|
3435 |
msgstr ""
|
3436 |
|
3437 |
-
#: includes/classes/class-wcj-module.php:
|
3438 |
#: includes/settings/wcj-settings-wpml.php:20
|
3439 |
msgid "Module Tools"
|
3440 |
msgstr ""
|
3441 |
|
3442 |
-
#: includes/classes/class-wcj-module.php:
|
3443 |
#: includes/settings/wcj-settings-checkout-core-fields.php:23
|
3444 |
msgid "enabled"
|
3445 |
msgstr ""
|
3446 |
|
3447 |
-
#: includes/classes/class-wcj-module.php:
|
3448 |
msgid "disabled"
|
3449 |
msgstr ""
|
3450 |
|
3451 |
-
#: includes/classes/class-wcj-module.php:
|
3452 |
#: includes/settings/wcj-settings-product-tabs.php:133
|
3453 |
#: includes/settings/wcj-settings-product-tabs.php:141
|
3454 |
#: includes/settings/wcj-settings-product-tabs.php:149
|
@@ -3456,27 +3617,27 @@ msgstr ""
|
|
3456 |
msgid "Deprecated"
|
3457 |
msgstr ""
|
3458 |
|
3459 |
-
#: includes/classes/class-wcj-module.php:
|
3460 |
msgid "Reset Settings"
|
3461 |
msgstr ""
|
3462 |
|
3463 |
-
#: includes/classes/class-wcj-module.php:
|
3464 |
msgid "Reset Module to Default Settings"
|
3465 |
msgstr ""
|
3466 |
|
3467 |
-
#: includes/classes/class-wcj-module.php:
|
3468 |
msgid "Reset Submodule to Default Settings"
|
3469 |
msgstr ""
|
3470 |
|
3471 |
-
#: includes/classes/class-wcj-module.php:
|
3472 |
msgid "Reset settings"
|
3473 |
msgstr ""
|
3474 |
|
3475 |
-
#: includes/classes/class-wcj-module.php:
|
3476 |
msgid "Module Options"
|
3477 |
msgstr ""
|
3478 |
|
3479 |
-
#: includes/classes/class-wcj-module.php:
|
3480 |
msgid "Enable Module"
|
3481 |
msgstr ""
|
3482 |
|
@@ -3998,7 +4159,7 @@ msgstr ""
|
|
3998 |
#: includes/settings/wcj-settings-global-discount.php:49
|
3999 |
#: includes/settings/wcj-settings-product-addons.php:70
|
4000 |
#: includes/settings/wcj-settings-purchase-data.php:73
|
4001 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
4002 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:45
|
4003 |
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:164
|
4004 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:123
|
@@ -4006,7 +4167,7 @@ msgid "Type"
|
|
4006 |
msgstr ""
|
4007 |
|
4008 |
#: includes/export/class-wcj-fields-helper.php:291
|
4009 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
4010 |
msgid "Image URL"
|
4011 |
msgstr ""
|
4012 |
|
@@ -4122,7 +4283,11 @@ msgstr ""
|
|
4122 |
msgid "Availability Class"
|
4123 |
msgstr ""
|
4124 |
|
4125 |
-
#: includes/functions/wcj-admin-functions.php:
|
|
|
|
|
|
|
|
|
4126 |
#: includes/settings/wcj-settings-emails-verification.php:52
|
4127 |
#: includes/settings/wcj-settings-emails-verification.php:69
|
4128 |
#: includes/settings/wcj-settings-emails-verification.php:77
|
@@ -4130,1040 +4295,1040 @@ msgstr ""
|
|
4130 |
msgid "Replaced value: %s"
|
4131 |
msgstr ""
|
4132 |
|
4133 |
-
#: includes/functions/wcj-admin-functions.php:
|
4134 |
#, php-format
|
4135 |
msgid "Replaced values: %s"
|
4136 |
msgstr ""
|
4137 |
|
4138 |
-
#: includes/functions/wcj-admin-functions.php:
|
4139 |
msgid "Install Booster Plus to unlock all features"
|
4140 |
msgstr ""
|
4141 |
|
4142 |
-
#: includes/functions/wcj-admin-functions.php:
|
4143 |
#, php-format
|
4144 |
msgid ""
|
4145 |
"Some settings fields are locked and you will need %s to modify all locked "
|
4146 |
"fields."
|
4147 |
msgstr ""
|
4148 |
|
4149 |
-
#: includes/functions/wcj-admin-functions.php:
|
4150 |
msgid "Buy now"
|
4151 |
msgstr ""
|
4152 |
|
4153 |
-
#: includes/functions/wcj-admin-functions.php:
|
4154 |
msgid "Visit Booster Site"
|
4155 |
msgstr ""
|
4156 |
|
4157 |
-
#: includes/functions/wcj-admin-functions.php:
|
4158 |
#, php-format
|
4159 |
msgid "Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to change value."
|
4160 |
msgstr ""
|
4161 |
|
4162 |
-
#: includes/functions/wcj-admin-functions.php:
|
4163 |
#, php-format
|
4164 |
msgid ""
|
4165 |
"Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to enable \"%s\" "
|
4166 |
"option."
|
4167 |
msgstr ""
|
4168 |
|
4169 |
-
#: includes/functions/wcj-admin-functions.php:
|
4170 |
#, php-format
|
4171 |
msgid "Get Booster Plus to enable \"%s\" option."
|
4172 |
msgstr ""
|
4173 |
|
4174 |
-
#: includes/functions/wcj-admin-functions.php:
|
4175 |
#, php-format
|
4176 |
msgid ""
|
4177 |
"Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to change values below."
|
4178 |
msgstr ""
|
4179 |
|
4180 |
-
#: includes/functions/wcj-admin-functions.php:
|
4181 |
#, php-format
|
4182 |
msgid ""
|
4183 |
"Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to change values above."
|
4184 |
msgstr ""
|
4185 |
|
4186 |
-
#: includes/functions/wcj-admin-functions.php:
|
4187 |
msgid "Get Booster Plus to change value."
|
4188 |
msgstr ""
|
4189 |
|
4190 |
-
#: includes/functions/wcj-country-functions.php:
|
4191 |
msgid "Afghanistan"
|
4192 |
msgstr ""
|
4193 |
|
4194 |
-
#: includes/functions/wcj-country-functions.php:
|
4195 |
msgid "Åland Islands"
|
4196 |
msgstr ""
|
4197 |
|
4198 |
-
#: includes/functions/wcj-country-functions.php:
|
4199 |
msgid "Albania"
|
4200 |
msgstr ""
|
4201 |
|
4202 |
-
#: includes/functions/wcj-country-functions.php:
|
4203 |
msgid "Algeria"
|
4204 |
msgstr ""
|
4205 |
|
4206 |
-
#: includes/functions/wcj-country-functions.php:
|
4207 |
msgid "Andorra"
|
4208 |
msgstr ""
|
4209 |
|
4210 |
-
#: includes/functions/wcj-country-functions.php:
|
4211 |
msgid "Angola"
|
4212 |
msgstr ""
|
4213 |
|
4214 |
-
#: includes/functions/wcj-country-functions.php:
|
4215 |
msgid "Anguilla"
|
4216 |
msgstr ""
|
4217 |
|
4218 |
-
#: includes/functions/wcj-country-functions.php:
|
4219 |
msgid "Antarctica"
|
4220 |
msgstr ""
|
4221 |
|
4222 |
-
#: includes/functions/wcj-country-functions.php:
|
4223 |
msgid "Antigua and Barbuda"
|
4224 |
msgstr ""
|
4225 |
|
4226 |
-
#: includes/functions/wcj-country-functions.php:
|
4227 |
msgid "Argentina"
|
4228 |
msgstr ""
|
4229 |
|
4230 |
-
#: includes/functions/wcj-country-functions.php:
|
4231 |
msgid "Armenia"
|
4232 |
msgstr ""
|
4233 |
|
4234 |
-
#: includes/functions/wcj-country-functions.php:
|
4235 |
msgid "Aruba"
|
4236 |
msgstr ""
|
4237 |
|
4238 |
-
#: includes/functions/wcj-country-functions.php:
|
4239 |
msgid "Australia"
|
4240 |
msgstr ""
|
4241 |
|
4242 |
-
#: includes/functions/wcj-country-functions.php:
|
4243 |
msgid "Austria"
|
4244 |
msgstr ""
|
4245 |
|
4246 |
-
#: includes/functions/wcj-country-functions.php:
|
4247 |
msgid "Azerbaijan"
|
4248 |
msgstr ""
|
4249 |
|
4250 |
-
#: includes/functions/wcj-country-functions.php:
|
4251 |
msgid "Bahamas"
|
4252 |
msgstr ""
|
4253 |
|
4254 |
-
#: includes/functions/wcj-country-functions.php:
|
4255 |
msgid "Bahrain"
|
4256 |
msgstr ""
|
4257 |
|
4258 |
-
#: includes/functions/wcj-country-functions.php:
|
4259 |
msgid "Bangladesh"
|
4260 |
msgstr ""
|
4261 |
|
4262 |
-
#: includes/functions/wcj-country-functions.php:
|
4263 |
msgid "Barbados"
|
4264 |
msgstr ""
|
4265 |
|
4266 |
-
#: includes/functions/wcj-country-functions.php:
|
4267 |
msgid "Belarus"
|
4268 |
msgstr ""
|
4269 |
|
4270 |
-
#: includes/functions/wcj-country-functions.php:
|
4271 |
msgid "Belgium"
|
4272 |
msgstr ""
|
4273 |
|
4274 |
-
#: includes/functions/wcj-country-functions.php:
|
4275 |
msgid "Belau"
|
4276 |
msgstr ""
|
4277 |
|
4278 |
-
#: includes/functions/wcj-country-functions.php:
|
4279 |
msgid "Belize"
|
4280 |
msgstr ""
|
4281 |
|
4282 |
-
#: includes/functions/wcj-country-functions.php:
|
4283 |
msgid "Benin"
|
4284 |
msgstr ""
|
4285 |
|
4286 |
-
#: includes/functions/wcj-country-functions.php:
|
4287 |
msgid "Bermuda"
|
4288 |
msgstr ""
|
4289 |
|
4290 |
-
#: includes/functions/wcj-country-functions.php:
|
4291 |
msgid "Bhutan"
|
4292 |
msgstr ""
|
4293 |
|
4294 |
-
#: includes/functions/wcj-country-functions.php:
|
4295 |
msgid "Bolivia"
|
4296 |
msgstr ""
|
4297 |
|
4298 |
-
#: includes/functions/wcj-country-functions.php:
|
4299 |
msgid "Bonaire, Saint Eustatius and Saba"
|
4300 |
msgstr ""
|
4301 |
|
4302 |
-
#: includes/functions/wcj-country-functions.php:
|
4303 |
msgid "Bosnia and Herzegovina"
|
4304 |
msgstr ""
|
4305 |
|
4306 |
-
#: includes/functions/wcj-country-functions.php:
|
4307 |
msgid "Botswana"
|
4308 |
msgstr ""
|
4309 |
|
4310 |
-
#: includes/functions/wcj-country-functions.php:
|
4311 |
msgid "Bouvet Island"
|
4312 |
msgstr ""
|
4313 |
|
4314 |
-
#: includes/functions/wcj-country-functions.php:
|
4315 |
msgid "Brazil"
|
4316 |
msgstr ""
|
4317 |
|
4318 |
-
#: includes/functions/wcj-country-functions.php:
|
4319 |
msgid "British Indian Ocean Territory"
|
4320 |
msgstr ""
|
4321 |
|
4322 |
-
#: includes/functions/wcj-country-functions.php:
|
4323 |
msgid "British Virgin Islands"
|
4324 |
msgstr ""
|
4325 |
|
4326 |
-
#: includes/functions/wcj-country-functions.php:
|
4327 |
msgid "Brunei"
|
4328 |
msgstr ""
|
4329 |
|
4330 |
-
#: includes/functions/wcj-country-functions.php:
|
4331 |
msgid "Bulgaria"
|
4332 |
msgstr ""
|
4333 |
|
4334 |
-
#: includes/functions/wcj-country-functions.php:
|
4335 |
msgid "Burkina Faso"
|
4336 |
msgstr ""
|
4337 |
|
4338 |
-
#: includes/functions/wcj-country-functions.php:
|
4339 |
msgid "Burundi"
|
4340 |
msgstr ""
|
4341 |
|
4342 |
-
#: includes/functions/wcj-country-functions.php:
|
4343 |
msgid "Cambodia"
|
4344 |
msgstr ""
|
4345 |
|
4346 |
-
#: includes/functions/wcj-country-functions.php:
|
4347 |
msgid "Cameroon"
|
4348 |
msgstr ""
|
4349 |
|
4350 |
-
#: includes/functions/wcj-country-functions.php:
|
4351 |
msgid "Canada"
|
4352 |
msgstr ""
|
4353 |
|
4354 |
-
#: includes/functions/wcj-country-functions.php:
|
4355 |
msgid "Cape Verde"
|
4356 |
msgstr ""
|
4357 |
|
4358 |
-
#: includes/functions/wcj-country-functions.php:
|
4359 |
msgid "Cayman Islands"
|
4360 |
msgstr ""
|
4361 |
|
4362 |
-
#: includes/functions/wcj-country-functions.php:
|
4363 |
msgid "Central African Republic"
|
4364 |
msgstr ""
|
4365 |
|
4366 |
-
#: includes/functions/wcj-country-functions.php:
|
4367 |
msgid "Chad"
|
4368 |
msgstr ""
|
4369 |
|
4370 |
-
#: includes/functions/wcj-country-functions.php:
|
4371 |
msgid "Chile"
|
4372 |
msgstr ""
|
4373 |
|
4374 |
-
#: includes/functions/wcj-country-functions.php:
|
4375 |
msgid "China"
|
4376 |
msgstr ""
|
4377 |
|
4378 |
-
#: includes/functions/wcj-country-functions.php:
|
4379 |
msgid "Christmas Island"
|
4380 |
msgstr ""
|
4381 |
|
4382 |
-
#: includes/functions/wcj-country-functions.php:
|
4383 |
msgid "Cocos (Keeling) Islands"
|
4384 |
msgstr ""
|
4385 |
|
4386 |
-
#: includes/functions/wcj-country-functions.php:
|
4387 |
msgid "Colombia"
|
4388 |
msgstr ""
|
4389 |
|
4390 |
-
#: includes/functions/wcj-country-functions.php:
|
4391 |
msgid "Comoros"
|
4392 |
msgstr ""
|
4393 |
|
4394 |
-
#: includes/functions/wcj-country-functions.php:
|
4395 |
msgid "Congo (Brazzaville)"
|
4396 |
msgstr ""
|
4397 |
|
4398 |
-
#: includes/functions/wcj-country-functions.php:
|
4399 |
msgid "Congo (Kinshasa)"
|
4400 |
msgstr ""
|
4401 |
|
4402 |
-
#: includes/functions/wcj-country-functions.php:
|
4403 |
msgid "Cook Islands"
|
4404 |
msgstr ""
|
4405 |
|
4406 |
-
#: includes/functions/wcj-country-functions.php:
|
4407 |
msgid "Costa Rica"
|
4408 |
msgstr ""
|
4409 |
|
4410 |
-
#: includes/functions/wcj-country-functions.php:
|
4411 |
msgid "Croatia"
|
4412 |
msgstr ""
|
4413 |
|
4414 |
-
#: includes/functions/wcj-country-functions.php:
|
4415 |
msgid "Cuba"
|
4416 |
msgstr ""
|
4417 |
|
4418 |
-
#: includes/functions/wcj-country-functions.php:
|
4419 |
msgid "CuraÇao"
|
4420 |
msgstr ""
|
4421 |
|
4422 |
-
#: includes/functions/wcj-country-functions.php:
|
4423 |
msgid "Cyprus"
|
4424 |
msgstr ""
|
4425 |
|
4426 |
-
#: includes/functions/wcj-country-functions.php:
|
4427 |
msgid "Czech Republic"
|
4428 |
msgstr ""
|
4429 |
|
4430 |
-
#: includes/functions/wcj-country-functions.php:
|
4431 |
msgid "Denmark"
|
4432 |
msgstr ""
|
4433 |
|
4434 |
-
#: includes/functions/wcj-country-functions.php:
|
4435 |
msgid "Djibouti"
|
4436 |
msgstr ""
|
4437 |
|
4438 |
-
#: includes/functions/wcj-country-functions.php:
|
4439 |
msgid "Dominica"
|
4440 |
msgstr ""
|
4441 |
|
4442 |
-
#: includes/functions/wcj-country-functions.php:
|
4443 |
msgid "Dominican Republic"
|
4444 |
msgstr ""
|
4445 |
|
4446 |
-
#: includes/functions/wcj-country-functions.php:
|
4447 |
msgid "Ecuador"
|
4448 |
msgstr ""
|
4449 |
|
4450 |
-
#: includes/functions/wcj-country-functions.php:
|
4451 |
msgid "Egypt"
|
4452 |
msgstr ""
|
4453 |
|
4454 |
-
#: includes/functions/wcj-country-functions.php:
|
4455 |
msgid "El Salvador"
|
4456 |
msgstr ""
|
4457 |
|
4458 |
-
#: includes/functions/wcj-country-functions.php:
|
4459 |
msgid "Equatorial Guinea"
|
4460 |
msgstr ""
|
4461 |
|
4462 |
-
#: includes/functions/wcj-country-functions.php:
|
4463 |
msgid "Eritrea"
|
4464 |
msgstr ""
|
4465 |
|
4466 |
-
#: includes/functions/wcj-country-functions.php:
|
4467 |
msgid "Estonia"
|
4468 |
msgstr ""
|
4469 |
|
4470 |
-
#: includes/functions/wcj-country-functions.php:
|
4471 |
msgid "Ethiopia"
|
4472 |
msgstr ""
|
4473 |
|
4474 |
-
#: includes/functions/wcj-country-functions.php:
|
4475 |
msgid "Falkland Islands"
|
4476 |
msgstr ""
|
4477 |
|
4478 |
-
#: includes/functions/wcj-country-functions.php:
|
4479 |
msgid "Faroe Islands"
|
4480 |
msgstr ""
|
4481 |
|
4482 |
-
#: includes/functions/wcj-country-functions.php:
|
4483 |
msgid "Fiji"
|
4484 |
msgstr ""
|
4485 |
|
4486 |
-
#: includes/functions/wcj-country-functions.php:
|
4487 |
msgid "Finland"
|
4488 |
msgstr ""
|
4489 |
|
4490 |
-
#: includes/functions/wcj-country-functions.php:
|
4491 |
msgid "France"
|
4492 |
msgstr ""
|
4493 |
|
4494 |
-
#: includes/functions/wcj-country-functions.php:
|
4495 |
msgid "French Guiana"
|
4496 |
msgstr ""
|
4497 |
|
4498 |
-
#: includes/functions/wcj-country-functions.php:
|
4499 |
msgid "French Polynesia"
|
4500 |
msgstr ""
|
4501 |
|
4502 |
-
#: includes/functions/wcj-country-functions.php:
|
4503 |
msgid "French Southern Territories"
|
4504 |
msgstr ""
|
4505 |
|
4506 |
-
#: includes/functions/wcj-country-functions.php:
|
4507 |
msgid "Gabon"
|
4508 |
msgstr ""
|
4509 |
|
4510 |
-
#: includes/functions/wcj-country-functions.php:
|
4511 |
msgid "Gambia"
|
4512 |
msgstr ""
|
4513 |
|
4514 |
-
#: includes/functions/wcj-country-functions.php:
|
4515 |
msgid "Georgia"
|
4516 |
msgstr ""
|
4517 |
|
4518 |
-
#: includes/functions/wcj-country-functions.php:
|
4519 |
msgid "Germany"
|
4520 |
msgstr ""
|
4521 |
|
4522 |
-
#: includes/functions/wcj-country-functions.php:
|
4523 |
msgid "Ghana"
|
4524 |
msgstr ""
|
4525 |
|
4526 |
-
#: includes/functions/wcj-country-functions.php:
|
4527 |
msgid "Gibraltar"
|
4528 |
msgstr ""
|
4529 |
|
4530 |
-
#: includes/functions/wcj-country-functions.php:
|
4531 |
msgid "Greece"
|
4532 |
msgstr ""
|
4533 |
|
4534 |
-
#: includes/functions/wcj-country-functions.php:
|
4535 |
msgid "Greenland"
|
4536 |
msgstr ""
|
4537 |
|
4538 |
-
#: includes/functions/wcj-country-functions.php:
|
4539 |
msgid "Grenada"
|
4540 |
msgstr ""
|
4541 |
|
4542 |
-
#: includes/functions/wcj-country-functions.php:
|
4543 |
msgid "Guadeloupe"
|
4544 |
msgstr ""
|
4545 |
|
4546 |
-
#: includes/functions/wcj-country-functions.php:
|
4547 |
msgid "Guatemala"
|
4548 |
msgstr ""
|
4549 |
|
4550 |
-
#: includes/functions/wcj-country-functions.php:
|
4551 |
msgid "Guernsey"
|
4552 |
msgstr ""
|
4553 |
|
4554 |
-
#: includes/functions/wcj-country-functions.php:
|
4555 |
msgid "Guinea"
|
4556 |
msgstr ""
|
4557 |
|
4558 |
-
#: includes/functions/wcj-country-functions.php:
|
4559 |
msgid "Guinea-Bissau"
|
4560 |
msgstr ""
|
4561 |
|
4562 |
-
#: includes/functions/wcj-country-functions.php:
|
4563 |
msgid "Guyana"
|
4564 |
msgstr ""
|
4565 |
|
4566 |
-
#: includes/functions/wcj-country-functions.php:
|
4567 |
msgid "Haiti"
|
4568 |
msgstr ""
|
4569 |
|
4570 |
-
#: includes/functions/wcj-country-functions.php:
|
4571 |
msgid "Heard Island and McDonald Islands"
|
4572 |
msgstr ""
|
4573 |
|
4574 |
-
#: includes/functions/wcj-country-functions.php:
|
4575 |
msgid "Honduras"
|
4576 |
msgstr ""
|
4577 |
|
4578 |
-
#: includes/functions/wcj-country-functions.php:
|
4579 |
msgid "Hong Kong"
|
4580 |
msgstr ""
|
4581 |
|
4582 |
-
#: includes/functions/wcj-country-functions.php:
|
4583 |
msgid "Hungary"
|
4584 |
msgstr ""
|
4585 |
|
4586 |
-
#: includes/functions/wcj-country-functions.php:
|
4587 |
msgid "Iceland"
|
4588 |
msgstr ""
|
4589 |
|
4590 |
-
#: includes/functions/wcj-country-functions.php:
|
4591 |
msgid "India"
|
4592 |
msgstr ""
|
4593 |
|
4594 |
-
#: includes/functions/wcj-country-functions.php:
|
4595 |
msgid "Indonesia"
|
4596 |
msgstr ""
|
4597 |
|
4598 |
-
#: includes/functions/wcj-country-functions.php:
|
4599 |
msgid "Iran"
|
4600 |
msgstr ""
|
4601 |
|
4602 |
-
#: includes/functions/wcj-country-functions.php:
|
4603 |
msgid "Iraq"
|
4604 |
msgstr ""
|
4605 |
|
4606 |
-
#: includes/functions/wcj-country-functions.php:
|
4607 |
msgid "Republic of Ireland"
|
4608 |
msgstr ""
|
4609 |
|
4610 |
-
#: includes/functions/wcj-country-functions.php:
|
4611 |
msgid "Isle of Man"
|
4612 |
msgstr ""
|
4613 |
|
4614 |
-
#: includes/functions/wcj-country-functions.php:
|
4615 |
msgid "Israel"
|
4616 |
msgstr ""
|
4617 |
|
4618 |
-
#: includes/functions/wcj-country-functions.php:
|
4619 |
msgid "Italy"
|
4620 |
msgstr ""
|
4621 |
|
4622 |
-
#: includes/functions/wcj-country-functions.php:
|
4623 |
msgid "Ivory Coast"
|
4624 |
msgstr ""
|
4625 |
|
4626 |
-
#: includes/functions/wcj-country-functions.php:
|
4627 |
msgid "Jamaica"
|
4628 |
msgstr ""
|
4629 |
|
4630 |
-
#: includes/functions/wcj-country-functions.php:
|
4631 |
msgid "Japan"
|
4632 |
msgstr ""
|
4633 |
|
4634 |
-
#: includes/functions/wcj-country-functions.php:
|
4635 |
msgid "Jersey"
|
4636 |
msgstr ""
|
4637 |
|
4638 |
-
#: includes/functions/wcj-country-functions.php:
|
4639 |
msgid "Jordan"
|
4640 |
msgstr ""
|
4641 |
|
4642 |
-
#: includes/functions/wcj-country-functions.php:
|
4643 |
msgid "Kazakhstan"
|
4644 |
msgstr ""
|
4645 |
|
4646 |
-
#: includes/functions/wcj-country-functions.php:
|
4647 |
msgid "Kenya"
|
4648 |
msgstr ""
|
4649 |
|
4650 |
-
#: includes/functions/wcj-country-functions.php:
|
4651 |
msgid "Kiribati"
|
4652 |
msgstr ""
|
4653 |
|
4654 |
-
#: includes/functions/wcj-country-functions.php:
|
4655 |
msgid "Kuwait"
|
4656 |
msgstr ""
|
4657 |
|
4658 |
-
#: includes/functions/wcj-country-functions.php:
|
4659 |
msgid "Kyrgyzstan"
|
4660 |
msgstr ""
|
4661 |
|
4662 |
-
#: includes/functions/wcj-country-functions.php:
|
4663 |
msgid "Laos"
|
4664 |
msgstr ""
|
4665 |
|
4666 |
-
#: includes/functions/wcj-country-functions.php:
|
4667 |
msgid "Latvia"
|
4668 |
msgstr ""
|
4669 |
|
4670 |
-
#: includes/functions/wcj-country-functions.php:
|
4671 |
msgid "Lebanon"
|
4672 |
msgstr ""
|
4673 |
|
4674 |
-
#: includes/functions/wcj-country-functions.php:
|
4675 |
msgid "Lesotho"
|
4676 |
msgstr ""
|
4677 |
|
4678 |
-
#: includes/functions/wcj-country-functions.php:
|
4679 |
msgid "Liberia"
|
4680 |
msgstr ""
|
4681 |
|
4682 |
-
#: includes/functions/wcj-country-functions.php:
|
4683 |
msgid "Libya"
|
4684 |
msgstr ""
|
4685 |
|
4686 |
-
#: includes/functions/wcj-country-functions.php:
|
4687 |
msgid "Liechtenstein"
|
4688 |
msgstr ""
|
4689 |
|
4690 |
-
#: includes/functions/wcj-country-functions.php:
|
4691 |
msgid "Lithuania"
|
4692 |
msgstr ""
|
4693 |
|
4694 |
-
#: includes/functions/wcj-country-functions.php:
|
4695 |
msgid "Luxembourg"
|
4696 |
msgstr ""
|
4697 |
|
4698 |
-
#: includes/functions/wcj-country-functions.php:
|
4699 |
msgid "Macao S.A.R., China"
|
4700 |
msgstr ""
|
4701 |
|
4702 |
-
#: includes/functions/wcj-country-functions.php:
|
4703 |
msgid "Macedonia"
|
4704 |
msgstr ""
|
4705 |
|
4706 |
-
#: includes/functions/wcj-country-functions.php:
|
4707 |
msgid "Madagascar"
|
4708 |
msgstr ""
|
4709 |
|
4710 |
-
#: includes/functions/wcj-country-functions.php:
|
4711 |
msgid "Malawi"
|
4712 |
msgstr ""
|
4713 |
|
4714 |
-
#: includes/functions/wcj-country-functions.php:
|
4715 |
msgid "Malaysia"
|
4716 |
msgstr ""
|
4717 |
|
4718 |
-
#: includes/functions/wcj-country-functions.php:
|
4719 |
msgid "Maldives"
|
4720 |
msgstr ""
|
4721 |
|
4722 |
-
#: includes/functions/wcj-country-functions.php:
|
4723 |
msgid "Mali"
|
4724 |
msgstr ""
|
4725 |
|
4726 |
-
#: includes/functions/wcj-country-functions.php:
|
4727 |
msgid "Malta"
|
4728 |
msgstr ""
|
4729 |
|
4730 |
-
#: includes/functions/wcj-country-functions.php:
|
4731 |
msgid "Marshall Islands"
|
4732 |
msgstr ""
|
4733 |
|
4734 |
-
#: includes/functions/wcj-country-functions.php:
|
4735 |
msgid "Martinique"
|
4736 |
msgstr ""
|
4737 |
|
4738 |
-
#: includes/functions/wcj-country-functions.php:
|
4739 |
msgid "Mauritania"
|
4740 |
msgstr ""
|
4741 |
|
4742 |
-
#: includes/functions/wcj-country-functions.php:
|
4743 |
msgid "Mauritius"
|
4744 |
msgstr ""
|
4745 |
|
4746 |
-
#: includes/functions/wcj-country-functions.php:
|
4747 |
msgid "Mayotte"
|
4748 |
msgstr ""
|
4749 |
|
4750 |
-
#: includes/functions/wcj-country-functions.php:
|
4751 |
msgid "Mexico"
|
4752 |
msgstr ""
|
4753 |
|
4754 |
-
#: includes/functions/wcj-country-functions.php:
|
4755 |
msgid "Micronesia"
|
4756 |
msgstr ""
|
4757 |
|
4758 |
-
#: includes/functions/wcj-country-functions.php:
|
4759 |
msgid "Moldova"
|
4760 |
msgstr ""
|
4761 |
|
4762 |
-
#: includes/functions/wcj-country-functions.php:
|
4763 |
msgid "Monaco"
|
4764 |
msgstr ""
|
4765 |
|
4766 |
-
#: includes/functions/wcj-country-functions.php:
|
4767 |
msgid "Mongolia"
|
4768 |
msgstr ""
|
4769 |
|
4770 |
-
#: includes/functions/wcj-country-functions.php:
|
4771 |
msgid "Montenegro"
|
4772 |
msgstr ""
|
4773 |
|
4774 |
-
#: includes/functions/wcj-country-functions.php:
|
4775 |
msgid "Montserrat"
|
4776 |
msgstr ""
|
4777 |
|
4778 |
-
#: includes/functions/wcj-country-functions.php:
|
4779 |
msgid "Morocco"
|
4780 |
msgstr ""
|
4781 |
|
4782 |
-
#: includes/functions/wcj-country-functions.php:
|
4783 |
msgid "Mozambique"
|
4784 |
msgstr ""
|
4785 |
|
4786 |
-
#: includes/functions/wcj-country-functions.php:
|
4787 |
msgid "Myanmar"
|
4788 |
msgstr ""
|
4789 |
|
4790 |
-
#: includes/functions/wcj-country-functions.php:
|
4791 |
msgid "Namibia"
|
4792 |
msgstr ""
|
4793 |
|
4794 |
-
#: includes/functions/wcj-country-functions.php:
|
4795 |
msgid "Nauru"
|
4796 |
msgstr ""
|
4797 |
|
4798 |
-
#: includes/functions/wcj-country-functions.php:
|
4799 |
msgid "Nepal"
|
4800 |
msgstr ""
|
4801 |
|
4802 |
-
#: includes/functions/wcj-country-functions.php:
|
4803 |
msgid "Netherlands"
|
4804 |
msgstr ""
|
4805 |
|
4806 |
-
#: includes/functions/wcj-country-functions.php:
|
4807 |
msgid "Netherlands Antilles"
|
4808 |
msgstr ""
|
4809 |
|
4810 |
-
#: includes/functions/wcj-country-functions.php:
|
4811 |
msgid "New Caledonia"
|
4812 |
msgstr ""
|
4813 |
|
4814 |
-
#: includes/functions/wcj-country-functions.php:
|
4815 |
msgid "New Zealand"
|
4816 |
msgstr ""
|
4817 |
|
4818 |
-
#: includes/functions/wcj-country-functions.php:
|
4819 |
msgid "Nicaragua"
|
4820 |
msgstr ""
|
4821 |
|
4822 |
-
#: includes/functions/wcj-country-functions.php:
|
4823 |
msgid "Niger"
|
4824 |
msgstr ""
|
4825 |
|
4826 |
-
#: includes/functions/wcj-country-functions.php:
|
4827 |
msgid "Nigeria"
|
4828 |
msgstr ""
|
4829 |
|
4830 |
-
#: includes/functions/wcj-country-functions.php:
|
4831 |
msgid "Niue"
|
4832 |
msgstr ""
|
4833 |
|
4834 |
-
#: includes/functions/wcj-country-functions.php:
|
4835 |
msgid "Norfolk Island"
|
4836 |
msgstr ""
|
4837 |
|
4838 |
-
#: includes/functions/wcj-country-functions.php:
|
4839 |
msgid "North Korea"
|
4840 |
msgstr ""
|
4841 |
|
4842 |
-
#: includes/functions/wcj-country-functions.php:
|
4843 |
msgid "Norway"
|
4844 |
msgstr ""
|
4845 |
|
4846 |
-
#: includes/functions/wcj-country-functions.php:
|
4847 |
msgid "Oman"
|
4848 |
msgstr ""
|
4849 |
|
4850 |
-
#: includes/functions/wcj-country-functions.php:
|
4851 |
msgid "Pakistan"
|
4852 |
msgstr ""
|
4853 |
|
4854 |
-
#: includes/functions/wcj-country-functions.php:
|
4855 |
msgid "Palestinian Territory"
|
4856 |
msgstr ""
|
4857 |
|
4858 |
-
#: includes/functions/wcj-country-functions.php:
|
4859 |
msgid "Panama"
|
4860 |
msgstr ""
|
4861 |
|
4862 |
-
#: includes/functions/wcj-country-functions.php:
|
4863 |
msgid "Papua New Guinea"
|
4864 |
msgstr ""
|
4865 |
|
4866 |
-
#: includes/functions/wcj-country-functions.php:
|
4867 |
msgid "Paraguay"
|
4868 |
msgstr ""
|
4869 |
|
4870 |
-
#: includes/functions/wcj-country-functions.php:
|
4871 |
msgid "Peru"
|
4872 |
msgstr ""
|
4873 |
|
4874 |
-
#: includes/functions/wcj-country-functions.php:
|
4875 |
msgid "Philippines"
|
4876 |
msgstr ""
|
4877 |
|
4878 |
-
#: includes/functions/wcj-country-functions.php:
|
4879 |
msgid "Pitcairn"
|
4880 |
msgstr ""
|
4881 |
|
4882 |
-
#: includes/functions/wcj-country-functions.php:
|
4883 |
msgid "Poland"
|
4884 |
msgstr ""
|
4885 |
|
4886 |
-
#: includes/functions/wcj-country-functions.php:
|
4887 |
msgid "Portugal"
|
4888 |
msgstr ""
|
4889 |
|
4890 |
-
#: includes/functions/wcj-country-functions.php:
|
4891 |
msgid "Qatar"
|
4892 |
msgstr ""
|
4893 |
|
4894 |
-
#: includes/functions/wcj-country-functions.php:
|
4895 |
msgid "Reunion"
|
4896 |
msgstr ""
|
4897 |
|
4898 |
-
#: includes/functions/wcj-country-functions.php:
|
4899 |
msgid "Romania"
|
4900 |
msgstr ""
|
4901 |
|
4902 |
-
#: includes/functions/wcj-country-functions.php:
|
4903 |
msgid "Russia"
|
4904 |
msgstr ""
|
4905 |
|
4906 |
-
#: includes/functions/wcj-country-functions.php:
|
4907 |
msgid "Rwanda"
|
4908 |
msgstr ""
|
4909 |
|
4910 |
-
#: includes/functions/wcj-country-functions.php:
|
4911 |
msgid "Saint Barthélemy"
|
4912 |
msgstr ""
|
4913 |
|
4914 |
-
#: includes/functions/wcj-country-functions.php:
|
4915 |
msgid "Saint Helena"
|
4916 |
msgstr ""
|
4917 |
|
4918 |
-
#: includes/functions/wcj-country-functions.php:
|
4919 |
msgid "Saint Kitts and Nevis"
|
4920 |
msgstr ""
|
4921 |
|
4922 |
-
#: includes/functions/wcj-country-functions.php:
|
4923 |
msgid "Saint Lucia"
|
4924 |
msgstr ""
|
4925 |
|
4926 |
-
#: includes/functions/wcj-country-functions.php:
|
4927 |
msgid "Saint Martin (French part)"
|
4928 |
msgstr ""
|
4929 |
|
4930 |
-
#: includes/functions/wcj-country-functions.php:
|
4931 |
msgid "Saint Martin (Dutch part)"
|
4932 |
msgstr ""
|
4933 |
|
4934 |
-
#: includes/functions/wcj-country-functions.php:
|
4935 |
msgid "Saint Pierre and Miquelon"
|
4936 |
msgstr ""
|
4937 |
|
4938 |
-
#: includes/functions/wcj-country-functions.php:
|
4939 |
msgid "Saint Vincent and the Grenadines"
|
4940 |
msgstr ""
|
4941 |
|
4942 |
-
#: includes/functions/wcj-country-functions.php:
|
4943 |
msgid "San Marino"
|
4944 |
msgstr ""
|
4945 |
|
4946 |
-
#: includes/functions/wcj-country-functions.php:
|
4947 |
msgid "São Tomé and Príncipe"
|
4948 |
msgstr ""
|
4949 |
|
4950 |
-
#: includes/functions/wcj-country-functions.php:
|
4951 |
msgid "Saudi Arabia"
|
4952 |
msgstr ""
|
4953 |
|
4954 |
-
#: includes/functions/wcj-country-functions.php:
|
4955 |
msgid "Senegal"
|
4956 |
msgstr ""
|
4957 |
|
4958 |
-
#: includes/functions/wcj-country-functions.php:
|
4959 |
msgid "Serbia"
|
4960 |
msgstr ""
|
4961 |
|
4962 |
-
#: includes/functions/wcj-country-functions.php:
|
4963 |
msgid "Seychelles"
|
4964 |
msgstr ""
|
4965 |
|
4966 |
-
#: includes/functions/wcj-country-functions.php:
|
4967 |
msgid "Sierra Leone"
|
4968 |
msgstr ""
|
4969 |
|
4970 |
-
#: includes/functions/wcj-country-functions.php:
|
4971 |
msgid "Singapore"
|
4972 |
msgstr ""
|
4973 |
|
4974 |
-
#: includes/functions/wcj-country-functions.php:
|
4975 |
msgid "Slovakia"
|
4976 |
msgstr ""
|
4977 |
|
4978 |
-
#: includes/functions/wcj-country-functions.php:
|
4979 |
msgid "Slovenia"
|
4980 |
msgstr ""
|
4981 |
|
4982 |
-
#: includes/functions/wcj-country-functions.php:
|
4983 |
msgid "Solomon Islands"
|
4984 |
msgstr ""
|
4985 |
|
4986 |
-
#: includes/functions/wcj-country-functions.php:
|
4987 |
msgid "Somalia"
|
4988 |
msgstr ""
|
4989 |
|
4990 |
-
#: includes/functions/wcj-country-functions.php:
|
4991 |
msgid "South Africa"
|
4992 |
msgstr ""
|
4993 |
|
4994 |
-
#: includes/functions/wcj-country-functions.php:
|
4995 |
msgid "South Georgia/Sandwich Islands"
|
4996 |
msgstr ""
|
4997 |
|
4998 |
-
#: includes/functions/wcj-country-functions.php:
|
4999 |
msgid "South Korea"
|
5000 |
msgstr ""
|
5001 |
|
5002 |
-
#: includes/functions/wcj-country-functions.php:
|
5003 |
msgid "South Sudan"
|
5004 |
msgstr ""
|
5005 |
|
5006 |
-
#: includes/functions/wcj-country-functions.php:
|
5007 |
msgid "Spain"
|
5008 |
msgstr ""
|
5009 |
|
5010 |
-
#: includes/functions/wcj-country-functions.php:
|
5011 |
msgid "Sri Lanka"
|
5012 |
msgstr ""
|
5013 |
|
5014 |
-
#: includes/functions/wcj-country-functions.php:
|
5015 |
msgid "Sudan"
|
5016 |
msgstr ""
|
5017 |
|
5018 |
-
#: includes/functions/wcj-country-functions.php:
|
5019 |
msgid "Suriname"
|
5020 |
msgstr ""
|
5021 |
|
5022 |
-
#: includes/functions/wcj-country-functions.php:
|
5023 |
msgid "Svalbard and Jan Mayen"
|
5024 |
msgstr ""
|
5025 |
|
5026 |
-
#: includes/functions/wcj-country-functions.php:
|
5027 |
msgid "Swaziland"
|
5028 |
msgstr ""
|
5029 |
|
5030 |
-
#: includes/functions/wcj-country-functions.php:
|
5031 |
msgid "Sweden"
|
5032 |
msgstr ""
|
5033 |
|
5034 |
-
#: includes/functions/wcj-country-functions.php:
|
5035 |
msgid "Switzerland"
|
5036 |
msgstr ""
|
5037 |
|
5038 |
-
#: includes/functions/wcj-country-functions.php:
|
5039 |
msgid "Syria"
|
5040 |
msgstr ""
|
5041 |
|
5042 |
-
#: includes/functions/wcj-country-functions.php:
|
5043 |
msgid "Taiwan"
|
5044 |
msgstr ""
|
5045 |
|
5046 |
-
#: includes/functions/wcj-country-functions.php:
|
5047 |
msgid "Tajikistan"
|
5048 |
msgstr ""
|
5049 |
|
5050 |
-
#: includes/functions/wcj-country-functions.php:
|
5051 |
msgid "Tanzania"
|
5052 |
msgstr ""
|
5053 |
|
5054 |
-
#: includes/functions/wcj-country-functions.php:
|
5055 |
msgid "Thailand"
|
5056 |
msgstr ""
|
5057 |
|
5058 |
-
#: includes/functions/wcj-country-functions.php:
|
5059 |
msgid "Timor-Leste"
|
5060 |
msgstr ""
|
5061 |
|
5062 |
-
#: includes/functions/wcj-country-functions.php:
|
5063 |
msgid "Togo"
|
5064 |
msgstr ""
|
5065 |
|
5066 |
-
#: includes/functions/wcj-country-functions.php:
|
5067 |
msgid "Tokelau"
|
5068 |
msgstr ""
|
5069 |
|
5070 |
-
#: includes/functions/wcj-country-functions.php:
|
5071 |
msgid "Tonga"
|
5072 |
msgstr ""
|
5073 |
|
5074 |
-
#: includes/functions/wcj-country-functions.php:
|
5075 |
msgid "Trinidad and Tobago"
|
5076 |
msgstr ""
|
5077 |
|
5078 |
-
#: includes/functions/wcj-country-functions.php:
|
5079 |
msgid "Tunisia"
|
5080 |
msgstr ""
|
5081 |
|
5082 |
-
#: includes/functions/wcj-country-functions.php:
|
5083 |
msgid "Turkey"
|
5084 |
msgstr ""
|
5085 |
|
5086 |
-
#: includes/functions/wcj-country-functions.php:
|
5087 |
msgid "Turkmenistan"
|
5088 |
msgstr ""
|
5089 |
|
5090 |
-
#: includes/functions/wcj-country-functions.php:
|
5091 |
msgid "Turks and Caicos Islands"
|
5092 |
msgstr ""
|
5093 |
|
5094 |
-
#: includes/functions/wcj-country-functions.php:
|
5095 |
msgid "Tuvalu"
|
5096 |
msgstr ""
|
5097 |
|
5098 |
-
#: includes/functions/wcj-country-functions.php:
|
5099 |
msgid "Uganda"
|
5100 |
msgstr ""
|
5101 |
|
5102 |
-
#: includes/functions/wcj-country-functions.php:
|
5103 |
msgid "Ukraine"
|
5104 |
msgstr ""
|
5105 |
|
5106 |
-
#: includes/functions/wcj-country-functions.php:
|
5107 |
msgid "United Arab Emirates"
|
5108 |
msgstr ""
|
5109 |
|
5110 |
-
#: includes/functions/wcj-country-functions.php:
|
5111 |
msgid "United Kingdom (UK)"
|
5112 |
msgstr ""
|
5113 |
|
5114 |
-
#: includes/functions/wcj-country-functions.php:
|
5115 |
msgid "United States (US)"
|
5116 |
msgstr ""
|
5117 |
|
5118 |
-
#: includes/functions/wcj-country-functions.php:
|
5119 |
msgid "Uruguay"
|
5120 |
msgstr ""
|
5121 |
|
5122 |
-
#: includes/functions/wcj-country-functions.php:
|
5123 |
msgid "Uzbekistan"
|
5124 |
msgstr ""
|
5125 |
|
5126 |
-
#: includes/functions/wcj-country-functions.php:
|
5127 |
msgid "Vanuatu"
|
5128 |
msgstr ""
|
5129 |
|
5130 |
-
#: includes/functions/wcj-country-functions.php:
|
5131 |
msgid "Vatican"
|
5132 |
msgstr ""
|
5133 |
|
5134 |
-
#: includes/functions/wcj-country-functions.php:
|
5135 |
msgid "Venezuela"
|
5136 |
msgstr ""
|
5137 |
|
5138 |
-
#: includes/functions/wcj-country-functions.php:
|
5139 |
msgid "Vietnam"
|
5140 |
msgstr ""
|
5141 |
|
5142 |
-
#: includes/functions/wcj-country-functions.php:
|
5143 |
msgid "Wallis and Futuna"
|
5144 |
msgstr ""
|
5145 |
|
5146 |
-
#: includes/functions/wcj-country-functions.php:
|
5147 |
msgid "Western Sahara"
|
5148 |
msgstr ""
|
5149 |
|
5150 |
-
#: includes/functions/wcj-country-functions.php:
|
5151 |
msgid "Western Samoa"
|
5152 |
msgstr ""
|
5153 |
|
5154 |
-
#: includes/functions/wcj-country-functions.php:
|
5155 |
msgid "Yemen"
|
5156 |
msgstr ""
|
5157 |
|
5158 |
-
#: includes/functions/wcj-country-functions.php:
|
5159 |
msgid "Zambia"
|
5160 |
msgstr ""
|
5161 |
|
5162 |
-
#: includes/functions/wcj-country-functions.php:
|
5163 |
msgid "Zimbabwe"
|
5164 |
msgstr ""
|
5165 |
|
5166 |
-
#: includes/functions/wcj-country-functions.php:
|
5167 |
msgid "European Union"
|
5168 |
msgstr ""
|
5169 |
|
@@ -6209,6 +6374,8 @@ msgstr ""
|
|
6209 |
#: includes/settings/meta-box/wcj-settings-meta-box-price-by-user-role.php:37
|
6210 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:21
|
6211 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-bookings.php:14
|
|
|
|
|
6212 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-open-pricing.php:14
|
6213 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-price-by-formula.php:21
|
6214 |
msgid "Enabled"
|
@@ -6267,13 +6434,6 @@ msgstr ""
|
|
6267 |
msgid "Password"
|
6268 |
msgstr ""
|
6269 |
|
6270 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:59
|
6271 |
-
#: includes/settings/wcj-settings-checkout-custom-fields.php:92
|
6272 |
-
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:88
|
6273 |
-
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:102
|
6274 |
-
msgid "Country"
|
6275 |
-
msgstr ""
|
6276 |
-
|
6277 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:62
|
6278 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:95
|
6279 |
msgid "Phone"
|
@@ -6696,11 +6856,6 @@ msgstr ""
|
|
6696 |
msgid "Booster: PDF Invoices"
|
6697 |
msgstr ""
|
6698 |
|
6699 |
-
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-emails.php:24
|
6700 |
-
#: includes/settings/wcj-settings-offer-price.php:226
|
6701 |
-
msgid "Email Options"
|
6702 |
-
msgstr ""
|
6703 |
-
|
6704 |
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-footer.php:21
|
6705 |
msgid "Footer"
|
6706 |
msgstr ""
|
@@ -6800,61 +6955,68 @@ msgid "Report for:"
|
|
6800 |
msgstr ""
|
6801 |
|
6802 |
#: includes/reports/wcj-class-reports-monthly-sales.php:37
|
|
|
|
|
|
|
|
|
6803 |
msgid "Currency rates deleted."
|
6804 |
msgstr ""
|
6805 |
|
6806 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
6807 |
msgid "Days"
|
6808 |
msgstr ""
|
6809 |
|
6810 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
6811 |
msgid "Total Orders"
|
6812 |
msgstr ""
|
6813 |
|
6814 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
6815 |
msgid "Orders Average / Day"
|
6816 |
msgstr ""
|
6817 |
|
6818 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
6819 |
#: includes/reports/wcj-class-reports-sales.php:325
|
6820 |
msgid "Total Sum"
|
6821 |
msgstr ""
|
6822 |
|
6823 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
6824 |
msgid "Total Sum (excl. TAX)"
|
6825 |
msgstr ""
|
6826 |
|
6827 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
6828 |
msgid "Average / Order (excl. TAX)"
|
6829 |
msgstr ""
|
6830 |
|
6831 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
6832 |
msgid "Average / Day (excl. TAX)"
|
6833 |
msgstr ""
|
6834 |
|
6835 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
6836 |
msgid "Currency Rates"
|
6837 |
msgstr ""
|
6838 |
|
6839 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
6840 |
-
|
6841 |
-
msgid "Error getting currency rate for %s"
|
6842 |
msgstr ""
|
6843 |
|
6844 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
6845 |
msgid "Totals"
|
6846 |
msgstr ""
|
6847 |
|
6848 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
6849 |
msgid "Report currency"
|
6850 |
msgstr ""
|
6851 |
|
6852 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
6853 |
#, php-format
|
6854 |
msgid "Report generated in: %s s"
|
6855 |
msgstr ""
|
6856 |
|
6857 |
-
#: includes/reports/wcj-class-reports-monthly-sales.php:
|
|
|
|
|
|
|
|
|
6858 |
msgid "Reset Currency Rates"
|
6859 |
msgstr ""
|
6860 |
|
@@ -6920,103 +7082,107 @@ msgstr ""
|
|
6920 |
msgid "Filter products"
|
6921 |
msgstr ""
|
6922 |
|
6923 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6924 |
msgid "All Products on Stock"
|
6925 |
msgstr ""
|
6926 |
|
6927 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6928 |
msgid "Report shows all products that are on stock and some sales info."
|
6929 |
msgstr ""
|
6930 |
|
6931 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6932 |
msgid "Understocked"
|
6933 |
msgstr ""
|
6934 |
|
6935 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6936 |
msgid ""
|
6937 |
"Report shows all products that are low in stock calculated on product's "
|
6938 |
"sales data."
|
6939 |
msgstr ""
|
6940 |
|
6941 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6942 |
msgid ""
|
6943 |
"Threshold for minimum stock is equal to half of the sales in selected days "
|
6944 |
"range."
|
6945 |
msgstr ""
|
6946 |
|
6947 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6948 |
msgid "Overstocked"
|
6949 |
msgstr ""
|
6950 |
|
6951 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6952 |
msgid ""
|
6953 |
"Report shows all products that are on stock, but have no sales in selected "
|
6954 |
"period. Only products added before the start date of selected period are "
|
6955 |
"accounted."
|
6956 |
msgstr ""
|
6957 |
|
6958 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6959 |
msgid "deleted"
|
6960 |
msgstr ""
|
6961 |
|
6962 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6963 |
msgid "Stock price"
|
6964 |
msgstr ""
|
6965 |
|
6966 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6967 |
msgid "Total stock price"
|
6968 |
msgstr ""
|
6969 |
|
6970 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6971 |
msgid "Last sale"
|
6972 |
msgstr ""
|
6973 |
|
6974 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6975 |
#, php-format
|
6976 |
msgid "Sales in last %s days"
|
6977 |
msgstr ""
|
6978 |
|
6979 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6980 |
msgid "Total sales"
|
6981 |
msgstr ""
|
6982 |
|
6983 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6984 |
msgid "Stock to minimum"
|
6985 |
msgstr ""
|
6986 |
|
6987 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6988 |
msgid "purchase price:"
|
6989 |
msgstr ""
|
6990 |
|
6991 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6992 |
msgid "stock purchase price:"
|
6993 |
msgstr ""
|
6994 |
|
6995 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6996 |
msgid "No sales yet"
|
6997 |
msgstr ""
|
6998 |
|
6999 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
7000 |
msgid "profit:"
|
7001 |
msgstr ""
|
7002 |
|
7003 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
7004 |
msgid "Total current stock value"
|
7005 |
msgstr ""
|
7006 |
|
7007 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
7008 |
msgid "Total stock value"
|
7009 |
msgstr ""
|
7010 |
|
7011 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
7012 |
msgid "Product stock value average"
|
7013 |
msgstr ""
|
7014 |
|
7015 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
7016 |
msgid "Product stock average"
|
7017 |
msgstr ""
|
7018 |
|
7019 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
|
|
|
|
|
|
|
|
7020 |
msgid "Report was generated in: "
|
7021 |
msgstr ""
|
7022 |
|
@@ -7039,12 +7205,11 @@ msgstr ""
|
|
7039 |
#: includes/settings/wcj-settings-general.php:156
|
7040 |
#: includes/settings/wcj-settings-order-quantities.php:21
|
7041 |
#: includes/settings/wcj-settings-order-quantities.php:70
|
7042 |
-
#: includes/settings/wcj-settings-product-by-time.php:21
|
7043 |
#: includes/settings/wcj-settings-product-images.php:19
|
7044 |
#: includes/settings/wcj-settings-product-images.php:95
|
7045 |
#: includes/settings/wcj-settings-shipping-calculator.php:69
|
7046 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
7047 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
7048 |
#: includes/settings/wcj-settings-sorting.php:20
|
7049 |
#: includes/settings/wcj-settings-sorting.php:99
|
7050 |
#: includes/settings/wcj-settings-sorting.php:123
|
@@ -7082,6 +7247,8 @@ msgstr ""
|
|
7082 |
|
7083 |
#: includes/settings/wcj-settings-add-to-cart.php:92
|
7084 |
#: includes/settings/wcj-settings-product-addons.php:15
|
|
|
|
|
7085 |
msgid "Per Product Options"
|
7086 |
msgstr ""
|
7087 |
|
@@ -7232,12 +7399,12 @@ msgstr ""
|
|
7232 |
#: includes/settings/wcj-settings-product-addons.php:129
|
7233 |
#: includes/settings/wcj-settings-product-bookings.php:72
|
7234 |
#: includes/settings/wcj-settings-product-by-country.php:14
|
7235 |
-
#: includes/settings/wcj-settings-product-by-time.php:14
|
7236 |
#: includes/settings/wcj-settings-product-by-user-role.php:14
|
7237 |
#: includes/settings/wcj-settings-product-by-user.php:59
|
7238 |
#: includes/settings/wcj-settings-product-open-pricing.php:16
|
7239 |
#: includes/settings/wcj-settings-products-per-page.php:14
|
7240 |
#: includes/settings/wcj-settings-products-xml.php:17
|
|
|
7241 |
#: includes/settings/wcj-settings-wholesale-price.php:15
|
7242 |
msgid "Options"
|
7243 |
msgstr ""
|
@@ -7254,24 +7421,24 @@ msgstr ""
|
|
7254 |
msgid "Admin Tools Options"
|
7255 |
msgstr ""
|
7256 |
|
7257 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
7258 |
-
msgid "
|
7259 |
msgstr ""
|
7260 |
|
7261 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
7262 |
msgid "Debug"
|
7263 |
msgstr ""
|
7264 |
|
7265 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
7266 |
msgid "PHP Memory Limit"
|
7267 |
msgstr ""
|
7268 |
|
7269 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
7270 |
msgid "megabytes."
|
7271 |
msgstr ""
|
7272 |
|
7273 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
7274 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
7275 |
#: includes/settings/wcj-settings-offer-price.php:139
|
7276 |
#: includes/settings/wcj-settings-offer-price.php:147
|
7277 |
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:43
|
@@ -7279,23 +7446,23 @@ msgstr ""
|
|
7279 |
msgid "Set zero to disable."
|
7280 |
msgstr ""
|
7281 |
|
7282 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
7283 |
msgid "PHP Time Limit"
|
7284 |
msgstr ""
|
7285 |
|
7286 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
7287 |
msgid "seconds."
|
7288 |
msgstr ""
|
7289 |
|
7290 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
7291 |
msgid "System Info"
|
7292 |
msgstr ""
|
7293 |
|
7294 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
7295 |
msgid "Show Order Meta"
|
7296 |
msgstr ""
|
7297 |
|
7298 |
-
#: includes/settings/wcj-settings-admin-tools.php:
|
7299 |
msgid "Show Product Meta"
|
7300 |
msgstr ""
|
7301 |
|
@@ -7421,21 +7588,21 @@ msgstr ""
|
|
7421 |
#: includes/settings/wcj-settings-cart.php:24
|
7422 |
#: includes/settings/wcj-settings-checkout-custom-info.php:19
|
7423 |
#: includes/settings/wcj-settings-mini-cart.php:19
|
7424 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
7425 |
msgid "Total Blocks"
|
7426 |
msgstr ""
|
7427 |
|
7428 |
#: includes/settings/wcj-settings-cart.php:39
|
7429 |
#: includes/settings/wcj-settings-checkout-custom-info.php:35
|
7430 |
#: includes/settings/wcj-settings-mini-cart.php:34
|
7431 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
7432 |
msgid "Info Block"
|
7433 |
msgstr ""
|
7434 |
|
7435 |
#: includes/settings/wcj-settings-cart.php:59
|
7436 |
#: includes/settings/wcj-settings-checkout-custom-info.php:85
|
7437 |
#: includes/settings/wcj-settings-mini-cart.php:58
|
7438 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
7439 |
msgid "Position Order (i.e. Priority)"
|
7440 |
msgstr ""
|
7441 |
|
@@ -8347,6 +8514,25 @@ msgstr ""
|
|
8347 |
msgid "Custom JS - Back end (Admin)"
|
8348 |
msgstr ""
|
8349 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8350 |
#: includes/settings/wcj-settings-emails-verification.php:19
|
8351 |
msgid "Skip Email Verification for User Roles"
|
8352 |
msgstr ""
|
@@ -8393,10 +8579,6 @@ msgstr ""
|
|
8393 |
msgid "Verification Message - Resend"
|
8394 |
msgstr ""
|
8395 |
|
8396 |
-
#: includes/settings/wcj-settings-emails.php:14
|
8397 |
-
msgid "Custom Emails"
|
8398 |
-
msgstr ""
|
8399 |
-
|
8400 |
#: includes/settings/wcj-settings-emails.php:18
|
8401 |
#, php-format
|
8402 |
msgid ""
|
@@ -8413,25 +8595,6 @@ msgstr ""
|
|
8413 |
msgid "Admin Title Custom Email"
|
8414 |
msgstr ""
|
8415 |
|
8416 |
-
#: includes/settings/wcj-settings-emails.php:48
|
8417 |
-
msgid "Product Info in Item Name"
|
8418 |
-
msgstr ""
|
8419 |
-
|
8420 |
-
#: includes/settings/wcj-settings-emails.php:53
|
8421 |
-
msgid "Add Product Info to Item Name"
|
8422 |
-
msgstr ""
|
8423 |
-
|
8424 |
-
#: includes/settings/wcj-settings-emails.php:60
|
8425 |
-
msgid "Info"
|
8426 |
-
msgstr ""
|
8427 |
-
|
8428 |
-
#: includes/settings/wcj-settings-emails.php:61
|
8429 |
-
#, php-format
|
8430 |
-
msgid ""
|
8431 |
-
"You can use <a target=\"_blank\" href=\"%s\">Booster's products shortcodes</"
|
8432 |
-
"a> here."
|
8433 |
-
msgstr ""
|
8434 |
-
|
8435 |
#: includes/settings/wcj-settings-empty-cart.php:15
|
8436 |
msgid ""
|
8437 |
"You can also use <strong>[wcj_empty_cart_button]</strong> shortcode to place "
|
@@ -8835,6 +8998,8 @@ msgid "PayPal Email per Product"
|
|
8835 |
msgstr ""
|
8836 |
|
8837 |
#: includes/settings/wcj-settings-general.php:140
|
|
|
|
|
8838 |
msgid "This will add new meta box to each product's edit page."
|
8839 |
msgstr ""
|
8840 |
|
@@ -8860,50 +9025,65 @@ msgid "In seconds. Default: 48 hours (60 * 60 * 48)"
|
|
8860 |
msgstr ""
|
8861 |
|
8862 |
#: includes/settings/wcj-settings-general.php:182
|
8863 |
-
msgid "
|
8864 |
msgstr ""
|
8865 |
|
8866 |
#: includes/settings/wcj-settings-general.php:183
|
8867 |
-
|
8868 |
-
msgid ""
|
8869 |
-
"Additionally you can hide standard coupon field on cart page in Booster's <a "
|
8870 |
-
"href=\"%s\">Cart Customization</a> module."
|
8871 |
msgstr ""
|
8872 |
|
8873 |
#: includes/settings/wcj-settings-general.php:189
|
8874 |
-
msgid "
|
8875 |
msgstr ""
|
8876 |
|
8877 |
-
#: includes/settings/wcj-settings-general.php:
|
8878 |
-
msgid ""
|
8879 |
-
"When enabled, your users can apply shop's standard coupons, by visiting URL. "
|
8880 |
-
"E.g.: http://yoursite.com/?wcj_apply_coupon=couponcode."
|
8881 |
msgstr ""
|
8882 |
|
8883 |
-
#: includes/settings/wcj-settings-general.php:
|
8884 |
-
msgid "
|
8885 |
msgstr ""
|
8886 |
|
8887 |
-
#: includes/settings/wcj-settings-general.php:
|
8888 |
-
msgid ""
|
8889 |
-
"URL key. If you change this, make sure it's unique and is not used anywhere "
|
8890 |
-
"on your site (e.g. by another plugin)."
|
8891 |
msgstr ""
|
8892 |
|
8893 |
-
#: includes/settings/wcj-settings-general.php:
|
8894 |
-
|
|
|
|
|
|
|
|
|
8895 |
msgstr ""
|
8896 |
|
8897 |
-
#: includes/settings/wcj-settings-general.php:
|
8898 |
-
msgid "
|
8899 |
msgstr ""
|
8900 |
|
8901 |
-
#: includes/settings/wcj-settings-general.php:
|
8902 |
-
msgid "
|
8903 |
msgstr ""
|
8904 |
|
8905 |
-
#: includes/settings/wcj-settings-general.php:
|
8906 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8907 |
msgstr ""
|
8908 |
|
8909 |
#: includes/settings/wcj-settings-global-discount.php:20
|
@@ -9193,12 +9373,12 @@ msgid "Position On Single Product Page"
|
|
9193 |
msgstr ""
|
9194 |
|
9195 |
#: includes/settings/wcj-settings-offer-price.php:70
|
9196 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
9197 |
msgid "Before single product"
|
9198 |
msgstr ""
|
9199 |
|
9200 |
#: includes/settings/wcj-settings-offer-price.php:74
|
9201 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
9202 |
msgid "After single product"
|
9203 |
msgstr ""
|
9204 |
|
@@ -10840,6 +11020,7 @@ msgid ""
|
|
10840 |
msgstr ""
|
10841 |
|
10842 |
#: includes/settings/wcj-settings-product-add-to-cart.php:24
|
|
|
10843 |
msgid "All Products"
|
10844 |
msgstr ""
|
10845 |
|
@@ -10855,6 +11036,8 @@ msgid ""
|
|
10855 |
msgstr ""
|
10856 |
|
10857 |
#: includes/settings/wcj-settings-product-add-to-cart.php:39
|
|
|
|
|
10858 |
msgid "Per Product"
|
10859 |
msgstr ""
|
10860 |
|
@@ -11177,6 +11360,44 @@ msgstr ""
|
|
11177 |
msgid "Admin Products List Column"
|
11178 |
msgstr ""
|
11179 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11180 |
#: includes/settings/wcj-settings-product-by-time.php:15
|
11181 |
#, php-format
|
11182 |
msgid "Local time is <code>%s</code>."
|
@@ -11190,28 +11411,23 @@ msgstr ""
|
|
11190 |
msgid "Time formats:"
|
11191 |
msgstr ""
|
11192 |
|
11193 |
-
#: includes/settings/wcj-settings-product-by-time.php:
|
11194 |
msgid "Message when product is not available by time."
|
11195 |
msgstr ""
|
11196 |
|
11197 |
-
#: includes/settings/wcj-settings-product-by-time.php:
|
11198 |
msgid "Replaceable values:"
|
11199 |
msgstr ""
|
11200 |
|
11201 |
-
#: includes/settings/wcj-settings-product-by-time.php:
|
11202 |
-
#: includes/settings/wcj-settings-product-by-time.php:58
|
11203 |
-
msgid "You can also use shortcodes here."
|
11204 |
-
msgstr ""
|
11205 |
-
|
11206 |
-
#: includes/settings/wcj-settings-product-by-time.php:55
|
11207 |
msgid "Message (Day Off)"
|
11208 |
msgstr ""
|
11209 |
|
11210 |
-
#: includes/settings/wcj-settings-product-by-time.php:
|
11211 |
msgid "Message when product is not available by time (day off)."
|
11212 |
msgstr ""
|
11213 |
|
11214 |
-
#: includes/settings/wcj-settings-product-by-time.php:
|
11215 |
msgid "Replaceable value:"
|
11216 |
msgstr ""
|
11217 |
|
@@ -11287,19 +11503,19 @@ msgstr ""
|
|
11287 |
msgid "Custom Taxonomy"
|
11288 |
msgstr ""
|
11289 |
|
11290 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11291 |
msgid "Single"
|
11292 |
msgstr ""
|
11293 |
|
11294 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11295 |
msgid "Archive"
|
11296 |
msgstr ""
|
11297 |
|
11298 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11299 |
msgid "Product Custom Info Blocks"
|
11300 |
msgstr ""
|
11301 |
|
11302 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11303 |
#: includes/settings/wcj-settings-product-images.php:55
|
11304 |
#: includes/settings/wcj-settings-product-images.php:64
|
11305 |
#: includes/settings/wcj-settings-product-images.php:73
|
@@ -11309,57 +11525,57 @@ msgstr ""
|
|
11309 |
msgid "You can use shortcodes here."
|
11310 |
msgstr ""
|
11311 |
|
11312 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11313 |
msgid "Before add to cart form"
|
11314 |
msgstr ""
|
11315 |
|
11316 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11317 |
msgid "Before add to cart button"
|
11318 |
msgstr ""
|
11319 |
|
11320 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11321 |
msgid "After add to cart button"
|
11322 |
msgstr ""
|
11323 |
|
11324 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11325 |
msgid "After add to cart form"
|
11326 |
msgstr ""
|
11327 |
|
11328 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11329 |
msgid "Inside product title"
|
11330 |
msgstr ""
|
11331 |
|
11332 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11333 |
msgid "Product Categories to Include"
|
11334 |
msgstr ""
|
11335 |
|
11336 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11337 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11338 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11339 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11340 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11341 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11342 |
msgid "Leave blank to disable the option."
|
11343 |
msgstr ""
|
11344 |
|
11345 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11346 |
msgid "Product Categories to Exclude"
|
11347 |
msgstr ""
|
11348 |
|
11349 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11350 |
msgid "Product Tags to Include"
|
11351 |
msgstr ""
|
11352 |
|
11353 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11354 |
msgid "Product Tags to Exclude"
|
11355 |
msgstr ""
|
11356 |
|
11357 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11358 |
#: includes/settings/wcj-settings-products-xml.php:138
|
11359 |
msgid "Products to Include"
|
11360 |
msgstr ""
|
11361 |
|
11362 |
-
#: includes/settings/wcj-settings-product-custom-info.php:
|
11363 |
#: includes/settings/wcj-settings-products-xml.php:147
|
11364 |
msgid "Products to Exclude"
|
11365 |
msgstr ""
|
@@ -11728,12 +11944,6 @@ msgstr ""
|
|
11728 |
msgid "Admin Products List - Custom Columns"
|
11729 |
msgstr ""
|
11730 |
|
11731 |
-
#: includes/settings/wcj-settings-product-listings.php:180
|
11732 |
-
#: includes/settings/wcj-settings-product-listings.php:238
|
11733 |
-
#: includes/settings/wcj-settings-stock.php:23
|
11734 |
-
msgid "Enable section"
|
11735 |
-
msgstr ""
|
11736 |
-
|
11737 |
#: includes/settings/wcj-settings-product-listings.php:232
|
11738 |
msgid "Admin Products List - Columns Order"
|
11739 |
msgstr ""
|
@@ -12106,10 +12316,6 @@ msgstr ""
|
|
12106 |
msgid "Path on server:"
|
12107 |
msgstr ""
|
12108 |
|
12109 |
-
#: includes/settings/wcj-settings-products-xml.php:115
|
12110 |
-
msgid "URL:"
|
12111 |
-
msgstr ""
|
12112 |
-
|
12113 |
#: includes/settings/wcj-settings-products-xml.php:122
|
12114 |
msgid "Update Period"
|
12115 |
msgstr ""
|
@@ -12434,34 +12640,42 @@ msgid "Display profit"
|
|
12434 |
msgstr ""
|
12435 |
|
12436 |
#: includes/settings/wcj-settings-reports.php:93
|
12437 |
-
msgid "Monthly Sales (with
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12438 |
msgstr ""
|
12439 |
|
12440 |
-
#: includes/settings/wcj-settings-reports.php:
|
12441 |
msgid "Customers by Country"
|
12442 |
msgstr ""
|
12443 |
|
12444 |
-
#: includes/settings/wcj-settings-reports.php:
|
12445 |
msgid "Customers by Country Sets"
|
12446 |
msgstr ""
|
12447 |
|
12448 |
-
#: includes/settings/wcj-settings-reports.php:
|
12449 |
msgid "All in Stock with sales data"
|
12450 |
msgstr ""
|
12451 |
|
12452 |
-
#: includes/settings/wcj-settings-reports.php:
|
12453 |
msgid "Understocked products (calculated by sales data)"
|
12454 |
msgstr ""
|
12455 |
|
12456 |
-
#: includes/settings/wcj-settings-reports.php:
|
12457 |
msgid "Overstocked products (calculated by sales data)"
|
12458 |
msgstr ""
|
12459 |
|
12460 |
-
#: includes/settings/wcj-settings-reports.php:
|
12461 |
msgid "Available Reports"
|
12462 |
msgstr ""
|
12463 |
|
12464 |
-
#: includes/settings/wcj-settings-reports.php:
|
12465 |
msgid "View report"
|
12466 |
msgstr ""
|
12467 |
|
@@ -12528,7 +12742,7 @@ msgid "Update Totals"
|
|
12528 |
msgstr ""
|
12529 |
|
12530 |
#: includes/settings/wcj-settings-shipping-options.php:14
|
12531 |
-
msgid "Hide if Free is Available"
|
12532 |
msgstr ""
|
12533 |
|
12534 |
#: includes/settings/wcj-settings-shipping-options.php:16
|
@@ -12537,41 +12751,41 @@ msgid ""
|
|
12537 |
"available on shop frontend."
|
12538 |
msgstr ""
|
12539 |
|
12540 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12541 |
-
msgid "Hide
|
12542 |
msgstr ""
|
12543 |
|
12544 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12545 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12546 |
msgid "Free Shipping by Product"
|
12547 |
msgstr ""
|
12548 |
|
12549 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12550 |
msgid ""
|
12551 |
"In this section you can select products which grant free shipping when added "
|
12552 |
"to cart."
|
12553 |
msgstr ""
|
12554 |
|
12555 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12556 |
msgid ""
|
12557 |
"Select either <strong>all products</strong> or <strong>at least one product</"
|
12558 |
"strong> in cart must grant free shipping."
|
12559 |
msgstr ""
|
12560 |
|
12561 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12562 |
msgid "All products in cart must grant free shipping"
|
12563 |
msgstr ""
|
12564 |
|
12565 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12566 |
msgid "At least one product in cart must grant free shipping"
|
12567 |
msgstr ""
|
12568 |
|
12569 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12570 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12571 |
msgid "Shipping Descriptions"
|
12572 |
msgstr ""
|
12573 |
|
12574 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12575 |
#, php-format
|
12576 |
msgid ""
|
12577 |
"This section will allow you to add any text (e.g. description) for shipping "
|
@@ -12579,64 +12793,64 @@ msgid ""
|
|
12579 |
"tags here, e.g. try \"%s\""
|
12580 |
msgstr ""
|
12581 |
|
12582 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12583 |
msgid "Description Visibility"
|
12584 |
msgstr ""
|
12585 |
|
12586 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12587 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12588 |
msgid "On both cart and checkout pages"
|
12589 |
msgstr ""
|
12590 |
|
12591 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12592 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12593 |
msgid "Only on cart page"
|
12594 |
msgstr ""
|
12595 |
|
12596 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12597 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12598 |
msgid "Only on checkout page"
|
12599 |
msgstr ""
|
12600 |
|
12601 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12602 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12603 |
msgid ""
|
12604 |
"Possible values: on both cart and checkout pages; only on cart page; only on "
|
12605 |
"checkout page"
|
12606 |
msgstr ""
|
12607 |
|
12608 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12609 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12610 |
msgid "Shipping Icons"
|
12611 |
msgstr ""
|
12612 |
|
12613 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12614 |
msgid ""
|
12615 |
"This section will allow you to add icons for shipping method. Icons will be "
|
12616 |
"visible on cart and checkout pages."
|
12617 |
msgstr ""
|
12618 |
|
12619 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12620 |
msgid "Icon Position"
|
12621 |
msgstr ""
|
12622 |
|
12623 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12624 |
msgid "Before label"
|
12625 |
msgstr ""
|
12626 |
|
12627 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12628 |
msgid "After label"
|
12629 |
msgstr ""
|
12630 |
|
12631 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12632 |
msgid "Icon Visibility"
|
12633 |
msgstr ""
|
12634 |
|
12635 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12636 |
msgid "Icon Style"
|
12637 |
msgstr ""
|
12638 |
|
12639 |
-
#: includes/settings/wcj-settings-shipping-options.php:
|
12640 |
msgid ""
|
12641 |
"You can also style icons with CSS class \"wcj_shipping_icon\", or id "
|
12642 |
"\"wcj_shipping_icon_method_id\""
|
@@ -12882,6 +13096,67 @@ msgstr ""
|
|
12882 |
msgid "Custom Out of Stock Class"
|
12883 |
msgstr ""
|
12884 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12885 |
#: includes/settings/wcj-settings-wholesale-price.php:17
|
12886 |
msgid ""
|
12887 |
"Wholesale Price Levels Options. If you want to display prices table on "
|
@@ -13063,6 +13338,11 @@ msgstr ""
|
|
13063 |
msgid "Visible in Countries"
|
13064 |
msgstr ""
|
13065 |
|
|
|
|
|
|
|
|
|
|
|
13066 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-by-user-role.php:19
|
13067 |
msgid "Visible for User Roles"
|
13068 |
msgstr ""
|
@@ -13236,7 +13516,7 @@ msgstr ""
|
|
13236 |
msgid "Enable Custom Shipping"
|
13237 |
msgstr ""
|
13238 |
|
13239 |
-
#: includes/shortcodes/class-wcj-general-shortcodes.php:
|
13240 |
#: includes/shortcodes/class-wcj-shortcodes.php:107
|
13241 |
#, php-format
|
13242 |
msgid "\"%s\" module is not enabled!"
|
@@ -13393,10 +13673,6 @@ msgstr ""
|
|
13393 |
msgid "Multicurrency module not enabled!"
|
13394 |
msgstr ""
|
13395 |
|
13396 |
-
#: includes/widgets/class-wcj-widget-multicurrency.php:74
|
13397 |
-
msgid "Type:"
|
13398 |
-
msgstr ""
|
13399 |
-
|
13400 |
#: includes/widgets/class-wcj-widget-multicurrency.php:76
|
13401 |
msgid "Drop down"
|
13402 |
msgstr ""
|
3 |
# This file is distributed under the same license as the PACKAGE package.
|
4 |
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5 |
#
|
|
|
6 |
#: includes/settings/wcj-settings-add-to-cart.php:60
|
7 |
#: includes/settings/wcj-settings-shipping-calculator.php:47
|
8 |
#, fuzzy
|
9 |
msgid ""
|
10 |
msgstr ""
|
11 |
+
"Project-Id-Version: Booster for WooCommerce 2.9.1\n"
|
12 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocommerce-"
|
13 |
"jetpack\n"
|
14 |
+
"POT-Creation-Date: 2017-07-17 04:48+0300\n"
|
15 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
16 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
17 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
37 |
msgstr ""
|
38 |
|
39 |
#: woocommerce-jetpack.php:191
|
40 |
+
#: includes/admin/class-wc-settings-jetpack.php:438
|
41 |
msgid "Booster for WooCommerce"
|
42 |
msgstr ""
|
43 |
|
45 |
msgid "Booster Settings"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: woocommerce-jetpack.php:207 includes/class-wcj-admin-bar.php:167
|
49 |
+
#: includes/class-wcj-admin-bar.php:437 includes/class-wcj-admin-bar.php:537
|
|
|
50 |
#: includes/admin/class-wc-settings-jetpack.php:195
|
51 |
+
#: includes/admin/class-wc-settings-jetpack.php:362
|
52 |
msgid "Settings"
|
53 |
msgstr ""
|
54 |
|
60 |
msgid "Unlock all"
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: woocommerce-jetpack.php:465
|
64 |
#, php-format
|
65 |
msgid ""
|
66 |
"<strong>Booster for WooCommerce</strong> plugin was successfully updated to "
|
115 |
msgid "Manage Settings"
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: includes/class-wcj-admin-bar.php:171
|
119 |
+
#: includes/admin/class-wc-settings-jetpack.php:364
|
120 |
+
#: includes/classes/class-wcj-module.php:607
|
121 |
msgid "Documentation"
|
122 |
msgstr ""
|
123 |
|
136 |
|
137 |
#: includes/class-wcj-admin-bar.php:238
|
138 |
#: includes/class-wcj-checkout-files-upload.php:138
|
139 |
+
#: includes/class-wcj-eu-vat-number.php:86 includes/class-wcj-general.php:164
|
140 |
+
#: includes/class-wcj-general.php:260
|
141 |
#: includes/class-wcj-payment-gateways.php:53
|
142 |
#: includes/admin/class-wc-settings-jetpack.php:24
|
143 |
#: includes/admin/class-wc-settings-jetpack.php:197
|
144 |
+
#: includes/classes/class-wcj-module.php:266
|
145 |
+
#: includes/classes/class-wcj-module.php:467
|
146 |
msgid "Booster"
|
147 |
msgstr ""
|
148 |
|
150 |
msgid "Booster - Settings"
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: includes/class-wcj-admin-bar.php:245
|
154 |
+
msgid "Modules"
|
155 |
+
msgstr ""
|
156 |
+
|
157 |
#: includes/class-wcj-admin-bar.php:250 includes/class-wcj-admin-bar.php:561
|
158 |
+
#: includes/classes/class-wcj-module.php:440
|
159 |
#: includes/settings/wcj-settings-wpml.php:15
|
160 |
msgid "Tools"
|
161 |
msgstr ""
|
176 |
msgid "Coupons by date"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: includes/class-wcj-admin-bar.php:280 includes/class-wcj-general.php:43
|
180 |
#: includes/functions/wcj-reports-functions.php:62
|
181 |
msgid "Last 7 days"
|
182 |
msgstr ""
|
219 |
msgstr ""
|
220 |
|
221 |
#: includes/class-wcj-admin-bar.php:334 includes/class-wcj-admin-bar.php:349
|
222 |
+
#: includes/settings/wcj-settings-reports.php:115
|
223 |
+
#: includes/settings/wcj-settings-reports.php:121
|
224 |
msgid "Customers"
|
225 |
msgstr ""
|
226 |
|
237 |
msgstr ""
|
238 |
|
239 |
#: includes/class-wcj-admin-bar.php:363 includes/class-wcj-stock.php:26
|
240 |
+
#: includes/reports/wcj-class-reports-stock.php:256
|
241 |
+
#: includes/settings/wcj-settings-reports.php:127
|
242 |
+
#: includes/settings/wcj-settings-reports.php:133
|
243 |
+
#: includes/settings/wcj-settings-reports.php:139
|
244 |
msgid "Stock"
|
245 |
msgstr ""
|
246 |
|
275 |
#: includes/class-wcj-product-by-user.php:96
|
276 |
#: includes/class-wcj-product-by-user.php:132
|
277 |
#: includes/admin/wcj-modules-cats.php:60
|
278 |
+
#: includes/settings/wcj-settings-shipping-options.php:59
|
279 |
msgid "Products"
|
280 |
msgstr ""
|
281 |
|
395 |
msgid "Account"
|
396 |
msgstr ""
|
397 |
|
398 |
+
#: includes/class-wcj-admin-bar.php:529
|
399 |
msgid "Emails"
|
400 |
msgstr ""
|
401 |
|
436 |
msgstr ""
|
437 |
|
438 |
#: includes/class-wcj-admin-tools.php:32
|
439 |
+
#: includes/settings/wcj-settings-admin-tools.php:19
|
440 |
msgid "Log"
|
441 |
msgstr ""
|
442 |
|
735 |
msgid "Separate custom JS for front and back end."
|
736 |
msgstr ""
|
737 |
|
738 |
+
#: includes/class-wcj-email-options.php:26
|
739 |
+
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-emails.php:24
|
740 |
+
#: includes/settings/wcj-settings-offer-price.php:226
|
741 |
+
msgid "Email Options"
|
742 |
+
msgstr ""
|
743 |
+
|
744 |
+
#: includes/class-wcj-email-options.php:27
|
745 |
+
msgid ""
|
746 |
+
"WooCommerce email options. E.g.: add another email recipient(s) to all "
|
747 |
+
"WooCommerce emails."
|
748 |
+
msgstr ""
|
749 |
+
|
750 |
+
#: includes/class-wcj-email-options.php:93
|
751 |
+
msgid "Booster: Email Forwarding Options"
|
752 |
+
msgstr ""
|
753 |
+
|
754 |
+
#: includes/class-wcj-email-options.php:94
|
755 |
+
msgid "Email Forwarding Options"
|
756 |
+
msgstr ""
|
757 |
+
|
758 |
+
#: includes/class-wcj-email-options.php:96
|
759 |
+
msgid ""
|
760 |
+
"This section lets you add another email recipient(s) to all WooCommerce "
|
761 |
+
"emails. Leave blank to disable."
|
762 |
+
msgstr ""
|
763 |
+
|
764 |
+
#: includes/class-wcj-email-options.php:100
|
765 |
+
msgid "Cc Email"
|
766 |
+
msgstr ""
|
767 |
+
|
768 |
+
#: includes/class-wcj-email-options.php:101
|
769 |
+
msgid "Cc to email, e.g. youremail@yourdomain.com. Leave blank to disable."
|
770 |
+
msgstr ""
|
771 |
+
|
772 |
+
#: includes/class-wcj-email-options.php:107
|
773 |
+
msgid "Bcc Email"
|
774 |
+
msgstr ""
|
775 |
+
|
776 |
+
#: includes/class-wcj-email-options.php:108
|
777 |
+
msgid "Bcc to email, e.g. youremail@yourdomain.com. Leave blank to disable."
|
778 |
+
msgstr ""
|
779 |
+
|
780 |
#: includes/class-wcj-emails-verification.php:26
|
781 |
msgid "Email Verification"
|
782 |
msgstr ""
|
834 |
"check your email."
|
835 |
msgstr ""
|
836 |
|
837 |
+
#: includes/class-wcj-emails.php:23
|
838 |
+
#: includes/settings/wcj-settings-emails.php:14
|
839 |
+
msgid "Custom Emails"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
840 |
msgstr ""
|
841 |
|
842 |
+
#: includes/class-wcj-emails.php:24
|
843 |
+
msgid "Add custom emails to WooCommerce."
|
844 |
msgstr ""
|
845 |
|
846 |
#: includes/class-wcj-empty-cart-button.php:25
|
847 |
+
#: includes/shortcodes/class-wcj-general-shortcodes.php:128
|
848 |
msgid "Empty Cart Button"
|
849 |
msgstr ""
|
850 |
|
914 |
msgstr ""
|
915 |
|
916 |
#: includes/class-wcj-export-import.php:26
|
917 |
+
#: includes/admin/class-wc-settings-jetpack.php:272
|
918 |
msgid "Export"
|
919 |
msgstr ""
|
920 |
|
1031 |
msgid "Manage Custom Roles."
|
1032 |
msgstr ""
|
1033 |
|
1034 |
+
#: includes/class-wcj-general.php:42
|
1035 |
+
msgid "Last 24 hours"
|
1036 |
+
msgstr ""
|
1037 |
+
|
1038 |
+
#: includes/class-wcj-general.php:44
|
1039 |
+
msgid "Last 28 days"
|
1040 |
+
msgstr ""
|
1041 |
+
|
1042 |
+
#: includes/class-wcj-general.php:45
|
1043 |
+
msgid "All time"
|
1044 |
+
msgstr ""
|
1045 |
+
|
1046 |
+
#: includes/class-wcj-general.php:164
|
1047 |
+
msgid "Acquisition Source"
|
1048 |
+
msgstr ""
|
1049 |
+
|
1050 |
+
#: includes/class-wcj-general.php:189
|
1051 |
+
msgid "Other"
|
1052 |
+
msgstr ""
|
1053 |
+
|
1054 |
+
#: includes/class-wcj-general.php:206
|
1055 |
+
#: includes/settings/wcj-settings-products-xml.php:115
|
1056 |
+
msgid "URL:"
|
1057 |
+
msgstr ""
|
1058 |
+
|
1059 |
+
#: includes/class-wcj-general.php:207
|
1060 |
+
#: includes/widgets/class-wcj-widget-multicurrency.php:74
|
1061 |
+
msgid "Type:"
|
1062 |
+
msgstr ""
|
1063 |
+
|
1064 |
+
#: includes/class-wcj-general.php:260
|
1065 |
+
#, php-format
|
1066 |
+
msgid "Top %d countries by visits"
|
1067 |
+
msgstr ""
|
1068 |
+
|
1069 |
+
#: includes/class-wcj-general.php:328
|
1070 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:59
|
1071 |
+
#: includes/settings/wcj-settings-checkout-custom-fields.php:92
|
1072 |
+
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:88
|
1073 |
+
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:102
|
1074 |
+
msgid "Country"
|
1075 |
+
msgstr ""
|
1076 |
+
|
1077 |
+
#: includes/class-wcj-general.php:328
|
1078 |
+
msgid "Visits"
|
1079 |
+
msgstr ""
|
1080 |
+
|
1081 |
+
#: includes/class-wcj-general.php:338
|
1082 |
+
msgid "No stats yet."
|
1083 |
+
msgstr ""
|
1084 |
+
|
1085 |
+
#: includes/class-wcj-general.php:343 includes/class-wcj-my-account.php:75
|
1086 |
+
#: includes/class-wcj-order-custom-statuses.php:359
|
1087 |
+
#: includes/class-wcj-product-bulk-meta-editor.php:275
|
1088 |
+
#: includes/class-wcj-product-by-user.php:206
|
1089 |
+
#: includes/class-wcj-purchase-data.php:93
|
1090 |
+
#: includes/classes/class-wcj-module.php:576
|
1091 |
+
#: includes/functions/wcj-html-functions.php:95
|
1092 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:334
|
1093 |
+
#: includes/settings/wcj-settings-empty-cart.php:80
|
1094 |
+
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:367
|
1095 |
+
msgid "Are you sure?"
|
1096 |
+
msgstr ""
|
1097 |
+
|
1098 |
+
#: includes/class-wcj-general.php:344
|
1099 |
+
msgid "Delete all tracking data"
|
1100 |
+
msgstr ""
|
1101 |
+
|
1102 |
+
#: includes/class-wcj-general.php:349
|
1103 |
+
#, php-format
|
1104 |
+
msgid "Stats generated at %s. Next update is scheduled at %s."
|
1105 |
+
msgstr ""
|
1106 |
+
|
1107 |
+
#: includes/class-wcj-general.php:350
|
1108 |
+
msgid "Update now"
|
1109 |
+
msgstr ""
|
1110 |
+
|
1111 |
+
#: includes/class-wcj-general.php:454
|
1112 |
msgid "Booster User Role"
|
1113 |
msgstr ""
|
1114 |
|
1115 |
+
#: includes/class-wcj-general.php:518
|
1116 |
msgid "Both fields are required!"
|
1117 |
msgstr ""
|
1118 |
|
1119 |
+
#: includes/class-wcj-general.php:521
|
1120 |
msgid "Role ID must not be numbers only!"
|
1121 |
msgstr ""
|
1122 |
|
1123 |
+
#: includes/class-wcj-general.php:525
|
1124 |
msgid "Role successfully added!"
|
1125 |
msgstr ""
|
1126 |
|
1127 |
+
#: includes/class-wcj-general.php:527
|
1128 |
msgid "Role already exists!"
|
1129 |
msgstr ""
|
1130 |
|
1131 |
+
#: includes/class-wcj-general.php:535
|
1132 |
#, php-format
|
1133 |
msgid "Role %s successfully deleted!"
|
1134 |
msgstr ""
|
1135 |
|
1136 |
+
#: includes/class-wcj-general.php:541 includes/class-wcj-general.php:554
|
1137 |
#: includes/class-wcj-sku.php:330
|
1138 |
#: includes/reports/wcj-class-reports-sales.php:191
|
1139 |
#: includes/settings/wcj-settings-product-by-user.php:161
|
1141 |
msgid "ID"
|
1142 |
msgstr ""
|
1143 |
|
1144 |
+
#: includes/class-wcj-general.php:541 includes/class-wcj-general.php:555
|
1145 |
#: includes/class-wcj-offer-price.php:116
|
1146 |
#: includes/export/class-wcj-fields-helper.php:282
|
1147 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:70
|
1149 |
msgid "Name"
|
1150 |
msgstr ""
|
1151 |
|
1152 |
+
#: includes/class-wcj-general.php:541
|
1153 |
#: includes/class-wcj-order-custom-statuses.php:337
|
1154 |
#: includes/class-wcj-product-by-user.php:197
|
1155 |
#: includes/settings/wcj-settings-pdf-invoicing-styling.php:125
|
1156 |
msgid "Actions"
|
1157 |
msgstr ""
|
1158 |
|
1159 |
+
#: includes/class-wcj-general.php:547
|
1160 |
#: includes/class-wcj-order-custom-statuses.php:359
|
1161 |
#: includes/class-wcj-product-bulk-meta-editor.php:359
|
1162 |
#: includes/class-wcj-product-by-user.php:206
|
1166 |
msgid "Delete"
|
1167 |
msgstr ""
|
1168 |
|
1169 |
+
#: includes/class-wcj-general.php:550
|
1170 |
msgid "Existing Roles"
|
1171 |
msgstr ""
|
1172 |
|
1173 |
+
#: includes/class-wcj-general.php:556
|
1174 |
msgid "Add New Role"
|
1175 |
msgstr ""
|
1176 |
|
1177 |
+
#: includes/class-wcj-general.php:559
|
1178 |
#: includes/class-wcj-order-custom-statuses.php:384
|
1179 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:22
|
1180 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:29
|
1181 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:36
|
1182 |
+
#: includes/settings/wcj-settings-email-options.php:20
|
1183 |
#: includes/settings/wcj-settings-eu-vat-number.php:157
|
1184 |
#: includes/settings/wcj-settings-eu-vat-number.php:193
|
1185 |
#: includes/settings/wcj-settings-export.php:27
|
1201 |
msgid "Add"
|
1202 |
msgstr ""
|
1203 |
|
1204 |
+
#: includes/class-wcj-general.php:622 includes/class-wcj-general.php:664
|
1205 |
#: includes/class-wcj-product-bulk-meta-editor.php:331
|
1206 |
#: includes/class-wcj-product-bulk-price-converter.php:148
|
1207 |
#: includes/class-wcj-sku.php:331
|
1208 |
#: includes/reports/wcj-class-reports-sales.php:192
|
1209 |
+
#: includes/reports/wcj-class-reports-stock.php:253
|
1210 |
msgid "Product"
|
1211 |
msgstr ""
|
1212 |
|
1213 |
+
#: includes/class-wcj-general.php:623 includes/class-wcj-general.php:665
|
1214 |
+
#: includes/reports/wcj-class-reports-stock.php:254
|
1215 |
msgid "Category"
|
1216 |
msgstr ""
|
1217 |
|
1218 |
+
#: includes/class-wcj-general.php:685
|
1219 |
msgid "Total Products:"
|
1220 |
msgstr ""
|
1221 |
|
1297 |
msgid "WooCommerce \"My Account\" page customization."
|
1298 |
msgstr ""
|
1299 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1300 |
#: includes/class-wcj-offer-price.php:36
|
1301 |
msgid "Offer Your Price"
|
1302 |
msgstr ""
|
1322 |
|
1323 |
#: includes/class-wcj-offer-price.php:114
|
1324 |
#: includes/export/class-wcj-fields-helper.php:288
|
1325 |
+
#: includes/reports/wcj-class-reports-stock.php:255
|
1326 |
#: includes/settings/wcj-settings-related-products.php:24
|
1327 |
#: includes/settings/meta-box/wcj-settings-meta-box-wholesale-price.php:72
|
1328 |
msgid "Price"
|
1331 |
#: includes/class-wcj-offer-price.php:115
|
1332 |
#: includes/settings/wcj-settings-currency-per-product.php:41
|
1333 |
#: includes/settings/wcj-settings-currency-per-product.php:48
|
1334 |
+
#: includes/settings/wcj-settings-product-by-date.php:69
|
1335 |
+
#: includes/settings/wcj-settings-product-by-time.php:69
|
1336 |
msgid "Message"
|
1337 |
msgstr ""
|
1338 |
|
2040 |
|
2041 |
#: includes/class-wcj-price-labels.php:40
|
2042 |
#: includes/class-wcj-product-info.php:254
|
2043 |
+
#: includes/class-wcj-shipping-options.php:172
|
2044 |
#: includes/settings/wcj-settings-add-to-cart.php:52
|
2045 |
#: includes/settings/wcj-settings-address-formats.php:20
|
2046 |
#: includes/settings/wcj-settings-admin-bar.php:20
|
2047 |
#: includes/settings/wcj-settings-admin-bar.php:27
|
2048 |
#: includes/settings/wcj-settings-admin-tools.php:20
|
2049 |
#: includes/settings/wcj-settings-admin-tools.php:27
|
2050 |
+
#: includes/settings/wcj-settings-admin-tools.php:34
|
2051 |
#: includes/settings/wcj-settings-admin-tools.php:74
|
2052 |
+
#: includes/settings/wcj-settings-admin-tools.php:81
|
2053 |
#: includes/settings/wcj-settings-breadcrumbs.php:20
|
2054 |
#: includes/settings/wcj-settings-call-for-price.php:69
|
2055 |
#: includes/settings/wcj-settings-cart-customization.php:34
|
2069 |
#: includes/settings/wcj-settings-general.php:81
|
2070 |
#: includes/settings/wcj-settings-general.php:139
|
2071 |
#: includes/settings/wcj-settings-general.php:190
|
2072 |
+
#: includes/settings/wcj-settings-general.php:248
|
2073 |
#: includes/settings/wcj-settings-global-discount.php:43
|
2074 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:23
|
2075 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:56
|
2113 |
#: includes/settings/wcj-settings-product-by-country.php:20
|
2114 |
#: includes/settings/wcj-settings-product-by-country.php:27
|
2115 |
#: includes/settings/wcj-settings-product-by-country.php:34
|
2116 |
+
#: includes/settings/wcj-settings-product-by-date.php:21
|
2117 |
+
#: includes/settings/wcj-settings-product-by-date.php:53
|
2118 |
+
#: includes/settings/wcj-settings-product-by-time.php:21
|
2119 |
+
#: includes/settings/wcj-settings-product-by-time.php:53
|
2120 |
#: includes/settings/wcj-settings-product-by-user-role.php:20
|
2121 |
#: includes/settings/wcj-settings-product-by-user-role.php:27
|
2122 |
#: includes/settings/wcj-settings-product-by-user-role.php:34
|
2148 |
#: includes/settings/wcj-settings-shipping-calculator.php:27
|
2149 |
#: includes/settings/wcj-settings-shipping-calculator.php:34
|
2150 |
#: includes/settings/wcj-settings-shipping-calculator.php:41
|
2151 |
+
#: includes/settings/wcj-settings-shipping-options.php:53
|
2152 |
#: includes/settings/wcj-settings-shipping.php:24
|
2153 |
#: includes/settings/wcj-settings-sku.php:47
|
2154 |
#: includes/settings/wcj-settings-sku.php:150
|
2544 |
msgid "Countries"
|
2545 |
msgstr ""
|
2546 |
|
2547 |
+
#: includes/class-wcj-product-by-date.php:29
|
2548 |
+
msgid "Product Availability by Date"
|
2549 |
+
msgstr ""
|
2550 |
+
|
2551 |
+
#: includes/class-wcj-product-by-date.php:30
|
2552 |
+
msgid "WooCommerce product availability by date."
|
2553 |
+
msgstr ""
|
2554 |
+
|
2555 |
+
#: includes/class-wcj-product-by-date.php:95
|
2556 |
+
#: includes/class-wcj-product-by-date.php:97
|
2557 |
+
#: includes/settings/wcj-settings-product-by-date.php:87
|
2558 |
+
msgid ""
|
2559 |
+
"<p style=\"color:red;\">%product_title% is not available this month.</p>"
|
2560 |
+
msgstr ""
|
2561 |
+
|
2562 |
+
#: includes/class-wcj-product-by-date.php:98
|
2563 |
+
#: includes/class-wcj-product-by-date.php:100
|
2564 |
+
#: includes/settings/wcj-settings-product-by-date.php:75
|
2565 |
+
msgid ""
|
2566 |
+
"<p style=\"color:red;\">%product_title% is available only on %date_this_month"
|
2567 |
+
"% this month.</p>"
|
2568 |
+
msgstr ""
|
2569 |
+
|
2570 |
+
#: includes/class-wcj-product-by-time.php:29
|
2571 |
msgid "Product Availability by Time"
|
2572 |
msgstr ""
|
2573 |
|
2574 |
+
#: includes/class-wcj-product-by-time.php:30
|
2575 |
msgid "WooCommerce product availability by time."
|
2576 |
msgstr ""
|
2577 |
|
2578 |
+
#: includes/class-wcj-product-by-time.php:91
|
2579 |
+
#: includes/class-wcj-product-by-time.php:93
|
2580 |
+
#: includes/settings/wcj-settings-product-by-time.php:87
|
2581 |
msgid "<p style=\"color:red;\">%product_title% is not available today.</p>"
|
2582 |
msgstr ""
|
2583 |
|
2584 |
+
#: includes/class-wcj-product-by-time.php:94
|
2585 |
+
#: includes/class-wcj-product-by-time.php:96
|
2586 |
+
#: includes/settings/wcj-settings-product-by-time.php:75
|
2587 |
msgid ""
|
2588 |
"<p style=\"color:red;\">%product_title% is available only at %time_today% "
|
2589 |
"today.</p>"
|
2647 |
msgstr ""
|
2648 |
|
2649 |
#: includes/class-wcj-product-custom-info.php:24
|
2650 |
+
#: includes/admin/class-wc-settings-jetpack.php:416
|
2651 |
#: includes/functions/wcj-general-functions.php:33
|
2652 |
msgid "Product Info"
|
2653 |
msgstr ""
|
2657 |
msgid "Add additional info to WooCommerce category and single product pages."
|
2658 |
msgstr ""
|
2659 |
|
2660 |
+
#: includes/class-wcj-product-images.php:25
|
2661 |
msgid "Product Images"
|
2662 |
msgstr ""
|
2663 |
|
2664 |
+
#: includes/class-wcj-product-images.php:26
|
2665 |
msgid "Customize WooCommerce products images, thumbnails and sale flashes."
|
2666 |
msgstr ""
|
2667 |
|
2668 |
+
#: includes/class-wcj-product-images.php:204
|
2669 |
#: includes/settings/wcj-settings-product-images.php:103
|
2670 |
msgid "Sale!"
|
2671 |
msgstr ""
|
2676 |
|
2677 |
#: includes/class-wcj-product-info.php:123
|
2678 |
#: includes/settings/wcj-settings-offer-price.php:91
|
2679 |
+
#: includes/settings/wcj-settings-product-custom-info.php:79
|
2680 |
msgid "Before product"
|
2681 |
msgstr ""
|
2682 |
|
2683 |
#: includes/class-wcj-product-info.php:124
|
2684 |
+
#: includes/settings/wcj-settings-product-custom-info.php:80
|
2685 |
msgid "Before product title"
|
2686 |
msgstr ""
|
2687 |
|
2688 |
#: includes/class-wcj-product-info.php:125
|
2689 |
#: includes/settings/wcj-settings-offer-price.php:92
|
2690 |
+
#: includes/settings/wcj-settings-product-custom-info.php:83
|
2691 |
msgid "After product"
|
2692 |
msgstr ""
|
2693 |
|
2694 |
#: includes/class-wcj-product-info.php:126
|
2695 |
+
#: includes/settings/wcj-settings-product-custom-info.php:82
|
2696 |
msgid "After product title"
|
2697 |
msgstr ""
|
2698 |
|
2699 |
#: includes/class-wcj-product-info.php:138
|
2700 |
#: includes/settings/wcj-settings-offer-price.php:72
|
2701 |
+
#: includes/settings/wcj-settings-product-custom-info.php:70
|
2702 |
msgid "Inside single product summary"
|
2703 |
msgstr ""
|
2704 |
|
2705 |
#: includes/class-wcj-product-info.php:139
|
2706 |
#: includes/settings/wcj-settings-offer-price.php:71
|
2707 |
+
#: includes/settings/wcj-settings-product-custom-info.php:69
|
2708 |
msgid "Before single product summary"
|
2709 |
msgstr ""
|
2710 |
|
2711 |
#: includes/class-wcj-product-info.php:140
|
2712 |
#: includes/settings/wcj-settings-offer-price.php:73
|
2713 |
+
#: includes/settings/wcj-settings-product-custom-info.php:71
|
2714 |
msgid "After single product summary"
|
2715 |
msgstr ""
|
2716 |
|
2722 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:74
|
2723 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:113
|
2724 |
#: includes/settings/wcj-settings-mini-cart.php:46
|
2725 |
+
#: includes/settings/wcj-settings-product-custom-info.php:62
|
2726 |
#: includes/settings/wcj-settings-product-info.php:50
|
2727 |
#: includes/settings/wcj-settings-product-info.php:83
|
2728 |
#: includes/settings/wcj-settings-products-per-page.php:36
|
2874 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:65
|
2875 |
#: includes/settings/wcj-settings-left-to-free-shipping.php:104
|
2876 |
#: includes/settings/wcj-settings-mini-cart.php:39
|
2877 |
+
#: includes/settings/wcj-settings-product-custom-info.php:54
|
2878 |
#: includes/settings/wcj-settings-product-tabs.php:57
|
2879 |
msgid "Content"
|
2880 |
msgstr ""
|
2960 |
#: includes/settings/wcj-settings-currency-exchange-rates.php:141
|
2961 |
#: includes/settings/wcj-settings-pdf-invoicing.php:21
|
2962 |
#: includes/settings/wcj-settings-product-add-to-cart.php:64
|
2963 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-by-date.php:19
|
2964 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-by-time.php:19
|
2965 |
msgid "Disabled"
|
2966 |
msgstr ""
|
2967 |
|
3041 |
msgstr ""
|
3042 |
|
3043 |
#: includes/class-wcj-purchase-data.php:92
|
3044 |
+
#: includes/admin/class-wc-settings-jetpack.php:276
|
3045 |
msgid "Import"
|
3046 |
msgstr ""
|
3047 |
|
3127 |
msgstr ""
|
3128 |
|
3129 |
#: includes/class-wcj-reports.php:221
|
3130 |
+
msgid "Booster: Monthly Sales (with Currency Conversion)"
|
3131 |
msgstr ""
|
3132 |
|
3133 |
#: includes/class-wcj-reports.php:236
|
3184 |
msgid "Grant free shipping on per product basis."
|
3185 |
msgstr ""
|
3186 |
|
3187 |
+
#: includes/class-wcj-shipping-options.php:171
|
3188 |
+
msgid "Booster: Hide when free is available"
|
3189 |
msgstr ""
|
3190 |
|
3191 |
+
#: includes/class-wcj-shipping-options.php:179
|
3192 |
+
#: includes/settings/wcj-settings-shipping-options.php:28
|
3193 |
+
msgid ""
|
3194 |
+
"Available options: hide all; hide all except \"Local Pickup\"; hide \"Flat "
|
3195 |
+
"Rate\" only."
|
3196 |
+
msgstr ""
|
3197 |
+
|
3198 |
+
#: includes/class-wcj-shipping-options.php:183
|
3199 |
+
#: includes/settings/wcj-settings-shipping-options.php:32
|
3200 |
+
msgid "Hide all"
|
3201 |
+
msgstr ""
|
3202 |
+
|
3203 |
+
#: includes/class-wcj-shipping-options.php:184
|
3204 |
+
#: includes/settings/wcj-settings-shipping-options.php:33
|
3205 |
+
msgid "Hide all except \"Local Pickup\""
|
3206 |
+
msgstr ""
|
3207 |
+
|
3208 |
+
#: includes/class-wcj-shipping-options.php:185
|
3209 |
+
#: includes/settings/wcj-settings-shipping-options.php:34
|
3210 |
+
msgid "Hide \"Flat Rate\" only"
|
3211 |
msgstr ""
|
3212 |
|
3213 |
#: includes/class-wcj-shipping.php:23
|
3303 |
msgid "WooCommerce products stock management."
|
3304 |
msgstr ""
|
3305 |
|
3306 |
+
#: includes/class-wcj-url-coupons.php:25
|
3307 |
+
msgid "URL Coupons"
|
3308 |
+
msgstr ""
|
3309 |
+
|
3310 |
+
#: includes/class-wcj-url-coupons.php:26
|
3311 |
+
msgid "WooCommerce URL coupons."
|
3312 |
+
msgstr ""
|
3313 |
+
|
3314 |
#: includes/class-wcj-wholesale-price.php:25
|
3315 |
msgid "Wholesale Price"
|
3316 |
msgstr ""
|
3370 |
"This section lets you export, import or reset all Booster's modules settings."
|
3371 |
msgstr ""
|
3372 |
|
3373 |
+
#: includes/admin/class-wc-settings-jetpack.php:273
|
3374 |
msgid "Export all Booster's options to a file."
|
3375 |
msgstr ""
|
3376 |
|
3377 |
+
#: includes/admin/class-wc-settings-jetpack.php:278
|
3378 |
msgid "Import all Booster's options from a file."
|
3379 |
msgstr ""
|
3380 |
|
3381 |
+
#: includes/admin/class-wc-settings-jetpack.php:281
|
3382 |
msgid ""
|
3383 |
"This will reset settings to defaults for all Booster modules. Are you sure?"
|
3384 |
msgstr ""
|
3385 |
|
3386 |
+
#: includes/admin/class-wc-settings-jetpack.php:281
|
3387 |
msgid "Reset"
|
3388 |
msgstr ""
|
3389 |
|
3390 |
+
#: includes/admin/class-wc-settings-jetpack.php:282
|
3391 |
msgid "Reset all Booster's options."
|
3392 |
msgstr ""
|
3393 |
|
3394 |
+
#: includes/admin/class-wc-settings-jetpack.php:298
|
3395 |
msgid "Version"
|
3396 |
msgstr ""
|
3397 |
|
3398 |
+
#: includes/admin/class-wc-settings-jetpack.php:322
|
3399 |
+
#: includes/admin/class-wc-settings-jetpack.php:329
|
3400 |
msgid "Select All"
|
3401 |
msgstr ""
|
3402 |
|
3403 |
+
#: includes/admin/class-wc-settings-jetpack.php:323
|
3404 |
+
#: includes/admin/class-wc-settings-jetpack.php:330
|
3405 |
#: includes/admin/class-wcj-tools.php:72
|
3406 |
msgid "Module"
|
3407 |
msgstr ""
|
3408 |
|
3409 |
+
#: includes/admin/class-wc-settings-jetpack.php:324
|
3410 |
+
#: includes/admin/class-wc-settings-jetpack.php:331
|
3411 |
#: includes/admin/class-wcj-tools.php:73
|
3412 |
#: includes/export/class-wcj-fields-helper.php:293
|
3413 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:74
|
3418 |
msgid "Description"
|
3419 |
msgstr ""
|
3420 |
|
3421 |
+
#: includes/admin/class-wc-settings-jetpack.php:376
|
3422 |
msgid "No active modules found."
|
3423 |
msgstr ""
|
3424 |
|
3425 |
+
#: includes/admin/class-wc-settings-jetpack.php:379
|
3426 |
msgid "Total Modules:"
|
3427 |
msgstr ""
|
3428 |
|
3429 |
+
#: includes/admin/class-wc-settings-jetpack.php:406
|
3430 |
msgid "Autoload Booster's Options"
|
3431 |
msgstr ""
|
3432 |
|
3433 |
+
#: includes/admin/class-wc-settings-jetpack.php:408
|
3434 |
msgid ""
|
3435 |
"Choose if you want Booster's options to be autoloaded when calling "
|
3436 |
"add_option. After saving this option, you need to Reset all Booster's "
|
3437 |
"settings. Leave default value (i.e. Enabled) if not sure."
|
3438 |
msgstr ""
|
3439 |
|
3440 |
+
#: includes/admin/class-wc-settings-jetpack.php:413
|
3441 |
+
msgid "Use List Instead of Comma Separated Text for Products in Settings"
|
3442 |
+
msgstr ""
|
3443 |
+
|
3444 |
+
#: includes/admin/class-wc-settings-jetpack.php:415
|
3445 |
+
#, php-format
|
3446 |
+
msgid "Supported modules: %s."
|
3447 |
+
msgstr ""
|
3448 |
+
|
3449 |
#: includes/admin/class-wcj-settings-custom-fields.php:187
|
3450 |
#: includes/settings/wcj-settings-wpml.php:21
|
3451 |
msgid "To use tools, module must be enabled."
|
3534 |
"Listings, Product Tabs and more."
|
3535 |
msgstr ""
|
3536 |
|
3537 |
+
#: includes/admin/wcj-modules-cats.php:89
|
3538 |
msgid "Cart & Checkout"
|
3539 |
msgstr ""
|
3540 |
|
3541 |
+
#: includes/admin/wcj-modules-cats.php:90
|
3542 |
msgid "Cart and Checkout Customization, Empty Cart Button, Mini Cart and more."
|
3543 |
msgstr ""
|
3544 |
|
3545 |
+
#: includes/admin/wcj-modules-cats.php:106
|
3546 |
#: includes/settings/wcj-settings-payment-gateways-by-country.php:14
|
3547 |
#: includes/settings/wcj-settings-payment-gateways-by-shipping.php:21
|
3548 |
#: includes/settings/wcj-settings-payment-gateways-by-user-role.php:14
|
3550 |
msgid "Payment Gateways"
|
3551 |
msgstr ""
|
3552 |
|
3553 |
+
#: includes/admin/wcj-modules-cats.php:107
|
3554 |
msgid ""
|
3555 |
"Custom Payment Gateways, Gateways Currency, Gateways Fees and Discounts and "
|
3556 |
"more."
|
3557 |
msgstr ""
|
3558 |
|
3559 |
+
#: includes/admin/wcj-modules-cats.php:122
|
3560 |
msgid "Shipping & Orders"
|
3561 |
msgstr ""
|
3562 |
|
3563 |
+
#: includes/admin/wcj-modules-cats.php:123
|
3564 |
msgid ""
|
3565 |
"Order Custom Statuses, Order Minimum Amount, Order Numbers, Custom Shipping "
|
3566 |
"Methods and more."
|
3567 |
msgstr ""
|
3568 |
|
3569 |
+
#: includes/admin/wcj-modules-cats.php:140
|
3570 |
msgid "PDF Invoicing & Packing Slips"
|
3571 |
msgstr ""
|
3572 |
|
3573 |
+
#: includes/admin/wcj-modules-cats.php:141
|
3574 |
msgid "PDF Documents"
|
3575 |
msgstr ""
|
3576 |
|
3577 |
+
#: includes/admin/wcj-modules-cats.php:156
|
3578 |
msgid "Emails & Misc."
|
3579 |
msgstr ""
|
3580 |
|
3581 |
+
#: includes/admin/wcj-modules-cats.php:157
|
3582 |
msgid "Emails, Reports, Export, Admin Tools, General Options and more."
|
3583 |
msgstr ""
|
3584 |
|
3585 |
+
#: includes/classes/class-wcj-module.php:94
|
3586 |
+
#, php-format
|
3587 |
+
msgid ""
|
3588 |
+
"Booster: Free plugin's version is limited to only one \"%1$s\" product with "
|
3589 |
+
"settings on per product basis enabled at a time. You will need to get <a "
|
3590 |
+
"href=\"%2$s\" target=\"_blank\">Booster Plus</a> to add unlimited number of "
|
3591 |
+
"\"%1$s\" products."
|
3592 |
+
msgstr ""
|
3593 |
+
|
3594 |
+
#: includes/classes/class-wcj-module.php:428
|
3595 |
msgid "Back to Module Settings"
|
3596 |
msgstr ""
|
3597 |
|
3598 |
+
#: includes/classes/class-wcj-module.php:446
|
3599 |
#: includes/settings/wcj-settings-wpml.php:20
|
3600 |
msgid "Module Tools"
|
3601 |
msgstr ""
|
3602 |
|
3603 |
+
#: includes/classes/class-wcj-module.php:519
|
3604 |
#: includes/settings/wcj-settings-checkout-core-fields.php:23
|
3605 |
msgid "enabled"
|
3606 |
msgstr ""
|
3607 |
|
3608 |
+
#: includes/classes/class-wcj-module.php:520
|
3609 |
msgid "disabled"
|
3610 |
msgstr ""
|
3611 |
|
3612 |
+
#: includes/classes/class-wcj-module.php:528
|
3613 |
#: includes/settings/wcj-settings-product-tabs.php:133
|
3614 |
#: includes/settings/wcj-settings-product-tabs.php:141
|
3615 |
#: includes/settings/wcj-settings-product-tabs.php:149
|
3617 |
msgid "Deprecated"
|
3618 |
msgstr ""
|
3619 |
|
3620 |
+
#: includes/classes/class-wcj-module.php:566
|
3621 |
msgid "Reset Settings"
|
3622 |
msgstr ""
|
3623 |
|
3624 |
+
#: includes/classes/class-wcj-module.php:572
|
3625 |
msgid "Reset Module to Default Settings"
|
3626 |
msgstr ""
|
3627 |
|
3628 |
+
#: includes/classes/class-wcj-module.php:573
|
3629 |
msgid "Reset Submodule to Default Settings"
|
3630 |
msgstr ""
|
3631 |
|
3632 |
+
#: includes/classes/class-wcj-module.php:577
|
3633 |
msgid "Reset settings"
|
3634 |
msgstr ""
|
3635 |
|
3636 |
+
#: includes/classes/class-wcj-module.php:611
|
3637 |
msgid "Module Options"
|
3638 |
msgstr ""
|
3639 |
|
3640 |
+
#: includes/classes/class-wcj-module.php:618
|
3641 |
msgid "Enable Module"
|
3642 |
msgstr ""
|
3643 |
|
4159 |
#: includes/settings/wcj-settings-global-discount.php:49
|
4160 |
#: includes/settings/wcj-settings-product-addons.php:70
|
4161 |
#: includes/settings/wcj-settings-purchase-data.php:73
|
4162 |
+
#: includes/settings/wcj-settings-shipping-options.php:67
|
4163 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:45
|
4164 |
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:164
|
4165 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:123
|
4167 |
msgstr ""
|
4168 |
|
4169 |
#: includes/export/class-wcj-fields-helper.php:291
|
4170 |
+
#: includes/settings/wcj-settings-shipping-options.php:181
|
4171 |
msgid "Image URL"
|
4172 |
msgstr ""
|
4173 |
|
4283 |
msgid "Availability Class"
|
4284 |
msgstr ""
|
4285 |
|
4286 |
+
#: includes/functions/wcj-admin-functions.php:28
|
4287 |
+
msgid "Enter comma separated list of IDs."
|
4288 |
+
msgstr ""
|
4289 |
+
|
4290 |
+
#: includes/functions/wcj-admin-functions.php:102
|
4291 |
#: includes/settings/wcj-settings-emails-verification.php:52
|
4292 |
#: includes/settings/wcj-settings-emails-verification.php:69
|
4293 |
#: includes/settings/wcj-settings-emails-verification.php:77
|
4295 |
msgid "Replaced value: %s"
|
4296 |
msgstr ""
|
4297 |
|
4298 |
+
#: includes/functions/wcj-admin-functions.php:102
|
4299 |
#, php-format
|
4300 |
msgid "Replaced values: %s"
|
4301 |
msgstr ""
|
4302 |
|
4303 |
+
#: includes/functions/wcj-admin-functions.php:131
|
4304 |
msgid "Install Booster Plus to unlock all features"
|
4305 |
msgstr ""
|
4306 |
|
4307 |
+
#: includes/functions/wcj-admin-functions.php:132
|
4308 |
#, php-format
|
4309 |
msgid ""
|
4310 |
"Some settings fields are locked and you will need %s to modify all locked "
|
4311 |
"fields."
|
4312 |
msgstr ""
|
4313 |
|
4314 |
+
#: includes/functions/wcj-admin-functions.php:133
|
4315 |
msgid "Buy now"
|
4316 |
msgstr ""
|
4317 |
|
4318 |
+
#: includes/functions/wcj-admin-functions.php:133
|
4319 |
msgid "Visit Booster Site"
|
4320 |
msgstr ""
|
4321 |
|
4322 |
+
#: includes/functions/wcj-admin-functions.php:137
|
4323 |
#, php-format
|
4324 |
msgid "Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to change value."
|
4325 |
msgstr ""
|
4326 |
|
4327 |
+
#: includes/functions/wcj-admin-functions.php:140
|
4328 |
#, php-format
|
4329 |
msgid ""
|
4330 |
"Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to enable \"%s\" "
|
4331 |
"option."
|
4332 |
msgstr ""
|
4333 |
|
4334 |
+
#: includes/functions/wcj-admin-functions.php:143
|
4335 |
#, php-format
|
4336 |
msgid "Get Booster Plus to enable \"%s\" option."
|
4337 |
msgstr ""
|
4338 |
|
4339 |
+
#: includes/functions/wcj-admin-functions.php:146
|
4340 |
#, php-format
|
4341 |
msgid ""
|
4342 |
"Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to change values below."
|
4343 |
msgstr ""
|
4344 |
|
4345 |
+
#: includes/functions/wcj-admin-functions.php:149
|
4346 |
#, php-format
|
4347 |
msgid ""
|
4348 |
"Get <a href=\"%s\" target=\"_blank\">Booster Plus</a> to change values above."
|
4349 |
msgstr ""
|
4350 |
|
4351 |
+
#: includes/functions/wcj-admin-functions.php:152
|
4352 |
msgid "Get Booster Plus to change value."
|
4353 |
msgstr ""
|
4354 |
|
4355 |
+
#: includes/functions/wcj-country-functions.php:119
|
4356 |
msgid "Afghanistan"
|
4357 |
msgstr ""
|
4358 |
|
4359 |
+
#: includes/functions/wcj-country-functions.php:120
|
4360 |
msgid "Åland Islands"
|
4361 |
msgstr ""
|
4362 |
|
4363 |
+
#: includes/functions/wcj-country-functions.php:121
|
4364 |
msgid "Albania"
|
4365 |
msgstr ""
|
4366 |
|
4367 |
+
#: includes/functions/wcj-country-functions.php:122
|
4368 |
msgid "Algeria"
|
4369 |
msgstr ""
|
4370 |
|
4371 |
+
#: includes/functions/wcj-country-functions.php:123
|
4372 |
msgid "Andorra"
|
4373 |
msgstr ""
|
4374 |
|
4375 |
+
#: includes/functions/wcj-country-functions.php:124
|
4376 |
msgid "Angola"
|
4377 |
msgstr ""
|
4378 |
|
4379 |
+
#: includes/functions/wcj-country-functions.php:125
|
4380 |
msgid "Anguilla"
|
4381 |
msgstr ""
|
4382 |
|
4383 |
+
#: includes/functions/wcj-country-functions.php:126
|
4384 |
msgid "Antarctica"
|
4385 |
msgstr ""
|
4386 |
|
4387 |
+
#: includes/functions/wcj-country-functions.php:127
|
4388 |
msgid "Antigua and Barbuda"
|
4389 |
msgstr ""
|
4390 |
|
4391 |
+
#: includes/functions/wcj-country-functions.php:128
|
4392 |
msgid "Argentina"
|
4393 |
msgstr ""
|
4394 |
|
4395 |
+
#: includes/functions/wcj-country-functions.php:129
|
4396 |
msgid "Armenia"
|
4397 |
msgstr ""
|
4398 |
|
4399 |
+
#: includes/functions/wcj-country-functions.php:130
|
4400 |
msgid "Aruba"
|
4401 |
msgstr ""
|
4402 |
|
4403 |
+
#: includes/functions/wcj-country-functions.php:131
|
4404 |
msgid "Australia"
|
4405 |
msgstr ""
|
4406 |
|
4407 |
+
#: includes/functions/wcj-country-functions.php:132
|
4408 |
msgid "Austria"
|
4409 |
msgstr ""
|
4410 |
|
4411 |
+
#: includes/functions/wcj-country-functions.php:133
|
4412 |
msgid "Azerbaijan"
|
4413 |
msgstr ""
|
4414 |
|
4415 |
+
#: includes/functions/wcj-country-functions.php:134
|
4416 |
msgid "Bahamas"
|
4417 |
msgstr ""
|
4418 |
|
4419 |
+
#: includes/functions/wcj-country-functions.php:135
|
4420 |
msgid "Bahrain"
|
4421 |
msgstr ""
|
4422 |
|
4423 |
+
#: includes/functions/wcj-country-functions.php:136
|
4424 |
msgid "Bangladesh"
|
4425 |
msgstr ""
|
4426 |
|
4427 |
+
#: includes/functions/wcj-country-functions.php:137
|
4428 |
msgid "Barbados"
|
4429 |
msgstr ""
|
4430 |
|
4431 |
+
#: includes/functions/wcj-country-functions.php:138
|
4432 |
msgid "Belarus"
|
4433 |
msgstr ""
|
4434 |
|
4435 |
+
#: includes/functions/wcj-country-functions.php:139
|
4436 |
msgid "Belgium"
|
4437 |
msgstr ""
|
4438 |
|
4439 |
+
#: includes/functions/wcj-country-functions.php:140
|
4440 |
msgid "Belau"
|
4441 |
msgstr ""
|
4442 |
|
4443 |
+
#: includes/functions/wcj-country-functions.php:141
|
4444 |
msgid "Belize"
|
4445 |
msgstr ""
|
4446 |
|
4447 |
+
#: includes/functions/wcj-country-functions.php:142
|
4448 |
msgid "Benin"
|
4449 |
msgstr ""
|
4450 |
|
4451 |
+
#: includes/functions/wcj-country-functions.php:143
|
4452 |
msgid "Bermuda"
|
4453 |
msgstr ""
|
4454 |
|
4455 |
+
#: includes/functions/wcj-country-functions.php:144
|
4456 |
msgid "Bhutan"
|
4457 |
msgstr ""
|
4458 |
|
4459 |
+
#: includes/functions/wcj-country-functions.php:145
|
4460 |
msgid "Bolivia"
|
4461 |
msgstr ""
|
4462 |
|
4463 |
+
#: includes/functions/wcj-country-functions.php:146
|
4464 |
msgid "Bonaire, Saint Eustatius and Saba"
|
4465 |
msgstr ""
|
4466 |
|
4467 |
+
#: includes/functions/wcj-country-functions.php:147
|
4468 |
msgid "Bosnia and Herzegovina"
|
4469 |
msgstr ""
|
4470 |
|
4471 |
+
#: includes/functions/wcj-country-functions.php:148
|
4472 |
msgid "Botswana"
|
4473 |
msgstr ""
|
4474 |
|
4475 |
+
#: includes/functions/wcj-country-functions.php:149
|
4476 |
msgid "Bouvet Island"
|
4477 |
msgstr ""
|
4478 |
|
4479 |
+
#: includes/functions/wcj-country-functions.php:150
|
4480 |
msgid "Brazil"
|
4481 |
msgstr ""
|
4482 |
|
4483 |
+
#: includes/functions/wcj-country-functions.php:151
|
4484 |
msgid "British Indian Ocean Territory"
|
4485 |
msgstr ""
|
4486 |
|
4487 |
+
#: includes/functions/wcj-country-functions.php:152
|
4488 |
msgid "British Virgin Islands"
|
4489 |
msgstr ""
|
4490 |
|
4491 |
+
#: includes/functions/wcj-country-functions.php:153
|
4492 |
msgid "Brunei"
|
4493 |
msgstr ""
|
4494 |
|
4495 |
+
#: includes/functions/wcj-country-functions.php:154
|
4496 |
msgid "Bulgaria"
|
4497 |
msgstr ""
|
4498 |
|
4499 |
+
#: includes/functions/wcj-country-functions.php:155
|
4500 |
msgid "Burkina Faso"
|
4501 |
msgstr ""
|
4502 |
|
4503 |
+
#: includes/functions/wcj-country-functions.php:156
|
4504 |
msgid "Burundi"
|
4505 |
msgstr ""
|
4506 |
|
4507 |
+
#: includes/functions/wcj-country-functions.php:157
|
4508 |
msgid "Cambodia"
|
4509 |
msgstr ""
|
4510 |
|
4511 |
+
#: includes/functions/wcj-country-functions.php:158
|
4512 |
msgid "Cameroon"
|
4513 |
msgstr ""
|
4514 |
|
4515 |
+
#: includes/functions/wcj-country-functions.php:159
|
4516 |
msgid "Canada"
|
4517 |
msgstr ""
|
4518 |
|
4519 |
+
#: includes/functions/wcj-country-functions.php:160
|
4520 |
msgid "Cape Verde"
|
4521 |
msgstr ""
|
4522 |
|
4523 |
+
#: includes/functions/wcj-country-functions.php:161
|
4524 |
msgid "Cayman Islands"
|
4525 |
msgstr ""
|
4526 |
|
4527 |
+
#: includes/functions/wcj-country-functions.php:162
|
4528 |
msgid "Central African Republic"
|
4529 |
msgstr ""
|
4530 |
|
4531 |
+
#: includes/functions/wcj-country-functions.php:163
|
4532 |
msgid "Chad"
|
4533 |
msgstr ""
|
4534 |
|
4535 |
+
#: includes/functions/wcj-country-functions.php:164
|
4536 |
msgid "Chile"
|
4537 |
msgstr ""
|
4538 |
|
4539 |
+
#: includes/functions/wcj-country-functions.php:165
|
4540 |
msgid "China"
|
4541 |
msgstr ""
|
4542 |
|
4543 |
+
#: includes/functions/wcj-country-functions.php:166
|
4544 |
msgid "Christmas Island"
|
4545 |
msgstr ""
|
4546 |
|
4547 |
+
#: includes/functions/wcj-country-functions.php:167
|
4548 |
msgid "Cocos (Keeling) Islands"
|
4549 |
msgstr ""
|
4550 |
|
4551 |
+
#: includes/functions/wcj-country-functions.php:168
|
4552 |
msgid "Colombia"
|
4553 |
msgstr ""
|
4554 |
|
4555 |
+
#: includes/functions/wcj-country-functions.php:169
|
4556 |
msgid "Comoros"
|
4557 |
msgstr ""
|
4558 |
|
4559 |
+
#: includes/functions/wcj-country-functions.php:170
|
4560 |
msgid "Congo (Brazzaville)"
|
4561 |
msgstr ""
|
4562 |
|
4563 |
+
#: includes/functions/wcj-country-functions.php:171
|
4564 |
msgid "Congo (Kinshasa)"
|
4565 |
msgstr ""
|
4566 |
|
4567 |
+
#: includes/functions/wcj-country-functions.php:172
|
4568 |
msgid "Cook Islands"
|
4569 |
msgstr ""
|
4570 |
|
4571 |
+
#: includes/functions/wcj-country-functions.php:173
|
4572 |
msgid "Costa Rica"
|
4573 |
msgstr ""
|
4574 |
|
4575 |
+
#: includes/functions/wcj-country-functions.php:174
|
4576 |
msgid "Croatia"
|
4577 |
msgstr ""
|
4578 |
|
4579 |
+
#: includes/functions/wcj-country-functions.php:175
|
4580 |
msgid "Cuba"
|
4581 |
msgstr ""
|
4582 |
|
4583 |
+
#: includes/functions/wcj-country-functions.php:176
|
4584 |
msgid "CuraÇao"
|
4585 |
msgstr ""
|
4586 |
|
4587 |
+
#: includes/functions/wcj-country-functions.php:177
|
4588 |
msgid "Cyprus"
|
4589 |
msgstr ""
|
4590 |
|
4591 |
+
#: includes/functions/wcj-country-functions.php:178
|
4592 |
msgid "Czech Republic"
|
4593 |
msgstr ""
|
4594 |
|
4595 |
+
#: includes/functions/wcj-country-functions.php:179
|
4596 |
msgid "Denmark"
|
4597 |
msgstr ""
|
4598 |
|
4599 |
+
#: includes/functions/wcj-country-functions.php:180
|
4600 |
msgid "Djibouti"
|
4601 |
msgstr ""
|
4602 |
|
4603 |
+
#: includes/functions/wcj-country-functions.php:181
|
4604 |
msgid "Dominica"
|
4605 |
msgstr ""
|
4606 |
|
4607 |
+
#: includes/functions/wcj-country-functions.php:182
|
4608 |
msgid "Dominican Republic"
|
4609 |
msgstr ""
|
4610 |
|
4611 |
+
#: includes/functions/wcj-country-functions.php:183
|
4612 |
msgid "Ecuador"
|
4613 |
msgstr ""
|
4614 |
|
4615 |
+
#: includes/functions/wcj-country-functions.php:184
|
4616 |
msgid "Egypt"
|
4617 |
msgstr ""
|
4618 |
|
4619 |
+
#: includes/functions/wcj-country-functions.php:185
|
4620 |
msgid "El Salvador"
|
4621 |
msgstr ""
|
4622 |
|
4623 |
+
#: includes/functions/wcj-country-functions.php:186
|
4624 |
msgid "Equatorial Guinea"
|
4625 |
msgstr ""
|
4626 |
|
4627 |
+
#: includes/functions/wcj-country-functions.php:187
|
4628 |
msgid "Eritrea"
|
4629 |
msgstr ""
|
4630 |
|
4631 |
+
#: includes/functions/wcj-country-functions.php:188
|
4632 |
msgid "Estonia"
|
4633 |
msgstr ""
|
4634 |
|
4635 |
+
#: includes/functions/wcj-country-functions.php:189
|
4636 |
msgid "Ethiopia"
|
4637 |
msgstr ""
|
4638 |
|
4639 |
+
#: includes/functions/wcj-country-functions.php:190
|
4640 |
msgid "Falkland Islands"
|
4641 |
msgstr ""
|
4642 |
|
4643 |
+
#: includes/functions/wcj-country-functions.php:191
|
4644 |
msgid "Faroe Islands"
|
4645 |
msgstr ""
|
4646 |
|
4647 |
+
#: includes/functions/wcj-country-functions.php:192
|
4648 |
msgid "Fiji"
|
4649 |
msgstr ""
|
4650 |
|
4651 |
+
#: includes/functions/wcj-country-functions.php:193
|
4652 |
msgid "Finland"
|
4653 |
msgstr ""
|
4654 |
|
4655 |
+
#: includes/functions/wcj-country-functions.php:194
|
4656 |
msgid "France"
|
4657 |
msgstr ""
|
4658 |
|
4659 |
+
#: includes/functions/wcj-country-functions.php:195
|
4660 |
msgid "French Guiana"
|
4661 |
msgstr ""
|
4662 |
|
4663 |
+
#: includes/functions/wcj-country-functions.php:196
|
4664 |
msgid "French Polynesia"
|
4665 |
msgstr ""
|
4666 |
|
4667 |
+
#: includes/functions/wcj-country-functions.php:197
|
4668 |
msgid "French Southern Territories"
|
4669 |
msgstr ""
|
4670 |
|
4671 |
+
#: includes/functions/wcj-country-functions.php:198
|
4672 |
msgid "Gabon"
|
4673 |
msgstr ""
|
4674 |
|
4675 |
+
#: includes/functions/wcj-country-functions.php:199
|
4676 |
msgid "Gambia"
|
4677 |
msgstr ""
|
4678 |
|
4679 |
+
#: includes/functions/wcj-country-functions.php:200
|
4680 |
msgid "Georgia"
|
4681 |
msgstr ""
|
4682 |
|
4683 |
+
#: includes/functions/wcj-country-functions.php:201
|
4684 |
msgid "Germany"
|
4685 |
msgstr ""
|
4686 |
|
4687 |
+
#: includes/functions/wcj-country-functions.php:202
|
4688 |
msgid "Ghana"
|
4689 |
msgstr ""
|
4690 |
|
4691 |
+
#: includes/functions/wcj-country-functions.php:203
|
4692 |
msgid "Gibraltar"
|
4693 |
msgstr ""
|
4694 |
|
4695 |
+
#: includes/functions/wcj-country-functions.php:204
|
4696 |
msgid "Greece"
|
4697 |
msgstr ""
|
4698 |
|
4699 |
+
#: includes/functions/wcj-country-functions.php:205
|
4700 |
msgid "Greenland"
|
4701 |
msgstr ""
|
4702 |
|
4703 |
+
#: includes/functions/wcj-country-functions.php:206
|
4704 |
msgid "Grenada"
|
4705 |
msgstr ""
|
4706 |
|
4707 |
+
#: includes/functions/wcj-country-functions.php:207
|
4708 |
msgid "Guadeloupe"
|
4709 |
msgstr ""
|
4710 |
|
4711 |
+
#: includes/functions/wcj-country-functions.php:208
|
4712 |
msgid "Guatemala"
|
4713 |
msgstr ""
|
4714 |
|
4715 |
+
#: includes/functions/wcj-country-functions.php:209
|
4716 |
msgid "Guernsey"
|
4717 |
msgstr ""
|
4718 |
|
4719 |
+
#: includes/functions/wcj-country-functions.php:210
|
4720 |
msgid "Guinea"
|
4721 |
msgstr ""
|
4722 |
|
4723 |
+
#: includes/functions/wcj-country-functions.php:211
|
4724 |
msgid "Guinea-Bissau"
|
4725 |
msgstr ""
|
4726 |
|
4727 |
+
#: includes/functions/wcj-country-functions.php:212
|
4728 |
msgid "Guyana"
|
4729 |
msgstr ""
|
4730 |
|
4731 |
+
#: includes/functions/wcj-country-functions.php:213
|
4732 |
msgid "Haiti"
|
4733 |
msgstr ""
|
4734 |
|
4735 |
+
#: includes/functions/wcj-country-functions.php:214
|
4736 |
msgid "Heard Island and McDonald Islands"
|
4737 |
msgstr ""
|
4738 |
|
4739 |
+
#: includes/functions/wcj-country-functions.php:215
|
4740 |
msgid "Honduras"
|
4741 |
msgstr ""
|
4742 |
|
4743 |
+
#: includes/functions/wcj-country-functions.php:216
|
4744 |
msgid "Hong Kong"
|
4745 |
msgstr ""
|
4746 |
|
4747 |
+
#: includes/functions/wcj-country-functions.php:217
|
4748 |
msgid "Hungary"
|
4749 |
msgstr ""
|
4750 |
|
4751 |
+
#: includes/functions/wcj-country-functions.php:218
|
4752 |
msgid "Iceland"
|
4753 |
msgstr ""
|
4754 |
|
4755 |
+
#: includes/functions/wcj-country-functions.php:219
|
4756 |
msgid "India"
|
4757 |
msgstr ""
|
4758 |
|
4759 |
+
#: includes/functions/wcj-country-functions.php:220
|
4760 |
msgid "Indonesia"
|
4761 |
msgstr ""
|
4762 |
|
4763 |
+
#: includes/functions/wcj-country-functions.php:221
|
4764 |
msgid "Iran"
|
4765 |
msgstr ""
|
4766 |
|
4767 |
+
#: includes/functions/wcj-country-functions.php:222
|
4768 |
msgid "Iraq"
|
4769 |
msgstr ""
|
4770 |
|
4771 |
+
#: includes/functions/wcj-country-functions.php:223
|
4772 |
msgid "Republic of Ireland"
|
4773 |
msgstr ""
|
4774 |
|
4775 |
+
#: includes/functions/wcj-country-functions.php:224
|
4776 |
msgid "Isle of Man"
|
4777 |
msgstr ""
|
4778 |
|
4779 |
+
#: includes/functions/wcj-country-functions.php:225
|
4780 |
msgid "Israel"
|
4781 |
msgstr ""
|
4782 |
|
4783 |
+
#: includes/functions/wcj-country-functions.php:226
|
4784 |
msgid "Italy"
|
4785 |
msgstr ""
|
4786 |
|
4787 |
+
#: includes/functions/wcj-country-functions.php:227
|
4788 |
msgid "Ivory Coast"
|
4789 |
msgstr ""
|
4790 |
|
4791 |
+
#: includes/functions/wcj-country-functions.php:228
|
4792 |
msgid "Jamaica"
|
4793 |
msgstr ""
|
4794 |
|
4795 |
+
#: includes/functions/wcj-country-functions.php:229
|
4796 |
msgid "Japan"
|
4797 |
msgstr ""
|
4798 |
|
4799 |
+
#: includes/functions/wcj-country-functions.php:230
|
4800 |
msgid "Jersey"
|
4801 |
msgstr ""
|
4802 |
|
4803 |
+
#: includes/functions/wcj-country-functions.php:231
|
4804 |
msgid "Jordan"
|
4805 |
msgstr ""
|
4806 |
|
4807 |
+
#: includes/functions/wcj-country-functions.php:232
|
4808 |
msgid "Kazakhstan"
|
4809 |
msgstr ""
|
4810 |
|
4811 |
+
#: includes/functions/wcj-country-functions.php:233
|
4812 |
msgid "Kenya"
|
4813 |
msgstr ""
|
4814 |
|
4815 |
+
#: includes/functions/wcj-country-functions.php:234
|
4816 |
msgid "Kiribati"
|
4817 |
msgstr ""
|
4818 |
|
4819 |
+
#: includes/functions/wcj-country-functions.php:235
|
4820 |
msgid "Kuwait"
|
4821 |
msgstr ""
|
4822 |
|
4823 |
+
#: includes/functions/wcj-country-functions.php:236
|
4824 |
msgid "Kyrgyzstan"
|
4825 |
msgstr ""
|
4826 |
|
4827 |
+
#: includes/functions/wcj-country-functions.php:237
|
4828 |
msgid "Laos"
|
4829 |
msgstr ""
|
4830 |
|
4831 |
+
#: includes/functions/wcj-country-functions.php:238
|
4832 |
msgid "Latvia"
|
4833 |
msgstr ""
|
4834 |
|
4835 |
+
#: includes/functions/wcj-country-functions.php:239
|
4836 |
msgid "Lebanon"
|
4837 |
msgstr ""
|
4838 |
|
4839 |
+
#: includes/functions/wcj-country-functions.php:240
|
4840 |
msgid "Lesotho"
|
4841 |
msgstr ""
|
4842 |
|
4843 |
+
#: includes/functions/wcj-country-functions.php:241
|
4844 |
msgid "Liberia"
|
4845 |
msgstr ""
|
4846 |
|
4847 |
+
#: includes/functions/wcj-country-functions.php:242
|
4848 |
msgid "Libya"
|
4849 |
msgstr ""
|
4850 |
|
4851 |
+
#: includes/functions/wcj-country-functions.php:243
|
4852 |
msgid "Liechtenstein"
|
4853 |
msgstr ""
|
4854 |
|
4855 |
+
#: includes/functions/wcj-country-functions.php:244
|
4856 |
msgid "Lithuania"
|
4857 |
msgstr ""
|
4858 |
|
4859 |
+
#: includes/functions/wcj-country-functions.php:245
|
4860 |
msgid "Luxembourg"
|
4861 |
msgstr ""
|
4862 |
|
4863 |
+
#: includes/functions/wcj-country-functions.php:246
|
4864 |
msgid "Macao S.A.R., China"
|
4865 |
msgstr ""
|
4866 |
|
4867 |
+
#: includes/functions/wcj-country-functions.php:247
|
4868 |
msgid "Macedonia"
|
4869 |
msgstr ""
|
4870 |
|
4871 |
+
#: includes/functions/wcj-country-functions.php:248
|
4872 |
msgid "Madagascar"
|
4873 |
msgstr ""
|
4874 |
|
4875 |
+
#: includes/functions/wcj-country-functions.php:249
|
4876 |
msgid "Malawi"
|
4877 |
msgstr ""
|
4878 |
|
4879 |
+
#: includes/functions/wcj-country-functions.php:250
|
4880 |
msgid "Malaysia"
|
4881 |
msgstr ""
|
4882 |
|
4883 |
+
#: includes/functions/wcj-country-functions.php:251
|
4884 |
msgid "Maldives"
|
4885 |
msgstr ""
|
4886 |
|
4887 |
+
#: includes/functions/wcj-country-functions.php:252
|
4888 |
msgid "Mali"
|
4889 |
msgstr ""
|
4890 |
|
4891 |
+
#: includes/functions/wcj-country-functions.php:253
|
4892 |
msgid "Malta"
|
4893 |
msgstr ""
|
4894 |
|
4895 |
+
#: includes/functions/wcj-country-functions.php:254
|
4896 |
msgid "Marshall Islands"
|
4897 |
msgstr ""
|
4898 |
|
4899 |
+
#: includes/functions/wcj-country-functions.php:255
|
4900 |
msgid "Martinique"
|
4901 |
msgstr ""
|
4902 |
|
4903 |
+
#: includes/functions/wcj-country-functions.php:256
|
4904 |
msgid "Mauritania"
|
4905 |
msgstr ""
|
4906 |
|
4907 |
+
#: includes/functions/wcj-country-functions.php:257
|
4908 |
msgid "Mauritius"
|
4909 |
msgstr ""
|
4910 |
|
4911 |
+
#: includes/functions/wcj-country-functions.php:258
|
4912 |
msgid "Mayotte"
|
4913 |
msgstr ""
|
4914 |
|
4915 |
+
#: includes/functions/wcj-country-functions.php:259
|
4916 |
msgid "Mexico"
|
4917 |
msgstr ""
|
4918 |
|
4919 |
+
#: includes/functions/wcj-country-functions.php:260
|
4920 |
msgid "Micronesia"
|
4921 |
msgstr ""
|
4922 |
|
4923 |
+
#: includes/functions/wcj-country-functions.php:261
|
4924 |
msgid "Moldova"
|
4925 |
msgstr ""
|
4926 |
|
4927 |
+
#: includes/functions/wcj-country-functions.php:262
|
4928 |
msgid "Monaco"
|
4929 |
msgstr ""
|
4930 |
|
4931 |
+
#: includes/functions/wcj-country-functions.php:263
|
4932 |
msgid "Mongolia"
|
4933 |
msgstr ""
|
4934 |
|
4935 |
+
#: includes/functions/wcj-country-functions.php:264
|
4936 |
msgid "Montenegro"
|
4937 |
msgstr ""
|
4938 |
|
4939 |
+
#: includes/functions/wcj-country-functions.php:265
|
4940 |
msgid "Montserrat"
|
4941 |
msgstr ""
|
4942 |
|
4943 |
+
#: includes/functions/wcj-country-functions.php:266
|
4944 |
msgid "Morocco"
|
4945 |
msgstr ""
|
4946 |
|
4947 |
+
#: includes/functions/wcj-country-functions.php:267
|
4948 |
msgid "Mozambique"
|
4949 |
msgstr ""
|
4950 |
|
4951 |
+
#: includes/functions/wcj-country-functions.php:268
|
4952 |
msgid "Myanmar"
|
4953 |
msgstr ""
|
4954 |
|
4955 |
+
#: includes/functions/wcj-country-functions.php:269
|
4956 |
msgid "Namibia"
|
4957 |
msgstr ""
|
4958 |
|
4959 |
+
#: includes/functions/wcj-country-functions.php:270
|
4960 |
msgid "Nauru"
|
4961 |
msgstr ""
|
4962 |
|
4963 |
+
#: includes/functions/wcj-country-functions.php:271
|
4964 |
msgid "Nepal"
|
4965 |
msgstr ""
|
4966 |
|
4967 |
+
#: includes/functions/wcj-country-functions.php:272
|
4968 |
msgid "Netherlands"
|
4969 |
msgstr ""
|
4970 |
|
4971 |
+
#: includes/functions/wcj-country-functions.php:273
|
4972 |
msgid "Netherlands Antilles"
|
4973 |
msgstr ""
|
4974 |
|
4975 |
+
#: includes/functions/wcj-country-functions.php:274
|
4976 |
msgid "New Caledonia"
|
4977 |
msgstr ""
|
4978 |
|
4979 |
+
#: includes/functions/wcj-country-functions.php:275
|
4980 |
msgid "New Zealand"
|
4981 |
msgstr ""
|
4982 |
|
4983 |
+
#: includes/functions/wcj-country-functions.php:276
|
4984 |
msgid "Nicaragua"
|
4985 |
msgstr ""
|
4986 |
|
4987 |
+
#: includes/functions/wcj-country-functions.php:277
|
4988 |
msgid "Niger"
|
4989 |
msgstr ""
|
4990 |
|
4991 |
+
#: includes/functions/wcj-country-functions.php:278
|
4992 |
msgid "Nigeria"
|
4993 |
msgstr ""
|
4994 |
|
4995 |
+
#: includes/functions/wcj-country-functions.php:279
|
4996 |
msgid "Niue"
|
4997 |
msgstr ""
|
4998 |
|
4999 |
+
#: includes/functions/wcj-country-functions.php:280
|
5000 |
msgid "Norfolk Island"
|
5001 |
msgstr ""
|
5002 |
|
5003 |
+
#: includes/functions/wcj-country-functions.php:281
|
5004 |
msgid "North Korea"
|
5005 |
msgstr ""
|
5006 |
|
5007 |
+
#: includes/functions/wcj-country-functions.php:282
|
5008 |
msgid "Norway"
|
5009 |
msgstr ""
|
5010 |
|
5011 |
+
#: includes/functions/wcj-country-functions.php:283
|
5012 |
msgid "Oman"
|
5013 |
msgstr ""
|
5014 |
|
5015 |
+
#: includes/functions/wcj-country-functions.php:284
|
5016 |
msgid "Pakistan"
|
5017 |
msgstr ""
|
5018 |
|
5019 |
+
#: includes/functions/wcj-country-functions.php:285
|
5020 |
msgid "Palestinian Territory"
|
5021 |
msgstr ""
|
5022 |
|
5023 |
+
#: includes/functions/wcj-country-functions.php:286
|
5024 |
msgid "Panama"
|
5025 |
msgstr ""
|
5026 |
|
5027 |
+
#: includes/functions/wcj-country-functions.php:287
|
5028 |
msgid "Papua New Guinea"
|
5029 |
msgstr ""
|
5030 |
|
5031 |
+
#: includes/functions/wcj-country-functions.php:288
|
5032 |
msgid "Paraguay"
|
5033 |
msgstr ""
|
5034 |
|
5035 |
+
#: includes/functions/wcj-country-functions.php:289
|
5036 |
msgid "Peru"
|
5037 |
msgstr ""
|
5038 |
|
5039 |
+
#: includes/functions/wcj-country-functions.php:290
|
5040 |
msgid "Philippines"
|
5041 |
msgstr ""
|
5042 |
|
5043 |
+
#: includes/functions/wcj-country-functions.php:291
|
5044 |
msgid "Pitcairn"
|
5045 |
msgstr ""
|
5046 |
|
5047 |
+
#: includes/functions/wcj-country-functions.php:292
|
5048 |
msgid "Poland"
|
5049 |
msgstr ""
|
5050 |
|
5051 |
+
#: includes/functions/wcj-country-functions.php:293
|
5052 |
msgid "Portugal"
|
5053 |
msgstr ""
|
5054 |
|
5055 |
+
#: includes/functions/wcj-country-functions.php:294
|
5056 |
msgid "Qatar"
|
5057 |
msgstr ""
|
5058 |
|
5059 |
+
#: includes/functions/wcj-country-functions.php:295
|
5060 |
msgid "Reunion"
|
5061 |
msgstr ""
|
5062 |
|
5063 |
+
#: includes/functions/wcj-country-functions.php:296
|
5064 |
msgid "Romania"
|
5065 |
msgstr ""
|
5066 |
|
5067 |
+
#: includes/functions/wcj-country-functions.php:297
|
5068 |
msgid "Russia"
|
5069 |
msgstr ""
|
5070 |
|
5071 |
+
#: includes/functions/wcj-country-functions.php:298
|
5072 |
msgid "Rwanda"
|
5073 |
msgstr ""
|
5074 |
|
5075 |
+
#: includes/functions/wcj-country-functions.php:299
|
5076 |
msgid "Saint Barthélemy"
|
5077 |
msgstr ""
|
5078 |
|
5079 |
+
#: includes/functions/wcj-country-functions.php:300
|
5080 |
msgid "Saint Helena"
|
5081 |
msgstr ""
|
5082 |
|
5083 |
+
#: includes/functions/wcj-country-functions.php:301
|
5084 |
msgid "Saint Kitts and Nevis"
|
5085 |
msgstr ""
|
5086 |
|
5087 |
+
#: includes/functions/wcj-country-functions.php:302
|
5088 |
msgid "Saint Lucia"
|
5089 |
msgstr ""
|
5090 |
|
5091 |
+
#: includes/functions/wcj-country-functions.php:303
|
5092 |
msgid "Saint Martin (French part)"
|
5093 |
msgstr ""
|
5094 |
|
5095 |
+
#: includes/functions/wcj-country-functions.php:304
|
5096 |
msgid "Saint Martin (Dutch part)"
|
5097 |
msgstr ""
|
5098 |
|
5099 |
+
#: includes/functions/wcj-country-functions.php:305
|
5100 |
msgid "Saint Pierre and Miquelon"
|
5101 |
msgstr ""
|
5102 |
|
5103 |
+
#: includes/functions/wcj-country-functions.php:306
|
5104 |
msgid "Saint Vincent and the Grenadines"
|
5105 |
msgstr ""
|
5106 |
|
5107 |
+
#: includes/functions/wcj-country-functions.php:307
|
5108 |
msgid "San Marino"
|
5109 |
msgstr ""
|
5110 |
|
5111 |
+
#: includes/functions/wcj-country-functions.php:308
|
5112 |
msgid "São Tomé and Príncipe"
|
5113 |
msgstr ""
|
5114 |
|
5115 |
+
#: includes/functions/wcj-country-functions.php:309
|
5116 |
msgid "Saudi Arabia"
|
5117 |
msgstr ""
|
5118 |
|
5119 |
+
#: includes/functions/wcj-country-functions.php:310
|
5120 |
msgid "Senegal"
|
5121 |
msgstr ""
|
5122 |
|
5123 |
+
#: includes/functions/wcj-country-functions.php:311
|
5124 |
msgid "Serbia"
|
5125 |
msgstr ""
|
5126 |
|
5127 |
+
#: includes/functions/wcj-country-functions.php:312
|
5128 |
msgid "Seychelles"
|
5129 |
msgstr ""
|
5130 |
|
5131 |
+
#: includes/functions/wcj-country-functions.php:313
|
5132 |
msgid "Sierra Leone"
|
5133 |
msgstr ""
|
5134 |
|
5135 |
+
#: includes/functions/wcj-country-functions.php:314
|
5136 |
msgid "Singapore"
|
5137 |
msgstr ""
|
5138 |
|
5139 |
+
#: includes/functions/wcj-country-functions.php:315
|
5140 |
msgid "Slovakia"
|
5141 |
msgstr ""
|
5142 |
|
5143 |
+
#: includes/functions/wcj-country-functions.php:316
|
5144 |
msgid "Slovenia"
|
5145 |
msgstr ""
|
5146 |
|
5147 |
+
#: includes/functions/wcj-country-functions.php:317
|
5148 |
msgid "Solomon Islands"
|
5149 |
msgstr ""
|
5150 |
|
5151 |
+
#: includes/functions/wcj-country-functions.php:318
|
5152 |
msgid "Somalia"
|
5153 |
msgstr ""
|
5154 |
|
5155 |
+
#: includes/functions/wcj-country-functions.php:319
|
5156 |
msgid "South Africa"
|
5157 |
msgstr ""
|
5158 |
|
5159 |
+
#: includes/functions/wcj-country-functions.php:320
|
5160 |
msgid "South Georgia/Sandwich Islands"
|
5161 |
msgstr ""
|
5162 |
|
5163 |
+
#: includes/functions/wcj-country-functions.php:321
|
5164 |
msgid "South Korea"
|
5165 |
msgstr ""
|
5166 |
|
5167 |
+
#: includes/functions/wcj-country-functions.php:322
|
5168 |
msgid "South Sudan"
|
5169 |
msgstr ""
|
5170 |
|
5171 |
+
#: includes/functions/wcj-country-functions.php:323
|
5172 |
msgid "Spain"
|
5173 |
msgstr ""
|
5174 |
|
5175 |
+
#: includes/functions/wcj-country-functions.php:324
|
5176 |
msgid "Sri Lanka"
|
5177 |
msgstr ""
|
5178 |
|
5179 |
+
#: includes/functions/wcj-country-functions.php:325
|
5180 |
msgid "Sudan"
|
5181 |
msgstr ""
|
5182 |
|
5183 |
+
#: includes/functions/wcj-country-functions.php:326
|
5184 |
msgid "Suriname"
|
5185 |
msgstr ""
|
5186 |
|
5187 |
+
#: includes/functions/wcj-country-functions.php:327
|
5188 |
msgid "Svalbard and Jan Mayen"
|
5189 |
msgstr ""
|
5190 |
|
5191 |
+
#: includes/functions/wcj-country-functions.php:328
|
5192 |
msgid "Swaziland"
|
5193 |
msgstr ""
|
5194 |
|
5195 |
+
#: includes/functions/wcj-country-functions.php:329
|
5196 |
msgid "Sweden"
|
5197 |
msgstr ""
|
5198 |
|
5199 |
+
#: includes/functions/wcj-country-functions.php:330
|
5200 |
msgid "Switzerland"
|
5201 |
msgstr ""
|
5202 |
|
5203 |
+
#: includes/functions/wcj-country-functions.php:331
|
5204 |
msgid "Syria"
|
5205 |
msgstr ""
|
5206 |
|
5207 |
+
#: includes/functions/wcj-country-functions.php:332
|
5208 |
msgid "Taiwan"
|
5209 |
msgstr ""
|
5210 |
|
5211 |
+
#: includes/functions/wcj-country-functions.php:333
|
5212 |
msgid "Tajikistan"
|
5213 |
msgstr ""
|
5214 |
|
5215 |
+
#: includes/functions/wcj-country-functions.php:334
|
5216 |
msgid "Tanzania"
|
5217 |
msgstr ""
|
5218 |
|
5219 |
+
#: includes/functions/wcj-country-functions.php:335
|
5220 |
msgid "Thailand"
|
5221 |
msgstr ""
|
5222 |
|
5223 |
+
#: includes/functions/wcj-country-functions.php:336
|
5224 |
msgid "Timor-Leste"
|
5225 |
msgstr ""
|
5226 |
|
5227 |
+
#: includes/functions/wcj-country-functions.php:337
|
5228 |
msgid "Togo"
|
5229 |
msgstr ""
|
5230 |
|
5231 |
+
#: includes/functions/wcj-country-functions.php:338
|
5232 |
msgid "Tokelau"
|
5233 |
msgstr ""
|
5234 |
|
5235 |
+
#: includes/functions/wcj-country-functions.php:339
|
5236 |
msgid "Tonga"
|
5237 |
msgstr ""
|
5238 |
|
5239 |
+
#: includes/functions/wcj-country-functions.php:340
|
5240 |
msgid "Trinidad and Tobago"
|
5241 |
msgstr ""
|
5242 |
|
5243 |
+
#: includes/functions/wcj-country-functions.php:341
|
5244 |
msgid "Tunisia"
|
5245 |
msgstr ""
|
5246 |
|
5247 |
+
#: includes/functions/wcj-country-functions.php:342
|
5248 |
msgid "Turkey"
|
5249 |
msgstr ""
|
5250 |
|
5251 |
+
#: includes/functions/wcj-country-functions.php:343
|
5252 |
msgid "Turkmenistan"
|
5253 |
msgstr ""
|
5254 |
|
5255 |
+
#: includes/functions/wcj-country-functions.php:344
|
5256 |
msgid "Turks and Caicos Islands"
|
5257 |
msgstr ""
|
5258 |
|
5259 |
+
#: includes/functions/wcj-country-functions.php:345
|
5260 |
msgid "Tuvalu"
|
5261 |
msgstr ""
|
5262 |
|
5263 |
+
#: includes/functions/wcj-country-functions.php:346
|
5264 |
msgid "Uganda"
|
5265 |
msgstr ""
|
5266 |
|
5267 |
+
#: includes/functions/wcj-country-functions.php:347
|
5268 |
msgid "Ukraine"
|
5269 |
msgstr ""
|
5270 |
|
5271 |
+
#: includes/functions/wcj-country-functions.php:348
|
5272 |
msgid "United Arab Emirates"
|
5273 |
msgstr ""
|
5274 |
|
5275 |
+
#: includes/functions/wcj-country-functions.php:349
|
5276 |
msgid "United Kingdom (UK)"
|
5277 |
msgstr ""
|
5278 |
|
5279 |
+
#: includes/functions/wcj-country-functions.php:350
|
5280 |
msgid "United States (US)"
|
5281 |
msgstr ""
|
5282 |
|
5283 |
+
#: includes/functions/wcj-country-functions.php:351
|
5284 |
msgid "Uruguay"
|
5285 |
msgstr ""
|
5286 |
|
5287 |
+
#: includes/functions/wcj-country-functions.php:352
|
5288 |
msgid "Uzbekistan"
|
5289 |
msgstr ""
|
5290 |
|
5291 |
+
#: includes/functions/wcj-country-functions.php:353
|
5292 |
msgid "Vanuatu"
|
5293 |
msgstr ""
|
5294 |
|
5295 |
+
#: includes/functions/wcj-country-functions.php:354
|
5296 |
msgid "Vatican"
|
5297 |
msgstr ""
|
5298 |
|
5299 |
+
#: includes/functions/wcj-country-functions.php:355
|
5300 |
msgid "Venezuela"
|
5301 |
msgstr ""
|
5302 |
|
5303 |
+
#: includes/functions/wcj-country-functions.php:356
|
5304 |
msgid "Vietnam"
|
5305 |
msgstr ""
|
5306 |
|
5307 |
+
#: includes/functions/wcj-country-functions.php:357
|
5308 |
msgid "Wallis and Futuna"
|
5309 |
msgstr ""
|
5310 |
|
5311 |
+
#: includes/functions/wcj-country-functions.php:358
|
5312 |
msgid "Western Sahara"
|
5313 |
msgstr ""
|
5314 |
|
5315 |
+
#: includes/functions/wcj-country-functions.php:359
|
5316 |
msgid "Western Samoa"
|
5317 |
msgstr ""
|
5318 |
|
5319 |
+
#: includes/functions/wcj-country-functions.php:360
|
5320 |
msgid "Yemen"
|
5321 |
msgstr ""
|
5322 |
|
5323 |
+
#: includes/functions/wcj-country-functions.php:361
|
5324 |
msgid "Zambia"
|
5325 |
msgstr ""
|
5326 |
|
5327 |
+
#: includes/functions/wcj-country-functions.php:362
|
5328 |
msgid "Zimbabwe"
|
5329 |
msgstr ""
|
5330 |
|
5331 |
+
#: includes/functions/wcj-country-functions.php:363
|
5332 |
msgid "European Union"
|
5333 |
msgstr ""
|
5334 |
|
6374 |
#: includes/settings/meta-box/wcj-settings-meta-box-price-by-user-role.php:37
|
6375 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-addons.php:21
|
6376 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-bookings.php:14
|
6377 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-by-date.php:20
|
6378 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-by-time.php:20
|
6379 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-open-pricing.php:14
|
6380 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-price-by-formula.php:21
|
6381 |
msgid "Enabled"
|
6434 |
msgid "Password"
|
6435 |
msgstr ""
|
6436 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6437 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:62
|
6438 |
#: includes/settings/wcj-settings-checkout-custom-fields.php:95
|
6439 |
msgid "Phone"
|
6856 |
msgid "Booster: PDF Invoices"
|
6857 |
msgstr ""
|
6858 |
|
|
|
|
|
|
|
|
|
|
|
6859 |
#: includes/pdf-invoices/submodules/class-wcj-pdf-invoicing-footer.php:21
|
6860 |
msgid "Footer"
|
6861 |
msgstr ""
|
6955 |
msgstr ""
|
6956 |
|
6957 |
#: includes/reports/wcj-class-reports-monthly-sales.php:37
|
6958 |
+
msgid "Currency rates saved."
|
6959 |
+
msgstr ""
|
6960 |
+
|
6961 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:41
|
6962 |
msgid "Currency rates deleted."
|
6963 |
msgstr ""
|
6964 |
|
6965 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:85
|
6966 |
msgid "Days"
|
6967 |
msgstr ""
|
6968 |
|
6969 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:86
|
6970 |
msgid "Total Orders"
|
6971 |
msgstr ""
|
6972 |
|
6973 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:87
|
6974 |
msgid "Orders Average / Day"
|
6975 |
msgstr ""
|
6976 |
|
6977 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:88
|
6978 |
#: includes/reports/wcj-class-reports-sales.php:325
|
6979 |
msgid "Total Sum"
|
6980 |
msgstr ""
|
6981 |
|
6982 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:89
|
6983 |
msgid "Total Sum (excl. TAX)"
|
6984 |
msgstr ""
|
6985 |
|
6986 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:90
|
6987 |
msgid "Average / Order (excl. TAX)"
|
6988 |
msgstr ""
|
6989 |
|
6990 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:91
|
6991 |
msgid "Average / Day (excl. TAX)"
|
6992 |
msgstr ""
|
6993 |
|
6994 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:92
|
6995 |
msgid "Currency Rates"
|
6996 |
msgstr ""
|
6997 |
|
6998 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:93
|
6999 |
+
msgid "Orders by Currency"
|
|
|
7000 |
msgstr ""
|
7001 |
|
7002 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:270
|
7003 |
msgid "Totals"
|
7004 |
msgstr ""
|
7005 |
|
7006 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:312
|
7007 |
msgid "Report currency"
|
7008 |
msgstr ""
|
7009 |
|
7010 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:327
|
7011 |
#, php-format
|
7012 |
msgid "Report generated in: %s s"
|
7013 |
msgstr ""
|
7014 |
|
7015 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:330
|
7016 |
+
msgid "Save Currency Rates"
|
7017 |
+
msgstr ""
|
7018 |
+
|
7019 |
+
#: includes/reports/wcj-class-reports-monthly-sales.php:334
|
7020 |
msgid "Reset Currency Rates"
|
7021 |
msgstr ""
|
7022 |
|
7082 |
msgid "Filter products"
|
7083 |
msgstr ""
|
7084 |
|
7085 |
+
#: includes/reports/wcj-class-reports-stock.php:32
|
7086 |
msgid "All Products on Stock"
|
7087 |
msgstr ""
|
7088 |
|
7089 |
+
#: includes/reports/wcj-class-reports-stock.php:33
|
7090 |
msgid "Report shows all products that are on stock and some sales info."
|
7091 |
msgstr ""
|
7092 |
|
7093 |
+
#: includes/reports/wcj-class-reports-stock.php:37
|
7094 |
msgid "Understocked"
|
7095 |
msgstr ""
|
7096 |
|
7097 |
+
#: includes/reports/wcj-class-reports-stock.php:38
|
7098 |
msgid ""
|
7099 |
"Report shows all products that are low in stock calculated on product's "
|
7100 |
"sales data."
|
7101 |
msgstr ""
|
7102 |
|
7103 |
+
#: includes/reports/wcj-class-reports-stock.php:39
|
7104 |
msgid ""
|
7105 |
"Threshold for minimum stock is equal to half of the sales in selected days "
|
7106 |
"range."
|
7107 |
msgstr ""
|
7108 |
|
7109 |
+
#: includes/reports/wcj-class-reports-stock.php:43
|
7110 |
msgid "Overstocked"
|
7111 |
msgstr ""
|
7112 |
|
7113 |
+
#: includes/reports/wcj-class-reports-stock.php:44
|
7114 |
msgid ""
|
7115 |
"Report shows all products that are on stock, but have no sales in selected "
|
7116 |
"period. Only products added before the start date of selected period are "
|
7117 |
"accounted."
|
7118 |
msgstr ""
|
7119 |
|
7120 |
+
#: includes/reports/wcj-class-reports-stock.php:173
|
7121 |
msgid "deleted"
|
7122 |
msgstr ""
|
7123 |
|
7124 |
+
#: includes/reports/wcj-class-reports-stock.php:257
|
7125 |
msgid "Stock price"
|
7126 |
msgstr ""
|
7127 |
|
7128 |
+
#: includes/reports/wcj-class-reports-stock.php:258
|
7129 |
msgid "Total stock price"
|
7130 |
msgstr ""
|
7131 |
|
7132 |
+
#: includes/reports/wcj-class-reports-stock.php:259
|
7133 |
msgid "Last sale"
|
7134 |
msgstr ""
|
7135 |
|
7136 |
+
#: includes/reports/wcj-class-reports-stock.php:260
|
7137 |
#, php-format
|
7138 |
msgid "Sales in last %s days"
|
7139 |
msgstr ""
|
7140 |
|
7141 |
+
#: includes/reports/wcj-class-reports-stock.php:261
|
7142 |
msgid "Total sales"
|
7143 |
msgstr ""
|
7144 |
|
7145 |
+
#: includes/reports/wcj-class-reports-stock.php:263
|
7146 |
msgid "Stock to minimum"
|
7147 |
msgstr ""
|
7148 |
|
7149 |
+
#: includes/reports/wcj-class-reports-stock.php:292
|
7150 |
msgid "purchase price:"
|
7151 |
msgstr ""
|
7152 |
|
7153 |
+
#: includes/reports/wcj-class-reports-stock.php:296
|
7154 |
msgid "stock purchase price:"
|
7155 |
msgstr ""
|
7156 |
|
7157 |
+
#: includes/reports/wcj-class-reports-stock.php:301
|
7158 |
msgid "No sales yet"
|
7159 |
msgstr ""
|
7160 |
|
7161 |
+
#: includes/reports/wcj-class-reports-stock.php:305
|
7162 |
msgid "profit:"
|
7163 |
msgstr ""
|
7164 |
|
7165 |
+
#: includes/reports/wcj-class-reports-stock.php:325
|
7166 |
msgid "Total current stock value"
|
7167 |
msgstr ""
|
7168 |
|
7169 |
+
#: includes/reports/wcj-class-reports-stock.php:326
|
7170 |
msgid "Total stock value"
|
7171 |
msgstr ""
|
7172 |
|
7173 |
+
#: includes/reports/wcj-class-reports-stock.php:327
|
7174 |
msgid "Product stock value average"
|
7175 |
msgstr ""
|
7176 |
|
7177 |
+
#: includes/reports/wcj-class-reports-stock.php:328
|
7178 |
msgid "Product stock average"
|
7179 |
msgstr ""
|
7180 |
|
7181 |
+
#: includes/reports/wcj-class-reports-stock.php:330
|
7182 |
+
msgid "Total current stock purchase price"
|
7183 |
+
msgstr ""
|
7184 |
+
|
7185 |
+
#: includes/reports/wcj-class-reports-stock.php:334
|
7186 |
msgid "Report was generated in: "
|
7187 |
msgstr ""
|
7188 |
|
7205 |
#: includes/settings/wcj-settings-general.php:156
|
7206 |
#: includes/settings/wcj-settings-order-quantities.php:21
|
7207 |
#: includes/settings/wcj-settings-order-quantities.php:70
|
|
|
7208 |
#: includes/settings/wcj-settings-product-images.php:19
|
7209 |
#: includes/settings/wcj-settings-product-images.php:95
|
7210 |
#: includes/settings/wcj-settings-shipping-calculator.php:69
|
7211 |
+
#: includes/settings/wcj-settings-shipping-options.php:93
|
7212 |
+
#: includes/settings/wcj-settings-shipping-options.php:139
|
7213 |
#: includes/settings/wcj-settings-sorting.php:20
|
7214 |
#: includes/settings/wcj-settings-sorting.php:99
|
7215 |
#: includes/settings/wcj-settings-sorting.php:123
|
7247 |
|
7248 |
#: includes/settings/wcj-settings-add-to-cart.php:92
|
7249 |
#: includes/settings/wcj-settings-product-addons.php:15
|
7250 |
+
#: includes/settings/wcj-settings-product-by-date.php:47
|
7251 |
+
#: includes/settings/wcj-settings-product-by-time.php:47
|
7252 |
msgid "Per Product Options"
|
7253 |
msgstr ""
|
7254 |
|
7399 |
#: includes/settings/wcj-settings-product-addons.php:129
|
7400 |
#: includes/settings/wcj-settings-product-bookings.php:72
|
7401 |
#: includes/settings/wcj-settings-product-by-country.php:14
|
|
|
7402 |
#: includes/settings/wcj-settings-product-by-user-role.php:14
|
7403 |
#: includes/settings/wcj-settings-product-by-user.php:59
|
7404 |
#: includes/settings/wcj-settings-product-open-pricing.php:16
|
7405 |
#: includes/settings/wcj-settings-products-per-page.php:14
|
7406 |
#: includes/settings/wcj-settings-products-xml.php:17
|
7407 |
+
#: includes/settings/wcj-settings-url-coupons.php:14
|
7408 |
#: includes/settings/wcj-settings-wholesale-price.php:15
|
7409 |
msgid "Options"
|
7410 |
msgstr ""
|
7421 |
msgid "Admin Tools Options"
|
7422 |
msgstr ""
|
7423 |
|
7424 |
+
#: includes/settings/wcj-settings-admin-tools.php:26
|
7425 |
+
msgid "WooCommerce Log"
|
7426 |
msgstr ""
|
7427 |
|
7428 |
+
#: includes/settings/wcj-settings-admin-tools.php:33
|
7429 |
msgid "Debug"
|
7430 |
msgstr ""
|
7431 |
|
7432 |
+
#: includes/settings/wcj-settings-admin-tools.php:40
|
7433 |
msgid "PHP Memory Limit"
|
7434 |
msgstr ""
|
7435 |
|
7436 |
+
#: includes/settings/wcj-settings-admin-tools.php:41
|
7437 |
msgid "megabytes."
|
7438 |
msgstr ""
|
7439 |
|
7440 |
+
#: includes/settings/wcj-settings-admin-tools.php:42
|
7441 |
+
#: includes/settings/wcj-settings-admin-tools.php:51
|
7442 |
#: includes/settings/wcj-settings-offer-price.php:139
|
7443 |
#: includes/settings/wcj-settings-offer-price.php:147
|
7444 |
#: includes/settings/meta-box/wcj-settings-meta-box-offer-price.php:43
|
7446 |
msgid "Set zero to disable."
|
7447 |
msgstr ""
|
7448 |
|
7449 |
+
#: includes/settings/wcj-settings-admin-tools.php:49
|
7450 |
msgid "PHP Time Limit"
|
7451 |
msgstr ""
|
7452 |
|
7453 |
+
#: includes/settings/wcj-settings-admin-tools.php:50
|
7454 |
msgid "seconds."
|
7455 |
msgstr ""
|
7456 |
|
7457 |
+
#: includes/settings/wcj-settings-admin-tools.php:66
|
7458 |
msgid "System Info"
|
7459 |
msgstr ""
|
7460 |
|
7461 |
+
#: includes/settings/wcj-settings-admin-tools.php:73
|
7462 |
msgid "Show Order Meta"
|
7463 |
msgstr ""
|
7464 |
|
7465 |
+
#: includes/settings/wcj-settings-admin-tools.php:80
|
7466 |
msgid "Show Product Meta"
|
7467 |
msgstr ""
|
7468 |
|
7588 |
#: includes/settings/wcj-settings-cart.php:24
|
7589 |
#: includes/settings/wcj-settings-checkout-custom-info.php:19
|
7590 |
#: includes/settings/wcj-settings-mini-cart.php:19
|
7591 |
+
#: includes/settings/wcj-settings-product-custom-info.php:28
|
7592 |
msgid "Total Blocks"
|
7593 |
msgstr ""
|
7594 |
|
7595 |
#: includes/settings/wcj-settings-cart.php:39
|
7596 |
#: includes/settings/wcj-settings-checkout-custom-info.php:35
|
7597 |
#: includes/settings/wcj-settings-mini-cart.php:34
|
7598 |
+
#: includes/settings/wcj-settings-product-custom-info.php:49
|
7599 |
msgid "Info Block"
|
7600 |
msgstr ""
|
7601 |
|
7602 |
#: includes/settings/wcj-settings-cart.php:59
|
7603 |
#: includes/settings/wcj-settings-checkout-custom-info.php:85
|
7604 |
#: includes/settings/wcj-settings-mini-cart.php:58
|
7605 |
+
#: includes/settings/wcj-settings-product-custom-info.php:88
|
7606 |
msgid "Position Order (i.e. Priority)"
|
7607 |
msgstr ""
|
7608 |
|
8514 |
msgid "Custom JS - Back end (Admin)"
|
8515 |
msgstr ""
|
8516 |
|
8517 |
+
#: includes/settings/wcj-settings-email-options.php:14
|
8518 |
+
msgid "Product Info in Item Name"
|
8519 |
+
msgstr ""
|
8520 |
+
|
8521 |
+
#: includes/settings/wcj-settings-email-options.php:19
|
8522 |
+
msgid "Add Product Info to Item Name"
|
8523 |
+
msgstr ""
|
8524 |
+
|
8525 |
+
#: includes/settings/wcj-settings-email-options.php:26
|
8526 |
+
msgid "Info"
|
8527 |
+
msgstr ""
|
8528 |
+
|
8529 |
+
#: includes/settings/wcj-settings-email-options.php:27
|
8530 |
+
#, php-format
|
8531 |
+
msgid ""
|
8532 |
+
"You can use <a target=\"_blank\" href=\"%s\">Booster's products shortcodes</"
|
8533 |
+
"a> here."
|
8534 |
+
msgstr ""
|
8535 |
+
|
8536 |
#: includes/settings/wcj-settings-emails-verification.php:19
|
8537 |
msgid "Skip Email Verification for User Roles"
|
8538 |
msgstr ""
|
8579 |
msgid "Verification Message - Resend"
|
8580 |
msgstr ""
|
8581 |
|
|
|
|
|
|
|
|
|
8582 |
#: includes/settings/wcj-settings-emails.php:18
|
8583 |
#, php-format
|
8584 |
msgid ""
|
8595 |
msgid "Admin Title Custom Email"
|
8596 |
msgstr ""
|
8597 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8598 |
#: includes/settings/wcj-settings-empty-cart.php:15
|
8599 |
msgid ""
|
8600 |
"You can also use <strong>[wcj_empty_cart_button]</strong> shortcode to place "
|
8998 |
msgstr ""
|
8999 |
|
9000 |
#: includes/settings/wcj-settings-general.php:140
|
9001 |
+
#: includes/settings/wcj-settings-product-by-date.php:54
|
9002 |
+
#: includes/settings/wcj-settings-product-by-time.php:54
|
9003 |
msgid "This will add new meta box to each product's edit page."
|
9004 |
msgstr ""
|
9005 |
|
9025 |
msgstr ""
|
9026 |
|
9027 |
#: includes/settings/wcj-settings-general.php:182
|
9028 |
+
msgid "Booster User Roles Changer Options"
|
9029 |
msgstr ""
|
9030 |
|
9031 |
#: includes/settings/wcj-settings-general.php:183
|
9032 |
+
msgid "This will add user roles changer tool to admin bar."
|
|
|
|
|
|
|
9033 |
msgstr ""
|
9034 |
|
9035 |
#: includes/settings/wcj-settings-general.php:189
|
9036 |
+
msgid "Booster User Roles Changer"
|
9037 |
msgstr ""
|
9038 |
|
9039 |
+
#: includes/settings/wcj-settings-general.php:198
|
9040 |
+
msgid "Enabled for"
|
|
|
|
|
9041 |
msgstr ""
|
9042 |
|
9043 |
+
#: includes/settings/wcj-settings-general.php:210
|
9044 |
+
msgid "Track Users Options"
|
9045 |
msgstr ""
|
9046 |
|
9047 |
+
#: includes/settings/wcj-settings-general.php:215
|
9048 |
+
msgid "Track Users"
|
|
|
|
|
9049 |
msgstr ""
|
9050 |
|
9051 |
+
#: includes/settings/wcj-settings-general.php:216
|
9052 |
+
#: includes/settings/wcj-settings-product-listings.php:180
|
9053 |
+
#: includes/settings/wcj-settings-product-listings.php:238
|
9054 |
+
#: includes/settings/wcj-settings-shipping-options.php:21
|
9055 |
+
#: includes/settings/wcj-settings-stock.php:23
|
9056 |
+
msgid "Enable section"
|
9057 |
msgstr ""
|
9058 |
|
9059 |
+
#: includes/settings/wcj-settings-general.php:222
|
9060 |
+
msgid "Countries by Visits"
|
9061 |
msgstr ""
|
9062 |
|
9063 |
+
#: includes/settings/wcj-settings-general.php:223
|
9064 |
+
msgid "Enable admin dashboard widget"
|
9065 |
msgstr ""
|
9066 |
|
9067 |
+
#: includes/settings/wcj-settings-general.php:229
|
9068 |
+
msgid "Select which info show in admin dashboard widget."
|
9069 |
+
msgstr ""
|
9070 |
+
|
9071 |
+
#: includes/settings/wcj-settings-general.php:237
|
9072 |
+
msgid "Select which how many top countries to show."
|
9073 |
+
msgstr ""
|
9074 |
+
|
9075 |
+
#: includes/settings/wcj-settings-general.php:244
|
9076 |
+
msgid "Track Orders"
|
9077 |
+
msgstr ""
|
9078 |
+
|
9079 |
+
#: includes/settings/wcj-settings-general.php:245
|
9080 |
+
msgid "Save customer's acquisition source (i.e. HTTP referer) for orders."
|
9081 |
+
msgstr ""
|
9082 |
+
|
9083 |
+
#: includes/settings/wcj-settings-general.php:246
|
9084 |
+
msgid ""
|
9085 |
+
"This will add \"Booster: Acquisition Source\" meta box to each order's edit "
|
9086 |
+
"page."
|
9087 |
msgstr ""
|
9088 |
|
9089 |
#: includes/settings/wcj-settings-global-discount.php:20
|
9373 |
msgstr ""
|
9374 |
|
9375 |
#: includes/settings/wcj-settings-offer-price.php:70
|
9376 |
+
#: includes/settings/wcj-settings-product-custom-info.php:68
|
9377 |
msgid "Before single product"
|
9378 |
msgstr ""
|
9379 |
|
9380 |
#: includes/settings/wcj-settings-offer-price.php:74
|
9381 |
+
#: includes/settings/wcj-settings-product-custom-info.php:72
|
9382 |
msgid "After single product"
|
9383 |
msgstr ""
|
9384 |
|
11020 |
msgstr ""
|
11021 |
|
11022 |
#: includes/settings/wcj-settings-product-add-to-cart.php:24
|
11023 |
+
#: includes/settings/wcj-settings-product-by-date.php:20
|
11024 |
msgid "All Products"
|
11025 |
msgstr ""
|
11026 |
|
11036 |
msgstr ""
|
11037 |
|
11038 |
#: includes/settings/wcj-settings-product-add-to-cart.php:39
|
11039 |
+
#: includes/settings/wcj-settings-product-by-date.php:52
|
11040 |
+
#: includes/settings/wcj-settings-product-by-time.php:52
|
11041 |
msgid "Per Product"
|
11042 |
msgstr ""
|
11043 |
|
11360 |
msgid "Admin Products List Column"
|
11361 |
msgstr ""
|
11362 |
|
11363 |
+
#: includes/settings/wcj-settings-product-by-date.php:14
|
11364 |
+
#: includes/settings/wcj-settings-product-by-time.php:14
|
11365 |
+
msgid "All Products Options"
|
11366 |
+
msgstr ""
|
11367 |
+
|
11368 |
+
#: includes/settings/wcj-settings-product-by-date.php:15
|
11369 |
+
#, php-format
|
11370 |
+
msgid "Today is <code>%s</code>."
|
11371 |
+
msgstr ""
|
11372 |
+
|
11373 |
+
#: includes/settings/wcj-settings-product-by-date.php:22
|
11374 |
+
msgid "Date formats:"
|
11375 |
+
msgstr ""
|
11376 |
+
|
11377 |
+
#: includes/settings/wcj-settings-product-by-date.php:64
|
11378 |
+
#: includes/settings/wcj-settings-product-by-time.php:64
|
11379 |
+
msgid "Frontend Messages Options"
|
11380 |
+
msgstr ""
|
11381 |
+
|
11382 |
+
#: includes/settings/wcj-settings-product-by-date.php:70
|
11383 |
+
msgid "Message when product is not available by date."
|
11384 |
+
msgstr ""
|
11385 |
+
|
11386 |
+
#: includes/settings/wcj-settings-product-by-date.php:72
|
11387 |
+
#: includes/settings/wcj-settings-product-by-date.php:84
|
11388 |
+
#: includes/settings/wcj-settings-product-by-time.php:72
|
11389 |
+
#: includes/settings/wcj-settings-product-by-time.php:84
|
11390 |
+
msgid "You can also use shortcodes here."
|
11391 |
+
msgstr ""
|
11392 |
+
|
11393 |
+
#: includes/settings/wcj-settings-product-by-date.php:81
|
11394 |
+
msgid "Message (Month Off)"
|
11395 |
+
msgstr ""
|
11396 |
+
|
11397 |
+
#: includes/settings/wcj-settings-product-by-date.php:82
|
11398 |
+
msgid "Message when product is not available by date (month off)."
|
11399 |
+
msgstr ""
|
11400 |
+
|
11401 |
#: includes/settings/wcj-settings-product-by-time.php:15
|
11402 |
#, php-format
|
11403 |
msgid "Local time is <code>%s</code>."
|
11411 |
msgid "Time formats:"
|
11412 |
msgstr ""
|
11413 |
|
11414 |
+
#: includes/settings/wcj-settings-product-by-time.php:70
|
11415 |
msgid "Message when product is not available by time."
|
11416 |
msgstr ""
|
11417 |
|
11418 |
+
#: includes/settings/wcj-settings-product-by-time.php:71
|
11419 |
msgid "Replaceable values:"
|
11420 |
msgstr ""
|
11421 |
|
11422 |
+
#: includes/settings/wcj-settings-product-by-time.php:81
|
|
|
|
|
|
|
|
|
|
|
11423 |
msgid "Message (Day Off)"
|
11424 |
msgstr ""
|
11425 |
|
11426 |
+
#: includes/settings/wcj-settings-product-by-time.php:82
|
11427 |
msgid "Message when product is not available by time (day off)."
|
11428 |
msgstr ""
|
11429 |
|
11430 |
+
#: includes/settings/wcj-settings-product-by-time.php:83
|
11431 |
msgid "Replaceable value:"
|
11432 |
msgstr ""
|
11433 |
|
11503 |
msgid "Custom Taxonomy"
|
11504 |
msgstr ""
|
11505 |
|
11506 |
+
#: includes/settings/wcj-settings-product-custom-info.php:20
|
11507 |
msgid "Single"
|
11508 |
msgstr ""
|
11509 |
|
11510 |
+
#: includes/settings/wcj-settings-product-custom-info.php:20
|
11511 |
msgid "Archive"
|
11512 |
msgstr ""
|
11513 |
|
11514 |
+
#: includes/settings/wcj-settings-product-custom-info.php:23
|
11515 |
msgid "Product Custom Info Blocks"
|
11516 |
msgstr ""
|
11517 |
|
11518 |
+
#: includes/settings/wcj-settings-product-custom-info.php:58
|
11519 |
#: includes/settings/wcj-settings-product-images.php:55
|
11520 |
#: includes/settings/wcj-settings-product-images.php:64
|
11521 |
#: includes/settings/wcj-settings-product-images.php:73
|
11525 |
msgid "You can use shortcodes here."
|
11526 |
msgstr ""
|
11527 |
|
11528 |
+
#: includes/settings/wcj-settings-product-custom-info.php:73
|
11529 |
msgid "Before add to cart form"
|
11530 |
msgstr ""
|
11531 |
|
11532 |
+
#: includes/settings/wcj-settings-product-custom-info.php:74
|
11533 |
msgid "Before add to cart button"
|
11534 |
msgstr ""
|
11535 |
|
11536 |
+
#: includes/settings/wcj-settings-product-custom-info.php:75
|
11537 |
msgid "After add to cart button"
|
11538 |
msgstr ""
|
11539 |
|
11540 |
+
#: includes/settings/wcj-settings-product-custom-info.php:76
|
11541 |
msgid "After add to cart form"
|
11542 |
msgstr ""
|
11543 |
|
11544 |
+
#: includes/settings/wcj-settings-product-custom-info.php:81
|
11545 |
msgid "Inside product title"
|
11546 |
msgstr ""
|
11547 |
|
11548 |
+
#: includes/settings/wcj-settings-product-custom-info.php:95
|
11549 |
msgid "Product Categories to Include"
|
11550 |
msgstr ""
|
11551 |
|
11552 |
+
#: includes/settings/wcj-settings-product-custom-info.php:96
|
11553 |
+
#: includes/settings/wcj-settings-product-custom-info.php:106
|
11554 |
+
#: includes/settings/wcj-settings-product-custom-info.php:116
|
11555 |
+
#: includes/settings/wcj-settings-product-custom-info.php:126
|
11556 |
+
#: includes/settings/wcj-settings-product-custom-info.php:137
|
11557 |
+
#: includes/settings/wcj-settings-product-custom-info.php:148
|
11558 |
msgid "Leave blank to disable the option."
|
11559 |
msgstr ""
|
11560 |
|
11561 |
+
#: includes/settings/wcj-settings-product-custom-info.php:105
|
11562 |
msgid "Product Categories to Exclude"
|
11563 |
msgstr ""
|
11564 |
|
11565 |
+
#: includes/settings/wcj-settings-product-custom-info.php:115
|
11566 |
msgid "Product Tags to Include"
|
11567 |
msgstr ""
|
11568 |
|
11569 |
+
#: includes/settings/wcj-settings-product-custom-info.php:125
|
11570 |
msgid "Product Tags to Exclude"
|
11571 |
msgstr ""
|
11572 |
|
11573 |
+
#: includes/settings/wcj-settings-product-custom-info.php:136
|
11574 |
#: includes/settings/wcj-settings-products-xml.php:138
|
11575 |
msgid "Products to Include"
|
11576 |
msgstr ""
|
11577 |
|
11578 |
+
#: includes/settings/wcj-settings-product-custom-info.php:147
|
11579 |
#: includes/settings/wcj-settings-products-xml.php:147
|
11580 |
msgid "Products to Exclude"
|
11581 |
msgstr ""
|
11944 |
msgid "Admin Products List - Custom Columns"
|
11945 |
msgstr ""
|
11946 |
|
|
|
|
|
|
|
|
|
|
|
|
|
11947 |
#: includes/settings/wcj-settings-product-listings.php:232
|
11948 |
msgid "Admin Products List - Columns Order"
|
11949 |
msgstr ""
|
12316 |
msgid "Path on server:"
|
12317 |
msgstr ""
|
12318 |
|
|
|
|
|
|
|
|
|
12319 |
#: includes/settings/wcj-settings-products-xml.php:122
|
12320 |
msgid "Update Period"
|
12321 |
msgstr ""
|
12640 |
msgstr ""
|
12641 |
|
12642 |
#: includes/settings/wcj-settings-reports.php:93
|
12643 |
+
msgid "Monthly Sales (with Currency Conversion)"
|
12644 |
+
msgstr ""
|
12645 |
+
|
12646 |
+
#: includes/settings/wcj-settings-reports.php:100
|
12647 |
+
msgid "Include current day for current month"
|
12648 |
+
msgstr ""
|
12649 |
+
|
12650 |
+
#: includes/settings/wcj-settings-reports.php:107
|
12651 |
+
msgid "Forecast total orders and sum (excl. TAX) for current month"
|
12652 |
msgstr ""
|
12653 |
|
12654 |
+
#: includes/settings/wcj-settings-reports.php:113
|
12655 |
msgid "Customers by Country"
|
12656 |
msgstr ""
|
12657 |
|
12658 |
+
#: includes/settings/wcj-settings-reports.php:119
|
12659 |
msgid "Customers by Country Sets"
|
12660 |
msgstr ""
|
12661 |
|
12662 |
+
#: includes/settings/wcj-settings-reports.php:125
|
12663 |
msgid "All in Stock with sales data"
|
12664 |
msgstr ""
|
12665 |
|
12666 |
+
#: includes/settings/wcj-settings-reports.php:131
|
12667 |
msgid "Understocked products (calculated by sales data)"
|
12668 |
msgstr ""
|
12669 |
|
12670 |
+
#: includes/settings/wcj-settings-reports.php:137
|
12671 |
msgid "Overstocked products (calculated by sales data)"
|
12672 |
msgstr ""
|
12673 |
|
12674 |
+
#: includes/settings/wcj-settings-reports.php:145
|
12675 |
msgid "Available Reports"
|
12676 |
msgstr ""
|
12677 |
|
12678 |
+
#: includes/settings/wcj-settings-reports.php:162
|
12679 |
msgid "View report"
|
12680 |
msgstr ""
|
12681 |
|
12742 |
msgstr ""
|
12743 |
|
12744 |
#: includes/settings/wcj-settings-shipping-options.php:14
|
12745 |
+
msgid "Hide if Free Shipping is Available"
|
12746 |
msgstr ""
|
12747 |
|
12748 |
#: includes/settings/wcj-settings-shipping-options.php:16
|
12751 |
"available on shop frontend."
|
12752 |
msgstr ""
|
12753 |
|
12754 |
+
#: includes/settings/wcj-settings-shipping-options.php:20
|
12755 |
+
msgid "Hide when free is available"
|
12756 |
msgstr ""
|
12757 |
|
12758 |
+
#: includes/settings/wcj-settings-shipping-options.php:46
|
12759 |
+
#: includes/settings/wcj-settings-shipping-options.php:52
|
12760 |
msgid "Free Shipping by Product"
|
12761 |
msgstr ""
|
12762 |
|
12763 |
+
#: includes/settings/wcj-settings-shipping-options.php:47
|
12764 |
msgid ""
|
12765 |
"In this section you can select products which grant free shipping when added "
|
12766 |
"to cart."
|
12767 |
msgstr ""
|
12768 |
|
12769 |
+
#: includes/settings/wcj-settings-shipping-options.php:68
|
12770 |
msgid ""
|
12771 |
"Select either <strong>all products</strong> or <strong>at least one product</"
|
12772 |
"strong> in cart must grant free shipping."
|
12773 |
msgstr ""
|
12774 |
|
12775 |
+
#: includes/settings/wcj-settings-shipping-options.php:73
|
12776 |
msgid "All products in cart must grant free shipping"
|
12777 |
msgstr ""
|
12778 |
|
12779 |
+
#: includes/settings/wcj-settings-shipping-options.php:74
|
12780 |
msgid "At least one product in cart must grant free shipping"
|
12781 |
msgstr ""
|
12782 |
|
12783 |
+
#: includes/settings/wcj-settings-shipping-options.php:86
|
12784 |
+
#: includes/settings/wcj-settings-shipping-options.php:92
|
12785 |
msgid "Shipping Descriptions"
|
12786 |
msgstr ""
|
12787 |
|
12788 |
+
#: includes/settings/wcj-settings-shipping-options.php:88
|
12789 |
#, php-format
|
12790 |
msgid ""
|
12791 |
"This section will allow you to add any text (e.g. description) for shipping "
|
12793 |
"tags here, e.g. try \"%s\""
|
12794 |
msgstr ""
|
12795 |
|
12796 |
+
#: includes/settings/wcj-settings-shipping-options.php:99
|
12797 |
msgid "Description Visibility"
|
12798 |
msgstr ""
|
12799 |
|
12800 |
+
#: includes/settings/wcj-settings-shipping-options.php:104
|
12801 |
+
#: includes/settings/wcj-settings-shipping-options.php:160
|
12802 |
msgid "On both cart and checkout pages"
|
12803 |
msgstr ""
|
12804 |
|
12805 |
+
#: includes/settings/wcj-settings-shipping-options.php:105
|
12806 |
+
#: includes/settings/wcj-settings-shipping-options.php:161
|
12807 |
msgid "Only on cart page"
|
12808 |
msgstr ""
|
12809 |
|
12810 |
+
#: includes/settings/wcj-settings-shipping-options.php:106
|
12811 |
+
#: includes/settings/wcj-settings-shipping-options.php:162
|
12812 |
msgid "Only on checkout page"
|
12813 |
msgstr ""
|
12814 |
|
12815 |
+
#: includes/settings/wcj-settings-shipping-options.php:108
|
12816 |
+
#: includes/settings/wcj-settings-shipping-options.php:164
|
12817 |
msgid ""
|
12818 |
"Possible values: on both cart and checkout pages; only on cart page; only on "
|
12819 |
"checkout page"
|
12820 |
msgstr ""
|
12821 |
|
12822 |
+
#: includes/settings/wcj-settings-shipping-options.php:132
|
12823 |
+
#: includes/settings/wcj-settings-shipping-options.php:138
|
12824 |
msgid "Shipping Icons"
|
12825 |
msgstr ""
|
12826 |
|
12827 |
+
#: includes/settings/wcj-settings-shipping-options.php:134
|
12828 |
msgid ""
|
12829 |
"This section will allow you to add icons for shipping method. Icons will be "
|
12830 |
"visible on cart and checkout pages."
|
12831 |
msgstr ""
|
12832 |
|
12833 |
+
#: includes/settings/wcj-settings-shipping-options.php:145
|
12834 |
msgid "Icon Position"
|
12835 |
msgstr ""
|
12836 |
|
12837 |
+
#: includes/settings/wcj-settings-shipping-options.php:150
|
12838 |
msgid "Before label"
|
12839 |
msgstr ""
|
12840 |
|
12841 |
+
#: includes/settings/wcj-settings-shipping-options.php:151
|
12842 |
msgid "After label"
|
12843 |
msgstr ""
|
12844 |
|
12845 |
+
#: includes/settings/wcj-settings-shipping-options.php:155
|
12846 |
msgid "Icon Visibility"
|
12847 |
msgstr ""
|
12848 |
|
12849 |
+
#: includes/settings/wcj-settings-shipping-options.php:169
|
12850 |
msgid "Icon Style"
|
12851 |
msgstr ""
|
12852 |
|
12853 |
+
#: includes/settings/wcj-settings-shipping-options.php:170
|
12854 |
msgid ""
|
12855 |
"You can also style icons with CSS class \"wcj_shipping_icon\", or id "
|
12856 |
"\"wcj_shipping_icon_method_id\""
|
13096 |
msgid "Custom Out of Stock Class"
|
13097 |
msgstr ""
|
13098 |
|
13099 |
+
#: includes/settings/wcj-settings-url-coupons.php:15
|
13100 |
+
#, php-format
|
13101 |
+
msgid ""
|
13102 |
+
"Additionally you can hide standard coupon field on cart page in Booster's <a "
|
13103 |
+
"href=\"%s\">Cart Customization</a> module."
|
13104 |
+
msgstr ""
|
13105 |
+
|
13106 |
+
#: includes/settings/wcj-settings-url-coupons.php:21
|
13107 |
+
msgid "URL Coupons Key"
|
13108 |
+
msgstr ""
|
13109 |
+
|
13110 |
+
#: includes/settings/wcj-settings-url-coupons.php:22
|
13111 |
+
msgid ""
|
13112 |
+
"URL key. If you change this, make sure it's unique and is not used anywhere "
|
13113 |
+
"on your site (e.g. by another plugin)."
|
13114 |
+
msgstr ""
|
13115 |
+
|
13116 |
+
#: includes/settings/wcj-settings-url-coupons.php:23
|
13117 |
+
#, php-format
|
13118 |
+
msgid ""
|
13119 |
+
"Your users can apply shop's standard coupons, by visiting URL. E.g.: %s."
|
13120 |
+
msgstr ""
|
13121 |
+
|
13122 |
+
#: includes/settings/wcj-settings-url-coupons.php:30
|
13123 |
+
msgid "Redirect URL"
|
13124 |
+
msgstr ""
|
13125 |
+
|
13126 |
+
#: includes/settings/wcj-settings-url-coupons.php:31
|
13127 |
+
msgid ""
|
13128 |
+
"Possible values: No redirect; redirect to cart; redirect to checkout; "
|
13129 |
+
"redirect to custom local URL."
|
13130 |
+
msgstr ""
|
13131 |
+
|
13132 |
+
#: includes/settings/wcj-settings-url-coupons.php:36
|
13133 |
+
msgid "No redirect"
|
13134 |
+
msgstr ""
|
13135 |
+
|
13136 |
+
#: includes/settings/wcj-settings-url-coupons.php:37
|
13137 |
+
msgid "Redirect to cart"
|
13138 |
+
msgstr ""
|
13139 |
+
|
13140 |
+
#: includes/settings/wcj-settings-url-coupons.php:38
|
13141 |
+
msgid "Redirect to checkout"
|
13142 |
+
msgstr ""
|
13143 |
+
|
13144 |
+
#: includes/settings/wcj-settings-url-coupons.php:39
|
13145 |
+
msgid "Redirect to custom local URL"
|
13146 |
+
msgstr ""
|
13147 |
+
|
13148 |
+
#: includes/settings/wcj-settings-url-coupons.php:45
|
13149 |
+
msgid "Custom Local URL"
|
13150 |
+
msgstr ""
|
13151 |
+
|
13152 |
+
#: includes/settings/wcj-settings-url-coupons.php:52
|
13153 |
+
msgid "\"Fixed product discount\" Coupons"
|
13154 |
+
msgstr ""
|
13155 |
+
|
13156 |
+
#: includes/settings/wcj-settings-url-coupons.php:53
|
13157 |
+
msgid "Automatically add coupon's products to the cart"
|
13158 |
+
msgstr ""
|
13159 |
+
|
13160 |
#: includes/settings/wcj-settings-wholesale-price.php:17
|
13161 |
msgid ""
|
13162 |
"Wholesale Price Levels Options. If you want to display prices table on "
|
13338 |
msgid "Visible in Countries"
|
13339 |
msgstr ""
|
13340 |
|
13341 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-by-date.php:14
|
13342 |
+
#: includes/settings/meta-box/wcj-settings-meta-box-product-by-time.php:14
|
13343 |
+
msgid "Enable/Disable per Product Settings"
|
13344 |
+
msgstr ""
|
13345 |
+
|
13346 |
#: includes/settings/meta-box/wcj-settings-meta-box-product-by-user-role.php:19
|
13347 |
msgid "Visible for User Roles"
|
13348 |
msgstr ""
|
13516 |
msgid "Enable Custom Shipping"
|
13517 |
msgstr ""
|
13518 |
|
13519 |
+
#: includes/shortcodes/class-wcj-general-shortcodes.php:128
|
13520 |
#: includes/shortcodes/class-wcj-shortcodes.php:107
|
13521 |
#, php-format
|
13522 |
msgid "\"%s\" module is not enabled!"
|
13673 |
msgid "Multicurrency module not enabled!"
|
13674 |
msgstr ""
|
13675 |
|
|
|
|
|
|
|
|
|
13676 |
#: includes/widgets/class-wcj-widget-multicurrency.php:76
|
13677 |
msgid "Drop down"
|
13678 |
msgstr ""
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: algoritmika,anbinder
|
|
3 |
Tags: woocommerce,booster for woocommerce,woocommerce jetpack
|
4 |
Requires at least: 4.4
|
5 |
Tested up to: 4.8
|
6 |
-
Stable tag: 2.9.
|
7 |
License: GNU General Public License v3.0
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
@@ -48,6 +48,7 @@ Booster for WooCommerce is a WordPress plugin that supercharges your site with a
|
|
48 |
* *Crowdfunding* - Add crowdfunding products to WooCommerce.
|
49 |
* *Product Add to Cart* - Set any local url to redirect to on WooCommerce Add to Cart. Automatically add to cart on product visit. Display radio buttons instead of drop box for variable products. Disable quantity input. Disable add to cart button on per product basis. Open external products on add to cart in new window. Replace Add to Cart button on archives with button from single product pages. Customize Add to Cart messages.
|
50 |
* *Product Addons* - Add (paid/free/discount) addons to WooCommerce products.
|
|
|
51 |
* *Product Availability by Time* - WooCommerce product availability by time.
|
52 |
* *Product Bulk Meta Editor* - Set WooCommerce products meta with bulk editor.
|
53 |
* *Product Images* - Customize WooCommerce products images, thumbnails and sale flashes.
|
@@ -115,14 +116,16 @@ Booster for WooCommerce is a WordPress plugin that supercharges your site with a
|
|
115 |
* *Booster WPML* - Booster for WooCommerce basic WPML support.
|
116 |
* *Breadcrumbs* - Customize WooCommerce breadcrumbs.
|
117 |
* *Custom CSS* - Separate custom CSS for front and back end. Per product CSS.
|
|
|
118 |
* *Custom JS* - Separate custom JS for front and back end.
|
|
|
119 |
* *Email Verification* - Add WooCommerce email verification.
|
120 |
-
* *Emails* - Add custom emails. Add another email recipient(s) to all WooCommerce emails.
|
121 |
* *Export* - WooCommerce export tools.
|
122 |
* *General* - Custom roles tool. Shortcodes in WordPress text widgets.
|
123 |
* *My Account* - WooCommerce "My Account" page customization.
|
124 |
* *Old Slugs* - Remove old WooCommerce products slugs.
|
125 |
* *Reports* - WooCommerce stock, sales, customers etc. reports.
|
|
|
126 |
|
127 |
= Feedback =
|
128 |
* We are open to your suggestions and feedback - thank you for using or trying out one of our plugins!
|
@@ -163,6 +166,35 @@ You can see the differences between versions in this [table](https://booster.io/
|
|
163 |
|
164 |
== Changelog ==
|
165 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
= 2.9.0 - 02/07/2017
|
167 |
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Orders - `[wcj_order_items_table]` - `product_name` column - "WooCommerce TM Extra Product Options" plugin compatibility - `get_meta()`.
|
168 |
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products - `[wcj_product_dimensions]` - `wc_format_dimensions()`.
|
3 |
Tags: woocommerce,booster for woocommerce,woocommerce jetpack
|
4 |
Requires at least: 4.4
|
5 |
Tested up to: 4.8
|
6 |
+
Stable tag: 2.9.1
|
7 |
License: GNU General Public License v3.0
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
48 |
* *Crowdfunding* - Add crowdfunding products to WooCommerce.
|
49 |
* *Product Add to Cart* - Set any local url to redirect to on WooCommerce Add to Cart. Automatically add to cart on product visit. Display radio buttons instead of drop box for variable products. Disable quantity input. Disable add to cart button on per product basis. Open external products on add to cart in new window. Replace Add to Cart button on archives with button from single product pages. Customize Add to Cart messages.
|
50 |
* *Product Addons* - Add (paid/free/discount) addons to WooCommerce products.
|
51 |
+
* *Product Availability by Date* - WooCommerce product availability by date.
|
52 |
* *Product Availability by Time* - WooCommerce product availability by time.
|
53 |
* *Product Bulk Meta Editor* - Set WooCommerce products meta with bulk editor.
|
54 |
* *Product Images* - Customize WooCommerce products images, thumbnails and sale flashes.
|
116 |
* *Booster WPML* - Booster for WooCommerce basic WPML support.
|
117 |
* *Breadcrumbs* - Customize WooCommerce breadcrumbs.
|
118 |
* *Custom CSS* - Separate custom CSS for front and back end. Per product CSS.
|
119 |
+
* *Custom Emails* - Add custom emails to WooCommerce.
|
120 |
* *Custom JS* - Separate custom JS for front and back end.
|
121 |
+
* *Email Options* - WooCommerce email options. E.g.: add another email recipient(s) to all WooCommerce emails.
|
122 |
* *Email Verification* - Add WooCommerce email verification.
|
|
|
123 |
* *Export* - WooCommerce export tools.
|
124 |
* *General* - Custom roles tool. Shortcodes in WordPress text widgets.
|
125 |
* *My Account* - WooCommerce "My Account" page customization.
|
126 |
* *Old Slugs* - Remove old WooCommerce products slugs.
|
127 |
* *Reports* - WooCommerce stock, sales, customers etc. reports.
|
128 |
+
* *URL Coupons* - WooCommerce URL coupons.
|
129 |
|
130 |
= Feedback =
|
131 |
* We are open to your suggestions and feedback - thank you for using or trying out one of our plugins!
|
166 |
|
167 |
== Changelog ==
|
168 |
|
169 |
+
= 2.9.1 - 17/07/2017
|
170 |
+
* Dev - `WCJ_Module` - `save_meta_box_validate_value()` added.
|
171 |
+
* Dev - Manage Settings - "Use List Instead of Comma Separated Text for Products in Settings" option added (Supported modules: Product Info).
|
172 |
+
* Dev - Functions - Country - `wcj_get_country_flag_by_code()` - "No flag" added.
|
173 |
+
* Dev - Shortcodes - General - `[wcj_site_url]` shortcode added.
|
174 |
+
* Dev - PRODUCTS - Product Availability by Date - Initial module release.
|
175 |
+
* Fix - PRODUCTS - Product Availability by Time - Settings - Description fixed.
|
176 |
+
* Dev - PRODUCTS - Product Availability by Time - "Per Product" options added.
|
177 |
+
* Dev - SHIPPING & ORDERS - Shipping Options - Hide if Free Shipping is Available - `Hide all except "Local Pickup"` and `Hide "Flat Rate" only` options added.
|
178 |
+
* Fix - EMAILS & MISC. - Admin Bar - Booster - Dashboard - Active - Submodules excluded from the list.
|
179 |
+
* Dev - EMAILS & MISC. - Admin Bar - Booster - Modules - Sorted by title.
|
180 |
+
* Dev - EMAILS & MISC. - Admin Tools - "WooCommerce Log" option added.
|
181 |
+
* Dev - EMAILS & MISC. - Custom Emails - Renamed from "Emails" module.
|
182 |
+
* Dev - EMAILS & MISC. - Custom JS - Shortcodes can now be used in custom JS.
|
183 |
+
* Dev - EMAILS & MISC. - Email Options - Initial module release (separated from "Emails" module).
|
184 |
+
* Dev - EMAILS & MISC. - General - "Track Users" section added. "Top countries by visits" admin dashboard widget added. "Track Orders" (i.e. "Save customer's acquisition source (i.e. HTTP referer) for orders") option added.
|
185 |
+
* Dev - EMAILS & MISC. - Reports - Orders - Monthly Sales (with Currency Conversion) - Monthly rates are set manually now.
|
186 |
+
* Dev - EMAILS & MISC. - Reports - Orders - Monthly Sales (with Currency Conversion) - "Forecast total orders and sum (excl. TAX) for current month" option added.
|
187 |
+
* Dev - EMAILS & MISC. - Reports - Orders - Monthly Sales (with Currency Conversion) - "Include current day for current month" option added.
|
188 |
+
* Dev - EMAILS & MISC. - Reports - Orders - Monthly Sales (with Currency Conversion) - "Orders by Currency" row added.
|
189 |
+
* Dev - EMAILS & MISC. - Reports - Orders - Monthly Sales (with Currency Conversion) - Code refactoring, cleanup etc.
|
190 |
+
* Dev - EMAILS & MISC. - Reports - Stock - "Total current stock purchase price" added.
|
191 |
+
* Dev - EMAILS & MISC. - Reports - Stock - `WP_Query` optimized to return `ids` only.
|
192 |
+
* Dev - EMAILS & MISC. - Reports - Stock - Code cleanup.
|
193 |
+
* Dev - EMAILS & MISC. - URL Coupons - "Redirect URL" options added.
|
194 |
+
* Dev - EMAILS & MISC. - URL Coupons - "Automatically add coupon's products to the cart" option added.
|
195 |
+
* Dev - EMAILS & MISC. - URL Coupons - Initial module release (separated from "General" module).
|
196 |
+
* Tweak - Flags images updated.
|
197 |
+
|
198 |
= 2.9.0 - 02/07/2017
|
199 |
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Orders - `[wcj_order_items_table]` - `product_name` column - "WooCommerce TM Extra Product Options" plugin compatibility - `get_meta()`.
|
200 |
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products - `[wcj_product_dimensions]` - `wc_format_dimensions()`.
|
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.
|
6 |
-
Version: 2.9.
|
7 |
Author: Algoritmika Ltd
|
8 |
Author URI: https://booster.io
|
9 |
Text Domain: woocommerce-jetpack
|
@@ -45,7 +45,7 @@ if ( ! class_exists( 'WC_Jetpack' ) ) :
|
|
45 |
* Main WC_Jetpack Class
|
46 |
*
|
47 |
* @class WC_Jetpack
|
48 |
-
* @version 2.9.
|
49 |
*/
|
50 |
final class WC_Jetpack {
|
51 |
|
@@ -55,7 +55,7 @@ final class WC_Jetpack {
|
|
55 |
* @var string
|
56 |
* @since 2.4.7
|
57 |
*/
|
58 |
-
public $version = '2.9.
|
59 |
|
60 |
/**
|
61 |
* @var WC_Jetpack The single instance of the class
|
@@ -293,7 +293,7 @@ final class WC_Jetpack {
|
|
293 |
/**
|
294 |
* Include modules and submodules
|
295 |
*
|
296 |
-
* @version 2.9.
|
297 |
*/
|
298 |
function include_modules() {
|
299 |
$modules_files = array(
|
@@ -327,6 +327,7 @@ final class WC_Jetpack {
|
|
327 |
'includes/class-wcj-product-images.php',
|
328 |
'includes/class-wcj-product-by-country.php',
|
329 |
'includes/class-wcj-product-by-time.php',
|
|
|
330 |
'includes/class-wcj-product-by-user-role.php',
|
331 |
'includes/class-wcj-product-by-user.php',
|
332 |
'includes/class-wcj-add-to-cart.php',
|
@@ -362,6 +363,7 @@ final class WC_Jetpack {
|
|
362 |
'includes/class-wcj-order-quantities.php',
|
363 |
'includes/class-wcj-pdf-invoicing.php',
|
364 |
'includes/class-wcj-emails.php',
|
|
|
365 |
'includes/class-wcj-emails-verification.php',
|
366 |
'includes/class-wcj-currencies.php',
|
367 |
'includes/class-wcj-multicurrency.php',
|
@@ -373,6 +375,7 @@ final class WC_Jetpack {
|
|
373 |
'includes/class-wcj-price-formats.php',
|
374 |
'includes/class-wcj-general.php',
|
375 |
'includes/class-wcj-breadcrumbs.php',
|
|
|
376 |
'includes/class-wcj-admin-bar.php',
|
377 |
'includes/class-wcj-my-account.php',
|
378 |
'includes/class-wcj-custom-css.php',
|
3 |
Plugin Name: Booster for WooCommerce
|
4 |
Plugin URI: https://booster.io
|
5 |
Description: Supercharge your WooCommerce site with these awesome powerful features.
|
6 |
+
Version: 2.9.1
|
7 |
Author: Algoritmika Ltd
|
8 |
Author URI: https://booster.io
|
9 |
Text Domain: woocommerce-jetpack
|
45 |
* Main WC_Jetpack Class
|
46 |
*
|
47 |
* @class WC_Jetpack
|
48 |
+
* @version 2.9.1
|
49 |
*/
|
50 |
final class WC_Jetpack {
|
51 |
|
55 |
* @var string
|
56 |
* @since 2.4.7
|
57 |
*/
|
58 |
+
public $version = '2.9.1';
|
59 |
|
60 |
/**
|
61 |
* @var WC_Jetpack The single instance of the class
|
293 |
/**
|
294 |
* Include modules and submodules
|
295 |
*
|
296 |
+
* @version 2.9.1
|
297 |
*/
|
298 |
function include_modules() {
|
299 |
$modules_files = array(
|
327 |
'includes/class-wcj-product-images.php',
|
328 |
'includes/class-wcj-product-by-country.php',
|
329 |
'includes/class-wcj-product-by-time.php',
|
330 |
+
'includes/class-wcj-product-by-date.php',
|
331 |
'includes/class-wcj-product-by-user-role.php',
|
332 |
'includes/class-wcj-product-by-user.php',
|
333 |
'includes/class-wcj-add-to-cart.php',
|
363 |
'includes/class-wcj-order-quantities.php',
|
364 |
'includes/class-wcj-pdf-invoicing.php',
|
365 |
'includes/class-wcj-emails.php',
|
366 |
+
'includes/class-wcj-email-options.php',
|
367 |
'includes/class-wcj-emails-verification.php',
|
368 |
'includes/class-wcj-currencies.php',
|
369 |
'includes/class-wcj-multicurrency.php',
|
375 |
'includes/class-wcj-price-formats.php',
|
376 |
'includes/class-wcj-general.php',
|
377 |
'includes/class-wcj-breadcrumbs.php',
|
378 |
+
'includes/class-wcj-url-coupons.php',
|
379 |
'includes/class-wcj-admin-bar.php',
|
380 |
'includes/class-wcj-my-account.php',
|
381 |
'includes/class-wcj-custom-css.php',
|