Booster for WooCommerce - Version 2.5.0

Version Description

  • 23/05/2016 =
  • Dev - Multisite support added.
  • Dev - is_super_admin() replaced with wcj_is_user_role().
  • Dev - "Plugin renamed..." notice (name_changed_notice) removed.
  • Fix - Translations - Translation domain fixed (in jetpack_menu()).
  • Dev - Translations - Text domain added to the plugin header.
  • Dev - Translations - POT file updated.
  • Dev - WCJ_Module - create_meta_box() and save_meta_box() - title option type added.
  • Dev - WCJ_Module - create_meta_box() - multiple attribute added to select type option.
  • Dev - Functions - wcj_get_current_currency_code() function added.
  • Dev - Functions - wcj_get_currency_exchange_rate() function added.
  • Dev - Widgets - Multicurrency Switcher - "module not enabled" message added.
  • Dev - Widgets - Country Switcher - "module not enabled" and "wrong configuration" messages added.
  • Fix - Shortcodes - Orders - [wcj_order_items_table] - Fixed for deleted products.
  • Fix - Shortcodes - Orders - [wcj_order_items_table] - item_name and item_variation - Variation data fixed (pa_ removed and urlencode added).
  • Dev - Shortcodes - Orders - [wcj_order_items_table] - item_name - style_item_name_variation attribute added.
  • Dev - Shortcodes - Orders - [wcj_order_items_table] - debug column added.
  • Dev - Shortcodes - Orders - [wcj_order_total_in_words] - Bulgarian language (lang="BG") added.
  • Fix - Shortcodes - Products - get_product_orders_data - total_orders fixed.
  • Dev - Shortcodes - Products - get_product_orders_data - offset shortcodes attribute added.
  • Dev - Shortcodes - Products - get_product_orders_data and [wcj_product_time_since_last_sale] - Query by blocks.
  • Dev - Shortcodes - Products - [wcj_product_crowdfunding_goal_remaining_progress_bar] shortcode added.
  • Dev - Shortcodes - Products - [wcj_product_crowdfunding_time_remaining_progress_bar] shortcode added.
  • Dev - Shortcodes - Products - [wcj_product_total_orders_items] shortcode added.
  • Dev - Shortcodes - Products - date_i18n added to [wcj_product_crowdfunding_startdate] and [wcj_product_crowdfunding_deadline].
  • Dev - PRICES & CURRENCIES - Product Price by Formula - Initial module release.
  • Dev - PRICES & CURRENCIES - Price by User Role - Initial module release.
  • Fix - PRICES & CURRENCIES - Prices and Currencies by Country - Now rounding applies to global (not per product) conversions only.
  • Fix - PRICES & CURRENCIES - Prices and Currencies by Country - Additional check in get_customer_country_group_id() to prevent PHP notice on empty value.
  • Fix - PRICES & CURRENCIES - Prices and Currencies by Country - get_variation_prices_hash() - Variable products main price fixed.
  • Fix - PRICES & CURRENCIES - Prices and Currencies by Country - Support for grouped products added.
  • Dev - PRICES & CURRENCIES - Prices and Currencies by Country - "Customer Country Detection Method" changed from "by user selection" to "by IP, then by user selection".
  • Dev - PRICES & CURRENCIES - Prices and Currencies by Country - get_customer_country_group_id() - Not recalculating customer_country_group_id - works faster now.
  • Fix - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - get_variation_prices_hash() - Variable products main price fixed.
  • Fix - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Empty price bug fixed.
  • Fix - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Support for grouped products added.
  • Dev - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - "Revert Currency to Default on Checkout" option added.
  • Dev - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - add_hooks() moved from init hook to constructor.
  • Fix - PRICES & CURRENCIES - Multicurrency Product Base Price - Support for grouped products added.
  • Fix - PRICES & CURRENCIES - Multicurrency Product Base Price - get_variation_prices_hash() - Variable products main price fixed.
  • Fix - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - post__not_in added to save_meta_box_value.
  • Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - posts_per_page lowered to query only necessary number of product in save_meta_box_value.
  • Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - disable_add_to_cart_ajax added.
  • Fix - PRICES & CURRENCIES - Wholesale Price - Mini cart bug fixed.
  • Dev - PRICES & CURRENCIES - Wholesale Price - Major code refactoring.
  • Dev - PRICES & CURRENCIES - Wholesale Price - Per product functionality added.
  • Fix - BUTTON & PRICE LABELS - Custom Price Labels - Products query is made by blocks now (wcj_get_products()).
  • Dev - BUTTON & PRICE LABELS - Custom Price Labels - create_migrate_from_custom_price_labels_tool - Query by blocks.
  • Dev - PRODUCTS - Bookings - Initial module release.
  • Dev - PRODUCTS - Product by Country - Initial module release.
  • Fix - PRODUCTS - Product Info V2 - Products query is made by blocks now (wcj_get_products()).
  • Fix - PRODUCTS - Product Tabs - Local product tabs number field set to min zero (instead of one).
  • Dev - PRODUCTS - Product Input Fields - "Emails Options" added.
  • Dev - PRODUCTS - Product Add to Cart - Add to Cart Variable Product - Display Radio Buttons Instead of Drop Box - label tag added.
  • Dev - CART & CHECKOUT - Checkout Files Upload - "Add to Thank You page" and "Add to My Account page" options added.
  • Fix - CART & CHECKOUT - Empty Cart Button - "Wrapping DIV style" option fixed in free version.
  • Dev - CART & CHECKOUT - Empty Cart Button - "Button position on the Checkout page" option added.
  • Fix - CART & CHECKOUT - Checkout Custom Fields - add_custom_order_and_account_fields_to_admin_order_display.
  • Dev - CART & CHECKOUT - Checkout Custom Fields - Field ID display added to module's settings page.
  • Dev - CART & CHECKOUT - Checkout Custom Fields - "Add All Fields to Order Received Page" option added.
  • Fix - PAYMENT GATEWAYS - Gateways per Product or Category - Products query is made by blocks now (wcj_get_products()).
  • Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Compatibility with PayPal Express added.
  • Dev - SHIPPING & ORDERS - Order Numbers - renumerate_orders - Query by blocks.
  • Fix - EMAILS & MISC. - Old Slugs - $wpdb->prefix fix.
  • Fix - EMAILS & MISC. - Reports - gather_orders_data - Fixed for deleted products (caused PHP notice).
  • Dev - EMAILS & MISC. - Reports - gather_products_data - Query by blocks.
  • Tweak - Admin Modules Menu - "Shipping" module set to default in SHIPPING & ORDERS category.
  • Tweak - PRICES & CURRENCIES - Currency Exchange Rates - Documentation link added. Reset button added.
  • Tweak - PRICES & CURRENCIES - Multicurrency Product Base Price - Documentation link added.
  • Tweak - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - Documentation link added.
  • Tweak - PRICES & CURRENCIES - Currency for External Products - Documentation link added.
  • Tweak - PRICES & CURRENCIES - Bulk Price Converter - Documentation link added.
  • Tweak - PRICES & CURRENCIES - Wholesale Price - Reset button added.
  • Tweak - BUTTON & PRICE LABELS - Custom Price Labels - Documentation link added. Reset button added.
  • Tweak - PRODUCTS - Product Add to Cart - Description updated.
  • Tweak - PRODUCTS - Crowdfunding - Reset button added.
  • Tweak - PRODUCTS - Product Info - Documentation link added.
  • Tweak - PRODUCTS - Product Info V2 - Documentation link added.
  • Tweak - CART & CHECKOUT - Empty Cart Button - Documentation link added. Reset button added.
  • Tweak - CART & CHECKOUT - Checkout Core Fields - Documentation link added. Reset button added.
  • Tweak - PAYMENT GATEWAYS - Gateways Currency - Documentation link added.
  • Tweak - PAYMENT GATEWAYS - Gateways Fees and Discounts - Documentation link added. Reset button added.
  • Tweak - PAYMENT GATEWAYS - Gateways Icons - Documentation link added. Reset button added.
  • Tweak - PAYMENT GATEWAYS - Gateways Min/Max - Documentation link added.
  • Tweak - PAYMENT GATEWAYS - Gateways by Country or State - Documentation link added.
  • Tweak - SHIPPING & ORDERS - Shipping - Module description updated.
  • Tweak - SHIPPING & ORDERS - Orders - Documentation link added. Reset button added.
  • Tweak - SHIPPING & ORDERS - Order Numbers - Documentation link added.
  • Tweak - SHIPPING & ORDERS - Order Custom Statuses - Documentation link added. Reset button added.
  • Tweak - EMAILS & MISC. - Booster WPML - Documentation link added. Short description updated.
  • Tweak - EMAILS & MISC. - EU VAT Number - Documentation link added.
  • Tweak - EMAILS & MISC. - EU VAT Number - Description updated.
  • Tweak - EMAILS & MISC. - Emails - Documentation link added.
  • Tweak - EMAILS & MISC. - Old Slugs - Documentation link added. Reset button added.
  • Tweak - EMAILS & MISC. - Reports - Documentation link added.
  • Tweak - EMAILS & MISC. - Admin Tools - Documentation link added.
  • Tweak - EMAILS & MISC. - General - Documentation link added.
Download this release

Release Info

Developer algoritmika
Plugin Icon 128x128 Booster for WooCommerce
Version 2.5.0
Comparing to
See all releases

Code changes from version 2.4.8 to 2.5.0

Files changed (71) hide show
  1. includes/admin/wcj-modules-cats.php +6 -2
  2. includes/class-wcj-admin-tools.php +5 -4
  3. includes/class-wcj-checkout-core-fields.php +5 -4
  4. includes/class-wcj-checkout-custom-fields.php +63 -26
  5. includes/class-wcj-checkout-files-upload.php +219 -180
  6. includes/class-wcj-crowdfunding.php +4 -2
  7. includes/class-wcj-currency-exchange-rates.php +7 -2
  8. includes/class-wcj-currency-external-products.php +3 -2
  9. includes/class-wcj-emails.php +3 -2
  10. includes/class-wcj-empty-cart-button.php +58 -80
  11. includes/class-wcj-eu-vat-number.php +4 -3
  12. includes/class-wcj-general.php +3 -2
  13. includes/class-wcj-multicurrency-product-base-price.php +37 -2
  14. includes/class-wcj-multicurrency.php +89 -14
  15. includes/class-wcj-old-slugs.php +8 -17
  16. includes/class-wcj-order-custom-statuses.php +6 -14
  17. includes/class-wcj-order-numbers.php +40 -45
  18. includes/class-wcj-orders.php +19 -45
  19. includes/class-wcj-payment-gateways-by-country.php +3 -2
  20. includes/class-wcj-payment-gateways-currency.php +3 -2
  21. includes/class-wcj-payment-gateways-fees.php +84 -97
  22. includes/class-wcj-payment-gateways-icons.php +11 -16
  23. includes/class-wcj-payment-gateways-min-max.php +4 -1
  24. includes/class-wcj-payment-gateways-per-category.php +3 -15
  25. includes/class-wcj-pdf-invoicing.php +4 -4
  26. includes/class-wcj-price-by-country.php +10 -18
  27. includes/class-wcj-price-by-user-role.php +481 -0
  28. includes/class-wcj-price-labels.php +52 -106
  29. includes/class-wcj-product-add-to-cart.php +3 -3
  30. includes/class-wcj-product-bookings.php +431 -0
  31. includes/class-wcj-product-bulk-price-converter.php +3 -2
  32. includes/class-wcj-product-by-country.php +96 -0
  33. includes/class-wcj-product-custom-info.php +5 -16
  34. includes/class-wcj-product-info.php +3 -2
  35. includes/class-wcj-product-input-fields.php +33 -4
  36. includes/class-wcj-product-open-pricing.php +21 -6
  37. includes/class-wcj-product-price-by-formula.php +345 -0
  38. includes/class-wcj-product-tabs.php +3 -3
  39. includes/class-wcj-purchase-data.php +5 -5
  40. includes/class-wcj-reports.php +3 -2
  41. includes/class-wcj-shipping.php +6 -3
  42. includes/class-wcj-wholesale-price.php +192 -135
  43. includes/class-wcj-wpml.php +6 -5
  44. includes/classes/class-wcj-module.php +66 -40
  45. includes/functions/wcj-functions-number-to-words-bg.php +198 -0
  46. includes/functions/wcj-functions-number-to-words.php +127 -0
  47. includes/functions/wcj-functions.php +97 -130
  48. includes/input-fields/class-wcj-product-input-fields-abstract.php +33 -2
  49. includes/input-fields/class-wcj-product-input-fields-global.php +6 -1
  50. includes/input-fields/class-wcj-product-input-fields-per-product.php +5 -1
  51. includes/js/wcj-bookings.js +82 -0
  52. includes/lib/PHPMathParser/Expressions.php +110 -0
  53. includes/lib/PHPMathParser/Math.php +120 -0
  54. includes/lib/PHPMathParser/Stack.php +21 -0
  55. includes/lib/PHPMathParser/TerminalExpression.php +53 -0
  56. includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php +3 -3
  57. includes/price-by-country/class-wcj-price-by-country-core.php +134 -201
  58. includes/price-by-country/class-wcj-price-by-country-group-generator.php +3 -3
  59. includes/reports/wcj-class-reports-stock.php +45 -28
  60. includes/shortcodes/class-wcj-general-shortcodes.php +17 -14
  61. includes/shortcodes/class-wcj-order-items-shortcodes.php +17 -8
  62. includes/shortcodes/class-wcj-orders-shortcodes.php +14 -8
  63. includes/shortcodes/class-wcj-products-add-form-shortcodes.php +170 -0
  64. includes/shortcodes/class-wcj-products-shortcodes.php +206 -99
  65. includes/shortcodes/class-wcj-shortcodes.php +6 -4
  66. includes/tools/class-wcj-eu-countries-vat-rates-tool.php +3 -3
  67. includes/widgets/class-wcj-widget-country-switcher.php +20 -14
  68. includes/widgets/class-wcj-widget-multicurrency.php +16 -12
  69. langs/woocommerce-jetpack.pot +7960 -6113
  70. readme.txt +113 -16
  71. woocommerce-jetpack.php +49 -37
includes/admin/wcj-modules-cats.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Modules Array.
6
  *
7
- * @version 2.4.8
8
  * @since 2.2.0
9
  * @author Algoritmika Ltd.
10
  */
@@ -33,6 +33,8 @@ return array(
33
  'bulk_price_converter',
34
  'wholesale_price',
35
  'product_open_pricing',
 
 
36
  'currency_exchange_rates',
37
  ),
38
  ),
@@ -62,8 +64,10 @@ return array(
62
  'product_input_fields',
63
  'product_add_to_cart',
64
  'purchase_data',
 
65
  'crowdfunding',
66
  'product_images',
 
67
  ),
68
  ),
69
 
@@ -97,7 +101,7 @@ return array(
97
 
98
  'shipping_and_orders' => array(
99
  'label' => __( 'Shipping & Orders', 'woocommerce-jetpack' ),
100
- 'default_cat_id' => 'orders',
101
  'all_cat_ids' => array(
102
  'shipping',
103
  'shipping_calculator',
4
  *
5
  * The WooCommerce Modules Array.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.2.0
9
  * @author Algoritmika Ltd.
10
  */
33
  'bulk_price_converter',
34
  'wholesale_price',
35
  'product_open_pricing',
36
+ 'price_by_user_role',
37
+ 'product_price_by_formula',
38
  'currency_exchange_rates',
39
  ),
40
  ),
64
  'product_input_fields',
65
  'product_add_to_cart',
66
  'purchase_data',
67
+ 'product_bookings',
68
  'crowdfunding',
69
  'product_images',
70
+ 'product_by_country',
71
  ),
72
  ),
73
 
101
 
102
  'shipping_and_orders' => array(
103
  'label' => __( 'Shipping & Orders', 'woocommerce-jetpack' ),
104
+ 'default_cat_id' => 'shipping',
105
  'all_cat_ids' => array(
106
  'shipping',
107
  'shipping_calculator',
includes/class-wcj-admin-tools.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Admin Tools class.
6
  *
7
- * @version 2.3.10
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,13 +17,14 @@ class WCJ_Admin_Tools extends WCJ_Module {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.3.10
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'admin_tools';
25
  $this->short_desc = __( 'Admin Tools', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Booster for WooCommerce debug and log tools.', 'woocommerce-jetpack' );
 
27
  parent::__construct();
28
 
29
  $this->add_tools( array(
@@ -38,12 +39,12 @@ class WCJ_Admin_Tools extends WCJ_Module {
38
  /**
39
  * create_tool.
40
  *
41
- * @version 2.3.10
42
  */
43
  public function create_admin_tools_tool() {
44
 
45
  $the_notice = '';
46
- if ( isset( $_GET['wcj_delete_log'] ) && is_super_admin() ) {
47
  update_option( 'wcj_log', '' );
48
  $the_notice .= __( 'Log deleted successfully.', 'woocommerce-jetpack' );
49
  }
4
  *
5
  * The WooCommerce Jetpack Admin Tools class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'admin_tools';
25
  $this->short_desc = __( 'Admin Tools', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Booster for WooCommerce debug and log tools.', 'woocommerce-jetpack' );
27
+ $this->link = 'http://booster.io/features/woocommerce-booster-admin-tools/';
28
  parent::__construct();
29
 
30
  $this->add_tools( array(
39
  /**
40
  * create_tool.
41
  *
42
+ * @version 2.5.0
43
  */
44
  public function create_admin_tools_tool() {
45
 
46
  $the_notice = '';
47
+ if ( isset( $_GET['wcj_delete_log'] ) && wcj_is_user_role( 'administrator' ) ) {
48
  update_option( 'wcj_log', '' );
49
  $the_notice .= __( 'Log deleted successfully.', 'woocommerce-jetpack' );
50
  }
includes/class-wcj-checkout-core-fields.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Checkout Core Fields class.
6
  *
7
- * @version 2.4.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,13 +17,14 @@ class WCJ_Checkout_Core_Fields extends WCJ_Module {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.3.8
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'checkout_core_fields';
25
  $this->short_desc = __( 'Checkout Core Fields', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Customize WooCommerce core checkout fields. Disable/enable fields, set required, change labels and/or placeholders.', 'woocommerce-jetpack' );
 
27
  parent::__construct();
28
 
29
  $this->woocommerce_core_checkout_fields = array(
@@ -203,7 +204,7 @@ class WCJ_Checkout_Core_Fields extends WCJ_Module {
203
  /**
204
  * get_settings.
205
  *
206
- * @version 2.3.8
207
  */
208
  function get_settings() {
209
 
@@ -290,7 +291,7 @@ class WCJ_Checkout_Core_Fields extends WCJ_Module {
290
  'id' => 'wcj_checkout_core_fields_options',
291
  );
292
 
293
- return $this->add_enable_module_setting( $settings );
294
  }
295
  }
296
 
4
  *
5
  * The WooCommerce Jetpack Checkout Core Fields class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'checkout_core_fields';
25
  $this->short_desc = __( 'Checkout Core Fields', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Customize WooCommerce core checkout fields. Disable/enable fields, set required, change labels and/or placeholders.', 'woocommerce-jetpack' );
27
+ $this->link = 'http://booster.io/features/woocommerce-checkout-core-fields/';
28
  parent::__construct();
29
 
30
  $this->woocommerce_core_checkout_fields = array(
204
  /**
205
  * get_settings.
206
  *
207
+ * @version 2.5.0
208
  */
209
  function get_settings() {
210
 
291
  'id' => 'wcj_checkout_core_fields_options',
292
  );
293
 
294
+ return $this->add_standard_settings( $settings );
295
  }
296
  }
297
 
includes/class-wcj-checkout-custom-fields.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Checkout Custom Fields class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,7 +17,7 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.4.7
21
  */
22
  function __construct() {
23
 
@@ -33,9 +33,11 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
33
 
34
  add_action( 'woocommerce_admin_billing_fields', array( $this, 'add_custom_billing_fields_to_admin_order_display' ), PHP_INT_MAX );
35
  add_action( 'woocommerce_admin_shipping_fields', array( $this, 'add_custom_shipping_fields_to_admin_order_display' ), PHP_INT_MAX );
36
- add_action( 'woocommerce_admin_shipping_fields', array( $this, 'add_custom_order_and_account_fields_to_admin_order_display' ), PHP_INT_MAX );
37
 
38
- add_action( 'woocommerce_order_details_after_order_table', array( $this, 'add_custom_fields_to_order_display' ), PHP_INT_MAX );
 
 
39
  add_action( 'woocommerce_email_after_order_table', array( $this, 'add_custom_fields_to_emails' ), PHP_INT_MAX, 2 );
40
 
41
  add_filter( 'woo_ce_order_fields', array( $this, 'add_custom_fields_to_store_exporter' ) );
@@ -294,15 +296,25 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
294
  /**
295
  * add_custom_fields_to_order_display.
296
  *
297
- * @version 2.4.7
298
  * @since 2.3.0
299
  */
300
- function add_custom_fields_to_order_display( $order ) {
301
  $post_meta = get_post_meta( $order->id );
 
302
  foreach( $post_meta as $key => $values ) {
303
 
304
  if ( false !== strpos( $key, 'wcj_checkout_field_' ) && isset( $values[0] ) ) {
305
 
 
 
 
 
 
 
 
 
 
306
  if (
307
  false !== strpos( $key, '_label_' ) ||
308
  false !== strpos( $key, '_type_' ) ||
@@ -322,6 +334,10 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
322
  // TODO convert from before version 2.3.0
323
  }
324
 
 
 
 
 
325
  $the_value = ( is_array( $values[0] ) && isset( $values[0]['value'] ) ) ? $values[0]['value'] : $values[0];
326
 
327
  $the_type_key = str_replace( 'wcj_checkout_field_', 'wcj_checkout_field_type_', $key );
@@ -351,7 +367,16 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
351
  $output .= $the_value;
352
  }
353
 
354
- if ( '' != $output ) echo $output . '<br>';
 
 
 
 
 
 
 
 
 
355
  }
356
  }
357
  }
@@ -445,11 +470,17 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
445
 
446
  /**
447
  * add_custom_order_and_account_fields_to_admin_order_display
 
 
448
  */
449
- public function add_custom_order_and_account_fields_to_admin_order_display( $fields ) {
 
 
 
450
  $fields = $this->add_woocommerce_admin_fields( $fields, 'order' );
451
  $fields = $this->add_woocommerce_admin_fields( $fields, 'account' );
452
  return $fields;
 
453
  }
454
 
455
  /**
@@ -559,43 +590,48 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
559
  /**
560
  * get_settings.
561
  *
562
- * @version 2.4.8
563
  */
564
  public function get_settings() {
565
 
566
  $settings = array(
567
-
568
  array(
569
- 'title' => __( 'Checkout Custom Fields Options', 'woocommerce-jetpack' ),
570
- 'type' => 'title',
571
- 'desc' => '',//__( 'This section lets you add custom checkout fields.', 'woocommerce-jetpack' ),
572
- 'id' => 'wcj_checkout_custom_fields_options',
573
  ),
574
-
575
  array(
576
  'title' => __( 'Add All Fields to Admin Emails', 'woocommerce-jetpack' ),
577
- 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
578
  'id' => 'wcj_checkout_custom_fields_email_all_to_admin',
579
  'default' => 'yes',
580
  'type' => 'checkbox',
581
  ),
582
-
583
  array(
584
  'title' => __( 'Add All Fields to Customers Emails', 'woocommerce-jetpack' ),
585
- 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
586
  'id' => 'wcj_checkout_custom_fields_email_all_to_customer',
587
  'default' => 'yes',
588
  'type' => 'checkbox',
589
  ),
590
-
591
- array( 'type' => 'sectionend', 'id' => 'wcj_checkout_custom_fields_options' ),
592
-
593
  array(
594
- 'title' => __( 'The Fields', 'woocommerce-jetpack' ),
595
- 'type' => 'title',
596
- 'id' => 'wcj_checkout_custom_fields_individual_options',
 
 
 
 
 
 
597
  ),
598
 
 
 
 
 
 
599
  array(
600
  'title' => __( 'Custom Fields Number', 'woocommerce-jetpack' ),
601
  'desc_tip' => __( 'Click "Save changes" after you change this number.', 'woocommerce-jetpack' ),
@@ -629,7 +665,9 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
629
  array(
630
  array(
631
  'title' => __( 'Custom Field', 'woocommerce-jetpack' ) . ' #' . $i,
632
- 'desc' => __( 'enabled', 'woocommerce-jetpack' ),
 
 
633
  'id' => 'wcj_checkout_custom_field_enabled_' . $i,
634
  'default' => 'no',
635
  'type' => 'checkbox',
@@ -848,7 +886,6 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
848
  )
849
  );
850
  }
851
-
852
  $settings[] = array( 'type' => 'sectionend', 'id' => 'wcj_checkout_custom_fields_individual_options' );
853
 
854
  return $this->add_standard_settings( $settings );
4
  *
5
  * The WooCommerce Jetpack Checkout Custom Fields class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  function __construct() {
23
 
33
 
34
  add_action( 'woocommerce_admin_billing_fields', array( $this, 'add_custom_billing_fields_to_admin_order_display' ), PHP_INT_MAX );
35
  add_action( 'woocommerce_admin_shipping_fields', array( $this, 'add_custom_shipping_fields_to_admin_order_display' ), PHP_INT_MAX );
36
+ add_action( 'woocommerce_admin_order_data_after_shipping_address', array( $this, 'add_custom_order_and_account_fields_to_admin_order_display' ), PHP_INT_MAX );
37
 
38
+ if ( 'yes' === get_option( 'wcj_checkout_custom_fields_add_to_order_received', 'yes' ) ) {
39
+ add_action( 'woocommerce_order_details_after_order_table', array( $this, 'add_custom_fields_to_order_display' ), PHP_INT_MAX );
40
+ }
41
  add_action( 'woocommerce_email_after_order_table', array( $this, 'add_custom_fields_to_emails' ), PHP_INT_MAX, 2 );
42
 
43
  add_filter( 'woo_ce_order_fields', array( $this, 'add_custom_fields_to_store_exporter' ) );
296
  /**
297
  * add_custom_fields_to_order_display.
298
  *
299
+ * @version 2.5.0
300
  * @since 2.3.0
301
  */
302
+ function add_custom_fields_to_order_display( $order, $section = '', $add_styling = false ) {
303
  $post_meta = get_post_meta( $order->id );
304
+ $final_output = '';
305
  foreach( $post_meta as $key => $values ) {
306
 
307
  if ( false !== strpos( $key, 'wcj_checkout_field_' ) && isset( $values[0] ) ) {
308
 
309
+ if ( '' != $section ) {
310
+ // $the_section_meta_key = str_replace( 'wcj_checkout_field_', 'wcj_checkout_field_section_', $key );
311
+ //$the_section = current( explode( '_', $key ) );
312
+ $the_section = strtok( $key, '_' );
313
+ if ( $section !== $the_section ) {
314
+ continue;
315
+ }
316
+ }
317
+
318
  if (
319
  false !== strpos( $key, '_label_' ) ||
320
  false !== strpos( $key, '_type_' ) ||
334
  // TODO convert from before version 2.3.0
335
  }
336
 
337
+ if ( $add_styling && '' != $output ) {
338
+ $output = '<strong>' . $output . '</strong>';
339
+ }
340
+
341
  $the_value = ( is_array( $values[0] ) && isset( $values[0]['value'] ) ) ? $values[0]['value'] : $values[0];
342
 
343
  $the_type_key = str_replace( 'wcj_checkout_field_', 'wcj_checkout_field_type_', $key );
367
  $output .= $the_value;
368
  }
369
 
370
+ if ( '' != $output ) {
371
+ $final_output .= $output . '<br>';
372
+ }
373
+ }
374
+ }
375
+ if ( '' != $final_output ) {
376
+ if ( $add_styling ) {
377
+ echo '<div class="clear"></div><p>' . $final_output . '</p>';
378
+ } else {
379
+ echo $final_output;
380
  }
381
  }
382
  }
470
 
471
  /**
472
  * add_custom_order_and_account_fields_to_admin_order_display
473
+ *
474
+ * @version 2.5.0
475
  */
476
+ public function add_custom_order_and_account_fields_to_admin_order_display( $order ) {
477
+ $this->add_custom_fields_to_order_display( $order, 'order', true );
478
+ $this->add_custom_fields_to_order_display( $order, 'account', true );
479
+ /*
480
  $fields = $this->add_woocommerce_admin_fields( $fields, 'order' );
481
  $fields = $this->add_woocommerce_admin_fields( $fields, 'account' );
482
  return $fields;
483
+ */
484
  }
485
 
486
  /**
590
  /**
591
  * get_settings.
592
  *
593
+ * @version 2.5.0
594
  */
595
  public function get_settings() {
596
 
597
  $settings = array(
 
598
  array(
599
+ 'title' => __( 'Checkout Custom Fields Options', 'woocommerce-jetpack' ),
600
+ 'type' => 'title',
601
+ 'desc' => '',//__( 'This section lets you add custom checkout fields.', 'woocommerce-jetpack' ),
602
+ 'id' => 'wcj_checkout_custom_fields_options',
603
  ),
 
604
  array(
605
  'title' => __( 'Add All Fields to Admin Emails', 'woocommerce-jetpack' ),
606
+ 'desc' => __( 'Add', 'woocommerce-jetpack' ),
607
  'id' => 'wcj_checkout_custom_fields_email_all_to_admin',
608
  'default' => 'yes',
609
  'type' => 'checkbox',
610
  ),
 
611
  array(
612
  'title' => __( 'Add All Fields to Customers Emails', 'woocommerce-jetpack' ),
613
+ 'desc' => __( 'Add', 'woocommerce-jetpack' ),
614
  'id' => 'wcj_checkout_custom_fields_email_all_to_customer',
615
  'default' => 'yes',
616
  'type' => 'checkbox',
617
  ),
 
 
 
618
  array(
619
+ 'title' => __( 'Add All Fields to "Order Received" Page', 'woocommerce-jetpack' ),
620
+ 'desc' => __( 'Add', 'woocommerce-jetpack' ),
621
+ 'id' => 'wcj_checkout_custom_fields_add_to_order_received',
622
+ 'default' => 'yes',
623
+ 'type' => 'checkbox',
624
+ ),
625
+ array(
626
+ 'type' => 'sectionend',
627
+ 'id' => 'wcj_checkout_custom_fields_options',
628
  ),
629
 
630
+ array(
631
+ 'title' => __( 'The Fields', 'woocommerce-jetpack' ),
632
+ 'type' => 'title',
633
+ 'id' => 'wcj_checkout_custom_fields_individual_options',
634
+ ),
635
  array(
636
  'title' => __( 'Custom Fields Number', 'woocommerce-jetpack' ),
637
  'desc_tip' => __( 'Click "Save changes" after you change this number.', 'woocommerce-jetpack' ),
665
  array(
666
  array(
667
  'title' => __( 'Custom Field', 'woocommerce-jetpack' ) . ' #' . $i,
668
+ 'desc' => __( 'Enabled', 'woocommerce-jetpack' ),
669
+ 'desc_tip' => /* __( 'Key', 'woocommerce-jetpack' ) . ': ' . */
670
+ get_option( 'wcj_checkout_custom_field_section_' . $i, 'billing' ) . '_' . 'wcj_checkout_field_' . $i,
671
  'id' => 'wcj_checkout_custom_field_enabled_' . $i,
672
  'default' => 'no',
673
  'type' => 'checkbox',
886
  )
887
  );
888
  }
 
889
  $settings[] = array( 'type' => 'sectionend', 'id' => 'wcj_checkout_custom_fields_individual_options' );
890
 
891
  return $this->add_standard_settings( $settings );
includes/class-wcj-checkout-files-upload.php CHANGED
@@ -4,9 +4,10 @@
4
  *
5
  * The WooCommerce Jetpack Checkout Files Upload class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.4.5
9
  * @author Algoritmika Ltd.
 
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) exit;
@@ -18,33 +19,34 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
18
  /**
19
  * Constructor.
20
  *
21
- * @version 2.4.8
 
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'checkout_files_upload';
26
  $this->short_desc = __( 'Checkout Files Upload', 'woocommerce-jetpack' );
27
- $this->desc = __( 'Let customers upload files on WooCommerce checkout.', 'woocommerce-jetpack' );
28
  $this->link = 'http://booster.io/features/woocommerce-checkout-files-upload/';
29
  parent::__construct();
30
 
31
  if ( $this->is_enabled() ) {
32
  add_action( 'add_meta_boxes', array( $this, 'add_file_admin_order_meta_box' ) );
33
  add_action( 'init', array( $this, 'process_checkout_files_upload' ) );
34
- /* add_action(
35
- get_option( 'wcj_checkout_files_upload_hook', 'woocommerce_before_checkout_form' ),
36
- array( $this, 'add_files_upload_form_to_checkout_frontend' )
37
- ); */
38
  $total_number = apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
39
  for ( $i = 1; $i <= $total_number; $i++ ) {
40
- add_action(
41
- get_option( 'wcj_checkout_files_upload_hook_' . $i, 'woocommerce_before_checkout_form' ),
42
- array( $this, 'add_files_upload_form_to_checkout_frontend' ),
43
- get_option( 'wcj_checkout_files_upload_hook_priority_' . $i, 10 )
44
- );
 
 
 
 
45
  }
46
  add_action( 'woocommerce_checkout_order_processed', array( $this, 'add_files_to_order' ), PHP_INT_MAX, 2 );
47
- add_action( 'woocommerce_after_checkout_validation', array( $this, 'validate' ) );
48
  add_action( 'woocommerce_order_details_after_order_table', array( $this, 'add_files_to_order_display' ), PHP_INT_MAX );
49
  add_action( 'woocommerce_email_after_order_table', array( $this, 'add_files_to_order_display' ), PHP_INT_MAX );
50
  }
@@ -70,14 +72,19 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
70
  }
71
 
72
  /**
73
- * validate.
74
  *
75
- * @version 2.4.7
 
76
  */
77
- function validate( $posted ) {
78
  $total_number = apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
79
  for ( $i = 1; $i <= $total_number; $i++ ) {
80
- if ( 'yes' === get_option( 'wcj_checkout_files_upload_enabled_' . $i, 'yes' ) && $this->is_visible( $i ) ) {
 
 
 
 
81
  if ( 'yes' === get_option( 'wcj_checkout_files_upload_required_' . $i, 'no' ) && ! isset( $_SESSION[ 'wcj_checkout_files_upload_' . $i ] ) ) {
82
  // Is required
83
  wc_add_notice( get_option( 'wcj_checkout_files_upload_notice_required_' . $i, __( 'File is required!', 'woocommerce-jetpack' ) ), 'error' );
@@ -100,6 +107,9 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
100
 
101
  /**
102
  * add_file_admin_order_meta_box.
 
 
 
103
  */
104
  function add_file_admin_order_meta_box() {
105
  $screen = 'shop_order';
@@ -117,6 +127,9 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
117
 
118
  /**
119
  * create_file_admin_order_meta_box.
 
 
 
120
  */
121
  function create_file_admin_order_meta_box() {
122
  $order_id = get_the_ID();
@@ -138,6 +151,9 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
138
 
139
  /**
140
  * add_files_to_order.
 
 
 
141
  */
142
  function add_files_to_order( $order_id, $posted ) {
143
  $upload_dir = wcj_get_wcj_uploads_dir( 'checkout_files_upload' );
@@ -165,6 +181,9 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
165
 
166
  /**
167
  * process_checkout_files_upload.
 
 
 
168
  */
169
  function process_checkout_files_upload() {
170
  if ( ! session_id() ) {
@@ -174,11 +193,25 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
174
  $total_number = apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
175
  for ( $i = 1; $i <= $total_number; $i++ ) {
176
  if ( isset( $_POST[ 'wcj_remove_checkout_file_' . $i ] ) ) {
177
- $file_name = 'wcj_checkout_files_upload_' . $i;
178
- unlink( $_SESSION[ $file_name ]['tmp_name'] );
179
- wc_add_notice( sprintf( get_option( 'wcj_checkout_files_upload_notice_success_remove_' . $i,
180
- __( 'File "%s" was successfully removed.', 'woocommerce-jetpack' ) ), $_SESSION[ $file_name ]['name'] ) );
181
- unset( $_SESSION[ $file_name ] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
182
  }
183
  }
184
  // Upload file
@@ -186,12 +219,34 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
186
  if ( isset( $_POST[ 'wcj_upload_checkout_file_' . $i ] ) ) {
187
  $file_name = 'wcj_checkout_files_upload_' . $i;
188
  if ( isset( $_FILES[ $file_name ] ) && '' != $_FILES[ $file_name ]['tmp_name'] ) {
189
- $_SESSION[ $file_name ] = $_FILES[ $file_name ];
190
- $tmp_dest_file = tempnam( sys_get_temp_dir(), 'wcj' );
191
- move_uploaded_file( $_SESSION[ $file_name ]['tmp_name'], $tmp_dest_file );
192
- $_SESSION[ $file_name ]['tmp_name'] = $tmp_dest_file;
193
- wc_add_notice( sprintf( get_option( 'wcj_checkout_files_upload_notice_success_upload_' . $i,
194
- __( 'File "%s" was successfully uploaded.', 'woocommerce-jetpack' ) ), $_SESSION[ $file_name ]['name'] ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
  } else {
196
  wc_add_notice( get_option( 'wcj_checkout_files_upload_notice_upload_no_file_' . $i,
197
  __( 'Please select file to upload!', 'woocommerce-jetpack' ) ), 'notice' );
@@ -202,7 +257,7 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
202
  if ( isset( $_GET['wcj_download_checkout_file_admin'] ) ) {
203
  $tmp_file_name = wcj_get_wcj_uploads_dir( 'checkout_files_upload' ) . '/' . $_GET['wcj_download_checkout_file_admin'];
204
  $file_name = get_post_meta( $_GET['post'], '_' . 'wcj_checkout_files_upload_real_name_' . $_GET['wcj_checkout_file_number'], true );
205
- if ( is_super_admin() || is_shop_manager() ) {
206
  header( "Expires: 0" );
207
  header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
208
  header( "Cache-Control: private", false );
@@ -214,9 +269,21 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
214
  }
215
  }
216
  // User file download
217
- if ( isset( $_GET['wcj_download_checkout_file'] ) ) {
218
- $tmp_file_name = $_SESSION[ $_GET['wcj_download_checkout_file'] ]['tmp_name'];
219
- $file_name = $_SESSION[ $_GET['wcj_download_checkout_file'] ]['name'];
 
 
 
 
 
 
 
 
 
 
 
 
220
  header( "Expires: 0" );
221
  header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
222
  header( "Cache-Control: private", false );
@@ -226,37 +293,27 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
226
  readfile( $tmp_file_name );
227
  exit();
228
  }
229
- /* // Upload all files
230
- if ( isset( $_POST['wcj_checkout_files_upload_submit'] ) ) {
231
- $total_number = apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
232
- for ( $i = 1; $i <= $total_number; $i++ ) {
233
- $file_name = 'wcj_checkout_files_upload_' . $i;
234
- if ( isset( $_FILES[ $file_name ] ) && '' != $_FILES[ $file_name ]['tmp_name'] ) {
235
- $_SESSION[ $file_name ] = $_FILES[ $file_name ];
236
- $tmp_dest_file = tempnam( sys_get_temp_dir(), 'wcj' );
237
- move_uploaded_file( $_SESSION[ $file_name ]['tmp_name'], $tmp_dest_file );
238
- $_SESSION[ $file_name ]['tmp_name'] = $tmp_dest_file;
239
- wc_add_notice( sprintf( get_option( 'wcj_checkout_files_upload_notice_success_upload_' . $i,
240
- __( 'File "%s" was successfully uploaded.', 'woocommerce-jetpack' ) ), $_SESSION[ $file_name ]['name'] ) );
241
- }
242
- }
243
- } */
244
  }
245
 
246
  /**
247
  * is_visible.
248
  *
249
- * @version 2.4.7
250
  * @since 2.4.7
251
  */
252
- function is_visible( $i ) {
253
 
254
  // Include by product id
255
  $products_in = get_option( 'wcj_checkout_files_upload_show_products_in_' . $i );
256
- // $do_skip_by_products = false;
257
  if ( ! empty( $products_in ) ) {
258
  $do_skip_by_products = true;
259
- foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
 
 
 
 
 
 
260
  if ( in_array( $values['product_id'], $products_in ) ) {
261
  $do_skip_by_products = false;
262
  break;
@@ -267,10 +324,15 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
267
 
268
  // Include by product category
269
  $categories_in = get_option( 'wcj_checkout_files_upload_show_cats_in_' . $i );
270
- // $do_skip_by_cats = false;
271
  if ( ! empty( $categories_in ) ) {
272
  $do_skip_by_cats = true;
273
- foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
 
 
 
 
 
 
274
  $product_categories = get_the_terms( $values['product_id'], 'product_cat' );
275
  if ( empty( $product_categories ) ) continue;
276
  foreach( $product_categories as $product_category ) {
@@ -286,10 +348,15 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
286
 
287
  // Include by product tag
288
  $tags_in = get_option( 'wcj_checkout_files_upload_show_tags_in_' . $i );
289
- // $do_skip_by_tags = false;
290
  if ( ! empty( $tags_in ) ) {
291
  $do_skip_by_tags = true;
292
- foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
 
 
 
 
 
 
293
  $product_tags = get_the_terms( $values['product_id'], 'product_tag' );
294
  if ( empty( $product_tags ) ) continue;
295
  foreach( $product_tags as $product_tag ) {
@@ -303,20 +370,96 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
303
  if ( $do_skip_by_tags ) return false;
304
  }
305
 
306
- // return ! ( $do_skip_by_products && $do_skip_by_cats && $do_skip_by_tags );
307
  return true;
308
  }
309
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
  /**
311
  * add_files_upload_form_to_checkout_frontend.
312
  *
313
- * @version 2.4.7
 
314
  */
315
  function add_files_upload_form_to_checkout_frontend() {
316
  $html = '';
317
- // $html .= '<form enctype="multipart/form-data" action="" method="POST">';
318
  $total_number = apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
319
- // $html .= '<table>';
320
  $current_filter = current_filter();
321
  $current_filter_priority = wcj_current_filter_priority();
322
  for ( $i = 1; $i <= $total_number; $i++ ) {
@@ -326,77 +469,18 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
326
  $current_filter_priority == get_option( 'wcj_checkout_files_upload_hook_priority_' . $i, 10 ) &&
327
  $this->is_visible( $i )
328
  ) {
329
- $html .= '<form enctype="multipart/form-data" action="" method="POST">';
330
- $html .= '<table>';
331
- if ( '' != ( $the_label = get_option( 'wcj_checkout_files_upload_label_' . $i, '' ) ) ) {
332
- $html .= '<tr>';
333
- $html .= '<td colspan="2">';
334
- $html .= '<label for="wcj_checkout_files_upload_' . $i . '">' . $the_label . '</label>';
335
- if ( 'yes' === get_option( 'wcj_checkout_files_upload_required_' . $i, 'no' ) ) {
336
- $html .= '&nbsp;<abbr class="required" title="required">*</abbr>';
337
- }
338
- $html .= '</td>';
339
- $html .= '</tr>';
340
- }
341
- if ( ! isset( $_SESSION[ 'wcj_checkout_files_upload_' . $i ] ) ) {
342
- $html .= '<tr>';
343
- $html .= '<td style="width:50%;">';
344
- $html .= '<input type="file" name="wcj_checkout_files_upload_' . $i . '" id="wcj_checkout_files_upload_' . $i .
345
- '" accept="' . get_option( 'wcj_checkout_files_upload_file_accept_' . $i, '' ) . '">';
346
- $html .= '</td>';
347
- $html .= '<td style="width:50%;">';
348
- $html .= '<input type="submit"' .
349
- ' class="button alt"' .
350
- ' style="width:100%;"' .
351
- ' name="wcj_upload_checkout_file_' . $i . '"' .
352
- ' id="wcj_upload_checkout_file_' . $i . '"' .
353
- ' value="' . get_option( 'wcj_checkout_files_upload_label_upload_button_' . $i, __( 'Upload', 'woocommerce-jetpack' ) ) . '"' .
354
- ' data-value="' . get_option( 'wcj_checkout_files_upload_label_upload_button_' . $i, __( 'Upload', 'woocommerce-jetpack' ) ) . '">';
355
- $html .= '</td>';
356
- $html .= '</tr>';
357
- } else {
358
- $html .= '<tr>';
359
- $html .= '<td style="width:50%;">';
360
- $html .= '<a href="' . add_query_arg( 'wcj_download_checkout_file', 'wcj_checkout_files_upload_' . $i ) . '">' .
361
- $_SESSION[ 'wcj_checkout_files_upload_' . $i ]['name'] . '</a>';
362
- $html .= '</td>';
363
- $html .= '<td style="width:50%;">';
364
- $html .= '<input type="submit"' .
365
- ' class="button"' .
366
- ' style="width:100%;"' .
367
- ' name="wcj_remove_checkout_file_' . $i . '"' .
368
- ' id="wcj_remove_checkout_file_' . $i . '"' .
369
- ' value="' . get_option( 'wcj_checkout_files_upload_label_remove_button_' . $i, __( 'Remove', 'woocommerce-jetpack' ) ) . '"' .
370
- ' data-value="' . get_option( 'wcj_checkout_files_upload_label_remove_button_' . $i, __( 'Remove', 'woocommerce-jetpack' ) ) . '">';
371
- $html .= '</td>';
372
- $html .= '</tr>';
373
- }
374
- $html .= '</table>';
375
- $html .= '</form>';
376
  }
377
  }
378
- /* if ( $total_number > 1 ) {
379
- $html .= '<tr>';
380
- $html .= '<td colspan="2">';
381
- $html .= '<input type="submit"' .
382
- ' class="button alt"' .
383
- ' name="wcj_checkout_files_upload_submit"' .
384
- ' id="wcj_checkout_files_upload_submit"' .
385
- ' value="' . __( 'Upload All', 'woocommerce-jetpack' ) . '"' .
386
- ' data-value="' . __( 'Upload All', 'woocommerce-jetpack' ) . '"></p>';
387
- $html .= '</td>';
388
- $html .= '</tr>';
389
- } */
390
- // $html .= '</table>';
391
- // $html .= '</form>';
392
  echo $html;
393
  }
394
 
395
  /**
396
  * get_settings.
397
  *
398
- * @version 2.4.7
399
- * @todo styling options; options to place form on: cart, order review and my account pages.
400
  */
401
  function get_settings() {
402
 
@@ -424,16 +508,6 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
424
  'type' => 'title',
425
  'id' => 'wcj_checkout_files_upload_options',
426
  ),
427
- /* array(
428
- 'title' => __( 'Position', 'woocommerce-jetpack' ),
429
- 'id' => 'wcj_checkout_files_upload_hook',
430
- 'default' => 'woocommerce_before_checkout_form',
431
- 'type' => 'select',
432
- 'options' => array(
433
- 'woocommerce_before_checkout_form' => __( 'Before checkout form', 'woocommerce-jetpack' ),
434
- 'woocommerce_after_checkout_form' => __( 'After checkout form', 'woocommerce-jetpack' ),
435
- ),
436
- ), */
437
  array(
438
  'title' => __( 'Total Files', 'woocommerce-jetpack' ),
439
  'id' => 'wcj_checkout_files_upload_total_number',
@@ -471,24 +545,7 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
471
  'options' => array(
472
  'woocommerce_before_checkout_form' => __( 'Before checkout form', 'woocommerce-jetpack' ),
473
  'woocommerce_after_checkout_form' => __( 'After checkout form', 'woocommerce-jetpack' ),
474
-
475
- /* 'woocommerce_before_checkout_billing_form' => __( 'Before checkout billing form', 'woocommerce-jetpack' ),
476
- 'woocommerce_after_checkout_billing_form' => __( 'After checkout billing form', 'woocommerce-jetpack' ),
477
- 'woocommerce_before_checkout_registration_form' => __( 'Before checkout registration form', 'woocommerce-jetpack' ),
478
- 'woocommerce_after_checkout_registration_form' => __( 'After checkout registration form', 'woocommerce-jetpack' ), */
479
-
480
- /* 'woocommerce_before_checkout_shipping_form' => __( 'Before checkout shipping form', 'woocommerce-jetpack' ),
481
- 'woocommerce_after_checkout_shipping_form' => __( 'After checkout shipping form', 'woocommerce-jetpack' ),
482
- 'woocommerce_before_order_notes' => __( 'Before order notes', 'woocommerce-jetpack' ),
483
- 'woocommerce_after_order_notes' => __( 'After order notes', 'woocommerce-jetpack' ), */
484
-
485
- /* 'woocommerce_checkout_before_customer_details' => __( 'Before checkout customer details', 'woocommerce-jetpack' ),
486
- 'woocommerce_checkout_billing' => __( 'Inside checkout billing', 'woocommerce-jetpack' ),
487
- 'woocommerce_checkout_shipping' => __( 'Inside checkout shipping', 'woocommerce-jetpack' ),
488
- 'woocommerce_checkout_after_customer_details' => __( 'After checkout customer details', 'woocommerce-jetpack' ),
489
- 'woocommerce_checkout_before_order_review' => __( 'Before checkout order review', 'woocommerce-jetpack' ),
490
- 'woocommerce_checkout_order_review' => __( 'Inside checkout order review', 'woocommerce-jetpack' ),
491
- 'woocommerce_checkout_after_order_review' => __( 'After checkout order review', 'woocommerce-jetpack' ), */
492
  ),
493
  'css' => 'width:250px;',
494
  ),
@@ -500,6 +557,18 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
500
  'custom_attributes' => array( 'min' => '0' ),
501
  'css' => 'width:250px;',
502
  ),
 
 
 
 
 
 
 
 
 
 
 
 
503
  array(
504
  'desc' => __( 'Label', 'woocommerce-jetpack' ),
505
  'desc_tip' => __( 'Leave blank to disable label', 'woocommerce-jetpack' ),
@@ -568,16 +637,6 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
568
  'type' => 'textarea',
569
  'css' => 'width:250px;',
570
  ),
571
- /* array(
572
- 'title' => '',
573
- 'desc' => __( 'PRODUCTS to HIDE this field', 'woocommerce-jetpack' ),
574
- 'desc_tip' => __( 'To hide this field from some products, enter products here.', 'woocommerce-jetpack' ),
575
- 'id' => 'wcj_checkout_files_upload_hide_in_products_' . $i,
576
- 'default' => '',
577
- 'class' => 'chosen_select',
578
- 'type' => 'multiselect',
579
- 'options' => $products_options,
580
- ), */
581
  array(
582
  'title' => '',
583
  'desc' => __( 'PRODUCTS to show this field', 'woocommerce-jetpack' ),
@@ -588,16 +647,6 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
588
  'type' => 'multiselect',
589
  'options' => $products_options,
590
  ),
591
- /* array(
592
- 'title' => '',
593
- 'desc' => __( 'CATEGORIES to HIDE this field', 'woocommerce-jetpack' ),
594
- 'desc_tip' => __( 'To hide this field from some categories, enter categories here.', 'woocommerce-jetpack' ),
595
- 'id' => 'wcj_checkout_files_upload_hide_in_cats_' . $i,
596
- 'default' => '',
597
- 'class' => 'chosen_select',
598
- 'type' => 'multiselect',
599
- 'options' => $product_cats_options,
600
- ), */
601
  array(
602
  'title' => '',
603
  'desc' => __( 'CATEGORIES to show this field', 'woocommerce-jetpack' ),
@@ -608,16 +657,6 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
608
  'type' => 'multiselect',
609
  'options' => $product_cats_options,
610
  ),
611
- /* array(
612
- 'title' => '',
613
- 'desc' => __( 'TAGS to HIDE this field', 'woocommerce-jetpack' ),
614
- 'desc_tip' => __( 'To hide this field from some tags, enter tags here.', 'woocommerce-jetpack' ),
615
- 'id' => 'wcj_checkout_files_upload_hide_in_tags_' . $i,
616
- 'default' => '',
617
- 'class' => 'chosen_select',
618
- 'type' => 'multiselect',
619
- 'options' => $product_tags_options,
620
- ), */
621
  array(
622
  'title' => '',
623
  'desc' => __( 'TAGS to show this field', 'woocommerce-jetpack' ),
4
  *
5
  * The WooCommerce Jetpack Checkout Files Upload class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.4.5
9
  * @author Algoritmika Ltd.
10
+ * @todo styling options;
11
  */
12
 
13
  if ( ! defined( 'ABSPATH' ) ) exit;
19
  /**
20
  * Constructor.
21
  *
22
+ * @version 2.5.0
23
+ * @since 2.4.5
24
  */
25
  function __construct() {
26
 
27
  $this->id = 'checkout_files_upload';
28
  $this->short_desc = __( 'Checkout Files Upload', 'woocommerce-jetpack' );
29
+ $this->desc = __( 'Let customers upload files on (or after) WooCommerce checkout.', 'woocommerce-jetpack' );
30
  $this->link = 'http://booster.io/features/woocommerce-checkout-files-upload/';
31
  parent::__construct();
32
 
33
  if ( $this->is_enabled() ) {
34
  add_action( 'add_meta_boxes', array( $this, 'add_file_admin_order_meta_box' ) );
35
  add_action( 'init', array( $this, 'process_checkout_files_upload' ) );
 
 
 
 
36
  $total_number = apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
37
  for ( $i = 1; $i <= $total_number; $i++ ) {
38
+ if ( 'disable' != ( $the_hook = get_option( 'wcj_checkout_files_upload_hook_' . $i, 'woocommerce_before_checkout_form' ) ) ) {
39
+ add_action( $the_hook, array( $this, 'add_files_upload_form_to_checkout_frontend' ), get_option( 'wcj_checkout_files_upload_hook_priority_' . $i, 10 ) );
40
+ }
41
+ if ( 'yes' === get_option( 'wcj_checkout_files_upload_add_to_thankyou_' . $i, 'no' ) ) {
42
+ add_action( 'woocommerce_thankyou', array( $this, 'add_files_upload_form_to_thankyou_and_myaccount_page' ), PHP_INT_MAX, 1 );
43
+ }
44
+ if ( 'yes' === get_option( 'wcj_checkout_files_upload_add_to_myaccount_' . $i, 'no' ) ) {
45
+ add_action( 'woocommerce_view_order', array( $this, 'add_files_upload_form_to_thankyou_and_myaccount_page' ), PHP_INT_MAX, 1 );
46
+ }
47
  }
48
  add_action( 'woocommerce_checkout_order_processed', array( $this, 'add_files_to_order' ), PHP_INT_MAX, 2 );
49
+ add_action( 'woocommerce_after_checkout_validation', array( $this, 'validate_on_checkout' ) );
50
  add_action( 'woocommerce_order_details_after_order_table', array( $this, 'add_files_to_order_display' ), PHP_INT_MAX );
51
  add_action( 'woocommerce_email_after_order_table', array( $this, 'add_files_to_order_display' ), PHP_INT_MAX );
52
  }
72
  }
73
 
74
  /**
75
+ * validate_on_checkout.
76
  *
77
+ * @version 2.5.0
78
+ * @since 2.4.5
79
  */
80
+ function validate_on_checkout( $posted ) {
81
  $total_number = apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
82
  for ( $i = 1; $i <= $total_number; $i++ ) {
83
+ if (
84
+ 'yes' === get_option( 'wcj_checkout_files_upload_enabled_' . $i, 'yes' ) &&
85
+ $this->is_visible( $i ) &&
86
+ 'disable' != get_option( 'wcj_checkout_files_upload_hook_' . $i, 'woocommerce_before_checkout_form' )
87
+ ) {
88
  if ( 'yes' === get_option( 'wcj_checkout_files_upload_required_' . $i, 'no' ) && ! isset( $_SESSION[ 'wcj_checkout_files_upload_' . $i ] ) ) {
89
  // Is required
90
  wc_add_notice( get_option( 'wcj_checkout_files_upload_notice_required_' . $i, __( 'File is required!', 'woocommerce-jetpack' ) ), 'error' );
107
 
108
  /**
109
  * add_file_admin_order_meta_box.
110
+ *
111
+ * @version 2.4.5
112
+ * @since 2.4.5
113
  */
114
  function add_file_admin_order_meta_box() {
115
  $screen = 'shop_order';
127
 
128
  /**
129
  * create_file_admin_order_meta_box.
130
+ *
131
+ * @version 2.4.5
132
+ * @since 2.4.5
133
  */
134
  function create_file_admin_order_meta_box() {
135
  $order_id = get_the_ID();
151
 
152
  /**
153
  * add_files_to_order.
154
+ *
155
+ * @version 2.4.5
156
+ * @since 2.4.5
157
  */
158
  function add_files_to_order( $order_id, $posted ) {
159
  $upload_dir = wcj_get_wcj_uploads_dir( 'checkout_files_upload' );
181
 
182
  /**
183
  * process_checkout_files_upload.
184
+ *
185
+ * @version 2.5.0
186
+ * @since 2.4.5
187
  */
188
  function process_checkout_files_upload() {
189
  if ( ! session_id() ) {
193
  $total_number = apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
194
  for ( $i = 1; $i <= $total_number; $i++ ) {
195
  if ( isset( $_POST[ 'wcj_remove_checkout_file_' . $i ] ) ) {
196
+ if ( isset( $_POST[ 'wcj_checkout_files_upload_order_id_' . $i ] ) ) {
197
+ $order_id = $_POST[ 'wcj_checkout_files_upload_order_id_' . $i ];
198
+ $order_file_name = get_post_meta( $order_id, '_' . 'wcj_checkout_files_upload_' . $i, true );
199
+ if ( '' != $order_file_name ) {
200
+ $file_path = wcj_get_wcj_uploads_dir( 'checkout_files_upload' ) . '/' . $order_file_name;
201
+ unlink( $file_path );
202
+ $file_name = get_post_meta( $order_id, '_' . 'wcj_checkout_files_upload_real_name_' . $i, true );
203
+ wc_add_notice( sprintf( get_option( 'wcj_checkout_files_upload_notice_success_remove_' . $i,
204
+ __( 'File "%s" was successfully removed.', 'woocommerce-jetpack' ) ), $file_name ) );
205
+ delete_post_meta( $order_id, '_' . 'wcj_checkout_files_upload_' . $i );
206
+ delete_post_meta( $order_id, '_' . 'wcj_checkout_files_upload_real_name_' . $i );
207
+ }
208
+ } else {
209
+ $file_name = 'wcj_checkout_files_upload_' . $i;
210
+ unlink( $_SESSION[ $file_name ]['tmp_name'] );
211
+ wc_add_notice( sprintf( get_option( 'wcj_checkout_files_upload_notice_success_remove_' . $i,
212
+ __( 'File "%s" was successfully removed.', 'woocommerce-jetpack' ) ), $_SESSION[ $file_name ]['name'] ) );
213
+ unset( $_SESSION[ $file_name ] );
214
+ }
215
  }
216
  }
217
  // Upload file
219
  if ( isset( $_POST[ 'wcj_upload_checkout_file_' . $i ] ) ) {
220
  $file_name = 'wcj_checkout_files_upload_' . $i;
221
  if ( isset( $_FILES[ $file_name ] ) && '' != $_FILES[ $file_name ]['tmp_name'] ) {
222
+ // Validate
223
+ $is_valid = true;
224
+ if ( '' != ( $file_accept = get_option( 'wcj_checkout_files_upload_file_accept_' . $i, '' ) ) && isset( $_FILES[ $file_name ] ) ) {
225
+ // Validate file type
226
+ $file_accept = explode( ',', $file_accept );
227
+ if ( is_array( $file_accept ) && ! empty( $file_accept ) ) {
228
+ $real_file_name = $_FILES[ $file_name ]['name'];
229
+ $file_type = '.' . pathinfo( $real_file_name, PATHINFO_EXTENSION );
230
+ if ( ! in_array( $file_type, $file_accept ) ) {
231
+ wc_add_notice( sprintf( get_option( 'wcj_checkout_files_upload_notice_wrong_file_type_' . $i,
232
+ __( 'Wrong file type: "%s"!', 'woocommerce-jetpack' ) ), $real_file_name ), 'error' );
233
+ $is_valid = false;
234
+ }
235
+ }
236
+ }
237
+ if ( $is_valid ) {
238
+ // To session
239
+ $_SESSION[ $file_name ] = $_FILES[ $file_name ];
240
+ $tmp_dest_file = tempnam( sys_get_temp_dir(), 'wcj' );
241
+ move_uploaded_file( $_SESSION[ $file_name ]['tmp_name'], $tmp_dest_file );
242
+ $_SESSION[ $file_name ]['tmp_name'] = $tmp_dest_file;
243
+ wc_add_notice( sprintf( get_option( 'wcj_checkout_files_upload_notice_success_upload_' . $i,
244
+ __( 'File "%s" was successfully uploaded.', 'woocommerce-jetpack' ) ), $_SESSION[ $file_name ]['name'] ) );
245
+ // To order
246
+ if ( isset( $_POST[ 'wcj_checkout_files_upload_order_id_' . $i ] ) ) {
247
+ $this->add_files_to_order( $_POST[ 'wcj_checkout_files_upload_order_id_' . $i ], null );
248
+ }
249
+ }
250
  } else {
251
  wc_add_notice( get_option( 'wcj_checkout_files_upload_notice_upload_no_file_' . $i,
252
  __( 'Please select file to upload!', 'woocommerce-jetpack' ) ), 'notice' );
257
  if ( isset( $_GET['wcj_download_checkout_file_admin'] ) ) {
258
  $tmp_file_name = wcj_get_wcj_uploads_dir( 'checkout_files_upload' ) . '/' . $_GET['wcj_download_checkout_file_admin'];
259
  $file_name = get_post_meta( $_GET['post'], '_' . 'wcj_checkout_files_upload_real_name_' . $_GET['wcj_checkout_file_number'], true );
260
+ if ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) {
261
  header( "Expires: 0" );
262
  header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
263
  header( "Cache-Control: private", false );
269
  }
270
  }
271
  // User file download
272
+ if ( isset( $_GET['wcj_download_checkout_file'] ) && isset( $_GET['_wpnonce'] ) && ( false !== wp_verify_nonce( $_GET['_wpnonce'], 'wcj_download_checkout_file' ) ) ) {
273
+ $i = $_GET['wcj_download_checkout_file'];
274
+ if ( isset( $_GET['order-received'] ) || isset( $_GET['view-order'] ) ) {
275
+ $order_id = isset( $_GET['order-received'] ) ? $_GET['order-received'] : $_GET['view-order'];
276
+ $the_order = wc_get_order( $order_id );
277
+ if ( ! $the_order->key_is_valid( $_GET['key'] ) ) {
278
+ return;
279
+ }
280
+ $order_file_name = get_post_meta( $order_id, '_' . 'wcj_checkout_files_upload_' . $i, true );
281
+ $tmp_file_name = wcj_get_wcj_uploads_dir( 'checkout_files_upload' ) . '/' . $order_file_name;
282
+ $file_name = get_post_meta( $order_id, '_' . 'wcj_checkout_files_upload_real_name_' . $i, true );
283
+ } else {
284
+ $tmp_file_name = $_SESSION[ 'wcj_checkout_files_upload_' . $i ]['tmp_name'];
285
+ $file_name = $_SESSION[ 'wcj_checkout_files_upload_' . $i ]['name'];
286
+ }
287
  header( "Expires: 0" );
288
  header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
289
  header( "Cache-Control: private", false );
293
  readfile( $tmp_file_name );
294
  exit();
295
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
296
  }
297
 
298
  /**
299
  * is_visible.
300
  *
301
+ * @version 2.5.0
302
  * @since 2.4.7
303
  */
304
+ function is_visible( $i, $order_id = 0 ) {
305
 
306
  // Include by product id
307
  $products_in = get_option( 'wcj_checkout_files_upload_show_products_in_' . $i );
 
308
  if ( ! empty( $products_in ) ) {
309
  $do_skip_by_products = true;
310
+ if ( 0 != $order_id ) {
311
+ $the_order = wc_get_order( $order_id );
312
+ $the_items = $the_order->get_items();
313
+ } else {
314
+ $the_items = WC()->cart->get_cart();
315
+ }
316
+ foreach ( $the_items as $cart_item_key => $values ) {
317
  if ( in_array( $values['product_id'], $products_in ) ) {
318
  $do_skip_by_products = false;
319
  break;
324
 
325
  // Include by product category
326
  $categories_in = get_option( 'wcj_checkout_files_upload_show_cats_in_' . $i );
 
327
  if ( ! empty( $categories_in ) ) {
328
  $do_skip_by_cats = true;
329
+ if ( 0 != $order_id ) {
330
+ $the_order = wc_get_order( $order_id );
331
+ $the_items = $the_order->get_items();
332
+ } else {
333
+ $the_items = WC()->cart->get_cart();
334
+ }
335
+ foreach ( $the_items as $cart_item_key => $values ) {
336
  $product_categories = get_the_terms( $values['product_id'], 'product_cat' );
337
  if ( empty( $product_categories ) ) continue;
338
  foreach( $product_categories as $product_category ) {
348
 
349
  // Include by product tag
350
  $tags_in = get_option( 'wcj_checkout_files_upload_show_tags_in_' . $i );
 
351
  if ( ! empty( $tags_in ) ) {
352
  $do_skip_by_tags = true;
353
+ if ( 0 != $order_id ) {
354
+ $the_order = wc_get_order( $order_id );
355
+ $the_items = $the_order->get_items();
356
+ } else {
357
+ $the_items = WC()->cart->get_cart();
358
+ }
359
+ foreach ( $the_items as $cart_item_key => $values ) {
360
  $product_tags = get_the_terms( $values['product_id'], 'product_tag' );
361
  if ( empty( $product_tags ) ) continue;
362
  foreach( $product_tags as $product_tag ) {
370
  if ( $do_skip_by_tags ) return false;
371
  }
372
 
 
373
  return true;
374
  }
375
 
376
+ /**
377
+ * get_the_form.
378
+ *
379
+ * @version 2.5.0
380
+ * @since 2.5.0
381
+ */
382
+ function get_the_form( $i, $file_name, $order_id = 0 ) {
383
+ $html = '';
384
+ $html .= '<form enctype="multipart/form-data" action="" method="POST">';
385
+ $html .= '<table>';
386
+ if ( '' != ( $the_label = get_option( 'wcj_checkout_files_upload_label_' . $i, '' ) ) ) {
387
+ $html .= '<tr>';
388
+ $html .= '<td colspan="2">';
389
+ $html .= '<label for="wcj_checkout_files_upload_' . $i . '">' . $the_label . '</label>';
390
+ if ( 'yes' === get_option( 'wcj_checkout_files_upload_required_' . $i, 'no' ) ) {
391
+ $html .= '&nbsp;<abbr class="required" title="required">*</abbr>';
392
+ }
393
+ $html .= '</td>';
394
+ $html .= '</tr>';
395
+ }
396
+ if ( '' == $file_name ) {
397
+ $html .= '<tr>';
398
+ $html .= '<td style="width:50%;">';
399
+ $html .= '<input type="file" name="wcj_checkout_files_upload_' . $i . '" id="wcj_checkout_files_upload_' . $i .
400
+ '" accept="' . get_option( 'wcj_checkout_files_upload_file_accept_' . $i, '' ) . '">';
401
+ $html .= '</td>';
402
+ $html .= '<td style="width:50%;">';
403
+ $html .= '<input type="submit"' .
404
+ ' class="button alt"' .
405
+ ' style="width:100%;"' .
406
+ ' name="wcj_upload_checkout_file_' . $i . '"' .
407
+ ' id="wcj_upload_checkout_file_' . $i . '"' .
408
+ ' value="' . get_option( 'wcj_checkout_files_upload_label_upload_button_' . $i, __( 'Upload', 'woocommerce-jetpack' ) ) . '"' .
409
+ ' data-value="' . get_option( 'wcj_checkout_files_upload_label_upload_button_' . $i, __( 'Upload', 'woocommerce-jetpack' ) ) . '">';
410
+ $html .= '</td>';
411
+ $html .= '</tr>';
412
+ } else {
413
+ $html .= '<tr>';
414
+ $html .= '<td style="width:50%;">';
415
+ $html .= '<a href="' . add_query_arg( array( 'wcj_download_checkout_file' => $i, '_wpnonce' => wp_create_nonce( 'wcj_download_checkout_file' ) ) ) . '">' . $file_name . '</a>';
416
+ $html .= '</td>';
417
+ $html .= '<td style="width:50%;">';
418
+ $html .= '<input type="submit"' .
419
+ ' class="button"' .
420
+ ' style="width:100%;"' .
421
+ ' name="wcj_remove_checkout_file_' . $i . '"' .
422
+ ' id="wcj_remove_checkout_file_' . $i . '"' .
423
+ ' value="' . get_option( 'wcj_checkout_files_upload_label_remove_button_' . $i, __( 'Remove', 'woocommerce-jetpack' ) ) . '"' .
424
+ ' data-value="' . get_option( 'wcj_checkout_files_upload_label_remove_button_' . $i, __( 'Remove', 'woocommerce-jetpack' ) ) . '">';
425
+ $html .= '</td>';
426
+ $html .= '</tr>';
427
+ }
428
+ $html .= '</table>';
429
+ if ( 0 != $order_id ) {
430
+ $html .= '<input type="hidden" name="wcj_checkout_files_upload_order_id_' . $i . '" value="' . $order_id . '">';
431
+ }
432
+ $html .= '</form>';
433
+ return $html;
434
+ }
435
+
436
+ /**
437
+ * add_files_upload_form_to_thankyou_and_myaccount_page.
438
+ *
439
+ * @version 2.5.0
440
+ * @since 2.5.0
441
+ */
442
+ function add_files_upload_form_to_thankyou_and_myaccount_page( $order_id ) {
443
+ $html = '';
444
+ $total_number = apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
445
+ for ( $i = 1; $i <= $total_number; $i++ ) {
446
+ if ( 'yes' === get_option( 'wcj_checkout_files_upload_enabled_' . $i, 'yes' ) && $this->is_visible( $i, $order_id ) ) {
447
+ $file_name = get_post_meta( $order_id, '_' . 'wcj_checkout_files_upload_real_name_' . $i, true );
448
+ $html .= $this->get_the_form( $i, $file_name, $order_id );
449
+ }
450
+ }
451
+ echo $html;
452
+ }
453
+
454
  /**
455
  * add_files_upload_form_to_checkout_frontend.
456
  *
457
+ * @version 2.5.0
458
+ * @since 2.4.5
459
  */
460
  function add_files_upload_form_to_checkout_frontend() {
461
  $html = '';
 
462
  $total_number = apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
 
463
  $current_filter = current_filter();
464
  $current_filter_priority = wcj_current_filter_priority();
465
  for ( $i = 1; $i <= $total_number; $i++ ) {
469
  $current_filter_priority == get_option( 'wcj_checkout_files_upload_hook_priority_' . $i, 10 ) &&
470
  $this->is_visible( $i )
471
  ) {
472
+ $file_name = ( isset( $_SESSION[ 'wcj_checkout_files_upload_' . $i ] ) ) ? $_SESSION[ 'wcj_checkout_files_upload_' . $i ]['name'] : '';
473
+ $html .= $this->get_the_form( $i, $file_name );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
474
  }
475
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
476
  echo $html;
477
  }
478
 
479
  /**
480
  * get_settings.
481
  *
482
+ * @version 2.5.0
483
+ * @since 2.4.5
484
  */
485
  function get_settings() {
486
 
508
  'type' => 'title',
509
  'id' => 'wcj_checkout_files_upload_options',
510
  ),
 
 
 
 
 
 
 
 
 
 
511
  array(
512
  'title' => __( 'Total Files', 'woocommerce-jetpack' ),
513
  'id' => 'wcj_checkout_files_upload_total_number',
545
  'options' => array(
546
  'woocommerce_before_checkout_form' => __( 'Before checkout form', 'woocommerce-jetpack' ),
547
  'woocommerce_after_checkout_form' => __( 'After checkout form', 'woocommerce-jetpack' ),
548
+ 'disable' => __( 'Do not add on checkout', 'woocommerce-jetpack' ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
549
  ),
550
  'css' => 'width:250px;',
551
  ),
557
  'custom_attributes' => array( 'min' => '0' ),
558
  'css' => 'width:250px;',
559
  ),
560
+ array(
561
+ 'id' => 'wcj_checkout_files_upload_add_to_thankyou_' . $i,
562
+ 'desc' => __( 'Add to Thank You page', 'woocommerce-jetpack' ),
563
+ 'type' => 'checkbox',
564
+ 'default' => 'no',
565
+ ),
566
+ array(
567
+ 'id' => 'wcj_checkout_files_upload_add_to_myaccount_' . $i,
568
+ 'desc' => __( 'Add to My Account page', 'woocommerce-jetpack' ),
569
+ 'type' => 'checkbox',
570
+ 'default' => 'no',
571
+ ),
572
  array(
573
  'desc' => __( 'Label', 'woocommerce-jetpack' ),
574
  'desc_tip' => __( 'Leave blank to disable label', 'woocommerce-jetpack' ),
637
  'type' => 'textarea',
638
  'css' => 'width:250px;',
639
  ),
 
 
 
 
 
 
 
 
 
 
640
  array(
641
  'title' => '',
642
  'desc' => __( 'PRODUCTS to show this field', 'woocommerce-jetpack' ),
647
  'type' => 'multiselect',
648
  'options' => $products_options,
649
  ),
 
 
 
 
 
 
 
 
 
 
650
  array(
651
  'title' => '',
652
  'desc' => __( 'CATEGORIES to show this field', 'woocommerce-jetpack' ),
657
  'type' => 'multiselect',
658
  'options' => $product_cats_options,
659
  ),
 
 
 
 
 
 
 
 
 
 
660
  array(
661
  'title' => '',
662
  'desc' => __( 'TAGS to show this field', 'woocommerce-jetpack' ),
includes/class-wcj-crowdfunding.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Crowdfunding class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.2.6
9
  * @author Algoritmika Ltd.
10
  */
@@ -83,6 +83,8 @@ class WCJ_Crowdfunding extends WCJ_Module {
83
 
84
  /**
85
  * get_settings.
 
 
86
  */
87
  function get_settings() {
88
  $module_desc = __( 'When enabled, module will add Crowdfunding metabox to product edit.', 'woocommerce-jetpack' )
@@ -98,7 +100,7 @@ class WCJ_Crowdfunding extends WCJ_Module {
98
  . __( 'Shortcodes could be used in "Product Info" module.', 'woocommerce-jetpack' )
99
  . '<br>'
100
  . __( 'To change add to cart button labels use "Add to Cart Labels" module.', 'woocommerce-jetpack' );
101
- return $this->add_enable_module_setting( array(), $module_desc );
102
  }
103
  }
104
 
4
  *
5
  * The WooCommerce Jetpack Crowdfunding class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.2.6
9
  * @author Algoritmika Ltd.
10
  */
83
 
84
  /**
85
  * get_settings.
86
+ *
87
+ * @version 2.5.0
88
  */
89
  function get_settings() {
90
  $module_desc = __( 'When enabled, module will add Crowdfunding metabox to product edit.', 'woocommerce-jetpack' )
100
  . __( 'Shortcodes could be used in "Product Info" module.', 'woocommerce-jetpack' )
101
  . '<br>'
102
  . __( 'To change add to cart button labels use "Add to Cart Labels" module.', 'woocommerce-jetpack' );
103
+ return $this->add_standard_settings( array(), $module_desc );
104
  }
105
  }
106
 
includes/class-wcj-currency-exchange-rates.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Currency Exchange Rates class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.3.0
9
  * @author Algoritmika Ltd.
10
  */
@@ -17,12 +17,15 @@ class WCJ_Currency_Exchange_Rates extends WCJ_Module {
17
 
18
  /**
19
  * Constructor.
 
 
20
  */
21
  function __construct() {
22
 
23
  $this->id = 'currency_exchange_rates';
24
  $this->short_desc = __( 'Currency Exchange Rates', 'woocommerce-jetpack' );
25
  $this->desc = __( 'Automatic currency exchange rates for WooCommerce.', 'woocommerce-jetpack' );
 
26
  parent::__construct();
27
 
28
  add_filter( 'init', array( $this, 'add_hooks' ) );
@@ -35,11 +38,13 @@ class WCJ_Currency_Exchange_Rates extends WCJ_Module {
35
 
36
  /**
37
  * get_settings.
 
 
38
  */
39
  function get_settings() {
40
  $settings = array();
41
  $settings = apply_filters( 'wcj_currency_exchange_rates_settings', $settings );
42
- return $this->add_enable_module_setting( $settings );
43
  }
44
 
45
  /**
4
  *
5
  * The WooCommerce Jetpack Currency Exchange Rates class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.3.0
9
  * @author Algoritmika Ltd.
10
  */
17
 
18
  /**
19
  * Constructor.
20
+ *
21
+ * @version 2.5.0
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'currency_exchange_rates';
26
  $this->short_desc = __( 'Currency Exchange Rates', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Automatic currency exchange rates for WooCommerce.', 'woocommerce-jetpack' );
28
+ $this->link = 'http://booster.io/features/woocommerce-currency-exchange-rates/';
29
  parent::__construct();
30
 
31
  add_filter( 'init', array( $this, 'add_hooks' ) );
38
 
39
  /**
40
  * get_settings.
41
+ *
42
+ * @version 2.5.0
43
  */
44
  function get_settings() {
45
  $settings = array();
46
  $settings = apply_filters( 'wcj_currency_exchange_rates_settings', $settings );
47
+ return $this->add_standard_settings( $settings );
48
  }
49
 
50
  /**
includes/class-wcj-currency-external-products.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Currency for External Products class.
6
  *
7
- * @version 2.4.4
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,13 +17,14 @@ class WCJ_Currency_External_Products extends WCJ_Module {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.4.4
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'currency_external_products';
25
  $this->short_desc = __( 'Currency for External Products', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Set different currency for external WooCommerce products.', 'woocommerce-jetpack' );
 
27
  parent::__construct();
28
 
29
  if ( $this->is_enabled() ) {
4
  *
5
  * The WooCommerce Jetpack Currency for External Products class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'currency_external_products';
25
  $this->short_desc = __( 'Currency for External Products', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Set different currency for external WooCommerce products.', 'woocommerce-jetpack' );
27
+ $this->link = 'http://booster.io/features/woocommerce-currency-for-external-products/';
28
  parent::__construct();
29
 
30
  if ( $this->is_enabled() ) {
includes/class-wcj-emails.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Emails class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,13 +17,14 @@ class WCJ_Emails extends WCJ_Module {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.4.5
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'emails';
25
  $this->short_desc = __( 'Emails', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Add custom emails. Add another email recipient(s) to all WooCommerce emails.', 'woocommerce-jetpack' );
 
27
  parent::__construct();
28
 
29
  if ( $this->is_enabled() ) {
4
  *
5
  * The WooCommerce Jetpack Emails class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'emails';
25
  $this->short_desc = __( 'Emails', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Add custom emails. Add another email recipient(s) to all WooCommerce emails.', 'woocommerce-jetpack' );
27
+ $this->link = 'http://booster.io/features/woocommerce-emails/';
28
  parent::__construct();
29
 
30
  if ( $this->is_enabled() ) {
includes/class-wcj-empty-cart-button.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Empty Cart Button class.
6
  *
7
- * @version 2.2.1
8
  * @since 2.2.1
9
  * @author Algoritmika Ltd.
10
  */
@@ -17,68 +17,47 @@ class WCJ_Empty_Cart_Button extends WCJ_Module {
17
 
18
  /**
19
  * Constructor.
 
 
20
  */
21
  function __construct() {
22
 
23
  $this->id = 'empty_cart';
24
  $this->short_desc = __( 'Empty Cart Button', 'woocommerce-jetpack' );
25
  $this->desc = __( 'Add and customize "Empty Cart" button to cart page.', 'woocommerce-jetpack' );
 
26
  parent::__construct();
27
 
28
  if ( $this->is_enabled() ) {
29
-
30
  add_action( 'init', array( $this, 'empty_cart' ) );
31
- //add_action( get_option( 'wcj_empty_cart_position', 'woocommerce_after_cart' ), array( $this, 'add_empty_cart_link' ) );
32
- add_action( apply_filters( 'wcj_get_option_filter', 'woocommerce_after_cart', get_option( 'wcj_empty_cart_position', 'woocommerce_after_cart' ) ),
33
- array( $this, 'add_empty_cart_link' ) );
34
-
35
- //add_action( 'wp_head', array( $this, 'add_confirmation_script' ) );
36
-
37
- //add_filter( 'wcj_empty_cart_button_filter', array( $this, 'empty_cart_button_filter_function' ), 100, 2 );
38
-
39
- }
40
- }
41
-
42
- /**
43
- * add_confirmation_script.
44
- *
45
- function add_confirmation_script() {
46
- ?><script type="text/javascript">
47
- function clicked() {
48
- if (confirm('Do you wanna to submit?')) {
49
- yourformelement.submit();
50
- } else {
51
- return false;
52
- }
53
  }
54
- </script><?
55
- }
56
-
57
- /*
58
- * empty_cart_button_filter_function.
59
- *
60
- public function empty_cart_button_filter_function ( $value, $type ) {
61
-
62
- if ( 'text' == $type ) return 'Empty Cart';
63
- if ( 'div-style' == $type ) return 'float: right';
64
  }
65
 
66
  /**
67
  * add_empty_cart_link.
 
 
68
  */
69
  public function add_empty_cart_link() {
70
  $confirmation_html = ( 'confirm_with_pop_up_box' == get_option( 'wcj_empty_cart_confirmation', 'no_confirmation' ) ) ? ' onclick="return confirm(\'' . get_option( 'wcj_empty_cart_confirmation_text' ) . '\')"' : '';
71
- echo '<div style="' . apply_filters( 'wcj_get_option_filter', 'float: right;', get_option( 'wcj_empty_cart_div_style' ) ) . '"><form action="" method="post"><input type="submit" class="button" name="empty_cart" value="' . apply_filters( 'wcj_get_option_filter', 'Empty Cart', get_option( 'wcj_empty_cart_text' ) ) . '"' . $confirmation_html . '></form></div>';
72
- //echo '<input type="submit" class="button" name="empty_cart" value="' . apply_filters( 'wcj_get_option_filter', 'Empty Cart', get_option( 'wcj_empty_cart_text' ) ) . '">';
73
  }
74
 
75
  /**
76
  * empty_cart.
77
  */
78
  public function empty_cart() {
79
-
80
  if ( isset( $_POST['empty_cart'] ) ) {
81
-
82
  global $woocommerce;
83
  $woocommerce->cart->empty_cart();
84
  }
@@ -86,44 +65,32 @@ class WCJ_Empty_Cart_Button extends WCJ_Module {
86
 
87
  /**
88
  * get_settings.
 
 
89
  */
90
  function get_settings() {
91
-
92
- $settings = array();
93
-
94
- $settings = array_merge( $settings, array(
95
-
96
- array( 'title' => __( 'Empty Cart Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => __( 'This section lets you add and customize "Empty Cart" button to cart page.', 'woocommerce-jetpack' ), 'id' => 'wcj_empty_cart_customization_options' ),
97
-
98
- /* array(
99
- 'title' => __( 'Empty Cart', 'woocommerce-jetpack' ),
100
- 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
101
- 'id' => 'wcj_empty_cart_enabled',
102
- 'default' => 'yes',
103
- 'type' => 'checkbox',
104
- ), */
105
-
106
  array(
107
  'title' => __( 'Empty Cart Button Text', 'woocommerce-jetpack' ),
108
  'id' => 'wcj_empty_cart_text',
109
  'default' => 'Empty Cart',
110
  'type' => 'text',
111
- 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
112
- 'custom_attributes'
113
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
114
  ),
115
-
116
  array(
117
  'title' => __( 'Wrapping DIV style', 'woocommerce-jetpack' ),
118
  'desc_tip' => __( 'Style for the button\'s div. Default is "float: right;"', 'woocommerce-jetpack' ),
119
  'id' => 'wcj_empty_cart_div_style',
120
  'default' => 'float: right;',
121
  'type' => 'text',
122
- /*'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
123
- 'custom_attributes'
124
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),*/
125
  ),
126
-
127
  array(
128
  'title' => __( 'Button position on the Cart page', 'woocommerce-jetpack' ),
129
  'id' => 'wcj_empty_cart_position',
@@ -135,40 +102,51 @@ class WCJ_Empty_Cart_Button extends WCJ_Module {
135
  'woocommerce_proceed_to_checkout' => __( 'After Proceed to Checkout button', 'woocommerce-jetpack' ),
136
  'woocommerce_after_cart_totals' => __( 'After Cart Totals', 'woocommerce-jetpack' ),
137
  ),
138
- 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
139
- 'custom_attributes'
140
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  ),
142
-
143
  array(
144
  'title' => __( 'Confirmation', 'woocommerce-jetpack' ),
145
  'id' => 'wcj_empty_cart_confirmation',
146
  'default' => 'no_confirmation',
147
  'type' => 'select',
148
  'options' => array(
149
- 'no_confirmation' => __( 'No confirmation', 'woocommerce-jetpack' ),
150
- 'confirm_with_pop_up_box' => __( 'Confirm by pop up box', 'woocommerce-jetpack' ),
151
  ),
152
- /* 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
153
- 'custom_attributes'
154
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ), */
155
  ),
156
-
157
  array(
158
  'title' => __( 'Confirmation Text (if enabled)', 'woocommerce-jetpack' ),
159
  'id' => 'wcj_empty_cart_confirmation_text',
160
  'default' => __( 'Are you sure?', 'woocommerce-jetpack' ),
161
  'type' => 'text',
162
- /* 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
163
- 'custom_attributes'
164
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ), */
165
  ),
166
-
167
- array( 'type' => 'sectionend', 'id' => 'wcj_empty_cart_customization_options' ),
168
-
169
- ) );
170
-
171
- return $this->add_enable_module_setting( $settings );
172
  }
173
  }
174
 
4
  *
5
  * The WooCommerce Jetpack Empty Cart Button class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.2.1
9
  * @author Algoritmika Ltd.
10
  */
17
 
18
  /**
19
  * Constructor.
20
+ *
21
+ * @version 2.5.0
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'empty_cart';
26
  $this->short_desc = __( 'Empty Cart Button', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Add and customize "Empty Cart" button to cart page.', 'woocommerce-jetpack' );
28
+ $this->link = 'http://booster.io/features/woocommerce-empty-cart-button/';
29
  parent::__construct();
30
 
31
  if ( $this->is_enabled() ) {
 
32
  add_action( 'init', array( $this, 'empty_cart' ) );
33
+ add_action(
34
+ apply_filters( 'wcj_get_option_filter', 'woocommerce_after_cart', get_option( 'wcj_empty_cart_position', 'woocommerce_after_cart' ) ),
35
+ array( $this, 'add_empty_cart_link' )
36
+ );
37
+ if ( 'disable' != ( $empty_cart_checkout_position = get_option( 'wcj_empty_cart_checkout_position', 'disable' ) ) ) {
38
+ add_action(
39
+ $empty_cart_checkout_position,
40
+ array( $this, 'add_empty_cart_link' )
41
+ );
42
+ }
 
 
 
 
 
 
 
 
 
 
 
 
43
  }
 
 
 
 
 
 
 
 
 
 
44
  }
45
 
46
  /**
47
  * add_empty_cart_link.
48
+ *
49
+ * @version 2.5.0
50
  */
51
  public function add_empty_cart_link() {
52
  $confirmation_html = ( 'confirm_with_pop_up_box' == get_option( 'wcj_empty_cart_confirmation', 'no_confirmation' ) ) ? ' onclick="return confirm(\'' . get_option( 'wcj_empty_cart_confirmation_text' ) . '\')"' : '';
53
+ echo '<div style="' . get_option( 'wcj_empty_cart_div_style', 'float: right;' ) . '"><form action="" method="post"><input type="submit" class="button" name="empty_cart" value="' . apply_filters( 'wcj_get_option_filter', 'Empty Cart', get_option( 'wcj_empty_cart_text' ) ) . '"' . $confirmation_html . '></form></div>';
 
54
  }
55
 
56
  /**
57
  * empty_cart.
58
  */
59
  public function empty_cart() {
 
60
  if ( isset( $_POST['empty_cart'] ) ) {
 
61
  global $woocommerce;
62
  $woocommerce->cart->empty_cart();
63
  }
65
 
66
  /**
67
  * get_settings.
68
+ *
69
+ * @version 2.5.0
70
  */
71
  function get_settings() {
72
+ $settings = array(
73
+ array(
74
+ 'title' => __( 'Empty Cart Options', 'woocommerce-jetpack' ),
75
+ 'type' => 'title',
76
+ 'desc' => __( 'This section lets you add and customize "Empty Cart" button to cart page.', 'woocommerce-jetpack' ),
77
+ 'id' => 'wcj_empty_cart_customization_options',
78
+ ),
 
 
 
 
 
 
 
 
79
  array(
80
  'title' => __( 'Empty Cart Button Text', 'woocommerce-jetpack' ),
81
  'id' => 'wcj_empty_cart_text',
82
  'default' => 'Empty Cart',
83
  'type' => 'text',
84
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
85
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
 
86
  ),
 
87
  array(
88
  'title' => __( 'Wrapping DIV style', 'woocommerce-jetpack' ),
89
  'desc_tip' => __( 'Style for the button\'s div. Default is "float: right;"', 'woocommerce-jetpack' ),
90
  'id' => 'wcj_empty_cart_div_style',
91
  'default' => 'float: right;',
92
  'type' => 'text',
 
 
 
93
  ),
 
94
  array(
95
  'title' => __( 'Button position on the Cart page', 'woocommerce-jetpack' ),
96
  'id' => 'wcj_empty_cart_position',
102
  'woocommerce_proceed_to_checkout' => __( 'After Proceed to Checkout button', 'woocommerce-jetpack' ),
103
  'woocommerce_after_cart_totals' => __( 'After Cart Totals', 'woocommerce-jetpack' ),
104
  ),
105
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
106
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ),
107
+ ),
108
+ array(
109
+ 'title' => __( 'Button position on the Checkout page', 'woocommerce-jetpack' ),
110
+ 'id' => 'wcj_empty_cart_checkout_position',
111
+ 'default' => 'disable',
112
+ 'type' => 'select',
113
+ 'options' => array(
114
+ 'disable' => __( 'Do not add', 'woocommerce-jetpack' ),
115
+ 'woocommerce_before_checkout_form' => __( 'Before checkout form', 'woocommerce-jetpack' ),
116
+ 'woocommerce_checkout_before_customer_details' => __( 'Before customer details', 'woocommerce-jetpack' ),
117
+ 'woocommerce_checkout_billing' => __( 'Billing', 'woocommerce-jetpack' ),
118
+ 'woocommerce_checkout_shipping' => __( 'Shipping', 'woocommerce-jetpack' ),
119
+ 'woocommerce_checkout_after_customer_details' => __( 'After customer details', 'woocommerce-jetpack' ),
120
+ 'woocommerce_checkout_before_order_review' => __( 'Before order review', 'woocommerce-jetpack' ),
121
+ 'woocommerce_checkout_order_review' => __( 'Order review', 'woocommerce-jetpack' ),
122
+ 'woocommerce_checkout_after_order_review' => __( 'After order review', 'woocommerce-jetpack' ),
123
+ 'woocommerce_after_checkout_form' => __( 'After checkout form', 'woocommerce-jetpack' ),
124
+ ),
125
+ /* 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
126
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ), */
127
  ),
 
128
  array(
129
  'title' => __( 'Confirmation', 'woocommerce-jetpack' ),
130
  'id' => 'wcj_empty_cart_confirmation',
131
  'default' => 'no_confirmation',
132
  'type' => 'select',
133
  'options' => array(
134
+ 'no_confirmation' => __( 'No confirmation', 'woocommerce-jetpack' ),
135
+ 'confirm_with_pop_up_box' => __( 'Confirm by pop up box', 'woocommerce-jetpack' ),
136
  ),
 
 
 
137
  ),
 
138
  array(
139
  'title' => __( 'Confirmation Text (if enabled)', 'woocommerce-jetpack' ),
140
  'id' => 'wcj_empty_cart_confirmation_text',
141
  'default' => __( 'Are you sure?', 'woocommerce-jetpack' ),
142
  'type' => 'text',
 
 
 
143
  ),
144
+ array(
145
+ 'type' => 'sectionend',
146
+ 'id' => 'wcj_empty_cart_customization_options',
147
+ ),
148
+ );
149
+ return $this->add_standard_settings( $settings );
150
  }
151
  }
152
 
includes/class-wcj-eu-vat-number.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack EU VAT Number class.
6
  *
7
- * @version 2.4.7
8
  * @since 2.3.9
9
  * @author Algoritmika Ltd.
10
  */
@@ -18,13 +18,14 @@ class WCJ_EU_VAT_Number extends WCJ_Module {
18
  /**
19
  * Constructor.
20
  *
21
- * @version 2.4.7
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'eu_vat_number';
26
  $this->short_desc = __( 'EU VAT Number', 'woocommerce-jetpack' );
27
- $this->desc = __( 'Collect and validate EU VAT numbers on WooCommerce checkout. Automatically disable VAT for valid numbers.', 'woocommerce-jetpack' );
 
28
  parent::__construct();
29
 
30
  $this->add_tools( array(
4
  *
5
  * The WooCommerce Jetpack EU VAT Number class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.3.9
9
  * @author Algoritmika Ltd.
10
  */
18
  /**
19
  * Constructor.
20
  *
21
+ * @version 2.5.0
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'eu_vat_number';
26
  $this->short_desc = __( 'EU VAT Number', 'woocommerce-jetpack' );
27
+ $this->desc = __( 'Collect and validate EU VAT numbers on WooCommerce checkout. Automatically disable VAT for valid numbers. Add all EU countries VAT standard rates to WooCommerce.', 'woocommerce-jetpack' );
28
+ $this->link = 'http://booster.io/features/woocommerce-eu-vat-number/';
29
  parent::__construct();
30
 
31
  $this->add_tools( array(
includes/class-wcj-general.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack General class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,13 +17,14 @@ class WCJ_General extends WCJ_Module {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.4.8
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'general';
25
  $this->short_desc = __( 'General', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Separate custom CSS for front and back end. Shortcodes in Wordpress text widgets.', 'woocommerce-jetpack' );
 
27
  parent::__construct();
28
 
29
  $this->add_tools( array(
4
  *
5
  * The WooCommerce Jetpack General class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'general';
25
  $this->short_desc = __( 'General', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Separate custom CSS for front and back end. Shortcodes in Wordpress text widgets.', 'woocommerce-jetpack' );
27
+ $this->link = 'http://booster.io/features/woocommerce-booster-general-tools/';
28
  parent::__construct();
29
 
30
  $this->add_tools( array(
includes/class-wcj-multicurrency-product-base-price.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Multicurrency Product Base Price class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.4.8
9
  * @author Algoritmika Ltd.
10
  */
@@ -17,12 +17,16 @@ class WCJ_Multicurrency_Base_Price extends WCJ_Module {
17
 
18
  /**
19
  * Constructor.
 
 
 
20
  */
21
  function __construct() {
22
 
23
  $this->id = 'multicurrency_base_price';
24
  $this->short_desc = __( 'Multicurrency Product Base Price', 'woocommerce-jetpack' );
25
  $this->desc = __( 'Enter prices for WooCommerce products in different currencies.', 'woocommerce-jetpack' );
 
26
  parent::__construct();
27
 
28
  add_action( 'init', array( $this, 'add_settings_hook' ) );
@@ -44,6 +48,9 @@ class WCJ_Multicurrency_Base_Price extends WCJ_Module {
44
  add_filter( 'woocommerce_variation_prices_regular_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 10, 2 );
45
  add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 10, 2 );
46
  add_filter( 'woocommerce_get_variation_prices_hash', array( $this, 'get_variation_prices_hash' ), PHP_INT_MAX - 10, 3 );
 
 
 
47
  }
48
 
49
  if ( is_admin() ) {
@@ -67,6 +74,27 @@ class WCJ_Multicurrency_Base_Price extends WCJ_Module {
67
  return $currency_exchange_rate;
68
  }
69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  /**
71
  * change_price_by_currency.
72
  */
@@ -82,9 +110,16 @@ class WCJ_Multicurrency_Base_Price extends WCJ_Module {
82
 
83
  /**
84
  * get_variation_prices_hash.
 
 
85
  */
86
  function get_variation_prices_hash( $price_hash, $_product, $display ) {
87
- $price_hash['wcj_base_currency'] = get_post_meta( $_product->id, '_' . 'wcj_multicurrency_base_price_currency', true );
 
 
 
 
 
88
  return $price_hash;
89
  }
90
 
4
  *
5
  * The WooCommerce Jetpack Multicurrency Product Base Price class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.4.8
9
  * @author Algoritmika Ltd.
10
  */
17
 
18
  /**
19
  * Constructor.
20
+ *
21
+ * @version 2.5.0
22
+ * @since 2.4.8
23
  */
24
  function __construct() {
25
 
26
  $this->id = 'multicurrency_base_price';
27
  $this->short_desc = __( 'Multicurrency Product Base Price', 'woocommerce-jetpack' );
28
  $this->desc = __( 'Enter prices for WooCommerce products in different currencies.', 'woocommerce-jetpack' );
29
+ $this->link = 'http://booster.io/features/woocommerce-multicurrency-product-base-price/';
30
  parent::__construct();
31
 
32
  add_action( 'init', array( $this, 'add_settings_hook' ) );
48
  add_filter( 'woocommerce_variation_prices_regular_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 10, 2 );
49
  add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 10, 2 );
50
  add_filter( 'woocommerce_get_variation_prices_hash', array( $this, 'get_variation_prices_hash' ), PHP_INT_MAX - 10, 3 );
51
+ // Grouped products
52
+ add_filter( 'woocommerce_get_price_including_tax', array( $this, 'change_price_by_currency_grouped' ), PHP_INT_MAX - 10, 3 );
53
+ add_filter( 'woocommerce_get_price_excluding_tax', array( $this, 'change_price_by_currency_grouped' ), PHP_INT_MAX - 10, 3 );
54
  }
55
 
56
  if ( is_admin() ) {
74
  return $currency_exchange_rate;
75
  }
76
 
77
+ /**
78
+ * change_price_by_currency_grouped.
79
+ *
80
+ * @version 2.5.0
81
+ * @since 2.5.0
82
+ */
83
+ function change_price_by_currency_grouped( $price, $qty, $_product ) {
84
+ if ( $_product->is_type( 'grouped' ) ) {
85
+ $get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
86
+ foreach ( $_product->get_children() as $child_id ) {
87
+ $the_price = get_post_meta( $child_id, '_price', true );
88
+ $the_product = wc_get_product( $child_id );
89
+ $the_price = $the_product->$get_price_method( 1, $the_price );
90
+ if ( $the_price == $price ) {
91
+ return $this->change_price_by_currency( $price, $the_product );
92
+ }
93
+ }
94
+ }
95
+ return $price;
96
+ }
97
+
98
  /**
99
  * change_price_by_currency.
100
  */
110
 
111
  /**
112
  * get_variation_prices_hash.
113
+ *
114
+ * @version 2.5.0
115
  */
116
  function get_variation_prices_hash( $price_hash, $_product, $display ) {
117
+ $multicurrency_base_price_currency = get_post_meta( $_product->id, '_' . 'wcj_multicurrency_base_price_currency', true );
118
+ $currency_exchange_rate = $this->get_currency_exchange_rate( $multicurrency_base_price_currency );
119
+ $price_hash['wcj_base_currency'] = array(
120
+ $multicurrency_base_price_currency,
121
+ $currency_exchange_rate,
122
+ );
123
  return $price_hash;
124
  }
125
 
includes/class-wcj-multicurrency.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Multicurrency class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.4.3
9
  * @author Algoritmika Ltd.
10
  */
@@ -18,7 +18,7 @@ class WCJ_Multicurrency extends WCJ_Module {
18
  /**
19
  * Constructor.
20
  *
21
- * @version 2.4.8
22
  */
23
  function __construct() {
24
 
@@ -31,7 +31,8 @@ class WCJ_Multicurrency extends WCJ_Module {
31
  add_filter( 'init', array( $this, 'add_settings_hook' ) );
32
 
33
  if ( $this->is_enabled() ) {
34
- add_filter( 'init', array( $this, 'add_hooks' ) );
 
35
 
36
  if ( 'yes' === get_option( 'wcj_multicurrency_per_product_enabled' , 'yes' ) ) {
37
  add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
@@ -95,7 +96,7 @@ class WCJ_Multicurrency extends WCJ_Module {
95
  /**
96
  * add_hooks.
97
  *
98
- * @version 2.4.3
99
  */
100
  function add_hooks() {
101
  // Session
@@ -120,16 +121,50 @@ class WCJ_Multicurrency extends WCJ_Module {
120
  add_filter( 'woocommerce_variation_prices_regular_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 1, 2 );
121
  add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 1, 2 );
122
  add_filter( 'woocommerce_get_variation_prices_hash', array( $this, 'get_variation_prices_hash' ), PHP_INT_MAX - 1, 3 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  }
 
124
  }
125
 
126
  /**
127
  * get_variation_prices_hash.
128
  *
129
- * @version 2.4.3
130
  */
131
  function get_variation_prices_hash( $price_hash, $_product, $display ) {
132
- $price_hash['wcj_currency'] = $this->get_current_currency_code();
 
 
 
 
 
 
133
  return $price_hash;
134
  }
135
 
@@ -150,23 +185,47 @@ class WCJ_Multicurrency extends WCJ_Module {
150
  return $currency_exchange_rate;
151
  }
152
 
 
 
 
 
 
 
 
 
 
 
153
  /**
154
  * change_price_by_currency.
155
  *
156
- * @version 2.4.3
157
  */
158
  function change_price_by_currency( $price, $_product ) {
159
 
 
 
 
 
 
 
 
 
160
  // Per product
161
  if ( 'yes' === get_option( 'wcj_multicurrency_per_product_enabled' , 'yes' ) ) {
162
  $the_product_id = ( isset( $_product->variation_id ) ) ? $_product->variation_id : $_product->id;
163
  if ( '' != ( $regular_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_multicurrency_per_product_regular_price_' . $this->get_current_currency_code(), true ) ) ) {
164
- if ( 'woocommerce_get_price' == current_filter() || 'woocommerce_variation_prices_price' == current_filter() ) {
 
 
 
 
165
  $sale_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_multicurrency_per_product_sale_price_' . $this->get_current_currency_code(), true );
166
  return ( '' != $sale_price_per_product && $sale_price_per_product < $regular_price_per_product ) ? $sale_price_per_product : $regular_price_per_product;
167
- } elseif ( 'woocommerce_get_regular_price' == current_filter() || 'woocommerce_variation_prices_regular_price' == current_filter() ) {
 
168
  return $regular_price_per_product;
169
- } elseif ( 'woocommerce_get_sale_price' == current_filter() || 'woocommerce_variation_prices_sale_price' == current_filter() ) {
 
170
  $sale_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_multicurrency_per_product_sale_price_' . $this->get_current_currency_code(), true );
171
  return ( '' != $sale_price_per_product ) ? $sale_price_per_product : $price;
172
  }
@@ -185,9 +244,12 @@ class WCJ_Multicurrency extends WCJ_Module {
185
  /**
186
  * change_currency_symbol.
187
  *
188
- * @version 2.4.3
189
  */
190
  function change_currency_symbol( $currency_symbol, $currency ) {
 
 
 
191
  return wcj_get_currency_symbol( $this->get_current_currency_code( $currency ) );
192
  }
193
 
@@ -203,18 +265,24 @@ class WCJ_Multicurrency extends WCJ_Module {
203
  /**
204
  * change_currency_code.
205
  *
206
- * @version 2.4.3
207
  */
208
  function change_currency_code( $currency ) {
 
 
 
209
  return $this->get_current_currency_code( $currency );
210
  }
211
 
212
  /**
213
  * change_shipping_price_by_currency.
214
  *
215
- * @version 2.4.8
216
  */
217
  function change_shipping_price_by_currency( $package_rates, $package ) {
 
 
 
218
  $currency_exchange_rate = $this->get_currency_exchange_rate( $this->get_current_currency_code() );
219
  $modified_package_rates = array();
220
  foreach ( $package_rates as $id => $package_rate ) {
@@ -253,7 +321,7 @@ class WCJ_Multicurrency extends WCJ_Module {
253
  /**
254
  * add_settings.
255
  *
256
- * @version 2.4.3
257
  * @todo rounding (maybe)
258
  */
259
  function add_settings() {
@@ -288,6 +356,13 @@ class WCJ_Multicurrency extends WCJ_Module {
288
  'default' => 'yes',
289
  'type' => 'checkbox',
290
  ),
 
 
 
 
 
 
 
291
  array(
292
  'type' => 'sectionend',
293
  'id' => 'wcj_multicurrency_options',
4
  *
5
  * The WooCommerce Jetpack Multicurrency class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.4.3
9
  * @author Algoritmika Ltd.
10
  */
18
  /**
19
  * Constructor.
20
  *
21
+ * @version 2.5.0
22
  */
23
  function __construct() {
24
 
31
  add_filter( 'init', array( $this, 'add_settings_hook' ) );
32
 
33
  if ( $this->is_enabled() ) {
34
+ // add_filter( 'init', array( $this, 'add_hooks' ) );
35
+ $this->add_hooks();
36
 
37
  if ( 'yes' === get_option( 'wcj_multicurrency_per_product_enabled' , 'yes' ) ) {
38
  add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
96
  /**
97
  * add_hooks.
98
  *
99
+ * @version 2.5.0
100
  */
101
  function add_hooks() {
102
  // Session
121
  add_filter( 'woocommerce_variation_prices_regular_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 1, 2 );
122
  add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 1, 2 );
123
  add_filter( 'woocommerce_get_variation_prices_hash', array( $this, 'get_variation_prices_hash' ), PHP_INT_MAX - 1, 3 );
124
+ // Grouped products
125
+ add_filter( 'woocommerce_get_price_including_tax', array( $this, 'change_price_by_currency_grouped' ), PHP_INT_MAX - 1, 3 );
126
+ add_filter( 'woocommerce_get_price_excluding_tax', array( $this, 'change_price_by_currency_grouped' ), PHP_INT_MAX - 1, 3 );
127
+ }
128
+ }
129
+
130
+ /**
131
+ * change_price_by_currency_grouped.
132
+ *
133
+ * @version 2.5.0
134
+ * @since 2.5.0
135
+ */
136
+ function change_price_by_currency_grouped( $price, $qty, $_product ) {
137
+ if ( $_product->is_type( 'grouped' ) ) {
138
+ if ( 'yes' === get_option( 'wcj_multicurrency_per_product_enabled' , 'yes' ) ) {
139
+ $get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
140
+ foreach ( $_product->get_children() as $child_id ) {
141
+ $the_price = get_post_meta( $child_id, '_price', true );
142
+ $the_product = wc_get_product( $child_id );
143
+ $the_price = $the_product->$get_price_method( 1, $the_price );
144
+ if ( $the_price == $price ) {
145
+ return $this->change_price_by_currency( $price, $the_product );
146
+ }
147
+ }
148
+ } else {
149
+ return $this->change_price_by_currency( $price, null );
150
+ }
151
  }
152
+ return $price;
153
  }
154
 
155
  /**
156
  * get_variation_prices_hash.
157
  *
158
+ * @version 2.5.0
159
  */
160
  function get_variation_prices_hash( $price_hash, $_product, $display ) {
161
+ $currency_code = $this->get_current_currency_code();
162
+ $currency_exchange_rate = $this->get_currency_exchange_rate( $currency_code );
163
+ $price_hash['wcj_multicurrency_data'] = array(
164
+ $currency_code,
165
+ $currency_exchange_rate,
166
+ get_option( 'wcj_multicurrency_per_product_enabled', 'yes' ),
167
+ );
168
  return $price_hash;
169
  }
170
 
185
  return $currency_exchange_rate;
186
  }
187
 
188
+ /**
189
+ * do_revert.
190
+ *
191
+ * @version 2.5.0
192
+ * @since 2.5.0
193
+ */
194
+ function do_revert() {
195
+ return ( 'yes' === get_option( 'wcj_multicurrency_revert', 'no' ) && is_checkout() );
196
+ }
197
+
198
  /**
199
  * change_price_by_currency.
200
  *
201
+ * @version 2.5.0
202
  */
203
  function change_price_by_currency( $price, $_product ) {
204
 
205
+ if ( '' === $price ) {
206
+ return $price;
207
+ }
208
+
209
+ if ( $this->do_revert() ) {
210
+ return $price;
211
+ }
212
+
213
  // Per product
214
  if ( 'yes' === get_option( 'wcj_multicurrency_per_product_enabled' , 'yes' ) ) {
215
  $the_product_id = ( isset( $_product->variation_id ) ) ? $_product->variation_id : $_product->id;
216
  if ( '' != ( $regular_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_multicurrency_per_product_regular_price_' . $this->get_current_currency_code(), true ) ) ) {
217
+ $the_current_filter = current_filter();
218
+ if ( 'woocommerce_get_price_including_tax' == $the_current_filter || 'woocommerce_get_price_excluding_tax' == $the_current_filter ) {
219
+ $get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
220
+ return $_product->$get_price_method();
221
+ } elseif ( 'woocommerce_get_price' == $the_current_filter || 'woocommerce_variation_prices_price' == $the_current_filter ) {
222
  $sale_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_multicurrency_per_product_sale_price_' . $this->get_current_currency_code(), true );
223
  return ( '' != $sale_price_per_product && $sale_price_per_product < $regular_price_per_product ) ? $sale_price_per_product : $regular_price_per_product;
224
+
225
+ } elseif ( 'woocommerce_get_regular_price' == $the_current_filter || 'woocommerce_variation_prices_regular_price' == $the_current_filter ) {
226
  return $regular_price_per_product;
227
+
228
+ } elseif ( 'woocommerce_get_sale_price' == $the_current_filter || 'woocommerce_variation_prices_sale_price' == $the_current_filter ) {
229
  $sale_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_multicurrency_per_product_sale_price_' . $this->get_current_currency_code(), true );
230
  return ( '' != $sale_price_per_product ) ? $sale_price_per_product : $price;
231
  }
244
  /**
245
  * change_currency_symbol.
246
  *
247
+ * @version 2.5.0
248
  */
249
  function change_currency_symbol( $currency_symbol, $currency ) {
250
+ if ( $this->do_revert() ) {
251
+ return $currency_symbol;
252
+ }
253
  return wcj_get_currency_symbol( $this->get_current_currency_code( $currency ) );
254
  }
255
 
265
  /**
266
  * change_currency_code.
267
  *
268
+ * @version 2.5.0
269
  */
270
  function change_currency_code( $currency ) {
271
+ if ( $this->do_revert() ) {
272
+ return $currency;
273
+ }
274
  return $this->get_current_currency_code( $currency );
275
  }
276
 
277
  /**
278
  * change_shipping_price_by_currency.
279
  *
280
+ * @version 2.5.0
281
  */
282
  function change_shipping_price_by_currency( $package_rates, $package ) {
283
+ if ( $this->do_revert() ) {
284
+ return $package_rates;
285
+ }
286
  $currency_exchange_rate = $this->get_currency_exchange_rate( $this->get_current_currency_code() );
287
  $modified_package_rates = array();
288
  foreach ( $package_rates as $id => $package_rate ) {
321
  /**
322
  * add_settings.
323
  *
324
+ * @version 2.5.0
325
  * @todo rounding (maybe)
326
  */
327
  function add_settings() {
356
  'default' => 'yes',
357
  'type' => 'checkbox',
358
  ),
359
+ array(
360
+ 'title' => __( 'Revert Currency to Default on Checkout', 'woocommerce-jetpack' ),
361
+ 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
362
+ 'id' => 'wcj_multicurrency_revert',
363
+ 'default' => 'no',
364
+ 'type' => 'checkbox',
365
+ ),
366
  array(
367
  'type' => 'sectionend',
368
  'id' => 'wcj_multicurrency_options',
includes/class-wcj-old-slugs.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Old Slugs class.
6
  *
7
- * @version 2.3.10
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,13 +17,14 @@ class WCJ_Old_Slugs extends WCJ_Module {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.3.10
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'old_slugs';
25
  $this->short_desc = __( 'Old Slugs', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Remove old WooCommerce products slugs.', 'woocommerce-jetpack' );
 
27
  parent::__construct();
28
 
29
  $this->add_tools( array(
@@ -34,26 +35,16 @@ class WCJ_Old_Slugs extends WCJ_Module {
34
  ) );
35
  }
36
 
37
- /*
38
- * Add the settings.
39
- *
40
- * @version 2.3.9
41
- */
42
- function get_settings() {
43
- $settings = array();
44
- $settings = $this->add_tools_list( $settings );
45
- return $this->add_enable_module_setting( $settings );
46
- }
47
-
48
  /**
49
  * add_old_slugs_tool_tab.
50
  *
51
- * @version 2.3.9
52
  */
53
  public function create_old_slugs_tool() {
54
 
55
  global $wpdb;
56
- $all_old_slugs = $wpdb->get_results( "SELECT * FROM wp_postmeta WHERE meta_key = '_wp_old_slug' ORDER BY post_id" );
 
57
  $num_old_slugs = count( $all_old_slugs );
58
  $remove_result_html = '';
59
  if ( $num_old_slugs > 0 ) {
@@ -84,11 +75,11 @@ class WCJ_Old_Slugs extends WCJ_Module {
84
  if ( isset( $_POST['remove_old_products_slugs'] ) ) $post_ids_to_delete = join( ',', $posts_ids['products'] );
85
  else if ( isset( $_POST['remove_old_none_products_slugs'] ) ) $post_ids_to_delete = join( ',', $posts_ids['none_products'] );
86
 
87
- $the_delete_query = "DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug' AND post_id IN ($post_ids_to_delete)";
88
 
89
  $delete_result = $wpdb->get_results( $the_delete_query );
90
 
91
- $recheck_result = $wpdb->get_results("SELECT * FROM wp_postmeta WHERE meta_key = '_wp_old_slug'");
92
  $recheck_result_count = count( $recheck_result );
93
  $remove_result_html = '<div class="updated"><p><strong>Removing old slugs from database finished! ' . ($num_old_slugs-$recheck_result_count) . ' old slug(s) deleted. Please <a href="">refresh</a> the page.</strong></p></div>';
94
  }
4
  *
5
  * The WooCommerce Jetpack Old Slugs class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'old_slugs';
25
  $this->short_desc = __( 'Old Slugs', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Remove old WooCommerce products slugs.', 'woocommerce-jetpack' );
27
+ $this->link = 'http://booster.io/features/woocommerce-remove-old-products-slugs/';
28
  parent::__construct();
29
 
30
  $this->add_tools( array(
35
  ) );
36
  }
37
 
 
 
 
 
 
 
 
 
 
 
 
38
  /**
39
  * add_old_slugs_tool_tab.
40
  *
41
+ * @version 2.5.0
42
  */
43
  public function create_old_slugs_tool() {
44
 
45
  global $wpdb;
46
+ $wp_postmeta_table = $wpdb->prefix . 'postmeta';
47
+ $all_old_slugs = $wpdb->get_results( "SELECT * FROM $wp_postmeta_table WHERE meta_key = '_wp_old_slug' ORDER BY post_id" );
48
  $num_old_slugs = count( $all_old_slugs );
49
  $remove_result_html = '';
50
  if ( $num_old_slugs > 0 ) {
75
  if ( isset( $_POST['remove_old_products_slugs'] ) ) $post_ids_to_delete = join( ',', $posts_ids['products'] );
76
  else if ( isset( $_POST['remove_old_none_products_slugs'] ) ) $post_ids_to_delete = join( ',', $posts_ids['none_products'] );
77
 
78
+ $the_delete_query = "DELETE FROM $wp_postmeta_table WHERE meta_key = '_wp_old_slug' AND post_id IN ($post_ids_to_delete)";
79
 
80
  $delete_result = $wpdb->get_results( $the_delete_query );
81
 
82
+ $recheck_result = $wpdb->get_results("SELECT * FROM $wp_postmeta_table WHERE meta_key = '_wp_old_slug'");
83
  $recheck_result_count = count( $recheck_result );
84
  $remove_result_html = '<div class="updated"><p><strong>Removing old slugs from database finished! ' . ($num_old_slugs-$recheck_result_count) . ' old slug(s) deleted. Please <a href="">refresh</a> the page.</strong></p></div>';
85
  }
includes/class-wcj-order-custom-statuses.php CHANGED
@@ -18,13 +18,14 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
18
  /**
19
  * Constructor.
20
  *
21
- * @version 2.3.10
22
  */
23
  public function __construct() {
24
 
25
  $this->id = 'order_custom_statuses';
26
  $this->short_desc = __( 'Order Custom Statuses', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Custom statuses for WooCommerce orders.', 'woocommerce-jetpack' );
 
28
  parent::__construct();
29
 
30
  $this->add_tools( array(
@@ -257,18 +258,15 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
257
  /**
258
  * get_settings.
259
  *
260
- * @version 2.3.8
261
  */
262
  function get_settings() {
263
-
264
  $settings = array(
265
-
266
  array(
267
  'title' => __( 'Custom Statuses', 'woocommerce-jetpack' ),
268
  'type' => 'title',
269
- 'id' => 'wcj_orders_custom_statuses_options'
270
  ),
271
-
272
  array(
273
  'title' => __( 'Default Order Status', 'woocommerce-jetpack' ),
274
  'desc' => __( 'Enable Custom Statuses feature to add custom statuses to the list.', 'woocommerce-jetpack' ),
@@ -278,7 +276,6 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
278
  'type' => 'select',
279
  'options' => $this->get_order_statuses(),
280
  ),
281
-
282
  array(
283
  'title' => __( 'Add All Statuses to Admin Order Bulk Actions', 'woocommerce-jetpack' ),
284
  'desc' => __( 'Add', 'woocommerce-jetpack' ),
@@ -286,7 +283,6 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
286
  'default' => 'yes',
287
  'type' => 'checkbox',
288
  ),
289
-
290
  array(
291
  'title' => __( 'Add Custom Statuses to Admin Reports', 'woocommerce-jetpack' ),
292
  'desc' => __( 'Add', 'woocommerce-jetpack' ),
@@ -294,16 +290,12 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
294
  'default' => 'yes',
295
  'type' => 'checkbox',
296
  ),
297
-
298
  array(
299
  'type' => 'sectionend',
300
- 'id' => 'wcj_orders_custom_statuses_options'
301
  ),
302
  );
303
-
304
- $settings = $this->add_tools_list( $settings );
305
-
306
- return $this->add_enable_module_setting( $settings );
307
  }
308
  }
309
 
18
  /**
19
  * Constructor.
20
  *
21
+ * @version 2.5.0
22
  */
23
  public function __construct() {
24
 
25
  $this->id = 'order_custom_statuses';
26
  $this->short_desc = __( 'Order Custom Statuses', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Custom statuses for WooCommerce orders.', 'woocommerce-jetpack' );
28
+ $this->link = 'http://booster.io/features/woocommerce-order-custom-statuses/';
29
  parent::__construct();
30
 
31
  $this->add_tools( array(
258
  /**
259
  * get_settings.
260
  *
261
+ * @version 2.5.0
262
  */
263
  function get_settings() {
 
264
  $settings = array(
 
265
  array(
266
  'title' => __( 'Custom Statuses', 'woocommerce-jetpack' ),
267
  'type' => 'title',
268
+ 'id' => 'wcj_orders_custom_statuses_options',
269
  ),
 
270
  array(
271
  'title' => __( 'Default Order Status', 'woocommerce-jetpack' ),
272
  'desc' => __( 'Enable Custom Statuses feature to add custom statuses to the list.', 'woocommerce-jetpack' ),
276
  'type' => 'select',
277
  'options' => $this->get_order_statuses(),
278
  ),
 
279
  array(
280
  'title' => __( 'Add All Statuses to Admin Order Bulk Actions', 'woocommerce-jetpack' ),
281
  'desc' => __( 'Add', 'woocommerce-jetpack' ),
283
  'default' => 'yes',
284
  'type' => 'checkbox',
285
  ),
 
286
  array(
287
  'title' => __( 'Add Custom Statuses to Admin Reports', 'woocommerce-jetpack' ),
288
  'desc' => __( 'Add', 'woocommerce-jetpack' ),
290
  'default' => 'yes',
291
  'type' => 'checkbox',
292
  ),
 
293
  array(
294
  'type' => 'sectionend',
295
+ 'id' => 'wcj_orders_custom_statuses_options',
296
  ),
297
  );
298
+ return $this->add_standard_settings( $settings );
 
 
 
299
  }
300
  }
301
 
includes/class-wcj-order-numbers.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Order Numbers class.
6
  *
7
- * @version 2.4.4
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,13 +17,14 @@ class WCJ_Order_Numbers extends WCJ_Module {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.3.10
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'order_numbers';
25
  $this->short_desc = __( 'Order Numbers', 'woocommerce-jetpack' );
26
  $this->desc = __( 'WooCommerce sequential order numbering, custom order number prefix, suffix and number width.', 'woocommerce-jetpack' );
 
27
  parent::__construct();
28
 
29
  $this->add_tools( array(
@@ -48,8 +49,9 @@ class WCJ_Order_Numbers extends WCJ_Module {
48
  */
49
  public function display_order_number( $order_number, $order ) {
50
  $order_number_meta = get_post_meta( $order->id, '_wcj_order_number', true );
51
- if ( '' == $order_number_meta || 'no' === get_option( 'wcj_order_number_sequential_enabled' ) )
52
  $order_number_meta = $order->id;
 
53
  $order_timestamp = strtotime( $order->post->post_date );
54
  $order_number = apply_filters( 'wcj_get_option_filter',
55
  sprintf( '%s%d', do_shortcode( get_option( 'wcj_order_number_prefix', '' ) ), $order_number_meta ),
@@ -98,11 +100,9 @@ class WCJ_Order_Numbers extends WCJ_Module {
98
  * @version 2.4.4
99
  */
100
  public function add_order_number_meta( $order_id, $do_overwrite ) {
101
-
102
  if ( 'shop_order' !== get_post_type( $order_id ) ) {
103
  return;
104
  }
105
-
106
  if ( true === $do_overwrite || 0 == get_post_meta( $order_id, '_wcj_order_number', true ) ) {
107
  if ( 'yes' === get_option( 'wcj_order_number_use_mysql_transaction_enabled', 'no' ) ) {
108
  global $wpdb;
@@ -131,25 +131,29 @@ class WCJ_Order_Numbers extends WCJ_Module {
131
 
132
  /**
133
  * Renumerate orders function.
 
 
134
  */
135
  public function renumerate_orders() {
136
-
137
- $args = array(
138
- 'post_type' => 'shop_order',
139
- 'post_status' => 'any',
140
- 'posts_per_page' => -1,
141
- 'orderby' => 'date',
142
- 'order' => 'ASC',
143
- );
144
-
145
- $loop = new WP_Query( $args );
146
-
147
- while ( $loop->have_posts() ) : $loop->the_post();
148
-
149
- $order_id = $loop->post->ID;
150
- $this->add_order_number_meta( $order_id, true );
151
-
152
- endwhile;
 
 
153
  }
154
 
155
  /**
@@ -158,11 +162,13 @@ class WCJ_Order_Numbers extends WCJ_Module {
158
  * @version 2.4.4
159
  */
160
  function get_settings() {
161
-
162
  $settings = array(
163
-
164
- array( 'title' => __( 'Order Numbers', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => __( 'This section lets you enable sequential order numbering, set custom number prefix, suffix and width.', 'woocommerce-jetpack' ), 'id' => 'wcj_order_numbers_options' ),
165
-
 
 
 
166
  array(
167
  'title' => __( 'Make Order Numbers Sequential', 'woocommerce-jetpack' ),
168
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
@@ -170,7 +176,6 @@ class WCJ_Order_Numbers extends WCJ_Module {
170
  'default' => 'yes',
171
  'type' => 'checkbox',
172
  ),
173
-
174
  array(
175
  'title' => __( 'Next Order Number', 'woocommerce-jetpack' ),
176
  'desc' => __( 'Next new order will be given this number.', 'woocommerce-jetpack' ) . ' ' . __( 'Use Renumerate Orders tool for existing orders.', 'woocommerce-jetpack' ),
@@ -179,7 +184,6 @@ class WCJ_Order_Numbers extends WCJ_Module {
179
  'default' => 1,
180
  'type' => 'number',
181
  ),
182
-
183
  array(
184
  'title' => __( 'Order Number Custom Prefix', 'woocommerce-jetpack' ),
185
  'desc_tip' => __( 'Prefix before order number (optional). This will change the prefixes for all existing orders.', 'woocommerce-jetpack' ),
@@ -188,7 +192,6 @@ class WCJ_Order_Numbers extends WCJ_Module {
188
  'type' => 'text',
189
  'css' => 'width:300px;',
190
  ),
191
-
192
  array(
193
  'title' => __( 'Order Number Date Prefix', 'woocommerce-jetpack' ),
194
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
@@ -196,11 +199,9 @@ class WCJ_Order_Numbers extends WCJ_Module {
196
  'id' => 'wcj_order_number_date_prefix',
197
  'default' => '',
198
  'type' => 'text',
199
- 'custom_attributes'
200
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
201
  'css' => 'width:300px;',
202
  ),
203
-
204
  array(
205
  'title' => __( 'Order Number Width', 'woocommerce-jetpack' ),
206
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
@@ -208,11 +209,9 @@ class WCJ_Order_Numbers extends WCJ_Module {
208
  'id' => 'wcj_order_number_min_width',
209
  'default' => 0,
210
  'type' => 'number',
211
- 'custom_attributes'
212
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
213
  'css' => 'width:300px;',
214
  ),
215
-
216
  array(
217
  'title' => __( 'Order Number Custom Suffix', 'woocommerce-jetpack' ),
218
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
@@ -220,11 +219,9 @@ class WCJ_Order_Numbers extends WCJ_Module {
220
  'id' => 'wcj_order_number_suffix',
221
  'default' => '',
222
  'type' => 'text',
223
- 'custom_attributes'
224
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
225
  'css' => 'width:300px;',
226
  ),
227
-
228
  array(
229
  'title' => __( 'Order Number Date Suffix', 'woocommerce-jetpack' ),
230
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
@@ -232,11 +229,9 @@ class WCJ_Order_Numbers extends WCJ_Module {
232
  'id' => 'wcj_order_number_date_suffix',
233
  'default' => '',
234
  'type' => 'text',
235
- 'custom_attributes'
236
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
237
  'css' => 'width:300px;',
238
  ),
239
-
240
  array(
241
  'title' => __( 'Use MySQL Transaction', 'woocommerce-jetpack' ),
242
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
@@ -245,11 +240,11 @@ class WCJ_Order_Numbers extends WCJ_Module {
245
  'default' => 'no',
246
  'type' => 'checkbox',
247
  ),
248
-
249
- array( 'type' => 'sectionend', 'id' => 'wcj_order_numbers_options' ),
250
-
 
251
  );
252
-
253
  return $this->add_standard_settings( $settings );
254
  }
255
  }
4
  *
5
  * The WooCommerce Jetpack Order Numbers class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'order_numbers';
25
  $this->short_desc = __( 'Order Numbers', 'woocommerce-jetpack' );
26
  $this->desc = __( 'WooCommerce sequential order numbering, custom order number prefix, suffix and number width.', 'woocommerce-jetpack' );
27
+ $this->link = 'http://booster.io/features/woocommerce-custom-order-numbers/';
28
  parent::__construct();
29
 
30
  $this->add_tools( array(
49
  */
50
  public function display_order_number( $order_number, $order ) {
51
  $order_number_meta = get_post_meta( $order->id, '_wcj_order_number', true );
52
+ if ( '' == $order_number_meta || 'no' === get_option( 'wcj_order_number_sequential_enabled' ) ) {
53
  $order_number_meta = $order->id;
54
+ }
55
  $order_timestamp = strtotime( $order->post->post_date );
56
  $order_number = apply_filters( 'wcj_get_option_filter',
57
  sprintf( '%s%d', do_shortcode( get_option( 'wcj_order_number_prefix', '' ) ), $order_number_meta ),
100
  * @version 2.4.4
101
  */
102
  public function add_order_number_meta( $order_id, $do_overwrite ) {
 
103
  if ( 'shop_order' !== get_post_type( $order_id ) ) {
104
  return;
105
  }
 
106
  if ( true === $do_overwrite || 0 == get_post_meta( $order_id, '_wcj_order_number', true ) ) {
107
  if ( 'yes' === get_option( 'wcj_order_number_use_mysql_transaction_enabled', 'no' ) ) {
108
  global $wpdb;
131
 
132
  /**
133
  * Renumerate orders function.
134
+ *
135
+ * @version 2.5.0
136
  */
137
  public function renumerate_orders() {
138
+ $offset = 0;
139
+ $block_size = 96;
140
+ while( true ) {
141
+ $args = array(
142
+ 'post_type' => 'shop_order',
143
+ 'post_status' => 'any',
144
+ 'posts_per_page' => $block_size,
145
+ 'orderby' => 'date',
146
+ 'order' => 'ASC',
147
+ 'offset' => $offset,
148
+ );
149
+ $loop = new WP_Query( $args );
150
+ if ( ! $loop->have_posts() ) break;
151
+ while ( $loop->have_posts() ) : $loop->the_post();
152
+ $order_id = $loop->post->ID;
153
+ $this->add_order_number_meta( $order_id, true );
154
+ endwhile;
155
+ $offset += $block_size;
156
+ }
157
  }
158
 
159
  /**
162
  * @version 2.4.4
163
  */
164
  function get_settings() {
 
165
  $settings = array(
166
+ array(
167
+ 'title' => __( 'Order Numbers', 'woocommerce-jetpack' ),
168
+ 'type' => 'title',
169
+ 'desc' => __( 'This section lets you enable sequential order numbering, set custom number prefix, suffix and width.', 'woocommerce-jetpack' ),
170
+ 'id' => 'wcj_order_numbers_options',
171
+ ),
172
  array(
173
  'title' => __( 'Make Order Numbers Sequential', 'woocommerce-jetpack' ),
174
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
176
  'default' => 'yes',
177
  'type' => 'checkbox',
178
  ),
 
179
  array(
180
  'title' => __( 'Next Order Number', 'woocommerce-jetpack' ),
181
  'desc' => __( 'Next new order will be given this number.', 'woocommerce-jetpack' ) . ' ' . __( 'Use Renumerate Orders tool for existing orders.', 'woocommerce-jetpack' ),
184
  'default' => 1,
185
  'type' => 'number',
186
  ),
 
187
  array(
188
  'title' => __( 'Order Number Custom Prefix', 'woocommerce-jetpack' ),
189
  'desc_tip' => __( 'Prefix before order number (optional). This will change the prefixes for all existing orders.', 'woocommerce-jetpack' ),
192
  'type' => 'text',
193
  'css' => 'width:300px;',
194
  ),
 
195
  array(
196
  'title' => __( 'Order Number Date Prefix', 'woocommerce-jetpack' ),
197
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
199
  'id' => 'wcj_order_number_date_prefix',
200
  'default' => '',
201
  'type' => 'text',
202
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
 
203
  'css' => 'width:300px;',
204
  ),
 
205
  array(
206
  'title' => __( 'Order Number Width', 'woocommerce-jetpack' ),
207
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
209
  'id' => 'wcj_order_number_min_width',
210
  'default' => 0,
211
  'type' => 'number',
212
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
 
213
  'css' => 'width:300px;',
214
  ),
 
215
  array(
216
  'title' => __( 'Order Number Custom Suffix', 'woocommerce-jetpack' ),
217
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
219
  'id' => 'wcj_order_number_suffix',
220
  'default' => '',
221
  'type' => 'text',
222
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
 
223
  'css' => 'width:300px;',
224
  ),
 
225
  array(
226
  'title' => __( 'Order Number Date Suffix', 'woocommerce-jetpack' ),
227
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
229
  'id' => 'wcj_order_number_date_suffix',
230
  'default' => '',
231
  'type' => 'text',
232
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
 
233
  'css' => 'width:300px;',
234
  ),
 
235
  array(
236
  'title' => __( 'Use MySQL Transaction', 'woocommerce-jetpack' ),
237
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
240
  'default' => 'no',
241
  'type' => 'checkbox',
242
  ),
243
+ array(
244
+ 'type' => 'sectionend',
245
+ 'id' => 'wcj_order_numbers_options',
246
+ ),
247
  );
 
248
  return $this->add_standard_settings( $settings );
249
  }
250
  }
includes/class-wcj-orders.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Orders class.
6
  *
7
- * @version 2.3.7
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,13 +17,14 @@ class WCJ_Orders extends WCJ_Module {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.3.7
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'orders';
25
  $this->short_desc = __( 'Orders', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Minimum WooCommerce order amount; orders auto-complete; custom admin order list columns.', 'woocommerce-jetpack' );
 
27
  parent::__construct();
28
 
29
  if ( $this->is_enabled() ) {
@@ -72,11 +73,8 @@ class WCJ_Orders extends WCJ_Module {
72
  */
73
  public function restrict_manage_posts() {
74
  global $typenow, $wp_query;
75
-
76
  if ( in_array( $typenow, wc_get_order_types( 'order-meta-boxes' ) ) ) {
77
-
78
  $selected_coutry = isset( $_GET['country'] ) ? $_GET['country'] : 'all';
79
-
80
  $countries = array_merge( array( 'all' => __( 'All countries', 'woocommerce-jetpack' ) ), wcj_get_countries() );
81
  echo '<select id="country" name="country">';
82
  foreach ( $countries as $code => $name ) {
@@ -106,48 +104,35 @@ class WCJ_Orders extends WCJ_Module {
106
  * @param string $column
107
  */
108
  public function render_order_columns( $column ) {
109
-
110
  if ( 'country' != $column ) {
111
  return;
112
  }
113
-
114
  $order = wc_get_order( get_the_ID() );
115
- //$country_code = wcj_get_customer_country( $order->customer_user );
116
  $country_code = $order->billing_country;
117
-
118
  echo ( 2 == strlen( $country_code ) )
119
  ? $this->wcj_get_country_flag_by_code( $country_code ) . ' ' . wcj_get_country_name_by_code( $country_code )
120
  : wcj_get_country_name_by_code( $country_code );
121
  }
122
 
123
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
124
- // AUTO COMPLETE //
125
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
126
-
127
  /**
128
  * Auto Complete all WooCommerce orders.
129
  */
130
  public function auto_complete_order( $order_id ) {
131
-
132
  global $woocommerce;
133
-
134
- if ( !$order_id )
135
  return;
 
136
  $order = new WC_Order( $order_id );
137
  $order->update_status( 'completed' );
138
  }
139
 
140
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
141
- // MINIMUM AMOUNT //
142
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
143
  /**
144
  * order_minimum_amount.
145
  */
146
  public function order_minimum_amount() {
147
-
148
  $minimum = get_option( 'wcj_order_minimum_amount' );
149
  if ( WC()->cart->total < $minimum ) {
150
-
151
  if( is_cart() ) {
152
  if ( 'yes' === get_option( 'wcj_order_minimum_amount_cart_notice_enabled' ) ) {
153
  wc_print_notice(
@@ -178,27 +163,31 @@ class WCJ_Orders extends WCJ_Module {
178
  public function stop_from_seeing_checkout( $wp ) {
179
  // if ( is_admin() ) return;
180
  global $woocommerce;
181
- if ( ! isset( $woocommerce ) || ! is_object( $woocommerce ) ) return;
182
- if ( ! isset( $woocommerce->cart ) || ! is_object( $woocommerce->cart ) ) return;
 
 
 
 
183
  $the_cart_total = isset( $woocommerce->cart->cart_contents_total ) ? $woocommerce->cart->cart_contents_total : 0;
184
- if ( 0 != $the_cart_total && $the_cart_total < get_option( 'wcj_order_minimum_amount' ) && is_checkout() )
185
  wp_safe_redirect( $woocommerce->cart->get_cart_url() );
 
186
  }
187
 
188
  /**
189
  * Add settings arrays to Jetpack Settings.
 
 
190
  */
191
  function get_settings() {
192
-
193
  $settings = array(
194
-
195
  array(
196
  'title' => __( 'Order Minimum Amount', 'woocommerce-jetpack' ),
197
  'type' => 'title',
198
  'desc' => __( 'This section lets you set minimum order amount.', 'woocommerce-jetpack' ),
199
  'id' => 'wcj_order_minimum_amount_options',
200
  ),
201
-
202
  array(
203
  'title' => __( 'Amount', 'woocommerce-jetpack' ),
204
  'desc' => __( 'Minimum order amount. Set to 0 to disable.', 'woocommerce-jetpack' ),
@@ -210,7 +199,6 @@ class WCJ_Orders extends WCJ_Module {
210
  'min' => '0',
211
  ),
212
  ),
213
-
214
  array(
215
  'title' => __( 'Error message', 'woocommerce-jetpack' ),
216
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
@@ -218,11 +206,9 @@ class WCJ_Orders extends WCJ_Module {
218
  'id' => 'wcj_order_minimum_amount_error_message',
219
  'default' => 'You must have an order with a minimum of %s to place your order, your current order total is %s.',
220
  'type' => 'textarea',
221
- 'custom_attributes'
222
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
223
  'css' => 'width:50%;min-width:300px;',
224
  ),
225
-
226
  array(
227
  'title' => __( 'Add notice to cart page also', 'woocommerce-jetpack' ),
228
  'desc' => __( 'Add', 'woocommerce-jetpack' ),
@@ -230,7 +216,6 @@ class WCJ_Orders extends WCJ_Module {
230
  'default' => 'no',
231
  'type' => 'checkbox',
232
  ),
233
-
234
  array(
235
  'title' => __( 'Message on cart page', 'woocommerce-jetpack' ),
236
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
@@ -238,11 +223,9 @@ class WCJ_Orders extends WCJ_Module {
238
  'id' => 'wcj_order_minimum_amount_cart_notice_message',
239
  'default' => 'You must have an order with a minimum of %s to place your order, your current order total is %s.',
240
  'type' => 'textarea',
241
- 'custom_attributes'
242
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
243
  'css' => 'width:50%;min-width:300px;',
244
  ),
245
-
246
  array(
247
  'title' => __( 'Stop customer from seeing the Checkout page if minimum amount not reached.', 'woocommerce-jetpack' ),
248
  'desc' => __( 'Redirect back to Cart page', 'woocommerce-jetpack' ),
@@ -250,19 +233,16 @@ class WCJ_Orders extends WCJ_Module {
250
  'default' => 'no',
251
  'type' => 'checkbox',
252
  ),
253
-
254
  array(
255
  'type' => 'sectionend',
256
  'id' => 'wcj_order_minimum_amount_options',
257
  ),
258
-
259
  array(
260
  'title' => __( 'Orders Auto-Complete', 'woocommerce-jetpack' ),
261
  'type' => 'title',
262
  'desc' => __( 'This section lets you enable orders auto-complete function.', 'woocommerce-jetpack' ),
263
  'id' => 'wcj_order_auto_complete_options',
264
  ),
265
-
266
  array(
267
  'title' => __( 'Auto-complete all WooCommerce orders', 'woocommerce-jetpack' ),
268
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
@@ -271,19 +251,16 @@ class WCJ_Orders extends WCJ_Module {
271
  'default' => 'no',
272
  'type' => 'checkbox',
273
  ),
274
-
275
  array(
276
  'type' => 'sectionend',
277
  'id' => 'wcj_order_auto_complete_options',
278
  ),
279
-
280
  array(
281
  'title' => __( 'Orders List Custom Columns', 'woocommerce-jetpack' ),
282
  'type' => 'title',
283
  'desc' => __( 'This section lets you add custom columns to WooCommerce orders list.', 'woocommerce-jetpack' ),
284
  'id' => 'wcj_orders_list_custom_columns_options',
285
  ),
286
-
287
  array(
288
  'title' => __( 'Country', 'woocommerce-jetpack' ),
289
  'desc' => __( 'Add', 'woocommerce-jetpack' ),
@@ -291,15 +268,12 @@ class WCJ_Orders extends WCJ_Module {
291
  'default' => 'no',
292
  'type' => 'checkbox',
293
  ),
294
-
295
  array(
296
  'type' => 'sectionend',
297
  'id' => 'wcj_orders_list_custom_columns_options',
298
  ),
299
-
300
  );
301
-
302
- return $this->add_enable_module_setting( $settings );
303
  }
304
  }
305
 
4
  *
5
  * The WooCommerce Jetpack Orders class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'orders';
25
  $this->short_desc = __( 'Orders', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Minimum WooCommerce order amount; orders auto-complete; custom admin order list columns.', 'woocommerce-jetpack' );
27
+ $this->link = 'http://booster.io/features/woocommerce-orders/';
28
  parent::__construct();
29
 
30
  if ( $this->is_enabled() ) {
73
  */
74
  public function restrict_manage_posts() {
75
  global $typenow, $wp_query;
 
76
  if ( in_array( $typenow, wc_get_order_types( 'order-meta-boxes' ) ) ) {
 
77
  $selected_coutry = isset( $_GET['country'] ) ? $_GET['country'] : 'all';
 
78
  $countries = array_merge( array( 'all' => __( 'All countries', 'woocommerce-jetpack' ) ), wcj_get_countries() );
79
  echo '<select id="country" name="country">';
80
  foreach ( $countries as $code => $name ) {
104
  * @param string $column
105
  */
106
  public function render_order_columns( $column ) {
 
107
  if ( 'country' != $column ) {
108
  return;
109
  }
 
110
  $order = wc_get_order( get_the_ID() );
111
+ // $country_code = wcj_get_customer_country( $order->customer_user );
112
  $country_code = $order->billing_country;
 
113
  echo ( 2 == strlen( $country_code ) )
114
  ? $this->wcj_get_country_flag_by_code( $country_code ) . ' ' . wcj_get_country_name_by_code( $country_code )
115
  : wcj_get_country_name_by_code( $country_code );
116
  }
117
 
 
 
 
 
118
  /**
119
  * Auto Complete all WooCommerce orders.
120
  */
121
  public function auto_complete_order( $order_id ) {
 
122
  global $woocommerce;
123
+ if ( !$order_id ) {
 
124
  return;
125
+ }
126
  $order = new WC_Order( $order_id );
127
  $order->update_status( 'completed' );
128
  }
129
 
 
 
 
130
  /**
131
  * order_minimum_amount.
132
  */
133
  public function order_minimum_amount() {
 
134
  $minimum = get_option( 'wcj_order_minimum_amount' );
135
  if ( WC()->cart->total < $minimum ) {
 
136
  if( is_cart() ) {
137
  if ( 'yes' === get_option( 'wcj_order_minimum_amount_cart_notice_enabled' ) ) {
138
  wc_print_notice(
163
  public function stop_from_seeing_checkout( $wp ) {
164
  // if ( is_admin() ) return;
165
  global $woocommerce;
166
+ if ( ! isset( $woocommerce ) || ! is_object( $woocommerce ) ) {
167
+ return;
168
+ }
169
+ if ( ! isset( $woocommerce->cart ) || ! is_object( $woocommerce->cart ) ) {
170
+ return;
171
+ }
172
  $the_cart_total = isset( $woocommerce->cart->cart_contents_total ) ? $woocommerce->cart->cart_contents_total : 0;
173
+ if ( 0 != $the_cart_total && $the_cart_total < get_option( 'wcj_order_minimum_amount' ) && is_checkout() ) {
174
  wp_safe_redirect( $woocommerce->cart->get_cart_url() );
175
+ }
176
  }
177
 
178
  /**
179
  * Add settings arrays to Jetpack Settings.
180
+ *
181
+ * @version 2.5.0
182
  */
183
  function get_settings() {
 
184
  $settings = array(
 
185
  array(
186
  'title' => __( 'Order Minimum Amount', 'woocommerce-jetpack' ),
187
  'type' => 'title',
188
  'desc' => __( 'This section lets you set minimum order amount.', 'woocommerce-jetpack' ),
189
  'id' => 'wcj_order_minimum_amount_options',
190
  ),
 
191
  array(
192
  'title' => __( 'Amount', 'woocommerce-jetpack' ),
193
  'desc' => __( 'Minimum order amount. Set to 0 to disable.', 'woocommerce-jetpack' ),
199
  'min' => '0',
200
  ),
201
  ),
 
202
  array(
203
  'title' => __( 'Error message', 'woocommerce-jetpack' ),
204
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
206
  'id' => 'wcj_order_minimum_amount_error_message',
207
  'default' => 'You must have an order with a minimum of %s to place your order, your current order total is %s.',
208
  'type' => 'textarea',
209
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
 
210
  'css' => 'width:50%;min-width:300px;',
211
  ),
 
212
  array(
213
  'title' => __( 'Add notice to cart page also', 'woocommerce-jetpack' ),
214
  'desc' => __( 'Add', 'woocommerce-jetpack' ),
216
  'default' => 'no',
217
  'type' => 'checkbox',
218
  ),
 
219
  array(
220
  'title' => __( 'Message on cart page', 'woocommerce-jetpack' ),
221
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
223
  'id' => 'wcj_order_minimum_amount_cart_notice_message',
224
  'default' => 'You must have an order with a minimum of %s to place your order, your current order total is %s.',
225
  'type' => 'textarea',
226
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
 
227
  'css' => 'width:50%;min-width:300px;',
228
  ),
 
229
  array(
230
  'title' => __( 'Stop customer from seeing the Checkout page if minimum amount not reached.', 'woocommerce-jetpack' ),
231
  'desc' => __( 'Redirect back to Cart page', 'woocommerce-jetpack' ),
233
  'default' => 'no',
234
  'type' => 'checkbox',
235
  ),
 
236
  array(
237
  'type' => 'sectionend',
238
  'id' => 'wcj_order_minimum_amount_options',
239
  ),
 
240
  array(
241
  'title' => __( 'Orders Auto-Complete', 'woocommerce-jetpack' ),
242
  'type' => 'title',
243
  'desc' => __( 'This section lets you enable orders auto-complete function.', 'woocommerce-jetpack' ),
244
  'id' => 'wcj_order_auto_complete_options',
245
  ),
 
246
  array(
247
  'title' => __( 'Auto-complete all WooCommerce orders', 'woocommerce-jetpack' ),
248
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
251
  'default' => 'no',
252
  'type' => 'checkbox',
253
  ),
 
254
  array(
255
  'type' => 'sectionend',
256
  'id' => 'wcj_order_auto_complete_options',
257
  ),
 
258
  array(
259
  'title' => __( 'Orders List Custom Columns', 'woocommerce-jetpack' ),
260
  'type' => 'title',
261
  'desc' => __( 'This section lets you add custom columns to WooCommerce orders list.', 'woocommerce-jetpack' ),
262
  'id' => 'wcj_orders_list_custom_columns_options',
263
  ),
 
264
  array(
265
  'title' => __( 'Country', 'woocommerce-jetpack' ),
266
  'desc' => __( 'Add', 'woocommerce-jetpack' ),
268
  'default' => 'no',
269
  'type' => 'checkbox',
270
  ),
 
271
  array(
272
  'type' => 'sectionend',
273
  'id' => 'wcj_orders_list_custom_columns_options',
274
  ),
 
275
  );
276
+ return $this->add_standard_settings( $settings );
 
277
  }
278
  }
279
 
includes/class-wcj-payment-gateways-by-country.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Payment Gateways by Country class.
6
  *
7
- * @version 2.4.4
8
  * @since 2.4.1
9
  * @author Algoritmika Ltd.
10
  */
@@ -18,13 +18,14 @@ class WCJ_Payment_Gateways_By_Country extends WCJ_Module {
18
  /**
19
  * Constructor.
20
  *
21
- * @version 2.4.4
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'payment_gateways_by_country';
26
  $this->short_desc = __( 'Gateways by Country or State', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Set countries or states to include/exclude for WooCommerce payment gateways to show up.', 'woocommerce-jetpack' );
 
28
  parent::__construct();
29
 
30
  add_filter( 'init', array( $this, 'add_hooks' ) );
4
  *
5
  * The WooCommerce Jetpack Payment Gateways by Country class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.4.1
9
  * @author Algoritmika Ltd.
10
  */
18
  /**
19
  * Constructor.
20
  *
21
+ * @version 2.5.0
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'payment_gateways_by_country';
26
  $this->short_desc = __( 'Gateways by Country or State', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Set countries or states to include/exclude for WooCommerce payment gateways to show up.', 'woocommerce-jetpack' );
28
+ $this->link = 'http://booster.io/features/woocommerce-payment-gateways-by-country-or-state/';
29
  parent::__construct();
30
 
31
  add_filter( 'init', array( $this, 'add_hooks' ) );
includes/class-wcj-payment-gateways-currency.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Payment Gateways Currency class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.3.0
9
  * @author Algoritmika Ltd.
10
  */
@@ -18,13 +18,14 @@ class WCJ_Payment_Gateways_Currency extends WCJ_Module {
18
  /**
19
  * Constructor.
20
  *
21
- * @version 2.4.8
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'payment_gateways_currency';
26
  $this->short_desc = __( 'Gateways Currency', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Currency per WooCommerce payment gateway.', 'woocommerce-jetpack' );
 
28
  parent::__construct();
29
 
30
  add_action( 'init', array( $this, 'add_settings_hook' ) );
4
  *
5
  * The WooCommerce Jetpack Payment Gateways Currency class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.3.0
9
  * @author Algoritmika Ltd.
10
  */
18
  /**
19
  * Constructor.
20
  *
21
+ * @version 2.5.0
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'payment_gateways_currency';
26
  $this->short_desc = __( 'Gateways Currency', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Currency per WooCommerce payment gateway.', 'woocommerce-jetpack' );
28
+ $this->link = 'http://booster.io/features/woocommerce-payment-gateways-currency/';
29
  parent::__construct();
30
 
31
  add_action( 'init', array( $this, 'add_settings_hook' ) );
includes/class-wcj-payment-gateways-fees.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Payment Gateways Fees class.
6
  *
7
- * @version 2.3.0
8
  * @since 2.2.2
9
  * @author Algoritmika Ltd.
10
  */
@@ -18,13 +18,14 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
18
  /**
19
  * Constructor.
20
  *
21
- * @version 2.3.0
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'payment_gateways_fees';
26
  $this->short_desc = __( 'Gateways Fees and Discounts', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Enable extra fees or discounts for WooCommerce payment gateways.', 'woocommerce-jetpack' );
 
28
  parent::__construct();
29
 
30
  add_filter( 'init', array( $this, 'add_hooks' ) );
@@ -39,12 +40,13 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
39
 
40
  /**
41
  * get_settings.
 
 
42
  */
43
  function get_settings() {
44
  $settings = array();
45
- //$settings = $this->add_fees_settings( $settings );
46
  $settings = apply_filters( 'wcj_payment_gateways_fees_settings', $settings );
47
- return $this->add_enable_module_setting( $settings );
48
  }
49
 
50
  /**
@@ -65,26 +67,32 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
65
  * enqueue_checkout_script.
66
  */
67
  public function enqueue_checkout_script() {
68
- if( ! is_checkout() )
69
  return;
 
70
  wp_enqueue_script( 'wcj-payment-gateways-checkout' );
71
  }
72
 
73
  /**
74
  * gateways_fees.
75
  *
76
- * @version 2.3.0
77
  */
78
  function gateways_fees() {
79
  global $woocommerce;
80
- $current_gateway = $woocommerce->session->chosen_payment_method;
81
- $available_gateways = WC()->payment_gateways->get_available_payment_gateways();
82
- if ( ! array_key_exists( $current_gateway, $available_gateways ) ) {
83
- $current_gateway = get_option( 'woocommerce_default_gateway', '' );
84
- if ( '' == $current_gateway ) {
85
- $current_gateway = current( $available_gateways );
86
- $current_gateway = isset( $current_gateway->id ) ? $current_gateway->id : '';
 
 
 
87
  }
 
 
88
  }
89
  if ( '' != $current_gateway ) {
90
  $fee_text = get_option( 'wcj_gateways_fees_text_' . $current_gateway );
@@ -126,120 +134,99 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
126
  * @version 2.3.0
127
  */
128
  function add_fees_settings( $settings ) {
129
- // Gateway's Extra Fees
130
  $settings[] = array(
131
  'title' => __( 'Payment Gateways Fees and Discounts Options', 'woocommerce-jetpack' ),
132
  'type' => 'title',
133
  'desc' => __( 'This section lets you set extra fees for payment gateways.', 'woocommerce-jetpack' ),
134
- // __( 'Fees are applied BEFORE taxes.', 'woocommerce-jetpack' ),
135
- 'id' => 'wcj_payment_gateways_fees_options'
136
  );
137
-
138
- //$available_gateways = WC()->payment_gateways->payment_gateways();
139
  global $woocommerce;
140
  $available_gateways = $woocommerce->payment_gateways->payment_gateways();
141
- //$available_gateways = WC()->payment_gateways();
142
  foreach ( $available_gateways as $key => $gateway ) {
143
- /*echo '<h5>' . $gateway->title . '</h5>';
144
- if ( $gateway->is_available() )
145
- echo '<strong style="color: green;">' . __( 'Available', 'woocommerce-jetpack' ) . '</strong>';
146
- else
147
- echo '<strong style="color: red;">' . __( 'Not available', 'woocommerce-jetpack' ) . '</strong>';*/
148
-
149
  $settings = array_merge( $settings, array(
150
-
151
  array(
152
- 'title' => $gateway->title,
153
- 'desc' => __( 'Fee (or discount) title to show to customer.', 'woocommerce-jetpack' ),
154
- 'desc_tip' => __( 'Leave blank to disable.', 'woocommerce-jetpack' ),
155
- 'id' => 'wcj_gateways_fees_text_' . $key,
156
- 'default' => '',
157
- 'type' => 'text',
158
  ),
159
-
160
  array(
161
- 'title' => '',
162
- 'desc' => __( 'Fee (or discount) type.', 'woocommerce-jetpack' ),
163
- 'desc_tip' => __( 'Percent or fixed value.', 'woocommerce-jetpack' )/* . ' ' . apply_filters( 'get_wc_jetpack_plus_message', '', 'desc_no_link' ) */,
164
- /* 'custom_attributes'
165
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ), */
166
- 'id' => 'wcj_gateways_fees_type_' . $key,
167
- 'default' => 'fixed',
168
- 'type' => 'select',
169
- 'options' => array(
170
- 'fixed' => __( 'Fixed', 'woocommerce-jetpack' ),
171
- 'percent' => __( 'Percent', 'woocommerce-jetpack' ),
172
  ),
173
  ),
174
-
175
  array(
176
- 'title' => '',
177
- 'desc' => __( 'Fee (or discount) value.', 'woocommerce-jetpack' ),
178
- 'desc_tip' => __( 'The value. For discount enter a negative number.', 'woocommerce-jetpack' ),
179
- 'id' => 'wcj_gateways_fees_value_' . $key,
180
- 'default' => 0,
181
- 'type' => 'number',
182
  'custom_attributes' => array(
183
- 'step' => '0.01',
184
  ),
185
  ),
186
-
187
  array(
188
- 'title' => '',
189
- 'desc' => __( 'Minimum cart amount for adding the fee (or discount).', 'woocommerce-jetpack' ),
190
- 'desc_tip' => __( 'Set 0 to disable.', 'woocommerce-jetpack' ),
191
- 'id' => 'wcj_gateways_fees_min_cart_amount_' . $key,
192
- 'default' => 0,
193
- 'type' => 'number',
194
  'custom_attributes' => array(
195
- 'step' => '0.01',
196
- 'min' => '0',
197
  ),
198
  ),
199
-
200
  array(
201
- 'title' => '',
202
- 'desc' => __( 'Maximum cart amount for adding the fee (or discount).', 'woocommerce-jetpack' ),
203
- 'desc_tip' => __( 'Set 0 to disable.', 'woocommerce-jetpack' ),
204
- 'id' => 'wcj_gateways_fees_max_cart_amount_' . $key,
205
- 'default' => 0,
206
- 'type' => 'number',
207
  'custom_attributes' => array(
208
- 'step' => '0.01',
209
- 'min' => '0',
210
  ),
211
  ),
212
-
213
  array(
214
- 'title' => '',
215
- 'desc' => __( 'Round the fee (or discount) value before adding to the cart.', 'woocommerce-jetpack' ),
216
- //'desc_tip' => __( 'Set 0 to disable.', 'woocommerce-jetpack' ),
217
- 'id' => 'wcj_gateways_fees_round_' . $key,
218
- 'default' => 'no',
219
- 'type' => 'checkbox',
220
  ),
221
-
222
  array(
223
- 'title' => '',
224
- 'desc' => __( 'If rounding is enabled, set precision here.', 'woocommerce-jetpack' ),
225
- //'desc_tip' => __( 'Set 0 to disable.', 'woocommerce-jetpack' ),
226
- 'id' => 'wcj_gateways_fees_round_precision_' . $key,
227
- 'default' => 0,
228
- 'type' => 'number',
229
  'custom_attributes' => array(
230
- 'step' => '1',
231
- 'min' => '0',
232
  ),
233
  ),
234
-
235
  array(
236
- 'title' => '',
237
- 'desc' => __( 'Is taxable?', 'woocommerce-jetpack' ),
238
- 'id' => 'wcj_gateways_fees_is_taxable_' . $key,
239
- 'default' => 'no',
240
- 'type' => 'checkbox',
241
  ),
242
-
243
  array(
244
  'title' => '',
245
  'desc' => __( 'Tax Class (only if Taxable selected).', 'woocommerce-jetpack' ),
@@ -248,12 +235,12 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
248
  'type' => 'select',
249
  'options' => array_merge( array( __( 'Standard Rate', 'woocommerce-jetpack' ) ), WC_Tax::get_tax_classes() ),
250
  ),
251
-
252
  ) );
253
  }
254
-
255
- $settings[] = array( 'type' => 'sectionend', 'id' => 'wcj_payment_gateways_fees_options' );
256
-
 
257
  return $settings;
258
  }
259
  }
4
  *
5
  * The WooCommerce Jetpack Payment Gateways Fees class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.2.2
9
  * @author Algoritmika Ltd.
10
  */
18
  /**
19
  * Constructor.
20
  *
21
+ * @version 2.5.0
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'payment_gateways_fees';
26
  $this->short_desc = __( 'Gateways Fees and Discounts', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Enable extra fees or discounts for WooCommerce payment gateways.', 'woocommerce-jetpack' );
28
+ $this->link = 'http://booster.io/features/woocommerce-payment-gateways-fees-and-discounts/';
29
  parent::__construct();
30
 
31
  add_filter( 'init', array( $this, 'add_hooks' ) );
40
 
41
  /**
42
  * get_settings.
43
+ *
44
+ * @version 2.5.0
45
  */
46
  function get_settings() {
47
  $settings = array();
 
48
  $settings = apply_filters( 'wcj_payment_gateways_fees_settings', $settings );
49
+ return $this->add_standard_settings( $settings );
50
  }
51
 
52
  /**
67
  * enqueue_checkout_script.
68
  */
69
  public function enqueue_checkout_script() {
70
+ if( ! is_checkout() ) {
71
  return;
72
+ }
73
  wp_enqueue_script( 'wcj-payment-gateways-checkout' );
74
  }
75
 
76
  /**
77
  * gateways_fees.
78
  *
79
+ * @version 2.5.0
80
  */
81
  function gateways_fees() {
82
  global $woocommerce;
83
+ $is_paypal_express = ( isset( $_GET['wc-api'] ) && 'WC_Gateway_PayPal_Express_AngellEYE' === $_GET['wc-api'] ) ? true : false;
84
+ if ( ! $is_paypal_express ) {
85
+ $current_gateway = $woocommerce->session->chosen_payment_method;
86
+ $available_gateways = WC()->payment_gateways->get_available_payment_gateways();
87
+ if ( ! array_key_exists( $current_gateway, $available_gateways ) ) {
88
+ $current_gateway = get_option( 'woocommerce_default_gateway', '' );
89
+ if ( '' == $current_gateway ) {
90
+ $current_gateway = current( $available_gateways );
91
+ $current_gateway = isset( $current_gateway->id ) ? $current_gateway->id : '';
92
+ }
93
  }
94
+ } else {
95
+ $current_gateway = 'paypal_express';
96
  }
97
  if ( '' != $current_gateway ) {
98
  $fee_text = get_option( 'wcj_gateways_fees_text_' . $current_gateway );
134
  * @version 2.3.0
135
  */
136
  function add_fees_settings( $settings ) {
 
137
  $settings[] = array(
138
  'title' => __( 'Payment Gateways Fees and Discounts Options', 'woocommerce-jetpack' ),
139
  'type' => 'title',
140
  'desc' => __( 'This section lets you set extra fees for payment gateways.', 'woocommerce-jetpack' ),
141
+ 'id' => 'wcj_payment_gateways_fees_options',
 
142
  );
143
+ // $available_gateways = WC()->payment_gateways->payment_gateways();
 
144
  global $woocommerce;
145
  $available_gateways = $woocommerce->payment_gateways->payment_gateways();
 
146
  foreach ( $available_gateways as $key => $gateway ) {
 
 
 
 
 
 
147
  $settings = array_merge( $settings, array(
 
148
  array(
149
+ 'title' => $gateway->title, // . ' [' . ( $gateway->is_available() ? __( 'Available', 'woocommerce-jetpack' ) : __( 'Not available', 'woocommerce-jetpack' ) ) . ']',
150
+ 'desc' => __( 'Fee (or discount) title to show to customer.', 'woocommerce-jetpack' ),
151
+ 'desc_tip' => __( 'Leave blank to disable.', 'woocommerce-jetpack' ),
152
+ 'id' => 'wcj_gateways_fees_text_' . $key,
153
+ 'default' => '',
154
+ 'type' => 'text',
155
  ),
 
156
  array(
157
+ 'title' => '',
158
+ 'desc' => __( 'Fee (or discount) type.', 'woocommerce-jetpack' ),
159
+ 'desc_tip' => __( 'Percent or fixed value.', 'woocommerce-jetpack' )/* . ' ' . apply_filters( 'get_wc_jetpack_plus_message', '', 'desc_no_link' ) */,
160
+ 'id' => 'wcj_gateways_fees_type_' . $key,
161
+ 'default' => 'fixed',
162
+ 'type' => 'select',
163
+ 'options' => array(
164
+ 'fixed' => __( 'Fixed', 'woocommerce-jetpack' ),
165
+ 'percent' => __( 'Percent', 'woocommerce-jetpack' ),
 
 
166
  ),
167
  ),
 
168
  array(
169
+ 'title' => '',
170
+ 'desc' => __( 'Fee (or discount) value.', 'woocommerce-jetpack' ),
171
+ 'desc_tip' => __( 'The value. For discount enter a negative number.', 'woocommerce-jetpack' ),
172
+ 'id' => 'wcj_gateways_fees_value_' . $key,
173
+ 'default' => 0,
174
+ 'type' => 'number',
175
  'custom_attributes' => array(
176
+ 'step' => '0.01',
177
  ),
178
  ),
 
179
  array(
180
+ 'title' => '',
181
+ 'desc' => __( 'Minimum cart amount for adding the fee (or discount).', 'woocommerce-jetpack' ),
182
+ 'desc_tip' => __( 'Set 0 to disable.', 'woocommerce-jetpack' ),
183
+ 'id' => 'wcj_gateways_fees_min_cart_amount_' . $key,
184
+ 'default' => 0,
185
+ 'type' => 'number',
186
  'custom_attributes' => array(
187
+ 'step' => '0.01',
188
+ 'min' => '0',
189
  ),
190
  ),
 
191
  array(
192
+ 'title' => '',
193
+ 'desc' => __( 'Maximum cart amount for adding the fee (or discount).', 'woocommerce-jetpack' ),
194
+ 'desc_tip' => __( 'Set 0 to disable.', 'woocommerce-jetpack' ),
195
+ 'id' => 'wcj_gateways_fees_max_cart_amount_' . $key,
196
+ 'default' => 0,
197
+ 'type' => 'number',
198
  'custom_attributes' => array(
199
+ 'step' => '0.01',
200
+ 'min' => '0',
201
  ),
202
  ),
 
203
  array(
204
+ 'title' => '',
205
+ 'desc' => __( 'Round the fee (or discount) value before adding to the cart.', 'woocommerce-jetpack' ),
206
+ // 'desc_tip' => __( 'Set 0 to disable.', 'woocommerce-jetpack' ),
207
+ 'id' => 'wcj_gateways_fees_round_' . $key,
208
+ 'default' => 'no',
209
+ 'type' => 'checkbox',
210
  ),
 
211
  array(
212
+ 'title' => '',
213
+ 'desc' => __( 'If rounding is enabled, set precision here.', 'woocommerce-jetpack' ),
214
+ // 'desc_tip' => __( 'Set 0 to disable.', 'woocommerce-jetpack' ),
215
+ 'id' => 'wcj_gateways_fees_round_precision_' . $key,
216
+ 'default' => 0,
217
+ 'type' => 'number',
218
  'custom_attributes' => array(
219
+ 'step' => '1',
220
+ 'min' => '0',
221
  ),
222
  ),
 
223
  array(
224
+ 'title' => '',
225
+ 'desc' => __( 'Is taxable?', 'woocommerce-jetpack' ),
226
+ 'id' => 'wcj_gateways_fees_is_taxable_' . $key,
227
+ 'default' => 'no',
228
+ 'type' => 'checkbox',
229
  ),
 
230
  array(
231
  'title' => '',
232
  'desc' => __( 'Tax Class (only if Taxable selected).', 'woocommerce-jetpack' ),
235
  'type' => 'select',
236
  'options' => array_merge( array( __( 'Standard Rate', 'woocommerce-jetpack' ) ), WC_Tax::get_tax_classes() ),
237
  ),
 
238
  ) );
239
  }
240
+ $settings[] = array(
241
+ 'type' => 'sectionend',
242
+ 'id' => 'wcj_payment_gateways_fees_options',
243
+ );
244
  return $settings;
245
  }
246
  }
includes/class-wcj-payment-gateways-icons.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Payment Gateways Icons class.
6
  *
7
- * @version 2.3.1
8
  * @since 2.2.2
9
  * @author Algoritmika Ltd.
10
  */
@@ -13,22 +13,19 @@ if ( ! defined( 'ABSPATH' ) ) exit;
13
 
14
  if ( ! class_exists( 'WCJ_Payment_Gateways_Icons' ) ) :
15
 
16
- /**
17
- * WCJ_Payment_Gateways_Icons Class.
18
- */
19
-
20
  class WCJ_Payment_Gateways_Icons extends WCJ_Module {
21
 
22
  /**
23
  * Constructor.
24
  *
25
- * @version 2.3.1
26
  */
27
  function __construct() {
28
 
29
  $this->id = 'payment_gateways_icons';
30
  $this->short_desc = __( 'Gateways Icons', 'woocommerce-jetpack' );
31
  $this->desc = __( 'Change or completely remove icons (images) for any (default or custom) WooCommerce payment gateway.', 'woocommerce-jetpack' );
 
32
  parent::__construct();
33
 
34
  add_filter( 'init', array( $this, 'add_hooks' ) );
@@ -51,12 +48,12 @@ class WCJ_Payment_Gateways_Icons extends WCJ_Module {
51
  /**
52
  * get_settings.
53
  *
54
- * @version 2.3.1
55
  */
56
  function get_settings() {
57
  $settings = array();
58
  $settings = apply_filters( 'wcj_payment_gateways_icons_settings', $settings );
59
- return $this->add_enable_module_setting( $settings );
60
  }
61
 
62
  /**
@@ -76,8 +73,12 @@ class WCJ_Payment_Gateways_Icons extends WCJ_Module {
76
  */
77
  function set_icon( $icon, $key ) {
78
  $default_gateways = apply_filters( 'wcj_get_option_filter', array( 'cod', 'cheque', 'bacs', 'mijireh_checkout', 'paypal' ), array() );
79
- if ( ! empty( $default_gateways ) && ! in_array( $key, $default_gateways ) ) return $icon;
80
- if ( 'yes' === get_option( 'wcj_gateways_icons_' . $key . '_icon_remove', 'no' ) ) return '';
 
 
 
 
81
  $custom_icon_url = get_option( 'wcj_gateways_icons_' . $key . '_icon', '' );
82
  return ( '' == $custom_icon_url ) ? $icon : '<img src="' . $custom_icon_url . '" alt="' . $key . '" />';
83
  }
@@ -89,19 +90,15 @@ class WCJ_Payment_Gateways_Icons extends WCJ_Module {
89
  * @since 2.3.1
90
  */
91
  function add_icons_settings( $settings ) {
92
-
93
  $settings = array();
94
-
95
  $settings[] = array(
96
  'title' => __( 'Options', 'woocommerce-jetpack' ),
97
  'type' => 'title',
98
  'desc' => __( 'If you want to show an image next to the gateway\'s name on the frontend, enter a URL to an image.', 'woocommerce-jetpack' ),
99
  'id' => 'wcj_payment_gateways_icons_options'
100
  );
101
-
102
  $available_gateways = WC()->payment_gateways->payment_gateways();
103
  foreach ( $available_gateways as $key => $gateway ) {
104
-
105
  $default_gateways = array( 'cod', 'cheque', 'bacs', 'mijireh_checkout', 'paypal' );
106
  if ( ! empty( $default_gateways ) && ! in_array( $key, $default_gateways ) ) {
107
  $custom_attributes = apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' );
@@ -132,12 +129,10 @@ class WCJ_Payment_Gateways_Icons extends WCJ_Module {
132
  'custom_attributes' => $custom_attributes,
133
  );
134
  }
135
-
136
  $settings[] = array(
137
  'type' => 'sectionend',
138
  'id' => 'wcj_payment_gateways_icons_options'
139
  );
140
-
141
  return $settings;
142
  }
143
  }
4
  *
5
  * The WooCommerce Jetpack Payment Gateways Icons class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.2.2
9
  * @author Algoritmika Ltd.
10
  */
13
 
14
  if ( ! class_exists( 'WCJ_Payment_Gateways_Icons' ) ) :
15
 
 
 
 
 
16
  class WCJ_Payment_Gateways_Icons extends WCJ_Module {
17
 
18
  /**
19
  * Constructor.
20
  *
21
+ * @version 2.5.0
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'payment_gateways_icons';
26
  $this->short_desc = __( 'Gateways Icons', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Change or completely remove icons (images) for any (default or custom) WooCommerce payment gateway.', 'woocommerce-jetpack' );
28
+ $this->link = 'http://booster.io/features/woocommerce-payment-gateways-icons/';
29
  parent::__construct();
30
 
31
  add_filter( 'init', array( $this, 'add_hooks' ) );
48
  /**
49
  * get_settings.
50
  *
51
+ * @version 2.5.0
52
  */
53
  function get_settings() {
54
  $settings = array();
55
  $settings = apply_filters( 'wcj_payment_gateways_icons_settings', $settings );
56
+ return $this->add_standard_settings( $settings );
57
  }
58
 
59
  /**
73
  */
74
  function set_icon( $icon, $key ) {
75
  $default_gateways = apply_filters( 'wcj_get_option_filter', array( 'cod', 'cheque', 'bacs', 'mijireh_checkout', 'paypal' ), array() );
76
+ if ( ! empty( $default_gateways ) && ! in_array( $key, $default_gateways ) ) {
77
+ return $icon;
78
+ }
79
+ if ( 'yes' === get_option( 'wcj_gateways_icons_' . $key . '_icon_remove', 'no' ) ) {
80
+ return '';
81
+ }
82
  $custom_icon_url = get_option( 'wcj_gateways_icons_' . $key . '_icon', '' );
83
  return ( '' == $custom_icon_url ) ? $icon : '<img src="' . $custom_icon_url . '" alt="' . $key . '" />';
84
  }
90
  * @since 2.3.1
91
  */
92
  function add_icons_settings( $settings ) {
 
93
  $settings = array();
 
94
  $settings[] = array(
95
  'title' => __( 'Options', 'woocommerce-jetpack' ),
96
  'type' => 'title',
97
  'desc' => __( 'If you want to show an image next to the gateway\'s name on the frontend, enter a URL to an image.', 'woocommerce-jetpack' ),
98
  'id' => 'wcj_payment_gateways_icons_options'
99
  );
 
100
  $available_gateways = WC()->payment_gateways->payment_gateways();
101
  foreach ( $available_gateways as $key => $gateway ) {
 
102
  $default_gateways = array( 'cod', 'cheque', 'bacs', 'mijireh_checkout', 'paypal' );
103
  if ( ! empty( $default_gateways ) && ! in_array( $key, $default_gateways ) ) {
104
  $custom_attributes = apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' );
129
  'custom_attributes' => $custom_attributes,
130
  );
131
  }
 
132
  $settings[] = array(
133
  'type' => 'sectionend',
134
  'id' => 'wcj_payment_gateways_icons_options'
135
  );
 
136
  return $settings;
137
  }
138
  }
includes/class-wcj-payment-gateways-min-max.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Payment Gateways Min Max class.
6
  *
7
- * @version 2.4.1
8
  * @since 2.4.1
9
  * @author Algoritmika Ltd.
10
  */
@@ -17,12 +17,15 @@ class WCJ_Payment_Gateways_Min_Max extends WCJ_Module {
17
 
18
  /**
19
  * Constructor.
 
 
20
  */
21
  function __construct() {
22
 
23
  $this->id = 'payment_gateways_min_max';
24
  $this->short_desc = __( 'Gateways Min/Max', 'woocommerce-jetpack' );
25
  $this->desc = __( 'Add min/max amounts for WooCommerce payment gateways to show up.', 'woocommerce-jetpack' );
 
26
  parent::__construct();
27
 
28
  add_filter( 'init', array( $this, 'add_hooks' ) );
4
  *
5
  * The WooCommerce Jetpack Payment Gateways Min Max class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.4.1
9
  * @author Algoritmika Ltd.
10
  */
17
 
18
  /**
19
  * Constructor.
20
+ *
21
+ * @version 2.5.0
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'payment_gateways_min_max';
26
  $this->short_desc = __( 'Gateways Min/Max', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Add min/max amounts for WooCommerce payment gateways to show up.', 'woocommerce-jetpack' );
28
+ $this->link = 'http://booster.io/features/woocommerce-payment-gateways-min-max/';
29
  parent::__construct();
30
 
31
  add_filter( 'init', array( $this, 'add_hooks' ) );
includes/class-wcj-payment-gateways-per-category.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Payment Gateways per Category class.
6
  *
7
- * @version 2.4.7
8
  * @since 2.2.0
9
  * @author Algoritmika Ltd.
10
  */
@@ -158,7 +158,7 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
158
  /**
159
  * add_per_category_settings.
160
  *
161
- * @version 2.3.7
162
  */
163
  function add_per_category_settings( $settings ) {
164
 
@@ -174,19 +174,7 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
174
  $product_cats[ $product_category->term_id ] = $product_category->name;
175
  }
176
 
177
- $products = array();
178
- $args = array(
179
- 'post_type' => 'product',
180
- 'post_status' => 'any',
181
- 'posts_per_page' => -1,
182
- );
183
- $loop = new WP_Query( $args );
184
- if ( $loop->have_posts() ) {
185
- while ( $loop->have_posts() ) : $loop->the_post();
186
- $products[ strval( $loop->post->ID ) ] = get_the_title( $loop->post->ID );
187
- endwhile;
188
- wp_reset_postdata();
189
- }
190
 
191
  global $woocommerce;
192
  $available_gateways = $woocommerce->payment_gateways->payment_gateways();
4
  *
5
  * The WooCommerce Jetpack Payment Gateways per Category class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.2.0
9
  * @author Algoritmika Ltd.
10
  */
158
  /**
159
  * add_per_category_settings.
160
  *
161
+ * @version 2.5.0
162
  */
163
  function add_per_category_settings( $settings ) {
164
 
174
  $product_cats[ $product_category->term_id ] = $product_category->name;
175
  }
176
 
177
+ $products = wcj_get_products();
 
 
 
 
 
 
 
 
 
 
 
 
178
 
179
  global $woocommerce;
180
  $available_gateways = $woocommerce->payment_gateways->payment_gateways();
includes/class-wcj-pdf-invoicing.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack PDF Invoicing class.
6
  *
7
- * @version 2.4.7
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -137,7 +137,7 @@ class WCJ_PDF_Invoicing extends WCJ_Module {
137
 
138
  * catch_args.
139
  *
140
- * @version 2.3.0
141
  */
142
  function catch_args() {
143
  $this->order_id = ( isset( $_GET['order_id'] ) ) ? $_GET['order_id'] : 0;
@@ -145,10 +145,10 @@ class WCJ_PDF_Invoicing extends WCJ_Module {
145
  $this->save_as_pdf = ( isset( $_GET['save_pdf_invoice'] ) && '1' == $_GET['save_pdf_invoice'] ) ? true : false;
146
  $this->get_invoice = ( isset( $_GET['get_invoice'] ) && '1' == $_GET['get_invoice'] ) ? true : false;
147
 
148
- if ( isset( $_GET['create_invoice_for_order_id'] ) && ( is_super_admin() || is_shop_manager() ) ) {
149
  $this->create_document( $_GET['create_invoice_for_order_id'], $this->invoice_type_id );
150
  }
151
- if ( isset( $_GET['delete_invoice_for_order_id'] ) && ( is_super_admin() || is_shop_manager() ) ) {
152
  $this->delete_document( $_GET['delete_invoice_for_order_id'], $this->invoice_type_id );
153
  }
154
  }
4
  *
5
  * The WooCommerce Jetpack PDF Invoicing class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
137
 
138
  * catch_args.
139
  *
140
+ * @version 2.5.0
141
  */
142
  function catch_args() {
143
  $this->order_id = ( isset( $_GET['order_id'] ) ) ? $_GET['order_id'] : 0;
145
  $this->save_as_pdf = ( isset( $_GET['save_pdf_invoice'] ) && '1' == $_GET['save_pdf_invoice'] ) ? true : false;
146
  $this->get_invoice = ( isset( $_GET['get_invoice'] ) && '1' == $_GET['get_invoice'] ) ? true : false;
147
 
148
+ if ( isset( $_GET['create_invoice_for_order_id'] ) && ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) ) {
149
  $this->create_document( $_GET['create_invoice_for_order_id'], $this->invoice_type_id );
150
  }
151
+ if ( isset( $_GET['delete_invoice_for_order_id'] ) && ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) ) {
152
  $this->delete_document( $_GET['delete_invoice_for_order_id'], $this->invoice_type_id );
153
  }
154
  }
includes/class-wcj-price-by-country.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Price by Country class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -66,7 +66,7 @@ class WCJ_Price_By_Country extends WCJ_Module {
66
  /**
67
  * get_settings.
68
  *
69
- * @version 2.4.8
70
  */
71
  function get_settings() {
72
 
@@ -88,9 +88,10 @@ class WCJ_Price_By_Country extends WCJ_Module {
88
  'default' => 'by_ip',
89
  'type' => 'select',
90
  'options' => array(
91
- 'by_ip' => __( 'by IP', 'woocommerce-jetpack' ),
92
- 'by_user_selection' => __( 'by user selection', 'woocommerce-jetpack' ),
93
- // 'by_wpml' => __( 'by WPML', 'woocommerce-jetpack' ),
 
94
  ),
95
  ),
96
 
@@ -177,8 +178,6 @@ class WCJ_Price_By_Country extends WCJ_Module {
177
  '<a href="' . add_query_arg( 'wcj_generate_country_groups', 'all', remove_query_arg( 'wcj_generate_country_groups_confirm' ) ) . '">' .
178
  __( 'Generate', 'woocommerce-jetpack' ) . '</a>' .
179
  '</pre>',
180
- /* '<pre><a href="' . add_query_arg( 'wcj_generate_country_groups', 'paypal_only', remove_query_arg( 'wcj_generate_country_groups_confirm' ) ) . '">' .
181
- __( 'Create only PayPal country groups', 'woocommerce-jetpack' ) . '</a></pre>' . */
182
  ),
183
 
184
  array(
@@ -255,18 +254,11 @@ class WCJ_Price_By_Country extends WCJ_Module {
255
  'options' => array(
256
  'manual' => __( 'Enter Rates Manually', 'woocommerce-jetpack' ),
257
  'auto' => __( 'Automatically via Currency Exchange Rates module', 'woocommerce-jetpack' ),
258
- /* 'hourly' => __( 'Automatically: Update Hourly', 'woocommerce-jetpack' ),
259
- 'twicedaily' => __( 'Automatically: Update Twice Daily', 'woocommerce-jetpack' ),
260
- 'daily' => __( 'Automatically: Update Daily', 'woocommerce-jetpack' ),
261
- 'weekly' => __( 'Automatically: Update Weekly', 'woocommerce-jetpack' ),
262
- 'minutely' => __( 'Automatically: Update Every Minute', 'woocommerce-jetpack' ), */
263
  ),
264
- 'desc' => ( '' == apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ) ) ?
265
- __( 'Visit', 'woocommerce-jetpack' ) . ' <a href="' . admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=prices_and_currencies&section=currency_exchange_rates' ) . '">' . __( 'Currency Exchange Rates module', 'woocommerce-jetpack' ) . '</a>'
266
- :
267
- apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
268
- 'custom_attributes'
269
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ),
270
  );
271
 
272
  $currency_from = apply_filters( 'woocommerce_currency', get_option('woocommerce_currency') );
4
  *
5
  * The WooCommerce Jetpack Price by Country class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
66
  /**
67
  * get_settings.
68
  *
69
+ * @version 2.5.0
70
  */
71
  function get_settings() {
72
 
88
  'default' => 'by_ip',
89
  'type' => 'select',
90
  'options' => array(
91
+ 'by_ip' => __( 'by IP', 'woocommerce-jetpack' ),
92
+ 'by_ip_then_by_user_selection' => __( 'by IP, then by user selection', 'woocommerce-jetpack' ),
93
+ 'by_user_selection' => __( 'by user selection', 'woocommerce-jetpack' ),
94
+ // 'by_wpml' => __( 'by WPML', 'woocommerce-jetpack' ),
95
  ),
96
  ),
97
 
178
  '<a href="' . add_query_arg( 'wcj_generate_country_groups', 'all', remove_query_arg( 'wcj_generate_country_groups_confirm' ) ) . '">' .
179
  __( 'Generate', 'woocommerce-jetpack' ) . '</a>' .
180
  '</pre>',
 
 
181
  ),
182
 
183
  array(
254
  'options' => array(
255
  'manual' => __( 'Enter Rates Manually', 'woocommerce-jetpack' ),
256
  'auto' => __( 'Automatically via Currency Exchange Rates module', 'woocommerce-jetpack' ),
 
 
 
 
 
257
  ),
258
+ 'desc' => ( '' == apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ) )
259
+ ? __( 'Visit', 'woocommerce-jetpack' ) . ' <a href="' . admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=prices_and_currencies&section=currency_exchange_rates' ) . '">' . __( 'Currency Exchange Rates module', 'woocommerce-jetpack' ) . '</a>'
260
+ : apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
261
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'disabled' ),
 
 
262
  );
263
 
264
  $currency_from = apply_filters( 'woocommerce_currency', get_option('woocommerce_currency') );
includes/class-wcj-price-by-user-role.php ADDED
@@ -0,0 +1,481 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Price by User Role
4
+ *
5
+ * The WooCommerce Jetpack Price by User Role class.
6
+ *
7
+ * @version 2.5.0
8
+ * @since 2.5.0
9
+ * @author Algoritmika Ltd.
10
+ */
11
+
12
+ if ( ! defined( 'ABSPATH' ) ) exit;
13
+
14
+ if ( ! class_exists( 'WCJ_Price_By_User_Role' ) ) :
15
+
16
+ class WCJ_Price_By_User_Role extends WCJ_Module {
17
+
18
+ /**
19
+ * Constructor.
20
+ *
21
+ * @version 2.5.0
22
+ * @since 2.5.0
23
+ */
24
+ function __construct() {
25
+
26
+ $this->id = 'price_by_user_role';
27
+ $this->short_desc = __( 'Price by User Role', 'woocommerce-jetpack' );
28
+ $this->desc = __( 'Display WooCommerce products prices by user roles.', 'woocommerce-jetpack' );
29
+ $this->link = 'http://booster.io/features/woocommerce-price-by-user-role/';
30
+ parent::__construct();
31
+
32
+ $this->add_tools( array(
33
+ 'custom_roles' => array(
34
+ 'title' => __( 'Add/Manage Custom Roles', 'woocommerce-jetpack' ),
35
+ 'tab_title' => __( 'Custom Roles', 'woocommerce-jetpack' ),
36
+ 'desc' => __( 'Manage Custom Roles.', 'woocommerce-jetpack' ),
37
+ ),
38
+ ) );
39
+
40
+ add_action( 'init', array( $this, 'add_settings_hook' ) );
41
+
42
+ if ( $this->is_enabled() ) {
43
+ if ( 'yes' === get_option( 'wcj_price_by_user_role_per_product_enabled', 'yes' ) ) {
44
+ add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
45
+ add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
46
+ }
47
+ if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
48
+ $this->add_hooks();
49
+ }
50
+ add_filter( 'wcj_save_meta_box_value', array( $this, 'save_meta_box_value' ), PHP_INT_MAX, 3 );
51
+ add_action( 'admin_notices', array( $this, 'admin_notices' ) );
52
+ }
53
+ }
54
+
55
+ /**
56
+ * save_meta_box_value.
57
+ *
58
+ * @version 2.5.0
59
+ * @since 2.5.0
60
+ */
61
+ function save_meta_box_value( $option_value, $option_name, $module_id ) {
62
+ if ( true === apply_filters( 'wcj_get_option_filter', false, true ) ) {
63
+ return $option_value;
64
+ }
65
+ if ( 'no' === $option_value ) {
66
+ return $option_value;
67
+ }
68
+ if ( $this->id === $module_id && 'wcj_price_by_user_role_per_product_settings_enabled' === $option_name ) {
69
+ $args = array(
70
+ 'post_type' => 'product',
71
+ 'post_status' => 'any',
72
+ 'posts_per_page' => 1,
73
+ 'meta_key' => '_' . 'wcj_price_by_user_role_per_product_settings_enabled',
74
+ 'meta_value' => 'yes',
75
+ 'post__not_in' => array( get_the_ID() ),
76
+ );
77
+ $loop = new WP_Query( $args );
78
+ $c = $loop->found_posts + 1;
79
+ if ( $c >= 2 ) {
80
+ add_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
81
+ return 'no';
82
+ }
83
+ }
84
+ return $option_value;
85
+ }
86
+
87
+ /**
88
+ * add_notice_query_var.
89
+ *
90
+ * @version 2.5.0
91
+ * @since 2.5.0
92
+ */
93
+ function add_notice_query_var( $location ) {
94
+ remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
95
+ return add_query_arg( array( 'wcj_product_price_by_user_role_admin_notice' => true ), $location );
96
+ }
97
+
98
+ /**
99
+ * admin_notices.
100
+ *
101
+ * @version 2.5.0
102
+ * @since 2.5.0
103
+ */
104
+ function admin_notices() {
105
+ if ( ! isset( $_GET['wcj_product_price_by_user_role_admin_notice'] ) ) {
106
+ return;
107
+ }
108
+ ?><div class="error"><p><?php
109
+ echo '<div class="message">'
110
+ . __( 'Booster: Free plugin\'s version is limited to only one price by user role per products settings product enabled at a time. You will need to get <a href="http://booster.io/plus/" target="_blank">Booster Plus</a> to add unlimited number of price by user role per product settings products.', 'woocommerce-jetpack' )
111
+ . '</div>';
112
+ ?></p></div><?php
113
+ }
114
+
115
+ /**
116
+ * get_meta_box_options.
117
+ *
118
+ * @version 2.5.0
119
+ * @since 2.5.0
120
+ */
121
+ function get_meta_box_options() {
122
+ $main_product_id = get_the_ID();
123
+ $_product = wc_get_product( $main_product_id );
124
+ $products = array();
125
+ if ( $_product->is_type( 'variable' ) ) {
126
+ $available_variations = $_product->get_available_variations();
127
+ foreach ( $available_variations as $variation ) {
128
+ $variation_product = wc_get_product( $variation['variation_id'] );
129
+ $products[ $variation['variation_id'] ] = ' (' . $variation_product->get_formatted_variation_attributes( true ) . ')';
130
+ }
131
+ } else {
132
+ $products[ $main_product_id ] = '';
133
+ }
134
+ $options = array(
135
+ array(
136
+ 'type' => 'title',
137
+ 'title' => __( 'Per Product Settings (press Update after changing)', 'woocommerce-jetpack' ),
138
+ ),
139
+ array(
140
+ 'name' => 'wcj_price_by_user_role_per_product_settings_enabled',
141
+ 'default' => 'no',
142
+ 'type' => 'select',
143
+ 'options' => array(
144
+ 'yes' => __( 'Yes', 'woocommerce-jetpack' ),
145
+ 'no' => __( 'No', 'woocommerce-jetpack' ),
146
+ ),
147
+ 'title' => __( 'Enabled', 'woocommerce-jetpack' ),
148
+ ),
149
+ );
150
+ if ( 'yes' === get_post_meta( $_product->id, '_' . 'wcj_price_by_user_role_per_product_settings_enabled', true ) ) {
151
+ foreach ( $products as $product_id => $desc ) {
152
+ foreach ( $this->get_user_roles() as $role_key => $role_data ) {
153
+ $options = array_merge( $options, array(
154
+ array(
155
+ 'type' => 'title',
156
+ 'title' => '<em>' /* . __( 'Role', 'woocommerce-jetpack' ) . ': ' */ . $role_data['name'] . '</em>',
157
+ ),
158
+ array(
159
+ 'name' => 'wcj_price_by_user_role_regular_price_' . $role_key . '_' . $product_id,
160
+ 'default' => '',
161
+ 'type' => 'price',
162
+ 'title' => /* '[' . $role_data['name'] . '] ' . */__( 'Regular Price', 'woocommerce-jetpack' ),
163
+ 'desc' => $desc,
164
+ 'product_id' => $product_id,
165
+ 'meta_name' => '_' . 'wcj_price_by_user_role_regular_price_' . $role_key,
166
+ ),
167
+ array(
168
+ 'name' => 'wcj_price_by_user_role_sale_price_' . $role_key . '_' . $product_id,
169
+ 'default' => '',
170
+ 'type' => 'price',
171
+ 'title' => /* '[' . $role_data['name'] . '] ' . */__( 'Sale Price', 'woocommerce-jetpack' ),
172
+ 'desc' => $desc,
173
+ 'product_id' => $product_id,
174
+ 'meta_name' => '_' . 'wcj_price_by_user_role_sale_price_' . $role_key,
175
+ ),
176
+ ) );
177
+ }
178
+ }
179
+ }
180
+ return $options;
181
+ }
182
+
183
+ /**
184
+ * create_custom_roles_tool.
185
+ *
186
+ * @version 2.5.0
187
+ * @since 2.5.0
188
+ */
189
+ function create_custom_roles_tool() {
190
+ if ( isset( $_POST['wcj_add_new_role'] ) ) {
191
+ if (
192
+ ! isset( $_POST['wcj_custom_role_id'] ) || '' == $_POST['wcj_custom_role_id'] ||
193
+ ! isset( $_POST['wcj_custom_role_name'] ) || '' == $_POST['wcj_custom_role_name']
194
+ ) {
195
+ echo '<p style="color:red;font-weight:bold;">' . __( 'Both fields are required!', 'woocommerce-jetpack') . '</p>';
196
+ } else {
197
+ if ( is_numeric( $_POST['wcj_custom_role_id'] ) ) {
198
+ echo '<p style="color:red;font-weight:bold;">' . __( 'Role ID must not be numbers only!', 'woocommerce-jetpack') . '</p>';
199
+ } else {
200
+ $result = add_role( $_POST['wcj_custom_role_id'], $_POST['wcj_custom_role_name'] );
201
+ if ( null !== $result ) {
202
+ echo '<p style="color:green;font-weight:bold;">' . __( 'Role successfully added!', 'woocommerce-jetpack') . '</p>';
203
+ } else {
204
+ echo '<p style="color:red;font-weight:bold;">' . __( 'Role already exists!', 'woocommerce-jetpack') . '</p>';
205
+ }
206
+ }
207
+ }
208
+ }
209
+
210
+ if ( isset( $_GET['wcj_delete_role'] ) && '' != $_GET['wcj_delete_role'] ) {
211
+ remove_role( $_GET['wcj_delete_role'] );
212
+ echo '<p style="color:green;font-weight:bold;">' . sprintf( __( 'Role %s successfully deleted!', 'woocommerce-jetpack'), $_GET['wcj_delete_role'] ) . '</p>';
213
+ }
214
+
215
+ echo $this->get_tool_header_html( 'custom_roles' );
216
+
217
+ $table_data = array();
218
+ $table_data[] = array( __( 'ID', 'woocommerce-jetpack'), __( 'Name', 'woocommerce-jetpack'), __( 'Actions', 'woocommerce-jetpack'), );
219
+ $existing_roles = $this->get_user_roles();
220
+ $default_wp_wc_roles = array( 'guest', 'administrator', 'editor', 'author', 'contributor', 'subscriber', 'customer', 'shop_manager', );
221
+ foreach ( $existing_roles as $role_key => $role_data ) {
222
+ $delete_html = ( in_array( $role_key, $default_wp_wc_roles ) )
223
+ ? ''
224
+ : '<a href="' . add_query_arg( 'wcj_delete_role', $role_key ). '">' . __( 'Delete', 'woocommerce-jetpack') . '</a>';
225
+ $table_data[] = array( $role_key, $role_data['name'], $delete_html );
226
+ }
227
+ echo '<h3>' . __( 'Existing Roles', 'woocommerce-jetpack') . '</h3>';
228
+ echo wcj_get_table_html( $table_data, array( 'table_class' => 'widefat striped' ) );
229
+
230
+ $table_data = array();
231
+ $table_data[] = array( __( 'ID', 'woocommerce-jetpack'), '<input type="text" name="wcj_custom_role_id">' );
232
+ $table_data[] = array( __( 'Name', 'woocommerce-jetpack'), '<input type="text" name="wcj_custom_role_name">' );
233
+ echo '<h3>' . __( 'Add New Role', 'woocommerce-jetpack') . '</h3>';
234
+ echo '<form method="post" action="' . remove_query_arg( 'wcj_delete_role' ) . '">' .
235
+ wcj_get_table_html( $table_data, array( 'table_class' => 'widefat', 'table_heading_type' => 'vertical', 'table_style' => 'width:20%;min-width:300px;', ) )
236
+ . '<p>' . '<input type="submit" name="wcj_add_new_role" class="button-primary" value="' . __( 'Add', 'woocommerce-jetpack' ) . '">' . '</p>'
237
+ . '</form>';
238
+ }
239
+
240
+ /**
241
+ * add_hooks.
242
+ *
243
+ * @version 2.5.0
244
+ * @since 2.5.0
245
+ */
246
+ function add_hooks() {
247
+ // Prices
248
+ add_filter( 'woocommerce_get_price', array( $this, 'change_price_by_role' ), PHP_INT_MAX - 200, 2 );
249
+ add_filter( 'woocommerce_get_sale_price', array( $this, 'change_price_by_role' ), PHP_INT_MAX - 200, 2 );
250
+ add_filter( 'woocommerce_get_regular_price', array( $this, 'change_price_by_role' ), PHP_INT_MAX - 200, 2 );
251
+ // Variations
252
+ add_filter( 'woocommerce_variation_prices_price', array( $this, 'change_price_by_role' ), PHP_INT_MAX - 200, 2 );
253
+ add_filter( 'woocommerce_variation_prices_regular_price', array( $this, 'change_price_by_role' ), PHP_INT_MAX - 200, 2 );
254
+ add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'change_price_by_role' ), PHP_INT_MAX - 200, 2 );
255
+ add_filter( 'woocommerce_get_variation_prices_hash', array( $this, 'get_variation_prices_hash' ), PHP_INT_MAX - 200, 3 );
256
+ // Shipping
257
+ add_filter( 'woocommerce_package_rates', array( $this, 'change_price_by_role_shipping' ), PHP_INT_MAX - 200, 2 );
258
+ // Grouped products
259
+ add_filter( 'woocommerce_get_price_including_tax', array( $this, 'change_price_by_role_grouped' ), PHP_INT_MAX - 200, 3 );
260
+ add_filter( 'woocommerce_get_price_excluding_tax', array( $this, 'change_price_by_role_grouped' ), PHP_INT_MAX - 200, 3 );
261
+ }
262
+
263
+ /**
264
+ * change_price_by_role_shipping.
265
+ *
266
+ * @version 2.5.0
267
+ * @since 2.5.0
268
+ */
269
+ function change_price_by_role_shipping( $package_rates, $package ) {
270
+ if ( 'yes' === get_option( 'wcj_price_by_user_role_shipping_enabled', 'no' ) ) {
271
+ $current_user_role = $this->get_current_user_role();
272
+ $koef = get_option( 'wcj_price_by_user_role_' . $current_user_role, 1 );
273
+ $modified_package_rates = array();
274
+ foreach ( $package_rates as $id => $package_rate ) {
275
+ if ( 1 != $koef && isset( $package_rate->cost ) ) {
276
+ $package_rate->cost = $package_rate->cost * $koef;
277
+ if ( isset( $package_rate->taxes ) && ! empty( $package_rate->taxes ) ) {
278
+ foreach ( $package_rate->taxes as $tax_id => $tax ) {
279
+ $package_rate->taxes[ $tax_id ] = $package_rate->taxes[ $tax_id ] * $koef;
280
+ }
281
+ }
282
+ }
283
+ $modified_package_rates[ $id ] = $package_rate;
284
+ }
285
+ }
286
+ return $modified_package_rates;
287
+ }
288
+
289
+ /**
290
+ * change_price_by_role_grouped.
291
+ *
292
+ * @version 2.5.0
293
+ * @since 2.5.0
294
+ */
295
+ function change_price_by_role_grouped( $price, $qty, $_product ) {
296
+ if ( $_product->is_type( 'grouped' ) ) {
297
+ if ( 'yes' === get_option( 'wcj_price_by_user_role_per_product_enabled', 'yes' ) ) {
298
+ $get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
299
+ foreach ( $_product->get_children() as $child_id ) {
300
+ $the_price = get_post_meta( $child_id, '_price', true );
301
+ $the_product = wc_get_product( $child_id );
302
+ $the_price = $the_product->$get_price_method( 1, $the_price );
303
+ if ( $the_price == $price ) {
304
+ return $this->change_price_by_role( $price, $the_product );
305
+ }
306
+ }
307
+ } else {
308
+ return $this->change_price_by_role( $price, null );
309
+ }
310
+ }
311
+ return $price;
312
+ }
313
+
314
+ /**
315
+ * change_price_by_role.
316
+ *
317
+ * @version 2.5.0
318
+ * @since 2.5.0
319
+ */
320
+ function change_price_by_role( $price, $_product ) {
321
+
322
+ $current_user_role = $this->get_current_user_role();
323
+
324
+ // Per product
325
+ if ( 'yes' === get_option( 'wcj_price_by_user_role_per_product_enabled', 'yes' ) ) {
326
+ if ( 'yes' === get_post_meta( $_product->id, '_' . 'wcj_price_by_user_role_per_product_settings_enabled', true ) ) {
327
+ $the_product_id = ( isset( $_product->variation_id ) ) ? $_product->variation_id : $_product->id;
328
+ if ( '' != ( $regular_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_price_by_user_role_regular_price_' . $current_user_role, true ) ) ) {
329
+ $the_current_filter = current_filter();
330
+ if ( 'woocommerce_get_price_including_tax' == $the_current_filter || 'woocommerce_get_price_excluding_tax' == $the_current_filter ) {
331
+ $get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
332
+ return $_product->$get_price_method();
333
+ } elseif ( 'woocommerce_get_price' == $the_current_filter || 'woocommerce_variation_prices_price' == $the_current_filter ) {
334
+ $sale_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_price_by_user_role_sale_price_' . $current_user_role, true );
335
+ return ( '' != $sale_price_per_product && $sale_price_per_product < $regular_price_per_product ) ? $sale_price_per_product : $regular_price_per_product;
336
+ } elseif ( 'woocommerce_get_regular_price' == $the_current_filter || 'wcj_price_by_user_role_regular_price_' == $the_current_filter ) {
337
+ return $regular_price_per_product;
338
+ } elseif ( 'woocommerce_get_sale_price' == $the_current_filter || 'woocommerce_variation_prices_sale_price' == $the_current_filter ) {
339
+ $sale_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_price_by_user_role_sale_price_' . $current_user_role, true );
340
+ return ( '' != $sale_price_per_product ) ? $sale_price_per_product : $price;
341
+ }
342
+ }
343
+ }
344
+ }
345
+
346
+ // Global
347
+ if ( 1 != ( $koef = get_option( 'wcj_price_by_user_role_' . $current_user_role, 1 ) ) ) {
348
+ return ( '' === $price ) ? $price : $price * $koef;
349
+ }
350
+
351
+ // No changes
352
+ return $price;
353
+ }
354
+
355
+ /**
356
+ * get_variation_prices_hash.
357
+ *
358
+ * @version 2.5.0
359
+ * @since 2.5.0
360
+ */
361
+ function get_variation_prices_hash( $price_hash, $_product, $display ) {
362
+ $user_role = $this->get_current_user_role();
363
+ $koef = get_option( 'wcj_price_by_user_role_' . $user_role, 1 );
364
+ $price_hash['wcj_user_role'] = array(
365
+ $user_role,
366
+ $koef,
367
+ get_option( 'wcj_price_by_user_role_per_product_enabled', 'yes' ),
368
+ );
369
+ return $price_hash;
370
+ }
371
+
372
+ /**
373
+ * get_current_user_role.
374
+ *
375
+ * @version 2.5.0
376
+ * @since 2.5.0
377
+ */
378
+ function get_current_user_role() {
379
+ $current_user = wp_get_current_user();
380
+ return ( isset( $current_user->roles[0] ) && '' != $current_user->roles[0] ) ? $current_user->roles[0] : 'guest';
381
+ }
382
+
383
+ /**
384
+ * get_settings.
385
+ *
386
+ * @version 2.5.0
387
+ * @since 2.5.0
388
+ */
389
+ function get_user_roles() {
390
+ global $wp_roles;
391
+ $all_roles = $wp_roles->roles;
392
+ $all_roles = apply_filters( 'editable_roles', $all_roles );
393
+ $all_roles = array_merge( array(
394
+ 'guest' => array(
395
+ 'name' => __( 'Guest', 'woocommerce-jetpack' ),
396
+ 'capabilities' => array(),
397
+ ) ), $all_roles );
398
+ return $all_roles;
399
+ }
400
+
401
+ /**
402
+ * add_settings_hook.
403
+ *
404
+ * @version 2.5.0
405
+ * @since 2.5.0
406
+ */
407
+ function add_settings_hook() {
408
+ add_filter( 'wcj_price_by_user_role_settings', array( $this, 'add_settings' ) );
409
+ }
410
+
411
+ /**
412
+ * get_settings.
413
+ *
414
+ * @version 2.5.0
415
+ * @since 2.5.0
416
+ */
417
+ function get_settings() {
418
+ $settings = apply_filters( 'wcj_price_by_user_role_settings', array() );
419
+ return $this->add_standard_settings( $settings );
420
+ }
421
+
422
+ /**
423
+ * add_settings.
424
+ *
425
+ * @version 2.5.0
426
+ * @since 2.5.0
427
+ */
428
+ function add_settings() {
429
+ $settings = array();
430
+ $settings = array_merge( $settings, array(
431
+ array(
432
+ 'title' => __( 'Options', 'woocommerce-jetpack' ),
433
+ 'type' => 'title',
434
+ 'id' => 'wcj_price_by_user_role_options',
435
+ ),
436
+ array(
437
+ 'title' => __( 'Enable per Product Settings', 'woocommerce-jetpack' ),
438
+ 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
439
+ 'desc_tip' => __( 'When enabled, this will add new "Booster: Price by User Role" meta box to each product\'s edit page.', 'woocommerce-jetpack' ),
440
+ 'type' => 'checkbox',
441
+ 'id' => 'wcj_price_by_user_role_per_product_enabled',
442
+ 'default' => 'yes',
443
+ ),
444
+ array(
445
+ 'title' => __( 'Shipping', 'woocommerce-jetpack' ),
446
+ 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
447
+ 'desc_tip' => __( 'When enabled, this will apply user role multipliers to shipping calculations.', 'woocommerce-jetpack' ),
448
+ 'type' => 'checkbox',
449
+ 'id' => 'wcj_price_by_user_role_shipping_enabled',
450
+ 'default' => 'no',
451
+ ),
452
+ array(
453
+ 'type' => 'sectionend',
454
+ 'id' => 'wcj_price_by_user_role_options',
455
+ ),
456
+ ) );
457
+ $settings[] = array(
458
+ 'title' => __( 'Roles & Multipliers', 'woocommerce-jetpack' ),
459
+ 'type' => 'title',
460
+ 'id' => 'wcj_price_by_user_role_multipliers_options',
461
+ );
462
+ foreach ( $this->get_user_roles() as $role_key => $role_data ) {
463
+ $settings[] = array(
464
+ 'title' => $role_data['name'],
465
+ 'id' => 'wcj_price_by_user_role_' . $role_key,
466
+ 'default' => 1,
467
+ 'type' => 'number',
468
+ 'custom_attributes' => array( 'step' => '0.000001', 'min' => '0', ),
469
+ );
470
+ }
471
+ $settings[] = array(
472
+ 'type' => 'sectionend',
473
+ 'id' => 'wcj_price_by_user_role_multipliers_options',
474
+ );
475
+ return $settings;
476
+ }
477
+ }
478
+
479
+ endif;
480
+
481
+ return new WCJ_Price_By_User_Role();
includes/class-wcj-price-labels.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Price Labels class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,13 +17,14 @@ class WCJ_Price_Labels extends WCJ_Module {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.4.4
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'price_labels';
25
  $this->short_desc = __( 'Custom Price Labels', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Create any custom price label for any WooCommerce product.', 'woocommerce-jetpack' );
 
27
  parent::__construct();
28
 
29
  $this->add_tools( array(
@@ -120,7 +121,7 @@ class WCJ_Price_Labels extends WCJ_Module {
120
  /**
121
  * create_migrate_from_custom_price_labels_tool.
122
  *
123
- * @version 2.3.10
124
  */
125
  public function create_migrate_from_custom_price_labels_tool() {
126
 
@@ -129,38 +130,41 @@ class WCJ_Price_Labels extends WCJ_Module {
129
  $migrate = isset( $_POST['migrate'] ) ? true : false;
130
 
131
  $migration_data = array(
132
- '_simple_is_custom_pricing_label' => '_wcj_price_labels_instead_enabled',
133
- '_simple_is_custom_pricing_label_home' => '_wcj_price_labels_instead_home',
134
- '_simple_is_custom_pricing_label_products' => '_wcj_price_labels_instead_products',
135
- '_simple_is_custom_pricing_label_single' => '_wcj_price_labels_instead_single',
136
- '_simple_is_custom_pricing_label_text' => '_wcj_price_labels_instead_text',
137
-
138
- '_simple_is_custom_pricing_label_before' => '_wcj_price_labels_before_enabled',
139
- '_simple_is_custom_pricing_label_before_home' => '_wcj_price_labels_before_home',
140
- '_simple_is_custom_pricing_label_before_products' => '_wcj_price_labels_before_products',
141
- '_simple_is_custom_pricing_label_before_single' => '_wcj_price_labels_before_single',
142
- '_simple_is_custom_pricing_label_text_before' => '_wcj_price_labels_before_text',
143
-
144
- '_simple_is_custom_pricing_label_between' => '_wcj_price_labels_between_enabled',
145
- '_simple_is_custom_pricing_label_between_home' => '_wcj_price_labels_between_home',
146
- '_simple_is_custom_pricing_label_between_products' => '_wcj_price_labels_between_products',
147
- '_simple_is_custom_pricing_label_between_single' => '_wcj_price_labels_between_single',
148
- '_simple_is_custom_pricing_label_text_between' => '_wcj_price_labels_between_text',
149
-
150
- '_simple_is_custom_pricing_label_after' => '_wcj_price_labels_after_enabled',
151
- '_simple_is_custom_pricing_label_after_home' => '_wcj_price_labels_after_home',
152
- '_simple_is_custom_pricing_label_after_products' => '_wcj_price_labels_after_products',
153
- '_simple_is_custom_pricing_label_after_single' => '_wcj_price_labels_after_single',
154
- '_simple_is_custom_pricing_label_text_after' => '_wcj_price_labels_after_text',
155
  );
156
-
157
- $args = array(
158
- 'post_type' => 'product',
159
- 'posts_per_page' => -1,
160
- );
161
- $loop = new WP_Query( $args );
162
- if ( $loop->have_posts() ) {
163
- $html = '<pre><ul>';
 
 
 
164
  while ( $loop->have_posts() ) : $loop->the_post();
165
  $the_product_id = get_the_ID();
166
  foreach ( $migration_data as $old_meta_name => $new_meta_name ) {
@@ -208,13 +212,12 @@ class WCJ_Price_Labels extends WCJ_Module {
208
  }
209
  }
210
  endwhile;
211
- if ( '<pre><ul>' == $html )
212
- $html = __( 'No data to migrate found', 'woocommerce-jetpack' );
213
- else
214
- $html .= '</ul></pre>';
215
- } else {
216
- $html = __( 'No products found', 'woocommerce-jetpack' );
217
  }
 
 
 
 
218
  wp_reset_postdata();
219
 
220
  $form_html = '<form method="post" action="">';
@@ -569,13 +572,12 @@ class WCJ_Price_Labels extends WCJ_Module {
569
  /**
570
  * get_settings.
571
  *
572
- * @version 2.3.10
573
  */
574
  function get_settings() {
575
  $settings = array();
576
  $settings = apply_filters( 'wcj_price_labels_settings', $settings );
577
- $settings = $this->add_tools_list( $settings );
578
- return $this->add_enable_module_setting( $settings );
579
  }
580
 
581
  /*
@@ -591,7 +593,7 @@ class WCJ_Price_Labels extends WCJ_Module {
591
  /*
592
  * add_settings.
593
  *
594
- * @version 2.3.10
595
  * @since 2.3.7
596
  */
597
  function add_settings() {
@@ -602,29 +604,15 @@ class WCJ_Price_Labels extends WCJ_Module {
602
  $product_cats[ $product_category->term_id ] = $product_category->name;
603
  }
604
 
605
- $products = array();
606
- $args = array(
607
- 'post_type' => 'product',
608
- 'post_status' => 'any',
609
- 'posts_per_page' => -1,
610
- );
611
- $loop = new WP_Query( $args );
612
- if ( $loop->have_posts() ) {
613
- while ( $loop->have_posts() ) : $loop->the_post();
614
- $products[ strval( $loop->post->ID ) ] = get_the_title( $loop->post->ID );
615
- endwhile;
616
- wp_reset_postdata();
617
- }
618
 
619
  $settings = array(
620
-
621
  array(
622
  'title' => __( 'Custom Price Labels - Globally', 'woocommerce-jetpack' ),
623
  'type' => 'title',
624
  'desc' => __( 'This section lets you set price labels for all products globally.', 'woocommerce-jetpack' ),
625
  'id' => 'wcj_global_price_labels_options',
626
  ),
627
-
628
  array(
629
  'title' => __( 'Add before the price', 'woocommerce-jetpack' ),
630
  'desc_tip' => __( 'Enter text to add before all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
@@ -632,23 +620,17 @@ class WCJ_Price_Labels extends WCJ_Module {
632
  'default' => '',
633
  'type' => 'textarea',
634
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
635
- 'custom_attributes'
636
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
637
  'css' => 'width:30%;min-width:300px;',
638
  ),
639
-
640
  array(
641
  'title' => __( 'Add after the price', 'woocommerce-jetpack' ),
642
  'desc_tip' => __( 'Enter text to add after all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
643
  'id' => 'wcj_global_price_labels_add_after_text',
644
  'default' => '',
645
  'type' => 'textarea',
646
- /* 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
647
- 'custom_attributes'
648
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),*/
649
  'css' => 'width:30%;min-width:300px;',
650
  ),
651
-
652
  array(
653
  'title' => __( 'Add between regular and sale prices', 'woocommerce-jetpack' ),
654
  'desc_tip' => __( 'Enter text to add between regular and sale prices. Leave blank to disable.', 'woocommerce-jetpack' ),
@@ -656,11 +638,9 @@ class WCJ_Price_Labels extends WCJ_Module {
656
  'default' => '',
657
  'type' => 'textarea',
658
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
659
- 'custom_attributes'
660
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
661
  'css' => 'width:30%;min-width:300px;',
662
  ),
663
-
664
  array(
665
  'title' => __( 'Remove from price', 'woocommerce-jetpack' ),
666
  // 'desc' => __( 'Enable the Custom Price Labels feature', 'woocommerce-jetpack' ),
@@ -669,11 +649,9 @@ class WCJ_Price_Labels extends WCJ_Module {
669
  'default' => '',
670
  'type' => 'textarea',
671
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
672
- 'custom_attributes'
673
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
674
  'css' => 'width:30%;min-width:300px;',
675
  ),
676
-
677
  array(
678
  'title' => __( 'Replace in price', 'woocommerce-jetpack' ),
679
  'desc_tip' => __( 'Enter text to replace in all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
@@ -685,7 +663,6 @@ class WCJ_Price_Labels extends WCJ_Module {
685
  => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
686
  'css' => 'width:30%;min-width:300px;',
687
  ),
688
-
689
  array(
690
  'title' => '',
691
  'desc_tip' => __( 'Enter text to replace with. Leave blank to disable.', 'woocommerce-jetpack' ),
@@ -693,11 +670,9 @@ class WCJ_Price_Labels extends WCJ_Module {
693
  'default' => '',
694
  'type' => 'textarea',
695
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
696
- 'custom_attributes'
697
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
698
  'css' => 'width:30%;min-width:300px;',
699
  ),
700
-
701
  array(
702
  'title' => __( 'Products - Include', 'woocommerce-jetpack' ),
703
  'desc_tip' => __( 'Apply global price labels only for selected products. Leave blank to disable the option.', 'woocommerce-jetpack' ),
@@ -708,7 +683,6 @@ class WCJ_Price_Labels extends WCJ_Module {
708
  'css' => 'width: 450px;',
709
  'options' => $products,
710
  ),
711
-
712
  array(
713
  'title' => __( 'Products - Exclude', 'woocommerce-jetpack' ),
714
  'desc_tip' => __( 'Do not apply global price labels only for selected products. Leave blank to disable the option.', 'woocommerce-jetpack' ),
@@ -719,7 +693,6 @@ class WCJ_Price_Labels extends WCJ_Module {
719
  'css' => 'width: 450px;',
720
  'options' => $products,
721
  ),
722
-
723
  array(
724
  'title' => __( 'Product Categories - Include', 'woocommerce-jetpack' ),
725
  'desc_tip' => __( 'Apply global price labels only for selected product categories. Leave blank to disable the option.', 'woocommerce-jetpack' ),
@@ -730,7 +703,6 @@ class WCJ_Price_Labels extends WCJ_Module {
730
  'css' => 'width: 450px;',
731
  'options' => $product_cats,
732
  ),
733
-
734
  array(
735
  'title' => __( 'Product Categories - Exclude', 'woocommerce-jetpack' ),
736
  'desc_tip' => __( 'Do not apply global price labels only for selected product categories. Leave blank to disable the option.', 'woocommerce-jetpack' ),
@@ -741,18 +713,15 @@ class WCJ_Price_Labels extends WCJ_Module {
741
  'css' => 'width: 450px;',
742
  'options' => $product_cats,
743
  ),
744
-
745
  array(
746
  'type' => 'sectionend',
747
  'id' => 'wcj_global_price_labels_options',
748
  ),
749
-
750
  array(
751
  'title' => __( 'Custom Price Labels - Per Product', 'woocommerce-jetpack' ),
752
  'type' => 'title',
753
  'id' => 'wcj_local_price_labels_options'
754
  ),
755
-
756
  array(
757
  'title' => __( 'Enable', 'woocommerce-jetpack' ),
758
  'desc' => __( 'This will add metaboxes to each product\'s admin edit page.', 'woocommerce-jetpack' ),
@@ -760,34 +729,11 @@ class WCJ_Price_Labels extends WCJ_Module {
760
  'default' => 'yes',
761
  'type' => 'checkbox',
762
  ),
763
-
764
  array(
765
  'type' => 'sectionend',
766
- 'id' => 'wcj_local_price_labels_options'
767
  ),
768
-
769
- /* array(
770
- 'title' => __( 'Migrate from Custom Price Labels (Pro) Options', 'woocommerce-jetpack' ),
771
- 'type' => 'title',
772
- 'desc' => __( 'This section lets you enable "Migrate from Custom Price Labels (Pro)" tool.', 'woocommerce-jetpack' ),
773
- 'id' => 'wcj_migrate_from_custom_price_labels_options'
774
- ),
775
-
776
- array(
777
- 'title' => __( 'Enable', 'woocommerce-jetpack' ),
778
- 'id' => 'wcj_migrate_from_custom_price_labels_enabled',
779
- 'default' => 'no',
780
- 'type' => 'checkbox',
781
- ),
782
-
783
- array(
784
- 'type' => 'sectionend',
785
- 'id' => 'wcj_migrate_from_custom_price_labels_options'
786
- ), */
787
-
788
  );
789
-
790
- //return $this->add_enable_module_setting( $settings );
791
  return $settings;
792
  }
793
  }
4
  *
5
  * The WooCommerce Jetpack Price Labels class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'price_labels';
25
  $this->short_desc = __( 'Custom Price Labels', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Create any custom price label for any WooCommerce product.', 'woocommerce-jetpack' );
27
+ $this->link = 'http://booster.io/features/woocommerce-custom-price-labels/';
28
  parent::__construct();
29
 
30
  $this->add_tools( array(
121
  /**
122
  * create_migrate_from_custom_price_labels_tool.
123
  *
124
+ * @version 2.5.0
125
  */
126
  public function create_migrate_from_custom_price_labels_tool() {
127
 
130
  $migrate = isset( $_POST['migrate'] ) ? true : false;
131
 
132
  $migration_data = array(
133
+ '_simple_is_custom_pricing_label' => '_wcj_price_labels_instead_enabled',
134
+ '_simple_is_custom_pricing_label_home' => '_wcj_price_labels_instead_home',
135
+ '_simple_is_custom_pricing_label_products' => '_wcj_price_labels_instead_products',
136
+ '_simple_is_custom_pricing_label_single' => '_wcj_price_labels_instead_single',
137
+ '_simple_is_custom_pricing_label_text' => '_wcj_price_labels_instead_text',
138
+
139
+ '_simple_is_custom_pricing_label_before' => '_wcj_price_labels_before_enabled',
140
+ '_simple_is_custom_pricing_label_before_home' => '_wcj_price_labels_before_home',
141
+ '_simple_is_custom_pricing_label_before_products' => '_wcj_price_labels_before_products',
142
+ '_simple_is_custom_pricing_label_before_single' => '_wcj_price_labels_before_single',
143
+ '_simple_is_custom_pricing_label_text_before' => '_wcj_price_labels_before_text',
144
+
145
+ '_simple_is_custom_pricing_label_between' => '_wcj_price_labels_between_enabled',
146
+ '_simple_is_custom_pricing_label_between_home' => '_wcj_price_labels_between_home',
147
+ '_simple_is_custom_pricing_label_between_products' => '_wcj_price_labels_between_products',
148
+ '_simple_is_custom_pricing_label_between_single' => '_wcj_price_labels_between_single',
149
+ '_simple_is_custom_pricing_label_text_between' => '_wcj_price_labels_between_text',
150
+
151
+ '_simple_is_custom_pricing_label_after' => '_wcj_price_labels_after_enabled',
152
+ '_simple_is_custom_pricing_label_after_home' => '_wcj_price_labels_after_home',
153
+ '_simple_is_custom_pricing_label_after_products' => '_wcj_price_labels_after_products',
154
+ '_simple_is_custom_pricing_label_after_single' => '_wcj_price_labels_after_single',
155
+ '_simple_is_custom_pricing_label_text_after' => '_wcj_price_labels_after_text',
156
  );
157
+ $offset = 0;
158
+ $block_size = 96;
159
+ $html = '<pre><ul>';
160
+ while( true ) {
161
+ $args = array(
162
+ 'post_type' => 'product',
163
+ 'posts_per_page' => $block_size,
164
+ 'offset' => $offset,
165
+ );
166
+ $loop = new WP_Query( $args );
167
+ if ( ! $loop->have_posts() ) break;
168
  while ( $loop->have_posts() ) : $loop->the_post();
169
  $the_product_id = get_the_ID();
170
  foreach ( $migration_data as $old_meta_name => $new_meta_name ) {
212
  }
213
  }
214
  endwhile;
215
+ $offset += $block_size;
 
 
 
 
 
216
  }
217
+ if ( '<pre><ul>' == $html )
218
+ $html = __( 'No data to migrate found', 'woocommerce-jetpack' );
219
+ else
220
+ $html .= '</ul></pre>';
221
  wp_reset_postdata();
222
 
223
  $form_html = '<form method="post" action="">';
572
  /**
573
  * get_settings.
574
  *
575
+ * @version 2.5.0
576
  */
577
  function get_settings() {
578
  $settings = array();
579
  $settings = apply_filters( 'wcj_price_labels_settings', $settings );
580
+ return $this->add_standard_settings( $settings );
 
581
  }
582
 
583
  /*
593
  /*
594
  * add_settings.
595
  *
596
+ * @version 2.5.0
597
  * @since 2.3.7
598
  */
599
  function add_settings() {
604
  $product_cats[ $product_category->term_id ] = $product_category->name;
605
  }
606
 
607
+ $products = wcj_get_products();
 
 
 
 
 
 
 
 
 
 
 
 
608
 
609
  $settings = array(
 
610
  array(
611
  'title' => __( 'Custom Price Labels - Globally', 'woocommerce-jetpack' ),
612
  'type' => 'title',
613
  'desc' => __( 'This section lets you set price labels for all products globally.', 'woocommerce-jetpack' ),
614
  'id' => 'wcj_global_price_labels_options',
615
  ),
 
616
  array(
617
  'title' => __( 'Add before the price', 'woocommerce-jetpack' ),
618
  'desc_tip' => __( 'Enter text to add before all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
620
  'default' => '',
621
  'type' => 'textarea',
622
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
623
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
 
624
  'css' => 'width:30%;min-width:300px;',
625
  ),
 
626
  array(
627
  'title' => __( 'Add after the price', 'woocommerce-jetpack' ),
628
  'desc_tip' => __( 'Enter text to add after all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
629
  'id' => 'wcj_global_price_labels_add_after_text',
630
  'default' => '',
631
  'type' => 'textarea',
 
 
 
632
  'css' => 'width:30%;min-width:300px;',
633
  ),
 
634
  array(
635
  'title' => __( 'Add between regular and sale prices', 'woocommerce-jetpack' ),
636
  'desc_tip' => __( 'Enter text to add between regular and sale prices. Leave blank to disable.', 'woocommerce-jetpack' ),
638
  'default' => '',
639
  'type' => 'textarea',
640
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
641
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
 
642
  'css' => 'width:30%;min-width:300px;',
643
  ),
 
644
  array(
645
  'title' => __( 'Remove from price', 'woocommerce-jetpack' ),
646
  // 'desc' => __( 'Enable the Custom Price Labels feature', 'woocommerce-jetpack' ),
649
  'default' => '',
650
  'type' => 'textarea',
651
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
652
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
 
653
  'css' => 'width:30%;min-width:300px;',
654
  ),
 
655
  array(
656
  'title' => __( 'Replace in price', 'woocommerce-jetpack' ),
657
  'desc_tip' => __( 'Enter text to replace in all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
663
  => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
664
  'css' => 'width:30%;min-width:300px;',
665
  ),
 
666
  array(
667
  'title' => '',
668
  'desc_tip' => __( 'Enter text to replace with. Leave blank to disable.', 'woocommerce-jetpack' ),
670
  'default' => '',
671
  'type' => 'textarea',
672
  'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
673
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
 
674
  'css' => 'width:30%;min-width:300px;',
675
  ),
 
676
  array(
677
  'title' => __( 'Products - Include', 'woocommerce-jetpack' ),
678
  'desc_tip' => __( 'Apply global price labels only for selected products. Leave blank to disable the option.', 'woocommerce-jetpack' ),
683
  'css' => 'width: 450px;',
684
  'options' => $products,
685
  ),
 
686
  array(
687
  'title' => __( 'Products - Exclude', 'woocommerce-jetpack' ),
688
  'desc_tip' => __( 'Do not apply global price labels only for selected products. Leave blank to disable the option.', 'woocommerce-jetpack' ),
693
  'css' => 'width: 450px;',
694
  'options' => $products,
695
  ),
 
696
  array(
697
  'title' => __( 'Product Categories - Include', 'woocommerce-jetpack' ),
698
  'desc_tip' => __( 'Apply global price labels only for selected product categories. Leave blank to disable the option.', 'woocommerce-jetpack' ),
703
  'css' => 'width: 450px;',
704
  'options' => $product_cats,
705
  ),
 
706
  array(
707
  'title' => __( 'Product Categories - Exclude', 'woocommerce-jetpack' ),
708
  'desc_tip' => __( 'Do not apply global price labels only for selected product categories. Leave blank to disable the option.', 'woocommerce-jetpack' ),
713
  'css' => 'width: 450px;',
714
  'options' => $product_cats,
715
  ),
 
716
  array(
717
  'type' => 'sectionend',
718
  'id' => 'wcj_global_price_labels_options',
719
  ),
 
720
  array(
721
  'title' => __( 'Custom Price Labels - Per Product', 'woocommerce-jetpack' ),
722
  'type' => 'title',
723
  'id' => 'wcj_local_price_labels_options'
724
  ),
 
725
  array(
726
  'title' => __( 'Enable', 'woocommerce-jetpack' ),
727
  'desc' => __( 'This will add metaboxes to each product\'s admin edit page.', 'woocommerce-jetpack' ),
729
  'default' => 'yes',
730
  'type' => 'checkbox',
731
  ),
 
732
  array(
733
  'type' => 'sectionend',
734
+ 'id' => 'wcj_local_price_labels_options',
735
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
736
  );
 
 
737
  return $settings;
738
  }
739
  }
includes/class-wcj-product-add-to-cart.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Product Add To Cart class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.2.0
9
  * @author Algoritmika Ltd.
10
  */
@@ -18,13 +18,13 @@ class WCJ_Product_Add_To_Cart extends WCJ_Module {
18
  /**
19
  * Constructor.
20
  *
21
- * @version 2.4.8
22
  */
23
  public function __construct() {
24
 
25
  $this->id = 'product_add_to_cart';
26
  $this->short_desc = __( 'Product Add to Cart', 'woocommerce-jetpack' );
27
- $this->desc = __( 'Set any local url to redirect to on WooCommerce Add to Cart. Automatically add to cart on product visit.', 'woocommerce-jetpack' );
28
  $this->link = 'http://booster.io/features/woocommerce-product-add-to-cart/';
29
  parent::__construct();
30
 
4
  *
5
  * The WooCommerce Jetpack Product Add To Cart class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.2.0
9
  * @author Algoritmika Ltd.
10
  */
18
  /**
19
  * Constructor.
20
  *
21
+ * @version 2.5.0
22
  */
23
  public function __construct() {
24
 
25
  $this->id = 'product_add_to_cart';
26
  $this->short_desc = __( 'Product Add to Cart', 'woocommerce-jetpack' );
27
+ $this->desc = __( '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.', 'woocommerce-jetpack' );
28
  $this->link = 'http://booster.io/features/woocommerce-product-add-to-cart/';
29
  parent::__construct();
30
 
includes/class-wcj-product-bookings.php ADDED
@@ -0,0 +1,431 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Product Bookings
4
+ *
5
+ * The WooCommerce Jetpack Product Bookings class.
6
+ *
7
+ * @version 2.5.0
8
+ * @since 2.5.0
9
+ * @author Algoritmika Ltd.
10
+ */
11
+
12
+ if ( ! defined( 'ABSPATH' ) ) exit;
13
+
14
+ if ( ! class_exists( 'WCJ_Product_Bookings' ) ) :
15
+
16
+ class WCJ_Product_Bookings extends WCJ_Module {
17
+
18
+ /**
19
+ * Constructor.
20
+ *
21
+ * @version 2.5.0
22
+ * @since 2.5.0
23
+ */
24
+ function __construct() {
25
+
26
+ $this->id = 'product_bookings';
27
+ $this->short_desc = __( 'Bookings', 'woocommerce-jetpack' );
28
+ $this->desc = __( 'Add bookings products to WooCommerce.', 'woocommerce-jetpack' );
29
+ $this->link = 'http://booster.io/features/woocommerce-bookings/';
30
+ parent::__construct();
31
+
32
+ if ( $this->is_enabled() ) {
33
+
34
+ add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
35
+ add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
36
+
37
+ if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
38
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
39
+ add_action( 'wp_ajax_price_change', array( $this, 'price_change_ajax' ) );
40
+ add_action( 'wp_ajax_nopriv_price_change', array( $this, 'price_change_ajax' ) );
41
+ // Prices
42
+ add_filter( 'woocommerce_get_price', array( $this, 'change_price' ), PHP_INT_MAX - 100, 2 );
43
+ // Single Page
44
+ add_action( 'woocommerce_before_add_to_cart_button', array( $this, 'add_input_fields_to_frontend' ), PHP_INT_MAX );
45
+ // Add to cart
46
+ add_filter( 'woocommerce_add_to_cart_validation', array( $this, 'validate_bookings_on_add_to_cart' ), PHP_INT_MAX, 2 );
47
+ add_filter( 'woocommerce_add_cart_item_data', array( $this, 'add_bookings_price_to_cart_item_data' ), PHP_INT_MAX, 3 );
48
+ add_filter( 'woocommerce_add_cart_item', array( $this, 'add_bookings_price_to_cart_item' ), PHP_INT_MAX, 2 );
49
+ add_filter( 'woocommerce_get_cart_item_from_session', array( $this, 'get_cart_item_bookings_price_from_session' ), PHP_INT_MAX, 3 );
50
+ // Price html
51
+ add_filter( 'woocommerce_get_price_html', array( $this, 'add_per_day_label' ), PHP_INT_MAX, 2 );
52
+ add_filter( 'woocommerce_get_variation_price_html', array( $this, 'add_per_day_label' ), PHP_INT_MAX, 2 );
53
+ // Add to Cart button on archives
54
+ add_filter( 'woocommerce_product_add_to_cart_url', array( $this, 'add_to_cart_url' ), PHP_INT_MAX, 2 );
55
+ add_filter( 'woocommerce_product_add_to_cart_text', array( $this, 'add_to_cart_text' ), PHP_INT_MAX, 2 );
56
+ // Show details at cart, order details, emails
57
+ add_filter( 'woocommerce_cart_item_name', array( $this, 'add_info_to_cart_item_name' ), PHP_INT_MAX, 3 );
58
+ add_filter( 'woocommerce_order_item_name', array( $this, 'add_info_to_order_item_name' ), PHP_INT_MAX, 2 );
59
+ add_action( 'woocommerce_add_order_item_meta', array( $this, 'add_info_to_order_item_meta' ), PHP_INT_MAX, 3 );
60
+ // Hide quantity
61
+ add_filter( 'woocommerce_is_sold_individually', array( $this, 'sold_individually' ), PHP_INT_MAX, 2 );
62
+ // Disable AJAX add to cart
63
+ add_filter( 'woocommerce_product_supports', array( $this, 'disable_add_to_cart_ajax' ), PHP_INT_MAX, 3 );
64
+ }
65
+
66
+ add_filter( 'wcj_save_meta_box_value', array( $this, 'save_meta_box_value' ), PHP_INT_MAX, 3 );
67
+ add_action( 'admin_notices', array( $this, 'admin_notices' ) );
68
+ }
69
+ }
70
+
71
+ /**
72
+ * disable_add_to_cart_ajax.
73
+ *
74
+ * @version 2.5.0
75
+ * @since 2.5.0
76
+ */
77
+ function disable_add_to_cart_ajax( $supports, $feature, $_product ) {
78
+ if ( $this->is_bookings_product( $_product ) && 'ajax_add_to_cart' === $feature ) {
79
+ $supports = false;
80
+ }
81
+ return $supports;
82
+ }
83
+
84
+ /**
85
+ * sold_individually.
86
+ *
87
+ * @version 2.5.0
88
+ * @since 2.5.0
89
+ */
90
+ function sold_individually( $return, $_product ) {
91
+ return ( $this->is_bookings_product( $_product ) ) ? true : $return;
92
+ }
93
+
94
+ /**
95
+ * price_change_ajax.
96
+ *
97
+ * @version 2.5.0
98
+ * @since 2.5.0
99
+ */
100
+ function price_change_ajax( $param ) {
101
+ if ( isset( $_POST['date_from'] ) && '' != $_POST['date_from'] && isset( $_POST['date_to'] ) && '' != $_POST['date_to'] ) {
102
+ $date_to = strtotime( $_POST['date_to'] );
103
+ $date_from = strtotime( $_POST['date_from'] );
104
+ $seconds_diff = $date_to - $date_from;
105
+ $days_diff = ( $seconds_diff / 60 / 60 / 24 );
106
+ $the_product = wc_get_product( $_POST['product_id'] );
107
+ $get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
108
+ $price_per_day = $the_product->$get_price_method();
109
+ $the_price = $days_diff * $price_per_day;
110
+ echo wc_price( $the_price );
111
+ }
112
+ wp_die();
113
+ }
114
+
115
+ /**
116
+ * enqueue_scripts.
117
+ *
118
+ * @version 2.5.0
119
+ * @since 2.5.0
120
+ */
121
+ function enqueue_scripts() {
122
+ wp_enqueue_script( 'wcj-bookings', wcj_plugin_url() . '/includes/js/wcj-bookings.js', array(), false, true );
123
+ $the_product = wc_get_product();
124
+ wp_localize_script( 'wcj-bookings', 'ajax_object', array(
125
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
126
+ 'product_id' => get_the_ID(),
127
+ 'wrong_dates_message' => __( '"Date to" must be after "Date from"', 'woocommerce-jetpack' ),
128
+ 'original_price_html' => $the_product->get_price_html(),
129
+ ) );
130
+ }
131
+
132
+ /**
133
+ * add_to_cart_text.
134
+ *
135
+ * @version 2.5.0
136
+ * @since 2.5.0
137
+ */
138
+ function add_to_cart_text( $text, $_product ) {
139
+ return ( $this->is_bookings_product( $_product ) ) ? __( 'Read more', 'woocommerce' ) : $text;
140
+ }
141
+
142
+ /**
143
+ * add_to_cart_url.
144
+ *
145
+ * @version 2.5.0
146
+ * @since 2.5.0
147
+ */
148
+ function add_to_cart_url( $url, $_product ) {
149
+ return ( $this->is_bookings_product( $_product ) ) ? get_permalink( $_product->id ) : $url;
150
+ }
151
+
152
+ /**
153
+ * add_info_to_order_item_meta.
154
+ *
155
+ * @version 2.5.0
156
+ * @since 2.5.0
157
+ */
158
+ function add_info_to_order_item_meta( $item_id, $values, $cart_item_key ) {
159
+ if ( isset( $values['wcj_bookings_price'] ) ) {
160
+ wc_add_order_item_meta( $item_id, '_' . 'wcj_bookings_price', $values['wcj_bookings_price'] );
161
+ wc_add_order_item_meta( $item_id, '_' . 'wcj_bookings_date_from', $values['wcj_bookings_date_from'] );
162
+ wc_add_order_item_meta( $item_id, '_' . 'wcj_bookings_date_to', $values['wcj_bookings_date_to'] );
163
+ }
164
+ }
165
+
166
+ /**
167
+ * Adds info to order details (and emails).
168
+ *
169
+ * @version 2.5.0
170
+ * @since 2.5.0
171
+ */
172
+ function add_info_to_order_item_name( $name, $item, $is_cart = false ) {
173
+ if ( $is_cart ) {
174
+ $name .= '<dl class="variation">';
175
+ }
176
+ if ( isset( $item['wcj_bookings_price'] ) ) {
177
+ if ( $is_cart ) {
178
+ $name .= '<dt>' . __( 'Period', 'woocommerce-jetpack' ) . ':' . '</dt>';
179
+ $name .= '<dd>' . $item['wcj_bookings_date_from'] . ' - ' . $item['wcj_bookings_date_to'] . '</dd>';
180
+ } else {
181
+ $name .= ' | ' . $item['wcj_bookings_date_from'] . ' - ' . $item['wcj_bookings_date_to'];
182
+ }
183
+ }
184
+ if ( $is_cart ) {
185
+ $name .= '</dl>';
186
+ }
187
+ return $name;
188
+ }
189
+
190
+ /**
191
+ * Adds info to cart item details.
192
+ *
193
+ * @version 2.5.0
194
+ * @since 2.5.0
195
+ */
196
+ function add_info_to_cart_item_name( $name, $cart_item, $cart_item_key ) {
197
+ return $this->add_info_to_order_item_name( $name, $cart_item, true );
198
+ }
199
+
200
+ /**
201
+ * validate_bookings_on_add_to_cart.
202
+ *
203
+ * @version 2.5.0
204
+ * @since 2.5.0
205
+ */
206
+ function validate_bookings_on_add_to_cart( $passed, $product_id ) {
207
+ $the_product = wc_get_product( $product_id );
208
+ if ( $this->is_bookings_product( $the_product ) ) {
209
+ if ( ! isset( $_POST['wcj_product_bookings_date_from'] ) || '' == $_POST['wcj_product_bookings_date_from'] ) {
210
+ wc_add_notice( __( '"Date from" must be set', 'woocommerce-jetpack' ), 'error' );
211
+ return false;
212
+ }
213
+ if ( ! isset( $_POST['wcj_product_bookings_date_to'] ) || '' == $_POST['wcj_product_bookings_date_to'] ) {
214
+ wc_add_notice( __( '"Date to" must be set', 'woocommerce-jetpack' ), 'error' );
215
+ return false;
216
+ }
217
+ $date_to = strtotime( $_POST['wcj_product_bookings_date_to'] );
218
+ $date_from = strtotime( $_POST['wcj_product_bookings_date_from'] );
219
+ if ( $date_from >= $date_to ) {
220
+ wc_add_notice( __( '"Date to" must be after "Date from"', 'woocommerce-jetpack' ), 'error' );
221
+ return false;
222
+ }
223
+ }
224
+ return $passed;
225
+ }
226
+
227
+ /**
228
+ * get_cart_item_bookings_price_from_session.
229
+ *
230
+ * @version 2.5.0
231
+ * @since 2.5.0
232
+ */
233
+ function get_cart_item_bookings_price_from_session( $item, $values, $key ) {
234
+ if ( array_key_exists( 'wcj_bookings_price', $values ) ) {
235
+ $item['data']->wcj_bookings_price = $values['wcj_bookings_price'];
236
+ }
237
+ return $item;
238
+ }
239
+
240
+ /**
241
+ * add_bookings_price_to_cart_item_data.
242
+ *
243
+ * @version 2.5.0
244
+ * @since 2.5.0
245
+ */
246
+ function add_bookings_price_to_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
247
+ if ( isset( $_POST['wcj_product_bookings_date_to'] ) && isset( $_POST['wcj_product_bookings_date_from'] ) ) {
248
+ $the_product = wc_get_product( $product_id );
249
+ if ( $this->is_bookings_product( $the_product ) ) {
250
+ $date_to = strtotime( $_POST['wcj_product_bookings_date_to'] );
251
+ $date_from = strtotime( $_POST['wcj_product_bookings_date_from'] );
252
+ $seconds_diff = $date_to - $date_from;
253
+ $days_diff = ( $seconds_diff / 60 / 60 / 24 );
254
+ if ( 0 != $variation_id ) {
255
+ $the_product = wc_get_product( $variation_id );
256
+ }
257
+ $price_per_day = $the_product->get_price();
258
+ $the_price = $days_diff * $price_per_day;
259
+ $cart_item_data['wcj_bookings_price'] = $the_price;
260
+ $cart_item_data['wcj_bookings_date_from'] = $_POST['wcj_product_bookings_date_from'];
261
+ $cart_item_data['wcj_bookings_date_to'] = $_POST['wcj_product_bookings_date_to'];
262
+ // wc_add_notice( sprintf( __( 'Price for %d days: %s', 'woocommerce-jetpack' ), $days_diff, wc_price( $the_price ) ), 'notice' );
263
+ }
264
+ }
265
+ return $cart_item_data;
266
+ }
267
+
268
+ /**
269
+ * add_bookings_price_to_cart_item.
270
+ *
271
+ * @version 2.5.0
272
+ * @since 2.5.0
273
+ */
274
+ function add_bookings_price_to_cart_item( $cart_item_data, $cart_item_key ) {
275
+ if ( isset( $cart_item_data['wcj_bookings_price'] ) ) {
276
+ $cart_item_data['data']->wcj_bookings_price = $cart_item_data['wcj_bookings_price'];
277
+ }
278
+ return $cart_item_data;
279
+ }
280
+
281
+ /**
282
+ * add_input_fields_to_frontend.
283
+ *
284
+ * @version 2.5.0
285
+ * @since 2.5.0
286
+ */
287
+ function add_input_fields_to_frontend() {
288
+ if ( $this->is_bookings_product( wc_get_product() ) ) {
289
+ $data_table = array();
290
+ $date_from_value = ( isset( $_POST['wcj_product_bookings_date_from'] ) ) ? $_POST['wcj_product_bookings_date_from'] : '';
291
+ $date_to_value = ( isset( $_POST['wcj_product_bookings_date_to'] ) ) ? $_POST['wcj_product_bookings_date_to'] : '';
292
+ $data_table[] = array(
293
+ __( 'Date from' ),
294
+ '<input firstday="0" dateformat="mm/dd/yy" mindate="0" type="datepicker" display="date" name="wcj_product_bookings_date_from" placeholder="" value="' . $date_from_value . '">',
295
+ );
296
+ $data_table[] = array(
297
+ __( 'Date to' ),
298
+ '<input firstday="0" dateformat="mm/dd/yy" mindate="0" type="datepicker" display="date" name="wcj_product_bookings_date_to" placeholder="" value="' . $date_to_value . '">',
299
+ );
300
+ echo wcj_get_table_html( $data_table, array( 'table_heading_type' => 'none', ) );
301
+ echo '<div style="display:none !important;" name="wcj_bookings_message"><p style="color:red;"></p></div>';
302
+ }
303
+ }
304
+
305
+ /**
306
+ * add_per_day_label.
307
+ *
308
+ * @version 2.5.0
309
+ * @since 2.5.0
310
+ */
311
+ function add_per_day_label( $price_html, $_product ) {
312
+ return ( $this->is_bookings_product( $_product ) ) ? $price_html . ' / ' . __( 'day', 'woocommerce-jetpack' ) : $price_html;
313
+ }
314
+
315
+ /**
316
+ * change_price.
317
+ *
318
+ * @version 2.5.0
319
+ * @since 2.5.0
320
+ */
321
+ function change_price( $price, $_product ) {
322
+ return ( $this->is_bookings_product( $_product ) && isset( $_product->wcj_bookings_price ) ) ? $_product->wcj_bookings_price : $price;
323
+ }
324
+
325
+ /**
326
+ * save_meta_box_value.
327
+ *
328
+ * @version 2.5.0
329
+ * @since 2.5.0
330
+ */
331
+ function save_meta_box_value( $option_value, $option_name, $module_id ) {
332
+ if ( true === apply_filters( 'wcj_get_option_filter', false, true ) ) {
333
+ return $option_value;
334
+ }
335
+ if ( 'no' === $option_value ) {
336
+ return $option_value;
337
+ }
338
+ if ( $this->id === $module_id && 'wcj_product_bookings_enabled' === $option_name ) {
339
+ $args = array(
340
+ 'post_type' => 'product',
341
+ 'post_status' => 'any',
342
+ 'posts_per_page' => 1,
343
+ 'meta_key' => '_' . 'wcj_product_bookings_enabled',
344
+ 'meta_value' => 'yes',
345
+ 'post__not_in' => array( get_the_ID() ),
346
+ );
347
+ $loop = new WP_Query( $args );
348
+ $c = $loop->found_posts + 1;
349
+ if ( $c >= 2 ) {
350
+ add_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
351
+ return 'no';
352
+ }
353
+ }
354
+ return $option_value;
355
+ }
356
+
357
+ /**
358
+ * add_notice_query_var.
359
+ *
360
+ * @version 2.5.0
361
+ * @since 2.5.0
362
+ */
363
+ function add_notice_query_var( $location ) {
364
+ remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
365
+ return add_query_arg( array( 'wcj_product_bookings_admin_notice' => true ), $location );
366
+ }
367
+
368
+ /**
369
+ * admin_notices.
370
+ *
371
+ * @version 2.5.0
372
+ * @since 2.5.0
373
+ */
374
+ function admin_notices() {
375
+ if ( ! isset( $_GET['wcj_product_bookings_admin_notice'] ) ) {
376
+ return;
377
+ }
378
+ ?><div class="error"><p><?php
379
+ echo '<div class="message">'
380
+ . __( 'Booster: Free plugin\'s version is limited to only one bookings product enabled at a time. You will need to get <a href="http://booster.io/plus/" target="_blank">Booster Plus</a> to add unlimited number of bookings products.', 'woocommerce-jetpack' )
381
+ . '</div>';
382
+ ?></p></div><?php
383
+ }
384
+
385
+ /**
386
+ * is_bookings_product.
387
+ *
388
+ * @version 2.5.0
389
+ * @since 2.5.0
390
+ */
391
+ function is_bookings_product( $_product ) {
392
+ return ( 'yes' === get_post_meta( $_product->id, '_' . 'wcj_product_bookings_enabled', true ) ) ? true : false;
393
+ }
394
+
395
+ /**
396
+ * get_meta_box_options.
397
+ *
398
+ * @version 2.5.0
399
+ * @since 2.5.0
400
+ */
401
+ function get_meta_box_options() {
402
+ $options = array(
403
+ array(
404
+ 'name' => 'wcj_product_bookings_enabled',
405
+ 'default' => 'no',
406
+ 'type' => 'select',
407
+ 'options' => array(
408
+ 'yes' => __( 'Yes', 'woocommerce-jetpack' ),
409
+ 'no' => __( 'No', 'woocommerce-jetpack' ),
410
+ ),
411
+ 'title' => __( 'Enabled', 'woocommerce-jetpack' ),
412
+ ),
413
+ );
414
+ return $options;
415
+ }
416
+
417
+ /**
418
+ * get_settings.
419
+ *
420
+ * @version 2.5.0
421
+ * @since 2.5.0
422
+ */
423
+ function get_settings() {
424
+ $settings = array();
425
+ return $this->add_standard_settings( $settings, __( 'When enabled, module will add new "Booster: Bookings" meta box to each product\'s edit page.', 'woocommerce-jetpack' ) );
426
+ }
427
+ }
428
+
429
+ endif;
430
+
431
+ return new WCJ_Product_Bookings();
includes/class-wcj-product-bulk-price-converter.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Bulk Price Converter class.
6
  *
7
- * @version 2.4.4
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,13 +17,14 @@ class WCJ_Bulk_Price_Converter extends WCJ_Module {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.3.10
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'bulk_price_converter';
25
  $this->short_desc = __( 'Bulk Price Converter', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Multiply all WooCommerce products prices by set value.', 'woocommerce-jetpack' );
 
27
  parent::__construct();
28
 
29
  $this->add_tools( array(
4
  *
5
  * The WooCommerce Jetpack Bulk Price Converter class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
24
  $this->id = 'bulk_price_converter';
25
  $this->short_desc = __( 'Bulk Price Converter', 'woocommerce-jetpack' );
26
  $this->desc = __( 'Multiply all WooCommerce products prices by set value.', 'woocommerce-jetpack' );
27
+ $this->link = 'http://booster.io/features/woocommerce-bulk-price-converter/';
28
  parent::__construct();
29
 
30
  $this->add_tools( array(
includes/class-wcj-product-by-country.php ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Product by Country
4
+ *
5
+ * The WooCommerce Jetpack Product by Country class.
6
+ *
7
+ * @version 2.5.0
8
+ * @since 2.5.0
9
+ * @author Algoritmika Ltd.
10
+ */
11
+
12
+ if ( ! defined( 'ABSPATH' ) ) exit;
13
+
14
+ if ( ! class_exists( 'WCJ_Product_By_Country' ) ) :
15
+
16
+ class WCJ_Product_By_Country extends WCJ_Module {
17
+
18
+ /**
19
+ * Constructor.
20
+ *
21
+ * @version 2.5.0
22
+ * @since 2.5.0
23
+ */
24
+ function __construct() {
25
+
26
+ $this->id = 'product_by_country';
27
+ $this->short_desc = __( 'Product by Country', 'woocommerce-jetpack' );
28
+ $this->desc = __( 'Display WooCommerce products by customers country.', 'woocommerce-jetpack' );
29
+ $this->link = 'http://booster.io/features/woocommerce-product-by-country/';
30
+ parent::__construct();
31
+
32
+ if ( $this->is_enabled() ) {
33
+ add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
34
+ add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
35
+ if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
36
+ add_filter( 'woocommerce_product_is_visible', array( $this, 'product_by_country' ), PHP_INT_MAX, 2 );
37
+ }
38
+ }
39
+ }
40
+
41
+ /**
42
+ * product_by_country.
43
+ *
44
+ * @version 2.5.0
45
+ * @since 2.5.0
46
+ */
47
+ function product_by_country( $visible, $product_id ) {
48
+ // Get the country by IP
49
+ $location = WC_Geolocation::geolocate_ip();
50
+ // Base fallback
51
+ if ( empty( $location['country'] ) ) {
52
+ $location = wc_format_country_state_string( apply_filters( 'woocommerce_customer_default_location', get_option( 'woocommerce_default_country' ) ) );
53
+ }
54
+ $country = ( isset( $location['country'] ) ) ? $location['country'] : '';
55
+ $visible_countries = get_post_meta( $product_id, '_' . 'wcj_product_by_country_visible', true );
56
+ if ( is_array( $visible_countries ) && ! in_array( $country, $visible_countries ) ) {
57
+ return false;
58
+ }
59
+ return $visible;
60
+ }
61
+
62
+ /**
63
+ * get_meta_box_options.
64
+ *
65
+ * @version 2.5.0
66
+ * @since 2.5.0
67
+ */
68
+ function get_meta_box_options() {
69
+ $options = array(
70
+ array(
71
+ 'name' => 'wcj_product_by_country_visible',
72
+ 'default' => '',
73
+ 'type' => 'select',
74
+ 'options' => wcj_get_countries(),
75
+ 'multiple' => true,
76
+ 'title' => __( 'Visible in Countries', 'woocommerce-jetpack' ),
77
+ ),
78
+ );
79
+ return $options;
80
+ }
81
+
82
+ /**
83
+ * get_settings.
84
+ *
85
+ * @version 2.5.0
86
+ * @since 2.5.0
87
+ */
88
+ function get_settings() {
89
+ $settings = array();
90
+ return $this->add_standard_settings( $settings, __( 'When enabled, module will add new "Booster: Product by Country" meta box to each product\'s edit page.', 'woocommerce-jetpack' ) );
91
+ }
92
+ }
93
+
94
+ endif;
95
+
96
+ return new WCJ_Product_By_Country();
includes/class-wcj-product-custom-info.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Product Custom Info class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.4.0
9
  * @author Algoritmika Ltd.
10
  */
@@ -18,13 +18,14 @@ class WCJ_Product_Custom_info extends WCJ_Module {
18
  /**
19
  * Constructor.
20
  *
21
- * @version 2.4.6
22
  */
23
  public function __construct() {
24
 
25
  $this->id = 'product_custom_info';
26
  $this->short_desc = __( 'Product Info V2', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Add additional info to WooCommerce category and single product pages.', 'woocommerce-jetpack' );
 
28
  parent::__construct();
29
 
30
  add_action( 'init', array( $this, 'add_settings_hook' ) );
@@ -94,23 +95,11 @@ class WCJ_Product_Custom_info extends WCJ_Module {
94
  /**
95
  * add_settings.
96
  *
97
- * @version 2.4.8
98
  */
99
  function add_settings() {
100
 
101
- $products = array();
102
- $args = array(
103
- 'post_type' => 'product',
104
- 'post_status' => 'any',
105
- 'posts_per_page' => -1,
106
- );
107
- $loop = new WP_Query( $args );
108
- if ( $loop->have_posts() ) {
109
- while ( $loop->have_posts() ) : $loop->the_post();
110
- $products[ strval( $loop->post->ID ) ] = get_the_title( $loop->post->ID );
111
- endwhile;
112
- wp_reset_postdata();
113
- }
114
 
115
  $settings = array();
116
  $single_or_archive_array = array( 'single', 'archive' );
4
  *
5
  * The WooCommerce Jetpack Product Custom Info class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.4.0
9
  * @author Algoritmika Ltd.
10
  */
18
  /**
19
  * Constructor.
20
  *
21
+ * @version 2.5.0
22
  */
23
  public function __construct() {
24
 
25
  $this->id = 'product_custom_info';
26
  $this->short_desc = __( 'Product Info V2', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Add additional info to WooCommerce category and single product pages.', 'woocommerce-jetpack' );
28
+ $this->link = 'http://booster.io/features/woocommerce-product-info/';
29
  parent::__construct();
30
 
31
  add_action( 'init', array( $this, 'add_settings_hook' ) );
95
  /**
96
  * add_settings.
97
  *
98
+ * @version 2.5.0
99
  */
100
  function add_settings() {
101
 
102
+ $products = wcj_get_products();
 
 
 
 
 
 
 
 
 
 
 
 
103
 
104
  $settings = array();
105
  $single_or_archive_array = array( 'single', 'archive' );
includes/class-wcj-product-info.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Product Info class.
6
  *
7
- * @version 2.4.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -95,13 +95,14 @@ class WCJ_Product_Info extends WCJ_Module {
95
  /**
96
  * Constructor.
97
  *
98
- * @version 2.4.0
99
  */
100
  function __construct() {
101
 
102
  $this->id = 'product_info';
103
  $this->short_desc = __( 'Product Info', 'woocommerce-jetpack' );
104
  $this->desc = __( 'Add additional info to WooCommerce category and single product pages.', 'woocommerce-jetpack' );
 
105
  parent::__construct();
106
 
107
  $this->product_info_on_archive_filters_array = $this->get_product_info_on_archive_filters_array();
4
  *
5
  * The WooCommerce Jetpack Product Info class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
95
  /**
96
  * Constructor.
97
  *
98
+ * @version 2.5.0
99
  */
100
  function __construct() {
101
 
102
  $this->id = 'product_info';
103
  $this->short_desc = __( 'Product Info', 'woocommerce-jetpack' );
104
  $this->desc = __( 'Add additional info to WooCommerce category and single product pages.', 'woocommerce-jetpack' );
105
+ $this->link = 'http://booster.io/features/woocommerce-product-info/';
106
  parent::__construct();
107
 
108
  $this->product_info_on_archive_filters_array = $this->get_product_info_on_archive_filters_array();
includes/class-wcj-product-input-fields.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Product Input Fields class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -66,7 +66,7 @@ class WCJ_Product_Input_Fields extends WCJ_Module {
66
  /**
67
  * handle_downloads.
68
  *
69
- * @version 2.2.2
70
  * @since 2.2.2
71
  */
72
  public function handle_downloads() {
@@ -74,7 +74,7 @@ class WCJ_Product_Input_Fields extends WCJ_Module {
74
  $file_name = $_GET['wcj_download_file'];
75
  $upload_dir = wcj_get_wcj_uploads_dir( 'input_fields_uploads' );
76
  $file_path = $upload_dir . '/' . $file_name;
77
- if ( is_super_admin() || is_shop_manager() ) {
78
  header( "Expires: 0" );
79
  header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
80
  header( "Cache-Control: private", false );
@@ -114,7 +114,7 @@ class WCJ_Product_Input_Fields extends WCJ_Module {
114
  /**
115
  * get_settings.
116
  *
117
- * @version 2.4.0
118
  */
119
  function get_settings() {
120
 
@@ -242,6 +242,35 @@ class WCJ_Product_Input_Fields extends WCJ_Module {
242
  ),
243
  ) );
244
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
245
  $settings = array_merge( $settings, array(
246
  array(
247
  'title' => __( 'Admin Order View Options', 'woocommerce-jetpack' ),
4
  *
5
  * The WooCommerce Jetpack Product Input Fields class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
66
  /**
67
  * handle_downloads.
68
  *
69
+ * @version 2.5.0
70
  * @since 2.2.2
71
  */
72
  public function handle_downloads() {
74
  $file_name = $_GET['wcj_download_file'];
75
  $upload_dir = wcj_get_wcj_uploads_dir( 'input_fields_uploads' );
76
  $file_path = $upload_dir . '/' . $file_name;
77
+ if ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) {
78
  header( "Expires: 0" );
79
  header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
80
  header( "Cache-Control: private", false );
114
  /**
115
  * get_settings.
116
  *
117
+ * @version 2.5.0
118
  */
119
  function get_settings() {
120
 
242
  ),
243
  ) );
244
 
245
+ $settings = array_merge( $settings, array(
246
+ array(
247
+ 'title' => __( 'Emails Options', 'woocommerce-jetpack' ),
248
+ 'type' => 'title',
249
+ 'id' => 'wcj_product_input_fields_emails_options',
250
+ ),
251
+
252
+ array(
253
+ 'title' => __( 'Attach Files to Admin\'s New Order Emails', 'woocommerce-jetpack' ),
254
+ 'desc' => __( 'Attach', 'woocommerce-jetpack' ),
255
+ 'id' => 'wcj_product_input_fields_attach_to_admin_new_order',
256
+ 'default' => 'yes',
257
+ 'type' => 'checkbox',
258
+ ),
259
+
260
+ array(
261
+ 'title' => __( 'Attach Files to Customer\'s Processing Order Emails', 'woocommerce-jetpack' ),
262
+ 'desc' => __( 'Attach', 'woocommerce-jetpack' ),
263
+ 'id' => 'wcj_product_input_fields_attach_to_customer_processing_order',
264
+ 'default' => 'yes',
265
+ 'type' => 'checkbox',
266
+ ),
267
+
268
+ array(
269
+ 'type' => 'sectionend',
270
+ 'id' => 'wcj_product_input_fields_emails_options',
271
+ ),
272
+ ) );
273
+
274
  $settings = array_merge( $settings, array(
275
  array(
276
  'title' => __( 'Admin Order View Options', 'woocommerce-jetpack' ),
includes/class-wcj-product-open-pricing.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Product Open Pricing class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.4.8
9
  * @author Algoritmika Ltd.
10
  */
@@ -18,7 +18,7 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
18
  /**
19
  * Constructor.
20
  *
21
- * @version 2.4.8
22
  * @since 2.4.8
23
  */
24
  function __construct() {
@@ -26,7 +26,7 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
26
  $this->id = 'product_open_pricing';
27
  $this->short_desc = __( 'Product Open Pricing (Name Your Price)', 'woocommerce-jetpack' );
28
  $this->desc = __( 'Let your WooCommerce store customers enter price for the product manually.', 'woocommerce-jetpack' );
29
- $this->link = '';
30
  parent::__construct();
31
 
32
  if ( $this->is_enabled() ) {
@@ -37,6 +37,7 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
37
  add_filter( 'woocommerce_get_variation_price_html', array( $this, 'hide_original_price' ), PHP_INT_MAX, 2 );
38
  add_filter( 'woocommerce_is_sold_individually', array( $this, 'hide_quantity_input_field' ), PHP_INT_MAX, 2 );
39
  add_filter( 'woocommerce_is_purchasable', array( $this, 'is_purchasable' ), PHP_INT_MAX, 2 );
 
40
  add_filter( 'woocommerce_product_add_to_cart_url', array( $this, 'add_to_cart_url' ), PHP_INT_MAX, 2 );
41
  add_filter( 'woocommerce_product_add_to_cart_text', array( $this, 'add_to_cart_text' ), PHP_INT_MAX, 2 );
42
  add_action( 'woocommerce_before_add_to_cart_button', array( $this, 'add_open_price_input_field_to_frontend' ), PHP_INT_MAX );
@@ -59,10 +60,23 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
59
  return ( 'yes' === get_post_meta( $_product->id, '_' . 'wcj_product_open_price_enabled', true ) ) ? true : false;
60
  }
61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  /**
63
  * save_meta_box_value.
64
  *
65
- * @version 2.4.8
66
  * @since 2.4.8
67
  */
68
  function save_meta_box_value( $option_value, $option_name, $module_id ) {
@@ -76,12 +90,13 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
76
  $args = array(
77
  'post_type' => 'product',
78
  'post_status' => 'any',
79
- 'posts_per_page' => -1,
80
  'meta_key' => '_' . 'wcj_product_open_price_enabled',
81
  'meta_value' => 'yes',
 
82
  );
83
  $loop = new WP_Query( $args );
84
- $c = $loop->found_posts;
85
  if ( $c >= 2 ) {
86
  add_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
87
  return 'no';
4
  *
5
  * The WooCommerce Jetpack Product Open Pricing class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.4.8
9
  * @author Algoritmika Ltd.
10
  */
18
  /**
19
  * Constructor.
20
  *
21
+ * @version 2.5.0
22
  * @since 2.4.8
23
  */
24
  function __construct() {
26
  $this->id = 'product_open_pricing';
27
  $this->short_desc = __( 'Product Open Pricing (Name Your Price)', 'woocommerce-jetpack' );
28
  $this->desc = __( 'Let your WooCommerce store customers enter price for the product manually.', 'woocommerce-jetpack' );
29
+ $this->link = 'http://booster.io/features/woocommerce-product-open-pricing-name-your-price/';
30
  parent::__construct();
31
 
32
  if ( $this->is_enabled() ) {
37
  add_filter( 'woocommerce_get_variation_price_html', array( $this, 'hide_original_price' ), PHP_INT_MAX, 2 );
38
  add_filter( 'woocommerce_is_sold_individually', array( $this, 'hide_quantity_input_field' ), PHP_INT_MAX, 2 );
39
  add_filter( 'woocommerce_is_purchasable', array( $this, 'is_purchasable' ), PHP_INT_MAX, 2 );
40
+ add_filter( 'woocommerce_product_supports', array( $this, 'disable_add_to_cart_ajax' ), PHP_INT_MAX, 3 );
41
  add_filter( 'woocommerce_product_add_to_cart_url', array( $this, 'add_to_cart_url' ), PHP_INT_MAX, 2 );
42
  add_filter( 'woocommerce_product_add_to_cart_text', array( $this, 'add_to_cart_text' ), PHP_INT_MAX, 2 );
43
  add_action( 'woocommerce_before_add_to_cart_button', array( $this, 'add_open_price_input_field_to_frontend' ), PHP_INT_MAX );
60
  return ( 'yes' === get_post_meta( $_product->id, '_' . 'wcj_product_open_price_enabled', true ) ) ? true : false;
61
  }
62
 
63
+ /**
64
+ * disable_add_to_cart_ajax.
65
+ *
66
+ * @version 2.5.0
67
+ * @since 2.5.0
68
+ */
69
+ function disable_add_to_cart_ajax( $supports, $feature, $_product ) {
70
+ if ( $this->is_open_price_product( $_product ) && 'ajax_add_to_cart' === $feature ) {
71
+ $supports = false;
72
+ }
73
+ return $supports;
74
+ }
75
+
76
  /**
77
  * save_meta_box_value.
78
  *
79
+ * @version 2.5.0
80
  * @since 2.4.8
81
  */
82
  function save_meta_box_value( $option_value, $option_name, $module_id ) {
90
  $args = array(
91
  'post_type' => 'product',
92
  'post_status' => 'any',
93
+ 'posts_per_page' => 1,
94
  'meta_key' => '_' . 'wcj_product_open_price_enabled',
95
  'meta_value' => 'yes',
96
+ 'post__not_in' => array( get_the_ID() ),
97
  );
98
  $loop = new WP_Query( $args );
99
+ $c = $loop->found_posts + 1;
100
  if ( $c >= 2 ) {
101
  add_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
102
  return 'no';
includes/class-wcj-product-price-by-formula.php ADDED
@@ -0,0 +1,345 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Product Price by Formula
4
+ *
5
+ * The WooCommerce Jetpack Product Price by Formula class.
6
+ *
7
+ * @version 2.5.0
8
+ * @since 2.5.0
9
+ * @author Algoritmika Ltd.
10
+ */
11
+
12
+ if ( ! defined( 'ABSPATH' ) ) exit;
13
+
14
+ if ( ! class_exists( 'WCJ_Product_Price_by_Formula' ) ) :
15
+
16
+ class WCJ_Product_Price_by_Formula extends WCJ_Module {
17
+
18
+ /**
19
+ * Constructor.
20
+ *
21
+ * @version 2.5.0
22
+ * @since 2.5.0
23
+ */
24
+ function __construct() {
25
+
26
+ $this->id = 'product_price_by_formula';
27
+ $this->short_desc = __( 'Product Price by Formula', 'woocommerce-jetpack' );
28
+ $this->desc = __( 'Set formula for automatic WooCommerce product price calculation.', 'woocommerce-jetpack' );
29
+ $this->link = 'http://booster.io/features/woocommerce-product-price-formula/';
30
+ parent::__construct();
31
+
32
+ if ( $this->is_enabled() ) {
33
+ require_once( wcj_plugin_path() . '/includes/lib/PHPMathParser/Math.php' );
34
+
35
+ add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
36
+ add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
37
+
38
+ if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
39
+ // Prices
40
+ add_filter( 'woocommerce_get_price', array( $this, 'change_price_by_formula' ), PHP_INT_MAX - 100, 2 );
41
+ add_filter( 'woocommerce_get_sale_price', array( $this, 'change_price_by_formula' ), PHP_INT_MAX - 100, 2 );
42
+ add_filter( 'woocommerce_get_regular_price', array( $this, 'change_price_by_formula' ), PHP_INT_MAX - 100, 2 );
43
+ // Variations
44
+ add_filter( 'woocommerce_variation_prices_price', array( $this, 'change_price_by_formula' ), PHP_INT_MAX - 100, 2 );
45
+ add_filter( 'woocommerce_variation_prices_regular_price', array( $this, 'change_price_by_formula' ), PHP_INT_MAX - 100, 2 );
46
+ add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'change_price_by_formula' ), PHP_INT_MAX - 100, 2 );
47
+ add_filter( 'woocommerce_get_variation_prices_hash', array( $this, 'get_variation_prices_hash' ), PHP_INT_MAX - 100, 3 );
48
+ // Grouped products
49
+ add_filter( 'woocommerce_get_price_including_tax', array( $this, 'change_price_by_formula_grouped' ), PHP_INT_MAX - 100, 3 );
50
+ add_filter( 'woocommerce_get_price_excluding_tax', array( $this, 'change_price_by_formula_grouped' ), PHP_INT_MAX - 100, 3 );
51
+ }
52
+
53
+ add_filter( 'wcj_save_meta_box_value', array( $this, 'save_meta_box_value' ), PHP_INT_MAX, 3 );
54
+ add_action( 'admin_notices', array( $this, 'admin_notices' ) );
55
+ }
56
+ }
57
+
58
+ /**
59
+ * change_price_by_formula_grouped.
60
+ *
61
+ * @version 2.5.0
62
+ * @since 2.5.0
63
+ */
64
+ function change_price_by_formula_grouped( $price, $qty, $_product ) {
65
+ if ( $_product->is_type( 'grouped' ) ) {
66
+ $get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
67
+ foreach ( $_product->get_children() as $child_id ) {
68
+ $the_price = get_post_meta( $child_id, '_price', true );
69
+ $the_product = wc_get_product( $child_id );
70
+ $the_price = $the_product->$get_price_method( 1, $the_price );
71
+ if ( $the_price == $price ) {
72
+ return $this->change_price_by_formula( $price, $the_product );
73
+ }
74
+ }
75
+ }
76
+ return $price;
77
+ }
78
+
79
+ /**
80
+ * change_price_by_formula.
81
+ *
82
+ * @version 2.5.0
83
+ * @since 2.5.0
84
+ */
85
+ function change_price_by_formula( $price, $_product, $output_errors = false ) {
86
+ if ( $this->is_price_by_formula_product( $_product ) && '' != $price ) {
87
+ $is_per_product = ( 'per_product' === get_post_meta( $_product->id, '_' . 'wcj_product_price_by_formula_calculation', true ) ) ? true : false;
88
+ $the_formula = ( $is_per_product )
89
+ ? get_post_meta( $_product->id, '_' . 'wcj_product_price_by_formula_eval', true )
90
+ : get_option( 'wcj_product_price_by_formula_eval', '' );
91
+ if ( '' != $the_formula ) {
92
+ $total_params = ( $is_per_product )
93
+ ? get_post_meta( $_product->id, '_' . 'wcj_product_price_by_formula_total_params', true )
94
+ : get_option( 'wcj_product_price_by_formula_total_params', 1 );
95
+ if ( $total_params > 0 ) {
96
+ $the_current_filter = current_filter();
97
+ if ( 'woocommerce_get_price_including_tax' == $the_current_filter || 'woocommerce_get_price_excluding_tax' == $the_current_filter ) {
98
+ $get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
99
+ return $_product->$get_price_method();
100
+ }
101
+ $math = new PHPMathParser\Math();
102
+ $math->registerVariable( 'x', $price );
103
+ for ( $i = 1; $i <= $total_params; $i++ ) {
104
+ $the_param = ( $is_per_product )
105
+ ? get_post_meta( $_product->id, '_' . 'wcj_product_price_by_formula_param_' . $i, true )
106
+ : get_option( 'wcj_product_price_by_formula_param_' . $i, '' );
107
+ if ( '' != $the_param ) {
108
+ $math->registerVariable( 'p' . $i, $the_param );
109
+ }
110
+ }
111
+ $the_formula = str_replace( 'x', '$x', $the_formula );
112
+ $the_formula = str_replace( 'p', '$p', $the_formula );
113
+ try {
114
+ $price = $math->evaluate( $the_formula );
115
+ } catch ( Exception $e ) {
116
+ if ( $output_errors ) {
117
+ echo '<p style="color:red;">' . __( 'Error in formula', 'woocommerce-jetpack' ) . ': ' . $e->getMessage() . '</p>';
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
123
+ return $price;
124
+ }
125
+
126
+ /**
127
+ * get_variation_prices_hash.
128
+ *
129
+ * @version 2.5.0
130
+ * @since 2.5.0
131
+ */
132
+ function get_variation_prices_hash( $price_hash, $_product, $display ) {
133
+ if ( $this->is_price_by_formula_product( $_product ) ) {
134
+ $the_formula = get_option( 'wcj_product_price_by_formula_eval', '' );
135
+ $total_params = get_post_meta( $_product->id, '_' . 'wcj_product_price_by_formula_total_params', true );
136
+ $the_params = array();
137
+ for ( $i = 1; $i <= $total_params; $i++ ) {
138
+ $the_params[] = get_option( 'wcj_product_price_by_formula_param_' . $i, '' );
139
+ }
140
+ $price_hash['wcj_price_by_formula'] = array(
141
+ $the_formula,
142
+ $total_params,
143
+ $the_params,
144
+ );
145
+ }
146
+ return $price_hash;
147
+ }
148
+
149
+ /**
150
+ * save_meta_box_value.
151
+ *
152
+ * @version 2.5.0
153
+ * @since 2.5.0
154
+ */
155
+ function save_meta_box_value( $option_value, $option_name, $module_id ) {
156
+ if ( true === apply_filters( 'wcj_get_option_filter', false, true ) ) {
157
+ return $option_value;
158
+ }
159
+ if ( 'no' === $option_value ) {
160
+ return $option_value;
161
+ }
162
+ if ( $this->id === $module_id && 'wcj_product_price_by_formula_enabled' === $option_name ) {
163
+ $args = array(
164
+ 'post_type' => 'product',
165
+ 'post_status' => 'any',
166
+ 'posts_per_page' => 1,
167
+ 'meta_key' => '_' . 'wcj_product_price_by_formula_enabled',
168
+ 'meta_value' => 'yes',
169
+ 'post__not_in' => array( get_the_ID() ),
170
+ );
171
+ $loop = new WP_Query( $args );
172
+ $c = $loop->found_posts + 1;
173
+ if ( $c >= 2 ) {
174
+ add_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
175
+ return 'no';
176
+ }
177
+ }
178
+ return $option_value;
179
+ }
180
+
181
+ /**
182
+ * add_notice_query_var.
183
+ *
184
+ * @version 2.5.0
185
+ * @since 2.5.0
186
+ */
187
+ function add_notice_query_var( $location ) {
188
+ remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
189
+ return add_query_arg( array( 'wcj_product_price_by_formula_admin_notice' => true ), $location );
190
+ }
191
+
192
+ /**
193
+ * admin_notices.
194
+ *
195
+ * @version 2.5.0
196
+ * @since 2.5.0
197
+ */
198
+ function admin_notices() {
199
+ if ( ! isset( $_GET['wcj_product_price_by_formula_admin_notice'] ) ) {
200
+ return;
201
+ }
202
+ ?><div class="error"><p><?php
203
+ echo '<div class="message">'
204
+ . __( 'Booster: Free plugin\'s version is limited to only one price by formula product enabled at a time. You will need to get <a href="http://booster.io/plus/" target="_blank">Booster Plus</a> to add unlimited number of price by formula products.', 'woocommerce-jetpack' )
205
+ . '</div>';
206
+ ?></p></div><?php
207
+ }
208
+
209
+ /**
210
+ * is_price_by_formula_product.
211
+ *
212
+ * @version 2.5.0
213
+ * @since 2.5.0
214
+ */
215
+ function is_price_by_formula_product( $_product ) {
216
+ return ( 'yes' === get_post_meta( $_product->id, '_' . 'wcj_product_price_by_formula_enabled', true ) ) ? true : false;
217
+ }
218
+
219
+ /**
220
+ * get_meta_box_options.
221
+ *
222
+ * @version 2.5.0
223
+ * @since 2.5.0
224
+ */
225
+ function get_meta_box_options() {
226
+ $options = array(
227
+ array(
228
+ 'name' => 'wcj_product_price_by_formula_enabled',
229
+ 'default' => 'no',
230
+ 'type' => 'select',
231
+ 'options' => array(
232
+ 'yes' => __( 'Yes', 'woocommerce-jetpack' ),
233
+ 'no' => __( 'No', 'woocommerce-jetpack' ),
234
+ ),
235
+ 'title' => __( 'Enabled', 'woocommerce-jetpack' ),
236
+ ),
237
+ array(
238
+ 'name' => 'wcj_product_price_by_formula_calculation',
239
+ 'default' => 'per_product',
240
+ 'type' => 'select',
241
+ 'options' => array(
242
+ 'per_product' => __( 'Use values below', 'woocommerce-jetpack' ),
243
+ 'global' => __( 'Use default values', 'woocommerce-jetpack' ),
244
+ ),
245
+ 'title' => __( 'Calculation', 'woocommerce-jetpack' ),
246
+ ),
247
+ array(
248
+ 'name' => 'wcj_product_price_by_formula_eval',
249
+ 'default' => get_option( 'wcj_product_price_by_formula_eval', '' ),
250
+ 'type' => 'text',
251
+ 'title' => __( 'Formula', 'woocommerce-jetpack' ),
252
+ ),
253
+ array(
254
+ 'name' => 'wcj_product_price_by_formula_total_params',
255
+ 'default' => get_option( 'wcj_product_price_by_formula_total_params', 1 ),
256
+ 'type' => 'number',
257
+ 'title' => __( 'Number of Parameters', 'woocommerce-jetpack' ),
258
+ ),
259
+ );
260
+ $total_params = get_post_meta( get_the_ID(), '_' . 'wcj_product_price_by_formula_total_params', false );
261
+ if ( empty( $total_params ) ) {
262
+ $total_params = get_option( 'wcj_product_price_by_formula_total_params', 1 );
263
+ } else {
264
+ $total_params = $total_params[0];
265
+ }
266
+ for ( $i = 1; $i <= $total_params; $i++ ) {
267
+ $options[] = array(
268
+ 'name' => 'wcj_product_price_by_formula_param_' . $i,
269
+ 'default' => get_option( 'wcj_product_price_by_formula_param_' . $i, '' ),
270
+ 'type' => 'text',
271
+ 'title' => 'p' . $i,
272
+ );
273
+ }
274
+ return $options;
275
+ }
276
+
277
+ /**
278
+ * create_meta_box.
279
+ *
280
+ * @version 2.5.0
281
+ * @since 2.5.0
282
+ */
283
+ function create_meta_box() {
284
+
285
+ parent::create_meta_box();
286
+
287
+ $the_product = wc_get_product();
288
+ if ( $this->is_price_by_formula_product( $the_product ) ) {
289
+ $the_price = $the_product->get_price();
290
+ $the_price = $this->change_price_by_formula( $the_price, $the_product, true );
291
+ echo '<h4>' . __( 'Final Price Preview', 'woocommerce-jetpack' ) . '</h4>';
292
+ echo wc_price( $the_price );
293
+ }
294
+ }
295
+
296
+ /**
297
+ * get_settings.
298
+ *
299
+ * @version 2.5.0
300
+ * @since 2.5.0
301
+ */
302
+ function get_settings() {
303
+ $settings = array(
304
+ array(
305
+ 'title' => __( 'Default Settings', 'woocommerce-jetpack' ),
306
+ 'type' => 'title',
307
+ 'desc' => __( 'You can set default settings here. All settings can later be changed in individual product\'s edit page.', 'woocommerce-jetpack' ),
308
+ 'id' => 'wcj_product_price_by_formula_options',
309
+ ),
310
+ array(
311
+ 'title' => __( 'Formula', 'woocommerce-jetpack' ),
312
+ 'desc' => __( 'Use "x" variable for product\'s base price. For example: x+p1*p2', 'woocommerce-jetpack' ),
313
+ 'type' => 'text',
314
+ 'id' => 'wcj_product_price_by_formula_eval',
315
+ 'default' => '',
316
+ ),
317
+ array(
318
+ 'title' => __( 'Total Params', 'woocommerce-jetpack' ),
319
+ 'id' => 'wcj_product_price_by_formula_total_params',
320
+ 'default' => 1,
321
+ 'type' => 'custom_number',
322
+ /* 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
323
+ 'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ), */
324
+ ),
325
+ );
326
+ $total_number = get_option( 'wcj_product_price_by_formula_total_params', 1 );
327
+ for ( $i = 1; $i <= $total_number; $i++ ) {
328
+ $settings[] = array(
329
+ 'title' => 'p' . $i,
330
+ 'id' => 'wcj_product_price_by_formula_param_' . $i,
331
+ 'default' => '',
332
+ 'type' => 'text',
333
+ );
334
+ }
335
+ $settings[] = array(
336
+ 'type' => 'sectionend',
337
+ 'id' => 'wcj_product_price_by_formula_options',
338
+ );
339
+ return $this->add_standard_settings( $settings );
340
+ }
341
+ }
342
+
343
+ endif;
344
+
345
+ return new WCJ_Product_Price_by_Formula();
includes/class-wcj-product-tabs.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Product Tabs class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -386,7 +386,7 @@ class WCJ_Product_Tabs extends WCJ_Module {
386
  /**
387
  * create_custom_tabs_meta_box.
388
  *
389
- * @version 2.4.8
390
  */
391
  public function create_custom_tabs_meta_box() {
392
 
@@ -405,7 +405,7 @@ class WCJ_Product_Tabs extends WCJ_Module {
405
  $html .= __( 'Total number of custom tabs', 'woocommerce-jetpack' );
406
  $html .= '</th>';
407
  $html .= '<td>';
408
- $html .= '<input type="number" min="1" id="' . $option_name . '" name="' . $option_name . '" value="' . $total_custom_tabs . '" ' . $is_disabled . '>';
409
  $html .= '</td>';
410
  $html .= '<td>';
411
  $html .= __( 'Click "Update" product after you change this number.', 'woocommerce-jetpack' ) . '<br>' . $is_disabled_message;
4
  *
5
  * The WooCommerce Jetpack Product Tabs class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
386
  /**
387
  * create_custom_tabs_meta_box.
388
  *
389
+ * @version 2.5.0
390
  */
391
  public function create_custom_tabs_meta_box() {
392
 
405
  $html .= __( 'Total number of custom tabs', 'woocommerce-jetpack' );
406
  $html .= '</th>';
407
  $html .= '<td>';
408
+ $html .= '<input type="number" min="0" id="' . $option_name . '" name="' . $option_name . '" value="' . $total_custom_tabs . '" ' . $is_disabled . '>';
409
  $html .= '</td>';
410
  $html .= '<td>';
411
  $html .= __( 'Click "Update" product after you change this number.', 'woocommerce-jetpack' ) . '<br>' . $is_disabled_message;
includes/class-wcj-purchase-data.php CHANGED
@@ -304,11 +304,11 @@ class WCJ_Purchase_Data extends WCJ_Module {
304
  'id' => 'wcj_purchase_data_custom_price_fields_options',
305
  ),
306
  array(
307
- 'title' => __( 'Total Custom Price Fields', 'woocommerce-jetpack' ),
308
- 'id' => 'wcj_purchase_data_custom_price_fields_total_number',
309
- 'default' => 1,
310
- 'type' => 'custom_number',
311
- 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
312
  'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
313
  ),
314
  );
304
  'id' => 'wcj_purchase_data_custom_price_fields_options',
305
  ),
306
  array(
307
+ 'title' => __( 'Total Custom Price Fields', 'woocommerce-jetpack' ),
308
+ 'id' => 'wcj_purchase_data_custom_price_fields_total_number',
309
+ 'default' => 1,
310
+ 'type' => 'custom_number',
311
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
312
  'custom_attributes' => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
313
  ),
314
  );
includes/class-wcj-reports.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Reports class.
6
  *
7
- * @version 2.4.7
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -26,13 +26,14 @@ class WCJ_Reports extends WCJ_Module {
26
  /**
27
  * Constructor.
28
  *
29
- * @version 2.4.7
30
  */
31
  public function __construct() {
32
 
33
  $this->id = 'reports';
34
  $this->short_desc = __( 'Reports', 'woocommerce-jetpack' );
35
  $this->desc = __( 'WooCommerce stock, sales, customers etc. reports.', 'woocommerce-jetpack' );
 
36
  parent::__construct();
37
 
38
  if ( $this->is_enabled() ) {
4
  *
5
  * The WooCommerce Jetpack Reports class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
26
  /**
27
  * Constructor.
28
  *
29
+ * @version 2.5.0
30
  */
31
  public function __construct() {
32
 
33
  $this->id = 'reports';
34
  $this->short_desc = __( 'Reports', 'woocommerce-jetpack' );
35
  $this->desc = __( 'WooCommerce stock, sales, customers etc. reports.', 'woocommerce-jetpack' );
36
+ $this->link = 'http://booster.io/features/woocommerce-reports/';
37
  parent::__construct();
38
 
39
  if ( $this->is_enabled() ) {
includes/class-wcj-shipping.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Shipping class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,13 +17,16 @@ class WCJ_Shipping extends WCJ_Module {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.4.8
21
  */
22
  function __construct() {
23
 
24
  $this->id = 'shipping';
25
  $this->short_desc = __( 'Shipping', 'woocommerce-jetpack' );
26
- $this->desc = __( 'Hide WooCommerce shipping when free is available.', 'woocommerce-jetpack' );
 
 
 
27
  $this->link = 'http://booster.io/features/woocommerce-shipping/';
28
  parent::__construct();
29
 
4
  *
5
  * The WooCommerce Jetpack Shipping class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  function __construct() {
23
 
24
  $this->id = 'shipping';
25
  $this->short_desc = __( 'Shipping', 'woocommerce-jetpack' );
26
+ $this->desc =
27
+ __( 'Add multiple custom shipping methods to WooCommerce.', 'woocommerce-jetpack' ) . ' ' .
28
+ __( 'Hide WooCommerce shipping when free is available.', 'woocommerce-jetpack') . ' ' .
29
+ __( 'Display "left to free shipping" info.', 'woocommerce-jetpack' );
30
  $this->link = 'http://booster.io/features/woocommerce-shipping/';
31
  parent::__construct();
32
 
includes/class-wcj-wholesale-price.php CHANGED
@@ -4,9 +4,10 @@
4
  *
5
  * The WooCommerce Jetpack Wholesale Price class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.2.0
9
  * @author Algoritmika Ltd.
 
10
  */
11
 
12
  if ( ! defined( 'ABSPATH' ) ) exit;
@@ -18,7 +19,7 @@ class WCJ_Wholesale_Price extends WCJ_Module {
18
  /**
19
  * Constructor.
20
  *
21
- * @version 2.4.8
22
  */
23
  function __construct() {
24
 
@@ -30,65 +31,49 @@ class WCJ_Wholesale_Price extends WCJ_Module {
30
 
31
  if ( $this->is_enabled() ) {
32
 
33
- /* add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
34
- add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 ); */
 
 
35
 
36
- add_filter( 'woocommerce_get_price', array( $this, 'wholesale_price' ), PHP_INT_MAX, 2 );
37
- //add_filter( 'woocommerce_get_sale_price', array( $this, 'wholesale_price' ), PHP_INT_MAX, 2 );
38
- //add_filter( 'woocommerce_get_regular_price', array( $this, 'wholesale_price' ), PHP_INT_MAX, 2 );
39
 
40
  if ( 'yes' === get_option( 'wcj_wholesale_price_show_info_on_cart', 'no' ) ) {
41
- add_filter( 'woocommerce_cart_item_price', array( $this, 'add_discount_info_to_cart_page' ), PHP_INT_MAX, 3 );
42
  }
43
  }
44
  }
45
 
46
- /**
47
- * get_meta_box_options.
48
- *
49
- * @since 2.2.6
50
- *
51
- function get_meta_box_options() {
52
- return array(
53
- array(
54
- 'name' => 'wcj_local_wholesale_price_levels_number',
55
- 'default' => 0,
56
- 'type' => 'number',
57
- 'title' => __( 'Number', 'woocommerce-jetpack' ),
58
- ),
59
- );
60
- }
61
-
62
  /**
63
  * add_discount_info_to_cart_page.
64
  *
65
- * @version 2.4.1
66
  */
67
  function add_discount_info_to_cart_page( $price_html, $cart_item, $cart_item_key ) {
68
 
69
- $_product = wc_get_product( $cart_item['product_id'] );
70
-
71
- remove_filter( 'woocommerce_get_price', array( $this, 'wholesale_price' ), PHP_INT_MAX, 2 );
72
- // $old_price_html = $_product->get_price_html();
73
- $old_price_html = wc_price( $_product->get_price() );
74
- add_filter( 'woocommerce_get_price', array( $this, 'wholesale_price' ), PHP_INT_MAX, 2 );
75
-
76
- if ( $old_price_html != wc_price( $_product->get_price() ) ) {
77
-
78
- $the_quantity = $this->get_wholesale_quantity( $_product );
79
-
80
- $discount = $this->get_discount_by_quantity( $the_quantity );
81
-
82
- if ( 'fixed' === get_option( 'wcj_wholesale_price_discount_type' ) ) $discount = wc_price( $discount );
83
-
84
  if ( 0 != $discount ) {
85
-
 
 
 
 
 
 
 
 
86
  $wholesale_price_html = get_option( 'wcj_wholesale_price_show_info_on_cart_format' );
87
- $wholesale_price_html = str_replace( '%old_price%', $old_price_html, $wholesale_price_html );
88
- $wholesale_price_html = str_replace( '%price%', $price_html, $wholesale_price_html );
89
- $wholesale_price_html = str_replace( '%discount_percent%', $discount, $wholesale_price_html ); //depreciated
90
- $wholesale_price_html = str_replace( '%discount_value%', $discount, $wholesale_price_html );
91
-
92
  return $wholesale_price_html;
93
  }
94
  }
@@ -98,18 +83,29 @@ class WCJ_Wholesale_Price extends WCJ_Module {
98
 
99
  /**
100
  * get_discount_by_quantity.
 
 
101
  */
102
- private function get_discount_by_quantity( $quantity ) {
103
 
104
  $max_qty_level = 1;
105
  $discount = 0;
106
 
107
- for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_wholesale_price_levels_number', 1 ) ); $i++ ) {
108
-
109
- $level_qty = get_option( 'wcj_wholesale_price_level_min_qty_' . $i, PHP_INT_MAX );
110
- if ( $quantity >= $level_qty && $level_qty >= $max_qty_level ) {
111
- $max_qty_level = $level_qty;
112
- $discount = get_option( 'wcj_wholesale_price_level_discount_percent_' . $i, 0 );
 
 
 
 
 
 
 
 
 
113
  }
114
  }
115
 
@@ -119,11 +115,14 @@ class WCJ_Wholesale_Price extends WCJ_Module {
119
  /**
120
  * get_wholesale_price.
121
  *
122
- * @version 2.2.7
123
  */
124
- private function get_wholesale_price( $price, $quantity ) {
125
- $discount = $this->get_discount_by_quantity( $quantity );
126
- if ( 'percent' === get_option( 'wcj_wholesale_price_discount_type' ) ) {
 
 
 
127
  $discount_koef = 1.0 - ( $discount / 100.0 );
128
  return $price * $discount_koef;
129
  } else {
@@ -133,81 +132,161 @@ class WCJ_Wholesale_Price extends WCJ_Module {
133
  }
134
 
135
  /**
136
- * get_wholesale_quantity.
137
  *
138
- * @version 2.4.8
 
139
  */
140
- private function get_wholesale_quantity( $_product ) {
141
-
142
- // Get quanitity from cart
143
- $is_paypal_express = ( isset( $_GET['wc-api'] ) && 'WC_Gateway_PayPal_Express_AngellEYE' === $_GET['wc-api'] ) ? true : false;
144
- if ( $is_paypal_express ) {
145
- $the_cart = array_filter( (array) WC()->cart->cart_contents );
146
- } else {
147
- $the_cart = WC()->cart->get_cart();
148
- }
149
- $quanitities = array();
150
- $total_quantity = 0;
151
- foreach ( $the_cart as $cart_item_key => $values ) {
152
- if ( ! isset( $quanitities[ $values['product_id'] ] ) ) $quanitities[ $values['product_id'] ] = 0;
153
- $quanitities[ $values['product_id'] ] += $values['quantity'];
154
- $total_quantity += $values['quantity'];
155
  }
156
- $product_quantity = ( isset( $quanitities[ $_product->id ] ) ) ? $quanitities[ $_product->id ] : 0;
157
-
158
- return ( 'yes' === get_option( 'wcj_wholesale_price_use_total_cart_quantity', 'no' ) ) ? $total_quantity : $product_quantity;
159
  }
160
 
161
  /**
162
- * wholesale_price.
163
  *
164
- * @version 2.4.8
 
165
  */
166
- function wholesale_price( $price, $_product ) {
167
 
168
- if ( ! wcj_is_product_wholesale_enabled( $_product->id ) ) return $price;
169
 
170
- // Show only on checkout and cart pages
171
- //$is_ajax = ( is_admin() && ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) ? true : false;
172
- $is_paypal_express = ( isset( $_GET['wc-api'] ) && 'WC_Gateway_PayPal_Express_AngellEYE' === $_GET['wc-api'] ) ? true : false;
173
- if ( ! ( is_checkout() || is_cart() || $is_paypal_express /* || $is_ajax */ ) ) return $price;
 
 
 
 
 
174
 
175
- // If other discount was applied in cart...
176
- if ( 'yes' === get_option( 'wcj_wholesale_price_apply_only_if_no_other_discounts', 'no' ) ) {
177
- if ( WC()->cart->get_total_discount() > 0 || sizeof( WC()->cart->applied_coupons ) > 0 ) return $price;
178
- }
 
 
179
 
180
- // Maybe set wholesale price
181
- $the_quantity = $this->get_wholesale_quantity( $_product );
182
- if ( $the_quantity > 1 ) {
183
- $wholesale_price = $this->get_wholesale_price( $price, $the_quantity );
184
- if ( $wholesale_price != $price ) {
185
- // Setting wholesale price
186
- $precision = get_option( 'woocommerce_price_num_decimals', 2 );
187
- return round( $wholesale_price, $precision );
188
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189
  }
 
190
 
191
- // No changes to the price
192
- return $price;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  }
194
 
195
  /**
196
  * get_settings.
 
 
197
  */
198
  function get_settings() {
199
-
200
  $products = apply_filters( 'wcj_get_products_filter', array() );
201
-
202
  $settings = array(
203
-
204
  array(
205
- 'title' => __( 'Wholesale Price Levels Options', 'woocommerce-jetpack' ),
206
- 'type' => 'title',
207
- 'desc' => __( 'Wholesale Price Levels Options. If you want to display prices table on frontend, use [wcj_product_wholesale_price_table] shortcode.', 'woocommerce-jetpack' ),
208
- 'id' => 'wcj_wholesale_price_level_options'
 
 
 
 
 
 
 
209
  ),
210
-
211
  array(
212
  'title' => __( 'Use total cart quantity instead of product quantity', 'woocommerce-jetpack' ),
213
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
@@ -215,7 +294,6 @@ class WCJ_Wholesale_Price extends WCJ_Module {
215
  'default' => 'no',
216
  'type' => 'checkbox',
217
  ),
218
-
219
  array(
220
  'title' => __( 'Apply wholesale discount only if no other cart discounts were applied', 'woocommerce-jetpack' ),
221
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
@@ -223,7 +301,6 @@ class WCJ_Wholesale_Price extends WCJ_Module {
223
  'default' => 'no',
224
  'type' => 'checkbox',
225
  ),
226
-
227
  array(
228
  'title' => __( 'Show discount info on cart page', 'woocommerce-jetpack' ),
229
  'desc' => __( 'Show', 'woocommerce-jetpack' ),
@@ -231,15 +308,13 @@ class WCJ_Wholesale_Price extends WCJ_Module {
231
  'default' => 'no',
232
  'type' => 'checkbox',
233
  ),
234
-
235
  array(
236
  'title' => __( 'If show discount info on cart page is enabled, set format here', 'woocommerce-jetpack' ),
237
  'id' => 'wcj_wholesale_price_show_info_on_cart_format',
238
- 'default' => '<del>%old_price%</del> %price%<br>You save: <span style="color:red;">%discount_value%%</span>',
239
  'type' => 'textarea',
240
  'css' => 'width: 450px;',
241
  ),
242
-
243
  array(
244
  'title' => __( 'Discount Type', 'woocommerce-jetpack' ),
245
  'id' => 'wcj_wholesale_price_discount_type',
@@ -250,7 +325,6 @@ class WCJ_Wholesale_Price extends WCJ_Module {
250
  'fixed' => __( 'Fixed', 'woocommerce-jetpack' ),
251
  ),
252
  ),
253
-
254
  array(
255
  'title' => __( 'Products to include', 'woocommerce-jetpack' ),
256
  'desc' => __( 'Leave blank to include all products.', 'woocommerce-jetpack' ),
@@ -258,10 +332,8 @@ class WCJ_Wholesale_Price extends WCJ_Module {
258
  'default' => '',
259
  'type' => 'multiselect',
260
  'class' => 'chosen_select',
261
- //'css' => 'width: 450px;',
262
  'options' => $products,
263
  ),
264
-
265
  array(
266
  'title' => __( 'Number of levels', 'woocommerce-jetpack' ),
267
  'id' => 'wcj_wholesale_price_levels_number',
@@ -271,47 +343,32 @@ class WCJ_Wholesale_Price extends WCJ_Module {
271
  'custom_attributes' => array_merge(
272
  is_array( apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ) ) ? apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ) : array(),
273
  array('step' => '1', 'min' => '1', ) ),
274
- 'css' => 'width:100px;',
275
  ),
276
  );
277
-
278
  for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_wholesale_price_levels_number', 1 ) ); $i++ ) {
279
-
280
  $settings[] = array(
281
  'title' => __( 'Min quantity', 'woocommerce-jetpack' ) . ' #' . $i,
282
  'desc' => __( 'Minimum quantity to apply discount', 'woocommerce-jetpack' ),
283
  'id' => 'wcj_wholesale_price_level_min_qty_' . $i,
284
  'default' => 0,
285
  'type' => 'number',
286
- //'css' => 'width:50%;min-width:300px;height:100px;',
287
  'custom_attributes' => array('step' => '1', 'min' => '0', ),
288
  );
289
  $settings[] = array(
290
  'title' => __( 'Discount', 'woocommerce-jetpack' ) . ' #' . $i,
291
  'desc' => __( 'Discount', 'woocommerce-jetpack' ),
292
- 'id' => 'wcj_wholesale_price_level_discount_percent_' . $i,
293
  'default' => 0,
294
  'type' => 'number',
295
- //'css' => 'width:50%;min-width:300px;height:100px;',
296
  'custom_attributes' => array('step' => '0.0001', 'min' => '0', ),
297
  );
298
- /* $settings[] = array(
299
- 'title' => __( 'Discount (fixed)', 'woocommerce-jetpack' ) . ' #' . $i,
300
- 'desc' => __( 'Discount (fixed)', 'woocommerce-jetpack' ),
301
- 'id' => 'wcj_wholesale_price_level_discount_fixed_' . $i,
302
- 'default' => 0,
303
- 'type' => 'number',
304
- //'css' => 'width:50%;min-width:300px;height:100px;',
305
- 'custom_attributes' => array('step' => '0.0001', 'min' => '0', ),
306
- ); */
307
  }
308
-
309
  $settings[] = array(
310
- 'type' => 'sectionend',
311
- 'id' => 'wcj_wholesale_price_level_options'
312
  );
313
-
314
- return $this->add_enable_module_setting( $settings );
315
  }
316
  }
317
 
4
  *
5
  * The WooCommerce Jetpack Wholesale Price class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.2.0
9
  * @author Algoritmika Ltd.
10
+ * @todo per variation;
11
  */
12
 
13
  if ( ! defined( 'ABSPATH' ) ) exit;
19
  /**
20
  * Constructor.
21
  *
22
+ * @version 2.5.0
23
  */
24
  function __construct() {
25
 
31
 
32
  if ( $this->is_enabled() ) {
33
 
34
+ if ( 'yes' === get_option( 'wcj_wholesale_price_per_product_enable', 'yes' ) ) {
35
+ add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
36
+ add_action( 'save_post_product', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
37
+ }
38
 
39
+ add_action( 'woocommerce_cart_loaded_from_session', array( $this, 'cart_loaded_from_session' ), PHP_INT_MAX, 1 );
40
+ add_action( 'woocommerce_before_calculate_totals', array( $this, 'calculate_totals' ), PHP_INT_MAX, 1 );
41
+ add_filter( 'woocommerce_get_price', array( $this, 'wholesale_price' ), PHP_INT_MAX, 2 );
42
 
43
  if ( 'yes' === get_option( 'wcj_wholesale_price_show_info_on_cart', 'no' ) ) {
44
+ add_filter( 'woocommerce_cart_item_price', array( $this, 'add_discount_info_to_cart_page' ), PHP_INT_MAX, 3 );
45
  }
46
  }
47
  }
48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  /**
50
  * add_discount_info_to_cart_page.
51
  *
52
+ * @version 2.5.0
53
  */
54
  function add_discount_info_to_cart_page( $price_html, $cart_item, $cart_item_key ) {
55
 
56
+ if ( isset( $cart_item['wcj_wholesale_price'] ) ) {
57
+ $the_quantity = ( 'yes' === get_option( 'wcj_wholesale_price_use_total_cart_quantity', 'no' ) )
58
+ ? WC()->cart->cart_contents_count
59
+ : $cart_item['quantity'];
60
+ $discount = $this->get_discount_by_quantity( $the_quantity, $cart_item['product_id'] );
 
 
 
 
 
 
 
 
 
 
61
  if ( 0 != $discount ) {
62
+ $discount_type = ( wcj_is_product_wholesale_enabled_per_product( $cart_item['product_id'] ) )
63
+ ? get_post_meta( $cart_item['product_id'], '_' . 'wcj_wholesale_price_discount_type', true )
64
+ : get_option( 'wcj_wholesale_price_discount_type', 'percent' );
65
+ if ( 'fixed' === $discount_type ) {
66
+ $discount = wc_price( $discount );
67
+ } else {
68
+ $discount = $discount . '%';
69
+ }
70
+ $old_price_html = wc_price( $cart_item['wcj_wholesale_price_old'] );
71
  $wholesale_price_html = get_option( 'wcj_wholesale_price_show_info_on_cart_format' );
72
+ $wholesale_price_html = str_replace(
73
+ array( '%old_price%', '%price%', '%discount_value%', '%discount_percent%' ), // '%discount_percent%' is depreciated
74
+ array( $old_price_html, $price_html, $discount, $discount ),
75
+ $wholesale_price_html
76
+ );
77
  return $wholesale_price_html;
78
  }
79
  }
83
 
84
  /**
85
  * get_discount_by_quantity.
86
+ *
87
+ * @version 2.5.0
88
  */
89
+ private function get_discount_by_quantity( $quantity, $product_id ) {
90
 
91
  $max_qty_level = 1;
92
  $discount = 0;
93
 
94
+ if ( wcj_is_product_wholesale_enabled_per_product( $product_id ) ) {
95
+ for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_post_meta( $product_id, '_' . 'wcj_wholesale_price_levels_number', true ) ); $i++ ) {
96
+ $level_qty = get_post_meta( $product_id, '_' . 'wcj_wholesale_price_level_min_qty_' . $i, true );
97
+ if ( $quantity >= $level_qty && $level_qty >= $max_qty_level ) {
98
+ $max_qty_level = $level_qty;
99
+ $discount = get_post_meta( $product_id, '_' . 'wcj_wholesale_price_level_discount_' . $i, true );
100
+ }
101
+ }
102
+ } else {
103
+ for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_wholesale_price_levels_number', 1 ) ); $i++ ) {
104
+ $level_qty = get_option( 'wcj_wholesale_price_level_min_qty_' . $i, PHP_INT_MAX );
105
+ if ( $quantity >= $level_qty && $level_qty >= $max_qty_level ) {
106
+ $max_qty_level = $level_qty;
107
+ $discount = get_option( 'wcj_wholesale_price_level_discount_percent_' . $i, 0 );
108
+ }
109
  }
110
  }
111
 
115
  /**
116
  * get_wholesale_price.
117
  *
118
+ * @version 2.5.0
119
  */
120
+ private function get_wholesale_price( $price, $quantity, $product_id ) {
121
+ $discount = $this->get_discount_by_quantity( $quantity, $product_id );
122
+ $discount_type = ( wcj_is_product_wholesale_enabled_per_product( $product_id ) )
123
+ ? get_post_meta( $product_id, '_' . 'wcj_wholesale_price_discount_type', true )
124
+ : get_option( 'wcj_wholesale_price_discount_type', 'percent' );
125
+ if ( 'percent' === $discount_type ) {
126
  $discount_koef = 1.0 - ( $discount / 100.0 );
127
  return $price * $discount_koef;
128
  } else {
132
  }
133
 
134
  /**
135
+ * cart_loaded_from_session.
136
  *
137
+ * @version 2.5.0
138
+ * @since 2.5.0
139
  */
140
+ function cart_loaded_from_session( $cart ) {
141
+ foreach ( $cart->cart_contents as $item_key => $item ) {
142
+ if ( array_key_exists( 'wcj_wholesale_price', $item ) ) {
143
+ WC()->cart->cart_contents[ $item_key ]['data']->wcj_wholesale_price = $item['wcj_wholesale_price'];
144
+ }
 
 
 
 
 
 
 
 
 
 
145
  }
 
 
 
146
  }
147
 
148
  /**
149
+ * calculate_totals.
150
  *
151
+ * @version 2.5.0
152
+ * @since 2.5.0
153
  */
154
+ function calculate_totals( $cart ) {
155
 
156
+ foreach ( $cart->cart_contents as $item_key => $item ) {
157
 
158
+ if ( isset( WC()->cart->cart_contents[ $item_key ]['data']->wcj_wholesale_price ) ) {
159
+ unset( WC()->cart->cart_contents[ $item_key ]['data']->wcj_wholesale_price );
160
+ }
161
+ if ( isset( WC()->cart->cart_contents[ $item_key ]['wcj_wholesale_price'] ) ) {
162
+ unset( WC()->cart->cart_contents[ $item_key ]['wcj_wholesale_price'] );
163
+ }
164
+ if ( isset( WC()->cart->cart_contents[ $item_key ]['wcj_wholesale_price_old'] ) ) {
165
+ unset( WC()->cart->cart_contents[ $item_key ]['wcj_wholesale_price_old'] );
166
+ }
167
 
168
+ $_product = wc_get_product( $item['product_id'] );
169
+ if ( ! wcj_is_product_wholesale_enabled( $_product->id ) ) {
170
+ continue;
171
+ }
172
+
173
+ $price = $_product->get_price();
174
 
175
+ // If other discount was applied in cart...
176
+ if ( 'yes' === get_option( 'wcj_wholesale_price_apply_only_if_no_other_discounts', 'no' ) ) {
177
+ if ( WC()->cart->get_total_discount() > 0 || sizeof( WC()->cart->applied_coupons ) > 0 ) {
178
+ continue;
179
+ }
 
 
 
180
  }
181
+
182
+ // Maybe set wholesale price
183
+ $the_quantity = ( 'yes' === get_option( 'wcj_wholesale_price_use_total_cart_quantity', 'no' ) )
184
+ ? $cart->cart_contents_count
185
+ : $item['quantity'];
186
+ if ( $the_quantity > 1 ) {
187
+ $wholesale_price = $this->get_wholesale_price( $price, $the_quantity, $_product->id );
188
+ if ( $wholesale_price != $price ) {
189
+ // Setting wholesale price
190
+ $precision = get_option( 'woocommerce_price_num_decimals', 2 );
191
+ $wcj_wholesale_price = round( $wholesale_price, $precision );
192
+ WC()->cart->cart_contents[ $item_key ]['data']->wcj_wholesale_price = $wcj_wholesale_price;
193
+ WC()->cart->cart_contents[ $item_key ]['wcj_wholesale_price'] = $wcj_wholesale_price;
194
+ WC()->cart->cart_contents[ $item_key ]['wcj_wholesale_price_old'] = $price;
195
+ }
196
+ }
197
+
198
  }
199
+ }
200
 
201
+ /**
202
+ * wholesale_price.
203
+ *
204
+ * @version 2.5.0
205
+ */
206
+ function wholesale_price( $price, $_product ) {
207
+ return ( wcj_is_product_wholesale_enabled( $_product->id ) && isset( $_product->wcj_wholesale_price ) ) ? $_product->wcj_wholesale_price : $price;
208
+ }
209
+
210
+ /**
211
+ * get_meta_box_options.
212
+ *
213
+ * @version 2.5.0
214
+ * @since 2.5.0
215
+ */
216
+ function get_meta_box_options() {
217
+ $product_id = get_the_ID();
218
+ $options = array(
219
+ array(
220
+ 'name' => 'wcj_wholesale_price_per_product_enabled',
221
+ 'default' => 'no',
222
+ 'type' => 'select',
223
+ 'options' => array(
224
+ 'yes' => __( 'Yes', 'woocommerce-jetpack' ),
225
+ 'no' => __( 'No', 'woocommerce-jetpack' ),
226
+ ),
227
+ 'title' => __( 'Enable per Product Levels', 'woocommerce-jetpack' ),
228
+ ),
229
+ array(
230
+ 'name' => 'wcj_wholesale_price_discount_type',
231
+ 'default' => 'percent',
232
+ 'type' => 'select',
233
+ 'options' => array(
234
+ 'percent' => __( 'Percent', 'woocommerce-jetpack' ),
235
+ 'fixed' => __( 'Fixed', 'woocommerce-jetpack' ),
236
+ ),
237
+ 'title' => __( 'Discount Type', 'woocommerce-jetpack' ),
238
+ ),
239
+ array(
240
+ 'name' => 'wcj_wholesale_price_levels_number',
241
+ 'default' => 0,
242
+ 'type' => 'number',
243
+ 'title' => __( 'Number of levels', 'woocommerce-jetpack' ) . ' (<em>' . __( 'Press "Update" after you change this number', 'woocommerce-jetpack' ) . '</em>)',
244
+ ),
245
+ );
246
+ for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_post_meta( $product_id, '_' . 'wcj_wholesale_price_levels_number', true ) ); $i++ ) {
247
+ $options = array_merge( $options, array(
248
+ /* array(
249
+ 'type' => 'title',
250
+ 'title' => __( 'Level', 'woocommerce-jetpack' ) . ' #' . $i,
251
+ ), */
252
+ array(
253
+ 'name' => 'wcj_wholesale_price_level_min_qty_' . $i,
254
+ 'default' => 0,
255
+ 'type' => 'number',
256
+ 'title' => __( 'Level', 'woocommerce-jetpack' ) . ' #' . $i . ' ' . __( 'Min quantity', 'woocommerce-jetpack' ),
257
+ ),
258
+ array(
259
+ 'name' => 'wcj_wholesale_price_level_discount_' . $i,
260
+ 'default' => 0,
261
+ 'type' => 'number',
262
+ 'title' => __( 'Level', 'woocommerce-jetpack' ) . ' #' . $i . ' ' . __( 'Discount', 'woocommerce-jetpack' ),
263
+ ),
264
+ ) );
265
+ }
266
+ return $options;
267
  }
268
 
269
  /**
270
  * get_settings.
271
+ *
272
+ * @version 2.5.0
273
  */
274
  function get_settings() {
 
275
  $products = apply_filters( 'wcj_get_products_filter', array() );
 
276
  $settings = array(
 
277
  array(
278
+ 'title' => __( 'Options', 'woocommerce-jetpack' ),
279
+ 'type' => 'title',
280
+ 'desc' => __( 'Wholesale Price Levels Options. If you want to display prices table on frontend, use [wcj_product_wholesale_price_table] shortcode.', 'woocommerce-jetpack' ),
281
+ 'id' => 'wcj_wholesale_price_level_options',
282
+ ),
283
+ array(
284
+ 'title' => __( 'Enable per Product', 'woocommerce-jetpack' ),
285
+ 'desc' => __( 'Enable', 'woocommerce-jetpack' ),
286
+ 'id' => 'wcj_wholesale_price_per_product_enable',
287
+ 'default' => 'yes',
288
+ 'type' => 'checkbox',
289
  ),
 
290
  array(
291
  'title' => __( 'Use total cart quantity instead of product quantity', 'woocommerce-jetpack' ),
292
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
294
  'default' => 'no',
295
  'type' => 'checkbox',
296
  ),
 
297
  array(
298
  'title' => __( 'Apply wholesale discount only if no other cart discounts were applied', 'woocommerce-jetpack' ),
299
  'desc' => __( 'Enable', 'woocommerce-jetpack' ),
301
  'default' => 'no',
302
  'type' => 'checkbox',
303
  ),
 
304
  array(
305
  'title' => __( 'Show discount info on cart page', 'woocommerce-jetpack' ),
306
  'desc' => __( 'Show', 'woocommerce-jetpack' ),
308
  'default' => 'no',
309
  'type' => 'checkbox',
310
  ),
 
311
  array(
312
  'title' => __( 'If show discount info on cart page is enabled, set format here', 'woocommerce-jetpack' ),
313
  'id' => 'wcj_wholesale_price_show_info_on_cart_format',
314
+ 'default' => '<del>%old_price%</del> %price%<br>You save: <span style="color:red;">%discount_value%</span>',
315
  'type' => 'textarea',
316
  'css' => 'width: 450px;',
317
  ),
 
318
  array(
319
  'title' => __( 'Discount Type', 'woocommerce-jetpack' ),
320
  'id' => 'wcj_wholesale_price_discount_type',
325
  'fixed' => __( 'Fixed', 'woocommerce-jetpack' ),
326
  ),
327
  ),
 
328
  array(
329
  'title' => __( 'Products to include', 'woocommerce-jetpack' ),
330
  'desc' => __( 'Leave blank to include all products.', 'woocommerce-jetpack' ),
332
  'default' => '',
333
  'type' => 'multiselect',
334
  'class' => 'chosen_select',
 
335
  'options' => $products,
336
  ),
 
337
  array(
338
  'title' => __( 'Number of levels', 'woocommerce-jetpack' ),
339
  'id' => 'wcj_wholesale_price_levels_number',
343
  'custom_attributes' => array_merge(
344
  is_array( apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ) ) ? apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ) : array(),
345
  array('step' => '1', 'min' => '1', ) ),
346
+ 'css' => 'width:100px;',
347
  ),
348
  );
 
349
  for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_wholesale_price_levels_number', 1 ) ); $i++ ) {
 
350
  $settings[] = array(
351
  'title' => __( 'Min quantity', 'woocommerce-jetpack' ) . ' #' . $i,
352
  'desc' => __( 'Minimum quantity to apply discount', 'woocommerce-jetpack' ),
353
  'id' => 'wcj_wholesale_price_level_min_qty_' . $i,
354
  'default' => 0,
355
  'type' => 'number',
 
356
  'custom_attributes' => array('step' => '1', 'min' => '0', ),
357
  );
358
  $settings[] = array(
359
  'title' => __( 'Discount', 'woocommerce-jetpack' ) . ' #' . $i,
360
  'desc' => __( 'Discount', 'woocommerce-jetpack' ),
361
+ 'id' => 'wcj_wholesale_price_level_discount_percent_' . $i, // mislabeled - should be 'wcj_wholesale_price_level_discount_'
362
  'default' => 0,
363
  'type' => 'number',
 
364
  'custom_attributes' => array('step' => '0.0001', 'min' => '0', ),
365
  );
 
 
 
 
 
 
 
 
 
366
  }
 
367
  $settings[] = array(
368
+ 'type' => 'sectionend',
369
+ 'id' => 'wcj_wholesale_price_level_options',
370
  );
371
+ return $this->add_standard_settings( $settings );
 
372
  }
373
  }
374
 
includes/class-wcj-wpml.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack WPML class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.2.0
9
  * @author Algoritmika Ltd.
10
  */
@@ -18,13 +18,14 @@ class WCJ_WPML extends WCJ_Module {
18
  /**
19
  * Constructor.
20
  *
21
- * @version 2.4.4
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'wpml';
26
- $this->short_desc = __( 'WPML', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Booster for WooCommerce basic WPML support.', 'woocommerce-jetpack' );
 
28
  parent::__construct();
29
 
30
  if ( $this->is_enabled() ) {
@@ -89,11 +90,11 @@ class WCJ_WPML extends WCJ_Module {
89
  /**
90
  * create_wpml_xml_file.
91
  *
92
- * @version 2.4.1
93
  * @since 2.4.1
94
  */
95
  function create_wpml_xml_file_tool() {
96
- if ( ! isset( $_GET['create_wpml_xml_file'] ) || ! is_super_admin() ) {
97
  return;
98
  }
99
  if ( ! isset( $_GET['section'] ) || 'wpml' != $_GET['section'] ) {
4
  *
5
  * The WooCommerce Jetpack WPML class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.2.0
9
  * @author Algoritmika Ltd.
10
  */
18
  /**
19
  * Constructor.
20
  *
21
+ * @version 2.5.0
22
  */
23
  function __construct() {
24
 
25
  $this->id = 'wpml';
26
+ $this->short_desc = __( 'Booster WPML', 'woocommerce-jetpack' );
27
  $this->desc = __( 'Booster for WooCommerce basic WPML support.', 'woocommerce-jetpack' );
28
+ $this->link = 'http://booster.io/features/woocommerce-booster-wpml/';
29
  parent::__construct();
30
 
31
  if ( $this->is_enabled() ) {
90
  /**
91
  * create_wpml_xml_file.
92
  *
93
+ * @version 2.5.0
94
  * @since 2.4.1
95
  */
96
  function create_wpml_xml_file_tool() {
97
+ if ( ! isset( $_GET['create_wpml_xml_file'] ) || ! wcj_is_user_role( 'administrator' ) ) {
98
  return;
99
  }
100
  if ( ! isset( $_GET['section'] ) || 'wpml' != $_GET['section'] ) {
includes/classes/class-wcj-module.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Module class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.2.0
9
  * @author Algoritmika Ltd.
10
  */
@@ -40,11 +40,11 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
40
  /**
41
  * reset_settings.
42
  *
43
- * @version 2.4.0
44
  * @since 2.4.0
45
  */
46
  function reset_settings() {
47
- if ( isset( $_GET['wcj_reset_settings'] ) && $this->id === $_GET['wcj_reset_settings'] && is_super_admin() && ! isset( $_POST['save'] ) ) {
48
  global $wcj_notice;
49
  if ( ! isset( $_GET['wcj_confirm_reset_settings'] ) ) {
50
  $wcj_notice .= __( 'Are you sure you want to reset current module\'s settings to default values?', 'woocommerce-jetpack' );
@@ -89,13 +89,16 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
89
  /**
90
  * save_meta_box.
91
  *
92
- * @since 2.4.8
93
  */
94
  function save_meta_box( $post_id, $post ) {
95
  // Check that we are saving with current metabox displayed.
96
  if ( ! isset( $_POST[ 'woojetpack_' . $this->id . '_save_post' ] ) ) return;
97
  // Save options
98
  foreach ( $this->get_meta_box_options() as $option ) {
 
 
 
99
  $is_enabled = ( isset( $option['enabled'] ) && 'no' === $option['enabled'] ) ? false : true;
100
  if ( $is_enabled ) {
101
  $option_value = ( isset( $_POST[ $option['name'] ] ) ) ? $_POST[ $option['name'] ] : $option['default'];
@@ -129,7 +132,7 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
129
  /**
130
  * create_meta_box.
131
  *
132
- * @since 2.4.8
133
  */
134
  function create_meta_box() {
135
  $current_post_id = get_the_ID();
@@ -138,44 +141,67 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
138
  foreach ( $this->get_meta_box_options() as $option ) {
139
  $is_enabled = ( isset( $option['enabled'] ) && 'no' === $option['enabled'] ) ? false : true;
140
  if ( $is_enabled ) {
141
- $the_post_id = ( isset( $option['product_id'] ) ) ? $option['product_id'] : $current_post_id;
142
- $the_meta_name = ( isset( $option['meta_name'] ) ) ? $option['meta_name'] : '_' . $option['name'];
143
- if ( get_post_meta( $the_post_id, $the_meta_name ) ) {
144
- $option_value = get_post_meta( $the_post_id, $the_meta_name, true );
145
  } else {
146
- $option_value = ( isset( $option['default'] ) ) ? $option['default'] : '';
147
- }
148
- $input_ending = ' id="' . $option['name'] . '" name="' . $option['name'] . '" value="' . $option_value . '">';
149
- if ( 'select' === $option['type'] ) {
150
- $options = '';
151
- foreach ( $option['options'] as $select_option_key => $select_option_value ) {
152
- $options .= '<option value="' . $select_option_key . '" ' . selected( $option_value, $select_option_key, false ) . '>' . $select_option_value . '</option>';
153
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
  }
155
- switch ( $option['type'] ) {
156
- case 'price':
157
- $field_html = '<input class="short wc_input_price" type="number" step="0.0001"' . $input_ending;
158
- break;
159
- case 'date':
160
- $field_html = '<input class="input-text" display="date" type="text"' . $input_ending;
161
- break;
162
- case 'textarea':
163
- $field_html = '<textarea style="min-width:300px;"' . ' id="' . $option['name'] . '" name="' . $option['name'] . '">' . $option_value . '</textarea>';
164
- break;
165
- case 'select':
166
- $field_html = '<select' . ' id="' . $option['name'] . '" name="' . $option['name'] . '">' . $options . '</select>';
167
- break;
168
- default:
169
- $field_html = '<input class="short" type="' . $option['type'] . '"' . $input_ending;
170
- break;
171
- }
172
- $html .= '<tr>';
173
- $html .= '<th style="text-align:left;">' . $option['title'] . '</th>';
174
- if ( isset( $option['desc'] ) && '' != $option['desc'] ) {
175
- $html .= '<td style="font-style:italic;">' . $option['desc'] . '</td>';
176
- }
177
- $html .= '<td>' . $field_html . '</td>';
178
- $html .= '</tr>';
179
  }
180
  }
181
  $html .= '</table>';
4
  *
5
  * The WooCommerce Jetpack Module class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.2.0
9
  * @author Algoritmika Ltd.
10
  */
40
  /**
41
  * reset_settings.
42
  *
43
+ * @version 2.5.0
44
  * @since 2.4.0
45
  */
46
  function reset_settings() {
47
+ if ( isset( $_GET['wcj_reset_settings'] ) && $this->id === $_GET['wcj_reset_settings'] && wcj_is_user_role( 'administrator' ) && ! isset( $_POST['save'] ) ) {
48
  global $wcj_notice;
49
  if ( ! isset( $_GET['wcj_confirm_reset_settings'] ) ) {
50
  $wcj_notice .= __( 'Are you sure you want to reset current module\'s settings to default values?', 'woocommerce-jetpack' );
89
  /**
90
  * save_meta_box.
91
  *
92
+ * @since 2.5.0
93
  */
94
  function save_meta_box( $post_id, $post ) {
95
  // Check that we are saving with current metabox displayed.
96
  if ( ! isset( $_POST[ 'woojetpack_' . $this->id . '_save_post' ] ) ) return;
97
  // Save options
98
  foreach ( $this->get_meta_box_options() as $option ) {
99
+ if ( 'title' === $option['type'] ) {
100
+ continue;
101
+ }
102
  $is_enabled = ( isset( $option['enabled'] ) && 'no' === $option['enabled'] ) ? false : true;
103
  if ( $is_enabled ) {
104
  $option_value = ( isset( $_POST[ $option['name'] ] ) ) ? $_POST[ $option['name'] ] : $option['default'];
132
  /**
133
  * create_meta_box.
134
  *
135
+ * @since 2.5.0
136
  */
137
  function create_meta_box() {
138
  $current_post_id = get_the_ID();
141
  foreach ( $this->get_meta_box_options() as $option ) {
142
  $is_enabled = ( isset( $option['enabled'] ) && 'no' === $option['enabled'] ) ? false : true;
143
  if ( $is_enabled ) {
144
+ if ( 'title' === $option['type'] ) {
145
+ $html .= '<tr>';
146
+ $html .= '<th cospan="2" style="text-align:left;">' . $option['title'] . '</th>';
147
+ $html .= '</tr>';
148
  } else {
149
+ $custom_attributes = '';
150
+ $the_post_id = ( isset( $option['product_id'] ) ) ? $option['product_id'] : $current_post_id;
151
+ $the_meta_name = ( isset( $option['meta_name'] ) ) ? $option['meta_name'] : '_' . $option['name'];
152
+ if ( get_post_meta( $the_post_id, $the_meta_name ) ) {
153
+ $option_value = get_post_meta( $the_post_id, $the_meta_name, true );
154
+ } else {
155
+ $option_value = ( isset( $option['default'] ) ) ? $option['default'] : '';
156
  }
157
+ $input_ending = '';
158
+ if ( 'select' === $option['type'] ) {
159
+ if ( isset( $option['multiple'] ) ) {
160
+ $custom_attributes = ' multiple';
161
+ $option_name = $option['name'] . '[]';
162
+ } else {
163
+ $option_name = $option['name'];
164
+ }
165
+ $options = '';
166
+ foreach ( $option['options'] as $select_option_key => $select_option_value ) {
167
+ $selected = '';
168
+ if ( is_array( $option_value ) ) {
169
+ foreach ( $option_value as $single_option_value ) {
170
+ $selected .= selected( $single_option_value, $select_option_key, false );
171
+ }
172
+ } else {
173
+ $selected = selected( $option_value, $select_option_key, false );
174
+ }
175
+ $options .= '<option value="' . $select_option_key . '" ' . $selected . '>' . $select_option_value . '</option>';
176
+ }
177
+ } else {
178
+ $input_ending = ' id="' . $option['name'] . '" name="' . $option['name'] . '" value="' . $option_value . '">';
179
+ }
180
+ switch ( $option['type'] ) {
181
+ case 'price':
182
+ $field_html = '<input class="short wc_input_price" type="number" step="0.0001"' . $input_ending;
183
+ break;
184
+ case 'date':
185
+ $field_html = '<input class="input-text" display="date" type="text"' . $input_ending;
186
+ break;
187
+ case 'textarea':
188
+ $field_html = '<textarea style="min-width:300px;"' . ' id="' . $option['name'] . '" name="' . $option['name'] . '">' . $option_value . '</textarea>';
189
+ break;
190
+ case 'select':
191
+ $field_html = '<select' . $custom_attributes . ' id="' . $option['name'] . '" name="' . $option_name . '">' . $options . '</select>';
192
+ break;
193
+ default:
194
+ $field_html = '<input class="short" type="' . $option['type'] . '"' . $input_ending;
195
+ break;
196
+ }
197
+ $html .= '<tr>';
198
+ $html .= '<th style="text-align:left;">' . $option['title'] . '</th>';
199
+ if ( isset( $option['desc'] ) && '' != $option['desc'] ) {
200
+ $html .= '<td style="font-style:italic;">' . $option['desc'] . '</td>';
201
+ }
202
+ $html .= '<td>' . $field_html . '</td>';
203
+ $html .= '</tr>';
204
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
205
  }
206
  }
207
  $html .= '</table>';
includes/functions/wcj-functions-number-to-words-bg.php ADDED
@@ -0,0 +1,198 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Functions
4
+ *
5
+ * The WooCommerce Jetpack Functions.
6
+ *
7
+ * @version 2.5.0
8
+ * @author Algoritmika Ltd.
9
+ */
10
+
11
+ function convert_number_to_words_bg($num, $tri = 0) {
12
+ $edinici = array(
13
+ 0 => "",
14
+ 1 => array(
15
+ 0 => " един",
16
+ 1 => "",
17
+ 2 => " eдин",
18
+ 3 => " eдин",
19
+ 4 => " eдин",
20
+ 5 => " eдин",
21
+ 6 => " eдин",
22
+ 7 => " eдин",
23
+ 8 => " eдин",
24
+ 9 => " eдин",
25
+ 10 => " eдин",
26
+ ),
27
+ 2 => array(
28
+ 0 => " два",
29
+ 1 => " двe",
30
+ 2 => " два",
31
+ 3 => " два",
32
+ 4 => " два",
33
+ 5 => " два",
34
+ 6 => " два",
35
+ 7 => " два",
36
+ 8 => " два",
37
+ 9 => " два",
38
+ 10 => " два",
39
+ ),
40
+ 3 => " три",
41
+ 4 => " четири",
42
+ 5 => " пет",
43
+ 6 => " шест",
44
+ 7 => " седем",
45
+ 8 => " осем",
46
+ 9 => " девет",
47
+ 10 => " десет",
48
+ 11 => " единадесет",
49
+ 12 => " дванадесет",
50
+ 13 => " тринадесет",
51
+ 14 => " четиринадесет",
52
+ 15 => " петнадесет",
53
+ 16 => " шестнадесет",
54
+ 17 => " седемнадесет",
55
+ 18 => " осемнадесет",
56
+ 19 => " деветнадесет"
57
+ );
58
+
59
+ $desetici = array(
60
+ 0 => "",
61
+ 1 => "",
62
+ 2 => " двадесет",
63
+ 3 => " тридесет",
64
+ 4 => " четиридесет",
65
+ 5 => " петдесет",
66
+ 6 => " шестдесет",
67
+ 7 => " седемдесет",
68
+ 8 => " осемдесет",
69
+ 9 => " деведесет"
70
+ );
71
+
72
+ $stotici = array (
73
+ 0 => "",
74
+ 1 => " сто",
75
+ 2 => " двеста",
76
+ 3 => " триста",
77
+ 4 => " четиристотин",
78
+ 5 => " петстотин",
79
+ 6 => " шестстотин",
80
+ 7 => " седемстотин",
81
+ 8 => " осемстотин",
82
+ 9 => " деветстотин",
83
+ );
84
+
85
+ $tripleti = array(
86
+ 0 => "",
87
+ 1 => array(
88
+ 0 => " хиляда",
89
+ 1 => " хиляди"),
90
+ 2 => array(
91
+ 0 => " милион",
92
+ 1 => " милиона"),
93
+ 3 => array(
94
+ 0 => " билион",
95
+ 1 => " билионa"),
96
+ 4 => array(
97
+ 0 => " трилион",
98
+ 1 => " трилиона"),
99
+ 5 => array(
100
+ 0 => " квадрилион",
101
+ 1 => " квадрилиона"),
102
+ 6 => array(
103
+ 0 => " квинтилион",
104
+ 1 => " квинтилиони"),
105
+ 7 => array(
106
+ 0 => " сикстилион",
107
+ 1 => " сикстилион"),
108
+ 8 => array(
109
+ 0 => " септилион",
110
+ 1 => " септилиони"),
111
+ 9 => array(
112
+ 0 => " октилион",
113
+ 1 => " октилион"),
114
+ 10 => array(
115
+ 0 => " нонилион",
116
+ 1 => " нонилиои")
117
+ );
118
+
119
+ //взимаме само цялата част от числото, без стойността
120
+ //след десетичната запетая
121
+ $n = explode(".", $num);
122
+ $num = $n[0];
123
+ $r = (int) ($num / 1000);
124
+ $x = ($num / 100) % 10;
125
+ $y = $num % 100;
126
+
127
+ $str = "";
128
+
129
+ // стотици
130
+ if ($x > 0) {
131
+ $str = $stotici[$x];
132
+ }
133
+ // единици и десетици
134
+ if ($y < 20) {
135
+ if($y == 0 && $r > 0) {
136
+ $str = ' и '.$str;
137
+ }
138
+ if(is_array($edinici[$y]) && isset($edinici[$y][$tri])) {
139
+ $str .= ' '.$edinici[$y][$tri];
140
+ }
141
+ else {
142
+ $str .= ' '.$edinici[$y];
143
+ }
144
+ }
145
+ else {
146
+ if($edinici[$y % 10]) {
147
+ $str .= $desetici[(int) ($y / 10)];
148
+ $str .= ' и';
149
+ if(is_array($edinici[$y % 10]) && isset($edinici[$y % 10][$tri])) {
150
+ $str .= $edinici[$y % 10][$tri];
151
+ }
152
+ else {
153
+ $str .= $edinici[$y % 10];
154
+ }
155
+ }
156
+ else {
157
+ $str .= ' и'.$desetici[(int) ($y / 10)];
158
+ }
159
+ }
160
+
161
+ // добавяне на модификатор - хиляди, милиони, билиони
162
+
163
+ if ($str != "") {
164
+ //Ако има зададени опции за единствено и мн. число
165
+ if(is_array($tripleti[$tri])) {
166
+ //мн. число ли е?
167
+ if($num > 1) {
168
+ $str .= $tripleti[$tri][1];
169
+ }
170
+ else {
171
+ $str .= $tripleti[$tri][0];
172
+ }
173
+ }
174
+ else {
175
+ $str .= $tripleti[$tri];
176
+ }
177
+ $str = str_replace('един стотин', 'сто', $str);
178
+ $str = str_replace('един хиляди', 'хиляда', $str);
179
+ }
180
+
181
+ //ако сме на първата стъпка (т.е. определяме числото до стотици)
182
+ if($tri == 0) {
183
+ //добавяме префикс за лева
184
+ $str .= ' лева';
185
+ //и ако има сетнати стотинки ги добавяме и тях
186
+ if(isset($n[1])) {
187
+ $str .= ' и '.$n[1].'ст.';
188
+ }
189
+ }
190
+
191
+ // продължаване рекрусивно?
192
+ if ($r > 0) {
193
+ return convert_number_to_words_bg($r, $tri+1).$str;
194
+ }
195
+ else {
196
+ return $str;
197
+ }
198
+ }
includes/functions/wcj-functions-number-to-words.php ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Functions
4
+ *
5
+ * The WooCommerce Jetpack Functions.
6
+ *
7
+ * @version 2.5.0
8
+ * @author Algoritmika Ltd.
9
+ */
10
+
11
+ /**
12
+ * convert_number_to_words.
13
+ *
14
+ * @return string
15
+ */
16
+ if ( ! function_exists( 'convert_number_to_words' ) ) {
17
+ function convert_number_to_words( $number ) {
18
+ $hyphen = '-';
19
+ $conjunction = ' and ';
20
+ $separator = ', ';
21
+ $negative = 'negative ';
22
+ $decimal = ' point ';
23
+ $dictionary = array(
24
+ 0 => 'zero',
25
+ 1 => 'one',
26
+ 2 => 'two',
27
+ 3 => 'three',
28
+ 4 => 'four',
29
+ 5 => 'five',
30
+ 6 => 'six',
31
+ 7 => 'seven',
32
+ 8 => 'eight',
33
+ 9 => 'nine',
34
+ 10 => 'ten',
35
+ 11 => 'eleven',
36
+ 12 => 'twelve',
37
+ 13 => 'thirteen',
38
+ 14 => 'fourteen',
39
+ 15 => 'fifteen',
40
+ 16 => 'sixteen',
41
+ 17 => 'seventeen',
42
+ 18 => 'eighteen',
43
+ 19 => 'nineteen',
44
+ 20 => 'twenty',
45
+ 30 => 'thirty',
46
+ 40 => 'fourty',
47
+ 50 => 'fifty',
48
+ 60 => 'sixty',
49
+ 70 => 'seventy',
50
+ 80 => 'eighty',
51
+ 90 => 'ninety',
52
+ 100 => 'hundred',
53
+ 1000 => 'thousand',
54
+ 1000000 => 'million',
55
+ 1000000000 => 'billion',
56
+ 1000000000000 => 'trillion',
57
+ 1000000000000000 => 'quadrillion',
58
+ 1000000000000000000 => 'quintillion'
59
+ );
60
+
61
+ if (!is_numeric($number)) {
62
+ return false;
63
+ }
64
+
65
+ if (($number >= 0 && (int) $number < 0) || (int) $number < 0 - PHP_INT_MAX) {
66
+ // overflow
67
+ trigger_error(
68
+ 'convert_number_to_words only accepts numbers between -' . PHP_INT_MAX . ' and ' . PHP_INT_MAX,
69
+ E_USER_WARNING
70
+ );
71
+ return false;
72
+ }
73
+
74
+ if ($number < 0) {
75
+ return $negative . convert_number_to_words(abs($number));
76
+ }
77
+
78
+ $string = $fraction = null;
79
+
80
+ if (strpos($number, '.') !== false) {
81
+ list($number, $fraction) = explode('.', $number);
82
+ }
83
+
84
+ switch (true) {
85
+ case $number < 21:
86
+ $string = $dictionary[$number];
87
+ break;
88
+ case $number < 100:
89
+ $tens = ((int) ($number / 10)) * 10;
90
+ $units = $number % 10;
91
+ $string = $dictionary[$tens];
92
+ if ($units) {
93
+ $string .= $hyphen . $dictionary[$units];
94
+ }
95
+ break;
96
+ case $number < 1000:
97
+ $hundreds = $number / 100;
98
+ $remainder = $number % 100;
99
+ $string = $dictionary[$hundreds] . ' ' . $dictionary[100];
100
+ if ($remainder) {
101
+ $string .= $conjunction . convert_number_to_words($remainder);
102
+ }
103
+ break;
104
+ default:
105
+ $baseUnit = pow(1000, floor(log($number, 1000)));
106
+ $numBaseUnits = (int) ($number / $baseUnit);
107
+ $remainder = $number % $baseUnit;
108
+ $string = convert_number_to_words($numBaseUnits) . ' ' . $dictionary[$baseUnit];
109
+ if ($remainder) {
110
+ $string .= $remainder < 100 ? $conjunction : $separator;
111
+ $string .= convert_number_to_words($remainder);
112
+ }
113
+ break;
114
+ }
115
+
116
+ if (null !== $fraction && is_numeric($fraction)) {
117
+ $string .= $decimal;
118
+ $words = array();
119
+ foreach (str_split((string) $fraction) as $number) {
120
+ $words[] = $dictionary[$number];
121
+ }
122
+ $string .= implode(' ', $words);
123
+ }
124
+
125
+ return $string;
126
+ }
127
+ }
includes/functions/wcj-functions.php CHANGED
@@ -4,15 +4,57 @@
4
  *
5
  * The WooCommerce Jetpack Functions.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  if ( ! function_exists( 'wcj_variation_radio_button' ) ) {
12
  /**
13
  * wcj_variation_radio_button.
14
  *
15
- * @version 2.4.8
16
  * @since 2.4.8
17
  */
18
  function wcj_variation_radio_button( $_product, $variation ) {
@@ -47,13 +89,17 @@ if ( ! function_exists( 'wcj_variation_radio_button' ) ) {
47
  $is_checked = checked( $is_checked, true, false );
48
 
49
  echo '<td style="width:10%;">';
50
- echo '<input name="wcj_variations" type="radio"' . $attributes_html . ' variation_id="' . $variation_id . '"' . $is_checked . '>';
51
  echo '</td>';
52
  echo '<td>';
 
53
  echo $variation_title;
54
- echo '<br>';
55
- // echo '<small>' . $variation['variation_description'] . '</small>';
56
- echo '<small>' . get_post_meta( $variation_id, '_variation_description', true ) . '</small>';
 
 
 
57
  echo '</td>';
58
  }
59
  }
@@ -252,15 +298,42 @@ if ( ! function_exists( 'wcj_get_wcj_uploads_dir' ) ) {
252
  }
253
  }
254
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
255
  /**
256
  * wcj_is_product_wholesale_enabled.
 
 
257
  */
258
  if ( ! function_exists( 'wcj_is_product_wholesale_enabled' ) ) {
259
  function wcj_is_product_wholesale_enabled( $product_id ) {
260
- $products_to_include = get_option( 'wcj_wholesale_price_products_to_include', array() );
261
- if ( empty ( $products_to_include ) ) return true;
262
- foreach ( $products_to_include as $id ) {
263
- if ( $product_id == $id ) return true;
 
 
 
 
 
 
 
 
 
 
264
  }
265
  return false;
266
  }
@@ -340,6 +413,20 @@ if ( ! function_exists( 'is_shop_manager' ) ) {
340
  }
341
  }
342
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
343
  /**
344
  * validate_VAT.
345
  *
@@ -366,126 +453,6 @@ if ( ! function_exists( 'validate_VAT' ) ) {
366
  }
367
  }
368
 
369
-
370
- /**
371
- * convert_number_to_words.
372
- *
373
- * @return string
374
- */
375
-
376
- if ( ! function_exists( 'convert_number_to_words' ) ) {
377
- function convert_number_to_words( $number ) {
378
- $hyphen = '-';
379
- $conjunction = ' and ';
380
- $separator = ', ';
381
- $negative = 'negative ';
382
- $decimal = ' point ';
383
- $dictionary = array(
384
- 0 => 'zero',
385
- 1 => 'one',
386
- 2 => 'two',
387
- 3 => 'three',
388
- 4 => 'four',
389
- 5 => 'five',
390
- 6 => 'six',
391
- 7 => 'seven',
392
- 8 => 'eight',
393
- 9 => 'nine',
394
- 10 => 'ten',
395
- 11 => 'eleven',
396
- 12 => 'twelve',
397
- 13 => 'thirteen',
398
- 14 => 'fourteen',
399
- 15 => 'fifteen',
400
- 16 => 'sixteen',
401
- 17 => 'seventeen',
402
- 18 => 'eighteen',
403
- 19 => 'nineteen',
404
- 20 => 'twenty',
405
- 30 => 'thirty',
406
- 40 => 'fourty',
407
- 50 => 'fifty',
408
- 60 => 'sixty',
409
- 70 => 'seventy',
410
- 80 => 'eighty',
411
- 90 => 'ninety',
412
- 100 => 'hundred',
413
- 1000 => 'thousand',
414
- 1000000 => 'million',
415
- 1000000000 => 'billion',
416
- 1000000000000 => 'trillion',
417
- 1000000000000000 => 'quadrillion',
418
- 1000000000000000000 => 'quintillion'
419
- );
420
-
421
- if (!is_numeric($number)) {
422
- return false;
423
- }
424
-
425
- if (($number >= 0 && (int) $number < 0) || (int) $number < 0 - PHP_INT_MAX) {
426
- // overflow
427
- trigger_error(
428
- 'convert_number_to_words only accepts numbers between -' . PHP_INT_MAX . ' and ' . PHP_INT_MAX,
429
- E_USER_WARNING
430
- );
431
- return false;
432
- }
433
-
434
- if ($number < 0) {
435
- return $negative . convert_number_to_words(abs($number));
436
- }
437
-
438
- $string = $fraction = null;
439
-
440
- if (strpos($number, '.') !== false) {
441
- list($number, $fraction) = explode('.', $number);
442
- }
443
-
444
- switch (true) {
445
- case $number < 21:
446
- $string = $dictionary[$number];
447
- break;
448
- case $number < 100:
449
- $tens = ((int) ($number / 10)) * 10;
450
- $units = $number % 10;
451
- $string = $dictionary[$tens];
452
- if ($units) {
453
- $string .= $hyphen . $dictionary[$units];
454
- }
455
- break;
456
- case $number < 1000:
457
- $hundreds = $number / 100;
458
- $remainder = $number % 100;
459
- $string = $dictionary[$hundreds] . ' ' . $dictionary[100];
460
- if ($remainder) {
461
- $string .= $conjunction . convert_number_to_words($remainder);
462
- }
463
- break;
464
- default:
465
- $baseUnit = pow(1000, floor(log($number, 1000)));
466
- $numBaseUnits = (int) ($number / $baseUnit);
467
- $remainder = $number % $baseUnit;
468
- $string = convert_number_to_words($numBaseUnits) . ' ' . $dictionary[$baseUnit];
469
- if ($remainder) {
470
- $string .= $remainder < 100 ? $conjunction : $separator;
471
- $string .= convert_number_to_words($remainder);
472
- }
473
- break;
474
- }
475
-
476
- if (null !== $fraction && is_numeric($fraction)) {
477
- $string .= $decimal;
478
- $words = array();
479
- foreach (str_split((string) $fraction) as $number) {
480
- $words[] = $dictionary[$number];
481
- }
482
- $string .= implode(' ', $words);
483
- }
484
-
485
- return $string;
486
- }
487
- }
488
-
489
  /**
490
  * wcj_plugin_url.
491
  *
4
  *
5
  * The WooCommerce Jetpack Functions.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
11
+ if ( ! function_exists( 'wcj_get_current_currency_code' ) ) {
12
+ /**
13
+ * wcj_get_current_currency_code.
14
+ *
15
+ * @version 2.5.0
16
+ * @since 2.5.0
17
+ */
18
+ function wcj_get_current_currency_code( $module ) {
19
+ $current_currency_code = get_woocommerce_currency();
20
+ if ( wcj_is_module_enabled( $module ) ) {
21
+ if ( 'multicurrency' === $module ) {
22
+ $current_currency_code = ( isset( $_SESSION['wcj-currency'] ) ) ? $_SESSION['wcj-currency'] : $current_currency_code;
23
+ }
24
+ }
25
+ return $current_currency_code;
26
+ }
27
+ }
28
+
29
+ if ( ! function_exists( 'wcj_get_currency_exchange_rate' ) ) {
30
+ /**
31
+ * wcj_get_currency_exchange_rate.
32
+ *
33
+ * @version 2.5.0
34
+ * @since 2.5.0
35
+ */
36
+ function wcj_get_currency_exchange_rate( $module, $currency_code ) {
37
+ $currency_exchange_rate = 1;
38
+ if ( wcj_is_module_enabled( $module ) ) {
39
+ if ( 'multicurrency' === $module ) {
40
+ $total_number = apply_filters( 'wcj_get_option_filter', 2, get_option( 'wcj_multicurrency_total_number', 2 ) );
41
+ for ( $i = 1; $i <= $total_number; $i++ ) {
42
+ if ( $currency_code === get_option( 'wcj_multicurrency_currency_' . $i ) ) {
43
+ $currency_exchange_rate = get_option( 'wcj_multicurrency_exchange_rate_' . $i );
44
+ break;
45
+ }
46
+ }
47
+ }
48
+ }
49
+ return $currency_exchange_rate;
50
+ }
51
+ }
52
+
53
  if ( ! function_exists( 'wcj_variation_radio_button' ) ) {
54
  /**
55
  * wcj_variation_radio_button.
56
  *
57
+ * @version 2.5.0
58
  * @since 2.4.8
59
  */
60
  function wcj_variation_radio_button( $_product, $variation ) {
89
  $is_checked = checked( $is_checked, true, false );
90
 
91
  echo '<td style="width:10%;">';
92
+ echo '<input id="wcj_variation_' . $variation_id . '" name="wcj_variations" type="radio"' . $attributes_html . ' variation_id="' . $variation_id . '"' . $is_checked . '>';
93
  echo '</td>';
94
  echo '<td>';
95
+ echo '<label for="wcj_variation_' . $variation_id . '">';
96
  echo $variation_title;
97
+ if ( '' != ( $variation_description = get_post_meta( $variation_id, '_variation_description', true ) ) ) {
98
+ echo '<br>';
99
+ // echo '<small>' . $variation['variation_description'] . '</small>';
100
+ echo '<small>' . $variation_description . '</small>';
101
+ }
102
+ echo '</label>';
103
  echo '</td>';
104
  }
105
  }
298
  }
299
  }
300
 
301
+ /**
302
+ * wcj_is_product_wholesale_enabled_per_product.
303
+ *
304
+ * @version 2.5.0
305
+ * @since 2.5.0
306
+ */
307
+ if ( ! function_exists( 'wcj_is_product_wholesale_enabled_per_product' ) ) {
308
+ function wcj_is_product_wholesale_enabled_per_product( $product_id ) {
309
+ return (
310
+ 'yes' === get_option( 'wcj_wholesale_price_per_product_enable', 'yes' ) &&
311
+ 'yes' === get_post_meta( $product_id, '_' . 'wcj_wholesale_price_per_product_enabled', true )
312
+ ) ? true : false;
313
+ }
314
+ }
315
+
316
  /**
317
  * wcj_is_product_wholesale_enabled.
318
+ *
319
+ * @version 2.5.0
320
  */
321
  if ( ! function_exists( 'wcj_is_product_wholesale_enabled' ) ) {
322
  function wcj_is_product_wholesale_enabled( $product_id ) {
323
+ if ( wcj_is_module_enabled( 'wholesale_price' ) ) {
324
+ if ( wcj_is_product_wholesale_enabled_per_product( $product_id ) ) {
325
+ return true;
326
+ } else {
327
+ $products_to_include = get_option( 'wcj_wholesale_price_products_to_include', array() );
328
+ if ( empty ( $products_to_include ) ) {
329
+ return true;
330
+ }
331
+ foreach ( $products_to_include as $id ) {
332
+ if ( $product_id == $id ) {
333
+ return true;
334
+ }
335
+ }
336
+ }
337
  }
338
  return false;
339
  }
413
  }
414
  }
415
 
416
+ /**
417
+ * wcj_is_user_role.
418
+ *
419
+ * @version 2.5.0
420
+ * @since 2.5.0
421
+ * @return bool
422
+ */
423
+ if ( ! function_exists( 'wcj_is_user_role' ) ) {
424
+ function wcj_is_user_role( $user_role, $user_id = 0 ) {
425
+ $the_user = ( 0 == $user_id ) ? wp_get_current_user() : get_user_by( 'id', $user_id );
426
+ return ( isset( $the_user->roles ) && is_array( $the_user->roles ) && in_array( $user_role, $the_user->roles ) ) ? true : false;
427
+ }
428
+ }
429
+
430
  /**
431
  * validate_VAT.
432
  *
453
  }
454
  }
455
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
456
  /**
457
  * wcj_plugin_url.
458
  *
includes/input-fields/class-wcj-product-input-fields-abstract.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Product Input Fields abstract class.
6
  *
7
- * @version 2.4.7
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -226,6 +226,35 @@ class WCJ_Product_Input_Fields_Abstract {
226
  return $options;
227
  }
228
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
229
  /**
230
  * hide_custom_input_fields_default_output_in_admin_order.
231
  * @todo Get actual (max) number of fields in case of local scape.
@@ -730,6 +759,8 @@ class WCJ_Product_Input_Fields_Abstract {
730
 
731
  /**
732
  * add_product_input_fields_to_order_item_meta.
 
 
733
  */
734
  public function add_product_input_fields_to_order_item_meta( $item_id, $values, $cart_item_key ) {
735
  $total_number = apply_filters( 'wcj_get_option_filter', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $values['product_id'], 1 ) );
@@ -753,7 +784,7 @@ class WCJ_Product_Input_Fields_Abstract {
753
  file_put_contents( $upload_dir_and_name, $file_data );
754
  unlink( $tmp_name );
755
  //unset( $input_field_value['tmp_name'] );
756
- $input_field_value['tmp_name'] = $upload_dir_and_name;
757
  $input_field_value['wcj_type'] = 'file';
758
  //$orig_file_name = $input_field_value['name'];
759
  //wc_add_order_item_meta( $item_id, '_wcj_product_input_fields_' . $this->scope . '_' . $i . '_orig_file_name', $orig_file_name );
4
  *
5
  * The WooCommerce Jetpack Product Input Fields abstract class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
226
  return $options;
227
  }
228
 
229
+ /**
230
+ * add_files_to_email_attachments.
231
+ *
232
+ * @version 2.5.0
233
+ * @since 2.5.0
234
+ */
235
+ function add_files_to_email_attachments( $attachments, $status, $order ) {
236
+ if (
237
+ ( 'new_order' === $status && 'yes' === get_option( 'wcj_product_input_fields_attach_to_admin_new_order', 'yes' ) ) ||
238
+ ( 'customer_processing_order' === $status && 'yes' === get_option( 'wcj_product_input_fields_attach_to_customer_processing_order', 'yes' ) )
239
+ ) {
240
+ foreach ( $order->get_items() as $item_key => $item ) {
241
+ $product_id = $item['product_id'];
242
+ $total_number = apply_filters( 'wcj_get_option_filter', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $product_id, 1 ) );
243
+ for ( $i = 1; $i <= $total_number; $i++ ) {
244
+ if ( isset( $item[ 'wcj_product_input_fields_' . $this->scope . '_' . $i ] ) ) {
245
+ $the_value = $item[ 'wcj_product_input_fields_' . $this->scope . '_' . $i ];
246
+ $the_value = maybe_unserialize( $the_value );
247
+ if ( isset( $the_value['wcj_type'] ) && 'file' === $the_value['wcj_type'] && isset( $the_value['tmp_name'] ) ) {
248
+ $file_path = $the_value['tmp_name'];
249
+ $attachments[] = $file_path;
250
+ }
251
+ }
252
+ }
253
+ }
254
+ }
255
+ return $attachments;
256
+ }
257
+
258
  /**
259
  * hide_custom_input_fields_default_output_in_admin_order.
260
  * @todo Get actual (max) number of fields in case of local scape.
759
 
760
  /**
761
  * add_product_input_fields_to_order_item_meta.
762
+ *
763
+ * @version 2.5.0
764
  */
765
  public function add_product_input_fields_to_order_item_meta( $item_id, $values, $cart_item_key ) {
766
  $total_number = apply_filters( 'wcj_get_option_filter', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $values['product_id'], 1 ) );
784
  file_put_contents( $upload_dir_and_name, $file_data );
785
  unlink( $tmp_name );
786
  //unset( $input_field_value['tmp_name'] );
787
+ $input_field_value['tmp_name'] = addslashes( $upload_dir_and_name );
788
  $input_field_value['wcj_type'] = 'file';
789
  //$orig_file_name = $input_field_value['name'];
790
  //wc_add_order_item_meta( $item_id, '_wcj_product_input_fields_' . $this->scope . '_' . $i . '_orig_file_name', $orig_file_name );
includes/input-fields/class-wcj-product-input-fields-global.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Product Input Fields Global class.
6
  *
7
- * @version 2.2.2
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -16,6 +16,8 @@ class WCJ_Product_Input_Fields_Global extends WCJ_Product_Input_Fields_Abstract
16
 
17
  /**
18
  * Constructor.
 
 
19
  */
20
  public function __construct() {
21
 
@@ -49,6 +51,9 @@ class WCJ_Product_Input_Fields_Global extends WCJ_Product_Input_Fields_Abstract
49
  }
50
  //add_filter( 'woocommerce_attribute_label', array( $this, 'change_woocommerce_attribute_label' ), PHP_INT_MAX, 2 );
51
 
 
 
 
52
  //add_action( 'init', array( $this, 'init' ), 100 );
53
  //add_action( 'woocommerce_ajax_added_to_cart', array( $this, 'ajax_add_to_cart' ), 100 );
54
  //add_action( 'woocommerce_loop_add_to_cart_link', array( $this, 'replace_loop_add_to_cart_button' ), 100, 2 );
4
  *
5
  * The WooCommerce Jetpack Product Input Fields Global class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
16
 
17
  /**
18
  * Constructor.
19
+ *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
51
  }
52
  //add_filter( 'woocommerce_attribute_label', array( $this, 'change_woocommerce_attribute_label' ), PHP_INT_MAX, 2 );
53
 
54
+ // Add to emails
55
+ add_filter( 'woocommerce_email_attachments', array( $this, 'add_files_to_email_attachments' ), PHP_INT_MAX, 3 );
56
+
57
  //add_action( 'init', array( $this, 'init' ), 100 );
58
  //add_action( 'woocommerce_ajax_added_to_cart', array( $this, 'ajax_add_to_cart' ), 100 );
59
  //add_action( 'woocommerce_loop_add_to_cart_link', array( $this, 'replace_loop_add_to_cart_button' ), 100, 2 );
includes/input-fields/class-wcj-product-input-fields-per-product.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Product Input Fields per Product class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -16,6 +16,8 @@ class WCJ_Product_Input_Fields_Per_Product extends WCJ_Product_Input_Fields_Abst
16
 
17
  /**
18
  * Constructor.
 
 
19
  */
20
  public function __construct() {
21
 
@@ -54,6 +56,8 @@ class WCJ_Product_Input_Fields_Per_Product extends WCJ_Product_Input_Fields_Abst
54
  }
55
  // add_filter( 'woocommerce_attribute_label', array( $this, 'change_woocommerce_attribute_label' ), PHP_INT_MAX, 2 );
56
 
 
 
57
  }
58
  }
59
 
4
  *
5
  * The WooCommerce Jetpack Product Input Fields per Product class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
16
 
17
  /**
18
  * Constructor.
19
+ *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
56
  }
57
  // add_filter( 'woocommerce_attribute_label', array( $this, 'change_woocommerce_attribute_label' ), PHP_INT_MAX, 2 );
58
 
59
+ // Add to emails
60
+ add_filter( 'woocommerce_email_attachments', array( $this, 'add_files_to_email_attachments' ), PHP_INT_MAX, 3 );
61
  }
62
  }
63
 
includes/js/wcj-bookings.js ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * wcj-bookings.
3
+ *
4
+ * version 2.5.0
5
+ * since 2.5.0
6
+ */
7
+ var decodeEntities = (function () {
8
+ //create a new html document (doesn't execute script tags in child elements)
9
+ var doc = document.implementation.createHTMLDocument("");
10
+ var element = doc.createElement('div');
11
+
12
+ function getText(str) {
13
+ element.innerHTML = str;
14
+ str = element.textContent;
15
+ element.textContent = '';
16
+ return str;
17
+ }
18
+
19
+ function decodeHTMLEntities(str) {
20
+ if (str && typeof str === 'string') {
21
+ var x = getText(str);
22
+ while (str !== x) {
23
+ str = x;
24
+ x = getText(x);
25
+ }
26
+ return x;
27
+ }
28
+ }
29
+ return decodeHTMLEntities;
30
+ })();
31
+
32
+ function change_price() {
33
+ var date_from = jQuery("input[name='wcj_product_bookings_date_from']").val();
34
+ var date_to = jQuery("input[name='wcj_product_bookings_date_to']").val();
35
+ var is_variation_ok = true;
36
+ if ( jQuery(".variations select").length ) {
37
+ if ( jQuery(".variations select").find(":selected").val() == '' ) {
38
+ is_variation_ok = false;
39
+ }
40
+ }
41
+ if ( date_from && date_to && is_variation_ok ) {
42
+ var d1 = new Date(date_from);
43
+ var d2 = new Date(date_to);
44
+ var t1 = d1.getTime();
45
+ var t2 = d2.getTime();
46
+ if ( t2 > t1 ) {
47
+ var product_id = jQuery("input[type='hidden'][name='variation_id']").val();
48
+ if ( ! product_id ) {
49
+ product_id = ajax_object.product_id;
50
+ }
51
+ var data = {
52
+ 'action': 'price_change',
53
+ 'product_id': product_id,
54
+ 'date_from': date_from,
55
+ 'date_to': date_to
56
+ };
57
+ jQuery.post(ajax_object.ajax_url, data, function(response) {
58
+ if ( '' != response ) {
59
+ jQuery("p[class='price']").text(decodeEntities(response));
60
+ }
61
+ });
62
+ jQuery("div[name='wcj_bookings_message']").css("display", "none");
63
+ jQuery("div[name='wcj_bookings_message'] p").text('');
64
+ } else {
65
+ jQuery("div[name='wcj_bookings_message']").css("display", "block");
66
+ jQuery("div[name='wcj_bookings_message'] p").text(ajax_object.wrong_dates_message);
67
+ jQuery("p[class='price']").text(decodeEntities(ajax_object.original_price_html));
68
+ }
69
+ } else {
70
+ jQuery("p[class='price']").text(decodeEntities(ajax_object.original_price_html));
71
+ }
72
+ }
73
+
74
+ jQuery(document).ready(function() {
75
+ change_price();
76
+ jQuery("input[name^='wcj_product_bookings_date_']").each( function () {
77
+ jQuery(this).change( change_price );
78
+ });
79
+ });
80
+
81
+ jQuery(document.body).on('change','.variations select',change_price);
82
+ jQuery(document.body).on('change','input[name="wcj_variations"]',change_price);
includes/lib/PHPMathParser/Expressions.php ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PHPMathParser;
4
+
5
+ class Parenthesis extends TerminalExpression {
6
+
7
+ protected $precedence = 6;
8
+
9
+ public function operate(Stack $stack) {
10
+ }
11
+
12
+ public function getPrecedence() {
13
+ return $this->precedence;
14
+ }
15
+
16
+ public function isNoOp() {
17
+ return true;
18
+ }
19
+
20
+ public function isParenthesis() {
21
+ return true;
22
+ }
23
+
24
+ public function isOpen() {
25
+ return $this->value == '(';
26
+ }
27
+
28
+ }
29
+
30
+ class Number extends TerminalExpression {
31
+
32
+ public function operate(Stack $stack) {
33
+ return $this->value;
34
+ }
35
+
36
+ }
37
+
38
+ abstract class Operator extends TerminalExpression {
39
+
40
+ protected $precedence = 0;
41
+ protected $leftAssoc = true;
42
+
43
+ public function getPrecedence() {
44
+ return $this->precedence;
45
+ }
46
+
47
+ public function isLeftAssoc() {
48
+ return $this->leftAssoc;
49
+ }
50
+
51
+ public function isOperator() {
52
+ return true;
53
+ }
54
+
55
+ }
56
+
57
+ class Addition extends Operator {
58
+
59
+ protected $precedence = 4;
60
+
61
+ public function operate(Stack $stack) {
62
+ return $stack->pop()->operate($stack) + $stack->pop()->operate($stack);
63
+ }
64
+
65
+ }
66
+
67
+ class Subtraction extends Operator {
68
+
69
+ protected $precedence = 4;
70
+
71
+ public function operate(Stack $stack) {
72
+ $left = $stack->pop()->operate($stack);
73
+ $right = $stack->pop()->operate($stack);
74
+ return $right - $left;
75
+ }
76
+
77
+ }
78
+
79
+ class Multiplication extends Operator {
80
+
81
+ protected $precedence = 5;
82
+
83
+ public function operate(Stack $stack) {
84
+ return $stack->pop()->operate($stack) * $stack->pop()->operate($stack);
85
+ }
86
+
87
+ }
88
+
89
+ class Division extends Operator {
90
+
91
+ protected $precedence = 5;
92
+
93
+ public function operate(Stack $stack) {
94
+ $left = $stack->pop()->operate($stack);
95
+ $right = $stack->pop()->operate($stack);
96
+ return $right / $left;
97
+ }
98
+
99
+ }
100
+
101
+ class Power extends Operator {
102
+
103
+ protected $precedence = 5;
104
+
105
+ public function operate(Stack $stack) {
106
+ $left = $stack->pop()->operate($stack);
107
+ $right = $stack->pop()->operate($stack);
108
+ return pow($left,$right);
109
+ }
110
+ }
includes/lib/PHPMathParser/Math.php ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PHPMathParser;
4
+
5
+ require_once 'Stack.php';
6
+ require_once 'TerminalExpression.php';
7
+ require_once 'Expressions.php';
8
+
9
+ class Math {
10
+
11
+ protected $variables = array();
12
+
13
+ public function evaluate($string) {
14
+ $stack = $this->parse($string);
15
+ return $this->run($stack);
16
+ }
17
+
18
+ public function parse($string) {
19
+ $tokens = $this->tokenize($string);
20
+ $output = new Stack();
21
+ $operators = new Stack();
22
+ foreach ($tokens as $token) {
23
+ $token = $this->extractVariables($token);
24
+ $expression = TerminalExpression::factory($token);
25
+ if ($expression->isOperator()) {
26
+ $this->parseOperator($expression, $output, $operators);
27
+ } elseif ($expression->isParenthesis()) {
28
+ $this->parseParenthesis($expression, $output, $operators);
29
+ } else {
30
+ $output->push($expression);
31
+ }
32
+ }
33
+ while (($op = $operators->pop())) {
34
+ if ($op->isParenthesis()) {
35
+ throw new \RuntimeException('Mismatched Parenthesis');
36
+ }
37
+ $output->push($op);
38
+ }
39
+ return $output;
40
+ }
41
+
42
+ public function registerVariable($name, $value) {
43
+ $this->variables[$name] = $value;
44
+ }
45
+
46
+ public function run(Stack $stack) {
47
+ while (($operator = $stack->pop()) && $operator->isOperator()) {
48
+ $value = $operator->operate($stack);
49
+ if (!is_null($value)) {
50
+ $stack->push(TerminalExpression::factory($value));
51
+ }
52
+ }
53
+ return $operator ? $operator->render() : $this->render($stack);
54
+ }
55
+
56
+ protected function extractVariables($token) {
57
+ if ($token[0] == '$') {
58
+ $key = substr($token, 1);
59
+ return isset($this->variables[$key]) ? $this->variables[$key] : 0;
60
+ }
61
+ return $token;
62
+ }
63
+
64
+ protected function render(Stack $stack) {
65
+ $output = '';
66
+ while (($el = $stack->pop())) {
67
+ $output .= $el->render();
68
+ }
69
+ if ($output) {
70
+ return $output;
71
+ }
72
+ throw new \RuntimeException('Could not render output');
73
+ }
74
+
75
+ protected function parseParenthesis(TerminalExpression $expression, Stack $output, Stack $operators) {
76
+ if ($expression->isOpen()) {
77
+ $operators->push($expression);
78
+ } else {
79
+ $clean = false;
80
+ while (($end = $operators->pop())) {
81
+ if ($end->isParenthesis()) {
82
+ $clean = true;
83
+ break;
84
+ } else {
85
+ $output->push($end);
86
+ }
87
+ }
88
+ if (!$clean) {
89
+ throw new \RuntimeException('Mismatched Parenthesis');
90
+ }
91
+ }
92
+ }
93
+
94
+ protected function parseOperator(TerminalExpression $expression, Stack $output, Stack $operators) {
95
+ $end = $operators->poke();
96
+ if (!$end) {
97
+ $operators->push($expression);
98
+ } elseif ($end->isOperator()) {
99
+ do {
100
+ if ($expression->isLeftAssoc() && $expression->getPrecedence() <= $end->getPrecedence()) {
101
+ $output->push($operators->pop());
102
+ } elseif (!$expression->isLeftAssoc() && $expression->getPrecedence() < $end->getPrecedence()) {
103
+ $output->push($operators->pop());
104
+ } else {
105
+ break;
106
+ }
107
+ } while (($end = $operators->poke()) && $end->isOperator());
108
+ $operators->push($expression);
109
+ } else {
110
+ $operators->push($expression);
111
+ }
112
+ }
113
+
114
+ protected function tokenize($string) {
115
+ $parts = preg_split('((\f+|\+|-|\(|\)|\*|\^|/)|\s+)', $string, null, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
116
+ $parts = array_map('trim', $parts);
117
+ return $parts;
118
+ }
119
+
120
+ }
includes/lib/PHPMathParser/Stack.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PHPMathParser;
4
+
5
+ class Stack {
6
+
7
+ protected $data = array();
8
+
9
+ public function push($element) {
10
+ $this->data[] = $element;
11
+ }
12
+
13
+ public function poke() {
14
+ return end($this->data);
15
+ }
16
+
17
+ public function pop() {
18
+ return array_pop($this->data);
19
+ }
20
+
21
+ }
includes/lib/PHPMathParser/TerminalExpression.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace PHPMathParser;
4
+
5
+ abstract class TerminalExpression {
6
+
7
+ protected $value = '';
8
+
9
+ public function __construct($value) {
10
+ $this->value = $value;
11
+ }
12
+
13
+ public static function factory($value) {
14
+
15
+ // var_dump($value);
16
+ if (is_object($value) && $value instanceof TerminalExpression) {
17
+ return $value;
18
+ } elseif (is_numeric($value)) {
19
+ return new Number($value);
20
+ } elseif ($value == '+') {
21
+ return new Addition($value);
22
+ } elseif ($value == '-') {
23
+ return new Subtraction($value);
24
+ } elseif ($value == '*') {
25
+ return new Multiplication($value);
26
+ } elseif ($value == '/') {
27
+ return new Division($value);
28
+ } elseif (in_array($value, array('(', ')'))) {
29
+ return new Parenthesis($value);
30
+ } elseif ($value == '^') {
31
+ return new Power($value);
32
+ }
33
+ throw new \Exception('Undefined Value ' . $value);
34
+ }
35
+
36
+ abstract public function operate(Stack $stack);
37
+
38
+ public function isOperator() {
39
+ return false;
40
+ }
41
+
42
+ public function isParenthesis() {
43
+ return false;
44
+ }
45
+
46
+ public function isNoOp() {
47
+ return false;
48
+ }
49
+
50
+ public function render() {
51
+ return $this->value;
52
+ }
53
+ }
includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack PDF Invoices Report Tool class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.2.1
9
  * @author Algoritmika Ltd.
10
  */
@@ -28,7 +28,7 @@ class WCJ_PDF_Invoicing_Report_Tool {
28
  /**
29
  * generate_report_zip.
30
  *
31
- * @version 2.4.8
32
  * @since 2.3.10
33
  */
34
  function generate_report_zip() {
@@ -37,7 +37,7 @@ class WCJ_PDF_Invoicing_Report_Tool {
37
  $this->notice = '<div class="error"><p><strong>' . __( 'This option is disabled in WooCommerce > Settings > Booster > Emails & Misc. > General > Advanced Options > Disable Saving PDFs in PHP directory for temporary files', 'woocommerce-jetpack' ) . '</strong></p></div>';
38
  } else {
39
  if ( ! empty( $_POST['report_year'] ) && ! empty( $_POST['report_month'] ) && ! empty( $_POST['invoice_type'] ) ) {
40
- if ( is_super_admin() || is_shop_manager() ) {
41
  if ( false === $this->get_invoices_report_zip( $_POST['report_year'], $_POST['report_month'], $_POST['invoice_type'] ) ) {
42
  $this->notice = '<div class="error"><p><strong>' . __( 'Sorry, but something went wrong...', 'woocommerce-jetpack' ) . '</strong></p></div>';
43
  }
4
  *
5
  * The WooCommerce Jetpack PDF Invoices Report Tool class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.2.1
9
  * @author Algoritmika Ltd.
10
  */
28
  /**
29
  * generate_report_zip.
30
  *
31
+ * @version 2.5.0
32
  * @since 2.3.10
33
  */
34
  function generate_report_zip() {
37
  $this->notice = '<div class="error"><p><strong>' . __( 'This option is disabled in WooCommerce > Settings > Booster > Emails & Misc. > General > Advanced Options > Disable Saving PDFs in PHP directory for temporary files', 'woocommerce-jetpack' ) . '</strong></p></div>';
38
  } else {
39
  if ( ! empty( $_POST['report_year'] ) && ! empty( $_POST['report_month'] ) && ! empty( $_POST['invoice_type'] ) ) {
40
+ if ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) {
41
  if ( false === $this->get_invoices_report_zip( $_POST['report_year'], $_POST['report_month'], $_POST['invoice_type'] ) ) {
42
  $this->notice = '<div class="error"><p><strong>' . __( 'Sorry, but something went wrong...', 'woocommerce-jetpack' ) . '</strong></p></div>';
43
  }
includes/price-by-country/class-wcj-price-by-country-core.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Price by Country Core class.
6
  *
7
- * @version 2.4.5
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -25,88 +25,89 @@ class WCJ_Price_by_Country_Core {
25
  /**
26
  * add_hooks.
27
  *
28
- * @version 2.4.0
29
  */
30
  function add_hooks() {
31
 
32
- if ( 'by_user_selection' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' ) ) {
33
-
 
 
34
  if ( ! session_id() ) {
35
  session_start();
36
  }
37
-
38
  if ( isset( $_REQUEST[ 'wcj-country' ] ) ) {
39
  $_SESSION[ 'wcj-country' ] = $_REQUEST[ 'wcj-country' ];
40
  }
 
 
 
 
 
41
  }
42
 
43
- //if ( ) { // TODO
44
-
45
- // Price hooks
46
- // add_filter( 'woocommerce_variation_prices', array( $this, 'change_price_by_country_variations' ), PHP_INT_MAX - 1, 2 );
47
- add_filter( 'woocommerce_get_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
48
- add_filter( 'woocommerce_get_sale_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
49
- add_filter( 'woocommerce_get_regular_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
50
- // add_filter( 'woocommerce_get_variation_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX, 2 );
51
- // add_filter( 'woocommerce_get_variation_sale_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX, 2 );
52
- // add_filter( 'woocommerce_get_variation_regular_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX, 2 );
53
- // add_filter( 'booking_form_calculated_booking_cost', array( $this, 'change_price_by_country' ), PHP_INT_MAX );
54
- // add_filter( 'woocommerce_get_price_html', array( $this, 'fix_variable_product_price_on_sale' ), 10 , 2 );
55
-
56
- // Currency hooks
57
- add_filter( 'woocommerce_currency_symbol', array( $this, 'change_currency_symbol' ), PHP_INT_MAX - 1, 2 );
58
- add_filter( 'woocommerce_currency', array( $this, 'change_currency_code' ), PHP_INT_MAX - 1, 1 );
59
-
60
- // Shipping
61
- add_filter( 'woocommerce_package_rates', array( $this, 'change_shipping_price_by_country' ), PHP_INT_MAX - 1, 2 );
62
-
63
- // Variable products
64
- add_filter( 'woocommerce_variation_prices_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
65
- add_filter( 'woocommerce_variation_prices_regular_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
66
- add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
67
- add_filter( 'woocommerce_get_variation_prices_hash', array( $this, 'get_variation_prices_hash' ), PHP_INT_MAX - 1, 3 );
68
- //}
69
-
70
- // Country selection box
71
- /* if ( 'by_user_selection' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' ) ) {
72
- add_filter( 'woocommerce_get_price_html', array( $this, 'add_country_selection_box' ), PHP_INT_MAX, 2 );
73
- } */
74
-
75
- // Debug
76
- // add_shortcode( 'wcj_debug_price_by_country', array( $this, 'get_debug_info' ) );
77
- }
78
-
79
- /**
80
- * add_country_selection_box.
81
- *
82
- function add_country_selection_box( $price_html, $_product ) {
83
- $html = '';
84
-
85
- $form_method = get_option( 'wcj_price_by_country_country_selection_box_method', 'get' );
86
- $select_class = get_option( 'wcj_price_by_country_country_selection_box_class', '' );
87
- $select_style = get_option( 'wcj_price_by_country_country_selection_box_style', '' );
88
 
89
- $html .= '<form action="" method="' . $form_method . '">';
 
 
 
 
90
 
91
- $html .= '<select name="wcj-country" id="wcj-country" style="' . $select_style . '" class="' . $select_class . '" onchange="this.form.submit()">';
92
- $countries = wcj_get_countries();
 
93
 
94
- /* if ( 'get' == $form_method ) {
95
- $selected_country = ( isset( $_GET[ 'wcj-country' ] ) ) ? $_GET[ 'wcj-country' ] : '';
96
- } else {
97
- $selected_country = ( isset( $_POST[ 'wcj-country' ] ) ) ? $_POST[ 'wcj-country' ] : '';
98
- } *//*
99
- $selected_country = ( isset( $_REQUEST[ 'wcj-country' ] ) ) ? $_REQUEST[ 'wcj-country' ] : '';
100
 
101
- foreach ( $countries as $country_code => $country_name ) {
 
 
102
 
103
- $html .= '<option value="' . $country_code . '" ' . selected( $country_code, $selected_country, false ) . '>' . $country_name . '</option>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  }
105
- $html .= '</select>';
106
-
107
- $html .= '</form>';
108
 
109
- return $price_html . $html;
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  }
111
 
112
  /**
@@ -115,9 +116,7 @@ class WCJ_Price_by_Country_Core {
115
  * @version 2.4.4
116
  */
117
  function change_shipping_price_by_country( $package_rates, $package ) {
118
-
119
  if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
120
-
121
  $country_exchange_rate = get_option( 'wcj_price_by_country_exchange_rate_group_' . $group_id, 1 );
122
  $modified_package_rates = array();
123
  foreach ( $package_rates as $id => $package_rate ) {
@@ -132,118 +131,40 @@ class WCJ_Price_by_Country_Core {
132
  $modified_package_rates[ $id ] = $package_rate;
133
  }
134
  return $modified_package_rates;
135
-
136
  } else {
137
  return $package_rates;
138
  }
139
  }
140
 
141
- /**
142
- * get_debug_info.
143
- *
144
- function get_debug_info( $args ) {
145
- $html = '';
146
- if ( 'yes' === get_option( 'wcj_price_by_country_local_enabled' ) ) {
147
- $html .= '<p>';
148
- $html .= __( 'Price by Country on per Product Basis is enabled.', 'woocommerce-jetpack' );
149
- $html .= '</p>';
150
- }
151
-
152
- $data = array();
153
- $data[] = array( '#', __( 'Countries', 'woocommerce-jetpack' ), __( 'Focus Country', 'woocommerce-jetpack' ), __( 'Regular Price', 'woocommerce-jetpack' ), __( 'Sale Price', 'woocommerce-jetpack' ) );
154
- global $product;
155
- for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_price_by_country_total_groups_number', 1 ) ); $i++ ) {
156
-
157
- $row = array();
158
-
159
- $row[] = $i;
160
-
161
- $country_exchange_rate_group = get_option( 'wcj_price_by_country_exchange_rate_countries_group_' . $i );
162
- $country_exchange_rate_group = str_replace( ' ', '', $country_exchange_rate_group );
163
- $row[] = $country_exchange_rate_group;
164
-
165
- $country_exchange_rate_group = explode( ',', $country_exchange_rate_group );
166
- $_GET['country'] = $country_exchange_rate_group[0];
167
- $row[] = $country_exchange_rate_group[0];
168
- $currency_code = wcj_get_currency_symbol( get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $i ) );
169
- $row[] = $product->get_regular_price() . ' ' . $currency_code;
170
- $row[] = $product->get_sale_price() . ' ' . $currency_code;
171
-
172
- $data[] = $row;
173
- }
174
- //$html .= wcj_get_table_html( $data, '', false );
175
- $html = wcj_get_table_html( $data, array( 'table_heading_type' => 'vertical', ) );
176
- return $html;
177
- }
178
-
179
- /**
180
- * fix_variable_product_price_on_sale.
181
- *
182
- public function fix_variable_product_price_on_sale( $price, $product ) {
183
- if ( $product->is_type( 'variable' ) ) {
184
- if ( ! $product->is_on_sale() ) {
185
- $start_position = strpos( $price, '<del>' );
186
- $length = strpos( $price, '</del>' ) - $start_position;
187
- // Fixing the price, i.e. removing the sale tags
188
- return substr_replace( $price, '', $start_position, $length );
189
- }
190
- }
191
- // No changes
192
- return $price;
193
- }
194
-
195
  /**
196
  * get_customer_country_group_id.
197
  *
198
- * @version 2.4.4
199
  */
200
  public function get_customer_country_group_id() {
201
 
202
  // We already know the group - nothing to calculate - return group
203
- // if ( null != $this->customer_country_group_id && $this->customer_country_group_id > 0 )
204
- // return $this->customer_country_group_id;
205
-
206
- // We've already tried - no country was detected, no need to try again
207
- /* if ( -1 === $this->customer_country_group_id )
208
- return null; */
209
-
210
- if ( isset( $_GET['country'] ) && '' != $_GET['country'] && is_super_admin() ) {
211
 
 
 
212
  $country = $_GET['country'];
213
-
214
  } elseif ( 'yes' === get_option( 'wcj_price_by_country_override_on_checkout_with_billing_country', 'no' )
215
  /* && is_checkout() */
216
  && '' != WC()->customer->get_country()
217
  ) {
218
-
219
  $country = WC()->customer->get_country();
220
-
221
  } else {
222
-
223
  if ( 'by_ip' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' ) ) {
224
-
225
- // Get the country by IP
226
- $location = WC_Geolocation::geolocate_ip();
227
- // Base fallback
228
- if ( empty( $location['country'] ) ) {
229
- $location = wc_format_country_state_string( apply_filters( 'woocommerce_customer_default_location', get_option( 'woocommerce_default_country' ) ) );
230
- }
231
- $country = ( isset( $location['country'] ) ) ? $location['country'] : null;
232
-
233
  } elseif ( 'by_user_selection' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' ) ) {
234
-
235
- /* $form_method = get_option( 'wcj_price_by_country_country_selection_box_method', 'get' );
236
- if ( 'get' == $form_method ) {
237
- $country = ( isset( $_GET[ 'wcj-country' ] ) ) ? $_GET[ 'wcj-country' ] : null;
238
- } else {
239
- $country = ( isset( $_POST[ 'wcj-country' ] ) ) ? $_POST[ 'wcj-country' ] : null;
240
- } */
241
  $country = ( isset( $_SESSION[ 'wcj-country' ] ) ) ? $_SESSION[ 'wcj-country' ] : null;
242
-
243
  } elseif ( 'by_wpml' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' ) ) {
244
-
245
  $country = ( defined( 'ICL_LANGUAGE_CODE' ) ) ? ICL_LANGUAGE_CODE : null;
246
-
247
  }
248
  }
249
 
@@ -267,9 +188,8 @@ class WCJ_Price_by_Country_Core {
267
  $country_exchange_rate_group = get_option( 'wcj_price_by_country_countries_group_chosen_select_' . $i );
268
  break;
269
  }
270
- if ( in_array( $country, $country_exchange_rate_group ) ) {
271
  $this->customer_country_group_id = $i;
272
- //wcj_log( 'customer_country_group_id=' . $this->customer_country_group_id );
273
  return $i;
274
  }
275
  }
@@ -285,8 +205,9 @@ class WCJ_Price_by_Country_Core {
285
  public function change_currency_symbol( $currency_symbol, $currency ) {
286
  if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
287
  $country_currency_code = get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $group_id );
288
- if ( '' != $country_currency_code )
289
  return wcj_get_currency_symbol( $country_currency_code );
 
290
  }
291
  return $currency_symbol;
292
  }
@@ -297,48 +218,49 @@ class WCJ_Price_by_Country_Core {
297
  public function change_currency_code( $currency ) {
298
  if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
299
  $country_currency_code = get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $group_id );
300
- if ( '' != $country_currency_code )
301
  return $country_currency_code;
 
302
  }
303
  return $currency;
304
  }
305
 
306
- /**
307
- * change_price_by_country_variations.
308
- *
309
- * @version 2.3.0
310
- * @since 2.3.0
311
- */
312
- /* public function change_price_by_country_variations( $prices_array, $product ) {
313
- $modified_prices_array = $prices_array;
314
- foreach ( $prices_array as $price_type => $prices ) {
315
- foreach ( $prices as $variation_id => $price ) {
316
- $modified_prices_array[ $price_type ][ $variation_id ] = $this->change_price_by_country( $price, $variation_id );
317
- }
318
- }
319
- return $modified_prices_array;
320
- } */
321
-
322
  /**
323
  * get_variation_prices_hash.
324
  *
325
- * @version 2.4.3
326
  * @since 2.4.3
327
  */
328
  function get_variation_prices_hash( $price_hash, $_product, $display ) {
329
- $price_hash['wcj_country_group_id'] = $this->get_customer_country_group_id();
 
 
 
 
 
 
 
 
 
 
 
 
 
330
  return $price_hash;
331
  }
332
 
333
  /**
334
  * change_price_by_country.
335
  *
336
- * @version 2.4.5
337
  */
338
- public function change_price_by_country( $price, $product ) {
339
 
340
- if ( is_numeric( $product ) ) $the_product_id = $product;
341
- else $the_product_id = ( isset( $product->variation_id ) ) ? $product->variation_id : $product->id;
 
 
 
342
 
343
  if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
344
 
@@ -355,7 +277,13 @@ class WCJ_Price_by_Country_Core {
355
  }
356
 
357
  $price_by_country = '';
358
- if ( 'woocommerce_get_price' == current_filter() || 'woocommerce_variation_prices_price' == current_filter() ) {
 
 
 
 
 
 
359
 
360
  $regular_or_sale = '_regular_price_';
361
  $meta_id = '_' . 'wcj_' . $meta_box_id . $regular_or_sale . $scope . '_' . $group_id;
@@ -365,20 +293,21 @@ class WCJ_Price_by_Country_Core {
365
  $meta_id = '_' . 'wcj_' . $meta_box_id . $regular_or_sale . $scope . '_' . $group_id;
366
  $sale_price = get_post_meta( $the_product_id, $meta_id, true );
367
 
368
- if ( ! empty( $sale_price ) && $sale_price < $regular_price )
369
  $price_by_country = $sale_price;
370
- else
371
  $price_by_country = $regular_price;
 
372
 
373
  }
374
  elseif (
375
- 'woocommerce_get_regular_price' == current_filter() ||
376
- 'woocommerce_get_sale_price' == current_filter() ||
377
- 'woocommerce_variation_prices_regular_price' == current_filter() ||
378
- 'woocommerce_variation_prices_sale_price' == current_filter()
379
  ) {
380
  $regular_or_sale = (
381
- 'woocommerce_get_regular_price' == current_filter() || 'woocommerce_variation_prices_regular_price' == current_filter()
382
  ) ? '_regular_price_' : '_sale_price_';
383
  $meta_id = '_' . 'wcj_' . $meta_box_id . $regular_or_sale . $scope . '_' . $group_id;
384
  $price_by_country = get_post_meta( $the_product_id, $meta_id, true );
@@ -401,24 +330,28 @@ class WCJ_Price_by_Country_Core {
401
  $country_exchange_rate = get_option( 'wcj_price_by_country_exchange_rate_group_' . $group_id, 1 );
402
  if ( 1 != $country_exchange_rate ) {
403
  $modified_price = $price * $country_exchange_rate;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
404
  $is_price_modified = true;
405
  }
406
  }
407
 
408
  if ( $is_price_modified ) {
409
- $rounding = get_option( 'wcj_price_by_country_rounding', 'none' );
410
- $precision = get_option( 'woocommerce_price_num_decimals', 2 );
411
- switch ( $rounding ) {
412
- case 'none':
413
- //return ( $modified_price );
414
- return round( $modified_price, $precision );
415
- case 'round':
416
- return round( $modified_price );
417
- case 'floor':
418
- return floor( $modified_price );
419
- case 'ceil':
420
- return ceil( $modified_price );
421
- }
422
  }
423
  }
424
  // No changes
4
  *
5
  * The WooCommerce Jetpack Price by Country Core class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
25
  /**
26
  * add_hooks.
27
  *
28
+ * @version 2.5.0
29
  */
30
  function add_hooks() {
31
 
32
+ if (
33
+ 'by_user_selection' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' ) ||
34
+ 'by_ip_then_by_user_selection' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' )
35
+ ) {
36
  if ( ! session_id() ) {
37
  session_start();
38
  }
 
39
  if ( isset( $_REQUEST[ 'wcj-country' ] ) ) {
40
  $_SESSION[ 'wcj-country' ] = $_REQUEST[ 'wcj-country' ];
41
  }
42
+ if ( ! isset( $_SESSION[ 'wcj-country' ] ) && 'by_ip_then_by_user_selection' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' ) ) {
43
+ if ( null != ( $country = $this->get_customer_country_by_ip() ) ) {
44
+ $_SESSION[ 'wcj-country' ] = $country;
45
+ }
46
+ }
47
  }
48
 
49
+ // Price hooks
50
+ add_filter( 'woocommerce_get_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
51
+ add_filter( 'woocommerce_get_sale_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
52
+ add_filter( 'woocommerce_get_regular_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
 
54
+ // Variable products
55
+ add_filter( 'woocommerce_variation_prices_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
56
+ add_filter( 'woocommerce_variation_prices_regular_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
57
+ add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
58
+ add_filter( 'woocommerce_get_variation_prices_hash', array( $this, 'get_variation_prices_hash' ), PHP_INT_MAX - 1, 3 );
59
 
60
+ // Grouped products
61
+ add_filter( 'woocommerce_get_price_including_tax', array( $this, 'change_price_by_country_grouped' ), PHP_INT_MAX - 1, 3 );
62
+ add_filter( 'woocommerce_get_price_excluding_tax', array( $this, 'change_price_by_country_grouped' ), PHP_INT_MAX - 1, 3 );
63
 
64
+ // Currency hooks
65
+ add_filter( 'woocommerce_currency_symbol', array( $this, 'change_currency_symbol' ), PHP_INT_MAX - 1, 2 );
66
+ add_filter( 'woocommerce_currency', array( $this, 'change_currency_code' ), PHP_INT_MAX - 1, 1 );
 
 
 
67
 
68
+ // Shipping
69
+ add_filter( 'woocommerce_package_rates', array( $this, 'change_shipping_price_by_country' ), PHP_INT_MAX - 1, 2 );
70
+ }
71
 
72
+ /**
73
+ * change_price_by_country_grouped.
74
+ *
75
+ * @version 2.5.0
76
+ * @since 2.5.0
77
+ */
78
+ function change_price_by_country_grouped( $price, $qty, $_product ) {
79
+ if ( $_product->is_type( 'grouped' ) ) {
80
+ if ( 'yes' === get_option( 'wcj_price_by_country_local_enabled' ) ) {
81
+ $get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
82
+ foreach ( $_product->get_children() as $child_id ) {
83
+ $the_price = get_post_meta( $child_id, '_price', true );
84
+ $the_product = wc_get_product( $child_id );
85
+ $the_price = $the_product->$get_price_method( 1, $the_price );
86
+ if ( $the_price == $price ) {
87
+ return $this->change_price_by_country( $price, $child_id );
88
+ }
89
+ }
90
+ } else {
91
+ return $this->change_price_by_country( $price, 0 );
92
+ }
93
  }
94
+ return $price;
95
+ }
 
96
 
97
+ /**
98
+ * get_customer_country_by_ip.
99
+ *
100
+ * @version 2.5.0
101
+ * @since 2.5.0
102
+ */
103
+ function get_customer_country_by_ip() {
104
+ // Get the country by IP
105
+ $location = WC_Geolocation::geolocate_ip();
106
+ // Base fallback
107
+ if ( empty( $location['country'] ) ) {
108
+ $location = wc_format_country_state_string( apply_filters( 'woocommerce_customer_default_location', get_option( 'woocommerce_default_country' ) ) );
109
+ }
110
+ return ( isset( $location['country'] ) ) ? $location['country'] : null;
111
  }
112
 
113
  /**
116
  * @version 2.4.4
117
  */
118
  function change_shipping_price_by_country( $package_rates, $package ) {
 
119
  if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
 
120
  $country_exchange_rate = get_option( 'wcj_price_by_country_exchange_rate_group_' . $group_id, 1 );
121
  $modified_package_rates = array();
122
  foreach ( $package_rates as $id => $package_rate ) {
131
  $modified_package_rates[ $id ] = $package_rate;
132
  }
133
  return $modified_package_rates;
 
134
  } else {
135
  return $package_rates;
136
  }
137
  }
138
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  /**
140
  * get_customer_country_group_id.
141
  *
142
+ * @version 2.5.0
143
  */
144
  public function get_customer_country_group_id() {
145
 
146
  // We already know the group - nothing to calculate - return group
147
+ if ( null != $this->customer_country_group_id && $this->customer_country_group_id > 0 ) {
148
+ return $this->customer_country_group_id;
149
+ }
 
 
 
 
 
150
 
151
+ // Get the country
152
+ if ( isset( $_GET['country'] ) && '' != $_GET['country'] && wcj_is_user_role( 'administrator' ) ) {
153
  $country = $_GET['country'];
 
154
  } elseif ( 'yes' === get_option( 'wcj_price_by_country_override_on_checkout_with_billing_country', 'no' )
155
  /* && is_checkout() */
156
  && '' != WC()->customer->get_country()
157
  ) {
 
158
  $country = WC()->customer->get_country();
 
159
  } else {
 
160
  if ( 'by_ip' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' ) ) {
161
+ $country = $this->get_customer_country_by_ip();
162
+ } elseif ( 'by_ip_then_by_user_selection' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' ) ) {
163
+ $country = ( isset( $_SESSION[ 'wcj-country' ] ) ) ? $_SESSION[ 'wcj-country' ] : $this->get_customer_country_by_ip();
 
 
 
 
 
 
164
  } elseif ( 'by_user_selection' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' ) ) {
 
 
 
 
 
 
 
165
  $country = ( isset( $_SESSION[ 'wcj-country' ] ) ) ? $_SESSION[ 'wcj-country' ] : null;
 
166
  } elseif ( 'by_wpml' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' ) ) {
 
167
  $country = ( defined( 'ICL_LANGUAGE_CODE' ) ) ? ICL_LANGUAGE_CODE : null;
 
168
  }
169
  }
170
 
188
  $country_exchange_rate_group = get_option( 'wcj_price_by_country_countries_group_chosen_select_' . $i );
189
  break;
190
  }
191
+ if ( is_array( $country_exchange_rate_group ) && in_array( $country, $country_exchange_rate_group ) ) {
192
  $this->customer_country_group_id = $i;
 
193
  return $i;
194
  }
195
  }
205
  public function change_currency_symbol( $currency_symbol, $currency ) {
206
  if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
207
  $country_currency_code = get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $group_id );
208
+ if ( '' != $country_currency_code ) {
209
  return wcj_get_currency_symbol( $country_currency_code );
210
+ }
211
  }
212
  return $currency_symbol;
213
  }
218
  public function change_currency_code( $currency ) {
219
  if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
220
  $country_currency_code = get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $group_id );
221
+ if ( '' != $country_currency_code ) {
222
  return $country_currency_code;
223
+ }
224
  }
225
  return $currency;
226
  }
227
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  /**
229
  * get_variation_prices_hash.
230
  *
231
+ * @version 2.5.0
232
  * @since 2.4.3
233
  */
234
  function get_variation_prices_hash( $price_hash, $_product, $display ) {
235
+ $group_id = $this->get_customer_country_group_id();
236
+ $price_hash['wcj_price_by_country_group_id_data'] = array(
237
+ $group_id,
238
+ get_option( 'wcj_price_by_country_rounding' ),
239
+ get_option( 'wcj_price_by_country_local_enabled' ),
240
+ // get_option( 'wcj_price_by_country_selection' ),
241
+ // get_option( 'wcj_price_by_country_total_groups_number' ),
242
+ // get_option( 'wcj_price_by_country_exchange_rate_countries_group_' . $group_id ),
243
+ // get_option( 'wcj_price_by_country_countries_group_' . $group_id ),
244
+ // get_option( 'wcj_price_by_country_countries_group_chosen_select_' . $group_id ),
245
+ get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $group_id ),
246
+ get_option( 'wcj_price_by_country_exchange_rate_group_' . $group_id, 1 ),
247
+ get_option( 'wcj_price_by_country_make_empty_price_group_' . $group_id, 'no' ),
248
+ );
249
  return $price_hash;
250
  }
251
 
252
  /**
253
  * change_price_by_country.
254
  *
255
+ * @version 2.5.0
256
  */
257
+ function change_price_by_country( $price, $product ) {
258
 
259
+ if ( is_numeric( $product ) ) {
260
+ $the_product_id = $product;
261
+ } else {
262
+ $the_product_id = ( isset( $product->variation_id ) ) ? $product->variation_id : $product->id;
263
+ }
264
 
265
  if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
266
 
277
  }
278
 
279
  $price_by_country = '';
280
+ $the_current_filter = current_filter();
281
+ if ( 'woocommerce_get_price_including_tax' == $the_current_filter || 'woocommerce_get_price_excluding_tax' == $the_current_filter ) {
282
+ $_product = wc_get_product( $the_product_id );
283
+ $get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
284
+ return $_product->$get_price_method();
285
+
286
+ } elseif ( 'woocommerce_get_price' == $the_current_filter || 'woocommerce_variation_prices_price' == $the_current_filter ) {
287
 
288
  $regular_or_sale = '_regular_price_';
289
  $meta_id = '_' . 'wcj_' . $meta_box_id . $regular_or_sale . $scope . '_' . $group_id;
293
  $meta_id = '_' . 'wcj_' . $meta_box_id . $regular_or_sale . $scope . '_' . $group_id;
294
  $sale_price = get_post_meta( $the_product_id, $meta_id, true );
295
 
296
+ if ( ! empty( $sale_price ) && $sale_price < $regular_price ) {
297
  $price_by_country = $sale_price;
298
+ } else {
299
  $price_by_country = $regular_price;
300
+ }
301
 
302
  }
303
  elseif (
304
+ 'woocommerce_get_regular_price' == $the_current_filter ||
305
+ 'woocommerce_get_sale_price' == $the_current_filter ||
306
+ 'woocommerce_variation_prices_regular_price' == $the_current_filter ||
307
+ 'woocommerce_variation_prices_sale_price' == $the_current_filter
308
  ) {
309
  $regular_or_sale = (
310
+ 'woocommerce_get_regular_price' == $the_current_filter || 'woocommerce_variation_prices_regular_price' == $the_current_filter
311
  ) ? '_regular_price_' : '_sale_price_';
312
  $meta_id = '_' . 'wcj_' . $meta_box_id . $regular_or_sale . $scope . '_' . $group_id;
313
  $price_by_country = get_post_meta( $the_product_id, $meta_id, true );
330
  $country_exchange_rate = get_option( 'wcj_price_by_country_exchange_rate_group_' . $group_id, 1 );
331
  if ( 1 != $country_exchange_rate ) {
332
  $modified_price = $price * $country_exchange_rate;
333
+ $rounding = get_option( 'wcj_price_by_country_rounding', 'none' );
334
+ $precision = get_option( 'woocommerce_price_num_decimals', 2 );
335
+ switch ( $rounding ) {
336
+ case 'round':
337
+ $modified_price = round( $modified_price );
338
+ break;
339
+ case 'floor':
340
+ $modified_price = floor( $modified_price );
341
+ break;
342
+ case 'ceil':
343
+ $modified_price = ceil( $modified_price );
344
+ break;
345
+ default: // case 'none':
346
+ $modified_price = round( $modified_price, $precision ); // $modified_price
347
+ break;
348
+ }
349
  $is_price_modified = true;
350
  }
351
  }
352
 
353
  if ( $is_price_modified ) {
354
+ return $modified_price;
 
 
 
 
 
 
 
 
 
 
 
 
355
  }
356
  }
357
  // No changes
includes/price-by-country/class-wcj-price-by-country-group-generator.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Price By Country Group Generator class.
6
  *
7
- * @version 2.4.4
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -63,7 +63,7 @@ class WCJ_Price_By_Country_Group_Generator {
63
  /**
64
  * create_all_countries_groups.
65
  *
66
- * @version 2.4.4
67
  */
68
  function create_all_countries_groups() {
69
  global $wcj_notice;
@@ -73,7 +73,7 @@ class WCJ_Price_By_Country_Group_Generator {
73
  if ( isset( $_POST['save'] ) ) {
74
  return;
75
  }
76
- if ( /* ! is_admin() || */ ! is_super_admin() || 1 === apply_filters( 'wcj_get_option_filter', 1, '' ) ) {
77
  $wcj_notice = __( 'Create All Country Groups Failed.', 'woocommerce-jetpack' );
78
  return;
79
  }
4
  *
5
  * The WooCommerce Jetpack Price By Country Group Generator class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
63
  /**
64
  * create_all_countries_groups.
65
  *
66
+ * @version 2.5.0
67
  */
68
  function create_all_countries_groups() {
69
  global $wcj_notice;
73
  if ( isset( $_POST['save'] ) ) {
74
  return;
75
  }
76
+ if ( /* ! is_admin() || */ ! wcj_is_user_role( 'administrator' ) || 1 === apply_filters( 'wcj_get_option_filter', 1, '' ) ) {
77
  $wcj_notice = __( 'Create All Country Groups Failed.', 'woocommerce-jetpack' );
78
  return;
79
  }
includes/reports/wcj-class-reports-stock.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Stock Reports class.
6
  *
7
- * @version 2.3.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -94,24 +94,23 @@ class WCJ_Reports_Stock {
94
  /*
95
  * gather_products_data.
96
  *
97
- * @version 2.3.0
98
  */
99
  public function gather_products_data( &$products_info ) {
100
 
101
- //return array();
102
-
103
- $args = array(
104
- 'post_type' => 'product',
105
- 'posts_per_page' => -1,
106
- );
107
-
108
- $loop = new WP_Query( $args );
109
- if ( $loop->have_posts() ) {
110
-
111
  while ( $loop->have_posts() ) : $loop->the_post();
112
 
113
  $the_ID = get_the_ID();
114
- //$the_product = new WC_Product( $the_ID );
115
  $the_product = wc_get_product( $the_ID );
116
  $the_price = $the_product->get_price();
117
  $the_stock = $the_product->get_total_stock();
@@ -134,30 +133,31 @@ class WCJ_Reports_Stock {
134
  $sales_in_day_range[ $the_range ] = 0;
135
 
136
  $products_info[$the_ID] = array(
137
- 'ID' => $the_ID,
138
- 'title' => $the_title,
139
- 'category' => $the_categories,
140
- 'permalink' => $the_permalink,
141
- 'price' => $the_price,
142
- 'stock' => $the_stock,
143
- 'stock_price' => $the_price * $the_stock,
144
- 'total_sales' => $total_sales,
145
- 'date_added' => $the_date,
146
-
147
- 'purchase_price' => $purchase_price,
148
-
149
- 'last_sale' => 0,
150
- 'sales_in_period' => $sales_in_day_range,
151
  );
152
 
153
  endwhile;
 
154
  }
155
  }
156
 
157
  /*
158
  * gather_orders_data.
159
  *
160
- * @version 2.3.0
161
  */
162
  function gather_orders_data( &$products_info ) {
163
 
@@ -206,6 +206,23 @@ class WCJ_Reports_Stock {
206
 
207
  //foreach ( $products_info_sales_in_period as $the_period => $the_value ) {
208
  //if ( $order_age < ( $the_period * $one_day_seconds ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
209
  $products_info[ $item['product_id'] ]['sales_in_period'][ $the_period ] += $item['qty'];
210
  //}
211
  //}
4
  *
5
  * The WooCommerce Jetpack Stock Reports class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
94
  /*
95
  * gather_products_data.
96
  *
97
+ * @version 2.5.0
98
  */
99
  public function gather_products_data( &$products_info ) {
100
 
101
+ $offset = 0;
102
+ $block_size = 96;
103
+ while( true ) {
104
+ $args = array(
105
+ 'post_type' => 'product',
106
+ 'posts_per_page' => $block_size,
107
+ 'offset' => $offset,
108
+ );
109
+ $loop = new WP_Query( $args );
110
+ if ( ! $loop->have_posts() ) break;
111
  while ( $loop->have_posts() ) : $loop->the_post();
112
 
113
  $the_ID = get_the_ID();
 
114
  $the_product = wc_get_product( $the_ID );
115
  $the_price = $the_product->get_price();
116
  $the_stock = $the_product->get_total_stock();
133
  $sales_in_day_range[ $the_range ] = 0;
134
 
135
  $products_info[$the_ID] = array(
136
+ 'ID' => $the_ID,
137
+ 'title' => $the_title,
138
+ 'category' => $the_categories,
139
+ 'permalink' => $the_permalink,
140
+ 'price' => $the_price,
141
+ 'stock' => $the_stock,
142
+ 'stock_price' => $the_price * $the_stock,
143
+ 'total_sales' => $total_sales,
144
+ 'date_added' => $the_date,
145
+
146
+ 'purchase_price' => $purchase_price,
147
+
148
+ 'last_sale' => 0,
149
+ 'sales_in_period' => $sales_in_day_range,
150
  );
151
 
152
  endwhile;
153
+ $offset += $block_size;
154
  }
155
  }
156
 
157
  /*
158
  * gather_orders_data.
159
  *
160
+ * @version 2.5.0
161
  */
162
  function gather_orders_data( &$products_info ) {
163
 
206
 
207
  //foreach ( $products_info_sales_in_period as $the_period => $the_value ) {
208
  //if ( $order_age < ( $the_period * $one_day_seconds ) ) {
209
+ if ( ! isset( $products_info[ $item['product_id'] ] ) ) {
210
+ // Deleted product
211
+ $products_info[ $item['product_id'] ] = array(
212
+ 'ID' => $item['product_id'],
213
+ 'title' => $item['name'] . ' (' . __( 'deleted', 'woocommerce-jetpack' ) . ')',
214
+ 'category' => '',
215
+ 'permalink' => '',
216
+ 'price' => '',
217
+ 'stock' => '',
218
+ 'stock_price' => '',
219
+ 'total_sales' => '',
220
+ 'date_added' => '',
221
+ 'purchase_price' => '',
222
+ 'last_sale' => 0,
223
+ 'sales_in_period' => array( $the_period => 0 ),
224
+ );
225
+ }
226
  $products_info[ $item['product_id'] ]['sales_in_period'][ $the_period ] += $item['qty'];
227
  //}
228
  //}
includes/shortcodes/class-wcj-general-shortcodes.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack General Shortcodes class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -79,32 +79,35 @@ class WCJ_General_Shortcodes extends WCJ_Shortcodes {
79
  }
80
 
81
  /**
82
- * wcj_wholesale_price_table.
83
  *
84
- * @version 2.4.8
85
  * @since 2.4.8
86
  */
87
  function wcj_wholesale_price_table( $atts ) {
88
 
 
 
 
 
89
  $wholesale_price_levels = array();
90
  for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_wholesale_price_levels_number', 1 ) ); $i++ ) {
91
- $level_qty = get_option( 'wcj_wholesale_price_level_min_qty_' . $i, PHP_INT_MAX );
92
- $discount_percent = get_option( 'wcj_wholesale_price_level_discount_percent_' . $i, 0 );
93
- $wholesale_price_levels[] = array( 'quantity' => $level_qty, 'discount_percent' => $discount_percent, );
94
  }
95
 
96
- $data_qty = array();
97
- $data_discount_percent = array();
 
98
  foreach ( $wholesale_price_levels as $wholesale_price_level ) {
99
  $data_qty[] = str_replace( '%level_qty%', $wholesale_price_level['quantity'], $atts['heading_format'] ) ;
100
- $data_discount_percent[] = '-' . $wholesale_price_level['discount_percent'] . '%';
 
 
101
  }
102
 
103
- $table_rows = array( $data_qty, $data_discount_percent, );
104
- $columns_styles = array();
105
- for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_wholesale_price_levels_number', 1 ) ); $i++ ) {
106
- $columns_styles[] = 'text-align: center;';
107
- }
108
  return wcj_get_table_html( $table_rows, array( 'columns_styles' => $columns_styles ) );
109
  }
110
 
4
  *
5
  * The WooCommerce Jetpack General Shortcodes class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
79
  }
80
 
81
  /**
82
+ * wcj_wholesale_price_table (global only).
83
  *
84
+ * @version 2.5.0
85
  * @since 2.4.8
86
  */
87
  function wcj_wholesale_price_table( $atts ) {
88
 
89
+ if ( ! wcj_is_module_enabled( 'wholesale_price' ) ) {
90
+ return '';
91
+ }
92
+
93
  $wholesale_price_levels = array();
94
  for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_wholesale_price_levels_number', 1 ) ); $i++ ) {
95
+ $level_qty = get_option( 'wcj_wholesale_price_level_min_qty_' . $i, PHP_INT_MAX );
96
+ $discount = get_option( 'wcj_wholesale_price_level_discount_percent_' . $i, 0 );
97
+ $wholesale_price_levels[] = array( 'quantity' => $level_qty, 'discount' => $discount, );
98
  }
99
 
100
+ $data_qty = array();
101
+ $data_discount = array();
102
+ $columns_styles = array();
103
  foreach ( $wholesale_price_levels as $wholesale_price_level ) {
104
  $data_qty[] = str_replace( '%level_qty%', $wholesale_price_level['quantity'], $atts['heading_format'] ) ;
105
+ $data_discount[] = ( 'fixed' === get_option( 'wcj_wholesale_price_discount_type', 'percent' ) )
106
+ ? '-' . wc_price( $wholesale_price_level['discount'] ) : '-' . $wholesale_price_level['discount'] . '%';
107
+ $columns_styles[] = 'text-align: center;';
108
  }
109
 
110
+ $table_rows = array( $data_qty, $data_discount, );
 
 
 
 
111
  return wcj_get_table_html( $table_rows, array( 'columns_styles' => $columns_styles ) );
112
  }
113
 
includes/shortcodes/class-wcj-order-items-shortcodes.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Order Items Shortcodes class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -28,6 +28,8 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
28
 
29
  /**
30
  * add_extra_atts.
 
 
31
  */
32
  function add_extra_atts( $atts ) {
33
  $modified_atts = array_merge( array(
@@ -43,6 +45,7 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
43
  'item_image_width' => 0,
44
  'item_image_height' => 0,
45
  'price_prefix' => '',
 
46
  ), $atts );
47
  return $modified_atts;
48
  }
@@ -126,7 +129,7 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
126
  /**
127
  * wcj_order_items_table.
128
  *
129
- * @version 2.4.8
130
  */
131
  function wcj_order_items_table( $atts, $content = '' ) {
132
 
@@ -189,6 +192,9 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
189
  $column = substr( $column, 0, $pos );
190
  }
191
  switch ( $column ) {
 
 
 
192
  case 'item_number':
193
  $data[ $item_counter ][] = $item_counter;
194
  break;
@@ -197,10 +203,12 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
197
  if ( true === $item['is_custom'] ) {
198
  $data[ $item_counter ][] = $item['name'];
199
  } else {
200
- $the_item_title = $the_product->get_title();
201
  // Variation (if needed)
202
- if ( $the_product->is_type( 'variation' ) && ! in_array( 'item_variation', $columns ) ) {
203
- $the_item_title .= '<div style="font-size:smaller;">' . wc_get_formatted_variation( $the_product->variation_data, true ) . '</div>';
 
 
204
  }
205
  $data[ $item_counter ][] = $the_item_title;
206
  }
@@ -235,11 +243,12 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
235
  }
236
  break;
237
  case 'item_variation':
238
- $data[ $item_counter ][] = ( $the_product->is_type( 'variation' ) ) ? wc_get_formatted_variation( $the_product->variation_data, true ) : '';
 
239
  break;
240
  case 'item_thumbnail':
241
  //$data[ $item_counter ][] = $the_product->get_image();
242
- $image_id = ( true === $item['is_custom'] ) ? 0 : $the_product->get_image_id();
243
  $image_src = ( 0 != $image_id ) ? wp_get_attachment_image_src( $image_id ) : wc_placeholder_img_src();
244
  if ( is_array( $image_src ) ) $image_src = $image_src[0];
245
  $maybe_width = ( 0 != $atts['item_image_width'] ) ? ' width="' . $atts['item_image_width'] . '"' : '';
@@ -247,7 +256,7 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
247
  $data[ $item_counter ][] = '<img src="' . $image_src . '"' . $maybe_width . $maybe_height . '>';
248
  break;
249
  case 'item_sku':
250
- $data[ $item_counter ][] = ( true === $item['is_custom'] ) ? '' : $the_product->get_sku();
251
  break;
252
  case 'item_quantity':
253
  $data[ $item_counter ][] = $item['qty'];
4
  *
5
  * The WooCommerce Jetpack Order Items Shortcodes class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
28
 
29
  /**
30
  * add_extra_atts.
31
+ *
32
+ * @version 2.5.0
33
  */
34
  function add_extra_atts( $atts ) {
35
  $modified_atts = array_merge( array(
45
  'item_image_width' => 0,
46
  'item_image_height' => 0,
47
  'price_prefix' => '',
48
+ 'style_item_name_variation' => 'font-size:smaller;',
49
  ), $atts );
50
  return $modified_atts;
51
  }
129
  /**
130
  * wcj_order_items_table.
131
  *
132
+ * @version 2.5.0
133
  */
134
  function wcj_order_items_table( $atts, $content = '' ) {
135
 
192
  $column = substr( $column, 0, $pos );
193
  }
194
  switch ( $column ) {
195
+ case 'debug':
196
+ $data[ $item_counter ][] = print_r( $item, true );
197
+ break;
198
  case 'item_number':
199
  $data[ $item_counter ][] = $item_counter;
200
  break;
203
  if ( true === $item['is_custom'] ) {
204
  $data[ $item_counter ][] = $item['name'];
205
  } else {
206
+ $the_item_title = $item['name'];//$the_product->get_title();
207
  // Variation (if needed)
208
+ if ( is_object( $the_product ) && $the_product->is_type( 'variation' ) && ! in_array( 'item_variation', $columns ) ) {
209
+ $the_item_title .= '<div style="' . $atts['style_item_name_variation'] . '">'
210
+ . str_replace( 'pa_', '', urldecode( wc_get_formatted_variation( $the_product->variation_data, true ) ) )
211
+ . '</div>';
212
  }
213
  $data[ $item_counter ][] = $the_item_title;
214
  }
243
  }
244
  break;
245
  case 'item_variation':
246
+ $data[ $item_counter ][] = ( is_object( $the_product ) && $the_product->is_type( 'variation' ) )
247
+ ? str_replace( 'pa_', '', urldecode( wc_get_formatted_variation( $the_product->variation_data, true ) ) ) : '';
248
  break;
249
  case 'item_thumbnail':
250
  //$data[ $item_counter ][] = $the_product->get_image();
251
+ $image_id = ( true === $item['is_custom'] || ! is_object( $the_product ) ) ? 0 : $the_product->get_image_id();
252
  $image_src = ( 0 != $image_id ) ? wp_get_attachment_image_src( $image_id ) : wc_placeholder_img_src();
253
  if ( is_array( $image_src ) ) $image_src = $image_src[0];
254
  $maybe_width = ( 0 != $atts['item_image_width'] ) ? ' width="' . $atts['item_image_width'] . '"' : '';
256
  $data[ $item_counter ][] = '<img src="' . $image_src . '"' . $maybe_width . $maybe_height . '>';
257
  break;
258
  case 'item_sku':
259
+ $data[ $item_counter ][] = ( true === $item['is_custom'] || ! is_object( $the_product ) ) ? '' : $the_product->get_sku();
260
  break;
261
  case 'item_quantity':
262
  $data[ $item_counter ][] = $item['qty'];
includes/shortcodes/class-wcj-orders-shortcodes.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Orders Shortcodes class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -70,7 +70,7 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
70
  /**
71
  * add_extra_atts.
72
  *
73
- * @version 2.4.0
74
  */
75
  function add_extra_atts( $atts ) {
76
  $modified_atts = array_merge( array(
@@ -86,6 +86,7 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
86
  'whole' => __( 'Dollars', 'woocommerce-jetpack' ),
87
  'decimal' => __( 'Cents', 'woocommerce-jetpack' ),
88
  'precision' => get_option( 'woocommerce_price_num_decimals', 2 ),
 
89
  ), $atts );
90
 
91
  return $modified_atts;
@@ -504,7 +505,7 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
504
  /**
505
  * wcj_order_total_in_words.
506
  *
507
- * @version 2.4.0
508
  */
509
  function wcj_order_total_in_words( $atts ) {
510
 
@@ -518,11 +519,16 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
518
  $dollars = $atts['whole'];
519
  $cents = $atts['decimal'];
520
 
521
- return sprintf( $the_number_in_words,
522
- ucfirst( convert_number_to_words( $order_total_whole ) ),
523
- $dollars,
524
- ucfirst( convert_number_to_words( $order_total_decimal ) ),
525
- $cents );
 
 
 
 
 
526
  }
527
  }
528
 
4
  *
5
  * The WooCommerce Jetpack Orders Shortcodes class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
70
  /**
71
  * add_extra_atts.
72
  *
73
+ * @version 2.5.0
74
  */
75
  function add_extra_atts( $atts ) {
76
  $modified_atts = array_merge( array(
86
  'whole' => __( 'Dollars', 'woocommerce-jetpack' ),
87
  'decimal' => __( 'Cents', 'woocommerce-jetpack' ),
88
  'precision' => get_option( 'woocommerce_price_num_decimals', 2 ),
89
+ 'lang' => 'EN',
90
  ), $atts );
91
 
92
  return $modified_atts;
505
  /**
506
  * wcj_order_total_in_words.
507
  *
508
+ * @version 2.5.0
509
  */
510
  function wcj_order_total_in_words( $atts ) {
511
 
519
  $dollars = $atts['whole'];
520
  $cents = $atts['decimal'];
521
 
522
+ switch ( $atts['lang'] ) {
523
+ case 'BG':
524
+ return convert_number_to_words_bg( $order_total );
525
+ default: // 'EN'
526
+ return sprintf( $the_number_in_words,
527
+ ucfirst( convert_number_to_words( $order_total_whole ) ),
528
+ $dollars,
529
+ ucfirst( convert_number_to_words( $order_total_decimal ) ),
530
+ $cents );
531
+ }
532
  }
533
  }
534
 
includes/shortcodes/class-wcj-products-add-form-shortcodes.php ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Products Add Form Shortcodes
4
+ *
5
+ * The WooCommerce Jetpack Products Add Form Shortcodes class.
6
+ *
7
+ * @version 2.5.0
8
+ * @since 2.5.0
9
+ * @author Algoritmika Ltd.
10
+ */
11
+
12
+ if ( ! defined( 'ABSPATH' ) ) exit;
13
+
14
+ if ( ! class_exists( 'WCJ_Products_Add_Form_Shortcodes' ) ) :
15
+
16
+ class WCJ_Products_Add_Form_Shortcodes extends WCJ_Shortcodes {
17
+
18
+ /**
19
+ * Constructor.
20
+ *
21
+ * @version 2.5.0
22
+ * @since 2.5.0
23
+ */
24
+ function __construct() {
25
+
26
+ $this->the_shortcodes = array(
27
+ 'wcj_product_add_new',
28
+ );
29
+
30
+ $this->the_atts = array(
31
+ 'product_id' => 0, // todo (for editing?)
32
+ 'post_status' => 'publish', // todo (for editing?)
33
+ );
34
+
35
+ parent::__construct();
36
+ }
37
+
38
+ /**
39
+ * Inits shortcode atts and properties.
40
+ *
41
+ * @version 2.5.0
42
+ * @since 2.5.0
43
+ */
44
+ function init_atts( $atts ) {
45
+ return $atts;
46
+ }
47
+
48
+ /**
49
+ * wc_add_new_product.
50
+ *
51
+ * @version 2.5.0
52
+ * @since 2.5.0
53
+ */
54
+ function wc_add_new_product( $args, $shortcode_atts ) {
55
+
56
+ $new_product_post = array(
57
+ 'post_title' => $args['title'],
58
+ 'post_content' => $args['description'],
59
+ 'post_excerpt' => $args['short_description'],
60
+ 'post_type' => 'product',
61
+ 'post_status' => 'draft',
62
+ );
63
+
64
+ // Insert the post into the database
65
+ if ( 0 != ( $new_product_id = wp_insert_post( $new_product_post ) ) ) {
66
+
67
+ wp_set_object_terms( $new_product_id, 'simple', 'product_type' );
68
+ wp_set_object_terms( $new_product_id, $args['cats'], 'product_cat' );
69
+ wp_set_object_terms( $new_product_id, $args['tags'], 'product_tag' );
70
+
71
+ update_post_meta( $new_product_id, '_visibility', 'visible' );
72
+ update_post_meta( $new_product_id, '_stock_status', 'instock' );
73
+
74
+ wp_update_post( array( 'ID' => $new_product_id, 'post_status' => $shortcode_atts['post_status'] ) );
75
+ }
76
+
77
+ return $new_product_id;
78
+ }
79
+
80
+ /**
81
+ * validate_args.
82
+ *
83
+ * @version 2.5.0
84
+ * @since 2.5.0
85
+ */
86
+ function validate_args( $args, $shortcode_atts ) {
87
+ if ( '' == $args['title'] ) {
88
+ return false;
89
+ }
90
+ return true;
91
+ }
92
+
93
+ /**
94
+ * wcj_product_add_new.
95
+ *
96
+ * @version 2.5.0
97
+ * @since 2.5.0
98
+ */
99
+ function wcj_product_add_new( $atts ) {
100
+
101
+ $header_html = '';
102
+ $notice_html = '';
103
+ $input_fields_html = '';
104
+ $footer_html = '';
105
+
106
+ if ( isset( $_REQUEST['wcj_add_new_product'] ) ) {
107
+ $args = array(
108
+ 'title' => $_REQUEST['wcj_add_new_product_title'],
109
+ 'description' => $_REQUEST['wcj_add_new_product_desc'],
110
+ 'short_description' => $_REQUEST['wcj_add_new_product_short_desc'],
111
+ 'cats' => isset( $_REQUEST['wcj_add_new_product_cats'] ) ? $_REQUEST['wcj_add_new_product_cats'] : array(),
112
+ 'tags' => isset( $_REQUEST['wcj_add_new_product_tags'] ) ? $_REQUEST['wcj_add_new_product_tags'] : array(),
113
+ );
114
+ if ( $this->validate_args( $args, $atts ) ) {
115
+ $result = $this->wc_add_new_product( $args, $atts );
116
+ $notice_html .= ( 0 == $result )
117
+ ? '<div class="woocommerce"><ul class="woocommerce-error"><li>' . __( 'Error!', 'woocommerce-jetpack' ) . '</li></ul></div>'
118
+ : '<div class="woocommerce"><div class="woocommerce-message">' . __( 'Success!', 'woocommerce-jetpack' ) . '</div></div>';
119
+ } else {
120
+ $notice_html .= '<div class="woocommerce"><ul class="woocommerce-error"><li>' . __( 'Error Validating!', 'woocommerce-jetpack' ) . '</li></ul></div>';
121
+ }
122
+ }
123
+
124
+ $header_html .= '<h3>' . __( 'Add New Product', 'woocommerce-jetpack' ) . '</h3>';
125
+ $header_html .= '<form method="post" action="">';
126
+
127
+ $table_data = array();
128
+ $input_style = 'width:100%;';
129
+ $table_data[] = array(
130
+ __( 'Title', 'woocommerce-jetpack' ),
131
+ '<input type="text" style="' . $input_style . '" name="wcj_add_new_product_title">'
132
+ );
133
+ $table_data[] = array(
134
+ __( 'Description', 'woocommerce-jetpack' ),
135
+ '<textarea style="' . $input_style . '" name="wcj_add_new_product_desc"></textarea>'
136
+ );
137
+ $table_data[] = array(
138
+ __( 'Short Description', 'woocommerce-jetpack' ),
139
+ '<textarea style="' . $input_style . '" name="wcj_add_new_product_short_desc"></textarea>'
140
+ );
141
+ $product_categories = get_terms( 'product_cat', 'orderby=name&hide_empty=0' );
142
+ $product_categories_as_select_options = '';
143
+ foreach ( $product_categories as $product_category ) {
144
+ $product_categories_as_select_options .= '<option value="' . $product_category->slug . '">' . $product_category->name .'</option>';
145
+ }
146
+ $table_data[] = array(
147
+ __( 'Categories', 'woocommerce-jetpack' ),
148
+ '<select multiple style="' . $input_style . '" name="wcj_add_new_product_cats[]">' . $product_categories_as_select_options . '</select>'
149
+ );
150
+ $products_tags = get_terms( 'product_tag', 'orderby=name&hide_empty=0' );
151
+ $products_tags_as_select_options = '';
152
+ foreach ( $products_tags as $products_tag ) {
153
+ $products_tags_as_select_options .= '<option value="' . $products_tag->slug . '">' . $products_tag->name .'</option>';
154
+ }
155
+ $table_data[] = array(
156
+ __( 'Tags', 'woocommerce-jetpack' ),
157
+ '<select multiple style="' . $input_style . '" name="wcj_add_new_product_tags[]">' . $products_tags_as_select_options . '</select>'
158
+ );
159
+ $input_fields_html .= wcj_get_table_html( $table_data, array( 'table_class' => 'widefat', 'table_heading_type' => 'vertical', ) );
160
+
161
+ $footer_html .= '<input type="submit" class="button" name="wcj_add_new_product" value="' . __( 'Add', 'woocommerce-jetpack' ) . '">';
162
+ $footer_html .= '</form>';
163
+
164
+ return $notice_html . $header_html . $input_fields_html . $footer_html;
165
+ }
166
+ }
167
+
168
+ endif;
169
+
170
+ return new WCJ_Products_Add_Form_Shortcodes();
includes/shortcodes/class-wcj-products-shortcodes.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Products Shortcodes class.
6
  *
7
- * @version 2.4.8
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -17,7 +17,7 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
17
  /**
18
  * Constructor.
19
  *
20
- * @version 2.4.8
21
  */
22
  public function __construct() {
23
 
@@ -36,12 +36,15 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
36
  'wcj_product_purchase_price',
37
  'wcj_product_total_sales',
38
  'wcj_product_total_orders',
 
39
  'wcj_product_total_orders_sum',
40
  'wcj_product_crowdfunding_goal',
41
  'wcj_product_crowdfunding_goal_remaining',
 
42
  'wcj_product_crowdfunding_startdate',
43
  'wcj_product_crowdfunding_deadline',
44
  'wcj_product_crowdfunding_time_remaining',
 
45
  'wcj_product_shipping_class',
46
  'wcj_product_dimensions',
47
  'wcj_product_formatted_name',
@@ -61,22 +64,24 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
61
  );
62
 
63
  $this->the_atts = array(
64
- 'product_id' => 0,
65
- 'image_size' => 'shop_thumbnail',
66
- 'multiply_by' => '',
67
- 'hide_currency' => 'no',
68
- 'excerpt_length' => 0,
69
- 'name' => '',
70
- 'heading_format' => 'from %level_qty% pcs.',
71
- 'sep' => ', ',
72
- 'add_links' => 'yes',
73
- 'add_percent_row' => 'no',
74
- 'add_price_row' => 'yes',
75
- 'show_always' => 'yes',
76
- 'hide_if_zero' => 'no',
77
- 'reverse' => 'no',
78
- 'find' => '',
79
- 'replace' => '',
 
 
80
  );
81
 
82
  parent::__construct();
@@ -114,45 +119,72 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
114
  /**
115
  * get_product_orders_data.
116
  *
117
- * @version 2.2.6
118
  * @since 2.2.6
119
  */
120
- function get_product_orders_data( $return_value = 'total_orders' ) {
121
  $total_orders = 0;
122
- $total_sum = 0;
123
- $args = array(
124
- 'post_type' => 'shop_order',
125
- 'post_status' => 'wc-completed',
126
- 'posts_per_page' => -1,
127
- 'orderby' => 'date',
128
- 'order' => 'ASC',
129
- 'date_query' => array(
130
- array(
131
- 'after' => get_post_meta( $this->the_product->id, '_' . 'wcj_crowdfunding_startdate', true ),
132
- 'inclusive' => true,
 
 
 
 
 
 
133
  ),
134
- ),
135
- );
136
- $loop = new WP_Query( $args );
137
- while ( $loop->have_posts() ) : $loop->the_post();
138
- $order_id = $loop->post->ID;
139
- $the_order = wc_get_order( $order_id );
140
- $the_items = $the_order->get_items();
141
- foreach( $the_items as $item ) {
142
- if ( $this->the_product->id == $item['product_id'] ) {
143
- $total_sum += $item['line_total'] + $item['line_tax'];
 
 
 
 
 
 
144
  $total_orders++;
145
  }
146
- }
147
- endwhile;
 
148
  wp_reset_postdata();
149
- return ( 'orders_sum' === $return_value ) ? $total_sum : $total_orders;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  }
151
 
152
  /**
153
  * wcj_product_time_since_last_sale.
154
  *
155
- * @version 2.4.0
156
  * @since 2.4.0
157
  * @todo not finished
158
  */
@@ -162,31 +194,38 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
162
  $do_use_only_completed_orders = true;
163
  // Get the ID before new query
164
  $the_ID = get_the_ID();
165
- // Create args for new query
166
- $args = array(
167
- 'post_type' => 'shop_order',
168
- 'post_status' => ( true === $do_use_only_completed_orders ? 'wc-completed' : 'any' ),
169
- 'posts_per_page' => -1,
170
- 'orderby' => 'date',
171
- 'order' => 'DESC',
172
- 'date_query' => array( array( 'after' => strtotime( '-' . $days_to_cover . ' days' ) ) ),
173
- );
174
- // Run new query
175
- $loop = new WP_Query( $args );
176
- // Analyze the results, i.e. orders
177
- while ( $loop->have_posts() ) : $loop->the_post();
178
- $order = new WC_Order( $loop->post->ID );
179
- $items = $order->get_items();
180
- foreach ( $items as $item ) {
181
- // Run through all order's items
182
- if ( $item['product_id'] == $the_ID ) {
183
- // Found sale!
184
- $result = sprintf( __( '%s ago', 'woocommerce-jetpack' ), human_time_diff( get_the_time( 'U' ), current_time( 'timestamp' ) ) );
185
- wp_reset_postdata();
186
- return $result;
 
 
 
 
 
 
187
  }
188
- }
189
- endwhile;
 
190
  wp_reset_postdata();
191
  // No sales found
192
  return '';
@@ -416,44 +455,54 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
416
  return '';
417
  }
418
 
 
 
 
 
 
 
 
 
 
 
419
  /**
420
  * wcj_product_total_orders.
421
  *
422
- * @version 2.2.6
423
  * @since 2.2.6
424
  */
425
  function wcj_product_total_orders( $atts ) {
426
- return $this->get_product_orders_data( 'total_orders' );
427
  }
428
 
429
  /**
430
  * wcj_product_total_orders_sum.
431
  *
432
- * @version 2.2.6
433
  * @since 2.2.6
434
  */
435
  function wcj_product_total_orders_sum( $atts ) {
436
- return $this->get_product_orders_data( 'orders_sum' );
437
  }
438
 
439
  /**
440
  * wcj_product_crowdfunding_startdate.
441
  *
442
- * @version 2.2.6
443
  * @since 2.2.6
444
  */
445
  function wcj_product_crowdfunding_startdate( $atts ) {
446
- return get_post_meta( $this->the_product->id, '_' . 'wcj_crowdfunding_startdate', true );
447
  }
448
 
449
  /**
450
  * wcj_product_crowdfunding_deadline.
451
  *
452
- * @version 2.2.6
453
  * @since 2.2.6
454
  */
455
  function wcj_product_crowdfunding_deadline( $atts ) {
456
- return get_post_meta( $this->the_product->id, '_' . 'wcj_crowdfunding_deadline', true );
457
  }
458
 
459
  /**
@@ -485,6 +534,24 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
485
  return ( 1 === $seconds_remaining ) ? $seconds_remaining . ' second left' : $seconds_remaining . ' seconds left'; */
486
  }
487
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
488
  /**
489
  * wcj_product_crowdfunding_goal.
490
  *
@@ -505,6 +572,18 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
505
  return $this->wcj_product_crowdfunding_goal( $atts ) - $this->wcj_product_total_orders_sum( $atts );
506
  }
507
 
 
 
 
 
 
 
 
 
 
 
 
 
508
  /**
509
  * wcj_product_total_sales.
510
  *
@@ -634,33 +713,49 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
634
  /**
635
  * wcj_product_wholesale_price_table.
636
  *
637
- * @version 2.4.8
638
  */
639
  function wcj_product_wholesale_price_table( $atts ) {
640
 
641
  if ( ! wcj_is_product_wholesale_enabled( $this->the_product->id ) ) return '';
642
 
643
  $wholesale_price_levels = array();
644
- for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_wholesale_price_levels_number', 1 ) ); $i++ ) {
645
- $level_qty = get_option( 'wcj_wholesale_price_level_min_qty_' . $i, PHP_INT_MAX );
646
- $discount_percent = get_option( 'wcj_wholesale_price_level_discount_percent_' . $i, 0 );
647
- $discount_koef = 1.0 - ( $discount_percent / 100.0 );
648
- $wholesale_price_levels[] = array( 'quantity' => $level_qty, 'koef' => $discount_koef, 'discount_percent' => $discount_percent, );
 
 
 
 
 
 
 
649
  }
650
 
651
- $data_qty = array();
652
- $data_price = array();
653
- $data_discount_percent = array();
654
- foreach ( $wholesale_price_levels as $wholesale_price_level ) {
655
 
 
 
 
 
 
656
  $the_price = '';
 
657
  if ( $this->the_product->is_type( 'variable' ) ) {
658
  // Variable
659
  $min = $this->the_product->get_variation_price( 'min', false );
660
  $max = $this->the_product->get_variation_price( 'max', false );
661
- if ( '' !== $wholesale_price_level['koef'] && is_numeric( $wholesale_price_level['koef'] ) ) {
662
- $min = $min * $wholesale_price_level['koef'];
663
- $max = $max * $wholesale_price_level['koef'];
 
 
 
 
664
  }
665
  if ( 'yes' !== $atts['hide_currency'] ) {
666
  $min = wc_price( $min );
@@ -669,10 +764,12 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
669
  $the_price = ( $min != $max ) ? sprintf( '%s-%s', $min, $max ) : $min;
670
  } else {
671
  // Simple etc.
672
- // $the_price = wc_price( round( $this->the_product->get_price() * $wholesale_price_level['koef'], $precision ) );
673
  $the_price = $this->the_product->get_price();
674
- if ( '' !== $wholesale_price_level['koef'] && is_numeric( $wholesale_price_level['koef'] ) ) {
675
- $the_price = $the_price * $wholesale_price_level['koef'];
 
 
 
676
  }
677
  if ( 'yes' !== $atts['hide_currency'] ) {
678
  $the_price = wc_price( $the_price );
@@ -684,8 +781,21 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
684
  $data_price[] = $the_price;
685
  }
686
  if ( 'yes' === $atts['add_percent_row'] ) {
687
- $data_discount_percent[] = '-' . $wholesale_price_level['discount_percent'] . '%';
 
 
 
 
 
 
 
 
 
 
 
688
  }
 
 
689
  }
690
 
691
  $table_rows = array( $data_qty, );
@@ -693,12 +803,9 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
693
  $table_rows[] = $data_price;
694
  }
695
  if ( 'yes' === $atts['add_percent_row'] ) {
696
- $table_rows[] = $data_discount_percent;
697
- }
698
- $columns_styles = array();
699
- for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_wholesale_price_levels_number', 1 ) ); $i++ ) {
700
- $columns_styles[] = 'text-align: center;';
701
  }
 
702
  return wcj_get_table_html( $table_rows, array( 'columns_styles' => $columns_styles ) );
703
  }
704
 
4
  *
5
  * The WooCommerce Jetpack Products Shortcodes class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
17
  /**
18
  * Constructor.
19
  *
20
+ * @version 2.5.0
21
  */
22
  public function __construct() {
23
 
36
  'wcj_product_purchase_price',
37
  'wcj_product_total_sales',
38
  'wcj_product_total_orders',
39
+ 'wcj_product_total_orders_items',
40
  'wcj_product_total_orders_sum',
41
  'wcj_product_crowdfunding_goal',
42
  'wcj_product_crowdfunding_goal_remaining',
43
+ 'wcj_product_crowdfunding_goal_remaining_progress_bar',
44
  'wcj_product_crowdfunding_startdate',
45
  'wcj_product_crowdfunding_deadline',
46
  'wcj_product_crowdfunding_time_remaining',
47
+ 'wcj_product_crowdfunding_time_remaining_progress_bar',
48
  'wcj_product_shipping_class',
49
  'wcj_product_dimensions',
50
  'wcj_product_formatted_name',
64
  );
65
 
66
  $this->the_atts = array(
67
+ 'product_id' => 0,
68
+ 'image_size' => 'shop_thumbnail',
69
+ 'multiply_by' => '',
70
+ 'hide_currency' => 'no',
71
+ 'excerpt_length' => 0,
72
+ 'name' => '',
73
+ 'heading_format' => 'from %level_qty% pcs.',
74
+ 'sep' => ', ',
75
+ 'add_links' => 'yes',
76
+ 'add_percent_row' => 'no',
77
+ 'add_discount_row' => 'no',
78
+ 'add_price_row' => 'yes',
79
+ 'show_always' => 'yes',
80
+ 'hide_if_zero' => 'no',
81
+ 'reverse' => 'no',
82
+ 'find' => '',
83
+ 'replace' => '',
84
+ 'offset' => '',
85
  );
86
 
87
  parent::__construct();
119
  /**
120
  * get_product_orders_data.
121
  *
122
+ * @version 2.5.0
123
  * @since 2.2.6
124
  */
125
+ function get_product_orders_data( $return_value = 'total_orders', $atts ) {
126
  $total_orders = 0;
127
+ $total_qty = 0;
128
+ $total_sum = 0;
129
+ $offset = 0;
130
+ $block_size = 96;
131
+ while( true ) {
132
+ $args = array(
133
+ 'post_type' => 'shop_order',
134
+ 'post_status' => 'wc-completed',
135
+ 'posts_per_page' => $block_size,
136
+ 'offset' => $offset,
137
+ 'orderby' => 'date',
138
+ 'order' => 'ASC',
139
+ 'date_query' => array(
140
+ array(
141
+ 'after' => get_post_meta( $this->the_product->id, '_' . 'wcj_crowdfunding_startdate', true ),
142
+ 'inclusive' => true,
143
+ ),
144
  ),
145
+ );
146
+ $loop = new WP_Query( $args );
147
+ if ( ! $loop->have_posts() ) break;
148
+ while ( $loop->have_posts() ) : $loop->the_post();
149
+ $order_id = $loop->post->ID;
150
+ $the_order = wc_get_order( $order_id );
151
+ $the_items = $the_order->get_items();
152
+ $item_found = false;
153
+ foreach( $the_items as $item ) {
154
+ if ( $this->the_product->id == $item['product_id'] ) {
155
+ $total_sum += $item['line_total'] + $item['line_tax'];
156
+ $total_qty += $item['qty'];
157
+ $item_found = true;
158
+ }
159
+ }
160
+ if ( $item_found ) {
161
  $total_orders++;
162
  }
163
+ endwhile;
164
+ $offset += $block_size;
165
+ }
166
  wp_reset_postdata();
167
+ switch ( $return_value ) {
168
+ case 'orders_sum':
169
+ $return = $total_sum;
170
+ break;
171
+ case 'total_items':
172
+ $return = $total_qty;
173
+ break;
174
+ default: // 'total_orders'
175
+ $return = $total_orders;
176
+ break;
177
+ }
178
+ if ( 0 != $atts['offset'] ) {
179
+ $return += $atts['offset'];
180
+ }
181
+ return $return;
182
  }
183
 
184
  /**
185
  * wcj_product_time_since_last_sale.
186
  *
187
+ * @version 2.5.0
188
  * @since 2.4.0
189
  * @todo not finished
190
  */
194
  $do_use_only_completed_orders = true;
195
  // Get the ID before new query
196
  $the_ID = get_the_ID();
197
+ $offset = 0;
198
+ $block_size = 96;
199
+ while( true ) {
200
+ // Create args for new query
201
+ $args = array(
202
+ 'post_type' => 'shop_order',
203
+ 'post_status' => ( true === $do_use_only_completed_orders ? 'wc-completed' : 'any' ),
204
+ 'posts_per_page' => $block_size,
205
+ 'offset' => $offset,
206
+ 'orderby' => 'date',
207
+ 'order' => 'DESC',
208
+ 'date_query' => array( array( 'after' => strtotime( '-' . $days_to_cover . ' days' ) ) ),
209
+ );
210
+ // Run new query
211
+ $loop = new WP_Query( $args );
212
+ if ( ! $loop->have_posts() ) break;
213
+ // Analyze the results, i.e. orders
214
+ while ( $loop->have_posts() ) : $loop->the_post();
215
+ $order = new WC_Order( $loop->post->ID );
216
+ $items = $order->get_items();
217
+ foreach ( $items as $item ) {
218
+ // Run through all order's items
219
+ if ( $item['product_id'] == $the_ID ) {
220
+ // Found sale!
221
+ $result = sprintf( __( '%s ago', 'woocommerce-jetpack' ), human_time_diff( get_the_time( 'U' ), current_time( 'timestamp' ) ) );
222
+ wp_reset_postdata();
223
+ return $result;
224
+ }
225
  }
226
+ endwhile;
227
+ $offset += $block_size;
228
+ }
229
  wp_reset_postdata();
230
  // No sales found
231
  return '';
455
  return '';
456
  }
457
 
458
+ /**
459
+ * wcj_product_total_orders_items.
460
+ *
461
+ * @version 2.5.0
462
+ * @since 2.5.0
463
+ */
464
+ function wcj_product_total_orders_items( $atts ) {
465
+ return $this->get_product_orders_data( 'total_items', $atts );
466
+ }
467
+
468
  /**
469
  * wcj_product_total_orders.
470
  *
471
+ * @version 2.5.0
472
  * @since 2.2.6
473
  */
474
  function wcj_product_total_orders( $atts ) {
475
+ return $this->get_product_orders_data( 'total_orders', $atts );
476
  }
477
 
478
  /**
479
  * wcj_product_total_orders_sum.
480
  *
481
+ * @version 2.5.0
482
  * @since 2.2.6
483
  */
484
  function wcj_product_total_orders_sum( $atts ) {
485
+ return $this->get_product_orders_data( 'orders_sum', $atts );
486
  }
487
 
488
  /**
489
  * wcj_product_crowdfunding_startdate.
490
  *
491
+ * @version 2.5.0
492
  * @since 2.2.6
493
  */
494
  function wcj_product_crowdfunding_startdate( $atts ) {
495
+ return date_i18n( get_option( 'date_format' ), strtotime( get_post_meta( $this->the_product->id, '_' . 'wcj_crowdfunding_startdate', true ) ) );
496
  }
497
 
498
  /**
499
  * wcj_product_crowdfunding_deadline.
500
  *
501
+ * @version 2.5.0
502
  * @since 2.2.6
503
  */
504
  function wcj_product_crowdfunding_deadline( $atts ) {
505
+ return date_i18n( get_option( 'date_format' ), strtotime( get_post_meta( $this->the_product->id, '_' . 'wcj_crowdfunding_deadline', true ) ) );
506
  }
507
 
508
  /**
534
  return ( 1 === $seconds_remaining ) ? $seconds_remaining . ' second left' : $seconds_remaining . ' seconds left'; */
535
  }
536
 
537
+ /**
538
+ * wcj_product_crowdfunding_time_remaining_progress_bar.
539
+ *
540
+ * @version 2.5.0
541
+ * @since 2.5.0
542
+ */
543
+ function wcj_product_crowdfunding_time_remaining_progress_bar( $atts ) {
544
+ $deadline_seconds = strtotime( get_post_meta( $this->the_product->id, '_' . 'wcj_crowdfunding_deadline', true ) );
545
+ $startdate_seconds = strtotime( get_post_meta( $this->the_product->id, '_' . 'wcj_crowdfunding_startdate', true ) );
546
+
547
+ $seconds_remaining = $deadline_seconds - current_time( 'timestamp' );
548
+ $seconds_total = $deadline_seconds - $startdate_seconds;
549
+
550
+ $current_value = $seconds_remaining;
551
+ $max_value = $seconds_total;
552
+ $return = '<progress value="' . $current_value . '" max="' . $max_value . '"></progress>';
553
+ }
554
+
555
  /**
556
  * wcj_product_crowdfunding_goal.
557
  *
572
  return $this->wcj_product_crowdfunding_goal( $atts ) - $this->wcj_product_total_orders_sum( $atts );
573
  }
574
 
575
+ /**
576
+ * wcj_product_crowdfunding_goal_remaining_progress_bar.
577
+ *
578
+ * @version 2.5.0
579
+ * @since 2.5.0
580
+ */
581
+ function wcj_product_crowdfunding_goal_remaining_progress_bar( $atts ) {
582
+ $current_value = $this->wcj_product_total_orders_sum( $atts );
583
+ $max_value = $this->wcj_product_crowdfunding_goal( $atts );
584
+ return '<progress value="' . $current_value . '" max="' . $max_value . '"></progress>';
585
+ }
586
+
587
  /**
588
  * wcj_product_total_sales.
589
  *
713
  /**
714
  * wcj_product_wholesale_price_table.
715
  *
716
+ * @version 2.5.0
717
  */
718
  function wcj_product_wholesale_price_table( $atts ) {
719
 
720
  if ( ! wcj_is_product_wholesale_enabled( $this->the_product->id ) ) return '';
721
 
722
  $wholesale_price_levels = array();
723
+ if ( wcj_is_product_wholesale_enabled_per_product( $this->the_product->id ) ) {
724
+ for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_post_meta( $this->the_product->id, '_' . 'wcj_wholesale_price_levels_number', true ) ); $i++ ) {
725
+ $level_qty = get_post_meta( $this->the_product->id, '_' . 'wcj_wholesale_price_level_min_qty_' . $i, true );
726
+ $discount = get_post_meta( $this->the_product->id, '_' . 'wcj_wholesale_price_level_discount_' . $i, true );
727
+ $wholesale_price_levels[] = array( 'quantity' => $level_qty, 'discount' => $discount, );
728
+ }
729
+ } else {
730
+ for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_wholesale_price_levels_number', 1 ) ); $i++ ) {
731
+ $level_qty = get_option( 'wcj_wholesale_price_level_min_qty_' . $i, PHP_INT_MAX );
732
+ $discount = get_option( 'wcj_wholesale_price_level_discount_percent_' . $i, 0 );
733
+ $wholesale_price_levels[] = array( 'quantity' => $level_qty, 'discount' => $discount, );
734
+ }
735
  }
736
 
737
+ $discount_type = ( wcj_is_product_wholesale_enabled_per_product( $this->the_product->id ) )
738
+ ? get_post_meta( $this->the_product->id, '_' . 'wcj_wholesale_price_discount_type', true )
739
+ : get_option( 'wcj_wholesale_price_discount_type', 'percent' );
 
740
 
741
+ $data_qty = array();
742
+ $data_price = array();
743
+ $data_discount = array();
744
+ $columns_styles = array();
745
+ foreach ( $wholesale_price_levels as $wholesale_price_level ) {
746
  $the_price = '';
747
+
748
  if ( $this->the_product->is_type( 'variable' ) ) {
749
  // Variable
750
  $min = $this->the_product->get_variation_price( 'min', false );
751
  $max = $this->the_product->get_variation_price( 'max', false );
752
+ if ( 'fixed' === $discount_type ) {
753
+ $min = $min - $wholesale_price_level['discount'];
754
+ $max = $max - $wholesale_price_level['discount'];
755
+ } else {
756
+ $coefficient = 1.0 - ( $wholesale_price_level['discount'] / 100.0 );
757
+ $min = $min * $coefficient;
758
+ $max = $max * $coefficient;
759
  }
760
  if ( 'yes' !== $atts['hide_currency'] ) {
761
  $min = wc_price( $min );
764
  $the_price = ( $min != $max ) ? sprintf( '%s-%s', $min, $max ) : $min;
765
  } else {
766
  // Simple etc.
 
767
  $the_price = $this->the_product->get_price();
768
+ if ( 'fixed' === $discount_type ) {
769
+ $the_price = $the_price - $wholesale_price_level['discount'];
770
+ } else {
771
+ $coefficient = 1.0 - ( $wholesale_price_level['discount'] / 100.0 );
772
+ $the_price = $the_price * $coefficient;
773
  }
774
  if ( 'yes' !== $atts['hide_currency'] ) {
775
  $the_price = wc_price( $the_price );
781
  $data_price[] = $the_price;
782
  }
783
  if ( 'yes' === $atts['add_percent_row'] ) {
784
+ if ( 'fixed' === $discount_type ) {
785
+ // todo (maybe)
786
+ } else {
787
+ $data_discount[] = '-' . $wholesale_price_level['discount'] . '%';
788
+ }
789
+ }
790
+ if ( 'yes' === $atts['add_discount_row'] ) {
791
+ if ( 'fixed' === $discount_type ) {
792
+ $data_discount[] = '-' . wc_price( $wholesale_price_level['discount'] );
793
+ } else {
794
+ // todo (maybe)
795
+ }
796
  }
797
+
798
+ $columns_styles[] = 'text-align: center;';
799
  }
800
 
801
  $table_rows = array( $data_qty, );
803
  $table_rows[] = $data_price;
804
  }
805
  if ( 'yes' === $atts['add_percent_row'] ) {
806
+ $table_rows[] = $data_discount;
 
 
 
 
807
  }
808
+
809
  return wcj_get_table_html( $table_rows, array( 'columns_styles' => $columns_styles ) );
810
  }
811
 
includes/shortcodes/class-wcj-shortcodes.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Shortcodes class.
6
  *
7
- * @version 2.3.9
8
  * @author Algoritmika Ltd.
9
  */
10
 
@@ -54,7 +54,7 @@ class WCJ_Shortcodes {
54
  /**
55
  * wcj_shortcode.
56
  *
57
- * @version 2.3.9
58
  */
59
  function wcj_shortcode( $atts, $content, $shortcode ) {
60
 
@@ -74,7 +74,7 @@ class WCJ_Shortcodes {
74
  $atts = array_merge( $global_defaults, $atts );
75
 
76
  // Check if privileges are ok
77
- if ( 'admin' === $atts['visibility'] && ! is_super_admin() ) return '';
78
 
79
  // Check if site visibility is ok
80
  if ( '' != $atts['site_visibility'] ) {
@@ -143,10 +143,12 @@ class WCJ_Shortcodes {
143
 
144
  /**
145
  * wcj_get_user_location.
 
 
146
  */
147
  function wcj_get_user_location() {
148
  $country = '';
149
- if ( isset( $_GET['country'] ) && '' != $_GET['country'] && is_super_admin() ) {
150
  $country = $_GET['country'];
151
  } else {
152
  // Get the country by IP
4
  *
5
  * The WooCommerce Jetpack Shortcodes class.
6
  *
7
+ * @version 2.5.0
8
  * @author Algoritmika Ltd.
9
  */
10
 
54
  /**
55
  * wcj_shortcode.
56
  *
57
+ * @version 2.5.0
58
  */
59
  function wcj_shortcode( $atts, $content, $shortcode ) {
60
 
74
  $atts = array_merge( $global_defaults, $atts );
75
 
76
  // Check if privileges are ok
77
+ if ( 'admin' === $atts['visibility'] && ! wcj_is_user_role( 'administrator' ) ) return '';
78
 
79
  // Check if site visibility is ok
80
  if ( '' != $atts['site_visibility'] ) {
143
 
144
  /**
145
  * wcj_get_user_location.
146
+ *
147
+ * @version 2.5.0
148
  */
149
  function wcj_get_user_location() {
150
  $country = '';
151
+ if ( isset( $_GET['country'] ) && '' != $_GET['country'] && wcj_is_user_role( 'administrator' ) ) {
152
  $country = $_GET['country'];
153
  } else {
154
  // Get the country by IP
includes/tools/class-wcj-eu-countries-vat-rates-tool.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack EU Countries VAT Rates Tool class.
6
  *
7
- * @version 2.3.10
8
  * @since 2.3.10
9
  * @author Algoritmika Ltd.
10
  */
@@ -28,12 +28,12 @@ class WCJ_EU_Countries_VAT_Rates_Tool {
28
  /**
29
  * add_eu_countries_vat_rates.
30
  *
31
- * @version 2.3.10
32
  * @since 2.3.10
33
  */
34
  function add_eu_countries_vat_rates() {
35
  if ( ! isset( $_POST['add_eu_countries_vat_rates'] ) ) return;
36
- if ( ! is_super_admin() && ! is_shop_manager() ) return;
37
  $loop = 0;
38
  foreach ( wcj_get_european_union_countries_with_vat() as $country => $rate ) {
39
  $tax_rate = array(
4
  *
5
  * The WooCommerce Jetpack EU Countries VAT Rates Tool class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.3.10
9
  * @author Algoritmika Ltd.
10
  */
28
  /**
29
  * add_eu_countries_vat_rates.
30
  *
31
+ * @version 2.5.0
32
  * @since 2.3.10
33
  */
34
  function add_eu_countries_vat_rates() {
35
  if ( ! isset( $_POST['add_eu_countries_vat_rates'] ) ) return;
36
+ if ( ! wcj_is_user_role( 'administrator' ) && ! is_shop_manager() ) return;
37
  $loop = 0;
38
  foreach ( wcj_get_european_union_countries_with_vat() as $country => $rate ) {
39
  $tax_rate = array(
includes/widgets/class-wcj-widget-country-switcher.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Country Switcher Widget class.
6
  *
7
- * @version 2.4.8
8
  * @since 2.4.8
9
  * @author Algoritmika Ltd.
10
  */
@@ -29,7 +29,7 @@ class WCJ_Widget_Country_Switcher extends WP_Widget {
29
  /**
30
  * Outputs the content of the widget
31
  *
32
- * @version 2.4.8
33
  * @param array $args
34
  * @param array $instance
35
  */
@@ -39,18 +39,24 @@ class WCJ_Widget_Country_Switcher extends WP_Widget {
39
  if ( ! empty( $instance['title'] ) ) {
40
  echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
41
  }
42
- echo do_shortcode( '[wcj_country_select_drop_down_list countries="' . $instance['countries'] . '"]' );
43
- /* switch ( $instance['switcher_type'] ) {
44
- case 'link_list':
45
- echo do_shortcode( '[wcj_currency_select_link_list]' );
46
- break;
47
- case 'radio_list':
48
- echo do_shortcode( '[wcj_currency_select_radio_list]' );
49
- break;
50
- default:
51
- echo do_shortcode( '[wcj_currency_select_drop_down_list]' );
52
- break;
53
- } */
 
 
 
 
 
 
54
  echo $args['after_widget'];
55
  }
56
 
4
  *
5
  * The WooCommerce Jetpack Country Switcher Widget class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.4.8
9
  * @author Algoritmika Ltd.
10
  */
29
  /**
30
  * Outputs the content of the widget
31
  *
32
+ * @version 2.5.0
33
  * @param array $args
34
  * @param array $instance
35
  */
39
  if ( ! empty( $instance['title'] ) ) {
40
  echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
41
  }
42
+ if ( ! wcj_is_module_enabled( 'price_by_country' ) ) {
43
+ echo __( 'Prices and Currencies by Country module not enabled!', 'woocommerce-jetpack' );
44
+ } elseif ( 'by_ip' === get_option( 'wcj_price_by_country_customer_country_detection_method', 'by_ip' ) ) {
45
+ echo __( 'Customer Country Detection Method must include "by user selection"!', 'woocommerce-jetpack' );
46
+ } else {
47
+ echo do_shortcode( '[wcj_country_select_drop_down_list countries="' . $instance['countries'] . '"]' );
48
+ /* switch ( $instance['switcher_type'] ) {
49
+ case 'link_list':
50
+ echo do_shortcode( '[wcj_currency_select_link_list]' );
51
+ break;
52
+ case 'radio_list':
53
+ echo do_shortcode( '[wcj_currency_select_radio_list]' );
54
+ break;
55
+ default:
56
+ echo do_shortcode( '[wcj_currency_select_drop_down_list]' );
57
+ break;
58
+ } */
59
+ }
60
  echo $args['after_widget'];
61
  }
62
 
includes/widgets/class-wcj-widget-multicurrency.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * The WooCommerce Jetpack Multicurrency Widget class.
6
  *
7
- * @version 2.4.5
8
  * @since 2.4.3
9
  * @author Algoritmika Ltd.
10
  */
@@ -29,7 +29,7 @@ class WCJ_Widget_Multicurrency extends WP_Widget {
29
  /**
30
  * Outputs the content of the widget
31
  *
32
- * @version 2.4.5
33
  * @param array $args
34
  * @param array $instance
35
  */
@@ -39,16 +39,20 @@ class WCJ_Widget_Multicurrency extends WP_Widget {
39
  if ( ! empty( $instance['title'] ) ) {
40
  echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
41
  }
42
- switch ( $instance['switcher_type'] ) {
43
- case 'link_list':
44
- echo do_shortcode( '[wcj_currency_select_link_list]' );
45
- break;
46
- case 'radio_list':
47
- echo do_shortcode( '[wcj_currency_select_radio_list]' );
48
- break;
49
- default:
50
- echo do_shortcode( '[wcj_currency_select_drop_down_list]' );
51
- break;
 
 
 
 
52
  }
53
  echo $args['after_widget'];
54
  }
4
  *
5
  * The WooCommerce Jetpack Multicurrency Widget class.
6
  *
7
+ * @version 2.5.0
8
  * @since 2.4.3
9
  * @author Algoritmika Ltd.
10
  */
29
  /**
30
  * Outputs the content of the widget
31
  *
32
+ * @version 2.5.0
33
  * @param array $args
34
  * @param array $instance
35
  */
39
  if ( ! empty( $instance['title'] ) ) {
40
  echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
41
  }
42
+ if ( ! wcj_is_module_enabled( 'multicurrency' ) ) {
43
+ echo __( 'Multicurrency module not enabled!', 'woocommerce-jetpack' );
44
+ } else {
45
+ switch ( $instance['switcher_type'] ) {
46
+ case 'link_list':
47
+ echo do_shortcode( '[wcj_currency_select_link_list]' );
48
+ break;
49
+ case 'radio_list':
50
+ echo do_shortcode( '[wcj_currency_select_radio_list]' );
51
+ break;
52
+ default:
53
+ echo do_shortcode( '[wcj_currency_select_drop_down_list]' );
54
+ break;
55
+ }
56
  }
57
  echo $args['after_widget'];
58
  }
langs/woocommerce-jetpack.pot CHANGED
@@ -1,6113 +1,7960 @@
1
- # Copyright (C) 2015 Booster for WooCommerce
2
- # This file is distributed under the same license as the Booster for WooCommerce package.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: Booster for WooCommerce 2.2.7\n"
6
- "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocommerce-"
7
- "jetpack\n"
8
- "POT-Creation-Date: 2015-08-23 21:02:57+00:00\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
13
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
- "Language-Team: LANGUAGE <LL@li.org>\n"
15
-
16
- #: includes/add-to-cart/class-wcj-add-to-cart-per-product.php:80
17
- msgid "WooCommerce Jetpack: Custom Add to Cart"
18
- msgstr ""
19
-
20
- #: includes/add-to-cart/class-wcj-add-to-cart-per-product.php:91
21
- msgid "Single product view"
22
- msgstr ""
23
-
24
- #: includes/add-to-cart/class-wcj-add-to-cart-per-product.php:92
25
- msgid "Product category (archive) view"
26
- msgstr ""
27
-
28
- #: includes/admin/class-wc-settings-jetpack.php:26
29
- #: includes/admin/class-wc-settings-jetpack.php:261
30
- msgid "Booster"
31
- msgstr ""
32
-
33
- #: includes/admin/class-wc-settings-jetpack.php:119
34
- msgid "Save changes"
35
- msgstr ""
36
-
37
- #: includes/admin/class-wc-settings-jetpack.php:158
38
- msgid "Alphabetically"
39
- msgstr ""
40
-
41
- #: includes/admin/class-wc-settings-jetpack.php:159
42
- msgid "By Category"
43
- msgstr ""
44
-
45
- #: includes/admin/class-wc-settings-jetpack.php:160
46
- msgid "Active"
47
- msgstr ""
48
-
49
- #: includes/admin/class-wc-settings-jetpack.php:228
50
- #: includes/admin/wcj-modules-cats.php:15
51
- msgid "Dashboard"
52
- msgstr ""
53
-
54
- #: includes/admin/class-wc-settings-jetpack.php:257
55
- msgid "WooCommerce"
56
- msgstr ""
57
-
58
- #: includes/admin/class-wc-settings-jetpack.php:259
59
- #: woocommerce-jetpack.php:189
60
- msgid "Settings"
61
- msgstr ""
62
-
63
- #: includes/admin/class-wc-settings-jetpack.php:339
64
- #: includes/admin/class-wc-settings-jetpack.php:346
65
- msgid "Select All"
66
- msgstr ""
67
-
68
- #: includes/admin/class-wc-settings-jetpack.php:340
69
- #: includes/admin/class-wc-settings-jetpack.php:347
70
- msgid "Module"
71
- msgstr ""
72
-
73
- #: includes/admin/class-wc-settings-jetpack.php:341
74
- #: includes/admin/class-wc-settings-jetpack.php:348
75
- #: includes/admin/class-wcj-tools.php:80
76
- #: includes/gateways/class-wc-gateway-wcj-custom.php:61
77
- msgid "Description"
78
- msgstr ""
79
-
80
- #: includes/admin/class-wc-settings-jetpack.php:398
81
- msgid "Total Modules:"
82
- msgstr ""
83
-
84
- #: includes/admin/class-wc-settings-jetpack.php:428
85
- msgid "Booster for WooCommerce - Dashboard"
86
- msgstr ""
87
-
88
- #: includes/admin/class-wc-settings-jetpack.php:430
89
- msgid ""
90
- "This dashboard lets you enable/disable any Booster's module. Each checkbox "
91
- "comes with short module's description. Please visit <a href=\"http://"
92
- "boostwoo.com\" target=\"_blank\">BoostWoo.com</a> for detailed info on each "
93
- "feature."
94
- msgstr ""
95
-
96
- #: includes/admin/class-wcj-tools.php:32
97
- msgid "Booster for WooCommerce Tools"
98
- msgstr ""
99
-
100
- #: includes/admin/class-wcj-tools.php:32
101
- msgid "Booster Tools"
102
- msgstr ""
103
-
104
- #: includes/admin/class-wcj-tools.php:45
105
- msgid "Tools Dashboard"
106
- msgstr ""
107
-
108
- #: includes/admin/class-wcj-tools.php:74
109
- msgid "Booster for WooCommerce Tools - Dashboard"
110
- msgstr ""
111
-
112
- #: includes/admin/class-wcj-tools.php:75
113
- msgid ""
114
- "This dashboard lets you check statuses and short descriptions of all "
115
- "available Booster for WooCommerce tools. Tools can be enabled through "
116
- "WooCommerce > Settings > Booster. Enabled tools will appear in the tabs menu "
117
- "above."
118
- msgstr ""
119
-
120
- #: includes/admin/class-wcj-tools.php:78
121
- msgid "Tool"
122
- msgstr ""
123
-
124
- #: includes/admin/class-wcj-tools.php:79
125
- msgid "Status"
126
- msgstr ""
127
-
128
- #: includes/admin/wcj-modules-cats.php:25
129
- msgid "Prices & Currencies"
130
- msgstr ""
131
-
132
- #: includes/admin/wcj-modules-cats.php:37
133
- msgid "Button & Price Labels"
134
- msgstr ""
135
-
136
- #: includes/admin/wcj-modules-cats.php:48
137
- msgid "Products"
138
- msgstr ""
139
-
140
- #: includes/admin/wcj-modules-cats.php:66
141
- msgid "Cart & Checkout"
142
- msgstr ""
143
-
144
- #: includes/admin/wcj-modules-cats.php:83
145
- msgid "Shipping & Orders"
146
- msgstr ""
147
-
148
- #: includes/admin/wcj-modules-cats.php:96
149
- msgid "PDF Invoicing & Packing Slips"
150
- msgstr ""
151
-
152
- #: includes/admin/wcj-modules-cats.php:112
153
- msgid "Emails & Misc."
154
- msgstr ""
155
-
156
- #: includes/class-wcj-add-to-cart.php:51
157
- msgid "Per Product Type Options"
158
- msgstr ""
159
-
160
- #: includes/class-wcj-add-to-cart.php:54
161
- #: includes/class-wcj-add-to-cart.php:195
162
- msgid "Per Product Labels"
163
- msgstr ""
164
-
165
- #: includes/class-wcj-add-to-cart.php:55
166
- #: includes/class-wcj-add-to-cart.php:196
167
- #: includes/class-wcj-add-to-cart.php:220
168
- #: includes/class-wcj-product-images.php:183
169
- #: includes/class-wcj-product-images.php:260
170
- msgid "Enable Section"
171
- msgstr ""
172
-
173
- #: includes/class-wcj-add-to-cart.php:65
174
- msgid "Simple product"
175
- msgstr ""
176
-
177
- #: includes/class-wcj-add-to-cart.php:70
178
- msgid "Variable product"
179
- msgstr ""
180
-
181
- #: includes/class-wcj-add-to-cart.php:75
182
- msgid "External product"
183
- msgstr ""
184
-
185
- #: includes/class-wcj-add-to-cart.php:80
186
- msgid "Grouped product"
187
- msgstr ""
188
-
189
- #: includes/class-wcj-add-to-cart.php:85
190
- msgid "Other product"
191
- msgstr ""
192
-
193
- #: includes/class-wcj-add-to-cart.php:96
194
- msgid "Single product view."
195
- msgstr ""
196
-
197
- #: includes/class-wcj-add-to-cart.php:97
198
- #: includes/class-wcj-add-to-cart.php:108
199
- #: includes/class-wcj-add-to-cart.php:154
200
- #: includes/class-wcj-add-to-cart.php:167
201
- #: includes/class-wcj-payment-gateways-fees.php:153
202
- msgid "Leave blank to disable."
203
- msgstr ""
204
-
205
- #: includes/class-wcj-add-to-cart.php:97
206
- #: includes/class-wcj-add-to-cart.php:108
207
- #: includes/class-wcj-add-to-cart.php:156
208
- #: includes/class-wcj-add-to-cart.php:169 includes/class-wcj-sorting.php:213
209
- #: includes/class-wcj-sorting.php:223 includes/class-wcj-sorting.php:233
210
- #: includes/class-wcj-sorting.php:243 includes/class-wcj-sorting.php:264
211
- #: includes/class-wcj-sorting.php:274
212
- msgid "Default: "
213
- msgstr ""
214
-
215
- #: includes/class-wcj-add-to-cart.php:107
216
- msgid "Product category (archive) view."
217
- msgstr ""
218
-
219
- #: includes/class-wcj-add-to-cart.php:119
220
- msgid "Products with price set to 0 (i.e. free). Single product view."
221
- msgstr ""
222
-
223
- #: includes/class-wcj-add-to-cart.php:120
224
- #: includes/class-wcj-add-to-cart.php:129
225
- msgid "Leave blank to disable. Default: Add to cart"
226
- msgstr ""
227
-
228
- #: includes/class-wcj-add-to-cart.php:122
229
- #: includes/class-wcj-add-to-cart.php:131
230
- #: includes/class-wcj-add-to-cart.php:156
231
- #: includes/class-wcj-add-to-cart.php:157
232
- #: includes/class-wcj-add-to-cart.php:169
233
- #: includes/class-wcj-add-to-cart.php:170
234
- msgid "Add to cart"
235
- msgstr ""
236
-
237
- #: includes/class-wcj-add-to-cart.php:128
238
- msgid ""
239
- "Products with price set to 0 (i.e. free). Product category (archive) view."
240
- msgstr ""
241
-
242
- #: includes/class-wcj-add-to-cart.php:138
243
- msgid "Products with empty price. Product category (archive) view."
244
- msgstr ""
245
-
246
- #: includes/class-wcj-add-to-cart.php:139
247
- msgid "Leave blank to disable. Default: Read More"
248
- msgstr ""
249
-
250
- #: includes/class-wcj-add-to-cart.php:141
251
- msgid "Read More"
252
- msgstr ""
253
-
254
- #: includes/class-wcj-add-to-cart.php:153
255
- msgid "Already in cart. Single product view."
256
- msgstr ""
257
-
258
- #: includes/class-wcj-add-to-cart.php:155
259
- #: includes/class-wcj-add-to-cart.php:168
260
- msgid "Try: "
261
- msgstr ""
262
-
263
- #: includes/class-wcj-add-to-cart.php:155
264
- #: includes/class-wcj-add-to-cart.php:168
265
- msgid "Already in cart - Add Again?"
266
- msgstr ""
267
-
268
- #: includes/class-wcj-add-to-cart.php:166
269
- msgid "Already in cart. Product category (archive) view."
270
- msgstr ""
271
-
272
- #: includes/class-wcj-add-to-cart.php:189
273
- msgid "Per Product Options"
274
- msgstr ""
275
-
276
- #: includes/class-wcj-add-to-cart.php:191
277
- msgid ""
278
- "This section lets you set Add to Cart button text on per product basis. When "
279
- "enabled, label for each product can be changed in \"Edit Product\"."
280
- msgstr ""
281
-
282
- #: includes/class-wcj-add-to-cart.php:216
283
- msgid "Per Category Options"
284
- msgstr ""
285
-
286
- #: includes/class-wcj-add-to-cart.php:216
287
- msgid ""
288
- "This sections lets you set Add to Cart button text on per category basis."
289
- msgstr ""
290
-
291
- #: includes/class-wcj-add-to-cart.php:219
292
- msgid "Per Category Labels"
293
- msgstr ""
294
-
295
- #: includes/class-wcj-add-to-cart.php:228
296
- msgid "Category Groups Number"
297
- msgstr ""
298
-
299
- #: includes/class-wcj-add-to-cart.php:229
300
- #: includes/class-wcj-checkout-custom-fields.php:322
301
- #: includes/class-wcj-product-input-fields.php:193
302
- #: includes/class-wcj-product-tabs.php:327
303
- msgid "Click \"Save changes\" after you change this number."
304
- msgstr ""
305
-
306
- #: includes/class-wcj-add-to-cart.php:266
307
- #: includes/class-wcj-price-by-country.php:142
308
- #: includes/class-wcj-price-by-country.php:208
309
- msgid "Group"
310
- msgstr ""
311
-
312
- #: includes/class-wcj-add-to-cart.php:267
313
- #: includes/class-wcj-admin-tools.php:109
314
- #: includes/class-wcj-admin-tools.php:117
315
- #: includes/class-wcj-checkout-custom-fields.php:298
316
- #: includes/class-wcj-checkout-custom-fields.php:306
317
- #: includes/class-wcj-general.php:74 includes/class-wcj-order-numbers.php:165
318
- #: includes/class-wcj-orders.php:245
319
- #: includes/class-wcj-price-by-country.php:115
320
- #: includes/class-wcj-price-labels.php:632
321
- #: includes/class-wcj-product-add-to-cart.php:56
322
- #: includes/class-wcj-product-add-to-cart.php:78
323
- #: includes/class-wcj-product-info.php:620
324
- #: includes/class-wcj-product-info.php:739
325
- #: includes/class-wcj-product-info.php:776
326
- #: includes/class-wcj-product-input-fields.php:152
327
- #: includes/class-wcj-product-input-fields.php:184
328
- #: includes/class-wcj-product-input-fields.php:230
329
- #: includes/class-wcj-shipping-calculator.php:129
330
- #: includes/class-wcj-shipping-calculator.php:137
331
- #: includes/class-wcj-shipping-calculator.php:145
332
- #: includes/class-wcj-shipping-calculator.php:153
333
- #: includes/class-wcj-sorting.php:205
334
- #: includes/class-wcj-wholesale-price.php:201
335
- #: includes/class-wcj-wholesale-price.php:209
336
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:177
337
- msgid "Enable"
338
- msgstr ""
339
-
340
- #: includes/class-wcj-add-to-cart.php:283
341
- #: includes/class-wcj-checkout-custom-fields.php:461
342
- msgid "categories"
343
- msgstr ""
344
-
345
- #: includes/class-wcj-add-to-cart.php:294
346
- msgid "Button text - single product view"
347
- msgstr ""
348
-
349
- #: includes/class-wcj-add-to-cart.php:302
350
- msgid "Button text - product archive (category) view"
351
- msgstr ""
352
-
353
- #: includes/class-wcj-add-to-cart.php:327
354
- msgid "Add to Cart Options"
355
- msgstr ""
356
-
357
- #: includes/class-wcj-add-to-cart.php:330
358
- #: includes/class-wcj-add-to-cart.php:354
359
- msgid "Add to Cart Labels"
360
- msgstr ""
361
-
362
- #: includes/class-wcj-add-to-cart.php:331
363
- #: includes/class-wcj-call-for-price.php:89
364
- #: includes/class-wcj-currencies.php:113
365
- #: includes/class-wcj-currency-external-products.php:72
366
- #: includes/class-wcj-emails.php:131 includes/class-wcj-old-slugs.php:95
367
- #: includes/class-wcj-pdf-invoices.php:926
368
- #: includes/class-wcj-pdf-invoicing.php:156
369
- #: includes/class-wcj-price-by-country.php:71
370
- #: includes/class-wcj-price-labels.php:535
371
- #: includes/class-wcj-product-bulk-price-converter.php:262
372
- #: includes/class-wcj-product-info.php:711
373
- #: includes/class-wcj-product-input-fields.php:132
374
- #: includes/class-wcj-product-listings.php:60
375
- #: includes/class-wcj-product-tabs.php:314 includes/class-wcj-reports.php:278
376
- #: includes/class-wcj-shipping-calculator.php:120
377
- #: includes/class-wcj-shipping.php:156
378
- #: includes/classes/class-wcj-module.php:248
379
- msgid "Enable Module"
380
- msgstr ""
381
-
382
- #: includes/class-wcj-add-to-cart.php:332
383
- msgid ""
384
- "Change text for Add to Cart button by WooCommerce product type, by product "
385
- "category or for individual products."
386
- msgstr ""
387
-
388
- #: includes/class-wcj-address-formats.php:24
389
- msgid "Address Formats"
390
- msgstr ""
391
-
392
- #: includes/class-wcj-address-formats.php:25
393
- msgid ""
394
- "Set address format in WooCommerce orders on per country basis. Force base "
395
- "country display."
396
- msgstr ""
397
-
398
- #: includes/class-wcj-address-formats.php:125
399
- #: includes/class-wcj-address-formats.php:131
400
- msgid "Force Base Country Display"
401
- msgstr ""
402
-
403
- #: includes/class-wcj-address-formats.php:127
404
- msgid "Force Base Country Display Options."
405
- msgstr ""
406
-
407
- #: includes/class-wcj-address-formats.php:143
408
- msgid "Address Formats by Country"
409
- msgstr ""
410
-
411
- #: includes/class-wcj-address-formats.php:145
412
- msgid "Address Formats by Country Options."
413
- msgstr ""
414
-
415
- #: includes/class-wcj-admin-tools.php:25 includes/class-wcj-admin-tools.php:29
416
- #: includes/class-wcj-admin-tools.php:48
417
- msgid "Admin Tools"
418
- msgstr ""
419
-
420
- #: includes/class-wcj-admin-tools.php:26
421
- msgid "Booster for WooCommerce debug and log tools."
422
- msgstr ""
423
-
424
- #: includes/class-wcj-admin-tools.php:45
425
- #: includes/class-wcj-checkout-custom-fields.php:352
426
- #: includes/class-wcj-old-slugs.php:49
427
- #: includes/class-wcj-order-custom-statuses.php:132
428
- #: includes/class-wcj-order-numbers.php:68
429
- #: includes/class-wcj-price-labels.php:114
430
- #: includes/class-wcj-product-bulk-price-converter.php:228
431
- #: includes/class-wcj-sku.php:193
432
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:32
433
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:33
434
- msgid "enabled"
435
- msgstr ""
436
-
437
- #: includes/class-wcj-admin-tools.php:47 includes/class-wcj-old-slugs.php:51
438
- #: includes/class-wcj-order-custom-statuses.php:133
439
- #: includes/class-wcj-order-numbers.php:70
440
- #: includes/class-wcj-price-labels.php:116
441
- #: includes/class-wcj-product-bulk-price-converter.php:230
442
- #: includes/class-wcj-sku.php:195
443
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:34
444
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:35
445
- msgid "disabled"
446
- msgstr ""
447
-
448
- #: includes/class-wcj-admin-tools.php:50
449
- msgid "Log."
450
- msgstr ""
451
-
452
- #: includes/class-wcj-admin-tools.php:60
453
- msgid "Log"
454
- msgstr ""
455
-
456
- #: includes/class-wcj-admin-tools.php:75
457
- msgid "Log deleted successfully."
458
- msgstr ""
459
-
460
- #: includes/class-wcj-admin-tools.php:81
461
- msgid "Delete Log"
462
- msgstr ""
463
-
464
- #: includes/class-wcj-admin-tools.php:105
465
- msgid "Admin Tools Options"
466
- msgstr ""
467
-
468
- #: includes/class-wcj-admin-tools.php:108
469
- msgid "Logging"
470
- msgstr ""
471
-
472
- #: includes/class-wcj-admin-tools.php:116
473
- msgid "Debug"
474
- msgstr ""
475
-
476
- #: includes/class-wcj-call-for-price.php:81
477
- msgid "Call for Price Options"
478
- msgstr ""
479
-
480
- #: includes/class-wcj-call-for-price.php:83
481
- msgid ""
482
- "Leave price empty when adding or editing products. Then set the options here."
483
- msgstr ""
484
-
485
- #: includes/class-wcj-call-for-price.php:88
486
- #: includes/class-wcj-call-for-price.php:175
487
- msgid "Call for Price"
488
- msgstr ""
489
-
490
- #: includes/class-wcj-call-for-price.php:90
491
- msgid ""
492
- "Create any custom price label for all WooCommerce products with empty price."
493
- msgstr ""
494
-
495
- #: includes/class-wcj-call-for-price.php:97
496
- msgid "Label to Show on Single"
497
- msgstr ""
498
-
499
- #: includes/class-wcj-call-for-price.php:98
500
- #: includes/class-wcj-call-for-price.php:110
501
- #: includes/class-wcj-call-for-price.php:122
502
- #: includes/class-wcj-call-for-price.php:134
503
- msgid "This sets the html to output on empty price. Leave blank to disable."
504
- msgstr ""
505
-
506
- #: includes/class-wcj-call-for-price.php:109
507
- msgid "Label to Show on Archives"
508
- msgstr ""
509
-
510
- #: includes/class-wcj-call-for-price.php:121
511
- msgid "Label to Show on Homepage"
512
- msgstr ""
513
-
514
- #: includes/class-wcj-call-for-price.php:133
515
- msgid "Label to Show on Related"
516
- msgstr ""
517
-
518
- #: includes/class-wcj-call-for-price.php:145
519
- msgid "Hide Sale! Tag"
520
- msgstr ""
521
-
522
- #: includes/class-wcj-call-for-price.php:146
523
- msgid "Hide the tag"
524
- msgstr ""
525
-
526
- #: includes/class-wcj-cart.php:23
527
- msgid "Cart"
528
- msgstr ""
529
-
530
- #: includes/class-wcj-cart.php:24
531
- msgid "Add custom info to WooCommerce cart page. Add empty cart button."
532
- msgstr ""
533
-
534
- #: includes/class-wcj-cart.php:83
535
- msgid "Cart Custom Info Blocks"
536
- msgstr ""
537
-
538
- #: includes/class-wcj-cart.php:86
539
- #: includes/class-wcj-checkout-custom-info.php:51
540
- #: includes/class-wcj-mini-cart.php:48
541
- msgid "Total Blocks"
542
- msgstr ""
543
-
544
- #: includes/class-wcj-cart.php:103
545
- #: includes/class-wcj-checkout-custom-info.php:68
546
- #: includes/class-wcj-mini-cart.php:66
547
- msgid "Info Block"
548
- msgstr ""
549
-
550
- #: includes/class-wcj-cart.php:106
551
- #: includes/class-wcj-checkout-custom-info.php:71
552
- #: includes/class-wcj-mini-cart.php:69 includes/class-wcj-product-tabs.php:248
553
- #: includes/class-wcj-product-tabs.php:357
554
- msgid "Content"
555
- msgstr ""
556
-
557
- #: includes/class-wcj-cart.php:114
558
- #: includes/class-wcj-checkout-custom-info.php:79
559
- #: includes/class-wcj-mini-cart.php:78 includes/class-wcj-product-info.php:628
560
- #: includes/class-wcj-product-info.php:756
561
- #: includes/class-wcj-product-info.php:796
562
- msgid "Position"
563
- msgstr ""
564
-
565
- #: includes/class-wcj-cart.php:120
566
- msgid "Before cart"
567
- msgstr ""
568
-
569
- #: includes/class-wcj-cart.php:121
570
- msgid "Before cart table"
571
- msgstr ""
572
-
573
- #: includes/class-wcj-cart.php:122
574
- msgid "Before cart contents"
575
- msgstr ""
576
-
577
- #: includes/class-wcj-cart.php:123
578
- msgid "Cart contents"
579
- msgstr ""
580
-
581
- #: includes/class-wcj-cart.php:124
582
- msgid "Cart coupon"
583
- msgstr ""
584
-
585
- #: includes/class-wcj-cart.php:125
586
- msgid "Cart actions"
587
- msgstr ""
588
-
589
- #: includes/class-wcj-cart.php:126
590
- msgid "After cart contents"
591
- msgstr ""
592
-
593
- #: includes/class-wcj-cart.php:127
594
- msgid "After cart table"
595
- msgstr ""
596
-
597
- #: includes/class-wcj-cart.php:128
598
- msgid "Cart collaterals"
599
- msgstr ""
600
-
601
- #: includes/class-wcj-cart.php:129
602
- msgid "After cart"
603
- msgstr ""
604
-
605
- #: includes/class-wcj-cart.php:131
606
- msgid "Before cart totals"
607
- msgstr ""
608
-
609
- #: includes/class-wcj-cart.php:132
610
- msgid "Cart totals: Before shipping"
611
- msgstr ""
612
-
613
- #: includes/class-wcj-cart.php:133
614
- msgid "Cart totals: After shipping"
615
- msgstr ""
616
-
617
- #: includes/class-wcj-cart.php:134
618
- msgid "Cart totals: Before order total"
619
- msgstr ""
620
-
621
- #: includes/class-wcj-cart.php:135
622
- msgid "Cart totals: After order total"
623
- msgstr ""
624
-
625
- #: includes/class-wcj-cart.php:136
626
- msgid "Proceed to checkout"
627
- msgstr ""
628
-
629
- #: includes/class-wcj-cart.php:137
630
- msgid "After cart totals"
631
- msgstr ""
632
-
633
- #: includes/class-wcj-cart.php:139
634
- msgid "Before shipping calculator"
635
- msgstr ""
636
-
637
- #: includes/class-wcj-cart.php:140
638
- msgid "After shipping calculator"
639
- msgstr ""
640
-
641
- #: includes/class-wcj-cart.php:142
642
- msgid "If cart is empty"
643
- msgstr ""
644
-
645
- #: includes/class-wcj-cart.php:148 includes/class-wcj-mini-cart.php:92
646
- #: includes/class-wcj-product-tabs.php:243
647
- msgid "Priority"
648
- msgstr ""
649
-
650
- #: includes/class-wcj-checkout-core-fields.php:64
651
- msgid "Checkout Core Fields"
652
- msgstr ""
653
-
654
- #: includes/class-wcj-checkout-core-fields.php:65
655
- msgid ""
656
- "Customize WooCommerce core checkout fields. Disable/enable fields, set "
657
- "required, change labels and/or placeholders."
658
- msgstr ""
659
-
660
- #: includes/class-wcj-checkout-core-fields.php:161
661
- msgid "Checkout Core Fields Options"
662
- msgstr ""
663
-
664
- #: includes/class-wcj-checkout-core-fields.php:229
665
- msgid "Leave blank for WooCommerce defaults."
666
- msgstr ""
667
-
668
- #: includes/class-wcj-checkout-core-fields.php:244
669
- #: includes/class-wcj-product-info.php:675
670
- msgid "Default"
671
- msgstr ""
672
-
673
- #: includes/class-wcj-checkout-core-fields.php:245
674
- msgid "Align Left"
675
- msgstr ""
676
-
677
- #: includes/class-wcj-checkout-core-fields.php:246
678
- msgid "Align Right"
679
- msgstr ""
680
-
681
- #: includes/class-wcj-checkout-core-fields.php:247
682
- msgid "Full Row"
683
- msgstr ""
684
-
685
- #: includes/class-wcj-checkout-custom-fields.php:23
686
- msgid "Checkout Custom Fields"
687
- msgstr ""
688
-
689
- #: includes/class-wcj-checkout-custom-fields.php:24
690
- msgid "Add custom fields to WooCommerce checkout page."
691
- msgstr ""
692
-
693
- #: includes/class-wcj-checkout-custom-fields.php:290
694
- msgid "Checkout Custom Fields Options"
695
- msgstr ""
696
-
697
- #: includes/class-wcj-checkout-custom-fields.php:297
698
- msgid "Add All Fields to Admin Emails"
699
- msgstr ""
700
-
701
- #: includes/class-wcj-checkout-custom-fields.php:305
702
- msgid "Add All Fields to Customers Emails"
703
- msgstr ""
704
-
705
- #: includes/class-wcj-checkout-custom-fields.php:315
706
- msgid "The Fields"
707
- msgstr ""
708
-
709
- #: includes/class-wcj-checkout-custom-fields.php:321
710
- msgid "Custom Fields Number"
711
- msgstr ""
712
-
713
- #: includes/class-wcj-checkout-custom-fields.php:351
714
- msgid "Custom Field"
715
- msgstr ""
716
-
717
- #: includes/class-wcj-checkout-custom-fields.php:359
718
- msgid "type"
719
- msgstr ""
720
-
721
- #: includes/class-wcj-checkout-custom-fields.php:364
722
- #: includes/class-wcj-more-button-labels.php:49
723
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:44
724
- msgid "Text"
725
- msgstr ""
726
-
727
- #: includes/class-wcj-checkout-custom-fields.php:365
728
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:45
729
- msgid "Textarea"
730
- msgstr ""
731
-
732
- #: includes/class-wcj-checkout-custom-fields.php:367
733
- msgid "Datepicker"
734
- msgstr ""
735
-
736
- #: includes/class-wcj-checkout-custom-fields.php:368
737
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:47
738
- msgid "Checkbox"
739
- msgstr ""
740
-
741
- #: includes/class-wcj-checkout-custom-fields.php:370
742
- msgid "Password"
743
- msgstr ""
744
-
745
- #: includes/class-wcj-checkout-custom-fields.php:376
746
- msgid "required"
747
- msgstr ""
748
-
749
- #: includes/class-wcj-checkout-custom-fields.php:383
750
- msgid "label"
751
- msgstr ""
752
-
753
- #: includes/class-wcj-checkout-custom-fields.php:405
754
- msgid "placeholder"
755
- msgstr ""
756
-
757
- #: includes/class-wcj-checkout-custom-fields.php:414
758
- msgid "section"
759
- msgstr ""
760
-
761
- #: includes/class-wcj-checkout-custom-fields.php:419
762
- #: includes/class-wcj-checkout-custom-info.php:86
763
- msgid "Billing"
764
- msgstr ""
765
-
766
- #: includes/class-wcj-checkout-custom-fields.php:420
767
- #: includes/class-wcj-checkout-custom-info.php:87
768
- #: includes/class-wcj-pdf-invoices.php:1255
769
- #: includes/class-wcj-shipping.php:155 includes/class-wcj-shipping.php:200
770
- msgid "Shipping"
771
- msgstr ""
772
-
773
- #: includes/class-wcj-checkout-custom-fields.php:421
774
- msgid "Order Notes"
775
- msgstr ""
776
-
777
- #: includes/class-wcj-checkout-custom-fields.php:422
778
- msgid "Account"
779
- msgstr ""
780
-
781
- #: includes/class-wcj-checkout-custom-fields.php:429
782
- msgid "class"
783
- msgstr ""
784
-
785
- #: includes/class-wcj-checkout-custom-fields.php:434
786
- msgid "Wide"
787
- msgstr ""
788
-
789
- #: includes/class-wcj-checkout-custom-fields.php:435
790
- msgid "First"
791
- msgstr ""
792
-
793
- #: includes/class-wcj-checkout-custom-fields.php:436
794
- msgid "Last"
795
- msgstr ""
796
-
797
- #: includes/class-wcj-checkout-custom-fields.php:443
798
- msgid "clear"
799
- msgstr ""
800
-
801
- #: includes/class-wcj-checkout-custom-info.php:24
802
- msgid "Checkout Custom Info"
803
- msgstr ""
804
-
805
- #: includes/class-wcj-checkout-custom-info.php:25
806
- msgid "Add custom info to WooCommerce checkout page."
807
- msgstr ""
808
-
809
- #: includes/class-wcj-checkout-custom-info.php:48
810
- msgid "Checkout Custom Info Blocks"
811
- msgstr ""
812
-
813
- #: includes/class-wcj-checkout-custom-info.php:84
814
- msgid "Before checkout form"
815
- msgstr ""
816
-
817
- #: includes/class-wcj-checkout-custom-info.php:85
818
- msgid "Before customer details"
819
- msgstr ""
820
-
821
- #: includes/class-wcj-checkout-custom-info.php:88
822
- msgid "After customer details"
823
- msgstr ""
824
-
825
- #: includes/class-wcj-checkout-custom-info.php:89
826
- msgid "Before order review"
827
- msgstr ""
828
-
829
- #: includes/class-wcj-checkout-custom-info.php:90
830
- msgid "Order review"
831
- msgstr ""
832
-
833
- #: includes/class-wcj-checkout-custom-info.php:91
834
- msgid "After order review"
835
- msgstr ""
836
-
837
- #: includes/class-wcj-checkout-custom-info.php:92
838
- msgid "After checkout form"
839
- msgstr ""
840
-
841
- #: includes/class-wcj-checkout-custom-info.php:115
842
- msgid "Order (i.e. Priority)"
843
- msgstr ""
844
-
845
- #: includes/class-wcj-crowdfunding.php:24
846
- msgid "Crowdfunding"
847
- msgstr ""
848
-
849
- #: includes/class-wcj-crowdfunding.php:25
850
- msgid "Add crowdfunding products to WooCommerce."
851
- msgstr ""
852
-
853
- #: includes/class-wcj-crowdfunding.php:62
854
- msgid "Goal"
855
- msgstr ""
856
-
857
- #: includes/class-wcj-crowdfunding.php:68
858
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:92
859
- msgid "Start Date"
860
- msgstr ""
861
-
862
- #: includes/class-wcj-crowdfunding.php:74
863
- msgid "Deadline"
864
- msgstr ""
865
-
866
- #: includes/class-wcj-crowdfunding.php:83
867
- msgid "When enabled, module will add Crowdfunding metabox to product edit."
868
- msgstr ""
869
-
870
- #: includes/class-wcj-crowdfunding.php:85
871
- msgid "To add crowdfunding info to the product, use these shortcodes:"
872
- msgstr ""
873
-
874
- #: includes/class-wcj-crowdfunding.php:93
875
- msgid "Shortcodes could be used in \"Product Info\" module."
876
- msgstr ""
877
-
878
- #: includes/class-wcj-crowdfunding.php:95
879
- msgid "To change add to cart button labels use \"Add to Cart Labels\" module."
880
- msgstr ""
881
-
882
- #: includes/class-wcj-currencies.php:75
883
- #: includes/class-wcj-currency-external-products.php:80
884
- msgid "Currency Symbol"
885
- msgstr ""
886
-
887
- #: includes/class-wcj-currencies.php:76
888
- msgid "This sets the currency symbol."
889
- msgstr ""
890
-
891
- #: includes/class-wcj-currencies.php:109
892
- msgid "Currencies Options"
893
- msgstr ""
894
-
895
- #: includes/class-wcj-currencies.php:112 includes/class-wcj-currencies.php:154
896
- msgid "Currencies"
897
- msgstr ""
898
-
899
- #: includes/class-wcj-currencies.php:114
900
- msgid ""
901
- "Add all world currencies to your WooCommerce store; change currency symbol."
902
- msgstr ""
903
-
904
- #: includes/class-wcj-currencies.php:122
905
- msgid "Currency Symbol Options"
906
- msgstr ""
907
-
908
- #: includes/class-wcj-currencies.php:125
909
- msgid "Hide Currency Symbol"
910
- msgstr ""
911
-
912
- #: includes/class-wcj-currencies.php:126
913
- #: includes/class-wcj-product-images.php:191
914
- #: includes/class-wcj-product-images.php:217
915
- #: includes/class-wcj-product-images.php:225
916
- #: includes/class-wcj-product-images.php:242
917
- #: includes/class-wcj-related-products.php:157
918
- #: includes/class-wcj-shipping-calculator.php:167
919
- msgid "Hide"
920
- msgstr ""
921
-
922
- #: includes/class-wcj-currencies.php:127
923
- msgid "Default: no."
924
- msgstr ""
925
-
926
- #: includes/class-wcj-currency-external-products.php:68
927
- msgid "Currency for External Products Options"
928
- msgstr ""
929
-
930
- #: includes/class-wcj-currency-external-products.php:71
931
- #: includes/class-wcj-currency-external-products.php:99
932
- msgid "Currency for External Products"
933
- msgstr ""
934
-
935
- #: includes/class-wcj-currency-external-products.php:73
936
- msgid "Set different currency for external WooCommerce products."
937
- msgstr ""
938
-
939
- #: includes/class-wcj-currency-external-products.php:81
940
- #: includes/class-wcj-currency-external-products.php:82
941
- msgid "Set currency symbol for all external products."
942
- msgstr ""
943
-
944
- #: includes/class-wcj-emails.php:69
945
- msgid "WooCommerce Jetpack: Email Forwarding Options"
946
- msgstr ""
947
-
948
- #: includes/class-wcj-emails.php:69 includes/class-wcj-emails.php:148
949
- msgid ""
950
- "This section lets you add another email recipient(s) to all WooCommerce "
951
- "emails. Leave blank to disable."
952
- msgstr ""
953
-
954
- #: includes/class-wcj-emails.php:73 includes/class-wcj-emails.php:151
955
- msgid "Cc Email"
956
- msgstr ""
957
-
958
- #: includes/class-wcj-emails.php:75 includes/class-wcj-emails.php:153
959
- msgid "Cc to email, e.g. youremail@yourdomain.com. Leave blank to disable."
960
- msgstr ""
961
-
962
- #: includes/class-wcj-emails.php:85 includes/class-wcj-emails.php:162
963
- msgid "Bcc Email"
964
- msgstr ""
965
-
966
- #: includes/class-wcj-emails.php:87 includes/class-wcj-emails.php:164
967
- msgid "Bcc to email, e.g. youremail@yourdomain.com. Leave blank to disable."
968
- msgstr ""
969
-
970
- #: includes/class-wcj-emails.php:127
971
- msgid "Emails Options"
972
- msgstr ""
973
-
974
- #: includes/class-wcj-emails.php:130 includes/class-wcj-emails.php:182
975
- msgid "Emails"
976
- msgstr ""
977
-
978
- #: includes/class-wcj-emails.php:132
979
- msgid "Add another email recipient(s) to all WooCommerce emails."
980
- msgstr ""
981
-
982
- #: includes/class-wcj-emails.php:148
983
- msgid "Email Forwarding Options"
984
- msgstr ""
985
-
986
- #: includes/class-wcj-empty-cart-button.php:24
987
- msgid "Empty Cart Button"
988
- msgstr ""
989
-
990
- #: includes/class-wcj-empty-cart-button.php:25
991
- msgid "Add and customize \"Empty Cart\" button to cart page."
992
- msgstr ""
993
-
994
- #: includes/class-wcj-empty-cart-button.php:96
995
- msgid "Empty Cart Options"
996
- msgstr ""
997
-
998
- #: includes/class-wcj-empty-cart-button.php:96
999
- msgid ""
1000
- "This section lets you add and customize \"Empty Cart\" button to cart page."
1001
- msgstr ""
1002
-
1003
- #: includes/class-wcj-empty-cart-button.php:107
1004
- msgid "Empty Cart Button Text"
1005
- msgstr ""
1006
-
1007
- #: includes/class-wcj-empty-cart-button.php:117
1008
- msgid "Wrapping DIV style"
1009
- msgstr ""
1010
-
1011
- #: includes/class-wcj-empty-cart-button.php:118
1012
- msgid "Style for the button's div. Default is \"float: right;\""
1013
- msgstr ""
1014
-
1015
- #: includes/class-wcj-empty-cart-button.php:128
1016
- msgid "Button position on the Cart page"
1017
- msgstr ""
1018
-
1019
- #: includes/class-wcj-empty-cart-button.php:133
1020
- msgid "After Cart"
1021
- msgstr ""
1022
-
1023
- #: includes/class-wcj-empty-cart-button.php:134
1024
- msgid "Before Cart"
1025
- msgstr ""
1026
-
1027
- #: includes/class-wcj-empty-cart-button.php:135
1028
- msgid "After Proceed to Checkout button"
1029
- msgstr ""
1030
-
1031
- #: includes/class-wcj-empty-cart-button.php:136
1032
- msgid "After Cart Totals"
1033
- msgstr ""
1034
-
1035
- #: includes/class-wcj-empty-cart-button.php:144
1036
- msgid "Confirmation"
1037
- msgstr ""
1038
-
1039
- #: includes/class-wcj-empty-cart-button.php:149
1040
- msgid "No confirmation"
1041
- msgstr ""
1042
-
1043
- #: includes/class-wcj-empty-cart-button.php:150
1044
- msgid "Confirm by pop up box"
1045
- msgstr ""
1046
-
1047
- #: includes/class-wcj-empty-cart-button.php:158
1048
- msgid "Confirmation Text (if enabled)"
1049
- msgstr ""
1050
-
1051
- #: includes/class-wcj-empty-cart-button.php:160
1052
- msgid "Are you sure?"
1053
- msgstr ""
1054
-
1055
- #: includes/class-wcj-general.php:23 includes/class-wcj-pdf-invoicing.php:198
1056
- msgid "General"
1057
- msgstr ""
1058
-
1059
- #: includes/class-wcj-general.php:24
1060
- msgid ""
1061
- "Separate custom CSS for front and back end. Shortcodes in Wordpress text "
1062
- "widgets."
1063
- msgstr ""
1064
-
1065
- #: includes/class-wcj-general.php:66 includes/class-wcj-shortcodes.php:61
1066
- msgid "Shortcodes Options"
1067
- msgstr ""
1068
-
1069
- #: includes/class-wcj-general.php:73
1070
- msgid "Enable Shortcodes in WordPress Text Widgets"
1071
- msgstr ""
1072
-
1073
- #: includes/class-wcj-general.php:86
1074
- msgid "Custom CSS Options"
1075
- msgstr ""
1076
-
1077
- #: includes/class-wcj-general.php:88
1078
- msgid "Another custom CSS, if you need one."
1079
- msgstr ""
1080
-
1081
- #: includes/class-wcj-general.php:93
1082
- msgid "Custom CSS - Front end (Customers)"
1083
- msgstr ""
1084
-
1085
- #: includes/class-wcj-general.php:101
1086
- msgid "Custom CSS - Back end (Admin)"
1087
- msgstr ""
1088
-
1089
- #: includes/class-wcj-mini-cart.php:24
1090
- msgid "Mini Cart"
1091
- msgstr ""
1092
-
1093
- #: includes/class-wcj-mini-cart.php:25
1094
- msgid "Customize WooCommerce mini cart widget."
1095
- msgstr ""
1096
-
1097
- #: includes/class-wcj-mini-cart.php:45
1098
- msgid "Mini Cart Custom Info Blocks"
1099
- msgstr ""
1100
-
1101
- #: includes/class-wcj-mini-cart.php:84
1102
- msgid "Before mini cart"
1103
- msgstr ""
1104
-
1105
- #: includes/class-wcj-mini-cart.php:85
1106
- msgid "Before buttons"
1107
- msgstr ""
1108
-
1109
- #: includes/class-wcj-mini-cart.php:86
1110
- msgid "After mini cart"
1111
- msgstr ""
1112
-
1113
- #: includes/class-wcj-more-button-labels.php:24
1114
- msgid "More Button Labels"
1115
- msgstr ""
1116
-
1117
- #: includes/class-wcj-more-button-labels.php:25
1118
- msgid "Set WooCommerce \"Place order\" button label."
1119
- msgstr ""
1120
-
1121
- #: includes/class-wcj-more-button-labels.php:43
1122
- msgid "Place order (Order now) Button"
1123
- msgstr ""
1124
-
1125
- #: includes/class-wcj-more-button-labels.php:50
1126
- msgid "leave blank for WooCommerce default"
1127
- msgstr ""
1128
-
1129
- #: includes/class-wcj-more-button-labels.php:51
1130
- msgid "Button on the checkout page."
1131
- msgstr ""
1132
-
1133
- #: includes/class-wcj-old-slugs.php:52 includes/class-wcj-old-slugs.php:64
1134
- msgid "Remove Old Slugs"
1135
- msgstr ""
1136
-
1137
- #: includes/class-wcj-old-slugs.php:54 includes/class-wcj-old-slugs.php:170
1138
- msgid "Tool removes old slugs/permalinks from database."
1139
- msgstr ""
1140
-
1141
- #: includes/class-wcj-old-slugs.php:87
1142
- msgid "Old Slugs Options"
1143
- msgstr ""
1144
-
1145
- #: includes/class-wcj-old-slugs.php:89
1146
- msgid ""
1147
- "When enabled, the tool is accessible through <a href=\"%sadmin.php?page=wcj-"
1148
- "tools&tab=old_slugs\">WooCommerce > Jetpack Tools > Remove Old Slugs</a>."
1149
- msgstr ""
1150
-
1151
- #: includes/class-wcj-old-slugs.php:94 includes/class-wcj-old-slugs.php:114
1152
- msgid "Old Slugs"
1153
- msgstr ""
1154
-
1155
- #: includes/class-wcj-old-slugs.php:96
1156
- msgid "Remove old WooCommerce products slugs."
1157
- msgstr ""
1158
-
1159
- #: includes/class-wcj-old-slugs.php:169
1160
- msgid "WooCommerce Jetpack - Remove Old Product Slugs"
1161
- msgstr ""
1162
-
1163
- #: includes/class-wcj-old-slugs.php:175
1164
- msgid "Old products slugs found:"
1165
- msgstr ""
1166
-
1167
- #: includes/class-wcj-old-slugs.php:183
1168
- msgid "None-products slugs found:"
1169
- msgstr ""
1170
-
1171
- #: includes/class-wcj-old-slugs.php:190
1172
- msgid "No old slugs found."
1173
- msgstr ""
1174
-
1175
- #: includes/class-wcj-order-custom-statuses.php:26
1176
- msgid "Order Custom Statuses"
1177
- msgstr ""
1178
-
1179
- #: includes/class-wcj-order-custom-statuses.php:27
1180
- msgid "Custom statuses for WooCommerce orders."
1181
- msgstr ""
1182
-
1183
- #: includes/class-wcj-order-custom-statuses.php:32
1184
- msgctxt "Order status"
1185
- msgid "Pending payment"
1186
- msgstr ""
1187
-
1188
- #: includes/class-wcj-order-custom-statuses.php:33
1189
- #: includes/functions/wcj-functions.php:356
1190
- msgctxt "Order status"
1191
- msgid "Processing"
1192
- msgstr ""
1193
-
1194
- #: includes/class-wcj-order-custom-statuses.php:34
1195
- msgctxt "Order status"
1196
- msgid "On hold"
1197
- msgstr ""
1198
-
1199
- #: includes/class-wcj-order-custom-statuses.php:35
1200
- #: includes/functions/wcj-functions.php:358
1201
- msgctxt "Order status"
1202
- msgid "Completed"
1203
- msgstr ""
1204
-
1205
- #: includes/class-wcj-order-custom-statuses.php:36
1206
- #: includes/functions/wcj-functions.php:359
1207
- msgctxt "Order status"
1208
- msgid "Cancelled"
1209
- msgstr ""
1210
-
1211
- #: includes/class-wcj-order-custom-statuses.php:37
1212
- #: includes/functions/wcj-functions.php:360
1213
- msgctxt "Order status"
1214
- msgid "Refunded"
1215
- msgstr ""
1216
-
1217
- #: includes/class-wcj-order-custom-statuses.php:38
1218
- #: includes/functions/wcj-functions.php:361
1219
- msgctxt "Order status"
1220
- msgid "Failed"
1221
- msgstr ""
1222
-
1223
- #: includes/class-wcj-order-custom-statuses.php:134
1224
- #: includes/class-wcj-order-custom-statuses.php:146
1225
- #: includes/class-wcj-order-custom-statuses.php:302
1226
- msgid "Custom Statuses"
1227
- msgstr ""
1228
-
1229
- #: includes/class-wcj-order-custom-statuses.php:136
1230
- msgid "Tool lets you add or delete any custom status for WooCommerce orders."
1231
- msgstr ""
1232
-
1233
- #: includes/class-wcj-order-custom-statuses.php:177
1234
- msgid "Status slug is empty. Status not added."
1235
- msgstr ""
1236
-
1237
- #: includes/class-wcj-order-custom-statuses.php:179
1238
- msgid "The length of status slug must be 17 or less characters."
1239
- msgstr ""
1240
-
1241
- #: includes/class-wcj-order-custom-statuses.php:181
1242
- msgid "Status label is empty. Status not added."
1243
- msgstr ""
1244
-
1245
- #: includes/class-wcj-order-custom-statuses.php:187
1246
- msgid "Duplicate slug. Status not added."
1247
- msgstr ""
1248
-
1249
- #: includes/class-wcj-order-custom-statuses.php:193
1250
- msgid "New status have been successfully added!"
1251
- msgstr ""
1252
-
1253
- #: includes/class-wcj-order-custom-statuses.php:195
1254
- msgid "Status was not added."
1255
- msgstr ""
1256
-
1257
- #: includes/class-wcj-order-custom-statuses.php:211
1258
- msgid "Status have been successfully deleted."
1259
- msgstr ""
1260
-
1261
- #: includes/class-wcj-order-custom-statuses.php:213
1262
- msgid "Delete failed."
1263
- msgstr ""
1264
-
1265
- #: includes/class-wcj-order-custom-statuses.php:216
1266
- msgid "WooCommerce Jetpack - Custom Statuses"
1267
- msgstr ""
1268
-
1269
- #: includes/class-wcj-order-custom-statuses.php:217
1270
- msgid ""
1271
- "The tool lets you add or delete any custom status for WooCommerce orders."
1272
- msgstr ""
1273
-
1274
- #: includes/class-wcj-order-custom-statuses.php:219
1275
- msgid "Statuses"
1276
- msgstr ""
1277
-
1278
- #: includes/class-wcj-order-custom-statuses.php:222
1279
- msgid "Slug"
1280
- msgstr ""
1281
-
1282
- #: includes/class-wcj-order-custom-statuses.php:223
1283
- #: includes/class-wcj-order-custom-statuses.php:248
1284
- msgid "Label"
1285
- msgstr ""
1286
-
1287
- #: includes/class-wcj-order-custom-statuses.php:225
1288
- #: includes/class-wcj-order-custom-statuses.php:235
1289
- msgid "Delete"
1290
- msgstr ""
1291
-
1292
- #: includes/class-wcj-order-custom-statuses.php:247
1293
- msgid "Slug (without wc- prefix)"
1294
- msgstr ""
1295
-
1296
- #: includes/class-wcj-order-custom-statuses.php:272
1297
- #: includes/class-wcj-order-custom-statuses.php:273
1298
- msgid "Mark"
1299
- msgstr ""
1300
-
1301
- #: includes/class-wcj-order-custom-statuses.php:309
1302
- #: includes/gateways/class-wc-gateway-wcj-custom.php:119
1303
- msgid "Default Order Status"
1304
- msgstr ""
1305
-
1306
- #: includes/class-wcj-order-custom-statuses.php:310
1307
- #: includes/gateways/class-wc-gateway-wcj-custom.php:120
1308
- msgid "Enable Custom Statuses feature to add custom statuses to the list."
1309
- msgstr ""
1310
-
1311
- #: includes/class-wcj-order-custom-statuses.php:311
1312
- msgid ""
1313
- "You can change the default order status here. However payment gateways can "
1314
- "change this status immediatelly on order creation. E.g. BACS gateway will "
1315
- "change status to On-hold."
1316
- msgstr ""
1317
-
1318
- #: includes/class-wcj-order-custom-statuses.php:319
1319
- msgid "Add All Statuses to Admin Order Bulk Actions"
1320
- msgstr ""
1321
-
1322
- #: includes/class-wcj-order-custom-statuses.php:320
1323
- #: includes/class-wcj-orders.php:213 includes/class-wcj-orders.php:263
1324
- #: includes/class-wcj-purchase-data.php:321
1325
- msgid "Add"
1326
- msgstr ""
1327
-
1328
- #: includes/class-wcj-order-numbers.php:25
1329
- #: includes/class-wcj-order-numbers.php:161
1330
- msgid "Order Numbers"
1331
- msgstr ""
1332
-
1333
- #: includes/class-wcj-order-numbers.php:26
1334
- msgid ""
1335
- "WooCommerce sequential order numbering, custom order number prefix, suffix "
1336
- "and number width."
1337
- msgstr ""
1338
-
1339
- #: includes/class-wcj-order-numbers.php:71
1340
- msgid "Orders Renumerate"
1341
- msgstr ""
1342
-
1343
- #: includes/class-wcj-order-numbers.php:73
1344
- msgid "Tool renumerates all orders."
1345
- msgstr ""
1346
-
1347
- #: includes/class-wcj-order-numbers.php:83
1348
- #: includes/class-wcj-order-numbers.php:104
1349
- msgid "Renumerate orders"
1350
- msgstr ""
1351
-
1352
- #: includes/class-wcj-order-numbers.php:97
1353
- msgid "Orders successfully renumerated!"
1354
- msgstr ""
1355
-
1356
- #: includes/class-wcj-order-numbers.php:100
1357
- msgid "WooCommerce Jetpack - Renumerate Orders"
1358
- msgstr ""
1359
-
1360
- #: includes/class-wcj-order-numbers.php:101
1361
- msgid ""
1362
- "The tool renumerates all orders. Press the button below to renumerate all "
1363
- "existing orders starting from order counter settings in WooCommerce > "
1364
- "Settings > Jetpack > Order Numbers."
1365
- msgstr ""
1366
-
1367
- #: includes/class-wcj-order-numbers.php:161
1368
- msgid ""
1369
- "This section lets you enable sequential order numbering, set custom number "
1370
- "prefix, suffix and width."
1371
- msgstr ""
1372
-
1373
- #: includes/class-wcj-order-numbers.php:164
1374
- msgid "Make Order Numbers Sequential"
1375
- msgstr ""
1376
-
1377
- #: includes/class-wcj-order-numbers.php:172
1378
- msgid "Next Order Number"
1379
- msgstr ""
1380
-
1381
- #: includes/class-wcj-order-numbers.php:173
1382
- msgid "Next new order will be given this number."
1383
- msgstr ""
1384
-
1385
- #: includes/class-wcj-order-numbers.php:173
1386
- msgid "Use Renumerate Orders tool for existing orders."
1387
- msgstr ""
1388
-
1389
- #: includes/class-wcj-order-numbers.php:174
1390
- msgid "This will be ignored if sequential order numbering is disabled."
1391
- msgstr ""
1392
-
1393
- #: includes/class-wcj-order-numbers.php:181
1394
- msgid "Order Number Custom Prefix"
1395
- msgstr ""
1396
-
1397
- #: includes/class-wcj-order-numbers.php:182
1398
- msgid ""
1399
- "Prefix before order number (optional). This will change the prefixes for all "
1400
- "existing orders."
1401
- msgstr ""
1402
-
1403
- #: includes/class-wcj-order-numbers.php:190
1404
- msgid "Order Number Date Prefix"
1405
- msgstr ""
1406
-
1407
- #: includes/class-wcj-order-numbers.php:192
1408
- msgid ""
1409
- "Date prefix before order number (optional). This will change the prefixes "
1410
- "for all existing orders. Value is passed directly to PHP `date` function, so "
1411
- "most of PHP date formats can be used. The only exception is using `\\` "
1412
- "symbol in date format, as this symbol will be excluded from date. Try: Y-m-"
1413
- "d- or mdy."
1414
- msgstr ""
1415
-
1416
- #: includes/class-wcj-order-numbers.php:202
1417
- msgid "Order Number Width"
1418
- msgstr ""
1419
-
1420
- #: includes/class-wcj-order-numbers.php:204
1421
- msgid ""
1422
- "Minimum width of number without prefix (zeros will be added to the left "
1423
- "side). This will change the minimum width of order number for all existing "
1424
- "orders. E.g. set to 5 to have order number displayed as 00001 instead of 1. "
1425
- "Leave zero to disable."
1426
- msgstr ""
1427
-
1428
- #: includes/class-wcj-order-numbers.php:214
1429
- msgid "Order Number Custom Suffix"
1430
- msgstr ""
1431
-
1432
- #: includes/class-wcj-order-numbers.php:216
1433
- msgid ""
1434
- "Suffix after order number (optional). This will change the suffixes for all "
1435
- "existing orders."
1436
- msgstr ""
1437
-
1438
- #: includes/class-wcj-order-numbers.php:226
1439
- msgid "Order Number Date Suffix"
1440
- msgstr ""
1441
-
1442
- #: includes/class-wcj-order-numbers.php:228
1443
- msgid ""
1444
- "Date suffix after order number (optional). This will change the suffixes for "
1445
- "all existing orders. Value is passed directly to PHP `date` function, so "
1446
- "most of PHP date formats can be used. The only exception is using `\\` "
1447
- "symbol in date format, as this symbol will be excluded from date. Try: Y-m-"
1448
- "d- or mdy."
1449
- msgstr ""
1450
-
1451
- #: includes/class-wcj-orders.php:23
1452
- msgid "Orders"
1453
- msgstr ""
1454
-
1455
- #: includes/class-wcj-orders.php:24
1456
- msgid "Minimum WooCommerce order amount; orders auto-complete."
1457
- msgstr ""
1458
-
1459
- #: includes/class-wcj-orders.php:77
1460
- msgid "All countries"
1461
- msgstr ""
1462
-
1463
- #: includes/class-wcj-orders.php:90 includes/class-wcj-orders.php:262
1464
- msgid "Country"
1465
- msgstr ""
1466
-
1467
- #: includes/class-wcj-orders.php:185
1468
- msgid "Order Minimum Amount"
1469
- msgstr ""
1470
-
1471
- #: includes/class-wcj-orders.php:185
1472
- msgid "This section lets you set minimum order amount."
1473
- msgstr ""
1474
-
1475
- #: includes/class-wcj-orders.php:188
1476
- msgid "Amount"
1477
- msgstr ""
1478
-
1479
- #: includes/class-wcj-orders.php:189
1480
- msgid "Minimum order amount. Set to 0 to disable."
1481
- msgstr ""
1482
-
1483
- #: includes/class-wcj-orders.php:200
1484
- msgid "Error message"
1485
- msgstr ""
1486
-
1487
- #: includes/class-wcj-orders.php:202 includes/class-wcj-orders.php:222
1488
- msgid ""
1489
- "Message to customer if order is below minimum amount. Default: You must have "
1490
- "an order with a minimum of %s to place your order, your current order total "
1491
- "is %s."
1492
- msgstr ""
1493
-
1494
- #: includes/class-wcj-orders.php:212
1495
- msgid "Add notice to cart page also"
1496
- msgstr ""
1497
-
1498
- #: includes/class-wcj-orders.php:220
1499
- msgid "Message on cart page"
1500
- msgstr ""
1501
-
1502
- #: includes/class-wcj-orders.php:232
1503
- msgid ""
1504
- "Stop customer from seeing the Checkout page if minimum amount not reached."
1505
- msgstr ""
1506
-
1507
- #: includes/class-wcj-orders.php:233
1508
- msgid "Redirect back to Cart page"
1509
- msgstr ""
1510
-
1511
- #: includes/class-wcj-orders.php:241
1512
- msgid "Orders Auto-Complete"
1513
- msgstr ""
1514
-
1515
- #: includes/class-wcj-orders.php:241
1516
- msgid "This section lets you enable orders auto-complete function."
1517
- msgstr ""
1518
-
1519
- #: includes/class-wcj-orders.php:244
1520
- msgid "Auto-complete all WooCommerce orders"
1521
- msgstr ""
1522
-
1523
- #: includes/class-wcj-orders.php:246
1524
- msgid ""
1525
- "E.g. if you sell digital products then you are not shipping anything and you "
1526
- "may want auto-complete all your orders."
1527
- msgstr ""
1528
-
1529
- #: includes/class-wcj-orders.php:255 includes/class-wcj-purchase-data.php:314
1530
- msgid "Orders List Custom Columns"
1531
- msgstr ""
1532
-
1533
- #: includes/class-wcj-orders.php:257 includes/class-wcj-purchase-data.php:316
1534
- msgid "This section lets you add custom columns to WooCommerce orders list."
1535
- msgstr ""
1536
-
1537
- #: includes/class-wcj-payment-gateways-fees.php:26
1538
- msgid "Payment Gateways Fees and Discounts"
1539
- msgstr ""
1540
-
1541
- #: includes/class-wcj-payment-gateways-fees.php:27
1542
- msgid "Enable extra fees or discounts for WooCommerce payment gateways."
1543
- msgstr ""
1544
-
1545
- #: includes/class-wcj-payment-gateways-fees.php:131
1546
- msgid "Payment Gateways Fees and Discounts Options"
1547
- msgstr ""
1548
-
1549
- #: includes/class-wcj-payment-gateways-fees.php:133
1550
- msgid "This section lets you set extra fees for payment gateways."
1551
- msgstr ""
1552
-
1553
- #: includes/class-wcj-payment-gateways-fees.php:152
1554
- msgid "Fee (or discount) title to show to customer."
1555
- msgstr ""
1556
-
1557
- #: includes/class-wcj-payment-gateways-fees.php:161
1558
- msgid "Fee (or discount) type."
1559
- msgstr ""
1560
-
1561
- #: includes/class-wcj-payment-gateways-fees.php:162
1562
- msgid "Percent or fixed value."
1563
- msgstr ""
1564
-
1565
- #: includes/class-wcj-payment-gateways-fees.php:169
1566
- #: includes/class-wcj-wholesale-price.php:238
1567
- msgid "Fixed"
1568
- msgstr ""
1569
-
1570
- #: includes/class-wcj-payment-gateways-fees.php:170
1571
- #: includes/class-wcj-wholesale-price.php:237
1572
- msgid "Percent"
1573
- msgstr ""
1574
-
1575
- #: includes/class-wcj-payment-gateways-fees.php:176
1576
- msgid "Fee (or discount) value."
1577
- msgstr ""
1578
-
1579
- #: includes/class-wcj-payment-gateways-fees.php:177
1580
- msgid "The value. For discount enter a negative number."
1581
- msgstr ""
1582
-
1583
- #: includes/class-wcj-payment-gateways-fees.php:188
1584
- msgid "Minimum cart amount for adding the fee (or discount)."
1585
- msgstr ""
1586
-
1587
- #: includes/class-wcj-payment-gateways-fees.php:189
1588
- #: includes/class-wcj-payment-gateways-fees.php:202
1589
- msgid "Set 0 to disable."
1590
- msgstr ""
1591
-
1592
- #: includes/class-wcj-payment-gateways-fees.php:201
1593
- msgid "Maximum cart amount for adding the fee (or discount)."
1594
- msgstr ""
1595
-
1596
- #: includes/class-wcj-payment-gateways-fees.php:214
1597
- msgid "Round the fee (or discount) value before adding to the cart."
1598
- msgstr ""
1599
-
1600
- #: includes/class-wcj-payment-gateways-fees.php:223
1601
- msgid "If rounding is enabled, set precision here."
1602
- msgstr ""
1603
-
1604
- #: includes/class-wcj-payment-gateways-fees.php:236
1605
- msgid "Is taxable?"
1606
- msgstr ""
1607
-
1608
- #: includes/class-wcj-payment-gateways-fees.php:247
1609
- msgid "Tax Class (only if Taxable selected)."
1610
- msgstr ""
1611
-
1612
- #: includes/class-wcj-payment-gateways-fees.php:252
1613
- msgid "Standard Rate"
1614
- msgstr ""
1615
-
1616
- #: includes/class-wcj-payment-gateways-icons.php:24
1617
- msgid "Payment Gateways Icons"
1618
- msgstr ""
1619
-
1620
- #: includes/class-wcj-payment-gateways-icons.php:25
1621
- msgid "Change icons (images) for all default WooCommerce payment gateways."
1622
- msgstr ""
1623
-
1624
- #: includes/class-wcj-payment-gateways-icons.php:69
1625
- msgid "Default WooCommerce Payment Gateways Icons"
1626
- msgstr ""
1627
-
1628
- #: includes/class-wcj-payment-gateways-icons.php:71
1629
- #: includes/gateways/class-wc-gateway-wcj-custom.php:84
1630
- msgid ""
1631
- "If you want to show an image next to the gateway's name on the frontend, "
1632
- "enter a URL to an image."
1633
- msgstr ""
1634
-
1635
- #: includes/class-wcj-payment-gateways-per-category.php:24
1636
- msgid "Payment Gateways per Category"
1637
- msgstr ""
1638
-
1639
- #: includes/class-wcj-payment-gateways-per-category.php:25
1640
- msgid ""
1641
- "Show gateway only if there is product of selected category in WooCommerce "
1642
- "cart."
1643
- msgstr ""
1644
-
1645
- #: includes/class-wcj-payment-gateways-per-category.php:93
1646
- msgid "WooCommerce Jetpack: Payment Gateways per Category Options"
1647
- msgstr ""
1648
-
1649
- #: includes/class-wcj-payment-gateways-per-category.php:111
1650
- msgid "Show gateway only if there is product of selected category in cart."
1651
- msgstr ""
1652
-
1653
- #: includes/class-wcj-payment-gateways.php:25
1654
- msgid "Custom Payment Gateways"
1655
- msgstr ""
1656
-
1657
- #: includes/class-wcj-payment-gateways.php:26
1658
- msgid "Add multiple custom payment gateways to WooCommerce."
1659
- msgstr ""
1660
-
1661
- #: includes/class-wcj-payment-gateways.php:42
1662
- msgid "Custom Payment Gateways Options"
1663
- msgstr ""
1664
-
1665
- #: includes/class-wcj-payment-gateways.php:45
1666
- msgid "Number of Gateways"
1667
- msgstr ""
1668
-
1669
- #: includes/class-wcj-payment-gateways.php:47
1670
- msgid ""
1671
- "Number of custom payments gateways to be added. All settings for each new "
1672
- "gateway are in WooCommerce > Settings > Checkout."
1673
- msgstr ""
1674
-
1675
- #: includes/class-wcj-pdf-invoices.php:66
1676
- msgid "Payment Gateways Attach PDF Invoice V1 Options"
1677
- msgstr ""
1678
-
1679
- #: includes/class-wcj-pdf-invoices.php:66
1680
- msgid ""
1681
- "This section lets you choose when to attach PDF invoice to customers emails."
1682
- msgstr ""
1683
-
1684
- #: includes/class-wcj-pdf-invoices.php:76
1685
- msgid "Attach PDF invoice."
1686
- msgstr ""
1687
-
1688
- #: includes/class-wcj-pdf-invoices.php:208
1689
- #: includes/class-wcj-pdf-invoices.php:213
1690
- #: includes/functions/wcj-invoicing-functions.php:19
1691
- msgid "Invoice"
1692
- msgstr ""
1693
-
1694
- #: includes/class-wcj-pdf-invoices.php:371
1695
- #: includes/classes/class-wcj-pdf-invoice.php:287
1696
- msgid "Unexpected error"
1697
- msgstr ""
1698
-
1699
- #: includes/class-wcj-pdf-invoices.php:891
1700
- #: includes/class-wcj-pdf-invoices.php:897
1701
- msgid "PDF Invoice"
1702
- msgstr ""
1703
-
1704
- #: includes/class-wcj-pdf-invoices.php:922
1705
- msgid "PDF Invoices Options"
1706
- msgstr ""
1707
-
1708
- #: includes/class-wcj-pdf-invoices.php:925
1709
- #: includes/class-wcj-pdf-invoices.php:1437
1710
- msgid "PDF Invoices"
1711
- msgstr ""
1712
-
1713
- #: includes/class-wcj-pdf-invoices.php:925
1714
- msgid "depreciated"
1715
- msgstr ""
1716
-
1717
- #: includes/class-wcj-pdf-invoices.php:927
1718
- msgid ""
1719
- "Add PDF invoices for the WooCommerce store owners and for the customers."
1720
- msgstr ""
1721
-
1722
- #: includes/class-wcj-pdf-invoices.php:935
1723
- msgid "Invoice Header"
1724
- msgstr ""
1725
-
1726
- #: includes/class-wcj-pdf-invoices.php:935
1727
- msgid ""
1728
- "This section lets you set texts for required invoice number and date, and "
1729
- "optional logo, header text, invoice due and fulfillment dates."
1730
- msgstr ""
1731
-
1732
- #: includes/class-wcj-pdf-invoices.php:938
1733
- msgid "Your Logo URL"
1734
- msgstr ""
1735
-
1736
- #: includes/class-wcj-pdf-invoices.php:939
1737
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:54
1738
- msgid ""
1739
- "Enter a URL to an image you want to show in the invoice's header. Upload "
1740
- "your image using the <a href=\"/wp-admin/media-new.php\">media uploader</a>."
1741
- msgstr ""
1742
-
1743
- #: includes/class-wcj-pdf-invoices.php:940
1744
- #: includes/class-wcj-pdf-invoices.php:949
1745
- #: includes/class-wcj-pdf-invoices.php:969
1746
- #: includes/class-wcj-pdf-invoices.php:979
1747
- #: includes/class-wcj-pdf-invoices.php:998
1748
- #: includes/class-wcj-pdf-invoices.php:1018
1749
- #: includes/class-wcj-pdf-invoices.php:1091
1750
- #: includes/class-wcj-pdf-invoices.php:1126
1751
- #: includes/class-wcj-pdf-invoices.php:1177
1752
- #: includes/class-wcj-pdf-invoices.php:1186
1753
- #: includes/class-wcj-pdf-invoices.php:1195
1754
- #: includes/class-wcj-pdf-invoices.php:1204
1755
- #: includes/class-wcj-pdf-invoices.php:1213
1756
- #: includes/class-wcj-pdf-invoices.php:1222
1757
- #: includes/class-wcj-pdf-invoices.php:1302
1758
- #: includes/class-wcj-pdf-invoices.php:1311
1759
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:55
1760
- msgid "Leave blank to disable"
1761
- msgstr ""
1762
-
1763
- #: includes/class-wcj-pdf-invoices.php:948
1764
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:74
1765
- msgid "Header Text"
1766
- msgstr ""
1767
-
1768
- #: includes/class-wcj-pdf-invoices.php:950
1769
- msgid "Default: INVOICE"
1770
- msgstr ""
1771
-
1772
- #: includes/class-wcj-pdf-invoices.php:952
1773
- msgid "INVOICE"
1774
- msgstr ""
1775
-
1776
- #: includes/class-wcj-pdf-invoices.php:958
1777
- msgid "Invoice Number"
1778
- msgstr ""
1779
-
1780
- #: includes/class-wcj-pdf-invoices.php:959
1781
- msgid "Default: Invoice number"
1782
- msgstr ""
1783
-
1784
- #: includes/class-wcj-pdf-invoices.php:961
1785
- msgid "Invoice number"
1786
- msgstr ""
1787
-
1788
- #: includes/class-wcj-pdf-invoices.php:967
1789
- msgid "Order Date"
1790
- msgstr ""
1791
-
1792
- #: includes/class-wcj-pdf-invoices.php:968
1793
- msgid "Default: Order date"
1794
- msgstr ""
1795
-
1796
- #: includes/class-wcj-pdf-invoices.php:971
1797
- msgid "Order date"
1798
- msgstr ""
1799
-
1800
- #: includes/class-wcj-pdf-invoices.php:977
1801
- msgid "Order Time"
1802
- msgstr ""
1803
-
1804
- #: includes/class-wcj-pdf-invoices.php:978
1805
- msgid "Default: Order time"
1806
- msgstr ""
1807
-
1808
- #: includes/class-wcj-pdf-invoices.php:981
1809
- msgid "Order time"
1810
- msgstr ""
1811
-
1812
- #: includes/class-wcj-pdf-invoices.php:987
1813
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:110
1814
- msgid "Invoice Date"
1815
- msgstr ""
1816
-
1817
- #: includes/class-wcj-pdf-invoices.php:988
1818
- msgid "Default: Invoice date"
1819
- msgstr ""
1820
-
1821
- #: includes/class-wcj-pdf-invoices.php:990
1822
- msgid "Invoice date"
1823
- msgstr ""
1824
-
1825
- #: includes/class-wcj-pdf-invoices.php:997
1826
- msgid "Default: Invoice due date"
1827
- msgstr ""
1828
-
1829
- #: includes/class-wcj-pdf-invoices.php:1000
1830
- msgid "Invoice due date"
1831
- msgstr ""
1832
-
1833
- #: includes/class-wcj-pdf-invoices.php:1007
1834
- #: includes/class-wcj-pdf-invoices.php:1027
1835
- msgid "days"
1836
- msgstr ""
1837
-
1838
- #: includes/class-wcj-pdf-invoices.php:1017
1839
- msgid "Default: Invoice fulfillment date"
1840
- msgstr ""
1841
-
1842
- #: includes/class-wcj-pdf-invoices.php:1020
1843
- msgid "Invoice fulfillment date"
1844
- msgstr ""
1845
-
1846
- #: includes/class-wcj-pdf-invoices.php:1036
1847
- msgid "Additional Header"
1848
- msgstr ""
1849
-
1850
- #: includes/class-wcj-pdf-invoices.php:1037
1851
- msgid ""
1852
- "Additional header - will be displayed above all data on invoice. You can use "
1853
- "html and/or shortcodes here."
1854
- msgstr ""
1855
-
1856
- #: includes/class-wcj-pdf-invoices.php:1046
1857
- msgid "Seller and Buyer Info"
1858
- msgstr ""
1859
-
1860
- #: includes/class-wcj-pdf-invoices.php:1049
1861
- #: includes/class-wcj-pdf-invoices.php:1052
1862
- #: includes/class-wcj-purchase-data.php:177
1863
- msgid "Seller"
1864
- msgstr ""
1865
-
1866
- #: includes/class-wcj-pdf-invoices.php:1058
1867
- msgid "Your business information"
1868
- msgstr ""
1869
-
1870
- #: includes/class-wcj-pdf-invoices.php:1060
1871
- msgid "New lines are added automatically."
1872
- msgstr ""
1873
-
1874
- #: includes/class-wcj-pdf-invoices.php:1062
1875
- msgid "<strong>Company Name</strong>"
1876
- msgstr ""
1877
-
1878
- #: includes/class-wcj-pdf-invoices.php:1068
1879
- #: includes/class-wcj-pdf-invoices.php:1071
1880
- msgid "Buyer"
1881
- msgstr ""
1882
-
1883
- #: includes/class-wcj-pdf-invoices.php:1078
1884
- #: includes/class-wcj-pdf-invoices.php:1084
1885
- msgid "Items"
1886
- msgstr ""
1887
-
1888
- #: includes/class-wcj-pdf-invoices.php:1081
1889
- msgid "Items Table Heading Text"
1890
- msgstr ""
1891
-
1892
- #: includes/class-wcj-pdf-invoices.php:1090
1893
- msgid "Shipping as Item"
1894
- msgstr ""
1895
-
1896
- #: includes/class-wcj-pdf-invoices.php:1092
1897
- msgid "Display shipping as item"
1898
- msgstr ""
1899
-
1900
- #: includes/class-wcj-pdf-invoices.php:1110
1901
- #: includes/class-wcj-pdf-invoices.php:1118
1902
- msgid "Add shipping method info"
1903
- msgstr ""
1904
-
1905
- #: includes/class-wcj-pdf-invoices.php:1117
1906
- msgid "Do not add shipping method info"
1907
- msgstr ""
1908
-
1909
- #: includes/class-wcj-pdf-invoices.php:1119
1910
- msgid "Replace with shipping method info"
1911
- msgstr ""
1912
-
1913
- #: includes/class-wcj-pdf-invoices.php:1125
1914
- msgid "Discount as Item"
1915
- msgstr ""
1916
-
1917
- #: includes/class-wcj-pdf-invoices.php:1127
1918
- msgid "Display discount as item"
1919
- msgstr ""
1920
-
1921
- #: includes/class-wcj-pdf-invoices.php:1137
1922
- msgid "Items Columns"
1923
- msgstr ""
1924
-
1925
- #: includes/class-wcj-pdf-invoices.php:1137
1926
- msgid ""
1927
- "This section lets you set column names in invoice items table. You can "
1928
- "disable some columns by leaving blank column name."
1929
- msgstr ""
1930
-
1931
- #: includes/class-wcj-pdf-invoices.php:1140
1932
- #: includes/class-wcj-pdf-invoices.php:1143
1933
- msgid "Nr."
1934
- msgstr ""
1935
-
1936
- #: includes/class-wcj-pdf-invoices.php:1149
1937
- #: includes/class-wcj-pdf-invoices.php:1152
1938
- msgid "Item Name"
1939
- msgstr ""
1940
-
1941
- #: includes/class-wcj-pdf-invoices.php:1158
1942
- msgid "Item Name Additional Info"
1943
- msgstr ""
1944
-
1945
- #: includes/class-wcj-pdf-invoices.php:1159
1946
- msgid ""
1947
- "Here you can add more info to item's name column (e.g. sku). Default is "
1948
- "(SKU: %sku%)"
1949
- msgstr ""
1950
-
1951
- #: includes/class-wcj-pdf-invoices.php:1161
1952
- msgid "(SKU: %sku%)"
1953
- msgstr ""
1954
-
1955
- #: includes/class-wcj-pdf-invoices.php:1167
1956
- #: includes/class-wcj-pdf-invoices.php:1170
1957
- msgid "Qty"
1958
- msgstr ""
1959
-
1960
- #: includes/class-wcj-pdf-invoices.php:1176
1961
- msgid "Single Item Price (TAX excl.)"
1962
- msgstr ""
1963
-
1964
- #: includes/class-wcj-pdf-invoices.php:1179
1965
- msgid "Price (TAX excl.)"
1966
- msgstr ""
1967
-
1968
- #: includes/class-wcj-pdf-invoices.php:1185
1969
- msgid "Single Item TAX"
1970
- msgstr ""
1971
-
1972
- #: includes/class-wcj-pdf-invoices.php:1188
1973
- msgid "TAX"
1974
- msgstr ""
1975
-
1976
- #: includes/class-wcj-pdf-invoices.php:1194
1977
- msgid "Single Item Price (TAX incl.)"
1978
- msgstr ""
1979
-
1980
- #: includes/class-wcj-pdf-invoices.php:1197
1981
- msgid "Price (TAX incl.)"
1982
- msgstr ""
1983
-
1984
- #: includes/class-wcj-pdf-invoices.php:1203
1985
- #: includes/class-wcj-pdf-invoices.php:1206
1986
- msgid "Sum (TAX excl.)"
1987
- msgstr ""
1988
-
1989
- #: includes/class-wcj-pdf-invoices.php:1212
1990
- msgid "Tax Percent"
1991
- msgstr ""
1992
-
1993
- #: includes/class-wcj-pdf-invoices.php:1215
1994
- msgid "Taxes %"
1995
- msgstr ""
1996
-
1997
- #: includes/class-wcj-pdf-invoices.php:1221
1998
- #: includes/class-wcj-pdf-invoices.php:1224
1999
- #: includes/class-wcj-pdf-invoices.php:1282
2000
- msgid "Taxes"
2001
- msgstr ""
2002
-
2003
- #: includes/class-wcj-pdf-invoices.php:1230
2004
- #: includes/class-wcj-pdf-invoices.php:1233
2005
- msgid "Sum (TAX incl.)"
2006
- msgstr ""
2007
-
2008
- #: includes/class-wcj-pdf-invoices.php:1240
2009
- msgid "Totals"
2010
- msgstr ""
2011
-
2012
- #: includes/class-wcj-pdf-invoices.php:1240
2013
- msgid "This section lets you set texts for totals table."
2014
- msgstr ""
2015
-
2016
- #: includes/class-wcj-pdf-invoices.php:1243
2017
- #: includes/class-wcj-pdf-invoices.php:1246
2018
- msgid "Order Subtotal"
2019
- msgstr ""
2020
-
2021
- #: includes/class-wcj-pdf-invoices.php:1244
2022
- msgid "Order Subtotal = Total - Taxes - Shipping - Discounts"
2023
- msgstr ""
2024
-
2025
- #: includes/class-wcj-pdf-invoices.php:1252
2026
- msgid "Order Shipping Price"
2027
- msgstr ""
2028
-
2029
- #: includes/class-wcj-pdf-invoices.php:1261
2030
- msgid "Total Discount"
2031
- msgstr ""
2032
-
2033
- #: includes/class-wcj-pdf-invoices.php:1264
2034
- #: includes/class-wcj-wholesale-price.php:278
2035
- #: includes/class-wcj-wholesale-price.php:279
2036
- msgid "Discount"
2037
- msgstr ""
2038
-
2039
- #: includes/class-wcj-pdf-invoices.php:1270
2040
- #: includes/class-wcj-pdf-invoices.php:1273
2041
- msgid "Order Total (TAX excl.)"
2042
- msgstr ""
2043
-
2044
- #: includes/class-wcj-pdf-invoices.php:1271
2045
- msgid ""
2046
- "Order Total (TAX excl.) = Total - Taxes. Shown only if discount or shipping "
2047
- "is not equal to zero. In other words: if \"Order Total (TAX excl.)\" not "
2048
- "equal to \"Order Subtotal\""
2049
- msgstr ""
2050
-
2051
- #: includes/class-wcj-pdf-invoices.php:1279
2052
- msgid "Order Total Taxes"
2053
- msgstr ""
2054
-
2055
- #: includes/class-wcj-pdf-invoices.php:1288
2056
- #: includes/class-wcj-pdf-invoices.php:1291
2057
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:116
2058
- msgid "Order Total"
2059
- msgstr ""
2060
-
2061
- #: includes/class-wcj-pdf-invoices.php:1298
2062
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:24
2063
- msgid "Footer"
2064
- msgstr ""
2065
-
2066
- #: includes/class-wcj-pdf-invoices.php:1301
2067
- #: includes/class-wcj-pdf-invoices.php:1304
2068
- msgid "Payment Method"
2069
- msgstr ""
2070
-
2071
- #: includes/class-wcj-pdf-invoices.php:1310
2072
- #: includes/class-wcj-pdf-invoices.php:1313
2073
- msgid "Shipping Method"
2074
- msgstr ""
2075
-
2076
- #: includes/class-wcj-pdf-invoices.php:1319
2077
- #: includes/class-wcj-pdf-invoices.php:1322
2078
- msgid "Shipping Address"
2079
- msgstr ""
2080
-
2081
- #: includes/class-wcj-pdf-invoices.php:1320
2082
- msgid ""
2083
- "Will be displayed only if customer's shipping address differs from billing "
2084
- "address. Leave blank to disable"
2085
- msgstr ""
2086
-
2087
- #: includes/class-wcj-pdf-invoices.php:1328
2088
- msgid "Additional Footer"
2089
- msgstr ""
2090
-
2091
- #: includes/class-wcj-pdf-invoices.php:1329
2092
- msgid ""
2093
- "Additional footer - will be displayed below all other data on invoice. You "
2094
- "can use html and/or shortcodes here."
2095
- msgstr ""
2096
-
2097
- #: includes/class-wcj-pdf-invoices.php:1338
2098
- msgid "General Options"
2099
- msgstr ""
2100
-
2101
- #: includes/class-wcj-pdf-invoices.php:1341
2102
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-styling.php:54
2103
- msgid "Font Family"
2104
- msgstr ""
2105
-
2106
- #: includes/class-wcj-pdf-invoices.php:1357
2107
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-styling.php:70
2108
- msgid "Font Size"
2109
- msgstr ""
2110
-
2111
- #: includes/class-wcj-pdf-invoices.php:1358
2112
- msgid "Default: 8"
2113
- msgstr ""
2114
-
2115
- #: includes/class-wcj-pdf-invoices.php:1365
2116
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-styling.php:79
2117
- msgid "Make Font Shadowed"
2118
- msgstr ""
2119
-
2120
- #: includes/class-wcj-pdf-invoices.php:1366
2121
- msgid "Default: Yes"
2122
- msgstr ""
2123
-
2124
- #: includes/class-wcj-pdf-invoices.php:1373
2125
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-styling.php:46
2126
- msgid "CSS"
2127
- msgstr ""
2128
-
2129
- #: includes/class-wcj-pdf-invoices.php:1387
2130
- msgid "PDF Invoices for Customers (in My Account)"
2131
- msgstr ""
2132
-
2133
- #: includes/class-wcj-pdf-invoices.php:1388
2134
- msgid "Enable the PDF Invoices in customers account"
2135
- msgstr ""
2136
-
2137
- #: includes/class-wcj-pdf-invoices.php:1397
2138
- msgid "PDF Invoices for Customers (Email attachment)"
2139
- msgstr ""
2140
-
2141
- #: includes/class-wcj-pdf-invoices.php:1398
2142
- msgid ""
2143
- "Enable the PDF Invoices attachment files in customers email on order "
2144
- "completed"
2145
- msgstr ""
2146
-
2147
- #: includes/class-wcj-pdf-invoices.php:1417
2148
- msgid "Enable Save as"
2149
- msgstr ""
2150
-
2151
- #: includes/class-wcj-pdf-invoices.php:1418
2152
- msgid "Enable save as pdf instead of view pdf"
2153
- msgstr ""
2154
-
2155
- #: includes/class-wcj-pdf-invoicing.php:152
2156
- msgid "PDF Invoicing General Options"
2157
- msgstr ""
2158
-
2159
- #: includes/class-wcj-pdf-invoicing.php:155
2160
- msgid "PDF Invoicing"
2161
- msgstr ""
2162
-
2163
- #: includes/class-wcj-pdf-invoicing.php:157
2164
- msgid ""
2165
- "WooCommerce Invoices, Proforma Invoices, Credit Notes and Packing Slips."
2166
- msgstr ""
2167
-
2168
- #: includes/class-wcj-pdf-invoicing.php:166
2169
- msgid "Disabled"
2170
- msgstr ""
2171
-
2172
- #: includes/class-wcj-pdf-invoicing.php:167
2173
- msgid "Create on New Order"
2174
- msgstr ""
2175
-
2176
- #: includes/class-wcj-pdf-invoicing.php:170
2177
- msgid "Create on Order Status"
2178
- msgstr ""
2179
-
2180
- #: includes/class-wcj-price-by-country.php:64
2181
- msgid "Price by Country Options"
2182
- msgstr ""
2183
-
2184
- #: includes/class-wcj-price-by-country.php:66
2185
- msgid ""
2186
- "Change product's price and currency by customer's country. Customer's "
2187
- "country is detected automatically by IP, or selected by customer manually."
2188
- msgstr ""
2189
-
2190
- #: includes/class-wcj-price-by-country.php:70
2191
- #: includes/class-wcj-price-by-country.php:305
2192
- msgid "Prices and Currencies by Country"
2193
- msgstr ""
2194
-
2195
- #: includes/class-wcj-price-by-country.php:72
2196
- msgid ""
2197
- "Change WooCommerce product price and currency automatically by customer's "
2198
- "country."
2199
- msgstr ""
2200
-
2201
- #: includes/class-wcj-price-by-country.php:79
2202
- msgid "Customer Country Detection Method"
2203
- msgstr ""
2204
-
2205
- #: includes/class-wcj-price-by-country.php:81
2206
- msgid ""
2207
- "If you choose \"by user selection\", use [wcj_country_select_drop_down_list] "
2208
- "shortcode to display country selection list on frontend."
2209
- msgstr ""
2210
-
2211
- #: includes/class-wcj-price-by-country.php:85
2212
- msgid "by IP"
2213
- msgstr ""
2214
-
2215
- #: includes/class-wcj-price-by-country.php:86
2216
- msgid "by user selection"
2217
- msgstr ""
2218
-
2219
- #: includes/class-wcj-price-by-country.php:92
2220
- msgid "Override Country on Checkout with Billing Country"
2221
- msgstr ""
2222
-
2223
- #: includes/class-wcj-price-by-country.php:94
2224
- msgid "Enable."
2225
- msgstr ""
2226
-
2227
- #: includes/class-wcj-price-by-country.php:100
2228
- msgid "Price Rounding"
2229
- msgstr ""
2230
-
2231
- #: includes/class-wcj-price-by-country.php:101
2232
- msgid "If you choose to multiply price, set rounding options here."
2233
- msgstr ""
2234
-
2235
- #: includes/class-wcj-price-by-country.php:106
2236
- msgid "No rounding"
2237
- msgstr ""
2238
-
2239
- #: includes/class-wcj-price-by-country.php:107
2240
- msgid "Round"
2241
- msgstr ""
2242
-
2243
- #: includes/class-wcj-price-by-country.php:108
2244
- msgid "Round down"
2245
- msgstr ""
2246
-
2247
- #: includes/class-wcj-price-by-country.php:109
2248
- msgid "Round up"
2249
- msgstr ""
2250
-
2251
- #: includes/class-wcj-price-by-country.php:114
2252
- msgid "Price by Country on per Product Basis"
2253
- msgstr ""
2254
-
2255
- #: includes/class-wcj-price-by-country.php:116
2256
- msgid "This will add meta boxes in product edit."
2257
- msgstr ""
2258
-
2259
- #: includes/class-wcj-price-by-country.php:124
2260
- msgid "Country Groups"
2261
- msgstr ""
2262
-
2263
- #: includes/class-wcj-price-by-country.php:127
2264
- msgid "Groups Number"
2265
- msgstr ""
2266
-
2267
- #: includes/class-wcj-price-by-country.php:143
2268
- msgid ""
2269
- "Countries. List of comma separated country codes.<br>For country codes and "
2270
- "predifined sets visit <a href=\"http://boostwoo.com/features/prices-and-"
2271
- "currencies-by-customers-country\">BoostWoo.com</a>"
2272
- msgstr ""
2273
-
2274
- #: includes/class-wcj-price-by-country.php:164
2275
- msgid "Currency"
2276
- msgstr ""
2277
-
2278
- #: includes/class-wcj-price-by-country.php:174
2279
- msgid "Exchange Rates"
2280
- msgstr ""
2281
-
2282
- #: includes/class-wcj-price-by-country.php:177
2283
- msgid "Exchange Rates Updates"
2284
- msgstr ""
2285
-
2286
- #: includes/class-wcj-price-by-country.php:182
2287
- #: includes/price-by-country/class-wcj-exchange-rates-crons.php:23
2288
- msgid "Enter Rates Manually"
2289
- msgstr ""
2290
-
2291
- #: includes/class-wcj-price-by-country.php:183
2292
- #: includes/price-by-country/class-wcj-exchange-rates-crons.php:24
2293
- msgid "Automatically: Update Hourly"
2294
- msgstr ""
2295
-
2296
- #: includes/class-wcj-price-by-country.php:184
2297
- #: includes/price-by-country/class-wcj-exchange-rates-crons.php:25
2298
- msgid "Automatically: Update Twice Daily"
2299
- msgstr ""
2300
-
2301
- #: includes/class-wcj-price-by-country.php:185
2302
- #: includes/price-by-country/class-wcj-exchange-rates-crons.php:26
2303
- msgid "Automatically: Update Daily"
2304
- msgstr ""
2305
-
2306
- #: includes/class-wcj-price-by-country.php:186
2307
- #: includes/price-by-country/class-wcj-exchange-rates-crons.php:27
2308
- msgid "Automatically: Update Weekly"
2309
- msgstr ""
2310
-
2311
- #: includes/class-wcj-price-by-country.php:187
2312
- #: includes/price-by-country/class-wcj-exchange-rates-crons.php:28
2313
- msgid "Automatically: Update Every Minute"
2314
- msgstr ""
2315
-
2316
- #: includes/class-wcj-price-by-country.php:209
2317
- msgid "Multiply Price by"
2318
- msgstr ""
2319
-
2320
- #: includes/class-wcj-price-by-country.php:217
2321
- msgid "Grab %s rate from Yahoo.com"
2322
- msgstr ""
2323
-
2324
- #: includes/class-wcj-price-by-country.php:232
2325
- #: includes/price-by-country/class-wcj-price-by-country-local.php:141
2326
- msgid "Make empty price"
2327
- msgstr ""
2328
-
2329
- #: includes/class-wcj-price-labels.php:117
2330
- msgid "Migrate from Custom Price Labels (Pro)"
2331
- msgstr ""
2332
-
2333
- #: includes/class-wcj-price-labels.php:119
2334
- msgid ""
2335
- "Tool lets you copy all the data (that is labels) from Custom Price labels "
2336
- "(Pro) plugin to WooCommerce Jetpack."
2337
- msgstr ""
2338
-
2339
- #: includes/class-wcj-price-labels.php:129
2340
- msgid "Migrate from Custom Price Labels"
2341
- msgstr ""
2342
-
2343
- #: includes/class-wcj-price-labels.php:141
2344
- msgid "WooCommerce Jetpack - Migrate from Custom Price Labels (Pro)"
2345
- msgstr ""
2346
-
2347
- #: includes/class-wcj-price-labels.php:189
2348
- msgid "Migrating (product ID "
2349
- msgstr ""
2350
-
2351
- #: includes/class-wcj-price-labels.php:190
2352
- msgid "Result: "
2353
- msgstr ""
2354
-
2355
- #: includes/class-wcj-price-labels.php:212
2356
- msgid "Found data to migrate (product ID "
2357
- msgstr ""
2358
-
2359
- #: includes/class-wcj-price-labels.php:226
2360
- msgid "No data to migrate found"
2361
- msgstr ""
2362
-
2363
- #: includes/class-wcj-price-labels.php:230
2364
- msgid "No products found"
2365
- msgstr ""
2366
-
2367
- #: includes/class-wcj-price-labels.php:235
2368
- msgid ""
2369
- "Press button below to copy all labels from Custom Price Labels (Pro) plugin. "
2370
- "Old labels will NOT be deleted. New labels will be overwritten."
2371
- msgstr ""
2372
-
2373
- #: includes/class-wcj-price-labels.php:236
2374
- msgid "Migrate data"
2375
- msgstr ""
2376
-
2377
- #: includes/class-wcj-price-labels.php:531
2378
- msgid "Custom Price Labels Options"
2379
- msgstr ""
2380
-
2381
- #: includes/class-wcj-price-labels.php:534
2382
- #: includes/class-wcj-price-labels.php:647
2383
- msgid "Custom Price Labels"
2384
- msgstr ""
2385
-
2386
- #: includes/class-wcj-price-labels.php:536
2387
- msgid "Create any custom price label for any WooCommerce product."
2388
- msgstr ""
2389
-
2390
- #: includes/class-wcj-price-labels.php:545
2391
- msgid "Global Custom Price Labels"
2392
- msgstr ""
2393
-
2394
- #: includes/class-wcj-price-labels.php:547
2395
- msgid "This section lets you set price labels for all products globally."
2396
- msgstr ""
2397
-
2398
- #: includes/class-wcj-price-labels.php:552
2399
- msgid "Add before the price"
2400
- msgstr ""
2401
-
2402
- #: includes/class-wcj-price-labels.php:553
2403
- msgid "Enter text to add before all products prices. Leave blank to disable."
2404
- msgstr ""
2405
-
2406
- #: includes/class-wcj-price-labels.php:564
2407
- msgid "Add after the price"
2408
- msgstr ""
2409
-
2410
- #: includes/class-wcj-price-labels.php:565
2411
- msgid "Enter text to add after all products prices. Leave blank to disable."
2412
- msgstr ""
2413
-
2414
- #: includes/class-wcj-price-labels.php:576
2415
- msgid "Add between regular and sale prices"
2416
- msgstr ""
2417
-
2418
- #: includes/class-wcj-price-labels.php:577
2419
- msgid ""
2420
- "Enter text to add between regular and sale prices. Leave blank to disable."
2421
- msgstr ""
2422
-
2423
- #: includes/class-wcj-price-labels.php:588
2424
- msgid "Remove from price"
2425
- msgstr ""
2426
-
2427
- #: includes/class-wcj-price-labels.php:590
2428
- msgid "Enter text to remove from all products prices. Leave blank to disable."
2429
- msgstr ""
2430
-
2431
- #: includes/class-wcj-price-labels.php:601
2432
- msgid "Replace in price"
2433
- msgstr ""
2434
-
2435
- #: includes/class-wcj-price-labels.php:602
2436
- msgid "Enter text to replace in all products prices. Leave blank to disable."
2437
- msgstr ""
2438
-
2439
- #: includes/class-wcj-price-labels.php:614
2440
- msgid "Enter text to replace with. Leave blank to disable."
2441
- msgstr ""
2442
-
2443
- #: includes/class-wcj-price-labels.php:629
2444
- msgid "Migrate from Custom Price Labels (Pro) Options"
2445
- msgstr ""
2446
-
2447
- #: includes/class-wcj-price-labels.php:629
2448
- msgid ""
2449
- "This section lets you enable \"Migrate from Custom Price Labels (Pro)\" tool."
2450
- msgstr ""
2451
-
2452
- #: includes/class-wcj-product-add-to-cart.php:24
2453
- msgid "Product Add to Cart"
2454
- msgstr ""
2455
-
2456
- #: includes/class-wcj-product-add-to-cart.php:25
2457
- msgid ""
2458
- "Set any local url to redirect to on WooCommerce Add to Cart. Automatically "
2459
- "add to cart on product visit."
2460
- msgstr ""
2461
-
2462
- #: includes/class-wcj-product-add-to-cart.php:48
2463
- msgid "Add to Cart Local Redirect Options"
2464
- msgstr ""
2465
-
2466
- #: includes/class-wcj-product-add-to-cart.php:50
2467
- msgid ""
2468
- "This section lets you set any local URL to redirect to after successfully "
2469
- "adding product to cart. Leave empty to redirect to checkout page (skipping "
2470
- "the cart page)."
2471
- msgstr ""
2472
-
2473
- #: includes/class-wcj-product-add-to-cart.php:55
2474
- msgid "Local Redirect"
2475
- msgstr ""
2476
-
2477
- #: includes/class-wcj-product-add-to-cart.php:63
2478
- msgid "Local Redirect URL"
2479
- msgstr ""
2480
-
2481
- #: includes/class-wcj-product-add-to-cart.php:64
2482
- msgid "Performs a safe (local) redirect, using wp_redirect()."
2483
- msgstr ""
2484
-
2485
- #: includes/class-wcj-product-add-to-cart.php:65
2486
- msgid "Local redirect URL. Leave empty to redirect to checkout."
2487
- msgstr ""
2488
-
2489
- #: includes/class-wcj-product-add-to-cart.php:74
2490
- #: includes/class-wcj-product-add-to-cart.php:77
2491
- msgid "Add to Cart on Visit"
2492
- msgstr ""
2493
-
2494
- #: includes/class-wcj-product-add-to-cart.php:74
2495
- msgid ""
2496
- "This section lets you enable automatically adding product to cart on "
2497
- "visiting the product page. Product is only added once, so if it is already "
2498
- "in cart - duplicate product is not added. "
2499
- msgstr ""
2500
-
2501
- #: includes/class-wcj-product-bulk-price-converter.php:44
2502
- #: includes/class-wcj-product-bulk-price-converter.php:231
2503
- #: includes/class-wcj-product-bulk-price-converter.php:261
2504
- #: includes/class-wcj-product-bulk-price-converter.php:279
2505
- msgid "Bulk Price Converter"
2506
- msgstr ""
2507
-
2508
- #: includes/class-wcj-product-bulk-price-converter.php:113
2509
- #: includes/class-wcj-sku.php:165
2510
- #: includes/reports/wcj-class-reports-stock.php:287
2511
- msgid "Product"
2512
- msgstr ""
2513
-
2514
- #: includes/class-wcj-product-bulk-price-converter.php:114
2515
- msgid "Price Type"
2516
- msgstr ""
2517
-
2518
- #: includes/class-wcj-product-bulk-price-converter.php:115
2519
- #: includes/reports/wcj-class-reports-stock.php:288
2520
- msgid "Price"
2521
- msgstr ""
2522
-
2523
- #: includes/class-wcj-product-bulk-price-converter.php:116
2524
- msgid "Modified Price"
2525
- msgstr ""
2526
-
2527
- #: includes/class-wcj-product-bulk-price-converter.php:136
2528
- msgid "Multiply value must be above zero."
2529
- msgstr ""
2530
-
2531
- #: includes/class-wcj-product-bulk-price-converter.php:143
2532
- msgid "Prices changed successfully!"
2533
- msgstr ""
2534
-
2535
- #: includes/class-wcj-product-bulk-price-converter.php:150
2536
- msgid "WooCommerce Jetpack - Bulk Price Converter"
2537
- msgstr ""
2538
-
2539
- #: includes/class-wcj-product-bulk-price-converter.php:151
2540
- #: includes/class-wcj-product-bulk-price-converter.php:233
2541
- msgid "Bulk Price Converter Tool."
2542
- msgstr ""
2543
-
2544
- #: includes/class-wcj-product-bulk-price-converter.php:154
2545
- msgid "Multiply all product prices by"
2546
- msgstr ""
2547
-
2548
- #: includes/class-wcj-product-bulk-price-converter.php:254
2549
- msgid "Bulk Price Converter Options"
2550
- msgstr ""
2551
-
2552
- #: includes/class-wcj-product-bulk-price-converter.php:256
2553
- msgid ""
2554
- "When enabled, the tool is accessible through WooCommerce > Jetpack Tools > "
2555
- "Bulk Price Converter."
2556
- msgstr ""
2557
-
2558
- #: includes/class-wcj-product-bulk-price-converter.php:263
2559
- msgid "Multiply all WooCommerce products prices by set value."
2560
- msgstr ""
2561
-
2562
- #: includes/class-wcj-product-images.php:26
2563
- msgid "Product Images"
2564
- msgstr ""
2565
-
2566
- #: includes/class-wcj-product-images.php:27
2567
- msgid "Customize WooCommerce products images, thumbnails and sale flashes."
2568
- msgstr ""
2569
-
2570
- #: includes/class-wcj-product-images.php:85
2571
- msgid "Replace image with custom HTML on single product page"
2572
- msgstr ""
2573
-
2574
- #: includes/class-wcj-product-images.php:91
2575
- msgid "Replace image with custom HTML on archives"
2576
- msgstr ""
2577
-
2578
- #: includes/class-wcj-product-images.php:132
2579
- #: includes/class-wcj-product-images.php:269
2580
- msgid "Sale!"
2581
- msgstr ""
2582
-
2583
- #: includes/class-wcj-product-images.php:180
2584
- msgid "Product Image and Thumbnails"
2585
- msgstr ""
2586
-
2587
- #: includes/class-wcj-product-images.php:190
2588
- msgid "Image and Thumbnails on Single"
2589
- msgstr ""
2590
-
2591
- #: includes/class-wcj-product-images.php:198
2592
- msgid "Replace Image on Single"
2593
- msgstr ""
2594
-
2595
- #: includes/class-wcj-product-images.php:199
2596
- msgid ""
2597
- "Replace image on single product page with custom HTML. Leave blank to "
2598
- "disable."
2599
- msgstr ""
2600
-
2601
- #: includes/class-wcj-product-images.php:207
2602
- msgid "Replace Thumbnails on Single"
2603
- msgstr ""
2604
-
2605
- #: includes/class-wcj-product-images.php:208
2606
- msgid ""
2607
- "Replace thumbnails on single product page with custom HTML. Leave blank to "
2608
- "disable."
2609
- msgstr ""
2610
-
2611
- #: includes/class-wcj-product-images.php:216
2612
- msgid "Image on Single"
2613
- msgstr ""
2614
-
2615
- #: includes/class-wcj-product-images.php:224
2616
- msgid "Thumbnails on Single"
2617
- msgstr ""
2618
-
2619
- #: includes/class-wcj-product-images.php:232
2620
- msgid "Replace Image on Archive"
2621
- msgstr ""
2622
-
2623
- #: includes/class-wcj-product-images.php:233
2624
- msgid ""
2625
- "Replace image on archive pages with custom HTML. Leave blank to disable."
2626
- msgstr ""
2627
-
2628
- #: includes/class-wcj-product-images.php:241
2629
- msgid "Image on Archives"
2630
- msgstr ""
2631
-
2632
- #: includes/class-wcj-product-images.php:249
2633
- msgid "Single Product Thumbnails Columns"
2634
- msgstr ""
2635
-
2636
- #: includes/class-wcj-product-images.php:257
2637
- msgid "Product Images Sale Flash"
2638
- msgstr ""
2639
-
2640
- #: includes/class-wcj-product-images.php:267
2641
- msgid "HTML"
2642
- msgstr ""
2643
-
2644
- #: includes/class-wcj-product-images.php:275
2645
- msgid "Hide on Archives (Categories)"
2646
- msgstr ""
2647
-
2648
- #: includes/class-wcj-product-images.php:282
2649
- msgid "Hide on Single"
2650
- msgstr ""
2651
-
2652
- #: includes/class-wcj-product-info.php:24
2653
- msgid "Before product"
2654
- msgstr ""
2655
-
2656
- #: includes/class-wcj-product-info.php:25
2657
- msgid "Before product title"
2658
- msgstr ""
2659
-
2660
- #: includes/class-wcj-product-info.php:26
2661
- msgid "After product"
2662
- msgstr ""
2663
-
2664
- #: includes/class-wcj-product-info.php:27
2665
- msgid "After product title"
2666
- msgstr ""
2667
-
2668
- #: includes/class-wcj-product-info.php:32
2669
- msgid "Inside single product summary"
2670
- msgstr ""
2671
-
2672
- #: includes/class-wcj-product-info.php:33
2673
- msgid "Before single product summary"
2674
- msgstr ""
2675
-
2676
- #: includes/class-wcj-product-info.php:34
2677
- msgid "After single product summary"
2678
- msgstr ""
2679
-
2680
- #: includes/class-wcj-product-info.php:293
2681
- msgid "Available shortcodes are:"
2682
- msgstr ""
2683
-
2684
- #: includes/class-wcj-product-info.php:596
2685
- msgid "%s ago"
2686
- msgstr ""
2687
-
2688
- #: includes/class-wcj-product-info.php:640
2689
- #: includes/class-wcj-product-info.php:768
2690
- #: includes/class-wcj-product-info.php:808
2691
- #: includes/class-wcj-product-tabs.php:350
2692
- #: includes/class-wcj-product-tabs.php:442
2693
- #: includes/class-wcj-product-tabs.php:468
2694
- #: includes/class-wcj-product-tabs.php:494
2695
- msgid "Priority (i.e. Order)"
2696
- msgstr ""
2697
-
2698
- #: includes/class-wcj-product-info.php:648
2699
- msgid ""
2700
- "Number of product info fields. Click \"Save changes\" after you change this "
2701
- "number."
2702
- msgstr ""
2703
-
2704
- #: includes/class-wcj-product-info.php:671
2705
- msgid "You save: <strong>%you_save_formatted%</strong> (%you_save_percent%%)"
2706
- msgstr ""
2707
-
2708
- #: includes/class-wcj-product-info.php:672
2709
- #: includes/class-wcj-product-info.php:786
2710
- msgid "Total sales: %total_sales%"
2711
- msgstr ""
2712
-
2713
- #: includes/class-wcj-product-info.php:677
2714
- msgid "Field Nr. "
2715
- msgstr ""
2716
-
2717
- #: includes/class-wcj-product-info.php:677
2718
- msgid "Available short codes: "
2719
- msgstr ""
2720
-
2721
- #: includes/class-wcj-product-info.php:707
2722
- msgid "Product Info Options"
2723
- msgstr ""
2724
-
2725
- #: includes/class-wcj-product-info.php:710
2726
- #: includes/class-wcj-product-info.php:834
2727
- msgid "Product Info"
2728
- msgstr ""
2729
-
2730
- #: includes/class-wcj-product-info.php:712
2731
- msgid "Add additional info to WooCommerce category and single product pages."
2732
- msgstr ""
2733
-
2734
- #: includes/class-wcj-product-info.php:721
2735
- msgid "More Products Info"
2736
- msgstr ""
2737
-
2738
- #: includes/class-wcj-product-info.php:722
2739
- msgid ""
2740
- "For full list of short codes, please visit <a target=\"_blank\" href="
2741
- "\"http://woojetpack.com/features/product-info/\">http://woojetpack.com/"
2742
- "features/product-info/</a>"
2743
- msgstr ""
2744
-
2745
- #: includes/class-wcj-product-info.php:727
2746
- #: includes/class-wcj-product-info.php:738
2747
- msgid "Product Info on Archive Pages"
2748
- msgstr ""
2749
-
2750
- #: includes/class-wcj-product-info.php:728
2751
- msgid "Product Info on Single Pages"
2752
- msgstr ""
2753
-
2754
- #: includes/class-wcj-product-info.php:735
2755
- msgid "Even More Products Info"
2756
- msgstr ""
2757
-
2758
- #: includes/class-wcj-product-info.php:747
2759
- #: includes/class-wcj-product-info.php:784
2760
- msgid "HTML info."
2761
- msgstr ""
2762
-
2763
- #: includes/class-wcj-product-info.php:749
2764
- msgid "SKU: %sku%"
2765
- msgstr ""
2766
-
2767
- #: includes/class-wcj-product-info.php:775
2768
- msgid "Product Info on Single Product Pages"
2769
- msgstr ""
2770
-
2771
- #: includes/class-wcj-product-info.php:815
2772
- msgid "Product IDs to exclude"
2773
- msgstr ""
2774
-
2775
- #: includes/class-wcj-product-info.php:816
2776
- msgid "Comma separated list of product IDs to exclude from product info."
2777
- msgstr ""
2778
-
2779
- #: includes/class-wcj-product-input-fields.php:128
2780
- msgid "Product Input Fields Options"
2781
- msgstr ""
2782
-
2783
- #: includes/class-wcj-product-input-fields.php:131
2784
- #: includes/class-wcj-product-input-fields.php:246
2785
- #: includes/input-fields/class-wcj-product-input-fields-per-product.php:111
2786
- msgid "Product Input Fields"
2787
- msgstr ""
2788
-
2789
- #: includes/class-wcj-product-input-fields.php:133
2790
- msgid "WooCommerce product input fields."
2791
- msgstr ""
2792
-
2793
- #: includes/class-wcj-product-input-fields.php:142
2794
- msgid "Product Input Fields per Product Options"
2795
- msgstr ""
2796
-
2797
- #: includes/class-wcj-product-input-fields.php:144
2798
- #: includes/class-wcj-product-input-fields.php:178
2799
- msgid ""
2800
- "Add custom input fields to product's single page for customer to fill before "
2801
- "adding product to cart."
2802
- msgstr ""
2803
-
2804
- #: includes/class-wcj-product-input-fields.php:146
2805
- msgid ""
2806
- "When enabled this module will add \"Product Input Fields\" tab to product's "
2807
- "\"Edit\" page."
2808
- msgstr ""
2809
-
2810
- #: includes/class-wcj-product-input-fields.php:151
2811
- msgid "Product Input Fields - per Product"
2812
- msgstr ""
2813
-
2814
- #: includes/class-wcj-product-input-fields.php:153
2815
- msgid "Add custom input field on per product basis."
2816
- msgstr ""
2817
-
2818
- #: includes/class-wcj-product-input-fields.php:160
2819
- msgid "Default Number of Product Input Fields per Product"
2820
- msgstr ""
2821
-
2822
- #: includes/class-wcj-product-input-fields.php:162
2823
- msgid ""
2824
- "You will be able to change this number later as well as define the fields, "
2825
- "for each product individually, in product's \"Edit\"."
2826
- msgstr ""
2827
-
2828
- #: includes/class-wcj-product-input-fields.php:176
2829
- msgid "Product Input Fields Global Options"
2830
- msgstr ""
2831
-
2832
- #: includes/class-wcj-product-input-fields.php:183
2833
- msgid "Product Input Fields - All Products"
2834
- msgstr ""
2835
-
2836
- #: includes/class-wcj-product-input-fields.php:185
2837
- msgid "Add custom input fields to all products."
2838
- msgstr ""
2839
-
2840
- #: includes/class-wcj-product-input-fields.php:192
2841
- msgid "Product Input Fields Number"
2842
- msgstr ""
2843
-
2844
- #: includes/class-wcj-product-input-fields.php:208
2845
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:142
2846
- msgid "Product Input Field"
2847
- msgstr ""
2848
-
2849
- #: includes/class-wcj-product-input-fields.php:226
2850
- msgid "Admin Order View Options"
2851
- msgstr ""
2852
-
2853
- #: includes/class-wcj-product-input-fields.php:229
2854
- msgid "Replace Field ID with Field Label"
2855
- msgstr ""
2856
-
2857
- #: includes/class-wcj-product-listings.php:56
2858
- msgid "Product Listings Options"
2859
- msgstr ""
2860
-
2861
- #: includes/class-wcj-product-listings.php:59
2862
- #: includes/class-wcj-product-listings.php:153
2863
- msgid "Product Listings"
2864
- msgstr ""
2865
-
2866
- #: includes/class-wcj-product-listings.php:61
2867
- msgid ""
2868
- "Change WooCommerce display options for shop and category pages: show/hide "
2869
- "categories count, exclude categories, show/hide empty categories."
2870
- msgstr ""
2871
-
2872
- #: includes/class-wcj-product-listings.php:69
2873
- msgid "Shop Page Display Options"
2874
- msgstr ""
2875
-
2876
- #: includes/class-wcj-product-listings.php:69
2877
- msgid ""
2878
- "This will work only when \"Shop Page Display\" in \"WooCommerce > Settings > "
2879
- "Products > Product Listings\" is set to \"Show subcategories\" or \"Show both"
2880
- "\"."
2881
- msgstr ""
2882
-
2883
- #: includes/class-wcj-product-listings.php:72
2884
- msgid "Categories Count"
2885
- msgstr ""
2886
-
2887
- #: includes/class-wcj-product-listings.php:73
2888
- #: includes/class-wcj-product-listings.php:172
2889
- msgid "Hide categories count on shop page"
2890
- msgstr ""
2891
-
2892
- #: includes/class-wcj-product-listings.php:80
2893
- msgid "Exclude Categories"
2894
- msgstr ""
2895
-
2896
- #: includes/class-wcj-product-listings.php:81
2897
- #: includes/class-wcj-product-listings.php:180
2898
- msgid ""
2899
- " Excludes one or more categories from the shop page. This parameter takes a "
2900
- "comma-separated list of categories by unique ID, in ascending order. Leave "
2901
- "blank to disable."
2902
- msgstr ""
2903
-
2904
- #: includes/class-wcj-product-listings.php:89
2905
- #: includes/class-wcj-product-listings.php:128
2906
- msgid "Hide Empty"
2907
- msgstr ""
2908
-
2909
- #: includes/class-wcj-product-listings.php:90
2910
- #: includes/class-wcj-product-listings.php:189
2911
- msgid "Hide empty categories on shop page"
2912
- msgstr ""
2913
-
2914
- #: includes/class-wcj-product-listings.php:97
2915
- #: includes/class-wcj-product-listings.php:136
2916
- msgid "Show Products"
2917
- msgstr ""
2918
-
2919
- #: includes/class-wcj-product-listings.php:98
2920
- #: includes/class-wcj-product-listings.php:197
2921
- msgid "Show products if no categories are displayed on shop page"
2922
- msgstr ""
2923
-
2924
- #: includes/class-wcj-product-listings.php:106
2925
- msgid "Category Display Options"
2926
- msgstr ""
2927
-
2928
- #: includes/class-wcj-product-listings.php:106
2929
- msgid ""
2930
- "This will work only when \"Default Category Display\" in \"WooCommerce > "
2931
- "Settings > Products > Product Listings\" is set to \"Show subcategories\" or "
2932
- "\"Show both\"."
2933
- msgstr ""
2934
-
2935
- #: includes/class-wcj-product-listings.php:109
2936
- msgid "Subcategories Count"
2937
- msgstr ""
2938
-
2939
- #: includes/class-wcj-product-listings.php:110
2940
- #: includes/class-wcj-product-listings.php:208
2941
- msgid "Hide subcategories count on category pages"
2942
- msgstr ""
2943
-
2944
- #: includes/class-wcj-product-listings.php:119
2945
- msgid "Exclude Subcategories"
2946
- msgstr ""
2947
-
2948
- #: includes/class-wcj-product-listings.php:120
2949
- #: includes/class-wcj-product-listings.php:218
2950
- msgid ""
2951
- " Excludes one or more categories from the category (archive) pages. This "
2952
- "parameter takes a comma-separated list of categories by unique ID, in "
2953
- "ascending order. Leave blank to disable."
2954
- msgstr ""
2955
-
2956
- #: includes/class-wcj-product-listings.php:129
2957
- #: includes/class-wcj-product-listings.php:227
2958
- msgid "Hide empty subcategories on category pages"
2959
- msgstr ""
2960
-
2961
- #: includes/class-wcj-product-listings.php:137
2962
- #: includes/class-wcj-product-listings.php:235
2963
- msgid "Show products if no categories are displayed on category page"
2964
- msgstr ""
2965
-
2966
- #: includes/class-wcj-product-listings.php:171
2967
- msgid "WooJetpack: Categories Count"
2968
- msgstr ""
2969
-
2970
- #: includes/class-wcj-product-listings.php:179
2971
- msgid "WooJetpack: Exclude Categories on Shop Page"
2972
- msgstr ""
2973
-
2974
- #: includes/class-wcj-product-listings.php:188
2975
- #: includes/class-wcj-product-listings.php:226
2976
- msgid "WooJetpack: Hide Empty"
2977
- msgstr ""
2978
-
2979
- #: includes/class-wcj-product-listings.php:196
2980
- #: includes/class-wcj-product-listings.php:234
2981
- msgid "WooJetpack: Show Products"
2982
- msgstr ""
2983
-
2984
- #: includes/class-wcj-product-listings.php:207
2985
- msgid "WooJetpack: Subcategories Count"
2986
- msgstr ""
2987
-
2988
- #: includes/class-wcj-product-listings.php:217
2989
- msgid "WooJetpack: Exclude Subcategories on Category Pages"
2990
- msgstr ""
2991
-
2992
- #: includes/class-wcj-product-tabs.php:223
2993
- msgid "Total number of custom tabs"
2994
- msgstr ""
2995
-
2996
- #: includes/class-wcj-product-tabs.php:229
2997
- #: includes/input-fields/class-wcj-product-input-fields-per-product.php:137
2998
- msgid "Click \"Update\" product after you change this number."
2999
- msgstr ""
3000
-
3001
- #: includes/class-wcj-product-tabs.php:238
3002
- #: includes/class-wcj-product-tabs.php:342
3003
- #: includes/class-wcj-product-tabs.php:452
3004
- #: includes/class-wcj-product-tabs.php:478
3005
- #: includes/class-wcj-product-tabs.php:504
3006
- #: includes/class-wcj-related-products.php:125
3007
- #: includes/gateways/class-wc-gateway-wcj-custom.php:54
3008
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:94
3009
- #: includes/shipping/class-wc-shipping-wcj-custom.php:62
3010
- msgid "Title"
3011
- msgstr ""
3012
-
3013
- #: includes/class-wcj-product-tabs.php:252
3014
- msgid "Customize the tab(s)"
3015
- msgstr ""
3016
-
3017
- #: includes/class-wcj-product-tabs.php:256
3018
- #: includes/class-wcj-product-tabs.php:341
3019
- msgid "Custom Product Tab"
3020
- msgstr ""
3021
-
3022
- #: includes/class-wcj-product-tabs.php:299
3023
- #: includes/class-wcj-product-tabs.php:313
3024
- msgid "Product Tabs"
3025
- msgstr ""
3026
-
3027
- #: includes/class-wcj-product-tabs.php:310
3028
- msgid "Product Tabs Options"
3029
- msgstr ""
3030
-
3031
- #: includes/class-wcj-product-tabs.php:315
3032
- msgid ""
3033
- "Add custom product tabs - globally or per product. Customize or completely "
3034
- "remove WooCommerce default product tabs."
3035
- msgstr ""
3036
-
3037
- #: includes/class-wcj-product-tabs.php:323
3038
- msgid "Custom Product Tabs Options"
3039
- msgstr ""
3040
-
3041
- #: includes/class-wcj-product-tabs.php:326
3042
- msgid "Custom Product Tabs Number"
3043
- msgstr ""
3044
-
3045
- #: includes/class-wcj-product-tabs.php:358
3046
- msgid "You can use shortcodes here..."
3047
- msgstr ""
3048
-
3049
- #: includes/class-wcj-product-tabs.php:366
3050
- msgid "Comma separated PRODUCT IDs to HIDE this tab"
3051
- msgstr ""
3052
-
3053
- #: includes/class-wcj-product-tabs.php:367
3054
- msgid "To hide this tab from some products, enter product IDs here."
3055
- msgstr ""
3056
-
3057
- #: includes/class-wcj-product-tabs.php:375
3058
- msgid "Comma separated CATEGORY IDs to HIDE this tab"
3059
- msgstr ""
3060
-
3061
- #: includes/class-wcj-product-tabs.php:376
3062
- msgid "To hide this tab from some categories, enter category IDs here."
3063
- msgstr ""
3064
-
3065
- #: includes/class-wcj-product-tabs.php:384
3066
- msgid "Comma separated PRODUCT IDs to SHOW this tab"
3067
- msgstr ""
3068
-
3069
- #: includes/class-wcj-product-tabs.php:385
3070
- msgid "To show this tab only for some products, enter product IDs here."
3071
- msgstr ""
3072
-
3073
- #: includes/class-wcj-product-tabs.php:393
3074
- msgid "Comma separated CATEGORY IDs to SHOW this tab"
3075
- msgstr ""
3076
-
3077
- #: includes/class-wcj-product-tabs.php:394
3078
- msgid "To show this tab only for some categories, enter category IDs here."
3079
- msgstr ""
3080
-
3081
- #: includes/class-wcj-product-tabs.php:408
3082
- msgid "Local Custom Product Tabs"
3083
- msgstr ""
3084
-
3085
- #: includes/class-wcj-product-tabs.php:411
3086
- msgid "Enable Custom Product Tabs"
3087
- msgstr ""
3088
-
3089
- #: includes/class-wcj-product-tabs.php:419
3090
- msgid "Default Local Custom Product Tabs Number"
3091
- msgstr ""
3092
-
3093
- #: includes/class-wcj-product-tabs.php:431
3094
- msgid "WooCommerce Standard Product Tabs Options"
3095
- msgstr ""
3096
-
3097
- #: includes/class-wcj-product-tabs.php:434
3098
- msgid "Description Tab"
3099
- msgstr ""
3100
-
3101
- #: includes/class-wcj-product-tabs.php:435
3102
- #: includes/class-wcj-product-tabs.php:461
3103
- #: includes/class-wcj-product-tabs.php:487
3104
- msgid "Remove tab from product page"
3105
- msgstr ""
3106
-
3107
- #: includes/class-wcj-product-tabs.php:453
3108
- #: includes/class-wcj-product-tabs.php:479
3109
- #: includes/class-wcj-product-tabs.php:505
3110
- msgid "Leave blank for WooCommerce defaults"
3111
- msgstr ""
3112
-
3113
- #: includes/class-wcj-product-tabs.php:460
3114
- msgid "Additional Information Tab"
3115
- msgstr ""
3116
-
3117
- #: includes/class-wcj-product-tabs.php:486
3118
- msgid "Reviews Tab"
3119
- msgstr ""
3120
-
3121
- #: includes/class-wcj-purchase-data.php:26
3122
- msgid "Product Cost Price"
3123
- msgstr ""
3124
-
3125
- #: includes/class-wcj-purchase-data.php:27
3126
- msgid "Save WooCommerce product purchase costs data for admin reports."
3127
- msgstr ""
3128
-
3129
- #: includes/class-wcj-purchase-data.php:50
3130
- #: includes/class-wcj-purchase-data.php:238
3131
- #: includes/class-wcj-purchase-data.php:320
3132
- msgid "Profit"
3133
- msgstr ""
3134
-
3135
- #: includes/class-wcj-purchase-data.php:144
3136
- #: includes/classes/class-wcj-module.php:71
3137
- msgid "WooCommerce Jetpack"
3138
- msgstr ""
3139
-
3140
- #: includes/class-wcj-purchase-data.php:169
3141
- msgid "Product cost (purchase) price"
3142
- msgstr ""
3143
-
3144
- #: includes/class-wcj-purchase-data.php:173
3145
- msgid "Extra expenses (shipping etc.)"
3146
- msgstr ""
3147
-
3148
- #: includes/class-wcj-purchase-data.php:181
3149
- msgid "(Last) Purchase date"
3150
- msgstr ""
3151
-
3152
- #: includes/class-wcj-purchase-data.php:185
3153
- msgid "Purchase info"
3154
- msgstr ""
3155
-
3156
- #: includes/class-wcj-purchase-data.php:214
3157
- msgid "Report"
3158
- msgstr ""
3159
-
3160
- #: includes/class-wcj-purchase-data.php:219
3161
- msgid "Selling"
3162
- msgstr ""
3163
-
3164
- #: includes/class-wcj-purchase-data.php:228
3165
- msgid "Buying"
3166
- msgstr ""
3167
-
3168
- #: includes/class-wcj-related-products.php:25
3169
- msgid "Related Products"
3170
- msgstr ""
3171
-
3172
- #: includes/class-wcj-related-products.php:26
3173
- msgid ""
3174
- "Change displayed WooCommerce related products number, columns, order, relate "
3175
- "by tag and/or category, or hide related products completely."
3176
- msgstr ""
3177
-
3178
- #: includes/class-wcj-related-products.php:104
3179
- msgid "Related Products Number"
3180
- msgstr ""
3181
-
3182
- #: includes/class-wcj-related-products.php:111
3183
- msgid "Related Products Columns"
3184
- msgstr ""
3185
-
3186
- #: includes/class-wcj-related-products.php:118
3187
- msgid "Order by"
3188
- msgstr ""
3189
-
3190
- #: includes/class-wcj-related-products.php:123
3191
- msgid "Random"
3192
- msgstr ""
3193
-
3194
- #: includes/class-wcj-related-products.php:124
3195
- msgid "Date"
3196
- msgstr ""
3197
-
3198
- #: includes/class-wcj-related-products.php:130
3199
- msgid "Order"
3200
- msgstr ""
3201
-
3202
- #: includes/class-wcj-related-products.php:131
3203
- msgid "Ignored if order by \"Random\" is selected above."
3204
- msgstr ""
3205
-
3206
- #: includes/class-wcj-related-products.php:136
3207
- msgid "Ascending"
3208
- msgstr ""
3209
-
3210
- #: includes/class-wcj-related-products.php:137
3211
- msgid "Descending"
3212
- msgstr ""
3213
-
3214
- #: includes/class-wcj-related-products.php:142
3215
- msgid "Relate by Category"
3216
- msgstr ""
3217
-
3218
- #: includes/class-wcj-related-products.php:149
3219
- msgid "Relate by Tag"
3220
- msgstr ""
3221
-
3222
- #: includes/class-wcj-related-products.php:156
3223
- msgid "Hide Related Products"
3224
- msgstr ""
3225
-
3226
- #: includes/class-wcj-reports.php:67
3227
- msgid "WooJetpack: More Ranges - Months"
3228
- msgstr ""
3229
-
3230
- #: includes/class-wcj-reports.php:69 includes/class-wcj-reports.php:104
3231
- msgid "Select Range"
3232
- msgstr ""
3233
-
3234
- #: includes/class-wcj-reports.php:102
3235
- msgid "WooJetpack: More Ranges"
3236
- msgstr ""
3237
-
3238
- #: includes/class-wcj-reports.php:112 includes/class-wcj-reports.php:114
3239
- msgid "Last 14 Days"
3240
- msgstr ""
3241
-
3242
- #: includes/class-wcj-reports.php:119 includes/class-wcj-reports.php:121
3243
- msgid "Last 30 Days"
3244
- msgstr ""
3245
-
3246
- #: includes/class-wcj-reports.php:126 includes/class-wcj-reports.php:128
3247
- msgid "Last 3 Months"
3248
- msgstr ""
3249
-
3250
- #: includes/class-wcj-reports.php:133 includes/class-wcj-reports.php:135
3251
- msgid "Last 6 Months"
3252
- msgstr ""
3253
-
3254
- #: includes/class-wcj-reports.php:140 includes/class-wcj-reports.php:142
3255
- msgid "Last 12 Months"
3256
- msgstr ""
3257
-
3258
- #: includes/class-wcj-reports.php:147 includes/class-wcj-reports.php:149
3259
- msgid "Last 24 Months"
3260
- msgstr ""
3261
-
3262
- #: includes/class-wcj-reports.php:154 includes/class-wcj-reports.php:156
3263
- msgid "Same Days Last Month"
3264
- msgstr ""
3265
-
3266
- #: includes/class-wcj-reports.php:168 includes/class-wcj-reports.php:170
3267
- msgid "Last Year"
3268
- msgstr ""
3269
-
3270
- #: includes/class-wcj-reports.php:213
3271
- msgid "WooJetpack: All in stock"
3272
- msgstr ""
3273
-
3274
- #: includes/class-wcj-reports.php:220
3275
- msgid "WooJetpack: Understocked"
3276
- msgstr ""
3277
-
3278
- #: includes/class-wcj-reports.php:227
3279
- msgid "WooJetpack: Overstocked"
3280
- msgstr ""
3281
-
3282
- #: includes/class-wcj-reports.php:242
3283
- msgid "WooJetpack: Customers by Country"
3284
- msgstr ""
3285
-
3286
- #: includes/class-wcj-reports.php:249
3287
- msgid "WooJetpack: Customers by Country Sets"
3288
- msgstr ""
3289
-
3290
- #: includes/class-wcj-reports.php:274
3291
- msgid "Reports Options"
3292
- msgstr ""
3293
-
3294
- #: includes/class-wcj-reports.php:277 includes/class-wcj-reports.php:314
3295
- msgid "Reports"
3296
- msgstr ""
3297
-
3298
- #: includes/class-wcj-reports.php:279
3299
- msgid "WooCommerce stock, sales, customers etc. reports."
3300
- msgstr ""
3301
-
3302
- #: includes/class-wcj-reports.php:288
3303
- msgid "Available Reports"
3304
- msgstr ""
3305
-
3306
- #: includes/class-wcj-reports.php:291
3307
- msgid ""
3308
- "WooJetpack: Customers by Country. Available in WooCommerce > Reports > "
3309
- "Customers."
3310
- msgstr ""
3311
-
3312
- #: includes/class-wcj-reports.php:293
3313
- msgid ""
3314
- "WooJetpack: Customers by Country Sets. Available in WooCommerce > Reports > "
3315
- "Customers."
3316
- msgstr ""
3317
-
3318
- #: includes/class-wcj-reports.php:295
3319
- msgid ""
3320
- "WooJetpack: All in Stock with sales data. Available in WooCommerce > Reports "
3321
- "> Stock."
3322
- msgstr ""
3323
-
3324
- #: includes/class-wcj-reports.php:297
3325
- msgid ""
3326
- "WooJetpack: Understocked products (calculated by sales data). Available in "
3327
- "WooCommerce > Reports > Stock."
3328
- msgstr ""
3329
-
3330
- #: includes/class-wcj-reports.php:299
3331
- msgid ""
3332
- "WooJetpack: Overstocked products (calculated by sales data). Available in "
3333
- "WooCommerce > Reports > Stock."
3334
- msgstr ""
3335
-
3336
- #: includes/class-wcj-shipping-calculator.php:116
3337
- msgid "Shipping Calculator Options"
3338
- msgstr ""
3339
-
3340
- #: includes/class-wcj-shipping-calculator.php:119
3341
- #: includes/class-wcj-shipping-calculator.php:196
3342
- msgid "Shipping Calculator"
3343
- msgstr ""
3344
-
3345
- #: includes/class-wcj-shipping-calculator.php:121
3346
- msgid "Customize WooCommerce shipping calculator on cart page."
3347
- msgstr ""
3348
-
3349
- #: includes/class-wcj-shipping-calculator.php:128
3350
- msgid "Enable City"
3351
- msgstr ""
3352
-
3353
- #: includes/class-wcj-shipping-calculator.php:136
3354
- msgid "Enable Postcode"
3355
- msgstr ""
3356
-
3357
- #: includes/class-wcj-shipping-calculator.php:144
3358
- msgid "Enable State"
3359
- msgstr ""
3360
-
3361
- #: includes/class-wcj-shipping-calculator.php:152
3362
- msgid "Force Block Open"
3363
- msgstr ""
3364
-
3365
- #: includes/class-wcj-shipping-calculator.php:161
3366
- msgid "Calculate Shipping button"
3367
- msgstr ""
3368
-
3369
- #: includes/class-wcj-shipping-calculator.php:162
3370
- msgid ""
3371
- "When \"Force Block Open\" options is enabled, set Calculate Shipping button "
3372
- "options."
3373
- msgstr ""
3374
-
3375
- #: includes/class-wcj-shipping-calculator.php:168
3376
- msgid "Make non clickable"
3377
- msgstr ""
3378
-
3379
- #: includes/class-wcj-shipping.php:63
3380
- msgid "WooCommerce Jetpack: Hide shipping"
3381
- msgstr ""
3382
-
3383
- #: includes/class-wcj-shipping.php:64 includes/class-wcj-shipping.php:170
3384
- msgid "Hide local delivery when free is available"
3385
- msgstr ""
3386
-
3387
- #: includes/class-wcj-shipping.php:75 includes/class-wcj-shipping.php:180
3388
- msgid "Hide all when free is available"
3389
- msgstr ""
3390
-
3391
- #: includes/class-wcj-shipping.php:152
3392
- msgid "Shipping Options"
3393
- msgstr ""
3394
-
3395
- #: includes/class-wcj-shipping.php:157
3396
- msgid "Hide WooCommerce shipping when free is available."
3397
- msgstr ""
3398
-
3399
- #: includes/class-wcj-shipping.php:165
3400
- msgid "Hide if free is available"
3401
- msgstr ""
3402
-
3403
- #: includes/class-wcj-shipping.php:165
3404
- msgid ""
3405
- "This section lets you hide other shipping options when free shipping is "
3406
- "available on shop frontend."
3407
- msgstr ""
3408
-
3409
- #: includes/class-wcj-shipping.php:169
3410
- msgid "Hide shipping"
3411
- msgstr ""
3412
-
3413
- #: includes/class-wcj-shortcodes.php:61 includes/class-wcj-shortcodes.php:66
3414
- msgid "Shortcodes."
3415
- msgstr ""
3416
-
3417
- #: includes/class-wcj-shortcodes.php:64 includes/class-wcj-shortcodes.php:82
3418
- msgid "Shortcodes"
3419
- msgstr ""
3420
-
3421
- #: includes/class-wcj-shortcodes.php:65
3422
- msgid "Enable the Shortcodes feature"
3423
- msgstr ""
3424
-
3425
- #: includes/class-wcj-sku.php:25 includes/class-wcj-sku.php:166
3426
- msgid "SKU"
3427
- msgstr ""
3428
-
3429
- #: includes/class-wcj-sku.php:26
3430
- msgid "Generate WooCommerce SKUs automatically."
3431
- msgstr ""
3432
-
3433
- #: includes/class-wcj-sku.php:29
3434
- msgid "Autogenerate SKUs for Existing Products"
3435
- msgstr ""
3436
-
3437
- #: includes/class-wcj-sku.php:145 includes/class-wcj-sku.php:196
3438
- msgid "Autogenerate SKUs"
3439
- msgstr ""
3440
-
3441
- #: includes/class-wcj-sku.php:172
3442
- msgid "SKUs generated and set successfully!"
3443
- msgstr ""
3444
-
3445
- #: includes/class-wcj-sku.php:176
3446
- msgid "WooCommerce Jetpack - Autogenerate SKUs"
3447
- msgstr ""
3448
-
3449
- #: includes/class-wcj-sku.php:177 includes/class-wcj-sku.php:198
3450
- msgid "The tool generates and sets product SKUs."
3451
- msgstr ""
3452
-
3453
- #: includes/class-wcj-sku.php:210
3454
- msgid "SKU Format Options"
3455
- msgstr ""
3456
-
3457
- #: includes/class-wcj-sku.php:217
3458
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:49
3459
- msgid "Prefix"
3460
- msgstr ""
3461
-
3462
- #: includes/class-wcj-sku.php:224
3463
- msgid "Minimum Number Length"
3464
- msgstr ""
3465
-
3466
- #: includes/class-wcj-sku.php:231
3467
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:61
3468
- msgid "Suffix"
3469
- msgstr ""
3470
-
3471
- #: includes/class-wcj-sku.php:241
3472
- msgid "Variable Products Variations"
3473
- msgstr ""
3474
-
3475
- #: includes/class-wcj-sku.php:246
3476
- msgid "SKU same as parent's product"
3477
- msgstr ""
3478
-
3479
- #: includes/class-wcj-sku.php:247
3480
- msgid "Generate different SKU for each variation"
3481
- msgstr ""
3482
-
3483
- #: includes/class-wcj-sku.php:248
3484
- msgid "SKU same as parent's product + variation letter suffix"
3485
- msgstr ""
3486
-
3487
- #: includes/class-wcj-sku.php:264
3488
- msgid ""
3489
- "When enabled - all new products will be given (autogenerated) SKU.<br>If you "
3490
- "wish to set SKUs for existing products, use Autogenerate SKUs Tool."
3491
- msgstr ""
3492
-
3493
- #: includes/class-wcj-sorting.php:27
3494
- msgid "Sorting"
3495
- msgstr ""
3496
-
3497
- #: includes/class-wcj-sorting.php:28
3498
- msgid ""
3499
- "Add more WooCommerce sorting options or remove all sorting including default."
3500
- msgstr ""
3501
-
3502
- #: includes/class-wcj-sorting.php:64
3503
- msgid "WooJetpack: Remove All Sorting"
3504
- msgstr ""
3505
-
3506
- #: includes/class-wcj-sorting.php:68
3507
- msgid "Completely remove sorting from the shop front end"
3508
- msgstr ""
3509
-
3510
- #: includes/class-wcj-sorting.php:174 includes/class-wcj-sorting.php:181
3511
- msgid "Remove All Sorting"
3512
- msgstr ""
3513
-
3514
- #: includes/class-wcj-sorting.php:182
3515
- msgid "Remove all sorting (including WooCommerce default)"
3516
- msgstr ""
3517
-
3518
- #: includes/class-wcj-sorting.php:197 includes/class-wcj-sorting.php:204
3519
- msgid "Add More Sorting"
3520
- msgstr ""
3521
-
3522
- #: includes/class-wcj-sorting.php:212
3523
- msgid "Sort by Name"
3524
- msgstr ""
3525
-
3526
- #: includes/class-wcj-sorting.php:213 includes/class-wcj-sorting.php:216
3527
- msgid "Sort by title: A to Z"
3528
- msgstr ""
3529
-
3530
- #: includes/class-wcj-sorting.php:214 includes/class-wcj-sorting.php:224
3531
- #: includes/class-wcj-sorting.php:234 includes/class-wcj-sorting.php:244
3532
- #: includes/class-wcj-sorting.php:265 includes/class-wcj-sorting.php:275
3533
- msgid "Text to show on frontend. Leave blank to disable."
3534
- msgstr ""
3535
-
3536
- #: includes/class-wcj-sorting.php:223 includes/class-wcj-sorting.php:226
3537
- msgid "Sort by title: Z to A"
3538
- msgstr ""
3539
-
3540
- #: includes/class-wcj-sorting.php:232
3541
- msgid "Sort by SKU"
3542
- msgstr ""
3543
-
3544
- #: includes/class-wcj-sorting.php:233 includes/class-wcj-sorting.php:236
3545
- msgid "Sort by SKU: low to high"
3546
- msgstr ""
3547
-
3548
- #: includes/class-wcj-sorting.php:243 includes/class-wcj-sorting.php:246
3549
- msgid "Sort by SKU: high to low"
3550
- msgstr ""
3551
-
3552
- #: includes/class-wcj-sorting.php:253
3553
- msgid "Sort SKUs as numbers instead of as texts"
3554
- msgstr ""
3555
-
3556
- #: includes/class-wcj-sorting.php:263
3557
- msgid "Sort by stock quantity"
3558
- msgstr ""
3559
-
3560
- #: includes/class-wcj-sorting.php:264 includes/class-wcj-sorting.php:267
3561
- msgid "Sort by stock quantity: low to high"
3562
- msgstr ""
3563
-
3564
- #: includes/class-wcj-sorting.php:274 includes/class-wcj-sorting.php:277
3565
- msgid "Sort by stock quantity: high to low"
3566
- msgstr ""
3567
-
3568
- #: includes/class-wcj-wholesale-price.php:26
3569
- msgid "Wholesale Price"
3570
- msgstr ""
3571
-
3572
- #: includes/class-wcj-wholesale-price.php:27
3573
- msgid ""
3574
- "Set WooCommerce wholesale pricing depending on product quantity in cart (buy "
3575
- "more pay less)."
3576
- msgstr ""
3577
-
3578
- #: includes/class-wcj-wholesale-price.php:193
3579
- msgid "Wholesale Price Levels Options"
3580
- msgstr ""
3581
-
3582
- #: includes/class-wcj-wholesale-price.php:195
3583
- msgid ""
3584
- "Wholesale Price Levels Options. If you want to display prices table on "
3585
- "frontend, use [wcj_product_wholesale_price_table] shortcode."
3586
- msgstr ""
3587
-
3588
- #: includes/class-wcj-wholesale-price.php:200
3589
- msgid "Use total cart quantity instead of product quantity"
3590
- msgstr ""
3591
-
3592
- #: includes/class-wcj-wholesale-price.php:208
3593
- msgid "Apply wholesale discount only if no other cart discounts were applied"
3594
- msgstr ""
3595
-
3596
- #: includes/class-wcj-wholesale-price.php:216
3597
- msgid "Show discount info on cart page"
3598
- msgstr ""
3599
-
3600
- #: includes/class-wcj-wholesale-price.php:217
3601
- msgid "Show"
3602
- msgstr ""
3603
-
3604
- #: includes/class-wcj-wholesale-price.php:224
3605
- msgid "If show discount info on cart page is enabled, set format here"
3606
- msgstr ""
3607
-
3608
- #: includes/class-wcj-wholesale-price.php:232
3609
- msgid "Discount Type"
3610
- msgstr ""
3611
-
3612
- #: includes/class-wcj-wholesale-price.php:243
3613
- msgid "Products to include"
3614
- msgstr ""
3615
-
3616
- #: includes/class-wcj-wholesale-price.php:244
3617
- msgid "Leave blank to include all products."
3618
- msgstr ""
3619
-
3620
- #: includes/class-wcj-wholesale-price.php:254
3621
- msgid "Number of levels"
3622
- msgstr ""
3623
-
3624
- #: includes/class-wcj-wholesale-price.php:269
3625
- msgid "Min quantity"
3626
- msgstr ""
3627
-
3628
- #: includes/class-wcj-wholesale-price.php:270
3629
- msgid "Minimum quantity to apply discount"
3630
- msgstr ""
3631
-
3632
- #: includes/class-wcj-wpml.php:24
3633
- msgid "WPML"
3634
- msgstr ""
3635
-
3636
- #: includes/class-wcj-wpml.php:25
3637
- msgid "Booster for WooCommerce basic WPML support."
3638
- msgstr ""
3639
-
3640
- #: includes/classes/class-wcj-module.php:170
3641
- msgid "Back to Module Settings"
3642
- msgstr ""
3643
-
3644
- #: includes/classes/class-wcj-module.php:182
3645
- msgid "Tools"
3646
- msgstr ""
3647
-
3648
- #: includes/classes/class-wcj-module.php:188
3649
- msgid "Module Tools"
3650
- msgstr ""
3651
-
3652
- #: includes/classes/class-wcj-module.php:241
3653
- msgid "Module Options"
3654
- msgstr ""
3655
-
3656
- #: includes/currencies/wcj-currencies.php:4
3657
- msgid "Afghan afghani"
3658
- msgstr ""
3659
-
3660
- #: includes/currencies/wcj-currencies.php:5
3661
- msgid "Albanian lek"
3662
- msgstr ""
3663
-
3664
- #: includes/currencies/wcj-currencies.php:6
3665
- msgid "Algerian dinar"
3666
- msgstr ""
3667
-
3668
- #: includes/currencies/wcj-currencies.php:7
3669
- msgid "Angolan kwanza"
3670
- msgstr ""
3671
-
3672
- #: includes/currencies/wcj-currencies.php:8
3673
- msgid "Argentine peso"
3674
- msgstr ""
3675
-
3676
- #: includes/currencies/wcj-currencies.php:9
3677
- msgid "Armenian dram"
3678
- msgstr ""
3679
-
3680
- #: includes/currencies/wcj-currencies.php:10
3681
- msgid "Aruban florin"
3682
- msgstr ""
3683
-
3684
- #: includes/currencies/wcj-currencies.php:11
3685
- msgid "Australian dollar"
3686
- msgstr ""
3687
-
3688
- #: includes/currencies/wcj-currencies.php:12
3689
- msgid "Azerbaijani manat"
3690
- msgstr ""
3691
-
3692
- #: includes/currencies/wcj-currencies.php:13
3693
- msgid "Bahamian dollar"
3694
- msgstr ""
3695
-
3696
- #: includes/currencies/wcj-currencies.php:14
3697
- msgid "Bahraini dinar"
3698
- msgstr ""
3699
-
3700
- #: includes/currencies/wcj-currencies.php:15
3701
- msgid "Bangladeshi taka"
3702
- msgstr ""
3703
-
3704
- #: includes/currencies/wcj-currencies.php:16
3705
- msgid "Barbadian dollar"
3706
- msgstr ""
3707
-
3708
- #: includes/currencies/wcj-currencies.php:17
3709
- msgid "Belarusian ruble"
3710
- msgstr ""
3711
-
3712
- #: includes/currencies/wcj-currencies.php:18
3713
- msgid "Belize dollar"
3714
- msgstr ""
3715
-
3716
- #: includes/currencies/wcj-currencies.php:19
3717
- msgid "Bhutanese ngultrum"
3718
- msgstr ""
3719
-
3720
- #: includes/currencies/wcj-currencies.php:20
3721
- msgid "Bolivian boliviano"
3722
- msgstr ""
3723
-
3724
- #: includes/currencies/wcj-currencies.php:21
3725
- msgid "Bosnia and Herzegovina konvertibilna marka"
3726
- msgstr ""
3727
-
3728
- #: includes/currencies/wcj-currencies.php:22
3729
- msgid "Botswana pula"
3730
- msgstr ""
3731
-
3732
- #: includes/currencies/wcj-currencies.php:23
3733
- msgid "Brazilian real"
3734
- msgstr ""
3735
-
3736
- #: includes/currencies/wcj-currencies.php:24
3737
- msgid "British pound"
3738
- msgstr ""
3739
-
3740
- #: includes/currencies/wcj-currencies.php:25
3741
- msgid "Brunei dollar"
3742
- msgstr ""
3743
-
3744
- #: includes/currencies/wcj-currencies.php:26
3745
- msgid "Bulgarian lev"
3746
- msgstr ""
3747
-
3748
- #: includes/currencies/wcj-currencies.php:27
3749
- msgid "Burundi franc"
3750
- msgstr ""
3751
-
3752
- #: includes/currencies/wcj-currencies.php:28
3753
- msgid "Cayman Islands dollar"
3754
- msgstr ""
3755
-
3756
- #: includes/currencies/wcj-currencies.php:29
3757
- msgid "Cambodian riel"
3758
- msgstr ""
3759
-
3760
- #: includes/currencies/wcj-currencies.php:30
3761
- msgid "Canadian dollar"
3762
- msgstr ""
3763
-
3764
- #: includes/currencies/wcj-currencies.php:31
3765
- msgid "Cape Verdean escudo"
3766
- msgstr ""
3767
-
3768
- #: includes/currencies/wcj-currencies.php:32
3769
- #: includes/currencies/wcj-currencies.php:33
3770
- msgid "Central African CFA franc"
3771
- msgstr ""
3772
-
3773
- #: includes/currencies/wcj-currencies.php:34
3774
- msgid "CFP franc"
3775
- msgstr ""
3776
-
3777
- #: includes/currencies/wcj-currencies.php:35
3778
- msgid "Chilean peso"
3779
- msgstr ""
3780
-
3781
- #: includes/currencies/wcj-currencies.php:36
3782
- msgid "Chinese renminbi"
3783
- msgstr ""
3784
-
3785
- #: includes/currencies/wcj-currencies.php:37
3786
- msgid "Colombian peso"
3787
- msgstr ""
3788
-
3789
- #: includes/currencies/wcj-currencies.php:38
3790
- msgid "Comorian franc"
3791
- msgstr ""
3792
-
3793
- #: includes/currencies/wcj-currencies.php:39
3794
- msgid "Congolese franc"
3795
- msgstr ""
3796
-
3797
- #: includes/currencies/wcj-currencies.php:40
3798
- msgid "Costa Rican colon"
3799
- msgstr ""
3800
-
3801
- #: includes/currencies/wcj-currencies.php:41
3802
- msgid "Croatian kuna"
3803
- msgstr ""
3804
-
3805
- #: includes/currencies/wcj-currencies.php:42
3806
- msgid "Cuban peso"
3807
- msgstr ""
3808
-
3809
- #: includes/currencies/wcj-currencies.php:43
3810
- msgid "Czech koruna"
3811
- msgstr ""
3812
-
3813
- #: includes/currencies/wcj-currencies.php:44
3814
- msgid "Danish krone"
3815
- msgstr ""
3816
-
3817
- #: includes/currencies/wcj-currencies.php:45
3818
- msgid "Djiboutian franc"
3819
- msgstr ""
3820
-
3821
- #: includes/currencies/wcj-currencies.php:46
3822
- msgid "Dominican peso"
3823
- msgstr ""
3824
-
3825
- #: includes/currencies/wcj-currencies.php:47
3826
- msgid "East Caribbean dollar"
3827
- msgstr ""
3828
-
3829
- #: includes/currencies/wcj-currencies.php:48
3830
- msgid "Egyptian pound"
3831
- msgstr ""
3832
-
3833
- #: includes/currencies/wcj-currencies.php:49
3834
- msgid "Eritrean nakfa"
3835
- msgstr ""
3836
-
3837
- #: includes/currencies/wcj-currencies.php:50
3838
- msgid "Estonian kroon"
3839
- msgstr ""
3840
-
3841
- #: includes/currencies/wcj-currencies.php:51
3842
- msgid "Ethiopian birr"
3843
- msgstr ""
3844
-
3845
- #: includes/currencies/wcj-currencies.php:52
3846
- msgid "European euro"
3847
- msgstr ""
3848
-
3849
- #: includes/currencies/wcj-currencies.php:53
3850
- msgid "Falkland Islands pound"
3851
- msgstr ""
3852
-
3853
- #: includes/currencies/wcj-currencies.php:54
3854
- msgid "Fijian dollar"
3855
- msgstr ""
3856
-
3857
- #: includes/currencies/wcj-currencies.php:55
3858
- msgid "Gambian dalasi"
3859
- msgstr ""
3860
-
3861
- #: includes/currencies/wcj-currencies.php:56
3862
- msgid "Georgian lari"
3863
- msgstr ""
3864
-
3865
- #: includes/currencies/wcj-currencies.php:57
3866
- msgid "Ghanaian cedi"
3867
- msgstr ""
3868
-
3869
- #: includes/currencies/wcj-currencies.php:58
3870
- msgid "Gibraltar pound"
3871
- msgstr ""
3872
-
3873
- #: includes/currencies/wcj-currencies.php:59
3874
- msgid "Guatemalan quetzal"
3875
- msgstr ""
3876
-
3877
- #: includes/currencies/wcj-currencies.php:60
3878
- msgid "Guinean franc"
3879
- msgstr ""
3880
-
3881
- #: includes/currencies/wcj-currencies.php:61
3882
- msgid "Guyanese dollar"
3883
- msgstr ""
3884
-
3885
- #: includes/currencies/wcj-currencies.php:62
3886
- msgid "Haitian gourde"
3887
- msgstr ""
3888
-
3889
- #: includes/currencies/wcj-currencies.php:63
3890
- msgid "Honduran lempira"
3891
- msgstr ""
3892
-
3893
- #: includes/currencies/wcj-currencies.php:64
3894
- msgid "Hong Kong dollar"
3895
- msgstr ""
3896
-
3897
- #: includes/currencies/wcj-currencies.php:65
3898
- msgid "Hungarian forint"
3899
- msgstr ""
3900
-
3901
- #: includes/currencies/wcj-currencies.php:66
3902
- msgid "Icelandic krona"
3903
- msgstr ""
3904
-
3905
- #: includes/currencies/wcj-currencies.php:67
3906
- msgid "Indian rupee"
3907
- msgstr ""
3908
-
3909
- #: includes/currencies/wcj-currencies.php:68
3910
- msgid "Indonesian rupiah"
3911
- msgstr ""
3912
-
3913
- #: includes/currencies/wcj-currencies.php:69
3914
- msgid "Iranian rial"
3915
- msgstr ""
3916
-
3917
- #: includes/currencies/wcj-currencies.php:70
3918
- msgid "Iraqi dinar"
3919
- msgstr ""
3920
-
3921
- #: includes/currencies/wcj-currencies.php:71
3922
- msgid "Israeli new sheqel"
3923
- msgstr ""
3924
-
3925
- #: includes/currencies/wcj-currencies.php:72
3926
- msgid "Yemeni rial"
3927
- msgstr ""
3928
-
3929
- #: includes/currencies/wcj-currencies.php:73
3930
- msgid "Jamaican dollar"
3931
- msgstr ""
3932
-
3933
- #: includes/currencies/wcj-currencies.php:74
3934
- msgid "Japanese yen"
3935
- msgstr ""
3936
-
3937
- #: includes/currencies/wcj-currencies.php:75
3938
- msgid "Jordanian dinar"
3939
- msgstr ""
3940
-
3941
- #: includes/currencies/wcj-currencies.php:76
3942
- msgid "Kazakhstani tenge"
3943
- msgstr ""
3944
-
3945
- #: includes/currencies/wcj-currencies.php:77
3946
- msgid "Kenyan shilling"
3947
- msgstr ""
3948
-
3949
- #: includes/currencies/wcj-currencies.php:78
3950
- msgid "Kyrgyzstani som"
3951
- msgstr ""
3952
-
3953
- #: includes/currencies/wcj-currencies.php:79
3954
- msgid "Kuwaiti dinar"
3955
- msgstr ""
3956
-
3957
- #: includes/currencies/wcj-currencies.php:80
3958
- msgid "Lao kip"
3959
- msgstr ""
3960
-
3961
- #: includes/currencies/wcj-currencies.php:82
3962
- msgid "Latvian lats"
3963
- msgstr ""
3964
-
3965
- #: includes/currencies/wcj-currencies.php:83
3966
- msgid "Lebanese lira"
3967
- msgstr ""
3968
-
3969
- #: includes/currencies/wcj-currencies.php:84
3970
- msgid "Lesotho loti"
3971
- msgstr ""
3972
-
3973
- #: includes/currencies/wcj-currencies.php:85
3974
- msgid "Liberian dollar"
3975
- msgstr ""
3976
-
3977
- #: includes/currencies/wcj-currencies.php:86
3978
- msgid "Libyan dinar"
3979
- msgstr ""
3980
-
3981
- #: includes/currencies/wcj-currencies.php:87
3982
- msgid "Lithuanian litas"
3983
- msgstr ""
3984
-
3985
- #: includes/currencies/wcj-currencies.php:88
3986
- msgid "Macanese pataca"
3987
- msgstr ""
3988
-
3989
- #: includes/currencies/wcj-currencies.php:89
3990
- msgid "Macedonian denar"
3991
- msgstr ""
3992
-
3993
- #: includes/currencies/wcj-currencies.php:90
3994
- msgid "Malagasy ariary"
3995
- msgstr ""
3996
-
3997
- #: includes/currencies/wcj-currencies.php:91
3998
- msgid "Malaysian ringgit"
3999
- msgstr ""
4000
-
4001
- #: includes/currencies/wcj-currencies.php:92
4002
- msgid "Malawian kwacha"
4003
- msgstr ""
4004
-
4005
- #: includes/currencies/wcj-currencies.php:93
4006
- msgid "Maldivian rufiyaa"
4007
- msgstr ""
4008
-
4009
- #: includes/currencies/wcj-currencies.php:94
4010
- msgid "Mauritanian ouguiya"
4011
- msgstr ""
4012
-
4013
- #: includes/currencies/wcj-currencies.php:95
4014
- msgid "Mauritian rupee"
4015
- msgstr ""
4016
-
4017
- #: includes/currencies/wcj-currencies.php:96
4018
- msgid "Mexican peso"
4019
- msgstr ""
4020
-
4021
- #: includes/currencies/wcj-currencies.php:97
4022
- msgid "Myanma kyat"
4023
- msgstr ""
4024
-
4025
- #: includes/currencies/wcj-currencies.php:98
4026
- msgid "Moldovan leu"
4027
- msgstr ""
4028
-
4029
- #: includes/currencies/wcj-currencies.php:99
4030
- msgid "Mongolian tugrik"
4031
- msgstr ""
4032
-
4033
- #: includes/currencies/wcj-currencies.php:100
4034
- msgid "Moroccan dirham"
4035
- msgstr ""
4036
-
4037
- #: includes/currencies/wcj-currencies.php:101
4038
- msgid "Mozambican metical"
4039
- msgstr ""
4040
-
4041
- #: includes/currencies/wcj-currencies.php:102
4042
- msgid "Namibian dollar"
4043
- msgstr ""
4044
-
4045
- #: includes/currencies/wcj-currencies.php:103
4046
- msgid "Nepalese rupee"
4047
- msgstr ""
4048
-
4049
- #: includes/currencies/wcj-currencies.php:104
4050
- msgid "Netherlands Antillean gulden"
4051
- msgstr ""
4052
-
4053
- #: includes/currencies/wcj-currencies.php:105
4054
- msgid "New Taiwan dollar"
4055
- msgstr ""
4056
-
4057
- #: includes/currencies/wcj-currencies.php:106
4058
- msgid "New Zealand dollar"
4059
- msgstr ""
4060
-
4061
- #: includes/currencies/wcj-currencies.php:107
4062
- msgid "Nicaraguan cordoba"
4063
- msgstr ""
4064
-
4065
- #: includes/currencies/wcj-currencies.php:108
4066
- msgid "Nigerian naira"
4067
- msgstr ""
4068
-
4069
- #: includes/currencies/wcj-currencies.php:109
4070
- msgid "North Korean won"
4071
- msgstr ""
4072
-
4073
- #: includes/currencies/wcj-currencies.php:110
4074
- msgid "Norwegian krone"
4075
- msgstr ""
4076
-
4077
- #: includes/currencies/wcj-currencies.php:111
4078
- msgid "Omani rial"
4079
- msgstr ""
4080
-
4081
- #: includes/currencies/wcj-currencies.php:112
4082
- msgid "Paanga"
4083
- msgstr ""
4084
-
4085
- #: includes/currencies/wcj-currencies.php:113
4086
- msgid "Pakistani rupee"
4087
- msgstr ""
4088
-
4089
- #: includes/currencies/wcj-currencies.php:114
4090
- msgid "Panamanian balboa"
4091
- msgstr ""
4092
-
4093
- #: includes/currencies/wcj-currencies.php:115
4094
- msgid "Papua New Guinean kina"
4095
- msgstr ""
4096
-
4097
- #: includes/currencies/wcj-currencies.php:116
4098
- msgid "Paraguayan guarani"
4099
- msgstr ""
4100
-
4101
- #: includes/currencies/wcj-currencies.php:117
4102
- msgid "Peruvian nuevo sol"
4103
- msgstr ""
4104
-
4105
- #: includes/currencies/wcj-currencies.php:118
4106
- msgid "Philippine peso"
4107
- msgstr ""
4108
-
4109
- #: includes/currencies/wcj-currencies.php:119
4110
- msgid "Polish zloty"
4111
- msgstr ""
4112
-
4113
- #: includes/currencies/wcj-currencies.php:120
4114
- msgid "Qatari riyal"
4115
- msgstr ""
4116
-
4117
- #: includes/currencies/wcj-currencies.php:121
4118
- msgid "Romanian leu"
4119
- msgstr ""
4120
-
4121
- #: includes/currencies/wcj-currencies.php:122
4122
- msgid "Russian ruble"
4123
- msgstr ""
4124
-
4125
- #: includes/currencies/wcj-currencies.php:123
4126
- msgid "Rwandan franc"
4127
- msgstr ""
4128
-
4129
- #: includes/currencies/wcj-currencies.php:124
4130
- msgid "Saint Helena pound"
4131
- msgstr ""
4132
-
4133
- #: includes/currencies/wcj-currencies.php:125
4134
- msgid "Samoan tala"
4135
- msgstr ""
4136
-
4137
- #: includes/currencies/wcj-currencies.php:126
4138
- msgid "Sao Tome and Principe dobra"
4139
- msgstr ""
4140
-
4141
- #: includes/currencies/wcj-currencies.php:127
4142
- msgid "Saudi riyal"
4143
- msgstr ""
4144
-
4145
- #: includes/currencies/wcj-currencies.php:128
4146
- msgid "Seychellois rupee"
4147
- msgstr ""
4148
-
4149
- #: includes/currencies/wcj-currencies.php:129
4150
- msgid "Serbian dinar"
4151
- msgstr ""
4152
-
4153
- #: includes/currencies/wcj-currencies.php:130
4154
- msgid "Sierra Leonean leone"
4155
- msgstr ""
4156
-
4157
- #: includes/currencies/wcj-currencies.php:131
4158
- msgid "Singapore dollar"
4159
- msgstr ""
4160
-
4161
- #: includes/currencies/wcj-currencies.php:132
4162
- msgid "Syrian pound"
4163
- msgstr ""
4164
-
4165
- #: includes/currencies/wcj-currencies.php:133
4166
- msgid "Slovak koruna"
4167
- msgstr ""
4168
-
4169
- #: includes/currencies/wcj-currencies.php:134
4170
- msgid "Solomon Islands dollar"
4171
- msgstr ""
4172
-
4173
- #: includes/currencies/wcj-currencies.php:135
4174
- msgid "Somali shilling"
4175
- msgstr ""
4176
-
4177
- #: includes/currencies/wcj-currencies.php:136
4178
- msgid "South African rand"
4179
- msgstr ""
4180
-
4181
- #: includes/currencies/wcj-currencies.php:137
4182
- msgid "South Korean won"
4183
- msgstr ""
4184
-
4185
- #: includes/currencies/wcj-currencies.php:138
4186
- msgid "Special Drawing Rights"
4187
- msgstr ""
4188
-
4189
- #: includes/currencies/wcj-currencies.php:139
4190
- msgid "Sri Lankan rupee"
4191
- msgstr ""
4192
-
4193
- #: includes/currencies/wcj-currencies.php:140
4194
- msgid "Sudanese pound"
4195
- msgstr ""
4196
-
4197
- #: includes/currencies/wcj-currencies.php:141
4198
- msgid "Surinamese dollar"
4199
- msgstr ""
4200
-
4201
- #: includes/currencies/wcj-currencies.php:142
4202
- msgid "Swazi lilangeni"
4203
- msgstr ""
4204
-
4205
- #: includes/currencies/wcj-currencies.php:143
4206
- msgid "Swedish krona"
4207
- msgstr ""
4208
-
4209
- #: includes/currencies/wcj-currencies.php:144
4210
- msgid "Swiss franc"
4211
- msgstr ""
4212
-
4213
- #: includes/currencies/wcj-currencies.php:145
4214
- msgid "Tajikistani somoni"
4215
- msgstr ""
4216
-
4217
- #: includes/currencies/wcj-currencies.php:146
4218
- msgid "Tanzanian shilling"
4219
- msgstr ""
4220
-
4221
- #: includes/currencies/wcj-currencies.php:147
4222
- msgid "Thai baht"
4223
- msgstr ""
4224
-
4225
- #: includes/currencies/wcj-currencies.php:148
4226
- msgid "Trinidad and Tobago dollar"
4227
- msgstr ""
4228
-
4229
- #: includes/currencies/wcj-currencies.php:149
4230
- msgid "Tunisian dinar"
4231
- msgstr ""
4232
-
4233
- #: includes/currencies/wcj-currencies.php:150
4234
- msgid "Turkish new lira"
4235
- msgstr ""
4236
-
4237
- #: includes/currencies/wcj-currencies.php:151
4238
- msgid "Turkmen manat"
4239
- msgstr ""
4240
-
4241
- #: includes/currencies/wcj-currencies.php:152
4242
- msgid "UAE dirham"
4243
- msgstr ""
4244
-
4245
- #: includes/currencies/wcj-currencies.php:153
4246
- msgid "Ugandan shilling"
4247
- msgstr ""
4248
-
4249
- #: includes/currencies/wcj-currencies.php:154
4250
- msgid "Ukrainian hryvnia"
4251
- msgstr ""
4252
-
4253
- #: includes/currencies/wcj-currencies.php:155
4254
- msgid "United States dollar"
4255
- msgstr ""
4256
-
4257
- #: includes/currencies/wcj-currencies.php:156
4258
- msgid "Uruguayan peso"
4259
- msgstr ""
4260
-
4261
- #: includes/currencies/wcj-currencies.php:157
4262
- msgid "Uzbekistani som"
4263
- msgstr ""
4264
-
4265
- #: includes/currencies/wcj-currencies.php:158
4266
- msgid "Vanuatu vatu"
4267
- msgstr ""
4268
-
4269
- #: includes/currencies/wcj-currencies.php:159
4270
- msgid "Venezuelan bolivar"
4271
- msgstr ""
4272
-
4273
- #: includes/currencies/wcj-currencies.php:160
4274
- msgid "Vietnamese dong"
4275
- msgstr ""
4276
-
4277
- #: includes/currencies/wcj-currencies.php:161
4278
- msgid "West African CFA franc"
4279
- msgstr ""
4280
-
4281
- #: includes/currencies/wcj-currencies.php:162
4282
- msgid "Zambian kwacha"
4283
- msgstr ""
4284
-
4285
- #: includes/currencies/wcj-currencies.php:163
4286
- msgid "Zimbabwean dollar"
4287
- msgstr ""
4288
-
4289
- #: includes/currencies/wcj-currencies.php:164
4290
- msgid "Chinese Yuan"
4291
- msgstr ""
4292
-
4293
- #: includes/functions/wcj-country-functions.php:97
4294
- msgid "Afghanistan"
4295
- msgstr ""
4296
-
4297
- #: includes/functions/wcj-country-functions.php:98
4298
- msgid "&#197;land Islands"
4299
- msgstr ""
4300
-
4301
- #: includes/functions/wcj-country-functions.php:99
4302
- msgid "Albania"
4303
- msgstr ""
4304
-
4305
- #: includes/functions/wcj-country-functions.php:100
4306
- msgid "Algeria"
4307
- msgstr ""
4308
-
4309
- #: includes/functions/wcj-country-functions.php:101
4310
- msgid "Andorra"
4311
- msgstr ""
4312
-
4313
- #: includes/functions/wcj-country-functions.php:102
4314
- msgid "Angola"
4315
- msgstr ""
4316
-
4317
- #: includes/functions/wcj-country-functions.php:103
4318
- msgid "Anguilla"
4319
- msgstr ""
4320
-
4321
- #: includes/functions/wcj-country-functions.php:104
4322
- msgid "Antarctica"
4323
- msgstr ""
4324
-
4325
- #: includes/functions/wcj-country-functions.php:105
4326
- msgid "Antigua and Barbuda"
4327
- msgstr ""
4328
-
4329
- #: includes/functions/wcj-country-functions.php:106
4330
- msgid "Argentina"
4331
- msgstr ""
4332
-
4333
- #: includes/functions/wcj-country-functions.php:107
4334
- msgid "Armenia"
4335
- msgstr ""
4336
-
4337
- #: includes/functions/wcj-country-functions.php:108
4338
- msgid "Aruba"
4339
- msgstr ""
4340
-
4341
- #: includes/functions/wcj-country-functions.php:109
4342
- msgid "Australia"
4343
- msgstr ""
4344
-
4345
- #: includes/functions/wcj-country-functions.php:110
4346
- msgid "Austria"
4347
- msgstr ""
4348
-
4349
- #: includes/functions/wcj-country-functions.php:111
4350
- msgid "Azerbaijan"
4351
- msgstr ""
4352
-
4353
- #: includes/functions/wcj-country-functions.php:112
4354
- msgid "Bahamas"
4355
- msgstr ""
4356
-
4357
- #: includes/functions/wcj-country-functions.php:113
4358
- msgid "Bahrain"
4359
- msgstr ""
4360
-
4361
- #: includes/functions/wcj-country-functions.php:114
4362
- msgid "Bangladesh"
4363
- msgstr ""
4364
-
4365
- #: includes/functions/wcj-country-functions.php:115
4366
- msgid "Barbados"
4367
- msgstr ""
4368
-
4369
- #: includes/functions/wcj-country-functions.php:116
4370
- msgid "Belarus"
4371
- msgstr ""
4372
-
4373
- #: includes/functions/wcj-country-functions.php:117
4374
- msgid "Belgium"
4375
- msgstr ""
4376
-
4377
- #: includes/functions/wcj-country-functions.php:118
4378
- msgid "Belau"
4379
- msgstr ""
4380
-
4381
- #: includes/functions/wcj-country-functions.php:119
4382
- msgid "Belize"
4383
- msgstr ""
4384
-
4385
- #: includes/functions/wcj-country-functions.php:120
4386
- msgid "Benin"
4387
- msgstr ""
4388
-
4389
- #: includes/functions/wcj-country-functions.php:121
4390
- msgid "Bermuda"
4391
- msgstr ""
4392
-
4393
- #: includes/functions/wcj-country-functions.php:122
4394
- msgid "Bhutan"
4395
- msgstr ""
4396
-
4397
- #: includes/functions/wcj-country-functions.php:123
4398
- msgid "Bolivia"
4399
- msgstr ""
4400
-
4401
- #: includes/functions/wcj-country-functions.php:124
4402
- msgid "Bonaire, Saint Eustatius and Saba"
4403
- msgstr ""
4404
-
4405
- #: includes/functions/wcj-country-functions.php:125
4406
- msgid "Bosnia and Herzegovina"
4407
- msgstr ""
4408
-
4409
- #: includes/functions/wcj-country-functions.php:126
4410
- msgid "Botswana"
4411
- msgstr ""
4412
-
4413
- #: includes/functions/wcj-country-functions.php:127
4414
- msgid "Bouvet Island"
4415
- msgstr ""
4416
-
4417
- #: includes/functions/wcj-country-functions.php:128
4418
- msgid "Brazil"
4419
- msgstr ""
4420
-
4421
- #: includes/functions/wcj-country-functions.php:129
4422
- msgid "British Indian Ocean Territory"
4423
- msgstr ""
4424
-
4425
- #: includes/functions/wcj-country-functions.php:130
4426
- msgid "British Virgin Islands"
4427
- msgstr ""
4428
-
4429
- #: includes/functions/wcj-country-functions.php:131
4430
- msgid "Brunei"
4431
- msgstr ""
4432
-
4433
- #: includes/functions/wcj-country-functions.php:132
4434
- msgid "Bulgaria"
4435
- msgstr ""
4436
-
4437
- #: includes/functions/wcj-country-functions.php:133
4438
- msgid "Burkina Faso"
4439
- msgstr ""
4440
-
4441
- #: includes/functions/wcj-country-functions.php:134
4442
- msgid "Burundi"
4443
- msgstr ""
4444
-
4445
- #: includes/functions/wcj-country-functions.php:135
4446
- msgid "Cambodia"
4447
- msgstr ""
4448
-
4449
- #: includes/functions/wcj-country-functions.php:136
4450
- msgid "Cameroon"
4451
- msgstr ""
4452
-
4453
- #: includes/functions/wcj-country-functions.php:137
4454
- msgid "Canada"
4455
- msgstr ""
4456
-
4457
- #: includes/functions/wcj-country-functions.php:138
4458
- msgid "Cape Verde"
4459
- msgstr ""
4460
-
4461
- #: includes/functions/wcj-country-functions.php:139
4462
- msgid "Cayman Islands"
4463
- msgstr ""
4464
-
4465
- #: includes/functions/wcj-country-functions.php:140
4466
- msgid "Central African Republic"
4467
- msgstr ""
4468
-
4469
- #: includes/functions/wcj-country-functions.php:141
4470
- msgid "Chad"
4471
- msgstr ""
4472
-
4473
- #: includes/functions/wcj-country-functions.php:142
4474
- msgid "Chile"
4475
- msgstr ""
4476
-
4477
- #: includes/functions/wcj-country-functions.php:143
4478
- msgid "China"
4479
- msgstr ""
4480
-
4481
- #: includes/functions/wcj-country-functions.php:144
4482
- msgid "Christmas Island"
4483
- msgstr ""
4484
-
4485
- #: includes/functions/wcj-country-functions.php:145
4486
- msgid "Cocos (Keeling) Islands"
4487
- msgstr ""
4488
-
4489
- #: includes/functions/wcj-country-functions.php:146
4490
- msgid "Colombia"
4491
- msgstr ""
4492
-
4493
- #: includes/functions/wcj-country-functions.php:147
4494
- msgid "Comoros"
4495
- msgstr ""
4496
-
4497
- #: includes/functions/wcj-country-functions.php:148
4498
- msgid "Congo (Brazzaville)"
4499
- msgstr ""
4500
-
4501
- #: includes/functions/wcj-country-functions.php:149
4502
- msgid "Congo (Kinshasa)"
4503
- msgstr ""
4504
-
4505
- #: includes/functions/wcj-country-functions.php:150
4506
- msgid "Cook Islands"
4507
- msgstr ""
4508
-
4509
- #: includes/functions/wcj-country-functions.php:151
4510
- msgid "Costa Rica"
4511
- msgstr ""
4512
-
4513
- #: includes/functions/wcj-country-functions.php:152
4514
- msgid "Croatia"
4515
- msgstr ""
4516
-
4517
- #: includes/functions/wcj-country-functions.php:153
4518
- msgid "Cuba"
4519
- msgstr ""
4520
-
4521
- #: includes/functions/wcj-country-functions.php:154
4522
- msgid "Cura&Ccedil;ao"
4523
- msgstr ""
4524
-
4525
- #: includes/functions/wcj-country-functions.php:155
4526
- msgid "Cyprus"
4527
- msgstr ""
4528
-
4529
- #: includes/functions/wcj-country-functions.php:156
4530
- msgid "Czech Republic"
4531
- msgstr ""
4532
-
4533
- #: includes/functions/wcj-country-functions.php:157
4534
- msgid "Denmark"
4535
- msgstr ""
4536
-
4537
- #: includes/functions/wcj-country-functions.php:158
4538
- msgid "Djibouti"
4539
- msgstr ""
4540
-
4541
- #: includes/functions/wcj-country-functions.php:159
4542
- msgid "Dominica"
4543
- msgstr ""
4544
-
4545
- #: includes/functions/wcj-country-functions.php:160
4546
- msgid "Dominican Republic"
4547
- msgstr ""
4548
-
4549
- #: includes/functions/wcj-country-functions.php:161
4550
- msgid "Ecuador"
4551
- msgstr ""
4552
-
4553
- #: includes/functions/wcj-country-functions.php:162
4554
- msgid "Egypt"
4555
- msgstr ""
4556
-
4557
- #: includes/functions/wcj-country-functions.php:163
4558
- msgid "El Salvador"
4559
- msgstr ""
4560
-
4561
- #: includes/functions/wcj-country-functions.php:164
4562
- msgid "Equatorial Guinea"
4563
- msgstr ""
4564
-
4565
- #: includes/functions/wcj-country-functions.php:165
4566
- msgid "Eritrea"
4567
- msgstr ""
4568
-
4569
- #: includes/functions/wcj-country-functions.php:166
4570
- msgid "Estonia"
4571
- msgstr ""
4572
-
4573
- #: includes/functions/wcj-country-functions.php:167
4574
- msgid "Ethiopia"
4575
- msgstr ""
4576
-
4577
- #: includes/functions/wcj-country-functions.php:168
4578
- msgid "Falkland Islands"
4579
- msgstr ""
4580
-
4581
- #: includes/functions/wcj-country-functions.php:169
4582
- msgid "Faroe Islands"
4583
- msgstr ""
4584
-
4585
- #: includes/functions/wcj-country-functions.php:170
4586
- msgid "Fiji"
4587
- msgstr ""
4588
-
4589
- #: includes/functions/wcj-country-functions.php:171
4590
- msgid "Finland"
4591
- msgstr ""
4592
-
4593
- #: includes/functions/wcj-country-functions.php:172
4594
- msgid "France"
4595
- msgstr ""
4596
-
4597
- #: includes/functions/wcj-country-functions.php:173
4598
- msgid "French Guiana"
4599
- msgstr ""
4600
-
4601
- #: includes/functions/wcj-country-functions.php:174
4602
- msgid "French Polynesia"
4603
- msgstr ""
4604
-
4605
- #: includes/functions/wcj-country-functions.php:175
4606
- msgid "French Southern Territories"
4607
- msgstr ""
4608
-
4609
- #: includes/functions/wcj-country-functions.php:176
4610
- msgid "Gabon"
4611
- msgstr ""
4612
-
4613
- #: includes/functions/wcj-country-functions.php:177
4614
- msgid "Gambia"
4615
- msgstr ""
4616
-
4617
- #: includes/functions/wcj-country-functions.php:178
4618
- msgid "Georgia"
4619
- msgstr ""
4620
-
4621
- #: includes/functions/wcj-country-functions.php:179
4622
- msgid "Germany"
4623
- msgstr ""
4624
-
4625
- #: includes/functions/wcj-country-functions.php:180
4626
- msgid "Ghana"
4627
- msgstr ""
4628
-
4629
- #: includes/functions/wcj-country-functions.php:181
4630
- msgid "Gibraltar"
4631
- msgstr ""
4632
-
4633
- #: includes/functions/wcj-country-functions.php:182
4634
- msgid "Greece"
4635
- msgstr ""
4636
-
4637
- #: includes/functions/wcj-country-functions.php:183
4638
- msgid "Greenland"
4639
- msgstr ""
4640
-
4641
- #: includes/functions/wcj-country-functions.php:184
4642
- msgid "Grenada"
4643
- msgstr ""
4644
-
4645
- #: includes/functions/wcj-country-functions.php:185
4646
- msgid "Guadeloupe"
4647
- msgstr ""
4648
-
4649
- #: includes/functions/wcj-country-functions.php:186
4650
- msgid "Guatemala"
4651
- msgstr ""
4652
-
4653
- #: includes/functions/wcj-country-functions.php:187
4654
- msgid "Guernsey"
4655
- msgstr ""
4656
-
4657
- #: includes/functions/wcj-country-functions.php:188
4658
- msgid "Guinea"
4659
- msgstr ""
4660
-
4661
- #: includes/functions/wcj-country-functions.php:189
4662
- msgid "Guinea-Bissau"
4663
- msgstr ""
4664
-
4665
- #: includes/functions/wcj-country-functions.php:190
4666
- msgid "Guyana"
4667
- msgstr ""
4668
-
4669
- #: includes/functions/wcj-country-functions.php:191
4670
- msgid "Haiti"
4671
- msgstr ""
4672
-
4673
- #: includes/functions/wcj-country-functions.php:192
4674
- msgid "Heard Island and McDonald Islands"
4675
- msgstr ""
4676
-
4677
- #: includes/functions/wcj-country-functions.php:193
4678
- msgid "Honduras"
4679
- msgstr ""
4680
-
4681
- #: includes/functions/wcj-country-functions.php:194
4682
- msgid "Hong Kong"
4683
- msgstr ""
4684
-
4685
- #: includes/functions/wcj-country-functions.php:195
4686
- msgid "Hungary"
4687
- msgstr ""
4688
-
4689
- #: includes/functions/wcj-country-functions.php:196
4690
- msgid "Iceland"
4691
- msgstr ""
4692
-
4693
- #: includes/functions/wcj-country-functions.php:197
4694
- msgid "India"
4695
- msgstr ""
4696
-
4697
- #: includes/functions/wcj-country-functions.php:198
4698
- msgid "Indonesia"
4699
- msgstr ""
4700
-
4701
- #: includes/functions/wcj-country-functions.php:199
4702
- msgid "Iran"
4703
- msgstr ""
4704
-
4705
- #: includes/functions/wcj-country-functions.php:200
4706
- msgid "Iraq"
4707
- msgstr ""
4708
-
4709
- #: includes/functions/wcj-country-functions.php:201
4710
- msgid "Republic of Ireland"
4711
- msgstr ""
4712
-
4713
- #: includes/functions/wcj-country-functions.php:202
4714
- msgid "Isle of Man"
4715
- msgstr ""
4716
-
4717
- #: includes/functions/wcj-country-functions.php:203
4718
- msgid "Israel"
4719
- msgstr ""
4720
-
4721
- #: includes/functions/wcj-country-functions.php:204
4722
- msgid "Italy"
4723
- msgstr ""
4724
-
4725
- #: includes/functions/wcj-country-functions.php:205
4726
- msgid "Ivory Coast"
4727
- msgstr ""
4728
-
4729
- #: includes/functions/wcj-country-functions.php:206
4730
- msgid "Jamaica"
4731
- msgstr ""
4732
-
4733
- #: includes/functions/wcj-country-functions.php:207
4734
- msgid "Japan"
4735
- msgstr ""
4736
-
4737
- #: includes/functions/wcj-country-functions.php:208
4738
- msgid "Jersey"
4739
- msgstr ""
4740
-
4741
- #: includes/functions/wcj-country-functions.php:209
4742
- msgid "Jordan"
4743
- msgstr ""
4744
-
4745
- #: includes/functions/wcj-country-functions.php:210
4746
- msgid "Kazakhstan"
4747
- msgstr ""
4748
-
4749
- #: includes/functions/wcj-country-functions.php:211
4750
- msgid "Kenya"
4751
- msgstr ""
4752
-
4753
- #: includes/functions/wcj-country-functions.php:212
4754
- msgid "Kiribati"
4755
- msgstr ""
4756
-
4757
- #: includes/functions/wcj-country-functions.php:213
4758
- msgid "Kuwait"
4759
- msgstr ""
4760
-
4761
- #: includes/functions/wcj-country-functions.php:214
4762
- msgid "Kyrgyzstan"
4763
- msgstr ""
4764
-
4765
- #: includes/functions/wcj-country-functions.php:215
4766
- msgid "Laos"
4767
- msgstr ""
4768
-
4769
- #: includes/functions/wcj-country-functions.php:216
4770
- msgid "Latvia"
4771
- msgstr ""
4772
-
4773
- #: includes/functions/wcj-country-functions.php:217
4774
- msgid "Lebanon"
4775
- msgstr ""
4776
-
4777
- #: includes/functions/wcj-country-functions.php:218
4778
- msgid "Lesotho"
4779
- msgstr ""
4780
-
4781
- #: includes/functions/wcj-country-functions.php:219
4782
- msgid "Liberia"
4783
- msgstr ""
4784
-
4785
- #: includes/functions/wcj-country-functions.php:220
4786
- msgid "Libya"
4787
- msgstr ""
4788
-
4789
- #: includes/functions/wcj-country-functions.php:221
4790
- msgid "Liechtenstein"
4791
- msgstr ""
4792
-
4793
- #: includes/functions/wcj-country-functions.php:222
4794
- msgid "Lithuania"
4795
- msgstr ""
4796
-
4797
- #: includes/functions/wcj-country-functions.php:223
4798
- msgid "Luxembourg"
4799
- msgstr ""
4800
-
4801
- #: includes/functions/wcj-country-functions.php:224
4802
- msgid "Macao S.A.R., China"
4803
- msgstr ""
4804
-
4805
- #: includes/functions/wcj-country-functions.php:225
4806
- msgid "Macedonia"
4807
- msgstr ""
4808
-
4809
- #: includes/functions/wcj-country-functions.php:226
4810
- msgid "Madagascar"
4811
- msgstr ""
4812
-
4813
- #: includes/functions/wcj-country-functions.php:227
4814
- msgid "Malawi"
4815
- msgstr ""
4816
-
4817
- #: includes/functions/wcj-country-functions.php:228
4818
- msgid "Malaysia"
4819
- msgstr ""
4820
-
4821
- #: includes/functions/wcj-country-functions.php:229
4822
- msgid "Maldives"
4823
- msgstr ""
4824
-
4825
- #: includes/functions/wcj-country-functions.php:230
4826
- msgid "Mali"
4827
- msgstr ""
4828
-
4829
- #: includes/functions/wcj-country-functions.php:231
4830
- msgid "Malta"
4831
- msgstr ""
4832
-
4833
- #: includes/functions/wcj-country-functions.php:232
4834
- msgid "Marshall Islands"
4835
- msgstr ""
4836
-
4837
- #: includes/functions/wcj-country-functions.php:233
4838
- msgid "Martinique"
4839
- msgstr ""
4840
-
4841
- #: includes/functions/wcj-country-functions.php:234
4842
- msgid "Mauritania"
4843
- msgstr ""
4844
-
4845
- #: includes/functions/wcj-country-functions.php:235
4846
- msgid "Mauritius"
4847
- msgstr ""
4848
-
4849
- #: includes/functions/wcj-country-functions.php:236
4850
- msgid "Mayotte"
4851
- msgstr ""
4852
-
4853
- #: includes/functions/wcj-country-functions.php:237
4854
- msgid "Mexico"
4855
- msgstr ""
4856
-
4857
- #: includes/functions/wcj-country-functions.php:238
4858
- msgid "Micronesia"
4859
- msgstr ""
4860
-
4861
- #: includes/functions/wcj-country-functions.php:239
4862
- msgid "Moldova"
4863
- msgstr ""
4864
-
4865
- #: includes/functions/wcj-country-functions.php:240
4866
- msgid "Monaco"
4867
- msgstr ""
4868
-
4869
- #: includes/functions/wcj-country-functions.php:241
4870
- msgid "Mongolia"
4871
- msgstr ""
4872
-
4873
- #: includes/functions/wcj-country-functions.php:242
4874
- msgid "Montenegro"
4875
- msgstr ""
4876
-
4877
- #: includes/functions/wcj-country-functions.php:243
4878
- msgid "Montserrat"
4879
- msgstr ""
4880
-
4881
- #: includes/functions/wcj-country-functions.php:244
4882
- msgid "Morocco"
4883
- msgstr ""
4884
-
4885
- #: includes/functions/wcj-country-functions.php:245
4886
- msgid "Mozambique"
4887
- msgstr ""
4888
-
4889
- #: includes/functions/wcj-country-functions.php:246
4890
- msgid "Myanmar"
4891
- msgstr ""
4892
-
4893
- #: includes/functions/wcj-country-functions.php:247
4894
- msgid "Namibia"
4895
- msgstr ""
4896
-
4897
- #: includes/functions/wcj-country-functions.php:248
4898
- msgid "Nauru"
4899
- msgstr ""
4900
-
4901
- #: includes/functions/wcj-country-functions.php:249
4902
- msgid "Nepal"
4903
- msgstr ""
4904
-
4905
- #: includes/functions/wcj-country-functions.php:250
4906
- msgid "Netherlands"
4907
- msgstr ""
4908
-
4909
- #: includes/functions/wcj-country-functions.php:251
4910
- msgid "Netherlands Antilles"
4911
- msgstr ""
4912
-
4913
- #: includes/functions/wcj-country-functions.php:252
4914
- msgid "New Caledonia"
4915
- msgstr ""
4916
-
4917
- #: includes/functions/wcj-country-functions.php:253
4918
- msgid "New Zealand"
4919
- msgstr ""
4920
-
4921
- #: includes/functions/wcj-country-functions.php:254
4922
- msgid "Nicaragua"
4923
- msgstr ""
4924
-
4925
- #: includes/functions/wcj-country-functions.php:255
4926
- msgid "Niger"
4927
- msgstr ""
4928
-
4929
- #: includes/functions/wcj-country-functions.php:256
4930
- msgid "Nigeria"
4931
- msgstr ""
4932
-
4933
- #: includes/functions/wcj-country-functions.php:257
4934
- msgid "Niue"
4935
- msgstr ""
4936
-
4937
- #: includes/functions/wcj-country-functions.php:258
4938
- msgid "Norfolk Island"
4939
- msgstr ""
4940
-
4941
- #: includes/functions/wcj-country-functions.php:259
4942
- msgid "North Korea"
4943
- msgstr ""
4944
-
4945
- #: includes/functions/wcj-country-functions.php:260
4946
- msgid "Norway"
4947
- msgstr ""
4948
-
4949
- #: includes/functions/wcj-country-functions.php:261
4950
- msgid "Oman"
4951
- msgstr ""
4952
-
4953
- #: includes/functions/wcj-country-functions.php:262
4954
- msgid "Pakistan"
4955
- msgstr ""
4956
-
4957
- #: includes/functions/wcj-country-functions.php:263
4958
- msgid "Palestinian Territory"
4959
- msgstr ""
4960
-
4961
- #: includes/functions/wcj-country-functions.php:264
4962
- msgid "Panama"
4963
- msgstr ""
4964
-
4965
- #: includes/functions/wcj-country-functions.php:265
4966
- msgid "Papua New Guinea"
4967
- msgstr ""
4968
-
4969
- #: includes/functions/wcj-country-functions.php:266
4970
- msgid "Paraguay"
4971
- msgstr ""
4972
-
4973
- #: includes/functions/wcj-country-functions.php:267
4974
- msgid "Peru"
4975
- msgstr ""
4976
-
4977
- #: includes/functions/wcj-country-functions.php:268
4978
- msgid "Philippines"
4979
- msgstr ""
4980
-
4981
- #: includes/functions/wcj-country-functions.php:269
4982
- msgid "Pitcairn"
4983
- msgstr ""
4984
-
4985
- #: includes/functions/wcj-country-functions.php:270
4986
- msgid "Poland"
4987
- msgstr ""
4988
-
4989
- #: includes/functions/wcj-country-functions.php:271
4990
- msgid "Portugal"
4991
- msgstr ""
4992
-
4993
- #: includes/functions/wcj-country-functions.php:272
4994
- msgid "Qatar"
4995
- msgstr ""
4996
-
4997
- #: includes/functions/wcj-country-functions.php:273
4998
- msgid "Reunion"
4999
- msgstr ""
5000
-
5001
- #: includes/functions/wcj-country-functions.php:274
5002
- msgid "Romania"
5003
- msgstr ""
5004
-
5005
- #: includes/functions/wcj-country-functions.php:275
5006
- msgid "Russia"
5007
- msgstr ""
5008
-
5009
- #: includes/functions/wcj-country-functions.php:276
5010
- msgid "Rwanda"
5011
- msgstr ""
5012
-
5013
- #: includes/functions/wcj-country-functions.php:277
5014
- msgid "Saint Barth&eacute;lemy"
5015
- msgstr ""
5016
-
5017
- #: includes/functions/wcj-country-functions.php:278
5018
- msgid "Saint Helena"
5019
- msgstr ""
5020
-
5021
- #: includes/functions/wcj-country-functions.php:279
5022
- msgid "Saint Kitts and Nevis"
5023
- msgstr ""
5024
-
5025
- #: includes/functions/wcj-country-functions.php:280
5026
- msgid "Saint Lucia"
5027
- msgstr ""
5028
-
5029
- #: includes/functions/wcj-country-functions.php:281
5030
- msgid "Saint Martin (French part)"
5031
- msgstr ""
5032
-
5033
- #: includes/functions/wcj-country-functions.php:282
5034
- msgid "Saint Martin (Dutch part)"
5035
- msgstr ""
5036
-
5037
- #: includes/functions/wcj-country-functions.php:283
5038
- msgid "Saint Pierre and Miquelon"
5039
- msgstr ""
5040
-
5041
- #: includes/functions/wcj-country-functions.php:284
5042
- msgid "Saint Vincent and the Grenadines"
5043
- msgstr ""
5044
-
5045
- #: includes/functions/wcj-country-functions.php:285
5046
- msgid "San Marino"
5047
- msgstr ""
5048
-
5049
- #: includes/functions/wcj-country-functions.php:286
5050
- msgid "S&atilde;o Tom&eacute; and Pr&iacute;ncipe"
5051
- msgstr ""
5052
-
5053
- #: includes/functions/wcj-country-functions.php:287
5054
- msgid "Saudi Arabia"
5055
- msgstr ""
5056
-
5057
- #: includes/functions/wcj-country-functions.php:288
5058
- msgid "Senegal"
5059
- msgstr ""
5060
-
5061
- #: includes/functions/wcj-country-functions.php:289
5062
- msgid "Serbia"
5063
- msgstr ""
5064
-
5065
- #: includes/functions/wcj-country-functions.php:290
5066
- msgid "Seychelles"
5067
- msgstr ""
5068
-
5069
- #: includes/functions/wcj-country-functions.php:291
5070
- msgid "Sierra Leone"
5071
- msgstr ""
5072
-
5073
- #: includes/functions/wcj-country-functions.php:292
5074
- msgid "Singapore"
5075
- msgstr ""
5076
-
5077
- #: includes/functions/wcj-country-functions.php:293
5078
- msgid "Slovakia"
5079
- msgstr ""
5080
-
5081
- #: includes/functions/wcj-country-functions.php:294
5082
- msgid "Slovenia"
5083
- msgstr ""
5084
-
5085
- #: includes/functions/wcj-country-functions.php:295
5086
- msgid "Solomon Islands"
5087
- msgstr ""
5088
-
5089
- #: includes/functions/wcj-country-functions.php:296
5090
- msgid "Somalia"
5091
- msgstr ""
5092
-
5093
- #: includes/functions/wcj-country-functions.php:297
5094
- msgid "South Africa"
5095
- msgstr ""
5096
-
5097
- #: includes/functions/wcj-country-functions.php:298
5098
- msgid "South Georgia/Sandwich Islands"
5099
- msgstr ""
5100
-
5101
- #: includes/functions/wcj-country-functions.php:299
5102
- msgid "South Korea"
5103
- msgstr ""
5104
-
5105
- #: includes/functions/wcj-country-functions.php:300
5106
- msgid "South Sudan"
5107
- msgstr ""
5108
-
5109
- #: includes/functions/wcj-country-functions.php:301
5110
- msgid "Spain"
5111
- msgstr ""
5112
-
5113
- #: includes/functions/wcj-country-functions.php:302
5114
- msgid "Sri Lanka"
5115
- msgstr ""
5116
-
5117
- #: includes/functions/wcj-country-functions.php:303
5118
- msgid "Sudan"
5119
- msgstr ""
5120
-
5121
- #: includes/functions/wcj-country-functions.php:304
5122
- msgid "Suriname"
5123
- msgstr ""
5124
-
5125
- #: includes/functions/wcj-country-functions.php:305
5126
- msgid "Svalbard and Jan Mayen"
5127
- msgstr ""
5128
-
5129
- #: includes/functions/wcj-country-functions.php:306
5130
- msgid "Swaziland"
5131
- msgstr ""
5132
-
5133
- #: includes/functions/wcj-country-functions.php:307
5134
- msgid "Sweden"
5135
- msgstr ""
5136
-
5137
- #: includes/functions/wcj-country-functions.php:308
5138
- msgid "Switzerland"
5139
- msgstr ""
5140
-
5141
- #: includes/functions/wcj-country-functions.php:309
5142
- msgid "Syria"
5143
- msgstr ""
5144
-
5145
- #: includes/functions/wcj-country-functions.php:310
5146
- msgid "Taiwan"
5147
- msgstr ""
5148
-
5149
- #: includes/functions/wcj-country-functions.php:311
5150
- msgid "Tajikistan"
5151
- msgstr ""
5152
-
5153
- #: includes/functions/wcj-country-functions.php:312
5154
- msgid "Tanzania"
5155
- msgstr ""
5156
-
5157
- #: includes/functions/wcj-country-functions.php:313
5158
- msgid "Thailand"
5159
- msgstr ""
5160
-
5161
- #: includes/functions/wcj-country-functions.php:314
5162
- msgid "Timor-Leste"
5163
- msgstr ""
5164
-
5165
- #: includes/functions/wcj-country-functions.php:315
5166
- msgid "Togo"
5167
- msgstr ""
5168
-
5169
- #: includes/functions/wcj-country-functions.php:316
5170
- msgid "Tokelau"
5171
- msgstr ""
5172
-
5173
- #: includes/functions/wcj-country-functions.php:317
5174
- msgid "Tonga"
5175
- msgstr ""
5176
-
5177
- #: includes/functions/wcj-country-functions.php:318
5178
- msgid "Trinidad and Tobago"
5179
- msgstr ""
5180
-
5181
- #: includes/functions/wcj-country-functions.php:319
5182
- msgid "Tunisia"
5183
- msgstr ""
5184
-
5185
- #: includes/functions/wcj-country-functions.php:320
5186
- msgid "Turkey"
5187
- msgstr ""
5188
-
5189
- #: includes/functions/wcj-country-functions.php:321
5190
- msgid "Turkmenistan"
5191
- msgstr ""
5192
-
5193
- #: includes/functions/wcj-country-functions.php:322
5194
- msgid "Turks and Caicos Islands"
5195
- msgstr ""
5196
-
5197
- #: includes/functions/wcj-country-functions.php:323
5198
- msgid "Tuvalu"
5199
- msgstr ""
5200
-
5201
- #: includes/functions/wcj-country-functions.php:324
5202
- msgid "Uganda"
5203
- msgstr ""
5204
-
5205
- #: includes/functions/wcj-country-functions.php:325
5206
- msgid "Ukraine"
5207
- msgstr ""
5208
-
5209
- #: includes/functions/wcj-country-functions.php:326
5210
- msgid "United Arab Emirates"
5211
- msgstr ""
5212
-
5213
- #: includes/functions/wcj-country-functions.php:327
5214
- msgid "United Kingdom (UK)"
5215
- msgstr ""
5216
-
5217
- #: includes/functions/wcj-country-functions.php:328
5218
- msgid "United States (US)"
5219
- msgstr ""
5220
-
5221
- #: includes/functions/wcj-country-functions.php:329
5222
- msgid "Uruguay"
5223
- msgstr ""
5224
-
5225
- #: includes/functions/wcj-country-functions.php:330
5226
- msgid "Uzbekistan"
5227
- msgstr ""
5228
-
5229
- #: includes/functions/wcj-country-functions.php:331
5230
- msgid "Vanuatu"
5231
- msgstr ""
5232
-
5233
- #: includes/functions/wcj-country-functions.php:332
5234
- msgid "Vatican"
5235
- msgstr ""
5236
-
5237
- #: includes/functions/wcj-country-functions.php:333
5238
- msgid "Venezuela"
5239
- msgstr ""
5240
-
5241
- #: includes/functions/wcj-country-functions.php:334
5242
- msgid "Vietnam"
5243
- msgstr ""
5244
-
5245
- #: includes/functions/wcj-country-functions.php:335
5246
- msgid "Wallis and Futuna"
5247
- msgstr ""
5248
-
5249
- #: includes/functions/wcj-country-functions.php:336
5250
- msgid "Western Sahara"
5251
- msgstr ""
5252
-
5253
- #: includes/functions/wcj-country-functions.php:337
5254
- msgid "Western Samoa"
5255
- msgstr ""
5256
-
5257
- #: includes/functions/wcj-country-functions.php:338
5258
- msgid "Yemen"
5259
- msgstr ""
5260
-
5261
- #: includes/functions/wcj-country-functions.php:339
5262
- msgid "Zambia"
5263
- msgstr ""
5264
-
5265
- #: includes/functions/wcj-country-functions.php:340
5266
- msgid "Zimbabwe"
5267
- msgstr ""
5268
-
5269
- #: includes/functions/wcj-functions.php:355
5270
- msgctxt "Order status"
5271
- msgid "Pending Payment"
5272
- msgstr ""
5273
-
5274
- #: includes/functions/wcj-functions.php:357
5275
- msgctxt "Order status"
5276
- msgid "On Hold"
5277
- msgstr ""
5278
-
5279
- #: includes/functions/wcj-invoicing-functions.php:20
5280
- msgid "Invoices"
5281
- msgstr ""
5282
-
5283
- #: includes/functions/wcj-invoicing-functions.php:27
5284
- msgid "Proforma Invoice"
5285
- msgstr ""
5286
-
5287
- #: includes/functions/wcj-invoicing-functions.php:28
5288
- msgid "Proforma Invoices"
5289
- msgstr ""
5290
-
5291
- #: includes/functions/wcj-invoicing-functions.php:35
5292
- msgid "Packing Slip"
5293
- msgstr ""
5294
-
5295
- #: includes/functions/wcj-invoicing-functions.php:36
5296
- msgid "Packing Slips"
5297
- msgstr ""
5298
-
5299
- #: includes/functions/wcj-invoicing-functions.php:43
5300
- msgid "Credit Note"
5301
- msgstr ""
5302
-
5303
- #: includes/functions/wcj-invoicing-functions.php:44
5304
- msgid "Credit Notes"
5305
- msgstr ""
5306
-
5307
- #: includes/functions/wcj-invoicing-functions.php:51
5308
- msgid "Custom Document"
5309
- msgstr ""
5310
-
5311
- #: includes/functions/wcj-invoicing-functions.php:52
5312
- msgid "Custom Documents"
5313
- msgstr ""
5314
-
5315
- #: includes/gateways/class-wc-gateway-wcj-custom.php:48
5316
- #: includes/shipping/class-wc-shipping-wcj-custom.php:56
5317
- msgid "Enable/Disable"
5318
- msgstr ""
5319
-
5320
- #: includes/gateways/class-wc-gateway-wcj-custom.php:50
5321
- msgid "Enable Custom Payment"
5322
- msgstr ""
5323
-
5324
- #: includes/gateways/class-wc-gateway-wcj-custom.php:56
5325
- #: includes/shipping/class-wc-shipping-wcj-custom.php:64
5326
- msgid "This controls the title which the user sees during checkout."
5327
- msgstr ""
5328
-
5329
- #: includes/gateways/class-wc-gateway-wcj-custom.php:57
5330
- msgid "Custom Payment"
5331
- msgstr ""
5332
-
5333
- #: includes/gateways/class-wc-gateway-wcj-custom.php:63
5334
- msgid "Payment method description that the customer will see on your checkout."
5335
- msgstr ""
5336
-
5337
- #: includes/gateways/class-wc-gateway-wcj-custom.php:64
5338
- msgid "Custom Payment Description."
5339
- msgstr ""
5340
-
5341
- #: includes/gateways/class-wc-gateway-wcj-custom.php:68
5342
- msgid "Instructions"
5343
- msgstr ""
5344
-
5345
- #: includes/gateways/class-wc-gateway-wcj-custom.php:70
5346
- msgid "Instructions that will be added to the thank you page."
5347
- msgstr ""
5348
-
5349
- #: includes/gateways/class-wc-gateway-wcj-custom.php:75
5350
- msgid "Email Instructions"
5351
- msgstr ""
5352
-
5353
- #: includes/gateways/class-wc-gateway-wcj-custom.php:77
5354
- msgid "Instructions that will be added to the emails."
5355
- msgstr ""
5356
-
5357
- #: includes/gateways/class-wc-gateway-wcj-custom.php:82
5358
- msgid "Icon"
5359
- msgstr ""
5360
-
5361
- #: includes/gateways/class-wc-gateway-wcj-custom.php:90
5362
- msgid "Minimum order amount"
5363
- msgstr ""
5364
-
5365
- #: includes/gateways/class-wc-gateway-wcj-custom.php:92
5366
- msgid ""
5367
- "If you want to set minimum order amount to show this gateway on frontend, "
5368
- "enter a number here. Set to 0 to disable."
5369
- msgstr ""
5370
-
5371
- #: includes/gateways/class-wc-gateway-wcj-custom.php:99
5372
- msgid "Enable for shipping methods"
5373
- msgstr ""
5374
-
5375
- #: includes/gateways/class-wc-gateway-wcj-custom.php:104
5376
- msgid ""
5377
- "If gateway is only available for certain shipping methods, set it up here. "
5378
- "Leave blank to enable for all methods."
5379
- msgstr ""
5380
-
5381
- #: includes/gateways/class-wc-gateway-wcj-custom.php:108
5382
- msgid "Select shipping methods"
5383
- msgstr ""
5384
-
5385
- #: includes/gateways/class-wc-gateway-wcj-custom.php:112
5386
- msgid "Enable for virtual orders"
5387
- msgstr ""
5388
-
5389
- #: includes/gateways/class-wc-gateway-wcj-custom.php:113
5390
- msgid "Enable gateway if the order is virtual"
5391
- msgstr ""
5392
-
5393
- #: includes/gateways/class-wc-gateway-wcj-custom.php:127
5394
- msgid "Send Additional Emails"
5395
- msgstr ""
5396
-
5397
- #: includes/gateways/class-wc-gateway-wcj-custom.php:128
5398
- msgid "Send to Admin"
5399
- msgstr ""
5400
-
5401
- #: includes/gateways/class-wc-gateway-wcj-custom.php:136
5402
- msgid "Send to Customer"
5403
- msgstr ""
5404
-
5405
- #: includes/gateways/class-wc-gateway-wcj-custom.php:137
5406
- msgid ""
5407
- "This may help if you are using pending or custom default status and not "
5408
- "getting new order emails."
5409
- msgstr ""
5410
-
5411
- #: includes/gateways/class-wc-gateway-wcj-custom.php:315
5412
- msgid "Custom Gateway"
5413
- msgstr ""
5414
-
5415
- #: includes/gateways/class-wc-gateway-wcj-custom.php:316
5416
- msgid "WooCommerce Jetpack: Custom Payment Gateway"
5417
- msgstr ""
5418
-
5419
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:34
5420
- msgid "Enabled"
5421
- msgstr ""
5422
-
5423
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:40
5424
- msgid "Type"
5425
- msgstr ""
5426
-
5427
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:46
5428
- msgid "Number"
5429
- msgstr ""
5430
-
5431
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:48
5432
- msgid "File"
5433
- msgstr ""
5434
-
5435
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:64
5436
- msgid "If checkbox is selected, set value for ON here"
5437
- msgstr ""
5438
-
5439
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:65
5440
- msgid "Checkbox: ON"
5441
- msgstr ""
5442
-
5443
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:67
5444
- msgid "Yes"
5445
- msgstr ""
5446
-
5447
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:71
5448
- msgid "If checkbox is selected, set value for OFF here"
5449
- msgstr ""
5450
-
5451
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:72
5452
- msgid "Checkbox: OFF"
5453
- msgstr ""
5454
-
5455
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:74
5456
- msgid "No"
5457
- msgstr ""
5458
-
5459
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:80
5460
- msgid ""
5461
- "If file is selected, set accepted file types here. E.g.: \".jpg,.jpeg,.png"
5462
- "\". Leave blank to accept all files"
5463
- msgstr ""
5464
-
5465
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:81
5466
- msgid "File: Accepted types"
5467
- msgstr ""
5468
-
5469
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:83
5470
- msgid ".jpg,.jpeg,.png"
5471
- msgstr ""
5472
-
5473
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:88
5474
- msgid "Required"
5475
- msgstr ""
5476
-
5477
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:100
5478
- msgid "Placeholder"
5479
- msgstr ""
5480
-
5481
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:106
5482
- msgid "Message on required"
5483
- msgstr ""
5484
-
5485
- #: includes/input-fields/class-wcj-product-input-fields-abstract.php:307
5486
- msgid "Wrong file type!"
5487
- msgstr ""
5488
-
5489
- #: includes/input-fields/class-wcj-product-input-fields-per-product.php:102
5490
- msgid "WooCommerce Jetpack: Product Input Fields"
5491
- msgstr ""
5492
-
5493
- #: includes/input-fields/class-wcj-product-input-fields-per-product.php:131
5494
- msgid "Total number of "
5495
- msgstr ""
5496
-
5497
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:35
5498
- msgid "Invoices Renumerate"
5499
- msgstr ""
5500
-
5501
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:37
5502
- msgid ""
5503
- "Tool renumerates all invoices, proforma invoices, credit notes and packing "
5504
- "slips."
5505
- msgstr ""
5506
-
5507
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:47
5508
- msgid "Renumerate Invoices"
5509
- msgstr ""
5510
-
5511
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:77
5512
- msgid "Invoices successfully renumerated!"
5513
- msgstr ""
5514
-
5515
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:79
5516
- msgid "Please select at least one order status."
5517
- msgstr ""
5518
-
5519
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:84
5520
- msgid "WooCommerce Jetpack - Renumerate Invoices"
5521
- msgstr ""
5522
-
5523
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:85
5524
- msgid ""
5525
- "The tool renumerates invoices from choosen date. Invoice number format is "
5526
- "set in WooCommerce > Settings > Jetpack > PDF Invoices (v2) > Numbering."
5527
- msgstr ""
5528
-
5529
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:94
5530
- msgid "Date to start renumerating. Leave blank to renumerate all invoices."
5531
- msgstr ""
5532
-
5533
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:99
5534
- msgid "Start Number"
5535
- msgstr ""
5536
-
5537
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:101
5538
- msgid ""
5539
- "Counter to start renumerating. Leave 0 to continue from current counter."
5540
- msgstr ""
5541
-
5542
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:106
5543
- msgid "Delete All"
5544
- msgstr ""
5545
-
5546
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:108
5547
- msgid "Clear all invoices before renumerating."
5548
- msgstr ""
5549
-
5550
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:119
5551
- msgid "Document Type"
5552
- msgstr ""
5553
-
5554
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:129
5555
- msgid "Order Statuses"
5556
- msgstr ""
5557
-
5558
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:139
5559
- msgid "Results"
5560
- msgstr ""
5561
-
5562
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:195
5563
- msgid "Total documents created: %d"
5564
- msgstr ""
5565
-
5566
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:196
5567
- msgid "Total documents deleted: %d"
5568
- msgstr ""
5569
-
5570
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:36
5571
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:48
5572
- msgid "Invoices Report"
5573
- msgstr ""
5574
-
5575
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:38
5576
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:72
5577
- msgid "Invoices Monthly Reports."
5578
- msgstr ""
5579
-
5580
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:67
5581
- msgid "Please fill year and month values."
5582
- msgstr ""
5583
-
5584
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:71
5585
- msgid "WooCommerce Jetpack - Invoices Report"
5586
- msgstr ""
5587
-
5588
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:79
5589
- msgid "Year"
5590
- msgstr ""
5591
-
5592
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:86
5593
- msgid "Month"
5594
- msgstr ""
5595
-
5596
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:95
5597
- msgid "Get Report"
5598
- msgstr ""
5599
-
5600
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:109
5601
- msgid "Invoice Nr."
5602
- msgstr ""
5603
-
5604
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:111
5605
- msgid "Order ID"
5606
- msgstr ""
5607
-
5608
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:112
5609
- msgid "Customer Country"
5610
- msgstr ""
5611
-
5612
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:113
5613
- msgid "Tax %"
5614
- msgstr ""
5615
-
5616
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:114
5617
- msgid "Order Total Tax Excl."
5618
- msgstr ""
5619
-
5620
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:115
5621
- msgid "Order Taxes"
5622
- msgstr ""
5623
-
5624
- #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:117
5625
- msgid "Order Currency"
5626
- msgstr ""
5627
-
5628
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:152
5629
- msgid "Admin's \"Orders\" Page"
5630
- msgstr ""
5631
-
5632
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:153
5633
- msgid "Add Column"
5634
- msgstr ""
5635
-
5636
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:165
5637
- msgid "Customer's \"My Account\" Page"
5638
- msgstr ""
5639
-
5640
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:167
5641
- msgid "Add link"
5642
- msgstr ""
5643
-
5644
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:176
5645
- msgid "Enable \"Save as\""
5646
- msgstr ""
5647
-
5648
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:178
5649
- msgid "Enable \"save as\" pdf instead of view pdf in browser"
5650
- msgstr ""
5651
-
5652
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:187
5653
- msgid "PDF File Name"
5654
- msgstr ""
5655
-
5656
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:205
5657
- msgid "Misc."
5658
- msgstr ""
5659
-
5660
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:24
5661
- msgid "Email Options"
5662
- msgstr ""
5663
-
5664
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:83
5665
- msgid "Payment gateways to include"
5666
- msgstr ""
5667
-
5668
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:91
5669
- msgid "Select some gateways. Leave blank to include all."
5670
- msgstr ""
5671
-
5672
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:117
5673
- msgid "Admin - New Order"
5674
- msgstr ""
5675
-
5676
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:118
5677
- msgid "Admin - Cancelled Order"
5678
- msgstr ""
5679
-
5680
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:119
5681
- msgid "Customer - Processing Order"
5682
- msgstr ""
5683
-
5684
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:120
5685
- msgid "Customer - Completed Order"
5686
- msgstr ""
5687
-
5688
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:121
5689
- msgid "Customer - Invoice"
5690
- msgstr ""
5691
-
5692
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:122
5693
- msgid "Customer - Refunded Order"
5694
- msgstr ""
5695
-
5696
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:125
5697
- msgid "Attach PDF to emails"
5698
- msgstr ""
5699
-
5700
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:134
5701
- msgid "Select some emails"
5702
- msgstr ""
5703
-
5704
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:43
5705
- msgid "Enable Footer"
5706
- msgstr ""
5707
-
5708
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:50
5709
- msgid "Footer Text"
5710
- msgstr ""
5711
-
5712
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:57
5713
- msgid ""
5714
- "You can use HTML here, as well as any WordPress shortcodes. There is two "
5715
- "more predefined values you can use: %page_number% and %total_pages%."
5716
- msgstr ""
5717
-
5718
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:63
5719
- msgid "Footer Text Color"
5720
- msgstr ""
5721
-
5722
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:71
5723
- msgid "Footer Line Color"
5724
- msgstr ""
5725
-
5726
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:79
5727
- msgid "Footer Margin"
5728
- msgstr ""
5729
-
5730
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:42
5731
- msgid "Enable Header"
5732
- msgstr ""
5733
-
5734
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:49
5735
- msgid "Header Image"
5736
- msgstr ""
5737
-
5738
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:59
5739
- msgid "Header Image Width in mm"
5740
- msgstr ""
5741
-
5742
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:66
5743
- msgid "Header Title"
5744
- msgstr ""
5745
-
5746
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:76
5747
- msgid "Company Name"
5748
- msgstr ""
5749
-
5750
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:79
5751
- msgid "free version will add \"powered by woojetpack.com\" to heading text"
5752
- msgstr ""
5753
-
5754
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:83
5755
- msgid "Header Text Color"
5756
- msgstr ""
5757
-
5758
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:91
5759
- msgid "Header Line Color"
5760
- msgstr ""
5761
-
5762
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:99
5763
- msgid "Header Margin"
5764
- msgstr ""
5765
-
5766
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:116
5767
- msgid "Header"
5768
- msgstr ""
5769
-
5770
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:37
5771
- msgid "Sequential"
5772
- msgstr ""
5773
-
5774
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:43
5775
- msgid "Counter"
5776
- msgstr ""
5777
-
5778
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:55
5779
- msgid "Counter Width"
5780
- msgstr ""
5781
-
5782
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:76
5783
- msgid "Numbering"
5784
- msgstr ""
5785
-
5786
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:43
5787
- msgid "Page Orientation"
5788
- msgstr ""
5789
-
5790
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:48
5791
- msgid "Portrait"
5792
- msgstr ""
5793
-
5794
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:49
5795
- msgid "Landscape"
5796
- msgstr ""
5797
-
5798
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:56
5799
- msgid "Page Format"
5800
- msgstr ""
5801
-
5802
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:64
5803
- msgid "Margin Left"
5804
- msgstr ""
5805
-
5806
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:71
5807
- msgid "Margin Right"
5808
- msgstr ""
5809
-
5810
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:78
5811
- msgid "Margin Top"
5812
- msgstr ""
5813
-
5814
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:85
5815
- msgid "Margin Bottom"
5816
- msgstr ""
5817
-
5818
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:101
5819
- msgid "Page Settings"
5820
- msgstr ""
5821
-
5822
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-styling.php:96
5823
- msgid "Styling"
5824
- msgstr ""
5825
-
5826
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php:43
5827
- msgid "HTML Template"
5828
- msgstr ""
5829
-
5830
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php:53
5831
- msgid "Available Shortcodes"
5832
- msgstr ""
5833
-
5834
- #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php:65
5835
- msgid "Templates"
5836
- msgstr ""
5837
-
5838
- #: includes/price-by-country/class-wcj-exchange-rates-crons.php:98
5839
- msgid "Cron job: exchange rates successfully updated"
5840
- msgstr ""
5841
-
5842
- #: includes/price-by-country/class-wcj-exchange-rates-crons.php:100
5843
- msgid "Cron job: exchange rates not updated, as currency_from == currency_to"
5844
- msgstr ""
5845
-
5846
- #: includes/price-by-country/class-wcj-exchange-rates-crons.php:103
5847
- msgid "Cron job: exchange rates update failed"
5848
- msgstr ""
5849
-
5850
- #: includes/price-by-country/class-wcj-exchange-rates-crons.php:116
5851
- msgid "Once Weekly"
5852
- msgstr ""
5853
-
5854
- #: includes/price-by-country/class-wcj-exchange-rates-crons.php:121
5855
- msgid "Once a Minute"
5856
- msgstr ""
5857
-
5858
- #: includes/price-by-country/class-wcj-price-by-country-local.php:127
5859
- msgid "Regular Price"
5860
- msgstr ""
5861
-
5862
- #: includes/price-by-country/class-wcj-price-by-country-local.php:134
5863
- msgid "Sale Price"
5864
- msgstr ""
5865
-
5866
- #: includes/price-by-country/class-wcj-price-by-country-local.php:236
5867
- msgid "Country Group Nr."
5868
- msgstr ""
5869
-
5870
- #: includes/price-by-country/class-wcj-price-by-country-reports.php:38
5871
- msgid "Reports currency:"
5872
- msgstr ""
5873
-
5874
- #: includes/price-by-country/class-wcj-price-by-country-reports.php:40
5875
- #: includes/price-by-country/class-wcj-price-by-country-reports.php:62
5876
- msgid "Show reports only in"
5877
- msgstr ""
5878
-
5879
- #: includes/reports/wcj-class-reports-customers.php:41
5880
- msgid "No customers found."
5881
- msgstr ""
5882
-
5883
- #: includes/reports/wcj-class-reports-customers.php:91
5884
- msgid "Customer Name"
5885
- msgstr ""
5886
-
5887
- #: includes/reports/wcj-class-reports-customers.php:92
5888
- msgid "Email"
5889
- msgstr ""
5890
-
5891
- #: includes/reports/wcj-class-reports-customers.php:93
5892
- msgid "Total Spent"
5893
- msgstr ""
5894
-
5895
- #: includes/reports/wcj-class-reports-customers.php:94
5896
- msgid "Registered"
5897
- msgstr ""
5898
-
5899
- #: includes/reports/wcj-class-reports-customers.php:133
5900
- msgid "Total customers"
5901
- msgstr ""
5902
-
5903
- #: includes/reports/wcj-class-reports-customers.php:137
5904
- msgid "Country Code"
5905
- msgstr ""
5906
-
5907
- #: includes/reports/wcj-class-reports-customers.php:138
5908
- msgid "Customers Count"
5909
- msgstr ""
5910
-
5911
- #: includes/reports/wcj-class-reports-customers.php:139
5912
- msgid "Percent of total"
5913
- msgstr ""
5914
-
5915
- #: includes/reports/wcj-class-reports-customers.php:161
5916
- msgid "Report for:"
5917
- msgstr ""
5918
-
5919
- #: includes/reports/wcj-class-reports-stock.php:30
5920
- msgid "All Products on Stock"
5921
- msgstr ""
5922
-
5923
- #: includes/reports/wcj-class-reports-stock.php:31
5924
- msgid "Report shows all products that are on stock and some sales info."
5925
- msgstr ""
5926
-
5927
- #: includes/reports/wcj-class-reports-stock.php:35
5928
- msgid "Understocked"
5929
- msgstr ""
5930
-
5931
- #: includes/reports/wcj-class-reports-stock.php:36
5932
- msgid ""
5933
- "Report shows all products that are low in stock calculated on product's "
5934
- "sales data."
5935
- msgstr ""
5936
-
5937
- #: includes/reports/wcj-class-reports-stock.php:38
5938
- msgid ""
5939
- "Threshold for minimum stock is equal to half of the sales in selected days "
5940
- "range."
5941
- msgstr ""
5942
-
5943
- #: includes/reports/wcj-class-reports-stock.php:42
5944
- msgid "Overstocked"
5945
- msgstr ""
5946
-
5947
- #: includes/reports/wcj-class-reports-stock.php:43
5948
- msgid ""
5949
- "Report shows all products that are on stock, but have no sales in selected "
5950
- "period. Only products added before the start date of selected period are "
5951
- "accounted."
5952
- msgstr ""
5953
-
5954
- #: includes/reports/wcj-class-reports-stock.php:289
5955
- msgid "Stock"
5956
- msgstr ""
5957
-
5958
- #: includes/reports/wcj-class-reports-stock.php:290
5959
- msgid "Stock price"
5960
- msgstr ""
5961
-
5962
- #: includes/reports/wcj-class-reports-stock.php:291
5963
- msgid "Total stock price"
5964
- msgstr ""
5965
-
5966
- #: includes/reports/wcj-class-reports-stock.php:293
5967
- msgid "Last sale"
5968
- msgstr ""
5969
-
5970
- #: includes/reports/wcj-class-reports-stock.php:294
5971
- msgid "Sales in last %s days"
5972
- msgstr ""
5973
-
5974
- #: includes/reports/wcj-class-reports-stock.php:295
5975
- msgid "Total sales"
5976
- msgstr ""
5977
-
5978
- #: includes/reports/wcj-class-reports-stock.php:298
5979
- msgid "Stock to minimum"
5980
- msgstr ""
5981
-
5982
- #: includes/reports/wcj-class-reports-stock.php:330
5983
- msgid "purchase price:"
5984
- msgstr ""
5985
-
5986
- #: includes/reports/wcj-class-reports-stock.php:335
5987
- msgid "stock purchase price:"
5988
- msgstr ""
5989
-
5990
- #: includes/reports/wcj-class-reports-stock.php:341
5991
- msgid "No sales yet"
5992
- msgstr ""
5993
-
5994
- #: includes/reports/wcj-class-reports-stock.php:346
5995
- msgid "profit:"
5996
- msgstr ""
5997
-
5998
- #: includes/reports/wcj-class-reports-stock.php:370
5999
- msgid "Total current stock value"
6000
- msgstr ""
6001
-
6002
- #: includes/reports/wcj-class-reports-stock.php:371
6003
- msgid "Total stock value"
6004
- msgstr ""
6005
-
6006
- #: includes/reports/wcj-class-reports-stock.php:372
6007
- msgid "Product stock value average"
6008
- msgstr ""
6009
-
6010
- #: includes/reports/wcj-class-reports-stock.php:373
6011
- msgid "Product stock average"
6012
- msgstr ""
6013
-
6014
- #: includes/reports/wcj-class-reports-stock.php:377
6015
- msgid "Report was generated in: "
6016
- msgstr ""
6017
-
6018
- #: includes/shipping/class-wc-shipping-wcj-custom.php:19
6019
- #: includes/shipping/class-wc-shipping-wcj-custom.php:65
6020
- msgid "Custom Shipping"
6021
- msgstr ""
6022
-
6023
- #: includes/shipping/class-wc-shipping-wcj-custom.php:20
6024
- msgid "WooCommerce Jetpack: Custom Shipping Method"
6025
- msgstr ""
6026
-
6027
- #: includes/shipping/class-wc-shipping-wcj-custom.php:58
6028
- msgid "Enable Custom Shipping"
6029
- msgstr ""
6030
-
6031
- #: woocommerce-jetpack.php:138
6032
- msgid ""
6033
- "<strong>WooCommerce Jetpack</strong> plugin changed its name to "
6034
- "<strong>Booster for WooCommerce</strong>."
6035
- msgstr ""
6036
-
6037
- #: woocommerce-jetpack.php:140
6038
- msgid "Got it! Hide this message"
6039
- msgstr ""
6040
-
6041
- #. #-#-#-#-# plugin.pot (Booster for WooCommerce 2.2.7) #-#-#-#-#
6042
- #. Plugin Name of the plugin/theme
6043
- #: woocommerce-jetpack.php:178
6044
- msgid "Booster for WooCommerce"
6045
- msgstr ""
6046
-
6047
- #: woocommerce-jetpack.php:178
6048
- msgid "Booster Settings"
6049
- msgstr ""
6050
-
6051
- #: woocommerce-jetpack.php:190
6052
- msgid "Docs"
6053
- msgstr ""
6054
-
6055
- #: woocommerce-jetpack.php:191
6056
- msgid "Unlock all"
6057
- msgstr ""
6058
-
6059
- #: woocommerce-jetpack.php:204
6060
- msgid "Install Booster for WooCommerce Plus to unlock all features"
6061
- msgstr ""
6062
-
6063
- #: woocommerce-jetpack.php:205
6064
- msgid ""
6065
- "Some settings fields are locked and you will need %s to modify all locked "
6066
- "fields."
6067
- msgstr ""
6068
-
6069
- #: woocommerce-jetpack.php:206
6070
- msgid "Buy now"
6071
- msgstr ""
6072
-
6073
- #: woocommerce-jetpack.php:206
6074
- msgid "Visit %s"
6075
- msgstr ""
6076
-
6077
- #: woocommerce-jetpack.php:210
6078
- msgid ""
6079
- "Get <a href=\"http://BoostWoo.com/plus/\" target=\"_blank\">Booster for "
6080
- "WooCommerce Plus</a> to change value."
6081
- msgstr ""
6082
-
6083
- #: woocommerce-jetpack.php:213
6084
- msgid ""
6085
- "Get <a href=\"http://BoostWoo.com/plus/\" target=\"_blank\">Booster for "
6086
- "WooCommerce Plus</a> to change values below."
6087
- msgstr ""
6088
-
6089
- #: woocommerce-jetpack.php:216
6090
- msgid ""
6091
- "Get <a href=\"http://BoostWoo.com/plus/\" target=\"_blank\">Booster for "
6092
- "WooCommerce Plus</a> to change values above."
6093
- msgstr ""
6094
-
6095
- #: woocommerce-jetpack.php:219
6096
- msgid "Get Booster for WooCommerce Plus to change value."
6097
- msgstr ""
6098
-
6099
- #. Plugin URI of the plugin/theme
6100
- msgid "http://BoostWoo.com"
6101
- msgstr ""
6102
-
6103
- #. Description of the plugin/theme
6104
- msgid "Supercharge your WooCommerce site with these awesome powerful features."
6105
- msgstr ""
6106
-
6107
- #. Author of the plugin/theme
6108
- msgid "Algoritmika Ltd"
6109
- msgstr ""
6110
-
6111
- #. Author URI of the plugin/theme
6112
- msgid "http://www.algoritmika.com"
6113
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2016 Booster for WooCommerce
2
+ # This file is distributed under the same license as the Booster for WooCommerce package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Booster for WooCommerce 2.5.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocommerce-"
7
+ "jetpack\n"
8
+ "POT-Creation-Date: 2016-05-23 09:00:54+00:00\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2016-MO-DA HO:MI+ZONE\n"
13
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
+ "Language-Team: LANGUAGE <LL@li.org>\n"
15
+
16
+ #: includes/add-to-cart/class-wcj-add-to-cart-per-product.php:79
17
+ msgid "Booster: Custom Add to Cart"
18
+ msgstr ""
19
+
20
+ #: includes/add-to-cart/class-wcj-add-to-cart-per-product.php:90
21
+ msgid "Single product view"
22
+ msgstr ""
23
+
24
+ #: includes/add-to-cart/class-wcj-add-to-cart-per-product.php:91
25
+ msgid "Product category (archive) view"
26
+ msgstr ""
27
+
28
+ #: includes/admin/class-wc-settings-jetpack.php:26
29
+ #: includes/admin/class-wc-settings-jetpack.php:291
30
+ #: includes/class-wcj-checkout-files-upload.php:120
31
+ #: includes/classes/class-wcj-module.php:124
32
+ #: includes/classes/class-wcj-module.php:307
33
+ msgid "Booster"
34
+ msgstr ""
35
+
36
+ #: includes/admin/class-wc-settings-jetpack.php:139
37
+ msgid "Save changes"
38
+ msgstr ""
39
+
40
+ #: includes/admin/class-wc-settings-jetpack.php:197
41
+ msgid "Alphabetically"
42
+ msgstr ""
43
+
44
+ #: includes/admin/class-wc-settings-jetpack.php:198
45
+ msgid "By Category"
46
+ msgstr ""
47
+
48
+ #: includes/admin/class-wc-settings-jetpack.php:199
49
+ msgid "Active"
50
+ msgstr ""
51
+
52
+ #: includes/admin/class-wc-settings-jetpack.php:241
53
+ #: includes/admin/wcj-modules-cats.php:15
54
+ msgid "Dashboard"
55
+ msgstr ""
56
+
57
+ #: includes/admin/class-wc-settings-jetpack.php:276
58
+ msgid ""
59
+ "Please note that current module is depreciated and will be removed in future "
60
+ "updates. Please use <em>%s</em> module instead."
61
+ msgstr ""
62
+
63
+ #: includes/admin/class-wc-settings-jetpack.php:287
64
+ msgid "WooCommerce"
65
+ msgstr ""
66
+
67
+ #: includes/admin/class-wc-settings-jetpack.php:289
68
+ #: includes/admin/class-wc-settings-jetpack.php:420
69
+ #: woocommerce-jetpack.php:293
70
+ msgid "Settings"
71
+ msgstr ""
72
+
73
+ #: includes/admin/class-wc-settings-jetpack.php:351
74
+ msgid "Version"
75
+ msgstr ""
76
+
77
+ #: includes/admin/class-wc-settings-jetpack.php:375
78
+ #: includes/admin/class-wc-settings-jetpack.php:382
79
+ msgid "Select All"
80
+ msgstr ""
81
+
82
+ #: includes/admin/class-wc-settings-jetpack.php:376
83
+ #: includes/admin/class-wc-settings-jetpack.php:383
84
+ #: includes/admin/class-wcj-tools.php:74
85
+ msgid "Module"
86
+ msgstr ""
87
+
88
+ #: includes/admin/class-wc-settings-jetpack.php:377
89
+ #: includes/admin/class-wc-settings-jetpack.php:384
90
+ #: includes/admin/class-wcj-tools.php:75
91
+ #: includes/class-wcj-eu-vat-number.php:292
92
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:71
93
+ #: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:134
94
+ msgid "Description"
95
+ msgstr ""
96
+
97
+ #: includes/admin/class-wc-settings-jetpack.php:422
98
+ #: includes/classes/class-wcj-module.php:446
99
+ msgid "Documentation"
100
+ msgstr ""
101
+
102
+ #: includes/admin/class-wc-settings-jetpack.php:437
103
+ msgid "Total Modules:"
104
+ msgstr ""
105
+
106
+ #: includes/admin/class-wc-settings-jetpack.php:466
107
+ msgid "Booster for WooCommerce - Dashboard"
108
+ msgstr ""
109
+
110
+ #: includes/admin/class-wc-settings-jetpack.php:468
111
+ msgid ""
112
+ "This dashboard lets you enable/disable any Booster's module. Each checkbox "
113
+ "comes with short module's description. Please visit <a href=\"http://booster."
114
+ "io\" target=\"_blank\">http://booster.io</a> for detailed info on each "
115
+ "feature."
116
+ msgstr ""
117
+
118
+ #: includes/admin/class-wcj-tools.php:34
119
+ msgid "Booster for WooCommerce Tools"
120
+ msgstr ""
121
+
122
+ #: includes/admin/class-wcj-tools.php:35
123
+ msgid "Booster Tools"
124
+ msgstr ""
125
+
126
+ #: includes/admin/class-wcj-tools.php:53
127
+ msgid "Tools Dashboard"
128
+ msgstr ""
129
+
130
+ #: includes/admin/class-wcj-tools.php:67
131
+ msgid "Booster for WooCommerce Tools - Dashboard"
132
+ msgstr ""
133
+
134
+ #: includes/admin/class-wcj-tools.php:68
135
+ msgid ""
136
+ "This dashboard lets you check statuses and short descriptions of all "
137
+ "available Booster for WooCommerce tools. Tools can be enabled through "
138
+ "WooCommerce > Settings > Booster. Enabled tools will appear in the tabs menu "
139
+ "above."
140
+ msgstr ""
141
+
142
+ #: includes/admin/class-wcj-tools.php:73
143
+ msgid "Tool"
144
+ msgstr ""
145
+
146
+ #: includes/admin/class-wcj-tools.php:76
147
+ msgid "Status"
148
+ msgstr ""
149
+
150
+ #: includes/admin/wcj-modules-cats.php:25
151
+ msgid "Prices & Currencies"
152
+ msgstr ""
153
+
154
+ #: includes/admin/wcj-modules-cats.php:43
155
+ msgid "Button & Price Labels"
156
+ msgstr ""
157
+
158
+ #: includes/admin/wcj-modules-cats.php:54
159
+ msgid "Products"
160
+ msgstr ""
161
+
162
+ #: includes/admin/wcj-modules-cats.php:75
163
+ msgid "Cart & Checkout"
164
+ msgstr ""
165
+
166
+ #: includes/admin/wcj-modules-cats.php:89
167
+ #: includes/class-wcj-payment-gateways-by-country.php:86
168
+ #: includes/class-wcj-payment-gateways-min-max.php:90
169
+ msgid "Payment Gateways"
170
+ msgstr ""
171
+
172
+ #: includes/admin/wcj-modules-cats.php:103
173
+ msgid "Shipping & Orders"
174
+ msgstr ""
175
+
176
+ #: includes/admin/wcj-modules-cats.php:116
177
+ msgid "PDF Invoicing & Packing Slips"
178
+ msgstr ""
179
+
180
+ #: includes/admin/wcj-modules-cats.php:132
181
+ msgid "Emails & Misc."
182
+ msgstr ""
183
+
184
+ #: includes/class-wcj-add-to-cart.php:25
185
+ msgid "Add to Cart Labels"
186
+ msgstr ""
187
+
188
+ #: includes/class-wcj-add-to-cart.php:26
189
+ msgid ""
190
+ "Change text for Add to Cart button by WooCommerce product type, by product "
191
+ "category or for individual products."
192
+ msgstr ""
193
+
194
+ #: includes/class-wcj-add-to-cart.php:44
195
+ msgid "Per Product Type Options"
196
+ msgstr ""
197
+
198
+ #: includes/class-wcj-add-to-cart.php:47
199
+ #: includes/class-wcj-add-to-cart.php:186
200
+ msgid "Per Product Labels"
201
+ msgstr ""
202
+
203
+ #: includes/class-wcj-add-to-cart.php:48
204
+ #: includes/class-wcj-add-to-cart.php:187
205
+ #: includes/class-wcj-add-to-cart.php:212
206
+ #: includes/class-wcj-product-images.php:184
207
+ #: includes/class-wcj-product-images.php:261
208
+ msgid "Enable Section"
209
+ msgstr ""
210
+
211
+ #: includes/class-wcj-add-to-cart.php:58
212
+ msgid "Simple product"
213
+ msgstr ""
214
+
215
+ #: includes/class-wcj-add-to-cart.php:63
216
+ msgid "Variable product"
217
+ msgstr ""
218
+
219
+ #: includes/class-wcj-add-to-cart.php:68
220
+ msgid "External product"
221
+ msgstr ""
222
+
223
+ #: includes/class-wcj-add-to-cart.php:73
224
+ msgid "Grouped product"
225
+ msgstr ""
226
+
227
+ #: includes/class-wcj-add-to-cart.php:78
228
+ msgid "Other product"
229
+ msgstr ""
230
+
231
+ #: includes/class-wcj-add-to-cart.php:89
232
+ msgid "Single product view."
233
+ msgstr ""
234
+
235
+ #: includes/class-wcj-add-to-cart.php:90
236
+ #: includes/class-wcj-add-to-cart.php:101
237
+ #: includes/class-wcj-add-to-cart.php:147
238
+ #: includes/class-wcj-add-to-cart.php:160
239
+ #: includes/class-wcj-payment-gateways-fees.php:151
240
+ msgid "Leave blank to disable."
241
+ msgstr ""
242
+
243
+ #: includes/class-wcj-add-to-cart.php:90
244
+ #: includes/class-wcj-add-to-cart.php:101
245
+ #: includes/class-wcj-add-to-cart.php:149
246
+ #: includes/class-wcj-add-to-cart.php:162 includes/class-wcj-sorting.php:198
247
+ #: includes/class-wcj-sorting.php:207 includes/class-wcj-sorting.php:216
248
+ #: includes/class-wcj-sorting.php:225 includes/class-wcj-sorting.php:243
249
+ #: includes/class-wcj-sorting.php:252
250
+ msgid "Default: "
251
+ msgstr ""
252
+
253
+ #: includes/class-wcj-add-to-cart.php:100
254
+ msgid "Product category (archive) view."
255
+ msgstr ""
256
+
257
+ #: includes/class-wcj-add-to-cart.php:112
258
+ msgid "Products with price set to 0 (i.e. free). Single product view."
259
+ msgstr ""
260
+
261
+ #: includes/class-wcj-add-to-cart.php:113
262
+ #: includes/class-wcj-add-to-cart.php:122
263
+ msgid "Leave blank to disable. Default: Add to cart"
264
+ msgstr ""
265
+
266
+ #: includes/class-wcj-add-to-cart.php:115
267
+ #: includes/class-wcj-add-to-cart.php:124
268
+ #: includes/class-wcj-add-to-cart.php:149
269
+ #: includes/class-wcj-add-to-cart.php:150
270
+ #: includes/class-wcj-add-to-cart.php:162
271
+ #: includes/class-wcj-add-to-cart.php:163
272
+ msgid "Add to cart"
273
+ msgstr ""
274
+
275
+ #: includes/class-wcj-add-to-cart.php:121
276
+ msgid ""
277
+ "Products with price set to 0 (i.e. free). Product category (archive) view."
278
+ msgstr ""
279
+
280
+ #: includes/class-wcj-add-to-cart.php:131
281
+ msgid "Products with empty price. Product category (archive) view."
282
+ msgstr ""
283
+
284
+ #: includes/class-wcj-add-to-cart.php:132
285
+ msgid "Leave blank to disable. Default: Read More"
286
+ msgstr ""
287
+
288
+ #: includes/class-wcj-add-to-cart.php:134
289
+ msgid "Read More"
290
+ msgstr ""
291
+
292
+ #: includes/class-wcj-add-to-cart.php:146
293
+ msgid "Already in cart. Single product view."
294
+ msgstr ""
295
+
296
+ #: includes/class-wcj-add-to-cart.php:148
297
+ #: includes/class-wcj-add-to-cart.php:161
298
+ msgid "Try: "
299
+ msgstr ""
300
+
301
+ #: includes/class-wcj-add-to-cart.php:148
302
+ #: includes/class-wcj-add-to-cart.php:161
303
+ msgid "Already in cart - Add Again?"
304
+ msgstr ""
305
+
306
+ #: includes/class-wcj-add-to-cart.php:159
307
+ msgid "Already in cart. Product category (archive) view."
308
+ msgstr ""
309
+
310
+ #: includes/class-wcj-add-to-cart.php:180
311
+ msgid "Per Product Options"
312
+ msgstr ""
313
+
314
+ #: includes/class-wcj-add-to-cart.php:182
315
+ msgid ""
316
+ "This section lets you set Add to Cart button text on per product basis. When "
317
+ "enabled, label for each product can be changed in \"Edit Product\"."
318
+ msgstr ""
319
+
320
+ #: includes/class-wcj-add-to-cart.php:208
321
+ msgid "Per Category Options"
322
+ msgstr ""
323
+
324
+ #: includes/class-wcj-add-to-cart.php:208
325
+ msgid ""
326
+ "This sections lets you set Add to Cart button text on per category basis."
327
+ msgstr ""
328
+
329
+ #: includes/class-wcj-add-to-cart.php:211
330
+ msgid "Per Category Labels"
331
+ msgstr ""
332
+
333
+ #: includes/class-wcj-add-to-cart.php:220
334
+ msgid "Category Groups Number"
335
+ msgstr ""
336
+
337
+ #: includes/class-wcj-add-to-cart.php:221
338
+ #: includes/class-wcj-checkout-custom-fields.php:637
339
+ #: includes/class-wcj-product-input-fields.php:179
340
+ #: includes/class-wcj-product-tabs.php:504
341
+ msgid "Click \"Save changes\" after you change this number."
342
+ msgstr ""
343
+
344
+ #: includes/class-wcj-add-to-cart.php:258
345
+ #: includes/class-wcj-price-by-country.php:202
346
+ #: includes/class-wcj-price-by-country.php:213
347
+ #: includes/class-wcj-price-by-country.php:224
348
+ #: includes/class-wcj-price-by-country.php:278
349
+ msgid "Group"
350
+ msgstr ""
351
+
352
+ #: includes/class-wcj-add-to-cart.php:259
353
+ #: includes/class-wcj-admin-tools.php:84 includes/class-wcj-admin-tools.php:92
354
+ #: includes/class-wcj-general.php:419 includes/class-wcj-general.php:475
355
+ #: includes/class-wcj-multicurrency.php:353
356
+ #: includes/class-wcj-multicurrency.php:361
357
+ #: includes/class-wcj-order-numbers.php:174
358
+ #: includes/class-wcj-order-numbers.php:237 includes/class-wcj-orders.php:248
359
+ #: includes/class-wcj-price-by-country.php:112
360
+ #: includes/class-wcj-price-by-country.php:133
361
+ #: includes/class-wcj-price-by-user-role.php:438
362
+ #: includes/class-wcj-price-by-user-role.php:446
363
+ #: includes/class-wcj-price-labels.php:51
364
+ #: includes/class-wcj-price-labels.php:726
365
+ #: includes/class-wcj-product-add-to-cart.php:125
366
+ #: includes/class-wcj-product-add-to-cart.php:151
367
+ #: includes/class-wcj-product-add-to-cart.php:167
368
+ #: includes/class-wcj-product-info.php:256
369
+ #: includes/class-wcj-product-info.php:351
370
+ #: includes/class-wcj-product-info.php:384
371
+ #: includes/class-wcj-product-input-fields.php:133
372
+ #: includes/class-wcj-product-input-fields.php:170
373
+ #: includes/class-wcj-product-input-fields.php:283
374
+ #: includes/class-wcj-product-tabs.php:678
375
+ #: includes/class-wcj-product-tabs.php:686
376
+ #: includes/class-wcj-purchase-data.php:277
377
+ #: includes/class-wcj-purchase-data.php:284
378
+ #: includes/class-wcj-purchase-data.php:291
379
+ #: includes/class-wcj-purchase-data.php:358
380
+ #: includes/class-wcj-purchase-data.php:365
381
+ #: includes/class-wcj-purchase-data.php:372
382
+ #: includes/class-wcj-shipping-calculator.php:116
383
+ #: includes/class-wcj-shipping-calculator.php:123
384
+ #: includes/class-wcj-shipping-calculator.php:130
385
+ #: includes/class-wcj-shipping-calculator.php:137
386
+ #: includes/class-wcj-shipping.php:238 includes/class-wcj-shipping.php:270
387
+ #: includes/class-wcj-shipping.php:308 includes/class-wcj-sorting.php:191
388
+ #: includes/class-wcj-wholesale-price.php:285
389
+ #: includes/class-wcj-wholesale-price.php:292
390
+ #: includes/class-wcj-wholesale-price.php:299
391
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:319
392
+ msgid "Enable"
393
+ msgstr ""
394
+
395
+ #: includes/class-wcj-add-to-cart.php:275
396
+ #: includes/class-wcj-checkout-custom-fields.php:866
397
+ msgid "categories"
398
+ msgstr ""
399
+
400
+ #: includes/class-wcj-add-to-cart.php:286
401
+ msgid "Button text - single product view"
402
+ msgstr ""
403
+
404
+ #: includes/class-wcj-add-to-cart.php:294
405
+ msgid "Button text - product archive (category) view"
406
+ msgstr ""
407
+
408
+ #: includes/class-wcj-address-formats.php:26
409
+ msgid "Address Formats"
410
+ msgstr ""
411
+
412
+ #: includes/class-wcj-address-formats.php:27
413
+ msgid ""
414
+ "Set address format in WooCommerce orders on per country basis. Force base "
415
+ "country display."
416
+ msgstr ""
417
+
418
+ #: includes/class-wcj-address-formats.php:130
419
+ #: includes/class-wcj-address-formats.php:136
420
+ msgid "Force Base Country Display"
421
+ msgstr ""
422
+
423
+ #: includes/class-wcj-address-formats.php:132
424
+ msgid "Force Base Country Display Options."
425
+ msgstr ""
426
+
427
+ #: includes/class-wcj-address-formats.php:148
428
+ msgid "Address Formats by Country"
429
+ msgstr ""
430
+
431
+ #: includes/class-wcj-address-formats.php:150
432
+ msgid "Address Formats by Country Options."
433
+ msgstr ""
434
+
435
+ #: includes/class-wcj-admin-tools.php:25 includes/class-wcj-admin-tools.php:32
436
+ msgid "Admin Tools"
437
+ msgstr ""
438
+
439
+ #: includes/class-wcj-admin-tools.php:26
440
+ msgid "Booster for WooCommerce debug and log tools."
441
+ msgstr ""
442
+
443
+ #: includes/class-wcj-admin-tools.php:33
444
+ msgid "Log."
445
+ msgstr ""
446
+
447
+ #: includes/class-wcj-admin-tools.php:34
448
+ msgid "Log"
449
+ msgstr ""
450
+
451
+ #: includes/class-wcj-admin-tools.php:49
452
+ msgid "Log deleted successfully."
453
+ msgstr ""
454
+
455
+ #: includes/class-wcj-admin-tools.php:55
456
+ msgid "Delete Log"
457
+ msgstr ""
458
+
459
+ #: includes/class-wcj-admin-tools.php:77
460
+ msgid "Admin Tools Options"
461
+ msgstr ""
462
+
463
+ #: includes/class-wcj-admin-tools.php:83
464
+ msgid "Logging"
465
+ msgstr ""
466
+
467
+ #: includes/class-wcj-admin-tools.php:91
468
+ msgid "Debug"
469
+ msgstr ""
470
+
471
+ #: includes/class-wcj-call-for-price.php:25
472
+ msgid "Call for Price"
473
+ msgstr ""
474
+
475
+ #: includes/class-wcj-call-for-price.php:26
476
+ msgid ""
477
+ "Create any custom price label for all WooCommerce products with empty price."
478
+ msgstr ""
479
+
480
+ #: includes/class-wcj-call-for-price.php:82
481
+ msgid "Call for Price Options"
482
+ msgstr ""
483
+
484
+ #: includes/class-wcj-call-for-price.php:84
485
+ msgid ""
486
+ "Leave price empty when adding or editing products. Then set the options here."
487
+ msgstr ""
488
+
489
+ #: includes/class-wcj-call-for-price.php:88
490
+ msgid "Label to Show on Single"
491
+ msgstr ""
492
+
493
+ #: includes/class-wcj-call-for-price.php:89
494
+ #: includes/class-wcj-call-for-price.php:100
495
+ #: includes/class-wcj-call-for-price.php:111
496
+ #: includes/class-wcj-call-for-price.php:122
497
+ msgid "This sets the html to output on empty price. Leave blank to disable."
498
+ msgstr ""
499
+
500
+ #: includes/class-wcj-call-for-price.php:99
501
+ msgid "Label to Show on Archives"
502
+ msgstr ""
503
+
504
+ #: includes/class-wcj-call-for-price.php:110
505
+ msgid "Label to Show on Homepage"
506
+ msgstr ""
507
+
508
+ #: includes/class-wcj-call-for-price.php:121
509
+ msgid "Label to Show on Related"
510
+ msgstr ""
511
+
512
+ #: includes/class-wcj-call-for-price.php:132
513
+ msgid "Hide Sale! Tag"
514
+ msgstr ""
515
+
516
+ #: includes/class-wcj-call-for-price.php:133
517
+ msgid "Hide the tag"
518
+ msgstr ""
519
+
520
+ #: includes/class-wcj-cart.php:25
521
+ msgid "Cart"
522
+ msgstr ""
523
+
524
+ #: includes/class-wcj-cart.php:26
525
+ msgid "Add custom info to WooCommerce cart page."
526
+ msgstr ""
527
+
528
+ #: includes/class-wcj-cart.php:31
529
+ msgid ""
530
+ "This feature allows you to add a final checkpoint for your customers before "
531
+ "they proceed to payment."
532
+ msgstr ""
533
+
534
+ #: includes/class-wcj-cart.php:32
535
+ msgid ""
536
+ "Show custom information at on the cart page using Booster's various "
537
+ "shortcodes and give your customers a seamless cart experience."
538
+ msgstr ""
539
+
540
+ #: includes/class-wcj-cart.php:33
541
+ msgid ""
542
+ "For example, show them the total weight of their items, any additional fees "
543
+ "or taxes, or a confirmation of the address their products are being sent to."
544
+ msgstr ""
545
+
546
+ #: includes/class-wcj-cart.php:125
547
+ msgid "Cart Custom Info Blocks"
548
+ msgstr ""
549
+
550
+ #: includes/class-wcj-cart.php:132
551
+ #: includes/class-wcj-checkout-custom-info.php:75
552
+ #: includes/class-wcj-mini-cart.php:80
553
+ #: includes/class-wcj-product-custom-info.php:115
554
+ msgid "Total Blocks"
555
+ msgstr ""
556
+
557
+ #: includes/class-wcj-cart.php:153
558
+ #: includes/class-wcj-checkout-custom-info.php:90
559
+ #: includes/class-wcj-mini-cart.php:100
560
+ #: includes/class-wcj-product-custom-info.php:130
561
+ msgid "Info Block"
562
+ msgstr ""
563
+
564
+ #: includes/class-wcj-cart.php:159
565
+ #: includes/class-wcj-checkout-custom-info.php:95
566
+ #: includes/class-wcj-mini-cart.php:106
567
+ #: includes/class-wcj-product-custom-info.php:135
568
+ #: includes/class-wcj-product-tabs.php:431
569
+ #: includes/class-wcj-product-tabs.php:557 includes/class-wcj-shipping.php:245
570
+ #: includes/class-wcj-shipping.php:279 includes/class-wcj-shipping.php:317
571
+ msgid "Content"
572
+ msgstr ""
573
+
574
+ #: includes/class-wcj-cart.php:167
575
+ #: includes/class-wcj-checkout-custom-info.php:102
576
+ #: includes/class-wcj-checkout-files-upload.php:542
577
+ #: includes/class-wcj-mini-cart.php:114
578
+ #: includes/class-wcj-product-custom-info.php:142
579
+ #: includes/class-wcj-product-info.php:263
580
+ #: includes/class-wcj-product-info.php:366
581
+ #: includes/class-wcj-product-info.php:399 includes/class-wcj-shipping.php:253
582
+ #: includes/class-wcj-shipping.php:287 includes/class-wcj-shipping.php:325
583
+ msgid "Position"
584
+ msgstr ""
585
+
586
+ #: includes/class-wcj-cart.php:176
587
+ #: includes/class-wcj-checkout-custom-info.php:139
588
+ #: includes/class-wcj-mini-cart.php:127
589
+ #: includes/class-wcj-product-custom-info.php:168
590
+ msgid "Position Order (i.e. Priority)"
591
+ msgstr ""
592
+
593
+ #: includes/class-wcj-cart.php:193
594
+ msgid "Cart Items Table Custom Info"
595
+ msgstr ""
596
+
597
+ #: includes/class-wcj-cart.php:200
598
+ msgid "Add to Each Item Name"
599
+ msgstr ""
600
+
601
+ #: includes/class-wcj-cart.php:201
602
+ msgid ""
603
+ "You can use shortcodes here. E.g.: [wcj_product_sku]. Leave blank to disable."
604
+ msgstr ""
605
+
606
+ #: includes/class-wcj-checkout-core-fields.php:25
607
+ msgid "Checkout Core Fields"
608
+ msgstr ""
609
+
610
+ #: includes/class-wcj-checkout-core-fields.php:26
611
+ msgid ""
612
+ "Customize WooCommerce core checkout fields. Disable/enable fields, set "
613
+ "required, change labels and/or placeholders."
614
+ msgstr ""
615
+
616
+ #: includes/class-wcj-checkout-core-fields.php:213
617
+ msgid "Checkout Core Fields Options"
618
+ msgstr ""
619
+
620
+ #: includes/class-wcj-checkout-core-fields.php:225
621
+ #: includes/classes/class-wcj-module.php:359
622
+ msgid "enabled"
623
+ msgstr ""
624
+
625
+ #: includes/class-wcj-checkout-core-fields.php:230
626
+ #: includes/class-wcj-checkout-core-fields.php:244
627
+ #: includes/class-wcj-checkout-core-fields.php:278
628
+ msgid "Default"
629
+ msgstr ""
630
+
631
+ #: includes/class-wcj-checkout-core-fields.php:231
632
+ #: includes/class-wcj-checkout-custom-fields.php:668
633
+ #: includes/class-wcj-checkout-files-upload.php:530
634
+ #: includes/class-wcj-price-by-user-role.php:147
635
+ #: includes/class-wcj-product-bookings.php:411
636
+ #: includes/class-wcj-product-open-pricing.php:178
637
+ #: includes/class-wcj-product-price-by-formula.php:235
638
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:37
639
+ msgid "Enabled"
640
+ msgstr ""
641
+
642
+ #: includes/class-wcj-checkout-core-fields.php:232
643
+ #: includes/class-wcj-pdf-invoicing.php:195
644
+ #: includes/class-wcj-product-tabs.php:440
645
+ msgid "Disabled"
646
+ msgstr ""
647
+
648
+ #: includes/class-wcj-checkout-core-fields.php:239
649
+ #: includes/class-wcj-checkout-custom-fields.php:807
650
+ msgid "required"
651
+ msgstr ""
652
+
653
+ #: includes/class-wcj-checkout-core-fields.php:245
654
+ #: includes/class-wcj-checkout-files-upload.php:536
655
+ #: includes/class-wcj-eu-vat-number.php:305
656
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:199
657
+ msgid "Required"
658
+ msgstr ""
659
+
660
+ #: includes/class-wcj-checkout-core-fields.php:246
661
+ msgid "Not Required"
662
+ msgstr ""
663
+
664
+ #: includes/class-wcj-checkout-core-fields.php:253
665
+ #: includes/class-wcj-checkout-custom-fields.php:815
666
+ msgid "label"
667
+ msgstr ""
668
+
669
+ #: includes/class-wcj-checkout-core-fields.php:254
670
+ #: includes/class-wcj-checkout-core-fields.php:264
671
+ msgid "Leave blank for WooCommerce defaults."
672
+ msgstr ""
673
+
674
+ #: includes/class-wcj-checkout-core-fields.php:263
675
+ #: includes/class-wcj-checkout-custom-fields.php:823
676
+ msgid "placeholder"
677
+ msgstr ""
678
+
679
+ #: includes/class-wcj-checkout-core-fields.php:273
680
+ #: includes/class-wcj-checkout-custom-fields.php:845
681
+ msgid "class"
682
+ msgstr ""
683
+
684
+ #: includes/class-wcj-checkout-core-fields.php:279
685
+ msgid "Align Left"
686
+ msgstr ""
687
+
688
+ #: includes/class-wcj-checkout-core-fields.php:280
689
+ msgid "Align Right"
690
+ msgstr ""
691
+
692
+ #: includes/class-wcj-checkout-core-fields.php:281
693
+ msgid "Full Row"
694
+ msgstr ""
695
+
696
+ #: includes/class-wcj-checkout-custom-fields.php:25
697
+ msgid "Checkout Custom Fields"
698
+ msgstr ""
699
+
700
+ #: includes/class-wcj-checkout-custom-fields.php:26
701
+ msgid "Add custom fields to WooCommerce checkout page."
702
+ msgstr ""
703
+
704
+ #: includes/class-wcj-checkout-custom-fields.php:599
705
+ msgid "Checkout Custom Fields Options"
706
+ msgstr ""
707
+
708
+ #: includes/class-wcj-checkout-custom-fields.php:605
709
+ msgid "Add All Fields to Admin Emails"
710
+ msgstr ""
711
+
712
+ #: includes/class-wcj-checkout-custom-fields.php:606
713
+ #: includes/class-wcj-checkout-custom-fields.php:613
714
+ #: includes/class-wcj-checkout-custom-fields.php:620
715
+ #: includes/class-wcj-order-custom-statuses.php:209
716
+ #: includes/class-wcj-order-custom-statuses.php:281
717
+ #: includes/class-wcj-order-custom-statuses.php:288
718
+ #: includes/class-wcj-orders.php:214 includes/class-wcj-orders.php:266
719
+ #: includes/class-wcj-price-by-user-role.php:236
720
+ #: includes/class-wcj-purchase-data.php:389
721
+ #: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:161
722
+ msgid "Add"
723
+ msgstr ""
724
+
725
+ #: includes/class-wcj-checkout-custom-fields.php:612
726
+ msgid "Add All Fields to Customers Emails"
727
+ msgstr ""
728
+
729
+ #: includes/class-wcj-checkout-custom-fields.php:619
730
+ msgid "Add All Fields to \"Order Received\" Page"
731
+ msgstr ""
732
+
733
+ #: includes/class-wcj-checkout-custom-fields.php:631
734
+ msgid "The Fields"
735
+ msgstr ""
736
+
737
+ #: includes/class-wcj-checkout-custom-fields.php:636
738
+ msgid "Custom Fields Number"
739
+ msgstr ""
740
+
741
+ #: includes/class-wcj-checkout-custom-fields.php:667
742
+ msgid "Custom Field"
743
+ msgstr ""
744
+
745
+ #: includes/class-wcj-checkout-custom-fields.php:678
746
+ msgid "type"
747
+ msgstr ""
748
+
749
+ #: includes/class-wcj-checkout-custom-fields.php:683
750
+ #: includes/class-wcj-more-button-labels.php:58
751
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:48
752
+ msgid "Text"
753
+ msgstr ""
754
+
755
+ #: includes/class-wcj-checkout-custom-fields.php:684
756
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:49
757
+ msgid "Textarea"
758
+ msgstr ""
759
+
760
+ #: includes/class-wcj-checkout-custom-fields.php:685
761
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:50
762
+ msgid "Number"
763
+ msgstr ""
764
+
765
+ #: includes/class-wcj-checkout-custom-fields.php:686
766
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:51
767
+ msgid "Checkbox"
768
+ msgstr ""
769
+
770
+ #: includes/class-wcj-checkout-custom-fields.php:688
771
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:53
772
+ msgid "Datepicker"
773
+ msgstr ""
774
+
775
+ #: includes/class-wcj-checkout-custom-fields.php:689
776
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:54
777
+ msgid "Weekpicker"
778
+ msgstr ""
779
+
780
+ #: includes/class-wcj-checkout-custom-fields.php:690
781
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:55
782
+ msgid "Timepicker"
783
+ msgstr ""
784
+
785
+ #: includes/class-wcj-checkout-custom-fields.php:691
786
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:56
787
+ msgid "Select"
788
+ msgstr ""
789
+
790
+ #: includes/class-wcj-checkout-custom-fields.php:692
791
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:57
792
+ msgid "Radio"
793
+ msgstr ""
794
+
795
+ #: includes/class-wcj-checkout-custom-fields.php:693
796
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:58
797
+ msgid "Password"
798
+ msgstr ""
799
+
800
+ #: includes/class-wcj-checkout-custom-fields.php:694
801
+ #: includes/class-wcj-orders.php:91 includes/class-wcj-orders.php:265
802
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:59
803
+ #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:90
804
+ #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:104
805
+ msgid "Country"
806
+ msgstr ""
807
+
808
+ #: includes/class-wcj-checkout-custom-fields.php:695
809
+ msgid "State"
810
+ msgstr ""
811
+
812
+ #: includes/class-wcj-checkout-custom-fields.php:696
813
+ #: includes/class-wcj-general.php:239
814
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:61
815
+ #: includes/reports/wcj-class-reports-customers.php:92
816
+ msgid "Email"
817
+ msgstr ""
818
+
819
+ #: includes/class-wcj-checkout-custom-fields.php:697
820
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:62
821
+ msgid "Phone"
822
+ msgstr ""
823
+
824
+ #: includes/class-wcj-checkout-custom-fields.php:703
825
+ msgid ""
826
+ "options (only if \"select\" or \"radio\" type is selected). One option per "
827
+ "line"
828
+ msgstr ""
829
+
830
+ #: includes/class-wcj-checkout-custom-fields.php:712
831
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:79
832
+ msgid "If checkbox is selected, set value for ON here"
833
+ msgstr ""
834
+
835
+ #: includes/class-wcj-checkout-custom-fields.php:714
836
+ #: includes/class-wcj-eu-vat-number.php:306
837
+ #: includes/class-wcj-eu-vat-number.php:313
838
+ #: includes/class-wcj-eu-vat-number.php:331
839
+ #: includes/class-wcj-eu-vat-number.php:346
840
+ #: includes/class-wcj-eu-vat-number.php:353
841
+ #: includes/class-wcj-eu-vat-number.php:371
842
+ #: includes/class-wcj-price-by-user-role.php:144
843
+ #: includes/class-wcj-product-bookings.php:408
844
+ #: includes/class-wcj-product-open-pricing.php:175
845
+ #: includes/class-wcj-product-price-by-formula.php:232
846
+ #: includes/class-wcj-wholesale-price.php:224
847
+ #: includes/classes/class-wcj-module.php:53
848
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:82
849
+ msgid "Yes"
850
+ msgstr ""
851
+
852
+ #: includes/class-wcj-checkout-custom-fields.php:720
853
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:87
854
+ msgid "If checkbox is selected, set value for OFF here"
855
+ msgstr ""
856
+
857
+ #: includes/class-wcj-checkout-custom-fields.php:722
858
+ #: includes/class-wcj-price-by-user-role.php:145
859
+ #: includes/class-wcj-product-bookings.php:409
860
+ #: includes/class-wcj-product-open-pricing.php:176
861
+ #: includes/class-wcj-product-price-by-formula.php:233
862
+ #: includes/class-wcj-wholesale-price.php:225
863
+ #: includes/classes/class-wcj-module.php:54
864
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:90
865
+ msgid "No"
866
+ msgstr ""
867
+
868
+ #: includes/class-wcj-checkout-custom-fields.php:728
869
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:95
870
+ msgid "If checkbox is selected, set default value here"
871
+ msgstr ""
872
+
873
+ #: includes/class-wcj-checkout-custom-fields.php:732
874
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:100
875
+ msgid "Not Checked"
876
+ msgstr ""
877
+
878
+ #: includes/class-wcj-checkout-custom-fields.php:733
879
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:101
880
+ msgid "Checked"
881
+ msgstr ""
882
+
883
+ #: includes/class-wcj-checkout-custom-fields.php:739
884
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:116
885
+ msgid ""
886
+ "If datepicker/weekpicker is selected, set date format here. Visit <a href="
887
+ "\"https://codex.wordpress.org/Formatting_Date_and_Time\" target=\"_blank"
888
+ "\">documentation on date and time formatting</a> for valid date formats."
889
+ msgstr ""
890
+
891
+ #: includes/class-wcj-checkout-custom-fields.php:740
892
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:117
893
+ msgid "Leave blank to use your current WordPress format"
894
+ msgstr ""
895
+
896
+ #: includes/class-wcj-checkout-custom-fields.php:747
897
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:125
898
+ msgid "If datepicker/weekpicker is selected, set min date (in days) here"
899
+ msgstr ""
900
+
901
+ #: includes/class-wcj-checkout-custom-fields.php:754
902
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:133
903
+ msgid "If datepicker/weekpicker is selected, set max date (in days) here"
904
+ msgstr ""
905
+
906
+ #: includes/class-wcj-checkout-custom-fields.php:761
907
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:141
908
+ msgid ""
909
+ "If datepicker/weekpicker is selected, set if you want to add year selector"
910
+ msgstr ""
911
+
912
+ #: includes/class-wcj-checkout-custom-fields.php:768
913
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:149
914
+ msgid ""
915
+ "If datepicker/weekpicker is selected, and year selector is enabled, set year "
916
+ "range here"
917
+ msgstr ""
918
+
919
+ #: includes/class-wcj-checkout-custom-fields.php:769
920
+ msgid ""
921
+ "The range of years displayed in the year drop-down: either relative to "
922
+ "today's year (\"-nn:+nn\"), relative to the currently selected year (\"c-nn:c"
923
+ "+nn\"), absolute (\"nnnn:nnnn\"), or combinations of these formats (\"nnnn:-"
924
+ "nn\"). Note that this option only affects what appears in the drop-down, to "
925
+ "restrict which dates may be selected use the minDate and/or maxDate options."
926
+ msgstr ""
927
+
928
+ #: includes/class-wcj-checkout-custom-fields.php:776
929
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:158
930
+ msgid "If datepicker/weekpicker is selected, set first week day here"
931
+ msgstr ""
932
+
933
+ #: includes/class-wcj-checkout-custom-fields.php:781
934
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:163
935
+ msgid "Sunday"
936
+ msgstr ""
937
+
938
+ #: includes/class-wcj-checkout-custom-fields.php:782
939
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:164
940
+ msgid "Monday"
941
+ msgstr ""
942
+
943
+ #: includes/class-wcj-checkout-custom-fields.php:783
944
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:165
945
+ msgid "Tuesday"
946
+ msgstr ""
947
+
948
+ #: includes/class-wcj-checkout-custom-fields.php:784
949
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:166
950
+ msgid "Wednesday"
951
+ msgstr ""
952
+
953
+ #: includes/class-wcj-checkout-custom-fields.php:785
954
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:167
955
+ msgid "Thursday"
956
+ msgstr ""
957
+
958
+ #: includes/class-wcj-checkout-custom-fields.php:786
959
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:168
960
+ msgid "Friday"
961
+ msgstr ""
962
+
963
+ #: includes/class-wcj-checkout-custom-fields.php:787
964
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:169
965
+ msgid "Saturday"
966
+ msgstr ""
967
+
968
+ #: includes/class-wcj-checkout-custom-fields.php:792
969
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:175
970
+ msgid ""
971
+ "If timepicker is selected, set time format here. Visit <a href=\"http://"
972
+ "timepicker.co/options/\" target=\"_blank\">timepicker options page</a> for "
973
+ "valid time formats."
974
+ msgstr ""
975
+
976
+ #: includes/class-wcj-checkout-custom-fields.php:800
977
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:183
978
+ msgid "If timepicker is selected, set interval (in minutes) here"
979
+ msgstr ""
980
+
981
+ #: includes/class-wcj-checkout-custom-fields.php:831
982
+ msgid "section"
983
+ msgstr ""
984
+
985
+ #: includes/class-wcj-checkout-custom-fields.php:836
986
+ #: includes/class-wcj-checkout-custom-info.php:110
987
+ #: includes/class-wcj-empty-cart-button.php:117
988
+ #: includes/class-wcj-shipping.php:332
989
+ msgid "Billing"
990
+ msgstr ""
991
+
992
+ #: includes/class-wcj-checkout-custom-fields.php:837
993
+ #: includes/class-wcj-checkout-custom-info.php:111
994
+ #: includes/class-wcj-empty-cart-button.php:118
995
+ #: includes/class-wcj-price-by-user-role.php:445
996
+ #: includes/class-wcj-shipping.php:25 includes/class-wcj-shipping.php:333
997
+ msgid "Shipping"
998
+ msgstr ""
999
+
1000
+ #: includes/class-wcj-checkout-custom-fields.php:838
1001
+ msgid "Order Notes"
1002
+ msgstr ""
1003
+
1004
+ #: includes/class-wcj-checkout-custom-fields.php:839
1005
+ msgid "Account"
1006
+ msgstr ""
1007
+
1008
+ #: includes/class-wcj-checkout-custom-fields.php:850
1009
+ #: includes/class-wcj-eu-vat-number.php:324
1010
+ msgid "Wide"
1011
+ msgstr ""
1012
+
1013
+ #: includes/class-wcj-checkout-custom-fields.php:851
1014
+ #: includes/class-wcj-eu-vat-number.php:325
1015
+ msgid "First"
1016
+ msgstr ""
1017
+
1018
+ #: includes/class-wcj-checkout-custom-fields.php:852
1019
+ #: includes/class-wcj-eu-vat-number.php:326
1020
+ msgid "Last"
1021
+ msgstr ""
1022
+
1023
+ #: includes/class-wcj-checkout-custom-fields.php:858
1024
+ msgid "clear"
1025
+ msgstr ""
1026
+
1027
+ #: includes/class-wcj-checkout-custom-fields.php:867
1028
+ msgid ""
1029
+ "Show this field only if there is a product of selected category in cart."
1030
+ msgstr ""
1031
+
1032
+ #: includes/class-wcj-checkout-custom-fields.php:877
1033
+ msgid "products"
1034
+ msgstr ""
1035
+
1036
+ #: includes/class-wcj-checkout-custom-fields.php:878
1037
+ msgid "Show this field only if there is a selected product in cart."
1038
+ msgstr ""
1039
+
1040
+ #: includes/class-wcj-checkout-custom-info.php:26
1041
+ msgid "Checkout Custom Info"
1042
+ msgstr ""
1043
+
1044
+ #: includes/class-wcj-checkout-custom-info.php:27
1045
+ msgid "Add custom info to WooCommerce checkout page."
1046
+ msgstr ""
1047
+
1048
+ #: includes/class-wcj-checkout-custom-info.php:70
1049
+ msgid "Checkout Custom Info Blocks"
1050
+ msgstr ""
1051
+
1052
+ #: includes/class-wcj-checkout-custom-info.php:108
1053
+ #: includes/class-wcj-checkout-files-upload.php:546
1054
+ #: includes/class-wcj-empty-cart-button.php:115
1055
+ #: includes/class-wcj-shipping.php:330
1056
+ msgid "Before checkout form"
1057
+ msgstr ""
1058
+
1059
+ #: includes/class-wcj-checkout-custom-info.php:109
1060
+ #: includes/class-wcj-empty-cart-button.php:116
1061
+ #: includes/class-wcj-shipping.php:331
1062
+ msgid "Before customer details"
1063
+ msgstr ""
1064
+
1065
+ #: includes/class-wcj-checkout-custom-info.php:112
1066
+ #: includes/class-wcj-empty-cart-button.php:119
1067
+ #: includes/class-wcj-shipping.php:334
1068
+ msgid "After customer details"
1069
+ msgstr ""
1070
+
1071
+ #: includes/class-wcj-checkout-custom-info.php:113
1072
+ #: includes/class-wcj-empty-cart-button.php:120
1073
+ #: includes/class-wcj-shipping.php:335
1074
+ msgid "Before order review"
1075
+ msgstr ""
1076
+
1077
+ #: includes/class-wcj-checkout-custom-info.php:114
1078
+ #: includes/class-wcj-empty-cart-button.php:121
1079
+ #: includes/class-wcj-shipping.php:336
1080
+ msgid "Order review"
1081
+ msgstr ""
1082
+
1083
+ #: includes/class-wcj-checkout-custom-info.php:115
1084
+ #: includes/class-wcj-empty-cart-button.php:122
1085
+ #: includes/class-wcj-shipping.php:337
1086
+ msgid "After order review"
1087
+ msgstr ""
1088
+
1089
+ #: includes/class-wcj-checkout-custom-info.php:116
1090
+ #: includes/class-wcj-checkout-files-upload.php:547
1091
+ #: includes/class-wcj-empty-cart-button.php:123
1092
+ #: includes/class-wcj-shipping.php:338
1093
+ msgid "After checkout form"
1094
+ msgstr ""
1095
+
1096
+ #: includes/class-wcj-checkout-files-upload.php:28
1097
+ msgid "Checkout Files Upload"
1098
+ msgstr ""
1099
+
1100
+ #: includes/class-wcj-checkout-files-upload.php:29
1101
+ msgid "Let customers upload files on (or after) WooCommerce checkout."
1102
+ msgstr ""
1103
+
1104
+ #: includes/class-wcj-checkout-files-upload.php:68
1105
+ #: includes/class-wcj-checkout-files-upload.php:528
1106
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:52
1107
+ msgid "File"
1108
+ msgstr ""
1109
+
1110
+ #: includes/class-wcj-checkout-files-upload.php:90
1111
+ #: includes/class-wcj-checkout-files-upload.php:613
1112
+ msgid "File is required!"
1113
+ msgstr ""
1114
+
1115
+ #: includes/class-wcj-checkout-files-upload.php:100
1116
+ #: includes/class-wcj-checkout-files-upload.php:232
1117
+ #: includes/class-wcj-checkout-files-upload.php:606
1118
+ msgid "Wrong file type: \"%s\"!"
1119
+ msgstr ""
1120
+
1121
+ #: includes/class-wcj-checkout-files-upload.php:120
1122
+ msgid "Uploaded Files"
1123
+ msgstr ""
1124
+
1125
+ #: includes/class-wcj-checkout-files-upload.php:204
1126
+ #: includes/class-wcj-checkout-files-upload.php:212
1127
+ #: includes/class-wcj-checkout-files-upload.php:636
1128
+ msgid "File \"%s\" was successfully removed."
1129
+ msgstr ""
1130
+
1131
+ #: includes/class-wcj-checkout-files-upload.php:244
1132
+ #: includes/class-wcj-checkout-files-upload.php:621
1133
+ msgid "File \"%s\" was successfully uploaded."
1134
+ msgstr ""
1135
+
1136
+ #: includes/class-wcj-checkout-files-upload.php:252
1137
+ #: includes/class-wcj-checkout-files-upload.php:628
1138
+ msgid "Please select file to upload!"
1139
+ msgstr ""
1140
+
1141
+ #: includes/class-wcj-checkout-files-upload.php:408
1142
+ #: includes/class-wcj-checkout-files-upload.php:409
1143
+ #: includes/class-wcj-checkout-files-upload.php:591
1144
+ msgid "Upload"
1145
+ msgstr ""
1146
+
1147
+ #: includes/class-wcj-checkout-files-upload.php:423
1148
+ #: includes/class-wcj-checkout-files-upload.php:424
1149
+ #: includes/class-wcj-checkout-files-upload.php:598
1150
+ msgid "Remove"
1151
+ msgstr ""
1152
+
1153
+ #: includes/class-wcj-checkout-files-upload.php:507
1154
+ #: includes/class-wcj-eu-vat-number.php:273
1155
+ #: includes/class-wcj-multicurrency-product-base-price.php:226
1156
+ #: includes/class-wcj-multicurrency.php:332
1157
+ #: includes/class-wcj-payment-gateways-icons.php:95
1158
+ #: includes/class-wcj-payment-gateways-per-category.php:166
1159
+ #: includes/class-wcj-price-by-user-role.php:432
1160
+ #: includes/class-wcj-related-products.php:98
1161
+ #: includes/class-wcj-wholesale-price.php:278
1162
+ msgid "Options"
1163
+ msgstr ""
1164
+
1165
+ #: includes/class-wcj-checkout-files-upload.php:512
1166
+ msgid "Total Files"
1167
+ msgstr ""
1168
+
1169
+ #: includes/class-wcj-checkout-files-upload.php:548
1170
+ msgid "Do not add on checkout"
1171
+ msgstr ""
1172
+
1173
+ #: includes/class-wcj-checkout-files-upload.php:553
1174
+ msgid "Position order"
1175
+ msgstr ""
1176
+
1177
+ #: includes/class-wcj-checkout-files-upload.php:562
1178
+ msgid "Add to Thank You page"
1179
+ msgstr ""
1180
+
1181
+ #: includes/class-wcj-checkout-files-upload.php:568
1182
+ msgid "Add to My Account page"
1183
+ msgstr ""
1184
+
1185
+ #: includes/class-wcj-checkout-files-upload.php:573
1186
+ #: includes/class-wcj-order-custom-statuses.php:190
1187
+ #: includes/class-wcj-order-custom-statuses.php:214
1188
+ msgid "Label"
1189
+ msgstr ""
1190
+
1191
+ #: includes/class-wcj-checkout-files-upload.php:574
1192
+ msgid "Leave blank to disable label"
1193
+ msgstr ""
1194
+
1195
+ #: includes/class-wcj-checkout-files-upload.php:576
1196
+ msgid "Please select file to upload"
1197
+ msgstr ""
1198
+
1199
+ #: includes/class-wcj-checkout-files-upload.php:581
1200
+ msgid "Accepted file types"
1201
+ msgstr ""
1202
+
1203
+ #: includes/class-wcj-checkout-files-upload.php:582
1204
+ msgid ""
1205
+ "Accepted file types. E.g.: \".jpg,.jpeg,.png\". Leave blank to accept all "
1206
+ "files"
1207
+ msgstr ""
1208
+
1209
+ #: includes/class-wcj-checkout-files-upload.php:589
1210
+ msgid "Label: Upload button"
1211
+ msgstr ""
1212
+
1213
+ #: includes/class-wcj-checkout-files-upload.php:596
1214
+ msgid "Label: Remove button"
1215
+ msgstr ""
1216
+
1217
+ #: includes/class-wcj-checkout-files-upload.php:603
1218
+ msgid "Notice: Wrong file type"
1219
+ msgstr ""
1220
+
1221
+ #: includes/class-wcj-checkout-files-upload.php:604
1222
+ #: includes/class-wcj-checkout-files-upload.php:619
1223
+ #: includes/class-wcj-checkout-files-upload.php:634
1224
+ msgid "%s will be replaced with file name"
1225
+ msgstr ""
1226
+
1227
+ #: includes/class-wcj-checkout-files-upload.php:611
1228
+ msgid "Notice: File is required"
1229
+ msgstr ""
1230
+
1231
+ #: includes/class-wcj-checkout-files-upload.php:618
1232
+ msgid "Notice: File was successfully uploaded"
1233
+ msgstr ""
1234
+
1235
+ #: includes/class-wcj-checkout-files-upload.php:626
1236
+ msgid "Notice: No file selected"
1237
+ msgstr ""
1238
+
1239
+ #: includes/class-wcj-checkout-files-upload.php:633
1240
+ msgid "Notice: File was successfully removed"
1241
+ msgstr ""
1242
+
1243
+ #: includes/class-wcj-checkout-files-upload.php:642
1244
+ msgid "PRODUCTS to show this field"
1245
+ msgstr ""
1246
+
1247
+ #: includes/class-wcj-checkout-files-upload.php:643
1248
+ msgid ""
1249
+ "To show this field only if at least one selected product is in cart, enter "
1250
+ "products here. Leave blank to show for all products."
1251
+ msgstr ""
1252
+
1253
+ #: includes/class-wcj-checkout-files-upload.php:652
1254
+ msgid "CATEGORIES to show this field"
1255
+ msgstr ""
1256
+
1257
+ #: includes/class-wcj-checkout-files-upload.php:653
1258
+ msgid ""
1259
+ "To show this field only if at least one product of selected category is in "
1260
+ "cart, enter categories here. Leave blank to show for all products."
1261
+ msgstr ""
1262
+
1263
+ #: includes/class-wcj-checkout-files-upload.php:662
1264
+ msgid "TAGS to show this field"
1265
+ msgstr ""
1266
+
1267
+ #: includes/class-wcj-checkout-files-upload.php:663
1268
+ msgid ""
1269
+ "To show this field only if at least one product of selected tag is in cart, "
1270
+ "enter tags here. Leave blank to show for all products."
1271
+ msgstr ""
1272
+
1273
+ #: includes/class-wcj-crowdfunding.php:26
1274
+ msgid "Crowdfunding"
1275
+ msgstr ""
1276
+
1277
+ #: includes/class-wcj-crowdfunding.php:27
1278
+ msgid "Add crowdfunding products to WooCommerce."
1279
+ msgstr ""
1280
+
1281
+ #: includes/class-wcj-crowdfunding.php:67
1282
+ msgid "Goal"
1283
+ msgstr ""
1284
+
1285
+ #: includes/class-wcj-crowdfunding.php:73
1286
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:71
1287
+ msgid "Start Date"
1288
+ msgstr ""
1289
+
1290
+ #: includes/class-wcj-crowdfunding.php:79
1291
+ msgid "Deadline"
1292
+ msgstr ""
1293
+
1294
+ #: includes/class-wcj-crowdfunding.php:90
1295
+ msgid "When enabled, module will add Crowdfunding metabox to product edit."
1296
+ msgstr ""
1297
+
1298
+ #: includes/class-wcj-crowdfunding.php:92
1299
+ msgid "To add crowdfunding info to the product, use these shortcodes:"
1300
+ msgstr ""
1301
+
1302
+ #: includes/class-wcj-crowdfunding.php:100
1303
+ msgid "Shortcodes could be used in \"Product Info\" module."
1304
+ msgstr ""
1305
+
1306
+ #: includes/class-wcj-crowdfunding.php:102
1307
+ msgid "To change add to cart button labels use \"Add to Cart Labels\" module."
1308
+ msgstr ""
1309
+
1310
+ #: includes/class-wcj-currencies.php:25
1311
+ msgid "Currencies"
1312
+ msgstr ""
1313
+
1314
+ #: includes/class-wcj-currencies.php:26
1315
+ msgid ""
1316
+ "Add all world currencies to your WooCommerce store; change currency symbol."
1317
+ msgstr ""
1318
+
1319
+ #: includes/class-wcj-currencies.php:74
1320
+ msgid "Booster: Currency Symbol"
1321
+ msgstr ""
1322
+
1323
+ #: includes/class-wcj-currencies.php:75
1324
+ msgid "This sets the currency symbol."
1325
+ msgstr ""
1326
+
1327
+ #: includes/class-wcj-currencies.php:99
1328
+ msgid "Currency Symbol Options"
1329
+ msgstr ""
1330
+
1331
+ #: includes/class-wcj-currencies.php:105
1332
+ msgid "Hide Currency Symbol"
1333
+ msgstr ""
1334
+
1335
+ #: includes/class-wcj-currencies.php:106
1336
+ #: includes/class-wcj-pdf-invoicing.php:220
1337
+ #: includes/class-wcj-product-images.php:192
1338
+ #: includes/class-wcj-product-images.php:218
1339
+ #: includes/class-wcj-product-images.php:226
1340
+ #: includes/class-wcj-product-images.php:243
1341
+ #: includes/class-wcj-related-products.php:151
1342
+ #: includes/class-wcj-shipping-calculator.php:150
1343
+ msgid "Hide"
1344
+ msgstr ""
1345
+
1346
+ #: includes/class-wcj-currencies.php:107
1347
+ msgid "Default: no."
1348
+ msgstr ""
1349
+
1350
+ #: includes/class-wcj-currencies.php:133
1351
+ msgid "Custom Currencies"
1352
+ msgstr ""
1353
+
1354
+ #: includes/class-wcj-currencies.php:139
1355
+ msgid "Total Custom Currencies"
1356
+ msgstr ""
1357
+
1358
+ #: includes/class-wcj-currencies.php:151
1359
+ msgid "Custom Currency"
1360
+ msgstr ""
1361
+
1362
+ #: includes/class-wcj-currencies.php:152
1363
+ msgid "Currency Name (required)"
1364
+ msgstr ""
1365
+
1366
+ #: includes/class-wcj-currencies.php:160
1367
+ msgid "Currency Code (required)"
1368
+ msgstr ""
1369
+
1370
+ #: includes/class-wcj-currencies.php:168
1371
+ msgid "Currency Symbol"
1372
+ msgstr ""
1373
+
1374
+ #: includes/class-wcj-currency-exchange-rates.php:26
1375
+ msgid "Currency Exchange Rates"
1376
+ msgstr ""
1377
+
1378
+ #: includes/class-wcj-currency-exchange-rates.php:27
1379
+ msgid "Automatic currency exchange rates for WooCommerce."
1380
+ msgstr ""
1381
+
1382
+ #: includes/class-wcj-currency-exchange-rates.php:80
1383
+ #: includes/class-wcj-multicurrency-product-base-price.php:295
1384
+ #: includes/class-wcj-multicurrency.php:417
1385
+ #: includes/class-wcj-payment-gateways-currency.php:275
1386
+ #: includes/class-wcj-price-by-country.php:287
1387
+ msgid "Grab %s rate from Yahoo.com"
1388
+ msgstr ""
1389
+
1390
+ #: includes/class-wcj-currency-exchange-rates.php:96
1391
+ #: includes/class-wcj-price-by-country.php:247
1392
+ msgid "Exchange Rates"
1393
+ msgstr ""
1394
+
1395
+ #: includes/class-wcj-currency-exchange-rates.php:98
1396
+ msgid ""
1397
+ "All currencies from all <strong>enabled</strong> modules will be "
1398
+ "automatically added to the list."
1399
+ msgstr ""
1400
+
1401
+ #: includes/class-wcj-currency-exchange-rates.php:103
1402
+ #: includes/class-wcj-multicurrency-product-base-price.php:231
1403
+ #: includes/class-wcj-multicurrency.php:337
1404
+ #: includes/class-wcj-payment-gateways-currency.php:282
1405
+ #: includes/class-wcj-price-by-country.php:250
1406
+ msgid "Exchange Rates Updates"
1407
+ msgstr ""
1408
+
1409
+ #: includes/class-wcj-currency-exchange-rates.php:109
1410
+ #: includes/exchange-rates/class-wcj-exchange-rates-crons.php:27
1411
+ msgid "Update Every Minute"
1412
+ msgstr ""
1413
+
1414
+ #: includes/class-wcj-currency-exchange-rates.php:110
1415
+ #: includes/exchange-rates/class-wcj-exchange-rates-crons.php:28
1416
+ msgid "Update Hourly"
1417
+ msgstr ""
1418
+
1419
+ #: includes/class-wcj-currency-exchange-rates.php:111
1420
+ #: includes/exchange-rates/class-wcj-exchange-rates-crons.php:29
1421
+ msgid "Update Twice Daily"
1422
+ msgstr ""
1423
+
1424
+ #: includes/class-wcj-currency-exchange-rates.php:112
1425
+ #: includes/exchange-rates/class-wcj-exchange-rates-crons.php:30
1426
+ msgid "Update Daily"
1427
+ msgstr ""
1428
+
1429
+ #: includes/class-wcj-currency-exchange-rates.php:113
1430
+ #: includes/exchange-rates/class-wcj-exchange-rates-crons.php:31
1431
+ msgid "Update Weekly"
1432
+ msgstr ""
1433
+
1434
+ #: includes/class-wcj-currency-external-products.php:25
1435
+ msgid "Currency for External Products"
1436
+ msgstr ""
1437
+
1438
+ #: includes/class-wcj-currency-external-products.php:26
1439
+ msgid "Set different currency for external WooCommerce products."
1440
+ msgstr ""
1441
+
1442
+ #: includes/class-wcj-currency-external-products.php:73
1443
+ msgid "Currency for External Products Options"
1444
+ msgstr ""
1445
+
1446
+ #: includes/class-wcj-currency-external-products.php:79
1447
+ #: includes/class-wcj-multicurrency-product-base-price.php:279
1448
+ #: includes/class-wcj-multicurrency.php:401
1449
+ #: includes/class-wcj-price-by-country.php:237
1450
+ msgid "Currency"
1451
+ msgstr ""
1452
+
1453
+ #: includes/class-wcj-currency-external-products.php:80
1454
+ msgid "Set currency for all external products."
1455
+ msgstr ""
1456
+
1457
+ #: includes/class-wcj-emails.php:25
1458
+ msgid "Emails"
1459
+ msgstr ""
1460
+
1461
+ #: includes/class-wcj-emails.php:26
1462
+ msgid ""
1463
+ "Add custom emails. Add another email recipient(s) to all WooCommerce emails."
1464
+ msgstr ""
1465
+
1466
+ #: includes/class-wcj-emails.php:137
1467
+ msgid "Booster: Email Forwarding Options"
1468
+ msgstr ""
1469
+
1470
+ #: includes/class-wcj-emails.php:138
1471
+ msgid "Email Forwarding Options"
1472
+ msgstr ""
1473
+
1474
+ #: includes/class-wcj-emails.php:140
1475
+ msgid ""
1476
+ "This section lets you add another email recipient(s) to all WooCommerce "
1477
+ "emails. Leave blank to disable."
1478
+ msgstr ""
1479
+
1480
+ #: includes/class-wcj-emails.php:144
1481
+ msgid "Cc Email"
1482
+ msgstr ""
1483
+
1484
+ #: includes/class-wcj-emails.php:145
1485
+ msgid "Cc to email, e.g. youremail@yourdomain.com. Leave blank to disable."
1486
+ msgstr ""
1487
+
1488
+ #: includes/class-wcj-emails.php:151
1489
+ msgid "Bcc Email"
1490
+ msgstr ""
1491
+
1492
+ #: includes/class-wcj-emails.php:152
1493
+ msgid "Bcc to email, e.g. youremail@yourdomain.com. Leave blank to disable."
1494
+ msgstr ""
1495
+
1496
+ #: includes/class-wcj-emails.php:188
1497
+ msgid "Custom Emails"
1498
+ msgstr ""
1499
+
1500
+ #: includes/class-wcj-emails.php:191
1501
+ msgid ""
1502
+ "This section lets you set number of custom emails to add. After setting the "
1503
+ "number, visit \"WooCommerce > Settings > Emails\" to set each email options."
1504
+ msgstr ""
1505
+
1506
+ #: includes/class-wcj-emails.php:194
1507
+ msgid "Custom Emails Number"
1508
+ msgstr ""
1509
+
1510
+ #: includes/class-wcj-emails.php:205
1511
+ msgid "Admin Title Custom Email"
1512
+ msgstr ""
1513
+
1514
+ #: includes/class-wcj-emails.php:207 includes/class-wcj-shipping.php:192
1515
+ #: includes/emails/class-wc-email-wcj-custom.php:30
1516
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:127
1517
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:40
1518
+ msgid "Custom"
1519
+ msgstr ""
1520
+
1521
+ #: includes/class-wcj-empty-cart-button.php:26
1522
+ msgid "Empty Cart Button"
1523
+ msgstr ""
1524
+
1525
+ #: includes/class-wcj-empty-cart-button.php:27
1526
+ msgid "Add and customize \"Empty Cart\" button to cart page."
1527
+ msgstr ""
1528
+
1529
+ #: includes/class-wcj-empty-cart-button.php:74
1530
+ msgid "Empty Cart Options"
1531
+ msgstr ""
1532
+
1533
+ #: includes/class-wcj-empty-cart-button.php:76
1534
+ msgid ""
1535
+ "This section lets you add and customize \"Empty Cart\" button to cart page."
1536
+ msgstr ""
1537
+
1538
+ #: includes/class-wcj-empty-cart-button.php:80
1539
+ msgid "Empty Cart Button Text"
1540
+ msgstr ""
1541
+
1542
+ #: includes/class-wcj-empty-cart-button.php:88
1543
+ msgid "Wrapping DIV style"
1544
+ msgstr ""
1545
+
1546
+ #: includes/class-wcj-empty-cart-button.php:89
1547
+ msgid "Style for the button's div. Default is \"float: right;\""
1548
+ msgstr ""
1549
+
1550
+ #: includes/class-wcj-empty-cart-button.php:95
1551
+ msgid "Button position on the Cart page"
1552
+ msgstr ""
1553
+
1554
+ #: includes/class-wcj-empty-cart-button.php:100
1555
+ msgid "After Cart"
1556
+ msgstr ""
1557
+
1558
+ #: includes/class-wcj-empty-cart-button.php:101
1559
+ msgid "Before Cart"
1560
+ msgstr ""
1561
+
1562
+ #: includes/class-wcj-empty-cart-button.php:102
1563
+ msgid "After Proceed to Checkout button"
1564
+ msgstr ""
1565
+
1566
+ #: includes/class-wcj-empty-cart-button.php:103
1567
+ msgid "After Cart Totals"
1568
+ msgstr ""
1569
+
1570
+ #: includes/class-wcj-empty-cart-button.php:109
1571
+ msgid "Button position on the Checkout page"
1572
+ msgstr ""
1573
+
1574
+ #: includes/class-wcj-empty-cart-button.php:114
1575
+ msgid "Do not add"
1576
+ msgstr ""
1577
+
1578
+ #: includes/class-wcj-empty-cart-button.php:129
1579
+ msgid "Confirmation"
1580
+ msgstr ""
1581
+
1582
+ #: includes/class-wcj-empty-cart-button.php:134
1583
+ msgid "No confirmation"
1584
+ msgstr ""
1585
+
1586
+ #: includes/class-wcj-empty-cart-button.php:135
1587
+ msgid "Confirm by pop up box"
1588
+ msgstr ""
1589
+
1590
+ #: includes/class-wcj-empty-cart-button.php:139
1591
+ msgid "Confirmation Text (if enabled)"
1592
+ msgstr ""
1593
+
1594
+ #: includes/class-wcj-empty-cart-button.php:141
1595
+ msgid "Are you sure?"
1596
+ msgstr ""
1597
+
1598
+ #: includes/class-wcj-eu-vat-number.php:26
1599
+ #: includes/class-wcj-eu-vat-number.php:72
1600
+ #: includes/class-wcj-eu-vat-number.php:280
1601
+ #: includes/class-wcj-eu-vat-number.php:287
1602
+ msgid "EU VAT Number"
1603
+ msgstr ""
1604
+
1605
+ #: includes/class-wcj-eu-vat-number.php:27
1606
+ msgid ""
1607
+ "Collect and validate EU VAT numbers on WooCommerce checkout. Automatically "
1608
+ "disable VAT for valid numbers. Add all EU countries VAT standard rates to "
1609
+ "WooCommerce."
1610
+ msgstr ""
1611
+
1612
+ #: includes/class-wcj-eu-vat-number.php:33
1613
+ msgid "EU Countries VAT Rates"
1614
+ msgstr ""
1615
+
1616
+ #: includes/class-wcj-eu-vat-number.php:34
1617
+ msgid "Add all EU countries VAT standard rates to WooCommerce."
1618
+ msgstr ""
1619
+
1620
+ #: includes/class-wcj-eu-vat-number.php:216
1621
+ #: includes/class-wcj-eu-vat-number.php:340
1622
+ msgid "<strong>EU VAT Number</strong> is not valid."
1623
+ msgstr ""
1624
+
1625
+ #: includes/class-wcj-eu-vat-number.php:278
1626
+ msgid "Field Label"
1627
+ msgstr ""
1628
+
1629
+ #: includes/class-wcj-eu-vat-number.php:285
1630
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:213
1631
+ msgid "Placeholder"
1632
+ msgstr ""
1633
+
1634
+ #: includes/class-wcj-eu-vat-number.php:312
1635
+ msgid "Clear"
1636
+ msgstr ""
1637
+
1638
+ #: includes/class-wcj-eu-vat-number.php:319
1639
+ msgid "Class"
1640
+ msgstr ""
1641
+
1642
+ #: includes/class-wcj-eu-vat-number.php:330
1643
+ msgid "Validate"
1644
+ msgstr ""
1645
+
1646
+ #: includes/class-wcj-eu-vat-number.php:338
1647
+ msgid "Message on not valid"
1648
+ msgstr ""
1649
+
1650
+ #: includes/class-wcj-eu-vat-number.php:345
1651
+ msgid "Exempt VAT for Valid Numbers"
1652
+ msgstr ""
1653
+
1654
+ #: includes/class-wcj-eu-vat-number.php:352
1655
+ msgid "Preserve VAT in Base Country"
1656
+ msgstr ""
1657
+
1658
+ #: includes/class-wcj-eu-vat-number.php:370
1659
+ msgid "Check for IP Location Country"
1660
+ msgstr ""
1661
+
1662
+ #: includes/class-wcj-general.php:25 includes/class-wcj-pdf-invoicing.php:26
1663
+ msgid "General"
1664
+ msgstr ""
1665
+
1666
+ #: includes/class-wcj-general.php:26
1667
+ msgid ""
1668
+ "Separate custom CSS for front and back end. Shortcodes in Wordpress text "
1669
+ "widgets."
1670
+ msgstr ""
1671
+
1672
+ #: includes/class-wcj-general.php:32
1673
+ msgid "Products Atts"
1674
+ msgstr ""
1675
+
1676
+ #: includes/class-wcj-general.php:33
1677
+ msgid "All Products and All Attributes."
1678
+ msgstr ""
1679
+
1680
+ #: includes/class-wcj-general.php:36
1681
+ msgid "Export Customers"
1682
+ msgstr ""
1683
+
1684
+ #: includes/class-wcj-general.php:37
1685
+ msgid "Export Customers."
1686
+ msgstr ""
1687
+
1688
+ #: includes/class-wcj-general.php:40
1689
+ msgid "Export Customers from Orders"
1690
+ msgstr ""
1691
+
1692
+ #: includes/class-wcj-general.php:41
1693
+ msgid "Export Customers (extracted from orders)."
1694
+ msgstr ""
1695
+
1696
+ #: includes/class-wcj-general.php:44
1697
+ msgid "Export Orders"
1698
+ msgstr ""
1699
+
1700
+ #: includes/class-wcj-general.php:45
1701
+ msgid "Export Orders."
1702
+ msgstr ""
1703
+
1704
+ #: includes/class-wcj-general.php:135
1705
+ msgid "Download CSV"
1706
+ msgstr ""
1707
+
1708
+ #: includes/class-wcj-general.php:179
1709
+ msgid "Customer ID"
1710
+ msgstr ""
1711
+
1712
+ #: includes/class-wcj-general.php:180 includes/class-wcj-general.php:201
1713
+ msgid "Customer Email"
1714
+ msgstr ""
1715
+
1716
+ #: includes/class-wcj-general.php:181 includes/class-wcj-general.php:202
1717
+ msgid "Customer First Name"
1718
+ msgstr ""
1719
+
1720
+ #: includes/class-wcj-general.php:182 includes/class-wcj-general.php:203
1721
+ msgid "Customer Last Name"
1722
+ msgstr ""
1723
+
1724
+ #: includes/class-wcj-general.php:200
1725
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:196
1726
+ msgid "Order ID"
1727
+ msgstr ""
1728
+
1729
+ #: includes/class-wcj-general.php:204
1730
+ msgid "Order Date"
1731
+ msgstr ""
1732
+
1733
+ #: includes/class-wcj-general.php:238
1734
+ msgid "Nr."
1735
+ msgstr ""
1736
+
1737
+ #: includes/class-wcj-general.php:240
1738
+ msgid "First Name"
1739
+ msgstr ""
1740
+
1741
+ #: includes/class-wcj-general.php:241
1742
+ msgid "Last Name"
1743
+ msgstr ""
1744
+
1745
+ #: includes/class-wcj-general.php:242
1746
+ msgid "Last Order Date"
1747
+ msgstr ""
1748
+
1749
+ #: includes/class-wcj-general.php:300 includes/class-wcj-general.php:342
1750
+ #: includes/class-wcj-product-bulk-price-converter.php:149
1751
+ #: includes/class-wcj-sku.php:195
1752
+ #: includes/reports/wcj-class-reports-sales.php:132
1753
+ #: includes/reports/wcj-class-reports-stock.php:319
1754
+ msgid "Product"
1755
+ msgstr ""
1756
+
1757
+ #: includes/class-wcj-general.php:301 includes/class-wcj-general.php:343
1758
+ #: includes/reports/wcj-class-reports-stock.php:320
1759
+ msgid "Category"
1760
+ msgstr ""
1761
+
1762
+ #: includes/class-wcj-general.php:363
1763
+ msgid "Total Products:"
1764
+ msgstr ""
1765
+
1766
+ #: includes/class-wcj-general.php:411
1767
+ msgid "Shortcodes Options"
1768
+ msgstr ""
1769
+
1770
+ #: includes/class-wcj-general.php:417
1771
+ msgid "Enable All Shortcodes in WordPress Text Widgets"
1772
+ msgstr ""
1773
+
1774
+ #: includes/class-wcj-general.php:418
1775
+ msgid ""
1776
+ "This will enable all (including non Booster's) shortcodes in WordPress text "
1777
+ "widgets."
1778
+ msgstr ""
1779
+
1780
+ #: includes/class-wcj-general.php:426
1781
+ msgid "Disable Booster's Shortcodes"
1782
+ msgstr ""
1783
+
1784
+ #: includes/class-wcj-general.php:427
1785
+ msgid "Disable all Booster's shortcodes (for memory saving)."
1786
+ msgstr ""
1787
+
1788
+ #: includes/class-wcj-general.php:428 includes/class-wcj-general.php:494
1789
+ #: includes/class-wcj-general.php:510 includes/class-wcj-general.php:518
1790
+ #: includes/class-wcj-general.php:526 includes/class-wcj-general.php:534
1791
+ msgid "Disable"
1792
+ msgstr ""
1793
+
1794
+ #: includes/class-wcj-general.php:440
1795
+ msgid "Custom CSS Options"
1796
+ msgstr ""
1797
+
1798
+ #: includes/class-wcj-general.php:442
1799
+ msgid "Another custom CSS, if you need one."
1800
+ msgstr ""
1801
+
1802
+ #: includes/class-wcj-general.php:447
1803
+ msgid "Custom CSS - Front end (Customers)"
1804
+ msgstr ""
1805
+
1806
+ #: includes/class-wcj-general.php:455
1807
+ msgid "Custom CSS - Back end (Admin)"
1808
+ msgstr ""
1809
+
1810
+ #: includes/class-wcj-general.php:468 includes/class-wcj-general.php:474
1811
+ msgid "Product Revisions"
1812
+ msgstr ""
1813
+
1814
+ #: includes/class-wcj-general.php:487
1815
+ msgid "Advanced Options"
1816
+ msgstr ""
1817
+
1818
+ #: includes/class-wcj-general.php:493
1819
+ msgid "Disable Loading Datepicker/Weekpicker CSS"
1820
+ msgstr ""
1821
+
1822
+ #: includes/class-wcj-general.php:501
1823
+ msgid "Datepicker/Weekpicker CSS"
1824
+ msgstr ""
1825
+
1826
+ #: includes/class-wcj-general.php:509
1827
+ msgid "Disable Loading Datepicker/Weekpicker JavaScript"
1828
+ msgstr ""
1829
+
1830
+ #: includes/class-wcj-general.php:517
1831
+ msgid "Disable Loading Timepicker CSS"
1832
+ msgstr ""
1833
+
1834
+ #: includes/class-wcj-general.php:525
1835
+ msgid "Disable Loading Timepicker JavaScript"
1836
+ msgstr ""
1837
+
1838
+ #: includes/class-wcj-general.php:533
1839
+ msgid "Disable Saving PDFs in PHP directory for temporary files"
1840
+ msgstr ""
1841
+
1842
+ #: includes/class-wcj-mini-cart.php:26
1843
+ msgid "Mini Cart"
1844
+ msgstr ""
1845
+
1846
+ #: includes/class-wcj-mini-cart.php:27
1847
+ msgid "Customize WooCommerce mini cart widget."
1848
+ msgstr ""
1849
+
1850
+ #: includes/class-wcj-mini-cart.php:74
1851
+ msgid "Mini Cart Custom Info Blocks"
1852
+ msgstr ""
1853
+
1854
+ #: includes/class-wcj-mini-cart.php:119 includes/class-wcj-shipping.php:292
1855
+ msgid "Before mini cart"
1856
+ msgstr ""
1857
+
1858
+ #: includes/class-wcj-mini-cart.php:120 includes/class-wcj-shipping.php:293
1859
+ msgid "Before buttons"
1860
+ msgstr ""
1861
+
1862
+ #: includes/class-wcj-mini-cart.php:121 includes/class-wcj-shipping.php:294
1863
+ msgid "After mini cart"
1864
+ msgstr ""
1865
+
1866
+ #: includes/class-wcj-more-button-labels.php:26
1867
+ msgid "More Button Labels"
1868
+ msgstr ""
1869
+
1870
+ #: includes/class-wcj-more-button-labels.php:27
1871
+ msgid "Set WooCommerce \"Place order\" button label."
1872
+ msgstr ""
1873
+
1874
+ #: includes/class-wcj-more-button-labels.php:52
1875
+ msgid "Place order (Order now) Button"
1876
+ msgstr ""
1877
+
1878
+ #: includes/class-wcj-more-button-labels.php:59
1879
+ msgid "leave blank for WooCommerce default"
1880
+ msgstr ""
1881
+
1882
+ #: includes/class-wcj-more-button-labels.php:60
1883
+ msgid "Button on the checkout page."
1884
+ msgstr ""
1885
+
1886
+ #: includes/class-wcj-multicurrency-product-base-price.php:27
1887
+ msgid "Multicurrency Product Base Price"
1888
+ msgstr ""
1889
+
1890
+ #: includes/class-wcj-multicurrency-product-base-price.php:28
1891
+ msgid "Enter prices for WooCommerce products in different currencies."
1892
+ msgstr ""
1893
+
1894
+ #: includes/class-wcj-multicurrency-product-base-price.php:175
1895
+ msgid "Product Currency"
1896
+ msgstr ""
1897
+
1898
+ #: includes/class-wcj-multicurrency-product-base-price.php:236
1899
+ #: includes/class-wcj-multicurrency.php:342
1900
+ #: includes/class-wcj-payment-gateways-currency.php:287
1901
+ #: includes/class-wcj-price-by-country.php:255
1902
+ msgid "Enter Rates Manually"
1903
+ msgstr ""
1904
+
1905
+ #: includes/class-wcj-multicurrency-product-base-price.php:237
1906
+ #: includes/class-wcj-multicurrency.php:343
1907
+ #: includes/class-wcj-payment-gateways-currency.php:288
1908
+ #: includes/class-wcj-price-by-country.php:256
1909
+ msgid "Automatically via Currency Exchange Rates module"
1910
+ msgstr ""
1911
+
1912
+ #: includes/class-wcj-multicurrency-product-base-price.php:240
1913
+ #: includes/class-wcj-multicurrency.php:346
1914
+ #: includes/class-wcj-payment-gateways-currency.php:291
1915
+ #: includes/class-wcj-price-by-country.php:259
1916
+ msgid "Visit"
1917
+ msgstr ""
1918
+
1919
+ #: includes/class-wcj-multicurrency-product-base-price.php:240
1920
+ #: includes/class-wcj-multicurrency.php:346
1921
+ #: includes/class-wcj-payment-gateways-currency.php:291
1922
+ #: includes/class-wcj-price-by-country.php:259
1923
+ msgid "Currency Exchange Rates module"
1924
+ msgstr ""
1925
+
1926
+ #: includes/class-wcj-multicurrency-product-base-price.php:250
1927
+ #: includes/class-wcj-multicurrency.php:371
1928
+ msgid "Currencies Options"
1929
+ msgstr ""
1930
+
1931
+ #: includes/class-wcj-multicurrency-product-base-price.php:255
1932
+ #: includes/class-wcj-multicurrency.php:377
1933
+ msgid "Total Currencies"
1934
+ msgstr ""
1935
+
1936
+ #: includes/class-wcj-multicurrency.php:26
1937
+ msgid "Multicurrency (Currency Switcher)"
1938
+ msgstr ""
1939
+
1940
+ #: includes/class-wcj-multicurrency.php:27
1941
+ msgid "Add multiple currencies (currency switcher) to WooCommerce."
1942
+ msgstr ""
1943
+
1944
+ #: includes/class-wcj-multicurrency.php:76
1945
+ #: includes/class-wcj-price-by-user-role.php:162
1946
+ #: includes/price-by-country/class-wcj-price-by-country-local.php:129
1947
+ msgid "Regular Price"
1948
+ msgstr ""
1949
+
1950
+ #: includes/class-wcj-multicurrency.php:85
1951
+ #: includes/class-wcj-price-by-user-role.php:171
1952
+ #: includes/price-by-country/class-wcj-price-by-country-local.php:136
1953
+ msgid "Sale Price"
1954
+ msgstr ""
1955
+
1956
+ #: includes/class-wcj-multicurrency.php:318
1957
+ msgid ""
1958
+ "After setting currencies in the Currencies Options below, use <em>Booster - "
1959
+ "Multicurrency Switcher</em> widget, or <em>"
1960
+ "[wcj_currency_select_drop_down_list]</em> shortcode. If you want to insert "
1961
+ "switcher in your PHP code, just use <em>echo do_shortcode"
1962
+ "( '[wcj_currency_select_drop_down_list]' );</em>"
1963
+ msgstr ""
1964
+
1965
+ #: includes/class-wcj-multicurrency.php:352
1966
+ msgid "Multicurrency on per Product Basis"
1967
+ msgstr ""
1968
+
1969
+ #: includes/class-wcj-multicurrency.php:354
1970
+ #: includes/class-wcj-price-by-country.php:134
1971
+ msgid "This will add meta boxes in product edit."
1972
+ msgstr ""
1973
+
1974
+ #: includes/class-wcj-multicurrency.php:360
1975
+ msgid "Revert Currency to Default on Checkout"
1976
+ msgstr ""
1977
+
1978
+ #: includes/class-wcj-multicurrency.php:373
1979
+ msgid ""
1980
+ "One currency probably should be set to current (original) shop currency with "
1981
+ "an exchange rate of 1."
1982
+ msgstr ""
1983
+
1984
+ #: includes/class-wcj-old-slugs.php:25
1985
+ msgid "Old Slugs"
1986
+ msgstr ""
1987
+
1988
+ #: includes/class-wcj-old-slugs.php:26
1989
+ msgid "Remove old WooCommerce products slugs."
1990
+ msgstr ""
1991
+
1992
+ #: includes/class-wcj-old-slugs.php:32
1993
+ msgid "Remove Old Slugs"
1994
+ msgstr ""
1995
+
1996
+ #: includes/class-wcj-old-slugs.php:33 includes/class-wcj-old-slugs.php:90
1997
+ msgid "Tool removes old slugs/permalinks from database."
1998
+ msgstr ""
1999
+
2000
+ #: includes/class-wcj-old-slugs.php:89
2001
+ msgid "Booster - Remove Old Product Slugs"
2002
+ msgstr ""
2003
+
2004
+ #: includes/class-wcj-old-slugs.php:95
2005
+ msgid "Old products slugs found:"
2006
+ msgstr ""
2007
+
2008
+ #: includes/class-wcj-old-slugs.php:103
2009
+ msgid "None-products slugs found:"
2010
+ msgstr ""
2011
+
2012
+ #: includes/class-wcj-old-slugs.php:110
2013
+ msgid "No old slugs found."
2014
+ msgstr ""
2015
+
2016
+ #: includes/class-wcj-order-custom-statuses.php:26
2017
+ msgid "Order Custom Statuses"
2018
+ msgstr ""
2019
+
2020
+ #: includes/class-wcj-order-custom-statuses.php:27
2021
+ msgid "Custom statuses for WooCommerce orders."
2022
+ msgstr ""
2023
+
2024
+ #: includes/class-wcj-order-custom-statuses.php:33
2025
+ #: includes/class-wcj-order-custom-statuses.php:266
2026
+ msgid "Custom Statuses"
2027
+ msgstr ""
2028
+
2029
+ #: includes/class-wcj-order-custom-statuses.php:34
2030
+ msgid "Tool lets you add or delete any custom status for WooCommerce orders."
2031
+ msgstr ""
2032
+
2033
+ #: includes/class-wcj-order-custom-statuses.php:39
2034
+ msgctxt "Order status"
2035
+ msgid "Pending payment"
2036
+ msgstr ""
2037
+
2038
+ #: includes/class-wcj-order-custom-statuses.php:40
2039
+ #: includes/functions/wcj-functions.php:619
2040
+ msgctxt "Order status"
2041
+ msgid "Processing"
2042
+ msgstr ""
2043
+
2044
+ #: includes/class-wcj-order-custom-statuses.php:41
2045
+ msgctxt "Order status"
2046
+ msgid "On hold"
2047
+ msgstr ""
2048
+
2049
+ #: includes/class-wcj-order-custom-statuses.php:42
2050
+ #: includes/functions/wcj-functions.php:621
2051
+ msgctxt "Order status"
2052
+ msgid "Completed"
2053
+ msgstr ""
2054
+
2055
+ #: includes/class-wcj-order-custom-statuses.php:43
2056
+ #: includes/functions/wcj-functions.php:622
2057
+ msgctxt "Order status"
2058
+ msgid "Cancelled"
2059
+ msgstr ""
2060
+
2061
+ #: includes/class-wcj-order-custom-statuses.php:44
2062
+ #: includes/functions/wcj-functions.php:623
2063
+ msgctxt "Order status"
2064
+ msgid "Refunded"
2065
+ msgstr ""
2066
+
2067
+ #: includes/class-wcj-order-custom-statuses.php:45
2068
+ #: includes/functions/wcj-functions.php:624
2069
+ msgctxt "Order status"
2070
+ msgid "Failed"
2071
+ msgstr ""
2072
+
2073
+ #: includes/class-wcj-order-custom-statuses.php:142
2074
+ msgid "Status slug is empty. Status not added."
2075
+ msgstr ""
2076
+
2077
+ #: includes/class-wcj-order-custom-statuses.php:144
2078
+ msgid "The length of status slug must be 17 or less characters."
2079
+ msgstr ""
2080
+
2081
+ #: includes/class-wcj-order-custom-statuses.php:146
2082
+ msgid "Status label is empty. Status not added."
2083
+ msgstr ""
2084
+
2085
+ #: includes/class-wcj-order-custom-statuses.php:152
2086
+ msgid "Duplicate slug. Status not added."
2087
+ msgstr ""
2088
+
2089
+ #: includes/class-wcj-order-custom-statuses.php:158
2090
+ msgid "New status have been successfully added!"
2091
+ msgstr ""
2092
+
2093
+ #: includes/class-wcj-order-custom-statuses.php:160
2094
+ msgid "Status was not added."
2095
+ msgstr ""
2096
+
2097
+ #: includes/class-wcj-order-custom-statuses.php:177
2098
+ msgid "Status have been successfully deleted."
2099
+ msgstr ""
2100
+
2101
+ #: includes/class-wcj-order-custom-statuses.php:179
2102
+ msgid "Delete failed."
2103
+ msgstr ""
2104
+
2105
+ #: includes/class-wcj-order-custom-statuses.php:183
2106
+ msgid "Booster - Custom Statuses"
2107
+ msgstr ""
2108
+
2109
+ #: includes/class-wcj-order-custom-statuses.php:184
2110
+ msgid ""
2111
+ "The tool lets you add or delete any custom status for WooCommerce orders."
2112
+ msgstr ""
2113
+
2114
+ #: includes/class-wcj-order-custom-statuses.php:186
2115
+ msgid "Statuses"
2116
+ msgstr ""
2117
+
2118
+ #: includes/class-wcj-order-custom-statuses.php:189
2119
+ msgid "Slug"
2120
+ msgstr ""
2121
+
2122
+ #: includes/class-wcj-order-custom-statuses.php:191
2123
+ #: includes/class-wcj-order-custom-statuses.php:201
2124
+ #: includes/class-wcj-price-by-user-role.php:224
2125
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:105
2126
+ msgid "Delete"
2127
+ msgstr ""
2128
+
2129
+ #: includes/class-wcj-order-custom-statuses.php:213
2130
+ msgid "Slug (without wc- prefix)"
2131
+ msgstr ""
2132
+
2133
+ #: includes/class-wcj-order-custom-statuses.php:238
2134
+ #: includes/class-wcj-order-custom-statuses.php:239
2135
+ msgid "Mark"
2136
+ msgstr ""
2137
+
2138
+ #: includes/class-wcj-order-custom-statuses.php:271
2139
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:132
2140
+ msgid "Default Order Status"
2141
+ msgstr ""
2142
+
2143
+ #: includes/class-wcj-order-custom-statuses.php:272
2144
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:133
2145
+ msgid "Enable Custom Statuses feature to add custom statuses to the list."
2146
+ msgstr ""
2147
+
2148
+ #: includes/class-wcj-order-custom-statuses.php:273
2149
+ msgid ""
2150
+ "You can change the default order status here. However payment gateways can "
2151
+ "change this status immediatelly on order creation. E.g. BACS gateway will "
2152
+ "change status to On-hold."
2153
+ msgstr ""
2154
+
2155
+ #: includes/class-wcj-order-custom-statuses.php:280
2156
+ msgid "Add All Statuses to Admin Order Bulk Actions"
2157
+ msgstr ""
2158
+
2159
+ #: includes/class-wcj-order-custom-statuses.php:287
2160
+ msgid "Add Custom Statuses to Admin Reports"
2161
+ msgstr ""
2162
+
2163
+ #: includes/class-wcj-order-numbers.php:25
2164
+ #: includes/class-wcj-order-numbers.php:167
2165
+ msgid "Order Numbers"
2166
+ msgstr ""
2167
+
2168
+ #: includes/class-wcj-order-numbers.php:26
2169
+ msgid ""
2170
+ "WooCommerce sequential order numbering, custom order number prefix, suffix "
2171
+ "and number width."
2172
+ msgstr ""
2173
+
2174
+ #: includes/class-wcj-order-numbers.php:32
2175
+ msgid "Orders Renumerate"
2176
+ msgstr ""
2177
+
2178
+ #: includes/class-wcj-order-numbers.php:33
2179
+ msgid "Tool renumerates all orders."
2180
+ msgstr ""
2181
+
2182
+ #: includes/class-wcj-order-numbers.php:78
2183
+ msgid "Orders successfully renumerated!"
2184
+ msgstr ""
2185
+
2186
+ #: includes/class-wcj-order-numbers.php:82
2187
+ msgid ""
2188
+ "Press the button below to renumerate all existing orders starting from order "
2189
+ "counter settings in WooCommerce > Settings > Booster > Order Numbers."
2190
+ msgstr ""
2191
+
2192
+ #: includes/class-wcj-order-numbers.php:85
2193
+ msgid "Renumerate orders"
2194
+ msgstr ""
2195
+
2196
+ #: includes/class-wcj-order-numbers.php:169
2197
+ msgid ""
2198
+ "This section lets you enable sequential order numbering, set custom number "
2199
+ "prefix, suffix and width."
2200
+ msgstr ""
2201
+
2202
+ #: includes/class-wcj-order-numbers.php:173
2203
+ msgid "Make Order Numbers Sequential"
2204
+ msgstr ""
2205
+
2206
+ #: includes/class-wcj-order-numbers.php:180
2207
+ msgid "Next Order Number"
2208
+ msgstr ""
2209
+
2210
+ #: includes/class-wcj-order-numbers.php:181
2211
+ msgid "Next new order will be given this number."
2212
+ msgstr ""
2213
+
2214
+ #: includes/class-wcj-order-numbers.php:181
2215
+ msgid "Use Renumerate Orders tool for existing orders."
2216
+ msgstr ""
2217
+
2218
+ #: includes/class-wcj-order-numbers.php:182
2219
+ msgid "This will be ignored if sequential order numbering is disabled."
2220
+ msgstr ""
2221
+
2222
+ #: includes/class-wcj-order-numbers.php:188
2223
+ msgid "Order Number Custom Prefix"
2224
+ msgstr ""
2225
+
2226
+ #: includes/class-wcj-order-numbers.php:189
2227
+ msgid ""
2228
+ "Prefix before order number (optional). This will change the prefixes for all "
2229
+ "existing orders."
2230
+ msgstr ""
2231
+
2232
+ #: includes/class-wcj-order-numbers.php:196
2233
+ msgid "Order Number Date Prefix"
2234
+ msgstr ""
2235
+
2236
+ #: includes/class-wcj-order-numbers.php:198
2237
+ msgid ""
2238
+ "Date prefix before order number (optional). This will change the prefixes "
2239
+ "for all existing orders. Value is passed directly to PHP `date` function, so "
2240
+ "most of PHP date formats can be used. The only exception is using `\\` "
2241
+ "symbol in date format, as this symbol will be excluded from date. Try: Y-m-"
2242
+ "d- or mdy."
2243
+ msgstr ""
2244
+
2245
+ #: includes/class-wcj-order-numbers.php:206
2246
+ msgid "Order Number Width"
2247
+ msgstr ""
2248
+
2249
+ #: includes/class-wcj-order-numbers.php:208
2250
+ msgid ""
2251
+ "Minimum width of number without prefix (zeros will be added to the left "
2252
+ "side). This will change the minimum width of order number for all existing "
2253
+ "orders. E.g. set to 5 to have order number displayed as 00001 instead of 1. "
2254
+ "Leave zero to disable."
2255
+ msgstr ""
2256
+
2257
+ #: includes/class-wcj-order-numbers.php:216
2258
+ msgid "Order Number Custom Suffix"
2259
+ msgstr ""
2260
+
2261
+ #: includes/class-wcj-order-numbers.php:218
2262
+ msgid ""
2263
+ "Suffix after order number (optional). This will change the suffixes for all "
2264
+ "existing orders."
2265
+ msgstr ""
2266
+
2267
+ #: includes/class-wcj-order-numbers.php:226
2268
+ msgid "Order Number Date Suffix"
2269
+ msgstr ""
2270
+
2271
+ #: includes/class-wcj-order-numbers.php:228
2272
+ msgid ""
2273
+ "Date suffix after order number (optional). This will change the suffixes for "
2274
+ "all existing orders. Value is passed directly to PHP `date` function, so "
2275
+ "most of PHP date formats can be used. The only exception is using `\\` "
2276
+ "symbol in date format, as this symbol will be excluded from date. Try: Y-m-"
2277
+ "d- or mdy."
2278
+ msgstr ""
2279
+
2280
+ #: includes/class-wcj-order-numbers.php:236
2281
+ msgid "Use MySQL Transaction"
2282
+ msgstr ""
2283
+
2284
+ #: includes/class-wcj-order-numbers.php:238
2285
+ msgid ""
2286
+ "This should be enabled if you have a lot of simultaneous orders in your shop "
2287
+ "- to prevent duplicate order numbers (sequential)."
2288
+ msgstr ""
2289
+
2290
+ #: includes/class-wcj-orders.php:25
2291
+ msgid "Orders"
2292
+ msgstr ""
2293
+
2294
+ #: includes/class-wcj-orders.php:26
2295
+ msgid ""
2296
+ "Minimum WooCommerce order amount; orders auto-complete; custom admin order "
2297
+ "list columns."
2298
+ msgstr ""
2299
+
2300
+ #: includes/class-wcj-orders.php:78
2301
+ msgid "All countries"
2302
+ msgstr ""
2303
+
2304
+ #: includes/class-wcj-orders.php:186
2305
+ msgid "Order Minimum Amount"
2306
+ msgstr ""
2307
+
2308
+ #: includes/class-wcj-orders.php:188
2309
+ msgid "This section lets you set minimum order amount."
2310
+ msgstr ""
2311
+
2312
+ #: includes/class-wcj-orders.php:192
2313
+ msgid "Amount"
2314
+ msgstr ""
2315
+
2316
+ #: includes/class-wcj-orders.php:193
2317
+ msgid "Minimum order amount. Set to 0 to disable."
2318
+ msgstr ""
2319
+
2320
+ #: includes/class-wcj-orders.php:203
2321
+ msgid "Error message"
2322
+ msgstr ""
2323
+
2324
+ #: includes/class-wcj-orders.php:205 includes/class-wcj-orders.php:222
2325
+ msgid ""
2326
+ "Message to customer if order is below minimum amount. Default: You must have "
2327
+ "an order with a minimum of %s to place your order, your current order total "
2328
+ "is %s."
2329
+ msgstr ""
2330
+
2331
+ #: includes/class-wcj-orders.php:213
2332
+ msgid "Add notice to cart page also"
2333
+ msgstr ""
2334
+
2335
+ #: includes/class-wcj-orders.php:220
2336
+ msgid "Message on cart page"
2337
+ msgstr ""
2338
+
2339
+ #: includes/class-wcj-orders.php:230
2340
+ msgid ""
2341
+ "Stop customer from seeing the Checkout page if minimum amount not reached."
2342
+ msgstr ""
2343
+
2344
+ #: includes/class-wcj-orders.php:231
2345
+ msgid "Redirect back to Cart page"
2346
+ msgstr ""
2347
+
2348
+ #: includes/class-wcj-orders.php:241
2349
+ msgid "Orders Auto-Complete"
2350
+ msgstr ""
2351
+
2352
+ #: includes/class-wcj-orders.php:243
2353
+ msgid "This section lets you enable orders auto-complete function."
2354
+ msgstr ""
2355
+
2356
+ #: includes/class-wcj-orders.php:247
2357
+ msgid "Auto-complete all WooCommerce orders"
2358
+ msgstr ""
2359
+
2360
+ #: includes/class-wcj-orders.php:249
2361
+ msgid ""
2362
+ "E.g. if you sell digital products then you are not shipping anything and you "
2363
+ "may want auto-complete all your orders."
2364
+ msgstr ""
2365
+
2366
+ #: includes/class-wcj-orders.php:259 includes/class-wcj-purchase-data.php:382
2367
+ msgid "Orders List Custom Columns"
2368
+ msgstr ""
2369
+
2370
+ #: includes/class-wcj-orders.php:261 includes/class-wcj-purchase-data.php:384
2371
+ msgid "This section lets you add custom columns to WooCommerce orders list."
2372
+ msgstr ""
2373
+
2374
+ #: includes/class-wcj-payment-gateways-by-country.php:26
2375
+ msgid "Gateways by Country or State"
2376
+ msgstr ""
2377
+
2378
+ #: includes/class-wcj-payment-gateways-by-country.php:27
2379
+ msgid ""
2380
+ "Set countries or states to include/exclude for WooCommerce payment gateways "
2381
+ "to show up."
2382
+ msgstr ""
2383
+
2384
+ #: includes/class-wcj-payment-gateways-by-country.php:88
2385
+ msgid "Leave empty to disable."
2386
+ msgstr ""
2387
+
2388
+ #: includes/class-wcj-payment-gateways-by-country.php:109
2389
+ msgid "Include Countries"
2390
+ msgstr ""
2391
+
2392
+ #: includes/class-wcj-payment-gateways-by-country.php:121
2393
+ msgid "Exclude Countries"
2394
+ msgstr ""
2395
+
2396
+ #: includes/class-wcj-payment-gateways-by-country.php:133
2397
+ msgid "Include States (Base Country)"
2398
+ msgstr ""
2399
+
2400
+ #: includes/class-wcj-payment-gateways-by-country.php:145
2401
+ msgid "Exclude States (Base Country)"
2402
+ msgstr ""
2403
+
2404
+ #: includes/class-wcj-payment-gateways-currency.php:26
2405
+ msgid "Gateways Currency"
2406
+ msgstr ""
2407
+
2408
+ #: includes/class-wcj-payment-gateways-currency.php:27
2409
+ msgid "Currency per WooCommerce payment gateway."
2410
+ msgstr ""
2411
+
2412
+ #: includes/class-wcj-payment-gateways-currency.php:228
2413
+ msgid "Payment Gateways Currency Options"
2414
+ msgstr ""
2415
+
2416
+ #: includes/class-wcj-payment-gateways-currency.php:230
2417
+ msgid "This section lets you set different currency for each payment gateway."
2418
+ msgstr ""
2419
+
2420
+ #: includes/class-wcj-payment-gateways-currency.php:262
2421
+ msgid "No changes"
2422
+ msgstr ""
2423
+
2424
+ #: includes/class-wcj-payment-gateways-fees.php:26
2425
+ msgid "Gateways Fees and Discounts"
2426
+ msgstr ""
2427
+
2428
+ #: includes/class-wcj-payment-gateways-fees.php:27
2429
+ msgid "Enable extra fees or discounts for WooCommerce payment gateways."
2430
+ msgstr ""
2431
+
2432
+ #: includes/class-wcj-payment-gateways-fees.php:138
2433
+ msgid "Payment Gateways Fees and Discounts Options"
2434
+ msgstr ""
2435
+
2436
+ #: includes/class-wcj-payment-gateways-fees.php:140
2437
+ msgid "This section lets you set extra fees for payment gateways."
2438
+ msgstr ""
2439
+
2440
+ #: includes/class-wcj-payment-gateways-fees.php:150
2441
+ msgid "Fee (or discount) title to show to customer."
2442
+ msgstr ""
2443
+
2444
+ #: includes/class-wcj-payment-gateways-fees.php:158
2445
+ msgid "Fee (or discount) type."
2446
+ msgstr ""
2447
+
2448
+ #: includes/class-wcj-payment-gateways-fees.php:159
2449
+ msgid "Percent or fixed value."
2450
+ msgstr ""
2451
+
2452
+ #: includes/class-wcj-payment-gateways-fees.php:164
2453
+ #: includes/class-wcj-purchase-data.php:332
2454
+ #: includes/class-wcj-wholesale-price.php:235
2455
+ #: includes/class-wcj-wholesale-price.php:325
2456
+ msgid "Fixed"
2457
+ msgstr ""
2458
+
2459
+ #: includes/class-wcj-payment-gateways-fees.php:165
2460
+ #: includes/class-wcj-purchase-data.php:333
2461
+ #: includes/class-wcj-wholesale-price.php:234
2462
+ #: includes/class-wcj-wholesale-price.php:324
2463
+ msgid "Percent"
2464
+ msgstr ""
2465
+
2466
+ #: includes/class-wcj-payment-gateways-fees.php:170
2467
+ msgid "Fee (or discount) value."
2468
+ msgstr ""
2469
+
2470
+ #: includes/class-wcj-payment-gateways-fees.php:171
2471
+ msgid "The value. For discount enter a negative number."
2472
+ msgstr ""
2473
+
2474
+ #: includes/class-wcj-payment-gateways-fees.php:181
2475
+ msgid "Minimum cart amount for adding the fee (or discount)."
2476
+ msgstr ""
2477
+
2478
+ #: includes/class-wcj-payment-gateways-fees.php:182
2479
+ #: includes/class-wcj-payment-gateways-fees.php:194
2480
+ msgid "Set 0 to disable."
2481
+ msgstr ""
2482
+
2483
+ #: includes/class-wcj-payment-gateways-fees.php:193
2484
+ msgid "Maximum cart amount for adding the fee (or discount)."
2485
+ msgstr ""
2486
+
2487
+ #: includes/class-wcj-payment-gateways-fees.php:205
2488
+ msgid "Round the fee (or discount) value before adding to the cart."
2489
+ msgstr ""
2490
+
2491
+ #: includes/class-wcj-payment-gateways-fees.php:213
2492
+ msgid "If rounding is enabled, set precision here."
2493
+ msgstr ""
2494
+
2495
+ #: includes/class-wcj-payment-gateways-fees.php:225
2496
+ msgid "Is taxable?"
2497
+ msgstr ""
2498
+
2499
+ #: includes/class-wcj-payment-gateways-fees.php:232
2500
+ msgid "Tax Class (only if Taxable selected)."
2501
+ msgstr ""
2502
+
2503
+ #: includes/class-wcj-payment-gateways-fees.php:236
2504
+ msgid "Standard Rate"
2505
+ msgstr ""
2506
+
2507
+ #: includes/class-wcj-payment-gateways-icons.php:26
2508
+ msgid "Gateways Icons"
2509
+ msgstr ""
2510
+
2511
+ #: includes/class-wcj-payment-gateways-icons.php:27
2512
+ msgid ""
2513
+ "Change or completely remove icons (images) for any (default or custom) "
2514
+ "WooCommerce payment gateway."
2515
+ msgstr ""
2516
+
2517
+ #: includes/class-wcj-payment-gateways-icons.php:97
2518
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:97
2519
+ msgid ""
2520
+ "If you want to show an image next to the gateway's name on the frontend, "
2521
+ "enter a URL to an image."
2522
+ msgstr ""
2523
+
2524
+ #: includes/class-wcj-payment-gateways-icons.php:114
2525
+ msgid "Leave blank to set WooCommerce default value"
2526
+ msgstr ""
2527
+
2528
+ #: includes/class-wcj-payment-gateways-icons.php:125
2529
+ msgid "Remove Icon"
2530
+ msgstr ""
2531
+
2532
+ #: includes/class-wcj-payment-gateways-min-max.php:26
2533
+ msgid "Gateways Min/Max"
2534
+ msgstr ""
2535
+
2536
+ #: includes/class-wcj-payment-gateways-min-max.php:27
2537
+ msgid "Add min/max amounts for WooCommerce payment gateways to show up."
2538
+ msgstr ""
2539
+
2540
+ #: includes/class-wcj-payment-gateways-min-max.php:73
2541
+ msgid "General Options"
2542
+ msgstr ""
2543
+
2544
+ #: includes/class-wcj-payment-gateways-min-max.php:78
2545
+ msgid "Exclude Shipping"
2546
+ msgstr ""
2547
+
2548
+ #: includes/class-wcj-payment-gateways-min-max.php:79
2549
+ msgid ""
2550
+ "Exclude shipping from total cart sum, when comparing with min/max amounts."
2551
+ msgstr ""
2552
+
2553
+ #: includes/class-wcj-payment-gateways-min-max.php:92
2554
+ msgid "Leave zero to disable."
2555
+ msgstr ""
2556
+
2557
+ #: includes/class-wcj-payment-gateways-min-max.php:111
2558
+ msgid "Min"
2559
+ msgstr ""
2560
+
2561
+ #: includes/class-wcj-payment-gateways-min-max.php:120
2562
+ msgid "Max"
2563
+ msgstr ""
2564
+
2565
+ #: includes/class-wcj-payment-gateways-per-category.php:26
2566
+ msgid "Gateways per Product or Category"
2567
+ msgstr ""
2568
+
2569
+ #: includes/class-wcj-payment-gateways-per-category.php:27
2570
+ msgid ""
2571
+ "Show WooCommerce gateway only if there is selected product or product "
2572
+ "category in cart."
2573
+ msgstr ""
2574
+
2575
+ #: includes/class-wcj-payment-gateways-per-category.php:184
2576
+ #: includes/class-wcj-price-labels.php:697
2577
+ msgid "Product Categories - Include"
2578
+ msgstr ""
2579
+
2580
+ #: includes/class-wcj-payment-gateways-per-category.php:185
2581
+ msgid ""
2582
+ "Show gateway only if there is product of selected category in cart. Leave "
2583
+ "blank to disable the option."
2584
+ msgstr ""
2585
+
2586
+ #: includes/class-wcj-payment-gateways-per-category.php:195
2587
+ #: includes/class-wcj-price-labels.php:707
2588
+ msgid "Product Categories - Exclude"
2589
+ msgstr ""
2590
+
2591
+ #: includes/class-wcj-payment-gateways-per-category.php:196
2592
+ msgid ""
2593
+ "Hide gateway if there is product of selected category in cart. Leave blank "
2594
+ "to disable the option."
2595
+ msgstr ""
2596
+
2597
+ #: includes/class-wcj-payment-gateways-per-category.php:206
2598
+ #: includes/class-wcj-price-labels.php:677
2599
+ msgid "Products - Include"
2600
+ msgstr ""
2601
+
2602
+ #: includes/class-wcj-payment-gateways-per-category.php:207
2603
+ msgid ""
2604
+ "Show gateway only if there is selected products in cart. Leave blank to "
2605
+ "disable the option."
2606
+ msgstr ""
2607
+
2608
+ #: includes/class-wcj-payment-gateways-per-category.php:218
2609
+ #: includes/class-wcj-price-labels.php:687
2610
+ msgid "Products - Exclude"
2611
+ msgstr ""
2612
+
2613
+ #: includes/class-wcj-payment-gateways-per-category.php:219
2614
+ msgid ""
2615
+ "Hide gateway if there is selected products in cart. Leave blank to disable "
2616
+ "the option."
2617
+ msgstr ""
2618
+
2619
+ #: includes/class-wcj-payment-gateways.php:25
2620
+ msgid "Custom Gateways"
2621
+ msgstr ""
2622
+
2623
+ #: includes/class-wcj-payment-gateways.php:26
2624
+ msgid "Add multiple custom payment gateways to WooCommerce."
2625
+ msgstr ""
2626
+
2627
+ #: includes/class-wcj-payment-gateways.php:43
2628
+ msgid "WooCommerce > Settings > Checkout"
2629
+ msgstr ""
2630
+
2631
+ #: includes/class-wcj-payment-gateways.php:46
2632
+ msgid "Custom Payment Gateways Options"
2633
+ msgstr ""
2634
+
2635
+ #: includes/class-wcj-payment-gateways.php:49
2636
+ msgid "This section lets you set number of custom payment gateways to add."
2637
+ msgstr ""
2638
+
2639
+ #: includes/class-wcj-payment-gateways.php:50
2640
+ msgid "After setting the number, visit %s to set each gateway options."
2641
+ msgstr ""
2642
+
2643
+ #: includes/class-wcj-payment-gateways.php:53
2644
+ msgid "Number of Gateways"
2645
+ msgstr ""
2646
+
2647
+ #: includes/class-wcj-payment-gateways.php:55
2648
+ msgid ""
2649
+ "Number of custom payments gateways to be added. All settings for each new "
2650
+ "gateway are in WooCommerce > Settings > Checkout."
2651
+ msgstr ""
2652
+
2653
+ #: includes/class-wcj-payment-gateways.php:68
2654
+ msgid "Admin Title Custom Gateway"
2655
+ msgstr ""
2656
+
2657
+ #: includes/class-wcj-payment-gateways.php:70
2658
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:345
2659
+ msgid "Custom Gateway"
2660
+ msgstr ""
2661
+
2662
+ #: includes/class-wcj-pdf-invoicing.php:25
2663
+ msgid "PDF Invoicing"
2664
+ msgstr ""
2665
+
2666
+ #: includes/class-wcj-pdf-invoicing.php:27
2667
+ msgid ""
2668
+ "WooCommerce Invoices, Proforma Invoices, Credit Notes and Packing Slips."
2669
+ msgstr ""
2670
+
2671
+ #: includes/class-wcj-pdf-invoicing.php:33
2672
+ msgid "Invoices Renumerate"
2673
+ msgstr ""
2674
+
2675
+ #: includes/class-wcj-pdf-invoicing.php:34
2676
+ msgid ""
2677
+ "Tool renumerates all invoices, proforma invoices, credit notes and packing "
2678
+ "slips."
2679
+ msgstr ""
2680
+
2681
+ #: includes/class-wcj-pdf-invoicing.php:37
2682
+ msgid "Invoices Report"
2683
+ msgstr ""
2684
+
2685
+ #: includes/class-wcj-pdf-invoicing.php:38
2686
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:72
2687
+ msgid "Invoices Monthly Reports."
2688
+ msgstr ""
2689
+
2690
+ #: includes/class-wcj-pdf-invoicing.php:187
2691
+ msgid "PDF Invoicing General Options"
2692
+ msgstr ""
2693
+
2694
+ #: includes/class-wcj-pdf-invoicing.php:196
2695
+ msgid "Create on New Order"
2696
+ msgstr ""
2697
+
2698
+ #: includes/class-wcj-pdf-invoicing.php:199
2699
+ msgid "Create on Order Status"
2700
+ msgstr ""
2701
+
2702
+ #: includes/class-wcj-pdf-invoicing.php:201
2703
+ msgid "Manual Only"
2704
+ msgstr ""
2705
+
2706
+ #: includes/class-wcj-pdf-invoicing.php:219
2707
+ msgid "Hide Disabled Docs Settings"
2708
+ msgstr ""
2709
+
2710
+ #: includes/class-wcj-price-by-country.php:25
2711
+ msgid "Prices and Currencies by Country"
2712
+ msgstr ""
2713
+
2714
+ #: includes/class-wcj-price-by-country.php:26
2715
+ msgid ""
2716
+ "Change WooCommerce product price and currency automatically by customer's "
2717
+ "country."
2718
+ msgstr ""
2719
+
2720
+ #: includes/class-wcj-price-by-country.php:78
2721
+ msgid "Price by Country Options"
2722
+ msgstr ""
2723
+
2724
+ #: includes/class-wcj-price-by-country.php:80
2725
+ msgid ""
2726
+ "Change product's price and currency by customer's country. Customer's "
2727
+ "country is detected automatically by IP, or selected by customer manually."
2728
+ msgstr ""
2729
+
2730
+ #: includes/class-wcj-price-by-country.php:85
2731
+ msgid "Customer Country Detection Method"
2732
+ msgstr ""
2733
+
2734
+ #: includes/class-wcj-price-by-country.php:87
2735
+ msgid ""
2736
+ "If you choose \"by user selection\", use [wcj_country_select_drop_down_list] "
2737
+ "shortcode to display country selection list on frontend."
2738
+ msgstr ""
2739
+
2740
+ #: includes/class-wcj-price-by-country.php:91
2741
+ msgid "by IP"
2742
+ msgstr ""
2743
+
2744
+ #: includes/class-wcj-price-by-country.php:92
2745
+ msgid "by IP, then by user selection"
2746
+ msgstr ""
2747
+
2748
+ #: includes/class-wcj-price-by-country.php:93
2749
+ msgid "by user selection"
2750
+ msgstr ""
2751
+
2752
+ #: includes/class-wcj-price-by-country.php:110
2753
+ msgid "Override Country with Customer's Checkout Billing Country"
2754
+ msgstr ""
2755
+
2756
+ #: includes/class-wcj-price-by-country.php:118
2757
+ msgid "Price Rounding"
2758
+ msgstr ""
2759
+
2760
+ #: includes/class-wcj-price-by-country.php:119
2761
+ msgid "If you choose to multiply price, set rounding options here."
2762
+ msgstr ""
2763
+
2764
+ #: includes/class-wcj-price-by-country.php:124
2765
+ msgid "No rounding"
2766
+ msgstr ""
2767
+
2768
+ #: includes/class-wcj-price-by-country.php:125
2769
+ msgid "Round"
2770
+ msgstr ""
2771
+
2772
+ #: includes/class-wcj-price-by-country.php:126
2773
+ msgid "Round down"
2774
+ msgstr ""
2775
+
2776
+ #: includes/class-wcj-price-by-country.php:127
2777
+ msgid "Round up"
2778
+ msgstr ""
2779
+
2780
+ #: includes/class-wcj-price-by-country.php:132
2781
+ msgid "Price by Country on per Product Basis"
2782
+ msgstr ""
2783
+
2784
+ #: includes/class-wcj-price-by-country.php:143
2785
+ msgid "Country Groups"
2786
+ msgstr ""
2787
+
2788
+ #: includes/class-wcj-price-by-country.php:149
2789
+ msgid "Countries Selection"
2790
+ msgstr ""
2791
+
2792
+ #: includes/class-wcj-price-by-country.php:150
2793
+ msgid "Choose how do you want to enter countries groups in admin."
2794
+ msgstr ""
2795
+
2796
+ #: includes/class-wcj-price-by-country.php:155
2797
+ msgid "Comma separated list"
2798
+ msgstr ""
2799
+
2800
+ #: includes/class-wcj-price-by-country.php:156
2801
+ msgid "Multiselect"
2802
+ msgstr ""
2803
+
2804
+ #: includes/class-wcj-price-by-country.php:157
2805
+ msgid "Chosen select"
2806
+ msgstr ""
2807
+
2808
+ #: includes/class-wcj-price-by-country.php:162
2809
+ msgid "Autogenerate Groups"
2810
+ msgstr ""
2811
+
2812
+ #: includes/class-wcj-price-by-country.php:167
2813
+ msgid "Currencies supported in both PayPal and Yahoo Exchange Rates:"
2814
+ msgstr ""
2815
+
2816
+ #: includes/class-wcj-price-by-country.php:169
2817
+ #: includes/class-wcj-price-by-country.php:174
2818
+ #: includes/class-wcj-price-by-country.php:179
2819
+ msgid "Generate"
2820
+ msgstr ""
2821
+
2822
+ #: includes/class-wcj-price-by-country.php:172
2823
+ msgid "Currencies supported in Yahoo Exchange Rates:"
2824
+ msgstr ""
2825
+
2826
+ #: includes/class-wcj-price-by-country.php:177
2827
+ msgid "All Countries and Currencies:"
2828
+ msgstr ""
2829
+
2830
+ #: includes/class-wcj-price-by-country.php:184
2831
+ msgid "Groups Number"
2832
+ msgstr ""
2833
+
2834
+ #: includes/class-wcj-price-by-country.php:203
2835
+ msgid ""
2836
+ "Countries. List of comma separated country codes.<br>For country codes and "
2837
+ "predifined sets visit <a href=\"http://booster.io/features/prices-and-"
2838
+ "currencies-by-customers-country\" target=\"_blank\">http://booster.io</a>"
2839
+ msgstr ""
2840
+
2841
+ #: includes/class-wcj-price-by-country.php:279
2842
+ msgid "Multiply Price by"
2843
+ msgstr ""
2844
+
2845
+ #: includes/class-wcj-price-by-country.php:302
2846
+ #: includes/price-by-country/class-wcj-price-by-country-local.php:143
2847
+ msgid "Make empty price"
2848
+ msgstr ""
2849
+
2850
+ #: includes/class-wcj-price-by-user-role.php:27
2851
+ msgid "Price by User Role"
2852
+ msgstr ""
2853
+
2854
+ #: includes/class-wcj-price-by-user-role.php:28
2855
+ msgid "Display WooCommerce products prices by user roles."
2856
+ msgstr ""
2857
+
2858
+ #: includes/class-wcj-price-by-user-role.php:34
2859
+ msgid "Add/Manage Custom Roles"
2860
+ msgstr ""
2861
+
2862
+ #: includes/class-wcj-price-by-user-role.php:35
2863
+ msgid "Custom Roles"
2864
+ msgstr ""
2865
+
2866
+ #: includes/class-wcj-price-by-user-role.php:36
2867
+ msgid "Manage Custom Roles."
2868
+ msgstr ""
2869
+
2870
+ #: includes/class-wcj-price-by-user-role.php:110
2871
+ msgid ""
2872
+ "Booster: Free plugin's version is limited to only one price by user role per "
2873
+ "products settings product enabled at a time. You will need to get <a href="
2874
+ "\"http://booster.io/plus/\" target=\"_blank\">Booster Plus</a> to add "
2875
+ "unlimited number of price by user role per product settings products."
2876
+ msgstr ""
2877
+
2878
+ #: includes/class-wcj-price-by-user-role.php:137
2879
+ msgid "Per Product Settings (press Update after changing)"
2880
+ msgstr ""
2881
+
2882
+ #: includes/class-wcj-price-by-user-role.php:195
2883
+ msgid "Both fields are required!"
2884
+ msgstr ""
2885
+
2886
+ #: includes/class-wcj-price-by-user-role.php:198
2887
+ msgid "Role ID must not be numbers only!"
2888
+ msgstr ""
2889
+
2890
+ #: includes/class-wcj-price-by-user-role.php:202
2891
+ msgid "Role successfully added!"
2892
+ msgstr ""
2893
+
2894
+ #: includes/class-wcj-price-by-user-role.php:204
2895
+ msgid "Role already exists!"
2896
+ msgstr ""
2897
+
2898
+ #: includes/class-wcj-price-by-user-role.php:212
2899
+ msgid "Role %s successfully deleted!"
2900
+ msgstr ""
2901
+
2902
+ #: includes/class-wcj-price-by-user-role.php:218
2903
+ #: includes/class-wcj-price-by-user-role.php:231
2904
+ #: includes/class-wcj-sku.php:132
2905
+ msgid "ID"
2906
+ msgstr ""
2907
+
2908
+ #: includes/class-wcj-price-by-user-role.php:218
2909
+ #: includes/class-wcj-price-by-user-role.php:232
2910
+ #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:72
2911
+ #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:106
2912
+ msgid "Name"
2913
+ msgstr ""
2914
+
2915
+ #: includes/class-wcj-price-by-user-role.php:218
2916
+ msgid "Actions"
2917
+ msgstr ""
2918
+
2919
+ #: includes/class-wcj-price-by-user-role.php:227
2920
+ msgid "Existing Roles"
2921
+ msgstr ""
2922
+
2923
+ #: includes/class-wcj-price-by-user-role.php:233
2924
+ msgid "Add New Role"
2925
+ msgstr ""
2926
+
2927
+ #: includes/class-wcj-price-by-user-role.php:395
2928
+ msgid "Guest"
2929
+ msgstr ""
2930
+
2931
+ #: includes/class-wcj-price-by-user-role.php:437
2932
+ msgid "Enable per Product Settings"
2933
+ msgstr ""
2934
+
2935
+ #: includes/class-wcj-price-by-user-role.php:439
2936
+ msgid ""
2937
+ "When enabled, this will add new \"Booster: Price by User Role\" meta box to "
2938
+ "each product's edit page."
2939
+ msgstr ""
2940
+
2941
+ #: includes/class-wcj-price-by-user-role.php:447
2942
+ msgid ""
2943
+ "When enabled, this will apply user role multipliers to shipping calculations."
2944
+ msgstr ""
2945
+
2946
+ #: includes/class-wcj-price-by-user-role.php:458
2947
+ msgid "Roles & Multipliers"
2948
+ msgstr ""
2949
+
2950
+ #: includes/class-wcj-price-labels.php:25
2951
+ msgid "Custom Price Labels"
2952
+ msgstr ""
2953
+
2954
+ #: includes/class-wcj-price-labels.php:26
2955
+ msgid "Create any custom price label for any WooCommerce product."
2956
+ msgstr ""
2957
+
2958
+ #: includes/class-wcj-price-labels.php:32
2959
+ msgid "Migrate from Custom Price Labels (Pro)"
2960
+ msgstr ""
2961
+
2962
+ #: includes/class-wcj-price-labels.php:33
2963
+ msgid ""
2964
+ "Tool lets you copy all the data (that is labels) from Custom Price labels "
2965
+ "(Pro) plugin to Booster."
2966
+ msgstr ""
2967
+
2968
+ #: includes/class-wcj-price-labels.php:43
2969
+ msgid "Instead of the price"
2970
+ msgstr ""
2971
+
2972
+ #: includes/class-wcj-price-labels.php:44
2973
+ msgid "Before the price"
2974
+ msgstr ""
2975
+
2976
+ #: includes/class-wcj-price-labels.php:45
2977
+ msgid "Between regular and sale prices"
2978
+ msgstr ""
2979
+
2980
+ #: includes/class-wcj-price-labels.php:46
2981
+ msgid "After the price"
2982
+ msgstr ""
2983
+
2984
+ #: includes/class-wcj-price-labels.php:52
2985
+ msgid "Hide on home page"
2986
+ msgstr ""
2987
+
2988
+ #: includes/class-wcj-price-labels.php:53
2989
+ msgid "Hide on products page"
2990
+ msgstr ""
2991
+
2992
+ #: includes/class-wcj-price-labels.php:54
2993
+ msgid "Hide on single"
2994
+ msgstr ""
2995
+
2996
+ #: includes/class-wcj-price-labels.php:55
2997
+ msgid "Hide on all pages"
2998
+ msgstr ""
2999
+
3000
+ #: includes/class-wcj-price-labels.php:56
3001
+ msgid "Hide on cart page only"
3002
+ msgstr ""
3003
+
3004
+ #: includes/class-wcj-price-labels.php:58
3005
+ msgid "Hide for main price"
3006
+ msgstr ""
3007
+
3008
+ #: includes/class-wcj-price-labels.php:59
3009
+ msgid "Hide for all variations"
3010
+ msgstr ""
3011
+
3012
+ #: includes/class-wcj-price-labels.php:128
3013
+ msgid "Booster - Migrate from Custom Price Labels (Pro)"
3014
+ msgstr ""
3015
+
3016
+ #: includes/class-wcj-price-labels.php:179
3017
+ msgid "Migrating (product ID "
3018
+ msgstr ""
3019
+
3020
+ #: includes/class-wcj-price-labels.php:180
3021
+ msgid "Result: "
3022
+ msgstr ""
3023
+
3024
+ #: includes/class-wcj-price-labels.php:202
3025
+ msgid "Found data to migrate (product ID "
3026
+ msgstr ""
3027
+
3028
+ #: includes/class-wcj-price-labels.php:218
3029
+ msgid "No data to migrate found"
3030
+ msgstr ""
3031
+
3032
+ #: includes/class-wcj-price-labels.php:224
3033
+ msgid ""
3034
+ "Press button below to copy all labels from Custom Price Labels (Pro) plugin. "
3035
+ "Old labels will NOT be deleted. New labels will be overwritten."
3036
+ msgstr ""
3037
+
3038
+ #: includes/class-wcj-price-labels.php:225
3039
+ msgid "Migrate data"
3040
+ msgstr ""
3041
+
3042
+ #: includes/class-wcj-price-labels.php:271
3043
+ msgid "Booster: Custom Price Labels"
3044
+ msgstr ""
3045
+
3046
+ #: includes/class-wcj-price-labels.php:611
3047
+ msgid "Custom Price Labels - Globally"
3048
+ msgstr ""
3049
+
3050
+ #: includes/class-wcj-price-labels.php:613
3051
+ msgid "This section lets you set price labels for all products globally."
3052
+ msgstr ""
3053
+
3054
+ #: includes/class-wcj-price-labels.php:617
3055
+ msgid "Add before the price"
3056
+ msgstr ""
3057
+
3058
+ #: includes/class-wcj-price-labels.php:618
3059
+ msgid "Enter text to add before all products prices. Leave blank to disable."
3060
+ msgstr ""
3061
+
3062
+ #: includes/class-wcj-price-labels.php:627
3063
+ msgid "Add after the price"
3064
+ msgstr ""
3065
+
3066
+ #: includes/class-wcj-price-labels.php:628
3067
+ msgid "Enter text to add after all products prices. Leave blank to disable."
3068
+ msgstr ""
3069
+
3070
+ #: includes/class-wcj-price-labels.php:635
3071
+ msgid "Add between regular and sale prices"
3072
+ msgstr ""
3073
+
3074
+ #: includes/class-wcj-price-labels.php:636
3075
+ msgid ""
3076
+ "Enter text to add between regular and sale prices. Leave blank to disable."
3077
+ msgstr ""
3078
+
3079
+ #: includes/class-wcj-price-labels.php:645
3080
+ msgid "Remove from price"
3081
+ msgstr ""
3082
+
3083
+ #: includes/class-wcj-price-labels.php:647
3084
+ msgid "Enter text to remove from all products prices. Leave blank to disable."
3085
+ msgstr ""
3086
+
3087
+ #: includes/class-wcj-price-labels.php:656
3088
+ msgid "Replace in price"
3089
+ msgstr ""
3090
+
3091
+ #: includes/class-wcj-price-labels.php:657
3092
+ msgid "Enter text to replace in all products prices. Leave blank to disable."
3093
+ msgstr ""
3094
+
3095
+ #: includes/class-wcj-price-labels.php:668
3096
+ msgid "Enter text to replace with. Leave blank to disable."
3097
+ msgstr ""
3098
+
3099
+ #: includes/class-wcj-price-labels.php:678
3100
+ msgid ""
3101
+ "Apply global price labels only for selected products. Leave blank to disable "
3102
+ "the option."
3103
+ msgstr ""
3104
+
3105
+ #: includes/class-wcj-price-labels.php:688
3106
+ msgid ""
3107
+ "Do not apply global price labels only for selected products. Leave blank to "
3108
+ "disable the option."
3109
+ msgstr ""
3110
+
3111
+ #: includes/class-wcj-price-labels.php:698
3112
+ msgid ""
3113
+ "Apply global price labels only for selected product categories. Leave blank "
3114
+ "to disable the option."
3115
+ msgstr ""
3116
+
3117
+ #: includes/class-wcj-price-labels.php:708
3118
+ msgid ""
3119
+ "Do not apply global price labels only for selected product categories. Leave "
3120
+ "blank to disable the option."
3121
+ msgstr ""
3122
+
3123
+ #: includes/class-wcj-price-labels.php:721
3124
+ msgid "Custom Price Labels - Per Product"
3125
+ msgstr ""
3126
+
3127
+ #: includes/class-wcj-price-labels.php:727
3128
+ msgid "This will add metaboxes to each product's admin edit page."
3129
+ msgstr ""
3130
+
3131
+ #: includes/class-wcj-product-add-to-cart.php:26
3132
+ msgid "Product Add to Cart"
3133
+ msgstr ""
3134
+
3135
+ #: includes/class-wcj-product-add-to-cart.php:27
3136
+ msgid ""
3137
+ "Set any local url to redirect to on WooCommerce Add to Cart. Automatically "
3138
+ "add to cart on product visit. Display radio buttons instead of drop box for "
3139
+ "variable products."
3140
+ msgstr ""
3141
+
3142
+ #: includes/class-wcj-product-add-to-cart.php:118
3143
+ msgid "Add to Cart Local Redirect Options"
3144
+ msgstr ""
3145
+
3146
+ #: includes/class-wcj-product-add-to-cart.php:120
3147
+ msgid ""
3148
+ "This section lets you set any local URL to redirect to after successfully "
3149
+ "adding product to cart. Leave empty to redirect to checkout page (skipping "
3150
+ "the cart page)."
3151
+ msgstr ""
3152
+
3153
+ #: includes/class-wcj-product-add-to-cart.php:124
3154
+ msgid "Local Redirect"
3155
+ msgstr ""
3156
+
3157
+ #: includes/class-wcj-product-add-to-cart.php:131
3158
+ msgid "Local Redirect URL"
3159
+ msgstr ""
3160
+
3161
+ #: includes/class-wcj-product-add-to-cart.php:132
3162
+ msgid "Performs a safe (local) redirect, using wp_redirect()."
3163
+ msgstr ""
3164
+
3165
+ #: includes/class-wcj-product-add-to-cart.php:133
3166
+ msgid "Local redirect URL. Leave empty to redirect to checkout."
3167
+ msgstr ""
3168
+
3169
+ #: includes/class-wcj-product-add-to-cart.php:144
3170
+ #: includes/class-wcj-product-add-to-cart.php:150
3171
+ msgid "Add to Cart on Visit"
3172
+ msgstr ""
3173
+
3174
+ #: includes/class-wcj-product-add-to-cart.php:146
3175
+ msgid ""
3176
+ "This section lets you enable automatically adding product to cart on "
3177
+ "visiting the product page. Product is only added once, so if it is already "
3178
+ "in cart - duplicate product is not added. "
3179
+ msgstr ""
3180
+
3181
+ #: includes/class-wcj-product-add-to-cart.php:161
3182
+ msgid "Add to Cart Variable Product"
3183
+ msgstr ""
3184
+
3185
+ #: includes/class-wcj-product-add-to-cart.php:166
3186
+ msgid "Display Radio Buttons Instead of Drop Box"
3187
+ msgstr ""
3188
+
3189
+ #: includes/class-wcj-product-bookings.php:27
3190
+ msgid "Bookings"
3191
+ msgstr ""
3192
+
3193
+ #: includes/class-wcj-product-bookings.php:28
3194
+ msgid "Add bookings products to WooCommerce."
3195
+ msgstr ""
3196
+
3197
+ #: includes/class-wcj-product-bookings.php:127
3198
+ #: includes/class-wcj-product-bookings.php:220
3199
+ msgid "\"Date to\" must be after \"Date from\""
3200
+ msgstr ""
3201
+
3202
+ #: includes/class-wcj-product-bookings.php:139
3203
+ #: includes/class-wcj-product-open-pricing.php:209
3204
+ msgid "Read more"
3205
+ msgstr ""
3206
+
3207
+ #: includes/class-wcj-product-bookings.php:178
3208
+ msgid "Period"
3209
+ msgstr ""
3210
+
3211
+ #: includes/class-wcj-product-bookings.php:210
3212
+ msgid "\"Date from\" must be set"
3213
+ msgstr ""
3214
+
3215
+ #: includes/class-wcj-product-bookings.php:214
3216
+ msgid "\"Date to\" must be set"
3217
+ msgstr ""
3218
+
3219
+ #: includes/class-wcj-product-bookings.php:293
3220
+ msgid "Date from"
3221
+ msgstr ""
3222
+
3223
+ #: includes/class-wcj-product-bookings.php:297
3224
+ msgid "Date to"
3225
+ msgstr ""
3226
+
3227
+ #: includes/class-wcj-product-bookings.php:312
3228
+ msgid "day"
3229
+ msgstr ""
3230
+
3231
+ #: includes/class-wcj-product-bookings.php:380
3232
+ msgid ""
3233
+ "Booster: Free plugin's version is limited to only one bookings product "
3234
+ "enabled at a time. You will need to get <a href=\"http://booster.io/plus/\" "
3235
+ "target=\"_blank\">Booster Plus</a> to add unlimited number of bookings "
3236
+ "products."
3237
+ msgstr ""
3238
+
3239
+ #: includes/class-wcj-product-bookings.php:425
3240
+ msgid ""
3241
+ "When enabled, module will add new \"Booster: Bookings\" meta box to each "
3242
+ "product's edit page."
3243
+ msgstr ""
3244
+
3245
+ #: includes/class-wcj-product-bulk-price-converter.php:25
3246
+ #: includes/class-wcj-product-bulk-price-converter.php:32
3247
+ msgid "Bulk Price Converter"
3248
+ msgstr ""
3249
+
3250
+ #: includes/class-wcj-product-bulk-price-converter.php:26
3251
+ msgid "Multiply all WooCommerce products prices by set value."
3252
+ msgstr ""
3253
+
3254
+ #: includes/class-wcj-product-bulk-price-converter.php:33
3255
+ msgid "Bulk Price Converter Tool."
3256
+ msgstr ""
3257
+
3258
+ #: includes/class-wcj-product-bulk-price-converter.php:150
3259
+ #: includes/class-wcj-sku.php:196
3260
+ #: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:147
3261
+ msgid "Categories"
3262
+ msgstr ""
3263
+
3264
+ #: includes/class-wcj-product-bulk-price-converter.php:151
3265
+ msgid "Price Type"
3266
+ msgstr ""
3267
+
3268
+ #: includes/class-wcj-product-bulk-price-converter.php:152
3269
+ msgid "Original Price"
3270
+ msgstr ""
3271
+
3272
+ #: includes/class-wcj-product-bulk-price-converter.php:153
3273
+ msgid "Modified Price"
3274
+ msgstr ""
3275
+
3276
+ #: includes/class-wcj-product-bulk-price-converter.php:206
3277
+ msgid "Multiply value must be above zero."
3278
+ msgstr ""
3279
+
3280
+ #: includes/class-wcj-product-bulk-price-converter.php:213
3281
+ msgid "Prices changed successfully!"
3282
+ msgstr ""
3283
+
3284
+ #: includes/class-wcj-product-bulk-price-converter.php:238
3285
+ msgid "Multiply all product prices by"
3286
+ msgstr ""
3287
+
3288
+ #: includes/class-wcj-product-bulk-price-converter.php:246
3289
+ msgid "Price type to modify"
3290
+ msgstr ""
3291
+
3292
+ #: includes/class-wcj-product-bulk-price-converter.php:248
3293
+ msgid "Both"
3294
+ msgstr ""
3295
+
3296
+ #: includes/class-wcj-product-bulk-price-converter.php:250
3297
+ msgid "Sale prices only"
3298
+ msgstr ""
3299
+
3300
+ #: includes/class-wcj-product-bulk-price-converter.php:252
3301
+ msgid "Regular prices only"
3302
+ msgstr ""
3303
+
3304
+ #: includes/class-wcj-product-bulk-price-converter.php:259
3305
+ msgid "Products category"
3306
+ msgstr ""
3307
+
3308
+ #: includes/class-wcj-product-bulk-price-converter.php:261
3309
+ #: includes/shortcodes/class-wcj-products-shortcodes.php:247
3310
+ msgid "Any"
3311
+ msgstr ""
3312
+
3313
+ #: includes/class-wcj-product-bulk-price-converter.php:263
3314
+ msgid "None"
3315
+ msgstr ""
3316
+
3317
+ #: includes/class-wcj-product-bulk-price-converter.php:270
3318
+ msgid "\"Pretty prices\" threshold"
3319
+ msgstr ""
3320
+
3321
+ #: includes/class-wcj-product-bulk-price-converter.php:274
3322
+ msgid "Leave zero to disable"
3323
+ msgstr ""
3324
+
3325
+ #: includes/class-wcj-product-bulk-price-converter.php:279
3326
+ msgid "Preview Prices"
3327
+ msgstr ""
3328
+
3329
+ #: includes/class-wcj-product-bulk-price-converter.php:286
3330
+ msgid "Change Prices"
3331
+ msgstr ""
3332
+
3333
+ #: includes/class-wcj-product-by-country.php:27
3334
+ msgid "Product by Country"
3335
+ msgstr ""
3336
+
3337
+ #: includes/class-wcj-product-by-country.php:28
3338
+ msgid "Display WooCommerce products by customers country."
3339
+ msgstr ""
3340
+
3341
+ #: includes/class-wcj-product-by-country.php:76
3342
+ msgid "Visible in Countries"
3343
+ msgstr ""
3344
+
3345
+ #: includes/class-wcj-product-by-country.php:90
3346
+ msgid ""
3347
+ "When enabled, module will add new \"Booster: Product by Country\" meta box "
3348
+ "to each product's edit page."
3349
+ msgstr ""
3350
+
3351
+ #: includes/class-wcj-product-custom-info.php:26
3352
+ msgid "Product Info V2"
3353
+ msgstr ""
3354
+
3355
+ #: includes/class-wcj-product-custom-info.php:27
3356
+ #: includes/class-wcj-product-info.php:104
3357
+ msgid "Add additional info to WooCommerce category and single product pages."
3358
+ msgstr ""
3359
+
3360
+ #: includes/class-wcj-product-custom-info.php:107
3361
+ msgid "Single"
3362
+ msgstr ""
3363
+
3364
+ #: includes/class-wcj-product-custom-info.php:107
3365
+ msgid "Archive"
3366
+ msgstr ""
3367
+
3368
+ #: includes/class-wcj-product-custom-info.php:110
3369
+ msgid "Product Custom Info Blocks"
3370
+ msgstr ""
3371
+
3372
+ #: includes/class-wcj-product-custom-info.php:148
3373
+ msgid "Before single product"
3374
+ msgstr ""
3375
+
3376
+ #: includes/class-wcj-product-custom-info.php:149
3377
+ #: includes/class-wcj-product-info.php:141
3378
+ msgid "Before single product summary"
3379
+ msgstr ""
3380
+
3381
+ #: includes/class-wcj-product-custom-info.php:150
3382
+ #: includes/class-wcj-product-info.php:140
3383
+ msgid "Inside single product summary"
3384
+ msgstr ""
3385
+
3386
+ #: includes/class-wcj-product-custom-info.php:151
3387
+ #: includes/class-wcj-product-info.php:142
3388
+ msgid "After single product summary"
3389
+ msgstr ""
3390
+
3391
+ #: includes/class-wcj-product-custom-info.php:152
3392
+ msgid "After single product"
3393
+ msgstr ""
3394
+
3395
+ #: includes/class-wcj-product-custom-info.php:153
3396
+ msgid "Before add to cart form"
3397
+ msgstr ""
3398
+
3399
+ #: includes/class-wcj-product-custom-info.php:154
3400
+ msgid "Before add to cart button"
3401
+ msgstr ""
3402
+
3403
+ #: includes/class-wcj-product-custom-info.php:155
3404
+ msgid "After add to cart button"
3405
+ msgstr ""
3406
+
3407
+ #: includes/class-wcj-product-custom-info.php:156
3408
+ msgid "After add to cart form"
3409
+ msgstr ""
3410
+
3411
+ #: includes/class-wcj-product-custom-info.php:159
3412
+ #: includes/class-wcj-product-info.php:125
3413
+ msgid "Before product"
3414
+ msgstr ""
3415
+
3416
+ #: includes/class-wcj-product-custom-info.php:160
3417
+ #: includes/class-wcj-product-info.php:126
3418
+ msgid "Before product title"
3419
+ msgstr ""
3420
+
3421
+ #: includes/class-wcj-product-custom-info.php:161
3422
+ msgid "Inside product title"
3423
+ msgstr ""
3424
+
3425
+ #: includes/class-wcj-product-custom-info.php:162
3426
+ #: includes/class-wcj-product-info.php:128
3427
+ msgid "After product title"
3428
+ msgstr ""
3429
+
3430
+ #: includes/class-wcj-product-custom-info.php:163
3431
+ #: includes/class-wcj-product-info.php:127
3432
+ msgid "After product"
3433
+ msgstr ""
3434
+
3435
+ #: includes/class-wcj-product-custom-info.php:175
3436
+ msgid "Products to Include"
3437
+ msgstr ""
3438
+
3439
+ #: includes/class-wcj-product-custom-info.php:176
3440
+ #: includes/class-wcj-product-custom-info.php:186
3441
+ msgid "Leave blank to disable the option."
3442
+ msgstr ""
3443
+
3444
+ #: includes/class-wcj-product-custom-info.php:185
3445
+ msgid "Products to Exclude"
3446
+ msgstr ""
3447
+
3448
+ #: includes/class-wcj-product-images.php:26
3449
+ msgid "Product Images"
3450
+ msgstr ""
3451
+
3452
+ #: includes/class-wcj-product-images.php:27
3453
+ msgid "Customize WooCommerce products images, thumbnails and sale flashes."
3454
+ msgstr ""
3455
+
3456
+ #: includes/class-wcj-product-images.php:86
3457
+ msgid "Replace image with custom HTML on single product page"
3458
+ msgstr ""
3459
+
3460
+ #: includes/class-wcj-product-images.php:92
3461
+ msgid "Replace image with custom HTML on archives"
3462
+ msgstr ""
3463
+
3464
+ #: includes/class-wcj-product-images.php:133
3465
+ #: includes/class-wcj-product-images.php:270
3466
+ msgid "Sale!"
3467
+ msgstr ""
3468
+
3469
+ #: includes/class-wcj-product-images.php:181
3470
+ msgid "Product Image and Thumbnails"
3471
+ msgstr ""
3472
+
3473
+ #: includes/class-wcj-product-images.php:191
3474
+ msgid "Image and Thumbnails on Single"
3475
+ msgstr ""
3476
+
3477
+ #: includes/class-wcj-product-images.php:199
3478
+ msgid "Replace Image on Single"
3479
+ msgstr ""
3480
+
3481
+ #: includes/class-wcj-product-images.php:200
3482
+ msgid ""
3483
+ "Replace image on single product page with custom HTML. Leave blank to "
3484
+ "disable."
3485
+ msgstr ""
3486
+
3487
+ #: includes/class-wcj-product-images.php:208
3488
+ msgid "Replace Thumbnails on Single"
3489
+ msgstr ""
3490
+
3491
+ #: includes/class-wcj-product-images.php:209
3492
+ msgid ""
3493
+ "Replace thumbnails on single product page with custom HTML. Leave blank to "
3494
+ "disable."
3495
+ msgstr ""
3496
+
3497
+ #: includes/class-wcj-product-images.php:217
3498
+ msgid "Image on Single"
3499
+ msgstr ""
3500
+
3501
+ #: includes/class-wcj-product-images.php:225
3502
+ msgid "Thumbnails on Single"
3503
+ msgstr ""
3504
+
3505
+ #: includes/class-wcj-product-images.php:233
3506
+ msgid "Replace Image on Archive"
3507
+ msgstr ""
3508
+
3509
+ #: includes/class-wcj-product-images.php:234
3510
+ msgid ""
3511
+ "Replace image on archive pages with custom HTML. Leave blank to disable."
3512
+ msgstr ""
3513
+
3514
+ #: includes/class-wcj-product-images.php:242
3515
+ msgid "Image on Archives"
3516
+ msgstr ""
3517
+
3518
+ #: includes/class-wcj-product-images.php:250
3519
+ msgid "Single Product Thumbnails Columns"
3520
+ msgstr ""
3521
+
3522
+ #: includes/class-wcj-product-images.php:258
3523
+ msgid "Product Images Sale Flash"
3524
+ msgstr ""
3525
+
3526
+ #: includes/class-wcj-product-images.php:268
3527
+ msgid "HTML"
3528
+ msgstr ""
3529
+
3530
+ #: includes/class-wcj-product-images.php:276
3531
+ msgid "Hide on Archives (Categories)"
3532
+ msgstr ""
3533
+
3534
+ #: includes/class-wcj-product-images.php:283
3535
+ msgid "Hide on Single"
3536
+ msgstr ""
3537
+
3538
+ #: includes/class-wcj-product-info.php:103
3539
+ msgid "Product Info"
3540
+ msgstr ""
3541
+
3542
+ #: includes/class-wcj-product-info.php:274
3543
+ #: includes/class-wcj-product-info.php:377
3544
+ #: includes/class-wcj-product-info.php:410
3545
+ #: includes/class-wcj-product-tabs.php:550
3546
+ msgid "Priority (i.e. Order)"
3547
+ msgstr ""
3548
+
3549
+ #: includes/class-wcj-product-info.php:281
3550
+ msgid ""
3551
+ "Number of product info fields. Click \"Save changes\" after you change this "
3552
+ "number."
3553
+ msgstr ""
3554
+
3555
+ #: includes/class-wcj-product-info.php:303
3556
+ msgid ""
3557
+ "[wcj_product_you_save before=\"You save: <strong>\" hide_if_zero=\"yes\" "
3558
+ "after=\"</strong>\"][wcj_product_you_save_percent hide_if_zero=\"yes\" "
3559
+ "before=\" (\" after=\"%)\"]"
3560
+ msgstr ""
3561
+
3562
+ #: includes/class-wcj-product-info.php:304
3563
+ msgid "[wcj_product_total_sales before=\"Total sales: \"]"
3564
+ msgstr ""
3565
+
3566
+ #: includes/class-wcj-product-info.php:331
3567
+ msgid "Products Info"
3568
+ msgstr ""
3569
+
3570
+ #: includes/class-wcj-product-info.php:332
3571
+ msgid ""
3572
+ "For full list of short codes, please visit <a target=\"_blank\" href="
3573
+ "\"http://booster.io/shortcodes/\">http://booster.io/shortcodes/</a>."
3574
+ msgstr ""
3575
+
3576
+ #: includes/class-wcj-product-info.php:336
3577
+ #: includes/class-wcj-product-info.php:350
3578
+ msgid "Product Info on Archive Pages"
3579
+ msgstr ""
3580
+
3581
+ #: includes/class-wcj-product-info.php:337
3582
+ msgid "Product Info on Single Pages"
3583
+ msgstr ""
3584
+
3585
+ #: includes/class-wcj-product-info.php:345
3586
+ msgid "Even More Products Info"
3587
+ msgstr ""
3588
+
3589
+ #: includes/class-wcj-product-info.php:358
3590
+ #: includes/class-wcj-product-info.php:391
3591
+ msgid "HTML info."
3592
+ msgstr ""
3593
+
3594
+ #: includes/class-wcj-product-info.php:360
3595
+ msgid "[wcj_product_sku before=\"SKU: \"]"
3596
+ msgstr ""
3597
+
3598
+ #: includes/class-wcj-product-info.php:383
3599
+ msgid "Product Info on Single Product Pages"
3600
+ msgstr ""
3601
+
3602
+ #: includes/class-wcj-product-info.php:393
3603
+ msgid "Total sales: [wcj_product_total_sales]"
3604
+ msgstr ""
3605
+
3606
+ #: includes/class-wcj-product-info.php:416
3607
+ msgid "Product IDs to exclude"
3608
+ msgstr ""
3609
+
3610
+ #: includes/class-wcj-product-info.php:417
3611
+ msgid "Comma separated list of product IDs to exclude from product info."
3612
+ msgstr ""
3613
+
3614
+ #: includes/class-wcj-product-input-fields.php:24
3615
+ #: includes/input-fields/class-wcj-product-input-fields-per-product.php:127
3616
+ msgid "Product Input Fields"
3617
+ msgstr ""
3618
+
3619
+ #: includes/class-wcj-product-input-fields.php:25
3620
+ msgid "WooCommerce product input fields."
3621
+ msgstr ""
3622
+
3623
+ #: includes/class-wcj-product-input-fields.php:124
3624
+ msgid "Product Input Fields per Product Options"
3625
+ msgstr ""
3626
+
3627
+ #: includes/class-wcj-product-input-fields.php:126
3628
+ #: includes/class-wcj-product-input-fields.php:164
3629
+ msgid ""
3630
+ "Add custom input fields to product's single page for customer to fill before "
3631
+ "adding product to cart."
3632
+ msgstr ""
3633
+
3634
+ #: includes/class-wcj-product-input-fields.php:127
3635
+ msgid ""
3636
+ "When enabled this module will add \"Product Input Fields\" tab to each "
3637
+ "product's \"Edit\" page."
3638
+ msgstr ""
3639
+
3640
+ #: includes/class-wcj-product-input-fields.php:132
3641
+ msgid "Product Input Fields - per Product"
3642
+ msgstr ""
3643
+
3644
+ #: includes/class-wcj-product-input-fields.php:134
3645
+ msgid "Add custom input field on per product basis."
3646
+ msgstr ""
3647
+
3648
+ #: includes/class-wcj-product-input-fields.php:141
3649
+ msgid "Default Number of Product Input Fields per Product"
3650
+ msgstr ""
3651
+
3652
+ #: includes/class-wcj-product-input-fields.php:143
3653
+ msgid ""
3654
+ "You will be able to change this number later as well as define the fields, "
3655
+ "for each product individually, in product's \"Edit\"."
3656
+ msgstr ""
3657
+
3658
+ #: includes/class-wcj-product-input-fields.php:162
3659
+ msgid "Product Input Fields Global Options"
3660
+ msgstr ""
3661
+
3662
+ #: includes/class-wcj-product-input-fields.php:169
3663
+ msgid "Product Input Fields - All Products"
3664
+ msgstr ""
3665
+
3666
+ #: includes/class-wcj-product-input-fields.php:171
3667
+ msgid "Add custom input fields to all products."
3668
+ msgstr ""
3669
+
3670
+ #: includes/class-wcj-product-input-fields.php:178
3671
+ msgid "Product Input Fields Number"
3672
+ msgstr ""
3673
+
3674
+ #: includes/class-wcj-product-input-fields.php:198
3675
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:288
3676
+ #: includes/input-fields/class-wcj-product-input-fields-per-product.php:164
3677
+ msgid "Product Input Field"
3678
+ msgstr ""
3679
+
3680
+ #: includes/class-wcj-product-input-fields.php:217
3681
+ msgid "Frontend View Options"
3682
+ msgstr ""
3683
+
3684
+ #: includes/class-wcj-product-input-fields.php:223
3685
+ msgid "HTML to add after required field title"
3686
+ msgstr ""
3687
+
3688
+ #: includes/class-wcj-product-input-fields.php:231
3689
+ msgid "Item Name Order Table Format"
3690
+ msgstr ""
3691
+
3692
+ #: includes/class-wcj-product-input-fields.php:232
3693
+ msgid "Affects Checkout, Emails and Admin Orders View"
3694
+ msgstr ""
3695
+
3696
+ #: includes/class-wcj-product-input-fields.php:247
3697
+ msgid "Emails Options"
3698
+ msgstr ""
3699
+
3700
+ #: includes/class-wcj-product-input-fields.php:253
3701
+ msgid "Attach Files to Admin's New Order Emails"
3702
+ msgstr ""
3703
+
3704
+ #: includes/class-wcj-product-input-fields.php:254
3705
+ #: includes/class-wcj-product-input-fields.php:262
3706
+ msgid "Attach"
3707
+ msgstr ""
3708
+
3709
+ #: includes/class-wcj-product-input-fields.php:261
3710
+ msgid "Attach Files to Customer's Processing Order Emails"
3711
+ msgstr ""
3712
+
3713
+ #: includes/class-wcj-product-input-fields.php:276
3714
+ msgid "Admin Order View Options"
3715
+ msgstr ""
3716
+
3717
+ #: includes/class-wcj-product-input-fields.php:282
3718
+ msgid "Replace Field ID with Field Label"
3719
+ msgstr ""
3720
+
3721
+ #: includes/class-wcj-product-listings.php:24
3722
+ msgid "Product Listings"
3723
+ msgstr ""
3724
+
3725
+ #: includes/class-wcj-product-listings.php:25
3726
+ msgid ""
3727
+ "Change WooCommerce display options for shop and category pages: show/hide "
3728
+ "categories count, exclude categories, show/hide empty categories."
3729
+ msgstr ""
3730
+
3731
+ #: includes/class-wcj-product-listings.php:120
3732
+ msgid "WooJetpack: Categories Count"
3733
+ msgstr ""
3734
+
3735
+ #: includes/class-wcj-product-listings.php:121
3736
+ #: includes/class-wcj-product-listings.php:201
3737
+ msgid "Hide categories count on shop page"
3738
+ msgstr ""
3739
+
3740
+ #: includes/class-wcj-product-listings.php:127
3741
+ msgid "WooJetpack: Exclude Categories on Shop Page"
3742
+ msgstr ""
3743
+
3744
+ #: includes/class-wcj-product-listings.php:128
3745
+ #: includes/class-wcj-product-listings.php:208
3746
+ msgid ""
3747
+ " Excludes one or more categories from the shop page. This parameter takes a "
3748
+ "comma-separated list of categories by unique ID, in ascending order. Leave "
3749
+ "blank to disable."
3750
+ msgstr ""
3751
+
3752
+ #: includes/class-wcj-product-listings.php:135
3753
+ #: includes/class-wcj-product-listings.php:168
3754
+ msgid "WooJetpack: Hide Empty"
3755
+ msgstr ""
3756
+
3757
+ #: includes/class-wcj-product-listings.php:136
3758
+ #: includes/class-wcj-product-listings.php:216
3759
+ msgid "Hide empty categories on shop page"
3760
+ msgstr ""
3761
+
3762
+ #: includes/class-wcj-product-listings.php:142
3763
+ #: includes/class-wcj-product-listings.php:175
3764
+ msgid "WooJetpack: Show Products"
3765
+ msgstr ""
3766
+
3767
+ #: includes/class-wcj-product-listings.php:143
3768
+ #: includes/class-wcj-product-listings.php:223
3769
+ msgid "Show products if no categories are displayed on shop page"
3770
+ msgstr ""
3771
+
3772
+ #: includes/class-wcj-product-listings.php:151
3773
+ msgid "WooJetpack: Subcategories Count"
3774
+ msgstr ""
3775
+
3776
+ #: includes/class-wcj-product-listings.php:152
3777
+ #: includes/class-wcj-product-listings.php:240
3778
+ msgid "Hide subcategories count on category pages"
3779
+ msgstr ""
3780
+
3781
+ #: includes/class-wcj-product-listings.php:160
3782
+ msgid "WooJetpack: Exclude Subcategories on Category Pages"
3783
+ msgstr ""
3784
+
3785
+ #: includes/class-wcj-product-listings.php:161
3786
+ #: includes/class-wcj-product-listings.php:249
3787
+ msgid ""
3788
+ " Excludes one or more categories from the category (archive) pages. This "
3789
+ "parameter takes a comma-separated list of categories by unique ID, in "
3790
+ "ascending order. Leave blank to disable."
3791
+ msgstr ""
3792
+
3793
+ #: includes/class-wcj-product-listings.php:169
3794
+ #: includes/class-wcj-product-listings.php:257
3795
+ msgid "Hide empty subcategories on category pages"
3796
+ msgstr ""
3797
+
3798
+ #: includes/class-wcj-product-listings.php:176
3799
+ #: includes/class-wcj-product-listings.php:264
3800
+ msgid "Show products if no categories are displayed on category page"
3801
+ msgstr ""
3802
+
3803
+ #: includes/class-wcj-product-listings.php:194
3804
+ msgid "Shop Page Display Options"
3805
+ msgstr ""
3806
+
3807
+ #: includes/class-wcj-product-listings.php:196
3808
+ msgid ""
3809
+ "This will work only when \"Shop Page Display\" in \"WooCommerce > Settings > "
3810
+ "Products > Product Listings\" is set to \"Show subcategories\" or \"Show both"
3811
+ "\"."
3812
+ msgstr ""
3813
+
3814
+ #: includes/class-wcj-product-listings.php:200
3815
+ msgid "Categories Count"
3816
+ msgstr ""
3817
+
3818
+ #: includes/class-wcj-product-listings.php:207
3819
+ msgid "Exclude Categories"
3820
+ msgstr ""
3821
+
3822
+ #: includes/class-wcj-product-listings.php:215
3823
+ #: includes/class-wcj-product-listings.php:256
3824
+ msgid "Hide Empty"
3825
+ msgstr ""
3826
+
3827
+ #: includes/class-wcj-product-listings.php:222
3828
+ #: includes/class-wcj-product-listings.php:263
3829
+ msgid "Show Products"
3830
+ msgstr ""
3831
+
3832
+ #: includes/class-wcj-product-listings.php:233
3833
+ msgid "Category Display Options"
3834
+ msgstr ""
3835
+
3836
+ #: includes/class-wcj-product-listings.php:235
3837
+ msgid ""
3838
+ "This will work only when \"Default Category Display\" in \"WooCommerce > "
3839
+ "Settings > Products > Product Listings\" is set to \"Show subcategories\" or "
3840
+ "\"Show both\"."
3841
+ msgstr ""
3842
+
3843
+ #: includes/class-wcj-product-listings.php:239
3844
+ msgid "Subcategories Count"
3845
+ msgstr ""
3846
+
3847
+ #: includes/class-wcj-product-listings.php:248
3848
+ msgid "Exclude Subcategories"
3849
+ msgstr ""
3850
+
3851
+ #: includes/class-wcj-product-open-pricing.php:27
3852
+ msgid "Product Open Pricing (Name Your Price)"
3853
+ msgstr ""
3854
+
3855
+ #: includes/class-wcj-product-open-pricing.php:28
3856
+ msgid ""
3857
+ "Let your WooCommerce store customers enter price for the product manually."
3858
+ msgstr ""
3859
+
3860
+ #: includes/class-wcj-product-open-pricing.php:131
3861
+ msgid ""
3862
+ "Booster: Free plugin's version is limited to only one open pricing product "
3863
+ "enabled at a time. You will need to get <a href=\"http://booster.io/plus/\" "
3864
+ "target=\"_blank\">Booster Plus</a> to add unlimited number of open pricing "
3865
+ "products."
3866
+ msgstr ""
3867
+
3868
+ #: includes/class-wcj-product-open-pricing.php:184
3869
+ msgid "Default Price"
3870
+ msgstr ""
3871
+
3872
+ #: includes/class-wcj-product-open-pricing.php:190
3873
+ msgid "Min Price"
3874
+ msgstr ""
3875
+
3876
+ #: includes/class-wcj-product-open-pricing.php:196
3877
+ msgid "Max Price"
3878
+ msgstr ""
3879
+
3880
+ #: includes/class-wcj-product-open-pricing.php:265
3881
+ #: includes/class-wcj-product-open-pricing.php:380
3882
+ msgid "Price is required!"
3883
+ msgstr ""
3884
+
3885
+ #: includes/class-wcj-product-open-pricing.php:269
3886
+ #: includes/class-wcj-product-open-pricing.php:387
3887
+ msgid "Entered price is to small!"
3888
+ msgstr ""
3889
+
3890
+ #: includes/class-wcj-product-open-pricing.php:275
3891
+ #: includes/class-wcj-product-open-pricing.php:394
3892
+ msgid "Entered price is to big!"
3893
+ msgstr ""
3894
+
3895
+ #: includes/class-wcj-product-open-pricing.php:331
3896
+ #: includes/class-wcj-product-open-pricing.php:373
3897
+ msgid "Name Your Price"
3898
+ msgstr ""
3899
+
3900
+ #: includes/class-wcj-product-open-pricing.php:366
3901
+ msgid "Labels and Messages"
3902
+ msgstr ""
3903
+
3904
+ #: includes/class-wcj-product-open-pricing.php:371
3905
+ msgid "Frontend Label"
3906
+ msgstr ""
3907
+
3908
+ #: includes/class-wcj-product-open-pricing.php:378
3909
+ msgid "Message on Empty Price"
3910
+ msgstr ""
3911
+
3912
+ #: includes/class-wcj-product-open-pricing.php:385
3913
+ msgid "Message on Price to Small"
3914
+ msgstr ""
3915
+
3916
+ #: includes/class-wcj-product-open-pricing.php:392
3917
+ msgid "Message on Price to Big"
3918
+ msgstr ""
3919
+
3920
+ #: includes/class-wcj-product-price-by-formula.php:27
3921
+ msgid "Product Price by Formula"
3922
+ msgstr ""
3923
+
3924
+ #: includes/class-wcj-product-price-by-formula.php:28
3925
+ msgid "Set formula for automatic WooCommerce product price calculation."
3926
+ msgstr ""
3927
+
3928
+ #: includes/class-wcj-product-price-by-formula.php:117
3929
+ msgid "Error in formula"
3930
+ msgstr ""
3931
+
3932
+ #: includes/class-wcj-product-price-by-formula.php:204
3933
+ msgid ""
3934
+ "Booster: Free plugin's version is limited to only one price by formula "
3935
+ "product enabled at a time. You will need to get <a href=\"http://booster.io/"
3936
+ "plus/\" target=\"_blank\">Booster Plus</a> to add unlimited number of price "
3937
+ "by formula products."
3938
+ msgstr ""
3939
+
3940
+ #: includes/class-wcj-product-price-by-formula.php:242
3941
+ msgid "Use values below"
3942
+ msgstr ""
3943
+
3944
+ #: includes/class-wcj-product-price-by-formula.php:243
3945
+ msgid "Use default values"
3946
+ msgstr ""
3947
+
3948
+ #: includes/class-wcj-product-price-by-formula.php:245
3949
+ msgid "Calculation"
3950
+ msgstr ""
3951
+
3952
+ #: includes/class-wcj-product-price-by-formula.php:251
3953
+ #: includes/class-wcj-product-price-by-formula.php:311
3954
+ msgid "Formula"
3955
+ msgstr ""
3956
+
3957
+ #: includes/class-wcj-product-price-by-formula.php:257
3958
+ msgid "Number of Parameters"
3959
+ msgstr ""
3960
+
3961
+ #: includes/class-wcj-product-price-by-formula.php:291
3962
+ msgid "Final Price Preview"
3963
+ msgstr ""
3964
+
3965
+ #: includes/class-wcj-product-price-by-formula.php:305
3966
+ msgid "Default Settings"
3967
+ msgstr ""
3968
+
3969
+ #: includes/class-wcj-product-price-by-formula.php:307
3970
+ msgid ""
3971
+ "You can set default settings here. All settings can later be changed in "
3972
+ "individual product's edit page."
3973
+ msgstr ""
3974
+
3975
+ #: includes/class-wcj-product-price-by-formula.php:312
3976
+ msgid "Use \"x\" variable for product's base price. For example: x+p1*p2"
3977
+ msgstr ""
3978
+
3979
+ #: includes/class-wcj-product-price-by-formula.php:318
3980
+ msgid "Total Params"
3981
+ msgstr ""
3982
+
3983
+ #: includes/class-wcj-product-tabs.php:25
3984
+ msgid "Product Tabs"
3985
+ msgstr ""
3986
+
3987
+ #: includes/class-wcj-product-tabs.php:26
3988
+ msgid ""
3989
+ "Add custom product tabs - globally or per product. Customize or completely "
3990
+ "remove WooCommerce default product tabs."
3991
+ msgstr ""
3992
+
3993
+ #: includes/class-wcj-product-tabs.php:288
3994
+ msgid "Booster: Custom Tabs"
3995
+ msgstr ""
3996
+
3997
+ #: includes/class-wcj-product-tabs.php:405
3998
+ msgid "Total number of custom tabs"
3999
+ msgstr ""
4000
+
4001
+ #: includes/class-wcj-product-tabs.php:411
4002
+ #: includes/input-fields/class-wcj-product-input-fields-per-product.php:153
4003
+ msgid "Click \"Update\" product after you change this number."
4004
+ msgstr ""
4005
+
4006
+ #: includes/class-wcj-product-tabs.php:421
4007
+ #: includes/class-wcj-product-tabs.php:542
4008
+ #: includes/class-wcj-purchase-data.php:321
4009
+ #: includes/class-wcj-related-products.php:123
4010
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:63
4011
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:206
4012
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:69
4013
+ #: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:130
4014
+ msgid "Title"
4015
+ msgstr ""
4016
+
4017
+ #: includes/class-wcj-product-tabs.php:426
4018
+ #: includes/class-wcj-related-products.php:127
4019
+ msgid "Order"
4020
+ msgstr ""
4021
+
4022
+ #: includes/class-wcj-product-tabs.php:443
4023
+ #: includes/class-wcj-product-tabs.php:541
4024
+ #: includes/class-wcj-product-tabs.php:710
4025
+ msgid "Custom Product Tab"
4026
+ msgstr ""
4027
+
4028
+ #: includes/class-wcj-product-tabs.php:497
4029
+ msgid "Custom Product Tabs Options"
4030
+ msgstr ""
4031
+
4032
+ #: includes/class-wcj-product-tabs.php:499
4033
+ msgid "This section lets you add custom single product tabs."
4034
+ msgstr ""
4035
+
4036
+ #: includes/class-wcj-product-tabs.php:503
4037
+ msgid "Custom Product Tabs Number"
4038
+ msgstr ""
4039
+
4040
+ #: includes/class-wcj-product-tabs.php:558
4041
+ #: includes/class-wcj-product-tabs.php:727
4042
+ msgid "You can use shortcodes here..."
4043
+ msgstr ""
4044
+
4045
+ #: includes/class-wcj-product-tabs.php:566
4046
+ #: includes/class-wcj-product-tabs.php:735
4047
+ msgid "PRODUCTS to HIDE this tab"
4048
+ msgstr ""
4049
+
4050
+ #: includes/class-wcj-product-tabs.php:567
4051
+ #: includes/class-wcj-product-tabs.php:736
4052
+ msgid "To hide this tab from some products, enter products here."
4053
+ msgstr ""
4054
+
4055
+ #: includes/class-wcj-product-tabs.php:576
4056
+ #: includes/class-wcj-product-tabs.php:745
4057
+ msgid "PRODUCTS to SHOW this tab"
4058
+ msgstr ""
4059
+
4060
+ #: includes/class-wcj-product-tabs.php:577
4061
+ #: includes/class-wcj-product-tabs.php:746
4062
+ msgid "To show this tab only for some products, enter products here."
4063
+ msgstr ""
4064
+
4065
+ #: includes/class-wcj-product-tabs.php:586
4066
+ #: includes/class-wcj-product-tabs.php:755
4067
+ msgid "CATEGORIES to HIDE this tab"
4068
+ msgstr ""
4069
+
4070
+ #: includes/class-wcj-product-tabs.php:587
4071
+ #: includes/class-wcj-product-tabs.php:756
4072
+ msgid "To hide this tab from some categories, enter categories here."
4073
+ msgstr ""
4074
+
4075
+ #: includes/class-wcj-product-tabs.php:596
4076
+ #: includes/class-wcj-product-tabs.php:765
4077
+ msgid "CATEGORIES to SHOW this tab"
4078
+ msgstr ""
4079
+
4080
+ #: includes/class-wcj-product-tabs.php:597
4081
+ #: includes/class-wcj-product-tabs.php:766
4082
+ msgid "To show this tab only for some categories, enter categories here."
4083
+ msgstr ""
4084
+
4085
+ #: includes/class-wcj-product-tabs.php:606
4086
+ #: includes/class-wcj-product-tabs.php:775
4087
+ msgid "TAGS to HIDE this tab"
4088
+ msgstr ""
4089
+
4090
+ #: includes/class-wcj-product-tabs.php:607
4091
+ #: includes/class-wcj-product-tabs.php:776
4092
+ msgid "To hide this tab from some tags, enter tags here."
4093
+ msgstr ""
4094
+
4095
+ #: includes/class-wcj-product-tabs.php:616
4096
+ #: includes/class-wcj-product-tabs.php:785
4097
+ msgid "TAGS to SHOW this tab"
4098
+ msgstr ""
4099
+
4100
+ #: includes/class-wcj-product-tabs.php:617
4101
+ #: includes/class-wcj-product-tabs.php:786
4102
+ msgid "To show this tab only for some tags, enter tags here."
4103
+ msgstr ""
4104
+
4105
+ #: includes/class-wcj-product-tabs.php:626
4106
+ msgid "Comma separated PRODUCT IDs to HIDE this tab"
4107
+ msgstr ""
4108
+
4109
+ #: includes/class-wcj-product-tabs.php:626
4110
+ #: includes/class-wcj-product-tabs.php:635
4111
+ #: includes/class-wcj-product-tabs.php:644
4112
+ #: includes/class-wcj-product-tabs.php:653
4113
+ #: includes/classes/class-wcj-module.php:368
4114
+ msgid "Depreciated"
4115
+ msgstr ""
4116
+
4117
+ #: includes/class-wcj-product-tabs.php:627
4118
+ msgid "To hide this tab from some products, enter product IDs here."
4119
+ msgstr ""
4120
+
4121
+ #: includes/class-wcj-product-tabs.php:635
4122
+ msgid "Comma separated PRODUCT IDs to SHOW this tab"
4123
+ msgstr ""
4124
+
4125
+ #: includes/class-wcj-product-tabs.php:636
4126
+ msgid "To show this tab only for some products, enter product IDs here."
4127
+ msgstr ""
4128
+
4129
+ #: includes/class-wcj-product-tabs.php:644
4130
+ msgid "Comma separated CATEGORY IDs to HIDE this tab"
4131
+ msgstr ""
4132
+
4133
+ #: includes/class-wcj-product-tabs.php:645
4134
+ msgid "To hide this tab from some categories, enter category IDs here."
4135
+ msgstr ""
4136
+
4137
+ #: includes/class-wcj-product-tabs.php:653
4138
+ msgid "Comma separated CATEGORY IDs to SHOW this tab"
4139
+ msgstr ""
4140
+
4141
+ #: includes/class-wcj-product-tabs.php:654
4142
+ msgid "To show this tab only for some categories, enter category IDs here."
4143
+ msgstr ""
4144
+
4145
+ #: includes/class-wcj-product-tabs.php:671
4146
+ msgid "Custom Product Tabs - Per Product"
4147
+ msgstr ""
4148
+
4149
+ #: includes/class-wcj-product-tabs.php:673
4150
+ msgid "This section lets you set defaults for per product custom tabs."
4151
+ msgstr ""
4152
+
4153
+ #: includes/class-wcj-product-tabs.php:677
4154
+ msgid "Enable Per Product Custom Product Tabs"
4155
+ msgstr ""
4156
+
4157
+ #: includes/class-wcj-product-tabs.php:679
4158
+ msgid "This will add meta boxes to each product's edit page."
4159
+ msgstr ""
4160
+
4161
+ #: includes/class-wcj-product-tabs.php:685
4162
+ msgid "Use Visual Editor"
4163
+ msgstr ""
4164
+
4165
+ #: includes/class-wcj-product-tabs.php:692
4166
+ msgid "Default Per Product Custom Product Tabs Number"
4167
+ msgstr ""
4168
+
4169
+ #: includes/class-wcj-product-tabs.php:711
4170
+ msgid "Default Title"
4171
+ msgstr ""
4172
+
4173
+ #: includes/class-wcj-product-tabs.php:719
4174
+ msgid "Default Priority (i.e. Order)"
4175
+ msgstr ""
4176
+
4177
+ #: includes/class-wcj-product-tabs.php:726
4178
+ msgid "Default Content"
4179
+ msgstr ""
4180
+
4181
+ #: includes/class-wcj-product-tabs.php:803
4182
+ msgid "WooCommerce Standard Product Tabs Options"
4183
+ msgstr ""
4184
+
4185
+ #: includes/class-wcj-product-tabs.php:805
4186
+ msgid "This section lets you customize single product tabs."
4187
+ msgstr ""
4188
+
4189
+ #: includes/class-wcj-product-tabs.php:809
4190
+ msgid "Description Tab"
4191
+ msgstr ""
4192
+
4193
+ #: includes/class-wcj-product-tabs.php:810
4194
+ #: includes/class-wcj-product-tabs.php:833
4195
+ #: includes/class-wcj-product-tabs.php:856
4196
+ msgid "Remove tab from product page"
4197
+ msgstr ""
4198
+
4199
+ #: includes/class-wcj-product-tabs.php:817
4200
+ #: includes/class-wcj-product-tabs.php:840
4201
+ #: includes/class-wcj-product-tabs.php:863
4202
+ msgid "Title."
4203
+ msgstr ""
4204
+
4205
+ #: includes/class-wcj-product-tabs.php:818
4206
+ #: includes/class-wcj-product-tabs.php:841
4207
+ #: includes/class-wcj-product-tabs.php:864
4208
+ msgid "Leave blank for WooCommerce defaults"
4209
+ msgstr ""
4210
+
4211
+ #: includes/class-wcj-product-tabs.php:828
4212
+ #: includes/class-wcj-product-tabs.php:851
4213
+ #: includes/class-wcj-product-tabs.php:874
4214
+ msgid "Priority (i.e. Order)."
4215
+ msgstr ""
4216
+
4217
+ #: includes/class-wcj-product-tabs.php:832
4218
+ msgid "Additional Information Tab"
4219
+ msgstr ""
4220
+
4221
+ #: includes/class-wcj-product-tabs.php:855
4222
+ msgid "Reviews Tab"
4223
+ msgstr ""
4224
+
4225
+ #: includes/class-wcj-purchase-data.php:26
4226
+ msgid "Product Cost Price"
4227
+ msgstr ""
4228
+
4229
+ #: includes/class-wcj-purchase-data.php:27
4230
+ msgid "Save WooCommerce product purchase costs data for admin reports."
4231
+ msgstr ""
4232
+
4233
+ #: includes/class-wcj-purchase-data.php:49
4234
+ #: includes/class-wcj-purchase-data.php:233
4235
+ #: includes/class-wcj-purchase-data.php:388
4236
+ msgid "Profit"
4237
+ msgstr ""
4238
+
4239
+ #: includes/class-wcj-purchase-data.php:114
4240
+ #: includes/class-wcj-purchase-data.php:276
4241
+ msgid "Product cost (purchase) price"
4242
+ msgstr ""
4243
+
4244
+ #: includes/class-wcj-purchase-data.php:124
4245
+ #: includes/class-wcj-purchase-data.php:283
4246
+ msgid "Extra expenses (shipping etc.)"
4247
+ msgstr ""
4248
+
4249
+ #: includes/class-wcj-purchase-data.php:134
4250
+ #: includes/class-wcj-purchase-data.php:290
4251
+ msgid "Affiliate commission"
4252
+ msgstr ""
4253
+
4254
+ #: includes/class-wcj-purchase-data.php:166
4255
+ #: includes/class-wcj-purchase-data.php:357
4256
+ msgid "(Last) Purchase date"
4257
+ msgstr ""
4258
+
4259
+ #: includes/class-wcj-purchase-data.php:176
4260
+ #: includes/class-wcj-purchase-data.php:364
4261
+ msgid "Seller"
4262
+ msgstr ""
4263
+
4264
+ #: includes/class-wcj-purchase-data.php:186
4265
+ #: includes/class-wcj-purchase-data.php:371
4266
+ msgid "Purchase info"
4267
+ msgstr ""
4268
+
4269
+ #: includes/class-wcj-purchase-data.php:231
4270
+ msgid "Selling"
4271
+ msgstr ""
4272
+
4273
+ #: includes/class-wcj-purchase-data.php:232
4274
+ msgid "Buying"
4275
+ msgstr ""
4276
+
4277
+ #: includes/class-wcj-purchase-data.php:241
4278
+ msgid "Report"
4279
+ msgstr ""
4280
+
4281
+ #: includes/class-wcj-purchase-data.php:270
4282
+ msgid "Price Fields"
4283
+ msgstr ""
4284
+
4285
+ #: includes/class-wcj-purchase-data.php:272
4286
+ #: includes/class-wcj-purchase-data.php:303
4287
+ msgid ""
4288
+ "This fields will be added to product's edit page and will be included in "
4289
+ "product's purchase cost calculation."
4290
+ msgstr ""
4291
+
4292
+ #: includes/class-wcj-purchase-data.php:301
4293
+ msgid "Custom Price Fields"
4294
+ msgstr ""
4295
+
4296
+ #: includes/class-wcj-purchase-data.php:307
4297
+ msgid "Total Custom Price Fields"
4298
+ msgstr ""
4299
+
4300
+ #: includes/class-wcj-purchase-data.php:319
4301
+ msgid "Custom Price Field"
4302
+ msgstr ""
4303
+
4304
+ #: includes/class-wcj-purchase-data.php:322
4305
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:58
4306
+ msgid "Leave blank to disable"
4307
+ msgstr ""
4308
+
4309
+ #: includes/class-wcj-purchase-data.php:328
4310
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:44
4311
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:76
4312
+ msgid "Type"
4313
+ msgstr ""
4314
+
4315
+ #: includes/class-wcj-purchase-data.php:338
4316
+ msgid "Default Value"
4317
+ msgstr ""
4318
+
4319
+ #: includes/class-wcj-purchase-data.php:351
4320
+ msgid "Info Fields"
4321
+ msgstr ""
4322
+
4323
+ #: includes/class-wcj-purchase-data.php:353
4324
+ msgid "This fields will be added to product's edit page."
4325
+ msgstr ""
4326
+
4327
+ #: includes/class-wcj-related-products.php:25
4328
+ msgid "Related Products"
4329
+ msgstr ""
4330
+
4331
+ #: includes/class-wcj-related-products.php:26
4332
+ msgid ""
4333
+ "Change displayed WooCommerce related products number, columns, order, relate "
4334
+ "by tag and/or category, or hide related products completely."
4335
+ msgstr ""
4336
+
4337
+ #: includes/class-wcj-related-products.php:104
4338
+ msgid "Related Products Number"
4339
+ msgstr ""
4340
+
4341
+ #: includes/class-wcj-related-products.php:110
4342
+ msgid "Related Products Columns"
4343
+ msgstr ""
4344
+
4345
+ #: includes/class-wcj-related-products.php:116
4346
+ msgid "Order by"
4347
+ msgstr ""
4348
+
4349
+ #: includes/class-wcj-related-products.php:121
4350
+ msgid "Random"
4351
+ msgstr ""
4352
+
4353
+ #: includes/class-wcj-related-products.php:122
4354
+ msgid "Date"
4355
+ msgstr ""
4356
+
4357
+ #: includes/class-wcj-related-products.php:128
4358
+ msgid "Ignored if order by \"Random\" is selected above."
4359
+ msgstr ""
4360
+
4361
+ #: includes/class-wcj-related-products.php:133
4362
+ msgid "Ascending"
4363
+ msgstr ""
4364
+
4365
+ #: includes/class-wcj-related-products.php:134
4366
+ msgid "Descending"
4367
+ msgstr ""
4368
+
4369
+ #: includes/class-wcj-related-products.php:138
4370
+ msgid "Relate by Category"
4371
+ msgstr ""
4372
+
4373
+ #: includes/class-wcj-related-products.php:144
4374
+ msgid "Relate by Tag"
4375
+ msgstr ""
4376
+
4377
+ #: includes/class-wcj-related-products.php:150
4378
+ msgid "Hide Related Products"
4379
+ msgstr ""
4380
+
4381
+ #: includes/class-wcj-reports.php:34
4382
+ msgid "Reports"
4383
+ msgstr ""
4384
+
4385
+ #: includes/class-wcj-reports.php:35
4386
+ msgid "WooCommerce stock, sales, customers etc. reports."
4387
+ msgstr ""
4388
+
4389
+ #: includes/class-wcj-reports.php:73
4390
+ msgid "Booster: More Ranges - Months"
4391
+ msgstr ""
4392
+
4393
+ #: includes/class-wcj-reports.php:75 includes/class-wcj-reports.php:111
4394
+ msgid "Select Range"
4395
+ msgstr ""
4396
+
4397
+ #: includes/class-wcj-reports.php:109
4398
+ msgid "Booster: More Ranges"
4399
+ msgstr ""
4400
+
4401
+ #: includes/class-wcj-reports.php:119 includes/class-wcj-reports.php:121
4402
+ msgid "Last 14 Days"
4403
+ msgstr ""
4404
+
4405
+ #: includes/class-wcj-reports.php:126 includes/class-wcj-reports.php:128
4406
+ msgid "Last 30 Days"
4407
+ msgstr ""
4408
+
4409
+ #: includes/class-wcj-reports.php:133 includes/class-wcj-reports.php:135
4410
+ msgid "Last 3 Months"
4411
+ msgstr ""
4412
+
4413
+ #: includes/class-wcj-reports.php:140 includes/class-wcj-reports.php:142
4414
+ msgid "Last 6 Months"
4415
+ msgstr ""
4416
+
4417
+ #: includes/class-wcj-reports.php:147 includes/class-wcj-reports.php:149
4418
+ msgid "Last 12 Months"
4419
+ msgstr ""
4420
+
4421
+ #: includes/class-wcj-reports.php:154 includes/class-wcj-reports.php:156
4422
+ msgid "Last 24 Months"
4423
+ msgstr ""
4424
+
4425
+ #: includes/class-wcj-reports.php:161 includes/class-wcj-reports.php:163
4426
+ msgid "Same Days Last Month"
4427
+ msgstr ""
4428
+
4429
+ #: includes/class-wcj-reports.php:175 includes/class-wcj-reports.php:177
4430
+ msgid "Last Year"
4431
+ msgstr ""
4432
+
4433
+ #: includes/class-wcj-reports.php:241
4434
+ msgid "Booster: Product Sales"
4435
+ msgstr ""
4436
+
4437
+ #: includes/class-wcj-reports.php:248
4438
+ msgid "Booster: Monthly Sales"
4439
+ msgstr ""
4440
+
4441
+ #: includes/class-wcj-reports.php:248
4442
+ msgid "Beta"
4443
+ msgstr ""
4444
+
4445
+ #: includes/class-wcj-reports.php:263
4446
+ msgid "Booster: All in stock"
4447
+ msgstr ""
4448
+
4449
+ #: includes/class-wcj-reports.php:270
4450
+ msgid "Booster: Understocked"
4451
+ msgstr ""
4452
+
4453
+ #: includes/class-wcj-reports.php:277
4454
+ msgid "Booster: Overstocked"
4455
+ msgstr ""
4456
+
4457
+ #: includes/class-wcj-reports.php:292
4458
+ msgid "Booster: Customers by Country"
4459
+ msgstr ""
4460
+
4461
+ #: includes/class-wcj-reports.php:299
4462
+ msgid "Booster: Customers by Country Sets"
4463
+ msgstr ""
4464
+
4465
+ #: includes/class-wcj-reports.php:316
4466
+ msgid "Product Sales"
4467
+ msgstr ""
4468
+
4469
+ #: includes/class-wcj-reports.php:322
4470
+ msgid "Monthly Sales (with currency conversions)"
4471
+ msgstr ""
4472
+
4473
+ #: includes/class-wcj-reports.php:328
4474
+ msgid "Customers by Country"
4475
+ msgstr ""
4476
+
4477
+ #: includes/class-wcj-reports.php:334
4478
+ msgid "Customers by Country Sets"
4479
+ msgstr ""
4480
+
4481
+ #: includes/class-wcj-reports.php:340
4482
+ msgid "All in Stock with sales data"
4483
+ msgstr ""
4484
+
4485
+ #: includes/class-wcj-reports.php:346
4486
+ msgid "Understocked products (calculated by sales data)"
4487
+ msgstr ""
4488
+
4489
+ #: includes/class-wcj-reports.php:352
4490
+ msgid "Overstocked products (calculated by sales data)"
4491
+ msgstr ""
4492
+
4493
+ #: includes/class-wcj-reports.php:360
4494
+ msgid "Available Reports"
4495
+ msgstr ""
4496
+
4497
+ #: includes/class-wcj-reports.php:377
4498
+ msgid "View report"
4499
+ msgstr ""
4500
+
4501
+ #: includes/class-wcj-shipping-calculator.php:25
4502
+ msgid "Shipping Calculator"
4503
+ msgstr ""
4504
+
4505
+ #: includes/class-wcj-shipping-calculator.php:26
4506
+ msgid "Customize WooCommerce shipping calculator on cart page."
4507
+ msgstr ""
4508
+
4509
+ #: includes/class-wcj-shipping-calculator.php:110
4510
+ msgid "Shipping Calculator Options"
4511
+ msgstr ""
4512
+
4513
+ #: includes/class-wcj-shipping-calculator.php:115
4514
+ msgid "Enable City"
4515
+ msgstr ""
4516
+
4517
+ #: includes/class-wcj-shipping-calculator.php:122
4518
+ msgid "Enable Postcode"
4519
+ msgstr ""
4520
+
4521
+ #: includes/class-wcj-shipping-calculator.php:129
4522
+ msgid "Enable State"
4523
+ msgstr ""
4524
+
4525
+ #: includes/class-wcj-shipping-calculator.php:136
4526
+ msgid "Force Block Open"
4527
+ msgstr ""
4528
+
4529
+ #: includes/class-wcj-shipping-calculator.php:144
4530
+ msgid "Calculate Shipping button"
4531
+ msgstr ""
4532
+
4533
+ #: includes/class-wcj-shipping-calculator.php:145
4534
+ msgid ""
4535
+ "When \"Force Block Open\" options is enabled, set Calculate Shipping button "
4536
+ "options."
4537
+ msgstr ""
4538
+
4539
+ #: includes/class-wcj-shipping-calculator.php:151
4540
+ msgid "Make non clickable"
4541
+ msgstr ""
4542
+
4543
+ #: includes/class-wcj-shipping.php:27
4544
+ msgid "Add multiple custom shipping methods to WooCommerce."
4545
+ msgstr ""
4546
+
4547
+ #: includes/class-wcj-shipping.php:28
4548
+ msgid "Hide WooCommerce shipping when free is available."
4549
+ msgstr ""
4550
+
4551
+ #: includes/class-wcj-shipping.php:29
4552
+ msgid "Display \"left to free shipping\" info."
4553
+ msgstr ""
4554
+
4555
+ #: includes/class-wcj-shipping.php:71 includes/class-wcj-shipping.php:81
4556
+ #: includes/class-wcj-shipping.php:91 includes/class-wcj-shipping.php:247
4557
+ #: includes/class-wcj-shipping.php:281 includes/class-wcj-shipping.php:319
4558
+ #: includes/functions/wcj-functions.php:150
4559
+ #: includes/widgets/class-wcj-widget-left-to-free-shipping.php:53
4560
+ msgid "%left_to_free% left to free shipping"
4561
+ msgstr ""
4562
+
4563
+ #: includes/class-wcj-shipping.php:136
4564
+ msgid "Booster: Hide shipping"
4565
+ msgstr ""
4566
+
4567
+ #: includes/class-wcj-shipping.php:137 includes/class-wcj-shipping.php:211
4568
+ msgid "Hide local delivery when free is available"
4569
+ msgstr ""
4570
+
4571
+ #: includes/class-wcj-shipping.php:145 includes/class-wcj-shipping.php:218
4572
+ msgid "Hide all when free is available"
4573
+ msgstr ""
4574
+
4575
+ #: includes/class-wcj-shipping.php:165
4576
+ msgid "WooCommerce > Settings > Shipping"
4577
+ msgstr ""
4578
+
4579
+ #: includes/class-wcj-shipping.php:168
4580
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:72
4581
+ msgid "Custom Shipping"
4582
+ msgstr ""
4583
+
4584
+ #: includes/class-wcj-shipping.php:171
4585
+ msgid "This section lets you set number of custom shipping methods to add."
4586
+ msgstr ""
4587
+
4588
+ #: includes/class-wcj-shipping.php:172
4589
+ msgid "After setting the number, visit %s to set each method options."
4590
+ msgstr ""
4591
+
4592
+ #: includes/class-wcj-shipping.php:175
4593
+ msgid "Custom Shipping Methods Number"
4594
+ msgstr ""
4595
+
4596
+ #: includes/class-wcj-shipping.php:190
4597
+ msgid "Admin Title Custom Shipping"
4598
+ msgstr ""
4599
+
4600
+ #: includes/class-wcj-shipping.php:204
4601
+ msgid "Hide if free is available"
4602
+ msgstr ""
4603
+
4604
+ #: includes/class-wcj-shipping.php:206
4605
+ msgid ""
4606
+ "This section lets you hide other shipping options when free shipping is "
4607
+ "available on shop frontend."
4608
+ msgstr ""
4609
+
4610
+ #: includes/class-wcj-shipping.php:210
4611
+ msgid "Hide shipping"
4612
+ msgstr ""
4613
+
4614
+ #: includes/class-wcj-shipping.php:229
4615
+ msgid "Left to Free Shipping Info Options"
4616
+ msgstr ""
4617
+
4618
+ #: includes/class-wcj-shipping.php:231
4619
+ msgid ""
4620
+ "This section lets you enable info on cart, mini cart and checkout pages."
4621
+ msgstr ""
4622
+
4623
+ #: includes/class-wcj-shipping.php:232
4624
+ msgid ""
4625
+ "You can also use <em>Booster - Left to Free Shipping</em> widget, <em>"
4626
+ "[wcj_get_left_to_free_shipping content=\"\"]</em> shortcode or "
4627
+ "<em>wcj_get_left_to_free_shipping( $content );</em> function."
4628
+ msgstr ""
4629
+
4630
+ #: includes/class-wcj-shipping.php:233
4631
+ msgid ""
4632
+ "In content you can use: <em>%left_to_free%</em> and <em>"
4633
+ "%free_shipping_min_amount%</em> shortcodes."
4634
+ msgstr ""
4635
+
4636
+ #: includes/class-wcj-shipping.php:237
4637
+ msgid "Info on Cart"
4638
+ msgstr ""
4639
+
4640
+ #: includes/class-wcj-shipping.php:262 includes/class-wcj-shipping.php:300
4641
+ #: includes/class-wcj-shipping.php:344
4642
+ msgid "Position Order (Priority)"
4643
+ msgstr ""
4644
+
4645
+ #: includes/class-wcj-shipping.php:269
4646
+ msgid "Info on Mini Cart"
4647
+ msgstr ""
4648
+
4649
+ #: includes/class-wcj-shipping.php:307
4650
+ msgid "Info on Checkout"
4651
+ msgstr ""
4652
+
4653
+ #: includes/class-wcj-shipping.php:351
4654
+ msgid "Message on Free Shipping Reached"
4655
+ msgstr ""
4656
+
4657
+ #: includes/class-wcj-shipping.php:352
4658
+ msgid "You can set it empty"
4659
+ msgstr ""
4660
+
4661
+ #: includes/class-wcj-shipping.php:354
4662
+ #: includes/functions/wcj-functions.php:160
4663
+ msgid "You have Free delivery"
4664
+ msgstr ""
4665
+
4666
+ #: includes/class-wcj-sku.php:26 includes/class-wcj-sku.php:197
4667
+ msgid "SKU"
4668
+ msgstr ""
4669
+
4670
+ #: includes/class-wcj-sku.php:27
4671
+ msgid "Generate WooCommerce SKUs automatically."
4672
+ msgstr ""
4673
+
4674
+ #: includes/class-wcj-sku.php:33
4675
+ msgid "Autogenerate SKUs"
4676
+ msgstr ""
4677
+
4678
+ #: includes/class-wcj-sku.php:34
4679
+ msgid "The tool generates and sets product SKUs for existing products."
4680
+ msgstr ""
4681
+
4682
+ #: includes/class-wcj-sku.php:203
4683
+ msgid "SKUs generated and set successfully!"
4684
+ msgstr ""
4685
+
4686
+ #: includes/class-wcj-sku.php:209
4687
+ msgid "Preview SKUs"
4688
+ msgstr ""
4689
+
4690
+ #: includes/class-wcj-sku.php:210
4691
+ msgid "Set SKUs"
4692
+ msgstr ""
4693
+
4694
+ #: includes/class-wcj-sku.php:226
4695
+ msgid "SKU Format Options"
4696
+ msgstr ""
4697
+
4698
+ #: includes/class-wcj-sku.php:246 includes/class-wcj-sku.php:301
4699
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:57
4700
+ msgid "Prefix"
4701
+ msgstr ""
4702
+
4703
+ #: includes/class-wcj-sku.php:253
4704
+ msgid "Minimum Number Length"
4705
+ msgstr ""
4706
+
4707
+ #: includes/class-wcj-sku.php:260 includes/class-wcj-sku.php:310
4708
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:69
4709
+ msgid "Suffix"
4710
+ msgstr ""
4711
+
4712
+ #: includes/class-wcj-sku.php:269
4713
+ msgid "Variable Products Variations"
4714
+ msgstr ""
4715
+
4716
+ #: includes/class-wcj-sku.php:270
4717
+ msgid ""
4718
+ "Please note, that on new variable product creation, variations will get same "
4719
+ "SKUs as parent product, and if you want variations to have different SKUs, "
4720
+ "you will need to run \"Autogenerate SKUs\" tool manually."
4721
+ msgstr ""
4722
+
4723
+ #: includes/class-wcj-sku.php:275
4724
+ msgid "SKU same as parent's product"
4725
+ msgstr ""
4726
+
4727
+ #: includes/class-wcj-sku.php:276
4728
+ msgid "Generate different SKU for each variation"
4729
+ msgstr ""
4730
+
4731
+ #: includes/class-wcj-sku.php:277
4732
+ msgid "SKU same as parent's product + variation letter suffix"
4733
+ msgstr ""
4734
+
4735
+ #: includes/class-wcj-sku.php:290
4736
+ msgid "Categories Options"
4737
+ msgstr ""
4738
+
4739
+ #: includes/class-wcj-sku.php:327
4740
+ msgid "When enabled - all new products will be given (autogenerated) SKU."
4741
+ msgstr ""
4742
+
4743
+ #: includes/class-wcj-sku.php:328
4744
+ msgid ""
4745
+ "If you wish to set SKUs for existing products, use \"Autogenerate SKUs\" "
4746
+ "Tool."
4747
+ msgstr ""
4748
+
4749
+ #: includes/class-wcj-sorting.php:27
4750
+ msgid "Sorting"
4751
+ msgstr ""
4752
+
4753
+ #: includes/class-wcj-sorting.php:28
4754
+ msgid ""
4755
+ "Add more WooCommerce sorting options or remove all sorting including default."
4756
+ msgstr ""
4757
+
4758
+ #: includes/class-wcj-sorting.php:68
4759
+ msgid "WooJetpack: Remove All Sorting"
4760
+ msgstr ""
4761
+
4762
+ #: includes/class-wcj-sorting.php:72
4763
+ msgid "Completely remove sorting from the shop front end"
4764
+ msgstr ""
4765
+
4766
+ #: includes/class-wcj-sorting.php:167 includes/class-wcj-sorting.php:172
4767
+ msgid "Remove All Sorting"
4768
+ msgstr ""
4769
+
4770
+ #: includes/class-wcj-sorting.php:173
4771
+ msgid "Remove all sorting (including WooCommerce default)"
4772
+ msgstr ""
4773
+
4774
+ #: includes/class-wcj-sorting.php:185 includes/class-wcj-sorting.php:190
4775
+ msgid "Add More Sorting"
4776
+ msgstr ""
4777
+
4778
+ #: includes/class-wcj-sorting.php:197
4779
+ msgid "Sort by Name"
4780
+ msgstr ""
4781
+
4782
+ #: includes/class-wcj-sorting.php:198 includes/class-wcj-sorting.php:201
4783
+ msgid "Sort by title: A to Z"
4784
+ msgstr ""
4785
+
4786
+ #: includes/class-wcj-sorting.php:199 includes/class-wcj-sorting.php:208
4787
+ #: includes/class-wcj-sorting.php:217 includes/class-wcj-sorting.php:226
4788
+ #: includes/class-wcj-sorting.php:244 includes/class-wcj-sorting.php:253
4789
+ msgid "Text to show on frontend. Leave blank to disable."
4790
+ msgstr ""
4791
+
4792
+ #: includes/class-wcj-sorting.php:207 includes/class-wcj-sorting.php:210
4793
+ msgid "Sort by title: Z to A"
4794
+ msgstr ""
4795
+
4796
+ #: includes/class-wcj-sorting.php:215
4797
+ msgid "Sort by SKU"
4798
+ msgstr ""
4799
+
4800
+ #: includes/class-wcj-sorting.php:216 includes/class-wcj-sorting.php:219
4801
+ msgid "Sort by SKU: low to high"
4802
+ msgstr ""
4803
+
4804
+ #: includes/class-wcj-sorting.php:225 includes/class-wcj-sorting.php:228
4805
+ msgid "Sort by SKU: high to low"
4806
+ msgstr ""
4807
+
4808
+ #: includes/class-wcj-sorting.php:234
4809
+ msgid "Sort SKUs as numbers instead of as texts"
4810
+ msgstr ""
4811
+
4812
+ #: includes/class-wcj-sorting.php:242
4813
+ msgid "Sort by stock quantity"
4814
+ msgstr ""
4815
+
4816
+ #: includes/class-wcj-sorting.php:243 includes/class-wcj-sorting.php:246
4817
+ msgid "Sort by stock quantity: low to high"
4818
+ msgstr ""
4819
+
4820
+ #: includes/class-wcj-sorting.php:252 includes/class-wcj-sorting.php:255
4821
+ msgid "Sort by stock quantity: high to low"
4822
+ msgstr ""
4823
+
4824
+ #: includes/class-wcj-wholesale-price.php:27
4825
+ msgid "Wholesale Price"
4826
+ msgstr ""
4827
+
4828
+ #: includes/class-wcj-wholesale-price.php:28
4829
+ msgid ""
4830
+ "Set WooCommerce wholesale pricing depending on product quantity in cart (buy "
4831
+ "more pay less)."
4832
+ msgstr ""
4833
+
4834
+ #: includes/class-wcj-wholesale-price.php:227
4835
+ msgid "Enable per Product Levels"
4836
+ msgstr ""
4837
+
4838
+ #: includes/class-wcj-wholesale-price.php:237
4839
+ #: includes/class-wcj-wholesale-price.php:319
4840
+ msgid "Discount Type"
4841
+ msgstr ""
4842
+
4843
+ #: includes/class-wcj-wholesale-price.php:243
4844
+ #: includes/class-wcj-wholesale-price.php:338
4845
+ msgid "Number of levels"
4846
+ msgstr ""
4847
+
4848
+ #: includes/class-wcj-wholesale-price.php:243
4849
+ msgid "Press \"Update\" after you change this number"
4850
+ msgstr ""
4851
+
4852
+ #: includes/class-wcj-wholesale-price.php:256
4853
+ #: includes/class-wcj-wholesale-price.php:262
4854
+ msgid "Level"
4855
+ msgstr ""
4856
+
4857
+ #: includes/class-wcj-wholesale-price.php:256
4858
+ #: includes/class-wcj-wholesale-price.php:351
4859
+ msgid "Min quantity"
4860
+ msgstr ""
4861
+
4862
+ #: includes/class-wcj-wholesale-price.php:262
4863
+ #: includes/class-wcj-wholesale-price.php:359
4864
+ #: includes/class-wcj-wholesale-price.php:360
4865
+ msgid "Discount"
4866
+ msgstr ""
4867
+
4868
+ #: includes/class-wcj-wholesale-price.php:280
4869
+ msgid ""
4870
+ "Wholesale Price Levels Options. If you want to display prices table on "
4871
+ "frontend, use [wcj_product_wholesale_price_table] shortcode."
4872
+ msgstr ""
4873
+
4874
+ #: includes/class-wcj-wholesale-price.php:284
4875
+ msgid "Enable per Product"
4876
+ msgstr ""
4877
+
4878
+ #: includes/class-wcj-wholesale-price.php:291
4879
+ msgid "Use total cart quantity instead of product quantity"
4880
+ msgstr ""
4881
+
4882
+ #: includes/class-wcj-wholesale-price.php:298
4883
+ msgid "Apply wholesale discount only if no other cart discounts were applied"
4884
+ msgstr ""
4885
+
4886
+ #: includes/class-wcj-wholesale-price.php:305
4887
+ msgid "Show discount info on cart page"
4888
+ msgstr ""
4889
+
4890
+ #: includes/class-wcj-wholesale-price.php:306
4891
+ msgid "Show"
4892
+ msgstr ""
4893
+
4894
+ #: includes/class-wcj-wholesale-price.php:312
4895
+ msgid "If show discount info on cart page is enabled, set format here"
4896
+ msgstr ""
4897
+
4898
+ #: includes/class-wcj-wholesale-price.php:329
4899
+ msgid "Products to include"
4900
+ msgstr ""
4901
+
4902
+ #: includes/class-wcj-wholesale-price.php:330
4903
+ msgid "Leave blank to include all products."
4904
+ msgstr ""
4905
+
4906
+ #: includes/class-wcj-wholesale-price.php:352
4907
+ msgid "Minimum quantity to apply discount"
4908
+ msgstr ""
4909
+
4910
+ #: includes/class-wcj-wpml.php:26
4911
+ msgid "Booster WPML"
4912
+ msgstr ""
4913
+
4914
+ #: includes/class-wcj-wpml.php:27
4915
+ msgid "Booster for WooCommerce basic WPML support."
4916
+ msgstr ""
4917
+
4918
+ #: includes/class-wcj-wpml.php:66 includes/classes/class-wcj-module.php:280
4919
+ msgid "Tools"
4920
+ msgstr ""
4921
+
4922
+ #: includes/class-wcj-wpml.php:71 includes/classes/class-wcj-module.php:286
4923
+ msgid "Module Tools"
4924
+ msgstr ""
4925
+
4926
+ #: includes/class-wcj-wpml.php:76 includes/class-wcj-wpml.php:79
4927
+ msgid "Regenerate wpml-config.xml file"
4928
+ msgstr ""
4929
+
4930
+ #: includes/class-wcj-wpml.php:104
4931
+ msgid "File wpml-config.xml successfully regenerated!"
4932
+ msgstr ""
4933
+
4934
+ #: includes/classes/class-wcj-module.php:50
4935
+ msgid ""
4936
+ "Are you sure you want to reset current module's settings to default values?"
4937
+ msgstr ""
4938
+
4939
+ #: includes/classes/class-wcj-module.php:60
4940
+ msgid "Settings have been reset to defaults."
4941
+ msgstr ""
4942
+
4943
+ #: includes/classes/class-wcj-module.php:268
4944
+ msgid "Back to Module Settings"
4945
+ msgstr ""
4946
+
4947
+ #: includes/classes/class-wcj-module.php:360
4948
+ msgid "disabled"
4949
+ msgstr ""
4950
+
4951
+ #: includes/classes/class-wcj-module.php:406
4952
+ msgid "Reset Settings"
4953
+ msgstr ""
4954
+
4955
+ #: includes/classes/class-wcj-module.php:412
4956
+ msgid "Reset Module to Default Settings"
4957
+ msgstr ""
4958
+
4959
+ #: includes/classes/class-wcj-module.php:413
4960
+ msgid "Reset Submodule to Default Settings"
4961
+ msgstr ""
4962
+
4963
+ #: includes/classes/class-wcj-module.php:416
4964
+ msgid "Reset settings"
4965
+ msgstr ""
4966
+
4967
+ #: includes/classes/class-wcj-module.php:450
4968
+ msgid "Module Options"
4969
+ msgstr ""
4970
+
4971
+ #: includes/classes/class-wcj-module.php:457
4972
+ msgid "Enable Module"
4973
+ msgstr ""
4974
+
4975
+ #: includes/classes/class-wcj-pdf-invoice.php:258
4976
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:178
4977
+ msgid "Unexpected error"
4978
+ msgstr ""
4979
+
4980
+ #: includes/currencies/wcj-currencies.php:14
4981
+ msgid "United Arab Emirates Dirham"
4982
+ msgstr ""
4983
+
4984
+ #: includes/currencies/wcj-currencies.php:15
4985
+ msgid "Afghan afghani"
4986
+ msgstr ""
4987
+
4988
+ #: includes/currencies/wcj-currencies.php:16
4989
+ msgid "Albanian lek"
4990
+ msgstr ""
4991
+
4992
+ #: includes/currencies/wcj-currencies.php:17
4993
+ msgid "Armenian dram"
4994
+ msgstr ""
4995
+
4996
+ #: includes/currencies/wcj-currencies.php:18
4997
+ msgid "Netherlands Antillean gulden"
4998
+ msgstr ""
4999
+
5000
+ #: includes/currencies/wcj-currencies.php:19
5001
+ msgid "Angolan kwanza"
5002
+ msgstr ""
5003
+
5004
+ #: includes/currencies/wcj-currencies.php:20
5005
+ msgid "Argentine Peso"
5006
+ msgstr ""
5007
+
5008
+ #: includes/currencies/wcj-currencies.php:21
5009
+ msgid "Australian Dollars"
5010
+ msgstr ""
5011
+
5012
+ #: includes/currencies/wcj-currencies.php:22
5013
+ msgid "Aruban florin"
5014
+ msgstr ""
5015
+
5016
+ #: includes/currencies/wcj-currencies.php:23
5017
+ msgid "Azerbaijani manat"
5018
+ msgstr ""
5019
+
5020
+ #: includes/currencies/wcj-currencies.php:24
5021
+ msgid "Bosnia and Herzegovina konvertibilna marka"
5022
+ msgstr ""
5023
+
5024
+ #: includes/currencies/wcj-currencies.php:25
5025
+ msgid "Barbadian dollar"
5026
+ msgstr ""
5027
+
5028
+ #: includes/currencies/wcj-currencies.php:26
5029
+ msgid "Bangladeshi Taka"
5030
+ msgstr ""
5031
+
5032
+ #: includes/currencies/wcj-currencies.php:27
5033
+ msgid "Bulgarian Lev"
5034
+ msgstr ""
5035
+
5036
+ #: includes/currencies/wcj-currencies.php:28
5037
+ msgid "Bahraini dinar"
5038
+ msgstr ""
5039
+
5040
+ #: includes/currencies/wcj-currencies.php:29
5041
+ msgid "Burundi franc"
5042
+ msgstr ""
5043
+
5044
+ #: includes/currencies/wcj-currencies.php:30
5045
+ msgid "Belarusian ruble"
5046
+ msgstr ""
5047
+
5048
+ #: includes/currencies/wcj-currencies.php:31
5049
+ msgid "Brunei dollar"
5050
+ msgstr ""
5051
+
5052
+ #: includes/currencies/wcj-currencies.php:32
5053
+ msgid "Bolivian boliviano"
5054
+ msgstr ""
5055
+
5056
+ #: includes/currencies/wcj-currencies.php:33
5057
+ msgid "Brazilian Real"
5058
+ msgstr ""
5059
+
5060
+ #: includes/currencies/wcj-currencies.php:34
5061
+ msgid "Bahamian dollar"
5062
+ msgstr ""
5063
+
5064
+ #: includes/currencies/wcj-currencies.php:35
5065
+ msgid "Bhutanese ngultrum"
5066
+ msgstr ""
5067
+
5068
+ #: includes/currencies/wcj-currencies.php:36
5069
+ msgid "Botswana pula"
5070
+ msgstr ""
5071
+
5072
+ #: includes/currencies/wcj-currencies.php:37
5073
+ msgid "Belize dollar"
5074
+ msgstr ""
5075
+
5076
+ #: includes/currencies/wcj-currencies.php:38
5077
+ msgid "Canadian Dollars"
5078
+ msgstr ""
5079
+
5080
+ #: includes/currencies/wcj-currencies.php:39
5081
+ msgid "Congolese franc"
5082
+ msgstr ""
5083
+
5084
+ #: includes/currencies/wcj-currencies.php:40
5085
+ msgid "Swiss Franc"
5086
+ msgstr ""
5087
+
5088
+ #: includes/currencies/wcj-currencies.php:41
5089
+ msgid "Chilean Peso"
5090
+ msgstr ""
5091
+
5092
+ #: includes/currencies/wcj-currencies.php:42
5093
+ msgid "Chinese Yuan"
5094
+ msgstr ""
5095
+
5096
+ #: includes/currencies/wcj-currencies.php:43
5097
+ msgid "Colombian Peso"
5098
+ msgstr ""
5099
+
5100
+ #: includes/currencies/wcj-currencies.php:44
5101
+ msgid "Costa Rican colon"
5102
+ msgstr ""
5103
+
5104
+ #: includes/currencies/wcj-currencies.php:45
5105
+ msgid "Cuban peso"
5106
+ msgstr ""
5107
+
5108
+ #: includes/currencies/wcj-currencies.php:46
5109
+ msgid "Cape Verdean escudo"
5110
+ msgstr ""
5111
+
5112
+ #: includes/currencies/wcj-currencies.php:47
5113
+ msgid "Czech Koruna"
5114
+ msgstr ""
5115
+
5116
+ #: includes/currencies/wcj-currencies.php:48
5117
+ msgid "Djiboutian franc"
5118
+ msgstr ""
5119
+
5120
+ #: includes/currencies/wcj-currencies.php:49
5121
+ msgid "Danish Krone"
5122
+ msgstr ""
5123
+
5124
+ #: includes/currencies/wcj-currencies.php:50
5125
+ msgid "Dominican Peso"
5126
+ msgstr ""
5127
+
5128
+ #: includes/currencies/wcj-currencies.php:51
5129
+ msgid "Algerian dinar"
5130
+ msgstr ""
5131
+
5132
+ #: includes/currencies/wcj-currencies.php:52
5133
+ msgid "Estonian kroon"
5134
+ msgstr ""
5135
+
5136
+ #: includes/currencies/wcj-currencies.php:53
5137
+ msgid "Egyptian Pound"
5138
+ msgstr ""
5139
+
5140
+ #: includes/currencies/wcj-currencies.php:54
5141
+ msgid "Eritrean nakfa"
5142
+ msgstr ""
5143
+
5144
+ #: includes/currencies/wcj-currencies.php:55
5145
+ msgid "Ethiopian birr"
5146
+ msgstr ""
5147
+
5148
+ #: includes/currencies/wcj-currencies.php:56
5149
+ msgid "Euros"
5150
+ msgstr ""
5151
+
5152
+ #: includes/currencies/wcj-currencies.php:57
5153
+ msgid "Fijian dollar"
5154
+ msgstr ""
5155
+
5156
+ #: includes/currencies/wcj-currencies.php:58
5157
+ msgid "Falkland Islands pound"
5158
+ msgstr ""
5159
+
5160
+ #: includes/currencies/wcj-currencies.php:59
5161
+ msgid "Pounds Sterling"
5162
+ msgstr ""
5163
+
5164
+ #: includes/currencies/wcj-currencies.php:60
5165
+ msgid "Georgian lari"
5166
+ msgstr ""
5167
+
5168
+ #: includes/currencies/wcj-currencies.php:61
5169
+ msgid "Ghanaian cedi"
5170
+ msgstr ""
5171
+
5172
+ #: includes/currencies/wcj-currencies.php:62
5173
+ msgid "Gibraltar pound"
5174
+ msgstr ""
5175
+
5176
+ #: includes/currencies/wcj-currencies.php:63
5177
+ msgid "Guyanese dollar"
5178
+ msgstr ""
5179
+
5180
+ #: includes/currencies/wcj-currencies.php:64
5181
+ msgid "Gambian dalasi"
5182
+ msgstr ""
5183
+
5184
+ #: includes/currencies/wcj-currencies.php:65
5185
+ msgid "Guinean franc"
5186
+ msgstr ""
5187
+
5188
+ #: includes/currencies/wcj-currencies.php:66
5189
+ #: includes/currencies/wcj-currencies.php:169
5190
+ msgid "Central African CFA franc"
5191
+ msgstr ""
5192
+
5193
+ #: includes/currencies/wcj-currencies.php:67
5194
+ msgid "Guatemalan quetzal"
5195
+ msgstr ""
5196
+
5197
+ #: includes/currencies/wcj-currencies.php:68
5198
+ msgid "Hong Kong Dollar"
5199
+ msgstr ""
5200
+
5201
+ #: includes/currencies/wcj-currencies.php:69
5202
+ msgid "Honduran lempira"
5203
+ msgstr ""
5204
+
5205
+ #: includes/currencies/wcj-currencies.php:70
5206
+ msgid "Croatia kuna"
5207
+ msgstr ""
5208
+
5209
+ #: includes/currencies/wcj-currencies.php:71
5210
+ msgid "Haitian gourde"
5211
+ msgstr ""
5212
+
5213
+ #: includes/currencies/wcj-currencies.php:72
5214
+ msgid "Hungarian Forint"
5215
+ msgstr ""
5216
+
5217
+ #: includes/currencies/wcj-currencies.php:73
5218
+ msgid "Indonesia Rupiah"
5219
+ msgstr ""
5220
+
5221
+ #: includes/currencies/wcj-currencies.php:74
5222
+ msgid "Israeli Shekel"
5223
+ msgstr ""
5224
+
5225
+ #: includes/currencies/wcj-currencies.php:75
5226
+ msgid "Indian Rupee"
5227
+ msgstr ""
5228
+
5229
+ #: includes/currencies/wcj-currencies.php:76
5230
+ msgid "Iraqi dinar"
5231
+ msgstr ""
5232
+
5233
+ #: includes/currencies/wcj-currencies.php:77
5234
+ msgid "Iranian rial"
5235
+ msgstr ""
5236
+
5237
+ #: includes/currencies/wcj-currencies.php:78
5238
+ msgid "Icelandic krona"
5239
+ msgstr ""
5240
+
5241
+ #: includes/currencies/wcj-currencies.php:79
5242
+ msgid "Yemeni rial"
5243
+ msgstr ""
5244
+
5245
+ #: includes/currencies/wcj-currencies.php:80
5246
+ msgid "Jamaican dollar"
5247
+ msgstr ""
5248
+
5249
+ #: includes/currencies/wcj-currencies.php:81
5250
+ msgid "Jordanian dinar"
5251
+ msgstr ""
5252
+
5253
+ #: includes/currencies/wcj-currencies.php:82
5254
+ msgid "Japanese Yen"
5255
+ msgstr ""
5256
+
5257
+ #: includes/currencies/wcj-currencies.php:83
5258
+ msgid "Kenyan shilling"
5259
+ msgstr ""
5260
+
5261
+ #: includes/currencies/wcj-currencies.php:84
5262
+ msgid "Kyrgyzstani som"
5263
+ msgstr ""
5264
+
5265
+ #: includes/currencies/wcj-currencies.php:85
5266
+ msgid "Cambodian riel"
5267
+ msgstr ""
5268
+
5269
+ #: includes/currencies/wcj-currencies.php:86
5270
+ msgid "Lao kip"
5271
+ msgstr ""
5272
+
5273
+ #: includes/currencies/wcj-currencies.php:87
5274
+ msgid "Cayman Islands dollar"
5275
+ msgstr ""
5276
+
5277
+ #: includes/currencies/wcj-currencies.php:88
5278
+ msgid "Comorian franc"
5279
+ msgstr ""
5280
+
5281
+ #: includes/currencies/wcj-currencies.php:89
5282
+ msgid "North Korean won"
5283
+ msgstr ""
5284
+
5285
+ #: includes/currencies/wcj-currencies.php:90
5286
+ msgid "South Korean Won"
5287
+ msgstr ""
5288
+
5289
+ #: includes/currencies/wcj-currencies.php:91
5290
+ msgid "Kuwaiti dinar"
5291
+ msgstr ""
5292
+
5293
+ #: includes/currencies/wcj-currencies.php:92
5294
+ msgid "Kazakhstani tenge"
5295
+ msgstr ""
5296
+
5297
+ #: includes/currencies/wcj-currencies.php:93
5298
+ msgid "Lao Kip"
5299
+ msgstr ""
5300
+
5301
+ #: includes/currencies/wcj-currencies.php:94
5302
+ msgid "Lebanese lira"
5303
+ msgstr ""
5304
+
5305
+ #: includes/currencies/wcj-currencies.php:95
5306
+ msgid "Libyan dinar"
5307
+ msgstr ""
5308
+
5309
+ #: includes/currencies/wcj-currencies.php:96
5310
+ msgid "Sri Lankan rupee"
5311
+ msgstr ""
5312
+
5313
+ #: includes/currencies/wcj-currencies.php:97
5314
+ msgid "Liberian dollar"
5315
+ msgstr ""
5316
+
5317
+ #: includes/currencies/wcj-currencies.php:98
5318
+ msgid "Lesotho loti"
5319
+ msgstr ""
5320
+
5321
+ #: includes/currencies/wcj-currencies.php:99
5322
+ msgid "Lithuanian litas"
5323
+ msgstr ""
5324
+
5325
+ #: includes/currencies/wcj-currencies.php:100
5326
+ msgid "Latvian lats"
5327
+ msgstr ""
5328
+
5329
+ #: includes/currencies/wcj-currencies.php:101
5330
+ msgid "Moroccan dirham"
5331
+ msgstr ""
5332
+
5333
+ #: includes/currencies/wcj-currencies.php:102
5334
+ msgid "Moldovan leu"
5335
+ msgstr ""
5336
+
5337
+ #: includes/currencies/wcj-currencies.php:103
5338
+ msgid "Malagasy ariary"
5339
+ msgstr ""
5340
+
5341
+ #: includes/currencies/wcj-currencies.php:104
5342
+ msgid "Malaysian ringgit"
5343
+ msgstr ""
5344
+
5345
+ #: includes/currencies/wcj-currencies.php:105
5346
+ msgid "Macedonian denar"
5347
+ msgstr ""
5348
+
5349
+ #: includes/currencies/wcj-currencies.php:106
5350
+ msgid "Myanma kyat"
5351
+ msgstr ""
5352
+
5353
+ #: includes/currencies/wcj-currencies.php:107
5354
+ msgid "Mongolian tugrik"
5355
+ msgstr ""
5356
+
5357
+ #: includes/currencies/wcj-currencies.php:108
5358
+ msgid "Macanese pataca"
5359
+ msgstr ""
5360
+
5361
+ #: includes/currencies/wcj-currencies.php:109
5362
+ msgid "Mauritanian ouguiya"
5363
+ msgstr ""
5364
+
5365
+ #: includes/currencies/wcj-currencies.php:110
5366
+ msgid "Mauritian rupee"
5367
+ msgstr ""
5368
+
5369
+ #: includes/currencies/wcj-currencies.php:111
5370
+ msgid "Maldivian rufiyaa"
5371
+ msgstr ""
5372
+
5373
+ #: includes/currencies/wcj-currencies.php:112
5374
+ msgid "Malawian kwacha"
5375
+ msgstr ""
5376
+
5377
+ #: includes/currencies/wcj-currencies.php:113
5378
+ msgid "Mexican Peso"
5379
+ msgstr ""
5380
+
5381
+ #: includes/currencies/wcj-currencies.php:114
5382
+ msgid "Malaysian Ringgits"
5383
+ msgstr ""
5384
+
5385
+ #: includes/currencies/wcj-currencies.php:115
5386
+ msgid "Mozambican metical"
5387
+ msgstr ""
5388
+
5389
+ #: includes/currencies/wcj-currencies.php:116
5390
+ msgid "Namibian dollar"
5391
+ msgstr ""
5392
+
5393
+ #: includes/currencies/wcj-currencies.php:117
5394
+ msgid "Nigerian Naira"
5395
+ msgstr ""
5396
+
5397
+ #: includes/currencies/wcj-currencies.php:118
5398
+ msgid "Nicaraguan cordoba"
5399
+ msgstr ""
5400
+
5401
+ #: includes/currencies/wcj-currencies.php:119
5402
+ msgid "Norwegian Krone"
5403
+ msgstr ""
5404
+
5405
+ #: includes/currencies/wcj-currencies.php:120
5406
+ msgid "Nepali Rupee"
5407
+ msgstr ""
5408
+
5409
+ #: includes/currencies/wcj-currencies.php:121
5410
+ msgid "New Zealand Dollar"
5411
+ msgstr ""
5412
+
5413
+ #: includes/currencies/wcj-currencies.php:122
5414
+ msgid "Omani rial"
5415
+ msgstr ""
5416
+
5417
+ #: includes/currencies/wcj-currencies.php:123
5418
+ msgid "Panamanian balboa"
5419
+ msgstr ""
5420
+
5421
+ #: includes/currencies/wcj-currencies.php:124
5422
+ msgid "Peruvian nuevo sol"
5423
+ msgstr ""
5424
+
5425
+ #: includes/currencies/wcj-currencies.php:125
5426
+ msgid "Papua New Guinean kina"
5427
+ msgstr ""
5428
+
5429
+ #: includes/currencies/wcj-currencies.php:126
5430
+ msgid "Philippine Pesos"
5431
+ msgstr ""
5432
+
5433
+ #: includes/currencies/wcj-currencies.php:127
5434
+ msgid "Paraguayan guarani"
5435
+ msgstr ""
5436
+
5437
+ #: includes/currencies/wcj-currencies.php:128
5438
+ msgid "Pakistani Rupee"
5439
+ msgstr ""
5440
+
5441
+ #: includes/currencies/wcj-currencies.php:129
5442
+ msgid "Polish Zloty"
5443
+ msgstr ""
5444
+
5445
+ #: includes/currencies/wcj-currencies.php:130
5446
+ msgid "Paraguayan Guaraní"
5447
+ msgstr ""
5448
+
5449
+ #: includes/currencies/wcj-currencies.php:131
5450
+ msgid "Qatari riyal"
5451
+ msgstr ""
5452
+
5453
+ #: includes/currencies/wcj-currencies.php:132
5454
+ msgid "Chinese renminbi"
5455
+ msgstr ""
5456
+
5457
+ #: includes/currencies/wcj-currencies.php:133
5458
+ msgid "Romanian Leu"
5459
+ msgstr ""
5460
+
5461
+ #: includes/currencies/wcj-currencies.php:134
5462
+ msgid "Serbian dinar"
5463
+ msgstr ""
5464
+
5465
+ #: includes/currencies/wcj-currencies.php:135
5466
+ msgid "Russian Ruble"
5467
+ msgstr ""
5468
+
5469
+ #: includes/currencies/wcj-currencies.php:136
5470
+ msgid "Rwandan franc"
5471
+ msgstr ""
5472
+
5473
+ #: includes/currencies/wcj-currencies.php:137
5474
+ msgid "Saudi Riyal"
5475
+ msgstr ""
5476
+
5477
+ #: includes/currencies/wcj-currencies.php:138
5478
+ msgid "Solomon Islands dollar"
5479
+ msgstr ""
5480
+
5481
+ #: includes/currencies/wcj-currencies.php:139
5482
+ msgid "Seychellois rupee"
5483
+ msgstr ""
5484
+
5485
+ #: includes/currencies/wcj-currencies.php:140
5486
+ msgid "Sudanese pound"
5487
+ msgstr ""
5488
+
5489
+ #: includes/currencies/wcj-currencies.php:141
5490
+ msgid "Swedish Krona"
5491
+ msgstr ""
5492
+
5493
+ #: includes/currencies/wcj-currencies.php:142
5494
+ msgid "Singapore Dollar"
5495
+ msgstr ""
5496
+
5497
+ #: includes/currencies/wcj-currencies.php:143
5498
+ msgid "Saint Helena pound"
5499
+ msgstr ""
5500
+
5501
+ #: includes/currencies/wcj-currencies.php:144
5502
+ msgid "Syrian pound"
5503
+ msgstr ""
5504
+
5505
+ #: includes/currencies/wcj-currencies.php:145
5506
+ msgid "Slovak koruna"
5507
+ msgstr ""
5508
+
5509
+ #: includes/currencies/wcj-currencies.php:146
5510
+ msgid "Sierra Leonean leone"
5511
+ msgstr ""
5512
+
5513
+ #: includes/currencies/wcj-currencies.php:147
5514
+ msgid "Somali shilling"
5515
+ msgstr ""
5516
+
5517
+ #: includes/currencies/wcj-currencies.php:148
5518
+ msgid "Surinamese dollar"
5519
+ msgstr ""
5520
+
5521
+ #: includes/currencies/wcj-currencies.php:149
5522
+ msgid "Sao Tome and Principe dobra"
5523
+ msgstr ""
5524
+
5525
+ #: includes/currencies/wcj-currencies.php:150
5526
+ msgid "Swazi lilangeni"
5527
+ msgstr ""
5528
+
5529
+ #: includes/currencies/wcj-currencies.php:151
5530
+ msgid "Thai Baht"
5531
+ msgstr ""
5532
+
5533
+ #: includes/currencies/wcj-currencies.php:152
5534
+ msgid "Tajikistani somoni"
5535
+ msgstr ""
5536
+
5537
+ #: includes/currencies/wcj-currencies.php:153
5538
+ msgid "Turkmen manat"
5539
+ msgstr ""
5540
+
5541
+ #: includes/currencies/wcj-currencies.php:154
5542
+ msgid "Tunisian dinar"
5543
+ msgstr ""
5544
+
5545
+ #: includes/currencies/wcj-currencies.php:155
5546
+ msgid "Paanga"
5547
+ msgstr ""
5548
+
5549
+ #: includes/currencies/wcj-currencies.php:156
5550
+ msgid "Turkish Lira"
5551
+ msgstr ""
5552
+
5553
+ #: includes/currencies/wcj-currencies.php:157
5554
+ msgid "Trinidad and Tobago dollar"
5555
+ msgstr ""
5556
+
5557
+ #: includes/currencies/wcj-currencies.php:158
5558
+ msgid "Taiwan New Dollars"
5559
+ msgstr ""
5560
+
5561
+ #: includes/currencies/wcj-currencies.php:159
5562
+ msgid "Tanzanian shilling"
5563
+ msgstr ""
5564
+
5565
+ #: includes/currencies/wcj-currencies.php:160
5566
+ msgid "Ukrainian Hryvnia"
5567
+ msgstr ""
5568
+
5569
+ #: includes/currencies/wcj-currencies.php:161
5570
+ msgid "Ugandan shilling"
5571
+ msgstr ""
5572
+
5573
+ #: includes/currencies/wcj-currencies.php:162
5574
+ msgid "Uruguayan peso"
5575
+ msgstr ""
5576
+
5577
+ #: includes/currencies/wcj-currencies.php:163
5578
+ msgid "US Dollars"
5579
+ msgstr ""
5580
+
5581
+ #: includes/currencies/wcj-currencies.php:164
5582
+ msgid "Uzbekistani som"
5583
+ msgstr ""
5584
+
5585
+ #: includes/currencies/wcj-currencies.php:165
5586
+ msgid "Venezuelan bolivar"
5587
+ msgstr ""
5588
+
5589
+ #: includes/currencies/wcj-currencies.php:166
5590
+ msgid "Vietnamese Dong"
5591
+ msgstr ""
5592
+
5593
+ #: includes/currencies/wcj-currencies.php:167
5594
+ msgid "Vanuatu vatu"
5595
+ msgstr ""
5596
+
5597
+ #: includes/currencies/wcj-currencies.php:168
5598
+ msgid "Samoan tala"
5599
+ msgstr ""
5600
+
5601
+ #: includes/currencies/wcj-currencies.php:170
5602
+ msgid "East Caribbean dollar"
5603
+ msgstr ""
5604
+
5605
+ #: includes/currencies/wcj-currencies.php:171
5606
+ msgid "Special Drawing Rights"
5607
+ msgstr ""
5608
+
5609
+ #: includes/currencies/wcj-currencies.php:172
5610
+ msgid "West African CFA franc"
5611
+ msgstr ""
5612
+
5613
+ #: includes/currencies/wcj-currencies.php:173
5614
+ msgid "CFP franc"
5615
+ msgstr ""
5616
+
5617
+ #: includes/currencies/wcj-currencies.php:174
5618
+ msgid "South African rand"
5619
+ msgstr ""
5620
+
5621
+ #: includes/currencies/wcj-currencies.php:175
5622
+ msgid "Zambian kwacha"
5623
+ msgstr ""
5624
+
5625
+ #: includes/currencies/wcj-currencies.php:176
5626
+ msgid "Zimbabwean dollar"
5627
+ msgstr ""
5628
+
5629
+ #: includes/emails/class-wc-email-wcj-custom.php:31
5630
+ msgid ""
5631
+ "Custom emails are sent to the recipient list when selected triggers are "
5632
+ "called."
5633
+ msgstr ""
5634
+
5635
+ #: includes/emails/class-wc-email-wcj-custom.php:33
5636
+ msgid "Custom Heading"
5637
+ msgstr ""
5638
+
5639
+ #: includes/emails/class-wc-email-wcj-custom.php:34
5640
+ msgid "[{site_title}] Custom Subject - Order ({order_number}) - {order_date}"
5641
+ msgstr ""
5642
+
5643
+ #: includes/emails/class-wc-email-wcj-custom.php:206
5644
+ msgid "New order (%s)"
5645
+ msgstr ""
5646
+
5647
+ #: includes/emails/class-wc-email-wcj-custom.php:207
5648
+ msgid "Order status updated to %s"
5649
+ msgstr ""
5650
+
5651
+ #: includes/emails/class-wc-email-wcj-custom.php:210
5652
+ msgid "Order status %s to %s"
5653
+ msgstr ""
5654
+
5655
+ #: includes/emails/class-wc-email-wcj-custom.php:217
5656
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:56
5657
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:63
5658
+ msgid "Enable/Disable"
5659
+ msgstr ""
5660
+
5661
+ #: includes/emails/class-wc-email-wcj-custom.php:219
5662
+ msgid "Enable this email notification"
5663
+ msgstr ""
5664
+
5665
+ #: includes/emails/class-wc-email-wcj-custom.php:223
5666
+ msgid "Trigger(s)"
5667
+ msgstr ""
5668
+
5669
+ #: includes/emails/class-wc-email-wcj-custom.php:227
5670
+ msgid ""
5671
+ "Please note, that all new orders in WooCommerce by default are created with "
5672
+ "Pending Payment status. If you want to change the default order status - you "
5673
+ "can use Booster's \"Order Custom Statuses\" module (in WooCommerce > "
5674
+ "Settings > Booster > Shipping & Orders > Order Custom Statuses)."
5675
+ msgstr ""
5676
+
5677
+ #: includes/emails/class-wc-email-wcj-custom.php:230
5678
+ msgid "New order (Any status)"
5679
+ msgstr ""
5680
+
5681
+ #: includes/emails/class-wc-email-wcj-custom.php:235
5682
+ msgid "Reset password notification"
5683
+ msgstr ""
5684
+
5685
+ #: includes/emails/class-wc-email-wcj-custom.php:236
5686
+ msgid "Order fully refunded notification"
5687
+ msgstr ""
5688
+
5689
+ #: includes/emails/class-wc-email-wcj-custom.php:237
5690
+ msgid "Order partially refunded notification"
5691
+ msgstr ""
5692
+
5693
+ #: includes/emails/class-wc-email-wcj-custom.php:238
5694
+ msgid "New customer note notification"
5695
+ msgstr ""
5696
+
5697
+ #: includes/emails/class-wc-email-wcj-custom.php:246
5698
+ msgid "Recipient(s)"
5699
+ msgstr ""
5700
+
5701
+ #: includes/emails/class-wc-email-wcj-custom.php:248
5702
+ msgid ""
5703
+ "Enter recipients (comma separated) for this email. Defaults to <code>%s</"
5704
+ "code>."
5705
+ msgstr ""
5706
+
5707
+ #: includes/emails/class-wc-email-wcj-custom.php:248
5708
+ msgid "Or enter <code>%customer%</code> to send to customer billing email."
5709
+ msgstr ""
5710
+
5711
+ #: includes/emails/class-wc-email-wcj-custom.php:253
5712
+ msgid "Subject"
5713
+ msgstr ""
5714
+
5715
+ #: includes/emails/class-wc-email-wcj-custom.php:255
5716
+ msgid ""
5717
+ "This controls the email subject line. Leave blank to use the default "
5718
+ "subject: <code>%s</code>."
5719
+ msgstr ""
5720
+
5721
+ #: includes/emails/class-wc-email-wcj-custom.php:260
5722
+ msgid "Email Heading"
5723
+ msgstr ""
5724
+
5725
+ #: includes/emails/class-wc-email-wcj-custom.php:262
5726
+ msgid ""
5727
+ "This controls the main heading contained within the email notification. "
5728
+ "Leave blank to use the default heading: <code>%s</code>."
5729
+ msgstr ""
5730
+
5731
+ #: includes/emails/class-wc-email-wcj-custom.php:267
5732
+ msgid "Email type"
5733
+ msgstr ""
5734
+
5735
+ #: includes/emails/class-wc-email-wcj-custom.php:269
5736
+ msgid "Choose which format of email to send."
5737
+ msgstr ""
5738
+
5739
+ #: includes/emails/class-wc-email-wcj-custom.php:275
5740
+ msgid "HTML template"
5741
+ msgstr ""
5742
+
5743
+ #: includes/emails/class-wc-email-wcj-custom.php:277
5744
+ #: includes/emails/class-wc-email-wcj-custom.php:286
5745
+ msgid "You can use shortcodes here. E.g. Booster's order shortcodes."
5746
+ msgstr ""
5747
+
5748
+ #: includes/emails/class-wc-email-wcj-custom.php:284
5749
+ msgid "Plain text template"
5750
+ msgstr ""
5751
+
5752
+ #: includes/exchange-rates/class-wcj-exchange-rates-crons.php:175
5753
+ msgid "Cron job: exchange rates successfully updated"
5754
+ msgstr ""
5755
+
5756
+ #: includes/exchange-rates/class-wcj-exchange-rates-crons.php:177
5757
+ msgid "Cron job: exchange rates not updated, as currency_from == currency_to"
5758
+ msgstr ""
5759
+
5760
+ #: includes/exchange-rates/class-wcj-exchange-rates-crons.php:180
5761
+ msgid "Cron job: exchange rates update failed"
5762
+ msgstr ""
5763
+
5764
+ #: includes/exchange-rates/class-wcj-exchange-rates-crons.php:193
5765
+ msgid "Once Weekly"
5766
+ msgstr ""
5767
+
5768
+ #: includes/exchange-rates/class-wcj-exchange-rates-crons.php:198
5769
+ msgid "Once a Minute"
5770
+ msgstr ""
5771
+
5772
+ #: includes/functions/wcj-country-functions.php:113
5773
+ msgid "Afghanistan"
5774
+ msgstr ""
5775
+
5776
+ #: includes/functions/wcj-country-functions.php:114
5777
+ msgid "&#197;land Islands"
5778
+ msgstr ""
5779
+
5780
+ #: includes/functions/wcj-country-functions.php:115
5781
+ msgid "Albania"
5782
+ msgstr ""
5783
+
5784
+ #: includes/functions/wcj-country-functions.php:116
5785
+ msgid "Algeria"
5786
+ msgstr ""
5787
+
5788
+ #: includes/functions/wcj-country-functions.php:117
5789
+ msgid "Andorra"
5790
+ msgstr ""
5791
+
5792
+ #: includes/functions/wcj-country-functions.php:118
5793
+ msgid "Angola"
5794
+ msgstr ""
5795
+
5796
+ #: includes/functions/wcj-country-functions.php:119
5797
+ msgid "Anguilla"
5798
+ msgstr ""
5799
+
5800
+ #: includes/functions/wcj-country-functions.php:120
5801
+ msgid "Antarctica"
5802
+ msgstr ""
5803
+
5804
+ #: includes/functions/wcj-country-functions.php:121
5805
+ msgid "Antigua and Barbuda"
5806
+ msgstr ""
5807
+
5808
+ #: includes/functions/wcj-country-functions.php:122
5809
+ msgid "Argentina"
5810
+ msgstr ""
5811
+
5812
+ #: includes/functions/wcj-country-functions.php:123
5813
+ msgid "Armenia"
5814
+ msgstr ""
5815
+
5816
+ #: includes/functions/wcj-country-functions.php:124
5817
+ msgid "Aruba"
5818
+ msgstr ""
5819
+
5820
+ #: includes/functions/wcj-country-functions.php:125
5821
+ msgid "Australia"
5822
+ msgstr ""
5823
+
5824
+ #: includes/functions/wcj-country-functions.php:126
5825
+ msgid "Austria"
5826
+ msgstr ""
5827
+
5828
+ #: includes/functions/wcj-country-functions.php:127
5829
+ msgid "Azerbaijan"
5830
+ msgstr ""
5831
+
5832
+ #: includes/functions/wcj-country-functions.php:128
5833
+ msgid "Bahamas"
5834
+ msgstr ""
5835
+
5836
+ #: includes/functions/wcj-country-functions.php:129
5837
+ msgid "Bahrain"
5838
+ msgstr ""
5839
+
5840
+ #: includes/functions/wcj-country-functions.php:130
5841
+ msgid "Bangladesh"
5842
+ msgstr ""
5843
+
5844
+ #: includes/functions/wcj-country-functions.php:131
5845
+ msgid "Barbados"
5846
+ msgstr ""
5847
+
5848
+ #: includes/functions/wcj-country-functions.php:132
5849
+ msgid "Belarus"
5850
+ msgstr ""
5851
+
5852
+ #: includes/functions/wcj-country-functions.php:133
5853
+ msgid "Belgium"
5854
+ msgstr ""
5855
+
5856
+ #: includes/functions/wcj-country-functions.php:134
5857
+ msgid "Belau"
5858
+ msgstr ""
5859
+
5860
+ #: includes/functions/wcj-country-functions.php:135
5861
+ msgid "Belize"
5862
+ msgstr ""
5863
+
5864
+ #: includes/functions/wcj-country-functions.php:136
5865
+ msgid "Benin"
5866
+ msgstr ""
5867
+
5868
+ #: includes/functions/wcj-country-functions.php:137
5869
+ msgid "Bermuda"
5870
+ msgstr ""
5871
+
5872
+ #: includes/functions/wcj-country-functions.php:138
5873
+ msgid "Bhutan"
5874
+ msgstr ""
5875
+
5876
+ #: includes/functions/wcj-country-functions.php:139
5877
+ msgid "Bolivia"
5878
+ msgstr ""
5879
+
5880
+ #: includes/functions/wcj-country-functions.php:140
5881
+ msgid "Bonaire, Saint Eustatius and Saba"
5882
+ msgstr ""
5883
+
5884
+ #: includes/functions/wcj-country-functions.php:141
5885
+ msgid "Bosnia and Herzegovina"
5886
+ msgstr ""
5887
+
5888
+ #: includes/functions/wcj-country-functions.php:142
5889
+ msgid "Botswana"
5890
+ msgstr ""
5891
+
5892
+ #: includes/functions/wcj-country-functions.php:143
5893
+ msgid "Bouvet Island"
5894
+ msgstr ""
5895
+
5896
+ #: includes/functions/wcj-country-functions.php:144
5897
+ msgid "Brazil"
5898
+ msgstr ""
5899
+
5900
+ #: includes/functions/wcj-country-functions.php:145
5901
+ msgid "British Indian Ocean Territory"
5902
+ msgstr ""
5903
+
5904
+ #: includes/functions/wcj-country-functions.php:146
5905
+ msgid "British Virgin Islands"
5906
+ msgstr ""
5907
+
5908
+ #: includes/functions/wcj-country-functions.php:147
5909
+ msgid "Brunei"
5910
+ msgstr ""
5911
+
5912
+ #: includes/functions/wcj-country-functions.php:148
5913
+ msgid "Bulgaria"
5914
+ msgstr ""
5915
+
5916
+ #: includes/functions/wcj-country-functions.php:149
5917
+ msgid "Burkina Faso"
5918
+ msgstr ""
5919
+
5920
+ #: includes/functions/wcj-country-functions.php:150
5921
+ msgid "Burundi"
5922
+ msgstr ""
5923
+
5924
+ #: includes/functions/wcj-country-functions.php:151
5925
+ msgid "Cambodia"
5926
+ msgstr ""
5927
+
5928
+ #: includes/functions/wcj-country-functions.php:152
5929
+ msgid "Cameroon"
5930
+ msgstr ""
5931
+
5932
+ #: includes/functions/wcj-country-functions.php:153
5933
+ msgid "Canada"
5934
+ msgstr ""
5935
+
5936
+ #: includes/functions/wcj-country-functions.php:154
5937
+ msgid "Cape Verde"
5938
+ msgstr ""
5939
+
5940
+ #: includes/functions/wcj-country-functions.php:155
5941
+ msgid "Cayman Islands"
5942
+ msgstr ""
5943
+
5944
+ #: includes/functions/wcj-country-functions.php:156
5945
+ msgid "Central African Republic"
5946
+ msgstr ""
5947
+
5948
+ #: includes/functions/wcj-country-functions.php:157
5949
+ msgid "Chad"
5950
+ msgstr ""
5951
+
5952
+ #: includes/functions/wcj-country-functions.php:158
5953
+ msgid "Chile"
5954
+ msgstr ""
5955
+
5956
+ #: includes/functions/wcj-country-functions.php:159
5957
+ msgid "China"
5958
+ msgstr ""
5959
+
5960
+ #: includes/functions/wcj-country-functions.php:160
5961
+ msgid "Christmas Island"
5962
+ msgstr ""
5963
+
5964
+ #: includes/functions/wcj-country-functions.php:161
5965
+ msgid "Cocos (Keeling) Islands"
5966
+ msgstr ""
5967
+
5968
+ #: includes/functions/wcj-country-functions.php:162
5969
+ msgid "Colombia"
5970
+ msgstr ""
5971
+
5972
+ #: includes/functions/wcj-country-functions.php:163
5973
+ msgid "Comoros"
5974
+ msgstr ""
5975
+
5976
+ #: includes/functions/wcj-country-functions.php:164
5977
+ msgid "Congo (Brazzaville)"
5978
+ msgstr ""
5979
+
5980
+ #: includes/functions/wcj-country-functions.php:165
5981
+ msgid "Congo (Kinshasa)"
5982
+ msgstr ""
5983
+
5984
+ #: includes/functions/wcj-country-functions.php:166
5985
+ msgid "Cook Islands"
5986
+ msgstr ""
5987
+
5988
+ #: includes/functions/wcj-country-functions.php:167
5989
+ msgid "Costa Rica"
5990
+ msgstr ""
5991
+
5992
+ #: includes/functions/wcj-country-functions.php:168
5993
+ msgid "Croatia"
5994
+ msgstr ""
5995
+
5996
+ #: includes/functions/wcj-country-functions.php:169
5997
+ msgid "Cuba"
5998
+ msgstr ""
5999
+
6000
+ #: includes/functions/wcj-country-functions.php:170
6001
+ msgid "Cura&Ccedil;ao"
6002
+ msgstr ""
6003
+
6004
+ #: includes/functions/wcj-country-functions.php:171
6005
+ msgid "Cyprus"
6006
+ msgstr ""
6007
+
6008
+ #: includes/functions/wcj-country-functions.php:172
6009
+ msgid "Czech Republic"
6010
+ msgstr ""
6011
+
6012
+ #: includes/functions/wcj-country-functions.php:173
6013
+ msgid "Denmark"
6014
+ msgstr ""
6015
+
6016
+ #: includes/functions/wcj-country-functions.php:174
6017
+ msgid "Djibouti"
6018
+ msgstr ""
6019
+
6020
+ #: includes/functions/wcj-country-functions.php:175
6021
+ msgid "Dominica"
6022
+ msgstr ""
6023
+
6024
+ #: includes/functions/wcj-country-functions.php:176
6025
+ msgid "Dominican Republic"
6026
+ msgstr ""
6027
+
6028
+ #: includes/functions/wcj-country-functions.php:177
6029
+ msgid "Ecuador"
6030
+ msgstr ""
6031
+
6032
+ #: includes/functions/wcj-country-functions.php:178
6033
+ msgid "Egypt"
6034
+ msgstr ""
6035
+
6036
+ #: includes/functions/wcj-country-functions.php:179
6037
+ msgid "El Salvador"
6038
+ msgstr ""
6039
+
6040
+ #: includes/functions/wcj-country-functions.php:180
6041
+ msgid "Equatorial Guinea"
6042
+ msgstr ""
6043
+
6044
+ #: includes/functions/wcj-country-functions.php:181
6045
+ msgid "Eritrea"
6046
+ msgstr ""
6047
+
6048
+ #: includes/functions/wcj-country-functions.php:182
6049
+ msgid "Estonia"
6050
+ msgstr ""
6051
+
6052
+ #: includes/functions/wcj-country-functions.php:183
6053
+ msgid "Ethiopia"
6054
+ msgstr ""
6055
+
6056
+ #: includes/functions/wcj-country-functions.php:184
6057
+ msgid "Falkland Islands"
6058
+ msgstr ""
6059
+
6060
+ #: includes/functions/wcj-country-functions.php:185
6061
+ msgid "Faroe Islands"
6062
+ msgstr ""
6063
+
6064
+ #: includes/functions/wcj-country-functions.php:186
6065
+ msgid "Fiji"
6066
+ msgstr ""
6067
+
6068
+ #: includes/functions/wcj-country-functions.php:187
6069
+ msgid "Finland"
6070
+ msgstr ""
6071
+
6072
+ #: includes/functions/wcj-country-functions.php:188
6073
+ msgid "France"
6074
+ msgstr ""
6075
+
6076
+ #: includes/functions/wcj-country-functions.php:189
6077
+ msgid "French Guiana"
6078
+ msgstr ""
6079
+
6080
+ #: includes/functions/wcj-country-functions.php:190
6081
+ msgid "French Polynesia"
6082
+ msgstr ""
6083
+
6084
+ #: includes/functions/wcj-country-functions.php:191
6085
+ msgid "French Southern Territories"
6086
+ msgstr ""
6087
+
6088
+ #: includes/functions/wcj-country-functions.php:192
6089
+ msgid "Gabon"
6090
+ msgstr ""
6091
+
6092
+ #: includes/functions/wcj-country-functions.php:193
6093
+ msgid "Gambia"
6094
+ msgstr ""
6095
+
6096
+ #: includes/functions/wcj-country-functions.php:194
6097
+ msgid "Georgia"
6098
+ msgstr ""
6099
+
6100
+ #: includes/functions/wcj-country-functions.php:195
6101
+ msgid "Germany"
6102
+ msgstr ""
6103
+
6104
+ #: includes/functions/wcj-country-functions.php:196
6105
+ msgid "Ghana"
6106
+ msgstr ""
6107
+
6108
+ #: includes/functions/wcj-country-functions.php:197
6109
+ msgid "Gibraltar"
6110
+ msgstr ""
6111
+
6112
+ #: includes/functions/wcj-country-functions.php:198
6113
+ msgid "Greece"
6114
+ msgstr ""
6115
+
6116
+ #: includes/functions/wcj-country-functions.php:199
6117
+ msgid "Greenland"
6118
+ msgstr ""
6119
+
6120
+ #: includes/functions/wcj-country-functions.php:200
6121
+ msgid "Grenada"
6122
+ msgstr ""
6123
+
6124
+ #: includes/functions/wcj-country-functions.php:201
6125
+ msgid "Guadeloupe"
6126
+ msgstr ""
6127
+
6128
+ #: includes/functions/wcj-country-functions.php:202
6129
+ msgid "Guatemala"
6130
+ msgstr ""
6131
+
6132
+ #: includes/functions/wcj-country-functions.php:203
6133
+ msgid "Guernsey"
6134
+ msgstr ""
6135
+
6136
+ #: includes/functions/wcj-country-functions.php:204
6137
+ msgid "Guinea"
6138
+ msgstr ""
6139
+
6140
+ #: includes/functions/wcj-country-functions.php:205
6141
+ msgid "Guinea-Bissau"
6142
+ msgstr ""
6143
+
6144
+ #: includes/functions/wcj-country-functions.php:206
6145
+ msgid "Guyana"
6146
+ msgstr ""
6147
+
6148
+ #: includes/functions/wcj-country-functions.php:207
6149
+ msgid "Haiti"
6150
+ msgstr ""
6151
+
6152
+ #: includes/functions/wcj-country-functions.php:208
6153
+ msgid "Heard Island and McDonald Islands"
6154
+ msgstr ""
6155
+
6156
+ #: includes/functions/wcj-country-functions.php:209
6157
+ msgid "Honduras"
6158
+ msgstr ""
6159
+
6160
+ #: includes/functions/wcj-country-functions.php:210
6161
+ msgid "Hong Kong"
6162
+ msgstr ""
6163
+
6164
+ #: includes/functions/wcj-country-functions.php:211
6165
+ msgid "Hungary"
6166
+ msgstr ""
6167
+
6168
+ #: includes/functions/wcj-country-functions.php:212
6169
+ msgid "Iceland"
6170
+ msgstr ""
6171
+
6172
+ #: includes/functions/wcj-country-functions.php:213
6173
+ msgid "India"
6174
+ msgstr ""
6175
+
6176
+ #: includes/functions/wcj-country-functions.php:214
6177
+ msgid "Indonesia"
6178
+ msgstr ""
6179
+
6180
+ #: includes/functions/wcj-country-functions.php:215
6181
+ msgid "Iran"
6182
+ msgstr ""
6183
+
6184
+ #: includes/functions/wcj-country-functions.php:216
6185
+ msgid "Iraq"
6186
+ msgstr ""
6187
+
6188
+ #: includes/functions/wcj-country-functions.php:217
6189
+ msgid "Republic of Ireland"
6190
+ msgstr ""
6191
+
6192
+ #: includes/functions/wcj-country-functions.php:218
6193
+ msgid "Isle of Man"
6194
+ msgstr ""
6195
+
6196
+ #: includes/functions/wcj-country-functions.php:219
6197
+ msgid "Israel"
6198
+ msgstr ""
6199
+
6200
+ #: includes/functions/wcj-country-functions.php:220
6201
+ msgid "Italy"
6202
+ msgstr ""
6203
+
6204
+ #: includes/functions/wcj-country-functions.php:221
6205
+ msgid "Ivory Coast"
6206
+ msgstr ""
6207
+
6208
+ #: includes/functions/wcj-country-functions.php:222
6209
+ msgid "Jamaica"
6210
+ msgstr ""
6211
+
6212
+ #: includes/functions/wcj-country-functions.php:223
6213
+ msgid "Japan"
6214
+ msgstr ""
6215
+
6216
+ #: includes/functions/wcj-country-functions.php:224
6217
+ msgid "Jersey"
6218
+ msgstr ""
6219
+
6220
+ #: includes/functions/wcj-country-functions.php:225
6221
+ msgid "Jordan"
6222
+ msgstr ""
6223
+
6224
+ #: includes/functions/wcj-country-functions.php:226
6225
+ msgid "Kazakhstan"
6226
+ msgstr ""
6227
+
6228
+ #: includes/functions/wcj-country-functions.php:227
6229
+ msgid "Kenya"
6230
+ msgstr ""
6231
+
6232
+ #: includes/functions/wcj-country-functions.php:228
6233
+ msgid "Kiribati"
6234
+ msgstr ""
6235
+
6236
+ #: includes/functions/wcj-country-functions.php:229
6237
+ msgid "Kuwait"
6238
+ msgstr ""
6239
+
6240
+ #: includes/functions/wcj-country-functions.php:230
6241
+ msgid "Kyrgyzstan"
6242
+ msgstr ""
6243
+
6244
+ #: includes/functions/wcj-country-functions.php:231
6245
+ msgid "Laos"
6246
+ msgstr ""
6247
+
6248
+ #: includes/functions/wcj-country-functions.php:232
6249
+ msgid "Latvia"
6250
+ msgstr ""
6251
+
6252
+ #: includes/functions/wcj-country-functions.php:233
6253
+ msgid "Lebanon"
6254
+ msgstr ""
6255
+
6256
+ #: includes/functions/wcj-country-functions.php:234
6257
+ msgid "Lesotho"
6258
+ msgstr ""
6259
+
6260
+ #: includes/functions/wcj-country-functions.php:235
6261
+ msgid "Liberia"
6262
+ msgstr ""
6263
+
6264
+ #: includes/functions/wcj-country-functions.php:236
6265
+ msgid "Libya"
6266
+ msgstr ""
6267
+
6268
+ #: includes/functions/wcj-country-functions.php:237
6269
+ msgid "Liechtenstein"
6270
+ msgstr ""
6271
+
6272
+ #: includes/functions/wcj-country-functions.php:238
6273
+ msgid "Lithuania"
6274
+ msgstr ""
6275
+
6276
+ #: includes/functions/wcj-country-functions.php:239
6277
+ msgid "Luxembourg"
6278
+ msgstr ""
6279
+
6280
+ #: includes/functions/wcj-country-functions.php:240
6281
+ msgid "Macao S.A.R., China"
6282
+ msgstr ""
6283
+
6284
+ #: includes/functions/wcj-country-functions.php:241
6285
+ msgid "Macedonia"
6286
+ msgstr ""
6287
+
6288
+ #: includes/functions/wcj-country-functions.php:242
6289
+ msgid "Madagascar"
6290
+ msgstr ""
6291
+
6292
+ #: includes/functions/wcj-country-functions.php:243
6293
+ msgid "Malawi"
6294
+ msgstr ""
6295
+
6296
+ #: includes/functions/wcj-country-functions.php:244
6297
+ msgid "Malaysia"
6298
+ msgstr ""
6299
+
6300
+ #: includes/functions/wcj-country-functions.php:245
6301
+ msgid "Maldives"
6302
+ msgstr ""
6303
+
6304
+ #: includes/functions/wcj-country-functions.php:246
6305
+ msgid "Mali"
6306
+ msgstr ""
6307
+
6308
+ #: includes/functions/wcj-country-functions.php:247
6309
+ msgid "Malta"
6310
+ msgstr ""
6311
+
6312
+ #: includes/functions/wcj-country-functions.php:248
6313
+ msgid "Marshall Islands"
6314
+ msgstr ""
6315
+
6316
+ #: includes/functions/wcj-country-functions.php:249
6317
+ msgid "Martinique"
6318
+ msgstr ""
6319
+
6320
+ #: includes/functions/wcj-country-functions.php:250
6321
+ msgid "Mauritania"
6322
+ msgstr ""
6323
+
6324
+ #: includes/functions/wcj-country-functions.php:251
6325
+ msgid "Mauritius"
6326
+ msgstr ""
6327
+
6328
+ #: includes/functions/wcj-country-functions.php:252
6329
+ msgid "Mayotte"
6330
+ msgstr ""
6331
+
6332
+ #: includes/functions/wcj-country-functions.php:253
6333
+ msgid "Mexico"
6334
+ msgstr ""
6335
+
6336
+ #: includes/functions/wcj-country-functions.php:254
6337
+ msgid "Micronesia"
6338
+ msgstr ""
6339
+
6340
+ #: includes/functions/wcj-country-functions.php:255
6341
+ msgid "Moldova"
6342
+ msgstr ""
6343
+
6344
+ #: includes/functions/wcj-country-functions.php:256
6345
+ msgid "Monaco"
6346
+ msgstr ""
6347
+
6348
+ #: includes/functions/wcj-country-functions.php:257
6349
+ msgid "Mongolia"
6350
+ msgstr ""
6351
+
6352
+ #: includes/functions/wcj-country-functions.php:258
6353
+ msgid "Montenegro"
6354
+ msgstr ""
6355
+
6356
+ #: includes/functions/wcj-country-functions.php:259
6357
+ msgid "Montserrat"
6358
+ msgstr ""
6359
+
6360
+ #: includes/functions/wcj-country-functions.php:260
6361
+ msgid "Morocco"
6362
+ msgstr ""
6363
+
6364
+ #: includes/functions/wcj-country-functions.php:261
6365
+ msgid "Mozambique"
6366
+ msgstr ""
6367
+
6368
+ #: includes/functions/wcj-country-functions.php:262
6369
+ msgid "Myanmar"
6370
+ msgstr ""
6371
+
6372
+ #: includes/functions/wcj-country-functions.php:263
6373
+ msgid "Namibia"
6374
+ msgstr ""
6375
+
6376
+ #: includes/functions/wcj-country-functions.php:264
6377
+ msgid "Nauru"
6378
+ msgstr ""
6379
+
6380
+ #: includes/functions/wcj-country-functions.php:265
6381
+ msgid "Nepal"
6382
+ msgstr ""
6383
+
6384
+ #: includes/functions/wcj-country-functions.php:266
6385
+ msgid "Netherlands"
6386
+ msgstr ""
6387
+
6388
+ #: includes/functions/wcj-country-functions.php:267
6389
+ msgid "Netherlands Antilles"
6390
+ msgstr ""
6391
+
6392
+ #: includes/functions/wcj-country-functions.php:268
6393
+ msgid "New Caledonia"
6394
+ msgstr ""
6395
+
6396
+ #: includes/functions/wcj-country-functions.php:269
6397
+ msgid "New Zealand"
6398
+ msgstr ""
6399
+
6400
+ #: includes/functions/wcj-country-functions.php:270
6401
+ msgid "Nicaragua"
6402
+ msgstr ""
6403
+
6404
+ #: includes/functions/wcj-country-functions.php:271
6405
+ msgid "Niger"
6406
+ msgstr ""
6407
+
6408
+ #: includes/functions/wcj-country-functions.php:272
6409
+ msgid "Nigeria"
6410
+ msgstr ""
6411
+
6412
+ #: includes/functions/wcj-country-functions.php:273
6413
+ msgid "Niue"
6414
+ msgstr ""
6415
+
6416
+ #: includes/functions/wcj-country-functions.php:274
6417
+ msgid "Norfolk Island"
6418
+ msgstr ""
6419
+
6420
+ #: includes/functions/wcj-country-functions.php:275
6421
+ msgid "North Korea"
6422
+ msgstr ""
6423
+
6424
+ #: includes/functions/wcj-country-functions.php:276
6425
+ msgid "Norway"
6426
+ msgstr ""
6427
+
6428
+ #: includes/functions/wcj-country-functions.php:277
6429
+ msgid "Oman"
6430
+ msgstr ""
6431
+
6432
+ #: includes/functions/wcj-country-functions.php:278
6433
+ msgid "Pakistan"
6434
+ msgstr ""
6435
+
6436
+ #: includes/functions/wcj-country-functions.php:279
6437
+ msgid "Palestinian Territory"
6438
+ msgstr ""
6439
+
6440
+ #: includes/functions/wcj-country-functions.php:280
6441
+ msgid "Panama"
6442
+ msgstr ""
6443
+
6444
+ #: includes/functions/wcj-country-functions.php:281
6445
+ msgid "Papua New Guinea"
6446
+ msgstr ""
6447
+
6448
+ #: includes/functions/wcj-country-functions.php:282
6449
+ msgid "Paraguay"
6450
+ msgstr ""
6451
+
6452
+ #: includes/functions/wcj-country-functions.php:283
6453
+ msgid "Peru"
6454
+ msgstr ""
6455
+
6456
+ #: includes/functions/wcj-country-functions.php:284
6457
+ msgid "Philippines"
6458
+ msgstr ""
6459
+
6460
+ #: includes/functions/wcj-country-functions.php:285
6461
+ msgid "Pitcairn"
6462
+ msgstr ""
6463
+
6464
+ #: includes/functions/wcj-country-functions.php:286
6465
+ msgid "Poland"
6466
+ msgstr ""
6467
+
6468
+ #: includes/functions/wcj-country-functions.php:287
6469
+ msgid "Portugal"
6470
+ msgstr ""
6471
+
6472
+ #: includes/functions/wcj-country-functions.php:288
6473
+ msgid "Qatar"
6474
+ msgstr ""
6475
+
6476
+ #: includes/functions/wcj-country-functions.php:289
6477
+ msgid "Reunion"
6478
+ msgstr ""
6479
+
6480
+ #: includes/functions/wcj-country-functions.php:290
6481
+ msgid "Romania"
6482
+ msgstr ""
6483
+
6484
+ #: includes/functions/wcj-country-functions.php:291
6485
+ msgid "Russia"
6486
+ msgstr ""
6487
+
6488
+ #: includes/functions/wcj-country-functions.php:292
6489
+ msgid "Rwanda"
6490
+ msgstr ""
6491
+
6492
+ #: includes/functions/wcj-country-functions.php:293
6493
+ msgid "Saint Barth&eacute;lemy"
6494
+ msgstr ""
6495
+
6496
+ #: includes/functions/wcj-country-functions.php:294
6497
+ msgid "Saint Helena"
6498
+ msgstr ""
6499
+
6500
+ #: includes/functions/wcj-country-functions.php:295
6501
+ msgid "Saint Kitts and Nevis"
6502
+ msgstr ""
6503
+
6504
+ #: includes/functions/wcj-country-functions.php:296
6505
+ msgid "Saint Lucia"
6506
+ msgstr ""
6507
+
6508
+ #: includes/functions/wcj-country-functions.php:297
6509
+ msgid "Saint Martin (French part)"
6510
+ msgstr ""
6511
+
6512
+ #: includes/functions/wcj-country-functions.php:298
6513
+ msgid "Saint Martin (Dutch part)"
6514
+ msgstr ""
6515
+
6516
+ #: includes/functions/wcj-country-functions.php:299
6517
+ msgid "Saint Pierre and Miquelon"
6518
+ msgstr ""
6519
+
6520
+ #: includes/functions/wcj-country-functions.php:300
6521
+ msgid "Saint Vincent and the Grenadines"
6522
+ msgstr ""
6523
+
6524
+ #: includes/functions/wcj-country-functions.php:301
6525
+ msgid "San Marino"
6526
+ msgstr ""
6527
+
6528
+ #: includes/functions/wcj-country-functions.php:302
6529
+ msgid "S&atilde;o Tom&eacute; and Pr&iacute;ncipe"
6530
+ msgstr ""
6531
+
6532
+ #: includes/functions/wcj-country-functions.php:303
6533
+ msgid "Saudi Arabia"
6534
+ msgstr ""
6535
+
6536
+ #: includes/functions/wcj-country-functions.php:304
6537
+ msgid "Senegal"
6538
+ msgstr ""
6539
+
6540
+ #: includes/functions/wcj-country-functions.php:305
6541
+ msgid "Serbia"
6542
+ msgstr ""
6543
+
6544
+ #: includes/functions/wcj-country-functions.php:306
6545
+ msgid "Seychelles"
6546
+ msgstr ""
6547
+
6548
+ #: includes/functions/wcj-country-functions.php:307
6549
+ msgid "Sierra Leone"
6550
+ msgstr ""
6551
+
6552
+ #: includes/functions/wcj-country-functions.php:308
6553
+ msgid "Singapore"
6554
+ msgstr ""
6555
+
6556
+ #: includes/functions/wcj-country-functions.php:309
6557
+ msgid "Slovakia"
6558
+ msgstr ""
6559
+
6560
+ #: includes/functions/wcj-country-functions.php:310
6561
+ msgid "Slovenia"
6562
+ msgstr ""
6563
+
6564
+ #: includes/functions/wcj-country-functions.php:311
6565
+ msgid "Solomon Islands"
6566
+ msgstr ""
6567
+
6568
+ #: includes/functions/wcj-country-functions.php:312
6569
+ msgid "Somalia"
6570
+ msgstr ""
6571
+
6572
+ #: includes/functions/wcj-country-functions.php:313
6573
+ msgid "South Africa"
6574
+ msgstr ""
6575
+
6576
+ #: includes/functions/wcj-country-functions.php:314
6577
+ msgid "South Georgia/Sandwich Islands"
6578
+ msgstr ""
6579
+
6580
+ #: includes/functions/wcj-country-functions.php:315
6581
+ msgid "South Korea"
6582
+ msgstr ""
6583
+
6584
+ #: includes/functions/wcj-country-functions.php:316
6585
+ msgid "South Sudan"
6586
+ msgstr ""
6587
+
6588
+ #: includes/functions/wcj-country-functions.php:317
6589
+ msgid "Spain"
6590
+ msgstr ""
6591
+
6592
+ #: includes/functions/wcj-country-functions.php:318
6593
+ msgid "Sri Lanka"
6594
+ msgstr ""
6595
+
6596
+ #: includes/functions/wcj-country-functions.php:319
6597
+ msgid "Sudan"
6598
+ msgstr ""
6599
+
6600
+ #: includes/functions/wcj-country-functions.php:320
6601
+ msgid "Suriname"
6602
+ msgstr ""
6603
+
6604
+ #: includes/functions/wcj-country-functions.php:321
6605
+ msgid "Svalbard and Jan Mayen"
6606
+ msgstr ""
6607
+
6608
+ #: includes/functions/wcj-country-functions.php:322
6609
+ msgid "Swaziland"
6610
+ msgstr ""
6611
+
6612
+ #: includes/functions/wcj-country-functions.php:323
6613
+ msgid "Sweden"
6614
+ msgstr ""
6615
+
6616
+ #: includes/functions/wcj-country-functions.php:324
6617
+ msgid "Switzerland"
6618
+ msgstr ""
6619
+
6620
+ #: includes/functions/wcj-country-functions.php:325
6621
+ msgid "Syria"
6622
+ msgstr ""
6623
+
6624
+ #: includes/functions/wcj-country-functions.php:326
6625
+ msgid "Taiwan"
6626
+ msgstr ""
6627
+
6628
+ #: includes/functions/wcj-country-functions.php:327
6629
+ msgid "Tajikistan"
6630
+ msgstr ""
6631
+
6632
+ #: includes/functions/wcj-country-functions.php:328
6633
+ msgid "Tanzania"
6634
+ msgstr ""
6635
+
6636
+ #: includes/functions/wcj-country-functions.php:329
6637
+ msgid "Thailand"
6638
+ msgstr ""
6639
+
6640
+ #: includes/functions/wcj-country-functions.php:330
6641
+ msgid "Timor-Leste"
6642
+ msgstr ""
6643
+
6644
+ #: includes/functions/wcj-country-functions.php:331
6645
+ msgid "Togo"
6646
+ msgstr ""
6647
+
6648
+ #: includes/functions/wcj-country-functions.php:332
6649
+ msgid "Tokelau"
6650
+ msgstr ""
6651
+
6652
+ #: includes/functions/wcj-country-functions.php:333
6653
+ msgid "Tonga"
6654
+ msgstr ""
6655
+
6656
+ #: includes/functions/wcj-country-functions.php:334
6657
+ msgid "Trinidad and Tobago"
6658
+ msgstr ""
6659
+
6660
+ #: includes/functions/wcj-country-functions.php:335
6661
+ msgid "Tunisia"
6662
+ msgstr ""
6663
+
6664
+ #: includes/functions/wcj-country-functions.php:336
6665
+ msgid "Turkey"
6666
+ msgstr ""
6667
+
6668
+ #: includes/functions/wcj-country-functions.php:337
6669
+ msgid "Turkmenistan"
6670
+ msgstr ""
6671
+
6672
+ #: includes/functions/wcj-country-functions.php:338
6673
+ msgid "Turks and Caicos Islands"
6674
+ msgstr ""
6675
+
6676
+ #: includes/functions/wcj-country-functions.php:339
6677
+ msgid "Tuvalu"
6678
+ msgstr ""
6679
+
6680
+ #: includes/functions/wcj-country-functions.php:340
6681
+ msgid "Uganda"
6682
+ msgstr ""
6683
+
6684
+ #: includes/functions/wcj-country-functions.php:341
6685
+ msgid "Ukraine"
6686
+ msgstr ""
6687
+
6688
+ #: includes/functions/wcj-country-functions.php:342
6689
+ msgid "United Arab Emirates"
6690
+ msgstr ""
6691
+
6692
+ #: includes/functions/wcj-country-functions.php:343
6693
+ msgid "United Kingdom (UK)"
6694
+ msgstr ""
6695
+
6696
+ #: includes/functions/wcj-country-functions.php:344
6697
+ msgid "United States (US)"
6698
+ msgstr ""
6699
+
6700
+ #: includes/functions/wcj-country-functions.php:345
6701
+ msgid "Uruguay"
6702
+ msgstr ""
6703
+
6704
+ #: includes/functions/wcj-country-functions.php:346
6705
+ msgid "Uzbekistan"
6706
+ msgstr ""
6707
+
6708
+ #: includes/functions/wcj-country-functions.php:347
6709
+ msgid "Vanuatu"
6710
+ msgstr ""
6711
+
6712
+ #: includes/functions/wcj-country-functions.php:348
6713
+ msgid "Vatican"
6714
+ msgstr ""
6715
+
6716
+ #: includes/functions/wcj-country-functions.php:349
6717
+ msgid "Venezuela"
6718
+ msgstr ""
6719
+
6720
+ #: includes/functions/wcj-country-functions.php:350
6721
+ msgid "Vietnam"
6722
+ msgstr ""
6723
+
6724
+ #: includes/functions/wcj-country-functions.php:351
6725
+ msgid "Wallis and Futuna"
6726
+ msgstr ""
6727
+
6728
+ #: includes/functions/wcj-country-functions.php:352
6729
+ msgid "Western Sahara"
6730
+ msgstr ""
6731
+
6732
+ #: includes/functions/wcj-country-functions.php:353
6733
+ msgid "Western Samoa"
6734
+ msgstr ""
6735
+
6736
+ #: includes/functions/wcj-country-functions.php:354
6737
+ msgid "Yemen"
6738
+ msgstr ""
6739
+
6740
+ #: includes/functions/wcj-country-functions.php:355
6741
+ msgid "Zambia"
6742
+ msgstr ""
6743
+
6744
+ #: includes/functions/wcj-country-functions.php:356
6745
+ msgid "Zimbabwe"
6746
+ msgstr ""
6747
+
6748
+ #: includes/functions/wcj-functions.php:180
6749
+ msgid "Before cart"
6750
+ msgstr ""
6751
+
6752
+ #: includes/functions/wcj-functions.php:181
6753
+ msgid "Before cart table"
6754
+ msgstr ""
6755
+
6756
+ #: includes/functions/wcj-functions.php:182
6757
+ msgid "Before cart contents"
6758
+ msgstr ""
6759
+
6760
+ #: includes/functions/wcj-functions.php:183
6761
+ msgid "Cart contents"
6762
+ msgstr ""
6763
+
6764
+ #: includes/functions/wcj-functions.php:184
6765
+ msgid "Cart coupon"
6766
+ msgstr ""
6767
+
6768
+ #: includes/functions/wcj-functions.php:185
6769
+ msgid "Cart actions"
6770
+ msgstr ""
6771
+
6772
+ #: includes/functions/wcj-functions.php:186
6773
+ msgid "After cart contents"
6774
+ msgstr ""
6775
+
6776
+ #: includes/functions/wcj-functions.php:187
6777
+ msgid "After cart table"
6778
+ msgstr ""
6779
+
6780
+ #: includes/functions/wcj-functions.php:188
6781
+ msgid "Cart collaterals"
6782
+ msgstr ""
6783
+
6784
+ #: includes/functions/wcj-functions.php:189
6785
+ msgid "After cart"
6786
+ msgstr ""
6787
+
6788
+ #: includes/functions/wcj-functions.php:191
6789
+ msgid "Before cart totals"
6790
+ msgstr ""
6791
+
6792
+ #: includes/functions/wcj-functions.php:192
6793
+ msgid "Cart totals: Before shipping"
6794
+ msgstr ""
6795
+
6796
+ #: includes/functions/wcj-functions.php:193
6797
+ msgid "Cart totals: After shipping"
6798
+ msgstr ""
6799
+
6800
+ #: includes/functions/wcj-functions.php:194
6801
+ msgid "Cart totals: Before order total"
6802
+ msgstr ""
6803
+
6804
+ #: includes/functions/wcj-functions.php:195
6805
+ msgid "Cart totals: After order total"
6806
+ msgstr ""
6807
+
6808
+ #: includes/functions/wcj-functions.php:196
6809
+ msgid "Proceed to checkout"
6810
+ msgstr ""
6811
+
6812
+ #: includes/functions/wcj-functions.php:197
6813
+ msgid "After cart totals"
6814
+ msgstr ""
6815
+
6816
+ #: includes/functions/wcj-functions.php:199
6817
+ msgid "Before shipping calculator"
6818
+ msgstr ""
6819
+
6820
+ #: includes/functions/wcj-functions.php:200
6821
+ msgid "After shipping calculator"
6822
+ msgstr ""
6823
+
6824
+ #: includes/functions/wcj-functions.php:202
6825
+ msgid "If cart is empty"
6826
+ msgstr ""
6827
+
6828
+ #: includes/functions/wcj-functions.php:618
6829
+ msgctxt "Order status"
6830
+ msgid "Pending Payment"
6831
+ msgstr ""
6832
+
6833
+ #: includes/functions/wcj-functions.php:620
6834
+ msgctxt "Order status"
6835
+ msgid "On Hold"
6836
+ msgstr ""
6837
+
6838
+ #: includes/functions/wcj-invoicing-functions.php:19
6839
+ msgid "Invoice"
6840
+ msgstr ""
6841
+
6842
+ #: includes/functions/wcj-invoicing-functions.php:20
6843
+ msgid "Invoices"
6844
+ msgstr ""
6845
+
6846
+ #: includes/functions/wcj-invoicing-functions.php:27
6847
+ msgid "Proforma Invoice"
6848
+ msgstr ""
6849
+
6850
+ #: includes/functions/wcj-invoicing-functions.php:28
6851
+ msgid "Proforma Invoices"
6852
+ msgstr ""
6853
+
6854
+ #: includes/functions/wcj-invoicing-functions.php:35
6855
+ msgid "Packing Slip"
6856
+ msgstr ""
6857
+
6858
+ #: includes/functions/wcj-invoicing-functions.php:36
6859
+ msgid "Packing Slips"
6860
+ msgstr ""
6861
+
6862
+ #: includes/functions/wcj-invoicing-functions.php:43
6863
+ msgid "Credit Note"
6864
+ msgstr ""
6865
+
6866
+ #: includes/functions/wcj-invoicing-functions.php:44
6867
+ msgid "Credit Notes"
6868
+ msgstr ""
6869
+
6870
+ #: includes/functions/wcj-invoicing-functions.php:51
6871
+ msgid "Custom Document"
6872
+ msgstr ""
6873
+
6874
+ #: includes/functions/wcj-invoicing-functions.php:52
6875
+ msgid "Custom Documents"
6876
+ msgstr ""
6877
+
6878
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:58
6879
+ msgid "Enable Custom Payment"
6880
+ msgstr ""
6881
+
6882
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:65
6883
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:71
6884
+ msgid "This controls the title which the user sees during checkout."
6885
+ msgstr ""
6886
+
6887
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:66
6888
+ msgid "Custom Payment"
6889
+ msgstr ""
6890
+
6891
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:73
6892
+ msgid "Payment method description that the customer will see on your checkout."
6893
+ msgstr ""
6894
+
6895
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:74
6896
+ msgid "Custom Payment Description."
6897
+ msgstr ""
6898
+
6899
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:79
6900
+ msgid "Instructions"
6901
+ msgstr ""
6902
+
6903
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:81
6904
+ msgid "Instructions that will be added to the thank you page."
6905
+ msgstr ""
6906
+
6907
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:87
6908
+ msgid "Email Instructions"
6909
+ msgstr ""
6910
+
6911
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:89
6912
+ msgid "Instructions that will be added to the emails."
6913
+ msgstr ""
6914
+
6915
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:95
6916
+ msgid "Icon"
6917
+ msgstr ""
6918
+
6919
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:104
6920
+ msgid "Minimum order amount"
6921
+ msgstr ""
6922
+
6923
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:106
6924
+ msgid ""
6925
+ "If you want to set minimum order amount to show this gateway on frontend, "
6926
+ "enter a number here. Set to 0 to disable."
6927
+ msgstr ""
6928
+
6929
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:113
6930
+ msgid "Enable for shipping methods"
6931
+ msgstr ""
6932
+
6933
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:118
6934
+ msgid ""
6935
+ "If gateway is only available for certain shipping methods, set it up here. "
6936
+ "Leave blank to enable for all methods."
6937
+ msgstr ""
6938
+
6939
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:121
6940
+ msgid "Select shipping methods"
6941
+ msgstr ""
6942
+
6943
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:125
6944
+ msgid "Enable for virtual orders"
6945
+ msgstr ""
6946
+
6947
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:126
6948
+ msgid "Enable gateway if the order is virtual"
6949
+ msgstr ""
6950
+
6951
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:140
6952
+ msgid "Send Additional Emails"
6953
+ msgstr ""
6954
+
6955
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:141
6956
+ msgid "Send to Admin"
6957
+ msgstr ""
6958
+
6959
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:149
6960
+ msgid "Send to Customer"
6961
+ msgstr ""
6962
+
6963
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:150
6964
+ msgid ""
6965
+ "This may help if you are using pending or custom default status and not "
6966
+ "getting new order emails."
6967
+ msgstr ""
6968
+
6969
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:156
6970
+ msgid "Custom Return URL (Thank You Page)"
6971
+ msgstr ""
6972
+
6973
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:157
6974
+ msgid "URL"
6975
+ msgstr ""
6976
+
6977
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:158
6978
+ msgid "Enter full URL with http(s)."
6979
+ msgstr ""
6980
+
6981
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:159
6982
+ msgid "Optional. Leave blank to use default URL."
6983
+ msgstr ""
6984
+
6985
+ #: includes/gateways/class-wc-gateway-wcj-custom.php:346
6986
+ msgid "Booster for WooCommerce: Custom Payment Gateway"
6987
+ msgstr ""
6988
+
6989
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:80
6990
+ msgid "Checkbox: ON"
6991
+ msgstr ""
6992
+
6993
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:88
6994
+ msgid "Checkbox: OFF"
6995
+ msgstr ""
6996
+
6997
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:96
6998
+ msgid "Checkbox: Default"
6999
+ msgstr ""
7000
+
7001
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:108
7002
+ msgid ""
7003
+ "If file is selected, set accepted file types here. E.g.: \".jpg,.jpeg,.png"
7004
+ "\". Leave blank to accept all files"
7005
+ msgstr ""
7006
+
7007
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:109
7008
+ msgid "File: Accepted types"
7009
+ msgstr ""
7010
+
7011
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:111
7012
+ msgid ".jpg,.jpeg,.png"
7013
+ msgstr ""
7014
+
7015
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:118
7016
+ msgid "Datepicker/Weekpicker: Date format"
7017
+ msgstr ""
7018
+
7019
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:126
7020
+ msgid "Datepicker/Weekpicker: Min date"
7021
+ msgstr ""
7022
+
7023
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:134
7024
+ msgid "Datepicker/Weekpicker: Max date"
7025
+ msgstr ""
7026
+
7027
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:142
7028
+ msgid "Datepicker/Weekpicker: Change year"
7029
+ msgstr ""
7030
+
7031
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:150
7032
+ msgid "Datepicker/Weekpicker: Year range"
7033
+ msgstr ""
7034
+
7035
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:159
7036
+ msgid "Datepicker/Weekpicker: First week day"
7037
+ msgstr ""
7038
+
7039
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:176
7040
+ msgid "Timepicker: Time format"
7041
+ msgstr ""
7042
+
7043
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:184
7044
+ msgid "Timepicker: Interval"
7045
+ msgstr ""
7046
+
7047
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:191
7048
+ msgid "If select/radio is selected, set options here. One option per line"
7049
+ msgstr ""
7050
+
7051
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:192
7052
+ msgid "Select/Radio: Options"
7053
+ msgstr ""
7054
+
7055
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:220
7056
+ msgid "Message on required"
7057
+ msgstr ""
7058
+
7059
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:456
7060
+ msgid "Wrong file type!"
7061
+ msgstr ""
7062
+
7063
+ #: includes/input-fields/class-wcj-product-input-fields-abstract.php:600
7064
+ msgid "Select a country&hellip;"
7065
+ msgstr ""
7066
+
7067
+ #: includes/input-fields/class-wcj-product-input-fields-per-product.php:111
7068
+ msgid "Booster: Product Input Fields"
7069
+ msgstr ""
7070
+
7071
+ #: includes/input-fields/class-wcj-product-input-fields-per-product.php:147
7072
+ msgid "Total number of "
7073
+ msgstr ""
7074
+
7075
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:56
7076
+ msgid "Invoices successfully renumerated!"
7077
+ msgstr ""
7078
+
7079
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:58
7080
+ msgid "Please select at least one order status."
7081
+ msgstr ""
7082
+
7083
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:63
7084
+ msgid "Booster - Renumerate Invoices"
7085
+ msgstr ""
7086
+
7087
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:64
7088
+ msgid ""
7089
+ "The tool renumerates invoices from choosen date. Invoice number format is "
7090
+ "set in WooCommerce > Settings > Booster > PDF Invoicing & Packing Slips > "
7091
+ "Numbering."
7092
+ msgstr ""
7093
+
7094
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:73
7095
+ msgid "Date to start renumerating. Leave blank to renumerate all invoices."
7096
+ msgstr ""
7097
+
7098
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:78
7099
+ msgid "End Date"
7100
+ msgstr ""
7101
+
7102
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:80
7103
+ msgid "Date to end renumerating. Leave blank to renumerate all invoices."
7104
+ msgstr ""
7105
+
7106
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:85
7107
+ msgid "Start Number"
7108
+ msgstr ""
7109
+
7110
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:87
7111
+ msgid ""
7112
+ "Counter to start renumerating. Leave 0 to continue from current counter."
7113
+ msgstr ""
7114
+
7115
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:92
7116
+ msgid "Delete All"
7117
+ msgstr ""
7118
+
7119
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:94
7120
+ msgid "Clear all invoices before renumerating."
7121
+ msgstr ""
7122
+
7123
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:105
7124
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:97
7125
+ msgid "Document Type"
7126
+ msgstr ""
7127
+
7128
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:115
7129
+ msgid "Order Statuses"
7130
+ msgstr ""
7131
+
7132
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:118
7133
+ msgid "Renumerate invoices"
7134
+ msgstr ""
7135
+
7136
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:127
7137
+ msgid "Results"
7138
+ msgstr ""
7139
+
7140
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:206
7141
+ msgid "Total documents created: %d"
7142
+ msgstr ""
7143
+
7144
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:207
7145
+ msgid "Total documents deleted: %d"
7146
+ msgstr ""
7147
+
7148
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:37
7149
+ msgid ""
7150
+ "This option is disabled in WooCommerce > Settings > Booster > Emails & Misc. "
7151
+ "> General > Advanced Options > Disable Saving PDFs in PHP directory for "
7152
+ "temporary files"
7153
+ msgstr ""
7154
+
7155
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:42
7156
+ msgid "Sorry, but something went wrong..."
7157
+ msgstr ""
7158
+
7159
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:46
7160
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:67
7161
+ msgid "Please fill year and month values."
7162
+ msgstr ""
7163
+
7164
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:71
7165
+ msgid "Booster - Invoices Report"
7166
+ msgstr ""
7167
+
7168
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:87
7169
+ msgid "Year"
7170
+ msgstr ""
7171
+
7172
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:92
7173
+ msgid "Month"
7174
+ msgstr ""
7175
+
7176
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:103
7177
+ msgid "Display monthly documents table"
7178
+ msgstr ""
7179
+
7180
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:108
7181
+ msgid "Download all monthly documents PDFs in single ZIP file"
7182
+ msgstr ""
7183
+
7184
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:194
7185
+ msgid "Invoice Nr."
7186
+ msgstr ""
7187
+
7188
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:195
7189
+ msgid "Invoice Date"
7190
+ msgstr ""
7191
+
7192
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:197
7193
+ msgid "Customer Country"
7194
+ msgstr ""
7195
+
7196
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:198
7197
+ msgid "Customer VAT ID"
7198
+ msgstr ""
7199
+
7200
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:199
7201
+ msgid "Tax %"
7202
+ msgstr ""
7203
+
7204
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:200
7205
+ msgid "Order Total Tax Excl."
7206
+ msgstr ""
7207
+
7208
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:201
7209
+ msgid "Order Taxes"
7210
+ msgstr ""
7211
+
7212
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:202
7213
+ msgid "Order Total"
7214
+ msgstr ""
7215
+
7216
+ #: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:203
7217
+ msgid "Order Currency"
7218
+ msgstr ""
7219
+
7220
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:26
7221
+ msgid "Display & Misc."
7222
+ msgstr ""
7223
+
7224
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:96
7225
+ msgid "View"
7226
+ msgstr ""
7227
+
7228
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:115
7229
+ msgid "Create"
7230
+ msgstr ""
7231
+
7232
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:247
7233
+ msgid "Admin's \"Orders\" Page"
7234
+ msgstr ""
7235
+
7236
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:248
7237
+ msgid "Add Column"
7238
+ msgstr ""
7239
+
7240
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:256
7241
+ msgid "Column Title"
7242
+ msgstr ""
7243
+
7244
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:281
7245
+ msgid "Add View Button"
7246
+ msgstr ""
7247
+
7248
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:288
7249
+ msgid "Add Create Button"
7250
+ msgstr ""
7251
+
7252
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:295
7253
+ msgid "Add Delete Button"
7254
+ msgstr ""
7255
+
7256
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:302
7257
+ msgid "Customer's \"My Account\" Page"
7258
+ msgstr ""
7259
+
7260
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:303
7261
+ msgid "Add link"
7262
+ msgstr ""
7263
+
7264
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:311
7265
+ msgid "Link Text"
7266
+ msgstr ""
7267
+
7268
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:318
7269
+ msgid "Enable \"Save as\""
7270
+ msgstr ""
7271
+
7272
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:320
7273
+ msgid "Enable \"save as\" pdf instead of view pdf in browser"
7274
+ msgstr ""
7275
+
7276
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:327
7277
+ msgid "PDF File Name"
7278
+ msgstr ""
7279
+
7280
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:26
7281
+ msgid "Email Options"
7282
+ msgstr ""
7283
+
7284
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:87
7285
+ msgid "Payment gateways to include"
7286
+ msgstr ""
7287
+
7288
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:94
7289
+ msgid "Select some gateways. Leave blank to include all."
7290
+ msgstr ""
7291
+
7292
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:118
7293
+ msgid "Admin - New Order"
7294
+ msgstr ""
7295
+
7296
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:119
7297
+ msgid "Admin - Cancelled Order"
7298
+ msgstr ""
7299
+
7300
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:120
7301
+ msgid "Customer - Processing Order"
7302
+ msgstr ""
7303
+
7304
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:121
7305
+ msgid "Customer - Completed Order"
7306
+ msgstr ""
7307
+
7308
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:122
7309
+ msgid "Customer - Invoice"
7310
+ msgstr ""
7311
+
7312
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:123
7313
+ msgid "Customer - Refunded Order"
7314
+ msgstr ""
7315
+
7316
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:131
7317
+ msgid "Attach PDF to emails"
7318
+ msgstr ""
7319
+
7320
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:138
7321
+ msgid "Select some emails"
7322
+ msgstr ""
7323
+
7324
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:23
7325
+ msgid "Footer"
7326
+ msgstr ""
7327
+
7328
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:44
7329
+ msgid "Enable Footer"
7330
+ msgstr ""
7331
+
7332
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:50
7333
+ msgid "Footer Text"
7334
+ msgstr ""
7335
+
7336
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:57
7337
+ msgid ""
7338
+ "You can use HTML here, as well as any WordPress shortcodes. There is two "
7339
+ "more predefined values you can use: %page_number% and %total_pages%."
7340
+ msgstr ""
7341
+
7342
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:61
7343
+ msgid "Footer Text Color"
7344
+ msgstr ""
7345
+
7346
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:68
7347
+ msgid "Footer Line Color"
7348
+ msgstr ""
7349
+
7350
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-footer.php:75
7351
+ msgid "Footer Margin"
7352
+ msgstr ""
7353
+
7354
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:25
7355
+ msgid "Header"
7356
+ msgstr ""
7357
+
7358
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:46
7359
+ msgid "Enable Header"
7360
+ msgstr ""
7361
+
7362
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:52
7363
+ msgid "Header Image"
7364
+ msgstr ""
7365
+
7366
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:57
7367
+ msgid ""
7368
+ "Enter a URL to an image you want to show in the invoice's header. Upload "
7369
+ "your image using the <a href=\"/wp-admin/media-new.php\">media uploader</a>."
7370
+ msgstr ""
7371
+
7372
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:61
7373
+ msgid "Header Image Width in mm"
7374
+ msgstr ""
7375
+
7376
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:67
7377
+ msgid "Header Title"
7378
+ msgstr ""
7379
+
7380
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:73
7381
+ msgid "Header Text"
7382
+ msgstr ""
7383
+
7384
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:75
7385
+ msgid "Company Name"
7386
+ msgstr ""
7387
+
7388
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:79
7389
+ msgid "Header Text Color"
7390
+ msgstr ""
7391
+
7392
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:86
7393
+ msgid "Header Line Color"
7394
+ msgstr ""
7395
+
7396
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:93
7397
+ msgid "Header Margin"
7398
+ msgstr ""
7399
+
7400
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:107
7401
+ msgid "PDF Invoicing Header General Options"
7402
+ msgstr ""
7403
+
7404
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:112
7405
+ msgid "Default Images Directory"
7406
+ msgstr ""
7407
+
7408
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:113
7409
+ msgid "Default images directory in TCPDF library (K_PATH_IMAGES)."
7410
+ msgstr ""
7411
+
7412
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:114
7413
+ msgid "Try changing this if you have issues displaying image in header."
7414
+ msgstr ""
7415
+
7416
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:119
7417
+ msgid "Empty"
7418
+ msgstr ""
7419
+
7420
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:120
7421
+ msgid "TCPDF Default"
7422
+ msgstr ""
7423
+
7424
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:121
7425
+ msgid "ABSPATH"
7426
+ msgstr ""
7427
+
7428
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:122
7429
+ msgid "DOCUMENT_ROOT"
7430
+ msgstr ""
7431
+
7432
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:25
7433
+ msgid "Numbering"
7434
+ msgstr ""
7435
+
7436
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:45
7437
+ msgid "Sequential"
7438
+ msgstr ""
7439
+
7440
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:51
7441
+ msgid "Counter"
7442
+ msgstr ""
7443
+
7444
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:63
7445
+ msgid "Counter Width"
7446
+ msgstr ""
7447
+
7448
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:25
7449
+ msgid "Page Settings"
7450
+ msgstr ""
7451
+
7452
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:407
7453
+ msgid "Page Orientation"
7454
+ msgstr ""
7455
+
7456
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:412
7457
+ msgid "Portrait"
7458
+ msgstr ""
7459
+
7460
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:413
7461
+ msgid "Landscape"
7462
+ msgstr ""
7463
+
7464
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:417
7465
+ msgid "Page Format"
7466
+ msgstr ""
7467
+
7468
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:424
7469
+ msgid "Margin Left"
7470
+ msgstr ""
7471
+
7472
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:430
7473
+ msgid "Margin Right"
7474
+ msgstr ""
7475
+
7476
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:436
7477
+ msgid "Margin Top"
7478
+ msgstr ""
7479
+
7480
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-page.php:442
7481
+ msgid "Margin Bottom"
7482
+ msgstr ""
7483
+
7484
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-styling.php:25
7485
+ msgid "Styling"
7486
+ msgstr ""
7487
+
7488
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-styling.php:53
7489
+ msgid "CSS"
7490
+ msgstr ""
7491
+
7492
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-styling.php:61
7493
+ msgid "Font Family"
7494
+ msgstr ""
7495
+
7496
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-styling.php:80
7497
+ msgid "Font Size"
7498
+ msgstr ""
7499
+
7500
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-styling.php:87
7501
+ msgid "Make Font Shadowed"
7502
+ msgstr ""
7503
+
7504
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php:25
7505
+ msgid "Templates"
7506
+ msgstr ""
7507
+
7508
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php:52
7509
+ msgid "HTML Template"
7510
+ msgstr ""
7511
+
7512
+ #: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php:65
7513
+ msgid "Available Shortcodes"
7514
+ msgstr ""
7515
+
7516
+ #: includes/price-by-country/class-wcj-price-by-country-group-generator.php:77
7517
+ msgid "Create All Country Groups Failed."
7518
+ msgstr ""
7519
+
7520
+ #: includes/price-by-country/class-wcj-price-by-country-group-generator.php:89
7521
+ msgid "Create All Country Groups Failed. Wrong parameter."
7522
+ msgstr ""
7523
+
7524
+ #: includes/price-by-country/class-wcj-price-by-country-group-generator.php:95
7525
+ msgid ""
7526
+ "All existing country groups will be deleted and %s new groups will be "
7527
+ "created. Are you sure?"
7528
+ msgstr ""
7529
+
7530
+ #: includes/price-by-country/class-wcj-price-by-country-group-generator.php:96
7531
+ msgid "Confirm"
7532
+ msgstr ""
7533
+
7534
+ #: includes/price-by-country/class-wcj-price-by-country-group-generator.php:124
7535
+ msgid "Country Groups Generated."
7536
+ msgstr ""
7537
+
7538
+ #: includes/price-by-country/class-wcj-price-by-country-local.php:250
7539
+ msgid "Country Group Nr."
7540
+ msgstr ""
7541
+
7542
+ #: includes/reports/class-wcj-currency-reports.php:40
7543
+ msgid "Reports currency:"
7544
+ msgstr ""
7545
+
7546
+ #: includes/reports/class-wcj-currency-reports.php:42
7547
+ #: includes/reports/class-wcj-currency-reports.php:86
7548
+ msgid "Show reports only in"
7549
+ msgstr ""
7550
+
7551
+ #: includes/reports/wcj-class-reports-customers.php:41
7552
+ msgid "No customers found."
7553
+ msgstr ""
7554
+
7555
+ #: includes/reports/wcj-class-reports-customers.php:91
7556
+ msgid "Customer Name"
7557
+ msgstr ""
7558
+
7559
+ #: includes/reports/wcj-class-reports-customers.php:93
7560
+ msgid "Total Spent"
7561
+ msgstr ""
7562
+
7563
+ #: includes/reports/wcj-class-reports-customers.php:94
7564
+ msgid "Registered"
7565
+ msgstr ""
7566
+
7567
+ #: includes/reports/wcj-class-reports-customers.php:133
7568
+ msgid "Total customers"
7569
+ msgstr ""
7570
+
7571
+ #: includes/reports/wcj-class-reports-customers.php:137
7572
+ msgid "Country Code"
7573
+ msgstr ""
7574
+
7575
+ #: includes/reports/wcj-class-reports-customers.php:138
7576
+ msgid "Customers Count"
7577
+ msgstr ""
7578
+
7579
+ #: includes/reports/wcj-class-reports-customers.php:139
7580
+ msgid "Percent of total"
7581
+ msgstr ""
7582
+
7583
+ #: includes/reports/wcj-class-reports-customers.php:161
7584
+ msgid "Report for:"
7585
+ msgstr ""
7586
+
7587
+ #: includes/reports/wcj-class-reports-monthly-sales.php:110
7588
+ msgid "Total Orders"
7589
+ msgstr ""
7590
+
7591
+ #: includes/reports/wcj-class-reports-monthly-sales.php:112
7592
+ msgid "Total Sum"
7593
+ msgstr ""
7594
+
7595
+ #: includes/reports/wcj-class-reports-monthly-sales.php:113
7596
+ msgid "Total Sum (excl. TAX)"
7597
+ msgstr ""
7598
+
7599
+ #: includes/reports/wcj-class-reports-monthly-sales.php:114
7600
+ msgid "Average / Day (excl. TAX)"
7601
+ msgstr ""
7602
+
7603
+ #: includes/reports/wcj-class-reports-monthly-sales.php:210
7604
+ msgid "Report currency"
7605
+ msgstr ""
7606
+
7607
+ #: includes/reports/wcj-class-reports-sales.php:177
7608
+ msgid "Filter"
7609
+ msgstr ""
7610
+
7611
+ #: includes/reports/wcj-class-reports-stock.php:30
7612
+ msgid "All Products on Stock"
7613
+ msgstr ""
7614
+
7615
+ #: includes/reports/wcj-class-reports-stock.php:31
7616
+ msgid "Report shows all products that are on stock and some sales info."
7617
+ msgstr ""
7618
+
7619
+ #: includes/reports/wcj-class-reports-stock.php:35
7620
+ msgid "Understocked"
7621
+ msgstr ""
7622
+
7623
+ #: includes/reports/wcj-class-reports-stock.php:36
7624
+ msgid ""
7625
+ "Report shows all products that are low in stock calculated on product's "
7626
+ "sales data."
7627
+ msgstr ""
7628
+
7629
+ #: includes/reports/wcj-class-reports-stock.php:38
7630
+ msgid ""
7631
+ "Threshold for minimum stock is equal to half of the sales in selected days "
7632
+ "range."
7633
+ msgstr ""
7634
+
7635
+ #: includes/reports/wcj-class-reports-stock.php:42
7636
+ msgid "Overstocked"
7637
+ msgstr ""
7638
+
7639
+ #: includes/reports/wcj-class-reports-stock.php:43
7640
+ msgid ""
7641
+ "Report shows all products that are on stock, but have no sales in selected "
7642
+ "period. Only products added before the start date of selected period are "
7643
+ "accounted."
7644
+ msgstr ""
7645
+
7646
+ #: includes/reports/wcj-class-reports-stock.php:213
7647
+ msgid "deleted"
7648
+ msgstr ""
7649
+
7650
+ #: includes/reports/wcj-class-reports-stock.php:321
7651
+ msgid "Price"
7652
+ msgstr ""
7653
+
7654
+ #: includes/reports/wcj-class-reports-stock.php:322
7655
+ msgid "Stock"
7656
+ msgstr ""
7657
+
7658
+ #: includes/reports/wcj-class-reports-stock.php:323
7659
+ msgid "Stock price"
7660
+ msgstr ""
7661
+
7662
+ #: includes/reports/wcj-class-reports-stock.php:324
7663
+ msgid "Total stock price"
7664
+ msgstr ""
7665
+
7666
+ #: includes/reports/wcj-class-reports-stock.php:326
7667
+ msgid "Last sale"
7668
+ msgstr ""
7669
+
7670
+ #: includes/reports/wcj-class-reports-stock.php:327
7671
+ msgid "Sales in last %s days"
7672
+ msgstr ""
7673
+
7674
+ #: includes/reports/wcj-class-reports-stock.php:328
7675
+ msgid "Total sales"
7676
+ msgstr ""
7677
+
7678
+ #: includes/reports/wcj-class-reports-stock.php:331
7679
+ msgid "Stock to minimum"
7680
+ msgstr ""
7681
+
7682
+ #: includes/reports/wcj-class-reports-stock.php:364
7683
+ msgid "purchase price:"
7684
+ msgstr ""
7685
+
7686
+ #: includes/reports/wcj-class-reports-stock.php:369
7687
+ msgid "stock purchase price:"
7688
+ msgstr ""
7689
+
7690
+ #: includes/reports/wcj-class-reports-stock.php:375
7691
+ msgid "No sales yet"
7692
+ msgstr ""
7693
+
7694
+ #: includes/reports/wcj-class-reports-stock.php:380
7695
+ msgid "profit:"
7696
+ msgstr ""
7697
+
7698
+ #: includes/reports/wcj-class-reports-stock.php:404
7699
+ msgid "Total current stock value"
7700
+ msgstr ""
7701
+
7702
+ #: includes/reports/wcj-class-reports-stock.php:405
7703
+ msgid "Total stock value"
7704
+ msgstr ""
7705
+
7706
+ #: includes/reports/wcj-class-reports-stock.php:406
7707
+ msgid "Product stock value average"
7708
+ msgstr ""
7709
+
7710
+ #: includes/reports/wcj-class-reports-stock.php:407
7711
+ msgid "Product stock average"
7712
+ msgstr ""
7713
+
7714
+ #: includes/reports/wcj-class-reports-stock.php:411
7715
+ msgid "Report was generated in: "
7716
+ msgstr ""
7717
+
7718
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:41
7719
+ msgid "Booster: Custom Shipping Method"
7720
+ msgstr ""
7721
+
7722
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:65
7723
+ msgid "Enable Custom Shipping"
7724
+ msgstr ""
7725
+
7726
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:78
7727
+ msgid "Cost calculation type."
7728
+ msgstr ""
7729
+
7730
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:82
7731
+ msgid "Flat Rate"
7732
+ msgstr ""
7733
+
7734
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:83
7735
+ msgid "By Total Cart Weight"
7736
+ msgstr ""
7737
+
7738
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:84
7739
+ msgid "By Total Cart Quantity"
7740
+ msgstr ""
7741
+
7742
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:88
7743
+ msgid "Cost"
7744
+ msgstr ""
7745
+
7746
+ #: includes/shipping/class-wc-shipping-wcj-custom.php:90
7747
+ msgid ""
7748
+ "Cost. If calculating by weight - then cost per one weight unit. If "
7749
+ "calculating by quantity - then cost per one piece."
7750
+ msgstr ""
7751
+
7752
+ #: includes/shortcodes/class-wcj-orders-shortcodes.php:86
7753
+ msgid "Dollars"
7754
+ msgstr ""
7755
+
7756
+ #: includes/shortcodes/class-wcj-orders-shortcodes.php:87
7757
+ msgid "Cents"
7758
+ msgstr ""
7759
+
7760
+ #: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:117
7761
+ msgid "Error!"
7762
+ msgstr ""
7763
+
7764
+ #: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:118
7765
+ msgid "Success!"
7766
+ msgstr ""
7767
+
7768
+ #: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:120
7769
+ msgid "Error Validating!"
7770
+ msgstr ""
7771
+
7772
+ #: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:124
7773
+ msgid "Add New Product"
7774
+ msgstr ""
7775
+
7776
+ #: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:138
7777
+ msgid "Short Description"
7778
+ msgstr ""
7779
+
7780
+ #: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:156
7781
+ msgid "Tags"
7782
+ msgstr ""
7783
+
7784
+ #: includes/shortcodes/class-wcj-products-shortcodes.php:221
7785
+ msgid "%s ago"
7786
+ msgstr ""
7787
+
7788
+ #: includes/templates/wcj-add-to-cart-variable.php:24
7789
+ msgid "This product is currently out of stock and unavailable."
7790
+ msgstr ""
7791
+
7792
+ #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:43
7793
+ #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:70
7794
+ msgid "VAT"
7795
+ msgstr ""
7796
+
7797
+ #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:77
7798
+ msgid "Add EU Countries VAT Rates"
7799
+ msgstr ""
7800
+
7801
+ #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:77
7802
+ msgid "Note: will add duplicates."
7803
+ msgstr ""
7804
+
7805
+ #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:85
7806
+ msgid "List of EU VAT rates to be added"
7807
+ msgstr ""
7808
+
7809
+ #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:91
7810
+ #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:105
7811
+ msgid "Rate"
7812
+ msgstr ""
7813
+
7814
+ #: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:99
7815
+ msgid "Current standard tax rates"
7816
+ msgstr ""
7817
+
7818
+ #: includes/widgets/class-wcj-widget-country-switcher.php:24
7819
+ msgid "Booster: Country Switcher Widget"
7820
+ msgstr ""
7821
+
7822
+ #: includes/widgets/class-wcj-widget-country-switcher.php:26
7823
+ msgid "Booster - Country Switcher"
7824
+ msgstr ""
7825
+
7826
+ #: includes/widgets/class-wcj-widget-country-switcher.php:43
7827
+ msgid "Prices and Currencies by Country module not enabled!"
7828
+ msgstr ""
7829
+
7830
+ #: includes/widgets/class-wcj-widget-country-switcher.php:45
7831
+ msgid "Customer Country Detection Method must include \"by user selection\"!"
7832
+ msgstr ""
7833
+
7834
+ #: includes/widgets/class-wcj-widget-country-switcher.php:76
7835
+ #: includes/widgets/class-wcj-widget-left-to-free-shipping.php:56
7836
+ #: includes/widgets/class-wcj-widget-multicurrency.php:72
7837
+ msgid "Title:"
7838
+ msgstr ""
7839
+
7840
+ #: includes/widgets/class-wcj-widget-country-switcher.php:80
7841
+ msgid "Countries:"
7842
+ msgstr ""
7843
+
7844
+ #: includes/widgets/class-wcj-widget-left-to-free-shipping.php:24
7845
+ msgid "Booster: Left to Free Shipping Widget"
7846
+ msgstr ""
7847
+
7848
+ #: includes/widgets/class-wcj-widget-left-to-free-shipping.php:26
7849
+ msgid "Booster - Left to Free Shipping"
7850
+ msgstr ""
7851
+
7852
+ #: includes/widgets/class-wcj-widget-left-to-free-shipping.php:52
7853
+ msgid "Left to Free Shipping"
7854
+ msgstr ""
7855
+
7856
+ #: includes/widgets/class-wcj-widget-left-to-free-shipping.php:58
7857
+ msgid "Content:"
7858
+ msgstr ""
7859
+
7860
+ #: includes/widgets/class-wcj-widget-multicurrency.php:24
7861
+ msgid "Booster: Multicurrency Switcher Widget"
7862
+ msgstr ""
7863
+
7864
+ #: includes/widgets/class-wcj-widget-multicurrency.php:26
7865
+ msgid "Booster - Multicurrency Switcher"
7866
+ msgstr ""
7867
+
7868
+ #: includes/widgets/class-wcj-widget-multicurrency.php:43
7869
+ msgid "Multicurrency module not enabled!"
7870
+ msgstr ""
7871
+
7872
+ #: includes/widgets/class-wcj-widget-multicurrency.php:76
7873
+ msgid "Type:"
7874
+ msgstr ""
7875
+
7876
+ #: includes/widgets/class-wcj-widget-multicurrency.php:78
7877
+ msgid "Drop down"
7878
+ msgstr ""
7879
+
7880
+ #: includes/widgets/class-wcj-widget-multicurrency.php:79
7881
+ msgid "Radio list"
7882
+ msgstr ""
7883
+
7884
+ #: includes/widgets/class-wcj-widget-multicurrency.php:80
7885
+ msgid "Link list"
7886
+ msgstr ""
7887
+
7888
+ #. #-#-#-#-# plugin.pot (Booster for WooCommerce 2.5.0) #-#-#-#-#
7889
+ #. Plugin Name of the plugin/theme
7890
+ #: woocommerce-jetpack.php:277
7891
+ msgid "Booster for WooCommerce"
7892
+ msgstr ""
7893
+
7894
+ #: woocommerce-jetpack.php:278
7895
+ msgid "Booster Settings"
7896
+ msgstr ""
7897
+
7898
+ #: woocommerce-jetpack.php:294
7899
+ msgid "Docs"
7900
+ msgstr ""
7901
+
7902
+ #: woocommerce-jetpack.php:295
7903
+ msgid "Unlock all"
7904
+ msgstr ""
7905
+
7906
+ #: woocommerce-jetpack.php:310
7907
+ msgid "Install Booster Plus to unlock all features"
7908
+ msgstr ""
7909
+
7910
+ #: woocommerce-jetpack.php:311
7911
+ msgid ""
7912
+ "Some settings fields are locked and you will need %s to modify all locked "
7913
+ "fields."
7914
+ msgstr ""
7915
+
7916
+ #: woocommerce-jetpack.php:312
7917
+ msgid "Buy now"
7918
+ msgstr ""
7919
+
7920
+ #: woocommerce-jetpack.php:312
7921
+ msgid "Visit Booster Site"
7922
+ msgstr ""
7923
+
7924
+ #: woocommerce-jetpack.php:316
7925
+ msgid ""
7926
+ "Get <a href=\"http://booster.io/plus/\" target=\"_blank\">Booster Plus</a> "
7927
+ "to change value."
7928
+ msgstr ""
7929
+
7930
+ #: woocommerce-jetpack.php:319
7931
+ msgid ""
7932
+ "Get <a href=\"http://booster.io/plus/\" target=\"_blank\">Booster Plus</a> "
7933
+ "to change values below."
7934
+ msgstr ""
7935
+
7936
+ #: woocommerce-jetpack.php:322
7937
+ msgid ""
7938
+ "Get <a href=\"http://booster.io/plus/\" target=\"_blank\">Booster Plus</a> "
7939
+ "to change values above."
7940
+ msgstr ""
7941
+
7942
+ #: woocommerce-jetpack.php:325
7943
+ msgid "Get Booster Plus to change value."
7944
+ msgstr ""
7945
+
7946
+ #. Plugin URI of the plugin/theme
7947
+ msgid "http://booster.io"
7948
+ msgstr ""
7949
+
7950
+ #. Description of the plugin/theme
7951
+ msgid "Supercharge your WooCommerce site with these awesome powerful features."
7952
+ msgstr ""
7953
+
7954
+ #. Author of the plugin/theme
7955
+ msgid "Algoritmika Ltd"
7956
+ msgstr ""
7957
+
7958
+ #. Author URI of the plugin/theme
7959
+ msgid "http://www.algoritmika.com"
7960
+ msgstr ""
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Booster for WooCommerce ===
2
- Contributors: algoritmika,anbinder,solovjov
3
  Tags: woocommerce,booster for woocommerce,woocommerce jetpack,custom price labels,call for price,currency symbol,remove sorting,remove old product slugs,add to cart text,order number,sequential order numbering,email pdf invoice,pdf invoice,pdf invoices,already in cart,empty cart,redirect to checkout,minimum order amount,customize checkout fields,checkout fields,email,customize product tabs,product tabs,related products number,empty cart,redirect add to cart,redirect to checkout,product already in cart,custom payment gateway,payment gateway icon,auto-complete all orders,custom order statuses,custom order status,remove text from price,custom css,hide categories count,hide subcategories count,hide category count,hide subcategory count,display total sales,custom product tabs,remove product tab,payment gateway fee,vat,gateway by country,price by country,currency switcher
4
  Requires at least: 4.1
5
  Tested up to: 4.5
6
- Stable tag: 2.4.8
7
  License: GNU General Public License v3.0
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
@@ -23,8 +23,10 @@ Booster for WooCommerce is a WordPress plugin that supercharges your site with a
23
  * *Currency for External Products* - Set different currency for external WooCommerce products.
24
  * *Multicurrency (Currency Switcher)* - Add multiple currencies (currency switcher) to WooCommerce.
25
  * *Multicurrency Product Base Price* - Enter prices for WooCommerce products in different currencies.
 
26
  * *Prices and Currencies by Country* - Change WooCommerce product price and currency automatically by customer's country.
27
  * *Product Open Pricing (Name Your Price)* - Let your WooCommerce store customers enter price for the product manually.
 
28
  * *Wholesale Price* - Set WooCommerce wholesale pricing depending on product quantity in cart (buy more pay less).
29
 
30
  **Button & Price Labels**
@@ -36,6 +38,7 @@ Booster for WooCommerce is a WordPress plugin that supercharges your site with a
36
 
37
  **Products**
38
 
 
39
  * *Crowdfunding* - Add crowdfunding products to WooCommerce.
40
  * *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.
41
  * *Product Cost Price* - Save WooCommerce product purchase costs data for admin reports.
@@ -44,17 +47,18 @@ Booster for WooCommerce is a WordPress plugin that supercharges your site with a
44
  * *Product Input Fields* - WooCommerce product input fields.
45
  * *Product Listings* - Change WooCommerce display options for shop and category pages: show/hide categories count, exclude categories, show/hide empty categories.
46
  * *Product Tabs* - Add custom product tabs - globally or per product. Customize or completely remove WooCommerce default product tabs.
 
47
  * *Related Products* - Change displayed WooCommerce related products number, columns, order, relate by tag and/or category, or hide related products completely.
48
  * *SKU* - Generate WooCommerce SKUs automatically.
49
  * *Sorting* - Add more WooCommerce sorting options or remove all sorting including default.
50
 
51
  **Cart & Checkout**
52
 
53
- * *Cart* - Add custom info to WooCommerce cart page. Add empty cart button.
54
  * *Checkout Core Fields* - Customize WooCommerce core checkout fields. Disable/enable fields, set required, change labels and/or placeholders.
55
  * *Checkout Custom Fields* - Add custom fields to WooCommerce checkout page.
56
- * *Checkout Files Upload* - Let customers upload files on WooCommerce checkout.
57
  * *Checkout Custom Info* - Add custom info to WooCommerce checkout page.
 
58
  * *Empty Cart Button* - Add and customize "Empty Cart" button to cart page.
59
  * *Mini Cart* - Customize WooCommerce mini cart widget.
60
 
@@ -62,18 +66,18 @@ Booster for WooCommerce is a WordPress plugin that supercharges your site with a
62
 
63
  * *Custom Gateways* - Add multiple custom payment gateways to WooCommerce.
64
  * *Gateways Currency* - Currency per WooCommerce payment gateway.
65
- * *Gateways Fees* - Enable extra fees for WooCommerce payment gateways.
66
  * *Gateways Icons* - Change or completely remove icons (images) for any (default or custom) WooCommerce payment gateway.
67
  * *Gateways Min/Max* - Add min/max amounts for WooCommerce payment gateways to show up.
68
- * *Gateways by Country* - Set countries to include/exclude for WooCommerce payment gateways to show up.
69
- * *Gateways per Category* - Show payment gateway only if there is product of selected category in WooCommerce cart.
70
 
71
  **Shipping & Orders**
72
 
73
  * *Address Formats* - Set address format in WooCommerce orders on per country basis. Force base country display.
74
  * *Order Custom Statuses* - Custom statuses for WooCommerce orders.
75
  * *Order Numbers* - WooCommerce sequential order numbering, custom order number prefix, suffix and number width.
76
- * *Orders* - Minimum WooCommerce order amount; orders auto-complete.
77
  * *Shipping* - Add multiple custom shipping methods to WooCommerce. Hide WooCommerce shipping when free is available. Display "left to free shipping" info.
78
  * *Shipping Calculator* - Customize WooCommerce shipping calculator on cart page.
79
 
@@ -84,12 +88,12 @@ Booster for WooCommerce is a WordPress plugin that supercharges your site with a
84
  **Emails & Misc.**
85
 
86
  * *Admin Tools* - Booster for WooCommerce debug and log tools.
87
- * *Emails* - Add custom emails. Add another email recipient(s) to all WooCommerce emails.
88
  * *EU VAT Number* - Collect and validate EU VAT numbers on WooCommerce checkout. Automatically disable VAT for valid numbers. Add all EU countries VAT standard rates to WooCommerce.
 
89
  * *General* - Separate custom CSS for front and back end. Shortcodes in Wordpress text widgets.
90
  * *Old Slugs* - Remove old WooCommerce products slugs.
91
  * *Reports* - WooCommerce stock, sales, customers etc. reports.
92
- * *WPML* - Booster for WooCommerce basic WPML support.
93
 
94
  = Feedback =
95
  * We are open to your suggestions and feedback - thank you for using or trying out one of our plugins!
@@ -99,11 +103,6 @@ Booster for WooCommerce is a WordPress plugin that supercharges your site with a
99
  = More =
100
  * Visit the [Booster for WooCommerce plugin page](http://booster.io/)
101
 
102
- = Available Translations =
103
- * French - `fr_FR` by Jean-Marc Schreiber.
104
- * Dutch - `nl_NL`.
105
- * Russian - `ru_RU`.
106
-
107
  == Installation ==
108
 
109
  1. Upload the entire `woocommerce-jetpack` folder to the `/wp-content/plugins/` directory
@@ -122,8 +121,106 @@ To unlock all Booster for WooCommerce features, please install additional [Boost
122
 
123
  == Changelog ==
124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  = 2.4.8 - 04/05/2016 =
126
- * Dev - "Booster - Country Switcher" widget added.
127
  * Dev - Currency reports added to Multicurrency and Gateways Currency modules.
128
  * Dev - `WCJ_Module` - `create_meta_box` - `select` type added.
129
  * Dev - `WCJ_Module` - `create_meta_box` now takes option default value if no post meta is set.
1
  === Booster for WooCommerce ===
2
+ Contributors: algoritmika,anbinder
3
  Tags: woocommerce,booster for woocommerce,woocommerce jetpack,custom price labels,call for price,currency symbol,remove sorting,remove old product slugs,add to cart text,order number,sequential order numbering,email pdf invoice,pdf invoice,pdf invoices,already in cart,empty cart,redirect to checkout,minimum order amount,customize checkout fields,checkout fields,email,customize product tabs,product tabs,related products number,empty cart,redirect add to cart,redirect to checkout,product already in cart,custom payment gateway,payment gateway icon,auto-complete all orders,custom order statuses,custom order status,remove text from price,custom css,hide categories count,hide subcategories count,hide category count,hide subcategory count,display total sales,custom product tabs,remove product tab,payment gateway fee,vat,gateway by country,price by country,currency switcher
4
  Requires at least: 4.1
5
  Tested up to: 4.5
6
+ Stable tag: 2.5.0
7
  License: GNU General Public License v3.0
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
23
  * *Currency for External Products* - Set different currency for external WooCommerce products.
24
  * *Multicurrency (Currency Switcher)* - Add multiple currencies (currency switcher) to WooCommerce.
25
  * *Multicurrency Product Base Price* - Enter prices for WooCommerce products in different currencies.
26
+ * *Price by User Role* - Display WooCommerce products prices by user roles.
27
  * *Prices and Currencies by Country* - Change WooCommerce product price and currency automatically by customer's country.
28
  * *Product Open Pricing (Name Your Price)* - Let your WooCommerce store customers enter price for the product manually.
29
+ * *Product Price by Formula* - Set formula for automatic WooCommerce product price calculation.
30
  * *Wholesale Price* - Set WooCommerce wholesale pricing depending on product quantity in cart (buy more pay less).
31
 
32
  **Button & Price Labels**
38
 
39
  **Products**
40
 
41
+ * *Bookings* - Add bookings products to WooCommerce.
42
  * *Crowdfunding* - Add crowdfunding products to WooCommerce.
43
  * *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.
44
  * *Product Cost Price* - Save WooCommerce product purchase costs data for admin reports.
47
  * *Product Input Fields* - WooCommerce product input fields.
48
  * *Product Listings* - Change WooCommerce display options for shop and category pages: show/hide categories count, exclude categories, show/hide empty categories.
49
  * *Product Tabs* - Add custom product tabs - globally or per product. Customize or completely remove WooCommerce default product tabs.
50
+ * *Product by Country* - Display WooCommerce products by customers country.
51
  * *Related Products* - Change displayed WooCommerce related products number, columns, order, relate by tag and/or category, or hide related products completely.
52
  * *SKU* - Generate WooCommerce SKUs automatically.
53
  * *Sorting* - Add more WooCommerce sorting options or remove all sorting including default.
54
 
55
  **Cart & Checkout**
56
 
57
+ * *Cart* - Add custom info to WooCommerce cart page.
58
  * *Checkout Core Fields* - Customize WooCommerce core checkout fields. Disable/enable fields, set required, change labels and/or placeholders.
59
  * *Checkout Custom Fields* - Add custom fields to WooCommerce checkout page.
 
60
  * *Checkout Custom Info* - Add custom info to WooCommerce checkout page.
61
+ * *Checkout Files Upload* - Let customers upload files on (or after) WooCommerce checkout.
62
  * *Empty Cart Button* - Add and customize "Empty Cart" button to cart page.
63
  * *Mini Cart* - Customize WooCommerce mini cart widget.
64
 
66
 
67
  * *Custom Gateways* - Add multiple custom payment gateways to WooCommerce.
68
  * *Gateways Currency* - Currency per WooCommerce payment gateway.
69
+ * *Gateways Fees and Discounts* - Enable extra fees or discounts for WooCommerce payment gateways.
70
  * *Gateways Icons* - Change or completely remove icons (images) for any (default or custom) WooCommerce payment gateway.
71
  * *Gateways Min/Max* - Add min/max amounts for WooCommerce payment gateways to show up.
72
+ * *Gateways by Country or State* - Set countries or states to include/exclude for WooCommerce payment gateways to show up.
73
+ * *Gateways per Product or Category* - Show WooCommerce gateway only if there is selected product or product category in cart.
74
 
75
  **Shipping & Orders**
76
 
77
  * *Address Formats* - Set address format in WooCommerce orders on per country basis. Force base country display.
78
  * *Order Custom Statuses* - Custom statuses for WooCommerce orders.
79
  * *Order Numbers* - WooCommerce sequential order numbering, custom order number prefix, suffix and number width.
80
+ * *Orders* - Minimum WooCommerce order amount; orders auto-complete; custom admin order list columns.
81
  * *Shipping* - Add multiple custom shipping methods to WooCommerce. Hide WooCommerce shipping when free is available. Display "left to free shipping" info.
82
  * *Shipping Calculator* - Customize WooCommerce shipping calculator on cart page.
83
 
88
  **Emails & Misc.**
89
 
90
  * *Admin Tools* - Booster for WooCommerce debug and log tools.
91
+ * *Booster WPML* - Booster for WooCommerce basic WPML support.
92
  * *EU VAT Number* - Collect and validate EU VAT numbers on WooCommerce checkout. Automatically disable VAT for valid numbers. Add all EU countries VAT standard rates to WooCommerce.
93
+ * *Emails* - Add custom emails. Add another email recipient(s) to all WooCommerce emails.
94
  * *General* - Separate custom CSS for front and back end. Shortcodes in Wordpress text widgets.
95
  * *Old Slugs* - Remove old WooCommerce products slugs.
96
  * *Reports* - WooCommerce stock, sales, customers etc. reports.
 
97
 
98
  = Feedback =
99
  * We are open to your suggestions and feedback - thank you for using or trying out one of our plugins!
103
  = More =
104
  * Visit the [Booster for WooCommerce plugin page](http://booster.io/)
105
 
 
 
 
 
 
106
  == Installation ==
107
 
108
  1. Upload the entire `woocommerce-jetpack` folder to the `/wp-content/plugins/` directory
121
 
122
  == Changelog ==
123
 
124
+ = 2.5.0 - 23/05/2016 =
125
+ * Dev - Multisite support added.
126
+ * Dev - `is_super_admin()` replaced with `wcj_is_user_role()`.
127
+ * Dev - "Plugin renamed..." notice (`name_changed_notice`) removed.
128
+ * Fix - Translations - Translation domain fixed (in `jetpack_menu()`).
129
+ * Dev - Translations - Text domain added to the plugin header.
130
+ * Dev - Translations - POT file updated.
131
+ * Dev - `WCJ_Module` - `create_meta_box()` and `save_meta_box()` - `title` option type added.
132
+ * Dev - `WCJ_Module` - `create_meta_box()` - `multiple` attribute added to `select` type option.
133
+ * Dev - Functions - `wcj_get_current_currency_code()` function added.
134
+ * Dev - Functions - `wcj_get_currency_exchange_rate()` function added.
135
+ * Dev - Widgets - Multicurrency Switcher - "module not enabled" message added.
136
+ * Dev - Widgets - Country Switcher - "module not enabled" and "wrong configuration" messages added.
137
+ * Fix - Shortcodes - Orders - `[wcj_order_items_table]` - Fixed for deleted products.
138
+ * Fix - Shortcodes - Orders - `[wcj_order_items_table]` - `item_name` and `item_variation` - Variation data fixed (`pa_` removed and `urlencode` added).
139
+ * Dev - Shortcodes - Orders - `[wcj_order_items_table]` - `item_name` - `style_item_name_variation` attribute added.
140
+ * Dev - Shortcodes - Orders - `[wcj_order_items_table]` - `debug` column added.
141
+ * Dev - Shortcodes - Orders - `[wcj_order_total_in_words]` - Bulgarian language (`lang="BG"`) added.
142
+ * Fix - Shortcodes - Products - `get_product_orders_data` - `total_orders` fixed.
143
+ * Dev - Shortcodes - Products - `get_product_orders_data` - `offset` shortcodes attribute added.
144
+ * Dev - Shortcodes - Products - `get_product_orders_data` and `[wcj_product_time_since_last_sale]` - Query by blocks.
145
+ * Dev - Shortcodes - Products - `[wcj_product_crowdfunding_goal_remaining_progress_bar]` shortcode added.
146
+ * Dev - Shortcodes - Products - `[wcj_product_crowdfunding_time_remaining_progress_bar]` shortcode added.
147
+ * Dev - Shortcodes - Products - `[wcj_product_total_orders_items]` shortcode added.
148
+ * Dev - Shortcodes - Products - `date_i18n` added to `[wcj_product_crowdfunding_startdate]` and `[wcj_product_crowdfunding_deadline]`.
149
+ * Dev - PRICES & CURRENCIES - Product Price by Formula - Initial module release.
150
+ * Dev - PRICES & CURRENCIES - Price by User Role - Initial module release.
151
+ * Fix - PRICES & CURRENCIES - Prices and Currencies by Country - Now rounding applies to global (not per product) conversions only.
152
+ * Fix - PRICES & CURRENCIES - Prices and Currencies by Country - Additional check in `get_customer_country_group_id()` to prevent PHP notice on empty value.
153
+ * Fix - PRICES & CURRENCIES - Prices and Currencies by Country - `get_variation_prices_hash()` - Variable products main price fixed.
154
+ * Fix - PRICES & CURRENCIES - Prices and Currencies by Country - Support for grouped products added.
155
+ * Dev - PRICES & CURRENCIES - Prices and Currencies by Country - "Customer Country Detection Method" changed from "by user selection" to "by IP, then by user selection".
156
+ * Dev - PRICES & CURRENCIES - Prices and Currencies by Country - `get_customer_country_group_id()` - Not recalculating `customer_country_group_id` - works faster now.
157
+ * Fix - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - `get_variation_prices_hash()` - Variable products main price fixed.
158
+ * Fix - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Empty price bug fixed.
159
+ * Fix - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - Support for grouped products added.
160
+ * Dev - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - "Revert Currency to Default on Checkout" option added.
161
+ * Dev - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - `add_hooks()` moved from `init` hook to constructor.
162
+ * Fix - PRICES & CURRENCIES - Multicurrency Product Base Price - Support for grouped products added.
163
+ * Fix - PRICES & CURRENCIES - Multicurrency Product Base Price - `get_variation_prices_hash()` - Variable products main price fixed.
164
+ * Fix - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - `post__not_in` added to `save_meta_box_value`.
165
+ * Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - `posts_per_page` lowered to query only necessary number of product in `save_meta_box_value`.
166
+ * Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - `disable_add_to_cart_ajax` added.
167
+ * Fix - PRICES & CURRENCIES - Wholesale Price - Mini cart bug fixed.
168
+ * Dev - PRICES & CURRENCIES - Wholesale Price - Major code refactoring.
169
+ * Dev - PRICES & CURRENCIES - Wholesale Price - Per product functionality added.
170
+ * Fix - BUTTON & PRICE LABELS - Custom Price Labels - Products query is made by blocks now (`wcj_get_products()`).
171
+ * Dev - BUTTON & PRICE LABELS - Custom Price Labels - `create_migrate_from_custom_price_labels_tool` - Query by blocks.
172
+ * Dev - PRODUCTS - Bookings - Initial module release.
173
+ * Dev - PRODUCTS - Product by Country - Initial module release.
174
+ * Fix - PRODUCTS - Product Info V2 - Products query is made by blocks now (`wcj_get_products()`).
175
+ * Fix - PRODUCTS - Product Tabs - Local product tabs number field set to min zero (instead of one).
176
+ * Dev - PRODUCTS - Product Input Fields - "Emails Options" added.
177
+ * Dev - PRODUCTS - Product Add to Cart - Add to Cart Variable Product - Display Radio Buttons Instead of Drop Box - `label` tag added.
178
+ * Dev - CART & CHECKOUT - Checkout Files Upload - "Add to Thank You page" and "Add to My Account page" options added.
179
+ * Fix - CART & CHECKOUT - Empty Cart Button - "Wrapping DIV style" option fixed in free version.
180
+ * Dev - CART & CHECKOUT - Empty Cart Button - "Button position on the Checkout page" option added.
181
+ * Fix - CART & CHECKOUT - Checkout Custom Fields - `add_custom_order_and_account_fields_to_admin_order_display`.
182
+ * Dev - CART & CHECKOUT - Checkout Custom Fields - Field ID display added to module's settings page.
183
+ * Dev - CART & CHECKOUT - Checkout Custom Fields - "Add All Fields to Order Received Page" option added.
184
+ * Fix - PAYMENT GATEWAYS - Gateways per Product or Category - Products query is made by blocks now (`wcj_get_products()`).
185
+ * Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Compatibility with PayPal Express added.
186
+ * Dev - SHIPPING & ORDERS - Order Numbers - `renumerate_orders` - Query by blocks.
187
+ * Fix - EMAILS & MISC. - Old Slugs - `$wpdb->prefix` fix.
188
+ * Fix - EMAILS & MISC. - Reports - `gather_orders_data` - Fixed for deleted products (caused PHP notice).
189
+ * Dev - EMAILS & MISC. - Reports - `gather_products_data` - Query by blocks.
190
+ * Tweak - Admin Modules Menu - "Shipping" module set to default in SHIPPING & ORDERS category.
191
+ * Tweak - PRICES & CURRENCIES - Currency Exchange Rates - Documentation link added. Reset button added.
192
+ * Tweak - PRICES & CURRENCIES - Multicurrency Product Base Price - Documentation link added.
193
+ * Tweak - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - Documentation link added.
194
+ * Tweak - PRICES & CURRENCIES - Currency for External Products - Documentation link added.
195
+ * Tweak - PRICES & CURRENCIES - Bulk Price Converter - Documentation link added.
196
+ * Tweak - PRICES & CURRENCIES - Wholesale Price - Reset button added.
197
+ * Tweak - BUTTON & PRICE LABELS - Custom Price Labels - Documentation link added. Reset button added.
198
+ * Tweak - PRODUCTS - Product Add to Cart - Description updated.
199
+ * Tweak - PRODUCTS - Crowdfunding - Reset button added.
200
+ * Tweak - PRODUCTS - Product Info - Documentation link added.
201
+ * Tweak - PRODUCTS - Product Info V2 - Documentation link added.
202
+ * Tweak - CART & CHECKOUT - Empty Cart Button - Documentation link added. Reset button added.
203
+ * Tweak - CART & CHECKOUT - Checkout Core Fields - Documentation link added. Reset button added.
204
+ * Tweak - PAYMENT GATEWAYS - Gateways Currency - Documentation link added.
205
+ * Tweak - PAYMENT GATEWAYS - Gateways Fees and Discounts - Documentation link added. Reset button added.
206
+ * Tweak - PAYMENT GATEWAYS - Gateways Icons - Documentation link added. Reset button added.
207
+ * Tweak - PAYMENT GATEWAYS - Gateways Min/Max - Documentation link added.
208
+ * Tweak - PAYMENT GATEWAYS - Gateways by Country or State - Documentation link added.
209
+ * Tweak - SHIPPING & ORDERS - Shipping - Module description updated.
210
+ * Tweak - SHIPPING & ORDERS - Orders - Documentation link added. Reset button added.
211
+ * Tweak - SHIPPING & ORDERS - Order Numbers - Documentation link added.
212
+ * Tweak - SHIPPING & ORDERS - Order Custom Statuses - Documentation link added. Reset button added.
213
+ * Tweak - EMAILS & MISC. - Booster WPML - Documentation link added. Short description updated.
214
+ * Tweak - EMAILS & MISC. - EU VAT Number - Documentation link added.
215
+ * Tweak - EMAILS & MISC. - EU VAT Number - Description updated.
216
+ * Tweak - EMAILS & MISC. - Emails - Documentation link added.
217
+ * Tweak - EMAILS & MISC. - Old Slugs - Documentation link added. Reset button added.
218
+ * Tweak - EMAILS & MISC. - Reports - Documentation link added.
219
+ * Tweak - EMAILS & MISC. - Admin Tools - Documentation link added.
220
+ * Tweak - EMAILS & MISC. - General - Documentation link added.
221
+
222
  = 2.4.8 - 04/05/2016 =
223
+ * Dev - Widgets - "Booster - Country Switcher" widget added.
224
  * Dev - Currency reports added to Multicurrency and Gateways Currency modules.
225
  * Dev - `WCJ_Module` - `create_meta_box` - `select` type added.
226
  * Dev - `WCJ_Module` - `create_meta_box` now takes option default value if no post meta is set.
woocommerce-jetpack.php CHANGED
@@ -3,9 +3,11 @@
3
  Plugin Name: Booster for WooCommerce
4
  Plugin URI: http://booster.io
5
  Description: Supercharge your WooCommerce site with these awesome powerful features.
6
- Version: 2.4.8
7
  Author: Algoritmika Ltd
8
  Author URI: http://www.algoritmika.com
 
 
9
  Copyright: © 2016 Algoritmika Ltd.
10
  License: GNU General Public License v3.0
11
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -13,7 +15,12 @@ License URI: http://www.gnu.org/licenses/gpl-3.0.html
13
 
14
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
15
 
16
- if ( ! in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) return; // Check if WooCommerce is active
 
 
 
 
 
17
 
18
  if ( ! class_exists( 'WC_Jetpack' ) ) :
19
 
@@ -21,7 +28,7 @@ if ( ! class_exists( 'WC_Jetpack' ) ) :
21
  * Main WC_Jetpack Class
22
  *
23
  * @class WC_Jetpack
24
- * @version 2.4.8
25
  */
26
 
27
  final class WC_Jetpack {
@@ -32,7 +39,7 @@ final class WC_Jetpack {
32
  * @var string
33
  * @since 2.4.7
34
  */
35
- public $version = '2.4.8';
36
 
37
  /**
38
  * @var WC_Jetpack The single instance of the class
@@ -56,36 +63,33 @@ final class WC_Jetpack {
56
 
57
  /**
58
  * Cloning is forbidden.
59
- *
60
- public function __clone() {
61
  _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'woocommerce' ), '3.9.1' );
62
- }
63
 
64
  /**
65
  * Unserializing instances of this class is forbidden.
66
- *
67
- public function __wakeup() {
68
  _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'woocommerce' ), '3.9.1' );
69
- }
70
 
71
  /**
72
  * WC_Jetpack Constructor.
73
  *
74
- * @version 2.4.0
75
  * @access public
76
  */
77
  public function __construct() {
78
 
79
- /* echo 'Constructor Start: memory_get_usage( false )' . number_format( memory_get_usage( false ), 0, '.', ',' );
80
- echo 'Constructor Start: memory_get_usage( true )' . number_format( memory_get_usage( true ), 0, '.', ',' ); */
81
-
82
- //require_once( WP_PLUGIN_DIR . '/woocommerce/woocommerce.php' );
83
 
84
  // Include required files
85
  $this->includes();
86
 
87
  //register_activation_hook( __FILE__, array( $this, 'install' ) );
88
- //add_action( 'admin_init', array( $this, 'install' ) );
89
  add_action( 'init', array( $this, 'init' ), 0 );
90
 
91
  // Settings
@@ -95,7 +99,7 @@ final class WC_Jetpack {
95
  add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'action_links' ) );
96
  add_action( 'admin_menu', array( $this, 'jetpack_menu' ), 100 );
97
  // add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ), 2 );
98
- add_action( 'admin_notices', array( $this, 'name_changed_notice' ) );
99
  }
100
 
101
  // Scripts
@@ -106,22 +110,19 @@ final class WC_Jetpack {
106
  'yes' === get_option( 'wcj_crowdfunding_enabled' )
107
  ) {
108
  add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_backend_scripts' ) );
109
- //add_action( 'admin_head', array( $this, 'add_datepicker_script' ) );
110
  }
111
  }
112
 
113
  if (
114
  'yes' === get_option( 'wcj_product_input_fields_enabled' ) ||
115
- 'yes' === get_option( 'wcj_checkout_custom_fields_enabled' )
 
116
  ){
117
  add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_frontend_scripts' ) );
118
  }
119
 
120
  // Loaded action
121
  do_action( 'wcj_loaded' );
122
-
123
- /* echo 'Constructor End: memory_get_usage( false )' . number_format( memory_get_usage( false ), 0, '.', ',' );
124
- echo 'Constructor End: memory_get_usage( true )' . number_format( memory_get_usage( true ), 0, '.', ',' ); */
125
  }
126
 
127
  /**
@@ -221,12 +222,12 @@ final class WC_Jetpack {
221
  * @version 2.2.4
222
  * @since 2.2.4
223
  */
224
- public function name_changed_notice() {
225
 
226
  if ( ! is_admin() ) return;
227
 
228
  //require_once( ABSPATH . 'wp-includes/pluggable.php' );
229
- if ( ! is_super_admin() ) return;
230
 
231
  $user_id = get_current_user_id();
232
 
@@ -251,29 +252,33 @@ final class WC_Jetpack {
251
  echo '<div class="' . $class . '"><p>' . $message . '</p><p>' . $button . '</p></div>';
252
  }
253
  }
254
- }
255
 
256
  /**
257
  * admin_footer_text
258
- *
259
- public function admin_footer_text( $footer_text ) {
260
-
261
  if ( isset( $_GET['page'] ) ) {
262
  if ( 'wcj-tools' === $_GET['page'] || ( 'wc-settings' === $_GET['page'] && isset( $_GET['tab'] ) && 'jetpack' === $_GET['tab'] ) ) {
263
  return sprintf( __( 'If you like <strong>WooCommerce Jetpack</strong> please leave us a <a href="%1$s" target="_blank">&#9733;&#9733;&#9733;&#9733;&#9733;</a> rating on <a href="%1$s" target="_blank">WordPress.org</a>. We will be grateful for any help!', 'woocommerce-jetpack' ), 'https://wordpress.org/support/view/plugin-reviews/woocommerce-jetpack?filter=5#postform' );
264
  }
265
  }
266
-
267
  return $footer_text;
268
- }
269
 
270
  /**
271
  * Add menu item
272
  *
273
- * @version 2.2.4
274
  */
275
  public function jetpack_menu() {
276
- add_submenu_page( 'woocommerce', __( 'Booster for WooCommerce', 'woocommerce' ), __( 'Booster Settings', 'woocommerce' ) , 'manage_woocommerce', 'admin.php?page=wc-settings&tab=jetpack' );
 
 
 
 
 
 
277
  }
278
 
279
  /**
@@ -363,7 +368,7 @@ final class WC_Jetpack {
363
  include_once( 'includes/widgets/class-wcj-widget-left-to-free-shipping.php' );
364
 
365
  // Abstracts
366
- //include_once( 'includes/abstracts/class-wcj-product-input-fields.php' );
367
 
368
  // Modules and Submodules
369
  $this->include_modules();
@@ -372,11 +377,13 @@ final class WC_Jetpack {
372
  /**
373
  * include_functions.
374
  *
375
- * @version 2.4.4
376
  */
377
  private function include_functions() {
378
  include_once( 'includes/functions/wcj-debug-functions.php' );
379
  include_once( 'includes/functions/wcj-functions.php' );
 
 
380
  include_once( 'includes/functions/wcj-html-functions.php' );
381
  include_once( 'includes/functions/wcj-country-functions.php' );
382
  include_once( 'includes/functions/wcj-invoicing-functions.php' );
@@ -387,7 +394,7 @@ final class WC_Jetpack {
387
  /**
388
  * include_shortcodes.
389
  *
390
- * @version 2.4.0
391
  */
392
  private function include_shortcodes() {
393
  //if ( 'yes' === get_option( 'wcj_shortcodes_enabled', 'no' ) ) {
@@ -398,13 +405,14 @@ final class WC_Jetpack {
398
  include_once( 'includes/shortcodes/class-wcj-orders-shortcodes.php' );
399
  include_once( 'includes/shortcodes/class-wcj-order-items-shortcodes.php' );
400
  include_once( 'includes/shortcodes/class-wcj-products-shortcodes.php' );
 
401
  }
402
  }
403
 
404
  /**
405
  * Include modules and submodules
406
  *
407
- * @version 2.4.8
408
  */
409
  private function include_modules() {
410
  $settings = array();
@@ -421,10 +429,14 @@ final class WC_Jetpack {
421
  $settings[] = include_once( 'includes/class-wcj-product-input-fields.php' );
422
  $settings[] = include_once( 'includes/class-wcj-product-bulk-price-converter.php' );
423
  $settings[] = include_once( 'includes/class-wcj-purchase-data.php' );
 
424
  $settings[] = include_once( 'includes/class-wcj-crowdfunding.php' );
425
  $settings[] = include_once( 'includes/class-wcj-wholesale-price.php' );
426
  $settings[] = include_once( 'includes/class-wcj-product-open-pricing.php' );
 
 
427
  $settings[] = include_once( 'includes/class-wcj-product-images.php' );
 
428
  $settings[] = include_once( 'includes/class-wcj-add-to-cart.php' );
429
  $settings[] = include_once( 'includes/class-wcj-more-button-labels.php' );
430
  $settings[] = include_once( 'includes/class-wcj-cart.php' );
@@ -512,7 +524,7 @@ final class WC_Jetpack {
512
  // Admin reset
513
  if ( isset ( $_GET['woojetpack_admin_options_reset'] ) ) {
514
  require_once( ABSPATH . 'wp-includes/pluggable.php' );
515
- if ( is_super_admin() ) {
516
  delete_option( $value['id'] );
517
  }
518
  }
3
  Plugin Name: Booster for WooCommerce
4
  Plugin URI: http://booster.io
5
  Description: Supercharge your WooCommerce site with these awesome powerful features.
6
+ Version: 2.5.0
7
  Author: Algoritmika Ltd
8
  Author URI: http://www.algoritmika.com
9
+ Text Domain: woocommerce-jetpack
10
+ Domain Path: /langs
11
  Copyright: © 2016 Algoritmika Ltd.
12
  License: GNU General Public License v3.0
13
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
15
 
16
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
17
 
18
+ // Check if WooCommerce is active
19
+ $plugin = 'woocommerce/woocommerce.php';
20
+ if (
21
+ ! in_array( $plugin, apply_filters( 'active_plugins', get_option( 'active_plugins', array() ) ) ) &&
22
+ ! ( is_multisite() && array_key_exists( $plugin, get_site_option( 'active_sitewide_plugins', array() ) ) )
23
+ ) return;
24
 
25
  if ( ! class_exists( 'WC_Jetpack' ) ) :
26
 
28
  * Main WC_Jetpack Class
29
  *
30
  * @class WC_Jetpack
31
+ * @version 2.5.0
32
  */
33
 
34
  final class WC_Jetpack {
39
  * @var string
40
  * @since 2.4.7
41
  */
42
+ public $version = '2.5.0';
43
 
44
  /**
45
  * @var WC_Jetpack The single instance of the class
63
 
64
  /**
65
  * Cloning is forbidden.
66
+ */
67
+ /* public function __clone() {
68
  _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'woocommerce' ), '3.9.1' );
69
+ } */
70
 
71
  /**
72
  * Unserializing instances of this class is forbidden.
73
+ */
74
+ /* public function __wakeup() {
75
  _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'woocommerce' ), '3.9.1' );
76
+ } */
77
 
78
  /**
79
  * WC_Jetpack Constructor.
80
  *
81
+ * @version 2.5.0
82
  * @access public
83
  */
84
  public function __construct() {
85
 
86
+ // require_once( WP_PLUGIN_DIR . '/woocommerce/woocommerce.php' );
 
 
 
87
 
88
  // Include required files
89
  $this->includes();
90
 
91
  //register_activation_hook( __FILE__, array( $this, 'install' ) );
92
+ // add_action( 'admin_init', array( $this, 'install' ) );
93
  add_action( 'init', array( $this, 'init' ), 0 );
94
 
95
  // Settings
99
  add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'action_links' ) );
100
  add_action( 'admin_menu', array( $this, 'jetpack_menu' ), 100 );
101
  // add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ), 2 );
102
+ // add_action( 'admin_notices', array( $this, 'name_changed_notice' ) );
103
  }
104
 
105
  // Scripts
110
  'yes' === get_option( 'wcj_crowdfunding_enabled' )
111
  ) {
112
  add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_backend_scripts' ) );
 
113
  }
114
  }
115
 
116
  if (
117
  'yes' === get_option( 'wcj_product_input_fields_enabled' ) ||
118
+ 'yes' === get_option( 'wcj_checkout_custom_fields_enabled' ) ||
119
+ 'yes' === get_option( 'wcj_product_bookings_enabled' )
120
  ){
121
  add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_frontend_scripts' ) );
122
  }
123
 
124
  // Loaded action
125
  do_action( 'wcj_loaded' );
 
 
 
126
  }
127
 
128
  /**
222
  * @version 2.2.4
223
  * @since 2.2.4
224
  */
225
+ /* public function name_changed_notice() {
226
 
227
  if ( ! is_admin() ) return;
228
 
229
  //require_once( ABSPATH . 'wp-includes/pluggable.php' );
230
+ if ( ! wcj_is_user_role( 'administrator' ) ) return;
231
 
232
  $user_id = get_current_user_id();
233
 
252
  echo '<div class="' . $class . '"><p>' . $message . '</p><p>' . $button . '</p></div>';
253
  }
254
  }
255
+ } */
256
 
257
  /**
258
  * admin_footer_text
259
+ */
260
+ /* public function admin_footer_text( $footer_text ) {
 
261
  if ( isset( $_GET['page'] ) ) {
262
  if ( 'wcj-tools' === $_GET['page'] || ( 'wc-settings' === $_GET['page'] && isset( $_GET['tab'] ) && 'jetpack' === $_GET['tab'] ) ) {
263
  return sprintf( __( 'If you like <strong>WooCommerce Jetpack</strong> please leave us a <a href="%1$s" target="_blank">&#9733;&#9733;&#9733;&#9733;&#9733;</a> rating on <a href="%1$s" target="_blank">WordPress.org</a>. We will be grateful for any help!', 'woocommerce-jetpack' ), 'https://wordpress.org/support/view/plugin-reviews/woocommerce-jetpack?filter=5#postform' );
264
  }
265
  }
 
266
  return $footer_text;
267
+ } */
268
 
269
  /**
270
  * Add menu item
271
  *
272
+ * @version 2.5.0
273
  */
274
  public function jetpack_menu() {
275
+ add_submenu_page(
276
+ 'woocommerce',
277
+ __( 'Booster for WooCommerce', 'woocommerce-jetpack' ),
278
+ __( 'Booster Settings', 'woocommerce-jetpack' ) ,
279
+ 'manage_woocommerce',
280
+ 'admin.php?page=wc-settings&tab=jetpack'
281
+ );
282
  }
283
 
284
  /**
368
  include_once( 'includes/widgets/class-wcj-widget-left-to-free-shipping.php' );
369
 
370
  // Abstracts
371
+ // include_once( 'includes/abstracts/class-wcj-product-input-fields.php' );
372
 
373
  // Modules and Submodules
374
  $this->include_modules();
377
  /**
378
  * include_functions.
379
  *
380
+ * @version 2.5.0
381
  */
382
  private function include_functions() {
383
  include_once( 'includes/functions/wcj-debug-functions.php' );
384
  include_once( 'includes/functions/wcj-functions.php' );
385
+ include_once( 'includes/functions/wcj-functions-number-to-words.php' );
386
+ include_once( 'includes/functions/wcj-functions-number-to-words-bg.php' );
387
  include_once( 'includes/functions/wcj-html-functions.php' );
388
  include_once( 'includes/functions/wcj-country-functions.php' );
389
  include_once( 'includes/functions/wcj-invoicing-functions.php' );
394
  /**
395
  * include_shortcodes.
396
  *
397
+ * @version 2.5.0
398
  */
399
  private function include_shortcodes() {
400
  //if ( 'yes' === get_option( 'wcj_shortcodes_enabled', 'no' ) ) {
405
  include_once( 'includes/shortcodes/class-wcj-orders-shortcodes.php' );
406
  include_once( 'includes/shortcodes/class-wcj-order-items-shortcodes.php' );
407
  include_once( 'includes/shortcodes/class-wcj-products-shortcodes.php' );
408
+ include_once( 'includes/shortcodes/class-wcj-products-add-form-shortcodes.php' );
409
  }
410
  }
411
 
412
  /**
413
  * Include modules and submodules
414
  *
415
+ * @version 2.5.0
416
  */
417
  private function include_modules() {
418
  $settings = array();
429
  $settings[] = include_once( 'includes/class-wcj-product-input-fields.php' );
430
  $settings[] = include_once( 'includes/class-wcj-product-bulk-price-converter.php' );
431
  $settings[] = include_once( 'includes/class-wcj-purchase-data.php' );
432
+ $settings[] = include_once( 'includes/class-wcj-product-bookings.php' );
433
  $settings[] = include_once( 'includes/class-wcj-crowdfunding.php' );
434
  $settings[] = include_once( 'includes/class-wcj-wholesale-price.php' );
435
  $settings[] = include_once( 'includes/class-wcj-product-open-pricing.php' );
436
+ $settings[] = include_once( 'includes/class-wcj-price-by-user-role.php' );
437
+ $settings[] = include_once( 'includes/class-wcj-product-price-by-formula.php' );
438
  $settings[] = include_once( 'includes/class-wcj-product-images.php' );
439
+ $settings[] = include_once( 'includes/class-wcj-product-by-country.php' );
440
  $settings[] = include_once( 'includes/class-wcj-add-to-cart.php' );
441
  $settings[] = include_once( 'includes/class-wcj-more-button-labels.php' );
442
  $settings[] = include_once( 'includes/class-wcj-cart.php' );
524
  // Admin reset
525
  if ( isset ( $_GET['woojetpack_admin_options_reset'] ) ) {
526
  require_once( ABSPATH . 'wp-includes/pluggable.php' );
527
+ if ( wcj_is_user_role( 'administrator' ) ) {
528
  delete_option( $value['id'] );
529
  }
530
  }