Version Description
- 23/05/2016 =
- Dev - Multisite support added.
- Dev -
is_super_admin()
replaced withwcj_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()
andsave_meta_box()
-title
option type added. - Dev -
WCJ_Module
-create_meta_box()
-multiple
attribute added toselect
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
anditem_variation
- Variation data fixed (pa_
removed andurlencode
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 recalculatingcustomer_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 frominit
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 tosave_meta_box_value
. - Dev - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) -
posts_per_page
lowered to query only necessary number of product insave_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 | Booster for WooCommerce |
Version | 2.5.0 |
Comparing to | |
See all releases |
Code changes from version 2.4.8 to 2.5.0
- includes/admin/wcj-modules-cats.php +6 -2
- includes/class-wcj-admin-tools.php +5 -4
- includes/class-wcj-checkout-core-fields.php +5 -4
- includes/class-wcj-checkout-custom-fields.php +63 -26
- includes/class-wcj-checkout-files-upload.php +219 -180
- includes/class-wcj-crowdfunding.php +4 -2
- includes/class-wcj-currency-exchange-rates.php +7 -2
- includes/class-wcj-currency-external-products.php +3 -2
- includes/class-wcj-emails.php +3 -2
- includes/class-wcj-empty-cart-button.php +58 -80
- includes/class-wcj-eu-vat-number.php +4 -3
- includes/class-wcj-general.php +3 -2
- includes/class-wcj-multicurrency-product-base-price.php +37 -2
- includes/class-wcj-multicurrency.php +89 -14
- includes/class-wcj-old-slugs.php +8 -17
- includes/class-wcj-order-custom-statuses.php +6 -14
- includes/class-wcj-order-numbers.php +40 -45
- includes/class-wcj-orders.php +19 -45
- includes/class-wcj-payment-gateways-by-country.php +3 -2
- includes/class-wcj-payment-gateways-currency.php +3 -2
- includes/class-wcj-payment-gateways-fees.php +84 -97
- includes/class-wcj-payment-gateways-icons.php +11 -16
- includes/class-wcj-payment-gateways-min-max.php +4 -1
- includes/class-wcj-payment-gateways-per-category.php +3 -15
- includes/class-wcj-pdf-invoicing.php +4 -4
- includes/class-wcj-price-by-country.php +10 -18
- includes/class-wcj-price-by-user-role.php +481 -0
- includes/class-wcj-price-labels.php +52 -106
- includes/class-wcj-product-add-to-cart.php +3 -3
- includes/class-wcj-product-bookings.php +431 -0
- includes/class-wcj-product-bulk-price-converter.php +3 -2
- includes/class-wcj-product-by-country.php +96 -0
- includes/class-wcj-product-custom-info.php +5 -16
- includes/class-wcj-product-info.php +3 -2
- includes/class-wcj-product-input-fields.php +33 -4
- includes/class-wcj-product-open-pricing.php +21 -6
- includes/class-wcj-product-price-by-formula.php +345 -0
- includes/class-wcj-product-tabs.php +3 -3
- includes/class-wcj-purchase-data.php +5 -5
- includes/class-wcj-reports.php +3 -2
- includes/class-wcj-shipping.php +6 -3
- includes/class-wcj-wholesale-price.php +192 -135
- includes/class-wcj-wpml.php +6 -5
- includes/classes/class-wcj-module.php +66 -40
- includes/functions/wcj-functions-number-to-words-bg.php +198 -0
- includes/functions/wcj-functions-number-to-words.php +127 -0
- includes/functions/wcj-functions.php +97 -130
- includes/input-fields/class-wcj-product-input-fields-abstract.php +33 -2
- includes/input-fields/class-wcj-product-input-fields-global.php +6 -1
- includes/input-fields/class-wcj-product-input-fields-per-product.php +5 -1
- includes/js/wcj-bookings.js +82 -0
- includes/lib/PHPMathParser/Expressions.php +110 -0
- includes/lib/PHPMathParser/Math.php +120 -0
- includes/lib/PHPMathParser/Stack.php +21 -0
- includes/lib/PHPMathParser/TerminalExpression.php +53 -0
- includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php +3 -3
- includes/price-by-country/class-wcj-price-by-country-core.php +134 -201
- includes/price-by-country/class-wcj-price-by-country-group-generator.php +3 -3
- includes/reports/wcj-class-reports-stock.php +45 -28
- includes/shortcodes/class-wcj-general-shortcodes.php +17 -14
- includes/shortcodes/class-wcj-order-items-shortcodes.php +17 -8
- includes/shortcodes/class-wcj-orders-shortcodes.php +14 -8
- includes/shortcodes/class-wcj-products-add-form-shortcodes.php +170 -0
- includes/shortcodes/class-wcj-products-shortcodes.php +206 -99
- includes/shortcodes/class-wcj-shortcodes.php +6 -4
- includes/tools/class-wcj-eu-countries-vat-rates-tool.php +3 -3
- includes/widgets/class-wcj-widget-country-switcher.php +20 -14
- includes/widgets/class-wcj-widget-multicurrency.php +16 -12
- langs/woocommerce-jetpack.pot +7960 -6113
- readme.txt +113 -16
- 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.
|
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' => '
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,13 +17,14 @@ class WCJ_Admin_Tools extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
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.
|
42 |
*/
|
43 |
public function create_admin_tools_tool() {
|
44 |
|
45 |
$the_notice = '';
|
46 |
-
if ( isset( $_GET['wcj_delete_log'] ) &&
|
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.
|
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.
|
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.
|
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->
|
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.
|
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.
|
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( '
|
37 |
|
38 |
-
|
|
|
|
|
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.
|
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 )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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( $
|
|
|
|
|
|
|
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.
|
563 |
*/
|
564 |
public function get_settings() {
|
565 |
|
566 |
$settings = array(
|
567 |
-
|
568 |
array(
|
569 |
-
'title'
|
570 |
-
'type'
|
571 |
-
'desc'
|
572 |
-
'id'
|
573 |
),
|
574 |
-
|
575 |
array(
|
576 |
'title' => __( 'Add All Fields to Admin Emails', 'woocommerce-jetpack' ),
|
577 |
-
'desc' => __( '
|
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' => __( '
|
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'
|
595 |
-
'
|
596 |
-
'id'
|
|
|
|
|
|
|
|
|
|
|
|
|
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' => __( '
|
|
|
|
|
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.
|
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.
|
|
|
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 |
-
|
41 |
-
get_option( '
|
42 |
-
|
43 |
-
|
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, '
|
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 |
-
*
|
74 |
*
|
75 |
-
* @version 2.
|
|
|
76 |
*/
|
77 |
-
function
|
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 (
|
|
|
|
|
|
|
|
|
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 |
-
$
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
190 |
-
$
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 (
|
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 |
-
$
|
219 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
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 |
-
$
|
330 |
-
$html .=
|
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 .= ' <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.
|
399 |
-
* @
|
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 .= ' <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.
|
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->
|
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.
|
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->
|
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.
|
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.
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,13 +17,14 @@ class WCJ_Emails extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
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.
|
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 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
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="' .
|
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 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
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'
|
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'
|
139 |
-
'custom_attributes'
|
140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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'
|
150 |
-
'confirm_with_pop_up_box'
|
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 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
return $this->
|
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.
|
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.
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,13 +17,14 @@ class WCJ_General extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
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.
|
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 |
-
$
|
|
|
|
|
|
|
|
|
|
|
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.
|
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.
|
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.
|
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.
|
130 |
*/
|
131 |
function get_variation_prices_hash( $price_hash, $_product, $display ) {
|
132 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
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 |
-
|
|
|
|
|
|
|
|
|
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 |
-
|
|
|
168 |
return $regular_price_per_product;
|
169 |
-
|
|
|
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.
|
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.
|
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.
|
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.
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,13 +17,14 @@ class WCJ_Old_Slugs extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
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.
|
52 |
*/
|
53 |
public function create_old_slugs_tool() {
|
54 |
|
55 |
global $wpdb;
|
56 |
-
$
|
|
|
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
|
88 |
|
89 |
$delete_result = $wpdb->get_results( $the_delete_query );
|
90 |
|
91 |
-
$recheck_result = $wpdb->get_results("SELECT * FROM
|
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.
|
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.
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,13 +17,14 @@ class WCJ_Order_Numbers extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
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 |
-
$
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
$
|
150 |
-
|
151 |
-
|
152 |
-
|
|
|
|
|
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 |
-
|
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 |
-
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,13 +17,14 @@ class WCJ_Orders extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
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 |
-
|
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 ) )
|
182 |
-
|
|
|
|
|
|
|
|
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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->
|
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.
|
77 |
*/
|
78 |
function gateways_fees() {
|
79 |
global $woocommerce;
|
80 |
-
$
|
81 |
-
$
|
82 |
-
|
83 |
-
$
|
84 |
-
if (
|
85 |
-
$current_gateway =
|
86 |
-
|
|
|
|
|
|
|
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 |
-
|
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'
|
153 |
-
'desc'
|
154 |
-
'desc_tip'
|
155 |
-
'id'
|
156 |
-
'default'
|
157 |
-
'type'
|
158 |
),
|
159 |
-
|
160 |
array(
|
161 |
-
'title'
|
162 |
-
'desc'
|
163 |
-
'desc_tip'
|
164 |
-
|
165 |
-
|
166 |
-
'
|
167 |
-
'
|
168 |
-
|
169 |
-
|
170 |
-
'fixed' => __( 'Fixed', 'woocommerce-jetpack' ),
|
171 |
-
'percent' => __( 'Percent', 'woocommerce-jetpack' ),
|
172 |
),
|
173 |
),
|
174 |
-
|
175 |
array(
|
176 |
-
'title'
|
177 |
-
'desc'
|
178 |
-
'desc_tip'
|
179 |
-
'id'
|
180 |
-
'default'
|
181 |
-
'type'
|
182 |
'custom_attributes' => array(
|
183 |
-
'step'
|
184 |
),
|
185 |
),
|
186 |
-
|
187 |
array(
|
188 |
-
'title'
|
189 |
-
'desc'
|
190 |
-
'desc_tip'
|
191 |
-
'id'
|
192 |
-
'default'
|
193 |
-
'type'
|
194 |
'custom_attributes' => array(
|
195 |
-
'step'
|
196 |
-
'min'
|
197 |
),
|
198 |
),
|
199 |
-
|
200 |
array(
|
201 |
-
'title'
|
202 |
-
'desc'
|
203 |
-
'desc_tip'
|
204 |
-
'id'
|
205 |
-
'default'
|
206 |
-
'type'
|
207 |
'custom_attributes' => array(
|
208 |
-
'step'
|
209 |
-
'min'
|
210 |
),
|
211 |
),
|
212 |
-
|
213 |
array(
|
214 |
-
'title'
|
215 |
-
'desc'
|
216 |
-
|
217 |
-
'id'
|
218 |
-
'default'
|
219 |
-
'type'
|
220 |
),
|
221 |
-
|
222 |
array(
|
223 |
-
'title'
|
224 |
-
'desc'
|
225 |
-
|
226 |
-
'id'
|
227 |
-
'default'
|
228 |
-
'type'
|
229 |
'custom_attributes' => array(
|
230 |
-
'step'
|
231 |
-
'min'
|
232 |
),
|
233 |
),
|
234 |
-
|
235 |
array(
|
236 |
-
'title'
|
237 |
-
'desc'
|
238 |
-
'id'
|
239 |
-
'default'
|
240 |
-
'type'
|
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 |
-
|
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.
|
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.
|
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.
|
55 |
*/
|
56 |
function get_settings() {
|
57 |
$settings = array();
|
58 |
$settings = apply_filters( 'wcj_payment_gateways_icons_settings', $settings );
|
59 |
-
return $this->
|
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 ) )
|
80 |
-
|
|
|
|
|
|
|
|
|
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.
|
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.
|
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.
|
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 =
|
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.
|
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.
|
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'] ) && (
|
149 |
$this->create_document( $_GET['create_invoice_for_order_id'], $this->invoice_type_id );
|
150 |
}
|
151 |
-
if ( isset( $_GET['delete_invoice_for_order_id'] ) && (
|
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.
|
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.
|
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'
|
92 |
-
'
|
93 |
-
|
|
|
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§ion=currency_exchange_rates' ) . '">' . __( 'Currency Exchange Rates module', 'woocommerce-jetpack' ) . '</a>'
|
266 |
-
:
|
267 |
-
|
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§ion=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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,13 +17,14 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
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.
|
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'
|
133 |
-
'_simple_is_custom_pricing_label_home'
|
134 |
-
'_simple_is_custom_pricing_label_products'
|
135 |
-
'_simple_is_custom_pricing_label_single'
|
136 |
-
'_simple_is_custom_pricing_label_text'
|
137 |
-
|
138 |
-
'_simple_is_custom_pricing_label_before'
|
139 |
-
'_simple_is_custom_pricing_label_before_home'
|
140 |
-
'_simple_is_custom_pricing_label_before_products'
|
141 |
-
'_simple_is_custom_pricing_label_before_single'
|
142 |
-
'_simple_is_custom_pricing_label_text_before'
|
143 |
-
|
144 |
-
'_simple_is_custom_pricing_label_between'
|
145 |
-
'_simple_is_custom_pricing_label_between_home'
|
146 |
-
'_simple_is_custom_pricing_label_between_products'
|
147 |
-
'_simple_is_custom_pricing_label_between_single'
|
148 |
-
'_simple_is_custom_pricing_label_text_between'
|
149 |
-
|
150 |
-
'_simple_is_custom_pricing_label_after'
|
151 |
-
'_simple_is_custom_pricing_label_after_home'
|
152 |
-
'_simple_is_custom_pricing_label_after_products'
|
153 |
-
'_simple_is_custom_pricing_label_after_single'
|
154 |
-
'_simple_is_custom_pricing_label_text_after'
|
155 |
);
|
156 |
-
|
157 |
-
$
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
|
|
|
|
|
|
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 |
-
|
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.
|
573 |
*/
|
574 |
function get_settings() {
|
575 |
$settings = array();
|
576 |
$settings = apply_filters( 'wcj_price_labels_settings', $settings );
|
577 |
-
|
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.
|
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 =
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
98 |
*/
|
99 |
function add_settings() {
|
100 |
|
101 |
-
$products =
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -95,13 +95,14 @@ class WCJ_Product_Info extends WCJ_Module {
|
|
95 |
/**
|
96 |
* Constructor.
|
97 |
*
|
98 |
-
* @version 2.
|
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.
|
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.
|
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 (
|
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.
|
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.
|
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.
|
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.
|
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' =>
|
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.
|
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.
|
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="
|
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'
|
308 |
-
'id'
|
309 |
-
'default'
|
310 |
-
'type'
|
311 |
-
'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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -26,13 +26,14 @@ class WCJ_Reports extends WCJ_Module {
|
|
26 |
/**
|
27 |
* Constructor.
|
28 |
*
|
29 |
-
* @version 2.
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,13 +17,16 @@ class WCJ_Shipping extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
function __construct() {
|
23 |
|
24 |
$this->id = 'shipping';
|
25 |
$this->short_desc = __( 'Shipping', 'woocommerce-jetpack' );
|
26 |
-
$this->desc =
|
|
|
|
|
|
|
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.
|
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.
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
@@ -30,65 +31,49 @@ class WCJ_Wholesale_Price extends WCJ_Module {
|
|
30 |
|
31 |
if ( $this->is_enabled() ) {
|
32 |
|
33 |
-
|
34 |
-
|
|
|
|
|
35 |
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
|
40 |
if ( 'yes' === get_option( 'wcj_wholesale_price_show_info_on_cart', 'no' ) ) {
|
41 |
-
add_filter( 'woocommerce_cart_item_price',
|
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.
|
66 |
*/
|
67 |
function add_discount_info_to_cart_page( $price_html, $cart_item, $cart_item_key ) {
|
68 |
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
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(
|
88 |
-
|
89 |
-
|
90 |
-
|
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 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
}
|
114 |
}
|
115 |
|
@@ -119,11 +115,14 @@ class WCJ_Wholesale_Price extends WCJ_Module {
|
|
119 |
/**
|
120 |
* get_wholesale_price.
|
121 |
*
|
122 |
-
* @version 2.
|
123 |
*/
|
124 |
-
private function get_wholesale_price( $price, $quantity ) {
|
125 |
-
$discount = $this->get_discount_by_quantity( $quantity );
|
126 |
-
|
|
|
|
|
|
|
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 |
-
*
|
137 |
*
|
138 |
-
* @version 2.
|
|
|
139 |
*/
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
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 |
-
*
|
163 |
*
|
164 |
-
* @version 2.
|
|
|
165 |
*/
|
166 |
-
function
|
167 |
|
168 |
-
|
169 |
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
|
|
|
|
|
|
|
|
|
|
174 |
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
|
|
|
|
179 |
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
// Setting wholesale price
|
186 |
-
$precision = get_option( 'woocommerce_price_num_decimals', 2 );
|
187 |
-
return round( $wholesale_price, $precision );
|
188 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
}
|
|
|
190 |
|
191 |
-
|
192 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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'
|
206 |
-
'type'
|
207 |
-
'desc'
|
208 |
-
'id'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
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'
|
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'
|
311 |
-
'id'
|
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.
|
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.
|
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.
|
93 |
* @since 2.4.1
|
94 |
*/
|
95 |
function create_wpml_xml_file_tool() {
|
96 |
-
if ( ! isset( $_GET['create_wpml_xml_file'] ) || !
|
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.
|
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.
|
44 |
* @since 2.4.0
|
45 |
*/
|
46 |
function reset_settings() {
|
47 |
-
if ( isset( $_GET['wcj_reset_settings'] ) && $this->id === $_GET['wcj_reset_settings'] &&
|
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.
|
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.
|
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 |
-
|
142 |
-
|
143 |
-
|
144 |
-
$
|
145 |
} else {
|
146 |
-
$
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
$
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
if ( ! function_exists( 'wcj_variation_radio_button' ) ) {
|
12 |
/**
|
13 |
* wcj_variation_radio_button.
|
14 |
*
|
15 |
-
* @version 2.
|
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 |
-
|
55 |
-
|
56 |
-
|
|
|
|
|
|
|
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 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
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.
|
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.
|
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.
|
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.
|
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 (
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -25,88 +25,89 @@ class WCJ_Price_by_Country_Core {
|
|
25 |
/**
|
26 |
* add_hooks.
|
27 |
*
|
28 |
-
* @version 2.
|
29 |
*/
|
30 |
function add_hooks() {
|
31 |
|
32 |
-
if (
|
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 |
-
//
|
44 |
-
|
45 |
-
|
46 |
-
|
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 |
-
|
|
|
|
|
|
|
|
|
90 |
|
91 |
-
|
92 |
-
$
|
|
|
93 |
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
$selected_country = ( isset( $_POST[ 'wcj-country' ] ) ) ? $_POST[ 'wcj-country' ] : '';
|
98 |
-
} *//*
|
99 |
-
$selected_country = ( isset( $_REQUEST[ 'wcj-country' ] ) ) ? $_REQUEST[ 'wcj-country' ] : '';
|
100 |
|
101 |
-
|
|
|
|
|
102 |
|
103 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
}
|
105 |
-
$
|
106 |
-
|
107 |
-
$html .= '</form>';
|
108 |
|
109 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
199 |
*/
|
200 |
public function get_customer_country_group_id() {
|
201 |
|
202 |
// We already know the group - nothing to calculate - return group
|
203 |
-
|
204 |
-
|
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 |
-
|
226 |
-
$
|
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.
|
326 |
* @since 2.4.3
|
327 |
*/
|
328 |
function get_variation_prices_hash( $price_hash, $_product, $display ) {
|
329 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
330 |
return $price_hash;
|
331 |
}
|
332 |
|
333 |
/**
|
334 |
* change_price_by_country.
|
335 |
*
|
336 |
-
* @version 2.
|
337 |
*/
|
338 |
-
|
339 |
|
340 |
-
if ( is_numeric( $product ) )
|
341 |
-
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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' ==
|
376 |
-
'woocommerce_get_sale_price' ==
|
377 |
-
'woocommerce_variation_prices_regular_price' ==
|
378 |
-
'woocommerce_variation_prices_sale_price' ==
|
379 |
) {
|
380 |
$regular_or_sale = (
|
381 |
-
'woocommerce_get_regular_price' ==
|
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 |
-
$
|
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.
|
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.
|
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() || */ !
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -94,24 +94,23 @@ class WCJ_Reports_Stock {
|
|
94 |
/*
|
95 |
* gather_products_data.
|
96 |
*
|
97 |
-
* @version 2.
|
98 |
*/
|
99 |
public function gather_products_data( &$products_info ) {
|
100 |
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
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'
|
138 |
-
'title'
|
139 |
-
'category'
|
140 |
-
'permalink'
|
141 |
-
'price'
|
142 |
-
'stock'
|
143 |
-
'stock_price'
|
144 |
-
'total_sales'
|
145 |
-
'date_added'
|
146 |
-
|
147 |
-
'purchase_price'
|
148 |
-
|
149 |
-
'last_sale'
|
150 |
-
'sales_in_period'
|
151 |
);
|
152 |
|
153 |
endwhile;
|
|
|
154 |
}
|
155 |
}
|
156 |
|
157 |
/*
|
158 |
* gather_orders_data.
|
159 |
*
|
160 |
-
* @version 2.
|
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.
|
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.
|
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
|
92 |
-
$
|
93 |
-
$wholesale_price_levels[] = array( 'quantity' => $level_qty, '
|
94 |
}
|
95 |
|
96 |
-
$data_qty
|
97 |
-
$
|
|
|
98 |
foreach ( $wholesale_price_levels as $wholesale_price_level ) {
|
99 |
$data_qty[] = str_replace( '%level_qty%', $wholesale_price_level['quantity'], $atts['heading_format'] ) ;
|
100 |
-
$
|
|
|
|
|
101 |
}
|
102 |
|
103 |
-
$table_rows = array( $data_qty, $
|
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.
|
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.
|
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="
|
|
|
|
|
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' ) )
|
|
|
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.
|
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.
|
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.
|
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 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
|
|
|
|
|
|
|
|
|
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,7 +17,7 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
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'
|
65 |
-
'image_size'
|
66 |
-
'multiply_by'
|
67 |
-
'hide_currency'
|
68 |
-
'excerpt_length'
|
69 |
-
'name'
|
70 |
-
'heading_format'
|
71 |
-
'sep'
|
72 |
-
'add_links'
|
73 |
-
'add_percent_row'
|
74 |
-
'
|
75 |
-
'
|
76 |
-
'
|
77 |
-
'
|
78 |
-
'
|
79 |
-
'
|
|
|
|
|
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.
|
118 |
* @since 2.2.6
|
119 |
*/
|
120 |
-
function get_product_orders_data( $return_value = 'total_orders' ) {
|
121 |
$total_orders = 0;
|
122 |
-
$
|
123 |
-
$
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
),
|
134 |
-
)
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
$total_orders++;
|
145 |
}
|
146 |
-
|
147 |
-
|
|
|
148 |
wp_reset_postdata();
|
149 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
}
|
151 |
|
152 |
/**
|
153 |
* wcj_product_time_since_last_sale.
|
154 |
*
|
155 |
-
* @version 2.
|
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 |
-
|
166 |
-
$
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
$
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
}
|
188 |
-
|
189 |
-
|
|
|
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.
|
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.
|
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.
|
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.
|
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.
|
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 |
-
|
645 |
-
$
|
646 |
-
|
647 |
-
|
648 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
649 |
}
|
650 |
|
651 |
-
$
|
652 |
-
|
653 |
-
|
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 ( ''
|
662 |
-
$min = $min
|
663 |
-
$max = $max
|
|
|
|
|
|
|
|
|
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 ( ''
|
675 |
-
$the_price = $the_price
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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[] = $
|
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.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -54,7 +54,7 @@ class WCJ_Shortcodes {
|
|
54 |
/**
|
55 |
* wcj_shortcode.
|
56 |
*
|
57 |
-
* @version 2.
|
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'] && !
|
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'] &&
|
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.
|
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.
|
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 ( !
|
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.
|
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.
|
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 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
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.
|
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.
|
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 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
|
|
|
|
|
|
|
|
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)
|
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.
|
6 |
-
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocommerce-"
|
7 |
-
"jetpack\n"
|
8 |
-
"POT-Creation-Date:
|
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:
|
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:
|
17 |
-
msgid "
|
18 |
-
msgstr ""
|
19 |
-
|
20 |
-
#: includes/add-to-cart/class-wcj-add-to-cart-per-product.php:
|
21 |
-
msgid "Single product view"
|
22 |
-
msgstr ""
|
23 |
-
|
24 |
-
#: includes/add-to-cart/class-wcj-add-to-cart-per-product.php:
|
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:
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
msgstr ""
|
62 |
-
|
63 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
69 |
-
#:
|
70 |
-
msgid "
|
71 |
-
msgstr ""
|
72 |
-
|
73 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
#: includes/admin/class-
|
85 |
-
msgid "
|
86 |
-
msgstr ""
|
87 |
-
|
88 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
"
|
115 |
-
"
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
#: includes/
|
167 |
-
#: includes/class-wcj-
|
168 |
-
#: includes/class-wcj-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
#: includes/class-wcj-add-to-cart.php:
|
199 |
-
#: includes/class-wcj-add-to-cart.php:
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
#: includes/class-wcj-add-to-cart.php:
|
206 |
-
#: includes/class-wcj-
|
207 |
-
#: includes/class-wcj-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
#: includes/class-wcj-
|
212 |
-
msgid "
|
213 |
-
msgstr ""
|
214 |
-
|
215 |
-
#: includes/class-wcj-add-to-cart.php:
|
216 |
-
msgid "
|
217 |
-
msgstr ""
|
218 |
-
|
219 |
-
#: includes/class-wcj-add-to-cart.php:
|
220 |
-
msgid "
|
221 |
-
msgstr ""
|
222 |
-
|
223 |
-
#: includes/class-wcj-add-to-cart.php:
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
#: includes/class-wcj-add-to-cart.php:
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
#: includes/class-wcj-add-to-cart.php:
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
#: includes/class-wcj-add-to-cart.php:
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
#: includes/class-wcj-add-to-cart.php:
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
#: includes/class-wcj-
|
302 |
-
#: includes/class-wcj-
|
303 |
-
msgid "
|
304 |
-
msgstr ""
|
305 |
-
|
306 |
-
#: includes/class-wcj-add-to-cart.php:
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
#: includes/class-wcj-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
#: includes/class-wcj-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
#: includes/class-wcj-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
#: includes/class-wcj-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
#: includes/class-wcj-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
#: includes/class-wcj-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
#: includes/class-wcj-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
#: includes/class-wcj-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
#: includes/class-wcj-
|
358 |
-
#: includes/class-wcj-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
#: includes/class-wcj-
|
363 |
-
#: includes/class-wcj-
|
364 |
-
#: includes/class-wcj-
|
365 |
-
#: includes/class-wcj-
|
366 |
-
#: includes/class-wcj-
|
367 |
-
#: includes/class-wcj-
|
368 |
-
#: includes/class-wcj-
|
369 |
-
#: includes/class-wcj-
|
370 |
-
#: includes/class-wcj-
|
371 |
-
#: includes/class-wcj-product-
|
372 |
-
#: includes/class-wcj-product-
|
373 |
-
#: includes/class-wcj-product-input-fields.php:
|
374 |
-
#: includes/class-wcj-product-
|
375 |
-
#: includes/class-wcj-product-tabs.php:
|
376 |
-
#: includes/class-wcj-
|
377 |
-
#: includes/class-wcj-
|
378 |
-
#: includes/
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
#: includes/class-wcj-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
#: includes/class-wcj-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
#: includes/class-wcj-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
#: includes/class-wcj-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
#: includes/class-wcj-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
#: includes/
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
msgstr ""
|
479 |
-
|
480 |
-
#: includes/class-wcj-call-for-price.php:
|
481 |
-
msgid ""
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
#: includes/class-wcj-call-for-price.php:
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
#: includes/class-wcj-call-for-price.php:
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
msgstr ""
|
533 |
-
|
534 |
-
#: includes/class-wcj-cart.php:
|
535 |
-
msgid "
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
#: includes/class-wcj-
|
541 |
-
msgid "
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
#: includes/class-wcj-
|
547 |
-
msgid "Info
|
548 |
-
msgstr ""
|
549 |
-
|
550 |
-
#: includes/class-wcj-cart.php:
|
551 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
552 |
-
#: includes/class-wcj-mini-cart.php:
|
553 |
-
#: includes/class-wcj-product-
|
554 |
-
msgid "
|
555 |
-
msgstr ""
|
556 |
-
|
557 |
-
#: includes/class-wcj-cart.php:
|
558 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
559 |
-
#: includes/class-wcj-mini-cart.php:
|
560 |
-
#: includes/class-wcj-product-info.php:
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
#: includes/class-wcj-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
#: includes/class-wcj-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
#: includes/class-wcj-cart.php:
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
#: includes/class-wcj-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
#: includes/class-wcj-
|
590 |
-
msgid "
|
591 |
-
msgstr ""
|
592 |
-
|
593 |
-
#: includes/class-wcj-cart.php:
|
594 |
-
msgid "
|
595 |
-
msgstr ""
|
596 |
-
|
597 |
-
#: includes/class-wcj-cart.php:
|
598 |
-
msgid "
|
599 |
-
msgstr ""
|
600 |
-
|
601 |
-
#: includes/class-wcj-cart.php:
|
602 |
-
msgid "
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
#: includes/class-wcj-
|
622 |
-
msgid "
|
623 |
-
msgstr ""
|
624 |
-
|
625 |
-
#: includes/class-wcj-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
#: includes/class-wcj-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
#: includes/class-wcj-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
#: includes/class-wcj-checkout-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
msgstr ""
|
659 |
-
|
660 |
-
#: includes/class-wcj-checkout-core-fields.php:
|
661 |
-
msgid "
|
662 |
-
msgstr ""
|
663 |
-
|
664 |
-
#: includes/class-wcj-checkout-core-fields.php:
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
#: includes/class-wcj-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
#: includes/class-wcj-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
#: includes/class-wcj-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
#: includes/
|
738 |
-
msgid "
|
739 |
-
msgstr ""
|
740 |
-
|
741 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
742 |
-
msgid "
|
743 |
-
msgstr ""
|
744 |
-
|
745 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
746 |
-
msgid "
|
747 |
-
msgstr ""
|
748 |
-
|
749 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
#: includes/class-wcj-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
#: includes/class-wcj-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
#: includes/class-wcj-
|
782 |
-
msgid "
|
783 |
-
msgstr ""
|
784 |
-
|
785 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
#: includes/class-wcj-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
#: includes/class-wcj-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
#: includes/class-wcj-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
#: includes/class-wcj-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
#: includes/class-wcj-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
#: includes/class-wcj-
|
854 |
-
msgid "
|
855 |
-
msgstr ""
|
856 |
-
|
857 |
-
#: includes/class-wcj-
|
858 |
-
#: includes/
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
#: includes/class-wcj-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
#: includes/class-wcj-
|
875 |
-
msgid "
|
876 |
-
msgstr ""
|
877 |
-
|
878 |
-
#: includes/class-wcj-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
#: includes/class-wcj-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
msgstr ""
|
890 |
-
|
891 |
-
#: includes/class-wcj-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
msgstr ""
|
911 |
-
|
912 |
-
#: includes/class-wcj-
|
913 |
-
#: includes/class-wcj-product-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
#: includes/class-wcj-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
#: includes/class-wcj-
|
945 |
-
msgid "
|
946 |
-
msgstr ""
|
947 |
-
|
948 |
-
#: includes/class-wcj-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
#: includes/
|
955 |
-
msgid "
|
956 |
-
msgstr ""
|
957 |
-
|
958 |
-
#: includes/class-wcj-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
#: includes/class-wcj-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
#: includes/class-wcj-empty-cart-button.php:
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
#: includes/class-wcj-
|
1020 |
-
msgid "
|
1021 |
-
msgstr ""
|
1022 |
-
|
1023 |
-
#: includes/class-wcj-
|
1024 |
-
msgid "
|
1025 |
-
msgstr ""
|
1026 |
-
|
1027 |
-
#: includes/class-wcj-
|
1028 |
-
msgid "
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
#: includes/class-wcj-
|
1056 |
-
msgid "
|
1057 |
-
msgstr ""
|
1058 |
-
|
1059 |
-
#: includes/class-wcj-
|
1060 |
-
|
1061 |
-
|
1062 |
-
"
|
1063 |
-
msgstr ""
|
1064 |
-
|
1065 |
-
#: includes/class-wcj-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
#: includes/class-wcj-
|
1074 |
-
msgid "
|
1075 |
-
msgstr ""
|
1076 |
-
|
1077 |
-
#: includes/class-wcj-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
#: includes/class-wcj-
|
1086 |
-
msgid "
|
1087 |
-
msgstr ""
|
1088 |
-
|
1089 |
-
#: includes/class-wcj-
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
#: includes/class-wcj-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
#: includes/class-wcj-
|
1118 |
-
msgid "
|
1119 |
-
msgstr ""
|
1120 |
-
|
1121 |
-
#: includes/class-wcj-
|
1122 |
-
msgid "
|
1123 |
-
msgstr ""
|
1124 |
-
|
1125 |
-
#: includes/class-wcj-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
#: includes/class-wcj-
|
1138 |
-
msgid "
|
1139 |
-
msgstr ""
|
1140 |
-
|
1141 |
-
#: includes/class-wcj-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
#: includes/class-wcj-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
#: includes/class-wcj-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
msgid "
|
1197 |
-
msgstr ""
|
1198 |
-
|
1199 |
-
#: includes/class-wcj-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
msgid "
|
1215 |
-
msgstr ""
|
1216 |
-
|
1217 |
-
#: includes/class-wcj-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
#: includes/class-wcj-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
msgstr ""
|
1252 |
-
|
1253 |
-
#: includes/class-wcj-
|
1254 |
-
msgid "
|
1255 |
-
msgstr ""
|
1256 |
-
|
1257 |
-
#: includes/class-wcj-
|
1258 |
-
msgid "
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
|
1282 |
-
|
1283 |
-
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
|
1294 |
-
|
1295 |
-
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
1302 |
-
#: includes/
|
1303 |
-
msgid "
|
1304 |
-
msgstr ""
|
1305 |
-
|
1306 |
-
#: includes/class-wcj-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
1323 |
-
#: includes/class-wcj-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
|
1339 |
-
#: includes/class-wcj-
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
"
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
#: includes/class-wcj-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
#: includes/class-wcj-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
"
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
#: includes/class-wcj-
|
1421 |
-
msgid ""
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
"
|
1436 |
-
msgstr ""
|
1437 |
-
|
1438 |
-
#: includes/class-wcj-
|
1439 |
-
msgid "
|
1440 |
-
msgstr ""
|
1441 |
-
|
1442 |
-
#: includes/class-wcj-
|
1443 |
-
msgid ""
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
-
|
1483 |
-
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
1489 |
-
"
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
1500 |
-
|
1501 |
-
|
1502 |
-
|
1503 |
-
|
1504 |
-
|
1505 |
-
|
1506 |
-
|
1507 |
-
|
1508 |
-
|
1509 |
-
|
1510 |
-
|
1511 |
-
|
1512 |
-
|
1513 |
-
|
1514 |
-
|
1515 |
-
#: includes/class-wcj-
|
1516 |
-
|
1517 |
-
|
1518 |
-
|
1519 |
-
|
1520 |
-
|
1521 |
-
|
1522 |
-
|
1523 |
-
|
1524 |
-
|
1525 |
-
|
1526 |
-
"
|
1527 |
-
msgstr ""
|
1528 |
-
|
1529 |
-
#: includes/class-wcj-
|
1530 |
-
msgid "
|
1531 |
-
msgstr ""
|
1532 |
-
|
1533 |
-
#: includes/class-wcj-
|
1534 |
-
msgid "
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
|
1540 |
-
|
1541 |
-
|
1542 |
-
|
1543 |
-
|
1544 |
-
|
1545 |
-
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
|
1550 |
-
|
1551 |
-
|
1552 |
-
|
1553 |
-
|
1554 |
-
|
1555 |
-
|
1556 |
-
|
1557 |
-
|
1558 |
-
|
1559 |
-
|
1560 |
-
|
1561 |
-
|
1562 |
-
|
1563 |
-
|
1564 |
-
|
1565 |
-
|
1566 |
-
#: includes/class-wcj-
|
1567 |
-
msgid "
|
1568 |
-
msgstr ""
|
1569 |
-
|
1570 |
-
#: includes/class-wcj-
|
1571 |
-
|
1572 |
-
|
1573 |
-
|
1574 |
-
|
1575 |
-
|
1576 |
-
|
1577 |
-
|
1578 |
-
|
1579 |
-
|
1580 |
-
|
1581 |
-
|
1582 |
-
|
1583 |
-
|
1584 |
-
|
1585 |
-
|
1586 |
-
|
1587 |
-
|
1588 |
-
|
1589 |
-
|
1590 |
-
|
1591 |
-
|
1592 |
-
|
1593 |
-
|
1594 |
-
|
1595 |
-
|
1596 |
-
|
1597 |
-
|
1598 |
-
|
1599 |
-
|
1600 |
-
#: includes/class-wcj-
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
1604 |
-
|
1605 |
-
|
1606 |
-
|
1607 |
-
|
1608 |
-
|
1609 |
-
|
1610 |
-
msgstr ""
|
1611 |
-
|
1612 |
-
#: includes/class-wcj-
|
1613 |
-
msgid "
|
1614 |
-
msgstr ""
|
1615 |
-
|
1616 |
-
#: includes/class-wcj-
|
1617 |
-
msgid "
|
1618 |
-
msgstr ""
|
1619 |
-
|
1620 |
-
#: includes/class-wcj-
|
1621 |
-
|
1622 |
-
|
1623 |
-
|
1624 |
-
|
1625 |
-
|
1626 |
-
|
1627 |
-
|
1628 |
-
|
1629 |
-
#: includes/
|
1630 |
-
|
1631 |
-
|
1632 |
-
|
1633 |
-
|
1634 |
-
|
1635 |
-
|
1636 |
-
|
1637 |
-
|
1638 |
-
|
1639 |
-
|
1640 |
-
|
1641 |
-
|
1642 |
-
|
1643 |
-
|
1644 |
-
|
1645 |
-
|
1646 |
-
|
1647 |
-
|
1648 |
-
|
1649 |
-
|
1650 |
-
|
1651 |
-
|
1652 |
-
|
1653 |
-
|
1654 |
-
|
1655 |
-
|
1656 |
-
|
1657 |
-
|
1658 |
-
|
1659 |
-
|
1660 |
-
|
1661 |
-
|
1662 |
-
|
1663 |
-
|
1664 |
-
|
1665 |
-
|
1666 |
-
|
1667 |
-
|
1668 |
-
|
1669 |
-
|
1670 |
-
|
1671 |
-
|
1672 |
-
|
1673 |
-
|
1674 |
-
|
1675 |
-
|
1676 |
-
|
1677 |
-
|
1678 |
-
|
1679 |
-
|
1680 |
-
|
1681 |
-
"
|
1682 |
-
msgstr ""
|
1683 |
-
|
1684 |
-
#: includes/class-wcj-
|
1685 |
-
msgid "
|
1686 |
-
msgstr ""
|
1687 |
-
|
1688 |
-
#: includes/class-wcj-
|
1689 |
-
|
1690 |
-
|
1691 |
-
|
1692 |
-
|
1693 |
-
|
1694 |
-
|
1695 |
-
|
1696 |
-
|
1697 |
-
|
1698 |
-
|
1699 |
-
|
1700 |
-
#: includes/class-wcj-
|
1701 |
-
msgid "
|
1702 |
-
msgstr ""
|
1703 |
-
|
1704 |
-
#: includes/class-wcj-
|
1705 |
-
msgid "
|
1706 |
-
msgstr ""
|
1707 |
-
|
1708 |
-
#: includes/class-wcj-
|
1709 |
-
|
1710 |
-
|
1711 |
-
|
1712 |
-
|
1713 |
-
|
1714 |
-
|
1715 |
-
|
1716 |
-
|
1717 |
-
|
1718 |
-
|
1719 |
-
|
1720 |
-
|
1721 |
-
|
1722 |
-
|
1723 |
-
|
1724 |
-
|
1725 |
-
|
1726 |
-
|
1727 |
-
|
1728 |
-
|
1729 |
-
|
1730 |
-
|
1731 |
-
|
1732 |
-
|
1733 |
-
|
1734 |
-
|
1735 |
-
|
1736 |
-
|
1737 |
-
#: includes/
|
1738 |
-
msgid ""
|
1739 |
-
|
1740 |
-
|
1741 |
-
|
1742 |
-
|
1743 |
-
|
1744 |
-
|
1745 |
-
#: includes/class-wcj-
|
1746 |
-
|
1747 |
-
|
1748 |
-
|
1749 |
-
#: includes/class-wcj-
|
1750 |
-
#: includes/class-wcj-
|
1751 |
-
#: includes/class-wcj-
|
1752 |
-
#: includes/class-
|
1753 |
-
#: includes/class-
|
1754 |
-
|
1755 |
-
|
1756 |
-
|
1757 |
-
#: includes/class-wcj-
|
1758 |
-
#: includes/class-
|
1759 |
-
|
1760 |
-
|
1761 |
-
|
1762 |
-
|
1763 |
-
|
1764 |
-
|
1765 |
-
|
1766 |
-
|
1767 |
-
|
1768 |
-
|
1769 |
-
|
1770 |
-
|
1771 |
-
|
1772 |
-
|
1773 |
-
|
1774 |
-
|
1775 |
-
|
1776 |
-
|
1777 |
-
|
1778 |
-
msgstr ""
|
1779 |
-
|
1780 |
-
#: includes/class-wcj-
|
1781 |
-
msgid "
|
1782 |
-
msgstr ""
|
1783 |
-
|
1784 |
-
#: includes/class-wcj-
|
1785 |
-
msgid "
|
1786 |
-
msgstr ""
|
1787 |
-
|
1788 |
-
#: includes/class-wcj-
|
1789 |
-
|
1790 |
-
|
1791 |
-
|
1792 |
-
|
1793 |
-
|
1794 |
-
|
1795 |
-
|
1796 |
-
|
1797 |
-
|
1798 |
-
|
1799 |
-
|
1800 |
-
|
1801 |
-
|
1802 |
-
|
1803 |
-
|
1804 |
-
|
1805 |
-
|
1806 |
-
|
1807 |
-
|
1808 |
-
|
1809 |
-
|
1810 |
-
|
1811 |
-
|
1812 |
-
|
1813 |
-
|
1814 |
-
|
1815 |
-
|
1816 |
-
|
1817 |
-
|
1818 |
-
|
1819 |
-
|
1820 |
-
|
1821 |
-
|
1822 |
-
|
1823 |
-
|
1824 |
-
|
1825 |
-
|
1826 |
-
|
1827 |
-
|
1828 |
-
|
1829 |
-
|
1830 |
-
|
1831 |
-
|
1832 |
-
|
1833 |
-
|
1834 |
-
#: includes/class-wcj-
|
1835 |
-
msgid "
|
1836 |
-
msgstr ""
|
1837 |
-
|
1838 |
-
#: includes/class-wcj-
|
1839 |
-
msgid "
|
1840 |
-
msgstr ""
|
1841 |
-
|
1842 |
-
#: includes/class-wcj-
|
1843 |
-
msgid "
|
1844 |
-
msgstr ""
|
1845 |
-
|
1846 |
-
#: includes/class-wcj-
|
1847 |
-
msgid "
|
1848 |
-
msgstr ""
|
1849 |
-
|
1850 |
-
#: includes/class-wcj-
|
1851 |
-
msgid ""
|
1852 |
-
|
1853 |
-
|
1854 |
-
|
1855 |
-
|
1856 |
-
|
1857 |
-
|
1858 |
-
|
1859 |
-
|
1860 |
-
|
1861 |
-
|
1862 |
-
#: includes/class-wcj-
|
1863 |
-
msgid "
|
1864 |
-
msgstr ""
|
1865 |
-
|
1866 |
-
#: includes/class-wcj-
|
1867 |
-
msgid "
|
1868 |
-
msgstr ""
|
1869 |
-
|
1870 |
-
#: includes/class-wcj-
|
1871 |
-
msgid "
|
1872 |
-
msgstr ""
|
1873 |
-
|
1874 |
-
#: includes/class-wcj-
|
1875 |
-
msgid "
|
1876 |
-
msgstr ""
|
1877 |
-
|
1878 |
-
#: includes/class-wcj-
|
1879 |
-
|
1880 |
-
|
1881 |
-
|
1882 |
-
|
1883 |
-
|
1884 |
-
|
1885 |
-
|
1886 |
-
|
1887 |
-
|
1888 |
-
|
1889 |
-
|
1890 |
-
|
1891 |
-
|
1892 |
-
|
1893 |
-
|
1894 |
-
|
1895 |
-
|
1896 |
-
|
1897 |
-
|
1898 |
-
|
1899 |
-
|
1900 |
-
#: includes/class-wcj-
|
1901 |
-
#: includes/class-wcj-
|
1902 |
-
msgid "
|
1903 |
-
msgstr ""
|
1904 |
-
|
1905 |
-
#: includes/class-wcj-
|
1906 |
-
|
1907 |
-
|
1908 |
-
|
1909 |
-
|
1910 |
-
|
1911 |
-
|
1912 |
-
|
1913 |
-
#: includes/class-wcj-
|
1914 |
-
|
1915 |
-
|
1916 |
-
|
1917 |
-
|
1918 |
-
|
1919 |
-
|
1920 |
-
|
1921 |
-
#: includes/class-wcj-
|
1922 |
-
|
1923 |
-
|
1924 |
-
|
1925 |
-
|
1926 |
-
|
1927 |
-
|
1928 |
-
"
|
1929 |
-
msgstr ""
|
1930 |
-
|
1931 |
-
#: includes/class-wcj-
|
1932 |
-
#: includes/class-wcj-
|
1933 |
-
msgid "
|
1934 |
-
msgstr ""
|
1935 |
-
|
1936 |
-
#: includes/class-wcj-
|
1937 |
-
|
1938 |
-
|
1939 |
-
|
1940 |
-
|
1941 |
-
|
1942 |
-
|
1943 |
-
|
1944 |
-
|
1945 |
-
#: includes/class-wcj-
|
1946 |
-
|
1947 |
-
"
|
1948 |
-
|
1949 |
-
|
1950 |
-
|
1951 |
-
#: includes/class-wcj-
|
1952 |
-
|
1953 |
-
|
1954 |
-
|
1955 |
-
|
1956 |
-
#: includes/class-wcj-
|
1957 |
-
msgid "
|
1958 |
-
|
1959 |
-
|
1960 |
-
|
1961 |
-
|
1962 |
-
|
1963 |
-
|
1964 |
-
|
1965 |
-
|
1966 |
-
|
1967 |
-
|
1968 |
-
|
1969 |
-
|
1970 |
-
|
1971 |
-
|
1972 |
-
|
1973 |
-
|
1974 |
-
|
1975 |
-
|
1976 |
-
|
1977 |
-
|
1978 |
-
|
1979 |
-
|
1980 |
-
|
1981 |
-
|
1982 |
-
msgstr ""
|
1983 |
-
|
1984 |
-
#: includes/class-wcj-
|
1985 |
-
|
1986 |
-
|
1987 |
-
|
1988 |
-
|
1989 |
-
|
1990 |
-
|
1991 |
-
|
1992 |
-
|
1993 |
-
|
1994 |
-
|
1995 |
-
|
1996 |
-
|
1997 |
-
|
1998 |
-
|
1999 |
-
|
2000 |
-
|
2001 |
-
|
2002 |
-
|
2003 |
-
|
2004 |
-
#: includes/class-wcj-
|
2005 |
-
msgid "
|
2006 |
-
msgstr ""
|
2007 |
-
|
2008 |
-
#: includes/class-wcj-
|
2009 |
-
msgid "
|
2010 |
-
msgstr ""
|
2011 |
-
|
2012 |
-
#: includes/class-wcj-
|
2013 |
-
msgid "
|
2014 |
-
msgstr ""
|
2015 |
-
|
2016 |
-
#: includes/class-wcj-
|
2017 |
-
|
2018 |
-
|
2019 |
-
|
2020 |
-
|
2021 |
-
|
2022 |
-
|
2023 |
-
|
2024 |
-
|
2025 |
-
#: includes/class-wcj-
|
2026 |
-
msgid "
|
2027 |
-
msgstr ""
|
2028 |
-
|
2029 |
-
#: includes/class-wcj-
|
2030 |
-
msgid "
|
2031 |
-
msgstr ""
|
2032 |
-
|
2033 |
-
#: includes/class-wcj-
|
2034 |
-
|
2035 |
-
|
2036 |
-
|
2037 |
-
|
2038 |
-
|
2039 |
-
#: includes/
|
2040 |
-
|
2041 |
-
msgid "
|
2042 |
-
msgstr ""
|
2043 |
-
|
2044 |
-
#: includes/class-wcj-
|
2045 |
-
|
2046 |
-
"
|
2047 |
-
|
2048 |
-
|
2049 |
-
|
2050 |
-
|
2051 |
-
|
2052 |
-
msgid "
|
2053 |
-
msgstr ""
|
2054 |
-
|
2055 |
-
#: includes/class-wcj-
|
2056 |
-
#: includes/
|
2057 |
-
|
2058 |
-
msgid "
|
2059 |
-
msgstr ""
|
2060 |
-
|
2061 |
-
#: includes/class-wcj-
|
2062 |
-
#: includes/
|
2063 |
-
|
2064 |
-
|
2065 |
-
|
2066 |
-
|
2067 |
-
#: includes/class-wcj-
|
2068 |
-
|
2069 |
-
|
2070 |
-
|
2071 |
-
|
2072 |
-
|
2073 |
-
|
2074 |
-
|
2075 |
-
|
2076 |
-
|
2077 |
-
#: includes/class-wcj-
|
2078 |
-
msgid "
|
2079 |
-
msgstr ""
|
2080 |
-
|
2081 |
-
#: includes/class-wcj-
|
2082 |
-
msgid ""
|
2083 |
-
|
2084 |
-
|
2085 |
-
|
2086 |
-
|
2087 |
-
|
2088 |
-
|
2089 |
-
|
2090 |
-
|
2091 |
-
|
2092 |
-
|
2093 |
-
|
2094 |
-
"
|
2095 |
-
msgstr ""
|
2096 |
-
|
2097 |
-
#: includes/class-wcj-
|
2098 |
-
msgid "
|
2099 |
-
msgstr ""
|
2100 |
-
|
2101 |
-
#: includes/class-wcj-
|
2102 |
-
|
2103 |
-
|
2104 |
-
|
2105 |
-
|
2106 |
-
|
2107 |
-
|
2108 |
-
|
2109 |
-
|
2110 |
-
|
2111 |
-
|
2112 |
-
|
2113 |
-
|
2114 |
-
|
2115 |
-
|
2116 |
-
|
2117 |
-
|
2118 |
-
|
2119 |
-
|
2120 |
-
|
2121 |
-
|
2122 |
-
|
2123 |
-
|
2124 |
-
#: includes/class-wcj-
|
2125 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-
|
2126 |
-
msgid "
|
2127 |
-
msgstr ""
|
2128 |
-
|
2129 |
-
#: includes/class-wcj-
|
2130 |
-
msgid "
|
2131 |
-
msgstr ""
|
2132 |
-
|
2133 |
-
#: includes/class-wcj-
|
2134 |
-
|
2135 |
-
|
2136 |
-
|
2137 |
-
|
2138 |
-
|
2139 |
-
|
2140 |
-
|
2141 |
-
|
2142 |
-
|
2143 |
-
|
2144 |
-
|
2145 |
-
|
2146 |
-
|
2147 |
-
|
2148 |
-
|
2149 |
-
|
2150 |
-
|
2151 |
-
|
2152 |
-
|
2153 |
-
msgstr ""
|
2154 |
-
|
2155 |
-
#: includes/class-wcj-
|
2156 |
-
msgid "
|
2157 |
-
msgstr ""
|
2158 |
-
|
2159 |
-
#: includes/class-wcj-
|
2160 |
-
msgid "
|
2161 |
-
msgstr ""
|
2162 |
-
|
2163 |
-
#: includes/class-wcj-
|
2164 |
-
|
2165 |
-
"
|
2166 |
-
msgstr ""
|
2167 |
-
|
2168 |
-
#: includes/class-wcj-
|
2169 |
-
msgid "
|
2170 |
-
|
2171 |
-
|
2172 |
-
|
2173 |
-
|
2174 |
-
|
2175 |
-
|
2176 |
-
|
2177 |
-
|
2178 |
-
|
2179 |
-
|
2180 |
-
|
2181 |
-
|
2182 |
-
|
2183 |
-
|
2184 |
-
|
2185 |
-
|
2186 |
-
|
2187 |
-
|
2188 |
-
|
2189 |
-
|
2190 |
-
|
2191 |
-
|
2192 |
-
|
2193 |
-
|
2194 |
-
|
2195 |
-
|
2196 |
-
|
2197 |
-
|
2198 |
-
"
|
2199 |
-
|
2200 |
-
|
2201 |
-
|
2202 |
-
|
2203 |
-
|
2204 |
-
|
2205 |
-
|
2206 |
-
|
2207 |
-
|
2208 |
-
|
2209 |
-
|
2210 |
-
|
2211 |
-
|
2212 |
-
|
2213 |
-
|
2214 |
-
|
2215 |
-
|
2216 |
-
|
2217 |
-
|
2218 |
-
|
2219 |
-
|
2220 |
-
|
2221 |
-
|
2222 |
-
|
2223 |
-
|
2224 |
-
|
2225 |
-
|
2226 |
-
|
2227 |
-
|
2228 |
-
|
2229 |
-
|
2230 |
-
|
2231 |
-
|
2232 |
-
|
2233 |
-
|
2234 |
-
|
2235 |
-
|
2236 |
-
|
2237 |
-
|
2238 |
-
|
2239 |
-
|
2240 |
-
|
2241 |
-
|
2242 |
-
|
2243 |
-
|
2244 |
-
|
2245 |
-
|
2246 |
-
|
2247 |
-
|
2248 |
-
|
2249 |
-
|
2250 |
-
|
2251 |
-
|
2252 |
-
|
2253 |
-
|
2254 |
-
|
2255 |
-
|
2256 |
-
|
2257 |
-
|
2258 |
-
|
2259 |
-
|
2260 |
-
|
2261 |
-
|
2262 |
-
|
2263 |
-
|
2264 |
-
|
2265 |
-
msgstr ""
|
2266 |
-
|
2267 |
-
#: includes/class-wcj-
|
2268 |
-
msgid ""
|
2269 |
-
|
2270 |
-
|
2271 |
-
|
2272 |
-
|
2273 |
-
|
2274 |
-
|
2275 |
-
|
2276 |
-
|
2277 |
-
|
2278 |
-
|
2279 |
-
|
2280 |
-
|
2281 |
-
|
2282 |
-
|
2283 |
-
|
2284 |
-
|
2285 |
-
|
2286 |
-
|
2287 |
-
|
2288 |
-
|
2289 |
-
|
2290 |
-
|
2291 |
-
|
2292 |
-
|
2293 |
-
|
2294 |
-
|
2295 |
-
|
2296 |
-
|
2297 |
-
|
2298 |
-
|
2299 |
-
|
2300 |
-
|
2301 |
-
|
2302 |
-
|
2303 |
-
|
2304 |
-
|
2305 |
-
|
2306 |
-
|
2307 |
-
|
2308 |
-
|
2309 |
-
|
2310 |
-
|
2311 |
-
|
2312 |
-
#: includes/
|
2313 |
-
msgid "
|
2314 |
-
msgstr ""
|
2315 |
-
|
2316 |
-
#: includes/class-wcj-
|
2317 |
-
msgid "
|
2318 |
-
msgstr ""
|
2319 |
-
|
2320 |
-
#: includes/class-wcj-
|
2321 |
-
msgid "
|
2322 |
-
msgstr ""
|
2323 |
-
|
2324 |
-
#: includes/class-wcj-
|
2325 |
-
|
2326 |
-
|
2327 |
-
|
2328 |
-
|
2329 |
-
|
2330 |
-
|
2331 |
-
|
2332 |
-
|
2333 |
-
|
2334 |
-
|
2335 |
-
|
2336 |
-
"
|
2337 |
-
msgstr ""
|
2338 |
-
|
2339 |
-
#: includes/class-wcj-
|
2340 |
-
msgid "
|
2341 |
-
|
2342 |
-
|
2343 |
-
|
2344 |
-
|
2345 |
-
|
2346 |
-
|
2347 |
-
|
2348 |
-
|
2349 |
-
|
2350 |
-
|
2351 |
-
|
2352 |
-
|
2353 |
-
|
2354 |
-
|
2355 |
-
|
2356 |
-
|
2357 |
-
|
2358 |
-
|
2359 |
-
|
2360 |
-
|
2361 |
-
|
2362 |
-
|
2363 |
-
|
2364 |
-
|
2365 |
-
|
2366 |
-
|
2367 |
-
|
2368 |
-
|
2369 |
-
|
2370 |
-
|
2371 |
-
|
2372 |
-
|
2373 |
-
|
2374 |
-
|
2375 |
-
|
2376 |
-
|
2377 |
-
|
2378 |
-
|
2379 |
-
|
2380 |
-
|
2381 |
-
|
2382 |
-
|
2383 |
-
|
2384 |
-
|
2385 |
-
|
2386 |
-
|
2387 |
-
|
2388 |
-
|
2389 |
-
|
2390 |
-
|
2391 |
-
|
2392 |
-
|
2393 |
-
|
2394 |
-
|
2395 |
-
|
2396 |
-
|
2397 |
-
|
2398 |
-
|
2399 |
-
|
2400 |
-
|
2401 |
-
|
2402 |
-
|
2403 |
-
|
2404 |
-
|
2405 |
-
|
2406 |
-
|
2407 |
-
|
2408 |
-
|
2409 |
-
|
2410 |
-
|
2411 |
-
|
2412 |
-
|
2413 |
-
|
2414 |
-
|
2415 |
-
|
2416 |
-
|
2417 |
-
|
2418 |
-
|
2419 |
-
|
2420 |
-
|
2421 |
-
|
2422 |
-
|
2423 |
-
|
2424 |
-
|
2425 |
-
|
2426 |
-
|
2427 |
-
|
2428 |
-
|
2429 |
-
|
2430 |
-
|
2431 |
-
|
2432 |
-
|
2433 |
-
|
2434 |
-
|
2435 |
-
|
2436 |
-
|
2437 |
-
|
2438 |
-
|
2439 |
-
|
2440 |
-
|
2441 |
-
|
2442 |
-
|
2443 |
-
|
2444 |
-
|
2445 |
-
|
2446 |
-
|
2447 |
-
|
2448 |
-
|
2449 |
-
|
2450 |
-
msgstr ""
|
2451 |
-
|
2452 |
-
#: includes/class-wcj-
|
2453 |
-
|
2454 |
-
|
2455 |
-
|
2456 |
-
|
2457 |
-
|
2458 |
-
|
2459 |
-
|
2460 |
-
|
2461 |
-
|
2462 |
-
#: includes/class-wcj-
|
2463 |
-
msgid "
|
2464 |
-
msgstr ""
|
2465 |
-
|
2466 |
-
#: includes/class-wcj-
|
2467 |
-
msgid ""
|
2468 |
-
|
2469 |
-
|
2470 |
-
|
2471 |
-
|
2472 |
-
|
2473 |
-
|
2474 |
-
|
2475 |
-
|
2476 |
-
|
2477 |
-
|
2478 |
-
|
2479 |
-
|
2480 |
-
|
2481 |
-
|
2482 |
-
|
2483 |
-
|
2484 |
-
|
2485 |
-
|
2486 |
-
|
2487 |
-
|
2488 |
-
|
2489 |
-
|
2490 |
-
|
2491 |
-
|
2492 |
-
|
2493 |
-
|
2494 |
-
|
2495 |
-
|
2496 |
-
"
|
2497 |
-
|
2498 |
-
|
2499 |
-
|
2500 |
-
|
2501 |
-
|
2502 |
-
|
2503 |
-
#: includes/class-wcj-
|
2504 |
-
|
2505 |
-
|
2506 |
-
|
2507 |
-
|
2508 |
-
|
2509 |
-
|
2510 |
-
|
2511 |
-
|
2512 |
-
|
2513 |
-
|
2514 |
-
|
2515 |
-
|
2516 |
-
|
2517 |
-
|
2518 |
-
#: includes/class-
|
2519 |
-
|
2520 |
-
|
2521 |
-
|
2522 |
-
|
2523 |
-
|
2524 |
-
|
2525 |
-
|
2526 |
-
|
2527 |
-
|
2528 |
-
|
2529 |
-
|
2530 |
-
|
2531 |
-
|
2532 |
-
|
2533 |
-
|
2534 |
-
|
2535 |
-
|
2536 |
-
|
2537 |
-
|
2538 |
-
|
2539 |
-
|
2540 |
-
#: includes/class-wcj-
|
2541 |
-
msgid "
|
2542 |
-
msgstr ""
|
2543 |
-
|
2544 |
-
#: includes/class-wcj-
|
2545 |
-
msgid "
|
2546 |
-
msgstr ""
|
2547 |
-
|
2548 |
-
#: includes/class-wcj-
|
2549 |
-
msgid "
|
2550 |
-
|
2551 |
-
|
2552 |
-
|
2553 |
-
|
2554 |
-
"
|
2555 |
-
|
2556 |
-
|
2557 |
-
|
2558 |
-
|
2559 |
-
|
2560 |
-
|
2561 |
-
|
2562 |
-
|
2563 |
-
|
2564 |
-
|
2565 |
-
|
2566 |
-
|
2567 |
-
|
2568 |
-
|
2569 |
-
|
2570 |
-
|
2571 |
-
|
2572 |
-
|
2573 |
-
|
2574 |
-
|
2575 |
-
|
2576 |
-
|
2577 |
-
|
2578 |
-
|
2579 |
-
|
2580 |
-
|
2581 |
-
|
2582 |
-
|
2583 |
-
|
2584 |
-
|
2585 |
-
|
2586 |
-
|
2587 |
-
#: includes/class-wcj-
|
2588 |
-
msgid "
|
2589 |
-
msgstr ""
|
2590 |
-
|
2591 |
-
#: includes/class-wcj-
|
2592 |
-
msgid "
|
2593 |
-
|
2594 |
-
|
2595 |
-
|
2596 |
-
|
2597 |
-
|
2598 |
-
|
2599 |
-
|
2600 |
-
|
2601 |
-
|
2602 |
-
|
2603 |
-
|
2604 |
-
|
2605 |
-
|
2606 |
-
|
2607 |
-
|
2608 |
-
|
2609 |
-
|
2610 |
-
|
2611 |
-
|
2612 |
-
|
2613 |
-
|
2614 |
-
|
2615 |
-
|
2616 |
-
|
2617 |
-
msgstr ""
|
2618 |
-
|
2619 |
-
#: includes/class-wcj-
|
2620 |
-
msgid "
|
2621 |
-
msgstr ""
|
2622 |
-
|
2623 |
-
#: includes/class-wcj-
|
2624 |
-
msgid ""
|
2625 |
-
|
2626 |
-
|
2627 |
-
|
2628 |
-
|
2629 |
-
|
2630 |
-
|
2631 |
-
|
2632 |
-
|
2633 |
-
|
2634 |
-
|
2635 |
-
|
2636 |
-
|
2637 |
-
|
2638 |
-
|
2639 |
-
|
2640 |
-
|
2641 |
-
|
2642 |
-
|
2643 |
-
|
2644 |
-
|
2645 |
-
|
2646 |
-
|
2647 |
-
|
2648 |
-
|
2649 |
-
|
2650 |
-
|
2651 |
-
|
2652 |
-
|
2653 |
-
|
2654 |
-
|
2655 |
-
|
2656 |
-
|
2657 |
-
|
2658 |
-
|
2659 |
-
|
2660 |
-
|
2661 |
-
|
2662 |
-
|
2663 |
-
|
2664 |
-
|
2665 |
-
|
2666 |
-
|
2667 |
-
|
2668 |
-
|
2669 |
-
|
2670 |
-
|
2671 |
-
|
2672 |
-
|
2673 |
-
|
2674 |
-
|
2675 |
-
|
2676 |
-
|
2677 |
-
|
2678 |
-
|
2679 |
-
|
2680 |
-
|
2681 |
-
|
2682 |
-
|
2683 |
-
|
2684 |
-
|
2685 |
-
|
2686 |
-
|
2687 |
-
|
2688 |
-
|
2689 |
-
|
2690 |
-
#: includes/class-wcj-
|
2691 |
-
|
2692 |
-
|
2693 |
-
|
2694 |
-
#: includes/class-wcj-
|
2695 |
-
msgid "
|
2696 |
-
msgstr ""
|
2697 |
-
|
2698 |
-
#: includes/class-wcj-
|
2699 |
-
msgid ""
|
2700 |
-
|
2701 |
-
|
2702 |
-
|
2703 |
-
|
2704 |
-
|
2705 |
-
|
2706 |
-
|
2707 |
-
|
2708 |
-
|
2709 |
-
|
2710 |
-
|
2711 |
-
|
2712 |
-
|
2713 |
-
|
2714 |
-
|
2715 |
-
|
2716 |
-
|
2717 |
-
|
2718 |
-
|
2719 |
-
|
2720 |
-
|
2721 |
-
|
2722 |
-
|
2723 |
-
|
2724 |
-
|
2725 |
-
|
2726 |
-
|
2727 |
-
|
2728 |
-
msgstr ""
|
2729 |
-
|
2730 |
-
#: includes/class-wcj-
|
2731 |
-
msgid "
|
2732 |
-
msgstr ""
|
2733 |
-
|
2734 |
-
#: includes/class-wcj-
|
2735 |
-
msgid "
|
2736 |
-
|
2737 |
-
|
2738 |
-
|
2739 |
-
|
2740 |
-
|
2741 |
-
"
|
2742 |
-
"
|
2743 |
-
|
2744 |
-
|
2745 |
-
|
2746 |
-
|
2747 |
-
|
2748 |
-
|
2749 |
-
|
2750 |
-
|
2751 |
-
|
2752 |
-
|
2753 |
-
|
2754 |
-
|
2755 |
-
|
2756 |
-
|
2757 |
-
|
2758 |
-
|
2759 |
-
|
2760 |
-
|
2761 |
-
|
2762 |
-
|
2763 |
-
|
2764 |
-
|
2765 |
-
|
2766 |
-
|
2767 |
-
|
2768 |
-
|
2769 |
-
|
2770 |
-
|
2771 |
-
|
2772 |
-
|
2773 |
-
|
2774 |
-
|
2775 |
-
|
2776 |
-
|
2777 |
-
|
2778 |
-
|
2779 |
-
|
2780 |
-
|
2781 |
-
|
2782 |
-
|
2783 |
-
|
2784 |
-
#: includes/class-wcj-
|
2785 |
-
|
2786 |
-
|
2787 |
-
|
2788 |
-
|
2789 |
-
|
2790 |
-
|
2791 |
-
|
2792 |
-
|
2793 |
-
|
2794 |
-
|
2795 |
-
|
2796 |
-
|
2797 |
-
|
2798 |
-
|
2799 |
-
|
2800 |
-
|
2801 |
-
|
2802 |
-
msgstr ""
|
2803 |
-
|
2804 |
-
#: includes/class-wcj-
|
2805 |
-
msgid ""
|
2806 |
-
|
2807 |
-
|
2808 |
-
|
2809 |
-
|
2810 |
-
|
2811 |
-
|
2812 |
-
|
2813 |
-
|
2814 |
-
|
2815 |
-
|
2816 |
-
|
2817 |
-
|
2818 |
-
#: includes/class-wcj-
|
2819 |
-
msgid "
|
2820 |
-
msgstr ""
|
2821 |
-
|
2822 |
-
#: includes/class-wcj-
|
2823 |
-
msgid ""
|
2824 |
-
|
2825 |
-
|
2826 |
-
|
2827 |
-
|
2828 |
-
|
2829 |
-
|
2830 |
-
|
2831 |
-
|
2832 |
-
|
2833 |
-
|
2834 |
-
|
2835 |
-
|
2836 |
-
|
2837 |
-
|
2838 |
-
|
2839 |
-
|
2840 |
-
|
2841 |
-
|
2842 |
-
|
2843 |
-
|
2844 |
-
|
2845 |
-
#: includes/
|
2846 |
-
|
2847 |
-
|
2848 |
-
|
2849 |
-
|
2850 |
-
|
2851 |
-
|
2852 |
-
|
2853 |
-
|
2854 |
-
|
2855 |
-
|
2856 |
-
|
2857 |
-
|
2858 |
-
|
2859 |
-
|
2860 |
-
|
2861 |
-
|
2862 |
-
#: includes/class-wcj-
|
2863 |
-
msgid "
|
2864 |
-
msgstr ""
|
2865 |
-
|
2866 |
-
#: includes/class-wcj-
|
2867 |
-
msgid ""
|
2868 |
-
|
2869 |
-
|
2870 |
-
|
2871 |
-
|
2872 |
-
|
2873 |
-
|
2874 |
-
|
2875 |
-
|
2876 |
-
|
2877 |
-
|
2878 |
-
|
2879 |
-
"
|
2880 |
-
"
|
2881 |
-
|
2882 |
-
|
2883 |
-
|
2884 |
-
|
2885 |
-
|
2886 |
-
|
2887 |
-
|
2888 |
-
|
2889 |
-
|
2890 |
-
|
2891 |
-
|
2892 |
-
|
2893 |
-
|
2894 |
-
|
2895 |
-
|
2896 |
-
|
2897 |
-
|
2898 |
-
|
2899 |
-
"
|
2900 |
-
|
2901 |
-
|
2902 |
-
|
2903 |
-
|
2904 |
-
#: includes/class-wcj-
|
2905 |
-
|
2906 |
-
|
2907 |
-
|
2908 |
-
|
2909 |
-
#: includes/class-wcj-
|
2910 |
-
#: includes/class-wcj-
|
2911 |
-
|
2912 |
-
|
2913 |
-
|
2914 |
-
|
2915 |
-
#: includes/class-wcj-
|
2916 |
-
msgid "
|
2917 |
-
msgstr ""
|
2918 |
-
|
2919 |
-
#: includes/class-wcj-
|
2920 |
-
|
2921 |
-
|
2922 |
-
|
2923 |
-
|
2924 |
-
|
2925 |
-
|
2926 |
-
|
2927 |
-
|
2928 |
-
|
2929 |
-
|
2930 |
-
|
2931 |
-
|
2932 |
-
"
|
2933 |
-
msgstr ""
|
2934 |
-
|
2935 |
-
#: includes/class-wcj-
|
2936 |
-
msgid "
|
2937 |
-
|
2938 |
-
|
2939 |
-
|
2940 |
-
|
2941 |
-
|
2942 |
-
|
2943 |
-
|
2944 |
-
|
2945 |
-
|
2946 |
-
|
2947 |
-
|
2948 |
-
|
2949 |
-
|
2950 |
-
|
2951 |
-
"
|
2952 |
-
|
2953 |
-
|
2954 |
-
|
2955 |
-
|
2956 |
-
|
2957 |
-
|
2958 |
-
|
2959 |
-
|
2960 |
-
|
2961 |
-
|
2962 |
-
#: includes/class-wcj-
|
2963 |
-
msgid "
|
2964 |
-
|
2965 |
-
|
2966 |
-
|
2967 |
-
|
2968 |
-
|
2969 |
-
|
2970 |
-
|
2971 |
-
|
2972 |
-
|
2973 |
-
|
2974 |
-
|
2975 |
-
|
2976 |
-
|
2977 |
-
|
2978 |
-
|
2979 |
-
|
2980 |
-
#: includes/class-wcj-
|
2981 |
-
msgid "
|
2982 |
-
msgstr ""
|
2983 |
-
|
2984 |
-
#: includes/class-wcj-
|
2985 |
-
msgid "
|
2986 |
-
msgstr ""
|
2987 |
-
|
2988 |
-
#: includes/class-wcj-
|
2989 |
-
msgid "
|
2990 |
-
msgstr ""
|
2991 |
-
|
2992 |
-
#: includes/class-wcj-
|
2993 |
-
msgid "
|
2994 |
-
msgstr ""
|
2995 |
-
|
2996 |
-
#: includes/class-wcj-
|
2997 |
-
|
2998 |
-
|
2999 |
-
|
3000 |
-
|
3001 |
-
|
3002 |
-
|
3003 |
-
|
3004 |
-
#: includes/class-wcj-
|
3005 |
-
|
3006 |
-
|
3007 |
-
|
3008 |
-
#: includes/
|
3009 |
-
|
3010 |
-
|
3011 |
-
|
3012 |
-
|
3013 |
-
|
3014 |
-
|
3015 |
-
|
3016 |
-
|
3017 |
-
|
3018 |
-
|
3019 |
-
|
3020 |
-
|
3021 |
-
|
3022 |
-
|
3023 |
-
|
3024 |
-
|
3025 |
-
|
3026 |
-
|
3027 |
-
|
3028 |
-
|
3029 |
-
|
3030 |
-
|
3031 |
-
|
3032 |
-
|
3033 |
-
|
3034 |
-
"
|
3035 |
-
|
3036 |
-
|
3037 |
-
|
3038 |
-
|
3039 |
-
|
3040 |
-
|
3041 |
-
|
3042 |
-
|
3043 |
-
|
3044 |
-
|
3045 |
-
|
3046 |
-
|
3047 |
-
|
3048 |
-
|
3049 |
-
|
3050 |
-
|
3051 |
-
|
3052 |
-
|
3053 |
-
|
3054 |
-
|
3055 |
-
|
3056 |
-
|
3057 |
-
|
3058 |
-
|
3059 |
-
|
3060 |
-
|
3061 |
-
|
3062 |
-
|
3063 |
-
|
3064 |
-
|
3065 |
-
|
3066 |
-
|
3067 |
-
|
3068 |
-
|
3069 |
-
|
3070 |
-
|
3071 |
-
|
3072 |
-
|
3073 |
-
|
3074 |
-
|
3075 |
-
|
3076 |
-
|
3077 |
-
|
3078 |
-
|
3079 |
-
|
3080 |
-
|
3081 |
-
|
3082 |
-
|
3083 |
-
|
3084 |
-
|
3085 |
-
|
3086 |
-
|
3087 |
-
|
3088 |
-
|
3089 |
-
|
3090 |
-
|
3091 |
-
|
3092 |
-
|
3093 |
-
|
3094 |
-
|
3095 |
-
|
3096 |
-
|
3097 |
-
|
3098 |
-
|
3099 |
-
|
3100 |
-
|
3101 |
-
|
3102 |
-
|
3103 |
-
|
3104 |
-
|
3105 |
-
|
3106 |
-
|
3107 |
-
|
3108 |
-
|
3109 |
-
|
3110 |
-
|
3111 |
-
|
3112 |
-
|
3113 |
-
|
3114 |
-
|
3115 |
-
msgstr ""
|
3116 |
-
|
3117 |
-
#: includes/class-wcj-
|
3118 |
-
msgid "
|
3119 |
-
|
3120 |
-
|
3121 |
-
|
3122 |
-
|
3123 |
-
|
3124 |
-
|
3125 |
-
|
3126 |
-
|
3127 |
-
|
3128 |
-
|
3129 |
-
|
3130 |
-
|
3131 |
-
#: includes/class-wcj-
|
3132 |
-
msgid "
|
3133 |
-
msgstr ""
|
3134 |
-
|
3135 |
-
#: includes/class-wcj-
|
3136 |
-
|
3137 |
-
|
3138 |
-
|
3139 |
-
|
3140 |
-
|
3141 |
-
|
3142 |
-
|
3143 |
-
|
3144 |
-
|
3145 |
-
|
3146 |
-
|
3147 |
-
|
3148 |
-
|
3149 |
-
|
3150 |
-
|
3151 |
-
|
3152 |
-
|
3153 |
-
|
3154 |
-
|
3155 |
-
|
3156 |
-
|
3157 |
-
|
3158 |
-
|
3159 |
-
|
3160 |
-
|
3161 |
-
|
3162 |
-
|
3163 |
-
|
3164 |
-
|
3165 |
-
|
3166 |
-
|
3167 |
-
|
3168 |
-
|
3169 |
-
|
3170 |
-
|
3171 |
-
|
3172 |
-
|
3173 |
-
|
3174 |
-
|
3175 |
-
|
3176 |
-
|
3177 |
-
|
3178 |
-
|
3179 |
-
|
3180 |
-
|
3181 |
-
|
3182 |
-
|
3183 |
-
|
3184 |
-
|
3185 |
-
|
3186 |
-
|
3187 |
-
|
3188 |
-
|
3189 |
-
|
3190 |
-
|
3191 |
-
|
3192 |
-
|
3193 |
-
|
3194 |
-
|
3195 |
-
|
3196 |
-
|
3197 |
-
|
3198 |
-
#: includes/class-wcj-
|
3199 |
-
msgid "
|
3200 |
-
msgstr ""
|
3201 |
-
|
3202 |
-
#: includes/class-wcj-
|
3203 |
-
|
3204 |
-
|
3205 |
-
|
3206 |
-
|
3207 |
-
|
3208 |
-
|
3209 |
-
|
3210 |
-
|
3211 |
-
|
3212 |
-
|
3213 |
-
|
3214 |
-
|
3215 |
-
|
3216 |
-
|
3217 |
-
|
3218 |
-
|
3219 |
-
|
3220 |
-
|
3221 |
-
|
3222 |
-
|
3223 |
-
|
3224 |
-
|
3225 |
-
|
3226 |
-
|
3227 |
-
|
3228 |
-
|
3229 |
-
|
3230 |
-
|
3231 |
-
|
3232 |
-
|
3233 |
-
|
3234 |
-
|
3235 |
-
|
3236 |
-
|
3237 |
-
|
3238 |
-
|
3239 |
-
|
3240 |
-
|
3241 |
-
|
3242 |
-
|
3243 |
-
|
3244 |
-
|
3245 |
-
|
3246 |
-
#: includes/class-wcj-
|
3247 |
-
msgid "
|
3248 |
-
msgstr ""
|
3249 |
-
|
3250 |
-
#: includes/class-wcj-
|
3251 |
-
msgid "
|
3252 |
-
msgstr ""
|
3253 |
-
|
3254 |
-
#: includes/class-wcj-
|
3255 |
-
msgid "
|
3256 |
-
msgstr ""
|
3257 |
-
|
3258 |
-
#: includes/class-wcj-
|
3259 |
-
|
3260 |
-
|
3261 |
-
|
3262 |
-
|
3263 |
-
|
3264 |
-
|
3265 |
-
|
3266 |
-
|
3267 |
-
|
3268 |
-
|
3269 |
-
|
3270 |
-
|
3271 |
-
|
3272 |
-
|
3273 |
-
|
3274 |
-
|
3275 |
-
|
3276 |
-
|
3277 |
-
|
3278 |
-
|
3279 |
-
|
3280 |
-
|
3281 |
-
|
3282 |
-
|
3283 |
-
|
3284 |
-
|
3285 |
-
|
3286 |
-
|
3287 |
-
|
3288 |
-
|
3289 |
-
|
3290 |
-
|
3291 |
-
|
3292 |
-
|
3293 |
-
|
3294 |
-
|
3295 |
-
|
3296 |
-
|
3297 |
-
|
3298 |
-
|
3299 |
-
|
3300 |
-
|
3301 |
-
|
3302 |
-
|
3303 |
-
|
3304 |
-
|
3305 |
-
|
3306 |
-
|
3307 |
-
|
3308 |
-
|
3309 |
-
|
3310 |
-
|
3311 |
-
|
3312 |
-
|
3313 |
-
|
3314 |
-
|
3315 |
-
"
|
3316 |
-
|
3317 |
-
|
3318 |
-
|
3319 |
-
|
3320 |
-
|
3321 |
-
|
3322 |
-
|
3323 |
-
|
3324 |
-
|
3325 |
-
|
3326 |
-
"
|
3327 |
-
|
3328 |
-
|
3329 |
-
|
3330 |
-
|
3331 |
-
|
3332 |
-
|
3333 |
-
|
3334 |
-
|
3335 |
-
|
3336 |
-
|
3337 |
-
|
3338 |
-
|
3339 |
-
|
3340 |
-
|
3341 |
-
#: includes/class-wcj-
|
3342 |
-
msgid "
|
3343 |
-
msgstr ""
|
3344 |
-
|
3345 |
-
#: includes/class-wcj-
|
3346 |
-
msgid "
|
3347 |
-
|
3348 |
-
|
3349 |
-
|
3350 |
-
|
3351 |
-
|
3352 |
-
|
3353 |
-
|
3354 |
-
|
3355 |
-
|
3356 |
-
|
3357 |
-
|
3358 |
-
|
3359 |
-
|
3360 |
-
|
3361 |
-
|
3362 |
-
|
3363 |
-
|
3364 |
-
|
3365 |
-
|
3366 |
-
|
3367 |
-
|
3368 |
-
|
3369 |
-
|
3370 |
-
|
3371 |
-
|
3372 |
-
|
3373 |
-
|
3374 |
-
|
3375 |
-
|
3376 |
-
|
3377 |
-
|
3378 |
-
|
3379 |
-
|
3380 |
-
|
3381 |
-
|
3382 |
-
|
3383 |
-
|
3384 |
-
|
3385 |
-
|
3386 |
-
|
3387 |
-
#: includes/class-wcj-
|
3388 |
-
msgid "
|
3389 |
-
msgstr ""
|
3390 |
-
|
3391 |
-
#: includes/class-wcj-
|
3392 |
-
msgid "
|
3393 |
-
msgstr ""
|
3394 |
-
|
3395 |
-
#: includes/class-wcj-
|
3396 |
-
msgid "
|
3397 |
-
msgstr ""
|
3398 |
-
|
3399 |
-
#: includes/class-wcj-
|
3400 |
-
msgid "
|
3401 |
-
msgstr ""
|
3402 |
-
|
3403 |
-
#: includes/class-wcj-
|
3404 |
-
msgid ""
|
3405 |
-
|
3406 |
-
|
3407 |
-
|
3408 |
-
|
3409 |
-
|
3410 |
-
|
3411 |
-
|
3412 |
-
|
3413 |
-
|
3414 |
-
|
3415 |
-
|
3416 |
-
|
3417 |
-
#: includes/class-wcj-
|
3418 |
-
msgid "
|
3419 |
-
msgstr ""
|
3420 |
-
|
3421 |
-
#: includes/class-wcj-
|
3422 |
-
msgid "
|
3423 |
-
msgstr ""
|
3424 |
-
|
3425 |
-
#: includes/class-wcj-
|
3426 |
-
|
3427 |
-
|
3428 |
-
|
3429 |
-
|
3430 |
-
|
3431 |
-
|
3432 |
-
|
3433 |
-
|
3434 |
-
|
3435 |
-
|
3436 |
-
|
3437 |
-
|
3438 |
-
|
3439 |
-
|
3440 |
-
|
3441 |
-
|
3442 |
-
|
3443 |
-
|
3444 |
-
|
3445 |
-
|
3446 |
-
|
3447 |
-
|
3448 |
-
|
3449 |
-
|
3450 |
-
|
3451 |
-
|
3452 |
-
|
3453 |
-
|
3454 |
-
|
3455 |
-
|
3456 |
-
|
3457 |
-
|
3458 |
-
|
3459 |
-
|
3460 |
-
|
3461 |
-
|
3462 |
-
|
3463 |
-
|
3464 |
-
|
3465 |
-
|
3466 |
-
|
3467 |
-
|
3468 |
-
|
3469 |
-
|
3470 |
-
|
3471 |
-
|
3472 |
-
|
3473 |
-
|
3474 |
-
|
3475 |
-
|
3476 |
-
|
3477 |
-
|
3478 |
-
|
3479 |
-
|
3480 |
-
|
3481 |
-
|
3482 |
-
|
3483 |
-
|
3484 |
-
|
3485 |
-
msgstr ""
|
3486 |
-
|
3487 |
-
#: includes/class-wcj-
|
3488 |
-
msgid ""
|
3489 |
-
|
3490 |
-
|
3491 |
-
|
3492 |
-
|
3493 |
-
|
3494 |
-
|
3495 |
-
msgstr ""
|
3496 |
-
|
3497 |
-
#: includes/class-wcj-
|
3498 |
-
msgid ""
|
3499 |
-
|
3500 |
-
|
3501 |
-
|
3502 |
-
|
3503 |
-
|
3504 |
-
|
3505 |
-
|
3506 |
-
|
3507 |
-
|
3508 |
-
|
3509 |
-
|
3510 |
-
|
3511 |
-
|
3512 |
-
msgstr ""
|
3513 |
-
|
3514 |
-
#: includes/class-wcj-
|
3515 |
-
msgid "
|
3516 |
-
msgstr ""
|
3517 |
-
|
3518 |
-
#: includes/class-wcj-
|
3519 |
-
msgid "
|
3520 |
-
msgstr ""
|
3521 |
-
|
3522 |
-
#: includes/class-wcj-
|
3523 |
-
msgid "
|
3524 |
-
msgstr ""
|
3525 |
-
|
3526 |
-
#: includes/class-wcj-
|
3527 |
-
msgid "
|
3528 |
-
msgstr ""
|
3529 |
-
|
3530 |
-
#: includes/class-wcj-
|
3531 |
-
|
3532 |
-
|
3533 |
-
|
3534 |
-
|
3535 |
-
|
3536 |
-
|
3537 |
-
|
3538 |
-
|
3539 |
-
|
3540 |
-
|
3541 |
-
|
3542 |
-
|
3543 |
-
|
3544 |
-
#: includes/class-wcj-
|
3545 |
-
|
3546 |
-
|
3547 |
-
|
3548 |
-
|
3549 |
-
|
3550 |
-
|
3551 |
-
|
3552 |
-
|
3553 |
-
|
3554 |
-
|
3555 |
-
|
3556 |
-
|
3557 |
-
|
3558 |
-
|
3559 |
-
|
3560 |
-
|
3561 |
-
|
3562 |
-
|
3563 |
-
|
3564 |
-
|
3565 |
-
|
3566 |
-
|
3567 |
-
|
3568 |
-
|
3569 |
-
|
3570 |
-
|
3571 |
-
|
3572 |
-
|
3573 |
-
|
3574 |
-
|
3575 |
-
|
3576 |
-
|
3577 |
-
|
3578 |
-
|
3579 |
-
|
3580 |
-
|
3581 |
-
|
3582 |
-
|
3583 |
-
|
3584 |
-
|
3585 |
-
|
3586 |
-
|
3587 |
-
|
3588 |
-
|
3589 |
-
|
3590 |
-
|
3591 |
-
|
3592 |
-
|
3593 |
-
|
3594 |
-
|
3595 |
-
|
3596 |
-
|
3597 |
-
|
3598 |
-
|
3599 |
-
|
3600 |
-
|
3601 |
-
|
3602 |
-
|
3603 |
-
|
3604 |
-
|
3605 |
-
|
3606 |
-
|
3607 |
-
|
3608 |
-
|
3609 |
-
|
3610 |
-
|
3611 |
-
|
3612 |
-
|
3613 |
-
|
3614 |
-
|
3615 |
-
|
3616 |
-
|
3617 |
-
|
3618 |
-
|
3619 |
-
|
3620 |
-
|
3621 |
-
|
3622 |
-
|
3623 |
-
|
3624 |
-
|
3625 |
-
|
3626 |
-
|
3627 |
-
|
3628 |
-
#: includes/class-wcj-
|
3629 |
-
msgid "
|
3630 |
-
|
3631 |
-
|
3632 |
-
|
3633 |
-
|
3634 |
-
|
3635 |
-
|
3636 |
-
|
3637 |
-
|
3638 |
-
msgstr ""
|
3639 |
-
|
3640 |
-
#: includes/
|
3641 |
-
msgid "
|
3642 |
-
msgstr ""
|
3643 |
-
|
3644 |
-
#: includes/
|
3645 |
-
msgid "
|
3646 |
-
msgstr ""
|
3647 |
-
|
3648 |
-
#: includes/
|
3649 |
-
msgid "
|
3650 |
-
msgstr ""
|
3651 |
-
|
3652 |
-
#: includes/
|
3653 |
-
msgid "
|
3654 |
-
|
3655 |
-
|
3656 |
-
|
3657 |
-
|
3658 |
-
|
3659 |
-
|
3660 |
-
|
3661 |
-
|
3662 |
-
|
3663 |
-
|
3664 |
-
|
3665 |
-
|
3666 |
-
|
3667 |
-
|
3668 |
-
|
3669 |
-
|
3670 |
-
|
3671 |
-
|
3672 |
-
|
3673 |
-
|
3674 |
-
|
3675 |
-
|
3676 |
-
#: includes/
|
3677 |
-
msgid "
|
3678 |
-
msgstr ""
|
3679 |
-
|
3680 |
-
#: includes/
|
3681 |
-
msgid "
|
3682 |
-
msgstr ""
|
3683 |
-
|
3684 |
-
#: includes/
|
3685 |
-
msgid "
|
3686 |
-
msgstr ""
|
3687 |
-
|
3688 |
-
#: includes/
|
3689 |
-
msgid "
|
3690 |
-
msgstr ""
|
3691 |
-
|
3692 |
-
#: includes/
|
3693 |
-
msgid "
|
3694 |
-
msgstr ""
|
3695 |
-
|
3696 |
-
#: includes/
|
3697 |
-
msgid "
|
3698 |
-
msgstr ""
|
3699 |
-
|
3700 |
-
#: includes/
|
3701 |
-
msgid "
|
3702 |
-
msgstr ""
|
3703 |
-
|
3704 |
-
#: includes/
|
3705 |
-
|
3706 |
-
|
3707 |
-
|
3708 |
-
|
3709 |
-
|
3710 |
-
|
3711 |
-
|
3712 |
-
|
3713 |
-
|
3714 |
-
|
3715 |
-
|
3716 |
-
|
3717 |
-
|
3718 |
-
|
3719 |
-
|
3720 |
-
|
3721 |
-
|
3722 |
-
|
3723 |
-
|
3724 |
-
|
3725 |
-
|
3726 |
-
|
3727 |
-
|
3728 |
-
|
3729 |
-
|
3730 |
-
|
3731 |
-
|
3732 |
-
|
3733 |
-
|
3734 |
-
|
3735 |
-
|
3736 |
-
#: includes/
|
3737 |
-
msgid "
|
3738 |
-
msgstr ""
|
3739 |
-
|
3740 |
-
#: includes/
|
3741 |
-
msgid "
|
3742 |
-
msgstr ""
|
3743 |
-
|
3744 |
-
#: includes/
|
3745 |
-
|
3746 |
-
|
3747 |
-
|
3748 |
-
|
3749 |
-
|
3750 |
-
msgstr ""
|
3751 |
-
|
3752 |
-
#: includes/
|
3753 |
-
|
3754 |
-
|
3755 |
-
|
3756 |
-
|
3757 |
-
|
3758 |
-
|
3759 |
-
|
3760 |
-
|
3761 |
-
|
3762 |
-
|
3763 |
-
|
3764 |
-
|
3765 |
-
|
3766 |
-
|
3767 |
-
|
3768 |
-
#: includes/
|
3769 |
-
|
3770 |
-
|
3771 |
-
|
3772 |
-
|
3773 |
-
|
3774 |
-
|
3775 |
-
|
3776 |
-
|
3777 |
-
#: includes/
|
3778 |
-
msgid "
|
3779 |
-
msgstr ""
|
3780 |
-
|
3781 |
-
#: includes/
|
3782 |
-
msgid "
|
3783 |
-
msgstr ""
|
3784 |
-
|
3785 |
-
#: includes/
|
3786 |
-
|
3787 |
-
|
3788 |
-
|
3789 |
-
|
3790 |
-
|
3791 |
-
msgstr ""
|
3792 |
-
|
3793 |
-
#: includes/
|
3794 |
-
|
3795 |
-
|
3796 |
-
|
3797 |
-
|
3798 |
-
|
3799 |
-
|
3800 |
-
|
3801 |
-
|
3802 |
-
|
3803 |
-
|
3804 |
-
|
3805 |
-
|
3806 |
-
|
3807 |
-
|
3808 |
-
|
3809 |
-
|
3810 |
-
|
3811 |
-
|
3812 |
-
|
3813 |
-
|
3814 |
-
|
3815 |
-
|
3816 |
-
|
3817 |
-
|
3818 |
-
|
3819 |
-
|
3820 |
-
|
3821 |
-
|
3822 |
-
|
3823 |
-
|
3824 |
-
|
3825 |
-
|
3826 |
-
|
3827 |
-
|
3828 |
-
|
3829 |
-
|
3830 |
-
|
3831 |
-
|
3832 |
-
|
3833 |
-
|
3834 |
-
|
3835 |
-
|
3836 |
-
|
3837 |
-
|
3838 |
-
|
3839 |
-
|
3840 |
-
|
3841 |
-
|
3842 |
-
|
3843 |
-
|
3844 |
-
|
3845 |
-
|
3846 |
-
|
3847 |
-
|
3848 |
-
|
3849 |
-
|
3850 |
-
|
3851 |
-
|
3852 |
-
|
3853 |
-
|
3854 |
-
|
3855 |
-
|
3856 |
-
|
3857 |
-
|
3858 |
-
|
3859 |
-
|
3860 |
-
|
3861 |
-
|
3862 |
-
|
3863 |
-
|
3864 |
-
|
3865 |
-
|
3866 |
-
|
3867 |
-
|
3868 |
-
|
3869 |
-
|
3870 |
-
|
3871 |
-
|
3872 |
-
|
3873 |
-
|
3874 |
-
|
3875 |
-
|
3876 |
-
|
3877 |
-
|
3878 |
-
|
3879 |
-
|
3880 |
-
|
3881 |
-
#: includes/
|
3882 |
-
msgid "
|
3883 |
-
msgstr ""
|
3884 |
-
|
3885 |
-
#: includes/
|
3886 |
-
|
3887 |
-
|
3888 |
-
|
3889 |
-
|
3890 |
-
|
3891 |
-
|
3892 |
-
|
3893 |
-
|
3894 |
-
|
3895 |
-
|
3896 |
-
|
3897 |
-
|
3898 |
-
|
3899 |
-
|
3900 |
-
|
3901 |
-
|
3902 |
-
|
3903 |
-
|
3904 |
-
|
3905 |
-
|
3906 |
-
|
3907 |
-
|
3908 |
-
|
3909 |
-
|
3910 |
-
|
3911 |
-
|
3912 |
-
|
3913 |
-
|
3914 |
-
|
3915 |
-
|
3916 |
-
|
3917 |
-
|
3918 |
-
|
3919 |
-
|
3920 |
-
|
3921 |
-
|
3922 |
-
|
3923 |
-
|
3924 |
-
|
3925 |
-
|
3926 |
-
|
3927 |
-
|
3928 |
-
|
3929 |
-
|
3930 |
-
|
3931 |
-
|
3932 |
-
|
3933 |
-
|
3934 |
-
|
3935 |
-
|
3936 |
-
|
3937 |
-
|
3938 |
-
|
3939 |
-
|
3940 |
-
|
3941 |
-
|
3942 |
-
|
3943 |
-
|
3944 |
-
|
3945 |
-
|
3946 |
-
|
3947 |
-
|
3948 |
-
|
3949 |
-
|
3950 |
-
|
3951 |
-
|
3952 |
-
|
3953 |
-
#: includes/
|
3954 |
-
msgid "
|
3955 |
-
msgstr ""
|
3956 |
-
|
3957 |
-
#: includes/
|
3958 |
-
msgid "
|
3959 |
-
msgstr ""
|
3960 |
-
|
3961 |
-
#: includes/
|
3962 |
-
msgid "
|
3963 |
-
msgstr ""
|
3964 |
-
|
3965 |
-
#: includes/
|
3966 |
-
msgid "
|
3967 |
-
msgstr ""
|
3968 |
-
|
3969 |
-
#: includes/
|
3970 |
-
msgid "
|
3971 |
-
|
3972 |
-
|
3973 |
-
|
3974 |
-
|
3975 |
-
|
3976 |
-
|
3977 |
-
|
3978 |
-
|
3979 |
-
|
3980 |
-
|
3981 |
-
|
3982 |
-
|
3983 |
-
|
3984 |
-
|
3985 |
-
|
3986 |
-
|
3987 |
-
|
3988 |
-
|
3989 |
-
|
3990 |
-
|
3991 |
-
msgstr ""
|
3992 |
-
|
3993 |
-
#: includes/
|
3994 |
-
msgid "
|
3995 |
-
msgstr ""
|
3996 |
-
|
3997 |
-
#: includes/
|
3998 |
-
msgid "
|
3999 |
-
msgstr ""
|
4000 |
-
|
4001 |
-
#: includes/
|
4002 |
-
|
4003 |
-
|
4004 |
-
|
4005 |
-
|
4006 |
-
|
4007 |
-
|
4008 |
-
|
4009 |
-
#: includes/
|
4010 |
-
|
4011 |
-
|
4012 |
-
|
4013 |
-
#: includes/
|
4014 |
-
msgid "
|
4015 |
-
msgstr ""
|
4016 |
-
|
4017 |
-
#: includes/
|
4018 |
-
|
4019 |
-
|
4020 |
-
|
4021 |
-
|
4022 |
-
|
4023 |
-
|
4024 |
-
|
4025 |
-
|
4026 |
-
|
4027 |
-
|
4028 |
-
|
4029 |
-
|
4030 |
-
|
4031 |
-
|
4032 |
-
|
4033 |
-
|
4034 |
-
|
4035 |
-
|
4036 |
-
|
4037 |
-
|
4038 |
-
|
4039 |
-
|
4040 |
-
|
4041 |
-
#: includes/
|
4042 |
-
msgid "
|
4043 |
-
msgstr ""
|
4044 |
-
|
4045 |
-
#: includes/
|
4046 |
-
|
4047 |
-
|
4048 |
-
|
4049 |
-
|
4050 |
-
|
4051 |
-
|
4052 |
-
|
4053 |
-
|
4054 |
-
|
4055 |
-
|
4056 |
-
|
4057 |
-
|
4058 |
-
|
4059 |
-
|
4060 |
-
|
4061 |
-
#: includes/
|
4062 |
-
msgid "
|
4063 |
-
msgstr ""
|
4064 |
-
|
4065 |
-
#: includes/
|
4066 |
-
|
4067 |
-
|
4068 |
-
|
4069 |
-
|
4070 |
-
|
4071 |
-
|
4072 |
-
|
4073 |
-
|
4074 |
-
|
4075 |
-
|
4076 |
-
|
4077 |
-
|
4078 |
-
|
4079 |
-
|
4080 |
-
|
4081 |
-
#: includes/
|
4082 |
-
msgid "
|
4083 |
-
msgstr ""
|
4084 |
-
|
4085 |
-
#: includes/
|
4086 |
-
|
4087 |
-
|
4088 |
-
|
4089 |
-
|
4090 |
-
|
4091 |
-
|
4092 |
-
|
4093 |
-
|
4094 |
-
|
4095 |
-
|
4096 |
-
|
4097 |
-
|
4098 |
-
|
4099 |
-
|
4100 |
-
|
4101 |
-
#: includes/
|
4102 |
-
msgid "
|
4103 |
-
msgstr ""
|
4104 |
-
|
4105 |
-
#: includes/
|
4106 |
-
msgid "
|
4107 |
-
msgstr ""
|
4108 |
-
|
4109 |
-
#: includes/
|
4110 |
-
|
4111 |
-
|
4112 |
-
|
4113 |
-
#: includes/
|
4114 |
-
msgid "
|
4115 |
-
msgstr ""
|
4116 |
-
|
4117 |
-
#: includes/
|
4118 |
-
msgid "
|
4119 |
-
msgstr ""
|
4120 |
-
|
4121 |
-
#: includes/
|
4122 |
-
msgid "
|
4123 |
-
msgstr ""
|
4124 |
-
|
4125 |
-
#: includes/
|
4126 |
-
msgid "
|
4127 |
-
msgstr ""
|
4128 |
-
|
4129 |
-
#: includes/
|
4130 |
-
msgid "
|
4131 |
-
msgstr ""
|
4132 |
-
|
4133 |
-
#: includes/
|
4134 |
-
msgid "
|
4135 |
-
msgstr ""
|
4136 |
-
|
4137 |
-
#: includes/
|
4138 |
-
msgid "
|
4139 |
-
msgstr ""
|
4140 |
-
|
4141 |
-
#: includes/
|
4142 |
-
msgid "
|
4143 |
-
msgstr ""
|
4144 |
-
|
4145 |
-
#: includes/
|
4146 |
-
msgid "
|
4147 |
-
msgstr ""
|
4148 |
-
|
4149 |
-
#: includes/
|
4150 |
-
msgid "
|
4151 |
-
msgstr ""
|
4152 |
-
|
4153 |
-
#: includes/
|
4154 |
-
msgid "
|
4155 |
-
msgstr ""
|
4156 |
-
|
4157 |
-
#: includes/
|
4158 |
-
msgid "
|
4159 |
-
msgstr ""
|
4160 |
-
|
4161 |
-
#: includes/
|
4162 |
-
msgid "
|
4163 |
-
msgstr ""
|
4164 |
-
|
4165 |
-
#: includes/
|
4166 |
-
msgid "
|
4167 |
-
msgstr ""
|
4168 |
-
|
4169 |
-
#: includes/
|
4170 |
-
msgid "
|
4171 |
-
msgstr ""
|
4172 |
-
|
4173 |
-
#: includes/
|
4174 |
-
msgid "
|
4175 |
-
msgstr ""
|
4176 |
-
|
4177 |
-
#: includes/
|
4178 |
-
msgid "
|
4179 |
-
msgstr ""
|
4180 |
-
|
4181 |
-
#: includes/
|
4182 |
-
msgid "
|
4183 |
-
msgstr ""
|
4184 |
-
|
4185 |
-
#: includes/
|
4186 |
-
msgid "
|
4187 |
-
msgstr ""
|
4188 |
-
|
4189 |
-
#: includes/
|
4190 |
-
msgid "
|
4191 |
-
msgstr ""
|
4192 |
-
|
4193 |
-
#: includes/
|
4194 |
-
|
4195 |
-
|
4196 |
-
|
4197 |
-
|
4198 |
-
|
4199 |
-
|
4200 |
-
|
4201 |
-
#: includes/
|
4202 |
-
msgid "
|
4203 |
-
msgstr ""
|
4204 |
-
|
4205 |
-
#: includes/
|
4206 |
-
|
4207 |
-
|
4208 |
-
|
4209 |
-
|
4210 |
-
|
4211 |
-
|
4212 |
-
|
4213 |
-
#: includes/
|
4214 |
-
msgid "
|
4215 |
-
msgstr ""
|
4216 |
-
|
4217 |
-
#: includes/
|
4218 |
-
msgid "
|
4219 |
-
msgstr ""
|
4220 |
-
|
4221 |
-
#: includes/
|
4222 |
-
msgid "
|
4223 |
-
msgstr ""
|
4224 |
-
|
4225 |
-
#: includes/
|
4226 |
-
msgid "
|
4227 |
-
msgstr ""
|
4228 |
-
|
4229 |
-
#: includes/
|
4230 |
-
msgid "
|
4231 |
-
msgstr ""
|
4232 |
-
|
4233 |
-
#: includes/
|
4234 |
-
|
4235 |
-
|
4236 |
-
|
4237 |
-
|
4238 |
-
|
4239 |
-
|
4240 |
-
|
4241 |
-
|
4242 |
-
|
4243 |
-
|
4244 |
-
|
4245 |
-
#: includes/
|
4246 |
-
msgid "
|
4247 |
-
msgstr ""
|
4248 |
-
|
4249 |
-
#: includes/
|
4250 |
-
|
4251 |
-
|
4252 |
-
|
4253 |
-
|
4254 |
-
|
4255 |
-
|
4256 |
-
|
4257 |
-
|
4258 |
-
|
4259 |
-
|
4260 |
-
|
4261 |
-
|
4262 |
-
|
4263 |
-
|
4264 |
-
|
4265 |
-
#: includes/
|
4266 |
-
msgid "
|
4267 |
-
msgstr ""
|
4268 |
-
|
4269 |
-
#: includes/
|
4270 |
-
msgid "
|
4271 |
-
msgstr ""
|
4272 |
-
|
4273 |
-
#: includes/
|
4274 |
-
msgid "
|
4275 |
-
msgstr ""
|
4276 |
-
|
4277 |
-
#: includes/
|
4278 |
-
msgid "
|
4279 |
-
msgstr ""
|
4280 |
-
|
4281 |
-
#: includes/
|
4282 |
-
msgid "
|
4283 |
-
msgstr ""
|
4284 |
-
|
4285 |
-
#: includes/
|
4286 |
-
|
4287 |
-
|
4288 |
-
|
4289 |
-
|
4290 |
-
|
4291 |
-
|
4292 |
-
|
4293 |
-
|
4294 |
-
|
4295 |
-
|
4296 |
-
|
4297 |
-
|
4298 |
-
|
4299 |
-
|
4300 |
-
|
4301 |
-
|
4302 |
-
|
4303 |
-
|
4304 |
-
|
4305 |
-
#: includes/
|
4306 |
-
msgid "
|
4307 |
-
msgstr ""
|
4308 |
-
|
4309 |
-
#: includes/
|
4310 |
-
|
4311 |
-
|
4312 |
-
|
4313 |
-
|
4314 |
-
|
4315 |
-
|
4316 |
-
|
4317 |
-
|
4318 |
-
|
4319 |
-
|
4320 |
-
|
4321 |
-
|
4322 |
-
|
4323 |
-
|
4324 |
-
|
4325 |
-
|
4326 |
-
|
4327 |
-
|
4328 |
-
|
4329 |
-
|
4330 |
-
|
4331 |
-
|
4332 |
-
|
4333 |
-
|
4334 |
-
|
4335 |
-
msgstr ""
|
4336 |
-
|
4337 |
-
#: includes/
|
4338 |
-
msgid "
|
4339 |
-
msgstr ""
|
4340 |
-
|
4341 |
-
#: includes/
|
4342 |
-
msgid "
|
4343 |
-
msgstr ""
|
4344 |
-
|
4345 |
-
#: includes/
|
4346 |
-
msgid "
|
4347 |
-
msgstr ""
|
4348 |
-
|
4349 |
-
#: includes/
|
4350 |
-
msgid "
|
4351 |
-
msgstr ""
|
4352 |
-
|
4353 |
-
#: includes/
|
4354 |
-
msgid "
|
4355 |
-
msgstr ""
|
4356 |
-
|
4357 |
-
#: includes/
|
4358 |
-
msgid "
|
4359 |
-
msgstr ""
|
4360 |
-
|
4361 |
-
#: includes/
|
4362 |
-
msgid "
|
4363 |
-
msgstr ""
|
4364 |
-
|
4365 |
-
#: includes/
|
4366 |
-
msgid "
|
4367 |
-
msgstr ""
|
4368 |
-
|
4369 |
-
#: includes/
|
4370 |
-
msgid "
|
4371 |
-
msgstr ""
|
4372 |
-
|
4373 |
-
#: includes/
|
4374 |
-
msgid "
|
4375 |
-
msgstr ""
|
4376 |
-
|
4377 |
-
#: includes/
|
4378 |
-
msgid "
|
4379 |
-
msgstr ""
|
4380 |
-
|
4381 |
-
#: includes/
|
4382 |
-
msgid "
|
4383 |
-
msgstr ""
|
4384 |
-
|
4385 |
-
#: includes/
|
4386 |
-
msgid "
|
4387 |
-
msgstr ""
|
4388 |
-
|
4389 |
-
#: includes/
|
4390 |
-
msgid "
|
4391 |
-
msgstr ""
|
4392 |
-
|
4393 |
-
#: includes/
|
4394 |
-
msgid "
|
4395 |
-
msgstr ""
|
4396 |
-
|
4397 |
-
#: includes/
|
4398 |
-
msgid "
|
4399 |
-
msgstr ""
|
4400 |
-
|
4401 |
-
#: includes/
|
4402 |
-
msgid "
|
4403 |
-
msgstr ""
|
4404 |
-
|
4405 |
-
#: includes/
|
4406 |
-
msgid "
|
4407 |
-
msgstr ""
|
4408 |
-
|
4409 |
-
#: includes/
|
4410 |
-
msgid "
|
4411 |
-
msgstr ""
|
4412 |
-
|
4413 |
-
#: includes/
|
4414 |
-
msgid "
|
4415 |
-
msgstr ""
|
4416 |
-
|
4417 |
-
#: includes/
|
4418 |
-
msgid "
|
4419 |
-
msgstr ""
|
4420 |
-
|
4421 |
-
#: includes/
|
4422 |
-
msgid "
|
4423 |
-
msgstr ""
|
4424 |
-
|
4425 |
-
#: includes/
|
4426 |
-
msgid "
|
4427 |
-
msgstr ""
|
4428 |
-
|
4429 |
-
#: includes/
|
4430 |
-
msgid "
|
4431 |
-
msgstr ""
|
4432 |
-
|
4433 |
-
#: includes/
|
4434 |
-
msgid "
|
4435 |
-
msgstr ""
|
4436 |
-
|
4437 |
-
#: includes/
|
4438 |
-
msgid "
|
4439 |
-
msgstr ""
|
4440 |
-
|
4441 |
-
#: includes/
|
4442 |
-
msgid "
|
4443 |
-
msgstr ""
|
4444 |
-
|
4445 |
-
#: includes/
|
4446 |
-
msgid "
|
4447 |
-
msgstr ""
|
4448 |
-
|
4449 |
-
#: includes/
|
4450 |
-
msgid "
|
4451 |
-
msgstr ""
|
4452 |
-
|
4453 |
-
#: includes/
|
4454 |
-
msgid "
|
4455 |
-
msgstr ""
|
4456 |
-
|
4457 |
-
#: includes/
|
4458 |
-
msgid "
|
4459 |
-
msgstr ""
|
4460 |
-
|
4461 |
-
#: includes/
|
4462 |
-
msgid "
|
4463 |
-
msgstr ""
|
4464 |
-
|
4465 |
-
#: includes/
|
4466 |
-
msgid "
|
4467 |
-
msgstr ""
|
4468 |
-
|
4469 |
-
#: includes/
|
4470 |
-
msgid "
|
4471 |
-
msgstr ""
|
4472 |
-
|
4473 |
-
#: includes/
|
4474 |
-
msgid "
|
4475 |
-
msgstr ""
|
4476 |
-
|
4477 |
-
#: includes/
|
4478 |
-
msgid "
|
4479 |
-
msgstr ""
|
4480 |
-
|
4481 |
-
#: includes/
|
4482 |
-
msgid "
|
4483 |
-
msgstr ""
|
4484 |
-
|
4485 |
-
#: includes/
|
4486 |
-
msgid "
|
4487 |
-
msgstr ""
|
4488 |
-
|
4489 |
-
#: includes/
|
4490 |
-
msgid "
|
4491 |
-
msgstr ""
|
4492 |
-
|
4493 |
-
#: includes/
|
4494 |
-
msgid "
|
4495 |
-
msgstr ""
|
4496 |
-
|
4497 |
-
#: includes/
|
4498 |
-
msgid "
|
4499 |
-
msgstr ""
|
4500 |
-
|
4501 |
-
#: includes/
|
4502 |
-
msgid "
|
4503 |
-
msgstr ""
|
4504 |
-
|
4505 |
-
#: includes/
|
4506 |
-
msgid "
|
4507 |
-
msgstr ""
|
4508 |
-
|
4509 |
-
#: includes/
|
4510 |
-
msgid "
|
4511 |
-
msgstr ""
|
4512 |
-
|
4513 |
-
#: includes/
|
4514 |
-
msgid "
|
4515 |
-
msgstr ""
|
4516 |
-
|
4517 |
-
#: includes/
|
4518 |
-
msgid "
|
4519 |
-
msgstr ""
|
4520 |
-
|
4521 |
-
#: includes/
|
4522 |
-
msgid "
|
4523 |
-
msgstr ""
|
4524 |
-
|
4525 |
-
#: includes/
|
4526 |
-
msgid "
|
4527 |
-
msgstr ""
|
4528 |
-
|
4529 |
-
#: includes/
|
4530 |
-
msgid "
|
4531 |
-
msgstr ""
|
4532 |
-
|
4533 |
-
#: includes/
|
4534 |
-
msgid "
|
4535 |
-
|
4536 |
-
|
4537 |
-
|
4538 |
-
|
4539 |
-
|
4540 |
-
|
4541 |
-
|
4542 |
-
|
4543 |
-
|
4544 |
-
|
4545 |
-
|
4546 |
-
|
4547 |
-
|
4548 |
-
|
4549 |
-
|
4550 |
-
|
4551 |
-
|
4552 |
-
|
4553 |
-
|
4554 |
-
|
4555 |
-
|
4556 |
-
|
4557 |
-
#: includes/
|
4558 |
-
|
4559 |
-
|
4560 |
-
|
4561 |
-
|
4562 |
-
|
4563 |
-
|
4564 |
-
|
4565 |
-
|
4566 |
-
|
4567 |
-
|
4568 |
-
|
4569 |
-
|
4570 |
-
|
4571 |
-
|
4572 |
-
|
4573 |
-
|
4574 |
-
|
4575 |
-
|
4576 |
-
|
4577 |
-
|
4578 |
-
|
4579 |
-
|
4580 |
-
|
4581 |
-
|
4582 |
-
|
4583 |
-
|
4584 |
-
|
4585 |
-
|
4586 |
-
|
4587 |
-
|
4588 |
-
|
4589 |
-
|
4590 |
-
|
4591 |
-
|
4592 |
-
|
4593 |
-
|
4594 |
-
|
4595 |
-
|
4596 |
-
|
4597 |
-
|
4598 |
-
|
4599 |
-
|
4600 |
-
|
4601 |
-
|
4602 |
-
|
4603 |
-
|
4604 |
-
|
4605 |
-
|
4606 |
-
|
4607 |
-
|
4608 |
-
|
4609 |
-
|
4610 |
-
|
4611 |
-
|
4612 |
-
|
4613 |
-
|
4614 |
-
|
4615 |
-
|
4616 |
-
|
4617 |
-
|
4618 |
-
|
4619 |
-
|
4620 |
-
|
4621 |
-
|
4622 |
-
|
4623 |
-
|
4624 |
-
|
4625 |
-
|
4626 |
-
|
4627 |
-
|
4628 |
-
|
4629 |
-
|
4630 |
-
|
4631 |
-
|
4632 |
-
|
4633 |
-
|
4634 |
-
|
4635 |
-
|
4636 |
-
|
4637 |
-
|
4638 |
-
|
4639 |
-
|
4640 |
-
|
4641 |
-
#: includes/
|
4642 |
-
msgid "
|
4643 |
-
msgstr ""
|
4644 |
-
|
4645 |
-
#: includes/
|
4646 |
-
msgid "
|
4647 |
-
msgstr ""
|
4648 |
-
|
4649 |
-
#: includes/
|
4650 |
-
msgid "
|
4651 |
-
msgstr ""
|
4652 |
-
|
4653 |
-
#: includes/
|
4654 |
-
msgid "
|
4655 |
-
msgstr ""
|
4656 |
-
|
4657 |
-
#: includes/
|
4658 |
-
msgid "
|
4659 |
-
msgstr ""
|
4660 |
-
|
4661 |
-
#: includes/
|
4662 |
-
|
4663 |
-
|
4664 |
-
|
4665 |
-
|
4666 |
-
|
4667 |
-
|
4668 |
-
|
4669 |
-
|
4670 |
-
|
4671 |
-
|
4672 |
-
|
4673 |
-
|
4674 |
-
|
4675 |
-
|
4676 |
-
|
4677 |
-
|
4678 |
-
|
4679 |
-
|
4680 |
-
|
4681 |
-
|
4682 |
-
|
4683 |
-
|
4684 |
-
|
4685 |
-
|
4686 |
-
|
4687 |
-
|
4688 |
-
|
4689 |
-
|
4690 |
-
|
4691 |
-
|
4692 |
-
|
4693 |
-
|
4694 |
-
|
4695 |
-
|
4696 |
-
|
4697 |
-
|
4698 |
-
|
4699 |
-
|
4700 |
-
|
4701 |
-
|
4702 |
-
|
4703 |
-
|
4704 |
-
|
4705 |
-
|
4706 |
-
|
4707 |
-
|
4708 |
-
|
4709 |
-
|
4710 |
-
|
4711 |
-
|
4712 |
-
|
4713 |
-
|
4714 |
-
|
4715 |
-
|
4716 |
-
|
4717 |
-
|
4718 |
-
|
4719 |
-
|
4720 |
-
|
4721 |
-
|
4722 |
-
|
4723 |
-
|
4724 |
-
|
4725 |
-
|
4726 |
-
|
4727 |
-
|
4728 |
-
|
4729 |
-
|
4730 |
-
|
4731 |
-
|
4732 |
-
|
4733 |
-
|
4734 |
-
|
4735 |
-
|
4736 |
-
|
4737 |
-
|
4738 |
-
|
4739 |
-
|
4740 |
-
|
4741 |
-
|
4742 |
-
|
4743 |
-
|
4744 |
-
|
4745 |
-
|
4746 |
-
|
4747 |
-
msgstr ""
|
4748 |
-
|
4749 |
-
#: includes/
|
4750 |
-
msgid "
|
4751 |
-
msgstr ""
|
4752 |
-
|
4753 |
-
#: includes/
|
4754 |
-
msgid "
|
4755 |
-
|
4756 |
-
|
4757 |
-
|
4758 |
-
|
4759 |
-
|
4760 |
-
|
4761 |
-
|
4762 |
-
|
4763 |
-
|
4764 |
-
|
4765 |
-
|
4766 |
-
|
4767 |
-
|
4768 |
-
|
4769 |
-
|
4770 |
-
|
4771 |
-
|
4772 |
-
|
4773 |
-
|
4774 |
-
|
4775 |
-
|
4776 |
-
|
4777 |
-
|
4778 |
-
|
4779 |
-
|
4780 |
-
|
4781 |
-
|
4782 |
-
|
4783 |
-
|
4784 |
-
|
4785 |
-
|
4786 |
-
|
4787 |
-
|
4788 |
-
|
4789 |
-
|
4790 |
-
|
4791 |
-
|
4792 |
-
|
4793 |
-
|
4794 |
-
|
4795 |
-
|
4796 |
-
|
4797 |
-
|
4798 |
-
|
4799 |
-
|
4800 |
-
|
4801 |
-
|
4802 |
-
|
4803 |
-
|
4804 |
-
|
4805 |
-
|
4806 |
-
|
4807 |
-
|
4808 |
-
|
4809 |
-
|
4810 |
-
|
4811 |
-
|
4812 |
-
|
4813 |
-
|
4814 |
-
|
4815 |
-
|
4816 |
-
|
4817 |
-
|
4818 |
-
|
4819 |
-
|
4820 |
-
|
4821 |
-
|
4822 |
-
|
4823 |
-
|
4824 |
-
|
4825 |
-
|
4826 |
-
|
4827 |
-
|
4828 |
-
|
4829 |
-
|
4830 |
-
|
4831 |
-
|
4832 |
-
|
4833 |
-
|
4834 |
-
|
4835 |
-
|
4836 |
-
|
4837 |
-
|
4838 |
-
|
4839 |
-
|
4840 |
-
|
4841 |
-
|
4842 |
-
|
4843 |
-
|
4844 |
-
|
4845 |
-
|
4846 |
-
|
4847 |
-
|
4848 |
-
|
4849 |
-
|
4850 |
-
|
4851 |
-
|
4852 |
-
|
4853 |
-
#: includes/
|
4854 |
-
msgid "
|
4855 |
-
msgstr ""
|
4856 |
-
|
4857 |
-
#: includes/
|
4858 |
-
|
4859 |
-
|
4860 |
-
|
4861 |
-
|
4862 |
-
|
4863 |
-
|
4864 |
-
|
4865 |
-
|
4866 |
-
|
4867 |
-
|
4868 |
-
|
4869 |
-
|
4870 |
-
|
4871 |
-
|
4872 |
-
|
4873 |
-
|
4874 |
-
|
4875 |
-
|
4876 |
-
|
4877 |
-
|
4878 |
-
|
4879 |
-
|
4880 |
-
|
4881 |
-
|
4882 |
-
|
4883 |
-
|
4884 |
-
|
4885 |
-
|
4886 |
-
|
4887 |
-
|
4888 |
-
|
4889 |
-
|
4890 |
-
|
4891 |
-
|
4892 |
-
|
4893 |
-
|
4894 |
-
|
4895 |
-
|
4896 |
-
|
4897 |
-
|
4898 |
-
|
4899 |
-
|
4900 |
-
|
4901 |
-
|
4902 |
-
|
4903 |
-
|
4904 |
-
|
4905 |
-
|
4906 |
-
|
4907 |
-
|
4908 |
-
|
4909 |
-
|
4910 |
-
|
4911 |
-
|
4912 |
-
|
4913 |
-
|
4914 |
-
|
4915 |
-
|
4916 |
-
|
4917 |
-
|
4918 |
-
|
4919 |
-
|
4920 |
-
|
4921 |
-
|
4922 |
-
|
4923 |
-
|
4924 |
-
|
4925 |
-
|
4926 |
-
|
4927 |
-
|
4928 |
-
|
4929 |
-
|
4930 |
-
|
4931 |
-
|
4932 |
-
|
4933 |
-
|
4934 |
-
|
4935 |
-
|
4936 |
-
|
4937 |
-
|
4938 |
-
|
4939 |
-
|
4940 |
-
|
4941 |
-
|
4942 |
-
|
4943 |
-
|
4944 |
-
|
4945 |
-
|
4946 |
-
|
4947 |
-
|
4948 |
-
|
4949 |
-
|
4950 |
-
|
4951 |
-
|
4952 |
-
|
4953 |
-
|
4954 |
-
|
4955 |
-
|
4956 |
-
|
4957 |
-
|
4958 |
-
|
4959 |
-
|
4960 |
-
|
4961 |
-
|
4962 |
-
|
4963 |
-
|
4964 |
-
|
4965 |
-
|
4966 |
-
|
4967 |
-
|
4968 |
-
|
4969 |
-
|
4970 |
-
|
4971 |
-
|
4972 |
-
|
4973 |
-
|
4974 |
-
|
4975 |
-
|
4976 |
-
|
4977 |
-
|
4978 |
-
|
4979 |
-
|
4980 |
-
|
4981 |
-
|
4982 |
-
|
4983 |
-
|
4984 |
-
|
4985 |
-
|
4986 |
-
|
4987 |
-
|
4988 |
-
|
4989 |
-
|
4990 |
-
|
4991 |
-
|
4992 |
-
|
4993 |
-
|
4994 |
-
|
4995 |
-
|
4996 |
-
|
4997 |
-
|
4998 |
-
|
4999 |
-
|
5000 |
-
|
5001 |
-
|
5002 |
-
|
5003 |
-
|
5004 |
-
|
5005 |
-
|
5006 |
-
|
5007 |
-
|
5008 |
-
|
5009 |
-
|
5010 |
-
|
5011 |
-
|
5012 |
-
|
5013 |
-
|
5014 |
-
|
5015 |
-
|
5016 |
-
|
5017 |
-
|
5018 |
-
|
5019 |
-
|
5020 |
-
|
5021 |
-
|
5022 |
-
|
5023 |
-
|
5024 |
-
|
5025 |
-
|
5026 |
-
|
5027 |
-
|
5028 |
-
|
5029 |
-
|
5030 |
-
|
5031 |
-
|
5032 |
-
|
5033 |
-
|
5034 |
-
|
5035 |
-
|
5036 |
-
|
5037 |
-
|
5038 |
-
|
5039 |
-
|
5040 |
-
|
5041 |
-
|
5042 |
-
|
5043 |
-
|
5044 |
-
|
5045 |
-
|
5046 |
-
|
5047 |
-
|
5048 |
-
|
5049 |
-
|
5050 |
-
|
5051 |
-
|
5052 |
-
|
5053 |
-
|
5054 |
-
|
5055 |
-
|
5056 |
-
|
5057 |
-
|
5058 |
-
|
5059 |
-
|
5060 |
-
|
5061 |
-
|
5062 |
-
|
5063 |
-
|
5064 |
-
|
5065 |
-
|
5066 |
-
|
5067 |
-
|
5068 |
-
|
5069 |
-
|
5070 |
-
|
5071 |
-
|
5072 |
-
|
5073 |
-
|
5074 |
-
|
5075 |
-
|
5076 |
-
|
5077 |
-
|
5078 |
-
|
5079 |
-
|
5080 |
-
|
5081 |
-
|
5082 |
-
|
5083 |
-
|
5084 |
-
|
5085 |
-
|
5086 |
-
|
5087 |
-
|
5088 |
-
|
5089 |
-
|
5090 |
-
|
5091 |
-
|
5092 |
-
|
5093 |
-
|
5094 |
-
|
5095 |
-
|
5096 |
-
|
5097 |
-
|
5098 |
-
|
5099 |
-
|
5100 |
-
|
5101 |
-
|
5102 |
-
|
5103 |
-
|
5104 |
-
|
5105 |
-
|
5106 |
-
|
5107 |
-
|
5108 |
-
|
5109 |
-
|
5110 |
-
|
5111 |
-
|
5112 |
-
|
5113 |
-
|
5114 |
-
|
5115 |
-
|
5116 |
-
|
5117 |
-
|
5118 |
-
|
5119 |
-
|
5120 |
-
|
5121 |
-
|
5122 |
-
|
5123 |
-
|
5124 |
-
|
5125 |
-
|
5126 |
-
|
5127 |
-
|
5128 |
-
|
5129 |
-
|
5130 |
-
|
5131 |
-
|
5132 |
-
|
5133 |
-
|
5134 |
-
|
5135 |
-
|
5136 |
-
|
5137 |
-
|
5138 |
-
|
5139 |
-
|
5140 |
-
|
5141 |
-
|
5142 |
-
|
5143 |
-
|
5144 |
-
|
5145 |
-
|
5146 |
-
|
5147 |
-
|
5148 |
-
|
5149 |
-
|
5150 |
-
|
5151 |
-
|
5152 |
-
|
5153 |
-
|
5154 |
-
|
5155 |
-
|
5156 |
-
|
5157 |
-
|
5158 |
-
|
5159 |
-
|
5160 |
-
|
5161 |
-
|
5162 |
-
|
5163 |
-
|
5164 |
-
|
5165 |
-
|
5166 |
-
|
5167 |
-
|
5168 |
-
|
5169 |
-
|
5170 |
-
|
5171 |
-
|
5172 |
-
|
5173 |
-
|
5174 |
-
|
5175 |
-
|
5176 |
-
|
5177 |
-
|
5178 |
-
|
5179 |
-
|
5180 |
-
|
5181 |
-
|
5182 |
-
|
5183 |
-
|
5184 |
-
|
5185 |
-
|
5186 |
-
|
5187 |
-
|
5188 |
-
|
5189 |
-
#: includes/
|
5190 |
-
msgid "
|
5191 |
-
msgstr ""
|
5192 |
-
|
5193 |
-
#: includes/
|
5194 |
-
msgid "
|
5195 |
-
msgstr ""
|
5196 |
-
|
5197 |
-
#: includes/
|
5198 |
-
msgid "
|
5199 |
-
msgstr ""
|
5200 |
-
|
5201 |
-
#: includes/
|
5202 |
-
msgid "
|
5203 |
-
msgstr ""
|
5204 |
-
|
5205 |
-
#: includes/
|
5206 |
-
msgid "
|
5207 |
-
msgstr ""
|
5208 |
-
|
5209 |
-
#: includes/
|
5210 |
-
msgid "
|
5211 |
-
msgstr ""
|
5212 |
-
|
5213 |
-
#: includes/
|
5214 |
-
msgid "
|
5215 |
-
msgstr ""
|
5216 |
-
|
5217 |
-
#: includes/
|
5218 |
-
msgid "
|
5219 |
-
msgstr ""
|
5220 |
-
|
5221 |
-
#: includes/
|
5222 |
-
msgid "
|
5223 |
-
msgstr ""
|
5224 |
-
|
5225 |
-
#: includes/
|
5226 |
-
msgid "
|
5227 |
-
msgstr ""
|
5228 |
-
|
5229 |
-
#: includes/
|
5230 |
-
msgid "
|
5231 |
-
msgstr ""
|
5232 |
-
|
5233 |
-
#: includes/
|
5234 |
-
msgid "
|
5235 |
-
msgstr ""
|
5236 |
-
|
5237 |
-
#: includes/
|
5238 |
-
msgid "
|
5239 |
-
msgstr ""
|
5240 |
-
|
5241 |
-
#: includes/
|
5242 |
-
msgid "
|
5243 |
-
msgstr ""
|
5244 |
-
|
5245 |
-
#: includes/
|
5246 |
-
msgid "
|
5247 |
-
msgstr ""
|
5248 |
-
|
5249 |
-
#: includes/
|
5250 |
-
msgid "
|
5251 |
-
msgstr ""
|
5252 |
-
|
5253 |
-
#: includes/
|
5254 |
-
msgid "
|
5255 |
-
msgstr ""
|
5256 |
-
|
5257 |
-
#: includes/
|
5258 |
-
msgid "
|
5259 |
-
msgstr ""
|
5260 |
-
|
5261 |
-
#: includes/
|
5262 |
-
msgid "
|
5263 |
-
msgstr ""
|
5264 |
-
|
5265 |
-
#: includes/
|
5266 |
-
msgid "
|
5267 |
-
msgstr ""
|
5268 |
-
|
5269 |
-
#: includes/
|
5270 |
-
|
5271 |
-
|
5272 |
-
|
5273 |
-
|
5274 |
-
|
5275 |
-
|
5276 |
-
|
5277 |
-
|
5278 |
-
|
5279 |
-
|
5280 |
-
|
5281 |
-
|
5282 |
-
|
5283 |
-
|
5284 |
-
|
5285 |
-
|
5286 |
-
|
5287 |
-
|
5288 |
-
|
5289 |
-
|
5290 |
-
|
5291 |
-
|
5292 |
-
|
5293 |
-
|
5294 |
-
|
5295 |
-
|
5296 |
-
|
5297 |
-
|
5298 |
-
|
5299 |
-
|
5300 |
-
|
5301 |
-
|
5302 |
-
|
5303 |
-
|
5304 |
-
|
5305 |
-
|
5306 |
-
|
5307 |
-
|
5308 |
-
|
5309 |
-
|
5310 |
-
|
5311 |
-
|
5312 |
-
|
5313 |
-
|
5314 |
-
|
5315 |
-
|
5316 |
-
|
5317 |
-
|
5318 |
-
|
5319 |
-
|
5320 |
-
|
5321 |
-
|
5322 |
-
|
5323 |
-
|
5324 |
-
|
5325 |
-
#: includes/
|
5326 |
-
msgid "
|
5327 |
-
msgstr ""
|
5328 |
-
|
5329 |
-
#: includes/
|
5330 |
-
msgid "
|
5331 |
-
msgstr ""
|
5332 |
-
|
5333 |
-
#: includes/
|
5334 |
-
msgid "
|
5335 |
-
msgstr ""
|
5336 |
-
|
5337 |
-
#: includes/
|
5338 |
-
msgid "
|
5339 |
-
msgstr ""
|
5340 |
-
|
5341 |
-
#: includes/
|
5342 |
-
msgid "
|
5343 |
-
msgstr ""
|
5344 |
-
|
5345 |
-
#: includes/
|
5346 |
-
msgid "
|
5347 |
-
msgstr ""
|
5348 |
-
|
5349 |
-
#: includes/
|
5350 |
-
msgid "
|
5351 |
-
msgstr ""
|
5352 |
-
|
5353 |
-
#: includes/
|
5354 |
-
msgid "
|
5355 |
-
msgstr ""
|
5356 |
-
|
5357 |
-
#: includes/
|
5358 |
-
msgid "
|
5359 |
-
msgstr ""
|
5360 |
-
|
5361 |
-
#: includes/
|
5362 |
-
msgid "
|
5363 |
-
msgstr ""
|
5364 |
-
|
5365 |
-
#: includes/
|
5366 |
-
msgid ""
|
5367 |
-
|
5368 |
-
|
5369 |
-
|
5370 |
-
|
5371 |
-
|
5372 |
-
|
5373 |
-
|
5374 |
-
|
5375 |
-
|
5376 |
-
|
5377 |
-
|
5378 |
-
"
|
5379 |
-
msgstr ""
|
5380 |
-
|
5381 |
-
#: includes/
|
5382 |
-
msgid "
|
5383 |
-
msgstr ""
|
5384 |
-
|
5385 |
-
#: includes/
|
5386 |
-
msgid "
|
5387 |
-
msgstr ""
|
5388 |
-
|
5389 |
-
#: includes/
|
5390 |
-
msgid "
|
5391 |
-
msgstr ""
|
5392 |
-
|
5393 |
-
#: includes/
|
5394 |
-
msgid "
|
5395 |
-
msgstr ""
|
5396 |
-
|
5397 |
-
#: includes/
|
5398 |
-
msgid "
|
5399 |
-
msgstr ""
|
5400 |
-
|
5401 |
-
#: includes/
|
5402 |
-
msgid "
|
5403 |
-
msgstr ""
|
5404 |
-
|
5405 |
-
#: includes/
|
5406 |
-
msgid ""
|
5407 |
-
|
5408 |
-
|
5409 |
-
|
5410 |
-
|
5411 |
-
|
5412 |
-
|
5413 |
-
|
5414 |
-
|
5415 |
-
|
5416 |
-
|
5417 |
-
|
5418 |
-
|
5419 |
-
|
5420 |
-
|
5421 |
-
|
5422 |
-
|
5423 |
-
|
5424 |
-
|
5425 |
-
|
5426 |
-
|
5427 |
-
|
5428 |
-
|
5429 |
-
|
5430 |
-
|
5431 |
-
|
5432 |
-
|
5433 |
-
|
5434 |
-
|
5435 |
-
|
5436 |
-
|
5437 |
-
|
5438 |
-
|
5439 |
-
|
5440 |
-
|
5441 |
-
|
5442 |
-
|
5443 |
-
|
5444 |
-
|
5445 |
-
|
5446 |
-
|
5447 |
-
|
5448 |
-
|
5449 |
-
|
5450 |
-
|
5451 |
-
|
5452 |
-
|
5453 |
-
|
5454 |
-
|
5455 |
-
|
5456 |
-
|
5457 |
-
|
5458 |
-
|
5459 |
-
|
5460 |
-
|
5461 |
-
|
5462 |
-
"
|
5463 |
-
msgstr ""
|
5464 |
-
|
5465 |
-
#: includes/
|
5466 |
-
msgid "
|
5467 |
-
msgstr ""
|
5468 |
-
|
5469 |
-
#: includes/
|
5470 |
-
msgid "
|
5471 |
-
msgstr ""
|
5472 |
-
|
5473 |
-
#: includes/
|
5474 |
-
msgid "
|
5475 |
-
msgstr ""
|
5476 |
-
|
5477 |
-
#: includes/
|
5478 |
-
msgid "
|
5479 |
-
msgstr ""
|
5480 |
-
|
5481 |
-
#: includes/
|
5482 |
-
msgid "
|
5483 |
-
msgstr ""
|
5484 |
-
|
5485 |
-
#: includes/
|
5486 |
-
msgid "
|
5487 |
-
msgstr ""
|
5488 |
-
|
5489 |
-
#: includes/
|
5490 |
-
msgid "
|
5491 |
-
msgstr ""
|
5492 |
-
|
5493 |
-
#: includes/
|
5494 |
-
msgid "
|
5495 |
-
msgstr ""
|
5496 |
-
|
5497 |
-
#: includes/
|
5498 |
-
msgid "
|
5499 |
-
msgstr ""
|
5500 |
-
|
5501 |
-
#: includes/
|
5502 |
-
msgid ""
|
5503 |
-
|
5504 |
-
|
5505 |
-
|
5506 |
-
|
5507 |
-
|
5508 |
-
|
5509 |
-
|
5510 |
-
|
5511 |
-
|
5512 |
-
|
5513 |
-
|
5514 |
-
|
5515 |
-
|
5516 |
-
|
5517 |
-
|
5518 |
-
|
5519 |
-
|
5520 |
-
|
5521 |
-
|
5522 |
-
|
5523 |
-
|
5524 |
-
|
5525 |
-
|
5526 |
-
"
|
5527 |
-
msgstr ""
|
5528 |
-
|
5529 |
-
#: includes/
|
5530 |
-
msgid "
|
5531 |
-
msgstr ""
|
5532 |
-
|
5533 |
-
#: includes/
|
5534 |
-
msgid "
|
5535 |
-
msgstr ""
|
5536 |
-
|
5537 |
-
#: includes/
|
5538 |
-
msgid ""
|
5539 |
-
|
5540 |
-
|
5541 |
-
|
5542 |
-
|
5543 |
-
|
5544 |
-
|
5545 |
-
|
5546 |
-
|
5547 |
-
|
5548 |
-
|
5549 |
-
|
5550 |
-
|
5551 |
-
|
5552 |
-
|
5553 |
-
|
5554 |
-
|
5555 |
-
|
5556 |
-
|
5557 |
-
|
5558 |
-
|
5559 |
-
|
5560 |
-
|
5561 |
-
|
5562 |
-
|
5563 |
-
|
5564 |
-
|
5565 |
-
|
5566 |
-
|
5567 |
-
|
5568 |
-
|
5569 |
-
|
5570 |
-
|
5571 |
-
|
5572 |
-
|
5573 |
-
|
5574 |
-
|
5575 |
-
|
5576 |
-
|
5577 |
-
|
5578 |
-
|
5579 |
-
|
5580 |
-
|
5581 |
-
|
5582 |
-
|
5583 |
-
|
5584 |
-
|
5585 |
-
|
5586 |
-
|
5587 |
-
|
5588 |
-
|
5589 |
-
|
5590 |
-
|
5591 |
-
|
5592 |
-
|
5593 |
-
|
5594 |
-
|
5595 |
-
|
5596 |
-
|
5597 |
-
|
5598 |
-
|
5599 |
-
|
5600 |
-
|
5601 |
-
|
5602 |
-
|
5603 |
-
|
5604 |
-
|
5605 |
-
|
5606 |
-
|
5607 |
-
|
5608 |
-
|
5609 |
-
|
5610 |
-
|
5611 |
-
|
5612 |
-
|
5613 |
-
|
5614 |
-
|
5615 |
-
|
5616 |
-
|
5617 |
-
|
5618 |
-
|
5619 |
-
|
5620 |
-
|
5621 |
-
|
5622 |
-
|
5623 |
-
|
5624 |
-
|
5625 |
-
|
5626 |
-
|
5627 |
-
|
5628 |
-
|
5629 |
-
|
5630 |
-
|
5631 |
-
|
5632 |
-
|
5633 |
-
|
5634 |
-
|
5635 |
-
|
5636 |
-
|
5637 |
-
|
5638 |
-
|
5639 |
-
|
5640 |
-
|
5641 |
-
|
5642 |
-
|
5643 |
-
|
5644 |
-
|
5645 |
-
|
5646 |
-
|
5647 |
-
|
5648 |
-
|
5649 |
-
|
5650 |
-
|
5651 |
-
|
5652 |
-
|
5653 |
-
|
5654 |
-
|
5655 |
-
|
5656 |
-
#: includes/
|
5657 |
-
|
5658 |
-
|
5659 |
-
|
5660 |
-
|
5661 |
-
|
5662 |
-
|
5663 |
-
|
5664 |
-
|
5665 |
-
|
5666 |
-
|
5667 |
-
|
5668 |
-
|
5669 |
-
|
5670 |
-
|
5671 |
-
|
5672 |
-
|
5673 |
-
|
5674 |
-
|
5675 |
-
|
5676 |
-
|
5677 |
-
|
5678 |
-
|
5679 |
-
|
5680 |
-
|
5681 |
-
|
5682 |
-
|
5683 |
-
|
5684 |
-
|
5685 |
-
|
5686 |
-
|
5687 |
-
|
5688 |
-
|
5689 |
-
|
5690 |
-
|
5691 |
-
|
5692 |
-
|
5693 |
-
|
5694 |
-
|
5695 |
-
|
5696 |
-
|
5697 |
-
|
5698 |
-
|
5699 |
-
|
5700 |
-
|
5701 |
-
|
5702 |
-
|
5703 |
-
|
5704 |
-
|
5705 |
-
|
5706 |
-
|
5707 |
-
|
5708 |
-
|
5709 |
-
|
5710 |
-
|
5711 |
-
|
5712 |
-
|
5713 |
-
|
5714 |
-
|
5715 |
-
|
5716 |
-
|
5717 |
-
|
5718 |
-
|
5719 |
-
|
5720 |
-
|
5721 |
-
|
5722 |
-
|
5723 |
-
|
5724 |
-
|
5725 |
-
|
5726 |
-
|
5727 |
-
|
5728 |
-
|
5729 |
-
|
5730 |
-
|
5731 |
-
|
5732 |
-
|
5733 |
-
|
5734 |
-
|
5735 |
-
|
5736 |
-
|
5737 |
-
|
5738 |
-
|
5739 |
-
|
5740 |
-
|
5741 |
-
|
5742 |
-
|
5743 |
-
|
5744 |
-
|
5745 |
-
|
5746 |
-
|
5747 |
-
|
5748 |
-
|
5749 |
-
|
5750 |
-
|
5751 |
-
|
5752 |
-
|
5753 |
-
|
5754 |
-
|
5755 |
-
|
5756 |
-
|
5757 |
-
|
5758 |
-
|
5759 |
-
|
5760 |
-
|
5761 |
-
|
5762 |
-
|
5763 |
-
|
5764 |
-
|
5765 |
-
|
5766 |
-
|
5767 |
-
|
5768 |
-
|
5769 |
-
|
5770 |
-
|
5771 |
-
|
5772 |
-
|
5773 |
-
|
5774 |
-
|
5775 |
-
|
5776 |
-
|
5777 |
-
|
5778 |
-
|
5779 |
-
|
5780 |
-
|
5781 |
-
|
5782 |
-
|
5783 |
-
|
5784 |
-
|
5785 |
-
|
5786 |
-
|
5787 |
-
|
5788 |
-
|
5789 |
-
|
5790 |
-
|
5791 |
-
|
5792 |
-
|
5793 |
-
|
5794 |
-
|
5795 |
-
|
5796 |
-
|
5797 |
-
|
5798 |
-
|
5799 |
-
|
5800 |
-
|
5801 |
-
|
5802 |
-
|
5803 |
-
|
5804 |
-
|
5805 |
-
|
5806 |
-
|
5807 |
-
|
5808 |
-
|
5809 |
-
|
5810 |
-
|
5811 |
-
|
5812 |
-
|
5813 |
-
|
5814 |
-
|
5815 |
-
|
5816 |
-
|
5817 |
-
|
5818 |
-
|
5819 |
-
|
5820 |
-
|
5821 |
-
|
5822 |
-
|
5823 |
-
|
5824 |
-
|
5825 |
-
|
5826 |
-
|
5827 |
-
|
5828 |
-
|
5829 |
-
|
5830 |
-
|
5831 |
-
|
5832 |
-
|
5833 |
-
|
5834 |
-
|
5835 |
-
|
5836 |
-
|
5837 |
-
|
5838 |
-
|
5839 |
-
|
5840 |
-
|
5841 |
-
|
5842 |
-
|
5843 |
-
|
5844 |
-
|
5845 |
-
|
5846 |
-
|
5847 |
-
|
5848 |
-
|
5849 |
-
|
5850 |
-
|
5851 |
-
|
5852 |
-
|
5853 |
-
|
5854 |
-
|
5855 |
-
|
5856 |
-
|
5857 |
-
|
5858 |
-
|
5859 |
-
|
5860 |
-
|
5861 |
-
|
5862 |
-
|
5863 |
-
|
5864 |
-
|
5865 |
-
|
5866 |
-
|
5867 |
-
|
5868 |
-
|
5869 |
-
|
5870 |
-
|
5871 |
-
|
5872 |
-
|
5873 |
-
|
5874 |
-
|
5875 |
-
|
5876 |
-
|
5877 |
-
|
5878 |
-
|
5879 |
-
|
5880 |
-
|
5881 |
-
|
5882 |
-
|
5883 |
-
|
5884 |
-
|
5885 |
-
|
5886 |
-
|
5887 |
-
|
5888 |
-
|
5889 |
-
|
5890 |
-
|
5891 |
-
|
5892 |
-
|
5893 |
-
|
5894 |
-
|
5895 |
-
|
5896 |
-
|
5897 |
-
|
5898 |
-
|
5899 |
-
|
5900 |
-
|
5901 |
-
|
5902 |
-
|
5903 |
-
|
5904 |
-
|
5905 |
-
|
5906 |
-
|
5907 |
-
|
5908 |
-
|
5909 |
-
|
5910 |
-
|
5911 |
-
|
5912 |
-
|
5913 |
-
|
5914 |
-
|
5915 |
-
|
5916 |
-
|
5917 |
-
|
5918 |
-
|
5919 |
-
|
5920 |
-
|
5921 |
-
|
5922 |
-
|
5923 |
-
|
5924 |
-
|
5925 |
-
|
5926 |
-
|
5927 |
-
|
5928 |
-
|
5929 |
-
|
5930 |
-
|
5931 |
-
|
5932 |
-
|
5933 |
-
|
5934 |
-
|
5935 |
-
|
5936 |
-
|
5937 |
-
|
5938 |
-
|
5939 |
-
|
5940 |
-
|
5941 |
-
|
5942 |
-
|
5943 |
-
|
5944 |
-
|
5945 |
-
|
5946 |
-
|
5947 |
-
|
5948 |
-
|
5949 |
-
|
5950 |
-
|
5951 |
-
|
5952 |
-
|
5953 |
-
|
5954 |
-
|
5955 |
-
|
5956 |
-
|
5957 |
-
|
5958 |
-
|
5959 |
-
|
5960 |
-
|
5961 |
-
|
5962 |
-
|
5963 |
-
|
5964 |
-
|
5965 |
-
|
5966 |
-
|
5967 |
-
|
5968 |
-
|
5969 |
-
|
5970 |
-
|
5971 |
-
|
5972 |
-
|
5973 |
-
|
5974 |
-
|
5975 |
-
|
5976 |
-
|
5977 |
-
|
5978 |
-
|
5979 |
-
|
5980 |
-
|
5981 |
-
|
5982 |
-
|
5983 |
-
|
5984 |
-
|
5985 |
-
|
5986 |
-
|
5987 |
-
|
5988 |
-
|
5989 |
-
|
5990 |
-
|
5991 |
-
|
5992 |
-
|
5993 |
-
|
5994 |
-
|
5995 |
-
|
5996 |
-
|
5997 |
-
|
5998 |
-
|
5999 |
-
|
6000 |
-
|
6001 |
-
|
6002 |
-
|
6003 |
-
|
6004 |
-
|
6005 |
-
|
6006 |
-
|
6007 |
-
|
6008 |
-
|
6009 |
-
|
6010 |
-
|
6011 |
-
|
6012 |
-
|
6013 |
-
|
6014 |
-
|
6015 |
-
|
6016 |
-
|
6017 |
-
|
6018 |
-
|
6019 |
-
|
6020 |
-
|
6021 |
-
|
6022 |
-
|
6023 |
-
|
6024 |
-
|
6025 |
-
|
6026 |
-
|
6027 |
-
|
6028 |
-
|
6029 |
-
|
6030 |
-
|
6031 |
-
|
6032 |
-
|
6033 |
-
|
6034 |
-
|
6035 |
-
|
6036 |
-
|
6037 |
-
|
6038 |
-
|
6039 |
-
|
6040 |
-
|
6041 |
-
|
6042 |
-
|
6043 |
-
|
6044 |
-
|
6045 |
-
|
6046 |
-
|
6047 |
-
|
6048 |
-
|
6049 |
-
|
6050 |
-
|
6051 |
-
|
6052 |
-
|
6053 |
-
|
6054 |
-
|
6055 |
-
|
6056 |
-
|
6057 |
-
|
6058 |
-
|
6059 |
-
|
6060 |
-
|
6061 |
-
|
6062 |
-
|
6063 |
-
|
6064 |
-
|
6065 |
-
|
6066 |
-
"
|
6067 |
-
|
6068 |
-
|
6069 |
-
|
6070 |
-
|
6071 |
-
|
6072 |
-
|
6073 |
-
|
6074 |
-
|
6075 |
-
|
6076 |
-
|
6077 |
-
|
6078 |
-
|
6079 |
-
|
6080 |
-
|
6081 |
-
|
6082 |
-
|
6083 |
-
|
6084 |
-
|
6085 |
-
|
6086 |
-
|
6087 |
-
|
6088 |
-
|
6089 |
-
|
6090 |
-
|
6091 |
-
|
6092 |
-
|
6093 |
-
|
6094 |
-
|
6095 |
-
|
6096 |
-
|
6097 |
-
|
6098 |
-
|
6099 |
-
|
6100 |
-
|
6101 |
-
|
6102 |
-
|
6103 |
-
|
6104 |
-
|
6105 |
-
|
6106 |
-
|
6107 |
-
|
6108 |
-
|
6109 |
-
|
6110 |
-
|
6111 |
-
|
6112 |
-
|
6113 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 "Å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Ç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é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ão Tomé and Prí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…"
|
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
|
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.
|
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.
|
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
|
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 |
-
* *
|
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.
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
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.
|
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.
|
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’ 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’ huh?', 'woocommerce' ), '3.9.1' );
|
69 |
-
}
|
70 |
|
71 |
/**
|
72 |
* WC_Jetpack Constructor.
|
73 |
*
|
74 |
-
* @version 2.
|
75 |
* @access public
|
76 |
*/
|
77 |
public function __construct() {
|
78 |
|
79 |
-
|
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 |
-
|
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 ( !
|
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">★★★★★</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.
|
274 |
*/
|
275 |
public function jetpack_menu() {
|
276 |
-
add_submenu_page(
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
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.
|
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.
|
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.
|
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 (
|
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’ 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’ 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">★★★★★</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 |
}
|