Version Description
- 12/04/2017 =
- Dev - WooCommerce v3.x.x compatibility -
wcj_get_order_item_meta_info()
-get_meta_data()
instead ofhas_meta()
. - Dev - WooCommerce v3.x.x compatibility - Shortcodes - Orders -
[wcj_order_items_table]
-wcj_get_order_currency()
.get_short_description()
.wcj_get_order_item_meta_info()
. - Dev - WooCommerce v3.x.x compatibility - Shortcodes - Orders -
get_customer_id()
.wcj_get_order_currency()
.wcj_get_order_id()
.get_customer_note()
.get_billing_phone()
.wc_get_order_item_meta()
. - Dev - WooCommerce v3.x.x compatibility - Shortcodes - Orders -
[wcj_order_date]
and[wcj_order_time]
-get_date_created()
. - Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products Crowdfunding -
wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products -
wc_get_price_including_tax()
.wc_get_price_excluding_tax()
.wc_display_product_attributes()
.wc_get_product_tag_list()
.get_short_description()
.get_gallery_image_ids()
. - Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products -
[wcj_product_image_url]
-wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products -
[wcj_product_categories_urls]
-wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products -
[wcj_product_categories_names]
-wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products -
[wcj_product_total_sales]
-wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products -
[wcj_product_wholesale_price_table]
-get_price
filters replaced. Get parent product ID replaced withget_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products -
[wcj_product_categories]
-wc_get_product_category_list()
. - Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Currency for External Products -
product_type
property replaced withis_type()
function. - Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Currency per Product -
WCJ_PRODUCT_GET_PRICE_FILTER
. - Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Global Discount -
get_price
filters replaced.wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Multicurrency (Currency Switcher) -
get_price
filters replaced. Get product ID replaced withget_id()
.wc_get_formatted_variation()
used. - Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Multicurrency Product Base Price -
get_price
filters replaced. Get parent product ID replaced withget_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Price by User Role -
get_price
filters replaced. Get product ID replaced withget_id()
.wc_get_formatted_variation()
used. Get parent product ID replaced withget_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Prices and Currencies by Country -
get_price
filters;wcj_get_product_id()
.woocommerce_clean()
. - Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) -
WCJ_PRODUCT_GET_PRICE_FILTER
.wcj_get_product_id_or_variation_parent_id()
.wcj_get_product_status()
. - Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Product Price by Formula -
get_price
filters;wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Wholesale Price -
get_price
filters replaced. Get parent product ID replaced withget_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - BUTTON & PRICE LABELS - Add to Cart Labels -
wcj_get_product_id_or_variation_parent_id()
;product_type
->get_type()
. - Dev - WooCommerce v3.x.x compatibility - BUTTON & PRICE LABELS - Call for Price -
woocommerce_get_price
->woocommerce_product_get_price
. - Dev - WooCommerce v3.x.x compatibility - BUTTON & PRICE LABELS - Custom Price Labels -
wcj_get_product_id_or_variation_parent_id()
;wcj_get_product_id()
;product_type
->get_type()
.woocommerce_price_html
filter changed. - Dev - WooCommerce v3.x.x compatibility - BUTTON & PRICE LABELS - Free Price Labels -
wcj_get_product_id_or_variation_parent_id()
; "free price" filters; - Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Bookings -
WCJ_PRODUCT_GET_PRICE_FILTER
;wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Crowdfunding -
wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Add to Cart -
wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Addons -
WCJ_PRODUCT_GET_PRICE_FILTER
.wcj_get_product_id_or_variation_parent_id()
.wcj_get_product_display_price()
. - Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Cost Price -
get_prices_include_tax()
.wcj_get_product_formatted_variation()
.wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Images -
wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Input Fields -
wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Listings - "Hide Empty" option for "Shop Page Display Options" and "Category Display Options" (removed from
woocommerce_product_subcategories_args
hook). - Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Tabs -
wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Visibility by User Role -
wcj_get_product_id_or_variation_parent_id()
. - Dev - WooCommerce v3.x.x compatibility - PRODUCTS - SKU -
get_child()
. - Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Sorting -
woocommerce_clean()
. - Dev - WooCommerce v3.x.x compatibility - CART & CHECKOUT - Checkout Custom Fields -
wcj_get_order_id()
. - Dev - WooCommerce v3.x.x compatibility - CART & CHECKOUT - Checkout Files Upload -
wcj_get_order_id()
. - Dev - WooCommerce v3.x.x compatibility - CART & CHECKOUT - EU VAT Number -
get_customer_ip_address()
.wcj_get_order_id()
. - Dev - WooCommerce v3.x.x compatibility - PAYMENT GATEWAYS - Gateways by Country or State -
get_country()
andget_state()
. - Dev - WooCommerce v3.x.x compatibility - PAYMENT GATEWAYS - Gateways Currency -
WCJ_PRODUCT_GET_PRICE_FILTER
. - Dev - WooCommerce v3.x.x compatibility - SHIPPING & ORDERS - Order Custom Statuses -
wcj_get_order_id()
. - Dev - WooCommerce v3.x.x compatibility - SHIPPING & ORDERS - Order Numbers -
wcj_get_order_id()
;get_date_created()
. - Dev - WooCommerce v3.x.x compatibility - SHIPPING & ORDERS - Orders -
wcj_get_order_id()
;woocommerce_order_get_currency
;wcj_get_order_currency()
;get_billing_country()
. - Dev - WooCommerce v3.x.x compatibility - PDF INVOICING & PACKING SLIPS -
get_billing_country()
. - Dev - WooCommerce v3.x.x compatibility - PDF INVOICING & PACKING SLIPS - Display & Misc. -
wcj_get_order_id()
. - Dev - WooCommerce v3.x.x compatibility - PDF INVOICING & PACKING SLIPS - Emails -
wcj_get_order_id()
. - Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Admin Tools - Order Meta - Additional check "if
$item_meta_value
is array" added. - Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Export - Export Customers from Orders - Functions instead of accessing order properties directly.
- Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Export - Export Orders - Functions instead of accessing order properties directly.
wcj_get_order_currency()
. - Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Export - Export Products - Functions instead of accessing order properties directly.
wcj_get_product_total_stock()
.wc_get_price_to_display()
and more. - Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - General - Products Attributes -
wc_get_product_category_list()
. - Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Reports - Custom Ranges -
wp_create_nonce
added. - Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Reports - Orders - Monthly Sales -
wcj_get_order_currency()
. - Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Reports - Stock -
wcj_get_product_total_stock()
.wc_get_product_category_list()
. - Dev - Code refactoring -
wcj-price-currency-functions.php
andwcj-user-roles-functions.php
added. - Dev - Mini-dashboards added to modules categories (instead of displaying the default category module). Modules categories descriptions added.
- Dev - Shortcodes -
on_empty
attribute added to all shortcodes. - Dev - Shortcodes -
wcj_shortcode_result
filter added to all shortcodes. - Dev - Shortcodes - Products -
[wcj_product_gallery_image_url]
shortcode added. - Dev - Shortcodes - General -
[wcj_cart_items_total_quantity]
shortcode added. - Dev - Shortcodes - Orders -
[wcj_order_status_label]
shortcode added. - Dev - Shortcodes - Orders -
[wcj_order_items_table]
-wcj_pdf_invoicing_cell_data
filter added. - Dev - BUTTON & PRICE LABELS - Custom Price Labels - "Migrate from Custom Price Labels (Pro)" tool removed.
- Dev - BUTTON & PRICE LABELS - Custom Price Labels - Global Custom Price Labels -
textarea
replaced withcustom_textarea
. - Dev - BUTTON & PRICE LABELS - Custom Price Labels - Global Custom Price Labels - "Instead of the price" option added.
- Dev - BUTTON & PRICE LABELS - More Button Labels - Hook priority changed. Default value for
get_option()
added. - Dev - PRICES & CURRENCIES - Currency Exchange Rates - "Always Use cURL" option added.
- Dev - PRICES & CURRENCIES - Currency Exchange Rates - "Calculate with Inversion" option added.
- Dev - PRICES & CURRENCIES - Currency Exchange Rates - Code refactoring. Exchange rates functions moved to separate file. JS "Grab rate" button now works even if module is disabled.
- Dev - PRICES & CURRENCIES - Currency per Product - "Cart and Checkout Behaviour Options" settings section added.
- Dev - PRICES & CURRENCIES - Currency per Product - "WooCommerce Bookings" plugin support added.
- Fix - PRICES & CURRENCIES - Multicurrency Product Base Price - Empty sale price issue fixed.
- Fix - PRICES & CURRENCIES - Price by User Role -
woocommerce_variation_prices_regular_price
hook. - Fix - PRICES & CURRENCIES - Prices and Currencies by Country -
wcj_price_by_country()
- Additional check `0 !
Download this release
Release Info
Developer | algoritmika |
Plugin | Booster for WooCommerce |
Version | 2.7.0 |
Comparing to | |
See all releases |
Code changes from version 2.6.0 to 2.7.0
- includes/add-to-cart/class-wcj-add-to-cart-per-product-type.php +5 -3
- includes/add-to-cart/class-wcj-add-to-cart-per-product.php +4 -2
- includes/admin/class-wc-settings-jetpack.php +67 -23
- includes/admin/wcj-modules-cats.php +16 -12
- includes/class-wcj-address-formats.php +50 -55
- includes/class-wcj-admin-tools.php +9 -5
- includes/class-wcj-call-for-price.php +18 -17
- includes/class-wcj-cart-customization.php +94 -0
- includes/class-wcj-checkout-core-fields.php +1 -1
- includes/class-wcj-checkout-custom-fields.php +6 -6
- includes/class-wcj-checkout-custom-info.php +21 -20
- includes/class-wcj-checkout-customization.php +103 -0
- includes/class-wcj-checkout-files-upload.php +6 -6
- includes/class-wcj-crowdfunding.php +28 -23
- includes/class-wcj-currency-exchange-rates.php +91 -72
- includes/class-wcj-currency-external-products.php +12 -12
- includes/class-wcj-currency-per-product.php +237 -65
- includes/class-wcj-custom-css.php +103 -0
- includes/class-wcj-emails.php +48 -3
- includes/class-wcj-empty-cart-button.php +2 -2
- includes/class-wcj-eu-vat-number.php +9 -9
- includes/class-wcj-free-price.php +78 -37
- includes/class-wcj-general.php +38 -97
- includes/class-wcj-global-discount.php +23 -13
- includes/class-wcj-left-to-free-shipping.php +1 -23
- includes/class-wcj-mini-cart.php +5 -5
- includes/class-wcj-more-button-labels.php +9 -7
- includes/class-wcj-multicurrency-product-base-price.php +15 -51
- includes/class-wcj-multicurrency.php +35 -47
- includes/class-wcj-old-slugs.php +7 -4
- includes/class-wcj-order-custom-statuses.php +12 -12
- includes/class-wcj-order-min-amount.php +13 -33
- includes/class-wcj-order-numbers.php +35 -22
- includes/class-wcj-orders.php +19 -36
- includes/class-wcj-payment-gateways-by-country.php +74 -84
- includes/class-wcj-payment-gateways-by-shipping.php +206 -0
- includes/class-wcj-payment-gateways-by-user-role.php +43 -59
- includes/class-wcj-payment-gateways-currency.php +16 -31
- includes/class-wcj-payment-gateways-fees.php +53 -75
- includes/class-wcj-payment-gateways-min-max.php +39 -50
- includes/class-wcj-payment-gateways-per-category.php +92 -88
- includes/class-wcj-pdf-invoicing.php +45 -48
- includes/class-wcj-price-by-country.php +15 -3
- includes/class-wcj-price-by-user-role.php +24 -70
- includes/class-wcj-price-formats.php +1 -22
- includes/class-wcj-price-labels.php +48 -155
- includes/class-wcj-product-add-to-cart.php +14 -7
- includes/class-wcj-product-addons.php +18 -17
- includes/class-wcj-product-bookings.php +13 -13
- includes/class-wcj-product-bulk-price-converter.php +1 -0
- includes/class-wcj-product-by-user-role.php +13 -24
- includes/class-wcj-product-by-user.php +1 -1
- includes/class-wcj-product-custom-info.php +2 -18
- includes/class-wcj-product-images.php +6 -4
- includes/class-wcj-product-info.php +5 -5
- includes/class-wcj-product-input-fields.php +3 -3
- includes/class-wcj-product-listings.php +56 -52
- includes/class-wcj-product-open-pricing.php +16 -13
- includes/class-wcj-product-price-by-formula.php +23 -35
- includes/class-wcj-product-tabs.php +10 -8
- includes/class-wcj-products-per-page.php +5 -25
- includes/class-wcj-products-xml.php +2 -2
- includes/class-wcj-purchase-data.php +8 -7
- includes/class-wcj-related-products.php +1 -1
- includes/class-wcj-reports.php +90 -82
- includes/class-wcj-shipping-calculator.php +4 -4
- includes/class-wcj-shipping.php +2 -23
- includes/class-wcj-sku.php +45 -27
- includes/class-wcj-sorting.php +6 -3
- includes/class-wcj-wholesale-price.php +14 -33
- includes/class-wcj-wpml.php +3 -2
- includes/classes/class-wcj-module.php +14 -4
- includes/classes/class-wcj-pdf-invoice.php +105 -3
- includes/constants/wcj-constants.php +37 -0
- includes/exchange-rates/class-wcj-exchange-rates-crons.php +4 -173
- includes/exchange-rates/class-wcj-exchange-rates.php +3 -1
- includes/export/class-wcj-exporter-customers.php +17 -16
- includes/export/class-wcj-exporter-orders.php +25 -25
- includes/export/class-wcj-exporter-products.php +23 -23
- includes/export/class-wcj-fields-helper.php +3 -2
- includes/functions/wcj-exchange-rates-functions.php +199 -0
- includes/functions/wcj-functions.php +133 -519
- includes/functions/wcj-invoicing-functions.php +47 -36
- includes/functions/wcj-price-currency-functions.php +447 -0
- includes/functions/wcj-user-roles-functions.php +112 -0
- includes/input-fields/class-wcj-product-input-fields-abstract.php +79 -133
- includes/input-fields/class-wcj-product-input-fields-global.php +2 -40
- includes/js/eu-vat-number.js +15 -12
- includes/js/wcj-bookings.js +9 -6
- includes/js/wcj-product-addons.js +5 -3
- includes/js/wcj-timepicker.js +9 -1
- includes/lib/tcpdf_min/config/tcpdf_config.php +9 -0
- includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php +3 -3
- includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php +9 -9
- includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php +4 -2
- includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php +13 -3
- includes/price-by-country/class-wcj-price-by-country-core.php +31 -39
- includes/price-by-country/class-wcj-price-by-country-local.php +17 -19
- includes/reports/wcj-class-reports-monthly-sales.php +8 -8
- includes/reports/wcj-class-reports-sales.php +4 -4
- includes/reports/wcj-class-reports-stock.php +4 -4
- includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php +2 -2
- includes/shipping/class-wc-shipping-wcj-custom.php +2 -2
- includes/shortcodes/class-wcj-general-shortcodes.php +18 -2
- includes/shortcodes/class-wcj-invoices-shortcodes.php +44 -4
- includes/shortcodes/class-wcj-order-items-shortcodes.php +63 -51
- includes/shortcodes/class-wcj-orders-shortcodes.php +70 -40
- includes/shortcodes/class-wcj-products-crowdfunding-shortcodes.php +22 -22
- includes/shortcodes/class-wcj-products-shortcodes.php +71 -41
- includes/shortcodes/class-wcj-shortcodes.php +5 -4
- includes/templates/wcj-add-to-cart-variable.php +2 -2
- langs/woocommerce-jetpack.pot +3369 -2350
- readme.txt +155 -8
- woocommerce-jetpack.php +18 -8
includes/add-to-cart/class-wcj-add-to-cart-per-product-type.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Add to Cart per Product Type class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -28,6 +28,8 @@ class WCJ_Add_To_Cart_Per_Product_Type {
|
|
28 |
|
29 |
/**
|
30 |
* custom_add_to_cart_button_text.
|
|
|
|
|
31 |
*/
|
32 |
public function custom_add_to_cart_button_text( $add_to_cart_text ) {
|
33 |
|
@@ -36,7 +38,7 @@ class WCJ_Add_To_Cart_Per_Product_Type {
|
|
36 |
if ( ! $product )
|
37 |
return $add_to_cart_text;
|
38 |
|
39 |
-
$product_type = $product->product_type;
|
40 |
|
41 |
if ( ! in_array( $product_type, array( 'external', 'grouped', 'simple', 'variable' ) ) )
|
42 |
$product_type = 'other';
|
@@ -51,7 +53,7 @@ class WCJ_Add_To_Cart_Per_Product_Type {
|
|
51 |
if ( '' != get_option( 'wcj_add_to_cart_text_on_' . $single_or_archive . '_in_cart_' . $product_type, '' ) ) {
|
52 |
foreach( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
|
53 |
$_product = $values['data'];
|
54 |
-
if( get_the_ID() == $_product
|
55 |
return get_option( 'wcj_add_to_cart_text_on_' . $single_or_archive . '_in_cart_' . $product_type );
|
56 |
}
|
57 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Add to Cart per Product Type class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
28 |
|
29 |
/**
|
30 |
* custom_add_to_cart_button_text.
|
31 |
+
*
|
32 |
+
* @version 2.7.0
|
33 |
*/
|
34 |
public function custom_add_to_cart_button_text( $add_to_cart_text ) {
|
35 |
|
38 |
if ( ! $product )
|
39 |
return $add_to_cart_text;
|
40 |
|
41 |
+
$product_type = ( WCJ_IS_WC_VERSION_BELOW_3 ? $product->product_type : $product->get_type() );
|
42 |
|
43 |
if ( ! in_array( $product_type, array( 'external', 'grouped', 'simple', 'variable' ) ) )
|
44 |
$product_type = 'other';
|
53 |
if ( '' != get_option( 'wcj_add_to_cart_text_on_' . $single_or_archive . '_in_cart_' . $product_type, '' ) ) {
|
54 |
foreach( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
|
55 |
$_product = $values['data'];
|
56 |
+
if( get_the_ID() == wcj_get_product_id_or_variation_parent_id( $_product ) )
|
57 |
return get_option( 'wcj_add_to_cart_text_on_' . $single_or_archive . '_in_cart_' . $product_type );
|
58 |
}
|
59 |
}
|
includes/add-to-cart/class-wcj-add-to-cart-per-product.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Add to Cart per Product class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -42,6 +42,8 @@ class WCJ_Add_To_Cart_Per_Product {
|
|
42 |
|
43 |
/**
|
44 |
* change_add_to_cart_button_text.
|
|
|
|
|
45 |
*/
|
46 |
public function change_add_to_cart_button_text( $add_to_cart_text, $single_or_archive ) {
|
47 |
global $product;
|
@@ -49,7 +51,7 @@ class WCJ_Add_To_Cart_Per_Product {
|
|
49 |
return $add_to_cart_text;
|
50 |
}
|
51 |
$local_custom_add_to_cart_option_id = 'wcj_custom_add_to_cart_local_' . $single_or_archive;
|
52 |
-
$local_custom_add_to_cart_option_value = get_post_meta( $product
|
53 |
if ( '' != $local_custom_add_to_cart_option_value ) {
|
54 |
return $local_custom_add_to_cart_option_value;
|
55 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Add to Cart per Product class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
42 |
|
43 |
/**
|
44 |
* change_add_to_cart_button_text.
|
45 |
+
*
|
46 |
+
* @version 2.7.0
|
47 |
*/
|
48 |
public function change_add_to_cart_button_text( $add_to_cart_text, $single_or_archive ) {
|
49 |
global $product;
|
51 |
return $add_to_cart_text;
|
52 |
}
|
53 |
$local_custom_add_to_cart_option_id = 'wcj_custom_add_to_cart_local_' . $single_or_archive;
|
54 |
+
$local_custom_add_to_cart_option_value = get_post_meta( wcj_get_product_id_or_variation_parent_id( $product ), '_' . $local_custom_add_to_cart_option_id, true );
|
55 |
if ( '' != $local_custom_add_to_cart_option_value ) {
|
56 |
return $local_custom_add_to_cart_option_value;
|
57 |
}
|
includes/admin/class-wc-settings-jetpack.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Settings class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 1.0.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -102,13 +102,14 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
102 |
/**
|
103 |
* output_module_tools.
|
104 |
*
|
105 |
-
* @version 2.
|
106 |
* @since 2.2.3
|
107 |
*/
|
108 |
function output_module_tools( $value ) {
|
109 |
?><tr valign="top">
|
110 |
<th scope="row" class="titledesc">
|
111 |
<label for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo esc_html( $value['title'] ); ?></label>
|
|
|
112 |
</th>
|
113 |
<td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
|
114 |
<?php if ( isset( $_GET['section'] ) ) do_action( 'wcj_module_tools_' . $_GET['section'] ); ?>
|
@@ -119,13 +120,14 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
119 |
/**
|
120 |
* output_custom_link.
|
121 |
*
|
122 |
-
* @version 2.
|
123 |
* @since 2.2.8
|
124 |
*/
|
125 |
function output_custom_link( $value ) {
|
|
|
126 |
?><tr valign="top">
|
127 |
<th scope="row" class="titledesc">
|
128 |
-
<label for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo esc_html( $value['title'] ); ?></label
|
129 |
</th>
|
130 |
<td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
|
131 |
<?php echo $value['link']; ?>
|
@@ -178,7 +180,7 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
178 |
/**
|
179 |
* Output cats
|
180 |
*
|
181 |
-
* @version 2.
|
182 |
*/
|
183 |
function output_cats_submenu() {
|
184 |
$current_cat = empty( $_REQUEST['wcj-cat'] ) ? 'dashboard' : sanitize_title( $_REQUEST['wcj-cat'] );
|
@@ -188,7 +190,7 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
188 |
echo '<ul class="subsubsub" style="text-transform: uppercase !important; font-weight: bold; margin-bottom: 10px !important;">';
|
189 |
$array_keys = array_keys( $this->cats );
|
190 |
foreach ( $this->cats as $id => $label_info ) {
|
191 |
-
echo '<li><a href="' . admin_url( 'admin.php?page=wc-settings&tab=' . $this->id . '&wcj-cat=' . sanitize_title( $id ) ) . '
|
192 |
}
|
193 |
echo '</ul>' . '<br class="clear" />';
|
194 |
}
|
@@ -196,16 +198,29 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
196 |
/**
|
197 |
* Output sections (modules) sub menu
|
198 |
*
|
199 |
-
* @version 2.
|
200 |
*/
|
201 |
function output_sections_submenu() {
|
202 |
global $current_section;
|
203 |
$sections = $this->get_sections();
|
204 |
$current_cat = empty( $_REQUEST['wcj-cat'] ) ? 'dashboard' : sanitize_title( $_REQUEST['wcj-cat'] );
|
205 |
if ( 'dashboard' === $current_cat ) {
|
206 |
-
|
207 |
-
|
208 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
$sections['manager'] = __( 'Manage Settings', 'woocommerce-jetpack' );
|
210 |
if ( '' == $current_section ) {
|
211 |
$current_section = 'by_category';
|
@@ -263,7 +278,7 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
263 |
/**
|
264 |
* Output the settings.
|
265 |
*
|
266 |
-
* @version 2.
|
267 |
*/
|
268 |
function output() {
|
269 |
|
@@ -361,6 +376,9 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
361 |
break;
|
362 |
}
|
363 |
}
|
|
|
|
|
|
|
364 |
//$breadcrumbs_html .= $settings[0]['title'];
|
365 |
if ( ! $is_dashboard ) {
|
366 |
$breadcrumbs_html .= ' > ';
|
@@ -385,7 +403,7 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
385 |
/**
|
386 |
* output_dashboard.
|
387 |
*
|
388 |
-
* @version 2.
|
389 |
*/
|
390 |
function output_dashboard( $current_section ) {
|
391 |
|
@@ -407,8 +425,16 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
407 |
$this->output_dashboard_modules( $the_settings );
|
408 |
} elseif ( 'by_category' === $current_section ) {
|
409 |
foreach ( $this->cats as $cat_id => $cat_label_info ) {
|
410 |
-
if ( 'dashboard' === $cat_id )
|
411 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
412 |
$readme_html .= PHP_EOL . '**' . $cat_label_info['label'] . '**' . PHP_EOL . PHP_EOL;
|
413 |
$readme_html .= $this->output_dashboard_modules( $the_settings, $cat_id );
|
414 |
}
|
@@ -507,7 +533,7 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
507 |
$html .= '<input type="checkbox" name="' . $the_feature['id'] . '" value="1" id="' . $the_feature['id'] . '" ' . checked( get_option( $the_feature['id'] ), 'yes', false ) . '>';
|
508 |
$html .= '</th>';
|
509 |
|
510 |
-
$html .= '<td class="plugin-title"
|
511 |
$html .= '<div class="row-actions visible">';
|
512 |
|
513 |
$html .= '<span class="0"><a href="' . admin_url() . 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=' . $this->get_cat_by_section( $section ) . '§ion=' . $section . '">' . __( 'Settings', 'woocommerce' ) . '</a></span>';
|
@@ -543,7 +569,7 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
543 |
global $current_section;
|
544 |
$settings = $this->get_settings( $current_section );
|
545 |
WC_Admin_Settings::save_fields( $settings );
|
546 |
-
echo apply_filters('booster_get_message', '', 'global' );
|
547 |
do_action( 'woojetpack_after_settings_save', $this->get_sections(), $current_section );
|
548 |
}
|
549 |
|
@@ -567,7 +593,7 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
567 |
/**
|
568 |
* Get settings array
|
569 |
*
|
570 |
-
* @version 2.
|
571 |
* @return array
|
572 |
*/
|
573 |
function get_settings( $current_section = '' ) {
|
@@ -576,15 +602,33 @@ class WC_Settings_Jetpack extends WC_Settings_Page {
|
|
576 |
} elseif ( 'manager' === $current_section ) {
|
577 |
return array( $this->get_autoload_settings() );
|
578 |
} else {
|
|
|
579 |
$settings[] = array(
|
580 |
-
'title' => __( 'Booster for WooCommerce
|
581 |
'type' => 'title',
|
582 |
-
'desc' =>
|
583 |
-
'id' => '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
584 |
);
|
585 |
-
//$settings = apply_filters( 'wcj_features_status', $settings );
|
586 |
-
$settings = array_merge( $settings, $this->module_statuses );
|
587 |
-
$settings[] = array( 'type' => 'sectionend', 'id' => 'wcj_options', 'title' => '', 'desc' => '', );
|
588 |
return $settings;
|
589 |
}
|
590 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Settings class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 1.0.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
102 |
/**
|
103 |
* output_module_tools.
|
104 |
*
|
105 |
+
* @version 2.7.0
|
106 |
* @since 2.2.3
|
107 |
*/
|
108 |
function output_module_tools( $value ) {
|
109 |
?><tr valign="top">
|
110 |
<th scope="row" class="titledesc">
|
111 |
<label for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo esc_html( $value['title'] ); ?></label>
|
112 |
+
<span class="woocommerce-help-tip" data-tip="<?php echo __( 'To use tools, module must be enabled.', 'woocommerce-jetpack' ); ?>"></span>
|
113 |
</th>
|
114 |
<td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
|
115 |
<?php if ( isset( $_GET['section'] ) ) do_action( 'wcj_module_tools_' . $_GET['section'] ); ?>
|
120 |
/**
|
121 |
* output_custom_link.
|
122 |
*
|
123 |
+
* @version 2.7.0
|
124 |
* @since 2.2.8
|
125 |
*/
|
126 |
function output_custom_link( $value ) {
|
127 |
+
$tooltip_html = ( isset( $value['desc_tip'] ) && '' != $value['desc_tip'] ) ? '<span class="woocommerce-help-tip" data-tip="' . $value['desc_tip'] . '"></span>' : '';
|
128 |
?><tr valign="top">
|
129 |
<th scope="row" class="titledesc">
|
130 |
+
<label for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo esc_html( $value['title'] ); ?></label><?php echo $tooltip_html; ?>
|
131 |
</th>
|
132 |
<td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
|
133 |
<?php echo $value['link']; ?>
|
180 |
/**
|
181 |
* Output cats
|
182 |
*
|
183 |
+
* @version 2.7.0
|
184 |
*/
|
185 |
function output_cats_submenu() {
|
186 |
$current_cat = empty( $_REQUEST['wcj-cat'] ) ? 'dashboard' : sanitize_title( $_REQUEST['wcj-cat'] );
|
190 |
echo '<ul class="subsubsub" style="text-transform: uppercase !important; font-weight: bold; margin-bottom: 10px !important;">';
|
191 |
$array_keys = array_keys( $this->cats );
|
192 |
foreach ( $this->cats as $id => $label_info ) {
|
193 |
+
echo '<li><a href="' . admin_url( 'admin.php?page=wc-settings&tab=' . $this->id . '&wcj-cat=' . sanitize_title( $id ) ) . '" class="' . ( $current_cat == $id ? 'current' : '' ) . '">' . $label_info['label'] . '</a> ' . ( end( $array_keys ) == $id ? '' : '|' ) . ' </li>';
|
194 |
}
|
195 |
echo '</ul>' . '<br class="clear" />';
|
196 |
}
|
198 |
/**
|
199 |
* Output sections (modules) sub menu
|
200 |
*
|
201 |
+
* @version 2.7.0
|
202 |
*/
|
203 |
function output_sections_submenu() {
|
204 |
global $current_section;
|
205 |
$sections = $this->get_sections();
|
206 |
$current_cat = empty( $_REQUEST['wcj-cat'] ) ? 'dashboard' : sanitize_title( $_REQUEST['wcj-cat'] );
|
207 |
if ( 'dashboard' === $current_cat ) {
|
208 |
+
|
209 |
+
// Counting modules
|
210 |
+
$all = 0;
|
211 |
+
$active = 0;
|
212 |
+
foreach ( $this->module_statuses as $module_status ) {
|
213 |
+
if ( isset( $module_status['id'] ) && isset( $module_status['default'] ) ) {
|
214 |
+
if ( 'yes' === get_option( $module_status['id'], $module_status['default'] ) ) {
|
215 |
+
$active++;
|
216 |
+
}
|
217 |
+
$all++;
|
218 |
+
}
|
219 |
+
}
|
220 |
+
|
221 |
+
$sections['alphabetically'] = __( 'Alphabetically', 'woocommerce-jetpack' ) . ' <span class="count">(' . $all . ')</span>';
|
222 |
+
$sections['by_category'] = __( 'By Category', 'woocommerce-jetpack' ) . ' <span class="count">(' . $all . ')</span>';
|
223 |
+
$sections['active'] = __( 'Active', 'woocommerce-jetpack' ) . ' <span class="count">(' . $active . ')</span>';
|
224 |
$sections['manager'] = __( 'Manage Settings', 'woocommerce-jetpack' );
|
225 |
if ( '' == $current_section ) {
|
226 |
$current_section = 'by_category';
|
278 |
/**
|
279 |
* Output the settings.
|
280 |
*
|
281 |
+
* @version 2.7.0
|
282 |
*/
|
283 |
function output() {
|
284 |
|
376 |
break;
|
377 |
}
|
378 |
}
|
379 |
+
if ( $is_dashboard && isset( $_GET['wcj-cat'] ) && 'dashboard' != $_GET['wcj-cat'] ) {
|
380 |
+
$breadcrumbs_html .= $this->cats[ $_GET['wcj-cat'] ]['label'];
|
381 |
+
}
|
382 |
//$breadcrumbs_html .= $settings[0]['title'];
|
383 |
if ( ! $is_dashboard ) {
|
384 |
$breadcrumbs_html .= ' > ';
|
403 |
/**
|
404 |
* output_dashboard.
|
405 |
*
|
406 |
+
* @version 2.7.0
|
407 |
*/
|
408 |
function output_dashboard( $current_section ) {
|
409 |
|
425 |
$this->output_dashboard_modules( $the_settings );
|
426 |
} elseif ( 'by_category' === $current_section ) {
|
427 |
foreach ( $this->cats as $cat_id => $cat_label_info ) {
|
428 |
+
if ( 'dashboard' === $cat_id ) {
|
429 |
+
continue;
|
430 |
+
}
|
431 |
+
if ( isset( $_GET['wcj-cat'] ) && 'dashboard' != $_GET['wcj-cat'] ) {
|
432 |
+
if ( $cat_id != $_GET['wcj-cat'] ) {
|
433 |
+
continue;
|
434 |
+
}
|
435 |
+
} else {
|
436 |
+
echo '<h4>' . $cat_label_info['label'] . '</h4>';
|
437 |
+
}
|
438 |
$readme_html .= PHP_EOL . '**' . $cat_label_info['label'] . '**' . PHP_EOL . PHP_EOL;
|
439 |
$readme_html .= $this->output_dashboard_modules( $the_settings, $cat_id );
|
440 |
}
|
533 |
$html .= '<input type="checkbox" name="' . $the_feature['id'] . '" value="1" id="' . $the_feature['id'] . '" ' . checked( get_option( $the_feature['id'] ), 'yes', false ) . '>';
|
534 |
$html .= '</th>';
|
535 |
|
536 |
+
$html .= '<td class="plugin-title">' . '<strong>' . $the_feature['title'] . '</strong>';
|
537 |
$html .= '<div class="row-actions visible">';
|
538 |
|
539 |
$html .= '<span class="0"><a href="' . admin_url() . 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=' . $this->get_cat_by_section( $section ) . '§ion=' . $section . '">' . __( 'Settings', 'woocommerce' ) . '</a></span>';
|
569 |
global $current_section;
|
570 |
$settings = $this->get_settings( $current_section );
|
571 |
WC_Admin_Settings::save_fields( $settings );
|
572 |
+
echo apply_filters( 'booster_get_message', '', 'global' );
|
573 |
do_action( 'woojetpack_after_settings_save', $this->get_sections(), $current_section );
|
574 |
}
|
575 |
|
593 |
/**
|
594 |
* Get settings array
|
595 |
*
|
596 |
+
* @version 2.7.0
|
597 |
* @return array
|
598 |
*/
|
599 |
function get_settings( $current_section = '' ) {
|
602 |
} elseif ( 'manager' === $current_section ) {
|
603 |
return array( $this->get_autoload_settings() );
|
604 |
} else {
|
605 |
+
$cat_id = ( isset( $_GET['wcj-cat'] ) && '' != $_GET['wcj-cat'] ) ? $_GET['wcj-cat'] : 'dashboard';
|
606 |
$settings[] = array(
|
607 |
+
'title' => __( 'Booster for WooCommerce', 'woocommerce-jetpack' ) . ' - ' . $this->cats[ $cat_id ]['label'],
|
608 |
'type' => 'title',
|
609 |
+
'desc' => $this->cats[ $cat_id ]['desc'],
|
610 |
+
'id' => 'wcj_' . $cat_id . '_options',
|
611 |
+
);
|
612 |
+
// $settings = apply_filters( 'wcj_features_status', $settings );
|
613 |
+
if ( 'dashboard' === $cat_id ) {
|
614 |
+
$settings = array_merge( $settings, $this->module_statuses );
|
615 |
+
} else {
|
616 |
+
$cat_module_statuses = array();
|
617 |
+
foreach ( $this->module_statuses as $module_status ) {
|
618 |
+
$section = $module_status['id'];
|
619 |
+
$section = str_replace( 'wcj_', '', $section );
|
620 |
+
$section = str_replace( '_enabled', '', $section );
|
621 |
+
if ( $cat_id === $this->get_cat_by_section( $section ) ) {
|
622 |
+
$cat_module_statuses[] = $module_status;
|
623 |
+
}
|
624 |
+
}
|
625 |
+
$settings = array_merge( $settings, $cat_module_statuses );
|
626 |
+
}
|
627 |
+
$settings[] = array(
|
628 |
+
'type' => 'sectionend',
|
629 |
+
'id' => 'wcj_' . $cat_id . '_options',
|
630 |
+
'title' => '', // for usort
|
631 |
);
|
|
|
|
|
|
|
632 |
return $settings;
|
633 |
}
|
634 |
}
|
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 |
*/
|
@@ -13,7 +13,7 @@ return array(
|
|
13 |
|
14 |
'dashboard' => array(
|
15 |
'label' => __( 'Dashboard', 'woocommerce-jetpack' ),
|
16 |
-
'
|
17 |
'all_cat_ids' => array(
|
18 |
'alphabetically',
|
19 |
'by_category',
|
@@ -24,7 +24,7 @@ return array(
|
|
24 |
|
25 |
'prices_and_currencies' => array(
|
26 |
'label' => __( 'Prices & Currencies', 'woocommerce-jetpack' ),
|
27 |
-
'
|
28 |
'all_cat_ids' => array(
|
29 |
'price_by_country',
|
30 |
'multicurrency',
|
@@ -45,7 +45,7 @@ return array(
|
|
45 |
|
46 |
'labels' => array(
|
47 |
'label' => __( 'Button & Price Labels', 'woocommerce-jetpack' ),
|
48 |
-
'
|
49 |
'all_cat_ids' => array(
|
50 |
'price_labels',
|
51 |
'call_for_price',
|
@@ -57,7 +57,7 @@ return array(
|
|
57 |
|
58 |
'products' => array(
|
59 |
'label' => __( 'Products', 'woocommerce-jetpack' ),
|
60 |
-
'
|
61 |
'all_cat_ids' => array(
|
62 |
'product_listings',
|
63 |
'products_per_page',
|
@@ -76,26 +76,30 @@ return array(
|
|
76 |
'product_by_country',
|
77 |
'product_by_user_role',
|
78 |
'product_by_user',
|
|
|
79 |
),
|
80 |
),
|
81 |
|
82 |
'cart_and_checkout' => array(
|
83 |
'label' => __( 'Cart & Checkout', 'woocommerce-jetpack' ),
|
84 |
-
'
|
85 |
'all_cat_ids' => array(
|
86 |
'cart',
|
|
|
87 |
'empty_cart',
|
88 |
'mini_cart',
|
89 |
'checkout_core_fields',
|
90 |
'checkout_custom_fields',
|
91 |
'checkout_files_upload',
|
92 |
'checkout_custom_info',
|
|
|
|
|
93 |
),
|
94 |
),
|
95 |
|
96 |
'payment_gateways' => array(
|
97 |
'label' => __( 'Payment Gateways', 'woocommerce-jetpack' ),
|
98 |
-
'
|
99 |
'all_cat_ids' => array(
|
100 |
'payment_gateways',
|
101 |
'payment_gateways_icons',
|
@@ -105,12 +109,13 @@ return array(
|
|
105 |
'payment_gateways_min_max',
|
106 |
'payment_gateways_by_country',
|
107 |
'payment_gateways_by_user_role',
|
|
|
108 |
),
|
109 |
),
|
110 |
|
111 |
'shipping_and_orders' => array(
|
112 |
'label' => __( 'Shipping & Orders', 'woocommerce-jetpack' ),
|
113 |
-
'
|
114 |
'all_cat_ids' => array(
|
115 |
'shipping',
|
116 |
'left_to_free_shipping',
|
@@ -125,7 +130,7 @@ return array(
|
|
125 |
|
126 |
'pdf_invoicing' => array(
|
127 |
'label' => __( 'PDF Invoicing & Packing Slips', 'woocommerce-jetpack' ),
|
128 |
-
'
|
129 |
'all_cat_ids' => array(
|
130 |
'pdf_invoicing',
|
131 |
'pdf_invoicing_numbering',
|
@@ -141,18 +146,17 @@ return array(
|
|
141 |
|
142 |
'emails_and_misc' => array(
|
143 |
'label' => __( 'Emails & Misc.', 'woocommerce-jetpack' ),
|
144 |
-
'
|
145 |
'all_cat_ids' => array(
|
146 |
'general',
|
147 |
-
'products_xml',
|
148 |
'export',
|
149 |
// 'shortcodes',
|
150 |
-
'eu_vat_number',
|
151 |
'old_slugs',
|
152 |
'reports',
|
153 |
'admin_tools',
|
154 |
'emails',
|
155 |
'wpml',
|
|
|
156 |
// 'pdf_invoices',
|
157 |
'product_info',
|
158 |
),
|
4 |
*
|
5 |
* The WooCommerce Modules Array.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
13 |
|
14 |
'dashboard' => array(
|
15 |
'label' => __( 'Dashboard', 'woocommerce-jetpack' ),
|
16 |
+
'desc' => __( 'This dashboard lets you enable/disable any Booster\'s module. Each checkbox comes with short module\'s description. Please visit <a href="http://booster.io" target="_blank">http://booster.io</a> for detailed info on each feature.', 'woocommerce-jetpack' ),
|
17 |
'all_cat_ids' => array(
|
18 |
'alphabetically',
|
19 |
'by_category',
|
24 |
|
25 |
'prices_and_currencies' => array(
|
26 |
'label' => __( 'Prices & Currencies', 'woocommerce-jetpack' ),
|
27 |
+
'desc' => __( 'Multicurrency, Price Converter, Wholesale Pricing, Name You Price, Price by User Role and more.', 'woocommerce-jetpack' ),
|
28 |
'all_cat_ids' => array(
|
29 |
'price_by_country',
|
30 |
'multicurrency',
|
45 |
|
46 |
'labels' => array(
|
47 |
'label' => __( 'Button & Price Labels', 'woocommerce-jetpack' ),
|
48 |
+
'desc' => __( 'Add to Cart Labels, Call for Price, Custom Price Labels and more.', 'woocommerce-jetpack' ),
|
49 |
'all_cat_ids' => array(
|
50 |
'price_labels',
|
51 |
'call_for_price',
|
57 |
|
58 |
'products' => array(
|
59 |
'label' => __( 'Products', 'woocommerce-jetpack' ),
|
60 |
+
'desc' => __( 'Bookings, Crowdfunding Products, Product Addons and Input Fields, Product Listings, Product Tabs and more.', 'woocommerce-jetpack' ),
|
61 |
'all_cat_ids' => array(
|
62 |
'product_listings',
|
63 |
'products_per_page',
|
76 |
'product_by_country',
|
77 |
'product_by_user_role',
|
78 |
'product_by_user',
|
79 |
+
'products_xml',
|
80 |
),
|
81 |
),
|
82 |
|
83 |
'cart_and_checkout' => array(
|
84 |
'label' => __( 'Cart & Checkout', 'woocommerce-jetpack' ),
|
85 |
+
'desc' => __( 'Cart and Checkout Customization, Empty Cart Button, Mini Cart and more.', 'woocommerce-jetpack' ),
|
86 |
'all_cat_ids' => array(
|
87 |
'cart',
|
88 |
+
'cart_customization',
|
89 |
'empty_cart',
|
90 |
'mini_cart',
|
91 |
'checkout_core_fields',
|
92 |
'checkout_custom_fields',
|
93 |
'checkout_files_upload',
|
94 |
'checkout_custom_info',
|
95 |
+
'checkout_customization',
|
96 |
+
'eu_vat_number',
|
97 |
),
|
98 |
),
|
99 |
|
100 |
'payment_gateways' => array(
|
101 |
'label' => __( 'Payment Gateways', 'woocommerce-jetpack' ),
|
102 |
+
'desc' => __( 'Custom Payment Gateways, Gateways Currency, Gateways Fees and Discounts and more.', 'woocommerce-jetpack' ),
|
103 |
'all_cat_ids' => array(
|
104 |
'payment_gateways',
|
105 |
'payment_gateways_icons',
|
109 |
'payment_gateways_min_max',
|
110 |
'payment_gateways_by_country',
|
111 |
'payment_gateways_by_user_role',
|
112 |
+
'payment_gateways_by_shipping',
|
113 |
),
|
114 |
),
|
115 |
|
116 |
'shipping_and_orders' => array(
|
117 |
'label' => __( 'Shipping & Orders', 'woocommerce-jetpack' ),
|
118 |
+
'desc' => __( 'Order Custom Statuses, Order Minimum Amount, Order Numbers, Custom Shipping Methods and more.', 'woocommerce-jetpack' ),
|
119 |
'all_cat_ids' => array(
|
120 |
'shipping',
|
121 |
'left_to_free_shipping',
|
130 |
|
131 |
'pdf_invoicing' => array(
|
132 |
'label' => __( 'PDF Invoicing & Packing Slips', 'woocommerce-jetpack' ),
|
133 |
+
'desc' => __( 'PDF Documents', 'woocommerce-jetpack' ),
|
134 |
'all_cat_ids' => array(
|
135 |
'pdf_invoicing',
|
136 |
'pdf_invoicing_numbering',
|
146 |
|
147 |
'emails_and_misc' => array(
|
148 |
'label' => __( 'Emails & Misc.', 'woocommerce-jetpack' ),
|
149 |
+
'desc' => __( 'Emails, Reports, Export, Admin Tools, General Options and more.', 'woocommerce-jetpack' ),
|
150 |
'all_cat_ids' => array(
|
151 |
'general',
|
|
|
152 |
'export',
|
153 |
// 'shortcodes',
|
|
|
154 |
'old_slugs',
|
155 |
'reports',
|
156 |
'admin_tools',
|
157 |
'emails',
|
158 |
'wpml',
|
159 |
+
'custom_css',
|
160 |
// 'pdf_invoices',
|
161 |
'product_info',
|
162 |
),
|
includes/class-wcj-address-formats.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Address Formats class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -29,26 +29,24 @@ class WCJ_Address_Formats extends WCJ_Module {
|
|
29 |
parent::__construct();
|
30 |
|
31 |
if ( $this->is_enabled() ) {
|
32 |
-
add_filter( 'woocommerce_localisation_address_formats', array( $this, 'customize_address_formats' ),
|
33 |
add_filter( 'woocommerce_formatted_address_force_country_display', array( $this, 'customize_force_country_display' ), PHP_INT_MAX );
|
34 |
}
|
35 |
}
|
36 |
|
37 |
/**
|
38 |
* customize_force_country_display.
|
|
|
|
|
39 |
*/
|
40 |
function customize_force_country_display( $display ) {
|
41 |
-
|
42 |
-
return ( 'yes' === $customized_display ) ? true : false;
|
43 |
-
}
|
44 |
-
return $display;
|
45 |
}
|
46 |
|
47 |
/**
|
48 |
* customize_address_formats.
|
49 |
*/
|
50 |
function customize_address_formats( $formats ) {
|
51 |
-
//$formats['LT'] = "{name}\n{company}\n{address_1}\n{address_2}\n{city} {postcode}\n{state}\n{country}";
|
52 |
$modified_formats = array();
|
53 |
$default_formats = $this->get_default_address_formats();
|
54 |
foreach ( $default_formats as $country_code => $format ) {
|
@@ -61,14 +59,13 @@ class WCJ_Address_Formats extends WCJ_Module {
|
|
61 |
|
62 |
/**
|
63 |
* Get country address formats
|
|
|
64 |
* @return array
|
65 |
*/
|
66 |
-
|
67 |
-
|
68 |
// Common formats
|
69 |
$postcode_before_city = "{company}\n{name}\n{address_1}\n{address_2}\n{postcode} {city}\n{country}";
|
70 |
$default = "{name}\n{company}\n{address_1}\n{address_2}\n{city}\n{state}\n{postcode}\n{country}";
|
71 |
-
|
72 |
// Define address formats
|
73 |
$formats = array(
|
74 |
'default' => $default,
|
@@ -105,68 +102,66 @@ class WCJ_Address_Formats extends WCJ_Module {
|
|
105 |
'US' => "{name}\n{company}\n{address_1}\n{address_2}\n{city}, {state_code} {postcode}\n{country}",
|
106 |
'VN' => "{name}\n{company}\n{address_1}\n{city}\n{country}",
|
107 |
);
|
108 |
-
|
109 |
$all_countries = wcj_get_countries();
|
110 |
foreach ( $all_countries as $country_code => $country_name ) {
|
111 |
-
if ( ! isset( $formats[ $country_code ] ) )
|
|
|
|
|
112 |
}
|
113 |
-
|
114 |
ksort( $formats );
|
115 |
-
|
116 |
return $formats;
|
117 |
}
|
118 |
|
119 |
/**
|
120 |
* get_settings.
|
121 |
*
|
122 |
-
* @version 2.
|
123 |
*/
|
124 |
function get_settings() {
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
|
|
|
|
|
|
|
|
|
|
144 |
);
|
145 |
-
|
146 |
-
// Formats by Country
|
147 |
-
$settings[] = array(
|
148 |
-
'title' => __( 'Address Formats by Country', 'woocommerce-jetpack' ),
|
149 |
-
'type' => 'title',
|
150 |
-
'desc' => __( 'Address Formats by Country Options.', 'woocommerce-jetpack' ),
|
151 |
-
'id' => 'wcj_address_formats_country_options'
|
152 |
-
);
|
153 |
-
// $formats = apply_filters( 'wcj_get_address_formats_filter', array() );
|
154 |
// $formats = WC()->countries->get_address_formats();
|
155 |
$formats = $this->get_default_address_formats();
|
156 |
foreach ( $formats as $country_code => $format ) {
|
157 |
-
$settings
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
|
|
|
|
164 |
}
|
165 |
-
$settings
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
|
|
170 |
return $this->add_standard_settings( $settings );
|
171 |
}
|
172 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Address Formats class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
29 |
parent::__construct();
|
30 |
|
31 |
if ( $this->is_enabled() ) {
|
32 |
+
add_filter( 'woocommerce_localisation_address_formats', array( $this, 'customize_address_formats' ), PHP_INT_MAX );
|
33 |
add_filter( 'woocommerce_formatted_address_force_country_display', array( $this, 'customize_force_country_display' ), PHP_INT_MAX );
|
34 |
}
|
35 |
}
|
36 |
|
37 |
/**
|
38 |
* customize_force_country_display.
|
39 |
+
*
|
40 |
+
* @version 2.7.0
|
41 |
*/
|
42 |
function customize_force_country_display( $display ) {
|
43 |
+
return ( 'yes' === get_option( 'wcj_address_formats_force_country_display', 'no' ) );
|
|
|
|
|
|
|
44 |
}
|
45 |
|
46 |
/**
|
47 |
* customize_address_formats.
|
48 |
*/
|
49 |
function customize_address_formats( $formats ) {
|
|
|
50 |
$modified_formats = array();
|
51 |
$default_formats = $this->get_default_address_formats();
|
52 |
foreach ( $default_formats as $country_code => $format ) {
|
59 |
|
60 |
/**
|
61 |
* Get country address formats
|
62 |
+
*
|
63 |
* @return array
|
64 |
*/
|
65 |
+
function get_default_address_formats() {
|
|
|
66 |
// Common formats
|
67 |
$postcode_before_city = "{company}\n{name}\n{address_1}\n{address_2}\n{postcode} {city}\n{country}";
|
68 |
$default = "{name}\n{company}\n{address_1}\n{address_2}\n{city}\n{state}\n{postcode}\n{country}";
|
|
|
69 |
// Define address formats
|
70 |
$formats = array(
|
71 |
'default' => $default,
|
102 |
'US' => "{name}\n{company}\n{address_1}\n{address_2}\n{city}, {state_code} {postcode}\n{country}",
|
103 |
'VN' => "{name}\n{company}\n{address_1}\n{city}\n{country}",
|
104 |
);
|
|
|
105 |
$all_countries = wcj_get_countries();
|
106 |
foreach ( $all_countries as $country_code => $country_name ) {
|
107 |
+
if ( ! isset( $formats[ $country_code ] ) ) {
|
108 |
+
$formats[ $country_code ] = $default;
|
109 |
+
}
|
110 |
}
|
|
|
111 |
ksort( $formats );
|
|
|
112 |
return $formats;
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
* get_settings.
|
117 |
*
|
118 |
+
* @version 2.7.0
|
119 |
*/
|
120 |
function get_settings() {
|
121 |
+
$settings = array(
|
122 |
+
// Force country display
|
123 |
+
array(
|
124 |
+
'title' => __( 'Force Base Country Display', 'woocommerce-jetpack' ),
|
125 |
+
'type' => 'title',
|
126 |
+
'id' => 'wcj_address_formats_force_country_display_options',
|
127 |
+
),
|
128 |
+
array(
|
129 |
+
'title' => __( 'Force Base Country Display', 'woocommerce-jetpack' ),
|
130 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
131 |
+
'id' => 'wcj_address_formats_force_country_display',
|
132 |
+
'default' => 'no',
|
133 |
+
'type' => 'checkbox',
|
134 |
+
),
|
135 |
+
array(
|
136 |
+
'type' => 'sectionend',
|
137 |
+
'id' => 'wcj_address_formats_force_country_display_options',
|
138 |
+
),
|
139 |
+
// Formats by Country
|
140 |
+
array(
|
141 |
+
'title' => __( 'Address Formats by Country', 'woocommerce-jetpack' ),
|
142 |
+
'type' => 'title',
|
143 |
+
'id' => 'wcj_address_formats_country_options',
|
144 |
+
),
|
145 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
// $formats = WC()->countries->get_address_formats();
|
147 |
$formats = $this->get_default_address_formats();
|
148 |
foreach ( $formats as $country_code => $format ) {
|
149 |
+
$settings = array_merge( $settings, array(
|
150 |
+
array(
|
151 |
+
'title' => ( 'default' === $country_code ) ? $country_code : $country_code . ' - ' . wcj_get_country_name_by_code( $country_code ),
|
152 |
+
'id' => 'wcj_address_formats_country_' . $country_code,
|
153 |
+
'default' => $format,
|
154 |
+
'type' => 'textarea',
|
155 |
+
'css' => 'width:300px;height:200px;',
|
156 |
+
),
|
157 |
+
) );
|
158 |
}
|
159 |
+
$settings = array_merge( $settings, array(
|
160 |
+
array(
|
161 |
+
'type' => 'sectionend',
|
162 |
+
'id' => 'wcj_address_formats_country_options',
|
163 |
+
),
|
164 |
+
) );
|
165 |
return $this->add_standard_settings( $settings );
|
166 |
}
|
167 |
}
|
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 |
|
@@ -100,7 +100,7 @@ class WCJ_Admin_Tools extends WCJ_Module {
|
|
100 |
/**
|
101 |
* create_meta_meta_box.
|
102 |
*
|
103 |
-
* @version 2.
|
104 |
* @since 2.5.8
|
105 |
*/
|
106 |
function create_meta_meta_box( $post ) {
|
@@ -119,7 +119,10 @@ class WCJ_Admin_Tools extends WCJ_Module {
|
|
119 |
$table_data = array();
|
120 |
foreach ( $_order->get_items() as $item_key => $item ) {
|
121 |
foreach ( $item['item_meta'] as $item_meta_key => $item_meta_value ) {
|
122 |
-
|
|
|
|
|
|
|
123 |
}
|
124 |
}
|
125 |
$html .= '<h3>' . __( 'Order Items Meta', 'woocommerce-jetpack' ) . '</h3>';
|
@@ -134,7 +137,7 @@ class WCJ_Admin_Tools extends WCJ_Module {
|
|
134 |
*
|
135 |
* @version 2.5.7
|
136 |
*/
|
137 |
-
|
138 |
|
139 |
$the_notice = '';
|
140 |
if ( isset( $_GET['wcj_delete_log'] ) && wcj_is_user_role( 'administrator' ) ) {
|
@@ -159,7 +162,7 @@ class WCJ_Admin_Tools extends WCJ_Module {
|
|
159 |
/**
|
160 |
* get_system_info_table_array.
|
161 |
*
|
162 |
-
* @version 2.
|
163 |
* @since 2.5.7
|
164 |
*/
|
165 |
function get_system_info_table_array() {
|
@@ -177,6 +180,7 @@ class WCJ_Admin_Tools extends WCJ_Module {
|
|
177 |
'ABSPATH',
|
178 |
'DISABLE_WP_CRON',
|
179 |
'WP_CRON_LOCK_TIMEOUT',
|
|
|
180 |
);
|
181 |
foreach ( $constants_array as $the_constant ) {
|
182 |
$system_info[] = array( $the_constant, ( defined( $the_constant ) ? constant( $the_constant ) : __( 'NOT DEFINED', 'woocommerce-jetpack' ) ) );
|
4 |
*
|
5 |
* The WooCommerce Jetpack Admin Tools class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
100 |
/**
|
101 |
* create_meta_meta_box.
|
102 |
*
|
103 |
+
* @version 2.7.0
|
104 |
* @since 2.5.8
|
105 |
*/
|
106 |
function create_meta_meta_box( $post ) {
|
119 |
$table_data = array();
|
120 |
foreach ( $_order->get_items() as $item_key => $item ) {
|
121 |
foreach ( $item['item_meta'] as $item_meta_key => $item_meta_value ) {
|
122 |
+
if ( is_array( $item_meta_value ) ) {
|
123 |
+
$item_meta_value = implode( ', ', $item_meta_value );
|
124 |
+
}
|
125 |
+
$table_data[] = array( $item_key, $item_meta_key, $item_meta_value );
|
126 |
}
|
127 |
}
|
128 |
$html .= '<h3>' . __( 'Order Items Meta', 'woocommerce-jetpack' ) . '</h3>';
|
137 |
*
|
138 |
* @version 2.5.7
|
139 |
*/
|
140 |
+
function create_admin_tools_tool() {
|
141 |
|
142 |
$the_notice = '';
|
143 |
if ( isset( $_GET['wcj_delete_log'] ) && wcj_is_user_role( 'administrator' ) ) {
|
162 |
/**
|
163 |
* get_system_info_table_array.
|
164 |
*
|
165 |
+
* @version 2.7.0
|
166 |
* @since 2.5.7
|
167 |
*/
|
168 |
function get_system_info_table_array() {
|
180 |
'ABSPATH',
|
181 |
'DISABLE_WP_CRON',
|
182 |
'WP_CRON_LOCK_TIMEOUT',
|
183 |
+
'WCJ_WC_VERSION',
|
184 |
);
|
185 |
foreach ( $constants_array as $the_constant ) {
|
186 |
$system_info[] = array( $the_constant, ( defined( $the_constant ) ? constant( $the_constant ) : __( 'NOT DEFINED', 'woocommerce-jetpack' ) ) );
|
includes/class-wcj-call-for-price.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Call for Price class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,9 +17,9 @@ class WCJ_Call_For_Price extends WCJ_module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
-
|
23 |
|
24 |
$this->id = 'call_for_price';
|
25 |
$this->short_desc = __( 'Call for Price', 'woocommerce-jetpack' );
|
@@ -35,7 +35,7 @@ class WCJ_Call_For_Price extends WCJ_module {
|
|
35 |
add_filter( 'woocommerce_sale_flash', array( $this, 'hide_sales_flash' ), 100, 3 );
|
36 |
|
37 |
if ( 'yes' === get_option( 'wcj_call_for_price_make_all_empty', 'no' ) ) {
|
38 |
-
add_filter(
|
39 |
}
|
40 |
}
|
41 |
}
|
@@ -53,14 +53,14 @@ class WCJ_Call_For_Price extends WCJ_module {
|
|
53 |
/**
|
54 |
* add_hook.
|
55 |
*/
|
56 |
-
|
57 |
add_filter( 'woocommerce_empty_price_html', array( $this, 'on_empty_price' ), PHP_INT_MAX );
|
58 |
}
|
59 |
|
60 |
/**
|
61 |
* Hide "sales" icon for empty price products.
|
62 |
*/
|
63 |
-
|
64 |
if ( get_option('wcj_call_for_price_hide_sale_sign') === 'yes' ) {
|
65 |
if ( $product->get_price() === '' ) {
|
66 |
return '';
|
@@ -72,18 +72,18 @@ class WCJ_Call_For_Price extends WCJ_module {
|
|
72 |
/**
|
73 |
* On empty price filter - return the label.
|
74 |
*/
|
75 |
-
|
76 |
-
if ( ( get_option('wcj_call_for_price_text') !== '' ) && is_single( get_the_ID() ) ) {
|
77 |
-
return do_shortcode( apply_filters( 'booster_get_option', $this->default_empty_price_text, get_option('wcj_call_for_price_text') ) );
|
78 |
}
|
79 |
-
if ( ( get_option('wcj_call_for_price_text_on_related') !== '' ) && ( is_single() ) && ( ! is_single( get_the_ID() ) ) ) {
|
80 |
-
return do_shortcode( apply_filters( 'booster_get_option', $this->default_empty_price_text, get_option('wcj_call_for_price_text_on_related') ) );
|
81 |
}
|
82 |
-
if ( ( get_option('wcj_call_for_price_text_on_archive') !== '' ) && is_archive() ) {
|
83 |
-
return do_shortcode( apply_filters( 'booster_get_option', $this->default_empty_price_text, get_option('wcj_call_for_price_text_on_archive') ) );
|
84 |
}
|
85 |
-
if ( ( get_option('wcj_call_for_price_text_on_home') !== '' ) && is_front_page() ) {
|
86 |
-
return do_shortcode( apply_filters( 'booster_get_option', $this->default_empty_price_text, get_option('wcj_call_for_price_text_on_home') ) );
|
87 |
}
|
88 |
|
89 |
// No changes
|
@@ -93,14 +93,15 @@ class WCJ_Call_For_Price extends WCJ_module {
|
|
93 |
/**
|
94 |
* Get settings array.
|
95 |
*
|
96 |
-
* @version 2.
|
97 |
*/
|
98 |
function get_settings() {
|
99 |
$settings = array(
|
100 |
array(
|
101 |
'title' => __( 'Call for Price Options', 'woocommerce-jetpack' ),
|
102 |
'type' => 'title',
|
103 |
-
'desc' => __( 'Leave price empty when adding or editing products. Then set the options here.', 'woocommerce-jetpack' )
|
|
|
104 |
'id' => 'wcj_call_for_price_options',
|
105 |
),
|
106 |
array(
|
4 |
*
|
5 |
* The WooCommerce Jetpack Call for Price class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
|
24 |
$this->id = 'call_for_price';
|
25 |
$this->short_desc = __( 'Call for Price', 'woocommerce-jetpack' );
|
35 |
add_filter( 'woocommerce_sale_flash', array( $this, 'hide_sales_flash' ), 100, 3 );
|
36 |
|
37 |
if ( 'yes' === get_option( 'wcj_call_for_price_make_all_empty', 'no' ) ) {
|
38 |
+
add_filter( WCJ_PRODUCT_GET_PRICE_FILTER, array( $this, 'make_empty_price' ), PHP_INT_MAX, 2 );
|
39 |
}
|
40 |
}
|
41 |
}
|
53 |
/**
|
54 |
* add_hook.
|
55 |
*/
|
56 |
+
function add_hook() {
|
57 |
add_filter( 'woocommerce_empty_price_html', array( $this, 'on_empty_price' ), PHP_INT_MAX );
|
58 |
}
|
59 |
|
60 |
/**
|
61 |
* Hide "sales" icon for empty price products.
|
62 |
*/
|
63 |
+
function hide_sales_flash( $onsale_html, $post, $product ) {
|
64 |
if ( get_option('wcj_call_for_price_hide_sale_sign') === 'yes' ) {
|
65 |
if ( $product->get_price() === '' ) {
|
66 |
return '';
|
72 |
/**
|
73 |
* On empty price filter - return the label.
|
74 |
*/
|
75 |
+
function on_empty_price( $price ) {
|
76 |
+
if ( ( get_option( 'wcj_call_for_price_text' ) !== '' ) && is_single( get_the_ID() ) ) {
|
77 |
+
return do_shortcode( apply_filters( 'booster_get_option', $this->default_empty_price_text, get_option( 'wcj_call_for_price_text' ) ) );
|
78 |
}
|
79 |
+
if ( ( get_option( 'wcj_call_for_price_text_on_related' ) !== '' ) && ( is_single() ) && ( ! is_single( get_the_ID() ) ) ) {
|
80 |
+
return do_shortcode( apply_filters( 'booster_get_option', $this->default_empty_price_text, get_option( 'wcj_call_for_price_text_on_related' ) ) );
|
81 |
}
|
82 |
+
if ( ( get_option( 'wcj_call_for_price_text_on_archive' ) !== '' ) && is_archive() ) {
|
83 |
+
return do_shortcode( apply_filters( 'booster_get_option', $this->default_empty_price_text, get_option( 'wcj_call_for_price_text_on_archive' ) ) );
|
84 |
}
|
85 |
+
if ( ( get_option( 'wcj_call_for_price_text_on_home' ) !== '' ) && is_front_page() ) {
|
86 |
+
return do_shortcode( apply_filters( 'booster_get_option', $this->default_empty_price_text, get_option( 'wcj_call_for_price_text_on_home' ) ) );
|
87 |
}
|
88 |
|
89 |
// No changes
|
93 |
/**
|
94 |
* Get settings array.
|
95 |
*
|
96 |
+
* @version 2.7.0
|
97 |
*/
|
98 |
function get_settings() {
|
99 |
$settings = array(
|
100 |
array(
|
101 |
'title' => __( 'Call for Price Options', 'woocommerce-jetpack' ),
|
102 |
'type' => 'title',
|
103 |
+
'desc' => __( 'Leave price empty when adding or editing products. Then set the options here.', 'woocommerce-jetpack' ) .
|
104 |
+
' ' . __( 'You can use shortcodes in options.', 'woocommerce-jetpack' ),
|
105 |
'id' => 'wcj_call_for_price_options',
|
106 |
),
|
107 |
array(
|
includes/class-wcj-cart-customization.php
ADDED
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WooCommerce Jetpack Cart Customization
|
4 |
+
*
|
5 |
+
* The WooCommerce Jetpack Cart Customization class.
|
6 |
+
*
|
7 |
+
* @version 2.7.0
|
8 |
+
* @since 2.7.0
|
9 |
+
* @author Algoritmika Ltd.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
13 |
+
|
14 |
+
if ( ! class_exists( 'WCJ_Cart_Customization' ) ) :
|
15 |
+
|
16 |
+
class WCJ_Cart_Customization extends WCJ_Module {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Constructor.
|
20 |
+
*
|
21 |
+
* @version 2.7.0
|
22 |
+
* @since 2.7.0
|
23 |
+
*/
|
24 |
+
function __construct() {
|
25 |
+
|
26 |
+
$this->id = 'cart_customization';
|
27 |
+
$this->short_desc = __( 'Cart Customization', 'woocommerce-jetpack' );
|
28 |
+
$this->desc = __( 'Customize WooCommerce cart - hide coupon field; item remove link.', 'woocommerce-jetpack' );
|
29 |
+
$this->link = 'http://booster.io/features/woocommerce-cart-customization/';
|
30 |
+
parent::__construct();
|
31 |
+
|
32 |
+
add_action( 'init', array( $this, 'add_settings_hook' ) );
|
33 |
+
|
34 |
+
if ( $this->is_enabled() ) {
|
35 |
+
// Hide coupon
|
36 |
+
if ( 'yes' === get_option( 'wcj_cart_hide_coupon', 'no' ) ) {
|
37 |
+
add_filter( 'woocommerce_coupons_enabled', array( $this, 'hide_coupon_field_on_cart' ), PHP_INT_MAX );
|
38 |
+
}
|
39 |
+
// Hide item remove link
|
40 |
+
if ( 'yes' === get_option( 'wcj_cart_hide_item_remove_link', 'no' ) ) {
|
41 |
+
add_filter( 'woocommerce_cart_item_remove_link', '__return_empty_string', PHP_INT_MAX );
|
42 |
+
}
|
43 |
+
}
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* hide_coupon_field_on_cart.
|
48 |
+
*
|
49 |
+
* @version 2.6.0
|
50 |
+
* @since 2.6.0
|
51 |
+
*/
|
52 |
+
function hide_coupon_field_on_cart( $enabled ) {
|
53 |
+
return ( is_cart() ) ? false : $enabled;
|
54 |
+
}
|
55 |
+
|
56 |
+
/*
|
57 |
+
* add_settings.
|
58 |
+
*
|
59 |
+
* @version 2.7.0
|
60 |
+
* @since 2.7.0
|
61 |
+
*/
|
62 |
+
function add_settings() {
|
63 |
+
return array(
|
64 |
+
array(
|
65 |
+
'title' => __( 'Options', 'woocommerce-jetpack' ),
|
66 |
+
'type' => 'title',
|
67 |
+
'id' => 'wcj_cart_customization_options',
|
68 |
+
),
|
69 |
+
array(
|
70 |
+
'title' => __( 'Hide Coupon on Cart Page', 'woocommerce-jetpack' ),
|
71 |
+
'desc' => __( 'Hide', 'woocommerce-jetpack' ),
|
72 |
+
'id' => 'wcj_cart_hide_coupon',
|
73 |
+
'default' => 'no',
|
74 |
+
'type' => 'checkbox',
|
75 |
+
),
|
76 |
+
array(
|
77 |
+
'title' => __( 'Hide Item Remove Link', 'woocommerce-jetpack' ),
|
78 |
+
'desc' => __( 'Hide', 'woocommerce-jetpack' ),
|
79 |
+
'id' => 'wcj_cart_hide_item_remove_link',
|
80 |
+
'default' => 'no',
|
81 |
+
'type' => 'checkbox',
|
82 |
+
),
|
83 |
+
array(
|
84 |
+
'type' => 'sectionend',
|
85 |
+
'id' => 'wcj_cart_customization_options',
|
86 |
+
),
|
87 |
+
);
|
88 |
+
}
|
89 |
+
|
90 |
+
}
|
91 |
+
|
92 |
+
endif;
|
93 |
+
|
94 |
+
return new WCJ_Cart_Customization();
|
includes/class-wcj-checkout-core-fields.php
CHANGED
@@ -19,7 +19,7 @@ class WCJ_Checkout_Core_Fields extends WCJ_Module {
|
|
19 |
*
|
20 |
* @version 2.5.0
|
21 |
*/
|
22 |
-
|
23 |
|
24 |
$this->id = 'checkout_core_fields';
|
25 |
$this->short_desc = __( 'Checkout Core Fields', 'woocommerce-jetpack' );
|
19 |
*
|
20 |
* @version 2.5.0
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
|
24 |
$this->id = 'checkout_core_fields';
|
25 |
$this->short_desc = __( 'Checkout Core Fields', 'woocommerce-jetpack' );
|
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 |
|
@@ -249,7 +249,7 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
|
|
249 |
$the_section = get_option( 'wcj_checkout_custom_field_section_' . $i );
|
250 |
if ( 'shipping' === $the_section ) {
|
251 |
$option_name = $the_section . '_' . 'wcj_checkout_field_' . $i;
|
252 |
-
$fields[ $option_name ] = get_post_meta( $order
|
253 |
}
|
254 |
//}
|
255 |
}
|
@@ -296,11 +296,11 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
|
|
296 |
/**
|
297 |
* add_custom_fields_to_order_display.
|
298 |
*
|
299 |
-
* @version 2.
|
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
|
304 |
$final_output = '';
|
305 |
foreach( $post_meta as $key => $values ) {
|
306 |
|
@@ -610,7 +610,7 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
|
|
610 |
/**
|
611 |
* get_settings.
|
612 |
*
|
613 |
-
* @version 2.
|
614 |
*/
|
615 |
public function get_settings() {
|
616 |
|
@@ -654,7 +654,7 @@ class WCJ_Checkout_Custom_Fields extends WCJ_Module {
|
|
654 |
),
|
655 |
array(
|
656 |
'title' => __( 'Custom Fields Number', 'woocommerce-jetpack' ),
|
657 |
-
'desc_tip' => __( 'Click
|
658 |
'id' => 'wcj_checkout_custom_fields_total_number',
|
659 |
'default' => 1,
|
660 |
'type' => 'custom_number',
|
4 |
*
|
5 |
* The WooCommerce Jetpack Checkout Custom Fields class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
249 |
$the_section = get_option( 'wcj_checkout_custom_field_section_' . $i );
|
250 |
if ( 'shipping' === $the_section ) {
|
251 |
$option_name = $the_section . '_' . 'wcj_checkout_field_' . $i;
|
252 |
+
$fields[ $option_name ] = get_post_meta( wcj_get_order_id( $order ), '_' . $option_name, true );
|
253 |
}
|
254 |
//}
|
255 |
}
|
296 |
/**
|
297 |
* add_custom_fields_to_order_display.
|
298 |
*
|
299 |
+
* @version 2.7.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( wcj_get_order_id( $order ) );
|
304 |
$final_output = '';
|
305 |
foreach( $post_meta as $key => $values ) {
|
306 |
|
610 |
/**
|
611 |
* get_settings.
|
612 |
*
|
613 |
+
* @version 2.7.0
|
614 |
*/
|
615 |
public function get_settings() {
|
616 |
|
654 |
),
|
655 |
array(
|
656 |
'title' => __( 'Custom Fields Number', 'woocommerce-jetpack' ),
|
657 |
+
'desc_tip' => __( 'Click Save changes after you change this number.', 'woocommerce-jetpack' ),
|
658 |
'id' => 'wcj_checkout_custom_fields_total_number',
|
659 |
'default' => 1,
|
660 |
'type' => 'custom_number',
|
includes/class-wcj-checkout-custom-info.php
CHANGED
@@ -20,7 +20,7 @@ class WCJ_Checkout_Custom_Info extends WCJ_Module {
|
|
20 |
*
|
21 |
* @version 2.4.7
|
22 |
*/
|
23 |
-
|
24 |
|
25 |
$this->id = 'checkout_custom_info';
|
26 |
$this->short_desc = __( 'Checkout Custom Info', 'woocommerce-jetpack' );
|
@@ -45,10 +45,10 @@ class WCJ_Checkout_Custom_Info extends WCJ_Module {
|
|
45 |
* @version 2.4.7
|
46 |
*/
|
47 |
function add_checkout_custom_info() {
|
48 |
-
$current_filter
|
49 |
$current_filter_priority = wcj_current_filter_priority();
|
50 |
$total_number = apply_filters( 'booster_get_option', 1, get_option( 'wcj_checkout_custom_info_total_number', 1 ) );
|
51 |
-
for ( $i = 1; $i <= $total_number; $i++) {
|
52 |
if (
|
53 |
'' != get_option( 'wcj_checkout_custom_info_content_' . $i ) &&
|
54 |
$current_filter === get_option( 'wcj_checkout_custom_info_hook_' . $i ) &&
|
@@ -65,23 +65,24 @@ class WCJ_Checkout_Custom_Info extends WCJ_Module {
|
|
65 |
* @version 2.6.0
|
66 |
*/
|
67 |
function get_settings() {
|
68 |
-
$settings = array(
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
|
|
85 |
);
|
86 |
$total_number = apply_filters( 'booster_get_option', 1, get_option( 'wcj_checkout_custom_info_total_number', 1 ) );
|
87 |
for ( $i = 1; $i <= $total_number; $i++) {
|
20 |
*
|
21 |
* @version 2.4.7
|
22 |
*/
|
23 |
+
function __construct() {
|
24 |
|
25 |
$this->id = 'checkout_custom_info';
|
26 |
$this->short_desc = __( 'Checkout Custom Info', 'woocommerce-jetpack' );
|
45 |
* @version 2.4.7
|
46 |
*/
|
47 |
function add_checkout_custom_info() {
|
48 |
+
$current_filter = current_filter();
|
49 |
$current_filter_priority = wcj_current_filter_priority();
|
50 |
$total_number = apply_filters( 'booster_get_option', 1, get_option( 'wcj_checkout_custom_info_total_number', 1 ) );
|
51 |
+
for ( $i = 1; $i <= $total_number; $i++ ) {
|
52 |
if (
|
53 |
'' != get_option( 'wcj_checkout_custom_info_content_' . $i ) &&
|
54 |
$current_filter === get_option( 'wcj_checkout_custom_info_hook_' . $i ) &&
|
65 |
* @version 2.6.0
|
66 |
*/
|
67 |
function get_settings() {
|
68 |
+
$settings = array(
|
69 |
+
array(
|
70 |
+
'title' => __( 'Checkout Custom Info Blocks', 'woocommerce-jetpack' ),
|
71 |
+
'type' => 'title',
|
72 |
+
'id' => 'wcj_checkout_custom_info_blocks_options',
|
73 |
+
),
|
74 |
+
array(
|
75 |
+
'title' => __( 'Total Blocks', 'woocommerce-jetpack' ),
|
76 |
+
'id' => 'wcj_checkout_custom_info_total_number',
|
77 |
+
'default' => 1,
|
78 |
+
'type' => 'custom_number',
|
79 |
+
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
80 |
+
'custom_attributes' => apply_filters( 'booster_get_message', '', 'readonly' ),
|
81 |
+
),
|
82 |
+
array(
|
83 |
+
'type' => 'sectionend',
|
84 |
+
'id' => 'wcj_checkout_custom_info_blocks_options',
|
85 |
+
),
|
86 |
);
|
87 |
$total_number = apply_filters( 'booster_get_option', 1, get_option( 'wcj_checkout_custom_info_total_number', 1 ) );
|
88 |
for ( $i = 1; $i <= $total_number; $i++) {
|
includes/class-wcj-checkout-customization.php
ADDED
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WooCommerce Jetpack Checkout Customization
|
4 |
+
*
|
5 |
+
* The WooCommerce Jetpack Checkout Customization class.
|
6 |
+
*
|
7 |
+
* @version 2.7.0
|
8 |
+
* @since 2.7.0
|
9 |
+
* @author Algoritmika Ltd.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
13 |
+
|
14 |
+
if ( ! class_exists( 'WCJ_Checkout_Customization' ) ) :
|
15 |
+
|
16 |
+
class WCJ_Checkout_Customization extends WCJ_Module {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Constructor.
|
20 |
+
*
|
21 |
+
* @version 2.7.0
|
22 |
+
* @since 2.7.0
|
23 |
+
*/
|
24 |
+
function __construct() {
|
25 |
+
|
26 |
+
$this->id = 'checkout_customization';
|
27 |
+
$this->short_desc = __( 'Checkout Customization', 'woocommerce-jetpack' );
|
28 |
+
$this->desc = __( 'Customize WooCommerce checkout - hide "Order Again" button etc.', 'woocommerce-jetpack' );
|
29 |
+
$this->link = 'http://booster.io/features/woocommerce-checkout-customization/';
|
30 |
+
parent::__construct();
|
31 |
+
|
32 |
+
add_action( 'init', array( $this, 'add_settings_hook' ) );
|
33 |
+
|
34 |
+
if ( $this->is_enabled() ) {
|
35 |
+
// "Create an account?" Checkbox
|
36 |
+
if ( 'default' != ( $create_account_default = get_option( 'wcj_checkout_create_account_default_checked', 'default' ) ) ) {
|
37 |
+
if ( 'checked' === $create_account_default ) {
|
38 |
+
add_filter( 'woocommerce_create_account_default_checked', '__return_true' );
|
39 |
+
} elseif ( 'not_checked' === $create_account_default ) {
|
40 |
+
add_filter( 'woocommerce_create_account_default_checked', '__return_false' );
|
41 |
+
}
|
42 |
+
}
|
43 |
+
// Hide "Order Again" button
|
44 |
+
if ( 'yes' === get_option( 'wcj_checkout_hide_order_again', 'no' ) ) {
|
45 |
+
add_action( 'init', array( $this, 'checkout_hide_order_again' ), PHP_INT_MAX );
|
46 |
+
}
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* checkout_hide_order_again.
|
52 |
+
*
|
53 |
+
* @version 2.6.0
|
54 |
+
* @since 2.6.0
|
55 |
+
*/
|
56 |
+
function checkout_hide_order_again() {
|
57 |
+
remove_action( 'woocommerce_order_details_after_order_table', 'woocommerce_order_again_button' );
|
58 |
+
}
|
59 |
+
|
60 |
+
/*
|
61 |
+
* add_settings.
|
62 |
+
*
|
63 |
+
* @version 2.7.0
|
64 |
+
* @since 2.7.0
|
65 |
+
*/
|
66 |
+
function add_settings() {
|
67 |
+
return array(
|
68 |
+
array(
|
69 |
+
'title' => __( 'Options', 'woocommerce-jetpack' ),
|
70 |
+
'type' => 'title',
|
71 |
+
'id' => 'wcj_checkout_customization_options',
|
72 |
+
),
|
73 |
+
array(
|
74 |
+
'title' => __( '"Create an account?" Checkbox', 'woocommerce-jetpack' ),
|
75 |
+
'desc_tip' => __( '"Create an account?" checkbox default value', 'woocommerce-jetpack' ),
|
76 |
+
'id' => 'wcj_checkout_create_account_default_checked',
|
77 |
+
'default' => 'default',
|
78 |
+
'type' => 'select',
|
79 |
+
'options' => array(
|
80 |
+
'default' => __( 'WooCommerce default', 'woocommerce-jetpack' ),
|
81 |
+
'checked' => __( 'Checked', 'woocommerce-jetpack' ),
|
82 |
+
'not_checked' => __( 'Not checked', 'woocommerce-jetpack' ),
|
83 |
+
),
|
84 |
+
),
|
85 |
+
array(
|
86 |
+
'title' => __( 'Hide "Order Again" Button on "View Order" Page', 'woocommerce-jetpack' ),
|
87 |
+
'desc' => __( 'Hide', 'woocommerce-jetpack' ),
|
88 |
+
'id' => 'wcj_checkout_hide_order_again',
|
89 |
+
'default' => 'no',
|
90 |
+
'type' => 'checkbox',
|
91 |
+
),
|
92 |
+
array(
|
93 |
+
'type' => 'sectionend',
|
94 |
+
'id' => 'wcj_checkout_customization_options',
|
95 |
+
),
|
96 |
+
);
|
97 |
+
}
|
98 |
+
|
99 |
+
}
|
100 |
+
|
101 |
+
endif;
|
102 |
+
|
103 |
+
return new WCJ_Checkout_Customization();
|
includes/class-wcj-checkout-files-upload.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Checkout Files Upload class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.4.5
|
9 |
* @author Algoritmika Ltd.
|
10 |
* @todo styling options;
|
@@ -56,7 +56,7 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
|
|
56 |
/**
|
57 |
* add_files_to_email_attachments.
|
58 |
*
|
59 |
-
* @version 2.
|
60 |
* @since 2.5.5
|
61 |
*/
|
62 |
function add_files_to_email_attachments( $attachments, $status, $order ) {
|
@@ -64,9 +64,9 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
|
|
64 |
( 'new_order' === $status && 'yes' === get_option( 'wcj_checkout_files_upload_attach_to_admin_new_order', 'yes' ) ) ||
|
65 |
( 'customer_processing_order' === $status && 'yes' === get_option( 'wcj_checkout_files_upload_attach_to_customer_processing_order', 'yes' ) )
|
66 |
) {
|
67 |
-
$total_files = get_post_meta( $order
|
68 |
for ( $i = 1; $i <= $total_files; $i++ ) {
|
69 |
-
$attachments[] = wcj_get_wcj_uploads_dir( 'checkout_files_upload' ) . '/' . get_post_meta( $order
|
70 |
}
|
71 |
}
|
72 |
return $attachments;
|
@@ -75,11 +75,11 @@ class WCJ_Checkout_Files_Upload extends WCJ_Module {
|
|
75 |
/**
|
76 |
* add_files_to_order_display.
|
77 |
*
|
78 |
-
* @version 2.
|
79 |
* @since 2.4.7
|
80 |
*/
|
81 |
function add_files_to_order_display( $order ) {
|
82 |
-
$order_id = $order
|
83 |
$html = '';
|
84 |
$total_files = get_post_meta( $order_id, '_' . 'wcj_checkout_files_total_files', true );
|
85 |
for ( $i = 1; $i <= $total_files; $i++ ) {
|
4 |
*
|
5 |
* The WooCommerce Jetpack Checkout Files Upload class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.4.5
|
9 |
* @author Algoritmika Ltd.
|
10 |
* @todo styling options;
|
56 |
/**
|
57 |
* add_files_to_email_attachments.
|
58 |
*
|
59 |
+
* @version 2.7.0
|
60 |
* @since 2.5.5
|
61 |
*/
|
62 |
function add_files_to_email_attachments( $attachments, $status, $order ) {
|
64 |
( 'new_order' === $status && 'yes' === get_option( 'wcj_checkout_files_upload_attach_to_admin_new_order', 'yes' ) ) ||
|
65 |
( 'customer_processing_order' === $status && 'yes' === get_option( 'wcj_checkout_files_upload_attach_to_customer_processing_order', 'yes' ) )
|
66 |
) {
|
67 |
+
$total_files = get_post_meta( wcj_get_order_id( $order ), '_' . 'wcj_checkout_files_total_files', true );
|
68 |
for ( $i = 1; $i <= $total_files; $i++ ) {
|
69 |
+
$attachments[] = wcj_get_wcj_uploads_dir( 'checkout_files_upload' ) . '/' . get_post_meta( wcj_get_order_id( $order ), '_' . 'wcj_checkout_files_upload_' . $i, true );
|
70 |
}
|
71 |
}
|
72 |
return $attachments;
|
75 |
/**
|
76 |
* add_files_to_order_display.
|
77 |
*
|
78 |
+
* @version 2.7.0
|
79 |
* @since 2.4.7
|
80 |
*/
|
81 |
function add_files_to_order_display( $order ) {
|
82 |
+
$order_id = wcj_get_order_id( $order );
|
83 |
$html = '';
|
84 |
$total_files = get_post_meta( $order_id, '_' . 'wcj_checkout_files_total_files', true );
|
85 |
for ( $i = 1; $i <= $total_files; $i++ ) {
|
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 |
*/
|
@@ -40,17 +40,22 @@ class WCJ_Crowdfunding extends WCJ_Module {
|
|
40 |
/**
|
41 |
* check_dates.
|
42 |
*
|
43 |
-
* @version 2.
|
44 |
*/
|
45 |
function check_dates( $purchasable, $_product ) {
|
46 |
-
$
|
|
|
47 |
if ( 0 != $goal ) {
|
48 |
-
$start_date_str = get_post_meta( $
|
49 |
-
$end_date_str = get_post_meta( $
|
50 |
-
$start_date
|
51 |
-
$end_date
|
52 |
-
if ( $start_date > 0 && ( $start_date - current_time( 'timestamp' ) ) > 0 )
|
53 |
-
|
|
|
|
|
|
|
|
|
54 |
}
|
55 |
return $purchasable;
|
56 |
}
|
@@ -84,22 +89,22 @@ class WCJ_Crowdfunding extends WCJ_Module {
|
|
84 |
/**
|
85 |
* get_settings.
|
86 |
*
|
87 |
-
* @version 2.
|
88 |
*/
|
89 |
function get_settings() {
|
90 |
-
$module_desc = __( 'When enabled, module will add Crowdfunding metabox to product edit.', 'woocommerce-jetpack' )
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
return $this->add_standard_settings( array(), $module_desc );
|
104 |
}
|
105 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Crowdfunding class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.6
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
40 |
/**
|
41 |
* check_dates.
|
42 |
*
|
43 |
+
* @version 2.7.0
|
44 |
*/
|
45 |
function check_dates( $purchasable, $_product ) {
|
46 |
+
$_product_id = wcj_get_product_id_or_variation_parent_id( $_product );
|
47 |
+
$goal = get_post_meta( $_product_id, '_' . 'wcj_crowdfunding_goal_sum', true );
|
48 |
if ( 0 != $goal ) {
|
49 |
+
$start_date_str = get_post_meta( $_product_id, '_' . 'wcj_crowdfunding_startdate', true );
|
50 |
+
$end_date_str = get_post_meta( $_product_id, '_' . 'wcj_crowdfunding_deadline', true );
|
51 |
+
$start_date = ( '' != $start_date_str ) ? strtotime( $start_date_str ) : 0;
|
52 |
+
$end_date = ( '' != $end_date_str ) ? strtotime( $end_date_str ) : 0;
|
53 |
+
if ( $start_date > 0 && ( $start_date - current_time( 'timestamp' ) ) > 0 ) {
|
54 |
+
$purchasable = false;
|
55 |
+
}
|
56 |
+
if ( $end_date > 0 && ( $end_date - current_time( 'timestamp' ) ) < 0 ) {
|
57 |
+
$purchasable = false;
|
58 |
+
}
|
59 |
}
|
60 |
return $purchasable;
|
61 |
}
|
89 |
/**
|
90 |
* get_settings.
|
91 |
*
|
92 |
+
* @version 2.7.0
|
93 |
*/
|
94 |
function get_settings() {
|
95 |
+
$module_desc = __( 'When enabled, module will add Crowdfunding metabox to product edit.', 'woocommerce-jetpack' ) . '<br>' .
|
96 |
+
sprintf(
|
97 |
+
__( 'To add crowdfunding info to the product, use <a href="%s" target="_blank">Booster\'s crowdfunding shortcodes</a>.', 'woocommerce-jetpack' ),
|
98 |
+
'http://booster.io/category/shortcodes/products-crowdfunding/'
|
99 |
+
) . ' ' .
|
100 |
+
sprintf(
|
101 |
+
__( 'Shortcodes could be used for example in <a href="%s">Product Info module</a>.', 'woocommerce-jetpack' ),
|
102 |
+
admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=products§ion=product_custom_info' )
|
103 |
+
) . '<br>' .
|
104 |
+
sprintf(
|
105 |
+
__( 'To change add to cart button labels use <a href="%s">Add to Cart Labels module</a>.', 'woocommerce-jetpack' ),
|
106 |
+
admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=labels§ion=add_to_cart' )
|
107 |
+
);
|
108 |
return $this->add_standard_settings( array(), $module_desc );
|
109 |
}
|
110 |
}
|
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 |
*/
|
@@ -18,7 +18,7 @@ class WCJ_Currency_Exchange_Rates extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
@@ -30,12 +30,26 @@ class WCJ_Currency_Exchange_Rates extends WCJ_Module {
|
|
30 |
|
31 |
add_filter( 'init', array( $this, 'add_hooks' ) );
|
32 |
|
|
|
|
|
|
|
33 |
if ( $this->is_enabled() ) {
|
34 |
include_once( 'exchange-rates/class-wcj-exchange-rates-crons.php' );
|
35 |
}
|
36 |
include_once( 'exchange-rates/class-wcj-exchange-rates.php' );
|
37 |
}
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
/**
|
40 |
* get_settings.
|
41 |
*
|
@@ -87,12 +101,9 @@ class WCJ_Currency_Exchange_Rates extends WCJ_Module {
|
|
87 |
/**
|
88 |
* add_currency_exchange_rates_settings.
|
89 |
*
|
90 |
-
* @version 2.
|
91 |
*/
|
92 |
function add_currency_exchange_rates_settings() {
|
93 |
-
|
94 |
-
$settings = array();
|
95 |
-
|
96 |
$desc = '';
|
97 |
if ( $this->is_enabled() ) {
|
98 |
if ( '' != get_option( 'wcj_currency_exchange_rate_cron_time', '' ) ) {
|
@@ -104,57 +115,68 @@ class WCJ_Currency_Exchange_Rates extends WCJ_Module {
|
|
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 |
-
$settings[] = array(
|
131 |
-
'title' => __( 'Exchange Rates Server', 'woocommerce-jetpack' ),
|
132 |
-
'id' => 'wcj_currency_exchange_rates_server',
|
133 |
-
'default' => 'yahoo',
|
134 |
-
'type' => 'select',
|
135 |
-
'options' => wcj_get_currency_exchange_rate_servers(),
|
136 |
-
);
|
137 |
-
|
138 |
-
$settings[] = array(
|
139 |
-
'title' => __( 'Exchange Rates Offset - Percent', 'woocommerce-jetpack' ),
|
140 |
-
'desc_tip' => __( 'If both percent and fixed offsets are set - percent offset is applied first and fixed offset after that.', 'woocommerce-jetpack' ),
|
141 |
-
'id' => 'wcj_currency_exchange_rates_offset_percent',
|
142 |
-
'default' => 0,
|
143 |
-
'type' => 'number',
|
144 |
-
'custom_attributes' => array( 'step' => '0.001' ),
|
145 |
-
);
|
146 |
-
|
147 |
-
$settings[] = array(
|
148 |
-
'title' => __( 'Exchange Rates Offset - Fixed', 'woocommerce-jetpack' ),
|
149 |
-
'desc_tip' => __( 'If both percent and fixed offsets are set - percent offset is applied first and fixed offset after that.', 'woocommerce-jetpack' ),
|
150 |
-
'id' => 'wcj_currency_exchange_rates_offset_fixed',
|
151 |
-
'default' => 0,
|
152 |
-
'type' => 'number',
|
153 |
-
'custom_attributes' => array( 'step' => '0.000001' ),
|
154 |
-
);
|
155 |
-
|
156 |
$currency_from = get_option( 'woocommerce_currency' );
|
157 |
-
|
158 |
if ( wcj_is_module_enabled( 'price_by_country' ) ) {
|
159 |
// Currency Pairs - Price by Country
|
160 |
if ( 'manual' != apply_filters( 'booster_get_option', 'manual', get_option( 'wcj_price_by_country_auto_exchange_rates', 'manual' ) ) ) {
|
@@ -164,7 +186,6 @@ class WCJ_Currency_Exchange_Rates extends WCJ_Module {
|
|
164 |
}
|
165 |
}
|
166 |
}
|
167 |
-
|
168 |
if ( wcj_is_module_enabled( 'multicurrency' ) ) {
|
169 |
// Currency Pairs - Multicurrency
|
170 |
if ( 'manual' != apply_filters( 'booster_get_option', 'manual', get_option( 'wcj_multicurrency_exchange_rate_update_auto', 'manual' ) ) ) {
|
@@ -174,7 +195,6 @@ class WCJ_Currency_Exchange_Rates extends WCJ_Module {
|
|
174 |
}
|
175 |
}
|
176 |
}
|
177 |
-
|
178 |
if ( wcj_is_module_enabled( 'multicurrency_base_price' ) ) {
|
179 |
// Currency Pairs - Multicurrency Product Base Price
|
180 |
if ( 'manual' != apply_filters( 'booster_get_option', 'manual', get_option( 'wcj_multicurrency_base_price_exchange_rate_update', 'manual' ) ) ) {
|
@@ -184,7 +204,6 @@ class WCJ_Currency_Exchange_Rates extends WCJ_Module {
|
|
184 |
}
|
185 |
}
|
186 |
}
|
187 |
-
|
188 |
if ( wcj_is_module_enabled( 'currency_per_product' ) ) {
|
189 |
// Currency Pairs - Currency per Product
|
190 |
if ( 'manual' != apply_filters( 'booster_get_option', 'manual', get_option( 'wcj_currency_per_product_exchange_rate_update', 'manual' ) ) ) {
|
@@ -194,7 +213,6 @@ class WCJ_Currency_Exchange_Rates extends WCJ_Module {
|
|
194 |
}
|
195 |
}
|
196 |
}
|
197 |
-
|
198 |
if ( wcj_is_module_enabled( 'payment_gateways_currency' ) ) {
|
199 |
if ( 'manual' != apply_filters( 'booster_get_option', 'manual', get_option( 'wcj_gateways_currency_exchange_rate_update_auto', 'manual' ) ) ) {
|
200 |
// Currency Pairs - Gateway Currency
|
@@ -208,20 +226,21 @@ class WCJ_Currency_Exchange_Rates extends WCJ_Module {
|
|
208 |
}
|
209 |
}
|
210 |
}
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
|
|
225 |
return $settings;
|
226 |
}
|
227 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Currency Exchange Rates class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.3.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
30 |
|
31 |
add_filter( 'init', array( $this, 'add_hooks' ) );
|
32 |
|
33 |
+
add_action( 'wp_ajax_' . 'wcj_ajax_get_exchange_rates', array( $this, 'wcj_ajax_get_exchange_rates' ) );
|
34 |
+
add_action( 'wp_ajax_nopriv_' . 'wcj_ajax_get_exchange_rates', array( $this, 'wcj_ajax_get_exchange_rates' ) );
|
35 |
+
|
36 |
if ( $this->is_enabled() ) {
|
37 |
include_once( 'exchange-rates/class-wcj-exchange-rates-crons.php' );
|
38 |
}
|
39 |
include_once( 'exchange-rates/class-wcj-exchange-rates.php' );
|
40 |
}
|
41 |
|
42 |
+
/**
|
43 |
+
* wcj_ajax_get_exchange_rates.
|
44 |
+
*
|
45 |
+
* @version 2.7.0
|
46 |
+
* @since 2.6.0
|
47 |
+
*/
|
48 |
+
function wcj_ajax_get_exchange_rates() {
|
49 |
+
echo alg_get_exchange_rate( $_POST['wcj_currency_from'], $_POST['wcj_currency_to'] );
|
50 |
+
die();
|
51 |
+
}
|
52 |
+
|
53 |
/**
|
54 |
* get_settings.
|
55 |
*
|
101 |
/**
|
102 |
* add_currency_exchange_rates_settings.
|
103 |
*
|
104 |
+
* @version 2.7.0
|
105 |
*/
|
106 |
function add_currency_exchange_rates_settings() {
|
|
|
|
|
|
|
107 |
$desc = '';
|
108 |
if ( $this->is_enabled() ) {
|
109 |
if ( '' != get_option( 'wcj_currency_exchange_rate_cron_time', '' ) ) {
|
115 |
}
|
116 |
}
|
117 |
}
|
118 |
+
$settings = array(
|
119 |
+
array(
|
120 |
+
'title' => __( 'Exchange Rates', 'woocommerce-jetpack' ),
|
121 |
+
'type' => 'title',
|
122 |
+
'desc' => __( 'All currencies from all <strong>enabled</strong> modules (with "Exchange Rates Updates" set to "Automatically via Currency Exchange Rates module") will be automatically added to the list.', 'woocommerce-jetpack' ) . $desc,
|
123 |
+
'id' => 'wcj_currency_exchange_rates_options',
|
124 |
+
),
|
125 |
+
array(
|
126 |
+
'title' => __( 'Exchange Rates Updates', 'woocommerce-jetpack' ),
|
127 |
+
'id' => 'wcj_currency_exchange_rates_auto',
|
128 |
+
'default' => 'daily',
|
129 |
+
'type' => 'select',
|
130 |
+
'options' => array(
|
131 |
+
// 'manual' => __( 'Enter Rates Manually', 'woocommerce-jetpack' ),
|
132 |
+
'minutely' => __( 'Update Every Minute', 'woocommerce-jetpack' ),
|
133 |
+
'hourly' => __( 'Update Hourly', 'woocommerce-jetpack' ),
|
134 |
+
'twicedaily' => __( 'Update Twice Daily', 'woocommerce-jetpack' ),
|
135 |
+
'daily' => __( 'Update Daily', 'woocommerce-jetpack' ),
|
136 |
+
'weekly' => __( 'Update Weekly', 'woocommerce-jetpack' ),
|
137 |
+
),
|
138 |
+
),
|
139 |
+
array(
|
140 |
+
'title' => __( 'Exchange Rates Server', 'woocommerce-jetpack' ),
|
141 |
+
'id' => 'wcj_currency_exchange_rates_server',
|
142 |
+
'default' => 'yahoo',
|
143 |
+
'type' => 'select',
|
144 |
+
'options' => wcj_get_currency_exchange_rate_servers(),
|
145 |
+
),
|
146 |
+
array(
|
147 |
+
'title' => __( 'Exchange Rates Offset - Percent', 'woocommerce-jetpack' ),
|
148 |
+
'desc_tip' => __( 'If both percent and fixed offsets are set - percent offset is applied first and fixed offset after that.', 'woocommerce-jetpack' ),
|
149 |
+
'id' => 'wcj_currency_exchange_rates_offset_percent',
|
150 |
+
'default' => 0,
|
151 |
+
'type' => 'number',
|
152 |
+
'custom_attributes' => array( 'step' => '0.001' ),
|
153 |
+
),
|
154 |
+
array(
|
155 |
+
'title' => __( 'Exchange Rates Offset - Fixed', 'woocommerce-jetpack' ),
|
156 |
+
'desc_tip' => __( 'If both percent and fixed offsets are set - percent offset is applied first and fixed offset after that.', 'woocommerce-jetpack' ),
|
157 |
+
'id' => 'wcj_currency_exchange_rates_offset_fixed',
|
158 |
+
'default' => 0,
|
159 |
+
'type' => 'number',
|
160 |
+
'custom_attributes' => array( 'step' => '0.000001' ),
|
161 |
+
),
|
162 |
+
array(
|
163 |
+
'title' => __( 'Calculate with Inversion', 'woocommerce-jetpack' ),
|
164 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
165 |
+
'desc_tip' => __( 'If your currency pair have very small exchange rate, you may want to invert currencies before calculating the rate.', 'woocommerce-jetpack' ),
|
166 |
+
'id' => 'wcj_currency_exchange_rates_calculate_by_invert',
|
167 |
+
'default' => 'no',
|
168 |
+
'type' => 'checkbox',
|
169 |
+
),
|
170 |
+
array(
|
171 |
+
'title' => __( 'Always Use cURL', 'woocommerce-jetpack' ),
|
172 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
173 |
+
'desc_tip' => __( 'If for some reason currency exchange rates are not updating, try enabling this option.', 'woocommerce-jetpack' ),
|
174 |
+
'id' => 'wcj_currency_exchange_rates_always_curl',
|
175 |
+
'default' => 'no',
|
176 |
+
'type' => 'checkbox',
|
177 |
),
|
178 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
$currency_from = get_option( 'woocommerce_currency' );
|
|
|
180 |
if ( wcj_is_module_enabled( 'price_by_country' ) ) {
|
181 |
// Currency Pairs - Price by Country
|
182 |
if ( 'manual' != apply_filters( 'booster_get_option', 'manual', get_option( 'wcj_price_by_country_auto_exchange_rates', 'manual' ) ) ) {
|
186 |
}
|
187 |
}
|
188 |
}
|
|
|
189 |
if ( wcj_is_module_enabled( 'multicurrency' ) ) {
|
190 |
// Currency Pairs - Multicurrency
|
191 |
if ( 'manual' != apply_filters( 'booster_get_option', 'manual', get_option( 'wcj_multicurrency_exchange_rate_update_auto', 'manual' ) ) ) {
|
195 |
}
|
196 |
}
|
197 |
}
|
|
|
198 |
if ( wcj_is_module_enabled( 'multicurrency_base_price' ) ) {
|
199 |
// Currency Pairs - Multicurrency Product Base Price
|
200 |
if ( 'manual' != apply_filters( 'booster_get_option', 'manual', get_option( 'wcj_multicurrency_base_price_exchange_rate_update', 'manual' ) ) ) {
|
204 |
}
|
205 |
}
|
206 |
}
|
|
|
207 |
if ( wcj_is_module_enabled( 'currency_per_product' ) ) {
|
208 |
// Currency Pairs - Currency per Product
|
209 |
if ( 'manual' != apply_filters( 'booster_get_option', 'manual', get_option( 'wcj_currency_per_product_exchange_rate_update', 'manual' ) ) ) {
|
213 |
}
|
214 |
}
|
215 |
}
|
|
|
216 |
if ( wcj_is_module_enabled( 'payment_gateways_currency' ) ) {
|
217 |
if ( 'manual' != apply_filters( 'booster_get_option', 'manual', get_option( 'wcj_gateways_currency_exchange_rate_update_auto', 'manual' ) ) ) {
|
218 |
// Currency Pairs - Gateway Currency
|
226 |
}
|
227 |
}
|
228 |
}
|
229 |
+
$settings = array_merge( $settings, array(
|
230 |
+
/*
|
231 |
+
array(
|
232 |
+
'title' => __( 'Logging', 'woocommerce-jetpack' ),
|
233 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
234 |
+
'id' => 'wcj_currency_exchange_logging_enabled',
|
235 |
+
'default' => 'no',
|
236 |
+
'type' => 'checkbox',
|
237 |
+
),
|
238 |
+
*/
|
239 |
+
array(
|
240 |
+
'type' => 'sectionend',
|
241 |
+
'id' => 'wcj_currency_exchange_rates_options',
|
242 |
+
),
|
243 |
+
) );
|
244 |
return $settings;
|
245 |
}
|
246 |
}
|
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,9 +17,9 @@ class WCJ_Currency_External_Products extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
-
|
23 |
|
24 |
$this->id = 'currency_external_products';
|
25 |
$this->short_desc = __( 'Currency for External Products', 'woocommerce-jetpack' );
|
@@ -28,7 +28,7 @@ class WCJ_Currency_External_Products extends WCJ_Module {
|
|
28 |
parent::__construct();
|
29 |
|
30 |
if ( $this->is_enabled() ) {
|
31 |
-
if ( '' != get_option( 'wcj_currency_external_products_symbol' ) ) {
|
32 |
add_filter( 'woocommerce_currency_symbol', array( $this, 'change_currency_symbol' ), PHP_INT_MAX, 2 );
|
33 |
add_filter( 'woocommerce_currency', array( $this, 'change_currency_code' ), PHP_INT_MAX, 1 );
|
34 |
}
|
@@ -38,13 +38,13 @@ class WCJ_Currency_External_Products extends WCJ_Module {
|
|
38 |
/**
|
39 |
* change_currency_code.
|
40 |
*
|
41 |
-
* @version 2.
|
42 |
* @since 2.4.4
|
43 |
*/
|
44 |
-
|
45 |
global $product;
|
46 |
-
if ( is_object( $product ) &&
|
47 |
-
return get_option( 'wcj_currency_external_products_symbol' );
|
48 |
}
|
49 |
return $currency;
|
50 |
}
|
@@ -52,12 +52,12 @@ class WCJ_Currency_External_Products extends WCJ_Module {
|
|
52 |
/**
|
53 |
* change_currency_symbol.
|
54 |
*
|
55 |
-
* @version 2.
|
56 |
*/
|
57 |
-
|
58 |
global $product;
|
59 |
-
if ( is_object( $product ) &&
|
60 |
-
return wcj_get_currency_symbol( get_option( 'wcj_currency_external_products_symbol' ) );
|
61 |
}
|
62 |
return $currency_symbol;
|
63 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Currency for External Products class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
|
24 |
$this->id = 'currency_external_products';
|
25 |
$this->short_desc = __( 'Currency for External Products', 'woocommerce-jetpack' );
|
28 |
parent::__construct();
|
29 |
|
30 |
if ( $this->is_enabled() ) {
|
31 |
+
if ( '' != get_option( 'wcj_currency_external_products_symbol', 'EUR' ) ) {
|
32 |
add_filter( 'woocommerce_currency_symbol', array( $this, 'change_currency_symbol' ), PHP_INT_MAX, 2 );
|
33 |
add_filter( 'woocommerce_currency', array( $this, 'change_currency_code' ), PHP_INT_MAX, 1 );
|
34 |
}
|
38 |
/**
|
39 |
* change_currency_code.
|
40 |
*
|
41 |
+
* @version 2.7.0
|
42 |
* @since 2.4.4
|
43 |
*/
|
44 |
+
function change_currency_code( $currency ) {
|
45 |
global $product;
|
46 |
+
if ( is_object( $product ) && $product->is_type( 'external' ) ) {
|
47 |
+
return get_option( 'wcj_currency_external_products_symbol', 'EUR' );
|
48 |
}
|
49 |
return $currency;
|
50 |
}
|
52 |
/**
|
53 |
* change_currency_symbol.
|
54 |
*
|
55 |
+
* @version 2.7.0
|
56 |
*/
|
57 |
+
function change_currency_symbol( $currency_symbol, $currency ) {
|
58 |
global $product;
|
59 |
+
if ( is_object( $product ) && $product->is_type( 'external' ) ) {
|
60 |
+
return wcj_get_currency_symbol( get_option( 'wcj_currency_external_products_symbol', 'EUR' ) );
|
61 |
}
|
62 |
return $currency_symbol;
|
63 |
}
|
includes/class-wcj-currency-per-product.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Currency per Product class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.2
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -18,7 +18,7 @@ class WCJ_Currency_Per_Product extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
* @since 2.5.2
|
23 |
*/
|
24 |
function __construct() {
|
@@ -46,38 +46,124 @@ class WCJ_Currency_Per_Product extends WCJ_Module {
|
|
46 |
add_filter( 'woocommerce_add_cart_item_data', array( $this, 'add_cart_item_data' ), PHP_INT_MAX, 3 );
|
47 |
add_filter( 'woocommerce_add_cart_item', array( $this, 'add_cart_item' ), PHP_INT_MAX, 2 );
|
48 |
add_filter( 'woocommerce_get_cart_item_from_session', array( $this, 'get_cart_item_from_session' ), PHP_INT_MAX, 3 );
|
|
|
49 |
|
50 |
// Price
|
51 |
-
add_filter(
|
|
|
52 |
|
53 |
// Grouped
|
54 |
add_filter( 'woocommerce_grouped_price_html', array( $this, 'grouped_price_html' ), PHP_INT_MAX, 2 );
|
55 |
|
|
|
|
|
|
|
56 |
//}
|
57 |
}
|
58 |
}
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
/**
|
61 |
* grouped_price_html.
|
62 |
*
|
63 |
-
* @version 2.
|
64 |
* @since 2.5.2
|
65 |
*/
|
66 |
function grouped_price_html( $price_html, $_product ) {
|
67 |
-
$
|
68 |
-
|
69 |
-
|
70 |
-
foreach ( $_product->get_children() as $child_id )
|
71 |
$child_prices[ $child_id ] = get_post_meta( $child_id, '_price', true );
|
72 |
-
|
73 |
-
// $child_prices
|
74 |
-
$get_price_method = 'get_price_' . $tax_display_mode . 'uding_tax';
|
75 |
-
|
76 |
if ( ! empty( $child_prices ) ) {
|
77 |
-
/*
|
|
|
78 |
$max_price = max( $child_prices );
|
79 |
$min_price_id = min( array_keys( $child_prices, min( $child_prices ) ) );
|
80 |
-
$max_price_id = max( array_keys( $child_prices, max( $child_prices ) ) );
|
|
|
81 |
asort( $child_prices );
|
82 |
$min_price = current( $child_prices );
|
83 |
$min_price_id = key( $child_prices );
|
@@ -93,15 +179,13 @@ class WCJ_Currency_Per_Product extends WCJ_Module {
|
|
93 |
|
94 |
if ( $min_price ) {
|
95 |
if ( $min_price == $max_price && $min_currency_per_product_currency === $max_currency_per_product_currency ) {
|
96 |
-
$display_price = wc_price( $_product
|
97 |
} else {
|
98 |
-
$from = wc_price( $_product
|
99 |
-
$to = wc_price( $_product
|
100 |
$display_price = sprintf( _x( '%1$s–%2$s', 'Price range: from-to', 'woocommerce' ), $from, $to );
|
101 |
}
|
102 |
-
|
103 |
$new_price_html = $display_price . $_product->get_price_suffix();
|
104 |
-
|
105 |
return $new_price_html;
|
106 |
}
|
107 |
|
@@ -129,13 +213,38 @@ class WCJ_Currency_Per_Product extends WCJ_Module {
|
|
129 |
/**
|
130 |
* change_price.
|
131 |
*
|
132 |
-
* @version 2.
|
133 |
* @since 2.5.2
|
134 |
*/
|
135 |
function change_price( $price, $_product ) {
|
136 |
if ( isset( $_product->wcj_currency_per_product ) ) {
|
137 |
-
$
|
138 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
}
|
140 |
return $price;
|
141 |
}
|
@@ -181,41 +290,88 @@ class WCJ_Currency_Per_Product extends WCJ_Module {
|
|
181 |
}
|
182 |
|
183 |
/**
|
184 |
-
*
|
185 |
*
|
186 |
-
* @version 2.
|
187 |
-
* @since 2.
|
188 |
*/
|
189 |
-
|
190 |
$the_ID = get_the_ID();
|
191 |
if ( 0 == $the_ID && isset( $_REQUEST['product_id'] ) ) {
|
192 |
$the_ID = $_REQUEST['product_id'];
|
193 |
}
|
|
|
|
|
|
|
|
|
|
|
194 |
if ( 0 != $the_ID && 'product' === get_post_type( $the_ID ) ) {
|
195 |
$currency_per_product_currency = get_post_meta( $the_ID, '_' . 'wcj_currency_per_product_currency', true );
|
196 |
-
|
197 |
-
|
198 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
}
|
200 |
-
return
|
201 |
}
|
202 |
|
203 |
/**
|
204 |
* change_currency_symbol.
|
205 |
*
|
206 |
-
* @version 2.
|
207 |
* @since 2.5.2
|
208 |
*/
|
209 |
function change_currency_symbol( $currency_symbol, $currency ) {
|
210 |
-
$
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
if ( 0 != $the_ID && 'product' === get_post_type( $the_ID ) ) {
|
215 |
-
$currency_per_product_currency = get_post_meta( $the_ID, '_' . 'wcj_currency_per_product_currency', true );
|
216 |
-
if ( '' != $currency_per_product_currency ) {
|
217 |
-
return wcj_get_currency_symbol( $currency_per_product_currency );
|
218 |
-
}
|
219 |
}
|
220 |
return $currency_symbol;
|
221 |
}
|
@@ -247,31 +403,10 @@ class WCJ_Currency_Per_Product extends WCJ_Module {
|
|
247 |
return $options;
|
248 |
}
|
249 |
|
250 |
-
/**
|
251 |
-
* add_settings_hook.
|
252 |
-
*
|
253 |
-
* @version 2.5.2
|
254 |
-
* @since 2.5.2
|
255 |
-
*/
|
256 |
-
function add_settings_hook() {
|
257 |
-
add_filter( 'wcj_currency_per_product_settings', array( $this, 'add_settings' ) );
|
258 |
-
}
|
259 |
-
|
260 |
-
/**
|
261 |
-
* get_settings.
|
262 |
-
*
|
263 |
-
* @version 2.5.2
|
264 |
-
* @since 2.5.2
|
265 |
-
*/
|
266 |
-
function get_settings() {
|
267 |
-
$settings = apply_filters( 'wcj_currency_per_product_settings', array() );
|
268 |
-
return $this->add_standard_settings( $settings );
|
269 |
-
}
|
270 |
-
|
271 |
/**
|
272 |
* add_settings.
|
273 |
*
|
274 |
-
* @version 2.
|
275 |
* @since 2.5.2
|
276 |
*/
|
277 |
function add_settings() {
|
@@ -284,9 +419,45 @@ class WCJ_Currency_Per_Product extends WCJ_Module {
|
|
284 |
} */
|
285 |
$settings = array(
|
286 |
array(
|
287 |
-
'title' => __( 'Options', 'woocommerce-jetpack' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
'type' => 'title',
|
289 |
-
'id' => '
|
290 |
),
|
291 |
array(
|
292 |
'title' => __( 'Exchange Rates Updates', 'woocommerce-jetpack' ),
|
@@ -305,10 +476,11 @@ class WCJ_Currency_Per_Product extends WCJ_Module {
|
|
305 |
),
|
306 |
array(
|
307 |
'type' => 'sectionend',
|
308 |
-
'id' => '
|
309 |
),
|
310 |
array(
|
311 |
'title' => __( 'Currencies Options', 'woocommerce-jetpack' ),
|
|
|
312 |
'type' => 'title',
|
313 |
'id' => 'wcj_currency_per_product_currencies_options',
|
314 |
),
|
4 |
*
|
5 |
* The WooCommerce Jetpack Currency per Product class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.2
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
* @since 2.5.2
|
23 |
*/
|
24 |
function __construct() {
|
46 |
add_filter( 'woocommerce_add_cart_item_data', array( $this, 'add_cart_item_data' ), PHP_INT_MAX, 3 );
|
47 |
add_filter( 'woocommerce_add_cart_item', array( $this, 'add_cart_item' ), PHP_INT_MAX, 2 );
|
48 |
add_filter( 'woocommerce_get_cart_item_from_session', array( $this, 'get_cart_item_from_session' ), PHP_INT_MAX, 3 );
|
49 |
+
add_filter( 'woocommerce_add_to_cart_validation', array( $this, 'validate_on_add_to_cart' ), PHP_INT_MAX, 2 );
|
50 |
|
51 |
// Price
|
52 |
+
add_filter( WCJ_PRODUCT_GET_PRICE_FILTER, array( $this, 'change_price' ), PHP_INT_MAX, 2 );
|
53 |
+
add_filter( 'woocommerce_product_variation_get_price', array( $this, 'change_price' ), PHP_INT_MAX, 2 );
|
54 |
|
55 |
// Grouped
|
56 |
add_filter( 'woocommerce_grouped_price_html', array( $this, 'grouped_price_html' ), PHP_INT_MAX, 2 );
|
57 |
|
58 |
+
// Shipping
|
59 |
+
add_filter( 'woocommerce_package_rates', array( $this, 'change_shipping_price' ), PHP_INT_MAX, 2 );
|
60 |
+
|
61 |
//}
|
62 |
}
|
63 |
}
|
64 |
|
65 |
+
/**
|
66 |
+
* change_shipping_price.
|
67 |
+
*
|
68 |
+
* @version 2.7.0
|
69 |
+
* @since 2.7.0
|
70 |
+
*/
|
71 |
+
function change_shipping_price( $package_rates, $package ) {
|
72 |
+
if ( $this->is_cart_or_checkout_or_ajax() ) {
|
73 |
+
if ( WC()->cart->is_empty() ) {
|
74 |
+
return $package_rates;
|
75 |
+
}
|
76 |
+
$cart_checkout_behaviour = get_option( 'wcj_currency_per_product_cart_checkout', 'convert_shop_default' );
|
77 |
+
switch ( $cart_checkout_behaviour ) {
|
78 |
+
case 'leave_one_product':
|
79 |
+
case 'leave_same_currency':
|
80 |
+
case 'convert_first_product':
|
81 |
+
case 'convert_last_product':
|
82 |
+
$shop_currency = get_option( 'woocommerce_currency' );
|
83 |
+
if ( false != ( $_currency = $this->get_cart_checkout_currency() ) && $_currency != $shop_currency ) {
|
84 |
+
$currency_exchange_rate = $this->get_currency_exchange_rate( $_currency );
|
85 |
+
if ( 0 != $currency_exchange_rate && 1 != $currency_exchange_rate ) {
|
86 |
+
$currency_exchange_rate = 1 / $currency_exchange_rate;
|
87 |
+
$modified_package_rates = array();
|
88 |
+
foreach ( $package_rates as $id => $package_rate ) {
|
89 |
+
if ( isset( $package_rate->cost ) ) {
|
90 |
+
$package_rate->cost = $package_rate->cost * $currency_exchange_rate;
|
91 |
+
if ( isset( $package_rate->taxes ) && ! empty( $package_rate->taxes ) ) {
|
92 |
+
foreach ( $package_rate->taxes as $tax_id => $tax ) {
|
93 |
+
$package_rate->taxes[ $tax_id ] = $package_rate->taxes[ $tax_id ] * $currency_exchange_rate;
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}
|
97 |
+
$modified_package_rates[ $id ] = $package_rate;
|
98 |
+
}
|
99 |
+
return $modified_package_rates;
|
100 |
+
} else {
|
101 |
+
return $package_rates;
|
102 |
+
}
|
103 |
+
} else {
|
104 |
+
return $package_rates;
|
105 |
+
}
|
106 |
+
default: // case 'convert_shop_default':
|
107 |
+
return $package_rates;
|
108 |
+
}
|
109 |
+
}
|
110 |
+
return $package_rates;
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* validate_on_add_to_cart.
|
115 |
+
*
|
116 |
+
* @version 2.7.0
|
117 |
+
* @since 2.7.0
|
118 |
+
*/
|
119 |
+
function validate_on_add_to_cart( $passed, $product_id ) {
|
120 |
+
$cart_checkout_behaviour = get_option( 'wcj_currency_per_product_cart_checkout', 'convert_shop_default' );
|
121 |
+
if ( 'leave_one_product' === $cart_checkout_behaviour ) {
|
122 |
+
foreach ( WC()->cart->get_cart() as $cart_item ) {
|
123 |
+
if ( $cart_item['product_id'] != $product_id ) {
|
124 |
+
wc_add_notice( get_option( 'wcj_currency_per_product_cart_checkout_leave_one_product',
|
125 |
+
__( 'Only one product can be added to the cart. Clear the cart or finish the order, before adding another product to the cart.', 'woocommerce-jetpack' ) ), 'error' );
|
126 |
+
return false;
|
127 |
+
}
|
128 |
+
}
|
129 |
+
} elseif ( 'leave_same_currency' === $cart_checkout_behaviour ) {
|
130 |
+
$shop_currency = get_option( 'woocommerce_currency' );
|
131 |
+
$product_currency = get_post_meta( $product_id, '_' . 'wcj_currency_per_product_currency', true );
|
132 |
+
if ( '' == $product_currency ) {
|
133 |
+
$product_currency = $shop_currency;
|
134 |
+
}
|
135 |
+
foreach ( WC()->cart->get_cart() as $cart_item ) {
|
136 |
+
$cart_product_currency = ( isset( $cart_item['wcj_currency_per_product'] ) && '' != $cart_item['wcj_currency_per_product'] ) ?
|
137 |
+
$cart_item['wcj_currency_per_product'] : $shop_currency;
|
138 |
+
if ( $cart_product_currency != $product_currency ) {
|
139 |
+
wc_add_notice( get_option( 'wcj_currency_per_product_cart_checkout_leave_same_currency',
|
140 |
+
__( 'Only products with same currency can be added to the cart. Clear the cart or finish the order, before adding products with another currency to the cart.', 'woocommerce-jetpack' ) ), 'error' );
|
141 |
+
return false;
|
142 |
+
}
|
143 |
+
}
|
144 |
+
}
|
145 |
+
return $passed;
|
146 |
+
}
|
147 |
+
|
148 |
/**
|
149 |
* grouped_price_html.
|
150 |
*
|
151 |
+
* @version 2.7.0
|
152 |
* @since 2.5.2
|
153 |
*/
|
154 |
function grouped_price_html( $price_html, $_product ) {
|
155 |
+
$child_prices = array();
|
156 |
+
foreach ( $_product->get_children() as $child_id ) {
|
|
|
|
|
157 |
$child_prices[ $child_id ] = get_post_meta( $child_id, '_price', true );
|
158 |
+
}
|
159 |
+
// $child_prices = array_unique( $child_prices );
|
|
|
|
|
160 |
if ( ! empty( $child_prices ) ) {
|
161 |
+
/*
|
162 |
+
$min_price = min( $child_prices );
|
163 |
$max_price = max( $child_prices );
|
164 |
$min_price_id = min( array_keys( $child_prices, min( $child_prices ) ) );
|
165 |
+
$max_price_id = max( array_keys( $child_prices, max( $child_prices ) ) );
|
166 |
+
*/
|
167 |
asort( $child_prices );
|
168 |
$min_price = current( $child_prices );
|
169 |
$min_price_id = key( $child_prices );
|
179 |
|
180 |
if ( $min_price ) {
|
181 |
if ( $min_price == $max_price && $min_currency_per_product_currency === $max_currency_per_product_currency ) {
|
182 |
+
$display_price = wc_price( wcj_get_product_display_price( $_product, $min_price, 1 ), array( 'currency' => $min_currency_per_product_currency ) );
|
183 |
} else {
|
184 |
+
$from = wc_price( wcj_get_product_display_price( $_product, $min_price, 1 ), array( 'currency' => $min_currency_per_product_currency ) );
|
185 |
+
$to = wc_price( wcj_get_product_display_price( $_product, $max_price, 1 ), array( 'currency' => $max_currency_per_product_currency ) );
|
186 |
$display_price = sprintf( _x( '%1$s–%2$s', 'Price range: from-to', 'woocommerce' ), $from, $to );
|
187 |
}
|
|
|
188 |
$new_price_html = $display_price . $_product->get_price_suffix();
|
|
|
189 |
return $new_price_html;
|
190 |
}
|
191 |
|
213 |
/**
|
214 |
* change_price.
|
215 |
*
|
216 |
+
* @version 2.7.0
|
217 |
* @since 2.5.2
|
218 |
*/
|
219 |
function change_price( $price, $_product ) {
|
220 |
if ( isset( $_product->wcj_currency_per_product ) ) {
|
221 |
+
$cart_checkout_behaviour = get_option( 'wcj_currency_per_product_cart_checkout', 'convert_shop_default' );
|
222 |
+
switch ( $cart_checkout_behaviour ) {
|
223 |
+
case 'leave_one_product':
|
224 |
+
case 'leave_same_currency':
|
225 |
+
return $price;
|
226 |
+
case 'convert_first_product':
|
227 |
+
case 'convert_last_product':
|
228 |
+
$shop_currency = get_option('woocommerce_currency');
|
229 |
+
if ( false != ( $_currency = $this->get_cart_checkout_currency() ) && $_currency != $shop_currency ) {
|
230 |
+
if ( $_product->wcj_currency_per_product === $_currency ) {
|
231 |
+
return $price;
|
232 |
+
} else {
|
233 |
+
$exchange_rate_product = $this->get_currency_exchange_rate( $_product->wcj_currency_per_product );
|
234 |
+
$exchange_rate_cart_checkout = $this->get_currency_exchange_rate( $_currency );
|
235 |
+
$exchange_rate = $exchange_rate_product / $exchange_rate_cart_checkout;
|
236 |
+
return $price * $exchange_rate;
|
237 |
+
}
|
238 |
+
} elseif ( $_product->wcj_currency_per_product === $shop_currency ) {
|
239 |
+
return $price;
|
240 |
+
} else {
|
241 |
+
$exchange_rate = $this->get_currency_exchange_rate( $_product->wcj_currency_per_product );
|
242 |
+
return $price * $exchange_rate;
|
243 |
+
}
|
244 |
+
default: // case 'convert_shop_default':
|
245 |
+
$exchange_rate = $this->get_currency_exchange_rate( $_product->wcj_currency_per_product );
|
246 |
+
return $price * $exchange_rate;
|
247 |
+
}
|
248 |
}
|
249 |
return $price;
|
250 |
}
|
290 |
}
|
291 |
|
292 |
/**
|
293 |
+
* get_current_product_id_and_currency.
|
294 |
*
|
295 |
+
* @version 2.7.0
|
296 |
+
* @since 2.7.0
|
297 |
*/
|
298 |
+
function get_current_product_id_and_currency() {
|
299 |
$the_ID = get_the_ID();
|
300 |
if ( 0 == $the_ID && isset( $_REQUEST['product_id'] ) ) {
|
301 |
$the_ID = $_REQUEST['product_id'];
|
302 |
}
|
303 |
+
if ( 0 == $the_ID && isset( $_POST['form'] ) ) { // WooCommerce Bookings plugin
|
304 |
+
$posted = array();
|
305 |
+
parse_str( $_POST['form'], $posted );
|
306 |
+
$the_ID = isset( $posted['add-to-cart'] ) ? $posted['add-to-cart'] : 0;
|
307 |
+
}
|
308 |
if ( 0 != $the_ID && 'product' === get_post_type( $the_ID ) ) {
|
309 |
$currency_per_product_currency = get_post_meta( $the_ID, '_' . 'wcj_currency_per_product_currency', true );
|
310 |
+
return ( '' != $currency_per_product_currency ) ? $currency_per_product_currency : false;
|
311 |
+
}
|
312 |
+
return false;
|
313 |
+
}
|
314 |
+
|
315 |
+
/**
|
316 |
+
* get_cart_checkout_currency.
|
317 |
+
*
|
318 |
+
* @version 2.7.0
|
319 |
+
* @since 2.7.0
|
320 |
+
*/
|
321 |
+
function get_cart_checkout_currency() {
|
322 |
+
if ( WC()->cart->is_empty() ) {
|
323 |
+
return false;
|
324 |
+
}
|
325 |
+
$cart_checkout_behaviour = get_option( 'wcj_currency_per_product_cart_checkout', 'convert_shop_default' );
|
326 |
+
if ( 'convert_shop_default' === $cart_checkout_behaviour ) {
|
327 |
+
return false;
|
328 |
+
}
|
329 |
+
$cart_items = WC()->cart->get_cart();
|
330 |
+
if ( 'convert_last_product' === $cart_checkout_behaviour ) {
|
331 |
+
$cart_items = array_reverse( $cart_items );
|
332 |
+
}
|
333 |
+
foreach ( $cart_items as $cart_item ) {
|
334 |
+
return ( isset( $cart_item['wcj_currency_per_product'] ) ) ? $cart_item['wcj_currency_per_product'] : false;
|
335 |
+
}
|
336 |
+
}
|
337 |
+
|
338 |
+
/**
|
339 |
+
* is_cart_or_checkout_or_ajax.
|
340 |
+
*
|
341 |
+
* @version 2.7.0
|
342 |
+
* @since 2.7.0
|
343 |
+
* @todo fix AJAX issue (for minicart)
|
344 |
+
*/
|
345 |
+
function is_cart_or_checkout_or_ajax() {
|
346 |
+
return ( ( function_exists( 'is_cart' ) && is_cart() ) || ( function_exists( 'is_checkout' ) && is_checkout() ) /* || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) */ );
|
347 |
+
}
|
348 |
+
|
349 |
+
/**
|
350 |
+
* change_currency_code.
|
351 |
+
*
|
352 |
+
* @version 2.7.0
|
353 |
+
* @since 2.5.2
|
354 |
+
*/
|
355 |
+
function change_currency_code( $currency ) {
|
356 |
+
if ( false != ( $_currency = $this->get_current_product_id_and_currency() ) ) {
|
357 |
+
return $_currency;
|
358 |
+
} elseif ( $this->is_cart_or_checkout_or_ajax() ) {
|
359 |
+
return ( false != ( $_currency = $this->get_cart_checkout_currency() ) ) ? $_currency : $currency;
|
360 |
}
|
361 |
+
return $currency;
|
362 |
}
|
363 |
|
364 |
/**
|
365 |
* change_currency_symbol.
|
366 |
*
|
367 |
+
* @version 2.7.0
|
368 |
* @since 2.5.2
|
369 |
*/
|
370 |
function change_currency_symbol( $currency_symbol, $currency ) {
|
371 |
+
if ( false != ( $_currency = $this->get_current_product_id_and_currency() ) ) {
|
372 |
+
return wcj_get_currency_symbol( $_currency );
|
373 |
+
} elseif ( $this->is_cart_or_checkout_or_ajax() ) {
|
374 |
+
return ( false != ( $_currency = $this->get_cart_checkout_currency() ) ) ? wcj_get_currency_symbol( $_currency ) : $currency_symbol;
|
|
|
|
|
|
|
|
|
|
|
375 |
}
|
376 |
return $currency_symbol;
|
377 |
}
|
403 |
return $options;
|
404 |
}
|
405 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
406 |
/**
|
407 |
* add_settings.
|
408 |
*
|
409 |
+
* @version 2.7.0
|
410 |
* @since 2.5.2
|
411 |
*/
|
412 |
function add_settings() {
|
419 |
} */
|
420 |
$settings = array(
|
421 |
array(
|
422 |
+
'title' => __( 'Cart and Checkout Behaviour Options', 'woocommerce-jetpack' ),
|
423 |
+
'type' => 'title',
|
424 |
+
'id' => 'wcj_currency_per_product_cart_options',
|
425 |
+
),
|
426 |
+
array(
|
427 |
+
'title' => __( 'Cart and Checkout Behaviour', 'woocommerce-jetpack' ),
|
428 |
+
'id' => 'wcj_currency_per_product_cart_checkout',
|
429 |
+
'default' => 'convert_shop_default',
|
430 |
+
'type' => 'select',
|
431 |
+
'options' => array(
|
432 |
+
'convert_shop_default' => __( 'Convert to shop default currency', 'woocommerce-jetpack' ),
|
433 |
+
'leave_one_product' => __( 'Leave product currency (allow only one product to be added to cart)', 'woocommerce-jetpack' ),
|
434 |
+
'leave_same_currency' => __( 'Leave product currency (allow only same currency products to be added to cart)', 'woocommerce-jetpack' ),
|
435 |
+
'convert_last_product' => __( 'Convert to currency of last product in cart', 'woocommerce-jetpack' ),
|
436 |
+
'convert_first_product' => __( 'Convert to currency of first product in cart', 'woocommerce-jetpack' ),
|
437 |
+
),
|
438 |
+
),
|
439 |
+
array(
|
440 |
+
'title' => __( 'Message', 'woocommerce-jetpack' ) . ': ' . __( 'Leave product currency (allow only one product to be added to cart)', 'woocommerce-jetpack' ),
|
441 |
+
'id' => 'wcj_currency_per_product_cart_checkout_leave_one_product',
|
442 |
+
'default' => __( 'Only one product can be added to the cart. Clear the cart or finish the order, before adding another product to the cart.', 'woocommerce-jetpack' ),
|
443 |
+
'type' => 'textarea',
|
444 |
+
'css' => 'min-width:300px;width:66%',
|
445 |
+
),
|
446 |
+
array(
|
447 |
+
'title' => __( 'Message', 'woocommerce-jetpack' ) . ': ' . __( 'Leave product currency (allow only same currency products to be added to cart)', 'woocommerce-jetpack' ),
|
448 |
+
'id' => 'wcj_currency_per_product_cart_checkout_leave_same_currency',
|
449 |
+
'default' => __( 'Only products with same currency can be added to the cart. Clear the cart or finish the order, before adding products with another currency to the cart.', 'woocommerce-jetpack' ),
|
450 |
+
'type' => 'textarea',
|
451 |
+
'css' => 'min-width:300px;width:66%',
|
452 |
+
),
|
453 |
+
array(
|
454 |
+
'type' => 'sectionend',
|
455 |
+
'id' => 'wcj_currency_per_product_cart_options',
|
456 |
+
),
|
457 |
+
array(
|
458 |
+
'title' => __( 'Exchange Rates Updates Options', 'woocommerce-jetpack' ),
|
459 |
'type' => 'title',
|
460 |
+
'id' => 'wcj_currency_per_product_exchange_rate_update_options',
|
461 |
),
|
462 |
array(
|
463 |
'title' => __( 'Exchange Rates Updates', 'woocommerce-jetpack' ),
|
476 |
),
|
477 |
array(
|
478 |
'type' => 'sectionend',
|
479 |
+
'id' => 'wcj_currency_per_product_exchange_rate_update_options',
|
480 |
),
|
481 |
array(
|
482 |
'title' => __( 'Currencies Options', 'woocommerce-jetpack' ),
|
483 |
+
'desc' => __( 'Exchange rates for currencies won\'t be used if "Cart and Checkout Behaviour" is set to one of "Leave product currency ..." options.', 'woocommerce-jetpack' ),
|
484 |
'type' => 'title',
|
485 |
'id' => 'wcj_currency_per_product_currencies_options',
|
486 |
),
|
includes/class-wcj-custom-css.php
ADDED
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WooCommerce Jetpack Custom CSS
|
4 |
+
*
|
5 |
+
* The WooCommerce Jetpack Custom CSS class.
|
6 |
+
*
|
7 |
+
* @version 2.7.0
|
8 |
+
* @since 2.7.0
|
9 |
+
* @author Algoritmika Ltd.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
13 |
+
|
14 |
+
if ( ! class_exists( 'WCJ_Custom_CSS' ) ) :
|
15 |
+
|
16 |
+
class WCJ_Custom_CSS extends WCJ_Module {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Constructor.
|
20 |
+
*
|
21 |
+
* @version 2.7.0
|
22 |
+
* @since 2.7.0
|
23 |
+
* @todo wp_safe_redirect after saving settings
|
24 |
+
* @todo automatically enable the module if v <= 2.6.0 and General module enabled and `wcj_general_custom_css` or `wcj_general_custom_admin_css` are not empty
|
25 |
+
* @todo (maybe) set `add_action` `priority` to `PHP_INT_MAX`
|
26 |
+
*/
|
27 |
+
function __construct() {
|
28 |
+
|
29 |
+
$this->id = 'custom_css';
|
30 |
+
$this->short_desc = __( 'Custom CSS', 'woocommerce-jetpack' );
|
31 |
+
$this->desc = __( 'Another custom CSS, if you need one.', 'woocommerce-jetpack' );
|
32 |
+
$this->link = 'http://booster.io/features/woocommerce-booster-custom-css/';
|
33 |
+
parent::__construct();
|
34 |
+
|
35 |
+
add_action( 'init', array( $this, 'add_settings_hook' ) );
|
36 |
+
|
37 |
+
if ( $this->is_enabled() ) {
|
38 |
+
if ( '' != get_option( 'wcj_general_custom_css', '' ) ) {
|
39 |
+
add_action( 'wp_head', array( $this, 'hook_custom_css' ) );
|
40 |
+
}
|
41 |
+
if ( '' != get_option( 'wcj_general_custom_admin_css', '' ) ) {
|
42 |
+
add_action( 'admin_head', array( $this, 'hook_custom_admin_css' ) );
|
43 |
+
}
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* hook_custom_css.
|
49 |
+
*
|
50 |
+
* @version 2.7.0
|
51 |
+
*/
|
52 |
+
function hook_custom_css() {
|
53 |
+
echo '<style>' . get_option( 'wcj_general_custom_css', '' ) . '</style>';
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* hook_custom_admin_css.
|
58 |
+
*
|
59 |
+
* @version 2.7.0
|
60 |
+
*/
|
61 |
+
function hook_custom_admin_css() {
|
62 |
+
echo '<style>' . get_option( 'wcj_general_custom_admin_css', '' ) . '</style>';
|
63 |
+
}
|
64 |
+
|
65 |
+
/*
|
66 |
+
* add_settings.
|
67 |
+
*
|
68 |
+
* @version 2.7.0
|
69 |
+
* @since 2.7.0
|
70 |
+
*/
|
71 |
+
function add_settings() {
|
72 |
+
return array(
|
73 |
+
array(
|
74 |
+
'title' => __( 'Options', 'woocommerce-jetpack' ),
|
75 |
+
'type' => 'title',
|
76 |
+
'id' => 'wcj_custom_css_options',
|
77 |
+
),
|
78 |
+
array(
|
79 |
+
'title' => __( 'Custom CSS - Front end (Customers)', 'woocommerce-jetpack' ),
|
80 |
+
'id' => 'wcj_general_custom_css',
|
81 |
+
'default' => '',
|
82 |
+
'type' => 'custom_textarea',
|
83 |
+
'css' => 'width:66%;min-width:300px;min-height:300px;',
|
84 |
+
),
|
85 |
+
array(
|
86 |
+
'title' => __( 'Custom CSS - Back end (Admin)', 'woocommerce-jetpack' ),
|
87 |
+
'id' => 'wcj_general_custom_admin_css',
|
88 |
+
'default' => '',
|
89 |
+
'type' => 'custom_textarea',
|
90 |
+
'css' => 'width:66%;min-width:300px;min-height:300px;',
|
91 |
+
),
|
92 |
+
array(
|
93 |
+
'type' => 'sectionend',
|
94 |
+
'id' => 'wcj_custom_css_options',
|
95 |
+
),
|
96 |
+
);
|
97 |
+
}
|
98 |
+
|
99 |
+
}
|
100 |
+
|
101 |
+
endif;
|
102 |
+
|
103 |
+
return new WCJ_Custom_CSS();
|
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,7 +17,7 @@ class WCJ_Emails extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
@@ -37,12 +37,33 @@ class WCJ_Emails extends WCJ_Module {
|
|
37 |
if ( '' != get_option( 'wcj_emails_cc_email' ) ) {
|
38 |
add_filter( 'woocommerce_email_headers', array( $this, 'add_cc_email' ) );
|
39 |
}
|
|
|
|
|
|
|
|
|
40 |
// add_action( 'woocommerce_email_after_order_table', array( $this, 'add_payment_method_to_new_order_email' ), 15, 2 );
|
41 |
// Settings
|
42 |
add_filter( 'woocommerce_email_settings', array( $this, 'add_email_forwarding_fields_to_wc_standard_settings' ), 100 );
|
43 |
}
|
44 |
}
|
45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
/**
|
47 |
* get_order_statuses.
|
48 |
*
|
@@ -180,7 +201,7 @@ class WCJ_Emails extends WCJ_Module {
|
|
180 |
/**
|
181 |
* get_settings.
|
182 |
*
|
183 |
-
* @version 2.
|
184 |
*/
|
185 |
function get_settings() {
|
186 |
$settings = array(
|
@@ -213,6 +234,30 @@ class WCJ_Emails extends WCJ_Module {
|
|
213 |
'type' => 'sectionend',
|
214 |
'id' => 'wcj_emails_custom_emails_options',
|
215 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
) );
|
217 |
$settings = array_merge( $settings, $this->get_emails_forwarding_settings() );
|
218 |
return $this->add_standard_settings( $settings );
|
4 |
*
|
5 |
* The WooCommerce Jetpack Emails class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
37 |
if ( '' != get_option( 'wcj_emails_cc_email' ) ) {
|
38 |
add_filter( 'woocommerce_email_headers', array( $this, 'add_cc_email' ) );
|
39 |
}
|
40 |
+
// Product Info
|
41 |
+
if ( 'yes' === get_option( 'wcj_product_info_in_email_order_item_name_enabled', 'no' ) ) {
|
42 |
+
add_filter( 'woocommerce_order_item_name', array( $this, 'add_product_info_to_email_order_item_name' ), PHP_INT_MAX, 2 );
|
43 |
+
}
|
44 |
// add_action( 'woocommerce_email_after_order_table', array( $this, 'add_payment_method_to_new_order_email' ), 15, 2 );
|
45 |
// Settings
|
46 |
add_filter( 'woocommerce_email_settings', array( $this, 'add_email_forwarding_fields_to_wc_standard_settings' ), 100 );
|
47 |
}
|
48 |
}
|
49 |
|
50 |
+
/**
|
51 |
+
* add_product_info_to_email_order_item_name.
|
52 |
+
*
|
53 |
+
* @version 2.7.0
|
54 |
+
* @since 2.7.0
|
55 |
+
*/
|
56 |
+
function add_product_info_to_email_order_item_name( $item_name, $item ) {
|
57 |
+
if ( $item['product_id'] ) {
|
58 |
+
global $post;
|
59 |
+
$post = get_post( $item['product_id'] );
|
60 |
+
setup_postdata( $post );
|
61 |
+
$item_name .= do_shortcode( get_option( 'wcj_product_info_in_email_order_item_name', '[wcj_product_categories strip_tags="yes" before="<hr><em>" after="</em>"]' ) );
|
62 |
+
wp_reset_postdata();
|
63 |
+
}
|
64 |
+
return $item_name;
|
65 |
+
}
|
66 |
+
|
67 |
/**
|
68 |
* get_order_statuses.
|
69 |
*
|
201 |
/**
|
202 |
* get_settings.
|
203 |
*
|
204 |
+
* @version 2.7.0
|
205 |
*/
|
206 |
function get_settings() {
|
207 |
$settings = array(
|
234 |
'type' => 'sectionend',
|
235 |
'id' => 'wcj_emails_custom_emails_options',
|
236 |
),
|
237 |
+
array(
|
238 |
+
'title' => __( 'Product Info in Item Name', 'woocommerce-jetpack' ),
|
239 |
+
'type' => 'title',
|
240 |
+
'id' => 'wcj_product_info_in_email_order_item_name_options',
|
241 |
+
),
|
242 |
+
array(
|
243 |
+
'title' => __( 'Add Product Info to Item Name', 'woocommerce-jetpack' ),
|
244 |
+
'desc' => __( 'Add', 'woocommerce-jetpack' ),
|
245 |
+
'type' => 'checkbox',
|
246 |
+
'id' => 'wcj_product_info_in_email_order_item_name_enabled',
|
247 |
+
'default' => 'no',
|
248 |
+
),
|
249 |
+
array(
|
250 |
+
'title' => __( 'Info', 'woocommerce-jetpack' ),
|
251 |
+
'desc' => sprintf( __( 'You can use <a target="_blank" href="%s">Booster\'s products shortcodes</a> here.', 'woocommerce-jetpack' ), 'http://booster.io/category/shortcodes/products-shortcodes/' ),
|
252 |
+
'type' => 'custom_textarea',
|
253 |
+
'id' => 'wcj_product_info_in_email_order_item_name',
|
254 |
+
'default' => '[wcj_product_categories strip_tags="yes" before="<hr><em>" after="</em>"]',
|
255 |
+
'css' => 'width:66%;min-width:300px;height:150px;',
|
256 |
+
),
|
257 |
+
array(
|
258 |
+
'type' => 'sectionend',
|
259 |
+
'id' => 'wcj_product_info_in_email_order_item_name_options',
|
260 |
+
),
|
261 |
) );
|
262 |
$settings = array_merge( $settings, $this->get_emails_forwarding_settings() );
|
263 |
return $this->add_standard_settings( $settings );
|
includes/class-wcj-empty-cart-button.php
CHANGED
@@ -48,7 +48,7 @@ class WCJ_Empty_Cart_Button extends WCJ_Module {
|
|
48 |
*
|
49 |
* @version 2.5.0
|
50 |
*/
|
51 |
-
|
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( 'booster_get_option', 'Empty Cart', get_option( 'wcj_empty_cart_text' ) ) . '"' . $confirmation_html . '></form></div>';
|
54 |
}
|
@@ -56,7 +56,7 @@ class WCJ_Empty_Cart_Button extends WCJ_Module {
|
|
56 |
/**
|
57 |
* empty_cart.
|
58 |
*/
|
59 |
-
|
60 |
if ( isset( $_POST['empty_cart'] ) ) {
|
61 |
global $woocommerce;
|
62 |
$woocommerce->cart->empty_cart();
|
48 |
*
|
49 |
* @version 2.5.0
|
50 |
*/
|
51 |
+
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( 'booster_get_option', 'Empty Cart', get_option( 'wcj_empty_cart_text' ) ) . '"' . $confirmation_html . '></form></div>';
|
54 |
}
|
56 |
/**
|
57 |
* empty_cart.
|
58 |
*/
|
59 |
+
function empty_cart() {
|
60 |
if ( isset( $_POST['empty_cart'] ) ) {
|
61 |
global $woocommerce;
|
62 |
$woocommerce->cart->empty_cart();
|
includes/class-wcj-eu-vat-number.php
CHANGED
@@ -4,10 +4,9 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack EU VAT Number class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.3.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
-
* @todo (maybe) move to "CART & CHECKOUT" category
|
11 |
*/
|
12 |
|
13 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
@@ -97,17 +96,18 @@ class WCJ_EU_VAT_Number extends WCJ_Module {
|
|
97 |
/**
|
98 |
* create_meta_box.
|
99 |
*
|
100 |
-
* @version 2.
|
101 |
* @since 2.6.0
|
102 |
*/
|
103 |
function create_meta_box() {
|
104 |
$order_id = get_the_ID();
|
105 |
$_order = wc_get_order( $order_id );
|
|
|
106 |
|
107 |
// Country by IP
|
108 |
if ( class_exists( 'WC_Geolocation' ) ) {
|
109 |
// Get the country by IP
|
110 |
-
$location = WC_Geolocation::geolocate_ip( $
|
111 |
// Base fallback
|
112 |
if ( empty( $location['country'] ) ) {
|
113 |
$location = wc_format_country_state_string( apply_filters( 'woocommerce_customer_default_location', get_option( 'woocommerce_default_country' ) ) );
|
@@ -138,7 +138,7 @@ class WCJ_EU_VAT_Number extends WCJ_Module {
|
|
138 |
$table_data = array(
|
139 |
array(
|
140 |
__( 'Customer IP', 'woocommerce-jetpack' ),
|
141 |
-
$
|
142 |
),
|
143 |
array(
|
144 |
__( 'Country by IP', 'woocommerce-jetpack' ),
|
@@ -205,23 +205,23 @@ class WCJ_EU_VAT_Number extends WCJ_Module {
|
|
205 |
/**
|
206 |
* add_eu_vat_number_to_order_billing_address.
|
207 |
*
|
208 |
-
* @version 2.
|
209 |
* @since 2.5.2
|
210 |
*/
|
211 |
function add_eu_vat_number_to_order_billing_address( $fields, $_order ) {
|
212 |
$field_name = 'billing_' . $this->id;
|
213 |
-
$fields[ $field_name ] = get_post_meta( $_order
|
214 |
return $fields;
|
215 |
}
|
216 |
|
217 |
/**
|
218 |
* add_eu_vat_number_to_order_display.
|
219 |
*
|
220 |
-
* @version 2.
|
221 |
* @since 2.4.7
|
222 |
*/
|
223 |
function add_eu_vat_number_to_order_display( $order ) {
|
224 |
-
$order_id = $order
|
225 |
$html = '';
|
226 |
$option_name = '_billing_' . $this->id;
|
227 |
$the_eu_vat_number = get_post_meta( $order_id, $option_name, true );
|
4 |
*
|
5 |
* The WooCommerce Jetpack EU VAT Number class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.3.9
|
9 |
* @author Algoritmika Ltd.
|
|
|
10 |
*/
|
11 |
|
12 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
96 |
/**
|
97 |
* create_meta_box.
|
98 |
*
|
99 |
+
* @version 2.7.0
|
100 |
* @since 2.6.0
|
101 |
*/
|
102 |
function create_meta_box() {
|
103 |
$order_id = get_the_ID();
|
104 |
$_order = wc_get_order( $order_id );
|
105 |
+
$_customer_ip_address = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_order->customer_ip_address : $_order->get_customer_ip_address() );
|
106 |
|
107 |
// Country by IP
|
108 |
if ( class_exists( 'WC_Geolocation' ) ) {
|
109 |
// Get the country by IP
|
110 |
+
$location = WC_Geolocation::geolocate_ip( $_customer_ip_address );
|
111 |
// Base fallback
|
112 |
if ( empty( $location['country'] ) ) {
|
113 |
$location = wc_format_country_state_string( apply_filters( 'woocommerce_customer_default_location', get_option( 'woocommerce_default_country' ) ) );
|
138 |
$table_data = array(
|
139 |
array(
|
140 |
__( 'Customer IP', 'woocommerce-jetpack' ),
|
141 |
+
$_customer_ip_address
|
142 |
),
|
143 |
array(
|
144 |
__( 'Country by IP', 'woocommerce-jetpack' ),
|
205 |
/**
|
206 |
* add_eu_vat_number_to_order_billing_address.
|
207 |
*
|
208 |
+
* @version 2.7.0
|
209 |
* @since 2.5.2
|
210 |
*/
|
211 |
function add_eu_vat_number_to_order_billing_address( $fields, $_order ) {
|
212 |
$field_name = 'billing_' . $this->id;
|
213 |
+
$fields[ $field_name ] = get_post_meta( wcj_get_order_id( $_order ), '_' . $field_name, true );
|
214 |
return $fields;
|
215 |
}
|
216 |
|
217 |
/**
|
218 |
* add_eu_vat_number_to_order_display.
|
219 |
*
|
220 |
+
* @version 2.7.0
|
221 |
* @since 2.4.7
|
222 |
*/
|
223 |
function add_eu_vat_number_to_order_display( $order ) {
|
224 |
+
$order_id = wcj_get_order_id( $order );
|
225 |
$html = '';
|
226 |
$option_name = '_billing_' . $this->id;
|
227 |
$the_eu_vat_number = get_post_meta( $order_id, $option_name, true );
|
includes/class-wcj-free-price.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Free Price class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -18,7 +18,7 @@ class WCJ_Free_Price extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
* @since 2.5.9
|
23 |
* @todo single in grouped is treated as "related"
|
24 |
*/
|
@@ -33,13 +33,76 @@ class WCJ_Free_Price extends WCJ_Module {
|
|
33 |
add_action( 'init', array( $this, 'add_settings_hook' ) );
|
34 |
|
35 |
if ( $this->is_enabled() ) {
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
}
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
/**
|
44 |
* get_view_id
|
45 |
*
|
@@ -65,34 +128,34 @@ class WCJ_Free_Price extends WCJ_Module {
|
|
65 |
/**
|
66 |
* modify_free_price_simple_external_custom.
|
67 |
*
|
68 |
-
* @version 2.
|
69 |
* @since 2.5.9
|
70 |
*/
|
71 |
function modify_free_price_simple_external_custom( $price, $_product ) {
|
72 |
$default = '<span class="amount">' . __( 'Free!', 'woocommerce' ) . '</span>';
|
73 |
return ( $_product->is_type( 'external' ) ) ?
|
74 |
-
do_shortcode( get_option( 'wcj_free_price_external_' . $this->get_view_id( $_product
|
75 |
-
do_shortcode( get_option( 'wcj_free_price_simple_' . $this->get_view_id( $_product
|
76 |
}
|
77 |
|
78 |
/**
|
79 |
* modify_free_price_grouped.
|
80 |
*
|
81 |
-
* @version 2.
|
82 |
* @since 2.5.9
|
83 |
*/
|
84 |
function modify_free_price_grouped( $price, $_product ) {
|
85 |
-
return do_shortcode( get_option( 'wcj_free_price_grouped_' . $this->get_view_id( $_product
|
86 |
}
|
87 |
|
88 |
/**
|
89 |
* modify_free_price_variable.
|
90 |
*
|
91 |
-
* @version 2.
|
92 |
* @since 2.5.9
|
93 |
*/
|
94 |
function modify_free_price_variable( $price, $_product ) {
|
95 |
-
return do_shortcode( apply_filters( 'booster_get_option', __( 'Free!', 'woocommerce' ), get_option( 'wcj_free_price_variable_' . $this->get_view_id( $_product
|
96 |
}
|
97 |
|
98 |
/**
|
@@ -105,32 +168,10 @@ class WCJ_Free_Price extends WCJ_Module {
|
|
105 |
return do_shortcode( apply_filters( 'booster_get_option', __( 'Free!', 'woocommerce' ), get_option( 'wcj_free_price_variable_variation', __( 'Free!', 'woocommerce' ) ) ) );
|
106 |
}
|
107 |
|
108 |
-
/**
|
109 |
-
* add_settings_hook.
|
110 |
-
*
|
111 |
-
* @version 2.5.9
|
112 |
-
* @since 2.5.9
|
113 |
-
*/
|
114 |
-
function add_settings_hook() {
|
115 |
-
add_filter( 'wcj_' . $this->id . '_settings', array( $this, 'add_settings' ) );
|
116 |
-
}
|
117 |
-
|
118 |
-
/**
|
119 |
-
* get_settings.
|
120 |
-
*
|
121 |
-
* @version 2.5.9
|
122 |
-
* @since 2.5.9
|
123 |
-
*/
|
124 |
-
function get_settings() {
|
125 |
-
$settings = array();
|
126 |
-
$settings = apply_filters( 'wcj_' . $this->id . '_settings', $settings );
|
127 |
-
return $this->add_standard_settings( $settings, __( 'Labels can contain shortcodes.', 'woocommerce-jetpack' ) );
|
128 |
-
}
|
129 |
-
|
130 |
/**
|
131 |
* add_settings.
|
132 |
*
|
133 |
-
* @version 2.
|
134 |
* @since 2.5.9
|
135 |
*/
|
136 |
function add_settings( $settings ) {
|
@@ -153,6 +194,7 @@ class WCJ_Free_Price extends WCJ_Module {
|
|
153 |
$settings = array_merge( $settings, array(
|
154 |
array(
|
155 |
'title' => $product_type_desc,
|
|
|
156 |
'type' => 'title',
|
157 |
'id' => 'wcj_free_price_' . $product_type . 'options',
|
158 |
),
|
@@ -171,7 +213,6 @@ class WCJ_Free_Price extends WCJ_Module {
|
|
171 |
'css' => 'width:30%;min-width:300px;min-height:50px;',
|
172 |
'desc' => ( 'variable' === $product_type ) ? apply_filters( 'booster_get_message', '', 'desc' ) : '',
|
173 |
'custom_attributes' => ( 'variable' === $product_type ) ? apply_filters( 'booster_get_message', '', 'readonly' ) : '',
|
174 |
-
|
175 |
),
|
176 |
) );
|
177 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Free Price class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
* @since 2.5.9
|
23 |
* @todo single in grouped is treated as "related"
|
24 |
*/
|
33 |
add_action( 'init', array( $this, 'add_settings_hook' ) );
|
34 |
|
35 |
if ( $this->is_enabled() ) {
|
36 |
+
if ( WCJ_IS_WC_VERSION_BELOW_3 ) {
|
37 |
+
add_filter( 'woocommerce_free_price_html', array( $this, 'modify_free_price_simple_external_custom' ), PHP_INT_MAX, 2 );
|
38 |
+
add_filter( 'woocommerce_grouped_free_price_html', array( $this, 'modify_free_price_grouped' ), PHP_INT_MAX, 2 );
|
39 |
+
add_filter( 'woocommerce_variable_free_price_html', array( $this, 'modify_free_price_variable' ), PHP_INT_MAX, 2 );
|
40 |
+
add_filter( 'woocommerce_variation_free_price_html', array( $this, 'modify_free_price_variation' ), PHP_INT_MAX, 2 );
|
41 |
+
} else {
|
42 |
+
add_filter( 'woocommerce_get_price_html', array( $this, 'maybe_modify_price' ), PHP_INT_MAX, 2 );
|
43 |
+
}
|
44 |
}
|
45 |
}
|
46 |
|
47 |
+
/**
|
48 |
+
* are_all_prices_free
|
49 |
+
*
|
50 |
+
* @version 2.7.0
|
51 |
+
* @since 2.7.0
|
52 |
+
*/
|
53 |
+
function are_all_prices_free( $_product, $type ) {
|
54 |
+
if ( 'variable' === $type ) {
|
55 |
+
$prices = $_product->get_variation_prices( true );
|
56 |
+
$min_price = current( $prices['price'] );
|
57 |
+
$max_price = end( $prices['price'] );
|
58 |
+
if ( '' !== $min_price && '' !== $max_price ) {
|
59 |
+
return ( 0 == $min_price && 0 == $max_price );
|
60 |
+
}
|
61 |
+
} elseif ( 'variable' === $type ) {
|
62 |
+
$child_prices = array();
|
63 |
+
foreach ( $_product->get_children() as $child_id ) {
|
64 |
+
$child = wc_get_product( $child_id );
|
65 |
+
if ( '' !== $child->get_price() ) {
|
66 |
+
$child_prices[] = wcj_get_product_display_price( $child );
|
67 |
+
}
|
68 |
+
}
|
69 |
+
if ( ! empty( $child_prices ) ) {
|
70 |
+
$min_price = min( $child_prices );
|
71 |
+
$max_price = max( $child_prices );
|
72 |
+
} else {
|
73 |
+
$min_price = '';
|
74 |
+
$max_price = '';
|
75 |
+
}
|
76 |
+
if ( '' !== $min_price && '' !== $max_price ) {
|
77 |
+
return ( 0 == $min_price && 0 == $max_price );
|
78 |
+
}
|
79 |
+
}
|
80 |
+
return false;
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* maybe_modify_price
|
85 |
+
*
|
86 |
+
* @version 2.7.0
|
87 |
+
* @since 2.7.0
|
88 |
+
*/
|
89 |
+
function maybe_modify_price( $price, $_product ) {
|
90 |
+
if ( '' !== $price ) {
|
91 |
+
if ( 0 == $_product->get_price() ) {
|
92 |
+
if ( $_product->is_type( 'grouped' ) ) {
|
93 |
+
return ( $this->are_all_prices_free( $_product, 'grouped' ) ) ? $this->modify_free_price_grouped( $price, $_product ) : $price;
|
94 |
+
} elseif ( $_product->is_type( 'variable' ) ) {
|
95 |
+
return ( $this->are_all_prices_free( $_product, 'variable' ) ) ? $this->modify_free_price_variable( $price, $_product ) : $price;
|
96 |
+
} elseif ( $_product->is_type( 'variation' ) ) {
|
97 |
+
return $this->modify_free_price_variation( $price, $_product );
|
98 |
+
} else {
|
99 |
+
return $this->modify_free_price_simple_external_custom( $price, $_product );
|
100 |
+
}
|
101 |
+
}
|
102 |
+
}
|
103 |
+
return $price;
|
104 |
+
}
|
105 |
+
|
106 |
/**
|
107 |
* get_view_id
|
108 |
*
|
128 |
/**
|
129 |
* modify_free_price_simple_external_custom.
|
130 |
*
|
131 |
+
* @version 2.7.0
|
132 |
* @since 2.5.9
|
133 |
*/
|
134 |
function modify_free_price_simple_external_custom( $price, $_product ) {
|
135 |
$default = '<span class="amount">' . __( 'Free!', 'woocommerce' ) . '</span>';
|
136 |
return ( $_product->is_type( 'external' ) ) ?
|
137 |
+
do_shortcode( get_option( 'wcj_free_price_external_' . $this->get_view_id( wcj_get_product_id_or_variation_parent_id( $_product ) ), $default ) ) :
|
138 |
+
do_shortcode( get_option( 'wcj_free_price_simple_' . $this->get_view_id( wcj_get_product_id_or_variation_parent_id( $_product ) ), $default ) );
|
139 |
}
|
140 |
|
141 |
/**
|
142 |
* modify_free_price_grouped.
|
143 |
*
|
144 |
+
* @version 2.7.0
|
145 |
* @since 2.5.9
|
146 |
*/
|
147 |
function modify_free_price_grouped( $price, $_product ) {
|
148 |
+
return do_shortcode( get_option( 'wcj_free_price_grouped_' . $this->get_view_id( wcj_get_product_id_or_variation_parent_id( $_product ) ), __( 'Free!', 'woocommerce' ) ) );
|
149 |
}
|
150 |
|
151 |
/**
|
152 |
* modify_free_price_variable.
|
153 |
*
|
154 |
+
* @version 2.7.0
|
155 |
* @since 2.5.9
|
156 |
*/
|
157 |
function modify_free_price_variable( $price, $_product ) {
|
158 |
+
return do_shortcode( apply_filters( 'booster_get_option', __( 'Free!', 'woocommerce' ), get_option( 'wcj_free_price_variable_' . $this->get_view_id( wcj_get_product_id_or_variation_parent_id( $_product ) ), __( 'Free!', 'woocommerce' ) ) ) );
|
159 |
}
|
160 |
|
161 |
/**
|
168 |
return do_shortcode( apply_filters( 'booster_get_option', __( 'Free!', 'woocommerce' ), get_option( 'wcj_free_price_variable_variation', __( 'Free!', 'woocommerce' ) ) ) );
|
169 |
}
|
170 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
171 |
/**
|
172 |
* add_settings.
|
173 |
*
|
174 |
+
* @version 2.7.0
|
175 |
* @since 2.5.9
|
176 |
*/
|
177 |
function add_settings( $settings ) {
|
194 |
$settings = array_merge( $settings, array(
|
195 |
array(
|
196 |
'title' => $product_type_desc,
|
197 |
+
'desc' => __( 'Labels can contain shortcodes.', 'woocommerce-jetpack' ),
|
198 |
'type' => 'title',
|
199 |
'id' => 'wcj_free_price_' . $product_type . 'options',
|
200 |
),
|
213 |
'css' => 'width:30%;min-width:300px;min-height:50px;',
|
214 |
'desc' => ( 'variable' === $product_type ) ? apply_filters( 'booster_get_message', '', 'desc' ) : '',
|
215 |
'custom_attributes' => ( 'variable' === $product_type ) ? apply_filters( 'booster_get_message', '', 'readonly' ) : '',
|
|
|
216 |
),
|
217 |
) );
|
218 |
}
|
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,9 +17,9 @@ class WCJ_General extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
-
|
23 |
|
24 |
$this->id = 'general';
|
25 |
$this->short_desc = __( 'General', 'woocommerce-jetpack' );
|
@@ -29,7 +29,7 @@ class WCJ_General extends WCJ_Module {
|
|
29 |
|
30 |
$this->add_tools( array(
|
31 |
'products_atts' => array(
|
32 |
-
'title' => __( 'Products
|
33 |
'desc' => __( 'All Products and All Attributes.', 'woocommerce-jetpack' ),
|
34 |
),
|
35 |
'custom_roles' => array(
|
@@ -49,13 +49,6 @@ class WCJ_General extends WCJ_Module {
|
|
49 |
add_filter( 'widget_text', 'do_shortcode' );
|
50 |
}
|
51 |
|
52 |
-
if ( '' != get_option( 'wcj_general_custom_css' ) ) {
|
53 |
-
add_action( 'wp_head', array( $this, 'hook_custom_css' ) );
|
54 |
-
}
|
55 |
-
if ( '' != get_option( 'wcj_general_custom_admin_css' ) ) {
|
56 |
-
add_action( 'admin_head', array( $this, 'hook_custom_admin_css' ) );
|
57 |
-
}
|
58 |
-
|
59 |
if ( 'yes' === get_option( 'wcj_paypal_email_per_product_enabled', 'no' ) ) {
|
60 |
|
61 |
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
@@ -69,36 +62,31 @@ class WCJ_General extends WCJ_Module {
|
|
69 |
add_filter( 'wc_session_expiration', array( $this, 'change_session_expiration' ), PHP_INT_MAX );
|
70 |
}
|
71 |
|
72 |
-
//
|
73 |
-
if ( 'yes' === get_option( '
|
74 |
-
|
75 |
}
|
76 |
|
77 |
-
// General Checkout options - Hide "Order Again" button
|
78 |
-
if ( 'yes' === get_option( 'wcj_checkout_hide_order_again', 'no' ) ) {
|
79 |
-
add_action( 'init', array( $this, 'checkout_hide_order_again' ), PHP_INT_MAX );
|
80 |
-
}
|
81 |
}
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
-
*
|
86 |
-
*
|
87 |
-
* @version 2.6.0
|
88 |
-
* @since 2.6.0
|
89 |
-
*/
|
90 |
-
function checkout_hide_order_again() {
|
91 |
-
remove_action( 'woocommerce_order_details_after_order_table', 'woocommerce_order_again_button' );
|
92 |
-
}
|
93 |
-
|
94 |
-
/**
|
95 |
-
* hide_coupon_field_on_cart.
|
96 |
*
|
97 |
-
* @version 2.
|
98 |
-
* @since 2.
|
|
|
|
|
|
|
99 |
*/
|
100 |
-
function
|
101 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
}
|
103 |
|
104 |
/**
|
@@ -246,7 +234,7 @@ class WCJ_General extends WCJ_Module {
|
|
246 |
/*
|
247 |
* get_products_atts.
|
248 |
*
|
249 |
-
* @version 2.
|
250 |
* @since 2.3.9
|
251 |
*/
|
252 |
function get_products_atts() {
|
@@ -279,7 +267,7 @@ class WCJ_General extends WCJ_Module {
|
|
279 |
$the_product = wc_get_product( $product_id );
|
280 |
|
281 |
$products_attributes[ $product_id ]['wcj_title'] = '<a href="' . get_permalink( $product_id ) . '">' . $the_product->get_title() . '</a>';
|
282 |
-
$products_attributes[ $product_id ]['wcj_category'] = $the_product->get_categories();
|
283 |
|
284 |
foreach ( $the_product->get_attributes() as $attribute ) {
|
285 |
$products_attributes[ $product_id ][ $attribute['name'] ] = $the_product->get_attribute( $attribute['name'] );
|
@@ -321,28 +309,11 @@ class WCJ_General extends WCJ_Module {
|
|
321 |
return '<p>' . __( 'Total Products:', 'woocommerce-jetpack' ) . ' ' . $total_products . '</p>' . wcj_get_table_html( $table_data, array( 'table_class' => 'widefat striped' ) );
|
322 |
}
|
323 |
|
324 |
-
/**
|
325 |
-
* hook_custom_css.
|
326 |
-
*/
|
327 |
-
public function hook_custom_css() {
|
328 |
-
$output = '<style>' . get_option( 'wcj_general_custom_css' ) . '</style>';
|
329 |
-
echo $output;
|
330 |
-
}
|
331 |
-
|
332 |
-
/**
|
333 |
-
* hook_custom_admin_css.
|
334 |
-
*/
|
335 |
-
public function hook_custom_admin_css() {
|
336 |
-
$output = '<style>' . get_option( 'wcj_general_custom_admin_css' ) . '</style>';
|
337 |
-
echo $output;
|
338 |
-
}
|
339 |
-
|
340 |
/**
|
341 |
* get_settings.
|
342 |
*
|
343 |
-
* @version 2.
|
344 |
* @todo add link to Booster's shortcodes list
|
345 |
-
* @todo move "General Cart Options" and "General Checkout Options" to separate modules
|
346 |
*/
|
347 |
function get_settings() {
|
348 |
/* $links_html = '';
|
@@ -388,30 +359,6 @@ class WCJ_General extends WCJ_Module {
|
|
388 |
'type' => 'sectionend',
|
389 |
'id' => 'wcj_general_shortcodes_options',
|
390 |
),
|
391 |
-
array(
|
392 |
-
'title' => __( 'Custom CSS Options', 'woocommerce-jetpack' ),
|
393 |
-
'type' => 'title',
|
394 |
-
'desc' => __( 'Another custom CSS, if you need one.', 'woocommerce-jetpack' ),
|
395 |
-
'id' => 'wcj_general_custom_css_options',
|
396 |
-
),
|
397 |
-
array(
|
398 |
-
'title' => __( 'Custom CSS - Front end (Customers)', 'woocommerce-jetpack' ),
|
399 |
-
'id' => 'wcj_general_custom_css',
|
400 |
-
'default' => '',
|
401 |
-
'type' => 'custom_textarea',
|
402 |
-
'css' => 'width:66%;min-width:300px;min-height:300px;',
|
403 |
-
),
|
404 |
-
array(
|
405 |
-
'title' => __( 'Custom CSS - Back end (Admin)', 'woocommerce-jetpack' ),
|
406 |
-
'id' => 'wcj_general_custom_admin_css',
|
407 |
-
'default' => '',
|
408 |
-
'type' => 'custom_textarea',
|
409 |
-
'css' => 'width:66%;min-width:300px;min-height:300px;',
|
410 |
-
),
|
411 |
-
array(
|
412 |
-
'type' => 'sectionend',
|
413 |
-
'id' => 'wcj_general_custom_css_options',
|
414 |
-
),
|
415 |
array(
|
416 |
'title' => __( 'Product Revisions', 'woocommerce-jetpack' ),
|
417 |
'type' => 'title',
|
@@ -536,36 +483,30 @@ class WCJ_General extends WCJ_Module {
|
|
536 |
'id' => 'wcj_session_expiration_options',
|
537 |
),
|
538 |
array(
|
539 |
-
'title' => __( '
|
|
|
|
|
540 |
'type' => 'title',
|
541 |
-
'id' => '
|
542 |
),
|
543 |
array(
|
544 |
-
'title' => __( '
|
545 |
-
'desc' => __( '
|
546 |
-
'
|
|
|
547 |
'default' => 'no',
|
548 |
'type' => 'checkbox',
|
549 |
),
|
550 |
array(
|
551 |
-
'
|
552 |
-
'
|
553 |
-
|
554 |
-
|
555 |
-
'
|
556 |
-
'type' => 'title',
|
557 |
-
'id' => 'wcj_general_checkout_options',
|
558 |
-
),
|
559 |
-
array(
|
560 |
-
'title' => __( 'Hide "Order Again" Button on "View Order" Page', 'woocommerce-jetpack' ),
|
561 |
-
'desc' => __( 'Hide', 'woocommerce-jetpack' ),
|
562 |
-
'id' => 'wcj_checkout_hide_order_again',
|
563 |
-
'default' => 'no',
|
564 |
-
'type' => 'checkbox',
|
565 |
),
|
566 |
array(
|
567 |
'type' => 'sectionend',
|
568 |
-
'id' => '
|
569 |
),
|
570 |
/* array(
|
571 |
'title' => __( 'WooCommerce Templates Editor Links', 'woocommerce-jetpack' ),
|
4 |
*
|
5 |
* The WooCommerce Jetpack General class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
|
24 |
$this->id = 'general';
|
25 |
$this->short_desc = __( 'General', 'woocommerce-jetpack' );
|
29 |
|
30 |
$this->add_tools( array(
|
31 |
'products_atts' => array(
|
32 |
+
'title' => __( 'Products Attributes', 'woocommerce-jetpack' ),
|
33 |
'desc' => __( 'All Products and All Attributes.', 'woocommerce-jetpack' ),
|
34 |
),
|
35 |
'custom_roles' => array(
|
49 |
add_filter( 'widget_text', 'do_shortcode' );
|
50 |
}
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
if ( 'yes' === get_option( 'wcj_paypal_email_per_product_enabled', 'no' ) ) {
|
53 |
|
54 |
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
62 |
add_filter( 'wc_session_expiration', array( $this, 'change_session_expiration' ), PHP_INT_MAX );
|
63 |
}
|
64 |
|
65 |
+
// URL Coupons
|
66 |
+
if ( 'yes' === get_option( 'wcj_url_coupons_enabled', 'no' ) ) {
|
67 |
+
add_action( 'wp_loaded', array( $this, 'maybe_apply_url_coupon' ), PHP_INT_MAX );
|
68 |
}
|
69 |
|
|
|
|
|
|
|
|
|
70 |
}
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
+
* maybe_apply_url_coupon.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
*
|
76 |
+
* @version 2.7.0
|
77 |
+
* @since 2.7.0
|
78 |
+
* @todo (maybe) predefined $arg_key
|
79 |
+
* @todo (maybe) additional $_GET['coupon_code']
|
80 |
+
* @todo (maybe) if ( ! WC()->cart->has_discount( $coupon_code ) ) {}
|
81 |
*/
|
82 |
+
function maybe_apply_url_coupon() {
|
83 |
+
$arg_key = get_option( 'wcj_url_coupons_key', 'wcj_apply_coupon' );
|
84 |
+
if ( isset( $_GET[ $arg_key ] ) && '' != $_GET[ $arg_key ] ) {
|
85 |
+
$coupon_code = sanitize_text_field( $_GET[ $arg_key ] );
|
86 |
+
WC()->cart->add_discount( $coupon_code );
|
87 |
+
wp_safe_redirect( remove_query_arg( $arg_key ) );
|
88 |
+
exit;
|
89 |
+
}
|
90 |
}
|
91 |
|
92 |
/**
|
234 |
/*
|
235 |
* get_products_atts.
|
236 |
*
|
237 |
+
* @version 2.7.0
|
238 |
* @since 2.3.9
|
239 |
*/
|
240 |
function get_products_atts() {
|
267 |
$the_product = wc_get_product( $product_id );
|
268 |
|
269 |
$products_attributes[ $product_id ]['wcj_title'] = '<a href="' . get_permalink( $product_id ) . '">' . $the_product->get_title() . '</a>';
|
270 |
+
$products_attributes[ $product_id ]['wcj_category'] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $the_product->get_categories() : wc_get_product_category_list( $product_id ) );
|
271 |
|
272 |
foreach ( $the_product->get_attributes() as $attribute ) {
|
273 |
$products_attributes[ $product_id ][ $attribute['name'] ] = $the_product->get_attribute( $attribute['name'] );
|
309 |
return '<p>' . __( 'Total Products:', 'woocommerce-jetpack' ) . ' ' . $total_products . '</p>' . wcj_get_table_html( $table_data, array( 'table_class' => 'widefat striped' ) );
|
310 |
}
|
311 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
/**
|
313 |
* get_settings.
|
314 |
*
|
315 |
+
* @version 2.7.0
|
316 |
* @todo add link to Booster's shortcodes list
|
|
|
317 |
*/
|
318 |
function get_settings() {
|
319 |
/* $links_html = '';
|
359 |
'type' => 'sectionend',
|
360 |
'id' => 'wcj_general_shortcodes_options',
|
361 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
362 |
array(
|
363 |
'title' => __( 'Product Revisions', 'woocommerce-jetpack' ),
|
364 |
'type' => 'title',
|
483 |
'id' => 'wcj_session_expiration_options',
|
484 |
),
|
485 |
array(
|
486 |
+
'title' => __( 'URL Coupons Options', 'woocommerce-jetpack' ),
|
487 |
+
'desc' => sprintf( __( 'Additionally you can hide standard coupon field on cart page in Booster\'s <a href="%s">Cart Customization</a> module.', 'woocommerce-jetpack' ),
|
488 |
+
admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=cart_and_checkout§ion=cart_customization' ) ),
|
489 |
'type' => 'title',
|
490 |
+
'id' => 'wcj_url_coupons_options',
|
491 |
),
|
492 |
array(
|
493 |
+
'title' => __( 'URL Coupons', 'woocommerce-jetpack' ),
|
494 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
495 |
+
'desc_tip' => __( 'When enabled, your users can apply shop\'s standard coupons, by visiting URL. E.g.: http://yoursite.com/?wcj_apply_coupon=couponcode.', 'woocommerce-jetpack' ),
|
496 |
+
'id' => 'wcj_url_coupons_enabled',
|
497 |
'default' => 'no',
|
498 |
'type' => 'checkbox',
|
499 |
),
|
500 |
array(
|
501 |
+
'title' => __( 'URL Coupons Key', 'woocommerce-jetpack' ),
|
502 |
+
'desc_tip' => __( 'URL key. If you change this, make sure it\'s unique and is not used anywhere on your site (e.g. by another plugin).', 'woocommerce-jetpack' ),
|
503 |
+
'id' => 'wcj_url_coupons_key',
|
504 |
+
'default' => 'wcj_apply_coupon',
|
505 |
+
'type' => 'text',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
506 |
),
|
507 |
array(
|
508 |
'type' => 'sectionend',
|
509 |
+
'id' => 'wcj_url_coupons_options',
|
510 |
),
|
511 |
/* array(
|
512 |
'title' => __( 'WooCommerce Templates Editor Links', 'woocommerce-jetpack' ),
|
includes/class-wcj-global-discount.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Global Discount class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.7
|
9 |
* @author Algoritmika Ltd.
|
10 |
* @todo products and cats/tags to include/exclude (cats to include - done); regular price coefficient; fee instead of discount;
|
@@ -19,7 +19,7 @@ class WCJ_Global_Discount extends WCJ_Module {
|
|
19 |
/**
|
20 |
* Constructor.
|
21 |
*
|
22 |
-
* @version 2.
|
23 |
* @since 2.5.7
|
24 |
*/
|
25 |
function __construct() {
|
@@ -33,9 +33,9 @@ class WCJ_Global_Discount extends WCJ_Module {
|
|
33 |
if ( $this->is_enabled() ) {
|
34 |
if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
|
35 |
// Prices
|
36 |
-
add_filter(
|
37 |
-
add_filter(
|
38 |
-
// add_filter(
|
39 |
// Variations
|
40 |
add_filter( 'woocommerce_variation_prices_price', array( $this, 'add_global_discount_price' ), PHP_INT_MAX, 2 );
|
41 |
add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'add_global_discount_sale_price' ), PHP_INT_MAX, 2 );
|
@@ -44,6 +44,11 @@ class WCJ_Global_Discount extends WCJ_Module {
|
|
44 |
// Grouped products
|
45 |
add_filter( 'woocommerce_get_price_including_tax', array( $this, 'add_global_discount_grouped' ), PHP_INT_MAX, 3 );
|
46 |
add_filter( 'woocommerce_get_price_excluding_tax', array( $this, 'add_global_discount_grouped' ), PHP_INT_MAX, 3 );
|
|
|
|
|
|
|
|
|
|
|
47 |
}
|
48 |
}
|
49 |
}
|
@@ -51,16 +56,15 @@ class WCJ_Global_Discount extends WCJ_Module {
|
|
51 |
/**
|
52 |
* add_global_discount_grouped.
|
53 |
*
|
54 |
-
* @version 2.
|
55 |
* @since 2.5.7
|
56 |
*/
|
57 |
function add_global_discount_grouped( $price, $qty, $_product ) {
|
58 |
if ( $_product->is_type( 'grouped' ) ) {
|
59 |
-
$get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
|
60 |
foreach ( $_product->get_children() as $child_id ) {
|
61 |
$the_price = get_post_meta( $child_id, '_price', true );
|
62 |
$the_product = wc_get_product( $child_id );
|
63 |
-
$the_price = $the_product
|
64 |
if ( $the_price == $price ) {
|
65 |
return $this->add_global_discount_price( $price, $the_product );
|
66 |
}
|
@@ -96,7 +100,7 @@ class WCJ_Global_Discount extends WCJ_Module {
|
|
96 |
/**
|
97 |
* check_product_categories.
|
98 |
*
|
99 |
-
* @version 2.
|
100 |
* @since 2.5.7
|
101 |
* @return bool
|
102 |
*/
|
@@ -104,7 +108,7 @@ class WCJ_Global_Discount extends WCJ_Module {
|
|
104 |
// Check product category - include
|
105 |
$categories_in = get_option( 'wcj_global_discount_sale_categories_incl_' . $group, '' );
|
106 |
if ( ! empty( $categories_in ) ) {
|
107 |
-
$product_categories = get_the_terms( $_product
|
108 |
if ( empty( $product_categories ) ) {
|
109 |
return false; // option set to some categories, but product has no categories
|
110 |
}
|
@@ -121,7 +125,7 @@ class WCJ_Global_Discount extends WCJ_Module {
|
|
121 |
/**
|
122 |
* add_global_discount_any_price.
|
123 |
*
|
124 |
-
* @version 2.
|
125 |
* @since 2.5.7
|
126 |
*/
|
127 |
function add_global_discount_any_price( $price_type, $price, $_product ) {
|
@@ -147,15 +151,21 @@ class WCJ_Global_Discount extends WCJ_Module {
|
|
147 |
}
|
148 |
}
|
149 |
} else { // if ( 'price' === $price_type )
|
150 |
-
remove_filter(
|
151 |
remove_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'add_global_discount_sale_price' ), PHP_INT_MAX, 2 );
|
|
|
|
|
|
|
152 |
if ( 'only_on_sale' === get_option( 'wcj_global_discount_sale_product_scope_' . $i, 'all' ) && 0 == $_product->get_sale_price() ) {
|
153 |
continue; // no changes by current discount group
|
154 |
} elseif ( 'only_not_on_sale' === get_option( 'wcj_global_discount_sale_product_scope_' . $i, 'all' ) && 0 != $_product->get_sale_price() ) {
|
155 |
continue; // no changes by current discount group
|
156 |
}
|
157 |
-
add_filter(
|
158 |
add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'add_global_discount_sale_price' ), PHP_INT_MAX, 2 );
|
|
|
|
|
|
|
159 |
}
|
160 |
return $this->calculate_price( $price, $coefficient, $i ); // discount applied
|
161 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Global Discount class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.7
|
9 |
* @author Algoritmika Ltd.
|
10 |
* @todo products and cats/tags to include/exclude (cats to include - done); regular price coefficient; fee instead of discount;
|
19 |
/**
|
20 |
* Constructor.
|
21 |
*
|
22 |
+
* @version 2.7.0
|
23 |
* @since 2.5.7
|
24 |
*/
|
25 |
function __construct() {
|
33 |
if ( $this->is_enabled() ) {
|
34 |
if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
|
35 |
// Prices
|
36 |
+
add_filter( WCJ_PRODUCT_GET_PRICE_FILTER, array( $this, 'add_global_discount_price' ), PHP_INT_MAX, 2 );
|
37 |
+
add_filter( WCJ_PRODUCT_GET_SALE_PRICE_FILTER, array( $this, 'add_global_discount_sale_price' ), PHP_INT_MAX, 2 );
|
38 |
+
// add_filter( WCJ_PRODUCT_GET_REGULAR_PRICE_FILTER, array( $this, 'add_global_discount_regular_price' ), PHP_INT_MAX, 2 );
|
39 |
// Variations
|
40 |
add_filter( 'woocommerce_variation_prices_price', array( $this, 'add_global_discount_price' ), PHP_INT_MAX, 2 );
|
41 |
add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'add_global_discount_sale_price' ), PHP_INT_MAX, 2 );
|
44 |
// Grouped products
|
45 |
add_filter( 'woocommerce_get_price_including_tax', array( $this, 'add_global_discount_grouped' ), PHP_INT_MAX, 3 );
|
46 |
add_filter( 'woocommerce_get_price_excluding_tax', array( $this, 'add_global_discount_grouped' ), PHP_INT_MAX, 3 );
|
47 |
+
if ( ! WCJ_IS_WC_VERSION_BELOW_3 ) {
|
48 |
+
add_filter( 'woocommerce_product_variation_get_price', array( $this, 'add_global_discount_price' ), PHP_INT_MAX, 2 );
|
49 |
+
add_filter( 'woocommerce_product_variation_get_sale_price', array( $this, 'add_global_discount_sale_price' ), PHP_INT_MAX, 2 );
|
50 |
+
// add_filter( 'woocommerce_product_variation_get_regular_price', array( $this, 'add_global_discount_regular_price' ), PHP_INT_MAX, 2 );
|
51 |
+
}
|
52 |
}
|
53 |
}
|
54 |
}
|
56 |
/**
|
57 |
* add_global_discount_grouped.
|
58 |
*
|
59 |
+
* @version 2.7.0
|
60 |
* @since 2.5.7
|
61 |
*/
|
62 |
function add_global_discount_grouped( $price, $qty, $_product ) {
|
63 |
if ( $_product->is_type( 'grouped' ) ) {
|
|
|
64 |
foreach ( $_product->get_children() as $child_id ) {
|
65 |
$the_price = get_post_meta( $child_id, '_price', true );
|
66 |
$the_product = wc_get_product( $child_id );
|
67 |
+
$the_price = wcj_get_product_display_price( $the_product, $the_price, 1 );
|
68 |
if ( $the_price == $price ) {
|
69 |
return $this->add_global_discount_price( $price, $the_product );
|
70 |
}
|
100 |
/**
|
101 |
* check_product_categories.
|
102 |
*
|
103 |
+
* @version 2.7.0
|
104 |
* @since 2.5.7
|
105 |
* @return bool
|
106 |
*/
|
108 |
// Check product category - include
|
109 |
$categories_in = get_option( 'wcj_global_discount_sale_categories_incl_' . $group, '' );
|
110 |
if ( ! empty( $categories_in ) ) {
|
111 |
+
$product_categories = get_the_terms( wcj_get_product_id_or_variation_parent_id( $_product ), 'product_cat' );
|
112 |
if ( empty( $product_categories ) ) {
|
113 |
return false; // option set to some categories, but product has no categories
|
114 |
}
|
125 |
/**
|
126 |
* add_global_discount_any_price.
|
127 |
*
|
128 |
+
* @version 2.7.0
|
129 |
* @since 2.5.7
|
130 |
*/
|
131 |
function add_global_discount_any_price( $price_type, $price, $_product ) {
|
151 |
}
|
152 |
}
|
153 |
} else { // if ( 'price' === $price_type )
|
154 |
+
remove_filter( WCJ_PRODUCT_GET_SALE_PRICE_FILTER, array( $this, 'add_global_discount_sale_price' ), PHP_INT_MAX, 2 );
|
155 |
remove_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'add_global_discount_sale_price' ), PHP_INT_MAX, 2 );
|
156 |
+
if ( ! WCJ_IS_WC_VERSION_BELOW_3 ) {
|
157 |
+
remove_filter( 'woocommerce_product_variation_get_sale_price', array( $this, 'add_global_discount_sale_price' ), PHP_INT_MAX, 2 );
|
158 |
+
}
|
159 |
if ( 'only_on_sale' === get_option( 'wcj_global_discount_sale_product_scope_' . $i, 'all' ) && 0 == $_product->get_sale_price() ) {
|
160 |
continue; // no changes by current discount group
|
161 |
} elseif ( 'only_not_on_sale' === get_option( 'wcj_global_discount_sale_product_scope_' . $i, 'all' ) && 0 != $_product->get_sale_price() ) {
|
162 |
continue; // no changes by current discount group
|
163 |
}
|
164 |
+
add_filter( WCJ_PRODUCT_GET_SALE_PRICE_FILTER, array( $this, 'add_global_discount_sale_price' ), PHP_INT_MAX, 2 );
|
165 |
add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'add_global_discount_sale_price' ), PHP_INT_MAX, 2 );
|
166 |
+
if ( ! WCJ_IS_WC_VERSION_BELOW_3 ) {
|
167 |
+
add_filter( 'woocommerce_product_variation_get_sale_price', array( $this, 'add_global_discount_sale_price' ), PHP_INT_MAX, 2 );
|
168 |
+
}
|
169 |
}
|
170 |
return $this->calculate_price( $price, $coefficient, $i ); // discount applied
|
171 |
}
|
includes/class-wcj-left-to-free-shipping.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Left to Free Shipping class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.8
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -96,28 +96,6 @@ class WCJ_Left_To_Free_Shipping extends WCJ_Module {
|
|
96 |
echo wcj_get_left_to_free_shipping( $content );
|
97 |
}
|
98 |
|
99 |
-
/**
|
100 |
-
* add_settings_hook.
|
101 |
-
*
|
102 |
-
* @version 2.5.8
|
103 |
-
* @since 2.5.8
|
104 |
-
*/
|
105 |
-
function add_settings_hook() {
|
106 |
-
add_filter( 'wcj_' . $this->id . '_settings', array( $this, 'add_settings' ) );
|
107 |
-
}
|
108 |
-
|
109 |
-
/**
|
110 |
-
* get_settings.
|
111 |
-
*
|
112 |
-
* @version 2.5.8
|
113 |
-
* @since 2.5.8
|
114 |
-
*/
|
115 |
-
function get_settings() {
|
116 |
-
$settings = array();
|
117 |
-
$settings = apply_filters( 'wcj_' . $this->id . '_settings', $settings );
|
118 |
-
return $this->add_standard_settings( $settings );
|
119 |
-
}
|
120 |
-
|
121 |
/**
|
122 |
* add_settings.
|
123 |
*
|
4 |
*
|
5 |
* The WooCommerce Jetpack Left to Free Shipping class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.8
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
96 |
echo wcj_get_left_to_free_shipping( $content );
|
97 |
}
|
98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
/**
|
100 |
* add_settings.
|
101 |
*
|
includes/class-wcj-mini-cart.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Mini Cart class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -18,13 +18,13 @@ class WCJ_Mini_Cart extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
*/
|
23 |
-
|
24 |
|
25 |
$this->id = 'mini_cart';
|
26 |
-
$this->short_desc = __( 'Mini Cart', 'woocommerce-jetpack' );
|
27 |
-
$this->desc = __( '
|
28 |
$this->link = 'http://booster.io/features/woocommerce-mini-cart/';
|
29 |
parent::__construct();
|
30 |
|
4 |
*
|
5 |
* The WooCommerce Jetpack Mini Cart class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
*/
|
23 |
+
function __construct() {
|
24 |
|
25 |
$this->id = 'mini_cart';
|
26 |
+
$this->short_desc = __( 'Mini Cart Custom Info', 'woocommerce-jetpack' );
|
27 |
+
$this->desc = __( 'Add custom info to WooCommerce mini cart widget.', 'woocommerce-jetpack' );
|
28 |
$this->link = 'http://booster.io/features/woocommerce-mini-cart/';
|
29 |
parent::__construct();
|
30 |
|
includes/class-wcj-more-button-labels.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack More Button Labels class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -18,9 +18,9 @@ class WCJ_More_Button_Labels extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
*/
|
23 |
-
|
24 |
|
25 |
$this->id = 'more_button_labels';
|
26 |
$this->short_desc = __( 'More Button Labels', 'woocommerce-jetpack' );
|
@@ -29,15 +29,17 @@ class WCJ_More_Button_Labels extends WCJ_Module {
|
|
29 |
parent::__construct();
|
30 |
|
31 |
if ( $this->is_enabled() ) {
|
32 |
-
add_filter( 'woocommerce_order_button_text', array( $this, 'set_order_button_text' ) );
|
33 |
}
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
* set_order_button_text.
|
|
|
|
|
38 |
*/
|
39 |
-
|
40 |
-
$new_text = get_option( 'wcj_checkout_place_order_button_text' );
|
41 |
return ( '' != $new_text ) ? $new_text : $current_text;
|
42 |
}
|
43 |
|
@@ -56,7 +58,7 @@ class WCJ_More_Button_Labels extends WCJ_Module {
|
|
56 |
),
|
57 |
array(
|
58 |
'title' => __( 'Text', 'woocommerce-jetpack' ),
|
59 |
-
'desc' => __( '
|
60 |
'desc_tip' => __( 'Button on the checkout page.', 'woocommerce-jetpack' ),
|
61 |
'id' => 'wcj_checkout_place_order_button_text',
|
62 |
'default' => '',
|
4 |
*
|
5 |
* The WooCommerce Jetpack More Button Labels class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
*/
|
23 |
+
function __construct() {
|
24 |
|
25 |
$this->id = 'more_button_labels';
|
26 |
$this->short_desc = __( 'More Button Labels', 'woocommerce-jetpack' );
|
29 |
parent::__construct();
|
30 |
|
31 |
if ( $this->is_enabled() ) {
|
32 |
+
add_filter( 'woocommerce_order_button_text', array( $this, 'set_order_button_text' ), PHP_INT_MAX );
|
33 |
}
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
* set_order_button_text.
|
38 |
+
*
|
39 |
+
* @version 2.7.0
|
40 |
*/
|
41 |
+
function set_order_button_text( $current_text ) {
|
42 |
+
$new_text = get_option( 'wcj_checkout_place_order_button_text', '' );
|
43 |
return ( '' != $new_text ) ? $new_text : $current_text;
|
44 |
}
|
45 |
|
58 |
),
|
59 |
array(
|
60 |
'title' => __( 'Text', 'woocommerce-jetpack' ),
|
61 |
+
'desc' => __( 'Leave blank for WooCommerce default.', 'woocommerce-jetpack' ),
|
62 |
'desc_tip' => __( 'Button on the checkout page.', 'woocommerce-jetpack' ),
|
63 |
'id' => 'wcj_checkout_place_order_button_text',
|
64 |
'default' => '',
|
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 |
*/
|
@@ -18,7 +18,7 @@ class WCJ_Multicurrency_Base_Price extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
* @since 2.4.8
|
23 |
*/
|
24 |
function __construct() {
|
@@ -39,18 +39,7 @@ class WCJ_Multicurrency_Base_Price extends WCJ_Module {
|
|
39 |
add_filter( 'woocommerce_currency_symbol', array( $this, 'change_currency_symbol_on_product_edit' ), PHP_INT_MAX, 2 );
|
40 |
|
41 |
if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
|
42 |
-
|
43 |
-
add_filter( 'woocommerce_get_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 10, 2 );
|
44 |
-
add_filter( 'woocommerce_get_sale_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 10, 2 );
|
45 |
-
add_filter( 'woocommerce_get_regular_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 10, 2 );
|
46 |
-
// Variations
|
47 |
-
add_filter( 'woocommerce_variation_prices_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 10, 2 );
|
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() ) {
|
@@ -80,20 +69,19 @@ class WCJ_Multicurrency_Base_Price extends WCJ_Module {
|
|
80 |
}
|
81 |
|
82 |
/**
|
83 |
-
*
|
84 |
*
|
85 |
-
* @version 2.
|
86 |
* @since 2.5.0
|
87 |
*/
|
88 |
-
function
|
89 |
if ( $_product->is_type( 'grouped' ) ) {
|
90 |
-
$get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
|
91 |
foreach ( $_product->get_children() as $child_id ) {
|
92 |
$the_price = get_post_meta( $child_id, '_price', true );
|
93 |
$the_product = wc_get_product( $child_id );
|
94 |
-
$the_price = $the_product
|
95 |
if ( $the_price == $price ) {
|
96 |
-
return $this->
|
97 |
}
|
98 |
}
|
99 |
}
|
@@ -101,30 +89,21 @@ class WCJ_Multicurrency_Base_Price extends WCJ_Module {
|
|
101 |
}
|
102 |
|
103 |
/**
|
104 |
-
*
|
105 |
*
|
106 |
-
* @version 2.
|
107 |
*/
|
108 |
-
function
|
109 |
-
|
110 |
-
$multicurrency_base_price_currency = get_post_meta( $_product->id, '_' . 'wcj_multicurrency_base_price_currency', true );
|
111 |
-
if ( '' != $multicurrency_base_price_currency ) {
|
112 |
-
if ( 1 != ( $currency_exchange_rate = $this->get_currency_exchange_rate( $multicurrency_base_price_currency ) ) ) {
|
113 |
-
return $price / $currency_exchange_rate;
|
114 |
-
}
|
115 |
-
}
|
116 |
-
return $price;
|
117 |
-
*/
|
118 |
-
return wcj_price_by_product_base_currency( $price, $_product->id );
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
* get_variation_prices_hash.
|
123 |
*
|
124 |
-
* @version 2.
|
125 |
*/
|
126 |
function get_variation_prices_hash( $price_hash, $_product, $display ) {
|
127 |
-
$multicurrency_base_price_currency = get_post_meta( $_product
|
128 |
$currency_exchange_rate = $this->get_currency_exchange_rate( $multicurrency_base_price_currency );
|
129 |
$price_hash['wcj_base_currency'] = array(
|
130 |
$multicurrency_base_price_currency,
|
@@ -145,7 +124,7 @@ class WCJ_Multicurrency_Base_Price extends WCJ_Module {
|
|
145 |
$available_variations = $_product->get_available_variations();
|
146 |
foreach ( $available_variations as $variation ) {
|
147 |
$variation_product = wc_get_product( $variation['variation_id'] );
|
148 |
-
$products[ $variation['variation_id'] ] = ' (' . $variation_product
|
149 |
}
|
150 |
} else {
|
151 |
$products[ $main_product_id ] = '';
|
@@ -205,21 +184,6 @@ class WCJ_Multicurrency_Base_Price extends WCJ_Module {
|
|
205 |
return $currency_symbol;
|
206 |
}
|
207 |
|
208 |
-
/**
|
209 |
-
* add_settings_hook.
|
210 |
-
*/
|
211 |
-
function add_settings_hook() {
|
212 |
-
add_filter( 'wcj_multicurrency_base_price_settings', array( $this, 'add_settings' ) );
|
213 |
-
}
|
214 |
-
|
215 |
-
/**
|
216 |
-
* get_settings.
|
217 |
-
*/
|
218 |
-
function get_settings() {
|
219 |
-
$settings = apply_filters( 'wcj_multicurrency_base_price_settings', array() );
|
220 |
-
return $this->add_standard_settings( $settings );
|
221 |
-
}
|
222 |
-
|
223 |
/**
|
224 |
* add_settings.
|
225 |
*
|
4 |
*
|
5 |
* The WooCommerce Jetpack Multicurrency Product Base Price class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.4.8
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
* @since 2.4.8
|
23 |
*/
|
24 |
function __construct() {
|
39 |
add_filter( 'woocommerce_currency_symbol', array( $this, 'change_currency_symbol_on_product_edit' ), PHP_INT_MAX, 2 );
|
40 |
|
41 |
if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
|
42 |
+
wcj_add_change_price_hooks( $this, PHP_INT_MAX - 10, false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
}
|
44 |
|
45 |
/* if ( is_admin() ) {
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
+
* change_price_grouped.
|
73 |
*
|
74 |
+
* @version 2.7.0
|
75 |
* @since 2.5.0
|
76 |
*/
|
77 |
+
function change_price_grouped( $price, $qty, $_product ) {
|
78 |
if ( $_product->is_type( 'grouped' ) ) {
|
|
|
79 |
foreach ( $_product->get_children() as $child_id ) {
|
80 |
$the_price = get_post_meta( $child_id, '_price', true );
|
81 |
$the_product = wc_get_product( $child_id );
|
82 |
+
$the_price = wcj_get_product_display_price( $the_product, $the_price, 1 );
|
83 |
if ( $the_price == $price ) {
|
84 |
+
return $this->change_price( $price, $the_product );
|
85 |
}
|
86 |
}
|
87 |
}
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
+
* change_price.
|
93 |
*
|
94 |
+
* @version 2.7.0
|
95 |
*/
|
96 |
+
function change_price( $price, $_product ) {
|
97 |
+
return wcj_price_by_product_base_currency( $price, wcj_get_product_id_or_variation_parent_id( $_product ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
}
|
99 |
|
100 |
/**
|
101 |
* get_variation_prices_hash.
|
102 |
*
|
103 |
+
* @version 2.7.0
|
104 |
*/
|
105 |
function get_variation_prices_hash( $price_hash, $_product, $display ) {
|
106 |
+
$multicurrency_base_price_currency = get_post_meta( wcj_get_product_id_or_variation_parent_id( $_product, true ), '_' . 'wcj_multicurrency_base_price_currency', true );
|
107 |
$currency_exchange_rate = $this->get_currency_exchange_rate( $multicurrency_base_price_currency );
|
108 |
$price_hash['wcj_base_currency'] = array(
|
109 |
$multicurrency_base_price_currency,
|
124 |
$available_variations = $_product->get_available_variations();
|
125 |
foreach ( $available_variations as $variation ) {
|
126 |
$variation_product = wc_get_product( $variation['variation_id'] );
|
127 |
+
$products[ $variation['variation_id'] ] = ' (' . wcj_get_product_formatted_variation( $variation_product, true ) . ')';
|
128 |
}
|
129 |
} else {
|
130 |
$products[ $main_product_id ] = '';
|
184 |
return $currency_symbol;
|
185 |
}
|
186 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
/**
|
188 |
* add_settings.
|
189 |
*
|
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 |
*/
|
@@ -48,7 +48,7 @@ class WCJ_Multicurrency extends WCJ_Module {
|
|
48 |
/**
|
49 |
* get_meta_box_options.
|
50 |
*
|
51 |
-
* @version 2.
|
52 |
*/
|
53 |
function get_meta_box_options() {
|
54 |
$main_product_id = get_the_ID();
|
@@ -58,7 +58,7 @@ class WCJ_Multicurrency extends WCJ_Module {
|
|
58 |
$available_variations = $_product->get_available_variations();
|
59 |
foreach ( $available_variations as $variation ) {
|
60 |
$variation_product = wc_get_product( $variation['variation_id'] );
|
61 |
-
$products[ $variation['variation_id'] ] = ' (' . $variation_product
|
62 |
}
|
63 |
} else {
|
64 |
$products[ $main_product_id ] = '';
|
@@ -96,7 +96,7 @@ class WCJ_Multicurrency extends WCJ_Module {
|
|
96 |
/**
|
97 |
* add_hooks.
|
98 |
*
|
99 |
-
* @version 2.
|
100 |
*/
|
101 |
function add_hooks() {
|
102 |
// Session
|
@@ -113,66 +113,55 @@ class WCJ_Multicurrency extends WCJ_Module {
|
|
113 |
// add_filter( 'woocommerce_tm_epo_price_per_currency_diff', array( $this, 'change_price_by_currency_tm_extra_product_options_plugin_cart' ), PHP_INT_MAX - 1, 1 );
|
114 |
// add_filter( 'woocommerce_tm_epo_price_add_on_cart', array( $this, 'change_price_by_currency_tm_extra_product_options_plugin_cart' ), PHP_INT_MAX - 1, 1 );
|
115 |
// add_filter( 'wc_aelia_cs_enabled_currencies', array( $this, 'add_currency' ), PHP_INT_MAX - 1, 1 );
|
116 |
-
|
117 |
-
add_filter( 'woocommerce_get_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 1, 2 );
|
118 |
-
add_filter( 'woocommerce_get_sale_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 1, 2 );
|
119 |
-
add_filter( 'woocommerce_get_regular_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 1, 2 );
|
120 |
// Currency hooks
|
121 |
add_filter( 'woocommerce_currency_symbol', array( $this, 'change_currency_symbol' ), PHP_INT_MAX - 1, 2 );
|
122 |
add_filter( 'woocommerce_currency', array( $this, 'change_currency_code' ), PHP_INT_MAX - 1, 1 );
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
add_filter( 'woocommerce_variation_prices_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 1, 2 );
|
127 |
-
add_filter( 'woocommerce_variation_prices_regular_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 1, 2 );
|
128 |
-
add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'change_price_by_currency' ), PHP_INT_MAX - 1, 2 );
|
129 |
-
add_filter( 'woocommerce_get_variation_prices_hash', array( $this, 'get_variation_prices_hash' ), PHP_INT_MAX - 1, 3 );
|
130 |
-
// Grouped products
|
131 |
-
add_filter( 'woocommerce_get_price_including_tax', array( $this, 'change_price_by_currency_grouped' ), PHP_INT_MAX - 1, 3 );
|
132 |
-
add_filter( 'woocommerce_get_price_excluding_tax', array( $this, 'change_price_by_currency_grouped' ), PHP_INT_MAX - 1, 3 );
|
133 |
}
|
134 |
}
|
135 |
|
136 |
/**
|
137 |
* change_price_by_currency_tm_extra_product_options_plugin_cart.
|
138 |
*
|
139 |
-
* @version 2.
|
140 |
* @since 2.5.7
|
141 |
*/
|
142 |
function change_price_by_currency_tm_extra_product_options_plugin_cart( $price ) {
|
143 |
-
return $this->
|
144 |
}
|
145 |
|
146 |
/**
|
147 |
* change_price_by_currency_tm_extra_product_options_plugin.
|
148 |
*
|
149 |
-
* @version 2.
|
150 |
* @since 2.5.7
|
151 |
*/
|
152 |
function change_price_by_currency_tm_extra_product_options_plugin( $price, $type, $post_id ) {
|
153 |
-
return $this->
|
154 |
}
|
155 |
|
156 |
/**
|
157 |
-
*
|
158 |
*
|
159 |
-
* @version 2.
|
160 |
* @since 2.5.0
|
161 |
*/
|
162 |
-
function
|
163 |
if ( $_product->is_type( 'grouped' ) ) {
|
164 |
if ( 'yes' === get_option( 'wcj_multicurrency_per_product_enabled' , 'yes' ) ) {
|
165 |
-
$get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
|
166 |
foreach ( $_product->get_children() as $child_id ) {
|
167 |
$the_price = get_post_meta( $child_id, '_price', true );
|
168 |
$the_product = wc_get_product( $child_id );
|
169 |
-
$the_price = $the_product
|
170 |
if ( $the_price == $price ) {
|
171 |
-
return $this->
|
172 |
}
|
173 |
}
|
174 |
} else {
|
175 |
-
return $this->
|
176 |
}
|
177 |
}
|
178 |
return $price;
|
@@ -222,11 +211,11 @@ class WCJ_Multicurrency extends WCJ_Module {
|
|
222 |
}
|
223 |
|
224 |
/**
|
225 |
-
*
|
226 |
*
|
227 |
-
* @version 2.
|
228 |
*/
|
229 |
-
function
|
230 |
|
231 |
if ( '' === $price ) {
|
232 |
return $price;
|
@@ -238,22 +227,21 @@ class WCJ_Multicurrency extends WCJ_Module {
|
|
238 |
|
239 |
// Per product
|
240 |
if ( 'yes' === get_option( 'wcj_multicurrency_per_product_enabled' , 'yes' ) && null != $_product ) {
|
241 |
-
$
|
242 |
-
if ( '' != ( $regular_price_per_product = get_post_meta( $
|
243 |
-
$
|
244 |
-
if ( 'woocommerce_get_price_including_tax' == $
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
$sale_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_multicurrency_per_product_sale_price_' . $this->get_current_currency_code(), true );
|
250 |
return ( '' != $sale_price_per_product && $sale_price_per_product < $regular_price_per_product ) ? $sale_price_per_product : $regular_price_per_product;
|
251 |
|
252 |
-
} elseif ( '
|
253 |
return $regular_price_per_product;
|
254 |
|
255 |
-
} elseif ( '
|
256 |
-
$sale_price_per_product = get_post_meta( $
|
257 |
return ( '' != $sale_price_per_product ) ? $sale_price_per_product : $price;
|
258 |
}
|
259 |
}
|
@@ -328,11 +316,11 @@ class WCJ_Multicurrency extends WCJ_Module {
|
|
328 |
}
|
329 |
|
330 |
/**
|
331 |
-
*
|
332 |
*
|
333 |
-
* @version 2.
|
334 |
*/
|
335 |
-
function
|
336 |
if ( $this->do_revert() ) {
|
337 |
return $package_rates;
|
338 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Multicurrency class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.4.3
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
48 |
/**
|
49 |
* get_meta_box_options.
|
50 |
*
|
51 |
+
* @version 2.7.0
|
52 |
*/
|
53 |
function get_meta_box_options() {
|
54 |
$main_product_id = get_the_ID();
|
58 |
$available_variations = $_product->get_available_variations();
|
59 |
foreach ( $available_variations as $variation ) {
|
60 |
$variation_product = wc_get_product( $variation['variation_id'] );
|
61 |
+
$products[ $variation['variation_id'] ] = ' (' . wcj_get_product_formatted_variation( $variation_product, true ) . ')';
|
62 |
}
|
63 |
} else {
|
64 |
$products[ $main_product_id ] = '';
|
96 |
/**
|
97 |
* add_hooks.
|
98 |
*
|
99 |
+
* @version 2.7.0
|
100 |
*/
|
101 |
function add_hooks() {
|
102 |
// Session
|
113 |
// add_filter( 'woocommerce_tm_epo_price_per_currency_diff', array( $this, 'change_price_by_currency_tm_extra_product_options_plugin_cart' ), PHP_INT_MAX - 1, 1 );
|
114 |
// add_filter( 'woocommerce_tm_epo_price_add_on_cart', array( $this, 'change_price_by_currency_tm_extra_product_options_plugin_cart' ), PHP_INT_MAX - 1, 1 );
|
115 |
// add_filter( 'wc_aelia_cs_enabled_currencies', array( $this, 'add_currency' ), PHP_INT_MAX - 1, 1 );
|
116 |
+
|
|
|
|
|
|
|
117 |
// Currency hooks
|
118 |
add_filter( 'woocommerce_currency_symbol', array( $this, 'change_currency_symbol' ), PHP_INT_MAX - 1, 2 );
|
119 |
add_filter( 'woocommerce_currency', array( $this, 'change_currency_code' ), PHP_INT_MAX - 1, 1 );
|
120 |
+
|
121 |
+
// Add "Change Price" hooks
|
122 |
+
wcj_add_change_price_hooks( $this, PHP_INT_MAX - 1 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
}
|
124 |
}
|
125 |
|
126 |
/**
|
127 |
* change_price_by_currency_tm_extra_product_options_plugin_cart.
|
128 |
*
|
129 |
+
* @version 2.7.0
|
130 |
* @since 2.5.7
|
131 |
*/
|
132 |
function change_price_by_currency_tm_extra_product_options_plugin_cart( $price ) {
|
133 |
+
return $this->change_price( $price, null );
|
134 |
}
|
135 |
|
136 |
/**
|
137 |
* change_price_by_currency_tm_extra_product_options_plugin.
|
138 |
*
|
139 |
+
* @version 2.7.0
|
140 |
* @since 2.5.7
|
141 |
*/
|
142 |
function change_price_by_currency_tm_extra_product_options_plugin( $price, $type, $post_id ) {
|
143 |
+
return $this->change_price( $price, null );
|
144 |
}
|
145 |
|
146 |
/**
|
147 |
+
* change_price_grouped.
|
148 |
*
|
149 |
+
* @version 2.7.0
|
150 |
* @since 2.5.0
|
151 |
*/
|
152 |
+
function change_price_grouped( $price, $qty, $_product ) {
|
153 |
if ( $_product->is_type( 'grouped' ) ) {
|
154 |
if ( 'yes' === get_option( 'wcj_multicurrency_per_product_enabled' , 'yes' ) ) {
|
|
|
155 |
foreach ( $_product->get_children() as $child_id ) {
|
156 |
$the_price = get_post_meta( $child_id, '_price', true );
|
157 |
$the_product = wc_get_product( $child_id );
|
158 |
+
$the_price = wcj_get_product_display_price( $the_product, $the_price, 1 );
|
159 |
if ( $the_price == $price ) {
|
160 |
+
return $this->change_price( $price, $the_product );
|
161 |
}
|
162 |
}
|
163 |
} else {
|
164 |
+
return $this->change_price( $price, null );
|
165 |
}
|
166 |
}
|
167 |
return $price;
|
211 |
}
|
212 |
|
213 |
/**
|
214 |
+
* change_price.
|
215 |
*
|
216 |
+
* @version 2.7.0
|
217 |
*/
|
218 |
+
function change_price( $price, $_product ) {
|
219 |
|
220 |
if ( '' === $price ) {
|
221 |
return $price;
|
227 |
|
228 |
// Per product
|
229 |
if ( 'yes' === get_option( 'wcj_multicurrency_per_product_enabled' , 'yes' ) && null != $_product ) {
|
230 |
+
$_product_id = wcj_get_product_id( $_product );
|
231 |
+
if ( '' != ( $regular_price_per_product = get_post_meta( $_product_id, '_' . 'wcj_multicurrency_per_product_regular_price_' . $this->get_current_currency_code(), true ) ) ) {
|
232 |
+
$_current_filter = current_filter();
|
233 |
+
if ( 'woocommerce_get_price_including_tax' == $_current_filter || 'woocommerce_get_price_excluding_tax' == $_current_filter ) {
|
234 |
+
return wcj_get_product_display_price( $_product );
|
235 |
+
|
236 |
+
} elseif ( WCJ_PRODUCT_GET_PRICE_FILTER == $_current_filter || 'woocommerce_variation_prices_price' == $_current_filter || 'woocommerce_product_variation_get_price' == $_current_filter ) {
|
237 |
+
$sale_price_per_product = get_post_meta( $_product_id, '_' . 'wcj_multicurrency_per_product_sale_price_' . $this->get_current_currency_code(), true );
|
|
|
238 |
return ( '' != $sale_price_per_product && $sale_price_per_product < $regular_price_per_product ) ? $sale_price_per_product : $regular_price_per_product;
|
239 |
|
240 |
+
} elseif ( WCJ_PRODUCT_GET_REGULAR_PRICE_FILTER == $_current_filter || 'woocommerce_variation_prices_regular_price' == $_current_filter || 'woocommerce_product_variation_get_regular_price' == $_current_filter ) {
|
241 |
return $regular_price_per_product;
|
242 |
|
243 |
+
} elseif ( WCJ_PRODUCT_GET_SALE_PRICE_FILTER == $_current_filter || 'woocommerce_variation_prices_sale_price' == $_current_filter || 'woocommerce_product_variation_get_sale_price' == $_current_filter ) {
|
244 |
+
$sale_price_per_product = get_post_meta( $_product_id, '_' . 'wcj_multicurrency_per_product_sale_price_' . $this->get_current_currency_code(), true );
|
245 |
return ( '' != $sale_price_per_product ) ? $sale_price_per_product : $price;
|
246 |
}
|
247 |
}
|
316 |
}
|
317 |
|
318 |
/**
|
319 |
+
* change_price_shipping.
|
320 |
*
|
321 |
+
* @version 2.7.0
|
322 |
*/
|
323 |
+
function change_price_shipping( $package_rates, $package ) {
|
324 |
if ( $this->do_revert() ) {
|
325 |
return $package_rates;
|
326 |
}
|
includes/class-wcj-old-slugs.php
CHANGED
@@ -19,7 +19,7 @@ class WCJ_Old_Slugs extends WCJ_Module {
|
|
19 |
*
|
20 |
* @version 2.5.0
|
21 |
*/
|
22 |
-
|
23 |
|
24 |
$this->id = 'old_slugs';
|
25 |
$this->short_desc = __( 'Old Slugs', 'woocommerce-jetpack' );
|
@@ -72,8 +72,11 @@ class WCJ_Old_Slugs extends WCJ_Module {
|
|
72 |
|
73 |
if ( ( isset( $_POST['remove_old_products_slugs'] ) ) || ( isset( $_POST['remove_old_none_products_slugs'] ) ) ) {
|
74 |
|
75 |
-
if ( isset( $_POST['remove_old_products_slugs'] ) )
|
76 |
-
|
|
|
|
|
|
|
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 |
|
@@ -81,7 +84,7 @@ class WCJ_Old_Slugs extends WCJ_Module {
|
|
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
|
85 |
}
|
86 |
}
|
87 |
|
19 |
*
|
20 |
* @version 2.5.0
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
|
24 |
$this->id = 'old_slugs';
|
25 |
$this->short_desc = __( 'Old Slugs', 'woocommerce-jetpack' );
|
72 |
|
73 |
if ( ( isset( $_POST['remove_old_products_slugs'] ) ) || ( isset( $_POST['remove_old_none_products_slugs'] ) ) ) {
|
74 |
|
75 |
+
if ( isset( $_POST['remove_old_products_slugs'] ) ) {
|
76 |
+
$post_ids_to_delete = join( ',', $posts_ids['products'] );
|
77 |
+
} elseif ( isset( $_POST['remove_old_none_products_slugs'] ) ) {
|
78 |
+
$post_ids_to_delete = join( ',', $posts_ids['none_products'] );
|
79 |
+
}
|
80 |
|
81 |
$the_delete_query = "DELETE FROM $wp_postmeta_table WHERE meta_key = '_wp_old_slug' AND post_id IN ($post_ids_to_delete)";
|
82 |
|
84 |
|
85 |
$recheck_result = $wpdb->get_results("SELECT * FROM $wp_postmeta_table WHERE meta_key = '_wp_old_slug'");
|
86 |
$recheck_result_count = count( $recheck_result );
|
87 |
+
$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>';
|
88 |
}
|
89 |
}
|
90 |
|
includes/class-wcj-order-custom-statuses.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Order Custom Statuses class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -20,7 +20,7 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
20 |
*
|
21 |
* @version 2.6.0
|
22 |
*/
|
23 |
-
|
24 |
|
25 |
$this->id = 'order_custom_statuses';
|
26 |
$this->short_desc = __( 'Order Custom Statuses', 'woocommerce-jetpack' );
|
@@ -61,7 +61,7 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
61 |
/**
|
62 |
* add_custom_status_actions_buttons.
|
63 |
*
|
64 |
-
* @version 2.
|
65 |
* @since 2.6.0
|
66 |
*/
|
67 |
function add_custom_status_actions_buttons( $actions, $_order ) {
|
@@ -71,7 +71,7 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
71 |
$custom_order_status = substr( $slug, 3 );
|
72 |
if ( ! $_order->has_status( array( $custom_order_status ) ) ) { // if order status is not $custom_order_status
|
73 |
$actions[ $custom_order_status ] = array(
|
74 |
-
'url' => wp_nonce_url( admin_url( 'admin-ajax.php?action=woocommerce_mark_order_status&status=' . $custom_order_status . '&order_id=' . $_order
|
75 |
'name' => $label,
|
76 |
'action' => "view " . $custom_order_status, // setting "view" for proper button CSS
|
77 |
);
|
@@ -128,7 +128,7 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
128 |
*
|
129 |
* @version 2.3.8
|
130 |
*/
|
131 |
-
|
132 |
if ( is_array( $order_statuses ) && in_array( 'completed', $order_statuses ) ) {
|
133 |
$custom_order_statuses = get_option( 'wcj_orders_custom_statuses_array' );
|
134 |
if ( ! empty( $custom_order_statuses ) && is_array( $custom_order_statuses ) ) {
|
@@ -143,14 +143,14 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
143 |
/**
|
144 |
* set_default_order_status.
|
145 |
*/
|
146 |
-
|
147 |
return get_option( 'wcj_orders_custom_statuses_default_status', 'pending' );
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
* register_custom_post_statuses.
|
152 |
*/
|
153 |
-
|
154 |
$wcj_orders_custom_statuses_array = ( '' == get_option( 'wcj_orders_custom_statuses_array' ) ) ? array() : get_option( 'wcj_orders_custom_statuses_array' );
|
155 |
foreach ( $wcj_orders_custom_statuses_array as $slug => $label )
|
156 |
register_post_status( $slug, array(
|
@@ -167,7 +167,7 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
167 |
/**
|
168 |
* add_custom_statuses_to_filter.
|
169 |
*/
|
170 |
-
|
171 |
$wcj_orders_custom_statuses_array = ( '' == get_option( 'wcj_orders_custom_statuses_array' ) ) ? array() : get_option( 'wcj_orders_custom_statuses_array' );
|
172 |
$order_statuses = ( '' == $order_statuses ) ? array() : $order_statuses;
|
173 |
return array_merge( $order_statuses, $wcj_orders_custom_statuses_array );
|
@@ -178,7 +178,7 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
178 |
*
|
179 |
* @verison 2.5.6
|
180 |
*/
|
181 |
-
|
182 |
$output = '<style>';
|
183 |
$statuses = function_exists( 'wc_get_order_statuses' ) ? wc_get_order_statuses() : array();
|
184 |
$default_statuses = $this->get_default_order_statuses();
|
@@ -205,7 +205,7 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
205 |
*
|
206 |
* @version 2.6.0
|
207 |
*/
|
208 |
-
|
209 |
|
210 |
// Checking function arguments
|
211 |
if ( ! isset( $new_status ) || '' == $new_status ) {
|
@@ -251,7 +251,7 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
251 |
* @todo (from Custom Order Status for WooCommerce plugin) delete: option to change fallback status from 'on-hold' to any other status
|
252 |
* @todo (from Custom Order Status for WooCommerce plugin) delete: delete icon data
|
253 |
*/
|
254 |
-
|
255 |
$result_message = '';
|
256 |
if ( isset( $_POST['add_custom_status'] ) ) {
|
257 |
$result_message = $this->add_custom_status( $_POST['new_status'], $_POST['new_status_label'], $_POST['new_status_icon_content'], $_POST['new_status_icon_color'] );
|
@@ -367,7 +367,7 @@ class WCJ_Order_Custom_Statuses extends WCJ_Module {
|
|
367 |
* @version 2.2.7
|
368 |
* @since 2.2.7
|
369 |
*/
|
370 |
-
|
371 |
global $post_type;
|
372 |
if ( 'shop_order' == $post_type ) {
|
373 |
?><script type="text/javascript"><?php
|
4 |
*
|
5 |
* The WooCommerce Jetpack Order Custom Statuses class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
20 |
*
|
21 |
* @version 2.6.0
|
22 |
*/
|
23 |
+
function __construct() {
|
24 |
|
25 |
$this->id = 'order_custom_statuses';
|
26 |
$this->short_desc = __( 'Order Custom Statuses', 'woocommerce-jetpack' );
|
61 |
/**
|
62 |
* add_custom_status_actions_buttons.
|
63 |
*
|
64 |
+
* @version 2.7.0
|
65 |
* @since 2.6.0
|
66 |
*/
|
67 |
function add_custom_status_actions_buttons( $actions, $_order ) {
|
71 |
$custom_order_status = substr( $slug, 3 );
|
72 |
if ( ! $_order->has_status( array( $custom_order_status ) ) ) { // if order status is not $custom_order_status
|
73 |
$actions[ $custom_order_status ] = array(
|
74 |
+
'url' => wp_nonce_url( admin_url( 'admin-ajax.php?action=woocommerce_mark_order_status&status=' . $custom_order_status . '&order_id=' . wcj_get_order_id( $_order ) ), 'woocommerce-mark-order-status' ),
|
75 |
'name' => $label,
|
76 |
'action' => "view " . $custom_order_status, // setting "view" for proper button CSS
|
77 |
);
|
128 |
*
|
129 |
* @version 2.3.8
|
130 |
*/
|
131 |
+
function add_custom_order_statuses_to_reports( $order_statuses ) {
|
132 |
if ( is_array( $order_statuses ) && in_array( 'completed', $order_statuses ) ) {
|
133 |
$custom_order_statuses = get_option( 'wcj_orders_custom_statuses_array' );
|
134 |
if ( ! empty( $custom_order_statuses ) && is_array( $custom_order_statuses ) ) {
|
143 |
/**
|
144 |
* set_default_order_status.
|
145 |
*/
|
146 |
+
function set_default_order_status() {
|
147 |
return get_option( 'wcj_orders_custom_statuses_default_status', 'pending' );
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
* register_custom_post_statuses.
|
152 |
*/
|
153 |
+
function register_custom_post_statuses() {
|
154 |
$wcj_orders_custom_statuses_array = ( '' == get_option( 'wcj_orders_custom_statuses_array' ) ) ? array() : get_option( 'wcj_orders_custom_statuses_array' );
|
155 |
foreach ( $wcj_orders_custom_statuses_array as $slug => $label )
|
156 |
register_post_status( $slug, array(
|
167 |
/**
|
168 |
* add_custom_statuses_to_filter.
|
169 |
*/
|
170 |
+
function add_custom_statuses_to_filter( $order_statuses ) {
|
171 |
$wcj_orders_custom_statuses_array = ( '' == get_option( 'wcj_orders_custom_statuses_array' ) ) ? array() : get_option( 'wcj_orders_custom_statuses_array' );
|
172 |
$order_statuses = ( '' == $order_statuses ) ? array() : $order_statuses;
|
173 |
return array_merge( $order_statuses, $wcj_orders_custom_statuses_array );
|
178 |
*
|
179 |
* @verison 2.5.6
|
180 |
*/
|
181 |
+
function hook_statuses_icons_css() {
|
182 |
$output = '<style>';
|
183 |
$statuses = function_exists( 'wc_get_order_statuses' ) ? wc_get_order_statuses() : array();
|
184 |
$default_statuses = $this->get_default_order_statuses();
|
205 |
*
|
206 |
* @version 2.6.0
|
207 |
*/
|
208 |
+
function add_custom_status( $new_status, $new_status_label, $new_status_icon_content, $new_status_icon_color ) {
|
209 |
|
210 |
// Checking function arguments
|
211 |
if ( ! isset( $new_status ) || '' == $new_status ) {
|
251 |
* @todo (from Custom Order Status for WooCommerce plugin) delete: option to change fallback status from 'on-hold' to any other status
|
252 |
* @todo (from Custom Order Status for WooCommerce plugin) delete: delete icon data
|
253 |
*/
|
254 |
+
function create_custom_statuses_tool() {
|
255 |
$result_message = '';
|
256 |
if ( isset( $_POST['add_custom_status'] ) ) {
|
257 |
$result_message = $this->add_custom_status( $_POST['new_status'], $_POST['new_status_label'], $_POST['new_status_icon_content'], $_POST['new_status_icon_color'] );
|
367 |
* @version 2.2.7
|
368 |
* @since 2.2.7
|
369 |
*/
|
370 |
+
function bulk_admin_footer() {
|
371 |
global $post_type;
|
372 |
if ( 'shop_order' == $post_type ) {
|
373 |
?><script type="text/javascript"><?php
|
includes/class-wcj-order-min-amount.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Order Minimum Amount class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.7
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -21,7 +21,7 @@ class WCJ_Order_Min_Amount extends WCJ_Module {
|
|
21 |
* @version 2.5.7
|
22 |
* @since 2.5.7
|
23 |
*/
|
24 |
-
|
25 |
|
26 |
$this->id = 'order_min_amount';
|
27 |
$this->short_desc = __( 'Order Minimum Amount', 'woocommerce-jetpack' );
|
@@ -67,7 +67,7 @@ class WCJ_Order_Min_Amount extends WCJ_Module {
|
|
67 |
/**
|
68 |
* get_order_minimum_amount_with_user_roles.
|
69 |
*
|
70 |
-
* @version 2.
|
71 |
* @since 2.5.3
|
72 |
*/
|
73 |
function get_order_minimum_amount_with_user_roles() {
|
@@ -84,7 +84,7 @@ class WCJ_Order_Min_Amount extends WCJ_Module {
|
|
84 |
}
|
85 |
// Multicurrency (Currency Switcher) module
|
86 |
if ( WCJ()->modules['multicurrency']->is_enabled() ) {
|
87 |
-
$minimum = WCJ()->modules['multicurrency']->
|
88 |
}
|
89 |
return $minimum;
|
90 |
}
|
@@ -109,10 +109,10 @@ class WCJ_Order_Min_Amount extends WCJ_Module {
|
|
109 |
/**
|
110 |
* order_minimum_amount.
|
111 |
*
|
112 |
-
* @version 2.
|
113 |
* @todo wc_print_notice or wc_add_notice?
|
114 |
*/
|
115 |
-
|
116 |
$minimum = $this->get_order_minimum_amount_with_user_roles();
|
117 |
if ( 0 == $minimum ) {
|
118 |
return;
|
@@ -123,8 +123,8 @@ class WCJ_Order_Min_Amount extends WCJ_Module {
|
|
123 |
if ( 'yes' === get_option( 'wcj_order_minimum_amount_cart_notice_enabled', 'no' ) ) {
|
124 |
wc_print_notice(
|
125 |
sprintf( apply_filters( 'booster_get_option', 'You must have an order with a minimum of %s to place your order, your current order total is %s.', get_option( 'wcj_order_minimum_amount_cart_notice_message' ) ),
|
126 |
-
|
127 |
-
|
128 |
),
|
129 |
'notice'
|
130 |
);
|
@@ -132,8 +132,8 @@ class WCJ_Order_Min_Amount extends WCJ_Module {
|
|
132 |
} else {
|
133 |
wc_add_notice(
|
134 |
sprintf( apply_filters( 'booster_get_option', 'You must have an order with a minimum of %s to place your order, your current order total is %s.', get_option( 'wcj_order_minimum_amount_error_message' ) ),
|
135 |
-
|
136 |
-
|
137 |
),
|
138 |
'error'
|
139 |
);
|
@@ -144,9 +144,9 @@ class WCJ_Order_Min_Amount extends WCJ_Module {
|
|
144 |
/**
|
145 |
* stop_from_seeing_checkout.
|
146 |
*
|
147 |
-
* @version 2.
|
148 |
*/
|
149 |
-
|
150 |
// if ( is_admin() ) return;
|
151 |
global $woocommerce;
|
152 |
if ( ! isset( $woocommerce ) || ! is_object( $woocommerce ) ) {
|
@@ -168,30 +168,10 @@ class WCJ_Order_Min_Amount extends WCJ_Module {
|
|
168 |
}
|
169 |
if ( $the_cart_total < $minimum ) {
|
170 |
wp_safe_redirect( $woocommerce->cart->get_cart_url() );
|
|
|
171 |
}
|
172 |
}
|
173 |
|
174 |
-
/**
|
175 |
-
* add_settings_hook.
|
176 |
-
*
|
177 |
-
* @version 2.5.7
|
178 |
-
* @since 2.5.7
|
179 |
-
*/
|
180 |
-
function add_settings_hook() {
|
181 |
-
add_filter( 'wcj_order_min_amount_settings', array( $this, 'add_settings' ) );
|
182 |
-
}
|
183 |
-
|
184 |
-
/**
|
185 |
-
* get_settings.
|
186 |
-
*
|
187 |
-
* @version 2.5.7
|
188 |
-
* @since 2.5.7
|
189 |
-
*/
|
190 |
-
function get_settings() {
|
191 |
-
$settings = apply_filters( 'wcj_order_min_amount_settings', array() );
|
192 |
-
return $this->add_standard_settings( $settings );
|
193 |
-
}
|
194 |
-
|
195 |
/**
|
196 |
* add_settings.
|
197 |
*
|
4 |
*
|
5 |
* The WooCommerce Jetpack Order Minimum Amount class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.7
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
21 |
* @version 2.5.7
|
22 |
* @since 2.5.7
|
23 |
*/
|
24 |
+
function __construct() {
|
25 |
|
26 |
$this->id = 'order_min_amount';
|
27 |
$this->short_desc = __( 'Order Minimum Amount', 'woocommerce-jetpack' );
|
67 |
/**
|
68 |
* get_order_minimum_amount_with_user_roles.
|
69 |
*
|
70 |
+
* @version 2.7.0
|
71 |
* @since 2.5.3
|
72 |
*/
|
73 |
function get_order_minimum_amount_with_user_roles() {
|
84 |
}
|
85 |
// Multicurrency (Currency Switcher) module
|
86 |
if ( WCJ()->modules['multicurrency']->is_enabled() ) {
|
87 |
+
$minimum = WCJ()->modules['multicurrency']->change_price( $minimum, null );
|
88 |
}
|
89 |
return $minimum;
|
90 |
}
|
109 |
/**
|
110 |
* order_minimum_amount.
|
111 |
*
|
112 |
+
* @version 2.7.0
|
113 |
* @todo wc_print_notice or wc_add_notice?
|
114 |
*/
|
115 |
+
function order_minimum_amount() {
|
116 |
$minimum = $this->get_order_minimum_amount_with_user_roles();
|
117 |
if ( 0 == $minimum ) {
|
118 |
return;
|
123 |
if ( 'yes' === get_option( 'wcj_order_minimum_amount_cart_notice_enabled', 'no' ) ) {
|
124 |
wc_print_notice(
|
125 |
sprintf( apply_filters( 'booster_get_option', 'You must have an order with a minimum of %s to place your order, your current order total is %s.', get_option( 'wcj_order_minimum_amount_cart_notice_message' ) ),
|
126 |
+
wc_price( $minimum ),
|
127 |
+
wc_price( $cart_total )
|
128 |
),
|
129 |
'notice'
|
130 |
);
|
132 |
} else {
|
133 |
wc_add_notice(
|
134 |
sprintf( apply_filters( 'booster_get_option', 'You must have an order with a minimum of %s to place your order, your current order total is %s.', get_option( 'wcj_order_minimum_amount_error_message' ) ),
|
135 |
+
wc_price( $minimum ),
|
136 |
+
wc_price( $cart_total )
|
137 |
),
|
138 |
'error'
|
139 |
);
|
144 |
/**
|
145 |
* stop_from_seeing_checkout.
|
146 |
*
|
147 |
+
* @version 2.7.0
|
148 |
*/
|
149 |
+
function stop_from_seeing_checkout( $wp ) {
|
150 |
// if ( is_admin() ) return;
|
151 |
global $woocommerce;
|
152 |
if ( ! isset( $woocommerce ) || ! is_object( $woocommerce ) ) {
|
168 |
}
|
169 |
if ( $the_cart_total < $minimum ) {
|
170 |
wp_safe_redirect( $woocommerce->cart->get_cart_url() );
|
171 |
+
exit;
|
172 |
}
|
173 |
}
|
174 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
/**
|
176 |
* add_settings.
|
177 |
*
|
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 |
|
@@ -19,7 +19,7 @@ class WCJ_Order_Numbers extends WCJ_Module {
|
|
19 |
*
|
20 |
* @version 2.6.0
|
21 |
*/
|
22 |
-
|
23 |
|
24 |
$this->id = 'order_numbers';
|
25 |
$this->short_desc = __( 'Order Numbers', 'woocommerce-jetpack' );
|
@@ -54,6 +54,7 @@ class WCJ_Order_Numbers extends WCJ_Module {
|
|
54 |
* @version 2.6.0
|
55 |
* @since 2.6.0
|
56 |
* @see https://github.com/pablo-pacheco/wc-booster-search-order-by-custom-number-fix
|
|
|
57 |
*/
|
58 |
function search_by_custom_number( $query ) {
|
59 |
if (
|
@@ -79,6 +80,7 @@ class WCJ_Order_Numbers extends WCJ_Module {
|
|
79 |
*
|
80 |
* @version 2.5.2
|
81 |
* @since 2.5.2
|
|
|
82 |
*/
|
83 |
function add_order_number_to_tracking( $order_number ) {
|
84 |
$offset = 0;
|
@@ -110,17 +112,18 @@ class WCJ_Order_Numbers extends WCJ_Module {
|
|
110 |
/**
|
111 |
* Display order number.
|
112 |
*
|
113 |
-
* @version 2.
|
114 |
*/
|
115 |
-
|
116 |
-
$
|
117 |
-
|
118 |
-
|
|
|
119 |
}
|
120 |
-
$order_timestamp = strtotime( $order->post->post_date );
|
121 |
$order_number = apply_filters( 'booster_get_option',
|
122 |
-
sprintf( '%s%
|
123 |
-
sprintf( '%s%s%0' . get_option( 'wcj_order_number_min_width', 0 ) . '
|
124 |
do_shortcode( get_option( 'wcj_order_number_prefix', '' ) ),
|
125 |
date_i18n( get_option( 'wcj_order_number_date_prefix', '' ), $order_timestamp ),
|
126 |
$order_number_meta,
|
@@ -136,7 +139,7 @@ class WCJ_Order_Numbers extends WCJ_Module {
|
|
136 |
*
|
137 |
* @version 2.4.4
|
138 |
*/
|
139 |
-
|
140 |
$result_message = '';
|
141 |
if ( isset( $_POST['renumerate_orders'] ) ) {
|
142 |
$this->renumerate_orders();
|
@@ -155,21 +158,21 @@ class WCJ_Order_Numbers extends WCJ_Module {
|
|
155 |
/**
|
156 |
* add_new_order_number.
|
157 |
*/
|
158 |
-
|
159 |
$this->add_order_number_meta( $order_id, false );
|
160 |
}
|
161 |
|
162 |
/**
|
163 |
* Add/update order_number meta to order.
|
164 |
*
|
165 |
-
* @version 2.
|
166 |
*/
|
167 |
-
|
168 |
if ( 'shop_order' !== get_post_type( $order_id ) ) {
|
169 |
return;
|
170 |
}
|
171 |
if ( true === $do_overwrite || 0 == get_post_meta( $order_id, '_wcj_order_number', true ) ) {
|
172 |
-
if ( 'yes' === get_option( 'wcj_order_number_use_mysql_transaction_enabled', 'yes' ) ) {
|
173 |
global $wpdb;
|
174 |
$wpdb->query( 'START TRANSACTION' );
|
175 |
$wp_options_table = $wpdb->prefix . 'options';
|
@@ -187,8 +190,12 @@ class WCJ_Order_Numbers extends WCJ_Module {
|
|
187 |
$wpdb->query( 'ROLLBACK' ); // something went wrong, Rollback
|
188 |
}
|
189 |
} else {
|
190 |
-
|
191 |
-
|
|
|
|
|
|
|
|
|
192 |
update_post_meta( $order_id, '_wcj_order_number', $current_order_number );
|
193 |
}
|
194 |
}
|
@@ -198,8 +205,10 @@ class WCJ_Order_Numbers extends WCJ_Module {
|
|
198 |
* Renumerate orders function.
|
199 |
*
|
200 |
* @version 2.5.0
|
|
|
|
|
201 |
*/
|
202 |
-
|
203 |
$offset = 0;
|
204 |
$block_size = 96;
|
205 |
while( true ) {
|
@@ -224,7 +233,7 @@ class WCJ_Order_Numbers extends WCJ_Module {
|
|
224 |
/**
|
225 |
* get_settings.
|
226 |
*
|
227 |
-
* @version 2.
|
228 |
*/
|
229 |
function get_settings() {
|
230 |
$settings = array(
|
@@ -235,11 +244,15 @@ class WCJ_Order_Numbers extends WCJ_Module {
|
|
235 |
'id' => 'wcj_order_numbers_options',
|
236 |
),
|
237 |
array(
|
238 |
-
'title' => __( '
|
239 |
-
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
240 |
'id' => 'wcj_order_number_sequential_enabled',
|
241 |
'default' => 'yes',
|
242 |
-
'type' => '
|
|
|
|
|
|
|
|
|
|
|
243 |
),
|
244 |
array(
|
245 |
'title' => __( 'Next Order Number', 'woocommerce-jetpack' ),
|
4 |
*
|
5 |
* The WooCommerce Jetpack Order Numbers class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
19 |
*
|
20 |
* @version 2.6.0
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
|
24 |
$this->id = 'order_numbers';
|
25 |
$this->short_desc = __( 'Order Numbers', 'woocommerce-jetpack' );
|
54 |
* @version 2.6.0
|
55 |
* @since 2.6.0
|
56 |
* @see https://github.com/pablo-pacheco/wc-booster-search-order-by-custom-number-fix
|
57 |
+
* @todo `_wcj_order_number` is used for `sequential` and `hash` only
|
58 |
*/
|
59 |
function search_by_custom_number( $query ) {
|
60 |
if (
|
80 |
*
|
81 |
* @version 2.5.2
|
82 |
* @since 2.5.2
|
83 |
+
* @todo optimize WP_Query to return only `ids` for `fields`
|
84 |
*/
|
85 |
function add_order_number_to_tracking( $order_number ) {
|
86 |
$offset = 0;
|
112 |
/**
|
113 |
* Display order number.
|
114 |
*
|
115 |
+
* @version 2.7.0
|
116 |
*/
|
117 |
+
function display_order_number( $order_number, $order ) {
|
118 |
+
$order_id = wcj_get_order_id( $order );
|
119 |
+
$order_number_meta = get_post_meta( $order_id , '_wcj_order_number', true );
|
120 |
+
if ( '' == $order_number_meta || 'no' === get_option( 'wcj_order_number_sequential_enabled', 'yes' ) ) {
|
121 |
+
$order_number_meta = $order_id;
|
122 |
}
|
123 |
+
$order_timestamp = strtotime( ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->post->post_date : $order->get_date_created() ) );
|
124 |
$order_number = apply_filters( 'booster_get_option',
|
125 |
+
sprintf( '%s%s', do_shortcode( get_option( 'wcj_order_number_prefix', '' ) ), $order_number_meta ),
|
126 |
+
sprintf( '%s%s%0' . get_option( 'wcj_order_number_min_width', 0 ) . 's%s%s',
|
127 |
do_shortcode( get_option( 'wcj_order_number_prefix', '' ) ),
|
128 |
date_i18n( get_option( 'wcj_order_number_date_prefix', '' ), $order_timestamp ),
|
129 |
$order_number_meta,
|
139 |
*
|
140 |
* @version 2.4.4
|
141 |
*/
|
142 |
+
function create_renumerate_orders_tool() {
|
143 |
$result_message = '';
|
144 |
if ( isset( $_POST['renumerate_orders'] ) ) {
|
145 |
$this->renumerate_orders();
|
158 |
/**
|
159 |
* add_new_order_number.
|
160 |
*/
|
161 |
+
function add_new_order_number( $order_id ) {
|
162 |
$this->add_order_number_meta( $order_id, false );
|
163 |
}
|
164 |
|
165 |
/**
|
166 |
* Add/update order_number meta to order.
|
167 |
*
|
168 |
+
* @version 2.7.0
|
169 |
*/
|
170 |
+
function add_order_number_meta( $order_id, $do_overwrite ) {
|
171 |
if ( 'shop_order' !== get_post_type( $order_id ) ) {
|
172 |
return;
|
173 |
}
|
174 |
if ( true === $do_overwrite || 0 == get_post_meta( $order_id, '_wcj_order_number', true ) ) {
|
175 |
+
if ( 'yes' === get_option( 'wcj_order_number_sequential_enabled', 'yes' ) && 'yes' === get_option( 'wcj_order_number_use_mysql_transaction_enabled', 'yes' ) ) {
|
176 |
global $wpdb;
|
177 |
$wpdb->query( 'START TRANSACTION' );
|
178 |
$wp_options_table = $wpdb->prefix . 'options';
|
190 |
$wpdb->query( 'ROLLBACK' ); // something went wrong, Rollback
|
191 |
}
|
192 |
} else {
|
193 |
+
if ( 'hash_crc32' === get_option( 'wcj_order_number_sequential_enabled', 'yes' ) ) {
|
194 |
+
$current_order_number = sprintf( "%u", crc32( $order_id ) );
|
195 |
+
} else { // sequential
|
196 |
+
$current_order_number = get_option( 'wcj_order_number_counter', 1 );
|
197 |
+
update_option( 'wcj_order_number_counter', ( $current_order_number + 1 ) );
|
198 |
+
}
|
199 |
update_post_meta( $order_id, '_wcj_order_number', $current_order_number );
|
200 |
}
|
201 |
}
|
205 |
* Renumerate orders function.
|
206 |
*
|
207 |
* @version 2.5.0
|
208 |
+
* @todo renumerate in date range only
|
209 |
+
* @todo optimize WP_Query to return only `ids` for `fields`
|
210 |
*/
|
211 |
+
function renumerate_orders() {
|
212 |
$offset = 0;
|
213 |
$block_size = 96;
|
214 |
while( true ) {
|
233 |
/**
|
234 |
* get_settings.
|
235 |
*
|
236 |
+
* @version 2.7.0
|
237 |
*/
|
238 |
function get_settings() {
|
239 |
$settings = array(
|
244 |
'id' => 'wcj_order_numbers_options',
|
245 |
),
|
246 |
array(
|
247 |
+
'title' => __( 'Number Generation', 'woocommerce-jetpack' ),
|
|
|
248 |
'id' => 'wcj_order_number_sequential_enabled',
|
249 |
'default' => 'yes',
|
250 |
+
'type' => 'select',
|
251 |
+
'options' => array(
|
252 |
+
'yes' => __( 'Sequential', 'woocommerce-jetpack' ),
|
253 |
+
'no' => __( 'Order ID', 'woocommerce-jetpack' ),
|
254 |
+
'hash_crc32' => __( 'Pseudorandom - Hash (max 10 digits)', 'woocommerce-jetpack' ),
|
255 |
+
),
|
256 |
),
|
257 |
array(
|
258 |
'title' => __( 'Next Order Number', 'woocommerce-jetpack' ),
|
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,7 +17,7 @@ class WCJ_Orders extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
@@ -32,8 +32,9 @@ class WCJ_Orders extends WCJ_Module {
|
|
32 |
if ( $this->is_enabled() ) {
|
33 |
|
34 |
// Order auto complete
|
35 |
-
if ( 'yes' === get_option( 'wcj_order_auto_complete_enabled' ) ) {
|
36 |
-
add_action( 'woocommerce_thankyou',
|
|
|
37 |
}
|
38 |
|
39 |
// Custom columns
|
@@ -51,7 +52,8 @@ class WCJ_Orders extends WCJ_Module {
|
|
51 |
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
52 |
add_action( 'save_post_shop_order', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
|
53 |
if ( 'filter' === get_option( 'wcj_order_admin_currency_method', 'filter' ) ) {
|
54 |
-
|
|
|
55 |
}
|
56 |
}
|
57 |
|
@@ -210,17 +212,17 @@ class WCJ_Orders extends WCJ_Module {
|
|
210 |
/**
|
211 |
* change_order_currency.
|
212 |
*
|
213 |
-
* @version 2.
|
214 |
* @since 2.5.6
|
215 |
*/
|
216 |
function change_order_currency( $order_currency, $_order ) {
|
217 |
-
return ( '' != ( $wcj_order_currency = get_post_meta( $_order
|
218 |
}
|
219 |
|
220 |
/**
|
221 |
* get_meta_box_options.
|
222 |
*
|
223 |
-
* @version 2.
|
224 |
* @since 2.5.6
|
225 |
*/
|
226 |
function get_meta_box_options() {
|
@@ -229,7 +231,7 @@ class WCJ_Orders extends WCJ_Module {
|
|
229 |
$options = array(
|
230 |
array(
|
231 |
'name' => ( 'filter' === get_option( 'wcj_order_admin_currency_method', 'filter' ) ? 'wcj_order_currency' : 'order_currency' ),
|
232 |
-
'default' => $_order
|
233 |
'type' => 'select',
|
234 |
'options' => wcj_get_currencies_names_and_symbols( 'names' ),
|
235 |
'title' => __( 'Order Currency', 'woocommerce-jetpack' ),
|
@@ -314,14 +316,14 @@ class WCJ_Orders extends WCJ_Module {
|
|
314 |
/**
|
315 |
* Output custom columns for orders
|
316 |
*
|
317 |
-
* @version 2.
|
318 |
* @param string $column
|
319 |
*/
|
320 |
-
|
321 |
if ( 'country' === $column && 'yes' === get_option( 'wcj_orders_list_custom_columns_country', 'no' ) ) {
|
322 |
$order = wc_get_order( get_the_ID() );
|
323 |
// $country_code = wcj_get_customer_country( $order->customer_user );
|
324 |
-
$country_code = $order->billing_country;
|
325 |
echo ( 2 == strlen( $country_code ) )
|
326 |
? wcj_get_country_flag_by_code( $country_code ) . ' ' . wcj_get_country_name_by_code( $country_code )
|
327 |
: wcj_get_country_name_by_code( $country_code );
|
@@ -338,36 +340,17 @@ class WCJ_Orders extends WCJ_Module {
|
|
338 |
|
339 |
/**
|
340 |
* Auto Complete all WooCommerce orders.
|
|
|
|
|
341 |
*/
|
342 |
-
|
343 |
-
|
344 |
-
if ( !$order_id ) {
|
345 |
return;
|
346 |
}
|
347 |
-
$order =
|
348 |
$order->update_status( 'completed' );
|
349 |
}
|
350 |
|
351 |
-
/**
|
352 |
-
* add_settings_hook.
|
353 |
-
*
|
354 |
-
* @version 2.5.3
|
355 |
-
* @since 2.5.3
|
356 |
-
*/
|
357 |
-
function add_settings_hook() {
|
358 |
-
add_filter( 'wcj_orders_settings', array( $this, 'add_settings' ) );
|
359 |
-
}
|
360 |
-
|
361 |
-
/**
|
362 |
-
* get_settings.
|
363 |
-
*
|
364 |
-
* @version 2.5.3
|
365 |
-
*/
|
366 |
-
function get_settings() {
|
367 |
-
$settings = apply_filters( 'wcj_orders_settings', array() );
|
368 |
-
return $this->add_standard_settings( $settings );
|
369 |
-
}
|
370 |
-
|
371 |
/**
|
372 |
* add_settings.
|
373 |
*
|
4 |
*
|
5 |
* The WooCommerce Jetpack Orders class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
32 |
if ( $this->is_enabled() ) {
|
33 |
|
34 |
// Order auto complete
|
35 |
+
if ( 'yes' === get_option( 'wcj_order_auto_complete_enabled', 'no' ) ) {
|
36 |
+
add_action( 'woocommerce_thankyou', array( $this, 'auto_complete_order' ), PHP_INT_MAX );
|
37 |
+
add_action( 'woocommerce_payment_complete', array( $this, 'auto_complete_order' ), PHP_INT_MAX );
|
38 |
}
|
39 |
|
40 |
// Custom columns
|
52 |
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
53 |
add_action( 'save_post_shop_order', array( $this, 'save_meta_box' ), PHP_INT_MAX, 2 );
|
54 |
if ( 'filter' === get_option( 'wcj_order_admin_currency_method', 'filter' ) ) {
|
55 |
+
$woocommerce_get_order_currency_filter = ( WCJ_IS_WC_VERSION_BELOW_3 ? 'woocommerce_get_order_currency' : 'woocommerce_order_get_currency' );
|
56 |
+
add_filter( $woocommerce_get_order_currency_filter, array( $this, 'change_order_currency' ), PHP_INT_MAX, 2 );
|
57 |
}
|
58 |
}
|
59 |
|
212 |
/**
|
213 |
* change_order_currency.
|
214 |
*
|
215 |
+
* @version 2.7.0
|
216 |
* @since 2.5.6
|
217 |
*/
|
218 |
function change_order_currency( $order_currency, $_order ) {
|
219 |
+
return ( '' != ( $wcj_order_currency = get_post_meta( wcj_get_order_id( $_order ), '_' . 'wcj_order_currency', true ) ) ) ? $wcj_order_currency : $order_currency;
|
220 |
}
|
221 |
|
222 |
/**
|
223 |
* get_meta_box_options.
|
224 |
*
|
225 |
+
* @version 2.7.0
|
226 |
* @since 2.5.6
|
227 |
*/
|
228 |
function get_meta_box_options() {
|
231 |
$options = array(
|
232 |
array(
|
233 |
'name' => ( 'filter' === get_option( 'wcj_order_admin_currency_method', 'filter' ) ? 'wcj_order_currency' : 'order_currency' ),
|
234 |
+
'default' => wcj_get_order_currency( $_order ),
|
235 |
'type' => 'select',
|
236 |
'options' => wcj_get_currencies_names_and_symbols( 'names' ),
|
237 |
'title' => __( 'Order Currency', 'woocommerce-jetpack' ),
|
316 |
/**
|
317 |
* Output custom columns for orders
|
318 |
*
|
319 |
+
* @version 2.7.0
|
320 |
* @param string $column
|
321 |
*/
|
322 |
+
function render_order_columns( $column ) {
|
323 |
if ( 'country' === $column && 'yes' === get_option( 'wcj_orders_list_custom_columns_country', 'no' ) ) {
|
324 |
$order = wc_get_order( get_the_ID() );
|
325 |
// $country_code = wcj_get_customer_country( $order->customer_user );
|
326 |
+
$country_code = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_country : $order->get_billing_country() );
|
327 |
echo ( 2 == strlen( $country_code ) )
|
328 |
? wcj_get_country_flag_by_code( $country_code ) . ' ' . wcj_get_country_name_by_code( $country_code )
|
329 |
: wcj_get_country_name_by_code( $country_code );
|
340 |
|
341 |
/**
|
342 |
* Auto Complete all WooCommerce orders.
|
343 |
+
*
|
344 |
+
* @version 2.7.0
|
345 |
*/
|
346 |
+
function auto_complete_order( $order_id ) {
|
347 |
+
if ( ! $order_id ) {
|
|
|
348 |
return;
|
349 |
}
|
350 |
+
$order = wc_get_order( $order_id );
|
351 |
$order->update_status( 'completed' );
|
352 |
}
|
353 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
354 |
/**
|
355 |
* add_settings.
|
356 |
*
|
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,7 +18,7 @@ class WCJ_Payment_Gateways_By_Country extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
@@ -28,7 +28,7 @@ class WCJ_Payment_Gateways_By_Country extends WCJ_Module {
|
|
28 |
$this->link = 'http://booster.io/features/woocommerce-payment-gateways-by-country-or-state/';
|
29 |
parent::__construct();
|
30 |
|
31 |
-
add_filter( 'init', array( $this, '
|
32 |
|
33 |
if ( $this->is_enabled() ) {
|
34 |
add_filter( 'woocommerce_available_payment_gateways', array( $this, 'available_payment_gateways' ), PHP_INT_MAX, 1 );
|
@@ -38,11 +38,11 @@ class WCJ_Payment_Gateways_By_Country extends WCJ_Module {
|
|
38 |
/**
|
39 |
* available_payment_gateways.
|
40 |
*
|
41 |
-
* @version 2.
|
42 |
*/
|
43 |
function available_payment_gateways( $_available_gateways ) {
|
44 |
if ( isset( WC()->customer ) ) {
|
45 |
-
$customer_country = WC()->customer->get_country();
|
46 |
foreach ( $_available_gateways as $key => $gateway ) {
|
47 |
$include_countries = get_option( 'wcj_gateways_countries_include_' . $key, '' );
|
48 |
if ( ! empty( $include_countries ) && ! in_array( $customer_country, $include_countries ) ) {
|
@@ -54,7 +54,7 @@ class WCJ_Payment_Gateways_By_Country extends WCJ_Module {
|
|
54 |
unset( $_available_gateways[ $key ] );
|
55 |
continue;
|
56 |
}
|
57 |
-
$customer_state = WC()->customer->get_state();
|
58 |
$include_states = get_option( 'wcj_gateways_states_include_' . $key, '' );
|
59 |
if ( ! empty( $include_states ) && ! in_array( $customer_state, $include_states ) ) {
|
60 |
unset( $_available_gateways[ $key ] );
|
@@ -71,28 +71,22 @@ class WCJ_Payment_Gateways_By_Country extends WCJ_Module {
|
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
-
*
|
75 |
-
*/
|
76 |
-
function add_hooks() {
|
77 |
-
add_filter( 'wcj_payment_gateways_by_country_settings', array( $this, 'add_countries_settings' ) );
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* add_countries_settings.
|
82 |
*
|
83 |
-
* @version 2.
|
84 |
*/
|
85 |
-
function
|
86 |
-
$settings = array(
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
|
|
92 |
);
|
93 |
$countries = wcj_get_countries();
|
94 |
-
$states
|
95 |
-
$gateways
|
96 |
foreach ( $gateways as $key => $gateway ) {
|
97 |
$default_gateways = array( 'bacs' );
|
98 |
if ( ! empty( $default_gateways ) && ! in_array( $key, $default_gateways ) ) {
|
@@ -105,70 +99,66 @@ class WCJ_Payment_Gateways_By_Country extends WCJ_Module {
|
|
105 |
$custom_attributes = array();
|
106 |
$desc_tip = '';
|
107 |
}
|
108 |
-
$settings
|
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 |
-
$settings
|
158 |
-
|
159 |
-
|
160 |
-
|
|
|
|
|
161 |
return $settings;
|
162 |
}
|
163 |
|
164 |
-
/**
|
165 |
-
* get_settings.
|
166 |
-
*/
|
167 |
-
function get_settings() {
|
168 |
-
$settings = array();
|
169 |
-
$settings = apply_filters( 'wcj_payment_gateways_by_country_settings', $settings );
|
170 |
-
return $this->add_standard_settings( $settings );
|
171 |
-
}
|
172 |
}
|
173 |
|
174 |
endif;
|
4 |
*
|
5 |
* The WooCommerce Jetpack Payment Gateways by Country class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.4.1
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
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_settings_hook' ) );
|
32 |
|
33 |
if ( $this->is_enabled() ) {
|
34 |
add_filter( 'woocommerce_available_payment_gateways', array( $this, 'available_payment_gateways' ), PHP_INT_MAX, 1 );
|
38 |
/**
|
39 |
* available_payment_gateways.
|
40 |
*
|
41 |
+
* @version 2.7.0
|
42 |
*/
|
43 |
function available_payment_gateways( $_available_gateways ) {
|
44 |
if ( isset( WC()->customer ) ) {
|
45 |
+
$customer_country = ( WCJ_IS_WC_VERSION_BELOW_3 ) ? WC()->customer->get_country() : WC()->customer->get_billing_country();
|
46 |
foreach ( $_available_gateways as $key => $gateway ) {
|
47 |
$include_countries = get_option( 'wcj_gateways_countries_include_' . $key, '' );
|
48 |
if ( ! empty( $include_countries ) && ! in_array( $customer_country, $include_countries ) ) {
|
54 |
unset( $_available_gateways[ $key ] );
|
55 |
continue;
|
56 |
}
|
57 |
+
$customer_state = ( WCJ_IS_WC_VERSION_BELOW_3 ) ? WC()->customer->get_state() : WC()->customer->get_billing_state();
|
58 |
$include_states = get_option( 'wcj_gateways_states_include_' . $key, '' );
|
59 |
if ( ! empty( $include_states ) && ! in_array( $customer_state, $include_states ) ) {
|
60 |
unset( $_available_gateways[ $key ] );
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
+
* add_settings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
*
|
76 |
+
* @version 2.7.0
|
77 |
*/
|
78 |
+
function add_settings() {
|
79 |
+
$settings = array(
|
80 |
+
array(
|
81 |
+
'title' => __( 'Payment Gateways', 'woocommerce-jetpack' ),
|
82 |
+
'type' => 'title',
|
83 |
+
'desc' => __( 'Leave empty to disable.', 'woocommerce-jetpack' ),
|
84 |
+
'id' => 'wcj_payment_gateways_by_country_gateways_options',
|
85 |
+
),
|
86 |
);
|
87 |
$countries = wcj_get_countries();
|
88 |
+
$states = wcj_get_states();
|
89 |
+
$gateways = WC()->payment_gateways->payment_gateways();
|
90 |
foreach ( $gateways as $key => $gateway ) {
|
91 |
$default_gateways = array( 'bacs' );
|
92 |
if ( ! empty( $default_gateways ) && ! in_array( $key, $default_gateways ) ) {
|
99 |
$custom_attributes = array();
|
100 |
$desc_tip = '';
|
101 |
}
|
102 |
+
$settings = array_merge( $settings, array(
|
103 |
+
array(
|
104 |
+
'title' => $gateway->title,
|
105 |
+
'desc_tip' => $desc_tip,
|
106 |
+
'desc' => __( 'Include Countries', 'woocommerce-jetpack' ),
|
107 |
+
'id' => 'wcj_gateways_countries_include_' . $key,
|
108 |
+
'default' => '',
|
109 |
+
'type' => 'multiselect',
|
110 |
+
'class' => 'chosen_select',
|
111 |
+
'css' => 'width: 450px;',
|
112 |
+
'options' => $countries,
|
113 |
+
'custom_attributes' => $custom_attributes,
|
114 |
+
),
|
115 |
+
array(
|
116 |
+
'title' => '',
|
117 |
+
'desc_tip' => $desc_tip,
|
118 |
+
'desc' => __( 'Exclude Countries', 'woocommerce-jetpack' ),
|
119 |
+
'id' => 'wcj_gateways_countries_exclude_' . $key,
|
120 |
+
'default' => '',
|
121 |
+
'type' => 'multiselect',
|
122 |
+
'class' => 'chosen_select',
|
123 |
+
'css' => 'width: 450px;',
|
124 |
+
'options' => $countries,
|
125 |
+
'custom_attributes' => $custom_attributes,
|
126 |
+
),
|
127 |
+
array(
|
128 |
+
'title' => '',
|
129 |
+
'desc_tip' => $desc_tip,
|
130 |
+
'desc' => __( 'Include States (Base Country)', 'woocommerce-jetpack' ),
|
131 |
+
'id' => 'wcj_gateways_states_include_' . $key,
|
132 |
+
'default' => '',
|
133 |
+
'type' => 'multiselect',
|
134 |
+
'class' => 'chosen_select',
|
135 |
+
'css' => 'width: 450px;',
|
136 |
+
'options' => $states,
|
137 |
+
'custom_attributes' => $custom_attributes,
|
138 |
+
),
|
139 |
+
array(
|
140 |
+
'title' => '',
|
141 |
+
'desc_tip' => $desc_tip,
|
142 |
+
'desc' => __( 'Exclude States (Base Country)', 'woocommerce-jetpack' ),
|
143 |
+
'id' => 'wcj_gateways_states_exclude_' . $key,
|
144 |
+
'default' => '',
|
145 |
+
'type' => 'multiselect',
|
146 |
+
'class' => 'chosen_select',
|
147 |
+
'css' => 'width: 450px;',
|
148 |
+
'options' => $states,
|
149 |
+
'custom_attributes' => $custom_attributes,
|
150 |
+
),
|
151 |
+
) );
|
152 |
}
|
153 |
+
$settings = array_merge( $settings, array(
|
154 |
+
array(
|
155 |
+
'type' => 'sectionend',
|
156 |
+
'id' => 'wcj_payment_gateways_by_country_gateways_options',
|
157 |
+
),
|
158 |
+
) );
|
159 |
return $settings;
|
160 |
}
|
161 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
}
|
163 |
|
164 |
endif;
|
includes/class-wcj-payment-gateways-by-shipping.php
ADDED
@@ -0,0 +1,206 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WooCommerce Jetpack Payment Gateways by Shipping
|
4 |
+
*
|
5 |
+
* The WooCommerce Jetpack Payment Gateways by Shipping class.
|
6 |
+
*
|
7 |
+
* @version 2.7.0
|
8 |
+
* @since 2.7.0
|
9 |
+
* @author Algoritmika Ltd.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
13 |
+
|
14 |
+
if ( ! class_exists( 'WCJ_Payment_Gateways_By_Shipping' ) ) :
|
15 |
+
|
16 |
+
class WCJ_Payment_Gateways_By_Shipping extends WCJ_Module {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Constructor.
|
20 |
+
*
|
21 |
+
* @version 2.7.0
|
22 |
+
* @since 2.7.0
|
23 |
+
*/
|
24 |
+
function __construct() {
|
25 |
+
|
26 |
+
$this->id = 'payment_gateways_by_shipping';
|
27 |
+
$this->short_desc = __( 'Gateways by Shipping', 'woocommerce-jetpack' );
|
28 |
+
$this->desc = __( 'Set "enable for shipping methods" for WooCommerce payment gateways.', 'woocommerce-jetpack' );
|
29 |
+
$this->link = 'http://booster.io/features/woocommerce-payment-gateways-by-shipping/';
|
30 |
+
parent::__construct();
|
31 |
+
|
32 |
+
add_filter( 'init', array( $this, 'add_settings_hook' ) );
|
33 |
+
|
34 |
+
if ( $this->is_enabled() ) {
|
35 |
+
add_filter( 'woocommerce_available_payment_gateways', array( $this, 'available_payment_gateways' ), PHP_INT_MAX, 1 );
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* check_if_enabled_for_methods.
|
41 |
+
*
|
42 |
+
* @version 2.7.0
|
43 |
+
* @since 2.7.0
|
44 |
+
* @see `is_available()` function in WooCommerce `WC_Gateway_COD` class
|
45 |
+
* @todo virtual orders (`enable_for_virtual`)
|
46 |
+
*/
|
47 |
+
function check_if_enabled_for_methods( $gateway_key, $enable_for_methods ) {
|
48 |
+
|
49 |
+
$order = null;
|
50 |
+
$needs_shipping = false;
|
51 |
+
|
52 |
+
// Test if shipping is needed first
|
53 |
+
if ( WC()->cart && WC()->cart->needs_shipping() ) {
|
54 |
+
$needs_shipping = true;
|
55 |
+
} elseif ( is_page( wc_get_page_id( 'checkout' ) ) && 0 < get_query_var( 'order-pay' ) ) {
|
56 |
+
$order_id = absint( get_query_var( 'order-pay' ) );
|
57 |
+
$order = wc_get_order( $order_id );
|
58 |
+
|
59 |
+
// Test if order needs shipping.
|
60 |
+
if ( 0 < sizeof( $order->get_items() ) ) {
|
61 |
+
foreach ( $order->get_items() as $item ) {
|
62 |
+
$_product = $order->get_product_from_item( $item );
|
63 |
+
if ( $_product && $_product->needs_shipping() ) {
|
64 |
+
$needs_shipping = true;
|
65 |
+
break;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
}
|
69 |
+
}
|
70 |
+
|
71 |
+
$needs_shipping = apply_filters( 'woocommerce_cart_needs_shipping', $needs_shipping );
|
72 |
+
|
73 |
+
// Virtual order, with virtual disabled
|
74 |
+
/*
|
75 |
+
if ( ! $this->enable_for_virtual && ! $needs_shipping ) {
|
76 |
+
return false;
|
77 |
+
}
|
78 |
+
*/
|
79 |
+
|
80 |
+
// Check methods
|
81 |
+
if ( ! empty( $enable_for_methods ) && $needs_shipping ) {
|
82 |
+
|
83 |
+
// Only apply if all packages are being shipped via chosen methods, or order is virtual
|
84 |
+
$chosen_shipping_methods_session = WC()->session->get( 'chosen_shipping_methods' );
|
85 |
+
|
86 |
+
if ( isset( $chosen_shipping_methods_session ) ) {
|
87 |
+
$chosen_shipping_methods = array_unique( $chosen_shipping_methods_session );
|
88 |
+
} else {
|
89 |
+
$chosen_shipping_methods = array();
|
90 |
+
}
|
91 |
+
|
92 |
+
$check_method = false;
|
93 |
+
|
94 |
+
if ( is_object( $order ) ) {
|
95 |
+
if ( $order->shipping_method ) {
|
96 |
+
$check_method = $order->shipping_method;
|
97 |
+
}
|
98 |
+
|
99 |
+
} elseif ( empty( $chosen_shipping_methods ) || sizeof( $chosen_shipping_methods ) > 1 ) {
|
100 |
+
$check_method = false;
|
101 |
+
} elseif ( sizeof( $chosen_shipping_methods ) == 1 ) {
|
102 |
+
$check_method = $chosen_shipping_methods[0];
|
103 |
+
}
|
104 |
+
|
105 |
+
if ( ! $check_method ) {
|
106 |
+
return false;
|
107 |
+
}
|
108 |
+
|
109 |
+
$found = false;
|
110 |
+
|
111 |
+
foreach ( $enable_for_methods as $method_id ) {
|
112 |
+
if ( strpos( $check_method, $method_id ) === 0 ) {
|
113 |
+
$found = true;
|
114 |
+
break;
|
115 |
+
}
|
116 |
+
}
|
117 |
+
|
118 |
+
if ( ! $found ) {
|
119 |
+
return false;
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
+
return true;
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* available_payment_gateways.
|
128 |
+
*
|
129 |
+
* @version 2.7.0
|
130 |
+
* @since 2.7.0
|
131 |
+
*/
|
132 |
+
function available_payment_gateways( $_available_gateways ) {
|
133 |
+
foreach ( $_available_gateways as $key => $gateway ) {
|
134 |
+
$enable_for_methods = get_option( 'wcj_gateways_by_shipping_enable_' . $key, '' );
|
135 |
+
if ( ! empty( $enable_for_methods ) && ! $this->check_if_enabled_for_methods( $key, $enable_for_methods ) ) {
|
136 |
+
unset( $_available_gateways[ $key ] );
|
137 |
+
continue;
|
138 |
+
}
|
139 |
+
}
|
140 |
+
return $_available_gateways;
|
141 |
+
}
|
142 |
+
|
143 |
+
/**
|
144 |
+
* add_settings.
|
145 |
+
*
|
146 |
+
* @version 2.7.0
|
147 |
+
* @version 2.7.0
|
148 |
+
* @todo (maybe) remove COD, Custom Booster Payment Gateways (and maybe other payment gateways) that already have `enable_for_methods` option
|
149 |
+
*/
|
150 |
+
function add_settings( $settings ) {
|
151 |
+
$shipping_methods = array();
|
152 |
+
if ( is_admin() ) {
|
153 |
+
foreach ( WC()->shipping()->load_shipping_methods() as $method ) {
|
154 |
+
$shipping_methods[ $method->id ] = $method->get_method_title();
|
155 |
+
}
|
156 |
+
}
|
157 |
+
$settings = array(
|
158 |
+
array(
|
159 |
+
'title' => __( 'Payment Gateways', 'woocommerce-jetpack' ),
|
160 |
+
'type' => 'title',
|
161 |
+
'desc' => __( 'If payment gateway is only available for certain methods, set it up here. Leave blank to enable for all methods.', 'woocommerce-jetpack' ),
|
162 |
+
'id' => 'wcj_payment_gateways_by_shipping_options',
|
163 |
+
),
|
164 |
+
);
|
165 |
+
$gateways = WC()->payment_gateways->payment_gateways();
|
166 |
+
foreach ( $gateways as $key => $gateway ) {
|
167 |
+
$default_gateways = array( 'bacs', 'cod' );
|
168 |
+
if ( ! empty( $default_gateways ) && ! in_array( $key, $default_gateways ) ) {
|
169 |
+
$custom_attributes = apply_filters( 'booster_get_message', '', 'disabled' );
|
170 |
+
if ( '' == $custom_attributes ) {
|
171 |
+
$custom_attributes = array();
|
172 |
+
}
|
173 |
+
$desc_tip = apply_filters( 'booster_get_message', '', 'desc_no_link' );
|
174 |
+
} else {
|
175 |
+
$custom_attributes = array();
|
176 |
+
$desc_tip = '';
|
177 |
+
}
|
178 |
+
$settings = array_merge( $settings, array(
|
179 |
+
array(
|
180 |
+
'title' => $gateway->title,
|
181 |
+
'desc_tip' => $desc_tip,
|
182 |
+
'desc' => __( 'Enable for shipping methods', 'woocommerce' ),
|
183 |
+
'id' => 'wcj_gateways_by_shipping_enable_' . $key,
|
184 |
+
'default' => '',
|
185 |
+
'type' => 'multiselect',
|
186 |
+
'class' => 'chosen_select',
|
187 |
+
'css' => 'width: 450px;',
|
188 |
+
'options' => $shipping_methods,
|
189 |
+
'custom_attributes' => array_merge( array( 'data-placeholder' => __( 'Select shipping methods', 'woocommerce' ) ), $custom_attributes ),
|
190 |
+
),
|
191 |
+
) );
|
192 |
+
}
|
193 |
+
$settings = array_merge( $settings, array(
|
194 |
+
array(
|
195 |
+
'type' => 'sectionend',
|
196 |
+
'id' => 'wcj_payment_gateways_by_shipping_options',
|
197 |
+
),
|
198 |
+
) );
|
199 |
+
return $settings;
|
200 |
+
}
|
201 |
+
|
202 |
+
}
|
203 |
+
|
204 |
+
endif;
|
205 |
+
|
206 |
+
return new WCJ_Payment_Gateways_By_Shipping();
|
includes/class-wcj-payment-gateways-by-user-role.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Payment Gateways by User Role class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.3
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -59,31 +59,22 @@ class WCJ_Payment_Gateways_By_User_Role extends WCJ_Module {
|
|
59 |
return $_available_gateways;
|
60 |
}
|
61 |
|
62 |
-
/**
|
63 |
-
* add_settings_hook.
|
64 |
-
*
|
65 |
-
* @version 2.5.3
|
66 |
-
* @since 2.5.3
|
67 |
-
*/
|
68 |
-
function add_settings_hook() {
|
69 |
-
add_filter( 'wcj_payment_gateways_by_user_role_settings', array( $this, 'add_settings' ) );
|
70 |
-
}
|
71 |
-
|
72 |
/**
|
73 |
* add_settings.
|
74 |
*
|
75 |
-
* @version 2.
|
76 |
* @since 2.5.3
|
77 |
*/
|
78 |
function add_settings( $settings ) {
|
79 |
-
$settings = array(
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
|
|
87 |
);
|
88 |
$user_roles = wcj_get_user_roles_options();
|
89 |
$gateways = WC()->payment_gateways->payment_gateways();
|
@@ -99,49 +90,42 @@ class WCJ_Payment_Gateways_By_User_Role extends WCJ_Module {
|
|
99 |
$custom_attributes = array();
|
100 |
$desc_tip = '';
|
101 |
}
|
102 |
-
$settings
|
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 |
-
$settings
|
128 |
-
|
129 |
-
|
130 |
-
|
|
|
|
|
131 |
return $settings;
|
132 |
}
|
133 |
|
134 |
-
/**
|
135 |
-
* get_settings.
|
136 |
-
*
|
137 |
-
* @version 2.5.3
|
138 |
-
* @since 2.5.3
|
139 |
-
*/
|
140 |
-
function get_settings() {
|
141 |
-
$settings = array();
|
142 |
-
$settings = apply_filters( 'wcj_payment_gateways_by_user_role_settings', $settings );
|
143 |
-
return $this->add_standard_settings( $settings );
|
144 |
-
}
|
145 |
}
|
146 |
|
147 |
endif;
|
4 |
*
|
5 |
* The WooCommerce Jetpack Payment Gateways by User Role class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.3
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
59 |
return $_available_gateways;
|
60 |
}
|
61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
/**
|
63 |
* add_settings.
|
64 |
*
|
65 |
+
* @version 2.7.0
|
66 |
* @since 2.5.3
|
67 |
*/
|
68 |
function add_settings( $settings ) {
|
69 |
+
$settings = array(
|
70 |
+
array(
|
71 |
+
'title' => __( 'Payment Gateways', 'woocommerce-jetpack' ),
|
72 |
+
'type' => 'title',
|
73 |
+
'desc' => __( 'Leave empty to disable.', 'woocommerce-jetpack' ) . ' ' .
|
74 |
+
sprintf( __( 'Custom roles can be added via "Add/Manage Custom Roles" tool in Booster\'s <a href="%s">General</a> module', 'woocommerce-jetpack' ),
|
75 |
+
admin_url( 'admin.php?page=wc-settings&tab=jetpack&wcj-cat=emails_and_misc§ion=general' ) ),
|
76 |
+
'id' => 'wcj_payment_gateways_by_user_role_gateways_options',
|
77 |
+
),
|
78 |
);
|
79 |
$user_roles = wcj_get_user_roles_options();
|
80 |
$gateways = WC()->payment_gateways->payment_gateways();
|
90 |
$custom_attributes = array();
|
91 |
$desc_tip = '';
|
92 |
}
|
93 |
+
$settings = array_merge( $settings, array(
|
94 |
+
array(
|
95 |
+
'title' => $gateway->title,
|
96 |
+
'desc_tip' => $desc_tip,
|
97 |
+
'desc' => __( 'Include User Roles', 'woocommerce-jetpack' ),
|
98 |
+
'id' => 'wcj_gateways_user_roles_include_' . $key,
|
99 |
+
'default' => '',
|
100 |
+
'type' => 'multiselect',
|
101 |
+
'class' => 'chosen_select',
|
102 |
+
'css' => 'width: 450px;',
|
103 |
+
'options' => $user_roles,
|
104 |
+
'custom_attributes' => $custom_attributes,
|
105 |
+
),
|
106 |
+
$settings[] = array(
|
107 |
+
'title' => '',
|
108 |
+
'desc_tip' => $desc_tip,
|
109 |
+
'desc' => __( 'Exclude User Roles', 'woocommerce-jetpack' ),
|
110 |
+
'id' => 'wcj_gateways_user_roles_exclude_' . $key,
|
111 |
+
'default' => '',
|
112 |
+
'type' => 'multiselect',
|
113 |
+
'class' => 'chosen_select',
|
114 |
+
'css' => 'width: 450px;',
|
115 |
+
'options' => $user_roles,
|
116 |
+
'custom_attributes' => $custom_attributes,
|
117 |
+
),
|
118 |
+
) );
|
119 |
}
|
120 |
+
$settings = array_merge( $settings, array(
|
121 |
+
array(
|
122 |
+
'type' => 'sectionend',
|
123 |
+
'id' => 'wcj_payment_gateways_by_user_role_gateways_options',
|
124 |
+
),
|
125 |
+
) );
|
126 |
return $settings;
|
127 |
}
|
128 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
}
|
130 |
|
131 |
endif;
|
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 |
*/
|
@@ -42,7 +42,7 @@ class WCJ_Payment_Gateways_Currency extends WCJ_Module {
|
|
42 |
/**
|
43 |
* add_hooks.
|
44 |
*
|
45 |
-
* @version 2.
|
46 |
* @since 2.3.2
|
47 |
*/
|
48 |
function add_hooks() {
|
@@ -51,7 +51,8 @@ class WCJ_Payment_Gateways_Currency extends WCJ_Module {
|
|
51 |
|
52 |
add_filter( 'woocommerce_paypal_supported_currencies', array( $this, 'extend_paypal_supported_currencies' ), PHP_INT_MAX, 1 );
|
53 |
|
54 |
-
add_filter(
|
|
|
55 |
|
56 |
add_filter( 'woocommerce_package_rates', array( $this, 'change_shipping_price_by_gateway' ), PHP_INT_MAX, 2 );
|
57 |
|
@@ -97,7 +98,9 @@ class WCJ_Payment_Gateways_Currency extends WCJ_Module {
|
|
97 |
function is_cart_or_checkout() {
|
98 |
//if ( wcj_is_frontend() ) {
|
99 |
if ( ! is_admin() ) {
|
100 |
-
if ( is_cart() || is_checkout() )
|
|
|
|
|
101 |
}
|
102 |
return false;
|
103 |
}
|
@@ -141,7 +144,7 @@ class WCJ_Payment_Gateways_Currency extends WCJ_Module {
|
|
141 |
*
|
142 |
* @version 2.4.0
|
143 |
*/
|
144 |
-
|
145 |
if ( $this->is_cart_or_checkout() ) {
|
146 |
global $woocommerce;
|
147 |
$current_gateway = $woocommerce->session->chosen_payment_method;
|
@@ -160,7 +163,7 @@ class WCJ_Payment_Gateways_Currency extends WCJ_Module {
|
|
160 |
*
|
161 |
* @version 2.4.0
|
162 |
*/
|
163 |
-
|
164 |
if ( $this->is_cart_or_checkout() ) {
|
165 |
global $woocommerce;
|
166 |
$current_gateway = $woocommerce->session->chosen_payment_method;
|
@@ -182,47 +185,29 @@ class WCJ_Payment_Gateways_Currency extends WCJ_Module {
|
|
182 |
return $currency;
|
183 |
}
|
184 |
|
185 |
-
/**
|
186 |
-
* get_settings.
|
187 |
-
*
|
188 |
-
* @version 2.4.3
|
189 |
-
*/
|
190 |
-
function get_settings() {
|
191 |
-
$settings = apply_filters( 'wcj_payment_gateways_currency_settings', array() );
|
192 |
-
return $this->add_standard_settings( $settings );
|
193 |
-
}
|
194 |
-
|
195 |
-
/**
|
196 |
-
* add_settings_hook.
|
197 |
-
*
|
198 |
-
* @version 2.3.2
|
199 |
-
*/
|
200 |
-
function add_settings_hook() {
|
201 |
-
add_filter( 'wcj_payment_gateways_currency_settings', array( $this, 'add_currency_settings' ) );
|
202 |
-
}
|
203 |
-
|
204 |
/**
|
205 |
* register_script.
|
206 |
*/
|
207 |
-
|
208 |
wp_register_script( 'wcj-payment-gateways-checkout', trailingslashit( plugin_dir_url( __FILE__ ) ) . 'js/checkout.js', array( 'jquery' ), false, true );
|
209 |
}
|
210 |
|
211 |
/**
|
212 |
* enqueue_checkout_script.
|
213 |
*/
|
214 |
-
|
215 |
-
if( ! is_checkout() )
|
216 |
return;
|
|
|
217 |
wp_enqueue_script( 'wcj-payment-gateways-checkout' );
|
218 |
}
|
219 |
|
220 |
/**
|
221 |
-
*
|
222 |
*
|
223 |
-
* @version 2.
|
224 |
*/
|
225 |
-
function
|
226 |
|
227 |
$settings[] = array(
|
228 |
'title' => __( 'Payment Gateways Currency Options', 'woocommerce-jetpack' ),
|
4 |
*
|
5 |
* The WooCommerce Jetpack Payment Gateways Currency class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.3.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
42 |
/**
|
43 |
* add_hooks.
|
44 |
*
|
45 |
+
* @version 2.7.0
|
46 |
* @since 2.3.2
|
47 |
*/
|
48 |
function add_hooks() {
|
51 |
|
52 |
add_filter( 'woocommerce_paypal_supported_currencies', array( $this, 'extend_paypal_supported_currencies' ), PHP_INT_MAX, 1 );
|
53 |
|
54 |
+
add_filter( WCJ_PRODUCT_GET_PRICE_FILTER, array( $this, 'change_price_by_gateway' ), PHP_INT_MAX, 2 );
|
55 |
+
add_filter( 'woocommerce_product_variation_get_price', array( $this, 'change_price_by_gateway' ), PHP_INT_MAX, 2 );
|
56 |
|
57 |
add_filter( 'woocommerce_package_rates', array( $this, 'change_shipping_price_by_gateway' ), PHP_INT_MAX, 2 );
|
58 |
|
98 |
function is_cart_or_checkout() {
|
99 |
//if ( wcj_is_frontend() ) {
|
100 |
if ( ! is_admin() ) {
|
101 |
+
if ( is_cart() || is_checkout() ) {
|
102 |
+
return true;
|
103 |
+
}
|
104 |
}
|
105 |
return false;
|
106 |
}
|
144 |
*
|
145 |
* @version 2.4.0
|
146 |
*/
|
147 |
+
function change_currency_symbol( $currency_symbol, $currency ) {
|
148 |
if ( $this->is_cart_or_checkout() ) {
|
149 |
global $woocommerce;
|
150 |
$current_gateway = $woocommerce->session->chosen_payment_method;
|
163 |
*
|
164 |
* @version 2.4.0
|
165 |
*/
|
166 |
+
function change_currency_code( $currency ) {
|
167 |
if ( $this->is_cart_or_checkout() ) {
|
168 |
global $woocommerce;
|
169 |
$current_gateway = $woocommerce->session->chosen_payment_method;
|
185 |
return $currency;
|
186 |
}
|
187 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
/**
|
189 |
* register_script.
|
190 |
*/
|
191 |
+
function register_script() {
|
192 |
wp_register_script( 'wcj-payment-gateways-checkout', trailingslashit( plugin_dir_url( __FILE__ ) ) . 'js/checkout.js', array( 'jquery' ), false, true );
|
193 |
}
|
194 |
|
195 |
/**
|
196 |
* enqueue_checkout_script.
|
197 |
*/
|
198 |
+
function enqueue_checkout_script() {
|
199 |
+
if( ! is_checkout() ) {
|
200 |
return;
|
201 |
+
}
|
202 |
wp_enqueue_script( 'wcj-payment-gateways-checkout' );
|
203 |
}
|
204 |
|
205 |
/**
|
206 |
+
* add_settings.
|
207 |
*
|
208 |
+
* @version 2.7.0
|
209 |
*/
|
210 |
+
function add_settings( $settings ) {
|
211 |
|
212 |
$settings[] = array(
|
213 |
'title' => __( 'Payment Gateways Currency Options', 'woocommerce-jetpack' ),
|
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,7 +18,7 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
@@ -28,55 +28,30 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
28 |
$this->link = 'http://booster.io/features/woocommerce-payment-gateways-fees-and-discounts/';
|
29 |
parent::__construct();
|
30 |
|
31 |
-
add_filter( 'init', array( $this, '
|
32 |
|
33 |
if ( $this->is_enabled() ) {
|
34 |
add_action( 'woocommerce_cart_calculate_fees', array( $this, 'gateways_fees' ) );
|
35 |
-
add_action( 'wp_enqueue_scripts',
|
36 |
-
// add_filter( 'woocommerce_payment_gateways_settings', array( $this, 'add_fees_settings' ), 100 );
|
37 |
-
add_action( 'init', array( $this, 'register_script' ) );
|
38 |
}
|
39 |
}
|
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 |
-
/**
|
53 |
-
* add_hooks.
|
54 |
-
*/
|
55 |
-
function add_hooks() {
|
56 |
-
add_filter( 'wcj_payment_gateways_fees_settings', array( $this, 'add_fees_settings' ) );
|
57 |
-
}
|
58 |
-
|
59 |
-
/**
|
60 |
-
* register_script.
|
61 |
-
*/
|
62 |
-
public function register_script() {
|
63 |
-
wp_register_script( 'wcj-payment-gateways-checkout', trailingslashit( plugin_dir_url( __FILE__ ) ) . 'js/checkout.js', array( 'jquery' ), false, true );
|
64 |
-
}
|
65 |
-
|
66 |
/**
|
67 |
* enqueue_checkout_script.
|
|
|
|
|
68 |
*/
|
69 |
-
|
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.
|
80 |
*/
|
81 |
function gateways_fees() {
|
82 |
global $woocommerce;
|
@@ -98,6 +73,11 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
98 |
$fee_text = get_option( 'wcj_gateways_fees_text_' . $current_gateway );
|
99 |
$min_cart_amount = get_option( 'wcj_gateways_fees_min_cart_amount_' . $current_gateway );
|
100 |
$max_cart_amount = get_option( 'wcj_gateways_fees_max_cart_amount_' . $current_gateway );
|
|
|
|
|
|
|
|
|
|
|
101 |
$total_in_cart = $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total;
|
102 |
if ( '' != $fee_text && $total_in_cart >= $min_cart_amount && ( 0 == $max_cart_amount || $total_in_cart <= $max_cart_amount ) ) {
|
103 |
$fee_value = get_option( 'wcj_gateways_fees_value_' . $current_gateway );
|
@@ -105,6 +85,10 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
105 |
$final_fee_to_add = 0;
|
106 |
switch ( $fee_type ) {
|
107 |
case 'fixed':
|
|
|
|
|
|
|
|
|
108 |
$final_fee_to_add = $fee_value;
|
109 |
break;
|
110 |
case 'percent':
|
@@ -114,7 +98,7 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
114 |
}
|
115 |
break;
|
116 |
}
|
117 |
-
if (
|
118 |
$taxable = ( 'yes' === get_option( 'wcj_gateways_fees_is_taxable_' . $current_gateway ) ) ? true : false;
|
119 |
$tax_class_name = '';
|
120 |
if ( $taxable ) {
|
@@ -129,34 +113,31 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
129 |
}
|
130 |
|
131 |
/**
|
132 |
-
*
|
133 |
*
|
134 |
-
* @version 2.
|
135 |
*/
|
136 |
-
function
|
137 |
-
$
|
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,
|
150 |
-
'
|
151 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
'id' => 'wcj_gateways_fees_text_' . $key,
|
153 |
'default' => '',
|
154 |
'type' => 'text',
|
155 |
),
|
156 |
array(
|
157 |
-
'title' => '',
|
158 |
-
'
|
159 |
-
'desc_tip' => __( 'Percent or fixed value.', 'woocommerce-jetpack' )/* . ' ' . apply_filters( 'booster_get_message', '', 'desc_no_link' ) */,
|
160 |
'id' => 'wcj_gateways_fees_type_' . $key,
|
161 |
'default' => 'fixed',
|
162 |
'type' => 'select',
|
@@ -166,8 +147,7 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
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,
|
@@ -177,9 +157,9 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
177 |
),
|
178 |
),
|
179 |
array(
|
180 |
-
'title' => '',
|
181 |
-
'
|
182 |
-
'
|
183 |
'id' => 'wcj_gateways_fees_min_cart_amount_' . $key,
|
184 |
'default' => 0,
|
185 |
'type' => 'number',
|
@@ -189,9 +169,9 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
189 |
),
|
190 |
),
|
191 |
array(
|
192 |
-
'title' => '',
|
193 |
-
'
|
194 |
-
'
|
195 |
'id' => 'wcj_gateways_fees_max_cart_amount_' . $key,
|
196 |
'default' => 0,
|
197 |
'type' => 'number',
|
@@ -201,17 +181,15 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
201 |
),
|
202 |
),
|
203 |
array(
|
204 |
-
'title' => '',
|
205 |
-
'desc' => __( 'Round the fee (or discount) value before adding to the cart
|
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 |
-
'
|
214 |
-
// 'desc_tip' => __( 'Set 0 to disable.', 'woocommerce-jetpack' ),
|
215 |
'id' => 'wcj_gateways_fees_round_precision_' . $key,
|
216 |
'default' => 0,
|
217 |
'type' => 'number',
|
@@ -221,26 +199,26 @@ class WCJ_Payment_Gateways_Fees extends WCJ_Module {
|
|
221 |
),
|
222 |
),
|
223 |
array(
|
224 |
-
'title' => '',
|
225 |
-
'desc' => __( '
|
226 |
'id' => 'wcj_gateways_fees_is_taxable_' . $key,
|
227 |
'default' => 'no',
|
228 |
'type' => 'checkbox',
|
229 |
),
|
230 |
array(
|
231 |
-
'title' => '',
|
232 |
-
'
|
233 |
'id' => 'wcj_gateways_fees_tax_class_id_' . $key,
|
234 |
'default' => '',
|
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 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Payment Gateways Fees class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.2
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
28 |
$this->link = 'http://booster.io/features/woocommerce-payment-gateways-fees-and-discounts/';
|
29 |
parent::__construct();
|
30 |
|
31 |
+
add_filter( 'init', array( $this, 'add_settings_hook' ) );
|
32 |
|
33 |
if ( $this->is_enabled() ) {
|
34 |
add_action( 'woocommerce_cart_calculate_fees', array( $this, 'gateways_fees' ) );
|
35 |
+
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_checkout_script' ) );
|
|
|
|
|
36 |
}
|
37 |
}
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
/**
|
40 |
* enqueue_checkout_script.
|
41 |
+
*
|
42 |
+
* @version 2.7.0
|
43 |
*/
|
44 |
+
function enqueue_checkout_script() {
|
45 |
if( ! is_checkout() ) {
|
46 |
return;
|
47 |
}
|
48 |
+
wp_enqueue_script( 'wcj-payment-gateways-checkout', trailingslashit( plugin_dir_url( __FILE__ ) ) . 'js/checkout.js', array( 'jquery' ), WCJ()->version, true );
|
49 |
}
|
50 |
|
51 |
/**
|
52 |
* gateways_fees.
|
53 |
*
|
54 |
+
* @version 2.7.0
|
55 |
*/
|
56 |
function gateways_fees() {
|
57 |
global $woocommerce;
|
73 |
$fee_text = get_option( 'wcj_gateways_fees_text_' . $current_gateway );
|
74 |
$min_cart_amount = get_option( 'wcj_gateways_fees_min_cart_amount_' . $current_gateway );
|
75 |
$max_cart_amount = get_option( 'wcj_gateways_fees_max_cart_amount_' . $current_gateway );
|
76 |
+
// Multicurrency (Currency Switcher) module
|
77 |
+
if ( WCJ()->modules['multicurrency']->is_enabled() ) {
|
78 |
+
$min_cart_amount = WCJ()->modules['multicurrency']->change_price( $min_cart_amount, null );
|
79 |
+
$max_cart_amount = WCJ()->modules['multicurrency']->change_price( $max_cart_amount, null );
|
80 |
+
}
|
81 |
$total_in_cart = $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total;
|
82 |
if ( '' != $fee_text && $total_in_cart >= $min_cart_amount && ( 0 == $max_cart_amount || $total_in_cart <= $max_cart_amount ) ) {
|
83 |
$fee_value = get_option( 'wcj_gateways_fees_value_' . $current_gateway );
|
85 |
$final_fee_to_add = 0;
|
86 |
switch ( $fee_type ) {
|
87 |
case 'fixed':
|
88 |
+
// Multicurrency (Currency Switcher) module
|
89 |
+
if ( WCJ()->modules['multicurrency']->is_enabled() ) {
|
90 |
+
$fee_value = WCJ()->modules['multicurrency']->change_price( $fee_value, null );
|
91 |
+
}
|
92 |
$final_fee_to_add = $fee_value;
|
93 |
break;
|
94 |
case 'percent':
|
98 |
}
|
99 |
break;
|
100 |
}
|
101 |
+
if ( 0 != $final_fee_to_add ) {
|
102 |
$taxable = ( 'yes' === get_option( 'wcj_gateways_fees_is_taxable_' . $current_gateway ) ) ? true : false;
|
103 |
$tax_class_name = '';
|
104 |
if ( $taxable ) {
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
+
* add_settings.
|
117 |
*
|
118 |
+
* @version 2.7.0
|
119 |
*/
|
120 |
+
function add_settings( $settings ) {
|
121 |
+
$available_gateways = WC()->payment_gateways->payment_gateways();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
foreach ( $available_gateways as $key => $gateway ) {
|
123 |
$settings = array_merge( $settings, array(
|
124 |
array(
|
125 |
+
'title' => $gateway->title,
|
126 |
+
'type' => 'title',
|
127 |
+
// 'desc' => ( $gateway->is_available() ? __( 'Available', 'woocommerce-jetpack' ) : __( 'Not available', 'woocommerce-jetpack' ) ),
|
128 |
+
'id' => 'wcj_gateways_fees_options_' . $key,
|
129 |
+
),
|
130 |
+
array(
|
131 |
+
'title' => __( 'Fee (or Discount) Title', 'woocommerce-jetpack' ),
|
132 |
+
'desc_tip' => __( 'Fee (or discount) title to show to customer.', 'woocommerce-jetpack' ),
|
133 |
+
'desc' => __( 'Leave blank to disable', 'woocommerce-jetpack' ),
|
134 |
'id' => 'wcj_gateways_fees_text_' . $key,
|
135 |
'default' => '',
|
136 |
'type' => 'text',
|
137 |
),
|
138 |
array(
|
139 |
+
'title' => __( 'Fee (or Discount) Type', 'woocommerce-jetpack' ),
|
140 |
+
'desc_tip' => __( 'Percent or fixed value.', 'woocommerce-jetpack' ),
|
|
|
141 |
'id' => 'wcj_gateways_fees_type_' . $key,
|
142 |
'default' => 'fixed',
|
143 |
'type' => 'select',
|
147 |
),
|
148 |
),
|
149 |
array(
|
150 |
+
'title' => __( 'Fee (or Discount) Value', 'woocommerce-jetpack' ),
|
|
|
151 |
'desc_tip' => __( 'The value. For discount enter a negative number.', 'woocommerce-jetpack' ),
|
152 |
'id' => 'wcj_gateways_fees_value_' . $key,
|
153 |
'default' => 0,
|
157 |
),
|
158 |
),
|
159 |
array(
|
160 |
+
'title' => __( 'Minimum Cart Amount', 'woocommerce-jetpack' ),
|
161 |
+
'desc_tip' => __( 'Minimum cart amount for adding the fee (or discount).', 'woocommerce-jetpack' ),
|
162 |
+
'desc' => __( 'Set 0 to disable', 'woocommerce-jetpack' ),
|
163 |
'id' => 'wcj_gateways_fees_min_cart_amount_' . $key,
|
164 |
'default' => 0,
|
165 |
'type' => 'number',
|
169 |
),
|
170 |
),
|
171 |
array(
|
172 |
+
'title' => __( 'Maximum Cart Amount', 'woocommerce-jetpack' ),
|
173 |
+
'desc_tip' => __( 'Maximum cart amount for adding the fee (or discount).', 'woocommerce-jetpack' ),
|
174 |
+
'desc' => __( 'Set 0 to disable', 'woocommerce-jetpack' ),
|
175 |
'id' => 'wcj_gateways_fees_max_cart_amount_' . $key,
|
176 |
'default' => 0,
|
177 |
'type' => 'number',
|
181 |
),
|
182 |
),
|
183 |
array(
|
184 |
+
'title' => __( 'Rounding', 'woocommerce-jetpack' ),
|
185 |
+
'desc' => __( 'Round the fee (or discount) value before adding to the cart', 'woocommerce-jetpack' ),
|
|
|
186 |
'id' => 'wcj_gateways_fees_round_' . $key,
|
187 |
'default' => 'no',
|
188 |
'type' => 'checkbox',
|
189 |
),
|
190 |
array(
|
191 |
+
'title' => __( 'Rounding Precision', 'woocommerce-jetpack' ),
|
192 |
+
'desc_tip' => __( 'If Rounding is enabled, set precision here.', 'woocommerce-jetpack' ),
|
|
|
193 |
'id' => 'wcj_gateways_fees_round_precision_' . $key,
|
194 |
'default' => 0,
|
195 |
'type' => 'number',
|
199 |
),
|
200 |
),
|
201 |
array(
|
202 |
+
'title' => __( 'Taxing', 'woocommerce-jetpack' ),
|
203 |
+
'desc' => __( 'Taxable', 'woocommerce-jetpack' ),
|
204 |
'id' => 'wcj_gateways_fees_is_taxable_' . $key,
|
205 |
'default' => 'no',
|
206 |
'type' => 'checkbox',
|
207 |
),
|
208 |
array(
|
209 |
+
'title' => __( 'Tax Class', 'woocommerce-jetpack' ),
|
210 |
+
'desc_tip' => __( 'If Taxing is enabled, set tax class here.', 'woocommerce-jetpack' ),
|
211 |
'id' => 'wcj_gateways_fees_tax_class_id_' . $key,
|
212 |
'default' => '',
|
213 |
'type' => 'select',
|
214 |
'options' => array_merge( array( __( 'Standard Rate', 'woocommerce-jetpack' ) ), WC_Tax::get_tax_classes() ),
|
215 |
),
|
216 |
+
array(
|
217 |
+
'type' => 'sectionend',
|
218 |
+
'id' => 'wcj_gateways_fees_options_' . $key,
|
219 |
+
),
|
220 |
) );
|
221 |
}
|
|
|
|
|
|
|
|
|
222 |
return $settings;
|
223 |
}
|
224 |
}
|
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 |
*/
|
@@ -18,7 +18,7 @@ class WCJ_Payment_Gateways_Min_Max extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
@@ -28,7 +28,7 @@ class WCJ_Payment_Gateways_Min_Max extends WCJ_Module {
|
|
28 |
$this->link = 'http://booster.io/features/woocommerce-payment-gateways-min-max/';
|
29 |
parent::__construct();
|
30 |
|
31 |
-
add_filter( 'init', array( $this, '
|
32 |
|
33 |
if ( $this->is_enabled() ) {
|
34 |
add_filter( 'woocommerce_available_payment_gateways', array( $this, 'available_payment_gateways' ), PHP_INT_MAX, 1 );
|
@@ -74,19 +74,12 @@ class WCJ_Payment_Gateways_Min_Max extends WCJ_Module {
|
|
74 |
}
|
75 |
|
76 |
/**
|
77 |
-
*
|
78 |
-
*/
|
79 |
-
function add_hooks() {
|
80 |
-
add_filter( 'wcj_payment_gateways_min_max_settings', array( $this, 'add_min_max_settings' ) );
|
81 |
-
}
|
82 |
-
|
83 |
-
/**
|
84 |
-
* add_min_max_settings.
|
85 |
*
|
86 |
-
* @version 2.
|
87 |
-
* @todo checkout notices - add %diff_amount% replaced values (wc_has_notice won't work then
|
88 |
*/
|
89 |
-
function
|
90 |
$settings = array(
|
91 |
array(
|
92 |
'title' => __( 'General Options', 'woocommerce-jetpack' ),
|
@@ -138,12 +131,12 @@ class WCJ_Payment_Gateways_Min_Max extends WCJ_Module {
|
|
138 |
'type' => 'sectionend',
|
139 |
'id' => 'wcj_payment_gateways_min_max_general_options',
|
140 |
),
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
);
|
148 |
$gateways = WC()->payment_gateways->payment_gateways();
|
149 |
foreach ( $gateways as $key => $gateway ) {
|
@@ -158,40 +151,36 @@ class WCJ_Payment_Gateways_Min_Max extends WCJ_Module {
|
|
158 |
$custom_attributes = array();
|
159 |
$desc_tip = '';
|
160 |
}
|
161 |
-
$settings
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
|
|
|
|
179 |
}
|
180 |
-
$settings
|
181 |
-
|
182 |
-
|
183 |
-
|
|
|
|
|
184 |
return $settings;
|
185 |
}
|
186 |
|
187 |
-
/**
|
188 |
-
* get_settings.
|
189 |
-
*/
|
190 |
-
function get_settings() {
|
191 |
-
$settings = array();
|
192 |
-
$settings = apply_filters( 'wcj_payment_gateways_min_max_settings', $settings );
|
193 |
-
return $this->add_standard_settings( $settings );
|
194 |
-
}
|
195 |
}
|
196 |
|
197 |
endif;
|
4 |
*
|
5 |
* The WooCommerce Jetpack Payment Gateways Min Max class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.4.1
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
28 |
$this->link = 'http://booster.io/features/woocommerce-payment-gateways-min-max/';
|
29 |
parent::__construct();
|
30 |
|
31 |
+
add_filter( 'init', array( $this, 'add_settings_hook' ) );
|
32 |
|
33 |
if ( $this->is_enabled() ) {
|
34 |
add_filter( 'woocommerce_available_payment_gateways', array( $this, 'available_payment_gateways' ), PHP_INT_MAX, 1 );
|
74 |
}
|
75 |
|
76 |
/**
|
77 |
+
* add_settings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
*
|
79 |
+
* @version 2.7.0
|
80 |
+
* @todo checkout notices - add %diff_amount% and %total_in_cart% replaced values (wc_has_notice won't work then?, probably will need to use wc_clear_notices)
|
81 |
*/
|
82 |
+
function add_settings( $settings ) {
|
83 |
$settings = array(
|
84 |
array(
|
85 |
'title' => __( 'General Options', 'woocommerce-jetpack' ),
|
131 |
'type' => 'sectionend',
|
132 |
'id' => 'wcj_payment_gateways_min_max_general_options',
|
133 |
),
|
134 |
+
array(
|
135 |
+
'title' => __( 'Payment Gateways', 'woocommerce-jetpack' ),
|
136 |
+
'type' => 'title',
|
137 |
+
'desc' => __( 'Leave zero to disable.', 'woocommerce-jetpack' ),
|
138 |
+
'id' => 'wcj_payment_gateways_min_max_gateways_options',
|
139 |
+
),
|
140 |
);
|
141 |
$gateways = WC()->payment_gateways->payment_gateways();
|
142 |
foreach ( $gateways as $key => $gateway ) {
|
151 |
$custom_attributes = array();
|
152 |
$desc_tip = '';
|
153 |
}
|
154 |
+
$settings = array_merge( $settings, array(
|
155 |
+
array(
|
156 |
+
'title' => $gateway->title,
|
157 |
+
'desc_tip' => $desc_tip,
|
158 |
+
'desc' => __( 'Min', 'woocommerce-jetpack' ),
|
159 |
+
'id' => 'wcj_payment_gateways_min_' . $key,
|
160 |
+
'default' => 0,
|
161 |
+
'type' => 'number',
|
162 |
+
'custom_attributes' => array_merge( array( 'step' => '0.000001', 'min' => '0', ), $custom_attributes ),
|
163 |
+
),
|
164 |
+
array(
|
165 |
+
'title' => '',
|
166 |
+
'desc_tip' => $desc_tip,
|
167 |
+
'desc' => __( 'Max', 'woocommerce-jetpack' ),
|
168 |
+
'id' => 'wcj_payment_gateways_max_' . $key,
|
169 |
+
'default' => 0,
|
170 |
+
'type' => 'number',
|
171 |
+
'custom_attributes' => array_merge( array( 'step' => '0.000001', 'min' => '0', ), $custom_attributes ),
|
172 |
+
),
|
173 |
+
) );
|
174 |
}
|
175 |
+
$settings = array_merge( $settings, array(
|
176 |
+
array(
|
177 |
+
'type' => 'sectionend',
|
178 |
+
'id' => 'wcj_payment_gateways_min_max_gateways_options',
|
179 |
+
),
|
180 |
+
) );
|
181 |
return $settings;
|
182 |
}
|
183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
}
|
185 |
|
186 |
endif;
|
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 |
*/
|
@@ -18,7 +18,7 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
@@ -28,7 +28,7 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
28 |
$this->link = 'http://booster.io/features/woocommerce-gateways-per-product-or-category/';
|
29 |
parent::__construct();
|
30 |
|
31 |
-
add_filter( 'init', array( $this, '
|
32 |
|
33 |
if ( $this->is_enabled() ) {
|
34 |
// add_filter( 'woocommerce_payment_gateways_settings', array( $this, 'add_per_category_settings' ), 100 );
|
@@ -36,34 +36,18 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
36 |
}
|
37 |
}
|
38 |
|
39 |
-
/**
|
40 |
-
* get_settings.
|
41 |
-
*
|
42 |
-
* @version 2.4.7
|
43 |
-
*/
|
44 |
-
function get_settings() {
|
45 |
-
$settings = array();
|
46 |
-
$settings = apply_filters( 'wcj_payment_gateways_per_category_settings', $settings );
|
47 |
-
return $this->add_standard_settings( $settings );
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* add_hooks.
|
52 |
-
*/
|
53 |
-
function add_hooks() {
|
54 |
-
add_filter( 'wcj_payment_gateways_per_category_settings', array( $this, 'add_per_category_settings' ) );
|
55 |
-
}
|
56 |
-
|
57 |
/**
|
58 |
* filter_available_payment_gateways_per_category.
|
59 |
*
|
60 |
-
* @version 2.
|
61 |
*/
|
62 |
function filter_available_payment_gateways_per_category( $available_gateways ) {
|
63 |
|
64 |
// if ( ! is_checkout() ) return $available_gateways;
|
65 |
|
66 |
-
if ( ! isset( WC()->cart ) )
|
|
|
|
|
67 |
|
68 |
foreach ( $available_gateways as $gateway_id => $gateway ) {
|
69 |
|
@@ -73,7 +57,9 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
73 |
$do_skip = true;
|
74 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
|
75 |
$product_categories = get_the_terms( $values['product_id'], 'product_cat' );
|
76 |
-
if ( empty( $product_categories ) )
|
|
|
|
|
77 |
foreach( $product_categories as $product_category ) {
|
78 |
if ( in_array( $product_category->term_id, $categories_in ) ) {
|
79 |
// Current gateway is OK, breaking to check next gateway (no need to check other categories of the product)
|
@@ -88,7 +74,9 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
88 |
}
|
89 |
if ( $do_skip ) {
|
90 |
// Skip (i.e. hide/unset) current gateway - no products of needed categories found in the cart
|
91 |
-
if ( isset( $available_gateways[ $gateway_id ] ) )
|
|
|
|
|
92 |
continue; // ... to next gateway
|
93 |
}
|
94 |
}
|
@@ -99,16 +87,22 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
99 |
$do_skip = false;
|
100 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
|
101 |
$product_categories = get_the_terms( $values['product_id'], 'product_cat' );
|
102 |
-
if ( empty( $product_categories ) )
|
|
|
|
|
103 |
foreach( $product_categories as $product_category ) {
|
104 |
if ( in_array( $product_category->term_id, $categories_excl ) ) {
|
105 |
// Skip (i.e. hide/unset) current gateway
|
106 |
-
if ( isset( $available_gateways[ $gateway_id ] ) )
|
|
|
|
|
107 |
$do_skip = true;
|
108 |
break;
|
109 |
}
|
110 |
}
|
111 |
-
if ( $do_skip )
|
|
|
|
|
112 |
}
|
113 |
if ( $do_skip ) {
|
114 |
continue; // ... to next gateway
|
@@ -128,7 +122,9 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
128 |
}
|
129 |
if ( $do_skip ) {
|
130 |
// Skip (i.e. hide/unset) current gateway
|
131 |
-
if ( isset( $available_gateways[ $gateway_id ] ) )
|
|
|
|
|
132 |
continue; // ... to next gateway
|
133 |
}
|
134 |
}
|
@@ -140,7 +136,9 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
140 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
|
141 |
if ( in_array( $values['product_id'], $products_excl ) ) {
|
142 |
// Skip (i.e. hide/unset) current gateway
|
143 |
-
if ( isset( $available_gateways[ $gateway_id ] ) )
|
|
|
|
|
144 |
$do_skip = true;
|
145 |
break;
|
146 |
}
|
@@ -156,16 +154,18 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
156 |
}
|
157 |
|
158 |
/**
|
159 |
-
*
|
160 |
*
|
161 |
-
* @version 2.
|
162 |
*/
|
163 |
-
function
|
164 |
-
|
165 |
-
$settings
|
166 |
-
|
167 |
-
|
168 |
-
|
|
|
|
|
169 |
);
|
170 |
|
171 |
$product_cats = array();
|
@@ -179,58 +179,62 @@ class WCJ_Payment_Gateways_Per_Category extends WCJ_Module {
|
|
179 |
global $woocommerce;
|
180 |
$available_gateways = $woocommerce->payment_gateways->payment_gateways();
|
181 |
foreach ( $available_gateways as $gateway_id => $gateway ) {
|
182 |
-
$settings
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
|
|
|
|
228 |
}
|
229 |
|
230 |
-
$settings
|
231 |
-
|
232 |
-
|
233 |
-
|
|
|
|
|
234 |
|
235 |
return $settings;
|
236 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Payment Gateways per Category class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
28 |
$this->link = 'http://booster.io/features/woocommerce-gateways-per-product-or-category/';
|
29 |
parent::__construct();
|
30 |
|
31 |
+
add_filter( 'init', array( $this, 'add_settings_hook' ) );
|
32 |
|
33 |
if ( $this->is_enabled() ) {
|
34 |
// add_filter( 'woocommerce_payment_gateways_settings', array( $this, 'add_per_category_settings' ), 100 );
|
36 |
}
|
37 |
}
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
/**
|
40 |
* filter_available_payment_gateways_per_category.
|
41 |
*
|
42 |
+
* @version 2.7.0
|
43 |
*/
|
44 |
function filter_available_payment_gateways_per_category( $available_gateways ) {
|
45 |
|
46 |
// if ( ! is_checkout() ) return $available_gateways;
|
47 |
|
48 |
+
if ( ! isset( WC()->cart ) ) {
|
49 |
+
return $available_gateways;
|
50 |
+
}
|
51 |
|
52 |
foreach ( $available_gateways as $gateway_id => $gateway ) {
|
53 |
|
57 |
$do_skip = true;
|
58 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
|
59 |
$product_categories = get_the_terms( $values['product_id'], 'product_cat' );
|
60 |
+
if ( empty( $product_categories ) ) {
|
61 |
+
continue; // ... to next product in the cart
|
62 |
+
}
|
63 |
foreach( $product_categories as $product_category ) {
|
64 |
if ( in_array( $product_category->term_id, $categories_in ) ) {
|
65 |
// Current gateway is OK, breaking to check next gateway (no need to check other categories of the product)
|
74 |
}
|
75 |
if ( $do_skip ) {
|
76 |
// Skip (i.e. hide/unset) current gateway - no products of needed categories found in the cart
|
77 |
+
if ( isset( $available_gateways[ $gateway_id ] ) ) {
|
78 |
+
unset( $available_gateways[ $gateway_id ] );
|
79 |
+
}
|
80 |
continue; // ... to next gateway
|
81 |
}
|
82 |
}
|
87 |
$do_skip = false;
|
88 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
|
89 |
$product_categories = get_the_terms( $values['product_id'], 'product_cat' );
|
90 |
+
if ( empty( $product_categories ) ) {
|
91 |
+
continue; // ... to next product in the cart
|
92 |
+
}
|
93 |
foreach( $product_categories as $product_category ) {
|
94 |
if ( in_array( $product_category->term_id, $categories_excl ) ) {
|
95 |
// Skip (i.e. hide/unset) current gateway
|
96 |
+
if ( isset( $available_gateways[ $gateway_id ] ) ) {
|
97 |
+
unset( $available_gateways[ $gateway_id ] );
|
98 |
+
}
|
99 |
$do_skip = true;
|
100 |
break;
|
101 |
}
|
102 |
}
|
103 |
+
if ( $do_skip ) {
|
104 |
+
break;
|
105 |
+
}
|
106 |
}
|
107 |
if ( $do_skip ) {
|
108 |
continue; // ... to next gateway
|
122 |
}
|
123 |
if ( $do_skip ) {
|
124 |
// Skip (i.e. hide/unset) current gateway
|
125 |
+
if ( isset( $available_gateways[ $gateway_id ] ) ) {
|
126 |
+
unset( $available_gateways[ $gateway_id ] );
|
127 |
+
}
|
128 |
continue; // ... to next gateway
|
129 |
}
|
130 |
}
|
136 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
|
137 |
if ( in_array( $values['product_id'], $products_excl ) ) {
|
138 |
// Skip (i.e. hide/unset) current gateway
|
139 |
+
if ( isset( $available_gateways[ $gateway_id ] ) ) {
|
140 |
+
unset( $available_gateways[ $gateway_id ] );
|
141 |
+
}
|
142 |
$do_skip = true;
|
143 |
break;
|
144 |
}
|
154 |
}
|
155 |
|
156 |
/**
|
157 |
+
* add_settings.
|
158 |
*
|
159 |
+
* @version 2.7.0
|
160 |
*/
|
161 |
+
function add_settings( $settings ) {
|
162 |
+
|
163 |
+
$settings = array(
|
164 |
+
array(
|
165 |
+
'title' => __( 'Options', 'woocommerce-jetpack' ),
|
166 |
+
'type' => 'title',
|
167 |
+
'id' => 'wcj_gateways_per_category_options',
|
168 |
+
),
|
169 |
);
|
170 |
|
171 |
$product_cats = array();
|
179 |
global $woocommerce;
|
180 |
$available_gateways = $woocommerce->payment_gateways->payment_gateways();
|
181 |
foreach ( $available_gateways as $gateway_id => $gateway ) {
|
182 |
+
$settings = array_merge( $settings, array(
|
183 |
+
array(
|
184 |
+
'title' => $gateway->title,
|
185 |
+
'desc' => __( 'Product Categories - Include', 'woocommerce-jetpack' ),
|
186 |
+
'desc_tip' => __( 'Show gateway only if there is product of selected category in cart. Leave blank to disable the option.', 'woocommerce-jetpack' ),
|
187 |
+
'id' => 'wcj_gateways_per_category_' . $gateway_id,
|
188 |
+
'default' => '',
|
189 |
+
'type' => 'multiselect',
|
190 |
+
'class' => 'chosen_select',
|
191 |
+
'css' => 'width: 450px;',
|
192 |
+
'options' => $product_cats,
|
193 |
+
),
|
194 |
+
array(
|
195 |
+
'title' => '',
|
196 |
+
'desc' => __( 'Product Categories - Exclude', 'woocommerce-jetpack' ),
|
197 |
+
'desc_tip' => __( 'Hide gateway if there is product of selected category in cart. Leave blank to disable the option.', 'woocommerce-jetpack' ),
|
198 |
+
'id' => 'wcj_gateways_per_category_excl_' . $gateway_id,
|
199 |
+
'default' => '',
|
200 |
+
'type' => 'multiselect',
|
201 |
+
'class' => 'chosen_select',
|
202 |
+
'css' => 'width: 450px;',
|
203 |
+
'options' => $product_cats,
|
204 |
+
),
|
205 |
+
array(
|
206 |
+
'title' => '',
|
207 |
+
'desc' => __( 'Products - Include', 'woocommerce-jetpack' ) . '. ' . apply_filters( 'booster_get_message', '', 'desc' ),
|
208 |
+
'desc_tip' => __( 'Show gateway only if there is selected products in cart. Leave blank to disable the option.', 'woocommerce-jetpack' ),
|
209 |
+
'id' => 'wcj_gateways_per_products_' . $gateway_id,
|
210 |
+
'default' => '',
|
211 |
+
'type' => 'multiselect',
|
212 |
+
'class' => 'chosen_select',
|
213 |
+
'css' => 'width: 450px;',
|
214 |
+
'options' => $products,
|
215 |
+
'custom_attributes' => apply_filters( 'booster_get_message', '', 'disabled' ),
|
216 |
+
),
|
217 |
+
array(
|
218 |
+
'title' => '',
|
219 |
+
'desc' => __( 'Products - Exclude', 'woocommerce-jetpack' ) . '. ' . apply_filters( 'booster_get_message', '', 'desc' ),
|
220 |
+
'desc_tip' => __( 'Hide gateway if there is selected products in cart. Leave blank to disable the option.', 'woocommerce-jetpack' ),
|
221 |
+
'id' => 'wcj_gateways_per_products_excl_' . $gateway_id,
|
222 |
+
'default' => '',
|
223 |
+
'type' => 'multiselect',
|
224 |
+
'class' => 'chosen_select',
|
225 |
+
'css' => 'width: 450px;',
|
226 |
+
'options' => $products,
|
227 |
+
'custom_attributes' => apply_filters( 'booster_get_message', '', 'disabled' ),
|
228 |
+
),
|
229 |
+
) );
|
230 |
}
|
231 |
|
232 |
+
$settings = array_merge( $settings, array(
|
233 |
+
array(
|
234 |
+
'type' => 'sectionend',
|
235 |
+
'id' => 'wcj_gateways_per_category_options',
|
236 |
+
),
|
237 |
+
) );
|
238 |
|
239 |
return $settings;
|
240 |
}
|
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 |
|
@@ -17,7 +17,7 @@ class WCJ_PDF_Invoicing extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
@@ -55,12 +55,12 @@ class WCJ_PDF_Invoicing extends WCJ_Module {
|
|
55 |
foreach ( $invoice_types as $invoice_type ) {
|
56 |
$the_hook = get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_create_on', 'woocommerce_new_order' );
|
57 |
if ( 'disabled' != $the_hook && 'manual' != $the_hook && '' != $the_hook ) {
|
58 |
-
add_action( $the_hook, array( $this, '
|
59 |
if ( 'woocommerce_new_order' === $the_hook ) {
|
60 |
-
add_action( 'woocommerce_api_create_order', array( $this, '
|
61 |
-
add_action( 'woocommerce_cli_create_order', array( $this, '
|
62 |
-
add_action( 'kco_before_confirm_order', array( $this, '
|
63 |
-
add_action( 'woocommerce_checkout_order_processed', array( $this, '
|
64 |
}
|
65 |
}
|
66 |
}
|
@@ -244,41 +244,25 @@ class WCJ_PDF_Invoicing extends WCJ_Module {
|
|
244 |
}
|
245 |
|
246 |
/**
|
247 |
-
*
|
248 |
-
*/
|
249 |
-
function create_invoice( $order_id ) {
|
250 |
-
return $this->create_document( $order_id, 'invoice' );
|
251 |
-
}
|
252 |
-
|
253 |
-
/**
|
254 |
-
* create_proforma_invoice.
|
255 |
-
*/
|
256 |
-
function create_proforma_invoice( $order_id ) {
|
257 |
-
return $this->create_document( $order_id, 'proforma_invoice' );
|
258 |
-
}
|
259 |
-
|
260 |
-
/**
|
261 |
-
* create_packing_slip.
|
262 |
-
*/
|
263 |
-
function create_packing_slip( $order_id ) {
|
264 |
-
return $this->create_document( $order_id, 'packing_slip' );
|
265 |
-
}
|
266 |
-
|
267 |
-
/**
|
268 |
-
* create_credit_note.
|
269 |
-
*/
|
270 |
-
function create_credit_note( $order_id ) {
|
271 |
-
return $this->create_document( $order_id, 'credit_note' );
|
272 |
-
}
|
273 |
-
|
274 |
-
/**
|
275 |
-
* create_custom_doc.
|
276 |
*
|
277 |
-
* @version 2.
|
278 |
-
* @since 2.
|
279 |
*/
|
280 |
-
function
|
281 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
282 |
}
|
283 |
|
284 |
/**
|
@@ -351,7 +335,7 @@ class WCJ_PDF_Invoicing extends WCJ_Module {
|
|
351 |
/**
|
352 |
* get_settings.
|
353 |
*
|
354 |
-
* @version 2.
|
355 |
*/
|
356 |
function get_settings() {
|
357 |
|
@@ -376,6 +360,18 @@ class WCJ_PDF_Invoicing extends WCJ_Module {
|
|
376 |
// Settings
|
377 |
$invoice_types = wcj_get_invoice_types();
|
378 |
foreach ( $invoice_types as $k => $invoice_type ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
379 |
$settings[] = array(
|
380 |
'title' => $invoice_type['title'],
|
381 |
'id' => 'wcj_invoicing_' . $invoice_type['id'] . '_create_on',
|
@@ -386,6 +382,7 @@ class WCJ_PDF_Invoicing extends WCJ_Module {
|
|
386 |
'desc' => ( 0 === $k ) ? '' : apply_filters( 'booster_get_message', '', 'desc' ),
|
387 |
'custom_attributes' => ( 0 === $k ) ? '' : apply_filters( 'booster_get_message', '', 'disabled' ),
|
388 |
);
|
|
|
389 |
$settings[] = array(
|
390 |
'id' => 'wcj_invoicing_' . $invoice_type['id'] . '_skip_zero_total',
|
391 |
'default' => 'no',
|
@@ -396,16 +393,16 @@ class WCJ_PDF_Invoicing extends WCJ_Module {
|
|
396 |
}
|
397 |
|
398 |
$settings[] = array(
|
399 |
-
'title'
|
400 |
-
'desc'
|
401 |
-
'id'
|
402 |
-
'default'
|
403 |
-
'type'
|
404 |
);
|
405 |
|
406 |
$settings[] = array(
|
407 |
-
'type'
|
408 |
-
'id'
|
409 |
);
|
410 |
|
411 |
return $this->add_standard_settings( $settings );
|
4 |
*
|
5 |
* The WooCommerce Jetpack PDF Invoicing class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
55 |
foreach ( $invoice_types as $invoice_type ) {
|
56 |
$the_hook = get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_create_on', 'woocommerce_new_order' );
|
57 |
if ( 'disabled' != $the_hook && 'manual' != $the_hook && '' != $the_hook ) {
|
58 |
+
add_action( $the_hook, array( $this, 'create_document_hook' ) );
|
59 |
if ( 'woocommerce_new_order' === $the_hook ) {
|
60 |
+
add_action( 'woocommerce_api_create_order', array( $this, 'create_document_hook' ) );
|
61 |
+
add_action( 'woocommerce_cli_create_order', array( $this, 'create_document_hook' ) );
|
62 |
+
add_action( 'kco_before_confirm_order', array( $this, 'create_document_hook' ) );
|
63 |
+
add_action( 'woocommerce_checkout_order_processed', array( $this, 'create_document_hook' ) );
|
64 |
}
|
65 |
}
|
66 |
}
|
244 |
}
|
245 |
|
246 |
/**
|
247 |
+
* create_document_hook.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
*
|
249 |
+
* @version 2.7.0
|
250 |
+
* @since 2.7.0
|
251 |
*/
|
252 |
+
function create_document_hook( $order_id ) {
|
253 |
+
$current_filter = current_filter();
|
254 |
+
if ( in_array( $current_filter, array( 'woocommerce_api_create_order', 'woocommerce_cli_create_order', 'kco_before_confirm_order', 'woocommerce_checkout_order_processed', ) ) ) {
|
255 |
+
$current_filter = 'woocommerce_new_order';
|
256 |
+
}
|
257 |
+
$invoice_types = wcj_get_enabled_invoice_types();
|
258 |
+
foreach ( $invoice_types as $invoice_type ) {
|
259 |
+
$the_hook = get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_create_on', 'woocommerce_new_order' );
|
260 |
+
if ( 'disabled' != $the_hook && 'manual' != $the_hook && '' != $the_hook ) {
|
261 |
+
if ( $current_filter === $the_hook ) {
|
262 |
+
$this->create_document( $order_id, $invoice_type['id'] );
|
263 |
+
}
|
264 |
+
}
|
265 |
+
}
|
266 |
}
|
267 |
|
268 |
/**
|
335 |
/**
|
336 |
* get_settings.
|
337 |
*
|
338 |
+
* @version 2.7.0
|
339 |
*/
|
340 |
function get_settings() {
|
341 |
|
360 |
// Settings
|
361 |
$invoice_types = wcj_get_invoice_types();
|
362 |
foreach ( $invoice_types as $k => $invoice_type ) {
|
363 |
+
|
364 |
+
if ( 'custom_doc' === $invoice_type['id'] ) {
|
365 |
+
$settings[] = array(
|
366 |
+
'title' => __( 'Number of Custom Documents', 'woocommerce-jetpack' ),
|
367 |
+
'desc_tip' => __( 'Save changes after setting this number.', 'woocommerce-jetpack' ),
|
368 |
+
'id' => 'wcj_invoicing_custom_doc_total_number',
|
369 |
+
'default' => 1,
|
370 |
+
'type' => 'custom_number',
|
371 |
+
'custom_attributes' => array( 'min' => '1' ),
|
372 |
+
);
|
373 |
+
}
|
374 |
+
|
375 |
$settings[] = array(
|
376 |
'title' => $invoice_type['title'],
|
377 |
'id' => 'wcj_invoicing_' . $invoice_type['id'] . '_create_on',
|
382 |
'desc' => ( 0 === $k ) ? '' : apply_filters( 'booster_get_message', '', 'desc' ),
|
383 |
'custom_attributes' => ( 0 === $k ) ? '' : apply_filters( 'booster_get_message', '', 'disabled' ),
|
384 |
);
|
385 |
+
|
386 |
$settings[] = array(
|
387 |
'id' => 'wcj_invoicing_' . $invoice_type['id'] . '_skip_zero_total',
|
388 |
'default' => 'no',
|
393 |
}
|
394 |
|
395 |
$settings[] = array(
|
396 |
+
'title' => __( 'Hide Disabled Docs Settings', 'woocommerce-jetpack' ),
|
397 |
+
'desc' => __( 'Hide', 'woocommerce-jetpack' ),
|
398 |
+
'id' => 'wcj_invoicing_hide_disabled_docs_settings',
|
399 |
+
'default' => 'no',
|
400 |
+
'type' => 'checkbox',
|
401 |
);
|
402 |
|
403 |
$settings[] = array(
|
404 |
+
'type' => 'sectionend',
|
405 |
+
'id' => 'wcj_pdf_invoicing_options',
|
406 |
);
|
407 |
|
408 |
return $this->add_standard_settings( $settings );
|
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 |
|
@@ -19,7 +19,7 @@ class WCJ_Price_By_Country extends WCJ_Module {
|
|
19 |
*
|
20 |
* @version 2.6.0
|
21 |
*/
|
22 |
-
|
23 |
|
24 |
$this->id = 'price_by_country';
|
25 |
$this->short_desc = __( 'Prices and Currencies by Country', 'woocommerce-jetpack' );
|
@@ -128,7 +128,7 @@ class WCJ_Price_By_Country extends WCJ_Module {
|
|
128 |
/**
|
129 |
* get_settings.
|
130 |
*
|
131 |
-
* @version 2.
|
132 |
*/
|
133 |
function get_settings() {
|
134 |
|
@@ -180,6 +180,18 @@ class WCJ_Price_By_Country extends WCJ_Module {
|
|
180 |
),
|
181 |
),
|
182 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
array(
|
184 |
'title' => __( 'Revert Currency to Default on Checkout', 'woocommerce-jetpack' ),
|
185 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
4 |
*
|
5 |
* The WooCommerce Jetpack Price by Country class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
19 |
*
|
20 |
* @version 2.6.0
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
|
24 |
$this->id = 'price_by_country';
|
25 |
$this->short_desc = __( 'Prices and Currencies by Country', 'woocommerce-jetpack' );
|
128 |
/**
|
129 |
* get_settings.
|
130 |
*
|
131 |
+
* @version 2.7.0
|
132 |
*/
|
133 |
function get_settings() {
|
134 |
|
180 |
),
|
181 |
),
|
182 |
|
183 |
+
array(
|
184 |
+
'desc' => __( 'Override Scope', 'woocommerce-jetpack' ),
|
185 |
+
'id' => 'wcj_price_by_country_override_scope',
|
186 |
+
'default' => 'all',
|
187 |
+
'type' => 'select',
|
188 |
+
'options' => array(
|
189 |
+
'all' => __( 'All site', 'woocommerce-jetpack' ),
|
190 |
+
// 'cart_and_checkout' => __( 'Cart and checkout only', 'woocommerce-jetpack' ),
|
191 |
+
'checkout' => __( 'Checkout only', 'woocommerce-jetpack' ),
|
192 |
+
),
|
193 |
+
),
|
194 |
+
|
195 |
array(
|
196 |
'title' => __( 'Revert Currency to Default on Checkout', 'woocommerce-jetpack' ),
|
197 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
includes/class-wcj-price-by-user-role.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Price by User Role class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
* @todo Fix "Make Empty Price" option for variable products
|
@@ -19,7 +19,7 @@ class WCJ_Price_By_User_Role extends WCJ_Module {
|
|
19 |
/**
|
20 |
* Constructor.
|
21 |
*
|
22 |
-
* @version 2.
|
23 |
* @since 2.5.0
|
24 |
*/
|
25 |
function __construct() {
|
@@ -39,7 +39,7 @@ class WCJ_Price_By_User_Role extends WCJ_Module {
|
|
39 |
}
|
40 |
if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
|
41 |
if ( 'no' === get_option( 'wcj_price_by_user_role_for_bots_disabled', 'no' ) || ! wcj_is_bot() ) {
|
42 |
-
$this
|
43 |
}
|
44 |
}
|
45 |
add_filter( 'wcj_save_meta_box_value', array( $this, 'save_meta_box_value' ), PHP_INT_MAX, 3 );
|
@@ -110,7 +110,7 @@ class WCJ_Price_By_User_Role extends WCJ_Module {
|
|
110 |
/**
|
111 |
* get_meta_box_options.
|
112 |
*
|
113 |
-
* @version 2.
|
114 |
* @since 2.5.0
|
115 |
*/
|
116 |
function get_meta_box_options() {
|
@@ -121,7 +121,7 @@ class WCJ_Price_By_User_Role extends WCJ_Module {
|
|
121 |
$available_variations = $_product->get_available_variations();
|
122 |
foreach ( $available_variations as $variation ) {
|
123 |
$variation_product = wc_get_product( $variation['variation_id'] );
|
124 |
-
$products[ $variation['variation_id'] ] = ' (' . $variation_product
|
125 |
}
|
126 |
} else {
|
127 |
$products[ $main_product_id ] = '';
|
@@ -142,7 +142,7 @@ class WCJ_Price_By_User_Role extends WCJ_Module {
|
|
142 |
'title' => __( 'Enabled', 'woocommerce-jetpack' ),
|
143 |
),
|
144 |
);
|
145 |
-
if ( 'yes' === get_post_meta( $_product
|
146 |
$visible_roles = get_option( 'wcj_price_by_user_role_per_product_show_roles', '' );
|
147 |
foreach ( $products as $product_id => $desc ) {
|
148 |
foreach ( wcj_get_user_roles() as $role_key => $role_data ) {
|
@@ -195,35 +195,12 @@ class WCJ_Price_By_User_Role extends WCJ_Module {
|
|
195 |
}
|
196 |
|
197 |
/**
|
198 |
-
*
|
199 |
*
|
200 |
-
* @version 2.
|
201 |
* @since 2.5.0
|
202 |
*/
|
203 |
-
function
|
204 |
-
// Prices
|
205 |
-
add_filter( 'woocommerce_get_price', array( $this, 'change_price_by_role' ), PHP_INT_MAX - 200, 2 );
|
206 |
-
add_filter( 'woocommerce_get_sale_price', array( $this, 'change_price_by_role' ), PHP_INT_MAX - 200, 2 );
|
207 |
-
add_filter( 'woocommerce_get_regular_price', array( $this, 'change_price_by_role' ), PHP_INT_MAX - 200, 2 );
|
208 |
-
// Variations
|
209 |
-
add_filter( 'woocommerce_variation_prices_price', array( $this, 'change_price_by_role' ), PHP_INT_MAX - 200, 2 );
|
210 |
-
add_filter( 'woocommerce_variation_prices_regular_price', array( $this, 'change_price_by_role' ), PHP_INT_MAX - 200, 2 );
|
211 |
-
add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'change_price_by_role' ), PHP_INT_MAX - 200, 2 );
|
212 |
-
add_filter( 'woocommerce_get_variation_prices_hash', array( $this, 'get_variation_prices_hash' ), PHP_INT_MAX - 200, 3 );
|
213 |
-
// Shipping
|
214 |
-
add_filter( 'woocommerce_package_rates', array( $this, 'change_price_by_role_shipping' ), PHP_INT_MAX - 200, 2 );
|
215 |
-
// Grouped products
|
216 |
-
add_filter( 'woocommerce_get_price_including_tax', array( $this, 'change_price_by_role_grouped' ), PHP_INT_MAX - 200, 3 );
|
217 |
-
add_filter( 'woocommerce_get_price_excluding_tax', array( $this, 'change_price_by_role_grouped' ), PHP_INT_MAX - 200, 3 );
|
218 |
-
}
|
219 |
-
|
220 |
-
/**
|
221 |
-
* change_price_by_role_shipping.
|
222 |
-
*
|
223 |
-
* @version 2.5.3
|
224 |
-
* @since 2.5.0
|
225 |
-
*/
|
226 |
-
function change_price_by_role_shipping( $package_rates, $package ) {
|
227 |
if ( 'yes' === get_option( 'wcj_price_by_user_role_shipping_enabled', 'no' ) ) {
|
228 |
$current_user_role = wcj_get_current_user_first_role();
|
229 |
$koef = get_option( 'wcj_price_by_user_role_' . $current_user_role, 1 );
|
@@ -245,59 +222,57 @@ class WCJ_Price_By_User_Role extends WCJ_Module {
|
|
245 |
}
|
246 |
|
247 |
/**
|
248 |
-
*
|
249 |
*
|
250 |
-
* @version 2.
|
251 |
* @since 2.5.0
|
252 |
*/
|
253 |
-
function
|
254 |
if ( $_product->is_type( 'grouped' ) ) {
|
255 |
if ( 'yes' === get_option( 'wcj_price_by_user_role_per_product_enabled', 'yes' ) ) {
|
256 |
-
$get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
|
257 |
foreach ( $_product->get_children() as $child_id ) {
|
258 |
$the_price = get_post_meta( $child_id, '_price', true );
|
259 |
$the_product = wc_get_product( $child_id );
|
260 |
-
$the_price = $the_product
|
261 |
if ( $the_price == $price ) {
|
262 |
-
return $this->
|
263 |
}
|
264 |
}
|
265 |
} else {
|
266 |
-
return $this->
|
267 |
}
|
268 |
}
|
269 |
return $price;
|
270 |
}
|
271 |
|
272 |
/**
|
273 |
-
*
|
274 |
*
|
275 |
-
* @version 2.
|
276 |
* @since 2.5.0
|
277 |
*/
|
278 |
-
function
|
279 |
|
280 |
$current_user_role = wcj_get_current_user_first_role();
|
281 |
|
282 |
// Per product
|
283 |
if ( 'yes' === get_option( 'wcj_price_by_user_role_per_product_enabled', 'yes' ) ) {
|
284 |
-
if ( 'yes' === get_post_meta( $_product
|
285 |
-
$the_product_id = (
|
286 |
if ( 'yes' === get_post_meta( $the_product_id, '_' . 'wcj_price_by_user_role_empty_price_' . $current_user_role, true ) ) {
|
287 |
return '';
|
288 |
}
|
289 |
if ( '' != ( $regular_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_price_by_user_role_regular_price_' . $current_user_role, true ) ) ) {
|
290 |
$the_current_filter = current_filter();
|
291 |
if ( 'woocommerce_get_price_including_tax' == $the_current_filter || 'woocommerce_get_price_excluding_tax' == $the_current_filter ) {
|
292 |
-
|
293 |
-
|
294 |
-
} elseif ( 'woocommerce_get_price' == $the_current_filter || 'woocommerce_variation_prices_price' == $the_current_filter ) {
|
295 |
$sale_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_price_by_user_role_sale_price_' . $current_user_role, true );
|
296 |
$return = ( '' != $sale_price_per_product && $sale_price_per_product < $regular_price_per_product ) ? $sale_price_per_product : $regular_price_per_product;
|
297 |
return apply_filters( 'wcj_price_by_user_role_get_price', $return, $_product );
|
298 |
-
} elseif ( '
|
299 |
return $regular_price_per_product;
|
300 |
-
} elseif ( '
|
301 |
$sale_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_price_by_user_role_sale_price_' . $current_user_role, true );
|
302 |
return ( '' != $sale_price_per_product ) ? $sale_price_per_product : $price;
|
303 |
}
|
@@ -336,27 +311,6 @@ class WCJ_Price_By_User_Role extends WCJ_Module {
|
|
336 |
return $price_hash;
|
337 |
}
|
338 |
|
339 |
-
/**
|
340 |
-
* add_settings_hook.
|
341 |
-
*
|
342 |
-
* @version 2.5.0
|
343 |
-
* @since 2.5.0
|
344 |
-
*/
|
345 |
-
function add_settings_hook() {
|
346 |
-
add_filter( 'wcj_price_by_user_role_settings', array( $this, 'add_settings' ) );
|
347 |
-
}
|
348 |
-
|
349 |
-
/**
|
350 |
-
* get_settings.
|
351 |
-
*
|
352 |
-
* @version 2.5.0
|
353 |
-
* @since 2.5.0
|
354 |
-
*/
|
355 |
-
function get_settings() {
|
356 |
-
$settings = apply_filters( 'wcj_price_by_user_role_settings', array() );
|
357 |
-
return $this->add_standard_settings( $settings );
|
358 |
-
}
|
359 |
-
|
360 |
/**
|
361 |
* add_settings.
|
362 |
*
|
4 |
*
|
5 |
* The WooCommerce Jetpack Price by User Role class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
* @todo Fix "Make Empty Price" option for variable products
|
19 |
/**
|
20 |
* Constructor.
|
21 |
*
|
22 |
+
* @version 2.7.0
|
23 |
* @since 2.5.0
|
24 |
*/
|
25 |
function __construct() {
|
39 |
}
|
40 |
if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
|
41 |
if ( 'no' === get_option( 'wcj_price_by_user_role_for_bots_disabled', 'no' ) || ! wcj_is_bot() ) {
|
42 |
+
wcj_add_change_price_hooks( $this, PHP_INT_MAX - 200 );
|
43 |
}
|
44 |
}
|
45 |
add_filter( 'wcj_save_meta_box_value', array( $this, 'save_meta_box_value' ), PHP_INT_MAX, 3 );
|
110 |
/**
|
111 |
* get_meta_box_options.
|
112 |
*
|
113 |
+
* @version 2.7.0
|
114 |
* @since 2.5.0
|
115 |
*/
|
116 |
function get_meta_box_options() {
|
121 |
$available_variations = $_product->get_available_variations();
|
122 |
foreach ( $available_variations as $variation ) {
|
123 |
$variation_product = wc_get_product( $variation['variation_id'] );
|
124 |
+
$products[ $variation['variation_id'] ] = ' (' . wcj_get_product_formatted_variation( $variation_product, true ) . ')';
|
125 |
}
|
126 |
} else {
|
127 |
$products[ $main_product_id ] = '';
|
142 |
'title' => __( 'Enabled', 'woocommerce-jetpack' ),
|
143 |
),
|
144 |
);
|
145 |
+
if ( 'yes' === get_post_meta( wcj_get_product_id( $_product ), '_' . 'wcj_price_by_user_role_per_product_settings_enabled', true ) ) {
|
146 |
$visible_roles = get_option( 'wcj_price_by_user_role_per_product_show_roles', '' );
|
147 |
foreach ( $products as $product_id => $desc ) {
|
148 |
foreach ( wcj_get_user_roles() as $role_key => $role_data ) {
|
195 |
}
|
196 |
|
197 |
/**
|
198 |
+
* change_price_shipping.
|
199 |
*
|
200 |
+
* @version 2.7.0
|
201 |
* @since 2.5.0
|
202 |
*/
|
203 |
+
function change_price_shipping( $package_rates, $package ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
204 |
if ( 'yes' === get_option( 'wcj_price_by_user_role_shipping_enabled', 'no' ) ) {
|
205 |
$current_user_role = wcj_get_current_user_first_role();
|
206 |
$koef = get_option( 'wcj_price_by_user_role_' . $current_user_role, 1 );
|
222 |
}
|
223 |
|
224 |
/**
|
225 |
+
* change_price_grouped.
|
226 |
*
|
227 |
+
* @version 2.7.0
|
228 |
* @since 2.5.0
|
229 |
*/
|
230 |
+
function change_price_grouped( $price, $qty, $_product ) {
|
231 |
if ( $_product->is_type( 'grouped' ) ) {
|
232 |
if ( 'yes' === get_option( 'wcj_price_by_user_role_per_product_enabled', 'yes' ) ) {
|
|
|
233 |
foreach ( $_product->get_children() as $child_id ) {
|
234 |
$the_price = get_post_meta( $child_id, '_price', true );
|
235 |
$the_product = wc_get_product( $child_id );
|
236 |
+
$the_price = wcj_get_product_display_price( $the_product, $the_price, 1 );
|
237 |
if ( $the_price == $price ) {
|
238 |
+
return $this->change_price( $price, $the_product );
|
239 |
}
|
240 |
}
|
241 |
} else {
|
242 |
+
return $this->change_price( $price, null );
|
243 |
}
|
244 |
}
|
245 |
return $price;
|
246 |
}
|
247 |
|
248 |
/**
|
249 |
+
* change_price.
|
250 |
*
|
251 |
+
* @version 2.7.0
|
252 |
* @since 2.5.0
|
253 |
*/
|
254 |
+
function change_price( $price, $_product ) {
|
255 |
|
256 |
$current_user_role = wcj_get_current_user_first_role();
|
257 |
|
258 |
// Per product
|
259 |
if ( 'yes' === get_option( 'wcj_price_by_user_role_per_product_enabled', 'yes' ) ) {
|
260 |
+
if ( 'yes' === get_post_meta( wcj_get_product_id_or_variation_parent_id( $_product ), '_' . 'wcj_price_by_user_role_per_product_settings_enabled', true ) ) {
|
261 |
+
$the_product_id = wcj_get_product_id( $_product );
|
262 |
if ( 'yes' === get_post_meta( $the_product_id, '_' . 'wcj_price_by_user_role_empty_price_' . $current_user_role, true ) ) {
|
263 |
return '';
|
264 |
}
|
265 |
if ( '' != ( $regular_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_price_by_user_role_regular_price_' . $current_user_role, true ) ) ) {
|
266 |
$the_current_filter = current_filter();
|
267 |
if ( 'woocommerce_get_price_including_tax' == $the_current_filter || 'woocommerce_get_price_excluding_tax' == $the_current_filter ) {
|
268 |
+
return wcj_get_product_display_price( $_product );
|
269 |
+
} elseif ( WCJ_PRODUCT_GET_PRICE_FILTER == $the_current_filter || 'woocommerce_variation_prices_price' == $the_current_filter || 'woocommerce_product_variation_get_price' == $the_current_filter ) {
|
|
|
270 |
$sale_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_price_by_user_role_sale_price_' . $current_user_role, true );
|
271 |
$return = ( '' != $sale_price_per_product && $sale_price_per_product < $regular_price_per_product ) ? $sale_price_per_product : $regular_price_per_product;
|
272 |
return apply_filters( 'wcj_price_by_user_role_get_price', $return, $_product );
|
273 |
+
} elseif ( WCJ_PRODUCT_GET_REGULAR_PRICE_FILTER == $the_current_filter || 'woocommerce_variation_prices_regular_price' == $the_current_filter || 'woocommerce_product_variation_get_regular_price' == $the_current_filter ) {
|
274 |
return $regular_price_per_product;
|
275 |
+
} elseif ( WCJ_PRODUCT_GET_SALE_PRICE_FILTER == $the_current_filter || 'woocommerce_variation_prices_sale_price' == $the_current_filter || 'woocommerce_product_variation_get_sale_price' == $the_current_filter ) {
|
276 |
$sale_price_per_product = get_post_meta( $the_product_id, '_' . 'wcj_price_by_user_role_sale_price_' . $current_user_role, true );
|
277 |
return ( '' != $sale_price_per_product ) ? $sale_price_per_product : $price;
|
278 |
}
|
311 |
return $price_hash;
|
312 |
}
|
313 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
314 |
/**
|
315 |
* add_settings.
|
316 |
*
|
includes/class-wcj-price-formats.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Price Formats class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.2
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -88,27 +88,6 @@ class WCJ_Price_Formats extends WCJ_Module {
|
|
88 |
return apply_filters( 'woocommerce_price_format', $format, $currency_pos );
|
89 |
}
|
90 |
|
91 |
-
/**
|
92 |
-
* add_settings_hook.
|
93 |
-
*
|
94 |
-
* @version 2.5.2
|
95 |
-
* @since 2.5.2
|
96 |
-
*/
|
97 |
-
function add_settings_hook() {
|
98 |
-
add_filter( 'wcj_price_formats_settings', array( $this, 'add_settings' ) );
|
99 |
-
}
|
100 |
-
|
101 |
-
/**
|
102 |
-
* get_settings.
|
103 |
-
*
|
104 |
-
* @version 2.5.2
|
105 |
-
* @since 2.5.2
|
106 |
-
*/
|
107 |
-
function get_settings() {
|
108 |
-
$settings = apply_filters( 'wcj_price_formats_settings', array() );
|
109 |
-
return $this->add_standard_settings( $settings );
|
110 |
-
}
|
111 |
-
|
112 |
/**
|
113 |
* add_settings.
|
114 |
*
|
4 |
*
|
5 |
* The WooCommerce Jetpack Price Formats class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.2
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
88 |
return apply_filters( 'woocommerce_price_format', $format, $currency_pos );
|
89 |
}
|
90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
/**
|
92 |
* add_settings.
|
93 |
*
|
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,9 +17,9 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
-
|
23 |
|
24 |
$this->id = 'price_labels';
|
25 |
$this->short_desc = __( 'Custom Price Labels', 'woocommerce-jetpack' );
|
@@ -27,15 +27,6 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
27 |
$this->link = 'http://booster.io/features/woocommerce-custom-price-labels/';
|
28 |
parent::__construct();
|
29 |
|
30 |
-
$this->add_tools( array(
|
31 |
-
'migrate_from_custom_price_labels' => array(
|
32 |
-
'title' => __( 'Migrate from Custom Price Labels (Pro)', 'woocommerce-jetpack' ),
|
33 |
-
'desc' => __( 'Tool lets you copy all the data (that is labels) from Custom Price labels (Pro) plugin to Booster.', 'woocommerce-jetpack' ),
|
34 |
-
// 'tab_title' => __( 'Migrate from Custom Price Labels (Pro)', 'woocommerce-jetpack' ),
|
35 |
-
'deprecated' => true,
|
36 |
-
),
|
37 |
-
), array( 'tools_dashboard_hook_priority' => PHP_INT_MAX ) );
|
38 |
-
|
39 |
// Custom Price Labels - fields array
|
40 |
$this->custom_tab_group_name = 'wcj_price_labels';// for compatibility with Custom Price Label Pro plugin should use 'simple_is_custom_pricing_label'
|
41 |
$this->custom_tab_sections = array( '_instead', '_before', '_between', '_after', );
|
@@ -105,133 +96,16 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
105 |
'woocommerce_subscriptions_product_price_string',
|
106 |
'woocommerce_variable_subscription_price_html',
|
107 |
);
|
108 |
-
foreach ( $this->prices_filters as $the_filter )
|
109 |
add_filter( $the_filter, array( $this, 'custom_price' ), 100, 2 );
|
|
|
110 |
}
|
111 |
}
|
112 |
|
113 |
-
/**
|
114 |
-
* get_migration_new_meta_name.
|
115 |
-
*/
|
116 |
-
/* public function get_migration_new_meta_name( $old_meta_name ) {
|
117 |
-
$new_meta_name = str_replace( 'simple_is_custom_pricing_label', 'wcj_price_labels', $old_meta_name );
|
118 |
-
return $new_meta_name;
|
119 |
-
} */
|
120 |
-
|
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 |
-
|
128 |
-
echo '<h2>' . __( 'Booster - Migrate from Custom Price Labels (Pro)', 'woocommerce-jetpack' ) . '</h2>';
|
129 |
-
|
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 ) {
|
171 |
-
$old_meta_value = get_post_meta( $the_product_id, $old_meta_name, true );
|
172 |
-
if ( '' != $old_meta_value ) {
|
173 |
-
// Found Old (Custom Price Labels Plugin) meta to migrate from
|
174 |
-
$new_meta_value = get_post_meta( $the_product_id, $new_meta_name, true );
|
175 |
-
if ( $new_meta_value !== $old_meta_value ) {
|
176 |
-
// Found Old (Custom Price Labels Plugin) meta to migrate to
|
177 |
-
if ( true === $migrate ) {
|
178 |
-
// Migrating
|
179 |
-
$html .= '<li>' . __( 'Migrating (product ID ', 'woocommerce-jetpack' ) . $the_product_id . '): ' . $old_meta_name . '[' . $old_meta_value . ']' . ' -> ' . $new_meta_name . '[' . $new_meta_value . ']. ';// . '</li>';
|
180 |
-
$html .= __( 'Result: ', 'woocommerce-jetpack' ) . update_post_meta( $the_product_id, $new_meta_name, $old_meta_value );
|
181 |
-
$html .= '</li>';
|
182 |
-
|
183 |
-
//wp_update_post( array( 'ID' => $the_product_id ) );
|
184 |
-
|
185 |
-
// Fill all data with defaults
|
186 |
-
foreach ( $this->custom_tab_sections as $custom_tab_section ) {
|
187 |
-
foreach ( $this->custom_tab_section_variations as $custom_tab_section_variation ) {
|
188 |
-
$option_name = $this->custom_tab_group_name . $custom_tab_section . $custom_tab_section_variation;
|
189 |
-
if ( '' == get_post_meta( $the_product_id, '_' . $option_name, true ) ) {
|
190 |
-
if ( '_text' === $custom_tab_section_variation )
|
191 |
-
update_post_meta( $the_product_id, '_' . $option_name, '' );
|
192 |
-
else
|
193 |
-
update_post_meta( $the_product_id, '_' . $option_name, 'off' );
|
194 |
-
|
195 |
-
//$html .= '<li>' . __( 'Setting defaults for: ', 'woocommerce-jetpack' ) . '_' . $option_name . '</li>';
|
196 |
-
}
|
197 |
-
}
|
198 |
-
}
|
199 |
-
}
|
200 |
-
else {
|
201 |
-
// Info only
|
202 |
-
$html .= '<li>' . __( 'Found data to migrate (product ID ', 'woocommerce-jetpack' ) . $the_product_id . '): ' . $old_meta_name . '[' . $old_meta_value . ']' . ' -> ' . $new_meta_name . '[' . $new_meta_value . ']' . '</li>';
|
203 |
-
}
|
204 |
-
/*if ( true === $do_delete_old ) {
|
205 |
-
// Delete Old (Custom Price Labels Plugin) meta
|
206 |
-
$html .= '<li>' . __( 'Deleting: ', 'woocommerce-jetpack' ) . $old_meta_name . '[' . $old_meta_value . ']. ';// . '</li>';
|
207 |
-
$html .= __( ' Result: ', 'woocommerce-jetpack' ) . delete_post_meta( $the_product_id, $old_meta_name, $old_meta_value );
|
208 |
-
$html .= '</li>';
|
209 |
-
}*/
|
210 |
-
}
|
211 |
-
//wp_update_post( array( 'ID' => $the_product_id ) );
|
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="">';
|
224 |
-
$form_html .= '<p>' . __( 'Press button below to copy all labels from Custom Price Labels (Pro) plugin. Old labels will NOT be deleted. New labels will be overwritten.', 'woocommerce-jetpack' ) . '</p>';
|
225 |
-
$form_html .= '<p><input type="submit" class="button-primary" name="migrate" value="' . __( 'Migrate data', 'woocommerce-jetpack' ) . '" /></p>';
|
226 |
-
$form_html .= '</form>';
|
227 |
-
|
228 |
-
echo $form_html . $html;
|
229 |
-
}
|
230 |
-
|
231 |
/**
|
232 |
* save_custom_price_labels.
|
233 |
*/
|
234 |
-
|
235 |
|
236 |
// $product = get_product( $post );TODO - do I need it?
|
237 |
|
@@ -265,7 +139,7 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
265 |
*
|
266 |
* @version 2.4.8
|
267 |
*/
|
268 |
-
|
269 |
add_meta_box(
|
270 |
'wc-jetpack-price-labels',
|
271 |
__( 'Booster: Custom Price Labels', 'woocommerce-jetpack' ),
|
@@ -281,7 +155,7 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
281 |
*
|
282 |
* @version 2.4.8
|
283 |
*/
|
284 |
-
|
285 |
|
286 |
$current_post_id = get_the_ID();
|
287 |
echo '<table style="width:100%;">';
|
@@ -376,7 +250,7 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
376 |
/*
|
377 |
* customize_price
|
378 |
*/
|
379 |
-
|
380 |
|
381 |
switch ( $custom_tab_section ) {
|
382 |
|
@@ -403,9 +277,9 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
403 |
/*
|
404 |
* custom_price - front end.
|
405 |
*
|
406 |
-
* @version 2.
|
407 |
*/
|
408 |
-
|
409 |
|
410 |
if ( ! wcj_is_frontend() ) return $price;
|
411 |
|
@@ -415,31 +289,38 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
415 |
$product = $product['data'];
|
416 |
}
|
417 |
|
418 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
419 |
return $price;
|
420 |
}
|
421 |
|
422 |
-
if ( 'subscription' === $
|
423 |
return $price;
|
424 |
}
|
425 |
|
426 |
-
if ( 'variable-subscription' === $
|
427 |
return $price;
|
428 |
}
|
429 |
|
430 |
-
if ( 'subscription_variation' === $
|
431 |
return $price;
|
432 |
}
|
433 |
-
if ( 'subscription_variation' === $
|
434 |
$current_filter_name = 'woocommerce_variation_subscription_price_html';
|
435 |
}
|
436 |
|
437 |
$do_apply_global = true;
|
438 |
$products_incl = get_option( 'wcj_global_price_labels_products_incl', array() );
|
439 |
-
if ( ! empty( $products_incl ) ) $do_apply_global = ( in_array( $
|
440 |
$products_excl = get_option( 'wcj_global_price_labels_products_excl', array() );
|
441 |
-
if ( ! empty( $products_excl ) ) $do_apply_global = ( in_array( $
|
442 |
-
$product_categories = get_the_terms( $
|
443 |
$product_categories_incl = get_option( 'wcj_global_price_labels_product_cats_incl', array() );
|
444 |
if ( ! empty( $product_categories_incl ) ) {
|
445 |
$do_apply_global = false;
|
@@ -507,6 +388,10 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
507 |
$text_to_replace_with = apply_filters( 'booster_get_option', '', get_option( 'wcj_global_price_labels_replace_with_text' ) );
|
508 |
if ( '' != $text_to_replace && '' != $text_to_replace_with )
|
509 |
$price = str_replace( $text_to_replace, $text_to_replace_with, $price );
|
|
|
|
|
|
|
|
|
510 |
}
|
511 |
|
512 |
// Per product
|
@@ -520,7 +405,7 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
520 |
|
521 |
//$option_name = $this->custom_tab_group_name;
|
522 |
$option_name = $this->custom_tab_group_name . $custom_tab_section . $custom_tab_section_variation;
|
523 |
-
$labels_array[ 'variation' . $custom_tab_section_variation ] = get_post_meta( $
|
524 |
|
525 |
/* if ( $custom_tab_section_variation == '_text' ) {
|
526 |
|
@@ -580,9 +465,9 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
580 |
}
|
581 |
}
|
582 |
|
583 |
-
// return do_shortcode( $price . $current_filter_name . $product->product_type . $labels_array['variation_variable'] . $labels_array['variation_variation'] );
|
584 |
global $wcj_product_id_for_shortcode;
|
585 |
-
$wcj_product_id_for_shortcode = (
|
586 |
$result = do_shortcode( $price );
|
587 |
$wcj_product_id_for_shortcode = 0;
|
588 |
return $result;
|
@@ -612,7 +497,7 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
612 |
/*
|
613 |
* add_settings.
|
614 |
*
|
615 |
-
* @version 2.
|
616 |
* @since 2.3.7
|
617 |
*/
|
618 |
function add_settings() {
|
@@ -637,7 +522,7 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
637 |
'desc_tip' => __( 'Enter text to add before all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
|
638 |
'id' => 'wcj_global_price_labels_add_before_text',
|
639 |
'default' => '',
|
640 |
-
'type' => '
|
641 |
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
642 |
'custom_attributes' => apply_filters( 'booster_get_message', '', 'readonly' ),
|
643 |
'css' => 'width:30%;min-width:300px;',
|
@@ -647,7 +532,7 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
647 |
'desc_tip' => __( 'Enter text to add after all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
|
648 |
'id' => 'wcj_global_price_labels_add_after_text',
|
649 |
'default' => '',
|
650 |
-
'type' => '
|
651 |
'css' => 'width:30%;min-width:300px;',
|
652 |
),
|
653 |
array(
|
@@ -655,7 +540,7 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
655 |
'desc_tip' => __( 'Enter text to add between regular and sale prices. Leave blank to disable.', 'woocommerce-jetpack' ),
|
656 |
'id' => 'wcj_global_price_labels_between_regular_and_sale_text',
|
657 |
'default' => '',
|
658 |
-
'type' => '
|
659 |
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
660 |
'custom_attributes' => apply_filters( 'booster_get_message', '', 'readonly' ),
|
661 |
'css' => 'width:30%;min-width:300px;',
|
@@ -666,7 +551,7 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
666 |
'desc_tip' => __( 'Enter text to remove from all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
|
667 |
'id' => 'wcj_global_price_labels_remove_text',
|
668 |
'default' => '',
|
669 |
-
'type' => '
|
670 |
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
671 |
'custom_attributes' => apply_filters( 'booster_get_message', '', 'readonly' ),
|
672 |
'css' => 'width:30%;min-width:300px;',
|
@@ -676,7 +561,7 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
676 |
'desc_tip' => __( 'Enter text to replace in all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
|
677 |
'id' => 'wcj_global_price_labels_replace_text',
|
678 |
'default' => '',
|
679 |
-
'type' => '
|
680 |
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
681 |
'custom_attributes'
|
682 |
=> apply_filters( 'booster_get_message', '', 'readonly' ),
|
@@ -687,11 +572,19 @@ class WCJ_Price_Labels extends WCJ_Module {
|
|
687 |
'desc_tip' => __( 'Enter text to replace with. Leave blank to disable.', 'woocommerce-jetpack' ),
|
688 |
'id' => 'wcj_global_price_labels_replace_with_text',
|
689 |
'default' => '',
|
690 |
-
'type' => '
|
691 |
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
692 |
'custom_attributes' => apply_filters( 'booster_get_message', '', 'readonly' ),
|
693 |
'css' => 'width:30%;min-width:300px;',
|
694 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
695 |
array(
|
696 |
'title' => __( 'Products - Include', 'woocommerce-jetpack' ),
|
697 |
'desc_tip' => __( 'Apply global price labels only for selected products. Leave blank to disable the option.', 'woocommerce-jetpack' ),
|
4 |
*
|
5 |
* The WooCommerce Jetpack Price Labels class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
|
24 |
$this->id = 'price_labels';
|
25 |
$this->short_desc = __( 'Custom Price Labels', 'woocommerce-jetpack' );
|
27 |
$this->link = 'http://booster.io/features/woocommerce-custom-price-labels/';
|
28 |
parent::__construct();
|
29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
// Custom Price Labels - fields array
|
31 |
$this->custom_tab_group_name = 'wcj_price_labels';// for compatibility with Custom Price Label Pro plugin should use 'simple_is_custom_pricing_label'
|
32 |
$this->custom_tab_sections = array( '_instead', '_before', '_between', '_after', );
|
96 |
'woocommerce_subscriptions_product_price_string',
|
97 |
'woocommerce_variable_subscription_price_html',
|
98 |
);
|
99 |
+
foreach ( $this->prices_filters as $the_filter ) {
|
100 |
add_filter( $the_filter, array( $this, 'custom_price' ), 100, 2 );
|
101 |
+
}
|
102 |
}
|
103 |
}
|
104 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
/**
|
106 |
* save_custom_price_labels.
|
107 |
*/
|
108 |
+
function save_custom_price_labels( $post_id, $post ) {
|
109 |
|
110 |
// $product = get_product( $post );TODO - do I need it?
|
111 |
|
139 |
*
|
140 |
* @version 2.4.8
|
141 |
*/
|
142 |
+
function add_price_label_meta_box() {
|
143 |
add_meta_box(
|
144 |
'wc-jetpack-price-labels',
|
145 |
__( 'Booster: Custom Price Labels', 'woocommerce-jetpack' ),
|
155 |
*
|
156 |
* @version 2.4.8
|
157 |
*/
|
158 |
+
function create_price_label_meta_box() {
|
159 |
|
160 |
$current_post_id = get_the_ID();
|
161 |
echo '<table style="width:100%;">';
|
250 |
/*
|
251 |
* customize_price
|
252 |
*/
|
253 |
+
function customize_price( $price, $custom_tab_section, $custom_label ) {
|
254 |
|
255 |
switch ( $custom_tab_section ) {
|
256 |
|
277 |
/*
|
278 |
* custom_price - front end.
|
279 |
*
|
280 |
+
* @version 2.7.0
|
281 |
*/
|
282 |
+
function custom_price( $price, $product ) {
|
283 |
|
284 |
if ( ! wcj_is_frontend() ) return $price;
|
285 |
|
289 |
$product = $product['data'];
|
290 |
}
|
291 |
|
292 |
+
$_product_id = wcj_get_product_id_or_variation_parent_id( $product );
|
293 |
+
$_product_type = ( WCJ_IS_WC_VERSION_BELOW_3 ? $product->product_type : $product->get_type() );
|
294 |
+
|
295 |
+
if ( WCJ_IS_WC_VERSION_BELOW_3 && 'woocommerce_get_price_html' === $current_filter_name && ! in_array( $_product_type, apply_filters( 'wcj_price_labels_woocommerce_get_price_html_allowed_post_types', array( 'booking' ), $_product_type ) ) ) {
|
296 |
+
return $price;
|
297 |
+
}
|
298 |
+
|
299 |
+
if ( ! WCJ_IS_WC_VERSION_BELOW_3 && 'woocommerce_variable_price_html' === $current_filter_name ) {
|
300 |
return $price;
|
301 |
}
|
302 |
|
303 |
+
if ( 'subscription' === $_product_type && 'woocommerce_subscriptions_product_price_string' !== $current_filter_name ) {
|
304 |
return $price;
|
305 |
}
|
306 |
|
307 |
+
if ( 'variable-subscription' === $_product_type && 'woocommerce_variable_subscription_price_html' !== $current_filter_name ) {
|
308 |
return $price;
|
309 |
}
|
310 |
|
311 |
+
if ( 'subscription_variation' === $_product_type && 'woocommerce_subscriptions_product_price_string' !== $current_filter_name ) {
|
312 |
return $price;
|
313 |
}
|
314 |
+
if ( 'subscription_variation' === $_product_type && 'woocommerce_subscriptions_product_price_string' === $current_filter_name ) {
|
315 |
$current_filter_name = 'woocommerce_variation_subscription_price_html';
|
316 |
}
|
317 |
|
318 |
$do_apply_global = true;
|
319 |
$products_incl = get_option( 'wcj_global_price_labels_products_incl', array() );
|
320 |
+
if ( ! empty( $products_incl ) ) $do_apply_global = ( in_array( $_product_id, $products_incl ) ) ? true : false;
|
321 |
$products_excl = get_option( 'wcj_global_price_labels_products_excl', array() );
|
322 |
+
if ( ! empty( $products_excl ) ) $do_apply_global = ( in_array( $_product_id, $products_excl ) ) ? false : true;
|
323 |
+
$product_categories = get_the_terms( $_product_id, 'product_cat' );
|
324 |
$product_categories_incl = get_option( 'wcj_global_price_labels_product_cats_incl', array() );
|
325 |
if ( ! empty( $product_categories_incl ) ) {
|
326 |
$do_apply_global = false;
|
388 |
$text_to_replace_with = apply_filters( 'booster_get_option', '', get_option( 'wcj_global_price_labels_replace_with_text' ) );
|
389 |
if ( '' != $text_to_replace && '' != $text_to_replace_with )
|
390 |
$price = str_replace( $text_to_replace, $text_to_replace_with, $price );
|
391 |
+
// Global price labels - Instead of the price
|
392 |
+
if ( '' != ( $text_instead = get_option( 'wcj_global_price_labels_instead_text', '' ) ) ) {
|
393 |
+
$price = $text_instead;
|
394 |
+
}
|
395 |
}
|
396 |
|
397 |
// Per product
|
405 |
|
406 |
//$option_name = $this->custom_tab_group_name;
|
407 |
$option_name = $this->custom_tab_group_name . $custom_tab_section . $custom_tab_section_variation;
|
408 |
+
$labels_array[ 'variation' . $custom_tab_section_variation ] = get_post_meta( $_product_id, '_' . $option_name, true );
|
409 |
|
410 |
/* if ( $custom_tab_section_variation == '_text' ) {
|
411 |
|
465 |
}
|
466 |
}
|
467 |
|
468 |
+
// return do_shortcode( $price . $current_filter_name . ( WCJ_IS_WC_VERSION_BELOW_3 ? $product->product_type : $product->get_type() ) . $labels_array['variation_variable'] . $labels_array['variation_variation'] );
|
469 |
global $wcj_product_id_for_shortcode;
|
470 |
+
$wcj_product_id_for_shortcode = wcj_get_product_id( $product );
|
471 |
$result = do_shortcode( $price );
|
472 |
$wcj_product_id_for_shortcode = 0;
|
473 |
return $result;
|
497 |
/*
|
498 |
* add_settings.
|
499 |
*
|
500 |
+
* @version 2.7.0
|
501 |
* @since 2.3.7
|
502 |
*/
|
503 |
function add_settings() {
|
522 |
'desc_tip' => __( 'Enter text to add before all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
|
523 |
'id' => 'wcj_global_price_labels_add_before_text',
|
524 |
'default' => '',
|
525 |
+
'type' => 'custom_textarea',
|
526 |
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
527 |
'custom_attributes' => apply_filters( 'booster_get_message', '', 'readonly' ),
|
528 |
'css' => 'width:30%;min-width:300px;',
|
532 |
'desc_tip' => __( 'Enter text to add after all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
|
533 |
'id' => 'wcj_global_price_labels_add_after_text',
|
534 |
'default' => '',
|
535 |
+
'type' => 'custom_textarea',
|
536 |
'css' => 'width:30%;min-width:300px;',
|
537 |
),
|
538 |
array(
|
540 |
'desc_tip' => __( 'Enter text to add between regular and sale prices. Leave blank to disable.', 'woocommerce-jetpack' ),
|
541 |
'id' => 'wcj_global_price_labels_between_regular_and_sale_text',
|
542 |
'default' => '',
|
543 |
+
'type' => 'custom_textarea',
|
544 |
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
545 |
'custom_attributes' => apply_filters( 'booster_get_message', '', 'readonly' ),
|
546 |
'css' => 'width:30%;min-width:300px;',
|
551 |
'desc_tip' => __( 'Enter text to remove from all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
|
552 |
'id' => 'wcj_global_price_labels_remove_text',
|
553 |
'default' => '',
|
554 |
+
'type' => 'custom_textarea',
|
555 |
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
556 |
'custom_attributes' => apply_filters( 'booster_get_message', '', 'readonly' ),
|
557 |
'css' => 'width:30%;min-width:300px;',
|
561 |
'desc_tip' => __( 'Enter text to replace in all products prices. Leave blank to disable.', 'woocommerce-jetpack' ),
|
562 |
'id' => 'wcj_global_price_labels_replace_text',
|
563 |
'default' => '',
|
564 |
+
'type' => 'custom_textarea',
|
565 |
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
566 |
'custom_attributes'
|
567 |
=> apply_filters( 'booster_get_message', '', 'readonly' ),
|
572 |
'desc_tip' => __( 'Enter text to replace with. Leave blank to disable.', 'woocommerce-jetpack' ),
|
573 |
'id' => 'wcj_global_price_labels_replace_with_text',
|
574 |
'default' => '',
|
575 |
+
'type' => 'custom_textarea',
|
576 |
'desc' => apply_filters( 'booster_get_message', '', 'desc' ),
|
577 |
'custom_attributes' => apply_filters( 'booster_get_message', '', 'readonly' ),
|
578 |
'css' => 'width:30%;min-width:300px;',
|
579 |
),
|
580 |
+
array(
|
581 |
+
'title' => __( 'Instead of the price', 'woocommerce-jetpack' ),
|
582 |
+
'desc_tip' => __( 'Enter text to display instead of the price. Leave blank to disable.', 'woocommerce-jetpack' ),
|
583 |
+
'id' => 'wcj_global_price_labels_instead_text',
|
584 |
+
'default' => '',
|
585 |
+
'type' => 'custom_textarea',
|
586 |
+
'css' => 'width:30%;min-width:300px;',
|
587 |
+
),
|
588 |
array(
|
589 |
'title' => __( 'Products - Include', 'woocommerce-jetpack' ),
|
590 |
'desc_tip' => __( 'Apply global price labels only for selected products. Leave blank to disable the option.', 'woocommerce-jetpack' ),
|
includes/class-wcj-product-add-to-cart.php
CHANGED
@@ -20,7 +20,7 @@ class WCJ_Product_Add_To_Cart extends WCJ_Module {
|
|
20 |
*
|
21 |
* @version 2.6.0
|
22 |
*/
|
23 |
-
|
24 |
|
25 |
$this->id = 'product_add_to_cart';
|
26 |
$this->short_desc = __( 'Product Add to Cart', 'woocommerce-jetpack' );
|
@@ -339,6 +339,7 @@ class WCJ_Product_Add_To_Cart extends WCJ_Module {
|
|
339 |
*
|
340 |
* @version 2.5.2
|
341 |
* @since 2.5.2
|
|
|
342 |
*/
|
343 |
function enqueue_disable_quantity_add_to_cart_script() {
|
344 |
if (
|
@@ -364,6 +365,7 @@ class WCJ_Product_Add_To_Cart extends WCJ_Module {
|
|
364 |
*
|
365 |
* @version 2.4.8
|
366 |
* @since 2.4.8
|
|
|
367 |
*/
|
368 |
function change_variable_add_to_cart_template( $located, $template_name, $args, $template_path, $default_path ) {
|
369 |
if ( 'single-product/add-to-cart/variable.php' == $template_name ) {
|
@@ -371,6 +373,7 @@ class WCJ_Product_Add_To_Cart extends WCJ_Module {
|
|
371 |
}
|
372 |
return $located;
|
373 |
}
|
|
|
374 |
/*
|
375 |
* redirect_to_url.
|
376 |
*/
|
@@ -386,7 +389,7 @@ class WCJ_Product_Add_To_Cart extends WCJ_Module {
|
|
386 |
/*
|
387 |
* Add item to cart on visit.
|
388 |
*
|
389 |
-
* @version 2.
|
390 |
*/
|
391 |
function add_to_cart_on_visit() {
|
392 |
if ( ! is_admin() && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) && is_product() && ( $product_id = get_the_ID() ) ) {
|
@@ -401,7 +404,7 @@ class WCJ_Product_Add_To_Cart extends WCJ_Module {
|
|
401 |
if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
|
402 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
|
403 |
$_product = $values['data'];
|
404 |
-
if ( $_product
|
405 |
// Product found - do not add it
|
406 |
return;
|
407 |
}
|
@@ -419,7 +422,7 @@ class WCJ_Product_Add_To_Cart extends WCJ_Module {
|
|
419 |
/**
|
420 |
* get_settings.
|
421 |
*
|
422 |
-
* @version 2.
|
423 |
*/
|
424 |
function get_settings() {
|
425 |
$settings = array(
|
@@ -439,7 +442,11 @@ class WCJ_Product_Add_To_Cart extends WCJ_Module {
|
|
439 |
array(
|
440 |
'title' => __( 'Local Redirect URL', 'woocommerce-jetpack' ),
|
441 |
'desc_tip' => __( 'Performs a safe (local) redirect, using wp_redirect().', 'woocommerce-jetpack' ),
|
442 |
-
'desc' => __( 'Local redirect URL. Leave empty to redirect to checkout.', 'woocommerce-jetpack' )
|
|
|
|
|
|
|
|
|
443 |
'id' => 'wcj_add_to_cart_redirect_url',
|
444 |
'default' => '',
|
445 |
'type' => 'text',
|
@@ -463,8 +470,8 @@ class WCJ_Product_Add_To_Cart extends WCJ_Module {
|
|
463 |
'type' => 'select',
|
464 |
'options' => array(
|
465 |
'no' => __( 'Disabled', 'woocommerce-jetpack' ),
|
466 |
-
'yes' => __( 'All
|
467 |
-
'per_product' => __( 'Per
|
468 |
),
|
469 |
),
|
470 |
array(
|
20 |
*
|
21 |
* @version 2.6.0
|
22 |
*/
|
23 |
+
function __construct() {
|
24 |
|
25 |
$this->id = 'product_add_to_cart';
|
26 |
$this->short_desc = __( 'Product Add to Cart', 'woocommerce-jetpack' );
|
339 |
*
|
340 |
* @version 2.5.2
|
341 |
* @since 2.5.2
|
342 |
+
* @todo add "hide" (not just disable) option
|
343 |
*/
|
344 |
function enqueue_disable_quantity_add_to_cart_script() {
|
345 |
if (
|
365 |
*
|
366 |
* @version 2.4.8
|
367 |
* @since 2.4.8
|
368 |
+
* @todo fix - variations images to changing (maybe check Crowdfunding plugin)
|
369 |
*/
|
370 |
function change_variable_add_to_cart_template( $located, $template_name, $args, $template_path, $default_path ) {
|
371 |
if ( 'single-product/add-to-cart/variable.php' == $template_name ) {
|
373 |
}
|
374 |
return $located;
|
375 |
}
|
376 |
+
|
377 |
/*
|
378 |
* redirect_to_url.
|
379 |
*/
|
389 |
/*
|
390 |
* Add item to cart on visit.
|
391 |
*
|
392 |
+
* @version 2.7.0
|
393 |
*/
|
394 |
function add_to_cart_on_visit() {
|
395 |
if ( ! is_admin() && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) && is_product() && ( $product_id = get_the_ID() ) ) {
|
404 |
if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
|
405 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
|
406 |
$_product = $values['data'];
|
407 |
+
if ( wcj_get_product_id_or_variation_parent_id( $_product ) == $product_id ) {
|
408 |
// Product found - do not add it
|
409 |
return;
|
410 |
}
|
422 |
/**
|
423 |
* get_settings.
|
424 |
*
|
425 |
+
* @version 2.7.0
|
426 |
*/
|
427 |
function get_settings() {
|
428 |
$settings = array(
|
442 |
array(
|
443 |
'title' => __( 'Local Redirect URL', 'woocommerce-jetpack' ),
|
444 |
'desc_tip' => __( 'Performs a safe (local) redirect, using wp_redirect().', 'woocommerce-jetpack' ),
|
445 |
+
'desc' => __( 'Local redirect URL. Leave empty to redirect to checkout.', 'woocommerce-jetpack' ) .
|
446 |
+
' ' . sprintf(
|
447 |
+
__( 'For archives - "Enable AJAX add to cart buttons on archives" checkbox in <a href="%s">WooCommerce > Settings > Products > Display</a> must be disabled.', 'woocommerce-jetpack' ),
|
448 |
+
admin_url( 'admin.php?page=wc-settings&tab=products§ion=display' )
|
449 |
+
),
|
450 |
'id' => 'wcj_add_to_cart_redirect_url',
|
451 |
'default' => '',
|
452 |
'type' => 'text',
|
470 |
'type' => 'select',
|
471 |
'options' => array(
|
472 |
'no' => __( 'Disabled', 'woocommerce-jetpack' ),
|
473 |
+
'yes' => __( 'All products', 'woocommerce-jetpack' ),
|
474 |
+
'per_product' => __( 'Per product', 'woocommerce-jetpack' ),
|
475 |
),
|
476 |
),
|
477 |
array(
|
includes/class-wcj-product-addons.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Addons class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.3
|
9 |
* @author Algoritmika Ltd.
|
10 |
* @todo admin order view (names);
|
@@ -19,7 +19,7 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
19 |
/**
|
20 |
* Constructor.
|
21 |
*
|
22 |
-
* @version 2.
|
23 |
* @since 2.5.3
|
24 |
*/
|
25 |
function __construct() {
|
@@ -53,7 +53,8 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
53 |
add_filter( 'woocommerce_get_cart_item_from_session', array( $this, 'get_cart_item_addons_price_from_session' ), PHP_INT_MAX, 3 );
|
54 |
add_filter( 'woocommerce_add_to_cart_validation', array( $this, 'validate_on_add_to_cart' ), PHP_INT_MAX, 2 );
|
55 |
// Prices
|
56 |
-
add_filter(
|
|
|
57 |
// Show details at cart, order details, emails
|
58 |
add_filter( 'woocommerce_cart_item_name', array( $this, 'add_info_to_cart_item_name' ), PHP_INT_MAX, 3 );
|
59 |
add_filter( 'woocommerce_order_item_name', array( $this, 'add_info_to_order_item_name' ), PHP_INT_MAX, 2 );
|
@@ -117,7 +118,7 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
117 |
/**
|
118 |
* price_change_ajax.
|
119 |
*
|
120 |
-
* @version 2.
|
121 |
* @since 2.5.3
|
122 |
*/
|
123 |
function price_change_ajax( $param ) {
|
@@ -145,7 +146,7 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
145 |
}
|
146 |
if ( 0 != $the_addons_price ) {
|
147 |
$the_price = $the_product->get_price();
|
148 |
-
$the_display_price = $the_product
|
149 |
echo wc_price( $the_display_price );
|
150 |
} else {
|
151 |
echo $the_product->get_price_html();
|
@@ -156,15 +157,15 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
156 |
/**
|
157 |
* enqueue_scripts.
|
158 |
*
|
159 |
-
* @version 2.
|
160 |
* @since 2.5.3
|
161 |
*/
|
162 |
function enqueue_scripts() {
|
163 |
if ( is_product() ) {
|
164 |
$the_product = wc_get_product();
|
165 |
-
$addons = $this->get_product_addons( $the_product
|
166 |
if ( ! empty( $addons ) ) {
|
167 |
-
wp_enqueue_script( 'wcj-product-addons', wcj_plugin_url() . '/includes/js/wcj-product-addons.js', array(),
|
168 |
wp_localize_script( 'wcj-product-addons', 'ajax_object', array(
|
169 |
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
170 |
'product_id' => get_the_ID(),
|
@@ -247,7 +248,7 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
247 |
/**
|
248 |
* Adds info to order details (and emails).
|
249 |
*
|
250 |
-
* @version 2.
|
251 |
* @since 2.5.3
|
252 |
*/
|
253 |
function add_info_to_order_item_name( $name, $item, $is_cart = false ) {
|
@@ -267,7 +268,7 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
267 |
if ( isset( $item[ $addon['price_key'] ] ) ) {
|
268 |
$name .= str_replace(
|
269 |
array( '%addon_label%', '%addon_price%' ),
|
270 |
-
array( $item[ $addon['label_key'] ], wc_price( $_product
|
271 |
$item_format
|
272 |
);
|
273 |
}
|
@@ -289,11 +290,11 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
289 |
/**
|
290 |
* change_price.
|
291 |
*
|
292 |
-
* @version 2.
|
293 |
* @since 2.5.3
|
294 |
*/
|
295 |
function change_price( $price, $_product ) {
|
296 |
-
$addons = $this->get_product_addons( $_product
|
297 |
foreach ( $addons as $addon ) {
|
298 |
if ( isset( $_product->{$addon['price_key']} ) ) {
|
299 |
$price += $_product->{$addon['price_key']};
|
@@ -305,11 +306,11 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
305 |
/**
|
306 |
* add_addons_price_to_cart_item.
|
307 |
*
|
308 |
-
* @version 2.
|
309 |
* @since 2.5.3
|
310 |
*/
|
311 |
function add_addons_price_to_cart_item( $cart_item_data, $cart_item_key ) {
|
312 |
-
$addons = $this->get_product_addons( $cart_item_data['data']->product_id );
|
313 |
foreach ( $addons as $addon ) {
|
314 |
if ( isset( $cart_item_data[ $addon['price_key'] ] ) ) {
|
315 |
$cart_item_data['data']->{$addon['price_key']} = $cart_item_data[ $addon['price_key'] ];
|
@@ -368,7 +369,7 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
368 |
/**
|
369 |
* add_addons_to_frontend.
|
370 |
*
|
371 |
-
* @version 2.
|
372 |
* @since 2.5.3
|
373 |
*/
|
374 |
function add_addons_to_frontend() {
|
@@ -389,7 +390,7 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
389 |
'';
|
390 |
$html .= '<p>' .
|
391 |
'<input type="checkbox" id="' . $addon['checkbox_key'] . '" name="' . $addon['checkbox_key'] . '"' . $is_checked . $is_required . '>' . ' ' .
|
392 |
-
'<label for="' . $addon['checkbox_key'] . '">' . $addon['label_value'] . ' ('. wc_price( $_product
|
393 |
$maybe_tooltip .
|
394 |
'</p>';
|
395 |
} elseif ( 'radio' === $addon['type'] ) {
|
@@ -410,7 +411,7 @@ class WCJ_Product_Addons extends WCJ_Module {
|
|
410 |
'';
|
411 |
$html .= '<p>' .
|
412 |
'<input type="radio" id="' . $addon['checkbox_key'] . '-' . $label . '" name="' . $addon['checkbox_key'] . '" value="' . $label . '"' . $is_checked . $is_required . '>' . ' ' .
|
413 |
-
'<label for="' . $addon['checkbox_key'] . '-' . $label . '">' . $labels[ $i ] . ' ('. wc_price( $_product
|
414 |
$maybe_tooltip .
|
415 |
'</p>';
|
416 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Addons class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.3
|
9 |
* @author Algoritmika Ltd.
|
10 |
* @todo admin order view (names);
|
19 |
/**
|
20 |
* Constructor.
|
21 |
*
|
22 |
+
* @version 2.7.0
|
23 |
* @since 2.5.3
|
24 |
*/
|
25 |
function __construct() {
|
53 |
add_filter( 'woocommerce_get_cart_item_from_session', array( $this, 'get_cart_item_addons_price_from_session' ), PHP_INT_MAX, 3 );
|
54 |
add_filter( 'woocommerce_add_to_cart_validation', array( $this, 'validate_on_add_to_cart' ), PHP_INT_MAX, 2 );
|
55 |
// Prices
|
56 |
+
add_filter( WCJ_PRODUCT_GET_PRICE_FILTER, array( $this, 'change_price' ), PHP_INT_MAX - 100, 2 );
|
57 |
+
add_filter( 'woocommerce_product_variation_get_price', array( $this, 'change_price' ), PHP_INT_MAX - 100, 2 );
|
58 |
// Show details at cart, order details, emails
|
59 |
add_filter( 'woocommerce_cart_item_name', array( $this, 'add_info_to_cart_item_name' ), PHP_INT_MAX, 3 );
|
60 |
add_filter( 'woocommerce_order_item_name', array( $this, 'add_info_to_order_item_name' ), PHP_INT_MAX, 2 );
|
118 |
/**
|
119 |
* price_change_ajax.
|
120 |
*
|
121 |
+
* @version 2.7.0
|
122 |
* @since 2.5.3
|
123 |
*/
|
124 |
function price_change_ajax( $param ) {
|
146 |
}
|
147 |
if ( 0 != $the_addons_price ) {
|
148 |
$the_price = $the_product->get_price();
|
149 |
+
$the_display_price = wcj_get_product_display_price( $the_product, ( $the_price + $the_addons_price ) );
|
150 |
echo wc_price( $the_display_price );
|
151 |
} else {
|
152 |
echo $the_product->get_price_html();
|
157 |
/**
|
158 |
* enqueue_scripts.
|
159 |
*
|
160 |
+
* @version 2.7.0
|
161 |
* @since 2.5.3
|
162 |
*/
|
163 |
function enqueue_scripts() {
|
164 |
if ( is_product() ) {
|
165 |
$the_product = wc_get_product();
|
166 |
+
$addons = $this->get_product_addons( wcj_get_product_id_or_variation_parent_id( $the_product ) );
|
167 |
if ( ! empty( $addons ) ) {
|
168 |
+
wp_enqueue_script( 'wcj-product-addons', wcj_plugin_url() . '/includes/js/wcj-product-addons.js', array(), WCJ()->version, true );
|
169 |
wp_localize_script( 'wcj-product-addons', 'ajax_object', array(
|
170 |
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
171 |
'product_id' => get_the_ID(),
|
248 |
/**
|
249 |
* Adds info to order details (and emails).
|
250 |
*
|
251 |
+
* @version 2.7.0
|
252 |
* @since 2.5.3
|
253 |
*/
|
254 |
function add_info_to_order_item_name( $name, $item, $is_cart = false ) {
|
268 |
if ( isset( $item[ $addon['price_key'] ] ) ) {
|
269 |
$name .= str_replace(
|
270 |
array( '%addon_label%', '%addon_price%' ),
|
271 |
+
array( $item[ $addon['label_key'] ], wc_price( wcj_get_product_display_price( $_product, $item[ $addon['price_key'] ] ) ) ),
|
272 |
$item_format
|
273 |
);
|
274 |
}
|
290 |
/**
|
291 |
* change_price.
|
292 |
*
|
293 |
+
* @version 2.7.0
|
294 |
* @since 2.5.3
|
295 |
*/
|
296 |
function change_price( $price, $_product ) {
|
297 |
+
$addons = $this->get_product_addons( wcj_get_product_id_or_variation_parent_id( $_product ) );
|
298 |
foreach ( $addons as $addon ) {
|
299 |
if ( isset( $_product->{$addon['price_key']} ) ) {
|
300 |
$price += $_product->{$addon['price_key']};
|
306 |
/**
|
307 |
* add_addons_price_to_cart_item.
|
308 |
*
|
309 |
+
* @version 2.7.0
|
310 |
* @since 2.5.3
|
311 |
*/
|
312 |
function add_addons_price_to_cart_item( $cart_item_data, $cart_item_key ) {
|
313 |
+
$addons = $this->get_product_addons( ( WCJ_IS_WC_VERSION_BELOW_3 ? $cart_item_data['data']->product_id : $cart_item_data['data']->get_id() ) );
|
314 |
foreach ( $addons as $addon ) {
|
315 |
if ( isset( $cart_item_data[ $addon['price_key'] ] ) ) {
|
316 |
$cart_item_data['data']->{$addon['price_key']} = $cart_item_data[ $addon['price_key'] ];
|
369 |
/**
|
370 |
* add_addons_to_frontend.
|
371 |
*
|
372 |
+
* @version 2.7.0
|
373 |
* @since 2.5.3
|
374 |
*/
|
375 |
function add_addons_to_frontend() {
|
390 |
'';
|
391 |
$html .= '<p>' .
|
392 |
'<input type="checkbox" id="' . $addon['checkbox_key'] . '" name="' . $addon['checkbox_key'] . '"' . $is_checked . $is_required . '>' . ' ' .
|
393 |
+
'<label for="' . $addon['checkbox_key'] . '">' . $addon['label_value'] . ' ('. wc_price( wcj_get_product_display_price( $_product, $addon['price_value'] ) ) . ')' . '</label>' .
|
394 |
$maybe_tooltip .
|
395 |
'</p>';
|
396 |
} elseif ( 'radio' === $addon['type'] ) {
|
411 |
'';
|
412 |
$html .= '<p>' .
|
413 |
'<input type="radio" id="' . $addon['checkbox_key'] . '-' . $label . '" name="' . $addon['checkbox_key'] . '" value="' . $label . '"' . $is_checked . $is_required . '>' . ' ' .
|
414 |
+
'<label for="' . $addon['checkbox_key'] . '-' . $label . '">' . $labels[ $i ] . ' ('. wc_price( wcj_get_product_display_price( $_product, $prices[ $i ] ) ) . ')' . '</label>' .
|
415 |
$maybe_tooltip .
|
416 |
'</p>';
|
417 |
}
|
includes/class-wcj-product-bookings.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Bookings class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -18,7 +18,7 @@ class WCJ_Product_Bookings extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
* @since 2.5.0
|
23 |
*/
|
24 |
function __construct() {
|
@@ -39,7 +39,8 @@ class WCJ_Product_Bookings extends WCJ_Module {
|
|
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(
|
|
|
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
|
@@ -96,18 +97,17 @@ class WCJ_Product_Bookings extends WCJ_Module {
|
|
96 |
/**
|
97 |
* price_change_ajax.
|
98 |
*
|
99 |
-
* @version 2.
|
100 |
* @since 2.5.0
|
101 |
*/
|
102 |
function price_change_ajax( $param ) {
|
103 |
-
if ( isset( $_POST['date_from'] ) && '' != $_POST['date_from'] && isset( $_POST['date_to'] ) && '' != $_POST['date_to'] ) {
|
104 |
$date_to = strtotime( $_POST['date_to'] );
|
105 |
$date_from = strtotime( $_POST['date_from'] );
|
106 |
$seconds_diff = $date_to - $date_from;
|
107 |
$days_diff = ( $seconds_diff / 60 / 60 / 24 );
|
108 |
$the_product = wc_get_product( $_POST['product_id'] );
|
109 |
-
$
|
110 |
-
$price_per_day = $the_product->$get_price_method();
|
111 |
$the_price = $days_diff * $price_per_day;
|
112 |
echo wc_price( $the_price );
|
113 |
}
|
@@ -117,14 +117,14 @@ class WCJ_Product_Bookings extends WCJ_Module {
|
|
117 |
/**
|
118 |
* enqueue_scripts.
|
119 |
*
|
120 |
-
* @version 2.
|
121 |
* @since 2.5.0
|
122 |
*/
|
123 |
function enqueue_scripts() {
|
124 |
if ( is_product() ) {
|
125 |
$the_product = wc_get_product();
|
126 |
if ( $this->is_bookings_product( $the_product ) ) {
|
127 |
-
wp_enqueue_script(
|
128 |
wp_localize_script( 'wcj-bookings', 'ajax_object', array(
|
129 |
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
130 |
'product_id' => get_the_ID(),
|
@@ -148,11 +148,11 @@ class WCJ_Product_Bookings extends WCJ_Module {
|
|
148 |
/**
|
149 |
* add_to_cart_url.
|
150 |
*
|
151 |
-
* @version 2.
|
152 |
* @since 2.5.0
|
153 |
*/
|
154 |
function add_to_cart_url( $url, $_product ) {
|
155 |
-
return ( $this->is_bookings_product( $_product ) ) ? get_permalink( $_product
|
156 |
}
|
157 |
|
158 |
/**
|
@@ -391,11 +391,11 @@ class WCJ_Product_Bookings extends WCJ_Module {
|
|
391 |
/**
|
392 |
* is_bookings_product.
|
393 |
*
|
394 |
-
* @version 2.
|
395 |
* @since 2.5.0
|
396 |
*/
|
397 |
function is_bookings_product( $_product ) {
|
398 |
-
return ( 'yes' === get_post_meta( $_product
|
399 |
}
|
400 |
|
401 |
/**
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Bookings class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
* @since 2.5.0
|
23 |
*/
|
24 |
function __construct() {
|
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( WCJ_PRODUCT_GET_PRICE_FILTER, array( $this, 'change_price' ), PHP_INT_MAX - 100, 2 );
|
43 |
+
add_filter( 'woocommerce_product_variation_get_price', array( $this, 'change_price' ), PHP_INT_MAX - 100, 2 );
|
44 |
// Single Page
|
45 |
add_action( 'woocommerce_before_add_to_cart_button', array( $this, 'add_input_fields_to_frontend' ), PHP_INT_MAX );
|
46 |
// Add to cart
|
97 |
/**
|
98 |
* price_change_ajax.
|
99 |
*
|
100 |
+
* @version 2.7.0
|
101 |
* @since 2.5.0
|
102 |
*/
|
103 |
function price_change_ajax( $param ) {
|
104 |
+
if ( isset( $_POST['date_from'] ) && '' != $_POST['date_from'] && isset( $_POST['date_to'] ) && '' != $_POST['date_to'] && isset( $_POST['product_id'] ) && '' != $_POST['product_id'] ) {
|
105 |
$date_to = strtotime( $_POST['date_to'] );
|
106 |
$date_from = strtotime( $_POST['date_from'] );
|
107 |
$seconds_diff = $date_to - $date_from;
|
108 |
$days_diff = ( $seconds_diff / 60 / 60 / 24 );
|
109 |
$the_product = wc_get_product( $_POST['product_id'] );
|
110 |
+
$price_per_day = wcj_get_product_display_price( $the_product );
|
|
|
111 |
$the_price = $days_diff * $price_per_day;
|
112 |
echo wc_price( $the_price );
|
113 |
}
|
117 |
/**
|
118 |
* enqueue_scripts.
|
119 |
*
|
120 |
+
* @version 2.7.0
|
121 |
* @since 2.5.0
|
122 |
*/
|
123 |
function enqueue_scripts() {
|
124 |
if ( is_product() ) {
|
125 |
$the_product = wc_get_product();
|
126 |
if ( $this->is_bookings_product( $the_product ) ) {
|
127 |
+
wp_enqueue_script( 'wcj-bookings', wcj_plugin_url() . '/includes/js/wcj-bookings.js', array(), WCJ()->version, true );
|
128 |
wp_localize_script( 'wcj-bookings', 'ajax_object', array(
|
129 |
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
130 |
'product_id' => get_the_ID(),
|
148 |
/**
|
149 |
* add_to_cart_url.
|
150 |
*
|
151 |
+
* @version 2.7.0
|
152 |
* @since 2.5.0
|
153 |
*/
|
154 |
function add_to_cart_url( $url, $_product ) {
|
155 |
+
return ( $this->is_bookings_product( $_product ) ) ? get_permalink( wcj_get_product_id_or_variation_parent_id( $_product ) ) : $url;
|
156 |
}
|
157 |
|
158 |
/**
|
391 |
/**
|
392 |
* is_bookings_product.
|
393 |
*
|
394 |
+
* @version 2.7.0
|
395 |
* @since 2.5.0
|
396 |
*/
|
397 |
function is_bookings_product( $_product ) {
|
398 |
+
return ( 'yes' === get_post_meta( wcj_get_product_id_or_variation_parent_id( $_product ), '_' . 'wcj_product_bookings_enabled', true ) ) ? true : false;
|
399 |
}
|
400 |
|
401 |
/**
|
includes/class-wcj-product-bulk-price-converter.php
CHANGED
@@ -6,6 +6,7 @@
|
|
6 |
*
|
7 |
* @version 2.5.0
|
8 |
* @author Algoritmika Ltd.
|
|
|
9 |
*/
|
10 |
|
11 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
6 |
*
|
7 |
* @version 2.5.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
+
* @todo clear products transients after converting prices
|
10 |
*/
|
11 |
|
12 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
includes/class-wcj-product-by-user-role.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product by User Role class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.5
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -49,39 +49,28 @@ class WCJ_Product_By_User_Role extends WCJ_Module {
|
|
49 |
/**
|
50 |
* product_by_user_role_pre_get_posts.
|
51 |
*
|
52 |
-
* @version 2.
|
53 |
* @since 2.6.0
|
|
|
54 |
*/
|
55 |
function product_by_user_role_pre_get_posts( $query ) {
|
56 |
-
|
57 |
if ( is_admin() ) {
|
58 |
return;
|
59 |
}
|
60 |
-
|
61 |
remove_action( 'pre_get_posts', array( $this, 'product_by_user_role_pre_get_posts' ) );
|
62 |
$current_user_roles = wcj_get_current_user_all_roles();
|
63 |
$post__not_in = array();
|
64 |
$args = $query->query;
|
65 |
-
$
|
66 |
-
$
|
67 |
-
|
68 |
-
$
|
69 |
-
$
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
break;
|
74 |
-
}
|
75 |
-
foreach ( $loop->posts as $product_id ) {
|
76 |
-
$visible_user_roles = get_post_meta( $product_id, '_' . 'wcj_product_by_user_role_visible', true );
|
77 |
-
if ( is_array( $visible_user_roles ) && ! empty( $visible_user_roles ) ) {
|
78 |
-
$the_intersect = array_intersect( $visible_user_roles, $current_user_roles );
|
79 |
-
if ( empty( $the_intersect ) ) {
|
80 |
-
$post__not_in[] = $product_id;
|
81 |
-
}
|
82 |
}
|
83 |
}
|
84 |
-
$offset += $block_size;
|
85 |
}
|
86 |
$query->set( 'post__not_in', $post__not_in );
|
87 |
add_action( 'pre_get_posts', array( $this, 'product_by_user_role_pre_get_posts' ) );
|
@@ -90,11 +79,11 @@ class WCJ_Product_By_User_Role extends WCJ_Module {
|
|
90 |
/**
|
91 |
* product_by_user_role_purchasable.
|
92 |
*
|
93 |
-
* @version 2.
|
94 |
* @since 2.6.0
|
95 |
*/
|
96 |
function product_by_user_role_purchasable( $purchasable, $_product ) {
|
97 |
-
return $this->product_by_user_role_visibility( $purchasable, $_product
|
98 |
}
|
99 |
|
100 |
/**
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product by User Role class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.5
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
49 |
/**
|
50 |
* product_by_user_role_pre_get_posts.
|
51 |
*
|
52 |
+
* @version 2.7.0
|
53 |
* @since 2.6.0
|
54 |
+
* @todo add same option to all "Product Visibility" modules (e.g. "Product Visibility by Country")
|
55 |
*/
|
56 |
function product_by_user_role_pre_get_posts( $query ) {
|
|
|
57 |
if ( is_admin() ) {
|
58 |
return;
|
59 |
}
|
|
|
60 |
remove_action( 'pre_get_posts', array( $this, 'product_by_user_role_pre_get_posts' ) );
|
61 |
$current_user_roles = wcj_get_current_user_all_roles();
|
62 |
$post__not_in = array();
|
63 |
$args = $query->query;
|
64 |
+
$args['fields'] = 'ids';
|
65 |
+
$loop = new WP_Query( $args );
|
66 |
+
foreach ( $loop->posts as $product_id ) {
|
67 |
+
$visible_user_roles = get_post_meta( $product_id, '_' . 'wcj_product_by_user_role_visible', true );
|
68 |
+
if ( is_array( $visible_user_roles ) && ! empty( $visible_user_roles ) ) {
|
69 |
+
$the_intersect = array_intersect( $visible_user_roles, $current_user_roles );
|
70 |
+
if ( empty( $the_intersect ) ) {
|
71 |
+
$post__not_in[] = $product_id;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
}
|
73 |
}
|
|
|
74 |
}
|
75 |
$query->set( 'post__not_in', $post__not_in );
|
76 |
add_action( 'pre_get_posts', array( $this, 'product_by_user_role_pre_get_posts' ) );
|
79 |
/**
|
80 |
* product_by_user_role_purchasable.
|
81 |
*
|
82 |
+
* @version 2.7.0
|
83 |
* @since 2.6.0
|
84 |
*/
|
85 |
function product_by_user_role_purchasable( $purchasable, $_product ) {
|
86 |
+
return $this->product_by_user_role_visibility( $purchasable, wcj_get_product_id_or_variation_parent_id( $_product ) );
|
87 |
}
|
88 |
|
89 |
/**
|
includes/class-wcj-product-by-user.php
CHANGED
@@ -21,7 +21,7 @@ class WCJ_Product_By_User extends WCJ_Module {
|
|
21 |
* @version 2.5.7
|
22 |
* @since 2.5.2
|
23 |
*/
|
24 |
-
|
25 |
|
26 |
$this->id = 'product_by_user';
|
27 |
$this->short_desc = __( 'User Products', 'woocommerce-jetpack' );
|
21 |
* @version 2.5.7
|
22 |
* @since 2.5.2
|
23 |
*/
|
24 |
+
function __construct() {
|
25 |
|
26 |
$this->id = 'product_by_user';
|
27 |
$this->short_desc = __( 'User Products', 'woocommerce-jetpack' );
|
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 |
*/
|
@@ -20,7 +20,7 @@ class WCJ_Product_Custom_info extends WCJ_Module {
|
|
20 |
*
|
21 |
* @version 2.5.3
|
22 |
*/
|
23 |
-
|
24 |
|
25 |
$this->id = 'product_custom_info';
|
26 |
$this->short_desc = __( 'Product Info', 'woocommerce-jetpack' );
|
@@ -76,22 +76,6 @@ class WCJ_Product_Custom_info extends WCJ_Module {
|
|
76 |
}
|
77 |
}
|
78 |
|
79 |
-
/**
|
80 |
-
* get_settings.
|
81 |
-
*/
|
82 |
-
function get_settings() {
|
83 |
-
$settings = array();
|
84 |
-
$settings = apply_filters( 'wcj_product_custom_info_settings', $settings );
|
85 |
-
return $this->add_standard_settings( $settings );
|
86 |
-
}
|
87 |
-
|
88 |
-
/*
|
89 |
-
* add_settings_hook.
|
90 |
-
*/
|
91 |
-
function add_settings_hook() {
|
92 |
-
add_filter( 'wcj_product_custom_info_settings', array( $this, 'add_settings' ) );
|
93 |
-
}
|
94 |
-
|
95 |
/**
|
96 |
* add_settings.
|
97 |
*
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Custom Info class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.4.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
20 |
*
|
21 |
* @version 2.5.3
|
22 |
*/
|
23 |
+
function __construct() {
|
24 |
|
25 |
$this->id = 'product_custom_info';
|
26 |
$this->short_desc = __( 'Product Info', 'woocommerce-jetpack' );
|
76 |
}
|
77 |
}
|
78 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
/**
|
80 |
* add_settings.
|
81 |
*
|
includes/class-wcj-product-images.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Images class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -18,7 +18,7 @@ class WCJ_Product_Images extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
@@ -48,7 +48,7 @@ class WCJ_Product_Images extends WCJ_Module {
|
|
48 |
add_action( 'woocommerce_before_shop_loop_item_title', array( $this, 'hide_per_product_image_on_archives_end' ), PHP_INT_MAX );
|
49 |
|
50 |
// Single Product Thumbnails Columns Number
|
51 |
-
add_filter( 'woocommerce_product_thumbnails_columns', array( $this, 'change_product_thumbnails_columns_number' ) );
|
52 |
|
53 |
// Per product options
|
54 |
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
@@ -169,13 +169,15 @@ class WCJ_Product_Images extends WCJ_Module {
|
|
169 |
|
170 |
/**
|
171 |
* customize_sale_flash.
|
|
|
|
|
172 |
*/
|
173 |
function customize_sale_flash( $sale_flash_html, $post, $product ) {
|
174 |
// Hiding
|
175 |
if ( 'yes' === get_option( 'wcj_product_images_sale_flash_hide_on_archives', 'no' ) && is_archive() ) {
|
176 |
return '';
|
177 |
}
|
178 |
-
if ( 'yes' === get_option( 'wcj_product_images_sale_flash_hide_on_single', 'no' ) && is_single() && get_the_ID() === $product
|
179 |
return '';
|
180 |
}
|
181 |
// Content
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Images class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
*/
|
23 |
function __construct() {
|
24 |
|
48 |
add_action( 'woocommerce_before_shop_loop_item_title', array( $this, 'hide_per_product_image_on_archives_end' ), PHP_INT_MAX );
|
49 |
|
50 |
// Single Product Thumbnails Columns Number
|
51 |
+
add_filter( 'woocommerce_product_thumbnails_columns', array( $this, 'change_product_thumbnails_columns_number' ), PHP_INT_MAX );
|
52 |
|
53 |
// Per product options
|
54 |
add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
|
169 |
|
170 |
/**
|
171 |
* customize_sale_flash.
|
172 |
+
*
|
173 |
+
* @version 2.7.0
|
174 |
*/
|
175 |
function customize_sale_flash( $sale_flash_html, $post, $product ) {
|
176 |
// Hiding
|
177 |
if ( 'yes' === get_option( 'wcj_product_images_sale_flash_hide_on_archives', 'no' ) && is_archive() ) {
|
178 |
return '';
|
179 |
}
|
180 |
+
if ( 'yes' === get_option( 'wcj_product_images_sale_flash_hide_on_single', 'no' ) && is_single() && get_the_ID() === wcj_get_product_id_or_variation_parent_id( $product ) ) {
|
181 |
return '';
|
182 |
}
|
183 |
// Content
|
includes/class-wcj-product-info.php
CHANGED
@@ -146,7 +146,7 @@ class WCJ_Product_Info extends WCJ_Module {
|
|
146 |
/**
|
147 |
* add_product_info_filters.
|
148 |
*/
|
149 |
-
|
150 |
// Product Info
|
151 |
if ( ( 'yes' === get_option( 'wcj_product_info_on_' . $single_or_archive . '_enabled' ) ) &&
|
152 |
( '' != get_option( 'wcj_product_info_on_' . $single_or_archive ) ) &&
|
@@ -164,7 +164,7 @@ class WCJ_Product_Info extends WCJ_Module {
|
|
164 |
*
|
165 |
* @version 2.4.0
|
166 |
*/
|
167 |
-
|
168 |
$the_action_name = current_filter();
|
169 |
if ( array_key_exists( $the_action_name, $this->product_info_on_archive_filters_array ) ) {
|
170 |
$the_product_info = get_option( 'wcj_product_info_on_archive' );
|
@@ -181,7 +181,7 @@ class WCJ_Product_Info extends WCJ_Module {
|
|
181 |
/**
|
182 |
* more_product_info.
|
183 |
*/
|
184 |
-
|
185 |
$the_action_name = current_filter();
|
186 |
if ( array_key_exists( $the_action_name, $this->product_info_on_archive_filters_array ) )
|
187 |
$this->add_more_product_info( 'archive' );
|
@@ -194,7 +194,7 @@ class WCJ_Product_Info extends WCJ_Module {
|
|
194 |
*
|
195 |
* @version 2.4.0
|
196 |
*/
|
197 |
-
|
198 |
//$single_or_archive = 'archive';
|
199 |
for ( $i = 1; $i <= apply_filters( 'booster_get_option', 4, get_option( 'wcj_more_product_info_on_' . $single_or_archive . '_fields_total', 4 ) ); $i++ ) {
|
200 |
$field_id = 'wcj_more_product_info_on_' . $single_or_archive . '_' . $i ;
|
@@ -209,7 +209,7 @@ class WCJ_Product_Info extends WCJ_Module {
|
|
209 |
*
|
210 |
* @version 2.4.0
|
211 |
*/
|
212 |
-
|
213 |
|
214 |
$product_ids_to_exclude = get_option( 'wcj_product_info_products_to_exclude', '' );
|
215 |
if ( '' != $product_ids_to_exclude ) {
|
146 |
/**
|
147 |
* add_product_info_filters.
|
148 |
*/
|
149 |
+
function add_product_info_filters( $single_or_archive ) {
|
150 |
// Product Info
|
151 |
if ( ( 'yes' === get_option( 'wcj_product_info_on_' . $single_or_archive . '_enabled' ) ) &&
|
152 |
( '' != get_option( 'wcj_product_info_on_' . $single_or_archive ) ) &&
|
164 |
*
|
165 |
* @version 2.4.0
|
166 |
*/
|
167 |
+
function product_info() {
|
168 |
$the_action_name = current_filter();
|
169 |
if ( array_key_exists( $the_action_name, $this->product_info_on_archive_filters_array ) ) {
|
170 |
$the_product_info = get_option( 'wcj_product_info_on_archive' );
|
181 |
/**
|
182 |
* more_product_info.
|
183 |
*/
|
184 |
+
function more_product_info() {
|
185 |
$the_action_name = current_filter();
|
186 |
if ( array_key_exists( $the_action_name, $this->product_info_on_archive_filters_array ) )
|
187 |
$this->add_more_product_info( 'archive' );
|
194 |
*
|
195 |
* @version 2.4.0
|
196 |
*/
|
197 |
+
function add_more_product_info( $single_or_archive ) {
|
198 |
//$single_or_archive = 'archive';
|
199 |
for ( $i = 1; $i <= apply_filters( 'booster_get_option', 4, get_option( 'wcj_more_product_info_on_' . $single_or_archive . '_fields_total', 4 ) ); $i++ ) {
|
200 |
$field_id = 'wcj_more_product_info_on_' . $single_or_archive . '_' . $i ;
|
209 |
*
|
210 |
* @version 2.4.0
|
211 |
*/
|
212 |
+
function apply_product_info_short_codes( $the_product_info, $remove_on_empty ) {
|
213 |
|
214 |
$product_ids_to_exclude = get_option( 'wcj_product_info_products_to_exclude', '' );
|
215 |
if ( '' != $product_ids_to_exclude ) {
|
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 |
|
@@ -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 |
|
@@ -176,7 +176,7 @@ class WCJ_Product_Input_Fields extends WCJ_Module {
|
|
176 |
|
177 |
array(
|
178 |
'title' => __( 'Product Input Fields Number', 'woocommerce-jetpack' ),
|
179 |
-
'desc_tip' => __( 'Click
|
180 |
'id' => 'wcj_product_input_fields_global_total_number',
|
181 |
'default' => 1,
|
182 |
'type' => 'custom_number',
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Input Fields class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
114 |
/**
|
115 |
* get_settings.
|
116 |
*
|
117 |
+
* @version 2.7.0
|
118 |
*/
|
119 |
function get_settings() {
|
120 |
|
176 |
|
177 |
array(
|
178 |
'title' => __( 'Product Input Fields Number', 'woocommerce-jetpack' ),
|
179 |
+
'desc_tip' => __( 'Click Save changes after you change this number.', 'woocommerce-jetpack' ),
|
180 |
'id' => 'wcj_product_input_fields_global_total_number',
|
181 |
'default' => 1,
|
182 |
'type' => 'custom_number',
|
includes/class-wcj-product-listings.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Listings class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,12 +17,12 @@ class WCJ_Product_Listings extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
-
|
23 |
$this->id = 'product_listings';
|
24 |
$this->short_desc = __( 'Product Listings', 'woocommerce-jetpack' );
|
25 |
-
$this->desc = __( 'Change WooCommerce display options for shop and category pages: show/hide categories count, exclude categories, show/hide empty categories.
|
26 |
$this->link = 'http://booster.io/features/woocommerce-product-listings/';
|
27 |
parent::__construct();
|
28 |
|
@@ -32,7 +32,7 @@ class WCJ_Product_Listings extends WCJ_Module {
|
|
32 |
|
33 |
// Exclude and Hide Empty
|
34 |
add_filter( 'woocommerce_product_subcategories_args', array( $this, 'filter_subcategories' ), 100 );
|
35 |
-
add_filter( 'woocommerce_product_subcategories_hide_empty', array( $this, '
|
36 |
|
37 |
// Hide Count
|
38 |
if ( 'yes' === get_option( 'wcj_product_listings_hide_cats_count_on_shop' ) || 'yes' === get_option( 'wcj_product_listings_hide_cats_count_on_archive' ) ) {
|
@@ -97,7 +97,7 @@ class WCJ_Product_Listings extends WCJ_Module {
|
|
97 |
/**
|
98 |
* remove_subcategory_count.
|
99 |
*/
|
100 |
-
|
101 |
if (
|
102 |
( is_shop() && 'yes' === get_option( 'wcj_product_listings_hide_cats_count_on_shop' ) ) ||
|
103 |
( ! is_shop() && 'yes' === apply_filters( 'booster_get_option', 'wcj', get_option( 'wcj_product_listings_hide_cats_count_on_archive' ) ) )
|
@@ -109,22 +109,20 @@ class WCJ_Product_Listings extends WCJ_Module {
|
|
109 |
|
110 |
/**
|
111 |
* filter_subcategories.
|
|
|
|
|
112 |
*/
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
} else {
|
118 |
-
$args['exclude'] = get_option( 'wcj_product_listings_exclude_cats_on_archives' );
|
119 |
-
$args['hide_empty'] = ( 'yes' === get_option( 'wcj_product_listings_hide_empty_cats_on_archives' ) ) ? 1 : 0; // deprecated?
|
120 |
-
}
|
121 |
return $args;
|
122 |
}
|
123 |
|
124 |
/**
|
125 |
* hide_products_by_disabling_loop.
|
126 |
*/
|
127 |
-
|
128 |
// If we are hiding products disable the loop and pagination
|
129 |
global $wp_query;
|
130 |
if (
|
@@ -146,63 +144,62 @@ class WCJ_Product_Listings extends WCJ_Module {
|
|
146 |
}
|
147 |
|
148 |
/**
|
149 |
-
*
|
|
|
|
|
150 |
*/
|
151 |
-
|
152 |
|
153 |
// Not the best solution, but it's the only place I found to put it...
|
154 |
$this->hide_products_by_disabling_loop();
|
155 |
|
156 |
-
$
|
157 |
-
|
158 |
-
|
159 |
-
} else {
|
160 |
-
$show_empty = ( 'yes' === get_option( 'wcj_product_listings_hide_empty_cats_on_archives' ) ) ? false : true;
|
161 |
-
}
|
162 |
-
|
163 |
-
return $show_empty;
|
164 |
-
}
|
165 |
-
|
166 |
-
/**
|
167 |
-
* get_settings.
|
168 |
-
*
|
169 |
-
* @version 2.6.0
|
170 |
-
*/
|
171 |
-
function get_settings() {
|
172 |
-
return $this->add_standard_settings( apply_filters( 'wcj_product_listings_settings', array() ) );
|
173 |
-
}
|
174 |
|
175 |
-
|
176 |
-
* add_settings_hook.
|
177 |
-
*
|
178 |
-
* @version 2.5.5
|
179 |
-
* @since 2.5.5
|
180 |
-
*/
|
181 |
-
function add_settings_hook() {
|
182 |
-
add_filter( 'wcj_product_listings_settings', array( $this, 'add_settings' ) );
|
183 |
}
|
184 |
|
185 |
/*
|
186 |
* add_settings.
|
187 |
*
|
188 |
-
* @version 2.
|
189 |
* @since 2.5.5
|
190 |
*/
|
191 |
function add_settings() {
|
192 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
$product_cats = array();
|
194 |
$product_categories = get_terms( 'product_cat', 'orderby=name&hide_empty=0' );
|
195 |
foreach ( $product_categories as $product_category ) {
|
196 |
$product_cats[ $product_category->term_id ] = $product_category->name;
|
197 |
}
|
198 |
|
|
|
199 |
$products = wcj_get_products();
|
200 |
|
|
|
201 |
$settings = array(
|
202 |
array(
|
203 |
'title' => __( 'Shop Page Display Options', 'woocommerce-jetpack' ),
|
204 |
'type' => 'title',
|
205 |
-
'desc' =>
|
|
|
|
|
|
|
206 |
'id' => 'wcj_product_listings_shop_page_options',
|
207 |
),
|
208 |
array(
|
@@ -214,11 +211,13 @@ class WCJ_Product_Listings extends WCJ_Module {
|
|
214 |
),
|
215 |
array(
|
216 |
'title' => __( 'Exclude Categories', 'woocommerce-jetpack' ),
|
217 |
-
'desc_tip' => __(' Excludes one or more categories from the shop page.
|
218 |
'id' => 'wcj_product_listings_exclude_cats_on_shop',
|
219 |
'default' => '',
|
220 |
-
'type' => '
|
221 |
-
'
|
|
|
|
|
222 |
),
|
223 |
array(
|
224 |
'title' => __( 'Hide Empty', 'woocommerce-jetpack' ),
|
@@ -241,7 +240,10 @@ class WCJ_Product_Listings extends WCJ_Module {
|
|
241 |
array(
|
242 |
'title' => __( 'Category Display Options', 'woocommerce-jetpack' ),
|
243 |
'type' => 'title',
|
244 |
-
'desc' =>
|
|
|
|
|
|
|
245 |
'id' => 'wcj_product_listings_archive_pages_options',
|
246 |
),
|
247 |
array(
|
@@ -255,11 +257,13 @@ class WCJ_Product_Listings extends WCJ_Module {
|
|
255 |
),
|
256 |
array(
|
257 |
'title' => __( 'Exclude Subcategories', 'woocommerce-jetpack' ),
|
258 |
-
'desc_tip' => __(' Excludes one or more categories from the category (archive) pages.
|
259 |
'id' => 'wcj_product_listings_exclude_cats_on_archives',
|
260 |
'default' => '',
|
261 |
-
'type' => '
|
262 |
-
'
|
|
|
|
|
263 |
),
|
264 |
array(
|
265 |
'title' => __( 'Hide Empty', 'woocommerce-jetpack' ),
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Listings class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
$this->id = 'product_listings';
|
24 |
$this->short_desc = __( 'Product Listings', 'woocommerce-jetpack' );
|
25 |
+
$this->desc = __( 'Change WooCommerce display options for shop and category pages: show/hide categories count, exclude categories, show/hide empty categories.', 'woocommerce-jetpack' );
|
26 |
$this->link = 'http://booster.io/features/woocommerce-product-listings/';
|
27 |
parent::__construct();
|
28 |
|
32 |
|
33 |
// Exclude and Hide Empty
|
34 |
add_filter( 'woocommerce_product_subcategories_args', array( $this, 'filter_subcategories' ), 100 );
|
35 |
+
add_filter( 'woocommerce_product_subcategories_hide_empty', array( $this, 'filter_subcategories_hide_empty' ), 100 );
|
36 |
|
37 |
// Hide Count
|
38 |
if ( 'yes' === get_option( 'wcj_product_listings_hide_cats_count_on_shop' ) || 'yes' === get_option( 'wcj_product_listings_hide_cats_count_on_archive' ) ) {
|
97 |
/**
|
98 |
* remove_subcategory_count.
|
99 |
*/
|
100 |
+
function remove_subcategory_count( $count_html ) {
|
101 |
if (
|
102 |
( is_shop() && 'yes' === get_option( 'wcj_product_listings_hide_cats_count_on_shop' ) ) ||
|
103 |
( ! is_shop() && 'yes' === apply_filters( 'booster_get_option', 'wcj', get_option( 'wcj_product_listings_hide_cats_count_on_archive' ) ) )
|
109 |
|
110 |
/**
|
111 |
* filter_subcategories.
|
112 |
+
*
|
113 |
+
* @version 2.7.0
|
114 |
*/
|
115 |
+
function filter_subcategories( $args ) {
|
116 |
+
$args['exclude'] = ( is_shop() ) ?
|
117 |
+
get_option( 'wcj_product_listings_exclude_cats_on_shop', '' ) :
|
118 |
+
get_option( 'wcj_product_listings_exclude_cats_on_archives', '' );
|
|
|
|
|
|
|
|
|
119 |
return $args;
|
120 |
}
|
121 |
|
122 |
/**
|
123 |
* hide_products_by_disabling_loop.
|
124 |
*/
|
125 |
+
function hide_products_by_disabling_loop() {
|
126 |
// If we are hiding products disable the loop and pagination
|
127 |
global $wp_query;
|
128 |
if (
|
144 |
}
|
145 |
|
146 |
/**
|
147 |
+
* filter_subcategories_hide_empty.
|
148 |
+
*
|
149 |
+
* @version 2.7.0
|
150 |
*/
|
151 |
+
function filter_subcategories_hide_empty() {
|
152 |
|
153 |
// Not the best solution, but it's the only place I found to put it...
|
154 |
$this->hide_products_by_disabling_loop();
|
155 |
|
156 |
+
$hide_empty = ( is_shop() ) ?
|
157 |
+
( 'yes' === get_option( 'wcj_product_listings_hide_empty_cats_on_shop', 'yes' ) ) :
|
158 |
+
( 'yes' === get_option( 'wcj_product_listings_hide_empty_cats_on_archives', 'yes' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
|
160 |
+
return $hide_empty;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
}
|
162 |
|
163 |
/*
|
164 |
* add_settings.
|
165 |
*
|
166 |
+
* @version 2.7.0
|
167 |
* @since 2.5.5
|
168 |
*/
|
169 |
function add_settings() {
|
170 |
|
171 |
+
// Handle deprecated option types
|
172 |
+
$options = array(
|
173 |
+
'wcj_product_listings_exclude_cats_on_shop',
|
174 |
+
'wcj_product_listings_exclude_cats_on_archives',
|
175 |
+
);
|
176 |
+
foreach ( $options as $option ) {
|
177 |
+
$value = get_option( $option, '' );
|
178 |
+
if ( ! is_array( $value ) ) {
|
179 |
+
$value = explode( ',', str_replace( ' ', '', $value ) );
|
180 |
+
update_option( $option, $value );
|
181 |
+
}
|
182 |
+
}
|
183 |
+
|
184 |
+
// Prepare categories
|
185 |
$product_cats = array();
|
186 |
$product_categories = get_terms( 'product_cat', 'orderby=name&hide_empty=0' );
|
187 |
foreach ( $product_categories as $product_category ) {
|
188 |
$product_cats[ $product_category->term_id ] = $product_category->name;
|
189 |
}
|
190 |
|
191 |
+
// Prepare products
|
192 |
$products = wcj_get_products();
|
193 |
|
194 |
+
// Settings
|
195 |
$settings = array(
|
196 |
array(
|
197 |
'title' => __( 'Shop Page Display Options', 'woocommerce-jetpack' ),
|
198 |
'type' => 'title',
|
199 |
+
'desc' => sprintf(
|
200 |
+
__( 'You can control what is shown on the product archive in <a href="%s">WooCommerce > Settings > Products > Display > Shop page display</a>.', 'woocommerce-jetpack' ),
|
201 |
+
admin_url( 'admin.php?page=wc-settings&tab=products§ion=display' )
|
202 |
+
),
|
203 |
'id' => 'wcj_product_listings_shop_page_options',
|
204 |
),
|
205 |
array(
|
211 |
),
|
212 |
array(
|
213 |
'title' => __( 'Exclude Categories', 'woocommerce-jetpack' ),
|
214 |
+
'desc_tip' => __(' Excludes one or more categories from the shop page. Leave blank to disable.', 'woocommerce-jetpack' ),
|
215 |
'id' => 'wcj_product_listings_exclude_cats_on_shop',
|
216 |
'default' => '',
|
217 |
+
'type' => 'multiselect',
|
218 |
+
'class' => 'chosen_select',
|
219 |
+
'css' => 'width: 450px;',
|
220 |
+
'options' => $product_cats,
|
221 |
),
|
222 |
array(
|
223 |
'title' => __( 'Hide Empty', 'woocommerce-jetpack' ),
|
240 |
array(
|
241 |
'title' => __( 'Category Display Options', 'woocommerce-jetpack' ),
|
242 |
'type' => 'title',
|
243 |
+
'desc' => sprintf(
|
244 |
+
__( 'You can control what is shown on category archives in <a href="%s">WooCommerce > Settings > Products > Display > Default category display</a>.', 'woocommerce-jetpack' ),
|
245 |
+
admin_url( 'admin.php?page=wc-settings&tab=products§ion=display' )
|
246 |
+
),
|
247 |
'id' => 'wcj_product_listings_archive_pages_options',
|
248 |
),
|
249 |
array(
|
257 |
),
|
258 |
array(
|
259 |
'title' => __( 'Exclude Subcategories', 'woocommerce-jetpack' ),
|
260 |
+
'desc_tip' => __(' Excludes one or more categories from the category (archive) pages. Leave blank to disable.', 'woocommerce-jetpack' ),
|
261 |
'id' => 'wcj_product_listings_exclude_cats_on_archives',
|
262 |
'default' => '',
|
263 |
+
'type' => 'multiselect',
|
264 |
+
'class' => 'chosen_select',
|
265 |
+
'css' => 'width: 450px;',
|
266 |
+
'options' => $product_cats,
|
267 |
),
|
268 |
array(
|
269 |
'title' => __( 'Hide Empty', '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() {
|
@@ -32,7 +32,8 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
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 |
-
add_filter(
|
|
|
36 |
add_filter( 'woocommerce_get_price_html', array( $this, 'hide_original_price' ), PHP_INT_MAX, 2 );
|
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 );
|
@@ -53,11 +54,11 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
53 |
/**
|
54 |
* is_open_price_product.
|
55 |
*
|
56 |
-
* @version 2.
|
57 |
* @since 2.4.8
|
58 |
*/
|
59 |
function is_open_price_product( $_product ) {
|
60 |
-
return ( 'yes' === get_post_meta( $_product
|
61 |
}
|
62 |
|
63 |
/**
|
@@ -136,8 +137,9 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
136 |
/**
|
137 |
* is_purchasable.
|
138 |
*
|
139 |
-
* @version 2.
|
140 |
* @since 2.4.8
|
|
|
141 |
*/
|
142 |
function is_purchasable( $purchasable, $_product ) {
|
143 |
if ( $this->is_open_price_product( $_product ) ) {
|
@@ -152,7 +154,7 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
152 |
$purchasable = false; */
|
153 |
|
154 |
// Check the product is published
|
155 |
-
} elseif ( $_product
|
156 |
$purchasable = false;
|
157 |
}
|
158 |
}
|
@@ -215,11 +217,11 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
215 |
/**
|
216 |
* add_to_cart_url.
|
217 |
*
|
218 |
-
* @version 2.
|
219 |
* @since 2.4.8
|
220 |
*/
|
221 |
function add_to_cart_url( $url, $_product ) {
|
222 |
-
return ( $this->is_open_price_product( $_product ) ) ? get_permalink( $_product
|
223 |
}
|
224 |
|
225 |
/**
|
@@ -325,7 +327,7 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
325 |
/**
|
326 |
* add_open_price_input_field_to_frontend.
|
327 |
*
|
328 |
-
* @version 2.
|
329 |
* @since 2.4.8
|
330 |
*/
|
331 |
function add_open_price_input_field_to_frontend() {
|
@@ -334,9 +336,10 @@ class WCJ_Product_Open_Pricing extends WCJ_Module {
|
|
334 |
// Title
|
335 |
$title = get_option( 'wcj_product_open_price_label_frontend', __( 'Name Your Price', 'woocommerce-jetpack' ) );
|
336 |
// Prices
|
337 |
-
$
|
338 |
-
$
|
339 |
-
$
|
|
|
340 |
// Input field
|
341 |
$value = ( isset( $_POST['wcj_open_price'] ) ) ? $_POST['wcj_open_price'] : $default_price;
|
342 |
$default_price_step = 1 / pow( 10, absint( get_option( 'woocommerce_price_num_decimals', 2 ) ) );
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Open Pricing class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.4.8
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
* @since 2.4.8
|
23 |
*/
|
24 |
function __construct() {
|
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 |
+
add_filter( WCJ_PRODUCT_GET_PRICE_FILTER, array( $this, 'get_open_price' ), PHP_INT_MAX, 2 );
|
36 |
+
add_filter( 'woocommerce_product_variation_get_price',array( $this, 'get_open_price' ), PHP_INT_MAX, 2 );
|
37 |
add_filter( 'woocommerce_get_price_html', array( $this, 'hide_original_price' ), PHP_INT_MAX, 2 );
|
38 |
add_filter( 'woocommerce_get_variation_price_html', array( $this, 'hide_original_price' ), PHP_INT_MAX, 2 );
|
39 |
add_filter( 'woocommerce_is_sold_individually', array( $this, 'hide_quantity_input_field' ), PHP_INT_MAX, 2 );
|
54 |
/**
|
55 |
* is_open_price_product.
|
56 |
*
|
57 |
+
* @version 2.7.0
|
58 |
* @since 2.4.8
|
59 |
*/
|
60 |
function is_open_price_product( $_product ) {
|
61 |
+
return ( 'yes' === get_post_meta( wcj_get_product_id_or_variation_parent_id( $_product ), '_' . 'wcj_product_open_price_enabled', true ) ) ? true : false;
|
62 |
}
|
63 |
|
64 |
/**
|
137 |
/**
|
138 |
* is_purchasable.
|
139 |
*
|
140 |
+
* @version 2.7.0
|
141 |
* @since 2.4.8
|
142 |
+
* @todo maybe `wcj_get_product_id()` instead of `wcj_get_product_id_or_variation_parent_id()` - check `is_purchasable()` in `WC_Product` class.
|
143 |
*/
|
144 |
function is_purchasable( $purchasable, $_product ) {
|
145 |
if ( $this->is_open_price_product( $_product ) ) {
|
154 |
$purchasable = false; */
|
155 |
|
156 |
// Check the product is published
|
157 |
+
} elseif ( wcj_get_product_status( $_product ) !== 'publish' && ! current_user_can( 'edit_post', wcj_get_product_id_or_variation_parent_id( $_product ) ) ) {
|
158 |
$purchasable = false;
|
159 |
}
|
160 |
}
|
217 |
/**
|
218 |
* add_to_cart_url.
|
219 |
*
|
220 |
+
* @version 2.7.0
|
221 |
* @since 2.4.8
|
222 |
*/
|
223 |
function add_to_cart_url( $url, $_product ) {
|
224 |
+
return ( $this->is_open_price_product( $_product ) ) ? get_permalink( wcj_get_product_id_or_variation_parent_id( $_product ) ) : $url;
|
225 |
}
|
226 |
|
227 |
/**
|
327 |
/**
|
328 |
* add_open_price_input_field_to_frontend.
|
329 |
*
|
330 |
+
* @version 2.7.0
|
331 |
* @since 2.4.8
|
332 |
*/
|
333 |
function add_open_price_input_field_to_frontend() {
|
336 |
// Title
|
337 |
$title = get_option( 'wcj_product_open_price_label_frontend', __( 'Name Your Price', 'woocommerce-jetpack' ) );
|
338 |
// Prices
|
339 |
+
$_product_id = wcj_get_product_id_or_variation_parent_id( $the_product );
|
340 |
+
$min_price = get_post_meta( $_product_id, '_' . 'wcj_product_open_price_min_price', true );
|
341 |
+
$max_price = get_post_meta( $_product_id, '_' . 'wcj_product_open_price_max_price', true );
|
342 |
+
$default_price = get_post_meta( $_product_id, '_' . 'wcj_product_open_price_default_price', true );
|
343 |
// Input field
|
344 |
$value = ( isset( $_POST['wcj_open_price'] ) ) ? $_POST['wcj_open_price'] : $default_price;
|
345 |
$default_price_step = 1 / pow( 10, absint( get_option( 'woocommerce_price_num_decimals', 2 ) ) );
|
includes/class-wcj-product-price-by-formula.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Price by Formula class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -18,7 +18,7 @@ class WCJ_Product_Price_by_Formula extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
* @since 2.5.0
|
23 |
*/
|
24 |
function __construct() {
|
@@ -36,18 +36,7 @@ class WCJ_Product_Price_by_Formula extends WCJ_Module {
|
|
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 |
-
|
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 );
|
@@ -56,20 +45,19 @@ class WCJ_Product_Price_by_Formula extends WCJ_Module {
|
|
56 |
}
|
57 |
|
58 |
/**
|
59 |
-
*
|
60 |
*
|
61 |
-
* @version 2.
|
62 |
* @since 2.5.0
|
63 |
*/
|
64 |
-
function
|
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
|
71 |
if ( $the_price == $price ) {
|
72 |
-
return $this->
|
73 |
}
|
74 |
}
|
75 |
}
|
@@ -77,33 +65,33 @@ class WCJ_Product_Price_by_Formula extends WCJ_Module {
|
|
77 |
}
|
78 |
|
79 |
/**
|
80 |
-
*
|
81 |
*
|
82 |
-
* @version 2.
|
83 |
* @since 2.5.0
|
84 |
*/
|
85 |
-
function
|
86 |
if ( $this->is_price_by_formula_product( $_product ) && '' != $price ) {
|
87 |
-
$
|
|
|
88 |
$the_formula = ( $is_per_product )
|
89 |
-
? get_post_meta( $
|
90 |
: get_option( 'wcj_product_price_by_formula_eval', '' );
|
91 |
$the_formula = do_shortcode( $the_formula );
|
92 |
if ( '' != $the_formula ) {
|
93 |
$total_params = ( $is_per_product )
|
94 |
-
? get_post_meta( $
|
95 |
: get_option( 'wcj_product_price_by_formula_total_params', 1 );
|
96 |
if ( $total_params > 0 ) {
|
97 |
$the_current_filter = current_filter();
|
98 |
if ( 'woocommerce_get_price_including_tax' == $the_current_filter || 'woocommerce_get_price_excluding_tax' == $the_current_filter ) {
|
99 |
-
|
100 |
-
return $_product->$get_price_method();
|
101 |
}
|
102 |
$math = new /* PHPMathParser\ */Alg_Math();
|
103 |
$math->registerVariable( 'x', $price );
|
104 |
for ( $i = 1; $i <= $total_params; $i++ ) {
|
105 |
$the_param = ( $is_per_product )
|
106 |
-
? get_post_meta( $
|
107 |
: get_option( 'wcj_product_price_by_formula_param_' . $i, '' );
|
108 |
$the_param = do_shortcode( $the_param );
|
109 |
if ( '' != $the_param ) {
|
@@ -128,13 +116,13 @@ class WCJ_Product_Price_by_Formula extends WCJ_Module {
|
|
128 |
/**
|
129 |
* get_variation_prices_hash.
|
130 |
*
|
131 |
-
* @version 2.
|
132 |
* @since 2.5.0
|
133 |
*/
|
134 |
function get_variation_prices_hash( $price_hash, $_product, $display ) {
|
135 |
if ( $this->is_price_by_formula_product( $_product ) ) {
|
136 |
$the_formula = get_option( 'wcj_product_price_by_formula_eval', '' );
|
137 |
-
$total_params = get_post_meta( $_product
|
138 |
$the_params = array();
|
139 |
for ( $i = 1; $i <= $total_params; $i++ ) {
|
140 |
$the_params[] = get_option( 'wcj_product_price_by_formula_param_' . $i, '' );
|
@@ -211,13 +199,13 @@ class WCJ_Product_Price_by_Formula extends WCJ_Module {
|
|
211 |
/**
|
212 |
* is_price_by_formula_product.
|
213 |
*
|
214 |
-
* @version 2.
|
215 |
* @since 2.5.0
|
216 |
*/
|
217 |
function is_price_by_formula_product( $_product ) {
|
218 |
return (
|
219 |
'yes' === apply_filters( 'booster_get_option', 'no', get_option( 'wcj_product_price_by_formula_enable_for_all_products', 'no' ) ) ||
|
220 |
-
'yes' === get_post_meta( $_product
|
221 |
);
|
222 |
}
|
223 |
|
@@ -283,7 +271,7 @@ class WCJ_Product_Price_by_Formula extends WCJ_Module {
|
|
283 |
/**
|
284 |
* create_meta_box.
|
285 |
*
|
286 |
-
* @version 2.
|
287 |
* @since 2.5.0
|
288 |
*/
|
289 |
function create_meta_box() {
|
@@ -293,7 +281,7 @@ class WCJ_Product_Price_by_Formula extends WCJ_Module {
|
|
293 |
$the_product = wc_get_product();
|
294 |
if ( $this->is_price_by_formula_product( $the_product ) ) {
|
295 |
$the_price = $the_product->get_price();
|
296 |
-
$the_price = $this->
|
297 |
echo '<h4>' . __( 'Final Price Preview', 'woocommerce-jetpack' ) . '</h4>';
|
298 |
echo wc_price( $the_price );
|
299 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Price by Formula class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
* @since 2.5.0
|
23 |
*/
|
24 |
function __construct() {
|
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 |
+
wcj_add_change_price_hooks( $this, PHP_INT_MAX - 100, false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
|
42 |
add_filter( 'wcj_save_meta_box_value', array( $this, 'save_meta_box_value' ), PHP_INT_MAX, 3 );
|
45 |
}
|
46 |
|
47 |
/**
|
48 |
+
* change_price_grouped.
|
49 |
*
|
50 |
+
* @version 2.7.0
|
51 |
* @since 2.5.0
|
52 |
*/
|
53 |
+
function change_price_grouped( $price, $qty, $_product ) {
|
54 |
if ( $_product->is_type( 'grouped' ) ) {
|
|
|
55 |
foreach ( $_product->get_children() as $child_id ) {
|
56 |
$the_price = get_post_meta( $child_id, '_price', true );
|
57 |
$the_product = wc_get_product( $child_id );
|
58 |
+
$the_price = wcj_get_product_display_price( $the_product, $the_price, 1 );
|
59 |
if ( $the_price == $price ) {
|
60 |
+
return $this->change_price( $price, $the_product );
|
61 |
}
|
62 |
}
|
63 |
}
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
+
* change_price.
|
69 |
*
|
70 |
+
* @version 2.7.0
|
71 |
* @since 2.5.0
|
72 |
*/
|
73 |
+
function change_price( $price, $_product, $output_errors = false ) {
|
74 |
if ( $this->is_price_by_formula_product( $_product ) && '' != $price ) {
|
75 |
+
$_product_id = wcj_get_product_id_or_variation_parent_id( $_product );
|
76 |
+
$is_per_product = ( 'per_product' === get_post_meta( $_product_id, '_' . 'wcj_product_price_by_formula_calculation', true ) ) ? true : false;
|
77 |
$the_formula = ( $is_per_product )
|
78 |
+
? get_post_meta( $_product_id, '_' . 'wcj_product_price_by_formula_eval', true )
|
79 |
: get_option( 'wcj_product_price_by_formula_eval', '' );
|
80 |
$the_formula = do_shortcode( $the_formula );
|
81 |
if ( '' != $the_formula ) {
|
82 |
$total_params = ( $is_per_product )
|
83 |
+
? get_post_meta( $_product_id, '_' . 'wcj_product_price_by_formula_total_params', true )
|
84 |
: get_option( 'wcj_product_price_by_formula_total_params', 1 );
|
85 |
if ( $total_params > 0 ) {
|
86 |
$the_current_filter = current_filter();
|
87 |
if ( 'woocommerce_get_price_including_tax' == $the_current_filter || 'woocommerce_get_price_excluding_tax' == $the_current_filter ) {
|
88 |
+
return wcj_get_product_display_price( $_product );
|
|
|
89 |
}
|
90 |
$math = new /* PHPMathParser\ */Alg_Math();
|
91 |
$math->registerVariable( 'x', $price );
|
92 |
for ( $i = 1; $i <= $total_params; $i++ ) {
|
93 |
$the_param = ( $is_per_product )
|
94 |
+
? get_post_meta( $_product_id, '_' . 'wcj_product_price_by_formula_param_' . $i, true )
|
95 |
: get_option( 'wcj_product_price_by_formula_param_' . $i, '' );
|
96 |
$the_param = do_shortcode( $the_param );
|
97 |
if ( '' != $the_param ) {
|
116 |
/**
|
117 |
* get_variation_prices_hash.
|
118 |
*
|
119 |
+
* @version 2.7.0
|
120 |
* @since 2.5.0
|
121 |
*/
|
122 |
function get_variation_prices_hash( $price_hash, $_product, $display ) {
|
123 |
if ( $this->is_price_by_formula_product( $_product ) ) {
|
124 |
$the_formula = get_option( 'wcj_product_price_by_formula_eval', '' );
|
125 |
+
$total_params = get_post_meta( wcj_get_product_id_or_variation_parent_id( $_product ), '_' . 'wcj_product_price_by_formula_total_params', true );
|
126 |
$the_params = array();
|
127 |
for ( $i = 1; $i <= $total_params; $i++ ) {
|
128 |
$the_params[] = get_option( 'wcj_product_price_by_formula_param_' . $i, '' );
|
199 |
/**
|
200 |
* is_price_by_formula_product.
|
201 |
*
|
202 |
+
* @version 2.7.0
|
203 |
* @since 2.5.0
|
204 |
*/
|
205 |
function is_price_by_formula_product( $_product ) {
|
206 |
return (
|
207 |
'yes' === apply_filters( 'booster_get_option', 'no', get_option( 'wcj_product_price_by_formula_enable_for_all_products', 'no' ) ) ||
|
208 |
+
'yes' === get_post_meta( wcj_get_product_id_or_variation_parent_id( $_product ), '_' . 'wcj_product_price_by_formula_enabled', true )
|
209 |
);
|
210 |
}
|
211 |
|
271 |
/**
|
272 |
* create_meta_box.
|
273 |
*
|
274 |
+
* @version 2.7.0
|
275 |
* @since 2.5.0
|
276 |
*/
|
277 |
function create_meta_box() {
|
281 |
$the_product = wc_get_product();
|
282 |
if ( $this->is_price_by_formula_product( $the_product ) ) {
|
283 |
$the_price = $the_product->get_price();
|
284 |
+
$the_price = $this->change_price( $the_price, $the_product, true );
|
285 |
echo '<h4>' . __( 'Final Price Preview', 'woocommerce-jetpack' ) . '</h4>';
|
286 |
echo wc_price( $the_price );
|
287 |
}
|
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 |
|
@@ -39,7 +39,7 @@ class WCJ_Product_Tabs extends WCJ_Module {
|
|
39 |
/**
|
40 |
* Customize the product tabs.
|
41 |
*
|
42 |
-
* @version 2.
|
43 |
*/
|
44 |
function customize_product_tabs( $tabs ) {
|
45 |
|
@@ -77,6 +77,8 @@ class WCJ_Product_Tabs extends WCJ_Module {
|
|
77 |
$key = 'global_' . $i;
|
78 |
if ( '' != get_option( 'wcj_custom_product_tabs_title_' . $key, '' ) && '' != get_option( 'wcj_custom_product_tabs_content_' . $key, '' ) ) {
|
79 |
|
|
|
|
|
80 |
// Exclude by product id
|
81 |
$array_to_exclude = get_option( 'wcj_custom_product_tabs_global_hide_in_products_' . $i );
|
82 |
if ( '' == $array_to_exclude || empty( $array_to_exclude ) ) {
|
@@ -86,7 +88,7 @@ class WCJ_Product_Tabs extends WCJ_Module {
|
|
86 |
}
|
87 |
}
|
88 |
if ( '' != $array_to_exclude && ! empty( $array_to_exclude ) ) {
|
89 |
-
if ( $product && $array_to_exclude && in_array( $
|
90 |
continue;
|
91 |
}
|
92 |
}
|
@@ -101,7 +103,7 @@ class WCJ_Product_Tabs extends WCJ_Module {
|
|
101 |
}
|
102 |
if ( '' != $array_to_exclude && ! empty( $array_to_exclude ) ) {
|
103 |
$do_exclude = false;
|
104 |
-
$product_categories_objects = get_the_terms( $
|
105 |
if ( $product_categories_objects && ! empty( $product_categories_objects ) ) {
|
106 |
foreach ( $product_categories_objects as $product_categories_object ) {
|
107 |
if ( $product && $array_to_exclude && in_array( $product_categories_object->term_id, $array_to_exclude ) ) {
|
@@ -119,7 +121,7 @@ class WCJ_Product_Tabs extends WCJ_Module {
|
|
119 |
$array_to_exclude = get_option( 'wcj_custom_product_tabs_global_hide_in_tags_' . $i );
|
120 |
if ( '' != $array_to_exclude && ! empty( $array_to_exclude ) ) {
|
121 |
$do_exclude = false;
|
122 |
-
$product_tags_objects = get_the_terms( $
|
123 |
if ( $product_tags_objects && ! empty( $product_tags_objects ) ) {
|
124 |
foreach ( $product_tags_objects as $product_tags_object ) {
|
125 |
if ( $product && $array_to_exclude && in_array( $product_tags_object->term_id, $array_to_exclude ) ) {
|
@@ -143,7 +145,7 @@ class WCJ_Product_Tabs extends WCJ_Module {
|
|
143 |
}
|
144 |
if ( '' != $array_to_include && ! empty( $array_to_include ) ) {
|
145 |
// If NOT in array then hide this tab for this product
|
146 |
-
if ( $product && $array_to_include && ! in_array( $
|
147 |
continue;
|
148 |
}
|
149 |
}
|
@@ -158,7 +160,7 @@ class WCJ_Product_Tabs extends WCJ_Module {
|
|
158 |
}
|
159 |
if ( '' != $array_to_include && ! empty( $array_to_include ) ) {
|
160 |
$do_include = false;
|
161 |
-
$product_categories_objects = get_the_terms( $
|
162 |
if ( $product_categories_objects && ! empty( $product_categories_objects ) ) {
|
163 |
foreach ( $product_categories_objects as $product_categories_object ) {
|
164 |
if ( $product && $array_to_include && in_array( $product_categories_object->term_id, $array_to_include ) ) {
|
@@ -176,7 +178,7 @@ class WCJ_Product_Tabs extends WCJ_Module {
|
|
176 |
$array_to_include = get_option( 'wcj_custom_product_tabs_global_show_in_tags_' . $i );
|
177 |
if ( '' != $array_to_include && ! empty( $array_to_include ) ) {
|
178 |
$do_include = false;
|
179 |
-
$product_tags_objects = get_the_terms( $
|
180 |
if ( $product_tags_objects && ! empty( $product_tags_objects ) ) {
|
181 |
foreach ( $product_tags_objects as $product_tags_object ) {
|
182 |
if ( $product && $array_to_include && in_array( $product_tags_object->term_id, $array_to_include ) ) {
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Tabs class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
39 |
/**
|
40 |
* Customize the product tabs.
|
41 |
*
|
42 |
+
* @version 2.7.0
|
43 |
*/
|
44 |
function customize_product_tabs( $tabs ) {
|
45 |
|
77 |
$key = 'global_' . $i;
|
78 |
if ( '' != get_option( 'wcj_custom_product_tabs_title_' . $key, '' ) && '' != get_option( 'wcj_custom_product_tabs_content_' . $key, '' ) ) {
|
79 |
|
80 |
+
$_product_id = wcj_get_product_id_or_variation_parent_id( $product );
|
81 |
+
|
82 |
// Exclude by product id
|
83 |
$array_to_exclude = get_option( 'wcj_custom_product_tabs_global_hide_in_products_' . $i );
|
84 |
if ( '' == $array_to_exclude || empty( $array_to_exclude ) ) {
|
88 |
}
|
89 |
}
|
90 |
if ( '' != $array_to_exclude && ! empty( $array_to_exclude ) ) {
|
91 |
+
if ( $product && $array_to_exclude && in_array( $_product_id, $array_to_exclude ) ) {
|
92 |
continue;
|
93 |
}
|
94 |
}
|
103 |
}
|
104 |
if ( '' != $array_to_exclude && ! empty( $array_to_exclude ) ) {
|
105 |
$do_exclude = false;
|
106 |
+
$product_categories_objects = get_the_terms( $_product_id, 'product_cat' );
|
107 |
if ( $product_categories_objects && ! empty( $product_categories_objects ) ) {
|
108 |
foreach ( $product_categories_objects as $product_categories_object ) {
|
109 |
if ( $product && $array_to_exclude && in_array( $product_categories_object->term_id, $array_to_exclude ) ) {
|
121 |
$array_to_exclude = get_option( 'wcj_custom_product_tabs_global_hide_in_tags_' . $i );
|
122 |
if ( '' != $array_to_exclude && ! empty( $array_to_exclude ) ) {
|
123 |
$do_exclude = false;
|
124 |
+
$product_tags_objects = get_the_terms( $_product_id, 'product_tag' );
|
125 |
if ( $product_tags_objects && ! empty( $product_tags_objects ) ) {
|
126 |
foreach ( $product_tags_objects as $product_tags_object ) {
|
127 |
if ( $product && $array_to_exclude && in_array( $product_tags_object->term_id, $array_to_exclude ) ) {
|
145 |
}
|
146 |
if ( '' != $array_to_include && ! empty( $array_to_include ) ) {
|
147 |
// If NOT in array then hide this tab for this product
|
148 |
+
if ( $product && $array_to_include && ! in_array( $_product_id, $array_to_include ) ) {
|
149 |
continue;
|
150 |
}
|
151 |
}
|
160 |
}
|
161 |
if ( '' != $array_to_include && ! empty( $array_to_include ) ) {
|
162 |
$do_include = false;
|
163 |
+
$product_categories_objects = get_the_terms( $_product_id, 'product_cat' );
|
164 |
if ( $product_categories_objects && ! empty( $product_categories_objects ) ) {
|
165 |
foreach ( $product_categories_objects as $product_categories_object ) {
|
166 |
if ( $product && $array_to_include && in_array( $product_categories_object->term_id, $array_to_include ) ) {
|
178 |
$array_to_include = get_option( 'wcj_custom_product_tabs_global_show_in_tags_' . $i );
|
179 |
if ( '' != $array_to_include && ! empty( $array_to_include ) ) {
|
180 |
$do_include = false;
|
181 |
+
$product_tags_objects = get_the_terms( $_product_id, 'product_tag' );
|
182 |
if ( $product_tags_objects && ! empty( $product_tags_objects ) ) {
|
183 |
foreach ( $product_tags_objects as $product_tags_object ) {
|
184 |
if ( $product && $array_to_include && in_array( $product_tags_object->term_id, $array_to_include ) ) {
|
includes/class-wcj-products-per-page.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Products per Page class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.6.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -18,7 +18,7 @@ class WCJ_Products_Per_Page extends WCJ_Module {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
* @since 2.6.0
|
23 |
* @todo position priority for every hook
|
24 |
* @todo post or get
|
@@ -27,7 +27,7 @@ class WCJ_Products_Per_Page extends WCJ_Module {
|
|
27 |
|
28 |
$this->id = 'products_per_page';
|
29 |
$this->short_desc = __( 'Products per Page', 'woocommerce-jetpack' );
|
30 |
-
$this->desc = __( '
|
31 |
$this->link = 'http://booster.io/features/woocommerce-products-per-page/';
|
32 |
parent::__construct();
|
33 |
|
@@ -83,8 +83,8 @@ class WCJ_Products_Per_Page extends WCJ_Module {
|
|
83 |
if ( 2 === count( $the_option ) ) {
|
84 |
$sort_id = $the_option[1];
|
85 |
$sort_name = $the_option[0];
|
86 |
-
$sort_id
|
87 |
-
$sort_id
|
88 |
$sort_name = str_replace( "\n", '', $sort_name );
|
89 |
$sort_name = str_replace( "\r", '', $sort_name );
|
90 |
$html .= '<option value="' . $sort_id . '" ' . selected( $products_per_page, $sort_id, false ) . ' >' . $sort_name . '</option>';
|
@@ -115,26 +115,6 @@ class WCJ_Products_Per_Page extends WCJ_Module {
|
|
115 |
return $the_number;
|
116 |
}
|
117 |
|
118 |
-
/**
|
119 |
-
* get_settings.
|
120 |
-
*
|
121 |
-
* @version 2.6.0
|
122 |
-
* @since 2.6.0
|
123 |
-
*/
|
124 |
-
function get_settings() {
|
125 |
-
return $this->add_standard_settings( apply_filters( 'wcj_products_per_page_settings', array() ) );
|
126 |
-
}
|
127 |
-
|
128 |
-
/*
|
129 |
-
* add_settings_hook.
|
130 |
-
*
|
131 |
-
* @version 2.6.0
|
132 |
-
* @since 2.6.0
|
133 |
-
*/
|
134 |
-
function add_settings_hook() {
|
135 |
-
add_filter( 'wcj_products_per_page_settings', array( $this, 'add_settings' ) );
|
136 |
-
}
|
137 |
-
|
138 |
/*
|
139 |
* add_settings.
|
140 |
*
|
4 |
*
|
5 |
* The WooCommerce Jetpack Products per Page class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.6.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
* @since 2.6.0
|
23 |
* @todo position priority for every hook
|
24 |
* @todo post or get
|
27 |
|
28 |
$this->id = 'products_per_page';
|
29 |
$this->short_desc = __( 'Products per Page', 'woocommerce-jetpack' );
|
30 |
+
$this->desc = __( 'Add "products per page" selector to WooCommerce.', 'woocommerce-jetpack' );
|
31 |
$this->link = 'http://booster.io/features/woocommerce-products-per-page/';
|
32 |
parent::__construct();
|
33 |
|
83 |
if ( 2 === count( $the_option ) ) {
|
84 |
$sort_id = $the_option[1];
|
85 |
$sort_name = $the_option[0];
|
86 |
+
$sort_id = str_replace( "\n", '', $sort_id );
|
87 |
+
$sort_id = str_replace( "\r", '', $sort_id );
|
88 |
$sort_name = str_replace( "\n", '', $sort_name );
|
89 |
$sort_name = str_replace( "\r", '', $sort_name );
|
90 |
$html .= '<option value="' . $sort_id . '" ' . selected( $products_per_page, $sort_id, false ) . ' >' . $sort_name . '</option>';
|
115 |
return $the_number;
|
116 |
}
|
117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
/*
|
119 |
* add_settings.
|
120 |
*
|
includes/class-wcj-products-xml.php
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
* @version 2.6.0
|
8 |
* @since 2.5.7
|
9 |
* @author Algoritmika Ltd.
|
10 |
-
* @todo create all files at once (manually and synchronize update)
|
11 |
*/
|
12 |
|
13 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
@@ -22,7 +22,7 @@ class WCJ_Products_XML extends WCJ_Module {
|
|
22 |
* @version 2.5.7
|
23 |
* @since 2.5.7
|
24 |
*/
|
25 |
-
|
26 |
|
27 |
$this->id = 'products_xml';
|
28 |
$this->short_desc = __( 'Products XML', 'woocommerce-jetpack' );
|
7 |
* @version 2.6.0
|
8 |
* @since 2.5.7
|
9 |
* @author Algoritmika Ltd.
|
10 |
+
* @todo create all files at once (manually and synchronize update)
|
11 |
*/
|
12 |
|
13 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
22 |
* @version 2.5.7
|
23 |
* @since 2.5.7
|
24 |
*/
|
25 |
+
function __construct() {
|
26 |
|
27 |
$this->id = 'products_xml';
|
28 |
$this->short_desc = __( 'Products XML', 'woocommerce-jetpack' );
|
includes/class-wcj-purchase-data.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Purchase Data class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -60,7 +60,7 @@ class WCJ_Purchase_Data extends WCJ_Module {
|
|
60 |
* Output custom columns for orders
|
61 |
*
|
62 |
* @param string $column
|
63 |
-
* @version 2.
|
64 |
* @since 2.2.4
|
65 |
* @todo forecasted profit
|
66 |
*/
|
@@ -78,7 +78,8 @@ class WCJ_Purchase_Data extends WCJ_Module {
|
|
78 |
if ( 0 != ( $purchase_price = wc_get_product_purchase_price( $product_id ) ) ) {
|
79 |
if ( 'profit' === $column ) {
|
80 |
// $line_total = ( 'yes' === get_option('woocommerce_prices_include_tax') ) ? ( $item['line_total'] + $item['line_tax'] ) : $item['line_total'];
|
81 |
-
$
|
|
|
82 |
$value = $line_total - $purchase_price * $item['qty'];
|
83 |
} else { // if ( 'purchase_cost' === $column )
|
84 |
$value = $purchase_price * $item['qty'];
|
@@ -101,7 +102,7 @@ class WCJ_Purchase_Data extends WCJ_Module {
|
|
101 |
/**
|
102 |
* get_meta_box_options.
|
103 |
*
|
104 |
-
* @version 2.
|
105 |
* @since 2.4.5
|
106 |
* @todo wcj_purchase_price_currency
|
107 |
*/
|
@@ -113,7 +114,7 @@ class WCJ_Purchase_Data extends WCJ_Module {
|
|
113 |
$available_variations = $_product->get_available_variations();
|
114 |
foreach ( $available_variations as $variation ) {
|
115 |
$variation_product = wc_get_product( $variation['variation_id'] );
|
116 |
-
$products[ $variation['variation_id'] ] = ' (' . $variation_product
|
117 |
}
|
118 |
} else {
|
119 |
$products[ $main_product_id ] = '';
|
@@ -213,7 +214,7 @@ class WCJ_Purchase_Data extends WCJ_Module {
|
|
213 |
/**
|
214 |
* create_meta_box.
|
215 |
*
|
216 |
-
* @version 2.
|
217 |
* @since 2.4.5
|
218 |
* @todo min_profit
|
219 |
*/
|
@@ -229,7 +230,7 @@ class WCJ_Purchase_Data extends WCJ_Module {
|
|
229 |
$available_variations = $_product->get_available_variations();
|
230 |
foreach ( $available_variations as $variation ) {
|
231 |
$variation_product = wc_get_product( $variation['variation_id'] );
|
232 |
-
$products[ $variation['variation_id'] ] = ' (' . $variation_product
|
233 |
}
|
234 |
} else {
|
235 |
$products[ $main_product_id ] = '';
|
4 |
*
|
5 |
* The WooCommerce Jetpack Purchase Data class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
60 |
* Output custom columns for orders
|
61 |
*
|
62 |
* @param string $column
|
63 |
+
* @version 2.7.0
|
64 |
* @since 2.2.4
|
65 |
* @todo forecasted profit
|
66 |
*/
|
78 |
if ( 0 != ( $purchase_price = wc_get_product_purchase_price( $product_id ) ) ) {
|
79 |
if ( 'profit' === $column ) {
|
80 |
// $line_total = ( 'yes' === get_option('woocommerce_prices_include_tax') ) ? ( $item['line_total'] + $item['line_tax'] ) : $item['line_total'];
|
81 |
+
$_order_prices_include_tax = ( WCJ_IS_WC_VERSION_BELOW_3 ? $the_order->prices_include_tax : $the_order->get_prices_include_tax() );
|
82 |
+
$line_total = ( $_order_prices_include_tax ) ? ( $item['line_total'] + $item['line_tax'] ) : $item['line_total'];
|
83 |
$value = $line_total - $purchase_price * $item['qty'];
|
84 |
} else { // if ( 'purchase_cost' === $column )
|
85 |
$value = $purchase_price * $item['qty'];
|
102 |
/**
|
103 |
* get_meta_box_options.
|
104 |
*
|
105 |
+
* @version 2.7.0
|
106 |
* @since 2.4.5
|
107 |
* @todo wcj_purchase_price_currency
|
108 |
*/
|
114 |
$available_variations = $_product->get_available_variations();
|
115 |
foreach ( $available_variations as $variation ) {
|
116 |
$variation_product = wc_get_product( $variation['variation_id'] );
|
117 |
+
$products[ $variation['variation_id'] ] = ' (' . wcj_get_product_formatted_variation( $variation_product, true ) . ')';
|
118 |
}
|
119 |
} else {
|
120 |
$products[ $main_product_id ] = '';
|
214 |
/**
|
215 |
* create_meta_box.
|
216 |
*
|
217 |
+
* @version 2.7.0
|
218 |
* @since 2.4.5
|
219 |
* @todo min_profit
|
220 |
*/
|
230 |
$available_variations = $_product->get_available_variations();
|
231 |
foreach ( $available_variations as $variation ) {
|
232 |
$variation_product = wc_get_product( $variation['variation_id'] );
|
233 |
+
$products[ $variation['variation_id'] ] = ' (' . wcj_get_product_formatted_variation( $variation_product, true ) . ')';
|
234 |
}
|
235 |
} else {
|
236 |
$products[ $main_product_id ] = '';
|
includes/class-wcj-related-products.php
CHANGED
@@ -34,7 +34,7 @@ class WCJ_Related_Products extends WCJ_Module {
|
|
34 |
*
|
35 |
* @version 2.6.0
|
36 |
*/
|
37 |
-
|
38 |
|
39 |
$this->id = 'related_products';
|
40 |
$this->short_desc = __( 'Related Products', 'woocommerce-jetpack' );
|
34 |
*
|
35 |
* @version 2.6.0
|
36 |
*/
|
37 |
+
function __construct() {
|
38 |
|
39 |
$this->id = 'related_products';
|
40 |
$this->short_desc = __( 'Related Products', 'woocommerce-jetpack' );
|
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 |
|
@@ -28,7 +28,7 @@ class WCJ_Reports extends WCJ_Module {
|
|
28 |
*
|
29 |
* @version 2.5.0
|
30 |
*/
|
31 |
-
|
32 |
|
33 |
$this->id = 'reports';
|
34 |
$this->short_desc = __( 'Reports', 'woocommerce-jetpack' );
|
@@ -58,24 +58,25 @@ class WCJ_Reports extends WCJ_Module {
|
|
58 |
/**
|
59 |
* add_custom_order_reports_ranges_by_month_to_admin_bar.
|
60 |
*
|
61 |
-
* @version 2.
|
62 |
* @since 2.2.4
|
63 |
*/
|
64 |
-
|
65 |
-
$is_reports
|
66 |
-
$is_orders_reports = ( isset( $_GET['tab'] )
|
67 |
if ( $is_reports && $is_orders_reports ) {
|
68 |
|
69 |
$parent = 'reports_orders_more_ranges_months';
|
70 |
$args = array(
|
71 |
'parent' => false,
|
72 |
-
'id'
|
73 |
-
'title'
|
74 |
-
'href'
|
75 |
-
'meta'
|
76 |
);
|
77 |
$wp_admin_bar->add_node( $args );
|
78 |
|
|
|
79 |
for ( $i = 1; $i <= 12; $i++ ) {
|
80 |
$month_start_date = date( 'Y-m-01' ) . "-$i months";
|
81 |
$month_num = date( 'm', strtotime( $month_start_date ) );
|
@@ -86,7 +87,12 @@ class WCJ_Reports extends WCJ_Module {
|
|
86 |
'parent' => $parent,
|
87 |
'id' => $parent . '_' . $month_num,
|
88 |
'title' => $month_name,
|
89 |
-
'href' => add_query_arg( array(
|
|
|
|
|
|
|
|
|
|
|
90 |
'meta' => array( 'title' => $month_name ),
|
91 |
);
|
92 |
$wp_admin_bar->add_node( $node );
|
@@ -96,88 +102,90 @@ class WCJ_Reports extends WCJ_Module {
|
|
96 |
|
97 |
/**
|
98 |
* add_custom_order_reports_ranges_to_admin_bar.
|
|
|
|
|
99 |
*/
|
100 |
-
|
101 |
-
$is_reports
|
102 |
-
$is_orders_reports = ( isset( $_GET['tab'] )
|
103 |
if ( $is_reports && $is_orders_reports ) {
|
104 |
|
105 |
$parent = 'reports_orders_more_ranges';
|
106 |
$args = array(
|
107 |
'parent' => false,
|
108 |
-
'id'
|
109 |
-
'title'
|
110 |
-
'href'
|
111 |
-
'meta'
|
112 |
);
|
113 |
$wp_admin_bar->add_node( $args );
|
114 |
|
115 |
-
$
|
116 |
-
array(
|
117 |
-
'
|
118 |
-
'
|
119 |
-
'
|
120 |
-
'href' => add_query_arg( array( 'range' => 'custom', 'start_date' => date( 'Y-m-d', strtotime( '-14 days' ) ), 'end_date' => date( 'Y-m-d' ), ) ),
|
121 |
-
'meta' => array( 'title' => __( 'Last 14 Days', 'woocommerce-jetpack' ), ),
|
122 |
),
|
123 |
-
array(
|
124 |
-
'
|
125 |
-
'
|
126 |
-
'
|
127 |
-
'href' => add_query_arg( array( 'range' => 'custom', 'start_date' => date( 'Y-m-d', strtotime( '-30 days' ) ), 'end_date' => date( 'Y-m-d' ), ) ),
|
128 |
-
'meta' => array( 'title' => __( 'Last 30 Days', 'woocommerce-jetpack' ), ),
|
129 |
),
|
130 |
-
array(
|
131 |
-
'
|
132 |
-
'
|
133 |
-
'
|
134 |
-
'href' => add_query_arg( array( 'range' => 'custom', 'start_date' => date( 'Y-m-d', strtotime( '-3 months' ) ), 'end_date' => date( 'Y-m-d' ), ) ),
|
135 |
-
'meta' => array( 'title' => __( 'Last 3 Months', 'woocommerce-jetpack' ), ),
|
136 |
),
|
137 |
-
array(
|
138 |
-
'
|
139 |
-
'
|
140 |
-
'
|
141 |
-
'href' => add_query_arg( array( 'range' => 'custom', 'start_date' => date( 'Y-m-d', strtotime( '-6 months' ) ), 'end_date' => date( 'Y-m-d' ), ) ),
|
142 |
-
'meta' => array( 'title' => __( 'Last 6 Months', 'woocommerce-jetpack' ), ),
|
143 |
),
|
144 |
-
array(
|
145 |
-
'
|
146 |
-
'
|
147 |
-
'
|
148 |
-
'href' => add_query_arg( array( 'range' => 'custom', 'start_date' => date( 'Y-m-d', strtotime( '-12 months' ) ), 'end_date' => date( 'Y-m-d' ), ) ),
|
149 |
-
'meta' => array( 'title' => __( 'Last 12 Months', 'woocommerce-jetpack' ), ),
|
150 |
),
|
151 |
-
array(
|
152 |
-
'
|
153 |
-
'
|
154 |
-
'
|
155 |
-
'href' => add_query_arg( array( 'range' => 'custom', 'start_date' => date( 'Y-m-d', strtotime( '-24 months' ) ), 'end_date' => date( 'Y-m-d' ), ) ),
|
156 |
-
'meta' => array( 'title' => __( 'Last 24 Months', 'woocommerce-jetpack' ), ),
|
157 |
),
|
158 |
-
array(
|
159 |
-
'
|
160 |
-
'
|
161 |
-
'
|
162 |
-
'href' => add_query_arg( array( 'range' => 'custom', 'start_date' => date( 'Y-m-01', strtotime( '-1 month' ) ), 'end_date' => date( 'Y-m-d', strtotime( '-1 month' ) ), ) ),
|
163 |
-
'meta' => array( 'title' => __( 'Same Days Last Month', 'woocommerce-jetpack' ), ),
|
164 |
),
|
165 |
-
|
166 |
-
'
|
167 |
-
'
|
168 |
-
'
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
'
|
174 |
-
'id' => $parent . '_' . 'last_year',
|
175 |
-
'title' => __( 'Last Year', 'woocommerce-jetpack' ),
|
176 |
-
'href' => add_query_arg( array( 'range' => 'custom', 'start_date' => date( 'Y-01-01', strtotime( '-1 year' ) ), 'end_date' => date( 'Y-12-31', strtotime( '-1 year' ) ), ) ),
|
177 |
-
'meta' => array( 'title' => __( 'Last Year', 'woocommerce-jetpack' ), ),
|
178 |
),
|
|
|
|
|
|
|
|
|
|
|
179 |
);
|
180 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
$wp_admin_bar->add_node( $node );
|
182 |
}
|
183 |
}
|
@@ -186,7 +194,7 @@ class WCJ_Reports extends WCJ_Module {
|
|
186 |
/**
|
187 |
* catch_arguments.
|
188 |
*/
|
189 |
-
|
190 |
$this->report_id = isset( $_GET['report'] ) ? $_GET['report'] : 'on_stock';
|
191 |
$this->range_days = isset( $_GET['period'] ) ? $_GET['period'] : 30;
|
192 |
$this->group_countries = ( 'customers_by_country_sets' === $this->report_id ) ? 'yes' : 'no';
|
@@ -195,7 +203,7 @@ class WCJ_Reports extends WCJ_Module {
|
|
195 |
/**
|
196 |
* get_report_sales.
|
197 |
*/
|
198 |
-
|
199 |
$report = new WCJ_Reports_Sales();
|
200 |
echo $report->get_report();
|
201 |
}
|
@@ -213,7 +221,7 @@ class WCJ_Reports extends WCJ_Module {
|
|
213 |
/**
|
214 |
* get_report_stock.
|
215 |
*/
|
216 |
-
|
217 |
$report = new WCJ_Reports_Stock( array (
|
218 |
'report_id' => $this->report_id,
|
219 |
'range_days' => $this->range_days,
|
@@ -224,7 +232,7 @@ class WCJ_Reports extends WCJ_Module {
|
|
224 |
/**
|
225 |
* get_report_customers.
|
226 |
*/
|
227 |
-
|
228 |
$report = new WCJ_Reports_Customers( array ( 'group_countries' => $this->group_countries ) );
|
229 |
echo $report->get_report();
|
230 |
}
|
@@ -235,7 +243,7 @@ class WCJ_Reports extends WCJ_Module {
|
|
235 |
* @version 2.5.3
|
236 |
* @since 2.3.0
|
237 |
*/
|
238 |
-
|
239 |
|
240 |
$reports['orders']['reports']['booster_products_sales'] = array(
|
241 |
'title' => __( 'Booster: Product Sales', 'woocommerce-jetpack' ),
|
@@ -257,7 +265,7 @@ class WCJ_Reports extends WCJ_Module {
|
|
257 |
/**
|
258 |
* Add reports to WooCommerce > Reports > Stock
|
259 |
*/
|
260 |
-
|
261 |
|
262 |
$reports['stock']['reports']['on_stock'] = array(
|
263 |
'title' => __( 'Booster: All in stock', 'woocommerce-jetpack' ),
|
@@ -286,7 +294,7 @@ class WCJ_Reports extends WCJ_Module {
|
|
286 |
/**
|
287 |
* Add reports to WooCommerce > Reports > Customers
|
288 |
*/
|
289 |
-
|
290 |
|
291 |
$reports['customers']['reports']['customers_by_country'] = array(
|
292 |
'title' => __( 'Booster: Customers by Country', 'woocommerce-jetpack' ),
|
4 |
*
|
5 |
* The WooCommerce Jetpack Reports class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
28 |
*
|
29 |
* @version 2.5.0
|
30 |
*/
|
31 |
+
function __construct() {
|
32 |
|
33 |
$this->id = 'reports';
|
34 |
$this->short_desc = __( 'Reports', 'woocommerce-jetpack' );
|
58 |
/**
|
59 |
* add_custom_order_reports_ranges_by_month_to_admin_bar.
|
60 |
*
|
61 |
+
* @version 2.7.0
|
62 |
* @since 2.2.4
|
63 |
*/
|
64 |
+
function add_custom_order_reports_ranges_by_month_to_admin_bar( $wp_admin_bar ) {
|
65 |
+
$is_reports = ( isset( $_GET['page'] ) && 'wc-reports' === $_GET['page'] );
|
66 |
+
$is_orders_reports = ( isset( $_GET['tab'] ) && 'orders' === $_GET['tab'] || ! isset( $_GET['tab'] ) );
|
67 |
if ( $is_reports && $is_orders_reports ) {
|
68 |
|
69 |
$parent = 'reports_orders_more_ranges_months';
|
70 |
$args = array(
|
71 |
'parent' => false,
|
72 |
+
'id' => $parent,
|
73 |
+
'title' => __( 'Booster: More Ranges - Months', 'woocommerce-jetpack' ),
|
74 |
+
'href' => false,
|
75 |
+
'meta' => array( 'title' => __( 'Select Range', 'woocommerce-jetpack' ) ),
|
76 |
);
|
77 |
$wp_admin_bar->add_node( $args );
|
78 |
|
79 |
+
$custom_range_nonce = wp_create_nonce( 'custom_range' );
|
80 |
for ( $i = 1; $i <= 12; $i++ ) {
|
81 |
$month_start_date = date( 'Y-m-01' ) . "-$i months";
|
82 |
$month_num = date( 'm', strtotime( $month_start_date ) );
|
87 |
'parent' => $parent,
|
88 |
'id' => $parent . '_' . $month_num,
|
89 |
'title' => $month_name,
|
90 |
+
'href' => add_query_arg( array(
|
91 |
+
'range' => 'custom',
|
92 |
+
'start_date' => $start_date,
|
93 |
+
'end_date' => $end_date,
|
94 |
+
'wc_reports_nonce' => $custom_range_nonce,
|
95 |
+
) ),
|
96 |
'meta' => array( 'title' => $month_name ),
|
97 |
);
|
98 |
$wp_admin_bar->add_node( $node );
|
102 |
|
103 |
/**
|
104 |
* add_custom_order_reports_ranges_to_admin_bar.
|
105 |
+
*
|
106 |
+
* @version 2.7.0
|
107 |
*/
|
108 |
+
function add_custom_order_reports_ranges_to_admin_bar( $wp_admin_bar ) {
|
109 |
+
$is_reports = ( isset( $_GET['page'] ) && 'wc-reports' === $_GET['page'] );
|
110 |
+
$is_orders_reports = ( isset( $_GET['tab'] ) && 'orders' === $_GET['tab'] || ! isset( $_GET['tab'] ) );
|
111 |
if ( $is_reports && $is_orders_reports ) {
|
112 |
|
113 |
$parent = 'reports_orders_more_ranges';
|
114 |
$args = array(
|
115 |
'parent' => false,
|
116 |
+
'id' => $parent,
|
117 |
+
'title' => __( 'Booster: More Ranges', 'woocommerce-jetpack' ),
|
118 |
+
'href' => false,
|
119 |
+
'meta' => array( 'title' => __( 'Select Range', 'woocommerce-jetpack' ) ),
|
120 |
);
|
121 |
$wp_admin_bar->add_node( $args );
|
122 |
|
123 |
+
$custom_ranges = array(
|
124 |
+
'last_14_days' => array(
|
125 |
+
'title' => __( 'Last 14 Days', 'woocommerce-jetpack' ),
|
126 |
+
'start_date' => date( 'Y-m-d', strtotime( '-14 days' ) ),
|
127 |
+
'end_date' => date( 'Y-m-d' ),
|
|
|
|
|
128 |
),
|
129 |
+
'last_30_days' => array(
|
130 |
+
'title' => __( 'Last 30 Days', 'woocommerce-jetpack' ),
|
131 |
+
'start_date' => date( 'Y-m-d', strtotime( '-30 days' ) ),
|
132 |
+
'end_date' => date( 'Y-m-d' ),
|
|
|
|
|
133 |
),
|
134 |
+
'last_3_months' => array(
|
135 |
+
'title' => __( 'Last 3 Months', 'woocommerce-jetpack' ),
|
136 |
+
'start_date' => date( 'Y-m-d', strtotime( '-3 months' ) ),
|
137 |
+
'end_date' => date( 'Y-m-d' ),
|
|
|
|
|
138 |
),
|
139 |
+
'last_6_months' => array(
|
140 |
+
'title' => __( 'Last 6 Months', 'woocommerce-jetpack' ),
|
141 |
+
'start_date' => date( 'Y-m-d', strtotime( '-6 months' ) ),
|
142 |
+
'end_date' => date( 'Y-m-d' ),
|
|
|
|
|
143 |
),
|
144 |
+
'last_12_months' => array(
|
145 |
+
'title' => __( 'Last 12 Months', 'woocommerce-jetpack' ),
|
146 |
+
'start_date' => date( 'Y-m-d', strtotime( '-12 months' ) ),
|
147 |
+
'end_date' => date( 'Y-m-d' ),
|
|
|
|
|
148 |
),
|
149 |
+
'last_24_months' => array(
|
150 |
+
'title' => __( 'Last 24 Months', 'woocommerce-jetpack' ),
|
151 |
+
'start_date' => date( 'Y-m-d', strtotime( '-24 months' ) ),
|
152 |
+
'end_date' => date( 'Y-m-d' ),
|
|
|
|
|
153 |
),
|
154 |
+
'same_days_last_month' => array(
|
155 |
+
'title' => __( 'Same Days Last Month', 'woocommerce-jetpack' ),
|
156 |
+
'start_date' => date( 'Y-m-01', strtotime( '-1 month' ) ),
|
157 |
+
'end_date' => date( 'Y-m-d', strtotime( '-1 month' ) ),
|
|
|
|
|
158 |
),
|
159 |
+
'same_days_last_year' => array(
|
160 |
+
'title' => __( 'Same Days Last Year', 'woocommerce-jetpack' ),
|
161 |
+
'start_date' => date( 'Y-m-01', strtotime( '-1 year' ) ),
|
162 |
+
'end_date' => date( 'Y-m-d', strtotime( '-1 year' ) ),
|
163 |
+
),
|
164 |
+
'last_year' => array(
|
165 |
+
'title' => __( 'Last Year', 'woocommerce-jetpack' ),
|
166 |
+
'start_date' => date( 'Y-01-01', strtotime( '-1 year' ) ),
|
167 |
+
'end_date' => date( 'Y-12-31', strtotime( '-1 year' ) ),
|
|
|
|
|
|
|
|
|
168 |
),
|
169 |
+
/* 'last_week' => array(
|
170 |
+
'title' => __( 'Last Week', 'woocommerce-jetpack' ),
|
171 |
+
'start_date' => date( 'Y-m-d', strtotime( 'last monday' ) ),
|
172 |
+
'end_date' => date( 'Y-m-d', strtotime( 'last sunday' ) ),
|
173 |
+
), */
|
174 |
);
|
175 |
+
$custom_range_nonce = wp_create_nonce( 'custom_range' );
|
176 |
+
foreach ( $custom_ranges as $custom_range_id => $custom_range ) {
|
177 |
+
$node = array(
|
178 |
+
'parent' => $parent,
|
179 |
+
'id' => $parent . '_' . $custom_range_id,
|
180 |
+
'title' => $custom_range['title'],
|
181 |
+
'href' => add_query_arg( array(
|
182 |
+
'range' => 'custom',
|
183 |
+
'start_date' => $custom_range['start_date'],
|
184 |
+
'end_date' => $custom_range['end_date'],
|
185 |
+
'wc_reports_nonce' => $custom_range_nonce,
|
186 |
+
) ),
|
187 |
+
'meta' => array( 'title' => $custom_range['title'] ),
|
188 |
+
);
|
189 |
$wp_admin_bar->add_node( $node );
|
190 |
}
|
191 |
}
|
194 |
/**
|
195 |
* catch_arguments.
|
196 |
*/
|
197 |
+
function catch_arguments() {
|
198 |
$this->report_id = isset( $_GET['report'] ) ? $_GET['report'] : 'on_stock';
|
199 |
$this->range_days = isset( $_GET['period'] ) ? $_GET['period'] : 30;
|
200 |
$this->group_countries = ( 'customers_by_country_sets' === $this->report_id ) ? 'yes' : 'no';
|
203 |
/**
|
204 |
* get_report_sales.
|
205 |
*/
|
206 |
+
function get_report_sales() {
|
207 |
$report = new WCJ_Reports_Sales();
|
208 |
echo $report->get_report();
|
209 |
}
|
221 |
/**
|
222 |
* get_report_stock.
|
223 |
*/
|
224 |
+
function get_report_stock() {
|
225 |
$report = new WCJ_Reports_Stock( array (
|
226 |
'report_id' => $this->report_id,
|
227 |
'range_days' => $this->range_days,
|
232 |
/**
|
233 |
* get_report_customers.
|
234 |
*/
|
235 |
+
function get_report_customers() {
|
236 |
$report = new WCJ_Reports_Customers( array ( 'group_countries' => $this->group_countries ) );
|
237 |
echo $report->get_report();
|
238 |
}
|
243 |
* @version 2.5.3
|
244 |
* @since 2.3.0
|
245 |
*/
|
246 |
+
function add_sales_reports( $reports ) {
|
247 |
|
248 |
$reports['orders']['reports']['booster_products_sales'] = array(
|
249 |
'title' => __( 'Booster: Product Sales', 'woocommerce-jetpack' ),
|
265 |
/**
|
266 |
* Add reports to WooCommerce > Reports > Stock
|
267 |
*/
|
268 |
+
function add_stock_reports( $reports ) {
|
269 |
|
270 |
$reports['stock']['reports']['on_stock'] = array(
|
271 |
'title' => __( 'Booster: All in stock', 'woocommerce-jetpack' ),
|
294 |
/**
|
295 |
* Add reports to WooCommerce > Reports > Customers
|
296 |
*/
|
297 |
+
function add_customers_by_country_report( $reports ) {
|
298 |
|
299 |
$reports['customers']['reports']['customers_by_country'] = array(
|
300 |
'title' => __( 'Booster: Customers by Country', 'woocommerce-jetpack' ),
|
includes/class-wcj-shipping-calculator.php
CHANGED
@@ -19,7 +19,7 @@ class WCJ_Shipping_Calculator extends WCJ_Module {
|
|
19 |
*
|
20 |
* @version 2.5.7
|
21 |
*/
|
22 |
-
|
23 |
|
24 |
$this->id = 'shipping_calculator';
|
25 |
$this->short_desc = __( 'Shipping Calculator', 'woocommerce-jetpack' );
|
@@ -80,7 +80,7 @@ class WCJ_Shipping_Calculator extends WCJ_Module {
|
|
80 |
/**
|
81 |
* add_custom_styles.
|
82 |
*/
|
83 |
-
|
84 |
|
85 |
$html = '<style type="text/css">';
|
86 |
|
@@ -106,14 +106,14 @@ class WCJ_Shipping_Calculator extends WCJ_Module {
|
|
106 |
/**
|
107 |
* enable_city.
|
108 |
*/
|
109 |
-
|
110 |
return ( 'yes' === get_option( 'wcj_shipping_calculator_enable_city' ) ) ? true : false;
|
111 |
}
|
112 |
|
113 |
/**
|
114 |
* enable_postcode.
|
115 |
*/
|
116 |
-
|
117 |
return ( 'yes' === get_option( 'wcj_shipping_calculator_enable_postcode' ) ) ? true : false;
|
118 |
}
|
119 |
|
19 |
*
|
20 |
* @version 2.5.7
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
|
24 |
$this->id = 'shipping_calculator';
|
25 |
$this->short_desc = __( 'Shipping Calculator', 'woocommerce-jetpack' );
|
80 |
/**
|
81 |
* add_custom_styles.
|
82 |
*/
|
83 |
+
function add_custom_styles() {
|
84 |
|
85 |
$html = '<style type="text/css">';
|
86 |
|
106 |
/**
|
107 |
* enable_city.
|
108 |
*/
|
109 |
+
function enable_city() {
|
110 |
return ( 'yes' === get_option( 'wcj_shipping_calculator_enable_city' ) ) ? true : false;
|
111 |
}
|
112 |
|
113 |
/**
|
114 |
* enable_postcode.
|
115 |
*/
|
116 |
+
function enable_postcode() {
|
117 |
return ( 'yes' === get_option( 'wcj_shipping_calculator_enable_postcode' ) ) ? true : false;
|
118 |
}
|
119 |
|
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,7 +17,7 @@ class WCJ_Shipping extends WCJ_Module {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
function __construct() {
|
23 |
|
@@ -185,27 +185,6 @@ class WCJ_Shipping extends WCJ_Module {
|
|
185 |
return $updated_settings;
|
186 |
}
|
187 |
|
188 |
-
/**
|
189 |
-
* add_settings_hook.
|
190 |
-
*
|
191 |
-
* @version 2.5.6
|
192 |
-
* @since 2.5.6
|
193 |
-
*/
|
194 |
-
function add_settings_hook() {
|
195 |
-
add_filter( 'wcj_' . $this->id . '_settings', array( $this, 'add_settings' ) );
|
196 |
-
}
|
197 |
-
|
198 |
-
/**
|
199 |
-
* get_settings.
|
200 |
-
*
|
201 |
-
* @version 2.5.6
|
202 |
-
*/
|
203 |
-
function get_settings() {
|
204 |
-
$settings = array();
|
205 |
-
$settings = apply_filters( 'wcj_' . $this->id . '_settings', $settings );
|
206 |
-
return $this->add_standard_settings( $settings );
|
207 |
-
}
|
208 |
-
|
209 |
/**
|
210 |
* add_settings.
|
211 |
*
|
4 |
*
|
5 |
* The WooCommerce Jetpack Shipping class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
function __construct() {
|
23 |
|
185 |
return $updated_settings;
|
186 |
}
|
187 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
/**
|
189 |
* add_settings.
|
190 |
*
|
includes/class-wcj-sku.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack SKU class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
* @todo add "random number" option
|
10 |
*/
|
@@ -65,13 +65,13 @@ class WCJ_SKU extends WCJ_Module {
|
|
65 |
/**
|
66 |
* get_available_variations.
|
67 |
*
|
68 |
-
* @version 2.
|
69 |
* @since 2.4.8
|
70 |
*/
|
71 |
function get_all_variations( $_product ) {
|
72 |
$all_variations = array();
|
73 |
foreach ( $_product->get_children() as $child_id ) {
|
74 |
-
$variation = $_product->get_child( $child_id );
|
75 |
$all_variations[] = $_product->get_available_variation( $variation );
|
76 |
}
|
77 |
return $all_variations;
|
@@ -80,7 +80,8 @@ class WCJ_SKU extends WCJ_Module {
|
|
80 |
/**
|
81 |
* set_sku_with_variable.
|
82 |
*
|
83 |
-
* @version 2.
|
|
|
84 |
* @todo Handle cases with more than 26 variations
|
85 |
*/
|
86 |
function set_sku_with_variable( $product_id, $is_preview ) {
|
@@ -95,16 +96,17 @@ class WCJ_SKU extends WCJ_Module {
|
|
95 |
$sku_number = $product_id;
|
96 |
}
|
97 |
|
98 |
-
$
|
|
|
|
|
99 |
|
100 |
// Handling variable products
|
101 |
$variation_handling = apply_filters( 'booster_get_option', 'as_variable', get_option( 'wcj_sku_variations_handling', 'as_variable' ) );
|
102 |
-
$product = wc_get_product( $product_id );
|
103 |
if ( $product->is_type( 'variable' ) ) {
|
104 |
$variations = $this->get_all_variations( $product );
|
105 |
if ( 'as_variable' === $variation_handling ) {
|
106 |
foreach ( $variations as $variation ) {
|
107 |
-
$this->set_sku( $variation['variation_id'], $sku_number, '', $is_preview, $product_id );
|
108 |
}
|
109 |
}
|
110 |
else if ( 'as_variation' === $variation_handling ) {
|
@@ -115,14 +117,14 @@ class WCJ_SKU extends WCJ_Module {
|
|
115 |
} else { // if 'product_id'
|
116 |
$sku_number = $variation['variation_id'];
|
117 |
}
|
118 |
-
$this->set_sku( $variation['variation_id'], $sku_number, '', $is_preview, $product_id );
|
119 |
}
|
120 |
}
|
121 |
else if ( 'as_variable_with_suffix' === $variation_handling ) {
|
122 |
$variation_suffixes = 'abcdefghijklmnopqrstuvwxyz';
|
123 |
$abc = 0;
|
124 |
foreach ( $variations as $variation ) {
|
125 |
-
$this->set_sku( $variation['variation_id'], $sku_number, $variation_suffixes[ $abc++ ], $is_preview, $product_id );
|
126 |
if ( 26 == $abc ) {
|
127 |
$abc = 0;
|
128 |
}
|
@@ -134,9 +136,12 @@ class WCJ_SKU extends WCJ_Module {
|
|
134 |
/**
|
135 |
* set_sku.
|
136 |
*
|
137 |
-
* @version 2.
|
138 |
*/
|
139 |
-
function set_sku( $product_id, $sku_number, $variation_suffix, $is_preview, $parent_product_id ) {
|
|
|
|
|
|
|
140 |
|
141 |
$category_prefix = '';
|
142 |
$category_suffix = '';
|
@@ -151,24 +156,26 @@ class WCJ_SKU extends WCJ_Module {
|
|
151 |
}
|
152 |
}
|
153 |
|
154 |
-
$the_sku = sprintf( '%s%s%0' . get_option( 'wcj_sku_minimum_number_length', 0 ) . 'd%s%s%s',
|
155 |
apply_filters( 'booster_get_option', '', $category_prefix ),
|
156 |
get_option( 'wcj_sku_prefix', '' ),
|
157 |
$sku_number,
|
158 |
get_option( 'wcj_sku_suffix', '' ),
|
159 |
$variation_suffix,
|
160 |
$category_suffix
|
161 |
-
);
|
162 |
|
163 |
if ( $is_preview ) {
|
164 |
echo '<tr>' .
|
165 |
-
'<td>' . $this->product_counter++
|
166 |
-
'<td>' .
|
167 |
-
'<td>' . $
|
168 |
-
'<td>' . $
|
|
|
|
|
169 |
'</tr>';
|
170 |
}
|
171 |
-
|
172 |
update_post_meta( $product_id, '_' . 'sku', $the_sku );
|
173 |
}
|
174 |
}
|
@@ -176,13 +183,13 @@ class WCJ_SKU extends WCJ_Module {
|
|
176 |
/**
|
177 |
* set_all_products_skus.
|
178 |
*
|
179 |
-
* @version 2.
|
180 |
*/
|
181 |
function set_all_products_skus( $is_preview ) {
|
182 |
if ( 'sequential' === apply_filters( 'booster_get_option', 'product_id', get_option( 'wcj_sku_number_generation', 'product_id' ) ) ) {
|
183 |
$this->sequential_counter = apply_filters( 'booster_get_option', 1, get_option( 'wcj_sku_number_generation_sequential', 1 ) );
|
184 |
}
|
185 |
-
$limit =
|
186 |
$offset = 0;
|
187 |
while ( TRUE ) {
|
188 |
$posts = new WP_Query( array(
|
@@ -192,11 +199,13 @@ class WCJ_SKU extends WCJ_Module {
|
|
192 |
'post_status' => 'any',
|
193 |
'order' => 'ASC',
|
194 |
'orderby' => 'date',
|
|
|
195 |
));
|
196 |
-
if ( ! $posts->have_posts() )
|
197 |
-
|
198 |
-
|
199 |
-
|
|
|
200 |
}
|
201 |
$offset += $limit;
|
202 |
}
|
@@ -229,7 +238,7 @@ class WCJ_SKU extends WCJ_Module {
|
|
229 |
/**
|
230 |
* create_sku_tool
|
231 |
*
|
232 |
-
* @version 2.
|
233 |
*/
|
234 |
function create_sku_tool() {
|
235 |
$result_message = '';
|
@@ -240,9 +249,11 @@ class WCJ_SKU extends WCJ_Module {
|
|
240 |
$preview_html .=
|
241 |
'<tr>' .
|
242 |
'<th></th>' .
|
|
|
243 |
'<th>' . __( 'Product', 'woocommerce-jetpack' ) . '</th>' .
|
244 |
'<th>' . __( 'Categories', 'woocommerce-jetpack' ) . '</th>' .
|
245 |
'<th>' . __( 'SKU', 'woocommerce-jetpack' ) . '</th>' .
|
|
|
246 |
'</tr>';
|
247 |
ob_start();
|
248 |
$this->set_all_products_skus( $is_preview );
|
@@ -264,7 +275,7 @@ class WCJ_SKU extends WCJ_Module {
|
|
264 |
/**
|
265 |
* get_settings.
|
266 |
*
|
267 |
-
* @version 2.
|
268 |
*/
|
269 |
function get_settings() {
|
270 |
$settings = array(
|
@@ -383,7 +394,7 @@ class WCJ_SKU extends WCJ_Module {
|
|
383 |
array(
|
384 |
'title' => __( 'Automatically Generate SKU for New Products', 'woocommerce-jetpack' ),
|
385 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
386 |
-
'desc_tip' => __( '
|
387 |
'id' => 'wcj_sku_new_products_generate_enabled',
|
388 |
'default' => 'yes',
|
389 |
'type' => 'checkbox',
|
@@ -395,6 +406,13 @@ class WCJ_SKU extends WCJ_Module {
|
|
395 |
'default' => 'no',
|
396 |
'type' => 'checkbox',
|
397 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
398 |
array(
|
399 |
'title' => __( 'Add SKU to Customer Emails', 'woocommerce-jetpack' ),
|
400 |
'desc' => __( 'Add', 'woocommerce-jetpack' ),
|
4 |
*
|
5 |
* The WooCommerce Jetpack SKU class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
* @todo add "random number" option
|
10 |
*/
|
65 |
/**
|
66 |
* get_available_variations.
|
67 |
*
|
68 |
+
* @version 2.7.0
|
69 |
* @since 2.4.8
|
70 |
*/
|
71 |
function get_all_variations( $_product ) {
|
72 |
$all_variations = array();
|
73 |
foreach ( $_product->get_children() as $child_id ) {
|
74 |
+
$variation = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->get_child( $child_id ) : wc_get_product( $child_id ) );
|
75 |
$all_variations[] = $_product->get_available_variation( $variation );
|
76 |
}
|
77 |
return $all_variations;
|
80 |
/**
|
81 |
* set_sku_with_variable.
|
82 |
*
|
83 |
+
* @version 2.7.0
|
84 |
+
* @todo add "pseudorandom" option (check "Order Numbers" module)
|
85 |
* @todo Handle cases with more than 26 variations
|
86 |
*/
|
87 |
function set_sku_with_variable( $product_id, $is_preview ) {
|
96 |
$sku_number = $product_id;
|
97 |
}
|
98 |
|
99 |
+
$product = wc_get_product( $product_id );
|
100 |
+
|
101 |
+
$this->set_sku( $product_id, $sku_number, '', $is_preview, $product_id, $product );
|
102 |
|
103 |
// Handling variable products
|
104 |
$variation_handling = apply_filters( 'booster_get_option', 'as_variable', get_option( 'wcj_sku_variations_handling', 'as_variable' ) );
|
|
|
105 |
if ( $product->is_type( 'variable' ) ) {
|
106 |
$variations = $this->get_all_variations( $product );
|
107 |
if ( 'as_variable' === $variation_handling ) {
|
108 |
foreach ( $variations as $variation ) {
|
109 |
+
$this->set_sku( $variation['variation_id'], $sku_number, '', $is_preview, $product_id, $product );
|
110 |
}
|
111 |
}
|
112 |
else if ( 'as_variation' === $variation_handling ) {
|
117 |
} else { // if 'product_id'
|
118 |
$sku_number = $variation['variation_id'];
|
119 |
}
|
120 |
+
$this->set_sku( $variation['variation_id'], $sku_number, '', $is_preview, $product_id, $product );
|
121 |
}
|
122 |
}
|
123 |
else if ( 'as_variable_with_suffix' === $variation_handling ) {
|
124 |
$variation_suffixes = 'abcdefghijklmnopqrstuvwxyz';
|
125 |
$abc = 0;
|
126 |
foreach ( $variations as $variation ) {
|
127 |
+
$this->set_sku( $variation['variation_id'], $sku_number, $variation_suffixes[ $abc++ ], $is_preview, $product_id, $product );
|
128 |
if ( 26 == $abc ) {
|
129 |
$abc = 0;
|
130 |
}
|
136 |
/**
|
137 |
* set_sku.
|
138 |
*
|
139 |
+
* @version 2.7.0
|
140 |
*/
|
141 |
+
function set_sku( $product_id, $sku_number, $variation_suffix, $is_preview, $parent_product_id, $_product ) {
|
142 |
+
|
143 |
+
$old_sku = $_product->get_sku();
|
144 |
+
$do_generate_new_sku = ( 'no' === get_option( 'wcj_sku_generate_only_for_empty_sku', 'no' ) || '' === $old_sku );
|
145 |
|
146 |
$category_prefix = '';
|
147 |
$category_suffix = '';
|
156 |
}
|
157 |
}
|
158 |
|
159 |
+
$the_sku = ( $do_generate_new_sku ) ? sprintf( '%s%s%0' . get_option( 'wcj_sku_minimum_number_length', 0 ) . 'd%s%s%s',
|
160 |
apply_filters( 'booster_get_option', '', $category_prefix ),
|
161 |
get_option( 'wcj_sku_prefix', '' ),
|
162 |
$sku_number,
|
163 |
get_option( 'wcj_sku_suffix', '' ),
|
164 |
$variation_suffix,
|
165 |
$category_suffix
|
166 |
+
) : $old_sku;
|
167 |
|
168 |
if ( $is_preview ) {
|
169 |
echo '<tr>' .
|
170 |
+
'<td>' . $this->product_counter++ . '</td>' .
|
171 |
+
'<td>' . $product_id . '</td>' .
|
172 |
+
'<td>' . $_product->get_title() . '</td>' .
|
173 |
+
'<td>' . $product_cat . '</td>' .
|
174 |
+
'<td>' . $the_sku . '</td>' .
|
175 |
+
'<td>' . $old_sku . '</td>' .
|
176 |
'</tr>';
|
177 |
}
|
178 |
+
elseif ( $do_generate_new_sku ) {
|
179 |
update_post_meta( $product_id, '_' . 'sku', $the_sku );
|
180 |
}
|
181 |
}
|
183 |
/**
|
184 |
* set_all_products_skus.
|
185 |
*
|
186 |
+
* @version 2.7.0
|
187 |
*/
|
188 |
function set_all_products_skus( $is_preview ) {
|
189 |
if ( 'sequential' === apply_filters( 'booster_get_option', 'product_id', get_option( 'wcj_sku_number_generation', 'product_id' ) ) ) {
|
190 |
$this->sequential_counter = apply_filters( 'booster_get_option', 1, get_option( 'wcj_sku_number_generation_sequential', 1 ) );
|
191 |
}
|
192 |
+
$limit = 256;
|
193 |
$offset = 0;
|
194 |
while ( TRUE ) {
|
195 |
$posts = new WP_Query( array(
|
199 |
'post_status' => 'any',
|
200 |
'order' => 'ASC',
|
201 |
'orderby' => 'date',
|
202 |
+
'fields' => 'ids',
|
203 |
));
|
204 |
+
if ( ! $posts->have_posts() ) {
|
205 |
+
break;
|
206 |
+
}
|
207 |
+
foreach ( $posts->posts as $post_id ) {
|
208 |
+
$this->set_sku_with_variable( $post_id, $is_preview );
|
209 |
}
|
210 |
$offset += $limit;
|
211 |
}
|
238 |
/**
|
239 |
* create_sku_tool
|
240 |
*
|
241 |
+
* @version 2.7.0
|
242 |
*/
|
243 |
function create_sku_tool() {
|
244 |
$result_message = '';
|
249 |
$preview_html .=
|
250 |
'<tr>' .
|
251 |
'<th></th>' .
|
252 |
+
'<th>' . __( 'ID', 'woocommerce-jetpack' ) . '</th>' .
|
253 |
'<th>' . __( 'Product', 'woocommerce-jetpack' ) . '</th>' .
|
254 |
'<th>' . __( 'Categories', 'woocommerce-jetpack' ) . '</th>' .
|
255 |
'<th>' . __( 'SKU', 'woocommerce-jetpack' ) . '</th>' .
|
256 |
+
'<th>' . __( 'Old SKU', 'woocommerce-jetpack' ) . '</th>' .
|
257 |
'</tr>';
|
258 |
ob_start();
|
259 |
$this->set_all_products_skus( $is_preview );
|
275 |
/**
|
276 |
* get_settings.
|
277 |
*
|
278 |
+
* @version 2.7.0
|
279 |
*/
|
280 |
function get_settings() {
|
281 |
$settings = array(
|
394 |
array(
|
395 |
'title' => __( 'Automatically Generate SKU for New Products', 'woocommerce-jetpack' ),
|
396 |
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
397 |
+
'desc_tip' => __( 'Alternatively you can use Autogenerate SKUs tool.', 'woocommerce-jetpack' ),
|
398 |
'id' => 'wcj_sku_new_products_generate_enabled',
|
399 |
'default' => 'yes',
|
400 |
'type' => 'checkbox',
|
406 |
'default' => 'no',
|
407 |
'type' => 'checkbox',
|
408 |
),
|
409 |
+
array(
|
410 |
+
'title' => __( 'Generate SKUs Only for Products with Empty SKU', 'woocommerce-jetpack' ),
|
411 |
+
'desc' => __( 'Enable', 'woocommerce-jetpack' ),
|
412 |
+
'id' => 'wcj_sku_generate_only_for_empty_sku',
|
413 |
+
'default' => 'no',
|
414 |
+
'type' => 'checkbox',
|
415 |
+
),
|
416 |
array(
|
417 |
'title' => __( 'Add SKU to Customer Emails', 'woocommerce-jetpack' ),
|
418 |
'desc' => __( 'Add', 'woocommerce-jetpack' ),
|
includes/class-wcj-sorting.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Sorting class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -216,12 +216,15 @@ class WCJ_Sorting extends WCJ_Module {
|
|
216 |
/*
|
217 |
* Add new sorting options to WooCommerce sorting.
|
218 |
*
|
219 |
-
* @version 2.
|
220 |
*/
|
221 |
function custom_woocommerce_get_catalog_ordering_args( $args ) {
|
222 |
|
223 |
// Get ordering from query string
|
224 |
-
$orderby_value =
|
|
|
|
|
|
|
225 |
// Get orderby arg from string
|
226 |
$orderby_value = explode( '-', $orderby_value );
|
227 |
$orderby = esc_attr( $orderby_value[0] );
|
4 |
*
|
5 |
* The WooCommerce Jetpack Sorting class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
216 |
/*
|
217 |
* Add new sorting options to WooCommerce sorting.
|
218 |
*
|
219 |
+
* @version 2.7.0
|
220 |
*/
|
221 |
function custom_woocommerce_get_catalog_ordering_args( $args ) {
|
222 |
|
223 |
// Get ordering from query string
|
224 |
+
$orderby_value = ( WCJ_IS_WC_VERSION_BELOW_3 ?
|
225 |
+
( isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) ) ) :
|
226 |
+
( isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) ) )
|
227 |
+
);
|
228 |
// Get orderby arg from string
|
229 |
$orderby_value = explode( '-', $orderby_value );
|
230 |
$orderby = esc_attr( $orderby_value[0] );
|
includes/class-wcj-wholesale-price.php
CHANGED
@@ -4,10 +4,10 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Wholesale Price class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
-
* @todo per variation
|
11 |
*/
|
12 |
|
13 |
if ( ! defined( 'ABSPATH' ) ) exit;
|
@@ -19,7 +19,7 @@ class WCJ_Wholesale_Price extends WCJ_Module {
|
|
19 |
/**
|
20 |
* Constructor.
|
21 |
*
|
22 |
-
* @version 2.
|
23 |
*/
|
24 |
function __construct() {
|
25 |
|
@@ -40,7 +40,10 @@ class WCJ_Wholesale_Price extends WCJ_Module {
|
|
40 |
|
41 |
add_action( 'woocommerce_cart_loaded_from_session', array( $this, 'cart_loaded_from_session' ), PHP_INT_MAX, 1 );
|
42 |
add_action( 'woocommerce_before_calculate_totals', array( $this, 'calculate_totals' ), PHP_INT_MAX, 1 );
|
43 |
-
add_filter(
|
|
|
|
|
|
|
44 |
|
45 |
if ( 'yes' === get_option( 'wcj_wholesale_price_show_info_on_cart', 'no' ) ) {
|
46 |
add_filter( 'woocommerce_cart_item_price', array( $this, 'add_discount_info_to_cart_page' ), PHP_INT_MAX, 3 );
|
@@ -168,7 +171,7 @@ class WCJ_Wholesale_Price extends WCJ_Module {
|
|
168 |
/**
|
169 |
* calculate_totals.
|
170 |
*
|
171 |
-
* @version 2.
|
172 |
* @since 2.5.0
|
173 |
*/
|
174 |
function calculate_totals( $cart ) {
|
@@ -186,20 +189,18 @@ class WCJ_Wholesale_Price extends WCJ_Module {
|
|
186 |
}
|
187 |
|
188 |
$_product = wc_get_product( $item['product_id'] );
|
189 |
-
if ( ! wcj_is_product_wholesale_enabled( $_product
|
190 |
continue;
|
191 |
}
|
192 |
|
193 |
// Prices
|
194 |
-
$tax_display_mode = get_option( 'woocommerce_tax_display_shop' );
|
195 |
-
$get_price_method = 'get_price_' . $tax_display_mode . 'uding_tax';
|
196 |
if ( 0 != ( $variation_id = WC()->cart->cart_contents[ $item_key ]['variation_id'] ) ) {
|
197 |
$variation = wc_get_product( $variation_id );
|
198 |
$price = $variation->get_price();
|
199 |
-
$price_old = $variation
|
200 |
} else {
|
201 |
$price = $_product->get_price();
|
202 |
-
$price_old = $_product
|
203 |
}
|
204 |
|
205 |
// If other discount was applied in cart...
|
@@ -214,7 +215,7 @@ class WCJ_Wholesale_Price extends WCJ_Module {
|
|
214 |
? $cart->cart_contents_count
|
215 |
: $item['quantity'];
|
216 |
if ( $the_quantity > 1 ) {
|
217 |
-
$wholesale_price = $this->get_wholesale_price( $price, $the_quantity, $_product
|
218 |
if ( $wholesale_price != $price ) {
|
219 |
// Setting wholesale price
|
220 |
$precision = get_option( 'woocommerce_price_num_decimals', 2 );
|
@@ -231,10 +232,10 @@ class WCJ_Wholesale_Price extends WCJ_Module {
|
|
231 |
/**
|
232 |
* wholesale_price.
|
233 |
*
|
234 |
-
* @version 2.
|
235 |
*/
|
236 |
function wholesale_price( $price, $_product ) {
|
237 |
-
return ( wcj_is_product_wholesale_enabled( $_product
|
238 |
}
|
239 |
|
240 |
/**
|
@@ -344,26 +345,6 @@ class WCJ_Wholesale_Price extends WCJ_Module {
|
|
344 |
return $options;
|
345 |
}
|
346 |
|
347 |
-
/**
|
348 |
-
* add_settings_hook.
|
349 |
-
*
|
350 |
-
* @version 2.5.5
|
351 |
-
* @since 2.5.5
|
352 |
-
*/
|
353 |
-
function add_settings_hook() {
|
354 |
-
add_filter( 'wcj_wholesale_price_settings', array( $this, 'add_settings' ) );
|
355 |
-
}
|
356 |
-
|
357 |
-
/**
|
358 |
-
* get_settings.
|
359 |
-
*
|
360 |
-
* @version 2.5.5
|
361 |
-
*/
|
362 |
-
function get_settings() {
|
363 |
-
$settings = apply_filters( 'wcj_wholesale_price_settings', array() );
|
364 |
-
return $this->add_standard_settings( $settings );
|
365 |
-
}
|
366 |
-
|
367 |
/**
|
368 |
* add_settings.
|
369 |
*
|
4 |
*
|
5 |
* The WooCommerce Jetpack Wholesale Price class.
|
6 |
*
|
7 |
+
* @version 2.7.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.7.0
|
23 |
*/
|
24 |
function __construct() {
|
25 |
|
40 |
|
41 |
add_action( 'woocommerce_cart_loaded_from_session', array( $this, 'cart_loaded_from_session' ), PHP_INT_MAX, 1 );
|
42 |
add_action( 'woocommerce_before_calculate_totals', array( $this, 'calculate_totals' ), PHP_INT_MAX, 1 );
|
43 |
+
add_filter( WCJ_PRODUCT_GET_PRICE_FILTER, array( $this, 'wholesale_price' ), PHP_INT_MAX, 2 );
|
44 |
+
if ( ! WCJ_IS_WC_VERSION_BELOW_3 ) {
|
45 |
+
add_filter( 'woocommerce_product_variation_get_price', array( $this, 'wholesale_price' ), PHP_INT_MAX, 2 );
|
46 |
+
}
|
47 |
|
48 |
if ( 'yes' === get_option( 'wcj_wholesale_price_show_info_on_cart', 'no' ) ) {
|
49 |
add_filter( 'woocommerce_cart_item_price', array( $this, 'add_discount_info_to_cart_page' ), PHP_INT_MAX, 3 );
|
171 |
/**
|
172 |
* calculate_totals.
|
173 |
*
|
174 |
+
* @version 2.7.0
|
175 |
* @since 2.5.0
|
176 |
*/
|
177 |
function calculate_totals( $cart ) {
|
189 |
}
|
190 |
|
191 |
$_product = wc_get_product( $item['product_id'] );
|
192 |
+
if ( ! wcj_is_product_wholesale_enabled( wcj_get_product_id_or_variation_parent_id( $_product ) ) ) {
|
193 |
continue;
|
194 |
}
|
195 |
|
196 |
// Prices
|
|
|
|
|
197 |
if ( 0 != ( $variation_id = WC()->cart->cart_contents[ $item_key ]['variation_id'] ) ) {
|
198 |
$variation = wc_get_product( $variation_id );
|
199 |
$price = $variation->get_price();
|
200 |
+
$price_old = wcj_get_product_display_price( $variation ); // used for display only
|
201 |
} else {
|
202 |
$price = $_product->get_price();
|
203 |
+
$price_old = wcj_get_product_display_price( $_product ); // used for display only
|
204 |
}
|
205 |
|
206 |
// If other discount was applied in cart...
|
215 |
? $cart->cart_contents_count
|
216 |
: $item['quantity'];
|
217 |
if ( $the_quantity > 1 ) {
|
218 |
+
$wholesale_price = $this->get_wholesale_price( $price, $the_quantity, wcj_get_product_id_or_variation_parent_id( $_product ) );
|
219 |
if ( $wholesale_price != $price ) {
|
220 |
// Setting wholesale price
|
221 |
$precision = get_option( 'woocommerce_price_num_decimals', 2 );
|
232 |
/**
|
233 |
* wholesale_price.
|
234 |
*
|
235 |
+
* @version 2.7.0
|
236 |
*/
|
237 |
function wholesale_price( $price, $_product ) {
|
238 |
+
return ( wcj_is_product_wholesale_enabled( wcj_get_product_id_or_variation_parent_id( $_product ) ) && isset( $_product->wcj_wholesale_price ) ) ? $_product->wcj_wholesale_price : $price;
|
239 |
}
|
240 |
|
241 |
/**
|
345 |
return $options;
|
346 |
}
|
347 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
/**
|
349 |
* add_settings.
|
350 |
*
|
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 |
*/
|
@@ -41,7 +41,7 @@ class WCJ_WPML extends WCJ_Module {
|
|
41 |
/**
|
42 |
* get_settings.
|
43 |
*
|
44 |
-
* @version 2.
|
45 |
*/
|
46 |
function get_settings() {
|
47 |
$settings = array(
|
@@ -69,6 +69,7 @@ class WCJ_WPML extends WCJ_Module {
|
|
69 |
),
|
70 |
array(
|
71 |
'title' => __( 'Module Tools', 'woocommerce-jetpack' ),
|
|
|
72 |
'id' => 'wcj_' . $this->id . '_module_tools',
|
73 |
'type' => 'custom_link',
|
74 |
'link' => ( $this->is_enabled() ) ?
|
4 |
*
|
5 |
* The WooCommerce Jetpack WPML class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
41 |
/**
|
42 |
* get_settings.
|
43 |
*
|
44 |
+
* @version 2.7.0
|
45 |
*/
|
46 |
function get_settings() {
|
47 |
$settings = array(
|
69 |
),
|
70 |
array(
|
71 |
'title' => __( 'Module Tools', 'woocommerce-jetpack' ),
|
72 |
+
'desc_tip' => __( 'To use tools, module must be enabled.', 'woocommerce-jetpack' ),
|
73 |
'id' => 'wcj_' . $this->id . '_module_tools',
|
74 |
'type' => 'custom_link',
|
75 |
'link' => ( $this->is_enabled() ) ?
|
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 |
*/
|
@@ -27,7 +27,7 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
27 |
*
|
28 |
* @version 2.4.3
|
29 |
*/
|
30 |
-
|
31 |
add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
|
32 |
add_filter( 'wcj_settings_' . $this->id, array( $this, 'get_settings' ), 100 );
|
33 |
$this->type = $type;
|
@@ -37,6 +37,16 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
37 |
add_action( 'init', array( $this, 'reset_settings' ), PHP_INT_MAX );
|
38 |
}
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
/**
|
41 |
* save_meta_box_value.
|
42 |
*
|
@@ -127,11 +137,11 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
127 |
/**
|
128 |
* get_settings.
|
129 |
*
|
130 |
-
* @version 2.
|
131 |
* @since 2.2.6
|
132 |
*/
|
133 |
function get_settings() {
|
134 |
-
return $this->add_standard_settings();
|
135 |
}
|
136 |
|
137 |
/**
|
4 |
*
|
5 |
* The WooCommerce Jetpack Module class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.0
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
27 |
*
|
28 |
* @version 2.4.3
|
29 |
*/
|
30 |
+
function __construct( $type = 'module' ) {
|
31 |
add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
|
32 |
add_filter( 'wcj_settings_' . $this->id, array( $this, 'get_settings' ), 100 );
|
33 |
$this->type = $type;
|
37 |
add_action( 'init', array( $this, 'reset_settings' ), PHP_INT_MAX );
|
38 |
}
|
39 |
|
40 |
+
/*
|
41 |
+
* add_settings_hook.
|
42 |
+
*
|
43 |
+
* @version 2.7.0
|
44 |
+
* @since 2.7.0
|
45 |
+
*/
|
46 |
+
function add_settings_hook() {
|
47 |
+
add_filter( 'wcj_' . $this->id . '_settings', array( $this, 'add_settings' ) );
|
48 |
+
}
|
49 |
+
|
50 |
/**
|
51 |
* save_meta_box_value.
|
52 |
*
|
137 |
/**
|
138 |
* get_settings.
|
139 |
*
|
140 |
+
* @version 2.7.0
|
141 |
* @since 2.2.6
|
142 |
*/
|
143 |
function get_settings() {
|
144 |
+
return $this->add_standard_settings( apply_filters( 'wcj_' . $this->id . '_settings', array() ) );
|
145 |
}
|
146 |
|
147 |
/**
|
includes/classes/class-wcj-pdf-invoice.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack PDF Invoice class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -21,6 +21,106 @@ class WCJ_PDF_Invoice extends WCJ_Invoice {
|
|
21 |
parent::__construct( $order_id, $invoice_type );
|
22 |
}
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
/**
|
25 |
* prepare_pdf.
|
26 |
*
|
@@ -28,6 +128,8 @@ class WCJ_PDF_Invoice extends WCJ_Invoice {
|
|
28 |
*/
|
29 |
function prepare_pdf() {
|
30 |
|
|
|
|
|
31 |
$invoice_type = $this->invoice_type;
|
32 |
|
33 |
// Create new PDF document
|
@@ -145,14 +247,14 @@ class WCJ_PDF_Invoice extends WCJ_Invoice {
|
|
145 |
/**
|
146 |
* get_pdf.
|
147 |
*
|
148 |
-
* @version 2.
|
149 |
*/
|
150 |
function get_pdf( $dest ) {
|
151 |
|
152 |
// Get invoice content HTML
|
153 |
$_GET['order_id'] = $this->order_id;
|
154 |
$the_order = wc_get_order( $this->order_id );
|
155 |
-
if ( ! isset( $_GET['billing_country'] ) ) $_GET['billing_country'] = $the_order->billing_country;
|
156 |
$html = do_shortcode( get_option( 'wcj_invoicing_' . $this->invoice_type . '_template' ) );
|
157 |
$html = force_balance_tags( $html );
|
158 |
//$html = apply_filters( 'the_content', get_option( 'wcj_invoicing_' . $this->invoice_type . '_template' ) );
|
4 |
*
|
5 |
* The WooCommerce Jetpack PDF Invoice class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
21 |
parent::__construct( $order_id, $invoice_type );
|
22 |
}
|
23 |
|
24 |
+
/**
|
25 |
+
* check_tcpdf_fonts.
|
26 |
+
*
|
27 |
+
* @version 2.7.0
|
28 |
+
* @since 2.7.0
|
29 |
+
* @todo use function - search for `check_tcpdf_fonts`
|
30 |
+
* @todo optional "do not download" (then default fonts directory with basic fonts)
|
31 |
+
* @todo check file size > 0 (not only if file exists in directory)
|
32 |
+
* @todo check if it works ok with https://booster.io
|
33 |
+
* @todo use `download_url()` instead of `file_get_contents()` or `curl` (in all Booster files)
|
34 |
+
*/
|
35 |
+
/* function check_tcpdf_fonts() {
|
36 |
+
$tcpdf_fonts_dir = wcj_get_wcj_uploads_dir( 'tcpdf_fonts' ) . '/';
|
37 |
+
if ( ! file_exists( $tcpdf_fonts_dir ) ) {
|
38 |
+
mkdir( $tcpdf_fonts_dir );
|
39 |
+
}
|
40 |
+
$tcpdf_fonts_dir_files = scandir( $tcpdf_fonts_dir );
|
41 |
+
$tcpdf_fonts_files = array(
|
42 |
+
'angsanaupc.ctg.z',
|
43 |
+
'angsanaupc.php',
|
44 |
+
'angsanaupc.z',
|
45 |
+
'angsanaupcb.ctg.z',
|
46 |
+
'angsanaupcb.php',
|
47 |
+
'angsanaupcb.z',
|
48 |
+
'angsanaupcbi.ctg.z',
|
49 |
+
'angsanaupcbi.php',
|
50 |
+
'angsanaupcbi.z',
|
51 |
+
'angsanaupci.ctg.z',
|
52 |
+
'angsanaupci.php',
|
53 |
+
'angsanaupci.z',
|
54 |
+
'cordiaupc.ctg.z',
|
55 |
+
'cordiaupc.php',
|
56 |
+
'cordiaupc.z',
|
57 |
+
'cordiaupcb.ctg.z',
|
58 |
+
'cordiaupcb.php',
|
59 |
+
'cordiaupcb.z',
|
60 |
+
'cordiaupcbi.ctg.z',
|
61 |
+
'cordiaupcbi.php',
|
62 |
+
'cordiaupcbi.z',
|
63 |
+
'cordiaupci.ctg.z',
|
64 |
+
'cordiaupci.php',
|
65 |
+
'cordiaupci.z',
|
66 |
+
'courier.php',
|
67 |
+
'courierb.php',
|
68 |
+
'courierbi.php',
|
69 |
+
'courieri.php',
|
70 |
+
'dejavusans.ctg.z',
|
71 |
+
'dejavusans.php',
|
72 |
+
'dejavusans.z',
|
73 |
+
'dejavusansb.ctg.z',
|
74 |
+
'dejavusansb.php',
|
75 |
+
'dejavusansb.z',
|
76 |
+
'dejavusansbi.ctg.z',
|
77 |
+
'dejavusansbi.php',
|
78 |
+
'dejavusansbi.z',
|
79 |
+
'droidsansfallback.ctg.z',
|
80 |
+
'droidsansfallback.php',
|
81 |
+
'droidsansfallback.z',
|
82 |
+
'helvetica.php',
|
83 |
+
'helveticab.php',
|
84 |
+
'helveticabi.php',
|
85 |
+
'helveticai.php',
|
86 |
+
'symbol.php',
|
87 |
+
'thsarabun.ctg.z',
|
88 |
+
'thsarabun.php',
|
89 |
+
'thsarabun.z',
|
90 |
+
'thsarabunb.ctg.z',
|
91 |
+
'thsarabunb.php',
|
92 |
+
'thsarabunb.z',
|
93 |
+
'thsarabunbi.ctg.z',
|
94 |
+
'thsarabunbi.php',
|
95 |
+
'thsarabunbi.z',
|
96 |
+
'thsarabuni.ctg.z',
|
97 |
+
'thsarabuni.php',
|
98 |
+
'thsarabuni.z',
|
99 |
+
'times.php',
|
100 |
+
'timesb.php',
|
101 |
+
'timesbi.php',
|
102 |
+
'timesi.php',
|
103 |
+
'zapfdingbats.php',
|
104 |
+
);
|
105 |
+
require_once( ABSPATH . 'wp-admin/includes/file.php' );
|
106 |
+
foreach ( $tcpdf_fonts_files as $tcpdf_fonts_file ) {
|
107 |
+
if ( ! in_array( $tcpdf_fonts_file, $tcpdf_fonts_dir_files ) ) {
|
108 |
+
$url = 'http://booster.io/tcpdf_fonts/' . $tcpdf_fonts_file;
|
109 |
+
if ( '.php' === substr( $tcpdf_fonts_file, -4 ) ) {
|
110 |
+
$url .= '.data';
|
111 |
+
}
|
112 |
+
$response_file_name = download_url( $url );
|
113 |
+
if ( ! is_wp_error( $response_file_name ) ) {
|
114 |
+
$response = file_get_contents( $response_file_name );
|
115 |
+
if ( $response ) {
|
116 |
+
file_put_contents( $tcpdf_fonts_dir . $tcpdf_fonts_file, $response );
|
117 |
+
}
|
118 |
+
unlink( $response_file_name );
|
119 |
+
}
|
120 |
+
}
|
121 |
+
}
|
122 |
+
} */
|
123 |
+
|
124 |
/**
|
125 |
* prepare_pdf.
|
126 |
*
|
128 |
*/
|
129 |
function prepare_pdf() {
|
130 |
|
131 |
+
// $this->check_tcpdf_fonts();
|
132 |
+
|
133 |
$invoice_type = $this->invoice_type;
|
134 |
|
135 |
// Create new PDF document
|
247 |
/**
|
248 |
* get_pdf.
|
249 |
*
|
250 |
+
* @version 2.7.0
|
251 |
*/
|
252 |
function get_pdf( $dest ) {
|
253 |
|
254 |
// Get invoice content HTML
|
255 |
$_GET['order_id'] = $this->order_id;
|
256 |
$the_order = wc_get_order( $this->order_id );
|
257 |
+
if ( ! isset( $_GET['billing_country'] ) ) $_GET['billing_country'] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $the_order->billing_country : $the_order->get_billing_country() );
|
258 |
$html = do_shortcode( get_option( 'wcj_invoicing_' . $this->invoice_type . '_template' ) );
|
259 |
$html = force_balance_tags( $html );
|
260 |
//$html = apply_filters( 'the_content', get_option( 'wcj_invoicing_' . $this->invoice_type . '_template' ) );
|
includes/constants/wcj-constants.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WooCommerce Jetpack Constants
|
4 |
+
*
|
5 |
+
* @version 2.7.0
|
6 |
+
* @since 2.7.0
|
7 |
+
* @author Algoritmika Ltd.
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
11 |
+
|
12 |
+
// WooCommerce version
|
13 |
+
|
14 |
+
if ( ! defined( 'WCJ_WC_VERSION' ) ) {
|
15 |
+
define( 'WCJ_WC_VERSION', get_option( 'woocommerce_version', null ) );
|
16 |
+
}
|
17 |
+
|
18 |
+
if ( ! defined( 'WCJ_IS_WC_VERSION_BELOW_3' ) ) {
|
19 |
+
define( 'WCJ_IS_WC_VERSION_BELOW_3', version_compare( WCJ_WC_VERSION, '3.0.0', '<' ) );
|
20 |
+
}
|
21 |
+
|
22 |
+
// Price filters
|
23 |
+
|
24 |
+
if ( ! defined( 'WCJ_PRODUCT_GET_PRICE_FILTER' ) ) {
|
25 |
+
$filter = ( WCJ_IS_WC_VERSION_BELOW_3 ) ? 'woocommerce_get_price' : 'woocommerce_product_get_price';
|
26 |
+
define( 'WCJ_PRODUCT_GET_PRICE_FILTER', $filter );
|
27 |
+
}
|
28 |
+
|
29 |
+
if ( ! defined( 'WCJ_PRODUCT_GET_SALE_PRICE_FILTER' ) ) {
|
30 |
+
$filter = ( WCJ_IS_WC_VERSION_BELOW_3 ) ? 'woocommerce_get_sale_price' : 'woocommerce_product_get_sale_price';
|
31 |
+
define( 'WCJ_PRODUCT_GET_SALE_PRICE_FILTER', $filter );
|
32 |
+
}
|
33 |
+
|
34 |
+
if ( ! defined( 'WCJ_PRODUCT_GET_REGULAR_PRICE_FILTER' ) ) {
|
35 |
+
$filter = ( WCJ_IS_WC_VERSION_BELOW_3 ) ? 'woocommerce_get_regular_price' : 'woocommerce_product_get_regular_price';
|
36 |
+
define( 'WCJ_PRODUCT_GET_REGULAR_PRICE_FILTER', $filter );
|
37 |
+
}
|
includes/exchange-rates/class-wcj-exchange-rates-crons.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Exchange Rates Crons class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,7 +17,7 @@ class WCJ_Exchange_Rates_Crons {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
$this->update_intervals = array(
|
@@ -31,21 +31,6 @@ class WCJ_Exchange_Rates_Crons {
|
|
31 |
add_action( 'admin_init', array( $this, 'schedule_the_events' ) );
|
32 |
add_action( 'auto_update_exchange_rates_hook', array( $this, 'update_the_exchange_rates' ) );
|
33 |
add_filter( 'cron_schedules', array( $this, 'cron_add_custom_intervals' ) );
|
34 |
-
|
35 |
-
add_action( 'wp_ajax_' . 'wcj_ajax_get_exchange_rates', array( $this, 'wcj_ajax_get_exchange_rates' ) );
|
36 |
-
add_action( 'wp_ajax_nopriv_' . 'wcj_ajax_get_exchange_rates', array( $this, 'wcj_ajax_get_exchange_rates' ) );
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* wcj_ajax_get_exchange_rates.
|
41 |
-
*
|
42 |
-
* @version 2.6.0
|
43 |
-
* @since 2.6.0
|
44 |
-
* @todo this shouldn't be in crons
|
45 |
-
*/
|
46 |
-
function wcj_ajax_get_exchange_rates() {
|
47 |
-
echo $this->get_exchange_rate( $_POST['wcj_currency_from'], $_POST['wcj_currency_to'] );
|
48 |
-
die();
|
49 |
}
|
50 |
|
51 |
/**
|
@@ -69,160 +54,6 @@ class WCJ_Exchange_Rates_Crons {
|
|
69 |
}
|
70 |
}
|
71 |
|
72 |
-
/*
|
73 |
-
* get_exchange_rate.
|
74 |
-
*
|
75 |
-
* @version 2.6.0
|
76 |
-
* @since 2.6.0
|
77 |
-
*/
|
78 |
-
function get_exchange_rate( $currency_from, $currency_to ) {
|
79 |
-
$exchange_rates_server = get_option( 'wcj_currency_exchange_rates_server', 'yahoo' );
|
80 |
-
switch ( $exchange_rates_server ) {
|
81 |
-
case 'tcmb':
|
82 |
-
return $this->tcmb_get_exchange_rate( $currency_from, $currency_to );
|
83 |
-
case 'ecb':
|
84 |
-
return $this->ecb_get_exchange_rate( $currency_from, $currency_to );
|
85 |
-
default: // 'yahoo'
|
86 |
-
return $this->yahoo_get_exchange_rate( $currency_from, $currency_to );
|
87 |
-
}
|
88 |
-
}
|
89 |
-
|
90 |
-
/*
|
91 |
-
* ecb_get_exchange_rate.
|
92 |
-
*
|
93 |
-
* @version 2.6.0
|
94 |
-
* @since 2.6.0
|
95 |
-
*/
|
96 |
-
function ecb_get_exchange_rate( $currency_from, $currency_to ) {
|
97 |
-
$final_rate = false;
|
98 |
-
if ( function_exists( 'simplexml_load_file' ) ) {
|
99 |
-
$xml = simplexml_load_file( 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml' );
|
100 |
-
if ( isset( $xml->Cube->Cube->Cube ) ) {
|
101 |
-
if ( 'EUR' === $currency_from ) {
|
102 |
-
$EUR_currency_from_rate = 1;
|
103 |
-
}
|
104 |
-
if ( 'EUR' === $currency_to ) {
|
105 |
-
$EUR_currency_to_rate = 1;
|
106 |
-
}
|
107 |
-
foreach ( $xml->Cube->Cube->Cube as $currency_rate ) {
|
108 |
-
$currency_rate = $currency_rate->attributes();
|
109 |
-
if ( ! isset( $EUR_currency_from_rate ) && $currency_from == $currency_rate->currency ) {
|
110 |
-
$EUR_currency_from_rate = (float) $currency_rate->rate;
|
111 |
-
}
|
112 |
-
if ( ! isset( $EUR_currency_to_rate ) && $currency_to == $currency_rate->currency ) {
|
113 |
-
$EUR_currency_to_rate = (float) $currency_rate->rate;
|
114 |
-
}
|
115 |
-
}
|
116 |
-
if ( isset( $EUR_currency_from_rate ) && isset( $EUR_currency_to_rate ) && 0 != $EUR_currency_from_rate ) {
|
117 |
-
$final_rate = round( $EUR_currency_to_rate / $EUR_currency_from_rate, 6 );
|
118 |
-
} else {
|
119 |
-
$final_rate = false;
|
120 |
-
}
|
121 |
-
}
|
122 |
-
}
|
123 |
-
return $final_rate;
|
124 |
-
}
|
125 |
-
|
126 |
-
/*
|
127 |
-
* tcmb_get_exchange_rate_TRY.
|
128 |
-
*
|
129 |
-
* @version 2.6.0
|
130 |
-
* @since 2.6.0
|
131 |
-
*/
|
132 |
-
function tcmb_get_exchange_rate_TRY( $currency_from ) {
|
133 |
-
if ( 'TRY' === $currency_from ) {
|
134 |
-
return 1;
|
135 |
-
}
|
136 |
-
$xml = simplexml_load_file( 'http://www.tcmb.gov.tr/kurlar/today.xml' );
|
137 |
-
if ( isset( $xml->Currency ) ) {
|
138 |
-
foreach ( $xml->Currency as $the_rate ) {
|
139 |
-
$attributes = $the_rate->attributes();
|
140 |
-
if ( isset( $attributes['CurrencyCode'] ) ) {
|
141 |
-
$currency_code = (string) $attributes['CurrencyCode'];
|
142 |
-
if ( $currency_code === $currency_from ) {
|
143 |
-
// Possible values: ForexSelling, ForexBuying, BanknoteSelling, BanknoteBuying. Not used: CrossRateUSD, CrossRateOther.
|
144 |
-
if ( '' != ( $property_to_check = apply_filters( 'wcj_currency_exchange_rates_tcmb_property_to_check', '' ) ) ) {
|
145 |
-
if ( isset( $the_rate->{$property_to_check} ) ) {
|
146 |
-
$rate = (float) $the_rate->{$property_to_check};
|
147 |
-
} else {
|
148 |
-
continue;
|
149 |
-
}
|
150 |
-
} else {
|
151 |
-
if ( isset( $the_rate->ForexSelling ) ) {
|
152 |
-
$rate = (float) $the_rate->ForexSelling;
|
153 |
-
} elseif ( isset( $the_rate->ForexBuying ) ) {
|
154 |
-
$rate = (float) $the_rate->ForexBuying;
|
155 |
-
} elseif ( isset( $the_rate->BanknoteSelling ) ) {
|
156 |
-
$rate = (float) $the_rate->BanknoteSelling;
|
157 |
-
} elseif ( isset( $the_rate->BanknoteBuying ) ) {
|
158 |
-
$rate = (float) $the_rate->BanknoteBuying;
|
159 |
-
} else {
|
160 |
-
continue;
|
161 |
-
}
|
162 |
-
}
|
163 |
-
$unit = ( isset( $the_rate->Unit ) ) ? (float) $the_rate->Unit : 1;
|
164 |
-
return ( $rate / $unit );
|
165 |
-
}
|
166 |
-
}
|
167 |
-
}
|
168 |
-
}
|
169 |
-
return false;
|
170 |
-
}
|
171 |
-
|
172 |
-
/*
|
173 |
-
* tcmb_get_exchange_rate.
|
174 |
-
*
|
175 |
-
* @version 2.6.0
|
176 |
-
* @since 2.6.0
|
177 |
-
*/
|
178 |
-
function tcmb_get_exchange_rate( $currency_from, $currency_to ) {
|
179 |
-
$currency_from_TRY = $this->tcmb_get_exchange_rate_TRY( strtoupper( $currency_from ) );
|
180 |
-
if ( false == $currency_from_TRY ) {
|
181 |
-
return false;
|
182 |
-
}
|
183 |
-
$currency_to_TRY = $this->tcmb_get_exchange_rate_TRY( strtoupper( $currency_to ) );
|
184 |
-
if ( false == $currency_to_TRY ) {
|
185 |
-
return false;
|
186 |
-
}
|
187 |
-
if ( 1 == $currency_to_TRY ) {
|
188 |
-
return round( $currency_from_TRY, 6 );
|
189 |
-
}
|
190 |
-
return round( ( $currency_from_TRY / $currency_to_TRY ), 6 );
|
191 |
-
}
|
192 |
-
|
193 |
-
/*
|
194 |
-
* yahoo_get_exchange_rate.
|
195 |
-
*
|
196 |
-
* @version 2.6.0
|
197 |
-
* @return float rate on success, else 0
|
198 |
-
*/
|
199 |
-
function yahoo_get_exchange_rate( $currency_from, $currency_to ) {
|
200 |
-
|
201 |
-
$url = "http://query.yahooapis.com/v1/public/yql?q=select%20rate%2Cname%20from%20csv%20where%20url%3D'http%3A%2F%2Fdownload.finance.yahoo.com%2Fd%2Fquotes%3Fs%3D" . $currency_from . $currency_to . "%253DX%26f%3Dl1n'%20and%20columns%3D'rate%2Cname'&format=json";
|
202 |
-
// $url = 'http://rate-exchange.appspot.com/currency?from=' . $currency_from . '&to=' . $currency_to;
|
203 |
-
|
204 |
-
ob_start();
|
205 |
-
$max_execution_time = ini_get( 'max_execution_time' );
|
206 |
-
set_time_limit( 5 );
|
207 |
-
|
208 |
-
$response = '';
|
209 |
-
if ( ini_get( 'allow_url_fopen' ) ) {
|
210 |
-
$response = file_get_contents( $url );
|
211 |
-
} elseif ( function_exists( 'curl_version' ) ) {
|
212 |
-
$curl = curl_init( $url );
|
213 |
-
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
|
214 |
-
$response = curl_exec( $curl );
|
215 |
-
curl_close( $curl );
|
216 |
-
}
|
217 |
-
$exchange_rate = json_decode( $response );
|
218 |
-
|
219 |
-
set_time_limit( $max_execution_time );
|
220 |
-
ob_end_clean();
|
221 |
-
|
222 |
-
return ( isset( $exchange_rate->query->results->row->rate ) ) ? floatval( $exchange_rate->query->results->row->rate ) : 0;
|
223 |
-
// return ( isset( $exchange_rate->rate ) ) ? $exchange_rate->rate : 0;
|
224 |
-
}
|
225 |
-
|
226 |
/**
|
227 |
* get_currency_pair.
|
228 |
*
|
@@ -248,7 +79,7 @@ class WCJ_Exchange_Rates_Crons {
|
|
248 |
/**
|
249 |
* On the scheduled action hook, run a function.
|
250 |
*
|
251 |
-
* @version 2.
|
252 |
*/
|
253 |
function update_the_exchange_rates( $interval ) {
|
254 |
|
@@ -317,7 +148,7 @@ class WCJ_Exchange_Rates_Crons {
|
|
317 |
foreach ( $currency_pairs as $currency_pair ) {
|
318 |
$currency_from = $currency_pair['currency_from'];
|
319 |
$currency_to = $currency_pair['currency_to'];
|
320 |
-
$the_rate =
|
321 |
if ( 0 != $the_rate ) {
|
322 |
if ( 0 != $rate_offset_percent ) {
|
323 |
$the_rate = round( $the_rate * $rate_offset_percent, 6 );
|
4 |
*
|
5 |
* The WooCommerce Jetpack Exchange Rates Crons class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
$this->update_intervals = array(
|
31 |
add_action( 'admin_init', array( $this, 'schedule_the_events' ) );
|
32 |
add_action( 'auto_update_exchange_rates_hook', array( $this, 'update_the_exchange_rates' ) );
|
33 |
add_filter( 'cron_schedules', array( $this, 'cron_add_custom_intervals' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
}
|
35 |
|
36 |
/**
|
54 |
}
|
55 |
}
|
56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
/**
|
58 |
* get_currency_pair.
|
59 |
*
|
79 |
/**
|
80 |
* On the scheduled action hook, run a function.
|
81 |
*
|
82 |
+
* @version 2.7.0
|
83 |
*/
|
84 |
function update_the_exchange_rates( $interval ) {
|
85 |
|
148 |
foreach ( $currency_pairs as $currency_pair ) {
|
149 |
$currency_from = $currency_pair['currency_from'];
|
150 |
$currency_to = $currency_pair['currency_to'];
|
151 |
+
$the_rate = alg_get_exchange_rate( $currency_from, $currency_to );
|
152 |
if ( 0 != $the_rate ) {
|
153 |
if ( 0 != $rate_offset_percent ) {
|
154 |
$the_rate = round( $the_rate * $rate_offset_percent, 6 );
|
includes/exchange-rates/class-wcj-exchange-rates.php
CHANGED
@@ -74,6 +74,7 @@ class WCJ_Exchange_Rates {
|
|
74 |
* output_settings_button.
|
75 |
*
|
76 |
* @version 2.6.0
|
|
|
77 |
*/
|
78 |
function output_settings_button( $value ) {
|
79 |
|
@@ -83,7 +84,8 @@ class WCJ_Exchange_Rates {
|
|
83 |
|
84 |
// Custom attribute handling
|
85 |
$custom_attributes = array();
|
86 |
-
// $
|
|
|
87 |
if ( ! empty( $value['custom_attributes'] ) && is_array( $value['custom_attributes'] ) ) {
|
88 |
foreach ( $value['custom_attributes'] as $attribute => $attribute_value ) {
|
89 |
$custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"';
|
74 |
* output_settings_button.
|
75 |
*
|
76 |
* @version 2.6.0
|
77 |
+
* @todo (maybe) wcj_currency_exchange_rates_precision
|
78 |
*/
|
79 |
function output_settings_button( $value ) {
|
80 |
|
84 |
|
85 |
// Custom attribute handling
|
86 |
$custom_attributes = array();
|
87 |
+
// $step = sprintf( "%f", ( 1 / pow( 10, absint( get_option( 'wcj_currency_exchange_rates_precision', 6 ) ) ) ) );
|
88 |
+
// $value['custom_attributes'] = array( 'step' => $step, 'min' => '0' );
|
89 |
if ( ! empty( $value['custom_attributes'] ) && is_array( $value['custom_attributes'] ) ) {
|
90 |
foreach ( $value['custom_attributes'] as $attribute => $attribute_value ) {
|
91 |
$custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"';
|
includes/export/class-wcj-exporter-customers.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Exporter Customers class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -89,7 +89,7 @@ class WCJ_Exporter_Customers {
|
|
89 |
/**
|
90 |
* export_customers_from_orders.
|
91 |
*
|
92 |
-
* @version 2.
|
93 |
* @since 2.4.8
|
94 |
* @todo (maybe) add more order fields (shipping)
|
95 |
*/
|
@@ -126,9 +126,10 @@ class WCJ_Exporter_Customers {
|
|
126 |
}
|
127 |
foreach ( $loop_orders->posts as $order_id ) {
|
128 |
$order = wc_get_order( $order_id );
|
129 |
-
|
|
|
130 |
$emails_to_skip = array(); // `emails_to_skip` is not really used...
|
131 |
-
if ( ! in_array( $
|
132 |
$total_customers++;
|
133 |
$row = array();
|
134 |
foreach( $fields_ids as $field_id ) {
|
@@ -137,37 +138,37 @@ class WCJ_Exporter_Customers {
|
|
137 |
$row[] = $total_customers;
|
138 |
break;
|
139 |
case 'customer-billing-email':
|
140 |
-
$row[] = $
|
141 |
break;
|
142 |
case 'customer-billing-first-name':
|
143 |
-
$row[] = $order->billing_first_name;
|
144 |
break;
|
145 |
case 'customer-billing-last-name':
|
146 |
-
$row[] = $order->billing_last_name;
|
147 |
break;
|
148 |
case 'customer-billing-company':
|
149 |
-
$row[] = $order->billing_company;
|
150 |
break;
|
151 |
case 'customer-billing-address-1':
|
152 |
-
$row[] = $order->billing_address_1;
|
153 |
break;
|
154 |
case 'customer-billing-address-2':
|
155 |
-
$row[] = $order->billing_address_2;
|
156 |
break;
|
157 |
case 'customer-billing-city':
|
158 |
-
$row[] = $order->billing_city;
|
159 |
break;
|
160 |
case 'customer-billing-state':
|
161 |
-
$row[] = $order->billing_state;
|
162 |
break;
|
163 |
case 'customer-billing-postcode':
|
164 |
-
$row[] = $order->billing_postcode;
|
165 |
break;
|
166 |
case 'customer-billing-country':
|
167 |
-
$row[] = $order->billing_country;
|
168 |
break;
|
169 |
case 'customer-billing-phone':
|
170 |
-
$row[] = $order->billing_phone;
|
171 |
break;
|
172 |
case 'customer-last-order-date':
|
173 |
$row[] = get_the_date( get_option( 'date_format' ), $order_id );
|
@@ -175,7 +176,7 @@ class WCJ_Exporter_Customers {
|
|
175 |
}
|
176 |
}
|
177 |
$data[] = $row;
|
178 |
-
$orders[] = $
|
179 |
}
|
180 |
}
|
181 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Exporter Customers class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
89 |
/**
|
90 |
* export_customers_from_orders.
|
91 |
*
|
92 |
+
* @version 2.7.0
|
93 |
* @since 2.4.8
|
94 |
* @todo (maybe) add more order fields (shipping)
|
95 |
*/
|
126 |
}
|
127 |
foreach ( $loop_orders->posts as $order_id ) {
|
128 |
$order = wc_get_order( $order_id );
|
129 |
+
$_billing_email = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_email : $order->get_billing_email() );
|
130 |
+
if ( isset( $_billing_email ) && '' != $_billing_email && ! in_array( $_billing_email, $orders ) ) {
|
131 |
$emails_to_skip = array(); // `emails_to_skip` is not really used...
|
132 |
+
if ( ! in_array( $_billing_email, $emails_to_skip ) ) {
|
133 |
$total_customers++;
|
134 |
$row = array();
|
135 |
foreach( $fields_ids as $field_id ) {
|
138 |
$row[] = $total_customers;
|
139 |
break;
|
140 |
case 'customer-billing-email':
|
141 |
+
$row[] = $_billing_email;
|
142 |
break;
|
143 |
case 'customer-billing-first-name':
|
144 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_first_name : $order->get_billing_first_name() );
|
145 |
break;
|
146 |
case 'customer-billing-last-name':
|
147 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_last_name : $order->get_billing_last_name() );
|
148 |
break;
|
149 |
case 'customer-billing-company':
|
150 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_company : $order->get_billing_company() );
|
151 |
break;
|
152 |
case 'customer-billing-address-1':
|
153 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_address_1 : $order->get_billing_address_1() );
|
154 |
break;
|
155 |
case 'customer-billing-address-2':
|
156 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_address_2 : $order->get_billing_address_2() );
|
157 |
break;
|
158 |
case 'customer-billing-city':
|
159 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_city : $order->get_billing_city() );
|
160 |
break;
|
161 |
case 'customer-billing-state':
|
162 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_state : $order->get_billing_state() );
|
163 |
break;
|
164 |
case 'customer-billing-postcode':
|
165 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_postcode : $order->get_billing_postcode() );
|
166 |
break;
|
167 |
case 'customer-billing-country':
|
168 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_country : $order->get_billing_country() );
|
169 |
break;
|
170 |
case 'customer-billing-phone':
|
171 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_phone : $order->get_billing_phone() );
|
172 |
break;
|
173 |
case 'customer-last-order-date':
|
174 |
$row[] = get_the_date( get_option( 'date_format' ), $order_id );
|
176 |
}
|
177 |
}
|
178 |
$data[] = $row;
|
179 |
+
$orders[] = $_billing_email;
|
180 |
}
|
181 |
}
|
182 |
}
|
includes/export/class-wcj-exporter-orders.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Exporter Orders class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
* @todo filter export by date
|
@@ -29,7 +29,7 @@ class WCJ_Exporter_Orders {
|
|
29 |
/**
|
30 |
* get_export_orders_row.
|
31 |
*
|
32 |
-
* @version 2.
|
33 |
* @since 2.5.9
|
34 |
*/
|
35 |
function get_export_orders_row( $fields_ids, $order_id, $order, $items, $items_product_input_fields, $item, $item_id ) {
|
@@ -106,7 +106,7 @@ class WCJ_Exporter_Orders {
|
|
106 |
$row[] = $items_product_input_fields;
|
107 |
break;
|
108 |
case 'order-currency':
|
109 |
-
$row[] = $order
|
110 |
break;
|
111 |
case 'order-total':
|
112 |
$row[] = $order->get_total();
|
@@ -115,70 +115,70 @@ class WCJ_Exporter_Orders {
|
|
115 |
$row[] = $order->get_total_tax();
|
116 |
break;
|
117 |
case 'order-payment-method':
|
118 |
-
$row[] = $order->payment_method_title;
|
119 |
break;
|
120 |
case 'order-notes':
|
121 |
-
$row[] = $order->customer_note;
|
122 |
break;
|
123 |
case 'billing-first-name':
|
124 |
-
$row[] = $order->billing_first_name;
|
125 |
break;
|
126 |
case 'billing-last-name':
|
127 |
-
$row[] = $order->billing_last_name;
|
128 |
break;
|
129 |
case 'billing-company':
|
130 |
-
$row[] = $order->billing_company;
|
131 |
break;
|
132 |
case 'billing-address-1':
|
133 |
-
$row[] = $order->billing_address_1;
|
134 |
break;
|
135 |
case 'billing-address-2':
|
136 |
-
$row[] = $order->billing_address_2;
|
137 |
break;
|
138 |
case 'billing-city':
|
139 |
-
$row[] = $order->billing_city;
|
140 |
break;
|
141 |
case 'billing-state':
|
142 |
-
$row[] = $order->billing_state;
|
143 |
break;
|
144 |
case 'billing-postcode':
|
145 |
-
$row[] = $order->billing_postcode;
|
146 |
break;
|
147 |
case 'billing-country':
|
148 |
-
$row[] = $order->billing_country;
|
149 |
break;
|
150 |
case 'billing-phone':
|
151 |
-
$row[] = $order->billing_phone;
|
152 |
break;
|
153 |
case 'billing-email':
|
154 |
-
$row[] = $order->billing_email;
|
155 |
break;
|
156 |
case 'shipping-first-name':
|
157 |
-
$row[] = $order->shipping_first_name;
|
158 |
break;
|
159 |
case 'shipping-last-name':
|
160 |
-
$row[] = $order->shipping_last_name;
|
161 |
break;
|
162 |
case 'shipping-company':
|
163 |
-
$row[] = $order->shipping_company;
|
164 |
break;
|
165 |
case 'shipping-address-1':
|
166 |
-
$row[] = $order->shipping_address_1;
|
167 |
break;
|
168 |
case 'shipping-address-2':
|
169 |
-
$row[] = $order->shipping_address_2;
|
170 |
break;
|
171 |
case 'shipping-city':
|
172 |
-
$row[] = $order->shipping_city;
|
173 |
break;
|
174 |
case 'shipping-state':
|
175 |
-
$row[] = $order->shipping_state;
|
176 |
break;
|
177 |
case 'shipping-postcode':
|
178 |
-
$row[] = $order->shipping_postcode;
|
179 |
break;
|
180 |
case 'shipping-country':
|
181 |
-
$row[] = $order->shipping_country;
|
182 |
break;
|
183 |
}
|
184 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Exporter Orders class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
* @todo filter export by date
|
29 |
/**
|
30 |
* get_export_orders_row.
|
31 |
*
|
32 |
+
* @version 2.7.0
|
33 |
* @since 2.5.9
|
34 |
*/
|
35 |
function get_export_orders_row( $fields_ids, $order_id, $order, $items, $items_product_input_fields, $item, $item_id ) {
|
106 |
$row[] = $items_product_input_fields;
|
107 |
break;
|
108 |
case 'order-currency':
|
109 |
+
$row[] = wcj_get_order_currency( $order );
|
110 |
break;
|
111 |
case 'order-total':
|
112 |
$row[] = $order->get_total();
|
115 |
$row[] = $order->get_total_tax();
|
116 |
break;
|
117 |
case 'order-payment-method':
|
118 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->payment_method_title : $order->get_payment_method_title() );
|
119 |
break;
|
120 |
case 'order-notes':
|
121 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->customer_note : $order->get_customer_note() );
|
122 |
break;
|
123 |
case 'billing-first-name':
|
124 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_first_name : $order->get_billing_first_name() );
|
125 |
break;
|
126 |
case 'billing-last-name':
|
127 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_last_name : $order->get_billing_last_name() );
|
128 |
break;
|
129 |
case 'billing-company':
|
130 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_company : $order->get_billing_company() );
|
131 |
break;
|
132 |
case 'billing-address-1':
|
133 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_address_1 : $order->get_billing_address_1() );
|
134 |
break;
|
135 |
case 'billing-address-2':
|
136 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_address_2 : $order->get_billing_address_2() );
|
137 |
break;
|
138 |
case 'billing-city':
|
139 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_city : $order->get_billing_city() );
|
140 |
break;
|
141 |
case 'billing-state':
|
142 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_state : $order->get_billing_state() );
|
143 |
break;
|
144 |
case 'billing-postcode':
|
145 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_postcode : $order->get_billing_postcode() );
|
146 |
break;
|
147 |
case 'billing-country':
|
148 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_country : $order->get_billing_country() );
|
149 |
break;
|
150 |
case 'billing-phone':
|
151 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_phone : $order->get_billing_phone() );
|
152 |
break;
|
153 |
case 'billing-email':
|
154 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->billing_email : $order->get_billing_email() );
|
155 |
break;
|
156 |
case 'shipping-first-name':
|
157 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->shipping_first_name : $order->get_shipping_first_name() );
|
158 |
break;
|
159 |
case 'shipping-last-name':
|
160 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->shipping_last_name : $order->get_shipping_last_name() );
|
161 |
break;
|
162 |
case 'shipping-company':
|
163 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->shipping_company : $order->get_shipping_company() );
|
164 |
break;
|
165 |
case 'shipping-address-1':
|
166 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->shipping_address_1 : $order->get_shipping_address_1() );
|
167 |
break;
|
168 |
case 'shipping-address-2':
|
169 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->shipping_address_2 : $order->get_shipping_address_2() );
|
170 |
break;
|
171 |
case 'shipping-city':
|
172 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->shipping_city : $order->get_shipping_city() );
|
173 |
break;
|
174 |
case 'shipping-state':
|
175 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->shipping_state : $order->get_shipping_state() );
|
176 |
break;
|
177 |
case 'shipping-postcode':
|
178 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->shipping_postcode : $order->get_shipping_postcode() );
|
179 |
break;
|
180 |
case 'shipping-country':
|
181 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $order->shipping_country : $order->get_shipping_country() );
|
182 |
break;
|
183 |
}
|
184 |
}
|
includes/export/class-wcj-exporter-products.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Exporter Products class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -28,13 +28,13 @@ class WCJ_Exporter_Products {
|
|
28 |
/**
|
29 |
* get_variable_or_grouped_product_info.
|
30 |
*
|
31 |
-
* @version 2.
|
32 |
* @since 2.5.7
|
33 |
*/
|
34 |
function get_variable_or_grouped_product_info( $_product, $which_info ) {
|
35 |
$all_variations_data = array();
|
36 |
foreach ( $_product->get_children() as $child_id ) {
|
37 |
-
$variation = $_product->get_child( $child_id );
|
38 |
switch ( $which_info ) {
|
39 |
case 'price':
|
40 |
$all_variations_data[] = ( '' === $variation->get_price() ) ? '-' : $variation->get_price();
|
@@ -46,7 +46,7 @@ class WCJ_Exporter_Products {
|
|
46 |
$all_variations_data[] = ( '' === $variation->get_sale_price() ) ? '-' : $variation->get_sale_price();
|
47 |
break;
|
48 |
case 'total_stock':
|
49 |
-
$all_variations_data[] = ( null === $variation
|
50 |
break;
|
51 |
case 'stock_quantity':
|
52 |
$all_variations_data[] = ( null === $variation->get_stock_quantity() ) ? '-' : $variation->get_stock_quantity();
|
@@ -59,7 +59,7 @@ class WCJ_Exporter_Products {
|
|
59 |
/**
|
60 |
* export_products.
|
61 |
*
|
62 |
-
* @version 2.
|
63 |
* @since 2.5.3
|
64 |
* @todo product attributes
|
65 |
*/
|
@@ -137,7 +137,7 @@ class WCJ_Exporter_Products {
|
|
137 |
break;
|
138 |
case 'product-stock':
|
139 |
$row[] = ( $_product->is_type( 'variable' ) || $_product->is_type( 'grouped' ) ?
|
140 |
-
$this->get_variable_or_grouped_product_info( $_product, 'total_stock' ) : $_product
|
141 |
break;
|
142 |
case 'product-regular-price':
|
143 |
$row[] = ( $_product->is_type( 'variable' ) || $_product->is_type( 'grouped' ) ?
|
@@ -161,13 +161,13 @@ class WCJ_Exporter_Products {
|
|
161 |
$row[] = wcj_get_product_image_url( $product_id, 'full' );
|
162 |
break;
|
163 |
case 'product-short-description':
|
164 |
-
$row[] = $_product->post->post_excerpt;
|
165 |
break;
|
166 |
case 'product-description':
|
167 |
-
$row[] = $_product->post->post_content;
|
168 |
break;
|
169 |
case 'product-status':
|
170 |
-
$row[] = $_product->post->post_status;
|
171 |
break;
|
172 |
case 'product-url':
|
173 |
$row[] = $_product->get_permalink();
|
@@ -191,13 +191,13 @@ class WCJ_Exporter_Products {
|
|
191 |
$row[] = $_product->get_weight();
|
192 |
break;
|
193 |
case 'product-downloadable':
|
194 |
-
$row[] = $_product->downloadable;
|
195 |
break;
|
196 |
case 'product-virtual':
|
197 |
-
$row[] = $_product->virtual;
|
198 |
break;
|
199 |
case 'product-sold-individually':
|
200 |
-
$row[] = $_product->sold_individually;
|
201 |
break;
|
202 |
case 'product-tax-status':
|
203 |
$row[] = $_product->get_tax_status();
|
@@ -206,28 +206,28 @@ class WCJ_Exporter_Products {
|
|
206 |
$row[] = $_product->get_tax_class();
|
207 |
break;
|
208 |
case 'product-manage-stock':
|
209 |
-
$row[] = $_product->manage_stock;
|
210 |
break;
|
211 |
case 'product-stock-status':
|
212 |
-
$row[] = $_product->stock_status;
|
213 |
break;
|
214 |
case 'product-backorders':
|
215 |
-
$row[] = $_product->backorders;
|
216 |
break;
|
217 |
case 'product-featured':
|
218 |
-
$row[] = $_product->featured;
|
219 |
break;
|
220 |
case 'product-visibility':
|
221 |
-
$row[] = $_product->visibility;
|
222 |
break;
|
223 |
case 'product-price-including-tax':
|
224 |
-
$row[] = $_product->get_price_including_tax();
|
225 |
break;
|
226 |
case 'product-price-excluding-tax':
|
227 |
-
$row[] = $_product->get_price_excluding_tax();
|
228 |
break;
|
229 |
case 'product-display-price':
|
230 |
-
$row[] = $_product
|
231 |
break;
|
232 |
case 'product-average-rating':
|
233 |
$row[] = $_product->get_average_rating();
|
@@ -239,13 +239,13 @@ class WCJ_Exporter_Products {
|
|
239 |
$row[] = $_product->get_review_count();
|
240 |
break;
|
241 |
case 'product-categories':
|
242 |
-
$row[] = $_product->get_categories();
|
243 |
break;
|
244 |
case 'product-tags':
|
245 |
-
$row[] = $_product->get_tags();
|
246 |
break;
|
247 |
case 'product-dimensions':
|
248 |
-
$row[] = $_product->get_dimensions();
|
249 |
break;
|
250 |
case 'product-formatted-name':
|
251 |
$row[] = $_product->get_formatted_name();
|
4 |
*
|
5 |
* The WooCommerce Jetpack Exporter Products class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
28 |
/**
|
29 |
* get_variable_or_grouped_product_info.
|
30 |
*
|
31 |
+
* @version 2.7.0
|
32 |
* @since 2.5.7
|
33 |
*/
|
34 |
function get_variable_or_grouped_product_info( $_product, $which_info ) {
|
35 |
$all_variations_data = array();
|
36 |
foreach ( $_product->get_children() as $child_id ) {
|
37 |
+
$variation = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->get_child( $child_id ) : wc_get_product( $child_id ) );
|
38 |
switch ( $which_info ) {
|
39 |
case 'price':
|
40 |
$all_variations_data[] = ( '' === $variation->get_price() ) ? '-' : $variation->get_price();
|
46 |
$all_variations_data[] = ( '' === $variation->get_sale_price() ) ? '-' : $variation->get_sale_price();
|
47 |
break;
|
48 |
case 'total_stock':
|
49 |
+
$all_variations_data[] = ( null === wcj_get_product_total_stock( $variation ) ) ? '-' : wcj_get_product_total_stock( $variation );
|
50 |
break;
|
51 |
case 'stock_quantity':
|
52 |
$all_variations_data[] = ( null === $variation->get_stock_quantity() ) ? '-' : $variation->get_stock_quantity();
|
59 |
/**
|
60 |
* export_products.
|
61 |
*
|
62 |
+
* @version 2.7.0
|
63 |
* @since 2.5.3
|
64 |
* @todo product attributes
|
65 |
*/
|
137 |
break;
|
138 |
case 'product-stock':
|
139 |
$row[] = ( $_product->is_type( 'variable' ) || $_product->is_type( 'grouped' ) ?
|
140 |
+
$this->get_variable_or_grouped_product_info( $_product, 'total_stock' ) : wcj_get_product_total_stock( $_product ) );
|
141 |
break;
|
142 |
case 'product-regular-price':
|
143 |
$row[] = ( $_product->is_type( 'variable' ) || $_product->is_type( 'grouped' ) ?
|
161 |
$row[] = wcj_get_product_image_url( $product_id, 'full' );
|
162 |
break;
|
163 |
case 'product-short-description':
|
164 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->post->post_excerpt : $_product->get_short_description() );
|
165 |
break;
|
166 |
case 'product-description':
|
167 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->post->post_content : $_product->get_description() );
|
168 |
break;
|
169 |
case 'product-status':
|
170 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->post->post_status : $_product->get_status() );
|
171 |
break;
|
172 |
case 'product-url':
|
173 |
$row[] = $_product->get_permalink();
|
191 |
$row[] = $_product->get_weight();
|
192 |
break;
|
193 |
case 'product-downloadable':
|
194 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->downloadable : $_product->get_downloadable() );
|
195 |
break;
|
196 |
case 'product-virtual':
|
197 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->virtual : $_product->get_virtual() );
|
198 |
break;
|
199 |
case 'product-sold-individually':
|
200 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->sold_individually : $_product->get_sold_individually() );
|
201 |
break;
|
202 |
case 'product-tax-status':
|
203 |
$row[] = $_product->get_tax_status();
|
206 |
$row[] = $_product->get_tax_class();
|
207 |
break;
|
208 |
case 'product-manage-stock':
|
209 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->manage_stock : $_product->get_manage_stock() );
|
210 |
break;
|
211 |
case 'product-stock-status':
|
212 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->stock_status : $_product->get_stock_status() );
|
213 |
break;
|
214 |
case 'product-backorders':
|
215 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->backorders : $_product->get_backorders() );
|
216 |
break;
|
217 |
case 'product-featured':
|
218 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->featured : $_product->get_featured() );
|
219 |
break;
|
220 |
case 'product-visibility':
|
221 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->visibility : $_product->get_catalog_visibility() );
|
222 |
break;
|
223 |
case 'product-price-including-tax':
|
224 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->get_price_including_tax() : wc_get_price_including_tax( $_product ) );
|
225 |
break;
|
226 |
case 'product-price-excluding-tax':
|
227 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->get_price_excluding_tax() : wc_get_price_excluding_tax( $_product ) );
|
228 |
break;
|
229 |
case 'product-display-price':
|
230 |
+
$row[] = wcj_get_product_display_price( $_product );
|
231 |
break;
|
232 |
case 'product-average-rating':
|
233 |
$row[] = $_product->get_average_rating();
|
239 |
$row[] = $_product->get_review_count();
|
240 |
break;
|
241 |
case 'product-categories':
|
242 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->get_categories() : wc_get_product_category_list( $product_id ) );
|
243 |
break;
|
244 |
case 'product-tags':
|
245 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->get_tags() : wc_get_product_tag_list( $product_id ) );
|
246 |
break;
|
247 |
case 'product-dimensions':
|
248 |
+
$row[] = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_product->get_dimensions() : wc_format_dimensions( $_product->get_dimensions( false ) ) );
|
249 |
break;
|
250 |
case 'product-formatted-name':
|
251 |
$row[] = $_product->get_formatted_name();
|
includes/export/class-wcj-fields-helper.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Export Fields Helper class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -18,10 +18,11 @@ class WCJ_Export_Fields_Helper {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
* @since 2.5.9
|
23 |
*/
|
24 |
function __construct() {
|
|
|
25 |
}
|
26 |
|
27 |
/**
|
4 |
*
|
5 |
* The WooCommerce Jetpack Export Fields Helper class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.9
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
* @since 2.5.9
|
23 |
*/
|
24 |
function __construct() {
|
25 |
+
return true;
|
26 |
}
|
27 |
|
28 |
/**
|
includes/functions/wcj-exchange-rates-functions.php
ADDED
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WooCommerce Jetpack Exchange Rates Functions
|
4 |
+
*
|
5 |
+
* @version 2.7.0
|
6 |
+
* @since 2.7.0
|
7 |
+
* @author Algoritmika Ltd.
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
11 |
+
|
12 |
+
if ( ! function_exists( 'wcj_get_currency_exchange_rate_servers' ) ) {
|
13 |
+
/**
|
14 |
+
* wcj_get_currency_exchange_rate_servers.
|
15 |
+
*
|
16 |
+
* @version 2.6.0
|
17 |
+
* @since 2.6.0
|
18 |
+
*/
|
19 |
+
function wcj_get_currency_exchange_rate_servers() {
|
20 |
+
return array(
|
21 |
+
'yahoo' => __( 'Yahoo', 'woocommerce-jetpack' ),
|
22 |
+
'ecb' => __( 'European Central Bank (ECB)', 'woocommerce-jetpack' ),
|
23 |
+
'tcmb' => __( 'TCMB', 'woocommerce-jetpack' ),
|
24 |
+
);
|
25 |
+
}
|
26 |
+
}
|
27 |
+
|
28 |
+
if ( ! function_exists( 'alg_get_exchange_rate' ) ) {
|
29 |
+
/*
|
30 |
+
* alg_get_exchange_rate.
|
31 |
+
*
|
32 |
+
* @version 2.7.0
|
33 |
+
* @since 2.6.0
|
34 |
+
*/
|
35 |
+
function alg_get_exchange_rate( $currency_from, $currency_to ) {
|
36 |
+
if ( 'yes' === ( $calculate_by_invert = get_option( 'wcj_currency_exchange_rates_calculate_by_invert', 'no' ) ) ) {
|
37 |
+
$_currency_to = $currency_to;
|
38 |
+
$currency_to = $currency_from;
|
39 |
+
$currency_from = $_currency_to;
|
40 |
+
}
|
41 |
+
$exchange_rates_server = get_option( 'wcj_currency_exchange_rates_server', 'yahoo' );
|
42 |
+
switch ( $exchange_rates_server ) {
|
43 |
+
case 'tcmb':
|
44 |
+
$return = alg_tcmb_get_exchange_rate( $currency_from, $currency_to );
|
45 |
+
break;
|
46 |
+
case 'ecb':
|
47 |
+
$return = alg_ecb_get_exchange_rate( $currency_from, $currency_to );
|
48 |
+
break;
|
49 |
+
default: // 'yahoo'
|
50 |
+
$return = alg_yahoo_get_exchange_rate( $currency_from, $currency_to );
|
51 |
+
break;
|
52 |
+
}
|
53 |
+
return ( 'yes' === $calculate_by_invert ) ? round( ( 1 / $return ), 6 ) : $return;
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
if ( ! function_exists( 'alg_ecb_get_exchange_rate' ) ) {
|
58 |
+
/*
|
59 |
+
* alg_ecb_get_exchange_rate.
|
60 |
+
*
|
61 |
+
* @version 2.7.0
|
62 |
+
* @since 2.6.0
|
63 |
+
*/
|
64 |
+
function alg_ecb_get_exchange_rate( $currency_from, $currency_to ) {
|
65 |
+
$final_rate = false;
|
66 |
+
if ( function_exists( 'simplexml_load_file' ) ) {
|
67 |
+
$xml = simplexml_load_file( 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml' );
|
68 |
+
if ( isset( $xml->Cube->Cube->Cube ) ) {
|
69 |
+
if ( 'EUR' === $currency_from ) {
|
70 |
+
$EUR_currency_from_rate = 1;
|
71 |
+
}
|
72 |
+
if ( 'EUR' === $currency_to ) {
|
73 |
+
$EUR_currency_to_rate = 1;
|
74 |
+
}
|
75 |
+
foreach ( $xml->Cube->Cube->Cube as $currency_rate ) {
|
76 |
+
$currency_rate = $currency_rate->attributes();
|
77 |
+
if ( ! isset( $EUR_currency_from_rate ) && $currency_from == $currency_rate->currency ) {
|
78 |
+
$EUR_currency_from_rate = (float) $currency_rate->rate;
|
79 |
+
}
|
80 |
+
if ( ! isset( $EUR_currency_to_rate ) && $currency_to == $currency_rate->currency ) {
|
81 |
+
$EUR_currency_to_rate = (float) $currency_rate->rate;
|
82 |
+
}
|
83 |
+
}
|
84 |
+
if ( isset( $EUR_currency_from_rate ) && isset( $EUR_currency_to_rate ) && 0 != $EUR_currency_from_rate ) {
|
85 |
+
$final_rate = round( $EUR_currency_to_rate / $EUR_currency_from_rate, 6 );
|
86 |
+
} else {
|
87 |
+
$final_rate = false;
|
88 |
+
}
|
89 |
+
}
|
90 |
+
}
|
91 |
+
return $final_rate;
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
if ( ! function_exists( 'alg_tcmb_get_exchange_rate_TRY' ) ) {
|
96 |
+
/*
|
97 |
+
* alg_tcmb_get_exchange_rate_TRY.
|
98 |
+
*
|
99 |
+
* @version 2.7.0
|
100 |
+
* @since 2.6.0
|
101 |
+
*/
|
102 |
+
function alg_tcmb_get_exchange_rate_TRY( $currency_from ) {
|
103 |
+
if ( 'TRY' === $currency_from ) {
|
104 |
+
return 1;
|
105 |
+
}
|
106 |
+
$xml = simplexml_load_file( 'http://www.tcmb.gov.tr/kurlar/today.xml' );
|
107 |
+
if ( isset( $xml->Currency ) ) {
|
108 |
+
foreach ( $xml->Currency as $the_rate ) {
|
109 |
+
$attributes = $the_rate->attributes();
|
110 |
+
if ( isset( $attributes['CurrencyCode'] ) ) {
|
111 |
+
$currency_code = (string) $attributes['CurrencyCode'];
|
112 |
+
if ( $currency_code === $currency_from ) {
|
113 |
+
// Possible values: ForexSelling, ForexBuying, BanknoteSelling, BanknoteBuying. Not used: CrossRateUSD, CrossRateOther.
|
114 |
+
if ( '' != ( $property_to_check = apply_filters( 'wcj_currency_exchange_rates_tcmb_property_to_check', '' ) ) ) {
|
115 |
+
if ( isset( $the_rate->{$property_to_check} ) ) {
|
116 |
+
$rate = (float) $the_rate->{$property_to_check};
|
117 |
+
} else {
|
118 |
+
continue;
|
119 |
+
}
|
120 |
+
} else {
|
121 |
+
if ( isset( $the_rate->ForexSelling ) ) {
|
122 |
+
$rate = (float) $the_rate->ForexSelling;
|
123 |
+
} elseif ( isset( $the_rate->ForexBuying ) ) {
|
124 |
+
$rate = (float) $the_rate->ForexBuying;
|
125 |
+
} elseif ( isset( $the_rate->BanknoteSelling ) ) {
|
126 |
+
$rate = (float) $the_rate->BanknoteSelling;
|
127 |
+
} elseif ( isset( $the_rate->BanknoteBuying ) ) {
|
128 |
+
$rate = (float) $the_rate->BanknoteBuying;
|
129 |
+
} else {
|
130 |
+
continue;
|
131 |
+
}
|
132 |
+
}
|
133 |
+
$unit = ( isset( $the_rate->Unit ) ) ? (float) $the_rate->Unit : 1;
|
134 |
+
return ( $rate / $unit );
|
135 |
+
}
|
136 |
+
}
|
137 |
+
}
|
138 |
+
}
|
139 |
+
return false;
|
140 |
+
}
|
141 |
+
}
|
142 |
+
|
143 |
+
if ( ! function_exists( 'alg_tcmb_get_exchange_rate' ) ) {
|
144 |
+
/*
|
145 |
+
* alg_tcmb_get_exchange_rate.
|
146 |
+
*
|
147 |
+
* @version 2.7.0
|
148 |
+
* @since 2.6.0
|
149 |
+
*/
|
150 |
+
function alg_tcmb_get_exchange_rate( $currency_from, $currency_to ) {
|
151 |
+
$currency_from_TRY = alg_tcmb_get_exchange_rate_TRY( strtoupper( $currency_from ) );
|
152 |
+
if ( false == $currency_from_TRY ) {
|
153 |
+
return false;
|
154 |
+
}
|
155 |
+
$currency_to_TRY = alg_tcmb_get_exchange_rate_TRY( strtoupper( $currency_to ) );
|
156 |
+
if ( false == $currency_to_TRY ) {
|
157 |
+
return false;
|
158 |
+
}
|
159 |
+
if ( 1 == $currency_to_TRY ) {
|
160 |
+
return round( $currency_from_TRY, 6 );
|
161 |
+
}
|
162 |
+
return round( ( $currency_from_TRY / $currency_to_TRY ), 6 );
|
163 |
+
}
|
164 |
+
}
|
165 |
+
|
166 |
+
if ( ! function_exists( 'alg_yahoo_get_exchange_rate' ) ) {
|
167 |
+
/*
|
168 |
+
* alg_yahoo_get_exchange_rate.
|
169 |
+
*
|
170 |
+
* @version 2.7.0
|
171 |
+
* @return float rate on success, else 0
|
172 |
+
*/
|
173 |
+
function alg_yahoo_get_exchange_rate( $currency_from, $currency_to ) {
|
174 |
+
|
175 |
+
$url = "http://query.yahooapis.com/v1/public/yql?q=select%20rate%2Cname%20from%20csv%20where%20url%3D'http%3A%2F%2Fdownload.finance.yahoo.com%2Fd%2Fquotes%3Fs%3D" . $currency_from . $currency_to . "%253DX%26f%3Dl1n'%20and%20columns%3D'rate%2Cname'&format=json";
|
176 |
+
// $url = 'http://rate-exchange.appspot.com/currency?from=' . $currency_from . '&to=' . $currency_to;
|
177 |
+
|
178 |
+
ob_start();
|
179 |
+
$max_execution_time = ini_get( 'max_execution_time' );
|
180 |
+
set_time_limit( 5 );
|
181 |
+
|
182 |
+
$response = '';
|
183 |
+
if ( 'no' === get_option( 'wcj_currency_exchange_rates_always_curl', 'no' ) && ini_get( 'allow_url_fopen' ) ) {
|
184 |
+
$response = file_get_contents( $url );
|
185 |
+
} elseif ( function_exists( 'curl_version' ) ) {
|
186 |
+
$curl = curl_init( $url );
|
187 |
+
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
|
188 |
+
$response = curl_exec( $curl );
|
189 |
+
curl_close( $curl );
|
190 |
+
}
|
191 |
+
$exchange_rate = json_decode( $response );
|
192 |
+
|
193 |
+
set_time_limit( $max_execution_time );
|
194 |
+
ob_end_clean();
|
195 |
+
|
196 |
+
return ( isset( $exchange_rate->query->results->row->rate ) ) ? floatval( $exchange_rate->query->results->row->rate ) : 0;
|
197 |
+
// return ( isset( $exchange_rate->rate ) ) ? $exchange_rate->rate : 0;
|
198 |
+
}
|
199 |
+
}
|
includes/functions/wcj-functions.php
CHANGED
@@ -4,23 +4,130 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Functions.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
11 |
-
if ( !
|
|
|
|
|
12 |
/**
|
13 |
-
*
|
14 |
*
|
15 |
-
* @version 2.
|
16 |
-
* @since 2.
|
17 |
*/
|
18 |
-
function
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
}
|
25 |
}
|
26 |
|
@@ -30,17 +137,21 @@ if ( ! function_exists( 'wcj_get_order_item_meta_info' ) ) {
|
|
30 |
*
|
31 |
* from woocommerce\includes\admin\meta-boxes\views\html-order-item-meta.php
|
32 |
*
|
33 |
-
* @version 2.
|
34 |
* @since 2.5.9
|
35 |
*/
|
36 |
function wcj_get_order_item_meta_info( $item_id, $item, $_order, $exclude_wcj_meta = false, $_product = null ) {
|
37 |
$meta_info = '';
|
38 |
-
|
|
|
39 |
$meta_info = array();
|
40 |
foreach ( $metadata as $meta ) {
|
41 |
|
|
|
|
|
|
|
42 |
// Skip hidden core fields
|
43 |
-
if ( in_array( $
|
44 |
'_qty',
|
45 |
'_tax_class',
|
46 |
'_product_id',
|
@@ -55,20 +166,20 @@ if ( ! function_exists( 'wcj_get_order_item_meta_info' ) ) {
|
|
55 |
continue;
|
56 |
}
|
57 |
|
58 |
-
if ( $exclude_wcj_meta && ( 'wcj' === substr( $
|
59 |
continue;
|
60 |
}
|
61 |
|
62 |
// Skip serialised meta
|
63 |
-
if ( is_serialized( $
|
64 |
continue;
|
65 |
}
|
66 |
|
67 |
// Get attribute data
|
68 |
-
if ( taxonomy_exists( wc_sanitize_taxonomy_name( $
|
69 |
-
$term
|
70 |
-
$
|
71 |
-
$
|
72 |
} else {
|
73 |
$the_product = null;
|
74 |
if ( is_object( $_product ) ) {
|
@@ -76,9 +187,9 @@ if ( ! function_exists( 'wcj_get_order_item_meta_info' ) ) {
|
|
76 |
} elseif ( is_object( $item ) ) {
|
77 |
$the_product = $_order->get_product_from_item( $item );
|
78 |
}
|
79 |
-
$
|
80 |
}
|
81 |
-
$meta_info[] = wp_kses_post( rawurldecode( $
|
82 |
}
|
83 |
$meta_info = implode( ', ', $meta_info );
|
84 |
}
|
@@ -118,233 +229,6 @@ if ( ! function_exists( 'wcj_is_bot' ) ) {
|
|
118 |
}
|
119 |
}
|
120 |
|
121 |
-
if ( ! function_exists( 'wcj_get_currency_exchange_rate_product_base_currency' ) ) {
|
122 |
-
/**
|
123 |
-
* wcj_get_currency_exchange_rate_product_base_currency.
|
124 |
-
*
|
125 |
-
* @version 2.5.6
|
126 |
-
* @since 2.5.6
|
127 |
-
*/
|
128 |
-
function wcj_get_currency_exchange_rate_product_base_currency( $currency_code ) {
|
129 |
-
$currency_exchange_rate = 1;
|
130 |
-
$total_number = apply_filters( 'booster_get_option', 1, get_option( 'wcj_multicurrency_base_price_total_number', 1 ) );
|
131 |
-
for ( $i = 1; $i <= $total_number; $i++ ) {
|
132 |
-
if ( $currency_code === get_option( 'wcj_multicurrency_base_price_currency_' . $i ) ) {
|
133 |
-
$currency_exchange_rate = get_option( 'wcj_multicurrency_base_price_exchange_rate_' . $i );
|
134 |
-
break;
|
135 |
-
}
|
136 |
-
}
|
137 |
-
return $currency_exchange_rate;
|
138 |
-
}
|
139 |
-
}
|
140 |
-
|
141 |
-
if ( ! function_exists( 'wcj_price_by_product_base_currency' ) ) {
|
142 |
-
/**
|
143 |
-
* wcj_price_by_product_base_currency.
|
144 |
-
*
|
145 |
-
* @version 2.5.6
|
146 |
-
* @since 2.5.6
|
147 |
-
*/
|
148 |
-
function wcj_price_by_product_base_currency( $price, $product_id ) {
|
149 |
-
$multicurrency_base_price_currency = get_post_meta( $product_id, '_' . 'wcj_multicurrency_base_price_currency', true );
|
150 |
-
if ( '' != $multicurrency_base_price_currency ) {
|
151 |
-
if ( 1 != ( $currency_exchange_rate = wcj_get_currency_exchange_rate_product_base_currency( $multicurrency_base_price_currency ) ) ) {
|
152 |
-
return $price / $currency_exchange_rate;
|
153 |
-
}
|
154 |
-
}
|
155 |
-
return $price;
|
156 |
-
}
|
157 |
-
}
|
158 |
-
|
159 |
-
if ( ! function_exists( 'wcj_price_by_country' ) ) {
|
160 |
-
/**
|
161 |
-
* wcj_price_by_country.
|
162 |
-
*
|
163 |
-
* @version 2.6.0
|
164 |
-
* @since 2.5.3
|
165 |
-
*/
|
166 |
-
function wcj_price_by_country( $price, $product, $group_id, $the_current_filter = '' ) {
|
167 |
-
|
168 |
-
$is_price_modified = false;
|
169 |
-
|
170 |
-
if ( 'yes' === get_option( 'wcj_price_by_country_local_enabled', 'yes' ) ) {
|
171 |
-
// Per product
|
172 |
-
$meta_box_id = 'price_by_country';
|
173 |
-
$scope = 'local';
|
174 |
-
|
175 |
-
if ( is_numeric( $product ) ) {
|
176 |
-
$the_product_id = $product;
|
177 |
-
} else {
|
178 |
-
$the_product_id = ( isset( $product->variation_id ) ) ? $product->variation_id : $product->id;
|
179 |
-
}
|
180 |
-
|
181 |
-
$meta_id = '_' . 'wcj_' . $meta_box_id . '_make_empty_price_' . $scope . '_' . $group_id;
|
182 |
-
if ( 'on' === get_post_meta( $the_product_id, $meta_id, true ) ) {
|
183 |
-
return '';
|
184 |
-
}
|
185 |
-
|
186 |
-
$price_by_country = '';
|
187 |
-
if ( '' == $the_current_filter ) {
|
188 |
-
$the_current_filter = current_filter();
|
189 |
-
}
|
190 |
-
if ( 'woocommerce_get_price_including_tax' == $the_current_filter || 'woocommerce_get_price_excluding_tax' == $the_current_filter ) {
|
191 |
-
$_product = wc_get_product( $the_product_id );
|
192 |
-
$get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
|
193 |
-
return $_product->$get_price_method();
|
194 |
-
|
195 |
-
} elseif ( 'woocommerce_get_price' == $the_current_filter || 'woocommerce_variation_prices_price' == $the_current_filter ) {
|
196 |
-
|
197 |
-
$regular_or_sale = '_regular_price_';
|
198 |
-
$meta_id = '_' . 'wcj_' . $meta_box_id . $regular_or_sale . $scope . '_' . $group_id;
|
199 |
-
$regular_price = get_post_meta( $the_product_id, $meta_id, true );
|
200 |
-
|
201 |
-
$regular_or_sale = '_sale_price_';
|
202 |
-
$meta_id = '_' . 'wcj_' . $meta_box_id . $regular_or_sale . $scope . '_' . $group_id;
|
203 |
-
$sale_price = get_post_meta( $the_product_id, $meta_id, true );
|
204 |
-
|
205 |
-
if ( ! empty( $sale_price ) && $sale_price < $regular_price ) {
|
206 |
-
$price_by_country = $sale_price;
|
207 |
-
} else {
|
208 |
-
$price_by_country = $regular_price;
|
209 |
-
}
|
210 |
-
|
211 |
-
}
|
212 |
-
elseif (
|
213 |
-
'woocommerce_get_regular_price' == $the_current_filter ||
|
214 |
-
'woocommerce_get_sale_price' == $the_current_filter ||
|
215 |
-
'woocommerce_variation_prices_regular_price' == $the_current_filter ||
|
216 |
-
'woocommerce_variation_prices_sale_price' == $the_current_filter
|
217 |
-
) {
|
218 |
-
$regular_or_sale = (
|
219 |
-
'woocommerce_get_regular_price' == $the_current_filter || 'woocommerce_variation_prices_regular_price' == $the_current_filter
|
220 |
-
) ? '_regular_price_' : '_sale_price_';
|
221 |
-
$meta_id = '_' . 'wcj_' . $meta_box_id . $regular_or_sale . $scope . '_' . $group_id;
|
222 |
-
$price_by_country = get_post_meta( $the_product_id, $meta_id, true );
|
223 |
-
}
|
224 |
-
|
225 |
-
if ( '' != $price_by_country ) {
|
226 |
-
$modified_price = $price_by_country;
|
227 |
-
$is_price_modified = true;
|
228 |
-
}
|
229 |
-
}
|
230 |
-
|
231 |
-
if ( ! $is_price_modified ) {
|
232 |
-
if ( 'yes' === get_option( 'wcj_price_by_country_make_empty_price_group_' . $group_id, 1 ) || '' === $price ) {
|
233 |
-
return '';
|
234 |
-
}
|
235 |
-
}
|
236 |
-
|
237 |
-
if ( ! $is_price_modified ) {
|
238 |
-
// Globally
|
239 |
-
$country_exchange_rate = get_option( 'wcj_price_by_country_exchange_rate_group_' . $group_id, 1 );
|
240 |
-
// if ( 1 != $country_exchange_rate ) {
|
241 |
-
$modified_price = $price * $country_exchange_rate;
|
242 |
-
$rounding = get_option( 'wcj_price_by_country_rounding', 'none' );
|
243 |
-
$precision = get_option( 'woocommerce_price_num_decimals', 2 );
|
244 |
-
switch ( $rounding ) {
|
245 |
-
case 'round':
|
246 |
-
$modified_price = round( $modified_price );
|
247 |
-
break;
|
248 |
-
case 'floor':
|
249 |
-
$modified_price = floor( $modified_price );
|
250 |
-
break;
|
251 |
-
case 'ceil':
|
252 |
-
$modified_price = ceil( $modified_price );
|
253 |
-
break;
|
254 |
-
default: // case 'none':
|
255 |
-
$modified_price = round( $modified_price, $precision ); // $modified_price
|
256 |
-
break;
|
257 |
-
}
|
258 |
-
$is_price_modified = true;
|
259 |
-
// }
|
260 |
-
if ( 'yes' === get_option( 'wcj_price_by_country_make_pretty', 'no' ) && $modified_price >= 0.5 && $precision > 0 ) {
|
261 |
-
$modified_price = round( $modified_price ) - ( get_option( 'wcj_price_by_country_make_pretty_min_amount_multiplier', 1 ) / pow( 10, $precision ) );
|
262 |
-
}
|
263 |
-
}
|
264 |
-
|
265 |
-
return ( $is_price_modified ) ? $modified_price : $price;
|
266 |
-
}
|
267 |
-
}
|
268 |
-
|
269 |
-
if ( ! function_exists( 'wcj_update_products_price_by_country_for_single_product' ) ) {
|
270 |
-
/**
|
271 |
-
* wcj_update_products_price_by_country_for_single_product.
|
272 |
-
*
|
273 |
-
* @version 2.5.6
|
274 |
-
* @since 2.5.3
|
275 |
-
*/
|
276 |
-
function wcj_update_products_price_by_country_for_single_product( $product_id ) {
|
277 |
-
$_product = wc_get_product( $product_id );
|
278 |
-
if ( $_product->is_type( 'variable' ) ) {
|
279 |
-
$available_variations = $_product->get_available_variations();
|
280 |
-
for ( $i = 1; $i <= apply_filters( 'booster_get_option', 1, get_option( 'wcj_price_by_country_total_groups_number', 1 ) ); $i++ ) {
|
281 |
-
$min_variation_price = PHP_INT_MAX;
|
282 |
-
$max_variation_price = 0;
|
283 |
-
foreach ( $available_variations as $variation ) {
|
284 |
-
$variation_product_id = $variation['variation_id'];
|
285 |
-
$_old_variation_price = get_post_meta( $variation_product_id, '_price', true );
|
286 |
-
if ( wcj_is_module_enabled( 'multicurrency_base_price' ) ) {
|
287 |
-
$_old_variation_price = wcj_price_by_product_base_currency( $_old_variation_price, $product_id );
|
288 |
-
}
|
289 |
-
$price_by_country = wcj_price_by_country( $_old_variation_price, $variation_product_id, $i, 'woocommerce_get_price' );
|
290 |
-
update_post_meta( $variation_product_id, '_' . 'wcj_price_by_country_' . $i, $price_by_country );
|
291 |
-
if ( '' != $price_by_country && $price_by_country < $min_variation_price ) {
|
292 |
-
$min_variation_price = $price_by_country;
|
293 |
-
}
|
294 |
-
if ( $price_by_country > $max_variation_price ) {
|
295 |
-
$max_variation_price = $price_by_country;
|
296 |
-
}
|
297 |
-
}
|
298 |
-
delete_post_meta( $product_id, '_' . 'wcj_price_by_country_' . $i );
|
299 |
-
add_post_meta( $product_id, '_' . 'wcj_price_by_country_' . $i, $min_variation_price );
|
300 |
-
if ( $min_variation_price != $max_variation_price ) {
|
301 |
-
add_post_meta( $product_id, '_' . 'wcj_price_by_country_' . $i, $max_variation_price );
|
302 |
-
}
|
303 |
-
}
|
304 |
-
} else {
|
305 |
-
$_old_price = get_post_meta( $product_id, '_price', true );
|
306 |
-
if ( wcj_is_module_enabled( 'multicurrency_base_price' ) ) {
|
307 |
-
$_old_price = wcj_price_by_product_base_currency( $_old_price, $product_id );
|
308 |
-
}
|
309 |
-
for ( $i = 1; $i <= apply_filters( 'booster_get_option', 1, get_option( 'wcj_price_by_country_total_groups_number', 1 ) ); $i++ ) {
|
310 |
-
$price_by_country = wcj_price_by_country( $_old_price, $product_id, $i, 'woocommerce_get_price' );
|
311 |
-
update_post_meta( $product_id, '_' . 'wcj_price_by_country_' . $i, $price_by_country );
|
312 |
-
}
|
313 |
-
}
|
314 |
-
}
|
315 |
-
}
|
316 |
-
|
317 |
-
if ( ! function_exists( 'wcj_update_products_price_by_country' ) ) {
|
318 |
-
/**
|
319 |
-
* wcj_update_products_price_by_country - all products.
|
320 |
-
*
|
321 |
-
* @version 2.5.3
|
322 |
-
* @since 2.5.3
|
323 |
-
*/
|
324 |
-
function wcj_update_products_price_by_country() {
|
325 |
-
$offset = 0;
|
326 |
-
$block_size = 96;
|
327 |
-
while( true ) {
|
328 |
-
$args = array(
|
329 |
-
'post_type' => 'product',
|
330 |
-
'post_status' => 'any',
|
331 |
-
'posts_per_page' => $block_size,
|
332 |
-
'offset' => $offset,
|
333 |
-
'orderby' => 'title',
|
334 |
-
'order' => 'ASC',
|
335 |
-
);
|
336 |
-
$loop = new WP_Query( $args );
|
337 |
-
if ( ! $loop->have_posts() ) break;
|
338 |
-
while ( $loop->have_posts() ) : $loop->the_post();
|
339 |
-
$product_id = $loop->post->ID;
|
340 |
-
wcj_update_products_price_by_country_for_single_product( $product_id );
|
341 |
-
endwhile;
|
342 |
-
$offset += $block_size;
|
343 |
-
}
|
344 |
-
wp_reset_postdata();
|
345 |
-
}
|
346 |
-
}
|
347 |
-
|
348 |
if ( ! function_exists( 'wcj_get_rocket_icon' ) ) {
|
349 |
/**
|
350 |
* wcj_get_rocket_icon.
|
@@ -381,80 +265,6 @@ if ( ! function_exists( 'wcj_add_files_upload_form_to_checkout_frontend' ) ) {
|
|
381 |
}
|
382 |
}
|
383 |
|
384 |
-
if ( ! function_exists( 'wcj_get_current_currency_code' ) ) {
|
385 |
-
/**
|
386 |
-
* wcj_get_current_currency_code.
|
387 |
-
*
|
388 |
-
* @version 2.5.0
|
389 |
-
* @since 2.5.0
|
390 |
-
*/
|
391 |
-
function wcj_get_current_currency_code( $module ) {
|
392 |
-
$current_currency_code = get_woocommerce_currency();
|
393 |
-
if ( wcj_is_module_enabled( $module ) ) {
|
394 |
-
if ( 'multicurrency' === $module ) {
|
395 |
-
$current_currency_code = ( isset( $_SESSION['wcj-currency'] ) ) ? $_SESSION['wcj-currency'] : $current_currency_code;
|
396 |
-
}
|
397 |
-
}
|
398 |
-
return $current_currency_code;
|
399 |
-
}
|
400 |
-
}
|
401 |
-
|
402 |
-
if ( ! function_exists( 'wcj_get_currency_by_country' ) ) {
|
403 |
-
/**
|
404 |
-
* wcj_get_currency_by_country.
|
405 |
-
*
|
406 |
-
* @version 2.5.4
|
407 |
-
* @since 2.5.4
|
408 |
-
*/
|
409 |
-
function wcj_get_currency_by_country( $country_code ) {
|
410 |
-
$currency_code = '';
|
411 |
-
for ( $i = 1; $i <= apply_filters( 'booster_get_option', 1, get_option( 'wcj_price_by_country_total_groups_number', 1 ) ); $i++ ) {
|
412 |
-
switch ( get_option( 'wcj_price_by_country_selection', 'comma_list' ) ) {
|
413 |
-
case 'comma_list':
|
414 |
-
$country_exchange_rate_group = get_option( 'wcj_price_by_country_exchange_rate_countries_group_' . $i );
|
415 |
-
$country_exchange_rate_group = str_replace( ' ', '', $country_exchange_rate_group );
|
416 |
-
$country_exchange_rate_group = explode( ',', $country_exchange_rate_group );
|
417 |
-
break;
|
418 |
-
case 'multiselect':
|
419 |
-
$country_exchange_rate_group = get_option( 'wcj_price_by_country_countries_group_' . $i );
|
420 |
-
break;
|
421 |
-
case 'chosen_select':
|
422 |
-
$country_exchange_rate_group = get_option( 'wcj_price_by_country_countries_group_chosen_select_' . $i );
|
423 |
-
break;
|
424 |
-
}
|
425 |
-
if ( in_array( $country_code, $country_exchange_rate_group ) ) {
|
426 |
-
$currency_code = get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $i );
|
427 |
-
break;
|
428 |
-
}
|
429 |
-
}
|
430 |
-
return ( '' == $currency_code ) ? get_option( 'woocommerce_currency' ) : $currency_code;
|
431 |
-
}
|
432 |
-
}
|
433 |
-
|
434 |
-
if ( ! function_exists( 'wcj_get_currency_exchange_rate' ) ) {
|
435 |
-
/**
|
436 |
-
* wcj_get_currency_exchange_rate.
|
437 |
-
*
|
438 |
-
* @version 2.5.0
|
439 |
-
* @since 2.5.0
|
440 |
-
*/
|
441 |
-
function wcj_get_currency_exchange_rate( $module, $currency_code ) {
|
442 |
-
$currency_exchange_rate = 1;
|
443 |
-
if ( wcj_is_module_enabled( $module ) ) {
|
444 |
-
if ( 'multicurrency' === $module ) {
|
445 |
-
$total_number = apply_filters( 'booster_get_option', 2, get_option( 'wcj_multicurrency_total_number', 2 ) );
|
446 |
-
for ( $i = 1; $i <= $total_number; $i++ ) {
|
447 |
-
if ( $currency_code === get_option( 'wcj_multicurrency_currency_' . $i ) ) {
|
448 |
-
$currency_exchange_rate = get_option( 'wcj_multicurrency_exchange_rate_' . $i );
|
449 |
-
break;
|
450 |
-
}
|
451 |
-
}
|
452 |
-
}
|
453 |
-
}
|
454 |
-
return $currency_exchange_rate;
|
455 |
-
}
|
456 |
-
}
|
457 |
-
|
458 |
if ( ! function_exists( 'wcj_variation_radio_button' ) ) {
|
459 |
/**
|
460 |
* wcj_variation_radio_button.
|
@@ -855,115 +665,6 @@ if ( ! function_exists( 'wcj_get_product' ) ) {
|
|
855 |
}
|
856 |
}
|
857 |
|
858 |
-
/**
|
859 |
-
* wc_get_product_purchase_price.
|
860 |
-
*/
|
861 |
-
if ( ! function_exists( 'wc_get_product_purchase_price' ) ) {
|
862 |
-
function wc_get_product_purchase_price( $product_id = 0 ) {
|
863 |
-
$the_product = wcj_get_product( $product_id );
|
864 |
-
return $the_product->get_purchase_price();
|
865 |
-
}
|
866 |
-
}
|
867 |
-
|
868 |
-
/**
|
869 |
-
* is_shop_manager.
|
870 |
-
*
|
871 |
-
* @return bool
|
872 |
-
*/
|
873 |
-
if ( ! function_exists( 'is_shop_manager' ) ) {
|
874 |
-
function is_shop_manager( $user_id = 0 ) {
|
875 |
-
$the_user = ( 0 == $user_id ) ? wp_get_current_user() : get_user_by( 'id', $user_id );
|
876 |
-
//if ( isset( $the_user['roles'][0] ) && 'shop_manager' === $the_user['roles'][0] ) {
|
877 |
-
return ( isset( $the_user->roles[0] ) && 'shop_manager' === $the_user->roles[0] ) ? true : false;
|
878 |
-
}
|
879 |
-
}
|
880 |
-
|
881 |
-
/**
|
882 |
-
* wcj_get_current_user_all_roles.
|
883 |
-
*
|
884 |
-
* @version 2.5.6
|
885 |
-
* @since 2.5.6
|
886 |
-
*/
|
887 |
-
if ( ! function_exists( 'wcj_get_current_user_all_roles' ) ) {
|
888 |
-
function wcj_get_current_user_all_roles() {
|
889 |
-
$current_user = wp_get_current_user();
|
890 |
-
return ( ! empty( $current_user->roles ) ) ? $current_user->roles : array( 'guest' );
|
891 |
-
}
|
892 |
-
}
|
893 |
-
|
894 |
-
/**
|
895 |
-
* wcj_get_current_user_first_role.
|
896 |
-
*
|
897 |
-
* @version 2.5.3
|
898 |
-
* @since 2.5.3
|
899 |
-
*/
|
900 |
-
if ( ! function_exists( 'wcj_get_current_user_first_role' ) ) {
|
901 |
-
function wcj_get_current_user_first_role() {
|
902 |
-
$current_user = wp_get_current_user();
|
903 |
-
return ( isset( $current_user->roles[0] ) && '' != $current_user->roles[0] ) ? $current_user->roles[0] : 'guest';
|
904 |
-
}
|
905 |
-
}
|
906 |
-
|
907 |
-
/**
|
908 |
-
* wcj_get_user_roles.
|
909 |
-
*
|
910 |
-
* @version 2.5.3
|
911 |
-
* @since 2.5.3
|
912 |
-
*/
|
913 |
-
if ( ! function_exists( 'wcj_get_user_roles' ) ) {
|
914 |
-
function wcj_get_user_roles() {
|
915 |
-
global $wp_roles;
|
916 |
-
$all_roles = ( isset( $wp_roles ) && is_object( $wp_roles ) ) ? $wp_roles->roles : array();
|
917 |
-
$all_roles = apply_filters( 'editable_roles', $all_roles );
|
918 |
-
$all_roles = array_merge( array(
|
919 |
-
'guest' => array(
|
920 |
-
'name' => __( 'Guest', 'woocommerce-jetpack' ),
|
921 |
-
'capabilities' => array(),
|
922 |
-
) ), $all_roles );
|
923 |
-
return $all_roles;
|
924 |
-
}
|
925 |
-
}
|
926 |
-
/**
|
927 |
-
* wcj_get_user_roles_options.
|
928 |
-
*
|
929 |
-
* @version 2.5.3
|
930 |
-
* @since 2.5.3
|
931 |
-
*/
|
932 |
-
if ( ! function_exists( 'wcj_get_user_roles_options' ) ) {
|
933 |
-
function wcj_get_user_roles_options() {
|
934 |
-
global $wp_roles;
|
935 |
-
$all_roles = ( isset( $wp_roles ) && is_object( $wp_roles ) ) ? $wp_roles->roles : array();
|
936 |
-
$all_roles = apply_filters( 'editable_roles', $all_roles );
|
937 |
-
$all_roles = array_merge( array(
|
938 |
-
'guest' => array(
|
939 |
-
'name' => __( 'Guest', 'woocommerce-jetpack' ),
|
940 |
-
'capabilities' => array(),
|
941 |
-
) ), $all_roles );
|
942 |
-
$all_roles_options = array();
|
943 |
-
foreach ( $all_roles as $_role_key => $_role ) {
|
944 |
-
$all_roles_options[ $_role_key ] = $_role['name'];
|
945 |
-
}
|
946 |
-
return $all_roles_options;
|
947 |
-
}
|
948 |
-
}
|
949 |
-
|
950 |
-
/**
|
951 |
-
* wcj_is_user_role.
|
952 |
-
*
|
953 |
-
* @version 2.5.2
|
954 |
-
* @since 2.5.0
|
955 |
-
* @return bool
|
956 |
-
*/
|
957 |
-
if ( ! function_exists( 'wcj_is_user_role' ) ) {
|
958 |
-
function wcj_is_user_role( $user_role, $user_id = 0 ) {
|
959 |
-
$the_user = ( 0 == $user_id ) ? wp_get_current_user() : get_user_by( 'id', $user_id );
|
960 |
-
if ( ! isset( $the_user->roles ) || empty( $the_user->roles ) ) {
|
961 |
-
$the_user->roles = array( 'guest' );
|
962 |
-
}
|
963 |
-
return ( isset( $the_user->roles ) && is_array( $the_user->roles ) && in_array( $user_role, $the_user->roles ) ) ? true : false;
|
964 |
-
}
|
965 |
-
}
|
966 |
-
|
967 |
/**
|
968 |
* validate_vat_no_soap.
|
969 |
*
|
@@ -1201,90 +902,3 @@ if ( ! function_exists( 'wcj_get_order_statuses' ) ) {
|
|
1201 |
return $order_statuses;
|
1202 |
}
|
1203 |
}
|
1204 |
-
|
1205 |
-
/**
|
1206 |
-
* wcj_get_currencies_names_and_symbols.
|
1207 |
-
*
|
1208 |
-
* @version 2.4.4
|
1209 |
-
*/
|
1210 |
-
if ( ! function_exists( 'wcj_get_currencies_names_and_symbols' ) ) {
|
1211 |
-
function wcj_get_currencies_names_and_symbols( $result = 'names_and_symbols', $scope = 'all' ) {
|
1212 |
-
$currency_names_and_symbols = array();
|
1213 |
-
/* if ( ! wcj_is_module_enabled( 'currency' ) ) {
|
1214 |
-
return $currency_names_and_symbols;
|
1215 |
-
} */
|
1216 |
-
if ( 'all' === $scope || 'no_custom' === $scope ) {
|
1217 |
-
// $currencies = include( wcj_plugin_path() . '/includes/currencies/wcj-currencies.php' );
|
1218 |
-
// include( wcj_plugin_path() . '/includes/currencies/wcj-currencies.php' );
|
1219 |
-
$currencies = wcj_get_currencies_array();
|
1220 |
-
foreach( $currencies as $data ) {
|
1221 |
-
switch ( $result ) {
|
1222 |
-
case 'names_and_symbols':
|
1223 |
-
$currency_names_and_symbols[ $data['code'] ] = $data['name'] . ' (' . $data['symbol'] . ')';
|
1224 |
-
break;
|
1225 |
-
case 'names':
|
1226 |
-
$currency_names_and_symbols[ $data['code'] ] = $data['name'];
|
1227 |
-
break;
|
1228 |
-
case 'symbols':
|
1229 |
-
$currency_names_and_symbols[ $data['code'] ] = $data['symbol'];
|
1230 |
-
break;
|
1231 |
-
}
|
1232 |
-
}
|
1233 |
-
}
|
1234 |
-
if ( wcj_is_module_enabled( 'currency' ) && ( 'all' === $scope || 'custom_only' === $scope ) ) {
|
1235 |
-
// Custom currencies
|
1236 |
-
$custom_currency_total_number = apply_filters( 'booster_get_option', 1, get_option( 'wcj_currency_custom_currency_total_number', 1 ) );
|
1237 |
-
for ( $i = 1; $i <= $custom_currency_total_number; $i++) {
|
1238 |
-
$custom_currency_code = get_option( 'wcj_currency_custom_currency_code_' . $i );
|
1239 |
-
$custom_currency_name = get_option( 'wcj_currency_custom_currency_name_' . $i );
|
1240 |
-
$custom_currency_symbol = get_option( 'wcj_currency_custom_currency_symbol_' . $i );
|
1241 |
-
if ( '' != $custom_currency_code && '' != $custom_currency_name /* && '' != $custom_currency_symbol */ ) {
|
1242 |
-
switch ( $result ) {
|
1243 |
-
case 'names_and_symbols':
|
1244 |
-
$currency_names_and_symbols[ $custom_currency_code ] = $custom_currency_name . ' (' . $custom_currency_symbol . ')';
|
1245 |
-
break;
|
1246 |
-
case 'names':
|
1247 |
-
$currency_names_and_symbols[ $custom_currency_code ] = $custom_currency_name;
|
1248 |
-
break;
|
1249 |
-
case 'symbols':
|
1250 |
-
$currency_names_and_symbols[ $custom_currency_code ] = $custom_currency_symbol;
|
1251 |
-
break;
|
1252 |
-
}
|
1253 |
-
}
|
1254 |
-
}
|
1255 |
-
}
|
1256 |
-
return $currency_names_and_symbols;
|
1257 |
-
}
|
1258 |
-
}
|
1259 |
-
|
1260 |
-
/**
|
1261 |
-
* wcj_get_currency_symbol.
|
1262 |
-
*
|
1263 |
-
* @version 2.4.4
|
1264 |
-
*/
|
1265 |
-
if ( ! function_exists( 'wcj_get_currency_symbol' ) ) {
|
1266 |
-
function wcj_get_currency_symbol( $currency_code ) {
|
1267 |
-
$return = '';
|
1268 |
-
$currencies = wcj_get_currencies_names_and_symbols( 'symbols', 'no_custom' );
|
1269 |
-
if ( isset( $currencies[ $currency_code ] ) ) {
|
1270 |
-
if ( wcj_is_module_enabled( 'currency' ) ) {
|
1271 |
-
$return = apply_filters( 'booster_get_option', $currencies[ $currency_code ], get_option( 'wcj_currency_' . $currency_code, $currencies[ $currency_code ] ) );
|
1272 |
-
} else {
|
1273 |
-
$return = $currencies[ $currency_code ];
|
1274 |
-
}
|
1275 |
-
} else {
|
1276 |
-
$currencies = wcj_get_currencies_names_and_symbols( 'symbols', 'custom_only' );
|
1277 |
-
$return = isset( $currencies[ $currency_code ] ) ? $currencies[ $currency_code ] : '';
|
1278 |
-
}
|
1279 |
-
return ( '' != $return ) ? $return : false;
|
1280 |
-
}
|
1281 |
-
}
|
1282 |
-
|
1283 |
-
/**
|
1284 |
-
* wcj_price.
|
1285 |
-
*/
|
1286 |
-
if ( ! function_exists( 'wcj_price' ) ) {
|
1287 |
-
function wcj_price( $price, $currency, $hide_currency ) {
|
1288 |
-
return ( 'yes' === $hide_currency ) ? wc_price( $price, array( 'currency' => 'DISABLED' ) ) : wc_price( $price, array( 'currency' => $currency ) );
|
1289 |
-
}
|
1290 |
-
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Functions.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
12 |
+
|
13 |
+
if ( ! function_exists( 'wcj_get_product_id' ) ) {
|
14 |
/**
|
15 |
+
* wcj_get_product_id.
|
16 |
*
|
17 |
+
* @version 2.7.0
|
18 |
+
* @since 2.7.0
|
19 |
*/
|
20 |
+
function wcj_get_product_id( $_product ) {
|
21 |
+
if ( WCJ_IS_WC_VERSION_BELOW_3 ) {
|
22 |
+
return ( isset( $_product->variation_id ) ) ? $_product->variation_id : $_product->id;
|
23 |
+
} else {
|
24 |
+
return $_product->get_id();
|
25 |
+
}
|
26 |
+
}
|
27 |
+
}
|
28 |
+
|
29 |
+
if ( ! function_exists( 'wcj_get_product_id_or_variation_parent_id' ) ) {
|
30 |
+
/**
|
31 |
+
* wcj_get_product_id_or_variation_parent_id.
|
32 |
+
*
|
33 |
+
* @version 2.7.0
|
34 |
+
* @since 2.7.0
|
35 |
+
*/
|
36 |
+
function wcj_get_product_id_or_variation_parent_id( $_product ) {
|
37 |
+
if ( WCJ_IS_WC_VERSION_BELOW_3 ) {
|
38 |
+
return $_product->id;
|
39 |
+
} else {
|
40 |
+
return ( $_product->is_type( 'variation' ) ) ? $_product->get_parent_id() : $_product->get_id();
|
41 |
+
}
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
if ( ! function_exists( 'wcj_get_product_status' ) ) {
|
46 |
+
/**
|
47 |
+
* wcj_get_product_status.
|
48 |
+
*
|
49 |
+
* @version 2.7.0
|
50 |
+
* @since 2.7.0
|
51 |
+
*/
|
52 |
+
function wcj_get_product_status( $_product ) {
|
53 |
+
return ( WCJ_IS_WC_VERSION_BELOW_3 ) ? $_product->post->post_status : $_product->get_status();
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
if ( ! function_exists( 'wcj_get_product_total_stock' ) ) {
|
58 |
+
/**
|
59 |
+
* wcj_get_product_total_stock.
|
60 |
+
*
|
61 |
+
* @version 2.7.0
|
62 |
+
* @since 2.7.0
|
63 |
+
*/
|
64 |
+
function wcj_get_product_total_stock( $_product ) {
|
65 |
+
if ( WCJ_IS_WC_VERSION_BELOW_3 ) {
|
66 |
+
return $_product->get_total_stock();
|
67 |
+
} else {
|
68 |
+
if ( $_product->is_type( array( 'variable', 'grouped' ) ) ) {
|
69 |
+
$total_stock = 0;
|
70 |
+
foreach ( $_product->get_children() as $child_id ) {
|
71 |
+
$child = wc_get_product( $child_id );
|
72 |
+
$total_stock += $child->get_stock_quantity();
|
73 |
+
}
|
74 |
+
return $total_stock;
|
75 |
+
} else {
|
76 |
+
return $_product->get_stock_quantity();
|
77 |
+
}
|
78 |
+
}
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
if ( ! function_exists( 'wcj_get_product_display_price' ) ) {
|
83 |
+
/**
|
84 |
+
* wcj_get_product_display_price.
|
85 |
+
*
|
86 |
+
* @version 2.7.0
|
87 |
+
* @since 2.7.0
|
88 |
+
*/
|
89 |
+
function wcj_get_product_display_price( $_product, $price = '', $qty = 1 ) {
|
90 |
+
return ( WCJ_IS_WC_VERSION_BELOW_3 ) ? $_product->get_display_price( $price, $qty ) : wc_get_price_to_display( $_product, array( 'price' => $price, 'qty' => $qty ) );
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
if ( ! function_exists( 'wcj_get_product_formatted_variation' ) ) {
|
95 |
+
/**
|
96 |
+
* wcj_get_product_formatted_variation.
|
97 |
+
*
|
98 |
+
* @version 2.7.0
|
99 |
+
* @since 2.7.0
|
100 |
+
*/
|
101 |
+
function wcj_get_product_formatted_variation( $variation, $flat = false, $include_names = true ) {
|
102 |
+
if ( WCJ_IS_WC_VERSION_BELOW_3 ) {
|
103 |
+
return $variation->get_formatted_variation_attributes( $flat );
|
104 |
+
} else {
|
105 |
+
return wc_get_formatted_variation( $variation, $flat, $include_names );
|
106 |
+
}
|
107 |
+
}
|
108 |
+
}
|
109 |
+
|
110 |
+
if ( ! function_exists( 'wcj_get_order_id' ) ) {
|
111 |
+
/**
|
112 |
+
* wcj_get_order_id.
|
113 |
+
*
|
114 |
+
* @version 2.7.0
|
115 |
+
* @since 2.7.0
|
116 |
+
*/
|
117 |
+
function wcj_get_order_id( $_order ) {
|
118 |
+
return ( WCJ_IS_WC_VERSION_BELOW_3 ) ? $_order->id : $_order->get_id();
|
119 |
+
}
|
120 |
+
}
|
121 |
+
|
122 |
+
if ( ! function_exists( 'wcj_get_order_currency' ) ) {
|
123 |
+
/**
|
124 |
+
* wcj_get_order_currency.
|
125 |
+
*
|
126 |
+
* @version 2.7.0
|
127 |
+
* @since 2.7.0
|
128 |
+
*/
|
129 |
+
function wcj_get_order_currency( $_order ) {
|
130 |
+
return ( WCJ_IS_WC_VERSION_BELOW_3 ? $_order->get_order_currency() : $_order->get_currency() );
|
131 |
}
|
132 |
}
|
133 |
|
137 |
*
|
138 |
* from woocommerce\includes\admin\meta-boxes\views\html-order-item-meta.php
|
139 |
*
|
140 |
+
* @version 2.7.0
|
141 |
* @since 2.5.9
|
142 |
*/
|
143 |
function wcj_get_order_item_meta_info( $item_id, $item, $_order, $exclude_wcj_meta = false, $_product = null ) {
|
144 |
$meta_info = '';
|
145 |
+
$metadata = ( WCJ_IS_WC_VERSION_BELOW_3 ? $_order->has_meta( $item_id ) : $item->get_meta_data() );
|
146 |
+
if ( $metadata ) {
|
147 |
$meta_info = array();
|
148 |
foreach ( $metadata as $meta ) {
|
149 |
|
150 |
+
$_meta_key = ( WCJ_IS_WC_VERSION_BELOW_3 ? $meta['meta_key'] : $meta->key );
|
151 |
+
$_meta_value = ( WCJ_IS_WC_VERSION_BELOW_3 ? $meta['meta_value'] : $meta->value );
|
152 |
+
|
153 |
// Skip hidden core fields
|
154 |
+
if ( in_array( $_meta_key, apply_filters( 'woocommerce_hidden_order_itemmeta', array(
|
155 |
'_qty',
|
156 |
'_tax_class',
|
157 |
'_product_id',
|
166 |
continue;
|
167 |
}
|
168 |
|
169 |
+
if ( $exclude_wcj_meta && ( 'wcj' === substr( $_meta_key, 0, 3 ) || '_wcj' === substr( $_meta_key, 0, 4 ) ) ) {
|
170 |
continue;
|
171 |
}
|
172 |
|
173 |
// Skip serialised meta
|
174 |
+
if ( is_serialized( $_meta_value ) || is_array( $_meta_value ) ) {
|
175 |
continue;
|
176 |
}
|
177 |
|
178 |
// Get attribute data
|
179 |
+
if ( taxonomy_exists( wc_sanitize_taxonomy_name( $_meta_key ) ) ) {
|
180 |
+
$term = get_term_by( 'slug', $_meta_value, wc_sanitize_taxonomy_name( $_meta_key ) );
|
181 |
+
$_meta_key = wc_attribute_label( wc_sanitize_taxonomy_name( $_meta_key ) );
|
182 |
+
$_meta_value = isset( $term->name ) ? $term->name : $_meta_value;
|
183 |
} else {
|
184 |
$the_product = null;
|
185 |
if ( is_object( $_product ) ) {
|
187 |
} elseif ( is_object( $item ) ) {
|
188 |
$the_product = $_order->get_product_from_item( $item );
|
189 |
}
|
190 |
+
$_meta_key = ( is_object( $the_product ) ) ? wc_attribute_label( $_meta_key, $the_product ) : $_meta_key;
|
191 |
}
|
192 |
+
$meta_info[] = wp_kses_post( rawurldecode( $_meta_key ) ) . ': ' . wp_kses_post( rawurldecode( $_meta_value ) );
|
193 |
}
|
194 |
$meta_info = implode( ', ', $meta_info );
|
195 |
}
|
229 |
}
|
230 |
}
|
231 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
if ( ! function_exists( 'wcj_get_rocket_icon' ) ) {
|
233 |
/**
|
234 |
* wcj_get_rocket_icon.
|
265 |
}
|
266 |
}
|
267 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
if ( ! function_exists( 'wcj_variation_radio_button' ) ) {
|
269 |
/**
|
270 |
* wcj_variation_radio_button.
|
665 |
}
|
666 |
}
|
667 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
668 |
/**
|
669 |
* validate_vat_no_soap.
|
670 |
*
|
902 |
return $order_statuses;
|
903 |
}
|
904 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/functions/wcj-invoicing-functions.php
CHANGED
@@ -2,16 +2,16 @@
|
|
2 |
/**
|
3 |
* WooCommerce Jetpack Invoicing Functions
|
4 |
*
|
5 |
-
* @version 2.
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
9 |
-
/*
|
10 |
-
* wcj_get_invoice_types.
|
11 |
-
*
|
12 |
-
* @version 2.5.2
|
13 |
-
*/
|
14 |
if ( ! function_exists( 'wcj_get_invoice_types' ) ) {
|
|
|
|
|
|
|
|
|
|
|
15 |
function wcj_get_invoice_types() {
|
16 |
$invoice_types = array(
|
17 |
array(
|
@@ -46,22 +46,33 @@ if ( ! function_exists( 'wcj_get_invoice_types' ) ) {
|
|
46 |
// 'icon' => '\e019',
|
47 |
),
|
48 |
|
49 |
-
array(
|
50 |
'id' => 'custom_doc',
|
51 |
'title' => __( 'Custom Document', 'woocommerce-jetpack' ),
|
52 |
'desc' => __( 'Custom Documents', 'woocommerce-jetpack' ),
|
53 |
'defaults' => array( 'init' => 'disabled', ),
|
54 |
// 'icon' => '\e019',
|
55 |
-
),
|
56 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
return $invoice_types;
|
58 |
}
|
59 |
}
|
60 |
|
61 |
-
/*
|
62 |
-
* wcj_get_enabled_invoice_types.
|
63 |
-
*/
|
64 |
if ( ! function_exists( 'wcj_get_enabled_invoice_types' ) ) {
|
|
|
|
|
|
|
65 |
function wcj_get_enabled_invoice_types() {
|
66 |
$invoice_types = wcj_get_invoice_types();
|
67 |
$enabled_invoice_types = array();
|
@@ -75,10 +86,10 @@ if ( ! function_exists( 'wcj_get_enabled_invoice_types' ) ) {
|
|
75 |
}
|
76 |
}
|
77 |
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
function wcj_get_enabled_invoice_types_ids() {
|
83 |
$invoice_types = wcj_get_enabled_invoice_types();
|
84 |
$invoice_types_ids = array();
|
@@ -89,30 +100,30 @@ if ( ! function_exists( 'wcj_get_enabled_invoice_types' ) ) {
|
|
89 |
}
|
90 |
}
|
91 |
|
92 |
-
/*
|
93 |
-
* wcj_get_pdf_invoice.
|
94 |
-
*/
|
95 |
if ( ! function_exists( 'wcj_get_pdf_invoice' ) ) {
|
|
|
|
|
|
|
96 |
function wcj_get_pdf_invoice( $order_id, $invoice_type_id ) {
|
97 |
$the_invoice = new WCJ_PDF_Invoice( $order_id, $invoice_type_id );
|
98 |
return $the_invoice;
|
99 |
}
|
100 |
}
|
101 |
|
102 |
-
/*
|
103 |
-
* wcj_get_invoice.
|
104 |
-
*/
|
105 |
if ( ! function_exists( 'wcj_get_invoice' ) ) {
|
|
|
|
|
|
|
106 |
function wcj_get_invoice( $order_id, $invoice_type_id ) {
|
107 |
$the_invoice = new WCJ_Invoice( $order_id, $invoice_type_id );
|
108 |
return $the_invoice;
|
109 |
}
|
110 |
}
|
111 |
|
112 |
-
/*
|
113 |
-
* wcj_get_invoice_date.
|
114 |
-
*/
|
115 |
if ( ! function_exists( 'wcj_get_invoice_date' ) ) {
|
|
|
|
|
|
|
116 |
function wcj_get_invoice_date( $order_id, $invoice_type_id, $extra_days, $date_format ) {
|
117 |
$the_invoice = wcj_get_invoice( $order_id, $invoice_type_id );
|
118 |
$extra_days_in_sec = $extra_days * 24 * 60 * 60;
|
@@ -120,40 +131,40 @@ if ( ! function_exists( 'wcj_get_invoice_date' ) ) {
|
|
120 |
}
|
121 |
}
|
122 |
|
123 |
-
/*
|
124 |
-
* wcj_get_invoice_number.
|
125 |
-
*/
|
126 |
if ( ! function_exists( 'wcj_get_invoice_number' ) ) {
|
|
|
|
|
|
|
127 |
function wcj_get_invoice_number( $order_id, $invoice_type_id ) {
|
128 |
$the_invoice = wcj_get_invoice( $order_id, $invoice_type_id );
|
129 |
return $the_invoice->get_invoice_number();
|
130 |
}
|
131 |
}
|
132 |
|
133 |
-
/*
|
134 |
-
* wcj_delete_invoice.
|
135 |
-
*/
|
136 |
if ( ! function_exists( 'wcj_delete_invoice' ) ) {
|
|
|
|
|
|
|
137 |
function wcj_delete_invoice( $order_id, $invoice_type_id ) {
|
138 |
$the_invoice = wcj_get_invoice( $order_id, $invoice_type_id );
|
139 |
$the_invoice->delete();
|
140 |
}
|
141 |
}
|
142 |
|
143 |
-
/*
|
144 |
-
* wcj_create_invoice.
|
145 |
-
*/
|
146 |
if ( ! function_exists( 'wcj_create_invoice' ) ) {
|
|
|
|
|
|
|
147 |
function wcj_create_invoice( $order_id, $invoice_type_id, $date = '' ) {
|
148 |
$the_invoice = wcj_get_invoice( $order_id, $invoice_type_id );
|
149 |
$the_invoice->create( $date );
|
150 |
}
|
151 |
}
|
152 |
|
153 |
-
/*
|
154 |
-
* wcj_is_invoice_created.
|
155 |
-
*/
|
156 |
if ( ! function_exists( 'wcj_is_invoice_created' ) ) {
|
|
|
|
|
|
|
157 |
function wcj_is_invoice_created( $order_id, $invoice_type_id ) {
|
158 |
$the_invoice = wcj_get_invoice( $order_id, $invoice_type_id );
|
159 |
return $the_invoice->is_created();
|
2 |
/**
|
3 |
* WooCommerce Jetpack Invoicing Functions
|
4 |
*
|
5 |
+
* @version 2.7.0
|
6 |
* @author Algoritmika Ltd.
|
7 |
*/
|
8 |
|
|
|
|
|
|
|
|
|
|
|
9 |
if ( ! function_exists( 'wcj_get_invoice_types' ) ) {
|
10 |
+
/*
|
11 |
+
* wcj_get_invoice_types.
|
12 |
+
*
|
13 |
+
* @version 2.7.0
|
14 |
+
*/
|
15 |
function wcj_get_invoice_types() {
|
16 |
$invoice_types = array(
|
17 |
array(
|
46 |
// 'icon' => '\e019',
|
47 |
),
|
48 |
|
49 |
+
/* array(
|
50 |
'id' => 'custom_doc',
|
51 |
'title' => __( 'Custom Document', 'woocommerce-jetpack' ),
|
52 |
'desc' => __( 'Custom Documents', 'woocommerce-jetpack' ),
|
53 |
'defaults' => array( 'init' => 'disabled', ),
|
54 |
// 'icon' => '\e019',
|
55 |
+
), */
|
56 |
);
|
57 |
+
|
58 |
+
$total_custom_docs = get_option( 'wcj_invoicing_custom_doc_total_number', 1 );
|
59 |
+
for ( $i = 1; $i <= $total_custom_docs; $i++ ) {
|
60 |
+
$invoice_types[] = array(
|
61 |
+
'id' => ( 1 == $i ? 'custom_doc' : 'custom_doc' . '_' . $i ),
|
62 |
+
'title' => __( 'Custom Document', 'woocommerce-jetpack' ) . ' #' . $i,
|
63 |
+
'desc' => __( 'Custom Documents', 'woocommerce-jetpack' ) . ' #' . $i,
|
64 |
+
'defaults' => array( 'init' => 'disabled', ),
|
65 |
+
);
|
66 |
+
}
|
67 |
+
|
68 |
return $invoice_types;
|
69 |
}
|
70 |
}
|
71 |
|
|
|
|
|
|
|
72 |
if ( ! function_exists( 'wcj_get_enabled_invoice_types' ) ) {
|
73 |
+
/*
|
74 |
+
* wcj_get_enabled_invoice_types.
|
75 |
+
*/
|
76 |
function wcj_get_enabled_invoice_types() {
|
77 |
$invoice_types = wcj_get_invoice_types();
|
78 |
$enabled_invoice_types = array();
|
86 |
}
|
87 |
}
|
88 |
|
89 |
+
if ( ! function_exists( 'wcj_get_enabled_invoice_types_ids' ) ) {
|
90 |
+
/*
|
91 |
+
* wcj_get_enabled_invoice_types_ids.
|
92 |
+
*/
|
93 |
function wcj_get_enabled_invoice_types_ids() {
|
94 |
$invoice_types = wcj_get_enabled_invoice_types();
|
95 |
$invoice_types_ids = array();
|
100 |
}
|
101 |
}
|
102 |
|
|
|
|
|
|
|
103 |
if ( ! function_exists( 'wcj_get_pdf_invoice' ) ) {
|
104 |
+
/*
|
105 |
+
* wcj_get_pdf_invoice.
|
106 |
+
*/
|
107 |
function wcj_get_pdf_invoice( $order_id, $invoice_type_id ) {
|
108 |
$the_invoice = new WCJ_PDF_Invoice( $order_id, $invoice_type_id );
|
109 |
return $the_invoice;
|
110 |
}
|
111 |
}
|
112 |
|
|
|
|
|
|
|
113 |
if ( ! function_exists( 'wcj_get_invoice' ) ) {
|
114 |
+
/*
|
115 |
+
* wcj_get_invoice.
|
116 |
+
*/
|
117 |
function wcj_get_invoice( $order_id, $invoice_type_id ) {
|
118 |
$the_invoice = new WCJ_Invoice( $order_id, $invoice_type_id );
|
119 |
return $the_invoice;
|
120 |
}
|
121 |
}
|
122 |
|
|
|
|
|
|
|
123 |
if ( ! function_exists( 'wcj_get_invoice_date' ) ) {
|
124 |
+
/*
|
125 |
+
* wcj_get_invoice_date.
|
126 |
+
*/
|
127 |
function wcj_get_invoice_date( $order_id, $invoice_type_id, $extra_days, $date_format ) {
|
128 |
$the_invoice = wcj_get_invoice( $order_id, $invoice_type_id );
|
129 |
$extra_days_in_sec = $extra_days * 24 * 60 * 60;
|
131 |
}
|
132 |
}
|
133 |
|
|
|
|
|
|
|
134 |
if ( ! function_exists( 'wcj_get_invoice_number' ) ) {
|
135 |
+
/*
|
136 |
+
* wcj_get_invoice_number.
|
137 |
+
*/
|
138 |
function wcj_get_invoice_number( $order_id, $invoice_type_id ) {
|
139 |
$the_invoice = wcj_get_invoice( $order_id, $invoice_type_id );
|
140 |
return $the_invoice->get_invoice_number();
|
141 |
}
|
142 |
}
|
143 |
|
|
|
|
|
|
|
144 |
if ( ! function_exists( 'wcj_delete_invoice' ) ) {
|
145 |
+
/*
|
146 |
+
* wcj_delete_invoice.
|
147 |
+
*/
|
148 |
function wcj_delete_invoice( $order_id, $invoice_type_id ) {
|
149 |
$the_invoice = wcj_get_invoice( $order_id, $invoice_type_id );
|
150 |
$the_invoice->delete();
|
151 |
}
|
152 |
}
|
153 |
|
|
|
|
|
|
|
154 |
if ( ! function_exists( 'wcj_create_invoice' ) ) {
|
155 |
+
/*
|
156 |
+
* wcj_create_invoice.
|
157 |
+
*/
|
158 |
function wcj_create_invoice( $order_id, $invoice_type_id, $date = '' ) {
|
159 |
$the_invoice = wcj_get_invoice( $order_id, $invoice_type_id );
|
160 |
$the_invoice->create( $date );
|
161 |
}
|
162 |
}
|
163 |
|
|
|
|
|
|
|
164 |
if ( ! function_exists( 'wcj_is_invoice_created' ) ) {
|
165 |
+
/*
|
166 |
+
* wcj_is_invoice_created.
|
167 |
+
*/
|
168 |
function wcj_is_invoice_created( $order_id, $invoice_type_id ) {
|
169 |
$the_invoice = wcj_get_invoice( $order_id, $invoice_type_id );
|
170 |
return $the_invoice->is_created();
|
includes/functions/wcj-price-currency-functions.php
ADDED
@@ -0,0 +1,447 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WooCommerce Jetpack Price and Currency Functions
|
4 |
+
*
|
5 |
+
* The WooCommerce Jetpack Price and Currency functions.
|
6 |
+
*
|
7 |
+
* @version 2.7.0
|
8 |
+
* @since 2.7.0
|
9 |
+
* @author Algoritmika Ltd.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
13 |
+
|
14 |
+
if ( ! function_exists( 'wcj_add_change_price_hooks' ) ) {
|
15 |
+
/**
|
16 |
+
* wcj_add_change_price_hooks.
|
17 |
+
*
|
18 |
+
* @version 2.7.0
|
19 |
+
* @since 2.7.0
|
20 |
+
*/
|
21 |
+
function wcj_add_change_price_hooks( $module_object, $priority, $include_shipping = true ) {
|
22 |
+
// Prices
|
23 |
+
add_filter( WCJ_PRODUCT_GET_PRICE_FILTER, array( $module_object, 'change_price' ), $priority, 2 );
|
24 |
+
add_filter( WCJ_PRODUCT_GET_SALE_PRICE_FILTER, array( $module_object, 'change_price' ), $priority, 2 );
|
25 |
+
add_filter( WCJ_PRODUCT_GET_REGULAR_PRICE_FILTER, array( $module_object, 'change_price' ), $priority, 2 );
|
26 |
+
// Variations
|
27 |
+
add_filter( 'woocommerce_variation_prices_price', array( $module_object, 'change_price' ), $priority, 2 );
|
28 |
+
add_filter( 'woocommerce_variation_prices_regular_price', array( $module_object, 'change_price' ), $priority, 2 );
|
29 |
+
add_filter( 'woocommerce_variation_prices_sale_price', array( $module_object, 'change_price' ), $priority, 2 );
|
30 |
+
add_filter( 'woocommerce_get_variation_prices_hash', array( $module_object, 'get_variation_prices_hash' ), $priority, 3 );
|
31 |
+
if ( ! WCJ_IS_WC_VERSION_BELOW_3 ) {
|
32 |
+
add_filter( 'woocommerce_product_variation_get_price', array( $module_object, 'change_price' ), $priority, 2 );
|
33 |
+
add_filter( 'woocommerce_product_variation_get_regular_price', array( $module_object, 'change_price' ), $priority, 2 );
|
34 |
+
add_filter( 'woocommerce_product_variation_get_sale_price', array( $module_object, 'change_price' ), $priority, 2 );
|
35 |
+
}
|
36 |
+
// Shipping
|
37 |
+
if ( $include_shipping ) {
|
38 |
+
add_filter( 'woocommerce_package_rates', array( $module_object, 'change_price_shipping' ), $priority, 2 );
|
39 |
+
}
|
40 |
+
// Grouped products
|
41 |
+
add_filter( 'woocommerce_get_price_including_tax', array( $module_object, 'change_price_grouped' ), $priority, 3 );
|
42 |
+
add_filter( 'woocommerce_get_price_excluding_tax', array( $module_object, 'change_price_grouped' ), $priority, 3 );
|
43 |
+
}
|
44 |
+
}
|
45 |
+
|
46 |
+
if ( ! function_exists( 'wcj_get_currency_exchange_rate_product_base_currency' ) ) {
|
47 |
+
/**
|
48 |
+
* wcj_get_currency_exchange_rate_product_base_currency.
|
49 |
+
*
|
50 |
+
* @version 2.5.6
|
51 |
+
* @since 2.5.6
|
52 |
+
*/
|
53 |
+
function wcj_get_currency_exchange_rate_product_base_currency( $currency_code ) {
|
54 |
+
$currency_exchange_rate = 1;
|
55 |
+
$total_number = apply_filters( 'booster_get_option', 1, get_option( 'wcj_multicurrency_base_price_total_number', 1 ) );
|
56 |
+
for ( $i = 1; $i <= $total_number; $i++ ) {
|
57 |
+
if ( $currency_code === get_option( 'wcj_multicurrency_base_price_currency_' . $i ) ) {
|
58 |
+
$currency_exchange_rate = get_option( 'wcj_multicurrency_base_price_exchange_rate_' . $i );
|
59 |
+
break;
|
60 |
+
}
|
61 |
+
}
|
62 |
+
return $currency_exchange_rate;
|
63 |
+
}
|
64 |
+
}
|
65 |
+
|
66 |
+
if ( ! function_exists( 'wcj_price_by_product_base_currency' ) ) {
|
67 |
+
/**
|
68 |
+
* wcj_price_by_product_base_currency.
|
69 |
+
*
|
70 |
+
* @version 2.7.0
|
71 |
+
* @since 2.5.6
|
72 |
+
*/
|
73 |
+
function wcj_price_by_product_base_currency( $price, $product_id ) {
|
74 |
+
if ( '' == $price ) {
|
75 |
+
return $price;
|
76 |
+
}
|
77 |
+
$multicurrency_base_price_currency = get_post_meta( $product_id, '_' . 'wcj_multicurrency_base_price_currency', true );
|
78 |
+
if ( '' != $multicurrency_base_price_currency ) {
|
79 |
+
if ( 1 != ( $currency_exchange_rate = wcj_get_currency_exchange_rate_product_base_currency( $multicurrency_base_price_currency ) ) ) {
|
80 |
+
return $price / $currency_exchange_rate;
|
81 |
+
}
|
82 |
+
}
|
83 |
+
return $price;
|
84 |
+
}
|
85 |
+
}
|
86 |
+
|
87 |
+
if ( ! function_exists( 'wcj_price_by_country' ) ) {
|
88 |
+
/**
|
89 |
+
* wcj_price_by_country.
|
90 |
+
*
|
91 |
+
* @version 2.7.0
|
92 |
+
* @since 2.5.3
|
93 |
+
*/
|
94 |
+
function wcj_price_by_country( $price, $product, $group_id, $the_current_filter = '' ) {
|
95 |
+
|
96 |
+
$is_price_modified = false;
|
97 |
+
|
98 |
+
if ( 'yes' === get_option( 'wcj_price_by_country_local_enabled', 'yes' ) ) {
|
99 |
+
// Per product
|
100 |
+
$meta_box_id = 'price_by_country';
|
101 |
+
$scope = 'local';
|
102 |
+
|
103 |
+
if ( is_numeric( $product ) ) {
|
104 |
+
$the_product_id = $product;
|
105 |
+
} else {
|
106 |
+
$the_product_id = wcj_get_product_id( $product );
|
107 |
+
}
|
108 |
+
|
109 |
+
$meta_id = '_' . 'wcj_' . $meta_box_id . '_make_empty_price_' . $scope . '_' . $group_id;
|
110 |
+
if ( 'on' === get_post_meta( $the_product_id, $meta_id, true ) ) {
|
111 |
+
return '';
|
112 |
+
}
|
113 |
+
|
114 |
+
$price_by_country = '';
|
115 |
+
if ( '' == $the_current_filter ) {
|
116 |
+
$the_current_filter = current_filter();
|
117 |
+
}
|
118 |
+
if ( 'woocommerce_get_price_including_tax' == $the_current_filter || 'woocommerce_get_price_excluding_tax' == $the_current_filter ) {
|
119 |
+
$_product = wc_get_product( $the_product_id );
|
120 |
+
return wcj_get_product_display_price( $_product );
|
121 |
+
|
122 |
+
} elseif ( WCJ_PRODUCT_GET_PRICE_FILTER == $the_current_filter || 'woocommerce_variation_prices_price' == $the_current_filter || 'woocommerce_product_variation_get_price' == $the_current_filter ) {
|
123 |
+
|
124 |
+
$regular_or_sale = '_regular_price_';
|
125 |
+
$meta_id = '_' . 'wcj_' . $meta_box_id . $regular_or_sale . $scope . '_' . $group_id;
|
126 |
+
$regular_price = get_post_meta( $the_product_id, $meta_id, true );
|
127 |
+
|
128 |
+
$regular_or_sale = '_sale_price_';
|
129 |
+
$meta_id = '_' . 'wcj_' . $meta_box_id . $regular_or_sale . $scope . '_' . $group_id;
|
130 |
+
$sale_price = get_post_meta( $the_product_id, $meta_id, true );
|
131 |
+
|
132 |
+
if ( ! empty( $sale_price ) && $sale_price < $regular_price ) {
|
133 |
+
$price_by_country = $sale_price;
|
134 |
+
} else {
|
135 |
+
$price_by_country = $regular_price;
|
136 |
+
}
|
137 |
+
|
138 |
+
}
|
139 |
+
elseif (
|
140 |
+
WCJ_PRODUCT_GET_REGULAR_PRICE_FILTER == $the_current_filter ||
|
141 |
+
WCJ_PRODUCT_GET_SALE_PRICE_FILTER == $the_current_filter ||
|
142 |
+
'woocommerce_variation_prices_regular_price' == $the_current_filter ||
|
143 |
+
'woocommerce_variation_prices_sale_price' == $the_current_filter ||
|
144 |
+
'woocommerce_product_variation_get_regular_price' == $the_current_filter ||
|
145 |
+
'woocommerce_product_variation_get_sale_price' == $the_current_filter
|
146 |
+
) {
|
147 |
+
$regular_or_sale = (
|
148 |
+
WCJ_PRODUCT_GET_REGULAR_PRICE_FILTER == $the_current_filter || 'woocommerce_variation_prices_regular_price' == $the_current_filter || 'woocommerce_product_variation_get_regular_price' == $the_current_filter
|
149 |
+
) ? '_regular_price_' : '_sale_price_';
|
150 |
+
$meta_id = '_' . 'wcj_' . $meta_box_id . $regular_or_sale . $scope . '_' . $group_id;
|
151 |
+
$price_by_country = get_post_meta( $the_product_id, $meta_id, true );
|
152 |
+
}
|
153 |
+
|
154 |
+
if ( '' != $price_by_country ) {
|
155 |
+
$modified_price = $price_by_country;
|
156 |
+
$is_price_modified = true;
|
157 |
+
}
|
158 |
+
}
|
159 |
+
|
160 |
+
if ( ! $is_price_modified ) {
|
161 |
+
if ( 'yes' === get_option( 'wcj_price_by_country_make_empty_price_group_' . $group_id, 1 ) || '' === $price ) {
|
162 |
+
return '';
|
163 |
+
}
|
164 |
+
}
|
165 |
+
|
166 |
+
if ( ! $is_price_modified ) {
|
167 |
+
// Globally
|
168 |
+
$country_exchange_rate = get_option( 'wcj_price_by_country_exchange_rate_group_' . $group_id, 1 );
|
169 |
+
// if ( 1 != $country_exchange_rate ) {
|
170 |
+
$modified_price = $price * $country_exchange_rate;
|
171 |
+
$rounding = get_option( 'wcj_price_by_country_rounding', 'none' );
|
172 |
+
$precision = get_option( 'woocommerce_price_num_decimals', 2 );
|
173 |
+
switch ( $rounding ) {
|
174 |
+
case 'round':
|
175 |
+
$modified_price = round( $modified_price );
|
176 |
+
break;
|
177 |
+
case 'floor':
|
178 |
+
$modified_price = floor( $modified_price );
|
179 |
+
break;
|
180 |
+
case 'ceil':
|
181 |
+
$modified_price = ceil( $modified_price );
|
182 |
+
break;
|
183 |
+
default: // case 'none':
|
184 |
+
$modified_price = round( $modified_price, $precision ); // $modified_price
|
185 |
+
break;
|
186 |
+
}
|
187 |
+
$is_price_modified = true;
|
188 |
+
// }
|
189 |
+
if ( 'yes' === get_option( 'wcj_price_by_country_make_pretty', 'no' ) && $modified_price >= 0.5 && $precision > 0 ) {
|
190 |
+
$modified_price = round( $modified_price ) - ( get_option( 'wcj_price_by_country_make_pretty_min_amount_multiplier', 1 ) / pow( 10, $precision ) );
|
191 |
+
}
|
192 |
+
}
|
193 |
+
|
194 |
+
return ( $is_price_modified ) ? $modified_price : $price;
|
195 |
+
}
|
196 |
+
}
|
197 |
+
|
198 |
+
if ( ! function_exists( 'wcj_update_products_price_by_country_for_single_product' ) ) {
|
199 |
+
/**
|
200 |
+
* wcj_update_products_price_by_country_for_single_product.
|
201 |
+
*
|
202 |
+
* @version 2.7.0
|
203 |
+
* @since 2.5.3
|
204 |
+
*/
|
205 |
+
function wcj_update_products_price_by_country_for_single_product( $product_id ) {
|
206 |
+
$_product = wc_get_product( $product_id );
|
207 |
+
if ( $_product->is_type( 'variable' ) ) {
|
208 |
+
$available_variations = $_product->get_available_variations();
|
209 |
+
for ( $i = 1; $i <= apply_filters( 'booster_get_option', 1, get_option( 'wcj_price_by_country_total_groups_number', 1 ) ); $i++ ) {
|
210 |
+
$min_variation_price = PHP_INT_MAX;
|
211 |
+
$max_variation_price = 0;
|
212 |
+
foreach ( $available_variations as $variation ) {
|
213 |
+
$variation_product_id = $variation['variation_id'];
|
214 |
+
$_old_variation_price = get_post_meta( $variation_product_id, '_price', true );
|
215 |
+
if ( wcj_is_module_enabled( 'multicurrency_base_price' ) ) {
|
216 |
+
$_old_variation_price = wcj_price_by_product_base_currency( $_old_variation_price, $product_id );
|
217 |
+
}
|
218 |
+
$price_by_country = wcj_price_by_country( $_old_variation_price, $variation_product_id, $i, WCJ_PRODUCT_GET_PRICE_FILTER );
|
219 |
+
update_post_meta( $variation_product_id, '_' . 'wcj_price_by_country_' . $i, $price_by_country );
|
220 |
+
if ( '' != $price_by_country && $price_by_country < $min_variation_price ) {
|
221 |
+
$min_variation_price = $price_by_country;
|
222 |
+
}
|
223 |
+
if ( $price_by_country > $max_variation_price ) {
|
224 |
+
$max_variation_price = $price_by_country;
|
225 |
+
}
|
226 |
+
}
|
227 |
+
delete_post_meta( $product_id, '_' . 'wcj_price_by_country_' . $i );
|
228 |
+
add_post_meta( $product_id, '_' . 'wcj_price_by_country_' . $i, $min_variation_price );
|
229 |
+
if ( $min_variation_price != $max_variation_price ) {
|
230 |
+
add_post_meta( $product_id, '_' . 'wcj_price_by_country_' . $i, $max_variation_price );
|
231 |
+
}
|
232 |
+
}
|
233 |
+
} else {
|
234 |
+
$_old_price = get_post_meta( $product_id, '_price', true );
|
235 |
+
if ( wcj_is_module_enabled( 'multicurrency_base_price' ) ) {
|
236 |
+
$_old_price = wcj_price_by_product_base_currency( $_old_price, $product_id );
|
237 |
+
}
|
238 |
+
for ( $i = 1; $i <= apply_filters( 'booster_get_option', 1, get_option( 'wcj_price_by_country_total_groups_number', 1 ) ); $i++ ) {
|
239 |
+
$price_by_country = wcj_price_by_country( $_old_price, $product_id, $i, WCJ_PRODUCT_GET_PRICE_FILTER );
|
240 |
+
update_post_meta( $product_id, '_' . 'wcj_price_by_country_' . $i, $price_by_country );
|
241 |
+
}
|
242 |
+
}
|
243 |
+
}
|
244 |
+
}
|
245 |
+
|
246 |
+
if ( ! function_exists( 'wcj_update_products_price_by_country' ) ) {
|
247 |
+
/**
|
248 |
+
* wcj_update_products_price_by_country - all products.
|
249 |
+
*
|
250 |
+
* @version 2.5.3
|
251 |
+
* @since 2.5.3
|
252 |
+
*/
|
253 |
+
function wcj_update_products_price_by_country() {
|
254 |
+
$offset = 0;
|
255 |
+
$block_size = 96;
|
256 |
+
while( true ) {
|
257 |
+
$args = array(
|
258 |
+
'post_type' => 'product',
|
259 |
+
'post_status' => 'any',
|
260 |
+
'posts_per_page' => $block_size,
|
261 |
+
'offset' => $offset,
|
262 |
+
'orderby' => 'title',
|
263 |
+
'order' => 'ASC',
|
264 |
+
);
|
265 |
+
$loop = new WP_Query( $args );
|
266 |
+
if ( ! $loop->have_posts() ) break;
|
267 |
+
while ( $loop->have_posts() ) : $loop->the_post();
|
268 |
+
$product_id = $loop->post->ID;
|
269 |
+
wcj_update_products_price_by_country_for_single_product( $product_id );
|
270 |
+
endwhile;
|
271 |
+
$offset += $block_size;
|
272 |
+
}
|
273 |
+
wp_reset_postdata();
|
274 |
+
}
|
275 |
+
}
|
276 |
+
|
277 |
+
if ( ! function_exists( 'wcj_get_current_currency_code' ) ) {
|
278 |
+
/**
|
279 |
+
* wcj_get_current_currency_code.
|
280 |
+
*
|
281 |
+
* @version 2.5.0
|
282 |
+
* @since 2.5.0
|
283 |
+
*/
|
284 |
+
function wcj_get_current_currency_code( $module ) {
|
285 |
+
$current_currency_code = get_woocommerce_currency();
|
286 |
+
if ( wcj_is_module_enabled( $module ) ) {
|
287 |
+
if ( 'multicurrency' === $module ) {
|
288 |
+
$current_currency_code = ( isset( $_SESSION['wcj-currency'] ) ) ? $_SESSION['wcj-currency'] : $current_currency_code;
|
289 |
+
}
|
290 |
+
}
|
291 |
+
return $current_currency_code;
|
292 |
+
}
|
293 |
+
}
|
294 |
+
|
295 |
+
if ( ! function_exists( 'wcj_get_currency_by_country' ) ) {
|
296 |
+
/**
|
297 |
+
* wcj_get_currency_by_country.
|
298 |
+
*
|
299 |
+
* @version 2.5.4
|
300 |
+
* @since 2.5.4
|
301 |
+
*/
|
302 |
+
function wcj_get_currency_by_country( $country_code ) {
|
303 |
+
$currency_code = '';
|
304 |
+
for ( $i = 1; $i <= apply_filters( 'booster_get_option', 1, get_option( 'wcj_price_by_country_total_groups_number', 1 ) ); $i++ ) {
|
305 |
+
switch ( get_option( 'wcj_price_by_country_selection', 'comma_list' ) ) {
|
306 |
+
case 'comma_list':
|
307 |
+
$country_exchange_rate_group = get_option( 'wcj_price_by_country_exchange_rate_countries_group_' . $i );
|
308 |
+
$country_exchange_rate_group = str_replace( ' ', '', $country_exchange_rate_group );
|
309 |
+
$country_exchange_rate_group = explode( ',', $country_exchange_rate_group );
|
310 |
+
break;
|
311 |
+
case 'multiselect':
|
312 |
+
$country_exchange_rate_group = get_option( 'wcj_price_by_country_countries_group_' . $i );
|
313 |
+
break;
|
314 |
+
case 'chosen_select':
|
315 |
+
$country_exchange_rate_group = get_option( 'wcj_price_by_country_countries_group_chosen_select_' . $i );
|
316 |
+
break;
|
317 |
+
}
|
318 |
+
if ( in_array( $country_code, $country_exchange_rate_group ) ) {
|
319 |
+
$currency_code = get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $i );
|
320 |
+
break;
|
321 |
+
}
|
322 |
+
}
|
323 |
+
return ( '' == $currency_code ) ? get_option( 'woocommerce_currency' ) : $currency_code;
|
324 |
+
}
|
325 |
+
}
|
326 |
+
|
327 |
+
if ( ! function_exists( 'wcj_get_currency_exchange_rate' ) ) {
|
328 |
+
/**
|
329 |
+
* wcj_get_currency_exchange_rate.
|
330 |
+
*
|
331 |
+
* @version 2.5.0
|
332 |
+
* @since 2.5.0
|
333 |
+
*/
|
334 |
+
function wcj_get_currency_exchange_rate( $module, $currency_code ) {
|
335 |
+
$currency_exchange_rate = 1;
|
336 |
+
if ( wcj_is_module_enabled( $module ) ) {
|
337 |
+
if ( 'multicurrency' === $module ) {
|
338 |
+
$total_number = apply_filters( 'booster_get_option', 2, get_option( 'wcj_multicurrency_total_number', 2 ) );
|
339 |
+
for ( $i = 1; $i <= $total_number; $i++ ) {
|
340 |
+
if ( $currency_code === get_option( 'wcj_multicurrency_currency_' . $i ) ) {
|
341 |
+
$currency_exchange_rate = get_option( 'wcj_multicurrency_exchange_rate_' . $i );
|
342 |
+
break;
|
343 |
+
}
|
344 |
+
}
|
345 |
+
}
|
346 |
+
}
|
347 |
+
return $currency_exchange_rate;
|
348 |
+
}
|
349 |
+
}
|
350 |
+
|
351 |
+
if ( ! function_exists( 'wc_get_product_purchase_price' ) ) {
|
352 |
+
/**
|
353 |
+
* wc_get_product_purchase_price.
|
354 |
+
*/
|
355 |
+
function wc_get_product_purchase_price( $product_id = 0 ) {
|
356 |
+
$the_product = wcj_get_product( $product_id );
|
357 |
+
return $the_product->get_purchase_price();
|
358 |
+
}
|
359 |
+
}
|
360 |
+
|
361 |
+
if ( ! function_exists( 'wcj_get_currencies_names_and_symbols' ) ) {
|
362 |
+
/**
|
363 |
+
* wcj_get_currencies_names_and_symbols.
|
364 |
+
*
|
365 |
+
* @version 2.4.4
|
366 |
+
*/
|
367 |
+
function wcj_get_currencies_names_and_symbols( $result = 'names_and_symbols', $scope = 'all' ) {
|
368 |
+
$currency_names_and_symbols = array();
|
369 |
+
/* if ( ! wcj_is_module_enabled( 'currency' ) ) {
|
370 |
+
return $currency_names_and_symbols;
|
371 |
+
} */
|
372 |
+
if ( 'all' === $scope || 'no_custom' === $scope ) {
|
373 |
+
// $currencies = include( wcj_plugin_path() . '/includes/currencies/wcj-currencies.php' );
|
374 |
+
// include( wcj_plugin_path() . '/includes/currencies/wcj-currencies.php' );
|
375 |
+
$currencies = wcj_get_currencies_array();
|
376 |
+
foreach( $currencies as $data ) {
|
377 |
+
switch ( $result ) {
|
378 |
+
case 'names_and_symbols':
|
379 |
+
$currency_names_and_symbols[ $data['code'] ] = $data['name'] . ' (' . $data['symbol'] . ')';
|
380 |
+
break;
|
381 |
+
case 'names':
|
382 |
+
$currency_names_and_symbols[ $data['code'] ] = $data['name'];
|
383 |
+
break;
|
384 |
+
case 'symbols':
|
385 |
+
$currency_names_and_symbols[ $data['code'] ] = $data['symbol'];
|
386 |
+
break;
|
387 |
+
}
|
388 |
+
}
|
389 |
+
}
|
390 |
+
if ( wcj_is_module_enabled( 'currency' ) && ( 'all' === $scope || 'custom_only' === $scope ) ) {
|
391 |
+
// Custom currencies
|
392 |
+
$custom_currency_total_number = apply_filters( 'booster_get_option', 1, get_option( 'wcj_currency_custom_currency_total_number', 1 ) );
|
393 |
+
for ( $i = 1; $i <= $custom_currency_total_number; $i++) {
|
394 |
+
$custom_currency_code = get_option( 'wcj_currency_custom_currency_code_' . $i );
|
395 |
+
$custom_currency_name = get_option( 'wcj_currency_custom_currency_name_' . $i );
|
396 |
+
$custom_currency_symbol = get_option( 'wcj_currency_custom_currency_symbol_' . $i );
|
397 |
+
if ( '' != $custom_currency_code && '' != $custom_currency_name /* && '' != $custom_currency_symbol */ ) {
|
398 |
+
switch ( $result ) {
|
399 |
+
case 'names_and_symbols':
|
400 |
+
$currency_names_and_symbols[ $custom_currency_code ] = $custom_currency_name . ' (' . $custom_currency_symbol . ')';
|
401 |
+
break;
|
402 |
+
case 'names':
|
403 |
+
$currency_names_and_symbols[ $custom_currency_code ] = $custom_currency_name;
|
404 |
+
break;
|
405 |
+
case 'symbols':
|
406 |
+
$currency_names_and_symbols[ $custom_currency_code ] = $custom_currency_symbol;
|
407 |
+
break;
|
408 |
+
}
|
409 |
+
}
|
410 |
+
}
|
411 |
+
}
|
412 |
+
return $currency_names_and_symbols;
|
413 |
+
}
|
414 |
+
}
|
415 |
+
|
416 |
+
if ( ! function_exists( 'wcj_get_currency_symbol' ) ) {
|
417 |
+
/**
|
418 |
+
* wcj_get_currency_symbol.
|
419 |
+
*
|
420 |
+
* @version 2.4.4
|
421 |
+
*/
|
422 |
+
function wcj_get_currency_symbol( $currency_code ) {
|
423 |
+
$return = '';
|
424 |
+
$currencies = wcj_get_currencies_names_and_symbols( 'symbols', 'no_custom' );
|
425 |
+
if ( isset( $currencies[ $currency_code ] ) ) {
|
426 |
+
if ( wcj_is_module_enabled( 'currency' ) ) {
|
427 |
+
$return = apply_filters( 'booster_get_option', $currencies[ $currency_code ], get_option( 'wcj_currency_' . $currency_code, $currencies[ $currency_code ] ) );
|
428 |
+
} else {
|
429 |
+
$return = $currencies[ $currency_code ];
|
430 |
+
}
|
431 |
+
} else {
|
432 |
+
$currencies = wcj_get_currencies_names_and_symbols( 'symbols', 'custom_only' );
|
433 |
+
$return = isset( $currencies[ $currency_code ] ) ? $currencies[ $currency_code ] : '';
|
434 |
+
}
|
435 |
+
return ( '' != $return ) ? $return : false;
|
436 |
+
}
|
437 |
+
}
|
438 |
+
|
439 |
+
if ( ! function_exists( 'wcj_price' ) ) {
|
440 |
+
/**
|
441 |
+
* wcj_price.
|
442 |
+
*/
|
443 |
+
function wcj_price( $price, $currency, $hide_currency ) {
|
444 |
+
return ( 'yes' === $hide_currency ) ? wc_price( $price, array( 'currency' => 'DISABLED' ) ) : wc_price( $price, array( 'currency' => $currency ) );
|
445 |
+
}
|
446 |
+
}
|
447 |
+
|
includes/functions/wcj-user-roles-functions.php
ADDED
@@ -0,0 +1,112 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WooCommerce Jetpack User Roles Functions
|
4 |
+
*
|
5 |
+
* The WooCommerce Jetpack User Roles functions.
|
6 |
+
*
|
7 |
+
* @version 2.7.0
|
8 |
+
* @since 2.7.0
|
9 |
+
* @author Algoritmika Ltd.
|
10 |
+
*/
|
11 |
+
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) exit;
|
13 |
+
|
14 |
+
if ( ! function_exists( 'is_shop_manager' ) ) {
|
15 |
+
/**
|
16 |
+
* is_shop_manager.
|
17 |
+
*
|
18 |
+
* @return bool
|
19 |
+
*/
|
20 |
+
function is_shop_manager( $user_id = 0 ) {
|
21 |
+
$the_user = ( 0 == $user_id ) ? wp_get_current_user() : get_user_by( 'id', $user_id );
|
22 |
+
// if ( isset( $the_user['roles'][0] ) && 'shop_manager' === $the_user['roles'][0] ) {
|
23 |
+
return ( isset( $the_user->roles[0] ) && 'shop_manager' === $the_user->roles[0] ) ? true : false;
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
if ( ! function_exists( 'wcj_get_current_user_all_roles' ) ) {
|
28 |
+
/**
|
29 |
+
* wcj_get_current_user_all_roles.
|
30 |
+
*
|
31 |
+
* @version 2.5.6
|
32 |
+
* @since 2.5.6
|
33 |
+
*/
|
34 |
+
function wcj_get_current_user_all_roles() {
|
35 |
+
$current_user = wp_get_current_user();
|
36 |
+
return ( ! empty( $current_user->roles ) ) ? $current_user->roles : array( 'guest' );
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
if ( ! function_exists( 'wcj_get_current_user_first_role' ) ) {
|
41 |
+
/**
|
42 |
+
* wcj_get_current_user_first_role.
|
43 |
+
*
|
44 |
+
* @version 2.5.3
|
45 |
+
* @since 2.5.3
|
46 |
+
*/
|
47 |
+
function wcj_get_current_user_first_role() {
|
48 |
+
$current_user = wp_get_current_user();
|
49 |
+
return ( isset( $current_user->roles[0] ) && '' != $current_user->roles[0] ) ? $current_user->roles[0] : 'guest';
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
if ( ! function_exists( 'wcj_get_user_roles' ) ) {
|
54 |
+
/**
|
55 |
+
* wcj_get_user_roles.
|
56 |
+
*
|
57 |
+
* @version 2.5.3
|
58 |
+
* @since 2.5.3
|
59 |
+
*/
|
60 |
+
function wcj_get_user_roles() {
|
61 |
+
global $wp_roles;
|
62 |
+
$all_roles = ( isset( $wp_roles ) && is_object( $wp_roles ) ) ? $wp_roles->roles : array();
|
63 |
+
$all_roles = apply_filters( 'editable_roles', $all_roles );
|
64 |
+
$all_roles = array_merge( array(
|
65 |
+
'guest' => array(
|
66 |
+
'name' => __( 'Guest', 'woocommerce-jetpack' ),
|
67 |
+
'capabilities' => array(),
|
68 |
+
) ), $all_roles );
|
69 |
+
return $all_roles;
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
if ( ! function_exists( 'wcj_get_user_roles_options' ) ) {
|
74 |
+
/**
|
75 |
+
* wcj_get_user_roles_options.
|
76 |
+
*
|
77 |
+
* @version 2.5.3
|
78 |
+
* @since 2.5.3
|
79 |
+
*/
|
80 |
+
function wcj_get_user_roles_options() {
|
81 |
+
global $wp_roles;
|
82 |
+
$all_roles = ( isset( $wp_roles ) && is_object( $wp_roles ) ) ? $wp_roles->roles : array();
|
83 |
+
$all_roles = apply_filters( 'editable_roles', $all_roles );
|
84 |
+
$all_roles = array_merge( array(
|
85 |
+
'guest' => array(
|
86 |
+
'name' => __( 'Guest', 'woocommerce-jetpack' ),
|
87 |
+
'capabilities' => array(),
|
88 |
+
) ), $all_roles );
|
89 |
+
$all_roles_options = array();
|
90 |
+
foreach ( $all_roles as $_role_key => $_role ) {
|
91 |
+
$all_roles_options[ $_role_key ] = $_role['name'];
|
92 |
+
}
|
93 |
+
return $all_roles_options;
|
94 |
+
}
|
95 |
+
}
|
96 |
+
|
97 |
+
if ( ! function_exists( 'wcj_is_user_role' ) ) {
|
98 |
+
/**
|
99 |
+
* wcj_is_user_role.
|
100 |
+
*
|
101 |
+
* @version 2.5.2
|
102 |
+
* @since 2.5.0
|
103 |
+
* @return bool
|
104 |
+
*/
|
105 |
+
function wcj_is_user_role( $user_role, $user_id = 0 ) {
|
106 |
+
$the_user = ( 0 == $user_id ) ? wp_get_current_user() : get_user_by( 'id', $user_id );
|
107 |
+
if ( ! isset( $the_user->roles ) || empty( $the_user->roles ) ) {
|
108 |
+
$the_user->roles = array( 'guest' );
|
109 |
+
}
|
110 |
+
return ( isset( $the_user->roles ) && is_array( $the_user->roles ) && in_array( $user_role, $the_user->roles ) ) ? true : false;
|
111 |
+
}
|
112 |
+
}
|
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 |
|
@@ -27,7 +27,7 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
27 |
/**
|
28 |
* get_options.
|
29 |
*
|
30 |
-
* @version 2.
|
31 |
*/
|
32 |
public function get_options() {
|
33 |
$options = array(
|
@@ -102,10 +102,10 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
102 |
),
|
103 |
),
|
104 |
|
105 |
-
// TODO http://www.w3schools.com/tags/att_input_accept.asp
|
106 |
array(
|
107 |
'id' => 'wcj_product_input_fields_type_file_accept_' . $this->scope . '_',
|
108 |
-
'title' => __( 'If file is selected, set accepted file types here. E.g.: ".jpg,.jpeg,.png". Leave blank to accept all files', 'woocommerce-jetpack' )
|
|
|
109 |
'short_title' => __( 'File: Accepted types', 'woocommerce-jetpack' ),
|
110 |
'type' => 'text',
|
111 |
'default' => __( '.jpg,.jpeg,.png', 'woocommerce-jetpack' ),
|
@@ -121,7 +121,7 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
121 |
|
122 |
array(
|
123 |
'id' => 'wcj_product_input_fields_type_datepicker_format_' . $this->scope . '_',
|
124 |
-
'title' => __( 'If datepicker/weekpicker is selected, set date format here. Visit <a href="https://codex.wordpress.org/Formatting_Date_and_Time" target="_blank">documentation on date and time formatting</a> for valid date formats
|
125 |
'desc_tip' => __( 'Leave blank to use your current WordPress format', 'woocommerce-jetpack' ) . ': ' . get_option( 'date_format' ),
|
126 |
'short_title' => __( 'Datepicker/Weekpicker: Date format', 'woocommerce-jetpack' ),
|
127 |
'type' => 'text',
|
@@ -180,12 +180,28 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
180 |
|
181 |
array(
|
182 |
'id' => 'wcj_product_input_fields_type_timepicker_format_' . $this->scope . '_',
|
183 |
-
'title' => __( 'If timepicker is selected, set time format here. Visit <a href="http://timepicker.co/options/" target="_blank">timepicker options page</a> for valid time formats
|
184 |
'short_title' => __( 'Timepicker: Time format', 'woocommerce-jetpack' ),
|
185 |
'type' => 'text',
|
186 |
'default' => 'hh:mm p',
|
187 |
),
|
188 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
array(
|
190 |
'id' => 'wcj_product_input_fields_type_timepicker_interval_' . $this->scope . '_',
|
191 |
'title' => __( 'If timepicker is selected, set interval (in minutes) here', 'woocommerce-jetpack' ),
|
@@ -265,7 +281,8 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
265 |
|
266 |
/**
|
267 |
* hide_custom_input_fields_default_output_in_admin_order.
|
268 |
-
*
|
|
|
269 |
*/
|
270 |
function hide_custom_input_fields_default_output_in_admin_order( $hidden_metas ) {
|
271 |
$total_number = 0;
|
@@ -273,7 +290,7 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
273 |
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', 0, 1 ) );
|
274 |
} else {
|
275 |
$max_number_of_fields_for_local = 100;
|
276 |
-
$total_number = $max_number_of_fields_for_local;
|
277 |
}
|
278 |
|
279 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
@@ -285,7 +302,7 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
285 |
/**
|
286 |
* output_custom_input_fields_in_admin_order.
|
287 |
*
|
288 |
-
* @version 2.
|
289 |
*/
|
290 |
function output_custom_input_fields_in_admin_order( $item_id, $item, $_product ) {
|
291 |
if ( null === $_product ) {
|
@@ -293,15 +310,16 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
293 |
return;
|
294 |
}
|
295 |
echo '<table cellspacing="0" class="display_meta">';
|
296 |
-
$
|
|
|
297 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
298 |
|
299 |
-
$the_nice_name = $this->get_value( 'wcj_product_input_fields_title_' . $this->scope . '_' . $i, $
|
300 |
if ( '' == $the_nice_name ) $the_nice_name = __( 'Product Input Field', 'woocommerce-jetpack' ) . ' (' . $this->scope . ') #' . $i;
|
301 |
|
302 |
$the_value = isset( $item[ 'wcj_product_input_fields_' . $this->scope . '_' . $i ] ) ? $item[ 'wcj_product_input_fields_' . $this->scope . '_' . $i ] : '';
|
303 |
|
304 |
-
$type = $this->get_value( 'wcj_product_input_fields_type_' . $this->scope . '_' . $i, $
|
305 |
if ( 'file' === $type ) {
|
306 |
/* $file_name = $the_value;
|
307 |
$upload_dir = wp_upload_dir();
|
@@ -326,111 +344,24 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
326 |
echo '</table>';
|
327 |
}
|
328 |
|
329 |
-
/**
|
330 |
-
* starts_with.
|
331 |
-
*
|
332 |
-
function starts_with( $haystack, $needle ) {
|
333 |
-
// search backwards starting from haystack length characters from the end
|
334 |
-
//return ( '' === $needle ) || ( strpos( $haystack, $needle, strlen( $haystack ) ) !== false );
|
335 |
-
return $needle === substr( $haystack, 0, strlen( $needle ) );
|
336 |
-
//return substr( $haystack, 0, strlen( $needle ) );
|
337 |
-
//return strpos( $haystack, $needle ) !== false;
|
338 |
-
}
|
339 |
-
|
340 |
-
/**
|
341 |
-
* change_woocommerce_attribute_label.
|
342 |
-
*
|
343 |
-
function change_woocommerce_attribute_label( $label, $name ) {
|
344 |
-
|
345 |
-
if ( $this->starts_with( $label, '_wcj_product_input_fields_global_' ) ) {
|
346 |
-
$title_option_id = trim( $label, '_' );
|
347 |
-
$title_option_id = str_replace( 'wcj_product_input_fields_global_', 'wcj_product_input_fields_title_global_', $title_option_id );
|
348 |
-
//$the_nice_name = $this->get_value( $label, 0, '' );
|
349 |
-
$title = get_option( $title_option_id, '' );
|
350 |
-
|
351 |
-
$label = ( '' == $title ) ?
|
352 |
-
str_replace(
|
353 |
-
'_wcj_product_input_fields_' . $this->scope . '_',
|
354 |
-
__( 'Product Input Field', 'woocommerce-jetpack' ) . ' (' . $this->scope . ') #',
|
355 |
-
$label ) :
|
356 |
-
$title;
|
357 |
-
|
358 |
-
} elseif ( $this->starts_with( $label, '_wcj_product_input_fields_local_' ) ) {
|
359 |
-
|
360 |
-
$title = '';//$label;
|
361 |
-
|
362 |
-
$label = ( '' == $title ) ?
|
363 |
-
str_replace(
|
364 |
-
'_wcj_product_input_fields_' . $this->scope . '_',
|
365 |
-
__( 'Product Input Field', 'woocommerce-jetpack' ) . ' (' . $this->scope . ') #',
|
366 |
-
$label ) :
|
367 |
-
$title;
|
368 |
-
}
|
369 |
-
|
370 |
-
return $label;
|
371 |
-
}
|
372 |
-
|
373 |
-
/**
|
374 |
-
* finish_making_nicer_name_for_product_input_fields.
|
375 |
-
*
|
376 |
-
public function finish_making_nicer_name_for_product_input_fields( $item_id, $item, $_product ) {
|
377 |
-
$buffer = ob_get_clean();
|
378 |
-
$the_ugly_name = '_wcj_product_input_fields_' . $this->scope . '_';
|
379 |
-
$the_nice_name = $this->get_value( 'wcj_product_input_fields_title_' . $this->scope . '_' . '1', $_product->id, '' );
|
380 |
-
if ( '' == $the_nice_name ) $the_nice_name = __( 'Product Input Field', 'woocommerce-jetpack' ) . ' (' . $this->scope . ') #';
|
381 |
-
$buffer = str_replace(
|
382 |
-
$the_ugly_name,
|
383 |
-
$the_nice_name,
|
384 |
-
$buffer
|
385 |
-
);
|
386 |
-
echo $buffer;
|
387 |
-
}
|
388 |
-
|
389 |
-
/**
|
390 |
-
* make_nicer_name.
|
391 |
-
*
|
392 |
-
public function make_nicer_name( $buffer ) {
|
393 |
-
$the_ugly_name = '_wcj_product_input_fields_' . $this->scope . '_';
|
394 |
-
$the_nice_name = () ? : __( 'Product Input Field', 'woocommerce-jetpack' ) . ' (' . $this->scope . ') #';
|
395 |
-
return str_replace(
|
396 |
-
$the_ugly_name,
|
397 |
-
$the_nice_name,
|
398 |
-
$buffer
|
399 |
-
);
|
400 |
-
}
|
401 |
-
|
402 |
-
/**
|
403 |
-
* start_making_nicer_name_for_product_input_fields.
|
404 |
-
*
|
405 |
-
public function start_making_nicer_name_for_product_input_fields( $item_id, $item, $_product ) {
|
406 |
-
ob_start( array( $this, 'make_nicer_name' ) );
|
407 |
-
}
|
408 |
-
|
409 |
-
/**
|
410 |
-
* finish_making_nicer_name_for_product_input_fields.
|
411 |
-
*
|
412 |
-
public function finish_making_nicer_name_for_product_input_fields( $item_id, $item, $_product ) {
|
413 |
-
ob_end_flush();
|
414 |
-
}
|
415 |
-
|
416 |
/**
|
417 |
* get_value.
|
418 |
*/
|
419 |
-
|
420 |
return false;
|
421 |
}
|
422 |
|
423 |
/**
|
424 |
* validate_product_input_fields_on_add_to_cart.
|
425 |
*
|
426 |
-
* @version 2.
|
427 |
*/
|
428 |
-
|
429 |
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $product_id, 1 ) );
|
430 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
431 |
|
432 |
-
$is_enabled
|
433 |
-
if ( ! $is_enabled ) {
|
434 |
continue;
|
435 |
}
|
436 |
|
@@ -486,41 +417,50 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
486 |
/**
|
487 |
* add_product_input_fields_to_frontend.
|
488 |
*
|
489 |
-
* @version 2.
|
490 |
*/
|
491 |
-
|
492 |
global $product;
|
|
|
493 |
//if ( ! $product ) // return;
|
494 |
-
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $
|
495 |
|
496 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
497 |
|
498 |
-
$type = $this->get_value( 'wcj_product_input_fields_type_' . $this->scope . '_' . $i, $
|
499 |
-
$is_enabled = $this->get_value( 'wcj_product_input_fields_enabled_' . $this->scope . '_' . $i, $
|
500 |
-
$is_required = $this->get_value( 'wcj_product_input_fields_required_' . $this->scope . '_' . $i, $
|
501 |
-
$title = $this->get_value( 'wcj_product_input_fields_title_' . $this->scope . '_' . $i, $
|
502 |
-
$placeholder = $this->get_value( 'wcj_product_input_fields_placeholder_' . $this->scope . '_' . $i, $
|
503 |
|
504 |
-
$datepicker_format = $this->get_value( 'wcj_product_input_fields_type_datepicker_format_' . $this->scope . '_' . $i, $
|
505 |
if ( '' == $datepicker_format ) {
|
506 |
$datepicker_format = get_option( 'date_format' );
|
507 |
}
|
508 |
$datepicker_format = wcj_date_format_php_to_js_v2( $datepicker_format );
|
509 |
-
$datepicker_mindate = $this->get_value( 'wcj_product_input_fields_type_datepicker_mindate_' . $this->scope . '_' . $i, $
|
510 |
-
$datepicker_maxdate = $this->get_value( 'wcj_product_input_fields_type_datepicker_maxdate_' . $this->scope . '_' . $i, $
|
511 |
-
$datepicker_firstday = $this->get_value( 'wcj_product_input_fields_type_datepicker_firstday_' . $this->scope . '_' . $i, $
|
512 |
-
$datepicker_changeyear = $this->get_value( 'wcj_product_input_fields_type_datepicker_changeyear_' . $this->scope . '_' . $i, $
|
513 |
-
$datepicker_yearrange = $this->get_value( 'wcj_product_input_fields_type_datepicker_yearrange_' . $this->scope . '_' . $i, $
|
514 |
if ( 'on' === $datepicker_changeyear || 'yes' === $datepicker_changeyear ) {
|
515 |
$datepicker_year = 'changeyear="1" yearRange="' . $datepicker_yearrange . '" ';
|
516 |
} else {
|
517 |
$datepicker_year = '';
|
518 |
}
|
519 |
|
520 |
-
$timepicker_format = $this->get_value( 'wcj_product_input_fields_type_timepicker_format_' . $this->scope . '_' . $i, $
|
521 |
-
$timepicker_interval = $this->get_value( 'wcj_product_input_fields_type_timepicker_interval_' . $this->scope . '_' . $i, $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
522 |
|
523 |
-
$file_accept = $this->get_value( 'wcj_product_input_fields_type_file_accept_' . $this->scope . '_' . $i, $
|
524 |
$custom_attributes = ( 'file' === $type ) ? ' accept="' . $file_accept . '"' : '';
|
525 |
$field_name = 'wcj_product_input_fields_' . $this->scope . '_' . $i;
|
526 |
|
@@ -544,7 +484,7 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
544 |
case 'checkbox':
|
545 |
|
546 |
$checked = checked(
|
547 |
-
$this->get_value( 'wcj_product_input_fields_type_checkbox_default_' . $this->scope . '_' . $i, $
|
548 |
'yes',
|
549 |
false
|
550 |
);
|
@@ -563,7 +503,7 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
563 |
|
564 |
case 'timepicker':
|
565 |
|
566 |
-
echo '<p>' . $title . '<input interval="' . $timepicker_interval . '" timeformat="' . $timepicker_format . '" type="' . $type . '" display="time" name="' . $field_name . '" placeholder="' . $placeholder . '"' . $custom_attributes . '>' . '</p>';
|
567 |
break;
|
568 |
|
569 |
case 'textarea':
|
@@ -573,7 +513,7 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
573 |
|
574 |
case 'select':
|
575 |
|
576 |
-
$select_options_raw = $this->get_value( 'wcj_product_input_fields_type_select_options_' . $this->scope . '_' . $i, $
|
577 |
$select_options = wcj_get_select_options( $select_options_raw, false );
|
578 |
if ( '' != $placeholder ) {
|
579 |
$select_options = array_merge( array( '' => $placeholder ), $select_options );
|
@@ -593,7 +533,7 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
593 |
|
594 |
case 'radio':
|
595 |
|
596 |
-
$select_options_raw = $this->get_value( 'wcj_product_input_fields_type_select_options_' . $this->scope . '_' . $i, $
|
597 |
$select_options = wcj_get_select_options( $select_options_raw, false );
|
598 |
$select_options_html = '';
|
599 |
//$label_id = current( array_keys( $args['options'] ) );
|
@@ -663,10 +603,16 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
663 |
|
664 |
/**
|
665 |
* add_product_input_fields_to_cart_item_data - from $_POST to $cart_item_data
|
|
|
|
|
666 |
*/
|
667 |
-
|
668 |
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $product_id, 1 ) );
|
669 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
|
|
|
|
|
|
|
|
670 |
$type = $this->get_value( 'wcj_product_input_fields_type_' . $this->scope . '_' . $i, $product_id, '' );
|
671 |
$value_name = 'wcj_product_input_fields_' . $this->scope . '_' . $i;
|
672 |
if ( 'file' === $type ) {
|
@@ -688,7 +634,7 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
688 |
/**
|
689 |
* get_cart_item_product_input_fields_from_session.
|
690 |
*/
|
691 |
-
|
692 |
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $item['product_id'], 1 ) );
|
693 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
694 |
if ( array_key_exists( 'wcj_product_input_fields_' . $this->scope . '_' . $i, $values ) )
|
@@ -700,9 +646,9 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
700 |
/**
|
701 |
* Adds product input values to order details (and emails).
|
702 |
*
|
703 |
-
* @version 2.
|
704 |
*/
|
705 |
-
|
706 |
|
707 |
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $item['product_id'], 1 ) );
|
708 |
if ( $total_number < 1 ) {
|
@@ -714,8 +660,8 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
714 |
}
|
715 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
716 |
|
717 |
-
$is_enabled
|
718 |
-
if ( ! $is_enabled ) {
|
719 |
continue;
|
720 |
}
|
721 |
|
@@ -772,7 +718,7 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
772 |
*
|
773 |
* @version 2.4.0
|
774 |
*/
|
775 |
-
|
776 |
return $this->add_product_input_fields_to_order_item_name( $name, $cart_item, true );
|
777 |
}
|
778 |
|
@@ -781,7 +727,7 @@ class WCJ_Product_Input_Fields_Abstract {
|
|
781 |
*
|
782 |
* @version 2.5.0
|
783 |
*/
|
784 |
-
|
785 |
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $values['product_id'], 1 ) );
|
786 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
787 |
if ( array_key_exists( 'wcj_product_input_fields_' . $this->scope . '_' . $i , $values ) ) {
|
4 |
*
|
5 |
* The WooCommerce Jetpack Product Input Fields abstract class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
27 |
/**
|
28 |
* get_options.
|
29 |
*
|
30 |
+
* @version 2.7.0
|
31 |
*/
|
32 |
public function get_options() {
|
33 |
$options = array(
|
102 |
),
|
103 |
),
|
104 |
|
|
|
105 |
array(
|
106 |
'id' => 'wcj_product_input_fields_type_file_accept_' . $this->scope . '_',
|
107 |
+
'title' => __( 'If file is selected, set accepted file types here. E.g.: ".jpg,.jpeg,.png". Leave blank to accept all files', 'woocommerce-jetpack' )
|
108 |
+
. '. ' . __( 'Visit <a href="https://www.w3schools.com/tags/att_input_accept.asp" target="_blank">documentation on input accept attribute</a> for valid option formats', 'woocommerce-jetpack' ),
|
109 |
'short_title' => __( 'File: Accepted types', 'woocommerce-jetpack' ),
|
110 |
'type' => 'text',
|
111 |
'default' => __( '.jpg,.jpeg,.png', 'woocommerce-jetpack' ),
|
121 |
|
122 |
array(
|
123 |
'id' => 'wcj_product_input_fields_type_datepicker_format_' . $this->scope . '_',
|
124 |
+
'title' => __( 'If datepicker/weekpicker is selected, set date format here. Visit <a href="https://codex.wordpress.org/Formatting_Date_and_Time" target="_blank">documentation on date and time formatting</a> for valid date formats', 'woocommerce-jetpack' ),
|
125 |
'desc_tip' => __( 'Leave blank to use your current WordPress format', 'woocommerce-jetpack' ) . ': ' . get_option( 'date_format' ),
|
126 |
'short_title' => __( 'Datepicker/Weekpicker: Date format', 'woocommerce-jetpack' ),
|
127 |
'type' => 'text',
|
180 |
|
181 |
array(
|
182 |
'id' => 'wcj_product_input_fields_type_timepicker_format_' . $this->scope . '_',
|
183 |
+
'title' => __( 'If timepicker is selected, set time format here. Visit <a href="http://timepicker.co/options/" target="_blank">timepicker options page</a> for valid time formats', 'woocommerce-jetpack' ),
|
184 |
'short_title' => __( 'Timepicker: Time format', 'woocommerce-jetpack' ),
|
185 |
'type' => 'text',
|
186 |
'default' => 'hh:mm p',
|
187 |
),
|
188 |
|
189 |
+
array(
|
190 |
+
'id' => 'wcj_product_input_fields_type_timepicker_mintime_' . $this->scope . '_',
|
191 |
+
'title' => __( 'If timepicker is selected, set min time here. Visit <a href="http://timepicker.co/options/" target="_blank">timepicker options page</a> for valid option formats', 'woocommerce-jetpack' ),
|
192 |
+
'short_title' => __( 'Timepicker: Min Time', 'woocommerce-jetpack' ),
|
193 |
+
'type' => 'text',
|
194 |
+
'default' => '',
|
195 |
+
),
|
196 |
+
|
197 |
+
array(
|
198 |
+
'id' => 'wcj_product_input_fields_type_timepicker_maxtime_' . $this->scope . '_',
|
199 |
+
'title' => __( 'If timepicker is selected, set max time here. Visit <a href="http://timepicker.co/options/" target="_blank">timepicker options page</a> for valid option formats', 'woocommerce-jetpack' ),
|
200 |
+
'short_title' => __( 'Timepicker: Max Time', 'woocommerce-jetpack' ),
|
201 |
+
'type' => 'text',
|
202 |
+
'default' => '',
|
203 |
+
),
|
204 |
+
|
205 |
array(
|
206 |
'id' => 'wcj_product_input_fields_type_timepicker_interval_' . $this->scope . '_',
|
207 |
'title' => __( 'If timepicker is selected, set interval (in minutes) here', 'woocommerce-jetpack' ),
|
281 |
|
282 |
/**
|
283 |
* hide_custom_input_fields_default_output_in_admin_order.
|
284 |
+
*
|
285 |
+
* @todo Get actual (max) number of fields in case of local scope.
|
286 |
*/
|
287 |
function hide_custom_input_fields_default_output_in_admin_order( $hidden_metas ) {
|
288 |
$total_number = 0;
|
290 |
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', 0, 1 ) );
|
291 |
} else {
|
292 |
$max_number_of_fields_for_local = 100;
|
293 |
+
$total_number = $max_number_of_fields_for_local;
|
294 |
}
|
295 |
|
296 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
302 |
/**
|
303 |
* output_custom_input_fields_in_admin_order.
|
304 |
*
|
305 |
+
* @version 2.7.0
|
306 |
*/
|
307 |
function output_custom_input_fields_in_admin_order( $item_id, $item, $_product ) {
|
308 |
if ( null === $_product ) {
|
310 |
return;
|
311 |
}
|
312 |
echo '<table cellspacing="0" class="display_meta">';
|
313 |
+
$_product_id = wcj_get_product_id_or_variation_parent_id( $_product );
|
314 |
+
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $_product_id, 1 ) );
|
315 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
316 |
|
317 |
+
$the_nice_name = $this->get_value( 'wcj_product_input_fields_title_' . $this->scope . '_' . $i, $_product_id, '' );
|
318 |
if ( '' == $the_nice_name ) $the_nice_name = __( 'Product Input Field', 'woocommerce-jetpack' ) . ' (' . $this->scope . ') #' . $i;
|
319 |
|
320 |
$the_value = isset( $item[ 'wcj_product_input_fields_' . $this->scope . '_' . $i ] ) ? $item[ 'wcj_product_input_fields_' . $this->scope . '_' . $i ] : '';
|
321 |
|
322 |
+
$type = $this->get_value( 'wcj_product_input_fields_type_' . $this->scope . '_' . $i, $_product_id, '' );
|
323 |
if ( 'file' === $type ) {
|
324 |
/* $file_name = $the_value;
|
325 |
$upload_dir = wp_upload_dir();
|
344 |
echo '</table>';
|
345 |
}
|
346 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
347 |
/**
|
348 |
* get_value.
|
349 |
*/
|
350 |
+
function get_value( $option_name, $product_id, $default ) {
|
351 |
return false;
|
352 |
}
|
353 |
|
354 |
/**
|
355 |
* validate_product_input_fields_on_add_to_cart.
|
356 |
*
|
357 |
+
* @version 2.7.0
|
358 |
*/
|
359 |
+
function validate_product_input_fields_on_add_to_cart( $passed, $product_id ) {
|
360 |
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $product_id, 1 ) );
|
361 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
362 |
|
363 |
+
$is_enabled = $this->get_value( 'wcj_product_input_fields_enabled_' . $this->scope . '_' . $i, $product_id, 'no' );
|
364 |
+
if ( ! ( 'on' === $is_enabled || 'yes' === $is_enabled ) ) {
|
365 |
continue;
|
366 |
}
|
367 |
|
417 |
/**
|
418 |
* add_product_input_fields_to_frontend.
|
419 |
*
|
420 |
+
* @version 2.7.0
|
421 |
*/
|
422 |
+
function add_product_input_fields_to_frontend() {
|
423 |
global $product;
|
424 |
+
$_product_id = wcj_get_product_id_or_variation_parent_id( $product );
|
425 |
//if ( ! $product ) // return;
|
426 |
+
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $_product_id, 1 ) );
|
427 |
|
428 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
429 |
|
430 |
+
$type = $this->get_value( 'wcj_product_input_fields_type_' . $this->scope . '_' . $i, $_product_id, 'text' );
|
431 |
+
$is_enabled = $this->get_value( 'wcj_product_input_fields_enabled_' . $this->scope . '_' . $i, $_product_id, 'no' );
|
432 |
+
$is_required = $this->get_value( 'wcj_product_input_fields_required_' . $this->scope . '_' . $i, $_product_id, 'no' );
|
433 |
+
$title = $this->get_value( 'wcj_product_input_fields_title_' . $this->scope . '_' . $i, $_product_id, '' );
|
434 |
+
$placeholder = $this->get_value( 'wcj_product_input_fields_placeholder_' . $this->scope . '_' . $i, $_product_id, '' );
|
435 |
|
436 |
+
$datepicker_format = $this->get_value( 'wcj_product_input_fields_type_datepicker_format_' . $this->scope . '_' . $i, $_product_id, '' );
|
437 |
if ( '' == $datepicker_format ) {
|
438 |
$datepicker_format = get_option( 'date_format' );
|
439 |
}
|
440 |
$datepicker_format = wcj_date_format_php_to_js_v2( $datepicker_format );
|
441 |
+
$datepicker_mindate = $this->get_value( 'wcj_product_input_fields_type_datepicker_mindate_' . $this->scope . '_' . $i, $_product_id, -365 );
|
442 |
+
$datepicker_maxdate = $this->get_value( 'wcj_product_input_fields_type_datepicker_maxdate_' . $this->scope . '_' . $i, $_product_id, 365 );
|
443 |
+
$datepicker_firstday = $this->get_value( 'wcj_product_input_fields_type_datepicker_firstday_' . $this->scope . '_' . $i, $_product_id, 0 );
|
444 |
+
$datepicker_changeyear = $this->get_value( 'wcj_product_input_fields_type_datepicker_changeyear_' . $this->scope . '_' . $i, $_product_id, 'no' );
|
445 |
+
$datepicker_yearrange = $this->get_value( 'wcj_product_input_fields_type_datepicker_yearrange_' . $this->scope . '_' . $i, $_product_id, 'c-10:c+10' );
|
446 |
if ( 'on' === $datepicker_changeyear || 'yes' === $datepicker_changeyear ) {
|
447 |
$datepicker_year = 'changeyear="1" yearRange="' . $datepicker_yearrange . '" ';
|
448 |
} else {
|
449 |
$datepicker_year = '';
|
450 |
}
|
451 |
|
452 |
+
$timepicker_format = $this->get_value( 'wcj_product_input_fields_type_timepicker_format_' . $this->scope . '_' . $i, $_product_id, 'hh:mm p' );
|
453 |
+
$timepicker_interval = $this->get_value( 'wcj_product_input_fields_type_timepicker_interval_' . $this->scope . '_' . $i, $_product_id, 15 );
|
454 |
+
$timepicker_mintime = $this->get_value( 'wcj_product_input_fields_type_timepicker_mintime_' . $this->scope . '_' . $i, $_product_id, '' );
|
455 |
+
$timepicker_maxtime = $this->get_value( 'wcj_product_input_fields_type_timepicker_maxtime_' . $this->scope . '_' . $i, $_product_id, '' );
|
456 |
+
if ( '' != $timepicker_mintime ) {
|
457 |
+
$timepicker_mintime = ' mintime="' . $timepicker_mintime . '"';
|
458 |
+
}
|
459 |
+
if ( '' != $timepicker_maxtime ) {
|
460 |
+
$timepicker_maxtime = ' maxtime="' . $timepicker_maxtime . '"';
|
461 |
+
}
|
462 |
|
463 |
+
$file_accept = $this->get_value( 'wcj_product_input_fields_type_file_accept_' . $this->scope . '_' . $i, $_product_id, '' );
|
464 |
$custom_attributes = ( 'file' === $type ) ? ' accept="' . $file_accept . '"' : '';
|
465 |
$field_name = 'wcj_product_input_fields_' . $this->scope . '_' . $i;
|
466 |
|
484 |
case 'checkbox':
|
485 |
|
486 |
$checked = checked(
|
487 |
+
$this->get_value( 'wcj_product_input_fields_type_checkbox_default_' . $this->scope . '_' . $i, $_product_id, 'no' ),
|
488 |
'yes',
|
489 |
false
|
490 |
);
|
503 |
|
504 |
case 'timepicker':
|
505 |
|
506 |
+
echo '<p>' . $title . '<input' . $timepicker_mintime . $timepicker_maxtime . ' interval="' . $timepicker_interval . '" timeformat="' . $timepicker_format . '" type="' . $type . '" display="time" name="' . $field_name . '" placeholder="' . $placeholder . '"' . $custom_attributes . '>' . '</p>';
|
507 |
break;
|
508 |
|
509 |
case 'textarea':
|
513 |
|
514 |
case 'select':
|
515 |
|
516 |
+
$select_options_raw = $this->get_value( 'wcj_product_input_fields_type_select_options_' . $this->scope . '_' . $i, $_product_id, '' );
|
517 |
$select_options = wcj_get_select_options( $select_options_raw, false );
|
518 |
if ( '' != $placeholder ) {
|
519 |
$select_options = array_merge( array( '' => $placeholder ), $select_options );
|
533 |
|
534 |
case 'radio':
|
535 |
|
536 |
+
$select_options_raw = $this->get_value( 'wcj_product_input_fields_type_select_options_' . $this->scope . '_' . $i, $_product_id, '' );
|
537 |
$select_options = wcj_get_select_options( $select_options_raw, false );
|
538 |
$select_options_html = '';
|
539 |
//$label_id = current( array_keys( $args['options'] ) );
|
603 |
|
604 |
/**
|
605 |
* add_product_input_fields_to_cart_item_data - from $_POST to $cart_item_data
|
606 |
+
*
|
607 |
+
* @version 2.7.0
|
608 |
*/
|
609 |
+
function add_product_input_fields_to_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
|
610 |
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $product_id, 1 ) );
|
611 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
612 |
+
$is_enabled = $this->get_value( 'wcj_product_input_fields_enabled_' . $this->scope . '_' . $i, $product_id, 'no' );
|
613 |
+
if ( ! ( 'on' === $is_enabled || 'yes' === $is_enabled ) ) {
|
614 |
+
continue;
|
615 |
+
}
|
616 |
$type = $this->get_value( 'wcj_product_input_fields_type_' . $this->scope . '_' . $i, $product_id, '' );
|
617 |
$value_name = 'wcj_product_input_fields_' . $this->scope . '_' . $i;
|
618 |
if ( 'file' === $type ) {
|
634 |
/**
|
635 |
* get_cart_item_product_input_fields_from_session.
|
636 |
*/
|
637 |
+
function get_cart_item_product_input_fields_from_session( $item, $values, $key ) {
|
638 |
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $item['product_id'], 1 ) );
|
639 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
640 |
if ( array_key_exists( 'wcj_product_input_fields_' . $this->scope . '_' . $i, $values ) )
|
646 |
/**
|
647 |
* Adds product input values to order details (and emails).
|
648 |
*
|
649 |
+
* @version 2.7.0
|
650 |
*/
|
651 |
+
function add_product_input_fields_to_order_item_name( $name, $item, $is_cart = false ) {
|
652 |
|
653 |
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $item['product_id'], 1 ) );
|
654 |
if ( $total_number < 1 ) {
|
660 |
}
|
661 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
662 |
|
663 |
+
$is_enabled = $this->get_value( 'wcj_product_input_fields_enabled_' . $this->scope . '_' . $i, $item['product_id'], 'no' );
|
664 |
+
if ( ! ( 'on' === $is_enabled || 'yes' === $is_enabled ) ) {
|
665 |
continue;
|
666 |
}
|
667 |
|
718 |
*
|
719 |
* @version 2.4.0
|
720 |
*/
|
721 |
+
function add_product_input_fields_to_cart_item_name( $name, $cart_item, $cart_item_key ) {
|
722 |
return $this->add_product_input_fields_to_order_item_name( $name, $cart_item, true );
|
723 |
}
|
724 |
|
727 |
*
|
728 |
* @version 2.5.0
|
729 |
*/
|
730 |
+
function add_product_input_fields_to_order_item_meta( $item_id, $values, $cart_item_key ) {
|
731 |
$total_number = apply_filters( 'booster_get_option', 1, $this->get_value( 'wcj_' . 'product_input_fields' . '_' . $this->scope . '_total_number', $values['product_id'], 1 ) );
|
732 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
733 |
if ( array_key_exists( 'wcj_product_input_fields_' . $this->scope . '_' . $i , $values ) ) {
|
includes/input-fields/class-wcj-product-input-fields-global.php
CHANGED
@@ -19,7 +19,7 @@ class WCJ_Product_Input_Fields_Global extends WCJ_Product_Input_Fields_Abstract
|
|
19 |
*
|
20 |
* @version 2.5.0
|
21 |
*/
|
22 |
-
|
23 |
|
24 |
$this->scope = 'global';
|
25 |
|
@@ -61,48 +61,10 @@ class WCJ_Product_Input_Fields_Global extends WCJ_Product_Input_Fields_Abstract
|
|
61 |
}
|
62 |
}
|
63 |
|
64 |
-
/**
|
65 |
-
* replace_loop_add_to_cart_button.
|
66 |
-
*
|
67 |
-
public function replace_loop_add_to_cart_button( $button, $product ) {
|
68 |
-
$html .= '<form class="cart" method="post" enctype=\'multipart/form-data\'>';
|
69 |
-
$html .= '<input type="hidden" name="add-to-cart" value="' . esc_attr( $product->id ) . '" />';
|
70 |
-
$html .= '<button type="submit" class="button add_to_cart_button product_type_simple">' . $product->single_add_to_cart_text() . '</button>';
|
71 |
-
$html .= $button;
|
72 |
-
$html .= '</form>';
|
73 |
-
return $html;
|
74 |
-
}
|
75 |
-
|
76 |
-
/**
|
77 |
-
* ajax_add_to_cart.
|
78 |
-
*
|
79 |
-
public function ajax_add_to_cart() {
|
80 |
-
|
81 |
-
$message = date( 'l jS \of F Y h:i:s A' ) . ' ' . print_r( $_POST, true );
|
82 |
-
update_option( 'wcj_log', $message );
|
83 |
-
|
84 |
-
|
85 |
-
// check if logo_text has been defined by the client
|
86 |
-
//if ( isset( $_POST['logo_text'] ) ) {
|
87 |
-
// do something
|
88 |
-
//}
|
89 |
-
}
|
90 |
-
|
91 |
-
/**
|
92 |
-
* init.
|
93 |
-
*
|
94 |
-
public function init() {
|
95 |
-
|
96 |
-
print_r( get_option( 'wcj_log', 'N/A' ) );
|
97 |
-
|
98 |
-
//remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); // remove that ajaxified Add To Cart button that automatically adds 1 item to the cart.
|
99 |
-
//add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_single_add_to_cart', 30 ); // replace it with the Add To Cart Button, complete with QTY field.. the same one that is used on the Single Product page.
|
100 |
-
}
|
101 |
-
|
102 |
/**
|
103 |
* get_value.
|
104 |
*/
|
105 |
-
|
106 |
return get_option( $option_name, $default );
|
107 |
}
|
108 |
|
19 |
*
|
20 |
* @version 2.5.0
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
|
24 |
$this->scope = 'global';
|
25 |
|
61 |
}
|
62 |
}
|
63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
/**
|
65 |
* get_value.
|
66 |
*/
|
67 |
+
function get_value( $option_name, $product_id, $default ) {
|
68 |
return get_option( $option_name, $default );
|
69 |
}
|
70 |
|
includes/js/eu-vat-number.js
CHANGED
@@ -1,8 +1,11 @@
|
|
1 |
/**
|
2 |
* eu-vat-number.
|
3 |
*
|
4 |
-
* @version 2.
|
5 |
*/
|
|
|
|
|
|
|
6 |
jQuery( function( $ ) {
|
7 |
|
8 |
// Setup before functions
|
@@ -12,7 +15,7 @@ jQuery( function( $ ) {
|
|
12 |
var $vatParagraph = $('p[id="billing_eu_vat_number_field"]');
|
13 |
|
14 |
// Add progress text
|
15 |
-
if ('yes'==
|
16 |
$vatParagraph.append('<div id="wcj_eu_vat_number_progress"></div>');
|
17 |
var $progressText = $('div[id="wcj_eu_vat_number_progress"]');
|
18 |
}
|
@@ -33,8 +36,8 @@ jQuery( function( $ ) {
|
|
33 |
var vatNumberToCheck = $vatInput.val();
|
34 |
if (''!=vatNumberToCheck) {
|
35 |
// Validating EU VAT Number through AJAX call
|
36 |
-
if ('yes'==
|
37 |
-
$progressText.text(
|
38 |
}
|
39 |
var data = {
|
40 |
'action': 'wcj_validate_eu_vat_number',
|
@@ -42,23 +45,23 @@ jQuery( function( $ ) {
|
|
42 |
};
|
43 |
$.ajax({
|
44 |
type: "POST",
|
45 |
-
url:
|
46 |
data: data,
|
47 |
success: function(response) {
|
48 |
if ('1'==response) {
|
49 |
$vatParagraph.addClass('woocommerce-validated');
|
50 |
-
if ('yes'==
|
51 |
-
$progressText.text(
|
52 |
}
|
53 |
} else if ('0'==response) {
|
54 |
$vatParagraph.addClass('woocommerce-invalid');
|
55 |
-
if ('yes'==
|
56 |
-
$progressText.text(
|
57 |
}
|
58 |
} else {
|
59 |
$vatParagraph.addClass('woocommerce-invalid');
|
60 |
-
if ('yes'==
|
61 |
-
$progressText.text(
|
62 |
}
|
63 |
}
|
64 |
$('body').trigger('update_checkout');
|
@@ -66,7 +69,7 @@ jQuery( function( $ ) {
|
|
66 |
});
|
67 |
} else {
|
68 |
// VAT input is empty
|
69 |
-
if ('yes'==
|
70 |
$progressText.text('');
|
71 |
}
|
72 |
if ($vatParagraph.hasClass('validate-required')) {
|
1 |
/**
|
2 |
* eu-vat-number.
|
3 |
*
|
4 |
+
* @version 2.7.0
|
5 |
*/
|
6 |
+
|
7 |
+
var _ajax_object = ajax_object;
|
8 |
+
|
9 |
jQuery( function( $ ) {
|
10 |
|
11 |
// Setup before functions
|
15 |
var $vatParagraph = $('p[id="billing_eu_vat_number_field"]');
|
16 |
|
17 |
// Add progress text
|
18 |
+
if ('yes'==_ajax_object.add_progress_text) {
|
19 |
$vatParagraph.append('<div id="wcj_eu_vat_number_progress"></div>');
|
20 |
var $progressText = $('div[id="wcj_eu_vat_number_progress"]');
|
21 |
}
|
36 |
var vatNumberToCheck = $vatInput.val();
|
37 |
if (''!=vatNumberToCheck) {
|
38 |
// Validating EU VAT Number through AJAX call
|
39 |
+
if ('yes'==_ajax_object.add_progress_text) {
|
40 |
+
$progressText.text(_ajax_object.progress_text_validating);
|
41 |
}
|
42 |
var data = {
|
43 |
'action': 'wcj_validate_eu_vat_number',
|
45 |
};
|
46 |
$.ajax({
|
47 |
type: "POST",
|
48 |
+
url: _ajax_object.ajax_url,
|
49 |
data: data,
|
50 |
success: function(response) {
|
51 |
if ('1'==response) {
|
52 |
$vatParagraph.addClass('woocommerce-validated');
|
53 |
+
if ('yes'==_ajax_object.add_progress_text) {
|
54 |
+
$progressText.text(_ajax_object.progress_text_valid);
|
55 |
}
|
56 |
} else if ('0'==response) {
|
57 |
$vatParagraph.addClass('woocommerce-invalid');
|
58 |
+
if ('yes'==_ajax_object.add_progress_text) {
|
59 |
+
$progressText.text(_ajax_object.progress_text_not_valid);
|
60 |
}
|
61 |
} else {
|
62 |
$vatParagraph.addClass('woocommerce-invalid');
|
63 |
+
if ('yes'==_ajax_object.add_progress_text) {
|
64 |
+
$progressText.text(_ajax_object.progress_text_validation_failed);
|
65 |
}
|
66 |
}
|
67 |
$('body').trigger('update_checkout');
|
69 |
});
|
70 |
} else {
|
71 |
// VAT input is empty
|
72 |
+
if ('yes'==_ajax_object.add_progress_text) {
|
73 |
$progressText.text('');
|
74 |
}
|
75 |
if ($vatParagraph.hasClass('validate-required')) {
|
includes/js/wcj-bookings.js
CHANGED
@@ -1,9 +1,12 @@
|
|
1 |
/**
|
2 |
* wcj-bookings.
|
3 |
*
|
4 |
-
* version 2.
|
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("");
|
@@ -46,7 +49,7 @@ function change_price() {
|
|
46 |
if ( t2 > t1 ) {
|
47 |
var product_id = jQuery("input[type='hidden'][name='variation_id']").val();
|
48 |
if ( ! product_id ) {
|
49 |
-
product_id =
|
50 |
}
|
51 |
var data = {
|
52 |
'action': 'price_change',
|
@@ -54,7 +57,7 @@ function change_price() {
|
|
54 |
'date_from': date_from,
|
55 |
'date_to': date_to
|
56 |
};
|
57 |
-
jQuery.post(
|
58 |
if ( '' != response ) {
|
59 |
jQuery("p[class='price']").text(decodeEntities(response));
|
60 |
}
|
@@ -63,11 +66,11 @@ function change_price() {
|
|
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(
|
67 |
-
jQuery("p[class='price']").text(decodeEntities(
|
68 |
}
|
69 |
} else {
|
70 |
-
jQuery("p[class='price']").text(decodeEntities(
|
71 |
}
|
72 |
}
|
73 |
|
1 |
/**
|
2 |
* wcj-bookings.
|
3 |
*
|
4 |
+
* version 2.7.0
|
5 |
* since 2.5.0
|
6 |
*/
|
7 |
+
|
8 |
+
var _ajax_object = ajax_object;
|
9 |
+
|
10 |
var decodeEntities = (function () {
|
11 |
//create a new html document (doesn't execute script tags in child elements)
|
12 |
var doc = document.implementation.createHTMLDocument("");
|
49 |
if ( t2 > t1 ) {
|
50 |
var product_id = jQuery("input[type='hidden'][name='variation_id']").val();
|
51 |
if ( ! product_id ) {
|
52 |
+
product_id = _ajax_object.product_id;
|
53 |
}
|
54 |
var data = {
|
55 |
'action': 'price_change',
|
57 |
'date_from': date_from,
|
58 |
'date_to': date_to
|
59 |
};
|
60 |
+
jQuery.post(_ajax_object.ajax_url, data, function(response) {
|
61 |
if ( '' != response ) {
|
62 |
jQuery("p[class='price']").text(decodeEntities(response));
|
63 |
}
|
66 |
jQuery("div[name='wcj_bookings_message'] p").text('');
|
67 |
} else {
|
68 |
jQuery("div[name='wcj_bookings_message']").css("display", "block");
|
69 |
+
jQuery("div[name='wcj_bookings_message'] p").text(_ajax_object.wrong_dates_message);
|
70 |
+
jQuery("p[class='price']").text(decodeEntities(_ajax_object.original_price_html));
|
71 |
}
|
72 |
} else {
|
73 |
+
jQuery("p[class='price']").text(decodeEntities(_ajax_object.original_price_html));
|
74 |
}
|
75 |
}
|
76 |
|
includes/js/wcj-product-addons.js
CHANGED
@@ -1,10 +1,12 @@
|
|
1 |
/**
|
2 |
* wcj-product-addons.
|
3 |
*
|
4 |
-
* version 2.
|
5 |
* since 2.5.3
|
6 |
*/
|
7 |
|
|
|
|
|
8 |
function change_price() {
|
9 |
var is_variation_ok = true;
|
10 |
if ( jQuery(".variations select").length ) {
|
@@ -17,7 +19,7 @@ function change_price() {
|
|
17 |
var is_variable;
|
18 |
if ( ! product_id ) {
|
19 |
is_variable = false;
|
20 |
-
product_id =
|
21 |
} else {
|
22 |
is_variable = true;
|
23 |
}
|
@@ -35,7 +37,7 @@ function change_price() {
|
|
35 |
data[jQuery(this).attr('name')] = jQuery(this).val();
|
36 |
}
|
37 |
});
|
38 |
-
jQuery.post(
|
39 |
if ( '' != response ) {
|
40 |
if ( ! is_variable ) {
|
41 |
jQuery("p[class='price']").html(response);
|
1 |
/**
|
2 |
* wcj-product-addons.
|
3 |
*
|
4 |
+
* version 2.7.0
|
5 |
* since 2.5.3
|
6 |
*/
|
7 |
|
8 |
+
var _ajax_object = ajax_object;
|
9 |
+
|
10 |
function change_price() {
|
11 |
var is_variation_ok = true;
|
12 |
if ( jQuery(".variations select").length ) {
|
19 |
var is_variable;
|
20 |
if ( ! product_id ) {
|
21 |
is_variable = false;
|
22 |
+
product_id = _ajax_object.product_id;
|
23 |
} else {
|
24 |
is_variable = true;
|
25 |
}
|
37 |
data[jQuery(this).attr('name')] = jQuery(this).val();
|
38 |
}
|
39 |
});
|
40 |
+
jQuery.post(_ajax_object.ajax_url, data, function(response) {
|
41 |
if ( '' != response ) {
|
42 |
if ( ! is_variable ) {
|
43 |
jQuery("p[class='price']").html(response);
|
includes/js/wcj-timepicker.js
CHANGED
@@ -1,8 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
jQuery(document).ready(function() {
|
2 |
jQuery("input[display='time']").each( function () {
|
3 |
jQuery(this).timepicker({
|
4 |
timeFormat : jQuery(this).attr("timeformat"),
|
5 |
-
interval : jQuery(this).attr("interval")
|
|
|
|
|
6 |
});
|
7 |
});
|
8 |
});
|
1 |
+
/**
|
2 |
+
* WooCommerce Jetpack - Timepicker JS
|
3 |
+
*
|
4 |
+
* @version 2.7.0
|
5 |
+
* @author Algoritmika Ltd.
|
6 |
+
*/
|
7 |
jQuery(document).ready(function() {
|
8 |
jQuery("input[display='time']").each( function () {
|
9 |
jQuery(this).timepicker({
|
10 |
timeFormat : jQuery(this).attr("timeformat"),
|
11 |
+
interval : jQuery(this).attr("interval"),
|
12 |
+
minTime: jQuery(this).attr("mintime"),
|
13 |
+
maxTime: jQuery(this).attr("maxtime")
|
14 |
});
|
15 |
});
|
16 |
});
|
includes/lib/tcpdf_min/config/tcpdf_config.php
CHANGED
@@ -58,6 +58,15 @@
|
|
58 |
* By default it is automatically set but you can also set it as a fixed string to improve performances.
|
59 |
*/
|
60 |
//define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
|
62 |
/**
|
63 |
* Default images directory.
|
58 |
* By default it is automatically set but you can also set it as a fixed string to improve performances.
|
59 |
*/
|
60 |
//define ('K_PATH_FONTS', K_PATH_MAIN.'fonts/');
|
61 |
+
////////////////////////////////////////////
|
62 |
+
// Algoritmika - Booster version 2.7.0
|
63 |
+
// TODO - search for `check_tcpdf_fonts`
|
64 |
+
/*
|
65 |
+
$tcpdf_fonts_dir = wp_upload_dir();
|
66 |
+
$tcpdf_fonts_dir = $tcpdf_fonts_dir['basedir'] . '/woocommerce_uploads/wcj_uploads/tcpdf_fonts/';
|
67 |
+
define ('K_PATH_FONTS', $tcpdf_fonts_dir );
|
68 |
+
*/
|
69 |
+
////////////////////////////////////////////
|
70 |
|
71 |
/**
|
72 |
* Default images directory.
|
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 |
*/
|
@@ -243,7 +243,7 @@ class WCJ_PDF_Invoicing_Report_Tool {
|
|
243 |
/**
|
244 |
* Invoices Report Data function.
|
245 |
*
|
246 |
-
* @version 2.
|
247 |
* @since 2.5.7
|
248 |
*/
|
249 |
function get_invoices_report_data( $year, $month, $invoice_type_id ) {
|
@@ -335,7 +335,7 @@ class WCJ_PDF_Invoicing_Report_Tool {
|
|
335 |
sprintf( '%.2f', $order_total_exlc_tax ),
|
336 |
$order_tax_html,
|
337 |
sprintf( '%.2f', $order_total ),
|
338 |
-
$the_order
|
339 |
$the_order->get_total_refunded(),
|
340 |
//'<pre>' . print_r( get_post_meta( $order_id ), true ) . '</pre>',
|
341 |
);
|
4 |
*
|
5 |
* The WooCommerce Jetpack PDF Invoices Report Tool class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.2.1
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
243 |
/**
|
244 |
* Invoices Report Data function.
|
245 |
*
|
246 |
+
* @version 2.7.0
|
247 |
* @since 2.5.7
|
248 |
*/
|
249 |
function get_invoices_report_data( $year, $month, $invoice_type_id ) {
|
335 |
sprintf( '%.2f', $order_total_exlc_tax ),
|
336 |
$order_tax_html,
|
337 |
sprintf( '%.2f', $order_total ),
|
338 |
+
wcj_get_order_currency( $the_order ),
|
339 |
$the_order->get_total_refunded(),
|
340 |
//'<pre>' . print_r( get_post_meta( $order_id ), true ) . '</pre>',
|
341 |
);
|
includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack PDF Invoicing Display class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -125,16 +125,16 @@ class WCJ_PDF_Invoicing_Display extends WCJ_Module {
|
|
125 |
/**
|
126 |
* add_pdf_invoices_admin_actions.
|
127 |
*
|
128 |
-
* @version 2.
|
129 |
* @since 2.4.7
|
130 |
*/
|
131 |
function add_pdf_invoices_admin_actions( $actions, $the_order ) {
|
132 |
$invoice_types = wcj_get_enabled_invoice_types();
|
133 |
foreach ( $invoice_types as $invoice_type ) {
|
134 |
-
if ( wcj_is_invoice_created( $the_order
|
135 |
if ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_view_btn', 'no' ) ) {
|
136 |
// Document (View) button
|
137 |
-
$query_args = array( 'order_id' => $the_order
|
138 |
if ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_save_as_enabled', 'no' ) ) {
|
139 |
$query_args['save_pdf_invoice'] = '1';
|
140 |
}
|
@@ -146,7 +146,7 @@ class WCJ_PDF_Invoicing_Display extends WCJ_Module {
|
|
146 |
}
|
147 |
if ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_delete_btn', 'yes' ) ) {
|
148 |
// Delete button
|
149 |
-
$query_args = array( 'delete_invoice_for_order_id' => $the_order
|
150 |
$the_url = add_query_arg( $query_args, remove_query_arg( 'create_invoice_for_order_id' ) );
|
151 |
$the_name = __( 'Delete', 'woocommerce-jetpack' ) . ' ' . $invoice_type['title'];
|
152 |
$the_action = 'view ' . $invoice_type['id'] . '_' . 'delete' . ( ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_delete_btn_confirm', 'yes' ) ) ? ' wcj_need_confirmation' : '' );
|
@@ -156,7 +156,7 @@ class WCJ_PDF_Invoicing_Display extends WCJ_Module {
|
|
156 |
} else {
|
157 |
if ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_create_btn', 'yes' ) ) {
|
158 |
// Create button
|
159 |
-
$query_args = array( 'create_invoice_for_order_id' => $the_order
|
160 |
$the_url = add_query_arg( $query_args, remove_query_arg( 'delete_invoice_for_order_id' ) );
|
161 |
$the_name = __( 'Create', 'woocommerce-jetpack' ) . ' ' . $invoice_type['title'];
|
162 |
$the_action = 'view ' . $invoice_type['id'] . '_' . 'create' . ( ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_create_btn_confirm', 'yes' ) ) ? ' wcj_need_confirmation' : '' );
|
@@ -240,19 +240,19 @@ class WCJ_PDF_Invoicing_Display extends WCJ_Module {
|
|
240 |
/**
|
241 |
* add_pdf_invoices_action_links.
|
242 |
*
|
243 |
-
* @version 2.
|
244 |
*/
|
245 |
function add_pdf_invoices_action_links( $actions, $the_order ) {
|
246 |
$invoice_types = wcj_get_enabled_invoice_types();
|
247 |
foreach ( $invoice_types as $invoice_type ) {
|
248 |
-
if ( ! wcj_is_invoice_created( $the_order
|
249 |
continue;
|
250 |
$my_account_option_name = 'wcj_invoicing_' . $invoice_type['id'] . '_enabled_for_customers';
|
251 |
if ( 'yes' === get_option( $my_account_option_name, 'no' ) ) {
|
252 |
|
253 |
$the_action_id = $invoice_type['id'];
|
254 |
|
255 |
-
$query_args = array( 'order_id' => $the_order
|
256 |
if ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_save_as_enabled', 'no' ) ) {
|
257 |
$query_args['save_pdf_invoice'] = '1';
|
258 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack PDF Invoicing Display class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
125 |
/**
|
126 |
* add_pdf_invoices_admin_actions.
|
127 |
*
|
128 |
+
* @version 2.7.0
|
129 |
* @since 2.4.7
|
130 |
*/
|
131 |
function add_pdf_invoices_admin_actions( $actions, $the_order ) {
|
132 |
$invoice_types = wcj_get_enabled_invoice_types();
|
133 |
foreach ( $invoice_types as $invoice_type ) {
|
134 |
+
if ( wcj_is_invoice_created( wcj_get_order_id( $the_order ), $invoice_type['id'] ) ) {
|
135 |
if ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_view_btn', 'no' ) ) {
|
136 |
// Document (View) button
|
137 |
+
$query_args = array( 'order_id' => wcj_get_order_id( $the_order ), 'invoice_type_id' => $invoice_type['id'], 'get_invoice' => '1', );
|
138 |
if ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_save_as_enabled', 'no' ) ) {
|
139 |
$query_args['save_pdf_invoice'] = '1';
|
140 |
}
|
146 |
}
|
147 |
if ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_delete_btn', 'yes' ) ) {
|
148 |
// Delete button
|
149 |
+
$query_args = array( 'delete_invoice_for_order_id' => wcj_get_order_id( $the_order ), 'invoice_type_id' => $invoice_type['id'] );
|
150 |
$the_url = add_query_arg( $query_args, remove_query_arg( 'create_invoice_for_order_id' ) );
|
151 |
$the_name = __( 'Delete', 'woocommerce-jetpack' ) . ' ' . $invoice_type['title'];
|
152 |
$the_action = 'view ' . $invoice_type['id'] . '_' . 'delete' . ( ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_delete_btn_confirm', 'yes' ) ) ? ' wcj_need_confirmation' : '' );
|
156 |
} else {
|
157 |
if ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_create_btn', 'yes' ) ) {
|
158 |
// Create button
|
159 |
+
$query_args = array( 'create_invoice_for_order_id' => wcj_get_order_id( $the_order ), 'invoice_type_id' => $invoice_type['id'] );
|
160 |
$the_url = add_query_arg( $query_args, remove_query_arg( 'delete_invoice_for_order_id' ) );
|
161 |
$the_name = __( 'Create', 'woocommerce-jetpack' ) . ' ' . $invoice_type['title'];
|
162 |
$the_action = 'view ' . $invoice_type['id'] . '_' . 'create' . ( ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_admin_orders_create_btn_confirm', 'yes' ) ) ? ' wcj_need_confirmation' : '' );
|
240 |
/**
|
241 |
* add_pdf_invoices_action_links.
|
242 |
*
|
243 |
+
* @version 2.7.0
|
244 |
*/
|
245 |
function add_pdf_invoices_action_links( $actions, $the_order ) {
|
246 |
$invoice_types = wcj_get_enabled_invoice_types();
|
247 |
foreach ( $invoice_types as $invoice_type ) {
|
248 |
+
if ( ! wcj_is_invoice_created( wcj_get_order_id( $the_order ), $invoice_type['id'] ) )
|
249 |
continue;
|
250 |
$my_account_option_name = 'wcj_invoicing_' . $invoice_type['id'] . '_enabled_for_customers';
|
251 |
if ( 'yes' === get_option( $my_account_option_name, 'no' ) ) {
|
252 |
|
253 |
$the_action_id = $invoice_type['id'];
|
254 |
|
255 |
+
$query_args = array( 'order_id' => wcj_get_order_id( $the_order ), 'invoice_type_id' => $invoice_type['id'], 'get_invoice' => '1', );
|
256 |
if ( 'yes' === get_option( 'wcj_invoicing_' . $invoice_type['id'] . '_save_as_enabled', 'no' ) ) {
|
257 |
$query_args['save_pdf_invoice'] = '1';
|
258 |
}
|
includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack PDF Invoicing Emails class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -54,6 +54,8 @@ class WCJ_PDF_Invoicing_Emails extends WCJ_Module {
|
|
54 |
|
55 |
/**
|
56 |
* add_pdf_invoice_email_attachment.
|
|
|
|
|
57 |
*/
|
58 |
function add_pdf_invoice_email_attachment( $attachments, $status, $order ) {
|
59 |
$invoice_types_ids = wcj_get_enabled_invoice_types_ids();
|
@@ -64,7 +66,7 @@ class WCJ_PDF_Invoicing_Emails extends WCJ_Module {
|
|
64 |
$send_on_statuses = get_option( 'wcj_invoicing_' . $invoice_type_id . '_attach_to_emails', array() );
|
65 |
if ( '' == $send_on_statuses ) $send_on_statuses = array();
|
66 |
if ( in_array( $status, $send_on_statuses ) ) {
|
67 |
-
$the_invoice = wcj_get_pdf_invoice( $order
|
68 |
$file_name = $the_invoice->get_pdf( 'F' );
|
69 |
if ( '' != $file_name ) {
|
70 |
$attachments[] = $file_name;
|
4 |
*
|
5 |
* The WooCommerce Jetpack PDF Invoicing Emails class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
54 |
|
55 |
/**
|
56 |
* add_pdf_invoice_email_attachment.
|
57 |
+
*
|
58 |
+
* @version 2.7.0
|
59 |
*/
|
60 |
function add_pdf_invoice_email_attachment( $attachments, $status, $order ) {
|
61 |
$invoice_types_ids = wcj_get_enabled_invoice_types_ids();
|
66 |
$send_on_statuses = get_option( 'wcj_invoicing_' . $invoice_type_id . '_attach_to_emails', array() );
|
67 |
if ( '' == $send_on_statuses ) $send_on_statuses = array();
|
68 |
if ( in_array( $status, $send_on_statuses ) ) {
|
69 |
+
$the_invoice = wcj_get_pdf_invoice( wcj_get_order_id( $order ), $invoice_type_id );
|
70 |
$file_name = $the_invoice->get_pdf( 'F' );
|
71 |
if ( '' != $file_name ) {
|
72 |
$attachments[] = $file_name;
|
includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack PDF Invoices Templates class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -30,7 +30,7 @@ class WCJ_PDF_Invoicing_Templates extends WCJ_Module {
|
|
30 |
/**
|
31 |
* get_settings.
|
32 |
*
|
33 |
-
* @version 2.
|
34 |
*/
|
35 |
function get_settings() {
|
36 |
|
@@ -40,9 +40,19 @@ class WCJ_PDF_Invoicing_Templates extends WCJ_Module {
|
|
40 |
foreach ( $invoice_types as $invoice_type ) {
|
41 |
|
42 |
ob_start();
|
43 |
-
|
|
|
|
|
|
|
|
|
44 |
$default_template = ob_get_clean();
|
45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
$settings = array_merge( $settings, array(
|
47 |
array(
|
48 |
'title' => strtoupper( $invoice_type['desc'] ),
|
4 |
*
|
5 |
* The WooCommerce Jetpack PDF Invoices Templates class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
30 |
/**
|
31 |
* get_settings.
|
32 |
*
|
33 |
+
* @version 2.7.0
|
34 |
*/
|
35 |
function get_settings() {
|
36 |
|
40 |
foreach ( $invoice_types as $invoice_type ) {
|
41 |
|
42 |
ob_start();
|
43 |
+
if ( false === strpos( $invoice_type['id'], 'custom_doc_' ) ) {
|
44 |
+
include( 'defaults/wcj-content-template-' . $invoice_type['id'] . '.php' );
|
45 |
+
} else {
|
46 |
+
include( 'defaults/wcj-content-template-' . 'custom_doc' . '.php' );
|
47 |
+
}
|
48 |
$default_template = ob_get_clean();
|
49 |
|
50 |
+
if ( false !== strpos( $invoice_type['id'], 'custom_doc' ) ) {
|
51 |
+
$custom_doc_nr = ( 'custom_doc' === $invoice_type['id'] ) ? '1' : str_replace( 'custom_doc_', '', $invoice_type['id'] );
|
52 |
+
$default_template = str_replace( '[wcj_custom_doc_number]', '[wcj_custom_doc_number doc_nr="' . $custom_doc_nr . '"]', $default_template );
|
53 |
+
$default_template = str_replace( '[wcj_custom_doc_date]', '[wcj_custom_doc_date doc_nr="' . $custom_doc_nr . '"]', $default_template );
|
54 |
+
}
|
55 |
+
|
56 |
$settings = array_merge( $settings, array(
|
57 |
array(
|
58 |
'title' => strtoupper( $invoice_type['desc'] ),
|
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 |
|
@@ -19,7 +19,7 @@ class WCJ_Price_by_Country_Core {
|
|
19 |
*
|
20 |
* @version 2.5.7
|
21 |
*/
|
22 |
-
|
23 |
$this->customer_country_group_id = null;
|
24 |
if ( 'no' === get_option( 'wcj_price_by_country_for_bots_disabled', 'no' ) || ! wcj_is_bot() ) {
|
25 |
// `add_hooks()` moved to `init` hook, so in case we need to call `get_customer_country_by_ip()` `WC_Geolocation` class is ready
|
@@ -30,7 +30,7 @@ class WCJ_Price_by_Country_Core {
|
|
30 |
/**
|
31 |
* add_hooks.
|
32 |
*
|
33 |
-
* @version 2.
|
34 |
*/
|
35 |
function add_hooks() {
|
36 |
|
@@ -57,27 +57,12 @@ class WCJ_Price_by_Country_Core {
|
|
57 |
}
|
58 |
|
59 |
// Price hooks
|
60 |
-
|
61 |
-
add_filter( 'woocommerce_get_sale_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
|
62 |
-
add_filter( 'woocommerce_get_regular_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
|
63 |
-
|
64 |
-
// Variable products
|
65 |
-
add_filter( 'woocommerce_variation_prices_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
|
66 |
-
add_filter( 'woocommerce_variation_prices_regular_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
|
67 |
-
add_filter( 'woocommerce_variation_prices_sale_price', array( $this, 'change_price_by_country' ), PHP_INT_MAX - 1, 2 );
|
68 |
-
add_filter( 'woocommerce_get_variation_prices_hash', array( $this, 'get_variation_prices_hash' ), PHP_INT_MAX - 1, 3 );
|
69 |
-
|
70 |
-
// Grouped products
|
71 |
-
add_filter( 'woocommerce_get_price_including_tax', array( $this, 'change_price_by_country_grouped' ), PHP_INT_MAX - 1, 3 );
|
72 |
-
add_filter( 'woocommerce_get_price_excluding_tax', array( $this, 'change_price_by_country_grouped' ), PHP_INT_MAX - 1, 3 );
|
73 |
|
74 |
// Currency hooks
|
75 |
add_filter( 'woocommerce_currency_symbol', array( $this, 'change_currency_symbol' ), PHP_INT_MAX - 1, 2 );
|
76 |
add_filter( 'woocommerce_currency', array( $this, 'change_currency_code' ), PHP_INT_MAX - 1, 1 );
|
77 |
|
78 |
-
// Shipping
|
79 |
-
add_filter( 'woocommerce_package_rates', array( $this, 'change_shipping_price_by_country' ), PHP_INT_MAX - 1, 2 );
|
80 |
-
|
81 |
// Price Filter Widget
|
82 |
if ( 'yes' === get_option( 'wcj_price_by_country_price_filter_widget_support_enabled', 'no' ) ) {
|
83 |
add_filter( 'woocommerce_price_filter_meta_keys', array( $this, 'price_filter_meta_keys' ), PHP_INT_MAX, 1 );
|
@@ -101,13 +86,16 @@ class WCJ_Price_by_Country_Core {
|
|
101 |
/*
|
102 |
* sorting_by_price_fix.
|
103 |
*
|
104 |
-
* @version 2.
|
105 |
* @since 2.5.6
|
106 |
*/
|
107 |
function sorting_by_price_fix( $args ) {
|
108 |
if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
|
109 |
// Get ordering from query string
|
110 |
-
$orderby_value =
|
|
|
|
|
|
|
111 |
// Get orderby arg from string
|
112 |
$orderby_value = explode( '-', $orderby_value );
|
113 |
$orderby = esc_attr( $orderby_value[0] );
|
@@ -150,25 +138,24 @@ class WCJ_Price_by_Country_Core {
|
|
150 |
}
|
151 |
|
152 |
/**
|
153 |
-
*
|
154 |
*
|
155 |
-
* @version 2.
|
156 |
* @since 2.5.0
|
157 |
*/
|
158 |
-
function
|
159 |
if ( $_product->is_type( 'grouped' ) ) {
|
160 |
if ( 'yes' === get_option( 'wcj_price_by_country_local_enabled', 'yes' ) ) {
|
161 |
-
$get_price_method = 'get_price_' . get_option( 'woocommerce_tax_display_shop' ) . 'uding_tax';
|
162 |
foreach ( $_product->get_children() as $child_id ) {
|
163 |
$the_price = get_post_meta( $child_id, '_price', true );
|
164 |
$the_product = wc_get_product( $child_id );
|
165 |
-
$the_price = $the_product
|
166 |
if ( $the_price == $price ) {
|
167 |
-
return $this->
|
168 |
}
|
169 |
}
|
170 |
} else {
|
171 |
-
return $this->
|
172 |
}
|
173 |
}
|
174 |
return $price;
|
@@ -195,11 +182,11 @@ class WCJ_Price_by_Country_Core {
|
|
195 |
}
|
196 |
|
197 |
/**
|
198 |
-
*
|
199 |
*
|
200 |
-
* @version 2.
|
201 |
*/
|
202 |
-
function
|
203 |
if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
|
204 |
$country_exchange_rate = get_option( 'wcj_price_by_country_exchange_rate_group_' . $group_id, 1 );
|
205 |
$modified_package_rates = array();
|
@@ -223,9 +210,10 @@ class WCJ_Price_by_Country_Core {
|
|
223 |
/**
|
224 |
* get_customer_country_group_id.
|
225 |
*
|
226 |
-
* @version 2.
|
|
|
227 |
*/
|
228 |
-
|
229 |
|
230 |
if ( 'yes' === get_option( 'wcj_price_by_country_revert', 'no' ) && is_checkout() ) {
|
231 |
$this->customer_country_group_id = -1;
|
@@ -241,7 +229,11 @@ class WCJ_Price_by_Country_Core {
|
|
241 |
if ( isset( $_GET['country'] ) && '' != $_GET['country'] && wcj_is_user_role( 'administrator' ) ) {
|
242 |
$country = $_GET['country'];
|
243 |
} elseif ( 'no' != ( $override_option = get_option( 'wcj_price_by_country_override_on_checkout_with_billing_country', 'no' ) )
|
244 |
-
|
|
|
|
|
|
|
|
|
245 |
&& isset( WC()->customer )
|
246 |
&& ( ( 'yes' === $override_option && '' != WC()->customer->get_country() ) || ( 'shipping_country' === $override_option && '' != WC()->customer->get_shipping_country() ) )
|
247 |
) {
|
@@ -292,7 +284,7 @@ class WCJ_Price_by_Country_Core {
|
|
292 |
/**
|
293 |
* change_currency_symbol.
|
294 |
*/
|
295 |
-
|
296 |
if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
|
297 |
$country_currency_code = get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $group_id );
|
298 |
if ( '' != $country_currency_code ) {
|
@@ -305,7 +297,7 @@ class WCJ_Price_by_Country_Core {
|
|
305 |
/**
|
306 |
* change_currency_code.
|
307 |
*/
|
308 |
-
|
309 |
if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
|
310 |
$country_currency_code = get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $group_id );
|
311 |
if ( '' != $country_currency_code ) {
|
@@ -343,11 +335,11 @@ class WCJ_Price_by_Country_Core {
|
|
343 |
}
|
344 |
|
345 |
/**
|
346 |
-
*
|
347 |
*
|
348 |
-
* @version 2.
|
349 |
*/
|
350 |
-
function
|
351 |
if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
|
352 |
return wcj_price_by_country( $price, $product, $group_id );
|
353 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Price by Country Core class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
19 |
*
|
20 |
* @version 2.5.7
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
$this->customer_country_group_id = null;
|
24 |
if ( 'no' === get_option( 'wcj_price_by_country_for_bots_disabled', 'no' ) || ! wcj_is_bot() ) {
|
25 |
// `add_hooks()` moved to `init` hook, so in case we need to call `get_customer_country_by_ip()` `WC_Geolocation` class is ready
|
30 |
/**
|
31 |
* add_hooks.
|
32 |
*
|
33 |
+
* @version 2.7.0
|
34 |
*/
|
35 |
function add_hooks() {
|
36 |
|
57 |
}
|
58 |
|
59 |
// Price hooks
|
60 |
+
wcj_add_change_price_hooks( $this, PHP_INT_MAX - 1 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
|
62 |
// Currency hooks
|
63 |
add_filter( 'woocommerce_currency_symbol', array( $this, 'change_currency_symbol' ), PHP_INT_MAX - 1, 2 );
|
64 |
add_filter( 'woocommerce_currency', array( $this, 'change_currency_code' ), PHP_INT_MAX - 1, 1 );
|
65 |
|
|
|
|
|
|
|
66 |
// Price Filter Widget
|
67 |
if ( 'yes' === get_option( 'wcj_price_by_country_price_filter_widget_support_enabled', 'no' ) ) {
|
68 |
add_filter( 'woocommerce_price_filter_meta_keys', array( $this, 'price_filter_meta_keys' ), PHP_INT_MAX, 1 );
|
86 |
/*
|
87 |
* sorting_by_price_fix.
|
88 |
*
|
89 |
+
* @version 2.7.0
|
90 |
* @since 2.5.6
|
91 |
*/
|
92 |
function sorting_by_price_fix( $args ) {
|
93 |
if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
|
94 |
// Get ordering from query string
|
95 |
+
$orderby_value = ( WCJ_IS_WC_VERSION_BELOW_3 ?
|
96 |
+
( isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) ) ) :
|
97 |
+
( isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) ) )
|
98 |
+
);
|
99 |
// Get orderby arg from string
|
100 |
$orderby_value = explode( '-', $orderby_value );
|
101 |
$orderby = esc_attr( $orderby_value[0] );
|
138 |
}
|
139 |
|
140 |
/**
|
141 |
+
* change_price_grouped.
|
142 |
*
|
143 |
+
* @version 2.7.0
|
144 |
* @since 2.5.0
|
145 |
*/
|
146 |
+
function change_price_grouped( $price, $qty, $_product ) {
|
147 |
if ( $_product->is_type( 'grouped' ) ) {
|
148 |
if ( 'yes' === get_option( 'wcj_price_by_country_local_enabled', 'yes' ) ) {
|
|
|
149 |
foreach ( $_product->get_children() as $child_id ) {
|
150 |
$the_price = get_post_meta( $child_id, '_price', true );
|
151 |
$the_product = wc_get_product( $child_id );
|
152 |
+
$the_price = wcj_get_product_display_price( $the_product, $the_price, 1 );
|
153 |
if ( $the_price == $price ) {
|
154 |
+
return $this->change_price( $price, $child_id );
|
155 |
}
|
156 |
}
|
157 |
} else {
|
158 |
+
return $this->change_price( $price, 0 );
|
159 |
}
|
160 |
}
|
161 |
return $price;
|
182 |
}
|
183 |
|
184 |
/**
|
185 |
+
* change_price_shipping.
|
186 |
*
|
187 |
+
* @version 2.7.0
|
188 |
*/
|
189 |
+
function change_price_shipping( $package_rates, $package ) {
|
190 |
if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
|
191 |
$country_exchange_rate = get_option( 'wcj_price_by_country_exchange_rate_group_' . $group_id, 1 );
|
192 |
$modified_package_rates = array();
|
210 |
/**
|
211 |
* get_customer_country_group_id.
|
212 |
*
|
213 |
+
* @version 2.7.0
|
214 |
+
* @todo (maybe) add `cart_and_checkout` override option
|
215 |
*/
|
216 |
+
function get_customer_country_group_id() {
|
217 |
|
218 |
if ( 'yes' === get_option( 'wcj_price_by_country_revert', 'no' ) && is_checkout() ) {
|
219 |
$this->customer_country_group_id = -1;
|
229 |
if ( isset( $_GET['country'] ) && '' != $_GET['country'] && wcj_is_user_role( 'administrator' ) ) {
|
230 |
$country = $_GET['country'];
|
231 |
} elseif ( 'no' != ( $override_option = get_option( 'wcj_price_by_country_override_on_checkout_with_billing_country', 'no' ) )
|
232 |
+
&& (
|
233 |
+
( 'all' === get_option( 'wcj_price_by_country_override_scope', 'all' ) ) ||
|
234 |
+
// ( 'cart_and_checkout' === get_option( 'wcj_price_by_country_override_scope', 'all' ) && ( is_cart() || is_checkout() ) ) ||
|
235 |
+
( 'checkout' === get_option( 'wcj_price_by_country_override_scope', 'all' ) && is_checkout() )
|
236 |
+
)
|
237 |
&& isset( WC()->customer )
|
238 |
&& ( ( 'yes' === $override_option && '' != WC()->customer->get_country() ) || ( 'shipping_country' === $override_option && '' != WC()->customer->get_shipping_country() ) )
|
239 |
) {
|
284 |
/**
|
285 |
* change_currency_symbol.
|
286 |
*/
|
287 |
+
function change_currency_symbol( $currency_symbol, $currency ) {
|
288 |
if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
|
289 |
$country_currency_code = get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $group_id );
|
290 |
if ( '' != $country_currency_code ) {
|
297 |
/**
|
298 |
* change_currency_code.
|
299 |
*/
|
300 |
+
function change_currency_code( $currency ) {
|
301 |
if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
|
302 |
$country_currency_code = get_option( 'wcj_price_by_country_exchange_rate_currency_group_' . $group_id );
|
303 |
if ( '' != $country_currency_code ) {
|
335 |
}
|
336 |
|
337 |
/**
|
338 |
+
* change_price.
|
339 |
*
|
340 |
+
* @version 2.7.0
|
341 |
*/
|
342 |
+
function change_price( $price, $product ) {
|
343 |
if ( null != ( $group_id = $this->get_customer_country_group_id() ) ) {
|
344 |
return wcj_price_by_country( $price, $product, $group_id );
|
345 |
}
|
includes/price-by-country/class-wcj-price-by-country-local.php
CHANGED
@@ -19,7 +19,7 @@ class WCJ_Price_by_Country_Local {
|
|
19 |
*
|
20 |
* @version 2.3.9
|
21 |
*/
|
22 |
-
|
23 |
// add_action( 'add_meta_boxes', array( $this, 'add_custom_meta_box_to_product_edit' ) );
|
24 |
add_action( 'woocommerce_ajax_save_product_variations', array( $this, 'save_custom_meta_box_on_product_edit_ajax' ), PHP_INT_MAX, 1 );
|
25 |
add_action( 'save_post_product', array( $this, 'save_custom_meta_box_on_product_edit' ), PHP_INT_MAX, 2 );
|
@@ -60,8 +60,7 @@ class WCJ_Price_by_Country_Local {
|
|
60 |
/**
|
61 |
* create_custom_meta_box.
|
62 |
*/
|
63 |
-
|
64 |
-
public function create_custom_meta_box( $simple_or_variable, $product_id = 0 ) {
|
65 |
|
66 |
$current_post_id = ( $product_id == 0) ? get_the_ID() : $product_id;
|
67 |
$the_product = wc_get_product( $current_post_id );
|
@@ -125,24 +124,24 @@ class WCJ_Price_by_Country_Local {
|
|
125 |
$options = array(
|
126 |
|
127 |
array(
|
128 |
-
'id'
|
129 |
-
'title'
|
130 |
-
'type'
|
131 |
-
'default'
|
132 |
),
|
133 |
|
134 |
array(
|
135 |
-
'id'
|
136 |
-
'title'
|
137 |
-
'type'
|
138 |
-
'default'
|
139 |
),
|
140 |
|
141 |
array(
|
142 |
-
'id'
|
143 |
-
'title'
|
144 |
-
'type'
|
145 |
-
'default'
|
146 |
),
|
147 |
|
148 |
);
|
@@ -153,7 +152,6 @@ class WCJ_Price_by_Country_Local {
|
|
153 |
* Save options.
|
154 |
*/
|
155 |
function save_options( $post_id, $total_options_groups, $variation_id_addon = '' ) {
|
156 |
-
|
157 |
$options = $this->get_prices_options();
|
158 |
for ( $i = 1; $i <= $total_options_groups; $i++ ) {
|
159 |
foreach ( $options as $option ) {
|
@@ -172,14 +170,14 @@ class WCJ_Price_by_Country_Local {
|
|
172 |
* @version 2.3.9
|
173 |
* @since 2.3.9
|
174 |
*/
|
175 |
-
|
176 |
return $this->save_custom_meta_box_on_product_edit( $product_id, /* 'ajax' */ null );
|
177 |
}
|
178 |
|
179 |
/**
|
180 |
* Save Custom Meta Box on Product Edit.
|
181 |
*/
|
182 |
-
|
183 |
|
184 |
$meta_box_id = 'price_by_country';
|
185 |
|
@@ -235,7 +233,7 @@ class WCJ_Price_by_Country_Local {
|
|
235 |
*
|
236 |
* @version 2.4.4
|
237 |
*/
|
238 |
-
|
239 |
$html = '';
|
240 |
$options = $this->get_prices_options();
|
241 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
19 |
*
|
20 |
* @version 2.3.9
|
21 |
*/
|
22 |
+
function __construct() {
|
23 |
// add_action( 'add_meta_boxes', array( $this, 'add_custom_meta_box_to_product_edit' ) );
|
24 |
add_action( 'woocommerce_ajax_save_product_variations', array( $this, 'save_custom_meta_box_on_product_edit_ajax' ), PHP_INT_MAX, 1 );
|
25 |
add_action( 'save_post_product', array( $this, 'save_custom_meta_box_on_product_edit' ), PHP_INT_MAX, 2 );
|
60 |
/**
|
61 |
* create_custom_meta_box.
|
62 |
*/
|
63 |
+
function create_custom_meta_box( $simple_or_variable, $product_id = 0 ) {
|
|
|
64 |
|
65 |
$current_post_id = ( $product_id == 0) ? get_the_ID() : $product_id;
|
66 |
$the_product = wc_get_product( $current_post_id );
|
124 |
$options = array(
|
125 |
|
126 |
array(
|
127 |
+
'id' => 'wcj_' . $meta_box_id . '_regular_price_' . $this->scope . '_',
|
128 |
+
'title' => __( 'Regular Price', 'woocommerce' ),
|
129 |
+
'type' => 'text',
|
130 |
+
'default' => 0,
|
131 |
),
|
132 |
|
133 |
array(
|
134 |
+
'id' => 'wcj_' . $meta_box_id . '_sale_price_' . $this->scope . '_',
|
135 |
+
'title' => __( 'Sale Price', 'woocommerce' ),
|
136 |
+
'type' => 'text',
|
137 |
+
'default' => 0,
|
138 |
),
|
139 |
|
140 |
array(
|
141 |
+
'id' => 'wcj_' . $meta_box_id . '_make_empty_price_' . $this->scope . '_',
|
142 |
+
'title' => __( 'Make empty price', 'woocommerce' ),
|
143 |
+
'type' => 'checkbox',
|
144 |
+
'default' => 'off',
|
145 |
),
|
146 |
|
147 |
);
|
152 |
* Save options.
|
153 |
*/
|
154 |
function save_options( $post_id, $total_options_groups, $variation_id_addon = '' ) {
|
|
|
155 |
$options = $this->get_prices_options();
|
156 |
for ( $i = 1; $i <= $total_options_groups; $i++ ) {
|
157 |
foreach ( $options as $option ) {
|
170 |
* @version 2.3.9
|
171 |
* @since 2.3.9
|
172 |
*/
|
173 |
+
function save_custom_meta_box_on_product_edit_ajax( $product_id ) {
|
174 |
return $this->save_custom_meta_box_on_product_edit( $product_id, /* 'ajax' */ null );
|
175 |
}
|
176 |
|
177 |
/**
|
178 |
* Save Custom Meta Box on Product Edit.
|
179 |
*/
|
180 |
+
function save_custom_meta_box_on_product_edit( $post_id, $post ) {
|
181 |
|
182 |
$meta_box_id = 'price_by_country';
|
183 |
|
233 |
*
|
234 |
* @version 2.4.4
|
235 |
*/
|
236 |
+
function get_all_options_html( $simple_or_variable, $current_post_id, $total_number, $variation_id_addon = '' ) {
|
237 |
$html = '';
|
238 |
$options = $this->get_prices_options();
|
239 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
includes/reports/wcj-class-reports-monthly-sales.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Mothly Sales Reports class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.4.7
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -18,11 +18,11 @@ class WCJ_Reports_Monthly_Sales {
|
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
-
* @version 2.
|
22 |
* @since 2.4.7
|
23 |
*/
|
24 |
-
|
25 |
-
|
26 |
}
|
27 |
|
28 |
/**
|
@@ -31,7 +31,7 @@ class WCJ_Reports_Monthly_Sales {
|
|
31 |
* @version 2.5.3
|
32 |
* @since 2.4.7
|
33 |
*/
|
34 |
-
|
35 |
$html = '';
|
36 |
$this->year = isset( $_GET['year'] ) ? $_GET['year'] : date( 'Y' );
|
37 |
if ( isset( $_POST['wcj_reset_currency_rates'] ) ) {
|
@@ -125,9 +125,9 @@ class WCJ_Reports_Monthly_Sales {
|
|
125 |
/*
|
126 |
* get_monthly_sales_report.
|
127 |
*
|
128 |
-
* @version 2.
|
129 |
* @since 2.4.7
|
130 |
-
* @todo
|
131 |
*/
|
132 |
function get_monthly_sales_report() {
|
133 |
|
@@ -198,7 +198,7 @@ class WCJ_Reports_Monthly_Sales {
|
|
198 |
while ( $loop_orders->have_posts() ) : $loop_orders->the_post();
|
199 |
$order_id = $loop_orders->post->ID;
|
200 |
$order = new WC_Order( $order_id );
|
201 |
-
$order_currency = $order
|
202 |
if ( ! isset( $order_currencies_array[ $order_currency ] ) ) {
|
203 |
$order_currencies_array[ $order_currency ] = 0;
|
204 |
}
|
4 |
*
|
5 |
* The WooCommerce Jetpack Mothly Sales Reports class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.4.7
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
18 |
/**
|
19 |
* Constructor.
|
20 |
*
|
21 |
+
* @version 2.7.0
|
22 |
* @since 2.4.7
|
23 |
*/
|
24 |
+
function __construct( $args = null ) {
|
25 |
+
return true;
|
26 |
}
|
27 |
|
28 |
/**
|
31 |
* @version 2.5.3
|
32 |
* @since 2.4.7
|
33 |
*/
|
34 |
+
function get_report() {
|
35 |
$html = '';
|
36 |
$this->year = isset( $_GET['year'] ) ? $_GET['year'] : date( 'Y' );
|
37 |
if ( isset( $_POST['wcj_reset_currency_rates'] ) ) {
|
125 |
/*
|
126 |
* get_monthly_sales_report.
|
127 |
*
|
128 |
+
* @version 2.7.0
|
129 |
* @since 2.4.7
|
130 |
+
* @todo take not monthly average, but "Close" of closest day; forecast for current month; $order_currencies_array;
|
131 |
*/
|
132 |
function get_monthly_sales_report() {
|
133 |
|
198 |
while ( $loop_orders->have_posts() ) : $loop_orders->the_post();
|
199 |
$order_id = $loop_orders->post->ID;
|
200 |
$order = new WC_Order( $order_id );
|
201 |
+
$order_currency = wcj_get_order_currency( $order );
|
202 |
if ( ! isset( $order_currencies_array[ $order_currency ] ) ) {
|
203 |
$order_currencies_array[ $order_currency ] = 0;
|
204 |
}
|
includes/reports/wcj-class-reports-sales.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Sales Reports class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -71,7 +71,7 @@ class WCJ_Reports_Sales {
|
|
71 |
/*
|
72 |
* get_products_sales.
|
73 |
*
|
74 |
-
* @version 2.
|
75 |
* @since 2.3.0
|
76 |
* @todo (maybe) currency conversion
|
77 |
* @todo fix when variable and variations are all (wrongfully) counted in total sums
|
@@ -120,7 +120,7 @@ class WCJ_Reports_Sales {
|
|
120 |
if ( is_object( $_product ) ) {
|
121 |
$products_data[ $product_id ][ 'title' ] .= $_product->get_title(); // get_the_title( $product_id );
|
122 |
if ( 'WC_Product_Variation' === get_class( $_product ) && is_object( $_product->parent ) ) {
|
123 |
-
$products_data[ $product_id ][ 'title' ] .= '<br><em>' . $_product
|
124 |
} elseif ( 'WC_Product_Variation' === get_class( $_product ) ) {
|
125 |
// $products_data[ $product_id ][ 'title' ] .= ' [PARENT PRODUCT DELETED]'; // todo
|
126 |
$products_data[ $product_id ][ 'title' ] .= $item['name'] . '<br><em>' . __( 'Variation', 'woocommerce-jetpack' ) . '</em>'; // get_the_title( $product_id );
|
@@ -345,7 +345,7 @@ class WCJ_Reports_Sales {
|
|
345 |
$filter_form .= '<input type="hidden" name="page" value="' . $_GET['page'] . '" />';
|
346 |
$filter_form .= '<input type="hidden" name="tab" value="' . $_GET['tab'] . '" />';
|
347 |
$filter_form .= '<input type="hidden" name="report" value="' . $_GET['report'] . '" />';
|
348 |
-
$filter_form .= '<input type="hidden" name="year" value="' . $
|
349 |
$filter_form .= '<input type="text" name="product_title" title="" value="' . $this->product_title . '" /><input type="submit" value="' . __( 'Filter products', 'woocommerce-jetpack' ) . '" />';
|
350 |
$filter_form .= '</form>';
|
351 |
|
4 |
*
|
5 |
* The WooCommerce Jetpack Sales Reports class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
71 |
/*
|
72 |
* get_products_sales.
|
73 |
*
|
74 |
+
* @version 2.7.0
|
75 |
* @since 2.3.0
|
76 |
* @todo (maybe) currency conversion
|
77 |
* @todo fix when variable and variations are all (wrongfully) counted in total sums
|
120 |
if ( is_object( $_product ) ) {
|
121 |
$products_data[ $product_id ][ 'title' ] .= $_product->get_title(); // get_the_title( $product_id );
|
122 |
if ( 'WC_Product_Variation' === get_class( $_product ) && is_object( $_product->parent ) ) {
|
123 |
+
$products_data[ $product_id ][ 'title' ] .= '<br><em>' . wcj_get_product_formatted_variation( $_product, true ) . '</em>';
|
124 |
} elseif ( 'WC_Product_Variation' === get_class( $_product ) ) {
|
125 |
// $products_data[ $product_id ][ 'title' ] .= ' [PARENT PRODUCT DELETED]'; // todo
|
126 |
$products_data[ $product_id ][ 'title' ] .= $item['name'] . '<br><em>' . __( 'Variation', 'woocommerce-jetpack' ) . '</em>'; // get_the_title( $product_id );
|
345 |
$filter_form .= '<input type="hidden" name="page" value="' . $_GET['page'] . '" />';
|
346 |
$filter_form .= '<input type="hidden" name="tab" value="' . $_GET['tab'] . '" />';
|
347 |
$filter_form .= '<input type="hidden" name="report" value="' . $_GET['report'] . '" />';
|
348 |
+
$filter_form .= '<input type="hidden" name="year" value="' . $this->year . '" />';
|
349 |
$filter_form .= '<input type="text" name="product_title" title="" value="' . $this->product_title . '" /><input type="submit" value="' . __( 'Filter products', 'woocommerce-jetpack' ) . '" />';
|
350 |
$filter_form .= '</form>';
|
351 |
|
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,7 +94,7 @@ class WCJ_Reports_Stock {
|
|
94 |
/*
|
95 |
* gather_products_data.
|
96 |
*
|
97 |
-
* @version 2.
|
98 |
* @todo variable products?
|
99 |
*/
|
100 |
public function gather_products_data( &$products_info ) {
|
@@ -114,11 +114,11 @@ class WCJ_Reports_Stock {
|
|
114 |
$the_ID = get_the_ID();
|
115 |
$the_product = wc_get_product( $the_ID );
|
116 |
$the_price = $the_product->get_price();
|
117 |
-
$the_stock = $the_product
|
118 |
//if ( 0 == $the_stock )
|
119 |
//$the_stock = get_post_meta( $the_ID, '_stock', true );
|
120 |
$the_title = get_the_title();
|
121 |
-
$the_categories = $the_product->get_categories();
|
122 |
$the_date = get_the_date();
|
123 |
$the_permalink = get_the_permalink();
|
124 |
|
4 |
*
|
5 |
* The WooCommerce Jetpack Stock Reports class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
94 |
/*
|
95 |
* gather_products_data.
|
96 |
*
|
97 |
+
* @version 2.7.0
|
98 |
* @todo variable products?
|
99 |
*/
|
100 |
public function gather_products_data( &$products_info ) {
|
114 |
$the_ID = get_the_ID();
|
115 |
$the_product = wc_get_product( $the_ID );
|
116 |
$the_price = $the_product->get_price();
|
117 |
+
$the_stock = wcj_get_product_total_stock( $the_product );
|
118 |
//if ( 0 == $the_stock )
|
119 |
//$the_stock = get_post_meta( $the_ID, '_stock', true );
|
120 |
$the_title = get_the_title();
|
121 |
+
$the_categories = ( WCJ_IS_WC_VERSION_BELOW_3 ? $the_product->get_categories() : wc_get_product_category_list( $the_ID ) );
|
122 |
$the_date = get_the_date();
|
123 |
$the_permalink = get_the_permalink();
|
124 |
|
includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php
CHANGED
@@ -4,12 +4,12 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Custom Shipping with Shipping Zones class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.6
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
11 |
|
12 |
-
add_action( '
|
13 |
|
14 |
if ( ! function_exists( 'init_wc_shipping_wcj_custom_w_zones_class' ) ) {
|
15 |
|
4 |
*
|
5 |
* The WooCommerce Jetpack Custom Shipping with Shipping Zones class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.6
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
11 |
|
12 |
+
add_action( 'init', 'init_wc_shipping_wcj_custom_w_zones_class' );
|
13 |
|
14 |
if ( ! function_exists( 'init_wc_shipping_wcj_custom_w_zones_class' ) ) {
|
15 |
|
includes/shipping/class-wc-shipping-wcj-custom.php
CHANGED
@@ -4,12 +4,12 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Custom Shipping class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.4.8
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
11 |
|
12 |
-
add_action( '
|
13 |
|
14 |
if ( ! function_exists( 'init_wc_shipping_wcj_custom_class' ) ) {
|
15 |
|
4 |
*
|
5 |
* The WooCommerce Jetpack Custom Shipping class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.4.8
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
11 |
|
12 |
+
add_action( 'init', 'init_wc_shipping_wcj_custom_class' );
|
13 |
|
14 |
if ( ! function_exists( 'init_wc_shipping_wcj_custom_class' ) ) {
|
15 |
|
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 |
|
@@ -17,7 +17,7 @@ class WCJ_General_Shortcodes extends WCJ_Shortcodes {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
@@ -28,6 +28,7 @@ class WCJ_General_Shortcodes extends WCJ_Shortcodes {
|
|
28 |
'wcj_current_timestamp',
|
29 |
// 'wcj_image',
|
30 |
'wcj_cart_items_total_weight',
|
|
|
31 |
'wcj_wpml',
|
32 |
'wcj_wpml_translate',
|
33 |
'wcj_country_select_drop_down_list',
|
@@ -474,6 +475,21 @@ class WCJ_General_Shortcodes extends WCJ_Shortcodes {
|
|
474 |
return $this->wcj_wpml( $atts, $content );
|
475 |
}
|
476 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
477 |
/**
|
478 |
* wcj_cart_items_total_weight.
|
479 |
*/
|
4 |
*
|
5 |
* The WooCommerce Jetpack General Shortcodes class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
28 |
'wcj_current_timestamp',
|
29 |
// 'wcj_image',
|
30 |
'wcj_cart_items_total_weight',
|
31 |
+
'wcj_cart_items_total_quantity',
|
32 |
'wcj_wpml',
|
33 |
'wcj_wpml_translate',
|
34 |
'wcj_country_select_drop_down_list',
|
475 |
return $this->wcj_wpml( $atts, $content );
|
476 |
}
|
477 |
|
478 |
+
/**
|
479 |
+
* wcj_cart_items_total_quantity.
|
480 |
+
*
|
481 |
+
* @version 2.7.0
|
482 |
+
* @since 2.7.0
|
483 |
+
*/
|
484 |
+
function wcj_cart_items_total_quantity( $atts ) {
|
485 |
+
$total_quantity = 0;
|
486 |
+
$_items = WC()->cart->get_cart();
|
487 |
+
foreach( $_items as $_item ) {
|
488 |
+
$total_quantity += $_item['quantity'];
|
489 |
+
}
|
490 |
+
return $total_quantity;
|
491 |
+
}
|
492 |
+
|
493 |
/**
|
494 |
* wcj_cart_items_total_weight.
|
495 |
*/
|
includes/shortcodes/class-wcj-invoices-shortcodes.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Invoices Shortcodes class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
@@ -17,7 +17,7 @@ class WCJ_Invoices_Shortcodes extends WCJ_Shortcodes {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
@@ -42,6 +42,7 @@ class WCJ_Invoices_Shortcodes extends WCJ_Shortcodes {
|
|
42 |
'date_format' => get_option( 'date_format' ),
|
43 |
'days' => 0,
|
44 |
'invoice_type' => 'invoice',
|
|
|
45 |
);
|
46 |
|
47 |
parent::__construct();
|
@@ -73,17 +74,36 @@ class WCJ_Invoices_Shortcodes extends WCJ_Shortcodes {
|
|
73 |
function wcj_invoice_date( $atts ) {
|
74 |
return wcj_get_invoice_date( $atts['order_id'], $atts['invoice_type'], $atts['days'], $atts['date_format'] );
|
75 |
}
|
|
|
|
|
|
|
|
|
76 |
function wcj_proforma_invoice_date( $atts ) {
|
77 |
return wcj_get_invoice_date( $atts['order_id'], 'proforma_invoice', $atts['days'], $atts['date_format'] );
|
78 |
}
|
|
|
|
|
|
|
|
|
79 |
function wcj_packing_slip_date( $atts ) {
|
80 |
return wcj_get_invoice_date( $atts['order_id'], 'packing_slip', $atts['days'], $atts['date_format'] );
|
81 |
}
|
|
|
|
|
|
|
|
|
82 |
function wcj_credit_note_date( $atts ) {
|
83 |
return wcj_get_invoice_date( $atts['order_id'], 'credit_note', $atts['days'], $atts['date_format'] );
|
84 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
function wcj_custom_doc_date( $atts ) {
|
86 |
-
|
|
|
87 |
}
|
88 |
|
89 |
/**
|
@@ -92,18 +112,38 @@ class WCJ_Invoices_Shortcodes extends WCJ_Shortcodes {
|
|
92 |
function wcj_invoice_number( $atts ) {
|
93 |
return wcj_get_invoice_number( $atts['order_id'], $atts['invoice_type'] );
|
94 |
}
|
|
|
|
|
|
|
|
|
95 |
function wcj_proforma_invoice_number( $atts ) {
|
96 |
return wcj_get_invoice_number( $atts['order_id'], 'proforma_invoice' );
|
97 |
}
|
|
|
|
|
|
|
|
|
98 |
function wcj_packing_slip_number( $atts ) {
|
99 |
return wcj_get_invoice_number( $atts['order_id'], 'packing_slip' );
|
100 |
}
|
|
|
|
|
|
|
|
|
101 |
function wcj_credit_note_number( $atts ) {
|
102 |
return wcj_get_invoice_number( $atts['order_id'], 'credit_note' );
|
103 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
function wcj_custom_doc_number( $atts ) {
|
105 |
-
|
|
|
106 |
}
|
|
|
107 |
}
|
108 |
|
109 |
endif;
|
4 |
*
|
5 |
* The WooCommerce Jetpack Invoices Shortcodes class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
42 |
'date_format' => get_option( 'date_format' ),
|
43 |
'days' => 0,
|
44 |
'invoice_type' => 'invoice',
|
45 |
+
'doc_nr' => 1,
|
46 |
);
|
47 |
|
48 |
parent::__construct();
|
74 |
function wcj_invoice_date( $atts ) {
|
75 |
return wcj_get_invoice_date( $atts['order_id'], $atts['invoice_type'], $atts['days'], $atts['date_format'] );
|
76 |
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* wcj_proforma_invoice_date.
|
80 |
+
*/
|
81 |
function wcj_proforma_invoice_date( $atts ) {
|
82 |
return wcj_get_invoice_date( $atts['order_id'], 'proforma_invoice', $atts['days'], $atts['date_format'] );
|
83 |
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* wcj_packing_slip_date.
|
87 |
+
*/
|
88 |
function wcj_packing_slip_date( $atts ) {
|
89 |
return wcj_get_invoice_date( $atts['order_id'], 'packing_slip', $atts['days'], $atts['date_format'] );
|
90 |
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* wcj_credit_note_date.
|
94 |
+
*/
|
95 |
function wcj_credit_note_date( $atts ) {
|
96 |
return wcj_get_invoice_date( $atts['order_id'], 'credit_note', $atts['days'], $atts['date_format'] );
|
97 |
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* wcj_custom_doc_date.
|
101 |
+
*
|
102 |
+
* @version 2.7.0
|
103 |
+
*/
|
104 |
function wcj_custom_doc_date( $atts ) {
|
105 |
+
$invoice_type_id = ( 1 == $atts['doc_nr'] ) ? 'custom_doc' : 'custom_doc' . '_' . $atts['doc_nr'];
|
106 |
+
return wcj_get_invoice_date( $atts['order_id'], $invoice_type_id, $atts['days'], $atts['date_format'] );
|
107 |
}
|
108 |
|
109 |
/**
|
112 |
function wcj_invoice_number( $atts ) {
|
113 |
return wcj_get_invoice_number( $atts['order_id'], $atts['invoice_type'] );
|
114 |
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* wcj_proforma_invoice_number.
|
118 |
+
*/
|
119 |
function wcj_proforma_invoice_number( $atts ) {
|
120 |
return wcj_get_invoice_number( $atts['order_id'], 'proforma_invoice' );
|
121 |
}
|
122 |
+
|
123 |
+
/**
|
124 |
+
* wcj_packing_slip_number.
|
125 |
+
*/
|
126 |
function wcj_packing_slip_number( $atts ) {
|
127 |
return wcj_get_invoice_number( $atts['order_id'], 'packing_slip' );
|
128 |
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* wcj_credit_note_number.
|
132 |
+
*/
|
133 |
function wcj_credit_note_number( $atts ) {
|
134 |
return wcj_get_invoice_number( $atts['order_id'], 'credit_note' );
|
135 |
}
|
136 |
+
|
137 |
+
/**
|
138 |
+
* wcj_custom_doc_number.
|
139 |
+
*
|
140 |
+
* @version 2.7.0
|
141 |
+
*/
|
142 |
function wcj_custom_doc_number( $atts ) {
|
143 |
+
$invoice_type_id = ( 1 == $atts['doc_nr'] ) ? 'custom_doc' : 'custom_doc' . '_' . $atts['doc_nr'];
|
144 |
+
return wcj_get_invoice_number( $atts['order_id'], $invoice_type_id );
|
145 |
}
|
146 |
+
|
147 |
}
|
148 |
|
149 |
endif;
|
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 |
|
@@ -96,9 +96,11 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
|
|
96 |
|
97 |
/**
|
98 |
* wcj_price_shortcode.
|
|
|
|
|
99 |
*/
|
100 |
private function wcj_price_shortcode( $raw_price, $atts ) {
|
101 |
-
return wcj_price( $atts['price_prefix'] . $raw_price, $this->the_order
|
102 |
}
|
103 |
|
104 |
/**
|
@@ -232,7 +234,7 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
|
|
232 |
/**
|
233 |
* wcj_order_items_table.
|
234 |
*
|
235 |
-
* @version 2.
|
236 |
*/
|
237 |
function wcj_order_items_table( $atts, $content = '' ) {
|
238 |
|
@@ -292,54 +294,56 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
|
|
292 |
$item_counter++;
|
293 |
// Columns
|
294 |
foreach( $columns as $column ) {
|
|
|
295 |
if ( false !== ( $pos = strpos( $column, '=' ) ) ) {
|
296 |
$column_param = substr( $column, $pos + 1 );
|
297 |
$column = substr( $column, 0, $pos );
|
298 |
}
|
|
|
299 |
switch ( $column ) {
|
300 |
case 'item_debug':
|
301 |
case 'debug':
|
302 |
-
$
|
303 |
break;
|
304 |
case 'item_regular_price':
|
305 |
case 'product_regular_price':
|
306 |
-
$
|
307 |
break;
|
308 |
case 'item_sale_price':
|
309 |
case 'product_sale_price':
|
310 |
-
$
|
311 |
break;
|
312 |
case 'item_regular_price_multiply_qty':
|
313 |
case 'product_regular_price_multiply_qty':
|
314 |
-
$
|
315 |
break;
|
316 |
case 'item_sale_price_multiply_qty':
|
317 |
case 'product_sale_price_multiply_qty':
|
318 |
-
$
|
319 |
break;
|
320 |
case 'item_tax_class':
|
321 |
case 'tax_class':
|
322 |
-
$
|
323 |
break;
|
324 |
case 'item_number':
|
325 |
-
$
|
326 |
break;
|
327 |
case 'item_meta':
|
328 |
-
$
|
329 |
break;
|
330 |
case 'item_name':
|
331 |
case 'product_name': // "product_" because of possible variation
|
332 |
if ( true === $item['is_custom'] ) {
|
333 |
-
$
|
334 |
} else {
|
335 |
$the_item_title = $item['name'];
|
336 |
// Variation (if needed)
|
337 |
if ( 0 != $item['variation_id'] && ! in_array( 'item_variation', $columns ) ) {
|
338 |
$the_item_title .= '<div style="' . $atts['style_item_name_variation'] . '">';
|
339 |
if ( 'yes' === $atts['variation_as_metadata'] ) {
|
340 |
-
$the_item_title .= wcj_get_order_item_meta_info( $item_id,
|
341 |
} elseif ( is_object( $the_product ) && $the_product->is_type( 'variation' ) ) {
|
342 |
-
$the_item_title .= str_replace( 'pa_', '', urldecode( $the_product
|
343 |
}
|
344 |
$the_item_title .= '</div>';
|
345 |
}
|
@@ -348,7 +352,7 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
|
|
348 |
if ( isset( $item['tmcartepo_data'] ) ) {
|
349 |
$options = unserialize( $item['tmcartepo_data'] );
|
350 |
$options_prices = array();
|
351 |
-
// $order_currency = $the_order
|
352 |
foreach ( $options as $option ) {
|
353 |
/* if ( isset( $option['price_per_currency'][ $order_currency ] ) ) {
|
354 |
$options_prices[] = $this->wcj_price_shortcode( $option['price_per_currency'][ $order_currency ], $atts );
|
@@ -369,153 +373,161 @@ class WCJ_Order_Items_Shortcodes extends WCJ_Shortcodes {
|
|
369 |
}
|
370 |
$the_item_title .= '<div style="' . $atts['style_item_name_variation'] . '">' . implode( '<br>', $options_prices ) . '</div>';
|
371 |
}
|
372 |
-
$
|
373 |
}
|
374 |
break;
|
375 |
case 'item_product_input_fields':
|
376 |
-
$
|
377 |
break;
|
378 |
case 'item_key':
|
379 |
if ( isset( $column_param ) && '' != $column_param && isset( $item[ $column_param ] ) ) {
|
380 |
$maybe_unserialized_value = maybe_unserialize( $item[ $column_param ] );
|
381 |
if ( is_array( $maybe_unserialized_value ) ) {
|
382 |
-
$
|
383 |
} else {
|
384 |
-
$
|
385 |
}
|
386 |
} else {
|
387 |
-
$
|
388 |
}
|
389 |
break;
|
390 |
case 'item_attribute':
|
391 |
case 'product_attribute':
|
392 |
if ( isset( $column_param ) && '' != $column_param && is_object( $the_product ) ) {
|
393 |
-
$
|
394 |
} else {
|
395 |
-
$
|
396 |
}
|
397 |
break;
|
398 |
case 'item_excerpt':
|
399 |
case 'product_excerpt':
|
400 |
if ( true === $item['is_custom'] ) {
|
401 |
-
$
|
402 |
} else {
|
403 |
global $post;
|
404 |
$post = get_post( $item['product_id'] );
|
405 |
setup_postdata( $post );
|
406 |
$the_excerpt = get_the_excerpt();
|
407 |
wp_reset_postdata();
|
408 |
-
$
|
409 |
}
|
410 |
break;
|
411 |
case 'item_short_description':
|
412 |
case 'product_short_description':
|
413 |
-
$
|
414 |
break;
|
415 |
case 'item_variation':
|
416 |
case 'product_variation':
|
417 |
if ( 0 != $item['variation_id'] ) {
|
418 |
if ( 'yes' === $atts['variation_as_metadata'] ) {
|
419 |
-
$
|
420 |
} elseif ( is_object( $the_product ) && $the_product->is_type( 'variation' ) ) {
|
421 |
-
$
|
422 |
}
|
423 |
} else {
|
424 |
-
$
|
425 |
}
|
426 |
break;
|
427 |
case 'item_thumbnail':
|
428 |
case 'product_thumbnail':
|
429 |
-
// $
|
430 |
$image_id = ( true === $item['is_custom'] || ! is_object( $the_product ) ) ? 0 : $the_product->get_image_id();
|
431 |
$image_src = ( 0 != $image_id ) ? wp_get_attachment_image_src( $image_id ) : wc_placeholder_img_src();
|
432 |
if ( is_array( $image_src ) ) $image_src = $image_src[0];
|
433 |
$maybe_width = ( 0 != $atts['product_image_width'] ) ? ' width="' . $atts['product_image_width'] . '"' : '';
|
434 |
$maybe_height = ( 0 != $atts['product_image_height'] ) ? ' height="' . $atts['product_image_height'] . '"' : '';
|
435 |
-
$
|
436 |
break;
|
437 |
case 'item_sku':
|
438 |
case 'product_sku':
|
439 |
-
$
|
440 |
break;
|
441 |
case 'item_quantity':
|
442 |
-
$
|
443 |
break;
|
444 |
case 'item_total_tax_excl':
|
445 |
-
$
|
446 |
break;
|
447 |
case 'item_total_tax_incl':
|
448 |
-
$
|
449 |
break;
|
450 |
case 'item_subtotal_tax_excl':
|
451 |
-
$
|
452 |
break;
|
453 |
case 'item_subtotal_tax_incl':
|
454 |
-
$
|
455 |
break;
|
456 |
case 'item_tax':
|
457 |
-
$
|
458 |
break;
|
459 |
case 'line_total_tax_excl':
|
460 |
$line_total_tax_excl = $the_order->get_line_total( $item, false, true );
|
461 |
$line_total_tax_excl = apply_filters( 'wcj_line_total_tax_excl', $line_total_tax_excl, $the_order );
|
462 |
-
$
|
463 |
break;
|
464 |
case 'line_total_tax_incl':
|
465 |
-
$
|
466 |
break;
|
467 |
case 'line_subtotal_tax_excl':
|
468 |
-
$
|
469 |
break;
|
470 |
case 'line_subtotal_tax_incl':
|
471 |
-
$
|
472 |
break;
|
473 |
case 'line_tax':
|
474 |
$line_tax = $the_order->get_line_tax( $item );
|
475 |
$line_tax = apply_filters( 'wcj_line_tax', $line_tax, $the_order );
|
476 |
-
$
|
477 |
break;
|
478 |
case 'line_subtax':
|
479 |
$line_subtax = $the_order->get_line_subtotal( $item, true, false ) - $the_order->get_line_subtotal( $item, false, false );
|
480 |
-
$
|
481 |
break;
|
482 |
case 'item_tax_percent':
|
483 |
case 'line_tax_percent':
|
484 |
$item_total = $the_order->get_item_total( $item, false, /* true */ false );
|
485 |
$item_tax_percent = ( 0 != $item_total ) ? $the_order->get_item_tax( $item, false ) / $item_total * 100 : 0;
|
486 |
$item_tax_percent = apply_filters( 'wcj_line_tax_percent', $item_tax_percent, $the_order );
|
487 |
-
$
|
488 |
/* $tax_labels = array();
|
489 |
foreach ( $the_order->get_taxes() as $the_tax ) {
|
490 |
$tax_labels[] = $the_tax['label'];
|
491 |
}
|
492 |
-
$
|
493 |
break;
|
494 |
/* case 'line_tax_percent':
|
495 |
$line_total = $the_order->get_line_total( $item, false, true );
|
496 |
$line_tax_percent = ( 0 != $line_total ) ? $the_order->get_line_tax( $item ) / $line_total * 100 : 0;
|
497 |
$line_tax_percent = apply_filters( 'wcj_line_tax_percent', $line_tax_percent, $the_order );
|
498 |
-
$
|
499 |
break; */
|
500 |
case 'item_weight':
|
501 |
case 'product_weight':
|
502 |
-
$
|
503 |
break;
|
504 |
case 'item_width':
|
505 |
case 'product_width':
|
506 |
-
$
|
507 |
break;
|
508 |
case 'item_height':
|
509 |
case 'product_height':
|
510 |
-
$
|
511 |
break;
|
512 |
case 'item_length':
|
513 |
case 'product_length':
|
514 |
-
$
|
515 |
break;
|
516 |
default:
|
517 |
-
$
|
518 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
519 |
}
|
520 |
}
|
521 |
|
4 |
*
|
5 |
* The WooCommerce Jetpack Order Items Shortcodes class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
96 |
|
97 |
/**
|
98 |
* wcj_price_shortcode.
|
99 |
+
*
|
100 |
+
* @version 2.7.0
|
101 |
*/
|
102 |
private function wcj_price_shortcode( $raw_price, $atts ) {
|
103 |
+
return wcj_price( $atts['price_prefix'] . $raw_price, wcj_get_order_currency( $this->the_order ), $atts['hide_currency'] );
|
104 |
}
|
105 |
|
106 |
/**
|
234 |
/**
|
235 |
* wcj_order_items_table.
|
236 |
*
|
237 |
+
* @version 2.7.0
|
238 |
*/
|
239 |
function wcj_order_items_table( $atts, $content = '' ) {
|
240 |
|
294 |
$item_counter++;
|
295 |
// Columns
|
296 |
foreach( $columns as $column ) {
|
297 |
+
$column_param = '';
|
298 |
if ( false !== ( $pos = strpos( $column, '=' ) ) ) {
|
299 |
$column_param = substr( $column, $pos + 1 );
|
300 |
$column = substr( $column, 0, $pos );
|
301 |
}
|
302 |
+
$cell_data = '';
|
303 |
switch ( $column ) {
|
304 |
case 'item_debug':
|
305 |
case 'debug':
|
306 |
+
$cell_data = print_r( $item, true );
|
307 |
break;
|
308 |
case 'item_regular_price':
|
309 |
case 'product_regular_price':
|
310 |
+
$cell_data = ( is_object( $the_product ) ) ? $this->wcj_price_shortcode( $the_product->get_regular_price(), $atts ) : '';
|
311 |
break;
|
312 |
case 'item_sale_price':
|
313 |
case 'product_sale_price':
|
314 |
+
$cell_data = ( is_object( $the_product ) ) ? $this->wcj_price_shortcode( $the_product->get_sale_price(), $atts ) : '';
|
315 |
break;
|
316 |
case 'item_regular_price_multiply_qty':
|
317 |
case 'product_regular_price_multiply_qty':
|
318 |
+
$cell_data = ( is_object( $the_product ) ) ? $this->wcj_price_shortcode( $the_product->get_regular_price() * $item['qty'], $atts ) : '';
|
319 |
break;
|
320 |
case 'item_sale_price_multiply_qty':
|
321 |
case 'product_sale_price_multiply_qty':
|
322 |
+
$cell_data = ( is_object( $the_product ) ) ? $this->wcj_price_shortcode( $the_product->get_sale_price() * $item['qty'], $atts ) : '';
|
323 |
break;
|
324 |
case 'item_tax_class':
|
325 |
case 'tax_class':
|
326 |
+
$cell_data = ( isset( $item['tax_class'] ) ) ? $this->get_tax_class_name( $item['tax_class'] ) : '';
|
327 |
break;
|
328 |
case 'item_number':
|
329 |
+
$cell_data = $item_counter;
|
330 |
break;
|
331 |
case 'item_meta':
|
332 |
+
$cell_data = wcj_get_order_item_meta_info( $item_id, $item, $this->the_order, false, $the_product );
|
333 |
break;
|
334 |
case 'item_name':
|
335 |
case 'product_name': // "product_" because of possible variation
|
336 |
if ( true === $item['is_custom'] ) {
|
337 |
+
$cell_data = $item['name'];
|
338 |
} else {
|
339 |
$the_item_title = $item['name'];
|
340 |
// Variation (if needed)
|
341 |
if ( 0 != $item['variation_id'] && ! in_array( 'item_variation', $columns ) ) {
|
342 |
$the_item_title .= '<div style="' . $atts['style_item_name_variation'] . '">';
|
343 |
if ( 'yes' === $atts['variation_as_metadata'] ) {
|
344 |
+
$the_item_title .= wcj_get_order_item_meta_info( $item_id, $item, $this->the_order, true, $the_product );
|
345 |
} elseif ( is_object( $the_product ) && $the_product->is_type( 'variation' ) ) {
|
346 |
+
$the_item_title .= str_replace( 'pa_', '', urldecode( wcj_get_product_formatted_variation( $the_product, true ) ) ); // todo - do we need pa_ replacement?
|
347 |
}
|
348 |
$the_item_title .= '</div>';
|
349 |
}
|
352 |
if ( isset( $item['tmcartepo_data'] ) ) {
|
353 |
$options = unserialize( $item['tmcartepo_data'] );
|
354 |
$options_prices = array();
|
355 |
+
// $order_currency = wcj_get_order_currency( $the_order );
|
356 |
foreach ( $options as $option ) {
|
357 |
/* if ( isset( $option['price_per_currency'][ $order_currency ] ) ) {
|
358 |
$options_prices[] = $this->wcj_price_shortcode( $option['price_per_currency'][ $order_currency ], $atts );
|
373 |
}
|
374 |
$the_item_title .= '<div style="' . $atts['style_item_name_variation'] . '">' . implode( '<br>', $options_prices ) . '</div>';
|
375 |
}
|
376 |
+
$cell_data = $the_item_title;
|
377 |
}
|
378 |
break;
|
379 |
case 'item_product_input_fields':
|
380 |
+
$cell_data = wcj_get_product_input_fields( $item );
|
381 |
break;
|
382 |
case 'item_key':
|
383 |
if ( isset( $column_param ) && '' != $column_param && isset( $item[ $column_param ] ) ) {
|
384 |
$maybe_unserialized_value = maybe_unserialize( $item[ $column_param ] );
|
385 |
if ( is_array( $maybe_unserialized_value ) ) {
|
386 |
+
$cell_data = isset( $maybe_unserialized_value['name'] ) ? $maybe_unserialized_value['name'] : '';
|
387 |
} else {
|
388 |
+
$cell_data = $maybe_unserialized_value;
|
389 |
}
|
390 |
} else {
|
391 |
+
$cell_data = '';
|
392 |
}
|
393 |
break;
|
394 |
case 'item_attribute':
|
395 |
case 'product_attribute':
|
396 |
if ( isset( $column_param ) && '' != $column_param && is_object( $the_product ) ) {
|
397 |
+
$cell_data = $the_product->get_attribute( $column_param );
|
398 |
} else {
|
399 |
+
$cell_data = '';
|
400 |
}
|
401 |
break;
|
402 |
case 'item_excerpt':
|
403 |
case 'product_excerpt':
|
404 |
if ( true === $item['is_custom'] ) {
|
405 |
+
$cell_data = '';
|
406 |
} else {
|
407 |
global $post;
|
408 |
$post = get_post( $item['product_id'] );
|
409 |
setup_postdata( $post );
|
410 |
$the_excerpt = get_the_excerpt();
|
411 |
wp_reset_postdata();
|
412 |
+
$cell_data = $the_excerpt;
|
413 |
}
|
414 |
break;
|
415 |
case 'item_short_description':
|
416 |
case 'product_short_description':
|
417 |
+
$cell_data = ( true === $item['is_custom'] ) ? '' : ( WCJ_IS_WC_VERSION_BELOW_3 ? $the_product->post->post_excerpt : $the_product->get_short_description() );
|
418 |
break;
|
419 |
case 'item_variation':
|
420 |
case 'product_variation':
|
421 |
if ( 0 != $item['variation_id'] ) {
|
422 |
if ( 'yes' === $atts['variation_as_metadata'] ) {
|
423 |
+
$cell_data = wcj_get_order_item_meta_info( $item_id, $item, $this->the_order, true, $the_product );
|
424 |
} elseif ( is_object( $the_product ) && $the_product->is_type( 'variation' ) ) {
|
425 |
+
$cell_data = str_replace( 'pa_', '', urldecode( wcj_get_product_formatted_variation( $the_product, true ) ) ); // todo - do we need pa_ replacement?
|
426 |
}
|
427 |
} else {
|
428 |
+
$cell_data = '';
|
429 |
}
|
430 |
break;
|
431 |
case 'item_thumbnail':
|
432 |
case 'product_thumbnail':
|
433 |
+
// $cell_data = $the_product->get_image();
|
434 |
$image_id = ( true === $item['is_custom'] || ! is_object( $the_product ) ) ? 0 : $the_product->get_image_id();
|
435 |
$image_src = ( 0 != $image_id ) ? wp_get_attachment_image_src( $image_id ) : wc_placeholder_img_src();
|
436 |
if ( is_array( $image_src ) ) $image_src = $image_src[0];
|
437 |
$maybe_width = ( 0 != $atts['product_image_width'] ) ? ' width="' . $atts['product_image_width'] . '"' : '';
|
438 |
$maybe_height = ( 0 != $atts['product_image_height'] ) ? ' height="' . $atts['product_image_height'] . '"' : '';
|
439 |
+
$cell_data = '<img src="' . $image_src . '"' . $maybe_width . $maybe_height . '>';
|
440 |
break;
|
441 |
case 'item_sku':
|
442 |
case 'product_sku':
|
443 |
+
$cell_data = ( true === $item['is_custom'] || ! is_object( $the_product ) ) ? '' : $the_product->get_sku();
|
444 |
break;
|
445 |
case 'item_quantity':
|
446 |
+
$cell_data = $atts['quantity_prefix'] . $item['qty'];
|
447 |
break;
|
448 |
case 'item_total_tax_excl':
|
449 |
+
$cell_data = $this->wcj_price_shortcode( $the_order->get_item_total( $item, false, true ), $atts );
|
450 |
break;
|
451 |
case 'item_total_tax_incl':
|
452 |
+
$cell_data = $this->wcj_price_shortcode( $the_order->get_item_total( $item, true, true ), $atts );
|
453 |
break;
|
454 |
case 'item_subtotal_tax_excl':
|
455 |
+
$cell_data = $this->wcj_price_shortcode( $the_order->get_item_subtotal( $item, false, true ), $atts );
|
456 |
break;
|
457 |
case 'item_subtotal_tax_incl':
|
458 |
+
$cell_data = $this->wcj_price_shortcode( $the_order->get_item_subtotal( $item, true, true ), $atts );
|
459 |
break;
|
460 |
case 'item_tax':
|
461 |
+
$cell_data = $this->wcj_price_shortcode( $the_order->get_item_tax( $item, true ), $atts );
|
462 |
break;
|
463 |
case 'line_total_tax_excl':
|
464 |
$line_total_tax_excl = $the_order->get_line_total( $item, false, true );
|
465 |
$line_total_tax_excl = apply_filters( 'wcj_line_total_tax_excl', $line_total_tax_excl, $the_order );
|
466 |
+
$cell_data = $this->wcj_price_shortcode( $line_total_tax_excl, $atts );
|
467 |
break;
|
468 |
case 'line_total_tax_incl':
|
469 |
+
$cell_data = $this->wcj_price_shortcode( $the_order->get_line_total( $item, true, true ), $atts );
|
470 |
break;
|
471 |
case 'line_subtotal_tax_excl':
|
472 |
+
$cell_data = $this->wcj_price_shortcode( $the_order->get_line_subtotal( $item, false, true ), $atts );
|
473 |
break;
|
474 |
case 'line_subtotal_tax_incl':
|
475 |
+
$cell_data = $this->wcj_price_shortcode( $the_order->get_line_subtotal( $item, true, true ), $atts );
|
476 |
break;
|
477 |
case 'line_tax':
|
478 |
$line_tax = $the_order->get_line_tax( $item );
|
479 |
$line_tax = apply_filters( 'wcj_line_tax', $line_tax, $the_order );
|
480 |
+
$cell_data = $this->wcj_price_shortcode( $line_tax, $atts );
|
481 |
break;
|
482 |
case 'line_subtax':
|
483 |
$line_subtax = $the_order->get_line_subtotal( $item, true, false ) - $the_order->get_line_subtotal( $item, false, false );
|
484 |
+
$cell_data = $this->wcj_price_shortcode( $line_subtax, $atts );
|
485 |
break;
|
486 |
case 'item_tax_percent':
|
487 |
case 'line_tax_percent':
|
488 |
$item_total = $the_order->get_item_total( $item, false, /* true */ false );
|
489 |
$item_tax_percent = ( 0 != $item_total ) ? $the_order->get_item_tax( $item, false ) / $item_total * 100 : 0;
|
490 |
$item_tax_percent = apply_filters( 'wcj_line_tax_percent', $item_tax_percent, $the_order );
|
491 |
+
$cell_data = sprintf( $atts['tax_percent_format'], $item_tax_percent );
|
492 |
/* $tax_labels = array();
|
493 |
foreach ( $the_order->get_taxes() as $the_tax ) {
|
494 |
$tax_labels[] = $the_tax['label'];
|
495 |
}
|
496 |
+
$cell_data = implode( ', ', $tax_labels ); */
|
497 |
break;
|
498 |
/* case 'line_tax_percent':
|
499 |
$line_total = $the_order->get_line_total( $item, false, true );
|
500 |
$line_tax_percent = ( 0 != $line_total ) ? $the_order->get_line_tax( $item ) / $line_total * 100 : 0;
|
501 |
$line_tax_percent = apply_filters( 'wcj_line_tax_percent', $line_tax_percent, $the_order );
|
502 |
+
$cell_data = sprintf( $atts['tax_percent_format'], $line_tax_percent );
|
503 |
break; */
|
504 |
case 'item_weight':
|
505 |
case 'product_weight':
|
506 |
+
$cell_data = ( true === $item['is_custom'] || ! is_object( $the_product ) ) ? '' : $the_product->get_weight();
|
507 |
break;
|
508 |
case 'item_width':
|
509 |
case 'product_width':
|
510 |
+
$cell_data = ( true === $item['is_custom'] || ! is_object( $the_product ) ) ? '' : $the_product->get_width();
|
511 |
break;
|
512 |
case 'item_height':
|
513 |
case 'product_height':
|
514 |
+
$cell_data = ( true === $item['is_custom'] || ! is_object( $the_product ) ) ? '' : $the_product->get_height();
|
515 |
break;
|
516 |
case 'item_length':
|
517 |
case 'product_length':
|
518 |
+
$cell_data = ( true === $item['is_custom'] || ! is_object( $the_product ) ) ? '' : $the_product->get_length();
|
519 |
break;
|
520 |
default:
|
521 |
+
$cell_data = ''; // $column;
|
522 |
}
|
523 |
+
$data[ $item_counter ][] = apply_filters( 'wcj_pdf_invoicing_cell_data', $cell_data, array(
|
524 |
+
'column' => $column,
|
525 |
+
'column_param' => $column_param,
|
526 |
+
'item' => $item,
|
527 |
+
'item_id' => $item_id,
|
528 |
+
'item_counter' => $item_counter,
|
529 |
+
'product' => $the_product,
|
530 |
+
) );
|
531 |
}
|
532 |
}
|
533 |
|
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 |
|
@@ -17,12 +17,13 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
-
* @version 2.
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
24 |
$this->the_shortcodes = array(
|
25 |
'wcj_order_status',
|
|
|
26 |
'wcj_order_date',
|
27 |
'wcj_order_time',
|
28 |
'wcj_order_number',
|
@@ -82,29 +83,31 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
82 |
/**
|
83 |
* add_extra_atts.
|
84 |
*
|
85 |
-
* @version 2.
|
86 |
*/
|
87 |
function add_extra_atts( $atts ) {
|
88 |
$modified_atts = array_merge( array(
|
89 |
-
'order_id'
|
90 |
-
'hide_currency'
|
91 |
-
'excl_tax'
|
92 |
-
'date_format'
|
93 |
-
'time_format'
|
94 |
-
'hide_if_zero'
|
95 |
-
'field_id'
|
96 |
-
'name'
|
97 |
-
'round_by_line'
|
98 |
-
'whole'
|
99 |
-
'decimal'
|
100 |
-
'precision'
|
101 |
-
'lang'
|
102 |
-
'unique_only'
|
103 |
-
'function_name'
|
104 |
-
'sep'
|
105 |
-
'item_number'
|
106 |
-
'field'
|
107 |
-
'order_user_roles'
|
|
|
|
|
108 |
), $atts );
|
109 |
|
110 |
return $modified_atts;
|
@@ -133,12 +136,12 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
133 |
/**
|
134 |
* extra_check.
|
135 |
*
|
136 |
-
* @version 2.
|
137 |
* @since 2.6.0
|
138 |
*/
|
139 |
function extra_check( $atts ) {
|
140 |
if ( '' != $atts['order_user_roles'] ) {
|
141 |
-
$user_info = get_userdata( $this->the_order->customer_user );
|
142 |
$user_roles = $user_info->roles;
|
143 |
$user_roles_to_check = explode( ',', $atts['order_user_roles'] );
|
144 |
foreach ( $user_roles_to_check as $user_role_to_check ) {
|
@@ -153,30 +156,32 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
153 |
|
154 |
/**
|
155 |
* wcj_price_shortcode.
|
|
|
|
|
156 |
*/
|
157 |
private function wcj_price_shortcode( $raw_price, $atts ) {
|
158 |
-
return ( 'yes' === $atts['hide_if_zero'] && 0 == $raw_price ) ? '' : wcj_price( $raw_price, $this->the_order
|
159 |
}
|
160 |
|
161 |
/**
|
162 |
* wcj_order_customer_user_roles.
|
163 |
*
|
164 |
-
* @version 2.
|
165 |
* @since 2.6.0
|
166 |
*/
|
167 |
function wcj_order_customer_user_roles( $atts ) {
|
168 |
-
$user_info = get_userdata( $this->the_order->customer_user );
|
169 |
return implode( ', ', $user_info->roles );
|
170 |
}
|
171 |
|
172 |
/**
|
173 |
* wcj_order_customer_user.
|
174 |
*
|
175 |
-
* @version 2.
|
176 |
* @since 2.6.0
|
177 |
*/
|
178 |
function wcj_order_customer_user( $atts ) {
|
179 |
-
return $this->the_order->customer_user;
|
180 |
}
|
181 |
|
182 |
/**
|
@@ -317,10 +322,11 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
317 |
|
318 |
/**
|
319 |
* wcj_order_payment_method.
|
|
|
|
|
320 |
*/
|
321 |
function wcj_order_payment_method( $atts ) {
|
322 |
-
|
323 |
-
return get_post_meta( $this->the_order->id, '_payment_method_title', true );
|
324 |
}
|
325 |
|
326 |
/**
|
@@ -436,16 +442,20 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
436 |
|
437 |
/**
|
438 |
* wcj_order_customer_note.
|
|
|
|
|
439 |
*/
|
440 |
function wcj_order_customer_note( $atts ) {
|
441 |
-
return $this->the_order->customer_note;
|
442 |
}
|
443 |
|
444 |
/**
|
445 |
* wcj_order_billing_phone.
|
|
|
|
|
446 |
*/
|
447 |
function wcj_order_billing_phone( $atts ) {
|
448 |
-
return $this->the_order->billing_phone;
|
449 |
}
|
450 |
|
451 |
/**
|
@@ -493,14 +503,17 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
493 |
/**
|
494 |
* wcj_order_items_meta.
|
495 |
*
|
496 |
-
* @version 2.
|
497 |
* @since 2.5.3
|
498 |
*/
|
499 |
function wcj_order_items_meta( $atts ) {
|
|
|
|
|
|
|
500 |
$items_metas = array();
|
501 |
$the_items = $this->the_order->get_items();
|
502 |
foreach ( $the_items as $item_id => $item ) {
|
503 |
-
$the_meta = $this->the_order->get_item_meta( $item_id, $atts['meta_key'], true );
|
504 |
if ( '' != $the_meta ) {
|
505 |
$items_metas[] = $the_meta;
|
506 |
}
|
@@ -519,11 +532,11 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
519 |
/**
|
520 |
* wcj_order_meta.
|
521 |
*
|
522 |
-
* @version 2.
|
523 |
* @since 2.2.9
|
524 |
*/
|
525 |
function wcj_order_meta( $atts ) {
|
526 |
-
return get_post_meta( $this->the_order
|
527 |
}
|
528 |
|
529 |
/**
|
@@ -571,18 +584,33 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
571 |
return $this->the_order->get_status();
|
572 |
}
|
573 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
574 |
/**
|
575 |
* wcj_order_date.
|
|
|
|
|
576 |
*/
|
577 |
function wcj_order_date( $atts ) {
|
578 |
-
return date_i18n( $atts['date_format'], strtotime( $this->the_order->order_date ) );
|
579 |
}
|
580 |
|
581 |
/**
|
582 |
* wcj_order_time.
|
|
|
|
|
583 |
*/
|
584 |
function wcj_order_time( $atts ) {
|
585 |
-
return date_i18n( $atts['time_format'], strtotime( $this->the_order->order_date ) );
|
586 |
}
|
587 |
|
588 |
/**
|
@@ -817,9 +845,11 @@ class WCJ_Orders_Shortcodes extends WCJ_Shortcodes {
|
|
817 |
|
818 |
/**
|
819 |
* wcj_order_currency.
|
|
|
|
|
820 |
*/
|
821 |
function wcj_order_currency( $atts ) {
|
822 |
-
return $this->the_order
|
823 |
}
|
824 |
|
825 |
/**
|
4 |
*
|
5 |
* The WooCommerce Jetpack Orders Shortcodes class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
24 |
$this->the_shortcodes = array(
|
25 |
'wcj_order_status',
|
26 |
+
'wcj_order_status_label',
|
27 |
'wcj_order_date',
|
28 |
'wcj_order_time',
|
29 |
'wcj_order_number',
|
83 |
/**
|
84 |
* add_extra_atts.
|
85 |
*
|
86 |
+
* @version 2.7.0
|
87 |
*/
|
88 |
function add_extra_atts( $atts ) {
|
89 |
$modified_atts = array_merge( array(
|
90 |
+
'order_id' => 0,
|
91 |
+
'hide_currency' => 'no',
|
92 |
+
'excl_tax' => 'no',
|
93 |
+
'date_format' => get_option( 'date_format' ),
|
94 |
+
'time_format' => get_option( 'time_format' ),
|
95 |
+
'hide_if_zero' => 'no',
|
96 |
+
'field_id' => '',
|
97 |
+
'name' => '',
|
98 |
+
'round_by_line' => 'no',
|
99 |
+
'whole' => __( 'Dollars', 'woocommerce-jetpack' ),
|
100 |
+
'decimal' => __( 'Cents', 'woocommerce-jetpack' ),
|
101 |
+
'precision' => get_option( 'woocommerce_price_num_decimals', 2 ),
|
102 |
+
'lang' => 'EN',
|
103 |
+
'unique_only' => 'no',
|
104 |
+
'function_name' => '',
|
105 |
+
'sep' => ', ',
|
106 |
+
'item_number' => 'all',
|
107 |
+
'field' => 'name',
|
108 |
+
'order_user_roles' => '',
|
109 |
+
'meta_key' => '',
|
110 |
+
'tax_class' => '',
|
111 |
), $atts );
|
112 |
|
113 |
return $modified_atts;
|
136 |
/**
|
137 |
* extra_check.
|
138 |
*
|
139 |
+
* @version 2.7.0
|
140 |
* @since 2.6.0
|
141 |
*/
|
142 |
function extra_check( $atts ) {
|
143 |
if ( '' != $atts['order_user_roles'] ) {
|
144 |
+
$user_info = get_userdata( ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_order->customer_user : $this->the_order->get_customer_id() ) );
|
145 |
$user_roles = $user_info->roles;
|
146 |
$user_roles_to_check = explode( ',', $atts['order_user_roles'] );
|
147 |
foreach ( $user_roles_to_check as $user_role_to_check ) {
|
156 |
|
157 |
/**
|
158 |
* wcj_price_shortcode.
|
159 |
+
*
|
160 |
+
* @version 2.7.0
|
161 |
*/
|
162 |
private function wcj_price_shortcode( $raw_price, $atts ) {
|
163 |
+
return ( 'yes' === $atts['hide_if_zero'] && 0 == $raw_price ) ? '' : wcj_price( $raw_price, wcj_get_order_currency( $this->the_order ), $atts['hide_currency'] );
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
* wcj_order_customer_user_roles.
|
168 |
*
|
169 |
+
* @version 2.7.0
|
170 |
* @since 2.6.0
|
171 |
*/
|
172 |
function wcj_order_customer_user_roles( $atts ) {
|
173 |
+
$user_info = get_userdata( ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_order->customer_user : $this->the_order->get_customer_id() ) );
|
174 |
return implode( ', ', $user_info->roles );
|
175 |
}
|
176 |
|
177 |
/**
|
178 |
* wcj_order_customer_user.
|
179 |
*
|
180 |
+
* @version 2.7.0
|
181 |
* @since 2.6.0
|
182 |
*/
|
183 |
function wcj_order_customer_user( $atts ) {
|
184 |
+
return ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_order->customer_user : $this->the_order->get_customer_id() );
|
185 |
}
|
186 |
|
187 |
/**
|
322 |
|
323 |
/**
|
324 |
* wcj_order_payment_method.
|
325 |
+
*
|
326 |
+
* @version 2.7.0
|
327 |
*/
|
328 |
function wcj_order_payment_method( $atts ) {
|
329 |
+
return get_post_meta( wcj_get_order_id( $this->the_order ), '_payment_method_title', true );
|
|
|
330 |
}
|
331 |
|
332 |
/**
|
442 |
|
443 |
/**
|
444 |
* wcj_order_customer_note.
|
445 |
+
*
|
446 |
+
* @version 2.7.0
|
447 |
*/
|
448 |
function wcj_order_customer_note( $atts ) {
|
449 |
+
return ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_order->customer_note : $this->the_order->get_customer_note() );
|
450 |
}
|
451 |
|
452 |
/**
|
453 |
* wcj_order_billing_phone.
|
454 |
+
*
|
455 |
+
* @version 2.7.0
|
456 |
*/
|
457 |
function wcj_order_billing_phone( $atts ) {
|
458 |
+
return ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_order->billing_phone : $this->the_order->get_billing_phone() );
|
459 |
}
|
460 |
|
461 |
/**
|
503 |
/**
|
504 |
* wcj_order_items_meta.
|
505 |
*
|
506 |
+
* @version 2.7.0
|
507 |
* @since 2.5.3
|
508 |
*/
|
509 |
function wcj_order_items_meta( $atts ) {
|
510 |
+
if ( '' === $atts['meta_key'] ) {
|
511 |
+
return '';
|
512 |
+
}
|
513 |
$items_metas = array();
|
514 |
$the_items = $this->the_order->get_items();
|
515 |
foreach ( $the_items as $item_id => $item ) {
|
516 |
+
$the_meta = ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_order->get_item_meta( $item_id, $atts['meta_key'], true ) : wc_get_order_item_meta( $item_id, $atts['meta_key'], true ) );
|
517 |
if ( '' != $the_meta ) {
|
518 |
$items_metas[] = $the_meta;
|
519 |
}
|
532 |
/**
|
533 |
* wcj_order_meta.
|
534 |
*
|
535 |
+
* @version 2.7.0
|
536 |
* @since 2.2.9
|
537 |
*/
|
538 |
function wcj_order_meta( $atts ) {
|
539 |
+
return ( '' != $atts['meta_key'] ? get_post_meta( wcj_get_order_id( $this->the_order ), $atts['meta_key'], true ) : '' );
|
540 |
}
|
541 |
|
542 |
/**
|
584 |
return $this->the_order->get_status();
|
585 |
}
|
586 |
|
587 |
+
/**
|
588 |
+
* wcj_order_status_label.
|
589 |
+
*
|
590 |
+
* @version 2.7.0
|
591 |
+
* @since 2.7.0
|
592 |
+
*/
|
593 |
+
function wcj_order_status_label( $atts ) {
|
594 |
+
$status_object = get_post_status_object( 'wc-' . $this->the_order->get_status() );
|
595 |
+
return ( isset( $status_object->label ) ) ? $status_object->label : '';
|
596 |
+
}
|
597 |
+
|
598 |
/**
|
599 |
* wcj_order_date.
|
600 |
+
*
|
601 |
+
* @version 2.7.0
|
602 |
*/
|
603 |
function wcj_order_date( $atts ) {
|
604 |
+
return date_i18n( $atts['date_format'], strtotime( ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_order->order_date : $this->the_order->get_date_created() ) ) );
|
605 |
}
|
606 |
|
607 |
/**
|
608 |
* wcj_order_time.
|
609 |
+
*
|
610 |
+
* @version 2.7.0
|
611 |
*/
|
612 |
function wcj_order_time( $atts ) {
|
613 |
+
return date_i18n( $atts['time_format'], strtotime( ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_order->order_date : $this->the_order->get_date_created() ) ) );
|
614 |
}
|
615 |
|
616 |
/**
|
845 |
|
846 |
/**
|
847 |
* wcj_order_currency.
|
848 |
+
*
|
849 |
+
* @version 2.7.0
|
850 |
*/
|
851 |
function wcj_order_currency( $atts ) {
|
852 |
+
return wcj_get_order_currency( $this->the_order );
|
853 |
}
|
854 |
|
855 |
/**
|
includes/shortcodes/class-wcj-products-crowdfunding-shortcodes.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The WooCommerce Jetpack Products Crowdfunding Shortcodes class.
|
6 |
*
|
7 |
-
* @version 2.
|
8 |
* @since 2.5.4
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
@@ -78,7 +78,7 @@ class WCJ_Products_Crowdfunding_Shortcodes extends WCJ_Shortcodes {
|
|
78 |
/**
|
79 |
* get_product_orders_data.
|
80 |
*
|
81 |
-
* @version 2.
|
82 |
* @since 2.2.6
|
83 |
*/
|
84 |
function get_product_orders_data( $return_value = 'total_orders', $atts ) {
|
@@ -86,17 +86,17 @@ class WCJ_Products_Crowdfunding_Shortcodes extends WCJ_Shortcodes {
|
|
86 |
if ( $this->the_product->is_type( 'grouped' ) ) {
|
87 |
$product_ids = $this->the_product->get_children();
|
88 |
} else {
|
89 |
-
$product_ids = array( $this->the_product
|
90 |
}
|
91 |
global $woocommerce_loop, $post;
|
92 |
$saved_wc_loop = $woocommerce_loop;
|
93 |
$saved_post = $post;
|
94 |
-
$total_orders
|
95 |
-
$total_qty
|
96 |
-
$total_sum
|
97 |
-
$offset
|
98 |
-
$block_size
|
99 |
-
$date_query_after = get_post_meta( $this->the_product
|
100 |
while( true ) {
|
101 |
$args = array(
|
102 |
'post_type' => 'shop_order',
|
@@ -189,21 +189,21 @@ class WCJ_Products_Crowdfunding_Shortcodes extends WCJ_Shortcodes {
|
|
189 |
/**
|
190 |
* wcj_product_crowdfunding_startdate.
|
191 |
*
|
192 |
-
* @version 2.
|
193 |
* @since 2.2.6
|
194 |
*/
|
195 |
function wcj_product_crowdfunding_startdate( $atts ) {
|
196 |
-
return date_i18n( get_option( 'date_format' ), strtotime( get_post_meta( $this->the_product
|
197 |
}
|
198 |
|
199 |
/**
|
200 |
* wcj_product_crowdfunding_deadline.
|
201 |
*
|
202 |
-
* @version 2.
|
203 |
* @since 2.2.6
|
204 |
*/
|
205 |
function wcj_product_crowdfunding_deadline( $atts ) {
|
206 |
-
return date_i18n( get_option( 'date_format' ), strtotime( get_post_meta( $this->the_product
|
207 |
}
|
208 |
|
209 |
/**
|
@@ -238,12 +238,12 @@ class WCJ_Products_Crowdfunding_Shortcodes extends WCJ_Shortcodes {
|
|
238 |
/**
|
239 |
* wcj_product_crowdfunding_time_remaining_progress_bar.
|
240 |
*
|
241 |
-
* @version 2.
|
242 |
* @since 2.5.0
|
243 |
*/
|
244 |
function wcj_product_crowdfunding_time_remaining_progress_bar( $atts ) {
|
245 |
-
$deadline_seconds = strtotime( get_post_meta( $this->the_product
|
246 |
-
$startdate_seconds = strtotime( get_post_meta( $this->the_product
|
247 |
|
248 |
$seconds_remaining = $deadline_seconds - current_time( 'timestamp' );
|
249 |
$seconds_total = $deadline_seconds - $startdate_seconds;
|
@@ -256,22 +256,22 @@ class WCJ_Products_Crowdfunding_Shortcodes extends WCJ_Shortcodes {
|
|
256 |
/**
|
257 |
* wcj_product_crowdfunding_goal.
|
258 |
*
|
259 |
-
* @version 2.
|
260 |
* @since 2.2.6
|
261 |
*/
|
262 |
function wcj_product_crowdfunding_goal( $atts ) {
|
263 |
-
$goal = get_post_meta( $this->the_product
|
264 |
return ( 'yes' === $atts['hide_currency'] ) ? $goal : wc_price( $goal );
|
265 |
}
|
266 |
|
267 |
/**
|
268 |
* wcj_product_crowdfunding_goal_remaining.
|
269 |
*
|
270 |
-
* @version 2.
|
271 |
* @since 2.2.6
|
272 |
*/
|
273 |
function wcj_product_crowdfunding_goal_remaining( $atts ) {
|
274 |
-
$goal = get_post_meta( $this->the_product
|
275 |
$total_orders_sum = $this->get_product_orders_data( 'orders_sum', $atts );
|
276 |
$goal_remaining = $goal - $total_orders_sum;
|
277 |
return ( 'yes' === $atts['hide_currency'] ) ? $goal_remaining : wc_price( $goal_remaining );
|
@@ -280,12 +280,12 @@ class WCJ_Products_Crowdfunding_Shortcodes extends WCJ_Shortcodes {
|
|
280 |
/**
|
281 |
* wcj_product_crowdfunding_goal_remaining_progress_bar.
|
282 |
*
|
283 |
-
* @version 2.
|
284 |
* @since 2.5.0
|
285 |
*/
|
286 |
function wcj_product_crowdfunding_goal_remaining_progress_bar( $atts ) {
|
287 |
$current_value = $this->get_product_orders_data( 'orders_sum', $atts );
|
288 |
-
$max_value = get_post_meta( $this->the_product
|
289 |
return '<progress value="' . $current_value . '" max="' . $max_value . '"></progress>';
|
290 |
}
|
291 |
|
4 |
*
|
5 |
* The WooCommerce Jetpack Products Crowdfunding Shortcodes class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @since 2.5.4
|
9 |
* @author Algoritmika Ltd.
|
10 |
*/
|
78 |
/**
|
79 |
* get_product_orders_data.
|
80 |
*
|
81 |
+
* @version 2.7.0
|
82 |
* @since 2.2.6
|
83 |
*/
|
84 |
function get_product_orders_data( $return_value = 'total_orders', $atts ) {
|
86 |
if ( $this->the_product->is_type( 'grouped' ) ) {
|
87 |
$product_ids = $this->the_product->get_children();
|
88 |
} else {
|
89 |
+
$product_ids = array( wcj_get_product_id_or_variation_parent_id( $this->the_product ) );
|
90 |
}
|
91 |
global $woocommerce_loop, $post;
|
92 |
$saved_wc_loop = $woocommerce_loop;
|
93 |
$saved_post = $post;
|
94 |
+
$total_orders = 0;
|
95 |
+
$total_qty = 0;
|
96 |
+
$total_sum = 0;
|
97 |
+
$offset = 0;
|
98 |
+
$block_size = 256;
|
99 |
+
$date_query_after = get_post_meta( wcj_get_product_id_or_variation_parent_id( $this->the_product ), '_' . 'wcj_crowdfunding_startdate', true );
|
100 |
while( true ) {
|
101 |
$args = array(
|
102 |
'post_type' => 'shop_order',
|
189 |
/**
|
190 |
* wcj_product_crowdfunding_startdate.
|
191 |
*
|
192 |
+
* @version 2.7.0
|
193 |
* @since 2.2.6
|
194 |
*/
|
195 |
function wcj_product_crowdfunding_startdate( $atts ) {
|
196 |
+
return date_i18n( get_option( 'date_format' ), strtotime( get_post_meta( wcj_get_product_id_or_variation_parent_id( $this->the_product ), '_' . 'wcj_crowdfunding_startdate', true ) ) );
|
197 |
}
|
198 |
|
199 |
/**
|
200 |
* wcj_product_crowdfunding_deadline.
|
201 |
*
|
202 |
+
* @version 2.7.0
|
203 |
* @since 2.2.6
|
204 |
*/
|
205 |
function wcj_product_crowdfunding_deadline( $atts ) {
|
206 |
+
return date_i18n( get_option( 'date_format' ), strtotime( get_post_meta( wcj_get_product_id_or_variation_parent_id( $this->the_product ), '_' . 'wcj_crowdfunding_deadline', true ) ) );
|
207 |
}
|
208 |
|
209 |
/**
|
238 |
/**
|
239 |
* wcj_product_crowdfunding_time_remaining_progress_bar.
|
240 |
*
|
241 |
+
* @version 2.7.0
|
242 |
* @since 2.5.0
|
243 |
*/
|
244 |
function wcj_product_crowdfunding_time_remaining_progress_bar( $atts ) {
|
245 |
+
$deadline_seconds = strtotime( get_post_meta( wcj_get_product_id_or_variation_parent_id( $this->the_product ), '_' . 'wcj_crowdfunding_deadline', true ) );
|
246 |
+
$startdate_seconds = strtotime( get_post_meta( wcj_get_product_id_or_variation_parent_id( $this->the_product ), '_' . 'wcj_crowdfunding_startdate', true ) );
|
247 |
|
248 |
$seconds_remaining = $deadline_seconds - current_time( 'timestamp' );
|
249 |
$seconds_total = $deadline_seconds - $startdate_seconds;
|
256 |
/**
|
257 |
* wcj_product_crowdfunding_goal.
|
258 |
*
|
259 |
+
* @version 2.7.0
|
260 |
* @since 2.2.6
|
261 |
*/
|
262 |
function wcj_product_crowdfunding_goal( $atts ) {
|
263 |
+
$goal = get_post_meta( wcj_get_product_id_or_variation_parent_id( $this->the_product ), '_' . 'wcj_crowdfunding_goal_sum', true );
|
264 |
return ( 'yes' === $atts['hide_currency'] ) ? $goal : wc_price( $goal );
|
265 |
}
|
266 |
|
267 |
/**
|
268 |
* wcj_product_crowdfunding_goal_remaining.
|
269 |
*
|
270 |
+
* @version 2.7.0
|
271 |
* @since 2.2.6
|
272 |
*/
|
273 |
function wcj_product_crowdfunding_goal_remaining( $atts ) {
|
274 |
+
$goal = get_post_meta( wcj_get_product_id_or_variation_parent_id( $this->the_product ), '_' . 'wcj_crowdfunding_goal_sum', true );
|
275 |
$total_orders_sum = $this->get_product_orders_data( 'orders_sum', $atts );
|
276 |
$goal_remaining = $goal - $total_orders_sum;
|
277 |
return ( 'yes' === $atts['hide_currency'] ) ? $goal_remaining : wc_price( $goal_remaining );
|
280 |
/**
|
281 |
* wcj_product_crowdfunding_goal_remaining_progress_bar.
|
282 |
*
|
283 |
+
* @version 2.7.0
|
284 |
* @since 2.5.0
|
285 |
*/
|
286 |
function wcj_product_crowdfunding_goal_remaining_progress_bar( $atts ) {
|
287 |
$current_value = $this->get_product_orders_data( 'orders_sum', $atts );
|
288 |
+
$max_value = get_post_meta( wcj_get_product_id_or_variation_parent_id( $this->the_product ), '_' . 'wcj_crowdfunding_goal_sum', true );
|
289 |
return '<progress value="' . $current_value . '" max="' . $max_value . '"></progress>';
|
290 |
}
|
291 |
|
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 |
|
@@ -28,6 +28,7 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
28 |
'wcj_product_author_link_all_posts',
|
29 |
'wcj_product_image',
|
30 |
'wcj_product_image_url',
|
|
|
31 |
'wcj_product_url',
|
32 |
'wcj_product_price',
|
33 |
'wcj_product_wholesale_price_table', // WooCommerce Wholesale Price
|
@@ -69,6 +70,7 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
69 |
$this->the_atts = array(
|
70 |
'product_id' => 0,
|
71 |
'image_size' => 'shop_thumbnail',
|
|
|
72 |
'multiply_by' => '',
|
73 |
'hide_currency' => 'no',
|
74 |
'excerpt_length' => 0, // deprecated
|
@@ -310,7 +312,7 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
310 |
/**
|
311 |
* get_product_price_including_or_excluding_tax.
|
312 |
*
|
313 |
-
* @version 2.
|
314 |
* @since 2.5.7
|
315 |
*/
|
316 |
function get_product_price_including_or_excluding_tax( $atts, $including_or_excluding ) {
|
@@ -324,11 +326,11 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
324 |
$min_variation_product = wc_get_product( $min_product_id );
|
325 |
$max_variation_product = wc_get_product( $max_product_id );
|
326 |
if ( 'including' === $including_or_excluding ) {
|
327 |
-
$min = $min_variation_product->get_price_including_tax();
|
328 |
-
$max = $max_variation_product->get_price_including_tax();
|
329 |
} else { // 'excluding'
|
330 |
-
$min = $min_variation_product->get_price_excluding_tax();
|
331 |
-
$max = $max_variation_product->get_price_excluding_tax();
|
332 |
}
|
333 |
if ( 0 != $atts['multiply_by'] && is_numeric( $atts['multiply_by'] ) ) {
|
334 |
$min = $min * $atts['multiply_by'];
|
@@ -343,9 +345,9 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
343 |
} else {
|
344 |
// Simple etc.
|
345 |
if ( 'including' === $including_or_excluding ) {
|
346 |
-
$the_price = $this->the_product->get_price_including_tax();
|
347 |
} else { // 'excluding'
|
348 |
-
$the_price = $this->the_product->get_price_excluding_tax();
|
349 |
}
|
350 |
if ( 0 != $atts['multiply_by'] && is_numeric( $atts['multiply_by'] ) ) {
|
351 |
$the_price = $the_price * $atts['multiply_by'];
|
@@ -395,13 +397,17 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
395 |
/**
|
396 |
* wcj_product_list_attributes.
|
397 |
*
|
398 |
-
* @version 2.
|
399 |
* @since 2.4.0
|
400 |
*/
|
401 |
function wcj_product_list_attributes( $atts ) {
|
402 |
if ( $this->the_product->has_attributes() ) {
|
403 |
ob_start();
|
404 |
-
|
|
|
|
|
|
|
|
|
405 |
return ob_get_clean();
|
406 |
}
|
407 |
return '';
|
@@ -441,11 +447,12 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
441 |
/**
|
442 |
* wcj_product_categories.
|
443 |
*
|
444 |
-
* @version 2.
|
445 |
* @since 2.4.0
|
446 |
*/
|
447 |
function wcj_product_categories( $atts ) {
|
448 |
-
return $this->the_product->get_categories();
|
|
|
449 |
}
|
450 |
|
451 |
/**
|
@@ -500,11 +507,11 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
500 |
/**
|
501 |
* wcj_product_total_sales.
|
502 |
*
|
503 |
-
* @version 2.
|
504 |
* @since 2.2.6
|
505 |
*/
|
506 |
function wcj_product_total_sales( $atts ) {
|
507 |
-
$product_custom_fields = get_post_custom( $this->the_product
|
508 |
$total_sales = ( isset( $product_custom_fields['total_sales'][0] ) ) ? $product_custom_fields['total_sales'][0] : '';
|
509 |
if ( 0 != $atts['offset'] ) {
|
510 |
$total_sales += $atts['offset'];
|
@@ -515,22 +522,25 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
515 |
/**
|
516 |
* wcj_product_purchase_price.
|
517 |
*
|
518 |
-
* @
|
|
|
|
|
519 |
*/
|
520 |
function wcj_product_purchase_price( $atts ) {
|
521 |
-
$purchase_price = wc_get_product_purchase_price( $the_product
|
522 |
return wc_price( $purchase_price );
|
523 |
}
|
524 |
|
525 |
/**
|
526 |
* wcj_product_tags.
|
527 |
*
|
528 |
-
* @
|
|
|
529 |
*/
|
530 |
function wcj_product_tags( $atts ) {
|
531 |
|
532 |
if ( 'yes' === $atts['add_links'] ) {
|
533 |
-
return $this->the_product->get_tags( $atts['sep'] );
|
534 |
}
|
535 |
|
536 |
$product_tags = get_the_terms( $atts['product_id'], 'product_tag' );
|
@@ -589,11 +599,14 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
589 |
/**
|
590 |
* Get product meta.
|
591 |
*
|
592 |
-
* @version 2.
|
593 |
* @since 2.5.7
|
594 |
* @return string
|
595 |
*/
|
596 |
function wcj_product_meta( $atts ) {
|
|
|
|
|
|
|
597 |
return get_post_meta( $atts['product_id'], $atts['name'], true );
|
598 |
}
|
599 |
|
@@ -640,11 +653,13 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
640 |
/**
|
641 |
* wcj_product_wholesale_price_table.
|
642 |
*
|
643 |
-
* @version 2.
|
644 |
*/
|
645 |
function wcj_product_wholesale_price_table( $atts ) {
|
646 |
|
647 |
-
|
|
|
|
|
648 |
|
649 |
// Check for user role options
|
650 |
$role_option_name_addon = '';
|
@@ -660,10 +675,10 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
660 |
}
|
661 |
|
662 |
$wholesale_price_levels = array();
|
663 |
-
if ( wcj_is_product_wholesale_enabled_per_product( $
|
664 |
-
for ( $i = 1; $i <= apply_filters( 'booster_get_option', 1, get_post_meta( $
|
665 |
-
$level_qty = get_post_meta( $
|
666 |
-
$discount = get_post_meta( $
|
667 |
$wholesale_price_levels[] = array( 'quantity' => $level_qty, 'discount' => $discount, );
|
668 |
}
|
669 |
} else {
|
@@ -674,8 +689,8 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
674 |
}
|
675 |
}
|
676 |
|
677 |
-
$discount_type = ( wcj_is_product_wholesale_enabled_per_product( $
|
678 |
-
? get_post_meta( $
|
679 |
: get_option( 'wcj_wholesale_price_discount_type', 'percent' );
|
680 |
|
681 |
$data_qty = array();
|
@@ -699,9 +714,8 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
699 |
$max_key = key( $prices['price'] );
|
700 |
$min_product = wc_get_product( $min_key );
|
701 |
$max_product = wc_get_product( $max_key );
|
702 |
-
$
|
703 |
-
$
|
704 |
-
$max = $max_product->$get_price_method();
|
705 |
$min_original = $min;
|
706 |
$max_original = $max;
|
707 |
if ( 'fixed' === $discount_type ) {
|
@@ -722,8 +736,7 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
722 |
$the_price_original = ( $min_original != $max_original ) ? sprintf( '%s-%s', $min_original, $max_original ) : $min_original;
|
723 |
} else {
|
724 |
// Simple etc.
|
725 |
-
$
|
726 |
-
$the_price = $this->the_product->$get_price_method();
|
727 |
$the_price = apply_filters( 'wcj_product_wholesale_price_table_price_before', $the_price, $this->the_product );
|
728 |
$the_price_original = $the_price;
|
729 |
if ( 'price_directly' === $discount_type ) {
|
@@ -793,12 +806,12 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
793 |
/**
|
794 |
* Get product short description.
|
795 |
*
|
796 |
-
* @version 2.
|
797 |
* @since 2.5.7
|
798 |
* @return string
|
799 |
*/
|
800 |
function wcj_product_short_description( $atts ) {
|
801 |
-
$short_description = $this->the_product->post->post_excerpt;
|
802 |
if ( 'yes' === $atts['apply_filters'] ) {
|
803 |
apply_filters( 'woocommerce_short_description', $short_description );
|
804 |
}
|
@@ -880,11 +893,28 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
880 |
/**
|
881 |
* wcj_product_image_url.
|
882 |
*
|
883 |
-
* @version 2.
|
884 |
* @since 2.5.7
|
885 |
*/
|
886 |
function wcj_product_image_url( $atts ) {
|
887 |
-
return wcj_get_product_image_url( $this->the_product
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
888 |
}
|
889 |
|
890 |
/**
|
@@ -900,11 +930,11 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
900 |
/**
|
901 |
* wcj_product_categories_names.
|
902 |
*
|
903 |
-
* @version 2.
|
904 |
* @since 2.5.7
|
905 |
*/
|
906 |
function wcj_product_categories_names( $atts ) {
|
907 |
-
$product_cats = get_the_terms( $this->the_product
|
908 |
$cats = array();
|
909 |
if ( ! empty( $product_cats ) && is_array( $product_cats ) ) {
|
910 |
foreach ( $product_cats as $product_cat ) {
|
@@ -917,11 +947,11 @@ class WCJ_Products_Shortcodes extends WCJ_Shortcodes {
|
|
917 |
/**
|
918 |
* wcj_product_categories_urls.
|
919 |
*
|
920 |
-
* @version 2.
|
921 |
* @since 2.5.7
|
922 |
*/
|
923 |
function wcj_product_categories_urls( $atts ) {
|
924 |
-
$product_cats = get_the_terms( $this->the_product
|
925 |
$cats = array();
|
926 |
if ( ! empty( $product_cats ) && is_array( $product_cats ) ) {
|
927 |
foreach ( $product_cats as $product_cat ) {
|
4 |
*
|
5 |
* The WooCommerce Jetpack Products Shortcodes class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
17 |
/**
|
18 |
* Constructor.
|
19 |
*
|
20 |
+
* @version 2.7.0
|
21 |
*/
|
22 |
public function __construct() {
|
23 |
|
28 |
'wcj_product_author_link_all_posts',
|
29 |
'wcj_product_image',
|
30 |
'wcj_product_image_url',
|
31 |
+
'wcj_product_gallery_image_url',
|
32 |
'wcj_product_url',
|
33 |
'wcj_product_price',
|
34 |
'wcj_product_wholesale_price_table', // WooCommerce Wholesale Price
|
70 |
$this->the_atts = array(
|
71 |
'product_id' => 0,
|
72 |
'image_size' => 'shop_thumbnail',
|
73 |
+
'image_nr' => 1,
|
74 |
'multiply_by' => '',
|
75 |
'hide_currency' => 'no',
|
76 |
'excerpt_length' => 0, // deprecated
|
312 |
/**
|
313 |
* get_product_price_including_or_excluding_tax.
|
314 |
*
|
315 |
+
* @version 2.7.0
|
316 |
* @since 2.5.7
|
317 |
*/
|
318 |
function get_product_price_including_or_excluding_tax( $atts, $including_or_excluding ) {
|
326 |
$min_variation_product = wc_get_product( $min_product_id );
|
327 |
$max_variation_product = wc_get_product( $max_product_id );
|
328 |
if ( 'including' === $including_or_excluding ) {
|
329 |
+
$min = ( WCJ_IS_WC_VERSION_BELOW_3 ? $min_variation_product->get_price_including_tax() : wc_get_price_including_tax( $min_variation_product ) );
|
330 |
+
$max = ( WCJ_IS_WC_VERSION_BELOW_3 ? $max_variation_product->get_price_including_tax() : wc_get_price_including_tax( $max_variation_product ) );
|
331 |
} else { // 'excluding'
|
332 |
+
$min = ( WCJ_IS_WC_VERSION_BELOW_3 ? $min_variation_product->get_price_excluding_tax() : wc_get_price_excluding_tax( $min_variation_product ) );
|
333 |
+
$max = ( WCJ_IS_WC_VERSION_BELOW_3 ? $max_variation_product->get_price_excluding_tax() : wc_get_price_excluding_tax( $max_variation_product ) );
|
334 |
}
|
335 |
if ( 0 != $atts['multiply_by'] && is_numeric( $atts['multiply_by'] ) ) {
|
336 |
$min = $min * $atts['multiply_by'];
|
345 |
} else {
|
346 |
// Simple etc.
|
347 |
if ( 'including' === $including_or_excluding ) {
|
348 |
+
$the_price = ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_product->get_price_including_tax() : wc_get_price_including_tax( $this->the_product ) );
|
349 |
} else { // 'excluding'
|
350 |
+
$the_price = ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_product->get_price_excluding_tax() : wc_get_price_excluding_tax( $this->the_product ) );
|
351 |
}
|
352 |
if ( 0 != $atts['multiply_by'] && is_numeric( $atts['multiply_by'] ) ) {
|
353 |
$the_price = $the_price * $atts['multiply_by'];
|
397 |
/**
|
398 |
* wcj_product_list_attributes.
|
399 |
*
|
400 |
+
* @version 2.7.0
|
401 |
* @since 2.4.0
|
402 |
*/
|
403 |
function wcj_product_list_attributes( $atts ) {
|
404 |
if ( $this->the_product->has_attributes() ) {
|
405 |
ob_start();
|
406 |
+
if ( WCJ_IS_WC_VERSION_BELOW_3 ) {
|
407 |
+
$this->the_product->list_attributes();
|
408 |
+
} else {
|
409 |
+
wc_display_product_attributes( $this->the_product );
|
410 |
+
}
|
411 |
return ob_get_clean();
|
412 |
}
|
413 |
return '';
|
447 |
/**
|
448 |
* wcj_product_categories.
|
449 |
*
|
450 |
+
* @version 2.7.0
|
451 |
* @since 2.4.0
|
452 |
*/
|
453 |
function wcj_product_categories( $atts ) {
|
454 |
+
$return = ( WCJ_IS_WC_VERSION_BELOW_3 ) ? $this->the_product->get_categories() : wc_get_product_category_list( $atts['product_id'] );
|
455 |
+
return ( false === $return ) ? '' : $return;
|
456 |
}
|
457 |
|
458 |
/**
|
507 |
/**
|
508 |
* wcj_product_total_sales.
|
509 |
*
|
510 |
+
* @version 2.7.0
|
511 |
* @since 2.2.6
|
512 |
*/
|
513 |
function wcj_product_total_sales( $atts ) {
|
514 |
+
$product_custom_fields = get_post_custom( wcj_get_product_id_or_variation_parent_id( $this->the_product ) );
|
515 |
$total_sales = ( isset( $product_custom_fields['total_sales'][0] ) ) ? $product_custom_fields['total_sales'][0] : '';
|
516 |
if ( 0 != $atts['offset'] ) {
|
517 |
$total_sales += $atts['offset'];
|
522 |
/**
|
523 |
* wcj_product_purchase_price.
|
524 |
*
|
525 |
+
* @version 2.7.0
|
526 |
+
* @return string
|
527 |
+
* @todo maybe just `wcj_get_product_id` instead of `wcj_get_product_id_or_variation_parent_id`
|
528 |
*/
|
529 |
function wcj_product_purchase_price( $atts ) {
|
530 |
+
$purchase_price = wc_get_product_purchase_price( wcj_get_product_id_or_variation_parent_id( $this->the_product ) );
|
531 |
return wc_price( $purchase_price );
|
532 |
}
|
533 |
|
534 |
/**
|
535 |
* wcj_product_tags.
|
536 |
*
|
537 |
+
* @version 2.7.0
|
538 |
+
* @return string
|
539 |
*/
|
540 |
function wcj_product_tags( $atts ) {
|
541 |
|
542 |
if ( 'yes' === $atts['add_links'] ) {
|
543 |
+
return ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_product->get_tags( $atts['sep'] ) : wc_get_product_tag_list( $atts['product_id'], $atts['sep'] ) );
|
544 |
}
|
545 |
|
546 |
$product_tags = get_the_terms( $atts['product_id'], 'product_tag' );
|
599 |
/**
|
600 |
* Get product meta.
|
601 |
*
|
602 |
+
* @version 2.7.0
|
603 |
* @since 2.5.7
|
604 |
* @return string
|
605 |
*/
|
606 |
function wcj_product_meta( $atts ) {
|
607 |
+
if ( '' == $atts['name'] ) {
|
608 |
+
return '';
|
609 |
+
}
|
610 |
return get_post_meta( $atts['product_id'], $atts['name'], true );
|
611 |
}
|
612 |
|
653 |
/**
|
654 |
* wcj_product_wholesale_price_table.
|
655 |
*
|
656 |
+
* @version 2.7.0
|
657 |
*/
|
658 |
function wcj_product_wholesale_price_table( $atts ) {
|
659 |
|
660 |
+
$product_id = wcj_get_product_id_or_variation_parent_id( $this->the_product );
|
661 |
+
|
662 |
+
if ( ! wcj_is_product_wholesale_enabled( $product_id ) ) return '';
|
663 |
|
664 |
// Check for user role options
|
665 |
$role_option_name_addon = '';
|
675 |
}
|
676 |
|
677 |
$wholesale_price_levels = array();
|
678 |
+
if ( wcj_is_product_wholesale_enabled_per_product( $product_id ) ) {
|
679 |
+
for ( $i = 1; $i <= apply_filters( 'booster_get_option', 1, get_post_meta( $product_id, '_' . 'wcj_wholesale_price_levels_number' . $role_option_name_addon, true ) ); $i++ ) {
|
680 |
+
$level_qty = get_post_meta( $product_id, '_' . 'wcj_wholesale_price_level_min_qty' . $role_option_name_addon . '_' . $i, true );
|
681 |
+
$discount = get_post_meta( $product_id, '_' . 'wcj_wholesale_price_level_discount' . $role_option_name_addon . '_' . $i, true );
|
682 |
$wholesale_price_levels[] = array( 'quantity' => $level_qty, 'discount' => $discount, );
|
683 |
}
|
684 |
} else {
|
689 |
}
|
690 |
}
|
691 |
|
692 |
+
$discount_type = ( wcj_is_product_wholesale_enabled_per_product( $product_id ) )
|
693 |
+
? get_post_meta( $product_id, '_' . 'wcj_wholesale_price_discount_type', true )
|
694 |
: get_option( 'wcj_wholesale_price_discount_type', 'percent' );
|
695 |
|
696 |
$data_qty = array();
|
714 |
$max_key = key( $prices['price'] );
|
715 |
$min_product = wc_get_product( $min_key );
|
716 |
$max_product = wc_get_product( $max_key );
|
717 |
+
$min = wcj_get_product_display_price( $min_product );
|
718 |
+
$max = wcj_get_product_display_price( $max_product );
|
|
|
719 |
$min_original = $min;
|
720 |
$max_original = $max;
|
721 |
if ( 'fixed' === $discount_type ) {
|
736 |
$the_price_original = ( $min_original != $max_original ) ? sprintf( '%s-%s', $min_original, $max_original ) : $min_original;
|
737 |
} else {
|
738 |
// Simple etc.
|
739 |
+
$the_price = wcj_get_product_display_price( $this->the_product );
|
|
|
740 |
$the_price = apply_filters( 'wcj_product_wholesale_price_table_price_before', $the_price, $this->the_product );
|
741 |
$the_price_original = $the_price;
|
742 |
if ( 'price_directly' === $discount_type ) {
|
806 |
/**
|
807 |
* Get product short description.
|
808 |
*
|
809 |
+
* @version 2.7.0
|
810 |
* @since 2.5.7
|
811 |
* @return string
|
812 |
*/
|
813 |
function wcj_product_short_description( $atts ) {
|
814 |
+
$short_description = ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_product->post->post_excerpt : $this->the_product->get_short_description() );
|
815 |
if ( 'yes' === $atts['apply_filters'] ) {
|
816 |
apply_filters( 'woocommerce_short_description', $short_description );
|
817 |
}
|
893 |
/**
|
894 |
* wcj_product_image_url.
|
895 |
*
|
896 |
+
* @version 2.7.0
|
897 |
* @since 2.5.7
|
898 |
*/
|
899 |
function wcj_product_image_url( $atts ) {
|
900 |
+
return wcj_get_product_image_url( wcj_get_product_id_or_variation_parent_id( $this->the_product ), $atts['image_size'] );
|
901 |
+
}
|
902 |
+
|
903 |
+
/**
|
904 |
+
* wcj_product_gallery_image_url.
|
905 |
+
*
|
906 |
+
* @version 2.7.0
|
907 |
+
* @since 2.7.0
|
908 |
+
*/
|
909 |
+
function wcj_product_gallery_image_url( $atts ) {
|
910 |
+
$attachment_ids = ( WCJ_IS_WC_VERSION_BELOW_3 ? $this->the_product->get_gallery_attachment_ids() : $this->the_product->get_gallery_image_ids() );
|
911 |
+
if ( $attachment_ids && isset( $attachment_ids[ ( $atts['image_nr'] - 1 ) ] ) ) {
|
912 |
+
$props = wc_get_product_attachment_props( $attachment_ids[ ( $atts['image_nr'] - 1 ) ] );
|
913 |
+
if ( isset( $props['url'] ) ) {
|
914 |
+
return $props['url'];
|
915 |
+
}
|
916 |
+
}
|
917 |
+
return '';
|
918 |
}
|
919 |
|
920 |
/**
|
930 |
/**
|
931 |
* wcj_product_categories_names.
|
932 |
*
|
933 |
+
* @version 2.7.0
|
934 |
* @since 2.5.7
|
935 |
*/
|
936 |
function wcj_product_categories_names( $atts ) {
|
937 |
+
$product_cats = get_the_terms( wcj_get_product_id_or_variation_parent_id( $this->the_product ), 'product_cat' );
|
938 |
$cats = array();
|
939 |
if ( ! empty( $product_cats ) && is_array( $product_cats ) ) {
|
940 |
foreach ( $product_cats as $product_cat ) {
|
947 |
/**
|
948 |
* wcj_product_categories_urls.
|
949 |
*
|
950 |
+
* @version 2.7.0
|
951 |
* @since 2.5.7
|
952 |
*/
|
953 |
function wcj_product_categories_urls( $atts ) {
|
954 |
+
$product_cats = get_the_terms( wcj_get_product_id_or_variation_parent_id( $this->the_product ), 'product_cat' );
|
955 |
$cats = array();
|
956 |
if ( ! empty( $product_cats ) && is_array( $product_cats ) ) {
|
957 |
foreach ( $product_cats as $product_cat ) {
|
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 |
|
@@ -59,7 +59,7 @@ class WCJ_Shortcodes {
|
|
59 |
/**
|
60 |
* wcj_shortcode.
|
61 |
*
|
62 |
-
* @version 2.
|
63 |
*/
|
64 |
function wcj_shortcode( $atts, $content, $shortcode ) {
|
65 |
|
@@ -86,6 +86,7 @@ class WCJ_Shortcodes {
|
|
86 |
'find' => '',
|
87 |
'replace' => '',
|
88 |
'strip_tags' => 'no',
|
|
|
89 |
);
|
90 |
$atts = array_merge( $global_defaults, $atts );
|
91 |
|
@@ -191,9 +192,9 @@ class WCJ_Shortcodes {
|
|
191 |
if ( 'yes' === $atts['strip_tags'] ) {
|
192 |
$result = strip_tags( $result );
|
193 |
}
|
194 |
-
return $atts['before'] . $result . $atts['after'];
|
195 |
}
|
196 |
-
return '';
|
197 |
}
|
198 |
|
199 |
/**
|
4 |
*
|
5 |
* The WooCommerce Jetpack Shortcodes class.
|
6 |
*
|
7 |
+
* @version 2.7.0
|
8 |
* @author Algoritmika Ltd.
|
9 |
*/
|
10 |
|
59 |
/**
|
60 |
* wcj_shortcode.
|
61 |
*
|
62 |
+
* @version 2.7.0
|
63 |
*/
|
64 |
function wcj_shortcode( $atts, $content, $shortcode ) {
|
65 |
|
86 |
'find' => '',
|
87 |
'replace' => '',
|
88 |
'strip_tags' => 'no',
|
89 |
+
'on_empty' => '',
|
90 |
);
|
91 |
$atts = array_merge( $global_defaults, $atts );
|
92 |
|
192 |
if ( 'yes' === $atts['strip_tags'] ) {
|
193 |
$result = strip_tags( $result );
|
194 |
}
|
195 |
+
return $atts['before'] . apply_filters( 'wcj_shortcode_result', $result, $atts, $content, $shortcode ) . $atts['after'];
|
196 |
}
|
197 |
+
return $atts['on_empty'];
|
198 |
}
|
199 |
|
200 |
/**
|
includes/templates/wcj-add-to-cart-variable.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Variable product add to cart - radio inputs
|
4 |
*
|
5 |
-
* @version 2.
|
6 |
* @since 2.4.8
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
@@ -17,7 +17,7 @@ $attribute_keys = array_keys( $attributes );
|
|
17 |
|
18 |
do_action( 'woocommerce_before_add_to_cart_form' ); ?>
|
19 |
|
20 |
-
<form class="variations_form cart" method="post" enctype='multipart/form-data' data-product_id="<?php echo absint( $product
|
21 |
<?php do_action( 'woocommerce_before_variations_form' ); ?>
|
22 |
|
23 |
<?php if ( empty( $available_variations ) && false !== $available_variations ) : ?>
|
2 |
/**
|
3 |
* Variable product add to cart - radio inputs
|
4 |
*
|
5 |
+
* @version 2.7.0
|
6 |
* @since 2.4.8
|
7 |
* @author Algoritmika Ltd.
|
8 |
*/
|
17 |
|
18 |
do_action( 'woocommerce_before_add_to_cart_form' ); ?>
|
19 |
|
20 |
+
<form class="variations_form cart" method="post" enctype='multipart/form-data' data-product_id="<?php echo absint( wcj_get_product_id_or_variation_parent_id( $product ) ); ?>" data-product_variations="<?php echo esc_attr( json_encode( $available_variations ) ) ?>">
|
21 |
<?php do_action( 'woocommerce_before_variations_form' ); ?>
|
22 |
|
23 |
<?php if ( empty( $available_variations ) && false !== $available_variations ) : ?>
|
langs/woocommerce-jetpack.pot
CHANGED
@@ -1,229 +1,98 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
msgid ""
|
4 |
-
msgstr ""
|
5 |
-
"Project-Id-Version: Booster for WooCommerce 2.5.9\n"
|
6 |
-
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocommerce-"
|
7 |
-
"jetpack\n"
|
8 |
-
"POT-Creation-Date: 2016-12-19 20:17:07+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:358
|
30 |
-
#: includes/class-wcj-checkout-files-upload.php:140
|
31 |
-
#: includes/class-wcj-payment-gateways.php:55
|
32 |
-
#: includes/classes/class-wcj-module.php:174
|
33 |
-
#: includes/classes/class-wcj-module.php:363
|
34 |
-
msgid "Booster"
|
35 |
-
msgstr ""
|
36 |
-
|
37 |
-
#: includes/admin/class-wc-settings-jetpack.php:150
|
38 |
-
msgid "Save changes"
|
39 |
-
msgstr ""
|
40 |
-
|
41 |
-
#: includes/admin/class-wc-settings-jetpack.php:208
|
42 |
-
msgid "Alphabetically"
|
43 |
-
msgstr ""
|
44 |
-
|
45 |
-
#: includes/admin/class-wc-settings-jetpack.php:209
|
46 |
-
msgid "By Category"
|
47 |
-
msgstr ""
|
48 |
-
|
49 |
-
#: includes/admin/class-wc-settings-jetpack.php:210
|
50 |
-
msgid "Active"
|
51 |
-
msgstr ""
|
52 |
-
|
53 |
-
#: includes/admin/class-wc-settings-jetpack.php:211
|
54 |
-
msgid "Manage Settings"
|
55 |
-
msgstr ""
|
56 |
-
|
57 |
-
#: includes/admin/class-wc-settings-jetpack.php:253
|
58 |
-
#: includes/admin/wcj-modules-cats.php:15
|
59 |
-
msgid "Dashboard"
|
60 |
-
msgstr ""
|
61 |
-
|
62 |
-
#: includes/admin/class-wc-settings-jetpack.php:283
|
63 |
-
#: includes/class-wcj-product-custom-info.php:26
|
64 |
-
msgid "Product Info"
|
65 |
-
msgstr ""
|
66 |
-
|
67 |
-
#: includes/admin/class-wc-settings-jetpack.php:289
|
68 |
-
msgid ""
|
69 |
-
"Please note that current <em>%s</em> module is deprecated and will be "
|
70 |
-
"removed in future updates. Please use <em>%s</em> module instead."
|
71 |
-
msgstr ""
|
72 |
-
|
73 |
-
#: includes/admin/class-wc-settings-jetpack.php:354
|
74 |
-
msgid "WooCommerce"
|
75 |
-
msgstr ""
|
76 |
-
|
77 |
-
#: includes/admin/class-wc-settings-jetpack.php:356
|
78 |
-
#: includes/admin/class-wc-settings-jetpack.php:495
|
79 |
-
#: woocommerce-jetpack.php:398
|
80 |
-
msgid "Settings"
|
81 |
-
msgstr ""
|
82 |
-
|
83 |
-
#: includes/admin/class-wc-settings-jetpack.php:402
|
84 |
msgid ""
|
85 |
-
"
|
86 |
-
|
87 |
-
|
88 |
-
#: includes/admin/class-wc-settings-jetpack.php:420
|
89 |
-
#: includes/class-wcj-export-import.php:28
|
90 |
-
msgid "Export"
|
91 |
-
msgstr ""
|
92 |
-
|
93 |
-
#: includes/admin/class-wc-settings-jetpack.php:421
|
94 |
-
msgid "Import"
|
95 |
msgstr ""
|
96 |
|
97 |
-
#:
|
|
|
98 |
msgid ""
|
99 |
-
"
|
100 |
-
|
101 |
-
|
102 |
-
#: includes/admin/class-wc-settings-jetpack.php:423
|
103 |
-
msgid "Reset"
|
104 |
-
msgstr ""
|
105 |
-
|
106 |
-
#: includes/admin/class-wc-settings-jetpack.php:426
|
107 |
-
msgid "Version"
|
108 |
-
msgstr ""
|
109 |
-
|
110 |
-
#: includes/admin/class-wc-settings-jetpack.php:450
|
111 |
-
#: includes/admin/class-wc-settings-jetpack.php:457
|
112 |
-
msgid "Select All"
|
113 |
msgstr ""
|
114 |
|
115 |
-
#:
|
116 |
-
#: includes/admin/class-wc-settings-jetpack.php:
|
117 |
-
|
118 |
-
msgid "Module"
|
119 |
msgstr ""
|
120 |
|
121 |
-
#:
|
122 |
-
|
123 |
-
#: includes/admin/class-wcj-tools.php:75
|
124 |
-
#: includes/class-wcj-eu-vat-number.php:377
|
125 |
-
#: includes/class-wcj-product-by-user.php:202
|
126 |
-
#: includes/export/class-wcj-fields-helper.php:293
|
127 |
-
#: includes/gateways/class-wc-gateway-wcj-custom.php:76
|
128 |
-
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:151
|
129 |
-
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:266
|
130 |
-
msgid "Description"
|
131 |
msgstr ""
|
132 |
|
133 |
-
#:
|
134 |
-
#: includes/
|
135 |
-
|
|
|
136 |
msgstr ""
|
137 |
|
138 |
-
#:
|
139 |
-
msgid "
|
140 |
msgstr ""
|
141 |
|
142 |
-
#:
|
143 |
-
msgid "
|
144 |
msgstr ""
|
145 |
|
146 |
-
#:
|
147 |
-
msgid "Booster
|
148 |
msgstr ""
|
149 |
|
150 |
-
#:
|
|
|
151 |
msgid ""
|
152 |
-
"
|
153 |
-
"
|
154 |
-
"io\" target=\"_blank\">http://booster.io</a> for detailed info on each "
|
155 |
-
"feature."
|
156 |
-
msgstr ""
|
157 |
-
|
158 |
-
#: includes/admin/class-wcj-tools.php:34
|
159 |
-
msgid "Booster for WooCommerce Tools"
|
160 |
-
msgstr ""
|
161 |
-
|
162 |
-
#: includes/admin/class-wcj-tools.php:35
|
163 |
-
msgid "Booster Tools"
|
164 |
msgstr ""
|
165 |
|
166 |
-
#:
|
167 |
-
msgid "
|
168 |
msgstr ""
|
169 |
|
170 |
-
#:
|
171 |
-
msgid "Booster
|
172 |
msgstr ""
|
173 |
|
174 |
-
#:
|
175 |
msgid ""
|
176 |
-
"
|
177 |
-
"
|
178 |
-
"WooCommerce > Settings > Booster. Enabled tools will appear in the tabs menu "
|
179 |
-
"above."
|
180 |
-
msgstr ""
|
181 |
-
|
182 |
-
#: includes/admin/class-wcj-tools.php:73
|
183 |
-
msgid "Tool"
|
184 |
-
msgstr ""
|
185 |
-
|
186 |
-
#: includes/admin/class-wcj-tools.php:76
|
187 |
-
#: includes/class-wcj-product-by-user.php:156
|
188 |
-
#: includes/export/class-wcj-fields-helper.php:294
|
189 |
-
msgid "Status"
|
190 |
-
msgstr ""
|
191 |
-
|
192 |
-
#: includes/admin/wcj-modules-cats.php:26
|
193 |
-
msgid "Prices & Currencies"
|
194 |
msgstr ""
|
195 |
|
196 |
-
#:
|
197 |
-
msgid "
|
|
|
|
|
198 |
msgstr ""
|
199 |
|
200 |
-
#:
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
msgstr ""
|
205 |
|
206 |
-
#:
|
207 |
-
msgid "
|
208 |
msgstr ""
|
209 |
|
210 |
-
#:
|
211 |
-
|
212 |
-
#: includes/class-wcj-payment-gateways-by-user-role.php:81
|
213 |
-
#: includes/class-wcj-payment-gateways-min-max.php:90
|
214 |
-
msgid "Payment Gateways"
|
215 |
msgstr ""
|
216 |
|
217 |
-
#:
|
218 |
-
msgid "
|
219 |
msgstr ""
|
220 |
|
221 |
-
#:
|
222 |
-
|
|
|
223 |
msgstr ""
|
224 |
|
225 |
-
#:
|
226 |
-
|
|
|
227 |
msgstr ""
|
228 |
|
229 |
#: includes/class-wcj-add-to-cart.php:25
|
@@ -247,11 +116,13 @@ msgstr ""
|
|
247 |
|
248 |
#: includes/class-wcj-add-to-cart.php:48
|
249 |
#: includes/class-wcj-add-to-cart.php:187
|
250 |
-
#: includes/class-wcj-add-to-cart.php:212 includes/class-wcj-general.php:
|
251 |
-
#: includes/class-wcj-product-images.php:
|
252 |
-
#: includes/class-wcj-product-images.php:
|
253 |
#: includes/class-wcj-shipping-calculator.php:183
|
254 |
-
#: includes/class-wcj-shipping.php:
|
|
|
|
|
255 |
msgid "Enable Section"
|
256 |
msgstr ""
|
257 |
|
@@ -283,17 +154,16 @@ msgstr ""
|
|
283 |
#: includes/class-wcj-add-to-cart.php:101
|
284 |
#: includes/class-wcj-add-to-cart.php:147
|
285 |
#: includes/class-wcj-add-to-cart.php:160
|
286 |
-
#: includes/class-wcj-payment-gateways-fees.php:151
|
287 |
msgid "Leave blank to disable."
|
288 |
msgstr ""
|
289 |
|
290 |
#: includes/class-wcj-add-to-cart.php:90
|
291 |
#: includes/class-wcj-add-to-cart.php:101
|
292 |
#: includes/class-wcj-add-to-cart.php:149
|
293 |
-
#: includes/class-wcj-add-to-cart.php:162 includes/class-wcj-sorting.php:
|
294 |
-
#: includes/class-wcj-sorting.php:
|
295 |
-
#: includes/class-wcj-sorting.php:
|
296 |
-
#: includes/class-wcj-sorting.php:
|
297 |
msgid "Default: "
|
298 |
msgstr ""
|
299 |
|
@@ -355,7 +225,7 @@ msgid "Already in cart. Product category (archive) view."
|
|
355 |
msgstr ""
|
356 |
|
357 |
#: includes/class-wcj-add-to-cart.php:180
|
358 |
-
#: includes/class-wcj-product-addons.php:
|
359 |
msgid "Per Product Options"
|
360 |
msgstr ""
|
361 |
|
@@ -383,58 +253,61 @@ msgid "Category Groups Number"
|
|
383 |
msgstr ""
|
384 |
|
385 |
#: includes/class-wcj-add-to-cart.php:221
|
386 |
-
#: includes/class-wcj-
|
387 |
-
#: includes/class-wcj-product-input-fields.php:179
|
388 |
-
#: includes/class-wcj-product-tabs.php:504
|
389 |
msgid "Click \"Save changes\" after you change this number."
|
390 |
msgstr ""
|
391 |
|
392 |
#: includes/class-wcj-add-to-cart.php:257
|
393 |
-
#: includes/class-wcj-price-by-country.php:
|
394 |
-
#: includes/class-wcj-price-by-country.php:
|
395 |
-
#: includes/class-wcj-price-by-country.php:
|
396 |
-
#: includes/class-wcj-price-by-country.php:
|
397 |
msgid "Group"
|
398 |
msgstr ""
|
399 |
|
400 |
#: includes/class-wcj-add-to-cart.php:258
|
401 |
-
#: includes/class-wcj-
|
402 |
-
#: includes/class-wcj-admin-tools.php:
|
403 |
-
#: includes/class-wcj-admin-tools.php:
|
404 |
-
#: includes/class-wcj-admin-tools.php:
|
405 |
-
#: includes/class-wcj-
|
406 |
-
#: includes/class-wcj-
|
407 |
-
#: includes/class-wcj-
|
408 |
-
#: includes/class-wcj-
|
409 |
-
#: includes/class-wcj-
|
410 |
-
#: includes/class-wcj-
|
411 |
-
#: includes/class-wcj-
|
412 |
-
#: includes/class-wcj-
|
413 |
-
#: includes/class-wcj-
|
414 |
-
#: includes/class-wcj-
|
415 |
-
#: includes/class-wcj-
|
416 |
-
#: includes/class-wcj-
|
417 |
-
#: includes/class-wcj-
|
418 |
-
#: includes/class-wcj-
|
419 |
-
#: includes/class-wcj-
|
420 |
-
#: includes/class-wcj-
|
421 |
-
#: includes/class-wcj-
|
422 |
-
#: includes/class-wcj-price-by-
|
423 |
-
#: includes/class-wcj-price-by-
|
424 |
-
#: includes/class-wcj-price-
|
425 |
-
#: includes/class-wcj-price-
|
426 |
-
#: includes/class-wcj-
|
427 |
-
#: includes/class-wcj-
|
428 |
-
#: includes/class-wcj-
|
429 |
-
#: includes/class-wcj-
|
430 |
-
#: includes/class-wcj-
|
431 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
432 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
433 |
-
#: includes/class-wcj-product-
|
434 |
-
#: includes/class-wcj-product-
|
435 |
-
#: includes/class-wcj-product-
|
436 |
-
#: includes/class-wcj-product-
|
437 |
-
#: includes/class-wcj-product-
|
|
|
|
|
|
|
|
|
|
|
438 |
#: includes/class-wcj-product-by-user.php:275
|
439 |
#: includes/class-wcj-product-info.php:256
|
440 |
#: includes/class-wcj-product-info.php:351
|
@@ -442,34 +315,47 @@ msgstr ""
|
|
442 |
#: includes/class-wcj-product-input-fields.php:133
|
443 |
#: includes/class-wcj-product-input-fields.php:170
|
444 |
#: includes/class-wcj-product-input-fields.php:283
|
445 |
-
#: includes/class-wcj-product-
|
446 |
-
#: includes/class-wcj-product-
|
447 |
-
#: includes/class-wcj-product-tabs.php:
|
448 |
-
#: includes/class-wcj-
|
449 |
-
#: includes/class-wcj-
|
450 |
-
#: includes/class-wcj-purchase-data.php:
|
451 |
-
#: includes/class-wcj-purchase-data.php:
|
452 |
-
#: includes/class-wcj-purchase-data.php:
|
453 |
-
#: includes/class-wcj-purchase-data.php:
|
454 |
-
#: includes/class-wcj-purchase-data.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
455 |
#: includes/class-wcj-shipping-calculator.php:134
|
456 |
#: includes/class-wcj-shipping-calculator.php:141
|
457 |
#: includes/class-wcj-shipping-calculator.php:148
|
458 |
#: includes/class-wcj-shipping-calculator.php:155
|
459 |
-
#: includes/class-wcj-shipping.php:
|
460 |
-
#: includes/class-wcj-sku.php:
|
461 |
-
#: includes/class-wcj-wholesale-price.php:
|
462 |
-
#: includes/class-wcj-wholesale-price.php:
|
463 |
-
#: includes/class-wcj-wholesale-price.php:
|
464 |
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:379
|
465 |
msgid "Enable"
|
466 |
msgstr ""
|
467 |
|
468 |
#: includes/class-wcj-add-to-cart.php:274
|
469 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
470 |
msgid "categories"
|
471 |
msgstr ""
|
472 |
|
|
|
|
|
|
|
|
|
|
|
|
|
473 |
#: includes/class-wcj-add-to-cart.php:285
|
474 |
msgid "Button text - single product view"
|
475 |
msgstr ""
|
@@ -488,23 +374,15 @@ msgid ""
|
|
488 |
"country display."
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: includes/class-wcj-address-formats.php:
|
492 |
-
#: includes/class-wcj-address-formats.php:
|
493 |
msgid "Force Base Country Display"
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: includes/class-wcj-address-formats.php:
|
497 |
-
msgid "Force Base Country Display Options."
|
498 |
-
msgstr ""
|
499 |
-
|
500 |
-
#: includes/class-wcj-address-formats.php:148
|
501 |
msgid "Address Formats by Country"
|
502 |
msgstr ""
|
503 |
|
504 |
-
#: includes/class-wcj-address-formats.php:150
|
505 |
-
msgid "Address Formats by Country Options."
|
506 |
-
msgstr ""
|
507 |
-
|
508 |
#: includes/class-wcj-admin-tools.php:25 includes/class-wcj-admin-tools.php:32
|
509 |
msgid "Admin Tools"
|
510 |
msgstr ""
|
@@ -521,71 +399,86 @@ msgstr ""
|
|
521 |
msgid "Log"
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: includes/class-wcj-admin-tools.php:
|
|
|
525 |
msgid "Current PHP memory limit: %s."
|
526 |
msgstr ""
|
527 |
|
528 |
-
#: includes/class-wcj-admin-tools.php:
|
529 |
-
|
530 |
-
|
|
|
|
|
|
|
|
|
|
|
531 |
msgid "Product Meta"
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: includes/class-wcj-admin-tools.php:
|
535 |
-
#: includes/class-wcj-export-import.php:
|
536 |
-
#: includes/class-wcj-export-import.php:
|
537 |
msgid "Order Meta"
|
538 |
msgstr ""
|
539 |
|
540 |
-
#: includes/class-wcj-admin-tools.php:
|
541 |
msgid "Order Items Meta"
|
542 |
msgstr ""
|
543 |
|
544 |
-
#: includes/class-wcj-admin-tools.php:
|
545 |
msgid "Log deleted successfully."
|
546 |
msgstr ""
|
547 |
|
548 |
-
#: includes/class-wcj-admin-tools.php:
|
549 |
msgid "Delete Log"
|
550 |
msgstr ""
|
551 |
|
552 |
-
#: includes/class-wcj-admin-tools.php:
|
553 |
msgid "NOT DEFINED"
|
554 |
msgstr ""
|
555 |
|
556 |
-
#: includes/class-wcj-admin-tools.php:
|
557 |
msgid "Admin Tools Options"
|
558 |
msgstr ""
|
559 |
|
560 |
-
#: includes/class-wcj-admin-tools.php:
|
561 |
msgid "Logging"
|
562 |
msgstr ""
|
563 |
|
564 |
-
#: includes/class-wcj-admin-tools.php:
|
565 |
msgid "Debug"
|
566 |
msgstr ""
|
567 |
|
568 |
-
#: includes/class-wcj-admin-tools.php:
|
569 |
msgid "PHP Memory Limit"
|
570 |
msgstr ""
|
571 |
|
572 |
-
#: includes/class-wcj-admin-tools.php:
|
573 |
msgid "megabytes."
|
574 |
msgstr ""
|
575 |
|
576 |
-
#: includes/class-wcj-admin-tools.php:
|
|
|
577 |
msgid "Set zero to disable."
|
578 |
msgstr ""
|
579 |
|
580 |
-
#: includes/class-wcj-admin-tools.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
581 |
msgid "System Info"
|
582 |
msgstr ""
|
583 |
|
584 |
-
#: includes/class-wcj-admin-tools.php:
|
585 |
msgid "Show Order Meta"
|
586 |
msgstr ""
|
587 |
|
588 |
-
#: includes/class-wcj-admin-tools.php:
|
589 |
msgid "Show Product Meta"
|
590 |
msgstr ""
|
591 |
|
@@ -607,49 +500,108 @@ msgid ""
|
|
607 |
"Leave price empty when adding or editing products. Then set the options here."
|
608 |
msgstr ""
|
609 |
|
610 |
-
#: includes/class-wcj-call-for-price.php:
|
611 |
-
msgid "
|
612 |
msgstr ""
|
613 |
|
614 |
#: includes/class-wcj-call-for-price.php:108
|
615 |
-
|
616 |
-
|
617 |
-
|
|
|
|
|
|
|
|
|
618 |
msgid "This sets the html to output on empty price. Leave blank to disable."
|
619 |
msgstr ""
|
620 |
|
621 |
-
#: includes/class-wcj-call-for-price.php:
|
622 |
msgid "Label to Show on Archives"
|
623 |
msgstr ""
|
624 |
|
625 |
-
#: includes/class-wcj-call-for-price.php:
|
626 |
msgid "Label to Show on Homepage"
|
627 |
msgstr ""
|
628 |
|
629 |
-
#: includes/class-wcj-call-for-price.php:
|
630 |
msgid "Label to Show on Related"
|
631 |
msgstr ""
|
632 |
|
633 |
-
#: includes/class-wcj-call-for-price.php:
|
634 |
msgid "Hide Sale! Tag"
|
635 |
msgstr ""
|
636 |
|
637 |
-
#: includes/class-wcj-call-for-price.php:
|
638 |
msgid "Hide the tag"
|
639 |
msgstr ""
|
640 |
|
641 |
-
#: includes/class-wcj-call-for-price.php:
|
642 |
msgid "Make All Products Call for Price"
|
643 |
msgstr ""
|
644 |
|
645 |
-
#: includes/class-wcj-call-for-price.php:
|
646 |
msgid ""
|
647 |
"Enable this to make all products (except variable) prices empty. When "
|
648 |
"checkbox disabled, all prices go back to normal."
|
649 |
msgstr ""
|
650 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
651 |
#: includes/class-wcj-cart.php:25
|
652 |
-
msgid "Cart"
|
653 |
msgstr ""
|
654 |
|
655 |
#: includes/class-wcj-cart.php:26
|
@@ -681,48 +633,48 @@ msgstr ""
|
|
681 |
#: includes/class-wcj-cart.php:132
|
682 |
#: includes/class-wcj-checkout-custom-info.php:75
|
683 |
#: includes/class-wcj-mini-cart.php:80
|
684 |
-
#: includes/class-wcj-product-custom-info.php:
|
685 |
msgid "Total Blocks"
|
686 |
msgstr ""
|
687 |
|
688 |
#: includes/class-wcj-cart.php:153
|
689 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
690 |
#: includes/class-wcj-mini-cart.php:100
|
691 |
-
#: includes/class-wcj-product-custom-info.php:
|
692 |
msgid "Info Block"
|
693 |
msgstr ""
|
694 |
|
695 |
#: includes/class-wcj-cart.php:159
|
696 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
697 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
698 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
699 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
700 |
#: includes/class-wcj-mini-cart.php:106
|
701 |
-
#: includes/class-wcj-product-custom-info.php:
|
702 |
-
#: includes/class-wcj-product-tabs.php:
|
703 |
-
#: includes/class-wcj-product-tabs.php:
|
704 |
msgid "Content"
|
705 |
msgstr ""
|
706 |
|
707 |
#: includes/class-wcj-cart.php:167
|
708 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
709 |
#: includes/class-wcj-checkout-files-upload.php:641
|
710 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
711 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
712 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
713 |
#: includes/class-wcj-mini-cart.php:114
|
714 |
-
#: includes/class-wcj-product-custom-info.php:
|
715 |
#: includes/class-wcj-product-info.php:263
|
716 |
#: includes/class-wcj-product-info.php:366
|
717 |
#: includes/class-wcj-product-info.php:399
|
718 |
-
#: includes/class-wcj-
|
719 |
msgid "Position"
|
720 |
msgstr ""
|
721 |
|
722 |
#: includes/class-wcj-cart.php:176
|
723 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
724 |
#: includes/class-wcj-mini-cart.php:127
|
725 |
-
#: includes/class-wcj-product-custom-info.php:
|
726 |
msgid "Position Order (i.e. Priority)"
|
727 |
msgstr ""
|
728 |
|
@@ -754,50 +706,51 @@ msgid "Checkout Core Fields Options"
|
|
754 |
msgstr ""
|
755 |
|
756 |
#: includes/class-wcj-checkout-core-fields.php:225
|
757 |
-
#: includes/classes/class-wcj-module.php:
|
758 |
msgid "enabled"
|
759 |
msgstr ""
|
760 |
|
761 |
#: includes/class-wcj-checkout-core-fields.php:230
|
762 |
#: includes/class-wcj-checkout-core-fields.php:244
|
763 |
#: includes/class-wcj-checkout-core-fields.php:278
|
764 |
-
#: includes/class-wcj-
|
765 |
msgid "Default"
|
766 |
msgstr ""
|
767 |
|
768 |
#: includes/class-wcj-checkout-core-fields.php:231
|
769 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
770 |
#: includes/class-wcj-checkout-files-upload.php:629
|
771 |
-
#: includes/class-wcj-export-import.php:
|
772 |
-
#: includes/class-wcj-export-import.php:
|
773 |
-
#: includes/class-wcj-export-import.php:
|
774 |
-
#: includes/class-wcj-global-discount.php:
|
775 |
-
#: includes/class-wcj-orders.php:
|
776 |
#: includes/class-wcj-price-by-user-role.php:142
|
777 |
-
#: includes/class-wcj-product-addons.php:
|
778 |
#: includes/class-wcj-product-bookings.php:417
|
779 |
-
#: includes/class-wcj-product-open-pricing.php:
|
780 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
781 |
-
#: includes/class-wcj-products-xml.php:
|
782 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:37
|
783 |
msgid "Enabled"
|
784 |
msgstr ""
|
785 |
|
786 |
#: includes/class-wcj-checkout-core-fields.php:232
|
787 |
-
#: includes/class-wcj-pdf-invoicing.php:
|
788 |
-
#: includes/class-wcj-product-
|
|
|
789 |
msgid "Disabled"
|
790 |
msgstr ""
|
791 |
|
792 |
#: includes/class-wcj-checkout-core-fields.php:239
|
793 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
794 |
msgid "required"
|
795 |
msgstr ""
|
796 |
|
797 |
#: includes/class-wcj-checkout-core-fields.php:245
|
798 |
#: includes/class-wcj-checkout-files-upload.php:635
|
799 |
-
#: includes/class-wcj-eu-vat-number.php:
|
800 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:
|
801 |
msgid "Required"
|
802 |
msgstr ""
|
803 |
|
@@ -806,7 +759,7 @@ msgid "Not Required"
|
|
806 |
msgstr ""
|
807 |
|
808 |
#: includes/class-wcj-checkout-core-fields.php:253
|
809 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
810 |
msgid "label"
|
811 |
msgstr ""
|
812 |
|
@@ -816,12 +769,12 @@ msgid "Leave blank for WooCommerce defaults."
|
|
816 |
msgstr ""
|
817 |
|
818 |
#: includes/class-wcj-checkout-core-fields.php:263
|
819 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
820 |
msgid "placeholder"
|
821 |
msgstr ""
|
822 |
|
823 |
#: includes/class-wcj-checkout-core-fields.php:273
|
824 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
825 |
msgid "class"
|
826 |
msgstr ""
|
827 |
|
@@ -845,245 +798,258 @@ msgstr ""
|
|
845 |
msgid "Add custom fields to WooCommerce checkout page."
|
846 |
msgstr ""
|
847 |
|
848 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
849 |
msgid "Checkout Custom Fields Options"
|
850 |
msgstr ""
|
851 |
|
852 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
853 |
msgid "Add All Fields to Admin Emails"
|
854 |
msgstr ""
|
855 |
|
856 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
857 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
858 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
859 |
-
#: includes/class-wcj-
|
860 |
-
#: includes/class-wcj-
|
861 |
-
#: includes/class-wcj-
|
862 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
863 |
-
#: includes/class-wcj-order-
|
864 |
-
#: includes/class-wcj-
|
|
|
|
|
|
|
865 |
#: includes/class-wcj-product-by-user.php:282
|
866 |
-
#: includes/class-wcj-purchase-data.php:
|
|
|
867 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:359
|
868 |
msgid "Add"
|
869 |
msgstr ""
|
870 |
|
871 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
872 |
msgid "Add All Fields to Customers Emails"
|
873 |
msgstr ""
|
874 |
|
875 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
876 |
msgid "Add All Fields to \"Order Received\" Page"
|
877 |
msgstr ""
|
878 |
|
879 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
880 |
msgid "The Fields"
|
881 |
msgstr ""
|
882 |
|
883 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
884 |
msgid "Custom Fields Number"
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
|
|
|
|
|
|
|
|
|
|
888 |
msgid "Custom Field"
|
889 |
msgstr ""
|
890 |
|
891 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
892 |
msgid "type"
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
896 |
-
#: includes/class-wcj-more-button-labels.php:
|
897 |
-
#: includes/class-wcj-
|
898 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:48
|
899 |
msgid "Text"
|
900 |
msgstr ""
|
901 |
|
902 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
903 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:49
|
904 |
msgid "Textarea"
|
905 |
msgstr ""
|
906 |
|
907 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
908 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:50
|
909 |
msgid "Number"
|
910 |
msgstr ""
|
911 |
|
912 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
913 |
-
#: includes/class-wcj-product-addons.php:
|
914 |
-
#: includes/class-wcj-product-addons.php:
|
915 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:51
|
916 |
msgid "Checkbox"
|
917 |
msgstr ""
|
918 |
|
919 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
920 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:53
|
921 |
msgid "Datepicker"
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
925 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:54
|
926 |
msgid "Weekpicker"
|
927 |
msgstr ""
|
928 |
|
929 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
930 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:55
|
931 |
msgid "Timepicker"
|
932 |
msgstr ""
|
933 |
|
934 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
935 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:56
|
936 |
msgid "Select"
|
937 |
msgstr ""
|
938 |
|
939 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
940 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:57
|
941 |
msgid "Radio"
|
942 |
msgstr ""
|
943 |
|
944 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
945 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:58
|
946 |
msgid "Password"
|
947 |
msgstr ""
|
948 |
|
949 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
950 |
-
#: includes/class-wcj-orders.php:
|
951 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:59
|
952 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:90
|
953 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:104
|
954 |
msgid "Country"
|
955 |
msgstr ""
|
956 |
|
957 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
958 |
msgid "State"
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
962 |
-
#: includes/export/class-wcj-fields-helper.php:
|
963 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:61
|
964 |
#: includes/reports/wcj-class-reports-customers.php:92
|
965 |
msgid "Email"
|
966 |
msgstr ""
|
967 |
|
968 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
969 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:62
|
970 |
msgid "Phone"
|
971 |
msgstr ""
|
972 |
|
973 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
974 |
msgid ""
|
975 |
"options (only if \"select\" or \"radio\" type is selected). One option per "
|
976 |
"line"
|
977 |
msgstr ""
|
978 |
|
979 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
980 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:79
|
981 |
msgid "If checkbox is selected, set value for ON here"
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
985 |
-
#: includes/class-wcj-eu-vat-number.php:
|
986 |
-
#: includes/class-wcj-eu-vat-number.php:
|
987 |
-
#: includes/class-wcj-eu-vat-number.php:
|
988 |
-
#: includes/class-wcj-eu-vat-number.php:
|
989 |
-
#: includes/class-wcj-eu-vat-number.php:
|
990 |
-
#: includes/class-wcj-eu-vat-number.php:
|
991 |
#: includes/class-wcj-price-by-user-role.php:139
|
992 |
#: includes/class-wcj-price-by-user-role.php:182
|
993 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
994 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
995 |
-
#: includes/class-wcj-product-
|
996 |
-
#: includes/class-wcj-product-addons.php:
|
997 |
-
#: includes/class-wcj-product-addons.php:
|
|
|
998 |
#: includes/class-wcj-product-bookings.php:414
|
999 |
-
#: includes/class-wcj-product-images.php:
|
1000 |
-
#: includes/class-wcj-product-images.php:
|
1001 |
-
#: includes/class-wcj-product-images.php:
|
1002 |
-
#: includes/class-wcj-product-open-pricing.php:
|
1003 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
1004 |
-
#: includes/class-wcj-
|
|
|
1005 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:82
|
1006 |
#: includes/widgets/class-wcj-widget-country-switcher.php:91
|
1007 |
msgid "Yes"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1011 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:87
|
1012 |
msgid "If checkbox is selected, set value for OFF here"
|
1013 |
msgstr ""
|
1014 |
|
1015 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1016 |
#: includes/class-wcj-price-by-user-role.php:140
|
1017 |
#: includes/class-wcj-price-by-user-role.php:183
|
1018 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
1019 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
1020 |
-
#: includes/class-wcj-product-
|
1021 |
-
#: includes/class-wcj-product-addons.php:
|
1022 |
-
#: includes/class-wcj-product-addons.php:
|
|
|
1023 |
#: includes/class-wcj-product-bookings.php:415
|
1024 |
-
#: includes/class-wcj-product-images.php:
|
1025 |
-
#: includes/class-wcj-product-images.php:
|
1026 |
-
#: includes/class-wcj-product-images.php:
|
1027 |
-
#: includes/class-wcj-product-open-pricing.php:
|
1028 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
1029 |
-
#: includes/class-wcj-
|
|
|
1030 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:90
|
1031 |
#: includes/widgets/class-wcj-widget-country-switcher.php:90
|
1032 |
msgid "No"
|
1033 |
msgstr ""
|
1034 |
|
1035 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1036 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:95
|
1037 |
msgid "If checkbox is selected, set default value here"
|
1038 |
msgstr ""
|
1039 |
|
1040 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1041 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:100
|
1042 |
msgid "Not Checked"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
|
|
1046 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:101
|
1047 |
msgid "Checked"
|
1048 |
msgstr ""
|
1049 |
|
1050 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1051 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:124
|
1052 |
msgid ""
|
1053 |
"If datepicker/weekpicker is selected, set date format here. Visit <a href="
|
1054 |
"\"https://codex.wordpress.org/Formatting_Date_and_Time\" target=\"_blank"
|
1055 |
"\">documentation on date and time formatting</a> for valid date formats."
|
1056 |
msgstr ""
|
1057 |
|
1058 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1059 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:125
|
1060 |
msgid "Leave blank to use your current WordPress format"
|
1061 |
msgstr ""
|
1062 |
|
1063 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1064 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:133
|
1065 |
msgid "If datepicker/weekpicker is selected, set min date (in days) here"
|
1066 |
msgstr ""
|
1067 |
|
1068 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1069 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:141
|
1070 |
msgid "If datepicker/weekpicker is selected, set max date (in days) here"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1074 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:149
|
1075 |
msgid ""
|
1076 |
"If datepicker/weekpicker is selected, set if you want to add year selector"
|
1077 |
msgstr ""
|
1078 |
|
1079 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1080 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:157
|
1081 |
msgid ""
|
1082 |
"If datepicker/weekpicker is selected, and year selector is enabled, set year "
|
1083 |
"range here"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1087 |
msgid ""
|
1088 |
"The range of years displayed in the year drop-down: either relative to "
|
1089 |
"today's year (\"-nn:+nn\"), relative to the currently selected year (\"c-nn:c"
|
@@ -1092,118 +1058,117 @@ msgid ""
|
|
1092 |
"restrict which dates may be selected use the minDate and/or maxDate options."
|
1093 |
msgstr ""
|
1094 |
|
1095 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1096 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:166
|
1097 |
msgid "If datepicker/weekpicker is selected, set first week day here"
|
1098 |
msgstr ""
|
1099 |
|
1100 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1101 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:171
|
1102 |
msgid "Sunday"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1106 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:172
|
1107 |
msgid "Monday"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1111 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:173
|
1112 |
msgid "Tuesday"
|
1113 |
msgstr ""
|
1114 |
|
1115 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1116 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:174
|
1117 |
msgid "Wednesday"
|
1118 |
msgstr ""
|
1119 |
|
1120 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1121 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:175
|
1122 |
msgid "Thursday"
|
1123 |
msgstr ""
|
1124 |
|
1125 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1126 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:176
|
1127 |
msgid "Friday"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1131 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:177
|
1132 |
msgid "Saturday"
|
1133 |
msgstr ""
|
1134 |
|
1135 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1136 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:183
|
1137 |
msgid ""
|
1138 |
"If timepicker is selected, set time format here. Visit <a href=\"http://"
|
1139 |
"timepicker.co/options/\" target=\"_blank\">timepicker options page</a> for "
|
1140 |
"valid time formats."
|
1141 |
msgstr ""
|
1142 |
|
1143 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1144 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:
|
1145 |
msgid "If timepicker is selected, set interval (in minutes) here"
|
1146 |
msgstr ""
|
1147 |
|
1148 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1149 |
msgid "section"
|
1150 |
msgstr ""
|
1151 |
|
1152 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1153 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
1154 |
#: includes/class-wcj-empty-cart-button.php:117
|
1155 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
1156 |
msgid "Billing"
|
1157 |
msgstr ""
|
1158 |
|
1159 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1160 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
1161 |
#: includes/class-wcj-empty-cart-button.php:118
|
1162 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
1163 |
-
#: includes/class-wcj-price-by-user-role.php:
|
1164 |
#: includes/class-wcj-shipping.php:25
|
1165 |
msgid "Shipping"
|
1166 |
msgstr ""
|
1167 |
|
1168 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1169 |
-
#: includes/export/class-wcj-fields-helper.php:
|
1170 |
-
#: includes/export/class-wcj-fields-helper.php:
|
1171 |
msgid "Order Notes"
|
1172 |
msgstr ""
|
1173 |
|
1174 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1175 |
msgid "Account"
|
1176 |
msgstr ""
|
1177 |
|
1178 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1179 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1180 |
msgid "Wide"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1184 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1185 |
msgid "First"
|
1186 |
msgstr ""
|
1187 |
|
1188 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1189 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1190 |
msgid "Last"
|
1191 |
msgstr ""
|
1192 |
|
1193 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1194 |
msgid "clear"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1198 |
msgid ""
|
1199 |
"Show this field only if there is a product of selected category in cart."
|
1200 |
msgstr ""
|
1201 |
|
1202 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1203 |
msgid "products"
|
1204 |
msgstr ""
|
1205 |
|
1206 |
-
#: includes/class-wcj-checkout-custom-fields.php:
|
1207 |
msgid "Show this field only if there is a selected product in cart."
|
1208 |
msgstr ""
|
1209 |
|
@@ -1219,50 +1184,82 @@ msgstr ""
|
|
1219 |
msgid "Checkout Custom Info Blocks"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
1223 |
#: includes/class-wcj-checkout-files-upload.php:645
|
1224 |
#: includes/class-wcj-empty-cart-button.php:115
|
1225 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
1226 |
msgid "Before checkout form"
|
1227 |
msgstr ""
|
1228 |
|
1229 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
1230 |
#: includes/class-wcj-empty-cart-button.php:116
|
1231 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
1232 |
msgid "Before customer details"
|
1233 |
msgstr ""
|
1234 |
|
1235 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
1236 |
#: includes/class-wcj-empty-cart-button.php:119
|
1237 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
1238 |
msgid "After customer details"
|
1239 |
msgstr ""
|
1240 |
|
1241 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
1242 |
#: includes/class-wcj-empty-cart-button.php:120
|
1243 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
1244 |
msgid "Before order review"
|
1245 |
msgstr ""
|
1246 |
|
1247 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
1248 |
#: includes/class-wcj-empty-cart-button.php:121
|
1249 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
1250 |
msgid "Order review"
|
1251 |
msgstr ""
|
1252 |
|
1253 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
1254 |
#: includes/class-wcj-empty-cart-button.php:122
|
1255 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
1256 |
msgid "After order review"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
-
#: includes/class-wcj-checkout-custom-info.php:
|
1260 |
#: includes/class-wcj-checkout-files-upload.php:646
|
1261 |
#: includes/class-wcj-empty-cart-button.php:123
|
1262 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
1263 |
msgid "After checkout form"
|
1264 |
msgstr ""
|
1265 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1266 |
#: includes/class-wcj-checkout-files-upload.php:28
|
1267 |
msgid "Checkout Files Upload"
|
1268 |
msgstr ""
|
@@ -1285,9 +1282,20 @@ msgstr ""
|
|
1285 |
#: includes/class-wcj-checkout-files-upload.php:120
|
1286 |
#: includes/class-wcj-checkout-files-upload.php:257
|
1287 |
#: includes/class-wcj-checkout-files-upload.php:705
|
|
|
1288 |
msgid "Wrong file type: \"%s\"!"
|
1289 |
msgstr ""
|
1290 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1291 |
#: includes/class-wcj-checkout-files-upload.php:140
|
1292 |
msgid "Uploaded Files"
|
1293 |
msgstr ""
|
@@ -1299,11 +1307,13 @@ msgstr ""
|
|
1299 |
#: includes/class-wcj-checkout-files-upload.php:229
|
1300 |
#: includes/class-wcj-checkout-files-upload.php:237
|
1301 |
#: includes/class-wcj-checkout-files-upload.php:735
|
|
|
1302 |
msgid "File \"%s\" was successfully removed."
|
1303 |
msgstr ""
|
1304 |
|
1305 |
#: includes/class-wcj-checkout-files-upload.php:269
|
1306 |
#: includes/class-wcj-checkout-files-upload.php:720
|
|
|
1307 |
msgid "File \"%s\" was successfully uploaded."
|
1308 |
msgstr ""
|
1309 |
|
@@ -1321,29 +1331,12 @@ msgstr ""
|
|
1321 |
#: includes/class-wcj-checkout-files-upload.php:500
|
1322 |
#: includes/class-wcj-checkout-files-upload.php:501
|
1323 |
#: includes/class-wcj-checkout-files-upload.php:697
|
|
|
1324 |
msgid "Remove"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
-
#: includes/class-wcj-checkout-files-upload.php:606
|
1328 |
-
#: includes/class-wcj-currency-per-product.php:281
|
1329 |
-
#: includes/class-wcj-eu-vat-number.php:358
|
1330 |
-
#: includes/class-wcj-global-discount.php:215
|
1331 |
-
#: includes/class-wcj-multicurrency-product-base-price.php:236
|
1332 |
-
#: includes/class-wcj-multicurrency.php:385
|
1333 |
-
#: includes/class-wcj-payment-gateways-icons.php:95
|
1334 |
-
#: includes/class-wcj-payment-gateways-per-category.php:166
|
1335 |
-
#: includes/class-wcj-price-by-user-role.php:370
|
1336 |
-
#: includes/class-wcj-product-addons.php:642
|
1337 |
-
#: includes/class-wcj-product-bookings.php:490
|
1338 |
-
#: includes/class-wcj-product-by-user.php:247
|
1339 |
-
#: includes/class-wcj-products-xml.php:197
|
1340 |
-
#: includes/class-wcj-related-products.php:98
|
1341 |
-
#: includes/class-wcj-wholesale-price.php:377
|
1342 |
-
msgid "Options"
|
1343 |
-
msgstr ""
|
1344 |
-
|
1345 |
#: includes/class-wcj-checkout-files-upload.php:611
|
1346 |
-
#: includes/class-wcj-products-xml.php:
|
1347 |
msgid "Total Files"
|
1348 |
msgstr ""
|
1349 |
|
@@ -1365,9 +1358,9 @@ msgstr ""
|
|
1365 |
|
1366 |
#: includes/class-wcj-checkout-files-upload.php:672
|
1367 |
#: includes/class-wcj-checkout-files-upload.php:846
|
1368 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
1369 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
1370 |
-
#: includes/class-wcj-orders.php:
|
1371 |
msgid "Label"
|
1372 |
msgstr ""
|
1373 |
|
@@ -1404,6 +1397,7 @@ msgstr ""
|
|
1404 |
#: includes/class-wcj-checkout-files-upload.php:703
|
1405 |
#: includes/class-wcj-checkout-files-upload.php:718
|
1406 |
#: includes/class-wcj-checkout-files-upload.php:733
|
|
|
1407 |
msgid "%s will be replaced with file name"
|
1408 |
msgstr ""
|
1409 |
|
@@ -1510,8 +1504,8 @@ msgid "Form Template Options"
|
|
1510 |
msgstr ""
|
1511 |
|
1512 |
#: includes/class-wcj-checkout-files-upload.php:839
|
1513 |
-
#: includes/class-wcj-product-addons.php:
|
1514 |
-
#: includes/class-wcj-product-addons.php:
|
1515 |
msgid "Before"
|
1516 |
msgstr ""
|
1517 |
|
@@ -1520,9 +1514,9 @@ msgid "Replaced values: %field_id%, %field_label%, %required_html%."
|
|
1520 |
msgstr ""
|
1521 |
|
1522 |
#: includes/class-wcj-checkout-files-upload.php:854
|
1523 |
-
#: includes/class-wcj-export-import.php:
|
1524 |
-
#: includes/class-wcj-export-import.php:
|
1525 |
-
#: includes/class-wcj-export-import.php:
|
1526 |
msgid "Field"
|
1527 |
msgstr ""
|
1528 |
|
@@ -1531,8 +1525,8 @@ msgid "Replaced values: %field_html%, %button_html%."
|
|
1531 |
msgstr ""
|
1532 |
|
1533 |
#: includes/class-wcj-checkout-files-upload.php:862
|
1534 |
-
#: includes/class-wcj-product-addons.php:
|
1535 |
-
#: includes/class-wcj-product-addons.php:
|
1536 |
msgid "After"
|
1537 |
msgstr ""
|
1538 |
|
@@ -1544,33 +1538,42 @@ msgstr ""
|
|
1544 |
msgid "Add crowdfunding products to WooCommerce."
|
1545 |
msgstr ""
|
1546 |
|
1547 |
-
#: includes/class-wcj-crowdfunding.php:
|
1548 |
msgid "Goal"
|
1549 |
msgstr ""
|
1550 |
|
1551 |
-
#: includes/class-wcj-crowdfunding.php:
|
1552 |
#: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:71
|
1553 |
msgid "Start Date"
|
1554 |
msgstr ""
|
1555 |
|
1556 |
-
#: includes/class-wcj-crowdfunding.php:
|
1557 |
msgid "Deadline"
|
1558 |
msgstr ""
|
1559 |
|
1560 |
-
#: includes/class-wcj-crowdfunding.php:
|
1561 |
msgid "When enabled, module will add Crowdfunding metabox to product edit."
|
1562 |
msgstr ""
|
1563 |
|
1564 |
-
#: includes/class-wcj-crowdfunding.php:
|
1565 |
-
|
|
|
|
|
|
|
1566 |
msgstr ""
|
1567 |
|
1568 |
-
#: includes/class-wcj-crowdfunding.php:
|
1569 |
-
|
|
|
|
|
|
|
1570 |
msgstr ""
|
1571 |
|
1572 |
-
#: includes/class-wcj-crowdfunding.php:
|
1573 |
-
|
|
|
|
|
|
|
1574 |
msgstr ""
|
1575 |
|
1576 |
#: includes/class-wcj-currencies.php:25
|
@@ -1598,18 +1601,6 @@ msgstr ""
|
|
1598 |
msgid "Hide Currency Symbol"
|
1599 |
msgstr ""
|
1600 |
|
1601 |
-
#: includes/class-wcj-currencies.php:106 includes/class-wcj-orders.php:508
|
1602 |
-
#: includes/class-wcj-pdf-invoicing.php:400
|
1603 |
-
#: includes/class-wcj-product-bookings.php:496
|
1604 |
-
#: includes/class-wcj-product-images.php:259
|
1605 |
-
#: includes/class-wcj-product-images.php:266
|
1606 |
-
#: includes/class-wcj-product-images.php:273
|
1607 |
-
#: includes/class-wcj-product-images.php:280
|
1608 |
-
#: includes/class-wcj-related-products.php:151
|
1609 |
-
#: includes/class-wcj-shipping-calculator.php:168
|
1610 |
-
msgid "Hide"
|
1611 |
-
msgstr ""
|
1612 |
-
|
1613 |
#: includes/class-wcj-currencies.php:107
|
1614 |
msgid "Default: no."
|
1615 |
msgstr ""
|
@@ -1646,70 +1637,107 @@ msgstr ""
|
|
1646 |
msgid "Automatic currency exchange rates for WooCommerce."
|
1647 |
msgstr ""
|
1648 |
|
1649 |
-
#: includes/class-wcj-currency-exchange-rates.php:
|
1650 |
-
|
1651 |
-
|
1652 |
-
#: includes/class-wcj-multicurrency.php:491
|
1653 |
-
#: includes/class-wcj-payment-gateways-currency.php:275
|
1654 |
-
#: includes/class-wcj-price-by-country.php:388
|
1655 |
-
msgid "Grab %s rate from Yahoo.com"
|
1656 |
msgstr ""
|
1657 |
|
1658 |
-
#: includes/class-wcj-currency-exchange-rates.php:
|
1659 |
-
#: includes/class-wcj-products-xml.php:
|
|
|
1660 |
msgid "%s seconds till next update."
|
1661 |
msgstr ""
|
1662 |
|
1663 |
-
#: includes/class-wcj-currency-exchange-rates.php:
|
1664 |
-
#: includes/class-wcj-price-by-country.php:
|
1665 |
msgid "Exchange Rates"
|
1666 |
msgstr ""
|
1667 |
|
1668 |
-
#: includes/class-wcj-currency-exchange-rates.php:
|
1669 |
msgid ""
|
1670 |
-
"All currencies from all <strong>enabled</strong> modules
|
1671 |
-
"
|
|
|
1672 |
msgstr ""
|
1673 |
|
1674 |
-
#: includes/class-wcj-currency-exchange-rates.php:
|
1675 |
-
#: includes/class-wcj-currency-per-product.php:
|
1676 |
-
#: includes/class-wcj-multicurrency-product-base-price.php:
|
1677 |
-
#: includes/class-wcj-multicurrency.php:
|
1678 |
-
#: includes/class-wcj-payment-gateways-currency.php:
|
1679 |
-
#: includes/class-wcj-price-by-country.php:
|
1680 |
msgid "Exchange Rates Updates"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: includes/class-wcj-currency-exchange-rates.php:
|
1684 |
-
#: includes/class-wcj-products-xml.php:
|
1685 |
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:24
|
1686 |
msgid "Update Every Minute"
|
1687 |
msgstr ""
|
1688 |
|
1689 |
-
#: includes/class-wcj-currency-exchange-rates.php:
|
1690 |
-
#: includes/class-wcj-products-xml.php:
|
1691 |
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:25
|
1692 |
msgid "Update Hourly"
|
1693 |
msgstr ""
|
1694 |
|
1695 |
-
#: includes/class-wcj-currency-exchange-rates.php:
|
1696 |
-
#: includes/class-wcj-products-xml.php:
|
1697 |
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:26
|
1698 |
msgid "Update Twice Daily"
|
1699 |
msgstr ""
|
1700 |
|
1701 |
-
#: includes/class-wcj-currency-exchange-rates.php:
|
1702 |
-
#: includes/class-wcj-products-xml.php:
|
1703 |
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:27
|
1704 |
msgid "Update Daily"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
-
#: includes/class-wcj-currency-exchange-rates.php:
|
1708 |
-
#: includes/class-wcj-products-xml.php:
|
1709 |
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:28
|
1710 |
msgid "Update Weekly"
|
1711 |
msgstr ""
|
1712 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1713 |
#: includes/class-wcj-currency-external-products.php:25
|
1714 |
msgid "Currency for External Products"
|
1715 |
msgstr ""
|
@@ -1723,11 +1751,11 @@ msgid "Currency for External Products Options"
|
|
1723 |
msgstr ""
|
1724 |
|
1725 |
#: includes/class-wcj-currency-external-products.php:79
|
1726 |
-
#: includes/class-wcj-currency-per-product.php:
|
1727 |
-
#: includes/class-wcj-multicurrency-product-base-price.php:
|
1728 |
-
#: includes/class-wcj-multicurrency.php:
|
1729 |
-
#: includes/class-wcj-price-by-country.php:
|
1730 |
-
#: includes/class-wcj-price-formats.php:
|
1731 |
msgid "Currency"
|
1732 |
msgstr ""
|
1733 |
|
@@ -1743,64 +1771,142 @@ msgstr ""
|
|
1743 |
msgid "Display prices for WooCommerce products in different currencies."
|
1744 |
msgstr ""
|
1745 |
|
1746 |
-
#: includes/class-wcj-currency-per-product.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1747 |
msgctxt "Price range: from-to"
|
1748 |
msgid "%1$s–%2$s"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: includes/class-wcj-currency-per-product.php:
|
1752 |
-
#: includes/class-wcj-multicurrency-product-base-price.php:
|
1753 |
msgid "Product Currency"
|
1754 |
msgstr ""
|
1755 |
|
1756 |
-
#: includes/class-wcj-currency-per-product.php:
|
1757 |
msgid "Update product after you change this field's value."
|
1758 |
msgstr ""
|
1759 |
|
1760 |
-
#: includes/class-wcj-currency-per-product.php:
|
1761 |
-
|
1762 |
-
|
1763 |
-
|
1764 |
-
#: includes/class-wcj-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1765 |
msgid "Enter Rates Manually"
|
1766 |
msgstr ""
|
1767 |
|
1768 |
-
#: includes/class-wcj-currency-per-product.php:
|
1769 |
-
#: includes/class-wcj-multicurrency-product-base-price.php:
|
1770 |
-
#: includes/class-wcj-multicurrency.php:
|
1771 |
-
#: includes/class-wcj-payment-gateways-currency.php:
|
1772 |
-
#: includes/class-wcj-price-by-country.php:
|
1773 |
msgid "Automatically via Currency Exchange Rates module"
|
1774 |
msgstr ""
|
1775 |
|
1776 |
-
#: includes/class-wcj-currency-per-product.php:
|
1777 |
-
#: includes/class-wcj-multicurrency-product-base-price.php:
|
1778 |
-
#: includes/class-wcj-multicurrency.php:
|
1779 |
-
#: includes/class-wcj-payment-gateways-currency.php:
|
1780 |
-
#: includes/class-wcj-price-by-country.php:
|
1781 |
msgid "Visit"
|
1782 |
msgstr ""
|
1783 |
|
1784 |
-
#: includes/class-wcj-currency-per-product.php:
|
1785 |
-
#: includes/class-wcj-multicurrency-product-base-price.php:
|
1786 |
-
#: includes/class-wcj-multicurrency.php:
|
1787 |
-
#: includes/class-wcj-payment-gateways-currency.php:
|
1788 |
-
#: includes/class-wcj-price-by-country.php:
|
1789 |
msgid "Currency Exchange Rates module"
|
1790 |
msgstr ""
|
1791 |
|
1792 |
-
#: includes/class-wcj-currency-per-product.php:
|
1793 |
-
#: includes/class-wcj-multicurrency-product-base-price.php:
|
1794 |
-
#: includes/class-wcj-multicurrency.php:
|
1795 |
msgid "Currencies Options"
|
1796 |
msgstr ""
|
1797 |
|
1798 |
-
#: includes/class-wcj-currency-per-product.php:
|
1799 |
-
|
1800 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1801 |
msgid "Total Currencies"
|
1802 |
msgstr ""
|
1803 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1804 |
#: includes/class-wcj-emails.php:25
|
1805 |
msgid "Emails"
|
1806 |
msgstr ""
|
@@ -1810,76 +1916,88 @@ msgid ""
|
|
1810 |
"Add custom emails. Add another email recipient(s) to all WooCommerce emails."
|
1811 |
msgstr ""
|
1812 |
|
1813 |
-
#: includes/class-wcj-emails.php:
|
1814 |
msgid "Booster: Email Forwarding Options"
|
1815 |
msgstr ""
|
1816 |
|
1817 |
-
#: includes/class-wcj-emails.php:
|
1818 |
msgid "Email Forwarding Options"
|
1819 |
msgstr ""
|
1820 |
|
1821 |
-
#: includes/class-wcj-emails.php:
|
1822 |
msgid ""
|
1823 |
"This section lets you add another email recipient(s) to all WooCommerce "
|
1824 |
"emails. Leave blank to disable."
|
1825 |
msgstr ""
|
1826 |
|
1827 |
-
#: includes/class-wcj-emails.php:
|
1828 |
msgid "Cc Email"
|
1829 |
msgstr ""
|
1830 |
|
1831 |
-
#: includes/class-wcj-emails.php:
|
1832 |
msgid "Cc to email, e.g. youremail@yourdomain.com. Leave blank to disable."
|
1833 |
msgstr ""
|
1834 |
|
1835 |
-
#: includes/class-wcj-emails.php:
|
1836 |
msgid "Bcc Email"
|
1837 |
msgstr ""
|
1838 |
|
1839 |
-
#: includes/class-wcj-emails.php:
|
1840 |
msgid "Bcc to email, e.g. youremail@yourdomain.com. Leave blank to disable."
|
1841 |
msgstr ""
|
1842 |
|
1843 |
-
#: includes/class-wcj-emails.php:
|
1844 |
msgid "Custom Emails"
|
1845 |
msgstr ""
|
1846 |
|
1847 |
-
#: includes/class-wcj-emails.php:
|
1848 |
msgid ""
|
1849 |
"This section lets you set number of custom emails to add. After setting the "
|
1850 |
"number, visit \"WooCommerce > Settings > Emails\" to set each email options."
|
1851 |
msgstr ""
|
1852 |
|
1853 |
-
#: includes/class-wcj-emails.php:
|
1854 |
msgid "Custom Emails Number"
|
1855 |
msgstr ""
|
1856 |
|
1857 |
-
#: includes/class-wcj-emails.php:
|
1858 |
msgid "Admin Title Custom Email"
|
1859 |
msgstr ""
|
1860 |
|
1861 |
-
#: includes/class-wcj-emails.php:
|
1862 |
#: includes/emails/class-wc-email-wcj-custom.php:30
|
1863 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
1864 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:44
|
1865 |
msgid "Custom"
|
1866 |
msgstr ""
|
1867 |
|
1868 |
-
#: includes/class-wcj-
|
1869 |
-
msgid "
|
1870 |
msgstr ""
|
1871 |
|
1872 |
-
#: includes/class-wcj-
|
1873 |
-
msgid "Add
|
1874 |
msgstr ""
|
1875 |
|
1876 |
-
#: includes/class-wcj-
|
1877 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1878 |
msgstr ""
|
1879 |
|
1880 |
-
#: includes/class-wcj-empty-cart-button.php:
|
1881 |
msgid ""
|
1882 |
-
"
|
|
|
1883 |
msgstr ""
|
1884 |
|
1885 |
#: includes/class-wcj-empty-cart-button.php:80
|
@@ -1919,7 +2037,7 @@ msgid "Button position on the Checkout page"
|
|
1919 |
msgstr ""
|
1920 |
|
1921 |
#: includes/class-wcj-empty-cart-button.php:114
|
1922 |
-
#: includes/class-wcj-orders.php:
|
1923 |
msgid "Do not add"
|
1924 |
msgstr ""
|
1925 |
|
@@ -1940,88 +2058,171 @@ msgid "Confirmation Text (if enabled)"
|
|
1940 |
msgstr ""
|
1941 |
|
1942 |
#: includes/class-wcj-empty-cart-button.php:141
|
|
|
1943 |
#: includes/class-wcj-product-by-user.php:165
|
1944 |
-
#: includes/classes/class-wcj-module.php:
|
1945 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:285
|
1946 |
msgid "Are you sure?"
|
1947 |
msgstr ""
|
1948 |
|
1949 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1950 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1951 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1952 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1953 |
msgid "EU VAT Number"
|
1954 |
msgstr ""
|
1955 |
|
1956 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1957 |
msgid ""
|
1958 |
"Collect and validate EU VAT numbers on WooCommerce checkout. Automatically "
|
1959 |
"disable VAT for valid numbers. Add all EU countries VAT standard rates to "
|
1960 |
"WooCommerce."
|
1961 |
msgstr ""
|
1962 |
|
1963 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1964 |
msgid "EU Countries VAT Rates"
|
1965 |
msgstr ""
|
1966 |
|
1967 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1968 |
msgid "Add all EU countries VAT standard rates to WooCommerce."
|
1969 |
msgstr ""
|
1970 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1971 |
#: includes/class-wcj-eu-vat-number.php:301
|
1972 |
-
#: includes/class-wcj-eu-vat-number.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1973 |
msgid "<strong>EU VAT Number</strong> is not valid."
|
1974 |
msgstr ""
|
1975 |
|
1976 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1977 |
msgid "Field Label"
|
1978 |
msgstr ""
|
1979 |
|
1980 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1981 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:
|
1982 |
msgid "Placeholder"
|
1983 |
msgstr ""
|
1984 |
|
1985 |
-
#: includes/class-wcj-eu-vat-number.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1986 |
msgid "Clear"
|
1987 |
msgstr ""
|
1988 |
|
1989 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1990 |
msgid "Class"
|
1991 |
msgstr ""
|
1992 |
|
1993 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1994 |
msgid "Validate"
|
1995 |
msgstr ""
|
1996 |
|
1997 |
-
#: includes/class-wcj-eu-vat-number.php:
|
1998 |
msgid "Message on not valid"
|
1999 |
msgstr ""
|
2000 |
|
2001 |
-
#: includes/class-wcj-eu-vat-number.php:
|
2002 |
msgid "Exempt VAT for Valid Numbers"
|
2003 |
msgstr ""
|
2004 |
|
2005 |
-
#: includes/class-wcj-eu-vat-number.php:
|
2006 |
msgid "Preserve VAT in Base Country"
|
2007 |
msgstr ""
|
2008 |
|
2009 |
-
#: includes/class-wcj-eu-vat-number.php:
|
2010 |
msgid "Check for IP Location Country"
|
2011 |
msgstr ""
|
2012 |
|
2013 |
-
#: includes/class-wcj-eu-vat-number.php:
|
2014 |
msgid "Display"
|
2015 |
msgstr ""
|
2016 |
|
2017 |
-
#: includes/class-wcj-eu-vat-number.php:
|
2018 |
msgid "After order table"
|
2019 |
msgstr ""
|
2020 |
|
2021 |
-
#: includes/class-wcj-eu-vat-number.php:
|
2022 |
msgid "In billing address"
|
2023 |
msgstr ""
|
2024 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025 |
#: includes/class-wcj-export-import.php:29
|
2026 |
msgid "WooCommerce export tools."
|
2027 |
msgstr ""
|
@@ -2070,183 +2271,201 @@ msgstr ""
|
|
2070 |
msgid "Export Products."
|
2071 |
msgstr ""
|
2072 |
|
2073 |
-
#: includes/class-wcj-export-import.php:
|
2074 |
-
#: includes/class-wcj-export-import.php:
|
2075 |
msgid "Filter by Billing Country"
|
2076 |
msgstr ""
|
2077 |
|
2078 |
-
#: includes/class-wcj-export-import.php:
|
2079 |
msgid "Filter by Product Title"
|
2080 |
msgstr ""
|
2081 |
|
2082 |
-
#: includes/class-wcj-export-import.php:
|
2083 |
msgid "Filter"
|
2084 |
msgstr ""
|
2085 |
|
2086 |
-
#: includes/class-wcj-export-import.php:
|
2087 |
msgid "Download CSV"
|
2088 |
msgstr ""
|
2089 |
|
2090 |
-
#: includes/class-wcj-export-import.php:
|
2091 |
msgid "Download XML"
|
2092 |
msgstr ""
|
2093 |
|
2094 |
-
#: includes/class-wcj-export-import.php:
|
2095 |
msgid "Filter by All Fields"
|
2096 |
msgstr ""
|
2097 |
|
2098 |
-
#: includes/class-wcj-export-import.php:
|
2099 |
msgid "Export Options"
|
2100 |
msgstr ""
|
2101 |
|
2102 |
-
#: includes/class-wcj-export-import.php:
|
2103 |
msgid "CSV Separator"
|
2104 |
msgstr ""
|
2105 |
|
2106 |
-
#: includes/class-wcj-export-import.php:
|
2107 |
msgid "UTF-8 BOM"
|
2108 |
msgstr ""
|
2109 |
|
2110 |
-
#: includes/class-wcj-export-import.php:
|
2111 |
msgid "Add UTF-8 BOM sequence"
|
2112 |
msgstr ""
|
2113 |
|
2114 |
-
#: includes/class-wcj-export-import.php:
|
2115 |
msgid "Export Orders Options"
|
2116 |
msgstr ""
|
2117 |
|
2118 |
-
#: includes/class-wcj-export-import.php:
|
2119 |
msgid "Export Orders Fields"
|
2120 |
msgstr ""
|
2121 |
|
2122 |
-
#: includes/class-wcj-export-import.php:
|
2123 |
-
#: includes/class-wcj-export-import.php:
|
2124 |
-
#: includes/class-wcj-export-import.php:
|
2125 |
-
#: includes/class-wcj-export-import.php:
|
2126 |
-
#: includes/class-wcj-export-import.php:
|
2127 |
msgid "Hold \"Control\" key to select multiple fields."
|
2128 |
msgstr ""
|
2129 |
|
2130 |
-
#: includes/class-wcj-export-import.php:
|
2131 |
msgid "Additional Export Orders Fields"
|
2132 |
msgstr ""
|
2133 |
|
2134 |
-
#: includes/class-wcj-export-import.php:
|
2135 |
-
#: includes/class-wcj-export-import.php:
|
2136 |
-
#: includes/class-wcj-export-import.php:
|
2137 |
#: includes/class-wcj-product-by-user.php:156
|
2138 |
-
#: includes/class-wcj-product-tabs.php:
|
2139 |
-
#: includes/class-wcj-product-tabs.php:
|
2140 |
-
#: includes/class-wcj-purchase-data.php:
|
2141 |
-
#: includes/class-wcj-related-products.php:
|
2142 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:68
|
2143 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:
|
2144 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
2145 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:82
|
2146 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:259
|
2147 |
msgid "Title"
|
2148 |
msgstr ""
|
2149 |
|
2150 |
-
#: includes/class-wcj-export-import.php:
|
2151 |
-
#: includes/class-wcj-export-import.php:
|
2152 |
-
#: includes/class-wcj-export-import.php:
|
2153 |
-
#: includes/class-wcj-global-discount.php:
|
2154 |
-
#: includes/class-wcj-product-addons.php:
|
2155 |
-
#: includes/class-wcj-product-addons.php:
|
2156 |
-
#: includes/class-wcj-purchase-data.php:
|
2157 |
-
#: includes/
|
|
|
2158 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:44
|
2159 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
2160 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:89
|
2161 |
msgid "Type"
|
2162 |
msgstr ""
|
2163 |
|
2164 |
-
#: includes/class-wcj-export-import.php:
|
2165 |
-
#: includes/class-wcj-export-import.php:
|
2166 |
msgid "Order Shortcode"
|
2167 |
msgstr ""
|
2168 |
|
2169 |
-
#: includes/class-wcj-export-import.php:
|
2170 |
-
#: includes/class-wcj-export-import.php:
|
2171 |
-
#: includes/class-wcj-export-import.php:
|
2172 |
-
#: includes/class-wcj-global-discount.php:
|
2173 |
-
#: includes/class-wcj-orders.php:
|
2174 |
msgid "Value"
|
2175 |
msgstr ""
|
2176 |
|
2177 |
-
#: includes/class-wcj-export-import.php:
|
2178 |
msgid ""
|
2179 |
"If field's \"Type\" is set to \"Meta\", enter order meta key to retrieve "
|
2180 |
"(can be custom field name)."
|
2181 |
msgstr ""
|
2182 |
|
2183 |
-
#: includes/class-wcj-export-import.php:
|
2184 |
msgid "If it's set to \"Shortcode\", use Booster's Orders shortcodes here."
|
2185 |
msgstr ""
|
2186 |
|
2187 |
-
#: includes/class-wcj-export-import.php:
|
2188 |
msgid "Export Orders Items Options"
|
2189 |
msgstr ""
|
2190 |
|
2191 |
-
#: includes/class-wcj-export-import.php:
|
2192 |
msgid "Export Orders Items Fields"
|
2193 |
msgstr ""
|
2194 |
|
2195 |
-
#: includes/class-wcj-export-import.php:
|
2196 |
msgid "Additional Export Orders Items Fields"
|
2197 |
msgstr ""
|
2198 |
|
2199 |
-
#: includes/class-wcj-export-import.php:
|
2200 |
-
#: includes/class-wcj-export-import.php:
|
2201 |
msgid "Product Shortcode"
|
2202 |
msgstr ""
|
2203 |
|
2204 |
-
#: includes/class-wcj-export-import.php:
|
2205 |
msgid ""
|
2206 |
"If field's \"Type\" is set to \"Meta\", enter order/product meta key to "
|
2207 |
"retrieve (can be custom field name)."
|
2208 |
msgstr ""
|
2209 |
|
2210 |
-
#: includes/class-wcj-export-import.php:
|
2211 |
msgid ""
|
2212 |
"If it's set to \"Shortcode\", use Booster's Orders/Products shortcodes here."
|
2213 |
msgstr ""
|
2214 |
|
2215 |
-
#: includes/class-wcj-export-import.php:
|
2216 |
msgid "Export Products Options"
|
2217 |
msgstr ""
|
2218 |
|
2219 |
-
#: includes/class-wcj-export-import.php:
|
2220 |
msgid "Export Products Fields"
|
2221 |
msgstr ""
|
2222 |
|
2223 |
-
#: includes/class-wcj-export-import.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2224 |
msgid "Additional Export Products Fields"
|
2225 |
msgstr ""
|
2226 |
|
2227 |
-
#: includes/class-wcj-export-import.php:
|
2228 |
msgid ""
|
2229 |
"If field's \"Type\" is set to \"Meta\", enter product meta key to retrieve "
|
2230 |
"(can be custom field name)."
|
2231 |
msgstr ""
|
2232 |
|
2233 |
-
#: includes/class-wcj-export-import.php:
|
2234 |
msgid "If it's set to \"Shortcode\", use Booster's Products shortcodes here."
|
2235 |
msgstr ""
|
2236 |
|
2237 |
-
#: includes/class-wcj-export-import.php:
|
2238 |
msgid "Export Customers Options"
|
2239 |
msgstr ""
|
2240 |
|
2241 |
-
#: includes/class-wcj-export-import.php:
|
2242 |
msgid "Export Customers Fields"
|
2243 |
msgstr ""
|
2244 |
|
2245 |
-
#: includes/class-wcj-export-import.php:
|
2246 |
msgid "Export Customers from Orders Options"
|
2247 |
msgstr ""
|
2248 |
|
2249 |
-
#: includes/class-wcj-export-import.php:
|
2250 |
msgid "Export Customers from Orders Fields"
|
2251 |
msgstr ""
|
2252 |
|
@@ -2258,59 +2477,57 @@ msgstr ""
|
|
2258 |
msgid "WooCommerce free price labels."
|
2259 |
msgstr ""
|
2260 |
|
2261 |
-
#: includes/class-wcj-free-price.php:
|
2262 |
-
#: includes/class-wcj-free-price.php:
|
2263 |
-
#: includes/class-wcj-free-price.php:
|
2264 |
msgid "Free!"
|
2265 |
msgstr ""
|
2266 |
|
2267 |
-
#: includes/class-wcj-free-price.php:
|
2268 |
-
msgid "Labels can contain shortcodes."
|
2269 |
-
msgstr ""
|
2270 |
-
|
2271 |
-
#: includes/class-wcj-free-price.php:138
|
2272 |
msgid "Simple and Custom Products"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
-
#: includes/class-wcj-free-price.php:
|
2276 |
-
msgid "Variable Products"
|
2277 |
-
msgstr ""
|
2278 |
-
|
2279 |
-
#: includes/class-wcj-free-price.php:140
|
2280 |
msgid "Grouped Products"
|
2281 |
msgstr ""
|
2282 |
|
2283 |
-
#: includes/class-wcj-free-price.php:
|
2284 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
2285 |
msgid "External Products"
|
2286 |
msgstr ""
|
2287 |
|
2288 |
-
#: includes/class-wcj-free-price.php:
|
2289 |
msgid "Single Product Page"
|
2290 |
msgstr ""
|
2291 |
|
2292 |
-
#: includes/class-wcj-free-price.php:
|
2293 |
-
#: includes/class-wcj-related-products.php:
|
|
|
2294 |
msgid "Related Products"
|
2295 |
msgstr ""
|
2296 |
|
2297 |
-
#: includes/class-wcj-free-price.php:
|
2298 |
msgid "Homepage"
|
2299 |
msgstr ""
|
2300 |
|
2301 |
-
#: includes/class-wcj-free-price.php:
|
2302 |
msgid "Pages (e.g. Shortcodes)"
|
2303 |
msgstr ""
|
2304 |
|
2305 |
-
#: includes/class-wcj-free-price.php:
|
2306 |
msgid "Archives (Product Categories)"
|
2307 |
msgstr ""
|
2308 |
|
2309 |
-
#: includes/class-wcj-free-price.php:
|
|
|
|
|
|
|
|
|
2310 |
msgid "Variations"
|
2311 |
msgstr ""
|
2312 |
|
2313 |
#: includes/class-wcj-general.php:25 includes/class-wcj-pdf-invoicing.php:26
|
|
|
2314 |
msgid "General"
|
2315 |
msgstr ""
|
2316 |
|
@@ -2321,7 +2538,7 @@ msgid ""
|
|
2321 |
msgstr ""
|
2322 |
|
2323 |
#: includes/class-wcj-general.php:32
|
2324 |
-
msgid "Products
|
2325 |
msgstr ""
|
2326 |
|
2327 |
#: includes/class-wcj-general.php:33
|
@@ -2340,195 +2557,212 @@ msgstr ""
|
|
2340 |
msgid "Manage Custom Roles."
|
2341 |
msgstr ""
|
2342 |
|
2343 |
-
#: includes/class-wcj-general.php:
|
2344 |
msgid "Both fields are required!"
|
2345 |
msgstr ""
|
2346 |
|
2347 |
-
#: includes/class-wcj-general.php:
|
2348 |
msgid "Role ID must not be numbers only!"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
-
#: includes/class-wcj-general.php:
|
2352 |
msgid "Role successfully added!"
|
2353 |
msgstr ""
|
2354 |
|
2355 |
-
#: includes/class-wcj-general.php:
|
2356 |
msgid "Role already exists!"
|
2357 |
msgstr ""
|
2358 |
|
2359 |
-
#: includes/class-wcj-general.php:
|
|
|
2360 |
msgid "Role %s successfully deleted!"
|
2361 |
msgstr ""
|
2362 |
|
2363 |
-
#: includes/class-wcj-general.php:
|
2364 |
-
#: includes/class-wcj-sku.php:
|
2365 |
-
#: includes/reports/wcj-class-reports-sales.php:
|
2366 |
msgid "ID"
|
2367 |
msgstr ""
|
2368 |
|
2369 |
-
#: includes/class-wcj-general.php:
|
2370 |
-
#: includes/export/class-wcj-fields-helper.php:
|
2371 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:72
|
2372 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:106
|
2373 |
msgid "Name"
|
2374 |
msgstr ""
|
2375 |
|
2376 |
-
#: includes/class-wcj-general.php:
|
|
|
2377 |
#: includes/class-wcj-product-by-user.php:156
|
2378 |
msgid "Actions"
|
2379 |
msgstr ""
|
2380 |
|
2381 |
-
#: includes/class-wcj-general.php:
|
2382 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2383 |
-
#: includes/class-wcj-order-custom-statuses.php:242
|
2384 |
#: includes/class-wcj-product-by-user.php:165
|
2385 |
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:151
|
2386 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:285
|
2387 |
msgid "Delete"
|
2388 |
msgstr ""
|
2389 |
|
2390 |
-
#: includes/class-wcj-general.php:
|
2391 |
msgid "Existing Roles"
|
2392 |
msgstr ""
|
2393 |
|
2394 |
-
#: includes/class-wcj-general.php:
|
2395 |
msgid "Add New Role"
|
2396 |
msgstr ""
|
2397 |
|
2398 |
-
#: includes/class-wcj-general.php:
|
2399 |
msgid "PayPal Email"
|
2400 |
msgstr ""
|
2401 |
|
2402 |
-
#: includes/class-wcj-general.php:
|
2403 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
2404 |
-
#: includes/class-wcj-sku.php:
|
2405 |
-
#: includes/reports/wcj-class-reports-sales.php:
|
2406 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
2407 |
msgid "Product"
|
2408 |
msgstr ""
|
2409 |
|
2410 |
-
#: includes/class-wcj-general.php:
|
2411 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
2412 |
msgid "Category"
|
2413 |
msgstr ""
|
2414 |
|
2415 |
-
#: includes/class-wcj-general.php:
|
2416 |
msgid "Total Products:"
|
2417 |
msgstr ""
|
2418 |
|
2419 |
-
#: includes/class-wcj-general.php:
|
2420 |
msgid "Shortcodes Options"
|
2421 |
msgstr ""
|
2422 |
|
2423 |
-
#: includes/class-wcj-general.php:
|
2424 |
msgid "Enable All Shortcodes in WordPress Text Widgets"
|
2425 |
msgstr ""
|
2426 |
|
2427 |
-
#: includes/class-wcj-general.php:
|
2428 |
msgid ""
|
2429 |
"This will enable all (including non Booster's) shortcodes in WordPress text "
|
2430 |
"widgets."
|
2431 |
msgstr ""
|
2432 |
|
2433 |
-
#: includes/class-wcj-general.php:
|
2434 |
msgid "Disable Booster's Shortcodes"
|
2435 |
msgstr ""
|
2436 |
|
2437 |
-
#: includes/class-wcj-general.php:
|
2438 |
msgid "Disable all Booster's shortcodes (for memory saving)."
|
2439 |
msgstr ""
|
2440 |
|
2441 |
-
#: includes/class-wcj-general.php:
|
2442 |
-
#: includes/class-wcj-general.php:
|
2443 |
-
#: includes/class-wcj-general.php:
|
2444 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
|
|
2445 |
msgid "Disable"
|
2446 |
msgstr ""
|
2447 |
|
2448 |
-
#: includes/class-wcj-general.php:
|
2449 |
-
msgid "Custom CSS Options"
|
2450 |
-
msgstr ""
|
2451 |
-
|
2452 |
-
#: includes/class-wcj-general.php:363
|
2453 |
-
msgid "Another custom CSS, if you need one."
|
2454 |
-
msgstr ""
|
2455 |
-
|
2456 |
-
#: includes/class-wcj-general.php:367
|
2457 |
-
msgid "Custom CSS - Front end (Customers)"
|
2458 |
-
msgstr ""
|
2459 |
-
|
2460 |
-
#: includes/class-wcj-general.php:374
|
2461 |
-
msgid "Custom CSS - Back end (Admin)"
|
2462 |
-
msgstr ""
|
2463 |
-
|
2464 |
-
#: includes/class-wcj-general.php:385 includes/class-wcj-general.php:390
|
2465 |
msgid "Product Revisions"
|
2466 |
msgstr ""
|
2467 |
|
2468 |
-
#: includes/class-wcj-general.php:
|
2469 |
msgid "Advanced Options"
|
2470 |
msgstr ""
|
2471 |
|
2472 |
-
#: includes/class-wcj-general.php:
|
2473 |
msgid "Recalculate Cart Totals on Every Page Load"
|
2474 |
msgstr ""
|
2475 |
|
2476 |
-
#: includes/class-wcj-general.php:
|
2477 |
msgid "Disable Loading Datepicker/Weekpicker CSS"
|
2478 |
msgstr ""
|
2479 |
|
2480 |
-
#: includes/class-wcj-general.php:
|
2481 |
msgid "Datepicker/Weekpicker CSS"
|
2482 |
msgstr ""
|
2483 |
|
2484 |
-
#: includes/class-wcj-general.php:
|
2485 |
msgid "Disable Loading Datepicker/Weekpicker JavaScript"
|
2486 |
msgstr ""
|
2487 |
|
2488 |
-
#: includes/class-wcj-general.php:
|
2489 |
msgid "Disable Loading Timepicker CSS"
|
2490 |
msgstr ""
|
2491 |
|
2492 |
-
#: includes/class-wcj-general.php:
|
2493 |
msgid "Disable Loading Timepicker JavaScript"
|
2494 |
msgstr ""
|
2495 |
|
2496 |
-
#: includes/class-wcj-general.php:
|
2497 |
msgid "Disable Saving PDFs in PHP directory for temporary files"
|
2498 |
msgstr ""
|
2499 |
|
2500 |
-
#: includes/class-wcj-general.php:
|
2501 |
msgid "PayPal Email per Product Options"
|
2502 |
msgstr ""
|
2503 |
|
2504 |
-
#: includes/class-wcj-general.php:
|
2505 |
msgid "PayPal Email per Product"
|
2506 |
msgstr ""
|
2507 |
|
2508 |
-
#: includes/class-wcj-general.php:
|
2509 |
msgid "This will add new meta box to each product's edit page."
|
2510 |
msgstr ""
|
2511 |
|
2512 |
-
#: includes/class-wcj-general.php:
|
2513 |
msgid "Session Expiration Options"
|
2514 |
msgstr ""
|
2515 |
|
2516 |
-
#: includes/class-wcj-general.php:
|
2517 |
msgid "Session Expiration"
|
2518 |
msgstr ""
|
2519 |
|
2520 |
-
#: includes/class-wcj-general.php:
|
2521 |
msgid "Session Expiring"
|
2522 |
msgstr ""
|
2523 |
|
2524 |
-
#: includes/class-wcj-general.php:
|
2525 |
msgid "In seconds. Default: 47 hours (60 * 60 * 47)"
|
2526 |
msgstr ""
|
2527 |
|
2528 |
-
#: includes/class-wcj-general.php:
|
2529 |
msgid "In seconds. Default: 48 hours (60 * 60 * 48)"
|
2530 |
msgstr ""
|
2531 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2532 |
#: includes/class-wcj-global-discount.php:28
|
2533 |
msgid "Global Discount"
|
2534 |
msgstr ""
|
@@ -2537,57 +2771,64 @@ msgstr ""
|
|
2537 |
msgid "Add global discount to all WooCommerce products."
|
2538 |
msgstr ""
|
2539 |
|
2540 |
-
#: includes/class-wcj-global-discount.php:
|
2541 |
msgid "Total Groups"
|
2542 |
msgstr ""
|
2543 |
|
2544 |
-
#: includes/class-wcj-global-discount.php:
|
2545 |
-
#: includes/class-wcj-products-xml.php:
|
2546 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:112
|
2547 |
msgid "Press Save changes after you change this number."
|
2548 |
msgstr ""
|
2549 |
|
2550 |
-
#: includes/class-wcj-global-discount.php:
|
2551 |
msgid "Discount Group"
|
2552 |
msgstr ""
|
2553 |
|
2554 |
-
#: includes/class-wcj-global-discount.php:
|
2555 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
2556 |
-
#: includes/class-wcj-purchase-data.php:
|
2557 |
-
#: includes/class-wcj-wholesale-price.php:
|
2558 |
-
#: includes/class-wcj-wholesale-price.php:
|
2559 |
msgid "Percent"
|
2560 |
msgstr ""
|
2561 |
|
2562 |
-
#: includes/class-wcj-global-discount.php:
|
2563 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
2564 |
-
#: includes/class-wcj-purchase-data.php:
|
2565 |
-
#: includes/class-wcj-wholesale-price.php:
|
2566 |
-
#: includes/class-wcj-wholesale-price.php:
|
2567 |
msgid "Fixed"
|
2568 |
msgstr ""
|
2569 |
|
2570 |
-
#: includes/class-wcj-global-discount.php:
|
2571 |
msgid "Must be negative number."
|
2572 |
msgstr ""
|
2573 |
|
2574 |
-
#: includes/class-wcj-global-discount.php:
|
2575 |
msgid "Product Scope"
|
2576 |
msgstr ""
|
2577 |
|
2578 |
-
#: includes/class-wcj-global-discount.php:
|
|
|
|
|
2579 |
msgid "All products"
|
2580 |
msgstr ""
|
2581 |
|
2582 |
-
#: includes/class-wcj-global-discount.php:
|
2583 |
msgid "Only products that are already on sale"
|
2584 |
msgstr ""
|
2585 |
|
2586 |
-
#: includes/class-wcj-global-discount.php:
|
|
|
|
|
|
|
|
|
|
|
2587 |
msgid "Include Product Categories"
|
2588 |
msgstr ""
|
2589 |
|
2590 |
-
#: includes/class-wcj-global-discount.php:
|
2591 |
msgid ""
|
2592 |
"Set this field to apply discount to selected categories only. Leave blank to "
|
2593 |
"apply to all categories."
|
@@ -2605,88 +2846,96 @@ msgstr ""
|
|
2605 |
#: includes/class-wcj-left-to-free-shipping.php:66
|
2606 |
#: includes/class-wcj-left-to-free-shipping.php:76
|
2607 |
#: includes/class-wcj-left-to-free-shipping.php:86
|
2608 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2609 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2610 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2611 |
-
#: includes/functions/wcj-functions.php:
|
2612 |
#: includes/widgets/class-wcj-widget-left-to-free-shipping.php:53
|
|
|
2613 |
msgid "%left_to_free% left to free shipping"
|
2614 |
msgstr ""
|
2615 |
|
2616 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2617 |
msgid "Left to Free Shipping Info Options"
|
2618 |
msgstr ""
|
2619 |
|
2620 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2621 |
msgid ""
|
2622 |
"This section lets you enable info on cart, mini cart and checkout pages."
|
2623 |
msgstr ""
|
2624 |
|
2625 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2626 |
msgid ""
|
2627 |
"You can also use <em>Booster - Left to Free Shipping</em> widget, <em>"
|
2628 |
"[wcj_get_left_to_free_shipping content=\"\"]</em> shortcode or "
|
2629 |
"<em>wcj_get_left_to_free_shipping( $content );</em> function."
|
2630 |
msgstr ""
|
2631 |
|
2632 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2633 |
msgid ""
|
2634 |
"In content you can use: <em>%left_to_free%</em> and <em>"
|
2635 |
"%free_shipping_min_amount%</em> shortcodes."
|
2636 |
msgstr ""
|
2637 |
|
2638 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2639 |
msgid "Info on Cart"
|
2640 |
msgstr ""
|
2641 |
|
2642 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2643 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2644 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2645 |
msgid "Position Order (Priority)"
|
2646 |
msgstr ""
|
2647 |
|
2648 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2649 |
msgid "Info on Mini Cart"
|
2650 |
msgstr ""
|
2651 |
|
2652 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2653 |
#: includes/class-wcj-mini-cart.php:119
|
2654 |
msgid "Before mini cart"
|
2655 |
msgstr ""
|
2656 |
|
2657 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2658 |
#: includes/class-wcj-mini-cart.php:120
|
2659 |
msgid "Before buttons"
|
2660 |
msgstr ""
|
2661 |
|
2662 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2663 |
#: includes/class-wcj-mini-cart.php:121
|
2664 |
msgid "After mini cart"
|
2665 |
msgstr ""
|
2666 |
|
2667 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2668 |
msgid "Info on Checkout"
|
2669 |
msgstr ""
|
2670 |
|
2671 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2672 |
msgid "Message on Free Shipping Reached"
|
2673 |
msgstr ""
|
2674 |
|
2675 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2676 |
-
msgid "
|
2677 |
msgstr ""
|
2678 |
|
2679 |
-
#: includes/class-wcj-left-to-free-shipping.php:
|
2680 |
-
#: includes/functions/wcj-functions.php:
|
2681 |
msgid "You have Free delivery"
|
2682 |
msgstr ""
|
2683 |
|
2684 |
#: includes/class-wcj-mini-cart.php:26
|
2685 |
-
msgid "Mini Cart"
|
2686 |
msgstr ""
|
2687 |
|
2688 |
#: includes/class-wcj-mini-cart.php:27
|
2689 |
-
msgid "
|
2690 |
msgstr ""
|
2691 |
|
2692 |
#: includes/class-wcj-mini-cart.php:74
|
@@ -2701,15 +2950,15 @@ msgstr ""
|
|
2701 |
msgid "Set WooCommerce \"Place order\" button label."
|
2702 |
msgstr ""
|
2703 |
|
2704 |
-
#: includes/class-wcj-more-button-labels.php:
|
2705 |
msgid "Place order (Order now) Button"
|
2706 |
msgstr ""
|
2707 |
|
2708 |
-
#: includes/class-wcj-more-button-labels.php:
|
2709 |
-
msgid "
|
2710 |
msgstr ""
|
2711 |
|
2712 |
-
#: includes/class-wcj-more-button-labels.php:
|
2713 |
msgid "Button on the checkout page."
|
2714 |
msgstr ""
|
2715 |
|
@@ -2732,8 +2981,8 @@ msgstr ""
|
|
2732 |
#: includes/class-wcj-multicurrency.php:76
|
2733 |
#: includes/class-wcj-price-by-user-role.php:163
|
2734 |
#: includes/class-wcj-product-by-user.php:205
|
2735 |
-
#: includes/export/class-wcj-fields-helper.php:
|
2736 |
-
#: includes/price-by-country/class-wcj-price-by-country-local.php:
|
2737 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:154
|
2738 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:298
|
2739 |
msgid "Regular Price"
|
@@ -2742,14 +2991,14 @@ msgstr ""
|
|
2742 |
#: includes/class-wcj-multicurrency.php:85
|
2743 |
#: includes/class-wcj-price-by-user-role.php:172
|
2744 |
#: includes/class-wcj-product-by-user.php:206
|
2745 |
-
#: includes/export/class-wcj-fields-helper.php:
|
2746 |
-
#: includes/price-by-country/class-wcj-price-by-country-local.php:
|
2747 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:155
|
2748 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:306
|
2749 |
msgid "Sale Price"
|
2750 |
msgstr ""
|
2751 |
|
2752 |
-
#: includes/class-wcj-multicurrency.php:
|
2753 |
msgid ""
|
2754 |
"After setting currencies in the Currencies Options below, use <em>Booster - "
|
2755 |
"Multicurrency Switcher</em> widget, or <em>"
|
@@ -2758,83 +3007,86 @@ msgid ""
|
|
2758 |
"( '[wcj_currency_select_drop_down_list]' );</em>"
|
2759 |
msgstr ""
|
2760 |
|
2761 |
-
#: includes/class-wcj-multicurrency.php:
|
2762 |
msgid "Multicurrency on per Product Basis"
|
2763 |
msgstr ""
|
2764 |
|
2765 |
-
#: includes/class-wcj-multicurrency.php:
|
2766 |
msgid "This will add meta boxes in product edit."
|
2767 |
msgstr ""
|
2768 |
|
2769 |
-
#: includes/class-wcj-multicurrency.php:
|
2770 |
-
#: includes/class-wcj-price-by-country.php:
|
2771 |
msgid "Revert Currency to Default on Checkout"
|
2772 |
msgstr ""
|
2773 |
|
2774 |
-
#: includes/class-wcj-multicurrency.php:
|
|
|
2775 |
msgid "Rounding"
|
2776 |
msgstr ""
|
2777 |
|
2778 |
-
#: includes/class-wcj-multicurrency.php:
|
2779 |
msgid "If using exchange rates, choose rounding here."
|
2780 |
msgstr ""
|
2781 |
|
2782 |
-
#: includes/class-wcj-multicurrency.php:
|
2783 |
-
#: includes/class-wcj-price-by-country.php:
|
2784 |
msgid "No rounding"
|
2785 |
msgstr ""
|
2786 |
|
2787 |
-
#: includes/class-wcj-multicurrency.php:
|
2788 |
-
#: includes/class-wcj-price-by-country.php:
|
2789 |
msgid "Round"
|
2790 |
msgstr ""
|
2791 |
|
2792 |
-
#: includes/class-wcj-multicurrency.php:
|
2793 |
-
#: includes/class-wcj-price-by-country.php:
|
2794 |
msgid "Round up"
|
2795 |
msgstr ""
|
2796 |
|
2797 |
-
#: includes/class-wcj-multicurrency.php:
|
2798 |
-
#: includes/class-wcj-price-by-country.php:
|
2799 |
msgid "Round down"
|
2800 |
msgstr ""
|
2801 |
|
2802 |
-
#: includes/class-wcj-multicurrency.php:
|
|
|
2803 |
msgid "Rounding Precision"
|
2804 |
msgstr ""
|
2805 |
|
2806 |
-
#: includes/class-wcj-multicurrency.php:
|
2807 |
msgid "If rounding enabled, set precision here."
|
2808 |
msgstr ""
|
2809 |
|
2810 |
-
#: includes/class-wcj-multicurrency.php:
|
2811 |
msgid ""
|
2812 |
"One currency probably should be set to current (original) shop currency with "
|
2813 |
"an exchange rate of 1."
|
2814 |
msgstr ""
|
2815 |
|
2816 |
-
#: includes/class-wcj-multicurrency.php:
|
2817 |
msgid "Role Defaults"
|
2818 |
msgstr ""
|
2819 |
|
2820 |
-
#: includes/class-wcj-multicurrency.php:
|
2821 |
-
#: includes/class-wcj-order-min-amount.php:
|
2822 |
-
#: includes/class-wcj-price-by-user-role.php:
|
|
|
2823 |
msgid ""
|
2824 |
"Custom roles can be added via \"Add/Manage Custom Roles\" tool in Booster's "
|
2825 |
"<a href=\"%s\">General</a> module."
|
2826 |
msgstr ""
|
2827 |
|
2828 |
-
#: includes/class-wcj-multicurrency.php:
|
2829 |
msgid "Roles"
|
2830 |
msgstr ""
|
2831 |
|
2832 |
-
#: includes/class-wcj-multicurrency.php:
|
2833 |
-
#: includes/class-wcj-wholesale-price.php:
|
2834 |
msgid "Save settings after you change this option. Leave blank to disable."
|
2835 |
msgstr ""
|
2836 |
|
2837 |
-
#: includes/class-wcj-multicurrency.php:
|
2838 |
msgid "No default currency"
|
2839 |
msgstr ""
|
2840 |
|
@@ -2850,23 +3102,23 @@ msgstr ""
|
|
2850 |
msgid "Remove Old Slugs"
|
2851 |
msgstr ""
|
2852 |
|
2853 |
-
#: includes/class-wcj-old-slugs.php:33 includes/class-wcj-old-slugs.php:
|
2854 |
msgid "Tool removes old slugs/permalinks from database."
|
2855 |
msgstr ""
|
2856 |
|
2857 |
-
#: includes/class-wcj-old-slugs.php:
|
2858 |
msgid "Booster - Remove Old Product Slugs"
|
2859 |
msgstr ""
|
2860 |
|
2861 |
-
#: includes/class-wcj-old-slugs.php:
|
2862 |
msgid "Old products slugs found:"
|
2863 |
msgstr ""
|
2864 |
|
2865 |
-
#: includes/class-wcj-old-slugs.php:
|
2866 |
msgid "None-products slugs found:"
|
2867 |
msgstr ""
|
2868 |
|
2869 |
-
#: includes/class-wcj-old-slugs.php:
|
2870 |
msgid "No old slugs found."
|
2871 |
msgstr ""
|
2872 |
|
@@ -2879,7 +3131,7 @@ msgid "Custom statuses for WooCommerce orders."
|
|
2879 |
msgstr ""
|
2880 |
|
2881 |
#: includes/class-wcj-order-custom-statuses.php:33
|
2882 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2883 |
msgid "Custom Statuses"
|
2884 |
msgstr ""
|
2885 |
|
@@ -2887,151 +3139,198 @@ msgstr ""
|
|
2887 |
msgid "Tool lets you add or delete any custom status for WooCommerce orders."
|
2888 |
msgstr ""
|
2889 |
|
2890 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2891 |
msgctxt "Order status"
|
2892 |
msgid "Pending payment"
|
2893 |
msgstr ""
|
2894 |
|
2895 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2896 |
-
#: includes/functions/wcj-functions.php:
|
2897 |
msgctxt "Order status"
|
2898 |
msgid "Processing"
|
2899 |
msgstr ""
|
2900 |
|
2901 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2902 |
msgctxt "Order status"
|
2903 |
msgid "On hold"
|
2904 |
msgstr ""
|
2905 |
|
2906 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2907 |
-
#: includes/functions/wcj-functions.php:
|
2908 |
msgctxt "Order status"
|
2909 |
msgid "Completed"
|
2910 |
msgstr ""
|
2911 |
|
2912 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2913 |
-
#: includes/functions/wcj-functions.php:
|
2914 |
msgctxt "Order status"
|
2915 |
msgid "Cancelled"
|
2916 |
msgstr ""
|
2917 |
|
2918 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2919 |
-
#: includes/functions/wcj-functions.php:
|
2920 |
msgctxt "Order status"
|
2921 |
msgid "Refunded"
|
2922 |
msgstr ""
|
2923 |
|
2924 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2925 |
-
#: includes/functions/wcj-functions.php:
|
2926 |
msgctxt "Order status"
|
2927 |
msgid "Failed"
|
2928 |
msgstr ""
|
2929 |
|
2930 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2931 |
msgid "Status slug is empty. Status was not added!"
|
2932 |
msgstr ""
|
2933 |
|
2934 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2935 |
msgid ""
|
2936 |
"The length of status slug must be 17 or less characters. Status was not "
|
2937 |
"added!"
|
2938 |
msgstr ""
|
2939 |
|
2940 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2941 |
msgid "Status label is empty. Status was not added!"
|
2942 |
msgstr ""
|
2943 |
|
2944 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2945 |
msgid "Duplicate slug. Status was not added!"
|
2946 |
msgstr ""
|
2947 |
|
2948 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
|
|
|
|
|
|
|
|
2949 |
msgid "New status has been successfully added!"
|
2950 |
msgstr ""
|
2951 |
|
2952 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2953 |
msgid "Status was not added."
|
2954 |
msgstr ""
|
2955 |
|
2956 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2957 |
msgid "Status has been successfully deleted."
|
2958 |
msgstr ""
|
2959 |
|
2960 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2961 |
msgid "Delete failed."
|
2962 |
msgstr ""
|
2963 |
|
2964 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2965 |
msgid "Booster - Custom Statuses"
|
2966 |
msgstr ""
|
2967 |
|
2968 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2969 |
msgid ""
|
2970 |
"The tool lets you add or delete any custom status for WooCommerce orders."
|
2971 |
msgstr ""
|
2972 |
|
2973 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2974 |
msgid "Statuses"
|
2975 |
msgstr ""
|
2976 |
|
2977 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2978 |
msgid "Slug"
|
2979 |
msgstr ""
|
2980 |
|
2981 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2982 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2983 |
msgid "Icon Code"
|
2984 |
msgstr ""
|
2985 |
|
2986 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2987 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
2988 |
msgid "Icon Color"
|
2989 |
msgstr ""
|
2990 |
|
2991 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2992 |
msgid "Slug (without wc- prefix)"
|
2993 |
msgstr ""
|
2994 |
|
2995 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
|
|
2996 |
msgid "You can check icon codes <a target=\"_blank\" href=\"%s\">here</a>."
|
2997 |
msgstr ""
|
2998 |
|
2999 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
|
|
|
|
|
|
|
|
3000 |
msgid "Add new custom status"
|
3001 |
msgstr ""
|
3002 |
|
3003 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
3004 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
3005 |
msgid "Mark"
|
3006 |
msgstr ""
|
3007 |
|
3008 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
3009 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:138
|
3010 |
msgid "Default Order Status"
|
3011 |
msgstr ""
|
3012 |
|
3013 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
3014 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:139
|
3015 |
msgid "Enable Custom Statuses feature to add custom statuses to the list."
|
3016 |
msgstr ""
|
3017 |
|
3018 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
3019 |
msgid ""
|
3020 |
"You can change the default order status here. However payment gateways can "
|
3021 |
"change this status immediatelly on order creation. E.g. BACS gateway will "
|
3022 |
"change status to On-hold."
|
3023 |
msgstr ""
|
3024 |
|
3025 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
3026 |
msgid "Add All Statuses to Admin Order Bulk Actions"
|
3027 |
msgstr ""
|
3028 |
|
3029 |
-
#: includes/class-wcj-order-custom-statuses.php:
|
3030 |
msgid "Add Custom Statuses to Admin Reports"
|
3031 |
msgstr ""
|
3032 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3033 |
#: includes/class-wcj-order-min-amount.php:27
|
3034 |
-
#: includes/class-wcj-order-min-amount.php:
|
3035 |
msgid "Order Minimum Amount"
|
3036 |
msgstr ""
|
3037 |
|
@@ -3039,61 +3338,62 @@ msgstr ""
|
|
3039 |
msgid "Minimum WooCommerce order amount (optionally by user role)."
|
3040 |
msgstr ""
|
3041 |
|
3042 |
-
#: includes/class-wcj-order-min-amount.php:
|
3043 |
msgid "This section lets you set minimum order amount."
|
3044 |
msgstr ""
|
3045 |
|
3046 |
-
#: includes/class-wcj-order-min-amount.php:
|
3047 |
msgid "Amount"
|
3048 |
msgstr ""
|
3049 |
|
3050 |
-
#: includes/class-wcj-order-min-amount.php:
|
3051 |
msgid "Minimum order amount. Set to 0 to disable."
|
3052 |
msgstr ""
|
3053 |
|
3054 |
-
#: includes/class-wcj-order-min-amount.php:
|
3055 |
msgid "Exclude Shipping from Cart Total"
|
3056 |
msgstr ""
|
3057 |
|
3058 |
-
#: includes/class-wcj-order-min-amount.php:
|
3059 |
msgid "Exclude"
|
3060 |
msgstr ""
|
3061 |
|
3062 |
-
#: includes/class-wcj-order-min-amount.php:
|
3063 |
msgid "Error message"
|
3064 |
msgstr ""
|
3065 |
|
3066 |
-
#: includes/class-wcj-order-min-amount.php:
|
3067 |
-
#: includes/class-wcj-order-min-amount.php:
|
|
|
3068 |
msgid ""
|
3069 |
"Message to customer if order is below minimum amount. Default: You must have "
|
3070 |
"an order with a minimum of %s to place your order, your current order total "
|
3071 |
"is %s."
|
3072 |
msgstr ""
|
3073 |
|
3074 |
-
#: includes/class-wcj-order-min-amount.php:
|
3075 |
msgid "Add notice to cart page also"
|
3076 |
msgstr ""
|
3077 |
|
3078 |
-
#: includes/class-wcj-order-min-amount.php:
|
3079 |
msgid "Message on cart page"
|
3080 |
msgstr ""
|
3081 |
|
3082 |
-
#: includes/class-wcj-order-min-amount.php:
|
3083 |
msgid ""
|
3084 |
"Stop customer from seeing the Checkout page if minimum amount not reached."
|
3085 |
msgstr ""
|
3086 |
|
3087 |
-
#: includes/class-wcj-order-min-amount.php:
|
3088 |
msgid "Redirect back to Cart page"
|
3089 |
msgstr ""
|
3090 |
|
3091 |
-
#: includes/class-wcj-order-min-amount.php:
|
3092 |
msgid "Order Minimum Amount by User Role"
|
3093 |
msgstr ""
|
3094 |
|
3095 |
#: includes/class-wcj-order-numbers.php:25
|
3096 |
-
#: includes/class-wcj-order-numbers.php:
|
3097 |
msgid "Order Numbers"
|
3098 |
msgstr ""
|
3099 |
|
@@ -3111,61 +3411,77 @@ msgstr ""
|
|
3111 |
msgid "Tool renumerates all orders."
|
3112 |
msgstr ""
|
3113 |
|
3114 |
-
#: includes/class-wcj-order-numbers.php:
|
3115 |
msgid "Orders successfully renumerated!"
|
3116 |
msgstr ""
|
3117 |
|
3118 |
-
#: includes/class-wcj-order-numbers.php:
|
3119 |
msgid ""
|
3120 |
"Press the button below to renumerate all existing orders starting from order "
|
3121 |
"counter settings in WooCommerce > Settings > Booster > Order Numbers."
|
3122 |
msgstr ""
|
3123 |
|
3124 |
-
#: includes/class-wcj-order-numbers.php:
|
3125 |
msgid "Renumerate orders"
|
3126 |
msgstr ""
|
3127 |
|
3128 |
-
#: includes/class-wcj-order-numbers.php:
|
3129 |
msgid ""
|
3130 |
"This section lets you enable sequential order numbering, set custom number "
|
3131 |
"prefix, suffix and width."
|
3132 |
msgstr ""
|
3133 |
|
3134 |
-
#: includes/class-wcj-order-numbers.php:
|
3135 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3136 |
msgstr ""
|
3137 |
|
3138 |
-
#: includes/class-wcj-order-numbers.php:
|
3139 |
msgid "Next Order Number"
|
3140 |
msgstr ""
|
3141 |
|
3142 |
-
#: includes/class-wcj-order-numbers.php:
|
3143 |
msgid "Next new order will be given this number."
|
3144 |
msgstr ""
|
3145 |
|
3146 |
-
#: includes/class-wcj-order-numbers.php:
|
3147 |
msgid "Use Renumerate Orders tool for existing orders."
|
3148 |
msgstr ""
|
3149 |
|
3150 |
-
#: includes/class-wcj-order-numbers.php:
|
3151 |
msgid "This will be ignored if sequential order numbering is disabled."
|
3152 |
msgstr ""
|
3153 |
|
3154 |
-
#: includes/class-wcj-order-numbers.php:
|
3155 |
msgid "Order Number Custom Prefix"
|
3156 |
msgstr ""
|
3157 |
|
3158 |
-
#: includes/class-wcj-order-numbers.php:
|
3159 |
msgid ""
|
3160 |
"Prefix before order number (optional). This will change the prefixes for all "
|
3161 |
"existing orders."
|
3162 |
msgstr ""
|
3163 |
|
3164 |
-
#: includes/class-wcj-order-numbers.php:
|
3165 |
msgid "Order Number Date Prefix"
|
3166 |
msgstr ""
|
3167 |
|
3168 |
-
#: includes/class-wcj-order-numbers.php:
|
3169 |
msgid ""
|
3170 |
"Date prefix before order number (optional). This will change the prefixes "
|
3171 |
"for all existing orders. Value is passed directly to PHP `date` function, so "
|
@@ -3174,11 +3490,11 @@ msgid ""
|
|
3174 |
"d- or mdy."
|
3175 |
msgstr ""
|
3176 |
|
3177 |
-
#: includes/class-wcj-order-numbers.php:
|
3178 |
msgid "Order Number Width"
|
3179 |
msgstr ""
|
3180 |
|
3181 |
-
#: includes/class-wcj-order-numbers.php:
|
3182 |
msgid ""
|
3183 |
"Minimum width of number without prefix (zeros will be added to the left "
|
3184 |
"side). This will change the minimum width of order number for all existing "
|
@@ -3186,21 +3502,21 @@ msgid ""
|
|
3186 |
"Leave zero to disable."
|
3187 |
msgstr ""
|
3188 |
|
3189 |
-
#: includes/class-wcj-order-numbers.php:
|
3190 |
msgid "Order Number Custom Suffix"
|
3191 |
msgstr ""
|
3192 |
|
3193 |
-
#: includes/class-wcj-order-numbers.php:
|
3194 |
msgid ""
|
3195 |
"Suffix after order number (optional). This will change the suffixes for all "
|
3196 |
"existing orders."
|
3197 |
msgstr ""
|
3198 |
|
3199 |
-
#: includes/class-wcj-order-numbers.php:
|
3200 |
msgid "Order Number Date Suffix"
|
3201 |
msgstr ""
|
3202 |
|
3203 |
-
#: includes/class-wcj-order-numbers.php:
|
3204 |
msgid ""
|
3205 |
"Date suffix after order number (optional). This will change the suffixes for "
|
3206 |
"all existing orders. Value is passed directly to PHP `date` function, so "
|
@@ -3209,20 +3525,24 @@ msgid ""
|
|
3209 |
"d- or mdy."
|
3210 |
msgstr ""
|
3211 |
|
3212 |
-
#: includes/class-wcj-order-numbers.php:
|
3213 |
msgid "Use MySQL Transaction"
|
3214 |
msgstr ""
|
3215 |
|
3216 |
-
#: includes/class-wcj-order-numbers.php:
|
3217 |
msgid ""
|
3218 |
"This should be enabled if you have a lot of simultaneous orders in your shop "
|
3219 |
"- to prevent duplicate order numbers (sequential)."
|
3220 |
msgstr ""
|
3221 |
|
3222 |
-
#: includes/class-wcj-order-numbers.php:
|
3223 |
msgid "Enable Order Tracking by Custom Number"
|
3224 |
msgstr ""
|
3225 |
|
|
|
|
|
|
|
|
|
3226 |
#: includes/class-wcj-orders.php:25
|
3227 |
msgid "Orders"
|
3228 |
msgstr ""
|
@@ -3233,40 +3553,40 @@ msgid ""
|
|
3233 |
"Admin order list multiple status filtering."
|
3234 |
msgstr ""
|
3235 |
|
3236 |
-
#: includes/class-wcj-orders.php:
|
3237 |
msgid "Not Completed"
|
3238 |
msgstr ""
|
3239 |
|
3240 |
-
#: includes/class-wcj-orders.php:
|
3241 |
-
#: includes/export/class-wcj-fields-helper.php:
|
3242 |
-
#: includes/export/class-wcj-fields-helper.php:
|
3243 |
#: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:261
|
3244 |
msgid "Order Currency"
|
3245 |
msgstr ""
|
3246 |
|
3247 |
-
#: includes/class-wcj-orders.php:
|
3248 |
msgid "Save order after you change this field."
|
3249 |
msgstr ""
|
3250 |
|
3251 |
-
#: includes/class-wcj-orders.php:
|
3252 |
msgid "All countries"
|
3253 |
msgstr ""
|
3254 |
|
3255 |
-
#: includes/class-wcj-orders.php:
|
3256 |
msgid "Admin Order Currency"
|
3257 |
msgstr ""
|
3258 |
|
3259 |
-
#: includes/class-wcj-orders.php:
|
3260 |
msgid ""
|
3261 |
"When enabled this will add \"Booster: Orders\" metabox to each order's edit "
|
3262 |
"page."
|
3263 |
msgstr ""
|
3264 |
|
3265 |
-
#: includes/class-wcj-orders.php:
|
3266 |
msgid "Admin Order Currency Method"
|
3267 |
msgstr ""
|
3268 |
|
3269 |
-
#: includes/class-wcj-orders.php:
|
3270 |
msgid ""
|
3271 |
"Choose if you want changed order currency to be saved directly to DB, or if "
|
3272 |
"you want to use filter. When using <em>filter</em> method, changes will be "
|
@@ -3275,81 +3595,83 @@ msgid ""
|
|
3275 |
"Booster plugin is removed."
|
3276 |
msgstr ""
|
3277 |
|
3278 |
-
#: includes/class-wcj-orders.php:
|
3279 |
msgid "Directly to DB"
|
3280 |
msgstr ""
|
3281 |
|
3282 |
-
#: includes/class-wcj-orders.php:
|
3283 |
msgid "Orders Auto-Complete"
|
3284 |
msgstr ""
|
3285 |
|
3286 |
-
#: includes/class-wcj-orders.php:
|
3287 |
msgid "This section lets you enable orders auto-complete function."
|
3288 |
msgstr ""
|
3289 |
|
3290 |
-
#: includes/class-wcj-orders.php:
|
3291 |
msgid "Auto-complete all WooCommerce orders"
|
3292 |
msgstr ""
|
3293 |
|
3294 |
-
#: includes/class-wcj-orders.php:
|
3295 |
msgid ""
|
3296 |
"E.g. if you sell digital products then you are not shipping anything and you "
|
3297 |
"may want auto-complete all your orders."
|
3298 |
msgstr ""
|
3299 |
|
3300 |
-
#: includes/class-wcj-orders.php:
|
3301 |
msgid "Admin Orders List Custom Columns"
|
3302 |
msgstr ""
|
3303 |
|
3304 |
-
#: includes/class-wcj-orders.php:
|
3305 |
msgid "This section lets you add custom columns to WooCommerce orders list."
|
3306 |
msgstr ""
|
3307 |
|
3308 |
-
#: includes/class-wcj-orders.php:
|
3309 |
msgid "Custom Columns Total Number"
|
3310 |
msgstr ""
|
3311 |
|
3312 |
-
#: includes/class-wcj-orders.php:
|
3313 |
msgid "Custom Column"
|
3314 |
msgstr ""
|
3315 |
|
3316 |
-
#: includes/class-wcj-orders.php:
|
|
|
|
|
3317 |
msgid "You can use shortcodes here."
|
3318 |
msgstr ""
|
3319 |
|
3320 |
-
#: includes/class-wcj-orders.php:
|
3321 |
msgid "Admin Orders List Multiple Status"
|
3322 |
msgstr ""
|
3323 |
|
3324 |
-
#: includes/class-wcj-orders.php:
|
3325 |
msgid "Multiple Status Filtering"
|
3326 |
msgstr ""
|
3327 |
|
3328 |
-
#: includes/class-wcj-orders.php:
|
3329 |
msgid "Add as multiple select"
|
3330 |
msgstr ""
|
3331 |
|
3332 |
-
#: includes/class-wcj-orders.php:
|
3333 |
msgid "Add as checkboxes"
|
3334 |
msgstr ""
|
3335 |
|
3336 |
-
#: includes/class-wcj-orders.php:
|
3337 |
msgid "Hide Default Statuses Menu"
|
3338 |
msgstr ""
|
3339 |
|
3340 |
-
#: includes/class-wcj-orders.php:
|
3341 |
msgid "Add \"Not Completed\" Status Link to Default Statuses Menu"
|
3342 |
msgstr ""
|
3343 |
|
3344 |
-
#: includes/class-wcj-orders.php:
|
3345 |
msgid "Admin Orders List Columns Order"
|
3346 |
msgstr ""
|
3347 |
|
3348 |
-
#: includes/class-wcj-orders.php:
|
3349 |
msgid "Columns Order"
|
3350 |
msgstr ""
|
3351 |
|
3352 |
-
#: includes/class-wcj-orders.php:
|
3353 |
msgid "Default columns order"
|
3354 |
msgstr ""
|
3355 |
|
@@ -3363,27 +3685,59 @@ msgid ""
|
|
3363 |
"to show up."
|
3364 |
msgstr ""
|
3365 |
|
3366 |
-
#: includes/class-wcj-payment-gateways-by-country.php:
|
3367 |
-
#: includes/class-wcj-payment-gateways-by-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3368 |
msgid "Leave empty to disable."
|
3369 |
msgstr ""
|
3370 |
|
3371 |
-
#: includes/class-wcj-payment-gateways-by-country.php:
|
3372 |
msgid "Include Countries"
|
3373 |
msgstr ""
|
3374 |
|
3375 |
-
#: includes/class-wcj-payment-gateways-by-country.php:
|
3376 |
msgid "Exclude Countries"
|
3377 |
msgstr ""
|
3378 |
|
3379 |
-
#: includes/class-wcj-payment-gateways-by-country.php:
|
3380 |
msgid "Include States (Base Country)"
|
3381 |
msgstr ""
|
3382 |
|
3383 |
-
#: includes/class-wcj-payment-gateways-by-country.php:
|
3384 |
msgid "Exclude States (Base Country)"
|
3385 |
msgstr ""
|
3386 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3387 |
#: includes/class-wcj-payment-gateways-by-user-role.php:27
|
3388 |
msgid "Gateways by User Role"
|
3389 |
msgstr ""
|
@@ -3394,18 +3748,19 @@ msgid ""
|
|
3394 |
"up."
|
3395 |
msgstr ""
|
3396 |
|
3397 |
-
#: includes/class-wcj-payment-gateways-by-user-role.php:
|
3398 |
#: includes/class-wcj-product-by-user.php:258
|
|
|
3399 |
msgid ""
|
3400 |
"Custom roles can be added via \"Add/Manage Custom Roles\" tool in Booster's "
|
3401 |
"<a href=\"%s\">General</a> module"
|
3402 |
msgstr ""
|
3403 |
|
3404 |
-
#: includes/class-wcj-payment-gateways-by-user-role.php:
|
3405 |
msgid "Include User Roles"
|
3406 |
msgstr ""
|
3407 |
|
3408 |
-
#: includes/class-wcj-payment-gateways-by-user-role.php:
|
3409 |
msgid "Exclude User Roles"
|
3410 |
msgstr ""
|
3411 |
|
@@ -3417,15 +3772,15 @@ msgstr ""
|
|
3417 |
msgid "Currency per WooCommerce payment gateway."
|
3418 |
msgstr ""
|
3419 |
|
3420 |
-
#: includes/class-wcj-payment-gateways-currency.php:
|
3421 |
msgid "Payment Gateways Currency Options"
|
3422 |
msgstr ""
|
3423 |
|
3424 |
-
#: includes/class-wcj-payment-gateways-currency.php:
|
3425 |
msgid "This section lets you set different currency for each payment gateway."
|
3426 |
msgstr ""
|
3427 |
|
3428 |
-
#: includes/class-wcj-payment-gateways-currency.php:
|
3429 |
msgid "No changes"
|
3430 |
msgstr ""
|
3431 |
|
@@ -3437,64 +3792,83 @@ msgstr ""
|
|
3437 |
msgid "Enable extra fees or discounts for WooCommerce payment gateways."
|
3438 |
msgstr ""
|
3439 |
|
3440 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3441 |
-
msgid "
|
3442 |
msgstr ""
|
3443 |
|
3444 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3445 |
-
msgid "
|
3446 |
msgstr ""
|
3447 |
|
3448 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3449 |
-
|
|
|
|
|
3450 |
msgstr ""
|
3451 |
|
3452 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3453 |
-
msgid "Fee (or
|
3454 |
msgstr ""
|
3455 |
|
3456 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3457 |
msgid "Percent or fixed value."
|
3458 |
msgstr ""
|
3459 |
|
3460 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3461 |
-
msgid "Fee (or
|
3462 |
msgstr ""
|
3463 |
|
3464 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3465 |
msgid "The value. For discount enter a negative number."
|
3466 |
msgstr ""
|
3467 |
|
3468 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
|
|
|
|
|
|
|
|
3469 |
msgid "Minimum cart amount for adding the fee (or discount)."
|
3470 |
msgstr ""
|
3471 |
|
3472 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3473 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3474 |
-
msgid "Set 0 to disable
|
|
|
|
|
|
|
|
|
3475 |
msgstr ""
|
3476 |
|
3477 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3478 |
msgid "Maximum cart amount for adding the fee (or discount)."
|
3479 |
msgstr ""
|
3480 |
|
3481 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3482 |
-
msgid "Round the fee (or discount) value before adding to the cart
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3483 |
msgstr ""
|
3484 |
|
3485 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3486 |
-
msgid "
|
3487 |
msgstr ""
|
3488 |
|
3489 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3490 |
-
|
|
|
3491 |
msgstr ""
|
3492 |
|
3493 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3494 |
-
msgid "
|
3495 |
msgstr ""
|
3496 |
|
3497 |
-
#: includes/class-wcj-payment-gateways-fees.php:
|
3498 |
msgid "Standard Rate"
|
3499 |
msgstr ""
|
3500 |
|
@@ -3524,35 +3898,85 @@ msgid "Remove Icon"
|
|
3524 |
msgstr ""
|
3525 |
|
3526 |
#: includes/class-wcj-payment-gateways-min-max.php:26
|
3527 |
-
msgid "Gateways Min/Max"
|
3528 |
msgstr ""
|
3529 |
|
3530 |
#: includes/class-wcj-payment-gateways-min-max.php:27
|
3531 |
msgid "Add min/max amounts for WooCommerce payment gateways to show up."
|
3532 |
msgstr ""
|
3533 |
|
3534 |
-
#: includes/class-wcj-payment-gateways-min-max.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3535 |
msgid "General Options"
|
3536 |
msgstr ""
|
3537 |
|
3538 |
-
#: includes/class-wcj-payment-gateways-min-max.php:
|
3539 |
msgid "Exclude Shipping"
|
3540 |
msgstr ""
|
3541 |
|
3542 |
-
#: includes/class-wcj-payment-gateways-min-max.php:
|
3543 |
msgid ""
|
3544 |
"Exclude shipping from total cart sum, when comparing with min/max amounts."
|
3545 |
msgstr ""
|
3546 |
|
3547 |
-
#: includes/class-wcj-payment-gateways-min-max.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3548 |
msgid "Leave zero to disable."
|
3549 |
msgstr ""
|
3550 |
|
3551 |
-
#: includes/class-wcj-payment-gateways-min-max.php:
|
3552 |
msgid "Min"
|
3553 |
msgstr ""
|
3554 |
|
3555 |
-
#: includes/class-wcj-payment-gateways-min-max.php:
|
3556 |
msgid "Max"
|
3557 |
msgstr ""
|
3558 |
|
@@ -3566,45 +3990,45 @@ msgid ""
|
|
3566 |
"category in cart."
|
3567 |
msgstr ""
|
3568 |
|
3569 |
-
#: includes/class-wcj-payment-gateways-per-category.php:
|
3570 |
-
#: includes/class-wcj-price-labels.php:
|
3571 |
msgid "Product Categories - Include"
|
3572 |
msgstr ""
|
3573 |
|
3574 |
-
#: includes/class-wcj-payment-gateways-per-category.php:
|
3575 |
msgid ""
|
3576 |
"Show gateway only if there is product of selected category in cart. Leave "
|
3577 |
"blank to disable the option."
|
3578 |
msgstr ""
|
3579 |
|
3580 |
-
#: includes/class-wcj-payment-gateways-per-category.php:
|
3581 |
-
#: includes/class-wcj-price-labels.php:
|
3582 |
msgid "Product Categories - Exclude"
|
3583 |
msgstr ""
|
3584 |
|
3585 |
-
#: includes/class-wcj-payment-gateways-per-category.php:
|
3586 |
msgid ""
|
3587 |
"Hide gateway if there is product of selected category in cart. Leave blank "
|
3588 |
"to disable the option."
|
3589 |
msgstr ""
|
3590 |
|
3591 |
-
#: includes/class-wcj-payment-gateways-per-category.php:
|
3592 |
-
#: includes/class-wcj-price-labels.php:
|
3593 |
msgid "Products - Include"
|
3594 |
msgstr ""
|
3595 |
|
3596 |
-
#: includes/class-wcj-payment-gateways-per-category.php:
|
3597 |
msgid ""
|
3598 |
"Show gateway only if there is selected products in cart. Leave blank to "
|
3599 |
"disable the option."
|
3600 |
msgstr ""
|
3601 |
|
3602 |
-
#: includes/class-wcj-payment-gateways-per-category.php:
|
3603 |
-
#: includes/class-wcj-price-labels.php:
|
3604 |
msgid "Products - Exclude"
|
3605 |
msgstr ""
|
3606 |
|
3607 |
-
#: includes/class-wcj-payment-gateways-per-category.php:
|
3608 |
msgid ""
|
3609 |
"Hide gateway if there is selected products in cart. Leave blank to disable "
|
3610 |
"the option."
|
@@ -3619,6 +4043,7 @@ msgid "Add multiple custom payment gateways to WooCommerce."
|
|
3619 |
msgstr ""
|
3620 |
|
3621 |
#: includes/class-wcj-payment-gateways.php:55
|
|
|
3622 |
msgid "%s Fields"
|
3623 |
msgstr ""
|
3624 |
|
@@ -3635,6 +4060,7 @@ msgid "This section lets you set number of custom payment gateways to add."
|
|
3635 |
msgstr ""
|
3636 |
|
3637 |
#: includes/class-wcj-payment-gateways.php:123
|
|
|
3638 |
msgid "After setting the number, visit %s to set each gateway options."
|
3639 |
msgstr ""
|
3640 |
|
@@ -3686,9 +4112,9 @@ msgstr ""
|
|
3686 |
|
3687 |
#: includes/class-wcj-pdf-invoicing.php:89
|
3688 |
#: includes/class-wcj-pdf-invoicing.php:90
|
3689 |
-
#: includes/class-wcj-price-by-country.php:
|
3690 |
-
#: includes/class-wcj-price-by-country.php:
|
3691 |
-
#: includes/class-wcj-price-by-country.php:
|
3692 |
msgid "Generate"
|
3693 |
msgstr ""
|
3694 |
|
@@ -3698,38 +4124,47 @@ msgid "Download"
|
|
3698 |
msgstr ""
|
3699 |
|
3700 |
#: includes/class-wcj-pdf-invoicing.php:114
|
|
|
3701 |
msgid "Document generated."
|
3702 |
msgid_plural "%s documents generated."
|
3703 |
msgstr[0] ""
|
3704 |
msgstr[1] ""
|
3705 |
|
3706 |
#: includes/class-wcj-pdf-invoicing.php:220
|
3707 |
-
#: includes/classes/class-wcj-pdf-invoice.php:
|
3708 |
#: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:195
|
3709 |
msgid "Unexpected error"
|
3710 |
msgstr ""
|
3711 |
|
3712 |
-
#: includes/class-wcj-pdf-invoicing.php:
|
3713 |
msgid "PDF Invoicing General Options"
|
3714 |
msgstr ""
|
3715 |
|
3716 |
-
#: includes/class-wcj-pdf-invoicing.php:
|
3717 |
msgid "Create on New Order"
|
3718 |
msgstr ""
|
3719 |
|
3720 |
-
#: includes/class-wcj-pdf-invoicing.php:
|
3721 |
msgid "Create on Order Status"
|
3722 |
msgstr ""
|
3723 |
|
3724 |
-
#: includes/class-wcj-pdf-invoicing.php:
|
3725 |
msgid "Manual Only"
|
3726 |
msgstr ""
|
3727 |
|
3728 |
-
#: includes/class-wcj-pdf-invoicing.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3729 |
msgid "Do not create if order total equals zero"
|
3730 |
msgstr ""
|
3731 |
|
3732 |
-
#: includes/class-wcj-pdf-invoicing.php:
|
3733 |
msgid "Hide Disabled Docs Settings"
|
3734 |
msgstr ""
|
3735 |
|
@@ -3795,106 +4230,141 @@ msgstr ""
|
|
3795 |
msgid "Override Country with Customer's Checkout Shipping Country"
|
3796 |
msgstr ""
|
3797 |
|
3798 |
-
#: includes/class-wcj-price-by-country.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3799 |
msgid "Price Rounding"
|
3800 |
msgstr ""
|
3801 |
|
3802 |
-
#: includes/class-wcj-price-by-country.php:
|
3803 |
msgid "If you choose to multiply price, set rounding options here."
|
3804 |
msgstr ""
|
3805 |
|
3806 |
-
#: includes/class-wcj-price-by-country.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3807 |
msgid "Price by Country on per Product Basis"
|
3808 |
msgstr ""
|
3809 |
|
3810 |
-
#: includes/class-wcj-price-by-country.php:
|
3811 |
msgid "This will add product data fields in product edit."
|
3812 |
msgstr ""
|
3813 |
|
3814 |
-
#: includes/class-wcj-price-by-country.php:
|
3815 |
msgid "Price Filter Widget and Sorting by Price Support"
|
3816 |
msgstr ""
|
3817 |
|
3818 |
-
#: includes/class-wcj-price-by-country.php:
|
3819 |
msgid "Recalculate price filter widget and sorting by price product prices"
|
3820 |
msgstr ""
|
3821 |
|
3822 |
-
#: includes/class-wcj-price-by-country.php:
|
3823 |
msgid "Add Countries Flags Images to Select Drop-Down Box"
|
3824 |
msgstr ""
|
3825 |
|
3826 |
-
#: includes/class-wcj-price-by-country.php:
|
3827 |
msgid ""
|
3828 |
"If you are using [wcj_country_select_drop_down_list] shortcode or \"Booster: "
|
3829 |
"Country Switcher\" widget, this will add country flags to these select boxes."
|
3830 |
msgstr ""
|
3831 |
|
3832 |
-
#: includes/class-wcj-price-by-country.php:
|
3833 |
-
#: includes/class-wcj-price-by-user-role.php:
|
3834 |
msgid "Search Engine Bots"
|
3835 |
msgstr ""
|
3836 |
|
3837 |
-
#: includes/class-wcj-price-by-country.php:
|
3838 |
msgid "Disable Price by Country for Bots"
|
3839 |
msgstr ""
|
3840 |
|
3841 |
-
#: includes/class-wcj-price-by-country.php:
|
3842 |
msgid "Country Groups"
|
3843 |
msgstr ""
|
3844 |
|
3845 |
-
#: includes/class-wcj-price-by-country.php:
|
3846 |
msgid "Countries Selection"
|
3847 |
msgstr ""
|
3848 |
|
3849 |
-
#: includes/class-wcj-price-by-country.php:
|
3850 |
msgid "Choose how do you want to enter countries groups in admin."
|
3851 |
msgstr ""
|
3852 |
|
3853 |
-
#: includes/class-wcj-price-by-country.php:
|
3854 |
msgid "Comma separated list"
|
3855 |
msgstr ""
|
3856 |
|
3857 |
-
#: includes/class-wcj-price-by-country.php:
|
3858 |
msgid "Multiselect"
|
3859 |
msgstr ""
|
3860 |
|
3861 |
-
#: includes/class-wcj-price-by-country.php:
|
3862 |
msgid "Chosen select"
|
3863 |
msgstr ""
|
3864 |
|
3865 |
-
#: includes/class-wcj-price-by-country.php:
|
3866 |
msgid "Autogenerate Groups"
|
3867 |
msgstr ""
|
3868 |
|
3869 |
-
#: includes/class-wcj-price-by-country.php:
|
3870 |
msgid "Currencies supported in both PayPal and Yahoo Exchange Rates:"
|
3871 |
msgstr ""
|
3872 |
|
3873 |
-
#: includes/class-wcj-price-by-country.php:
|
3874 |
msgid "Currencies supported in Yahoo Exchange Rates:"
|
3875 |
msgstr ""
|
3876 |
|
3877 |
-
#: includes/class-wcj-price-by-country.php:
|
3878 |
msgid "All Countries and Currencies:"
|
3879 |
msgstr ""
|
3880 |
|
3881 |
-
#: includes/class-wcj-price-by-country.php:
|
3882 |
msgid "Groups Number"
|
3883 |
msgstr ""
|
3884 |
|
3885 |
-
#: includes/class-wcj-price-by-country.php:
|
3886 |
msgid ""
|
3887 |
"Countries. List of comma separated country codes.<br>For country codes and "
|
3888 |
-
"predifined sets visit <a href=\"http://booster.io/
|
3889 |
-
"
|
3890 |
msgstr ""
|
3891 |
|
3892 |
-
#: includes/class-wcj-price-by-country.php:
|
3893 |
msgid "Multiply Price by"
|
3894 |
msgstr ""
|
3895 |
|
3896 |
-
#: includes/class-wcj-price-by-country.php:
|
3897 |
-
#: includes/price-by-country/class-wcj-price-by-country-local.php:
|
3898 |
msgid "Make empty price"
|
3899 |
msgstr ""
|
3900 |
|
@@ -3919,40 +4389,40 @@ msgid "Per Product Settings (press Update after changing)"
|
|
3919 |
msgstr ""
|
3920 |
|
3921 |
#: includes/class-wcj-price-by-user-role.php:185
|
3922 |
-
#: includes/class-wcj-price-by-user-role.php:
|
3923 |
msgid "Make Empty Price"
|
3924 |
msgstr ""
|
3925 |
|
3926 |
-
#: includes/class-wcj-price-by-user-role.php:
|
3927 |
msgid "Enable per Product Settings"
|
3928 |
msgstr ""
|
3929 |
|
3930 |
-
#: includes/class-wcj-price-by-user-role.php:
|
3931 |
msgid ""
|
3932 |
"When enabled, this will add new \"Booster: Price by User Role\" meta box to "
|
3933 |
"each product's edit page."
|
3934 |
msgstr ""
|
3935 |
|
3936 |
-
#: includes/class-wcj-price-by-user-role.php:
|
3937 |
msgid "Show Roles on per Product Settings"
|
3938 |
msgstr ""
|
3939 |
|
3940 |
-
#: includes/class-wcj-price-by-user-role.php:
|
3941 |
msgid ""
|
3942 |
"If per product settings is enabled, you can choose which roles to show on "
|
3943 |
"product's edit page. Leave blank to show all roles."
|
3944 |
msgstr ""
|
3945 |
|
3946 |
-
#: includes/class-wcj-price-by-user-role.php:
|
3947 |
msgid ""
|
3948 |
"When enabled, this will apply user role multipliers to shipping calculations."
|
3949 |
msgstr ""
|
3950 |
|
3951 |
-
#: includes/class-wcj-price-by-user-role.php:
|
3952 |
msgid "Disable Price by User Role for Bots"
|
3953 |
msgstr ""
|
3954 |
|
3955 |
-
#: includes/class-wcj-price-by-user-role.php:
|
3956 |
msgid "Roles & Multipliers"
|
3957 |
msgstr ""
|
3958 |
|
@@ -3964,55 +4434,55 @@ msgstr ""
|
|
3964 |
msgid "Set different WooCommerce price formats for different currencies."
|
3965 |
msgstr ""
|
3966 |
|
3967 |
-
#: includes/class-wcj-price-formats.php:
|
3968 |
msgid "Formats"
|
3969 |
msgstr ""
|
3970 |
|
3971 |
-
#: includes/class-wcj-price-formats.php:
|
3972 |
msgid "Total Number"
|
3973 |
msgstr ""
|
3974 |
|
3975 |
-
#: includes/class-wcj-price-formats.php:
|
3976 |
msgid "Format"
|
3977 |
msgstr ""
|
3978 |
|
3979 |
-
#: includes/class-wcj-price-formats.php:
|
3980 |
msgid "Currency Position"
|
3981 |
msgstr ""
|
3982 |
|
3983 |
-
#: includes/class-wcj-price-formats.php:
|
3984 |
msgid "Left"
|
3985 |
msgstr ""
|
3986 |
|
3987 |
-
#: includes/class-wcj-price-formats.php:
|
3988 |
msgid "Right"
|
3989 |
msgstr ""
|
3990 |
|
3991 |
-
#: includes/class-wcj-price-formats.php:
|
3992 |
msgid "Left with space"
|
3993 |
msgstr ""
|
3994 |
|
3995 |
-
#: includes/class-wcj-price-formats.php:
|
3996 |
msgid "Right with space"
|
3997 |
msgstr ""
|
3998 |
|
3999 |
-
#: includes/class-wcj-price-formats.php:
|
4000 |
msgid "Thousand Separator"
|
4001 |
msgstr ""
|
4002 |
|
4003 |
-
#: includes/class-wcj-price-formats.php:
|
4004 |
msgid "Decimal Separator"
|
4005 |
msgstr ""
|
4006 |
|
4007 |
-
#: includes/class-wcj-price-formats.php:
|
4008 |
msgid "Number of Decimals"
|
4009 |
msgstr ""
|
4010 |
|
4011 |
-
#: includes/class-wcj-price-formats.php:
|
4012 |
msgid "WPML Language Code"
|
4013 |
msgstr ""
|
4014 |
|
4015 |
-
#: includes/class-wcj-price-formats.php:
|
4016 |
msgid ""
|
4017 |
"Option to set different price formats for different WPML languages. Can be "
|
4018 |
"comma separated list. Leave empty to disable."
|
@@ -4026,190 +4496,155 @@ msgstr ""
|
|
4026 |
msgid "Create any custom price label for any WooCommerce product."
|
4027 |
msgstr ""
|
4028 |
|
4029 |
-
#: includes/class-wcj-price-labels.php:
|
4030 |
-
|
|
|
4031 |
msgstr ""
|
4032 |
|
4033 |
-
#: includes/class-wcj-price-labels.php:
|
4034 |
-
msgid ""
|
4035 |
-
"Tool lets you copy all the data (that is labels) from Custom Price labels "
|
4036 |
-
"(Pro) plugin to Booster."
|
4037 |
msgstr ""
|
4038 |
|
4039 |
-
#: includes/class-wcj-price-labels.php:
|
4040 |
-
msgid "Instead of the price"
|
4041 |
-
msgstr ""
|
4042 |
-
|
4043 |
-
#: includes/class-wcj-price-labels.php:44
|
4044 |
-
msgid "Before the price"
|
4045 |
-
msgstr ""
|
4046 |
-
|
4047 |
-
#: includes/class-wcj-price-labels.php:45
|
4048 |
msgid "Between regular and sale prices"
|
4049 |
msgstr ""
|
4050 |
|
4051 |
-
#: includes/class-wcj-price-labels.php:
|
4052 |
msgid "After the price"
|
4053 |
msgstr ""
|
4054 |
|
4055 |
-
#: includes/class-wcj-price-labels.php:
|
4056 |
msgid "Hide on home page"
|
4057 |
msgstr ""
|
4058 |
|
4059 |
-
#: includes/class-wcj-price-labels.php:
|
4060 |
msgid "Hide on products page"
|
4061 |
msgstr ""
|
4062 |
|
4063 |
-
#: includes/class-wcj-price-labels.php:
|
4064 |
msgid "Hide on single"
|
4065 |
msgstr ""
|
4066 |
|
4067 |
-
#: includes/class-wcj-price-labels.php:
|
4068 |
msgid "Hide on all pages"
|
4069 |
msgstr ""
|
4070 |
|
4071 |
-
#: includes/class-wcj-price-labels.php:
|
4072 |
msgid "Hide on cart page only"
|
4073 |
msgstr ""
|
4074 |
|
4075 |
-
#: includes/class-wcj-price-labels.php:
|
4076 |
msgid "Hide for main price"
|
4077 |
msgstr ""
|
4078 |
|
4079 |
-
#: includes/class-wcj-price-labels.php:
|
4080 |
msgid "Hide for all variations"
|
4081 |
msgstr ""
|
4082 |
|
4083 |
-
#: includes/class-wcj-price-labels.php:
|
4084 |
-
msgid "Booster - Migrate from Custom Price Labels (Pro)"
|
4085 |
-
msgstr ""
|
4086 |
-
|
4087 |
-
#: includes/class-wcj-price-labels.php:179
|
4088 |
-
msgid "Migrating (product ID "
|
4089 |
-
msgstr ""
|
4090 |
-
|
4091 |
-
#: includes/class-wcj-price-labels.php:180
|
4092 |
-
msgid "Result: "
|
4093 |
-
msgstr ""
|
4094 |
-
|
4095 |
-
#: includes/class-wcj-price-labels.php:202
|
4096 |
-
msgid "Found data to migrate (product ID "
|
4097 |
-
msgstr ""
|
4098 |
-
|
4099 |
-
#: includes/class-wcj-price-labels.php:218
|
4100 |
-
msgid "No data to migrate found"
|
4101 |
-
msgstr ""
|
4102 |
-
|
4103 |
-
#: includes/class-wcj-price-labels.php:224
|
4104 |
-
msgid ""
|
4105 |
-
"Press button below to copy all labels from Custom Price Labels (Pro) plugin. "
|
4106 |
-
"Old labels will NOT be deleted. New labels will be overwritten."
|
4107 |
-
msgstr ""
|
4108 |
-
|
4109 |
-
#: includes/class-wcj-price-labels.php:225
|
4110 |
-
msgid "Migrate data"
|
4111 |
-
msgstr ""
|
4112 |
-
|
4113 |
-
#: includes/class-wcj-price-labels.php:271
|
4114 |
msgid "Booster: Custom Price Labels"
|
4115 |
msgstr ""
|
4116 |
|
4117 |
-
#: includes/class-wcj-price-labels.php:
|
4118 |
msgid "Custom Price Labels - Globally"
|
4119 |
msgstr ""
|
4120 |
|
4121 |
-
#: includes/class-wcj-price-labels.php:
|
4122 |
msgid "This section lets you set price labels for all products globally."
|
4123 |
msgstr ""
|
4124 |
|
4125 |
-
#: includes/class-wcj-price-labels.php:
|
4126 |
msgid "Add before the price"
|
4127 |
msgstr ""
|
4128 |
|
4129 |
-
#: includes/class-wcj-price-labels.php:
|
4130 |
msgid "Enter text to add before all products prices. Leave blank to disable."
|
4131 |
msgstr ""
|
4132 |
|
4133 |
-
#: includes/class-wcj-price-labels.php:
|
4134 |
msgid "Add after the price"
|
4135 |
msgstr ""
|
4136 |
|
4137 |
-
#: includes/class-wcj-price-labels.php:
|
4138 |
msgid "Enter text to add after all products prices. Leave blank to disable."
|
4139 |
msgstr ""
|
4140 |
|
4141 |
-
#: includes/class-wcj-price-labels.php:
|
4142 |
msgid "Add between regular and sale prices"
|
4143 |
msgstr ""
|
4144 |
|
4145 |
-
#: includes/class-wcj-price-labels.php:
|
4146 |
msgid ""
|
4147 |
"Enter text to add between regular and sale prices. Leave blank to disable."
|
4148 |
msgstr ""
|
4149 |
|
4150 |
-
#: includes/class-wcj-price-labels.php:
|
4151 |
msgid "Remove from price"
|
4152 |
msgstr ""
|
4153 |
|
4154 |
-
#: includes/class-wcj-price-labels.php:
|
4155 |
msgid "Enter text to remove from all products prices. Leave blank to disable."
|
4156 |
msgstr ""
|
4157 |
|
4158 |
-
#: includes/class-wcj-price-labels.php:
|
4159 |
msgid "Replace in price"
|
4160 |
msgstr ""
|
4161 |
|
4162 |
-
#: includes/class-wcj-price-labels.php:
|
4163 |
msgid "Enter text to replace in all products prices. Leave blank to disable."
|
4164 |
msgstr ""
|
4165 |
|
4166 |
-
#: includes/class-wcj-price-labels.php:
|
4167 |
msgid "Enter text to replace with. Leave blank to disable."
|
4168 |
msgstr ""
|
4169 |
|
4170 |
-
#: includes/class-wcj-price-labels.php:
|
|
|
|
|
|
|
|
|
4171 |
msgid ""
|
4172 |
"Apply global price labels only for selected products. Leave blank to disable "
|
4173 |
"the option."
|
4174 |
msgstr ""
|
4175 |
|
4176 |
-
#: includes/class-wcj-price-labels.php:
|
4177 |
msgid ""
|
4178 |
"Do not apply global price labels only for selected products. Leave blank to "
|
4179 |
"disable the option."
|
4180 |
msgstr ""
|
4181 |
|
4182 |
-
#: includes/class-wcj-price-labels.php:
|
4183 |
msgid ""
|
4184 |
"Apply global price labels only for selected product categories. Leave blank "
|
4185 |
"to disable the option."
|
4186 |
msgstr ""
|
4187 |
|
4188 |
-
#: includes/class-wcj-price-labels.php:
|
4189 |
msgid ""
|
4190 |
"Do not apply global price labels only for selected product categories. Leave "
|
4191 |
"blank to disable the option."
|
4192 |
msgstr ""
|
4193 |
|
4194 |
-
#: includes/class-wcj-price-labels.php:
|
4195 |
msgid "Product Types - Include"
|
4196 |
msgstr ""
|
4197 |
|
4198 |
-
#: includes/class-wcj-price-labels.php:
|
4199 |
msgid ""
|
4200 |
"Apply global price labels only for selected product types. Leave blank to "
|
4201 |
"disable the option."
|
4202 |
msgstr ""
|
4203 |
|
4204 |
-
#: includes/class-wcj-price-labels.php:
|
4205 |
msgid "Variable product's variation"
|
4206 |
msgstr ""
|
4207 |
|
4208 |
-
#: includes/class-wcj-price-labels.php:
|
4209 |
msgid "Custom Price Labels - Per Product"
|
4210 |
msgstr ""
|
4211 |
|
4212 |
-
#: includes/class-wcj-price-labels.php:
|
4213 |
msgid "This will add metaboxes to each product's admin edit page."
|
4214 |
msgstr ""
|
4215 |
|
@@ -4241,128 +4676,178 @@ msgstr ""
|
|
4241 |
msgid "Open external products on add to cart in new window."
|
4242 |
msgstr ""
|
4243 |
|
4244 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4245 |
msgid "Disable Add to Cart Button (Single Product Page)"
|
4246 |
msgstr ""
|
4247 |
|
4248 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4249 |
msgid "Disable Add to Cart Button (Category/Archives)"
|
4250 |
msgstr ""
|
4251 |
|
4252 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4253 |
msgid "Custom Add to Cart Button URL (Category/Archives)"
|
4254 |
msgstr ""
|
4255 |
|
4256 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4257 |
msgid "As shop default (no changes)"
|
4258 |
msgstr ""
|
4259 |
|
4260 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4261 |
msgid "Disable Add to Cart Button AJAX"
|
4262 |
msgstr ""
|
4263 |
|
4264 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4265 |
msgid "Add to Cart Local Redirect Options"
|
4266 |
msgstr ""
|
4267 |
|
4268 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4269 |
msgid ""
|
4270 |
"This section lets you set any local URL to redirect to after successfully "
|
4271 |
"adding product to cart. Leave empty to redirect to checkout page (skipping "
|
4272 |
"the cart page)."
|
4273 |
msgstr ""
|
4274 |
|
4275 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4276 |
msgid "Local Redirect"
|
4277 |
msgstr ""
|
4278 |
|
4279 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4280 |
msgid "Local Redirect URL"
|
4281 |
msgstr ""
|
4282 |
|
4283 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4284 |
msgid "Performs a safe (local) redirect, using wp_redirect()."
|
4285 |
msgstr ""
|
4286 |
|
4287 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4288 |
msgid "Local redirect URL. Leave empty to redirect to checkout."
|
4289 |
msgstr ""
|
4290 |
|
4291 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4292 |
-
|
4293 |
-
msgid "
|
|
|
|
|
|
|
4294 |
msgstr ""
|
4295 |
|
4296 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4297 |
msgid ""
|
4298 |
"This section lets you enable automatically adding product to cart on "
|
4299 |
"visiting the product page. Product is only added once, so if it is already "
|
4300 |
"in cart - duplicate product is not added. "
|
4301 |
msgstr ""
|
4302 |
|
4303 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4304 |
msgid "Add to Cart Variable Product"
|
4305 |
msgstr ""
|
4306 |
|
4307 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4308 |
msgid "Display Radio Buttons Instead of Drop Box"
|
4309 |
msgstr ""
|
4310 |
|
4311 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4312 |
msgid "Add to Cart Quantity"
|
4313 |
msgstr ""
|
4314 |
|
4315 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4316 |
msgid "Disable Quantity Field for All Products"
|
4317 |
msgstr ""
|
4318 |
|
4319 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4320 |
msgid "Disable on Single Product Page"
|
4321 |
msgstr ""
|
4322 |
|
4323 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4324 |
msgid "Disable on Cart Page"
|
4325 |
msgstr ""
|
4326 |
|
4327 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4328 |
msgid "Add to Cart Button Disabling"
|
4329 |
msgstr ""
|
4330 |
|
4331 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4332 |
msgid "Disable Add to Cart Buttons on per Product Basis"
|
4333 |
msgstr ""
|
4334 |
|
4335 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4336 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4337 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4338 |
msgid "This will add meta box to each product's edit page"
|
4339 |
msgstr ""
|
4340 |
|
4341 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4342 |
msgid "Add to Cart Button Custom URL"
|
4343 |
msgstr ""
|
4344 |
|
4345 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4346 |
msgid "Custom Add to Cart Buttons URL on Archives on per Product Basis"
|
4347 |
msgstr ""
|
4348 |
|
4349 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4350 |
msgid "Add to Cart Button AJAX"
|
4351 |
msgstr ""
|
4352 |
|
4353 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4354 |
msgid "Disable/Enable Add to Cart Button AJAX on per Product Basis"
|
4355 |
msgstr ""
|
4356 |
|
4357 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4358 |
msgid "Open External Products on Add to Cart in New Window"
|
4359 |
msgstr ""
|
4360 |
|
4361 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4362 |
msgid "Enable on Single Product Pages"
|
4363 |
msgstr ""
|
4364 |
|
4365 |
-
#: includes/class-wcj-product-add-to-cart.php:
|
4366 |
msgid "Enable on Category/Archive Pages"
|
4367 |
msgstr ""
|
4368 |
|
@@ -4374,11 +4859,11 @@ msgstr ""
|
|
4374 |
msgid "Add (paid/free/discount) addons to WooCommerce products."
|
4375 |
msgstr ""
|
4376 |
|
4377 |
-
#: includes/class-wcj-product-addons.php:
|
4378 |
msgid "Some of the required addons are not selected!"
|
4379 |
msgstr ""
|
4380 |
|
4381 |
-
#: includes/class-wcj-product-addons.php:
|
4382 |
msgid ""
|
4383 |
"Booster: Free plugin's version is limited to only three products with per "
|
4384 |
"product addons enabled at a time. You will need to get <a href=\"http://"
|
@@ -4386,126 +4871,126 @@ msgid ""
|
|
4386 |
"number of products with per product addons."
|
4387 |
msgstr ""
|
4388 |
|
4389 |
-
#: includes/class-wcj-product-addons.php:
|
4390 |
-
#: includes/class-wcj-wholesale-price.php:
|
4391 |
-
#: includes/class-wcj-wholesale-price.php:
|
4392 |
msgid "Save product after you change this number."
|
4393 |
msgstr ""
|
4394 |
|
4395 |
-
#: includes/class-wcj-product-addons.php:
|
4396 |
-
#: includes/class-wcj-product-addons.php:
|
4397 |
msgid "Product Addons Total Number"
|
4398 |
msgstr ""
|
4399 |
|
4400 |
-
#: includes/class-wcj-product-addons.php:
|
4401 |
-
#: includes/class-wcj-product-addons.php:
|
4402 |
msgid "Product Addon"
|
4403 |
msgstr ""
|
4404 |
|
4405 |
-
#: includes/class-wcj-product-addons.php:
|
4406 |
-
#: includes/class-wcj-product-addons.php:
|
4407 |
msgid "Radio Buttons"
|
4408 |
msgstr ""
|
4409 |
|
4410 |
-
#: includes/class-wcj-product-addons.php:
|
4411 |
-
#: includes/class-wcj-product-addons.php:
|
4412 |
msgid "Label(s)"
|
4413 |
msgstr ""
|
4414 |
|
4415 |
-
#: includes/class-wcj-product-addons.php:
|
4416 |
-
#: includes/class-wcj-product-addons.php:
|
4417 |
-
#: includes/class-wcj-product-addons.php:
|
4418 |
-
#: includes/class-wcj-product-addons.php:
|
4419 |
-
#: includes/class-wcj-product-addons.php:
|
4420 |
-
#: includes/class-wcj-product-addons.php:
|
4421 |
msgid "For radio enter one value per line."
|
4422 |
msgstr ""
|
4423 |
|
4424 |
-
#: includes/class-wcj-product-addons.php:
|
4425 |
-
#: includes/class-wcj-product-addons.php:
|
4426 |
msgid "Price(s)"
|
4427 |
msgstr ""
|
4428 |
|
4429 |
-
#: includes/class-wcj-product-addons.php:
|
4430 |
-
#: includes/class-wcj-product-addons.php:
|
4431 |
msgid "Tooltip(s)"
|
4432 |
msgstr ""
|
4433 |
|
4434 |
-
#: includes/class-wcj-product-addons.php:
|
4435 |
-
#: includes/class-wcj-product-addons.php:
|
4436 |
-
#: includes/class-wcj-purchase-data.php:
|
4437 |
msgid "Default Value"
|
4438 |
msgstr ""
|
4439 |
|
4440 |
-
#: includes/class-wcj-product-addons.php:
|
4441 |
-
#: includes/class-wcj-product-addons.php:
|
4442 |
msgid ""
|
4443 |
"For checkbox use 'checked'; for radio enter default label. Leave blank for "
|
4444 |
"no default value."
|
4445 |
msgstr ""
|
4446 |
|
4447 |
-
#: includes/class-wcj-product-addons.php:
|
4448 |
msgid "Is required"
|
4449 |
msgstr ""
|
4450 |
|
4451 |
-
#: includes/class-wcj-product-addons.php:
|
4452 |
msgid "Enable per Product Addons"
|
4453 |
msgstr ""
|
4454 |
|
4455 |
-
#: includes/class-wcj-product-addons.php:
|
4456 |
msgid ""
|
4457 |
"When enabled, this will add new \"Booster: Product Addons\" meta box to each "
|
4458 |
"product's edit page."
|
4459 |
msgstr ""
|
4460 |
|
4461 |
-
#: includes/class-wcj-product-addons.php:
|
4462 |
msgid "All Product Options"
|
4463 |
msgstr ""
|
4464 |
|
4465 |
-
#: includes/class-wcj-product-addons.php:
|
4466 |
msgid "Enable All Products Addons"
|
4467 |
msgstr ""
|
4468 |
|
4469 |
-
#: includes/class-wcj-product-addons.php:
|
4470 |
msgid "When enabled, this will add addons below to all products."
|
4471 |
msgstr ""
|
4472 |
|
4473 |
-
#: includes/class-wcj-product-addons.php:
|
4474 |
msgid "Save changes after you change this number."
|
4475 |
msgstr ""
|
4476 |
|
4477 |
-
#: includes/class-wcj-product-addons.php:
|
4478 |
#: includes/class-wcj-product-by-user.php:233
|
4479 |
msgid "Is Required"
|
4480 |
msgstr ""
|
4481 |
|
4482 |
-
#: includes/class-wcj-product-addons.php:
|
4483 |
msgid "Enable AJAX on Single Product Page"
|
4484 |
msgstr ""
|
4485 |
|
4486 |
-
#: includes/class-wcj-product-addons.php:
|
4487 |
msgid "Addon in Cart Format"
|
4488 |
msgstr ""
|
4489 |
|
4490 |
-
#: includes/class-wcj-product-addons.php:
|
4491 |
-
#: includes/class-wcj-product-addons.php:
|
4492 |
msgid "Each Addon"
|
4493 |
msgstr ""
|
4494 |
|
4495 |
-
#: includes/class-wcj-product-addons.php:
|
4496 |
-
#: includes/class-wcj-product-addons.php:
|
4497 |
msgid "You can use %addon_label% and %addon_price%."
|
4498 |
msgstr ""
|
4499 |
|
4500 |
-
#: includes/class-wcj-product-addons.php:
|
4501 |
msgid "Addon in Order Details Table Format"
|
4502 |
msgstr ""
|
4503 |
|
4504 |
-
#: includes/class-wcj-product-addons.php:
|
4505 |
msgid "Admin Order Page"
|
4506 |
msgstr ""
|
4507 |
|
4508 |
-
#: includes/class-wcj-product-addons.php:
|
4509 |
msgid "Hide all addons"
|
4510 |
msgstr ""
|
4511 |
|
@@ -4524,7 +5009,7 @@ msgid "\"Date to\" must be after \"Date from\""
|
|
4524 |
msgstr ""
|
4525 |
|
4526 |
#: includes/class-wcj-product-bookings.php:145
|
4527 |
-
#: includes/class-wcj-product-open-pricing.php:
|
4528 |
msgid "Read more"
|
4529 |
msgstr ""
|
4530 |
|
@@ -4567,7 +5052,6 @@ msgid ""
|
|
4567 |
msgstr ""
|
4568 |
|
4569 |
#: includes/class-wcj-product-bookings.php:432
|
4570 |
-
#: includes/class-wcj-product-open-pricing.php:369
|
4571 |
msgid "Labels and Messages"
|
4572 |
msgstr ""
|
4573 |
|
@@ -4606,93 +5090,93 @@ msgid ""
|
|
4606 |
"product's edit page."
|
4607 |
msgstr ""
|
4608 |
|
4609 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4610 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4611 |
msgid "Bulk Price Converter"
|
4612 |
msgstr ""
|
4613 |
|
4614 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4615 |
msgid "Multiply all WooCommerce products prices by set value."
|
4616 |
msgstr ""
|
4617 |
|
4618 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4619 |
msgid "Bulk Price Converter Tool."
|
4620 |
msgstr ""
|
4621 |
|
4622 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4623 |
-
#: includes/class-wcj-product-by-user.php:207 includes/class-wcj-sku.php:
|
4624 |
-
#: includes/export/class-wcj-fields-helper.php:
|
4625 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:156
|
4626 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:329
|
4627 |
msgid "Categories"
|
4628 |
msgstr ""
|
4629 |
|
4630 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4631 |
msgid "Price Type"
|
4632 |
msgstr ""
|
4633 |
|
4634 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4635 |
msgid "Original Price"
|
4636 |
msgstr ""
|
4637 |
|
4638 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4639 |
msgid "Modified Price"
|
4640 |
msgstr ""
|
4641 |
|
4642 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4643 |
msgid "Multiply value must be above zero."
|
4644 |
msgstr ""
|
4645 |
|
4646 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4647 |
msgid "Prices changed successfully!"
|
4648 |
msgstr ""
|
4649 |
|
4650 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4651 |
msgid "Multiply all product prices by"
|
4652 |
msgstr ""
|
4653 |
|
4654 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4655 |
msgid "Price type to modify"
|
4656 |
msgstr ""
|
4657 |
|
4658 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4659 |
msgid "Both"
|
4660 |
msgstr ""
|
4661 |
|
4662 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4663 |
msgid "Sale prices only"
|
4664 |
msgstr ""
|
4665 |
|
4666 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4667 |
msgid "Regular prices only"
|
4668 |
msgstr ""
|
4669 |
|
4670 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4671 |
msgid "Products category"
|
4672 |
msgstr ""
|
4673 |
|
4674 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4675 |
-
#: includes/shortcodes/class-wcj-products-shortcodes.php:
|
4676 |
msgid "Any"
|
4677 |
msgstr ""
|
4678 |
|
4679 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4680 |
msgid "None"
|
4681 |
msgstr ""
|
4682 |
|
4683 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4684 |
msgid "\"Pretty prices\" threshold"
|
4685 |
msgstr ""
|
4686 |
|
4687 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4688 |
msgid "Leave zero to disable"
|
4689 |
msgstr ""
|
4690 |
|
4691 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4692 |
msgid "Preview Prices"
|
4693 |
msgstr ""
|
4694 |
|
4695 |
-
#: includes/class-wcj-product-bulk-price-converter.php:
|
4696 |
msgid "Change Prices"
|
4697 |
msgstr ""
|
4698 |
|
@@ -4722,15 +5206,28 @@ msgstr ""
|
|
4722 |
msgid "Display WooCommerce products by customer's user role."
|
4723 |
msgstr ""
|
4724 |
|
4725 |
-
#: includes/class-wcj-product-by-user-role.php:
|
4726 |
msgid "Visible for User Roles"
|
4727 |
msgstr ""
|
4728 |
|
4729 |
-
#: includes/class-wcj-product-by-user-role.php:
|
4730 |
msgid "Hold Control (Ctrl) key to select multiple roles."
|
4731 |
msgstr ""
|
4732 |
|
4733 |
-
#: includes/class-wcj-product-by-user-role.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4734 |
msgid ""
|
4735 |
"When enabled, module will add new \"Booster: Product Visibility by User Role"
|
4736 |
"\" meta box to each product's edit page."
|
@@ -4744,15 +5241,22 @@ msgstr ""
|
|
4744 |
msgid "Let users add new WooCommerce products from frontend."
|
4745 |
msgstr ""
|
4746 |
|
|
|
|
|
|
|
|
|
|
|
|
|
4747 |
#: includes/class-wcj-product-by-user.php:115
|
4748 |
#: includes/class-wcj-product-by-user.php:124
|
4749 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:238
|
4750 |
msgid "Wrong user ID!"
|
4751 |
msgstr ""
|
4752 |
|
4753 |
-
#: includes/class-wcj-product-by-user.php:
|
4754 |
-
#: includes/
|
4755 |
-
|
|
|
4756 |
msgstr ""
|
4757 |
|
4758 |
#: includes/class-wcj-product-by-user.php:190
|
@@ -4760,7 +5264,7 @@ msgid "Use [wcj_product_add_new] shortcode."
|
|
4760 |
msgstr ""
|
4761 |
|
4762 |
#: includes/class-wcj-product-by-user.php:203
|
4763 |
-
#: includes/export/class-wcj-fields-helper.php:
|
4764 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:152
|
4765 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:274
|
4766 |
msgid "Short Description"
|
@@ -4773,7 +5277,7 @@ msgid "Image"
|
|
4773 |
msgstr ""
|
4774 |
|
4775 |
#: includes/class-wcj-product-by-user.php:208
|
4776 |
-
#: includes/export/class-wcj-fields-helper.php:
|
4777 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:157
|
4778 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:352
|
4779 |
msgid "Tags"
|
@@ -4821,96 +5325,103 @@ msgstr ""
|
|
4821 |
msgid "\"%product_title%\" successfully edited!"
|
4822 |
msgstr ""
|
4823 |
|
|
|
|
|
|
|
|
|
|
|
4824 |
#: includes/class-wcj-product-custom-info.php:27
|
4825 |
#: includes/class-wcj-product-info.php:104
|
4826 |
msgid "Add additional info to WooCommerce category and single product pages."
|
4827 |
msgstr ""
|
4828 |
|
4829 |
-
#: includes/class-wcj-product-custom-info.php:
|
4830 |
msgid "Single"
|
4831 |
msgstr ""
|
4832 |
|
4833 |
-
#: includes/class-wcj-product-custom-info.php:
|
4834 |
msgid "Archive"
|
4835 |
msgstr ""
|
4836 |
|
4837 |
-
#: includes/class-wcj-product-custom-info.php:
|
4838 |
msgid "Product Custom Info Blocks"
|
4839 |
msgstr ""
|
4840 |
|
4841 |
-
#: includes/class-wcj-product-custom-info.php:
|
4842 |
msgid "Before single product"
|
4843 |
msgstr ""
|
4844 |
|
4845 |
-
#: includes/class-wcj-product-custom-info.php:
|
4846 |
#: includes/class-wcj-product-info.php:141
|
4847 |
msgid "Before single product summary"
|
4848 |
msgstr ""
|
4849 |
|
4850 |
-
#: includes/class-wcj-product-custom-info.php:
|
4851 |
#: includes/class-wcj-product-info.php:140
|
4852 |
msgid "Inside single product summary"
|
4853 |
msgstr ""
|
4854 |
|
4855 |
-
#: includes/class-wcj-product-custom-info.php:
|
4856 |
#: includes/class-wcj-product-info.php:142
|
4857 |
msgid "After single product summary"
|
4858 |
msgstr ""
|
4859 |
|
4860 |
-
#: includes/class-wcj-product-custom-info.php:
|
4861 |
msgid "After single product"
|
4862 |
msgstr ""
|
4863 |
|
4864 |
-
#: includes/class-wcj-product-custom-info.php:
|
4865 |
msgid "Before add to cart form"
|
4866 |
msgstr ""
|
4867 |
|
4868 |
-
#: includes/class-wcj-product-custom-info.php:
|
4869 |
msgid "Before add to cart button"
|
4870 |
msgstr ""
|
4871 |
|
4872 |
-
#: includes/class-wcj-product-custom-info.php:
|
4873 |
msgid "After add to cart button"
|
4874 |
msgstr ""
|
4875 |
|
4876 |
-
#: includes/class-wcj-product-custom-info.php:
|
4877 |
msgid "After add to cart form"
|
4878 |
msgstr ""
|
4879 |
|
4880 |
-
#: includes/class-wcj-product-custom-info.php:
|
4881 |
#: includes/class-wcj-product-info.php:125
|
4882 |
msgid "Before product"
|
4883 |
msgstr ""
|
4884 |
|
4885 |
-
#: includes/class-wcj-product-custom-info.php:
|
4886 |
#: includes/class-wcj-product-info.php:126
|
4887 |
msgid "Before product title"
|
4888 |
msgstr ""
|
4889 |
|
4890 |
-
#: includes/class-wcj-product-custom-info.php:
|
4891 |
msgid "Inside product title"
|
4892 |
msgstr ""
|
4893 |
|
4894 |
-
#: includes/class-wcj-product-custom-info.php:
|
4895 |
#: includes/class-wcj-product-info.php:128
|
4896 |
msgid "After product title"
|
4897 |
msgstr ""
|
4898 |
|
4899 |
-
#: includes/class-wcj-product-custom-info.php:
|
4900 |
#: includes/class-wcj-product-info.php:127
|
4901 |
msgid "After product"
|
4902 |
msgstr ""
|
4903 |
|
4904 |
-
#: includes/class-wcj-product-custom-info.php:
|
|
|
4905 |
msgid "Products to Include"
|
4906 |
msgstr ""
|
4907 |
|
4908 |
-
#: includes/class-wcj-product-custom-info.php:
|
4909 |
-
#: includes/class-wcj-product-custom-info.php:
|
4910 |
msgid "Leave blank to disable the option."
|
4911 |
msgstr ""
|
4912 |
|
4913 |
-
#: includes/class-wcj-product-custom-info.php:
|
|
|
4914 |
msgid "Products to Exclude"
|
4915 |
msgstr ""
|
4916 |
|
@@ -4922,97 +5433,97 @@ msgstr ""
|
|
4922 |
msgid "Customize WooCommerce products images, thumbnails and sale flashes."
|
4923 |
msgstr ""
|
4924 |
|
4925 |
-
#: includes/class-wcj-product-images.php:
|
4926 |
-
#: includes/class-wcj-product-images.php:
|
4927 |
msgid "Sale!"
|
4928 |
msgstr ""
|
4929 |
|
4930 |
-
#: includes/class-wcj-product-images.php:
|
4931 |
msgid "Replace image with custom HTML on single product page"
|
4932 |
msgstr ""
|
4933 |
|
4934 |
-
#: includes/class-wcj-product-images.php:
|
4935 |
msgid "Replace image with custom HTML on archives"
|
4936 |
msgstr ""
|
4937 |
|
4938 |
-
#: includes/class-wcj-product-images.php:
|
4939 |
msgid "Hide Image on Single"
|
4940 |
msgstr ""
|
4941 |
|
4942 |
-
#: includes/class-wcj-product-images.php:
|
4943 |
msgid "Hide Thumbnails on Single"
|
4944 |
msgstr ""
|
4945 |
|
4946 |
-
#: includes/class-wcj-product-images.php:
|
4947 |
msgid "Hide Image on Archives"
|
4948 |
msgstr ""
|
4949 |
|
4950 |
-
#: includes/class-wcj-product-images.php:
|
4951 |
msgid "Product Image and Thumbnails"
|
4952 |
msgstr ""
|
4953 |
|
4954 |
-
#: includes/class-wcj-product-images.php:
|
4955 |
msgid "Image and Thumbnails on Single"
|
4956 |
msgstr ""
|
4957 |
|
4958 |
-
#: includes/class-wcj-product-images.php:
|
4959 |
msgid "Image on Single"
|
4960 |
msgstr ""
|
4961 |
|
4962 |
-
#: includes/class-wcj-product-images.php:
|
4963 |
msgid "Thumbnails on Single"
|
4964 |
msgstr ""
|
4965 |
|
4966 |
-
#: includes/class-wcj-product-images.php:
|
4967 |
msgid "Image on Archives"
|
4968 |
msgstr ""
|
4969 |
|
4970 |
-
#: includes/class-wcj-product-images.php:
|
4971 |
msgid "Replace Image on Single"
|
4972 |
msgstr ""
|
4973 |
|
4974 |
-
#: includes/class-wcj-product-images.php:
|
4975 |
msgid ""
|
4976 |
"Replace image on single product page with custom HTML. Leave blank to "
|
4977 |
"disable."
|
4978 |
msgstr ""
|
4979 |
|
4980 |
-
#: includes/class-wcj-product-images.php:
|
4981 |
msgid "Replace Thumbnails on Single"
|
4982 |
msgstr ""
|
4983 |
|
4984 |
-
#: includes/class-wcj-product-images.php:
|
4985 |
msgid ""
|
4986 |
"Replace thumbnails on single product page with custom HTML. Leave blank to "
|
4987 |
"disable."
|
4988 |
msgstr ""
|
4989 |
|
4990 |
-
#: includes/class-wcj-product-images.php:
|
4991 |
msgid "Replace Image on Archive"
|
4992 |
msgstr ""
|
4993 |
|
4994 |
-
#: includes/class-wcj-product-images.php:
|
4995 |
msgid ""
|
4996 |
"Replace image on archive pages with custom HTML. Leave blank to disable."
|
4997 |
msgstr ""
|
4998 |
|
4999 |
-
#: includes/class-wcj-product-images.php:
|
5000 |
msgid "Single Product Thumbnails Columns"
|
5001 |
msgstr ""
|
5002 |
|
5003 |
-
#: includes/class-wcj-product-images.php:
|
5004 |
msgid "Product Images Sale Flash"
|
5005 |
msgstr ""
|
5006 |
|
5007 |
-
#: includes/class-wcj-product-images.php:
|
5008 |
msgid "HTML"
|
5009 |
msgstr ""
|
5010 |
|
5011 |
-
#: includes/class-wcj-product-images.php:
|
5012 |
msgid "Hide on Archives (Categories)"
|
5013 |
msgstr ""
|
5014 |
|
5015 |
-
#: includes/class-wcj-product-images.php:
|
5016 |
msgid "Hide on Single"
|
5017 |
msgstr ""
|
5018 |
|
@@ -5023,7 +5534,7 @@ msgstr ""
|
|
5023 |
#: includes/class-wcj-product-info.php:274
|
5024 |
#: includes/class-wcj-product-info.php:377
|
5025 |
#: includes/class-wcj-product-info.php:410
|
5026 |
-
#: includes/class-wcj-product-tabs.php:
|
5027 |
msgid "Priority (i.e. Order)"
|
5028 |
msgstr ""
|
5029 |
|
@@ -5153,7 +5664,7 @@ msgid "Product Input Fields Number"
|
|
5153 |
msgstr ""
|
5154 |
|
5155 |
#: includes/class-wcj-product-input-fields.php:198
|
5156 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:
|
5157 |
#: includes/input-fields/class-wcj-product-input-fields-per-product.php:164
|
5158 |
msgid "Product Input Field"
|
5159 |
msgstr ""
|
@@ -5182,177 +5693,139 @@ msgstr ""
|
|
5182 |
msgid "Replace Field ID with Field Label"
|
5183 |
msgstr ""
|
5184 |
|
5185 |
-
#: includes/class-wcj-product-listings.php:
|
5186 |
msgid "Product Listings"
|
5187 |
msgstr ""
|
5188 |
|
5189 |
-
#: includes/class-wcj-product-listings.php:
|
5190 |
msgid ""
|
5191 |
"Change WooCommerce display options for shop and category pages: show/hide "
|
5192 |
-
"categories count, exclude categories, show/hide empty categories.
|
5193 |
-
"\"products per page\" selector."
|
5194 |
-
msgstr ""
|
5195 |
-
|
5196 |
-
#: includes/class-wcj-product-listings.php:141
|
5197 |
-
#: includes/class-wcj-product-listings.php:491
|
5198 |
-
msgid ""
|
5199 |
-
"Products <strong>%from% - %to%</strong> from <strong>%total%</strong>. "
|
5200 |
-
"Products on page %select_form%"
|
5201 |
msgstr ""
|
5202 |
|
5203 |
-
#: includes/class-wcj-product-listings.php:
|
5204 |
msgid "Shop Page Display Options"
|
5205 |
msgstr ""
|
5206 |
|
5207 |
-
#: includes/class-wcj-product-listings.php:
|
|
|
5208 |
msgid ""
|
5209 |
-
"
|
5210 |
-
"
|
5211 |
-
"\"."
|
5212 |
msgstr ""
|
5213 |
|
5214 |
-
#: includes/class-wcj-product-listings.php:
|
5215 |
msgid "Categories Count"
|
5216 |
msgstr ""
|
5217 |
|
5218 |
-
#: includes/class-wcj-product-listings.php:
|
5219 |
msgid "Hide categories count on shop page"
|
5220 |
msgstr ""
|
5221 |
|
5222 |
-
#: includes/class-wcj-product-listings.php:
|
5223 |
msgid "Exclude Categories"
|
5224 |
msgstr ""
|
5225 |
|
5226 |
-
#: includes/class-wcj-product-listings.php:
|
5227 |
msgid ""
|
5228 |
-
" Excludes one or more categories from the shop page.
|
5229 |
-
"comma-separated list of categories by unique ID, in ascending order. Leave "
|
5230 |
-
"blank to disable."
|
5231 |
msgstr ""
|
5232 |
|
5233 |
-
#: includes/class-wcj-product-listings.php:
|
5234 |
-
#: includes/class-wcj-product-listings.php:
|
5235 |
msgid "Hide Empty"
|
5236 |
msgstr ""
|
5237 |
|
5238 |
-
#: includes/class-wcj-product-listings.php:
|
5239 |
msgid "Hide empty categories on shop page"
|
5240 |
msgstr ""
|
5241 |
|
5242 |
-
#: includes/class-wcj-product-listings.php:
|
5243 |
-
#: includes/class-wcj-product-listings.php:
|
5244 |
msgid "Show Products"
|
5245 |
msgstr ""
|
5246 |
|
5247 |
-
#: includes/class-wcj-product-listings.php:
|
5248 |
msgid "Show products if no categories are displayed on shop page"
|
5249 |
msgstr ""
|
5250 |
|
5251 |
-
#: includes/class-wcj-product-listings.php:
|
5252 |
msgid "Category Display Options"
|
5253 |
msgstr ""
|
5254 |
|
5255 |
-
#: includes/class-wcj-product-listings.php:
|
|
|
5256 |
msgid ""
|
5257 |
-
"
|
5258 |
-
"Settings > Products >
|
5259 |
-
"
|
5260 |
msgstr ""
|
5261 |
|
5262 |
-
#: includes/class-wcj-product-listings.php:
|
5263 |
msgid "Subcategories Count"
|
5264 |
msgstr ""
|
5265 |
|
5266 |
-
#: includes/class-wcj-product-listings.php:
|
5267 |
msgid "Hide subcategories count on category pages"
|
5268 |
msgstr ""
|
5269 |
|
5270 |
-
#: includes/class-wcj-product-listings.php:
|
5271 |
msgid "Exclude Subcategories"
|
5272 |
msgstr ""
|
5273 |
|
5274 |
-
#: includes/class-wcj-product-listings.php:
|
5275 |
msgid ""
|
5276 |
-
" Excludes one or more categories from the category (archive) pages.
|
5277 |
-
"
|
5278 |
-
"ascending order. Leave blank to disable."
|
5279 |
msgstr ""
|
5280 |
|
5281 |
-
#: includes/class-wcj-product-listings.php:
|
5282 |
msgid "Hide empty subcategories on category pages"
|
5283 |
msgstr ""
|
5284 |
|
5285 |
-
#: includes/class-wcj-product-listings.php:
|
5286 |
msgid "Show products if no categories are displayed on category page"
|
5287 |
msgstr ""
|
5288 |
|
5289 |
-
#: includes/class-wcj-product-listings.php:
|
5290 |
-
msgid "Products per Page Options"
|
5291 |
-
msgstr ""
|
5292 |
-
|
5293 |
-
#: includes/class-wcj-product-listings.php:447
|
5294 |
-
msgid "Enable Products per Page"
|
5295 |
-
msgstr ""
|
5296 |
-
|
5297 |
-
#: includes/class-wcj-product-listings.php:454
|
5298 |
-
msgid "Select Options"
|
5299 |
-
msgstr ""
|
5300 |
-
|
5301 |
-
#: includes/class-wcj-product-listings.php:455
|
5302 |
-
msgid "Name|Number; one per line; -1 for all products"
|
5303 |
-
msgstr ""
|
5304 |
-
|
5305 |
-
#: includes/class-wcj-product-listings.php:477
|
5306 |
-
msgid "Before shop loop"
|
5307 |
-
msgstr ""
|
5308 |
-
|
5309 |
-
#: includes/class-wcj-product-listings.php:478
|
5310 |
-
msgid "After shop loop"
|
5311 |
-
msgstr ""
|
5312 |
-
|
5313 |
-
#: includes/class-wcj-product-listings.php:482
|
5314 |
-
msgid "Position Priority"
|
5315 |
-
msgstr ""
|
5316 |
-
|
5317 |
-
#: includes/class-wcj-product-listings.php:500
|
5318 |
msgid "TAX Display Prices in the Shop"
|
5319 |
msgstr ""
|
5320 |
|
5321 |
-
#: includes/class-wcj-product-listings.php:
|
5322 |
msgid ""
|
5323 |
"If you want to display part of your products including TAX and another part "
|
5324 |
"excluding TAX, you can set it here."
|
5325 |
msgstr ""
|
5326 |
|
5327 |
-
#: includes/class-wcj-product-listings.php:
|
5328 |
msgid "Products - Including TAX"
|
5329 |
msgstr ""
|
5330 |
|
5331 |
-
#: includes/class-wcj-product-listings.php:
|
5332 |
msgid "Select products to display including TAX."
|
5333 |
msgstr ""
|
5334 |
|
5335 |
-
#: includes/class-wcj-product-listings.php:
|
5336 |
msgid "Products - Excluding TAX"
|
5337 |
msgstr ""
|
5338 |
|
5339 |
-
#: includes/class-wcj-product-listings.php:
|
5340 |
msgid "Select products to display excluding TAX."
|
5341 |
msgstr ""
|
5342 |
|
5343 |
-
#: includes/class-wcj-product-listings.php:
|
5344 |
msgid "Product Categories - Including TAX"
|
5345 |
msgstr ""
|
5346 |
|
5347 |
-
#: includes/class-wcj-product-listings.php:
|
5348 |
msgid "Select product categories to display including TAX."
|
5349 |
msgstr ""
|
5350 |
|
5351 |
-
#: includes/class-wcj-product-listings.php:
|
5352 |
msgid "Product Categories - Excluding TAX"
|
5353 |
msgstr ""
|
5354 |
|
5355 |
-
#: includes/class-wcj-product-listings.php:
|
5356 |
msgid "Select product categories to display excluding TAX."
|
5357 |
msgstr ""
|
5358 |
|
@@ -5365,7 +5838,7 @@ msgid ""
|
|
5365 |
"Let your WooCommerce store customers enter price for the product manually."
|
5366 |
msgstr ""
|
5367 |
|
5368 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5369 |
msgid ""
|
5370 |
"Booster: Free plugin's version is limited to only one open pricing product "
|
5371 |
"enabled at a time. You will need to get <a href=\"http://booster.io/plus/\" "
|
@@ -5373,60 +5846,76 @@ msgid ""
|
|
5373 |
"products."
|
5374 |
msgstr ""
|
5375 |
|
5376 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5377 |
msgid "Default Price"
|
5378 |
msgstr ""
|
5379 |
|
5380 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5381 |
msgid "Min Price"
|
5382 |
msgstr ""
|
5383 |
|
5384 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5385 |
msgid "Max Price"
|
5386 |
msgstr ""
|
5387 |
|
5388 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5389 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5390 |
msgid "Price is required!"
|
5391 |
msgstr ""
|
5392 |
|
5393 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5394 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5395 |
-
msgid "Entered price is
|
5396 |
msgstr ""
|
5397 |
|
5398 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5399 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5400 |
-
msgid "Entered price is
|
5401 |
msgstr ""
|
5402 |
|
5403 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5404 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5405 |
msgid "Name Your Price"
|
5406 |
msgstr ""
|
5407 |
|
5408 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5409 |
msgid "Frontend Label"
|
5410 |
msgstr ""
|
5411 |
|
5412 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5413 |
msgid "Frontend Template"
|
5414 |
msgstr ""
|
5415 |
|
5416 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5417 |
msgid "Here you can use"
|
5418 |
msgstr ""
|
5419 |
|
5420 |
-
#: includes/class-wcj-product-open-pricing.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5421 |
msgid "Message on Empty Price"
|
5422 |
msgstr ""
|
5423 |
|
5424 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5425 |
-
msgid "Message on Price
|
|
|
|
|
|
|
|
|
5426 |
msgstr ""
|
5427 |
|
5428 |
-
#: includes/class-wcj-product-open-pricing.php:
|
5429 |
-
msgid "
|
5430 |
msgstr ""
|
5431 |
|
5432 |
#: includes/class-wcj-product-price-by-formula.php:27
|
@@ -5437,11 +5926,11 @@ msgstr ""
|
|
5437 |
msgid "Set formula for automatic WooCommerce product price calculation."
|
5438 |
msgstr ""
|
5439 |
|
5440 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
5441 |
msgid "Error in formula"
|
5442 |
msgstr ""
|
5443 |
|
5444 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
5445 |
msgid ""
|
5446 |
"Booster: Free plugin's version is limited to only one price by formula "
|
5447 |
"product enabled at a time. You will need to get <a href=\"http://booster.io/"
|
@@ -5449,46 +5938,56 @@ msgid ""
|
|
5449 |
"by formula products."
|
5450 |
msgstr ""
|
5451 |
|
5452 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
5453 |
msgid "Use values below"
|
5454 |
msgstr ""
|
5455 |
|
5456 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
5457 |
msgid "Use default values"
|
5458 |
msgstr ""
|
5459 |
|
5460 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
5461 |
msgid "Calculation"
|
5462 |
msgstr ""
|
5463 |
|
5464 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
5465 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
5466 |
msgid "Formula"
|
5467 |
msgstr ""
|
5468 |
|
5469 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
5470 |
msgid "Number of Parameters"
|
5471 |
msgstr ""
|
5472 |
|
5473 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
5474 |
msgid "Final Price Preview"
|
5475 |
msgstr ""
|
5476 |
|
5477 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
5478 |
msgid "Default Settings"
|
5479 |
msgstr ""
|
5480 |
|
5481 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
5482 |
msgid ""
|
5483 |
"You can set default settings here. All settings can later be changed in "
|
5484 |
"individual product's edit page."
|
5485 |
msgstr ""
|
5486 |
|
5487 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
5488 |
msgid "Use \"x\" variable for product's base price. For example: x+p1*p2"
|
5489 |
msgstr ""
|
5490 |
|
5491 |
-
#: includes/class-wcj-product-price-by-formula.php:
|
|
|
|
|
|
|
|
|
5492 |
msgid "Total Params"
|
5493 |
msgstr ""
|
5494 |
|
@@ -5502,227 +6001,263 @@ msgid ""
|
|
5502 |
"remove WooCommerce default product tabs."
|
5503 |
msgstr ""
|
5504 |
|
5505 |
-
#: includes/class-wcj-product-tabs.php:
|
5506 |
msgid "Booster: Custom Tabs"
|
5507 |
msgstr ""
|
5508 |
|
5509 |
-
#: includes/class-wcj-product-tabs.php:
|
5510 |
msgid "Total number of custom tabs"
|
5511 |
msgstr ""
|
5512 |
|
5513 |
-
#: includes/class-wcj-product-tabs.php:
|
5514 |
#: includes/input-fields/class-wcj-product-input-fields-per-product.php:153
|
5515 |
msgid "Click \"Update\" product after you change this number."
|
5516 |
msgstr ""
|
5517 |
|
5518 |
-
#: includes/class-wcj-product-tabs.php:
|
5519 |
-
#: includes/class-wcj-related-products.php:
|
|
|
5520 |
msgid "Order"
|
5521 |
msgstr ""
|
5522 |
|
5523 |
-
#: includes/class-wcj-product-tabs.php:
|
5524 |
-
#: includes/class-wcj-product-tabs.php:
|
5525 |
-
#: includes/class-wcj-product-tabs.php:
|
5526 |
msgid "Custom Product Tab"
|
5527 |
msgstr ""
|
5528 |
|
5529 |
-
#: includes/class-wcj-product-tabs.php:
|
5530 |
msgid "Custom Product Tabs Options"
|
5531 |
msgstr ""
|
5532 |
|
5533 |
-
#: includes/class-wcj-product-tabs.php:
|
5534 |
msgid "This section lets you add custom single product tabs."
|
5535 |
msgstr ""
|
5536 |
|
5537 |
-
#: includes/class-wcj-product-tabs.php:
|
5538 |
msgid "Custom Product Tabs Number"
|
5539 |
msgstr ""
|
5540 |
|
5541 |
-
#: includes/class-wcj-product-tabs.php:
|
5542 |
-
#: includes/class-wcj-product-tabs.php:
|
5543 |
msgid "You can use shortcodes here..."
|
5544 |
msgstr ""
|
5545 |
|
5546 |
-
#: includes/class-wcj-product-tabs.php:
|
5547 |
-
#: includes/class-wcj-product-tabs.php:
|
5548 |
msgid "PRODUCTS to HIDE this tab"
|
5549 |
msgstr ""
|
5550 |
|
5551 |
-
#: includes/class-wcj-product-tabs.php:
|
5552 |
-
#: includes/class-wcj-product-tabs.php:
|
5553 |
msgid "To hide this tab from some products, enter products here."
|
5554 |
msgstr ""
|
5555 |
|
5556 |
-
#: includes/class-wcj-product-tabs.php:
|
5557 |
-
#: includes/class-wcj-product-tabs.php:
|
5558 |
msgid "PRODUCTS to SHOW this tab"
|
5559 |
msgstr ""
|
5560 |
|
5561 |
-
#: includes/class-wcj-product-tabs.php:
|
5562 |
-
#: includes/class-wcj-product-tabs.php:
|
5563 |
msgid "To show this tab only for some products, enter products here."
|
5564 |
msgstr ""
|
5565 |
|
5566 |
-
#: includes/class-wcj-product-tabs.php:
|
5567 |
-
#: includes/class-wcj-product-tabs.php:
|
5568 |
msgid "CATEGORIES to HIDE this tab"
|
5569 |
msgstr ""
|
5570 |
|
5571 |
-
#: includes/class-wcj-product-tabs.php:
|
5572 |
-
#: includes/class-wcj-product-tabs.php:
|
5573 |
msgid "To hide this tab from some categories, enter categories here."
|
5574 |
msgstr ""
|
5575 |
|
5576 |
-
#: includes/class-wcj-product-tabs.php:
|
5577 |
-
#: includes/class-wcj-product-tabs.php:
|
5578 |
msgid "CATEGORIES to SHOW this tab"
|
5579 |
msgstr ""
|
5580 |
|
5581 |
-
#: includes/class-wcj-product-tabs.php:
|
5582 |
-
#: includes/class-wcj-product-tabs.php:
|
5583 |
msgid "To show this tab only for some categories, enter categories here."
|
5584 |
msgstr ""
|
5585 |
|
5586 |
-
#: includes/class-wcj-product-tabs.php:
|
5587 |
-
#: includes/class-wcj-product-tabs.php:
|
5588 |
msgid "TAGS to HIDE this tab"
|
5589 |
msgstr ""
|
5590 |
|
5591 |
-
#: includes/class-wcj-product-tabs.php:
|
5592 |
-
#: includes/class-wcj-product-tabs.php:
|
5593 |
msgid "To hide this tab from some tags, enter tags here."
|
5594 |
msgstr ""
|
5595 |
|
5596 |
-
#: includes/class-wcj-product-tabs.php:
|
5597 |
-
#: includes/class-wcj-product-tabs.php:
|
5598 |
msgid "TAGS to SHOW this tab"
|
5599 |
msgstr ""
|
5600 |
|
5601 |
-
#: includes/class-wcj-product-tabs.php:
|
5602 |
-
#: includes/class-wcj-product-tabs.php:
|
5603 |
msgid "To show this tab only for some tags, enter tags here."
|
5604 |
msgstr ""
|
5605 |
|
5606 |
-
#: includes/class-wcj-product-tabs.php:
|
5607 |
msgid "Comma separated PRODUCT IDs to HIDE this tab"
|
5608 |
msgstr ""
|
5609 |
|
5610 |
-
#: includes/class-wcj-product-tabs.php:
|
5611 |
-
#: includes/class-wcj-product-tabs.php:
|
5612 |
-
#: includes/class-wcj-product-tabs.php:
|
5613 |
-
#: includes/class-wcj-product-tabs.php:
|
5614 |
-
#: includes/classes/class-wcj-module.php:
|
5615 |
msgid "Deprecated"
|
5616 |
msgstr ""
|
5617 |
|
5618 |
-
#: includes/class-wcj-product-tabs.php:
|
5619 |
msgid "To hide this tab from some products, enter product IDs here."
|
5620 |
msgstr ""
|
5621 |
|
5622 |
-
#: includes/class-wcj-product-tabs.php:
|
5623 |
msgid "Comma separated PRODUCT IDs to SHOW this tab"
|
5624 |
msgstr ""
|
5625 |
|
5626 |
-
#: includes/class-wcj-product-tabs.php:
|
5627 |
msgid "To show this tab only for some products, enter product IDs here."
|
5628 |
msgstr ""
|
5629 |
|
5630 |
-
#: includes/class-wcj-product-tabs.php:
|
5631 |
msgid "Comma separated CATEGORY IDs to HIDE this tab"
|
5632 |
msgstr ""
|
5633 |
|
5634 |
-
#: includes/class-wcj-product-tabs.php:
|
5635 |
msgid "To hide this tab from some categories, enter category IDs here."
|
5636 |
msgstr ""
|
5637 |
|
5638 |
-
#: includes/class-wcj-product-tabs.php:
|
5639 |
msgid "Comma separated CATEGORY IDs to SHOW this tab"
|
5640 |
msgstr ""
|
5641 |
|
5642 |
-
#: includes/class-wcj-product-tabs.php:
|
5643 |
msgid "To show this tab only for some categories, enter category IDs here."
|
5644 |
msgstr ""
|
5645 |
|
5646 |
-
#: includes/class-wcj-product-tabs.php:
|
5647 |
msgid "Custom Product Tabs - Per Product"
|
5648 |
msgstr ""
|
5649 |
|
5650 |
-
#: includes/class-wcj-product-tabs.php:
|
5651 |
msgid "This section lets you set defaults for per product custom tabs."
|
5652 |
msgstr ""
|
5653 |
|
5654 |
-
#: includes/class-wcj-product-tabs.php:
|
5655 |
msgid "Enable Per Product Custom Product Tabs"
|
5656 |
msgstr ""
|
5657 |
|
5658 |
-
#: includes/class-wcj-product-tabs.php:
|
5659 |
msgid "This will add meta boxes to each product's edit page."
|
5660 |
msgstr ""
|
5661 |
|
5662 |
-
#: includes/class-wcj-product-tabs.php:
|
5663 |
msgid "Use Visual Editor"
|
5664 |
msgstr ""
|
5665 |
|
5666 |
-
#: includes/class-wcj-product-tabs.php:
|
5667 |
msgid "Default Per Product Custom Product Tabs Number"
|
5668 |
msgstr ""
|
5669 |
|
5670 |
-
#: includes/class-wcj-product-tabs.php:
|
5671 |
msgid "Default Title"
|
5672 |
msgstr ""
|
5673 |
|
5674 |
-
#: includes/class-wcj-product-tabs.php:
|
5675 |
msgid "Default Priority (i.e. Order)"
|
5676 |
msgstr ""
|
5677 |
|
5678 |
-
#: includes/class-wcj-product-tabs.php:
|
5679 |
msgid "Default Content"
|
5680 |
msgstr ""
|
5681 |
|
5682 |
-
#: includes/class-wcj-product-tabs.php:
|
5683 |
msgid "WooCommerce Standard Product Tabs Options"
|
5684 |
msgstr ""
|
5685 |
|
5686 |
-
#: includes/class-wcj-product-tabs.php:
|
5687 |
msgid "This section lets you customize single product tabs."
|
5688 |
msgstr ""
|
5689 |
|
5690 |
-
#: includes/class-wcj-product-tabs.php:
|
5691 |
msgid "Description Tab"
|
5692 |
msgstr ""
|
5693 |
|
5694 |
-
#: includes/class-wcj-product-tabs.php:
|
5695 |
-
#: includes/class-wcj-product-tabs.php:
|
5696 |
-
#: includes/class-wcj-product-tabs.php:
|
5697 |
msgid "Remove tab from product page"
|
5698 |
msgstr ""
|
5699 |
|
5700 |
-
#: includes/class-wcj-product-tabs.php:
|
5701 |
-
#: includes/class-wcj-product-tabs.php:
|
5702 |
-
#: includes/class-wcj-product-tabs.php:
|
5703 |
msgid "Title."
|
5704 |
msgstr ""
|
5705 |
|
5706 |
-
#: includes/class-wcj-product-tabs.php:
|
5707 |
-
#: includes/class-wcj-product-tabs.php:
|
5708 |
-
#: includes/class-wcj-product-tabs.php:
|
5709 |
msgid "Leave blank for WooCommerce defaults"
|
5710 |
msgstr ""
|
5711 |
|
5712 |
-
#: includes/class-wcj-product-tabs.php:
|
5713 |
-
#: includes/class-wcj-product-tabs.php:
|
5714 |
-
#: includes/class-wcj-product-tabs.php:
|
5715 |
msgid "Priority (i.e. Order)."
|
5716 |
msgstr ""
|
5717 |
|
5718 |
-
#: includes/class-wcj-product-tabs.php:
|
5719 |
msgid "Additional Information Tab"
|
5720 |
msgstr ""
|
5721 |
|
5722 |
-
#: includes/class-wcj-product-tabs.php:
|
5723 |
msgid "Reviews Tab"
|
5724 |
msgstr ""
|
5725 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5726 |
#: includes/class-wcj-products-xml.php:28
|
5727 |
msgid "Products XML"
|
5728 |
msgstr ""
|
@@ -5732,12 +6267,12 @@ msgid "WooCommerce products XML feed."
|
|
5732 |
msgstr ""
|
5733 |
|
5734 |
#: includes/class-wcj-products-xml.php:96
|
5735 |
-
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:
|
5736 |
msgid "Once Weekly"
|
5737 |
msgstr ""
|
5738 |
|
5739 |
#: includes/class-wcj-products-xml.php:100
|
5740 |
-
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:
|
5741 |
msgid "Once a Minute"
|
5742 |
msgstr ""
|
5743 |
|
@@ -5749,200 +6284,384 @@ msgstr ""
|
|
5749 |
msgid "An error has occurred while creating products XML file."
|
5750 |
msgstr ""
|
5751 |
|
5752 |
-
#: includes/class-wcj-products-xml.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5753 |
msgid "Create Now"
|
5754 |
msgstr ""
|
5755 |
|
5756 |
-
#: includes/class-wcj-products-xml.php:
|
|
|
|
|
|
|
|
|
|
|
5757 |
msgid "XML File"
|
5758 |
msgstr ""
|
5759 |
|
5760 |
-
#: includes/class-wcj-products-xml.php:
|
5761 |
msgid "XML Header"
|
5762 |
msgstr ""
|
5763 |
|
5764 |
-
#: includes/class-wcj-products-xml.php:
|
|
|
|
|
|
|
|
|
5765 |
msgid "XML Item"
|
5766 |
msgstr ""
|
5767 |
|
5768 |
-
#: includes/class-wcj-products-xml.php:
|
|
|
5769 |
msgid ""
|
5770 |
"You can use shortcodes here. Please take a look at <a target=\"_blank\" href="
|
5771 |
"\"%s\">Booster's products shortcodes</a>."
|
5772 |
msgstr ""
|
5773 |
|
5774 |
-
#: includes/class-wcj-products-xml.php:
|
5775 |
msgid "XML Footer"
|
5776 |
msgstr ""
|
5777 |
|
5778 |
-
#: includes/class-wcj-products-xml.php:
|
5779 |
msgid "XML File Path and Name"
|
5780 |
msgstr ""
|
5781 |
|
5782 |
-
#: includes/class-wcj-products-xml.php:
|
5783 |
msgid "Path on server:"
|
5784 |
msgstr ""
|
5785 |
|
5786 |
-
#: includes/class-wcj-products-xml.php:
|
5787 |
msgid "URL:"
|
5788 |
msgstr ""
|
5789 |
|
5790 |
-
#: includes/class-wcj-products-xml.php:
|
5791 |
msgid "Update Period"
|
5792 |
msgstr ""
|
5793 |
|
5794 |
-
#: includes/class-wcj-products-xml.php:
|
5795 |
msgid ""
|
5796 |
"Possible update periods are: every minute, hourly, twice daily, daily and "
|
5797 |
"weekly."
|
5798 |
msgstr ""
|
5799 |
|
5800 |
-
#: includes/class-wcj-
|
5801 |
-
msgid "
|
|
|
|
|
5802 |
msgstr ""
|
5803 |
|
5804 |
-
#: includes/class-wcj-
|
5805 |
-
msgid "
|
|
|
|
|
5806 |
msgstr ""
|
5807 |
|
5808 |
-
#: includes/class-wcj-
|
5809 |
-
|
5810 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5811 |
msgid "Profit"
|
5812 |
msgstr ""
|
5813 |
|
5814 |
-
#: includes/class-wcj-purchase-data.php:
|
5815 |
-
#: includes/class-wcj-purchase-data.php:
|
|
|
|
|
|
|
|
|
|
|
5816 |
msgid "Product cost (purchase) price"
|
5817 |
msgstr ""
|
5818 |
|
5819 |
-
#: includes/class-wcj-purchase-data.php:
|
5820 |
-
#: includes/class-wcj-purchase-data.php:
|
5821 |
msgid "Extra expenses (shipping etc.)"
|
5822 |
msgstr ""
|
5823 |
|
5824 |
-
#: includes/class-wcj-purchase-data.php:
|
5825 |
-
#: includes/class-wcj-purchase-data.php:
|
5826 |
msgid "Affiliate commission"
|
5827 |
msgstr ""
|
5828 |
|
5829 |
-
#: includes/class-wcj-purchase-data.php:
|
5830 |
-
#: includes/class-wcj-purchase-data.php:
|
5831 |
msgid "(Last) Purchase date"
|
5832 |
msgstr ""
|
5833 |
|
5834 |
-
#: includes/class-wcj-purchase-data.php:
|
5835 |
-
#: includes/class-wcj-purchase-data.php:
|
5836 |
msgid "Seller"
|
5837 |
msgstr ""
|
5838 |
|
5839 |
-
#: includes/class-wcj-purchase-data.php:
|
5840 |
-
#: includes/class-wcj-purchase-data.php:
|
5841 |
msgid "Purchase info"
|
5842 |
msgstr ""
|
5843 |
|
5844 |
-
#: includes/class-wcj-purchase-data.php:
|
5845 |
msgid "Selling"
|
5846 |
msgstr ""
|
5847 |
|
5848 |
-
#: includes/class-wcj-purchase-data.php:
|
5849 |
msgid "Buying"
|
5850 |
msgstr ""
|
5851 |
|
5852 |
-
#: includes/class-wcj-purchase-data.php:
|
5853 |
msgid "Report"
|
5854 |
msgstr ""
|
5855 |
|
5856 |
-
#: includes/class-wcj-purchase-data.php:
|
5857 |
msgid "Price Fields"
|
5858 |
msgstr ""
|
5859 |
|
5860 |
-
#: includes/class-wcj-purchase-data.php:
|
5861 |
-
#: includes/class-wcj-purchase-data.php:
|
5862 |
msgid ""
|
5863 |
"This fields will be added to product's edit page and will be included in "
|
5864 |
"product's purchase cost calculation."
|
5865 |
msgstr ""
|
5866 |
|
5867 |
-
#: includes/class-wcj-purchase-data.php:
|
5868 |
msgid "Custom Price Fields"
|
5869 |
msgstr ""
|
5870 |
|
5871 |
-
#: includes/class-wcj-purchase-data.php:
|
5872 |
msgid "Total Custom Price Fields"
|
5873 |
msgstr ""
|
5874 |
|
5875 |
-
#: includes/class-wcj-purchase-data.php:
|
5876 |
msgid "Custom Price Field"
|
5877 |
msgstr ""
|
5878 |
|
5879 |
-
#: includes/class-wcj-purchase-data.php:
|
5880 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:58
|
5881 |
-
msgid "Leave blank to disable"
|
5882 |
-
msgstr ""
|
5883 |
-
|
5884 |
-
#: includes/class-wcj-purchase-data.php:353
|
5885 |
msgid "Info Fields"
|
5886 |
msgstr ""
|
5887 |
|
5888 |
-
#: includes/class-wcj-purchase-data.php:
|
5889 |
msgid "This fields will be added to product's edit page."
|
5890 |
msgstr ""
|
5891 |
|
5892 |
-
#: includes/class-wcj-purchase-data.php:
|
5893 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5894 |
msgstr ""
|
5895 |
|
5896 |
-
#: includes/class-wcj-related-products.php:
|
5897 |
msgid ""
|
5898 |
-
"
|
5899 |
-
"
|
|
|
|
|
|
|
|
|
5900 |
msgstr ""
|
5901 |
|
5902 |
-
#: includes/class-wcj-related-products.php:
|
5903 |
msgid "Related Products Number"
|
5904 |
msgstr ""
|
5905 |
|
5906 |
-
#: includes/class-wcj-related-products.php:
|
5907 |
msgid "Related Products Columns"
|
5908 |
msgstr ""
|
5909 |
|
5910 |
-
#: includes/class-wcj-related-products.php:
|
5911 |
msgid "Order by"
|
5912 |
msgstr ""
|
5913 |
|
5914 |
-
#: includes/class-wcj-related-products.php:
|
5915 |
msgid "Random"
|
5916 |
msgstr ""
|
5917 |
|
5918 |
-
#: includes/class-wcj-related-products.php:
|
5919 |
msgid "Date"
|
5920 |
msgstr ""
|
5921 |
|
5922 |
-
#: includes/class-wcj-related-products.php:
|
5923 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5924 |
msgstr ""
|
5925 |
|
5926 |
-
#: includes/class-wcj-related-products.php:
|
5927 |
msgid "Ascending"
|
5928 |
msgstr ""
|
5929 |
|
5930 |
-
#: includes/class-wcj-related-products.php:
|
5931 |
msgid "Descending"
|
5932 |
msgstr ""
|
5933 |
|
5934 |
-
#: includes/class-wcj-related-products.php:
|
|
|
|
|
|
|
|
|
5935 |
msgid "Relate by Category"
|
5936 |
msgstr ""
|
5937 |
|
5938 |
-
#: includes/class-wcj-related-products.php:
|
5939 |
msgid "Relate by Tag"
|
5940 |
msgstr ""
|
5941 |
|
5942 |
-
#: includes/class-wcj-related-products.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5943 |
msgid "Hide Related Products"
|
5944 |
msgstr ""
|
5945 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5946 |
#: includes/class-wcj-reports.php:34
|
5947 |
msgid "Reports"
|
5948 |
msgstr ""
|
@@ -5955,111 +6674,131 @@ msgstr ""
|
|
5955 |
msgid "Booster: More Ranges - Months"
|
5956 |
msgstr ""
|
5957 |
|
5958 |
-
#: includes/class-wcj-reports.php:75 includes/class-wcj-reports.php:
|
5959 |
msgid "Select Range"
|
5960 |
msgstr ""
|
5961 |
|
5962 |
-
#: includes/class-wcj-reports.php:
|
5963 |
msgid "Booster: More Ranges"
|
5964 |
msgstr ""
|
5965 |
|
5966 |
-
#: includes/class-wcj-reports.php:
|
5967 |
msgid "Last 14 Days"
|
5968 |
msgstr ""
|
5969 |
|
5970 |
-
#: includes/class-wcj-reports.php:
|
5971 |
msgid "Last 30 Days"
|
5972 |
msgstr ""
|
5973 |
|
5974 |
-
#: includes/class-wcj-reports.php:
|
5975 |
msgid "Last 3 Months"
|
5976 |
msgstr ""
|
5977 |
|
5978 |
-
#: includes/class-wcj-reports.php:140
|
5979 |
msgid "Last 6 Months"
|
5980 |
msgstr ""
|
5981 |
|
5982 |
-
#: includes/class-wcj-reports.php:
|
5983 |
msgid "Last 12 Months"
|
5984 |
msgstr ""
|
5985 |
|
5986 |
-
#: includes/class-wcj-reports.php:
|
5987 |
msgid "Last 24 Months"
|
5988 |
msgstr ""
|
5989 |
|
5990 |
-
#: includes/class-wcj-reports.php:
|
5991 |
msgid "Same Days Last Month"
|
5992 |
msgstr ""
|
5993 |
|
5994 |
-
#: includes/class-wcj-reports.php:
|
|
|
|
|
|
|
|
|
5995 |
msgid "Last Year"
|
5996 |
msgstr ""
|
5997 |
|
5998 |
-
#: includes/class-wcj-reports.php:
|
5999 |
msgid "Booster: Product Sales"
|
6000 |
msgstr ""
|
6001 |
|
6002 |
-
#: includes/class-wcj-reports.php:
|
6003 |
msgid "Booster: Monthly Sales"
|
6004 |
msgstr ""
|
6005 |
|
6006 |
-
#: includes/class-wcj-reports.php:
|
6007 |
msgid "Booster: All in stock"
|
6008 |
msgstr ""
|
6009 |
|
6010 |
-
#: includes/class-wcj-reports.php:
|
6011 |
msgid "Booster: Understocked"
|
6012 |
msgstr ""
|
6013 |
|
6014 |
-
#: includes/class-wcj-reports.php:
|
6015 |
msgid "Booster: Overstocked"
|
6016 |
msgstr ""
|
6017 |
|
6018 |
-
#: includes/class-wcj-reports.php:
|
6019 |
msgid "Booster: Customers by Country"
|
6020 |
msgstr ""
|
6021 |
|
6022 |
-
#: includes/class-wcj-reports.php:
|
6023 |
msgid "Booster: Customers by Country Sets"
|
6024 |
msgstr ""
|
6025 |
|
6026 |
-
#: includes/class-wcj-reports.php:
|
6027 |
msgid "Product Sales"
|
6028 |
msgstr ""
|
6029 |
|
6030 |
-
#: includes/class-wcj-reports.php:
|
6031 |
-
msgid "
|
|
|
|
|
|
|
|
|
6032 |
msgstr ""
|
6033 |
|
6034 |
-
#: includes/class-wcj-reports.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6035 |
msgid "Monthly Sales (with currency conversions)"
|
6036 |
msgstr ""
|
6037 |
|
6038 |
-
#: includes/class-wcj-reports.php:
|
6039 |
msgid "Customers by Country"
|
6040 |
msgstr ""
|
6041 |
|
6042 |
-
#: includes/class-wcj-reports.php:
|
6043 |
msgid "Customers by Country Sets"
|
6044 |
msgstr ""
|
6045 |
|
6046 |
-
#: includes/class-wcj-reports.php:
|
6047 |
msgid "All in Stock with sales data"
|
6048 |
msgstr ""
|
6049 |
|
6050 |
-
#: includes/class-wcj-reports.php:
|
6051 |
msgid "Understocked products (calculated by sales data)"
|
6052 |
msgstr ""
|
6053 |
|
6054 |
-
#: includes/class-wcj-reports.php:
|
6055 |
msgid "Overstocked products (calculated by sales data)"
|
6056 |
msgstr ""
|
6057 |
|
6058 |
-
#: includes/class-wcj-reports.php:
|
6059 |
msgid "Available Reports"
|
6060 |
msgstr ""
|
6061 |
|
6062 |
-
#: includes/class-wcj-reports.php:
|
6063 |
msgid "View report"
|
6064 |
msgstr ""
|
6065 |
|
@@ -6141,125 +6880,178 @@ msgstr ""
|
|
6141 |
msgid "Hide WooCommerce shipping when free is available."
|
6142 |
msgstr ""
|
6143 |
|
6144 |
-
#: includes/class-wcj-shipping.php:
|
6145 |
msgid "Booster: Hide shipping"
|
6146 |
msgstr ""
|
6147 |
|
6148 |
-
#: includes/class-wcj-shipping.php:
|
6149 |
msgid "Hide all when free is available"
|
6150 |
msgstr ""
|
6151 |
|
6152 |
-
#: includes/class-wcj-shipping.php:
|
6153 |
msgid "WooCommerce > Settings > Shipping"
|
6154 |
msgstr ""
|
6155 |
|
6156 |
-
#: includes/class-wcj-shipping.php:
|
6157 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
6158 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:85
|
6159 |
msgid "Custom Shipping"
|
6160 |
msgstr ""
|
6161 |
|
6162 |
-
#: includes/class-wcj-shipping.php:
|
6163 |
msgid "This section lets you add custom shipping method."
|
6164 |
msgstr ""
|
6165 |
|
6166 |
-
#: includes/class-wcj-shipping.php:
|
|
|
6167 |
msgid "Visit %s to set method's options."
|
6168 |
msgstr ""
|
6169 |
|
6170 |
-
#: includes/class-wcj-shipping.php:
|
6171 |
msgid "Admin Title"
|
6172 |
msgstr ""
|
6173 |
|
6174 |
-
#: includes/class-wcj-shipping.php:
|
6175 |
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:51
|
6176 |
msgid "Booster: Custom Shipping"
|
6177 |
msgstr ""
|
6178 |
|
6179 |
-
#: includes/class-wcj-shipping.php:
|
6180 |
msgid "Custom Shipping (Legacy - without Shipping Zones)"
|
6181 |
msgstr ""
|
6182 |
|
6183 |
-
#: includes/class-wcj-shipping.php:
|
6184 |
msgid "This section lets you set number of custom shipping methods to add."
|
6185 |
msgstr ""
|
6186 |
|
6187 |
-
#: includes/class-wcj-shipping.php:
|
|
|
6188 |
msgid "After setting the number, visit %s to set each method options."
|
6189 |
msgstr ""
|
6190 |
|
6191 |
-
#: includes/class-wcj-shipping.php:
|
6192 |
msgid "Custom Shipping Methods Number"
|
6193 |
msgstr ""
|
6194 |
|
6195 |
-
#: includes/class-wcj-shipping.php:
|
6196 |
msgid "Admin Title Custom Shipping"
|
6197 |
msgstr ""
|
6198 |
|
6199 |
-
#: includes/class-wcj-shipping.php:
|
6200 |
msgid "Hide if Free is Available"
|
6201 |
msgstr ""
|
6202 |
|
6203 |
-
#: includes/class-wcj-shipping.php:
|
6204 |
msgid ""
|
6205 |
"This section lets you hide other shipping options when free shipping is "
|
6206 |
"available on shop frontend."
|
6207 |
msgstr ""
|
6208 |
|
6209 |
-
#: includes/class-wcj-shipping.php:
|
6210 |
msgid "Hide shipping"
|
6211 |
msgstr ""
|
6212 |
|
6213 |
-
#: includes/class-wcj-shipping.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6214 |
msgid "Shipping Descriptions"
|
6215 |
msgstr ""
|
6216 |
|
6217 |
-
#: includes/class-wcj-shipping.php:
|
|
|
6218 |
msgid ""
|
6219 |
"This section will allow you to add any text (e.g. description) for shipping "
|
6220 |
"method. Text will be visible on cart and checkout pages. You can add HTML "
|
6221 |
"tags here, e.g. try \"%s\""
|
6222 |
msgstr ""
|
6223 |
|
6224 |
-
#: includes/class-wcj-shipping.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6225 |
msgid "Shipping Icons"
|
6226 |
msgstr ""
|
6227 |
|
6228 |
-
#: includes/class-wcj-shipping.php:
|
6229 |
msgid ""
|
6230 |
"This section will allow you to add icons for shipping method. Icons will be "
|
6231 |
"visible on cart and checkout pages."
|
6232 |
msgstr ""
|
6233 |
|
6234 |
-
#: includes/class-wcj-shipping.php:
|
6235 |
msgid "Icon Position"
|
6236 |
msgstr ""
|
6237 |
|
6238 |
-
#: includes/class-wcj-shipping.php:
|
6239 |
msgid "Before label"
|
6240 |
msgstr ""
|
6241 |
|
6242 |
-
#: includes/class-wcj-shipping.php:
|
6243 |
msgid "After label"
|
6244 |
msgstr ""
|
6245 |
|
6246 |
-
#: includes/class-wcj-shipping.php:
|
|
|
|
|
|
|
|
|
6247 |
msgid "Icon Style"
|
6248 |
msgstr ""
|
6249 |
|
6250 |
-
#: includes/class-wcj-shipping.php:
|
6251 |
msgid ""
|
6252 |
"You can also style icons with CSS class \"wcj_shipping_icon\", or id "
|
6253 |
"\"wcj_shipping_icon_method_id\""
|
6254 |
msgstr ""
|
6255 |
|
6256 |
-
#: includes/class-wcj-shipping.php:
|
6257 |
-
#: includes/export/class-wcj-fields-helper.php:
|
6258 |
msgid "Image URL"
|
6259 |
msgstr ""
|
6260 |
|
6261 |
-
#: includes/class-wcj-sku.php:26 includes/class-wcj-sku.php:
|
6262 |
-
#: includes/export/class-wcj-fields-helper.php:
|
6263 |
msgid "SKU"
|
6264 |
msgstr ""
|
6265 |
|
@@ -6275,105 +7067,100 @@ msgstr ""
|
|
6275 |
msgid "The tool generates and sets product SKUs for existing products."
|
6276 |
msgstr ""
|
6277 |
|
6278 |
-
#: includes/class-wcj-sku.php:
|
|
|
|
|
|
|
|
|
6279 |
msgid "SKUs generated and set successfully!"
|
6280 |
msgstr ""
|
6281 |
|
6282 |
-
#: includes/class-wcj-sku.php:
|
6283 |
msgid "Preview SKUs"
|
6284 |
msgstr ""
|
6285 |
|
6286 |
-
#: includes/class-wcj-sku.php:
|
6287 |
msgid "Set SKUs"
|
6288 |
msgstr ""
|
6289 |
|
6290 |
-
#: includes/class-wcj-sku.php:
|
6291 |
msgid "SKU Format Options"
|
6292 |
msgstr ""
|
6293 |
|
6294 |
-
#: includes/class-wcj-sku.php:
|
6295 |
-
msgid "Number Generation"
|
6296 |
-
msgstr ""
|
6297 |
-
|
6298 |
-
#: includes/class-wcj-sku.php:282
|
6299 |
msgid "From product ID"
|
6300 |
msgstr ""
|
6301 |
|
6302 |
-
#: includes/class-wcj-sku.php:
|
6303 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:45
|
6304 |
-
msgid "Sequential"
|
6305 |
-
msgstr ""
|
6306 |
-
|
6307 |
-
#: includes/class-wcj-sku.php:290
|
6308 |
msgid "Sequential Number Generation Counter"
|
6309 |
msgstr ""
|
6310 |
|
6311 |
-
#: includes/class-wcj-sku.php:
|
6312 |
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:63
|
6313 |
msgid "Prefix"
|
6314 |
msgstr ""
|
6315 |
|
6316 |
-
#: includes/class-wcj-sku.php:
|
6317 |
msgid "Minimum Number Length"
|
6318 |
msgstr ""
|
6319 |
|
6320 |
-
#: includes/class-wcj-sku.php:
|
6321 |
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:70
|
6322 |
msgid "Suffix"
|
6323 |
msgstr ""
|
6324 |
|
6325 |
-
#: includes/class-wcj-sku.php:
|
6326 |
msgid "Variable Products Variations"
|
6327 |
msgstr ""
|
6328 |
|
6329 |
-
#: includes/class-wcj-sku.php:
|
6330 |
msgid ""
|
6331 |
"Please note, that on new variable product creation, variations will get same "
|
6332 |
"SKUs as parent product, and if you want variations to have different SKUs, "
|
6333 |
"you will need to run \"Autogenerate SKUs\" tool manually."
|
6334 |
msgstr ""
|
6335 |
|
6336 |
-
#: includes/class-wcj-sku.php:
|
6337 |
msgid "SKU same as parent's product"
|
6338 |
msgstr ""
|
6339 |
|
6340 |
-
#: includes/class-wcj-sku.php:
|
6341 |
msgid "Generate different SKU for each variation"
|
6342 |
msgstr ""
|
6343 |
|
6344 |
-
#: includes/class-wcj-sku.php:
|
6345 |
msgid "SKU same as parent's product + variation letter suffix"
|
6346 |
msgstr ""
|
6347 |
|
6348 |
-
#: includes/class-wcj-sku.php:
|
6349 |
msgid "Categories Options"
|
6350 |
msgstr ""
|
6351 |
|
6352 |
-
#: includes/class-wcj-sku.php:
|
6353 |
-
msgid "More Options"
|
6354 |
-
msgstr ""
|
6355 |
-
|
6356 |
-
#: includes/class-wcj-sku.php:384
|
6357 |
msgid "Automatically Generate SKU for New Products"
|
6358 |
msgstr ""
|
6359 |
|
6360 |
-
#: includes/class-wcj-sku.php:
|
6361 |
-
msgid "
|
6362 |
msgstr ""
|
6363 |
|
6364 |
-
#: includes/class-wcj-sku.php:
|
6365 |
msgid "Allow Duplicate SKUs"
|
6366 |
msgstr ""
|
6367 |
|
6368 |
-
#: includes/class-wcj-sku.php:
|
|
|
|
|
|
|
|
|
6369 |
msgid "Add SKU to Customer Emails"
|
6370 |
msgstr ""
|
6371 |
|
6372 |
-
#: includes/class-wcj-sku.php:
|
6373 |
msgid "When enabled - all new products will be given (autogenerated) SKU."
|
6374 |
msgstr ""
|
6375 |
|
6376 |
-
#: includes/class-wcj-sku.php:
|
6377 |
msgid ""
|
6378 |
"If you wish to set SKUs for existing products, use \"Autogenerate SKUs\" "
|
6379 |
"Tool."
|
@@ -6385,75 +7172,113 @@ msgstr ""
|
|
6385 |
|
6386 |
#: includes/class-wcj-sorting.php:27
|
6387 |
msgid ""
|
6388 |
-
"Add more WooCommerce sorting options or remove
|
|
|
6389 |
msgstr ""
|
6390 |
|
6391 |
-
#: includes/class-wcj-sorting.php:
|
6392 |
-
msgid "
|
6393 |
msgstr ""
|
6394 |
|
6395 |
-
#: includes/class-wcj-sorting.php:
|
6396 |
-
msgid "
|
6397 |
msgstr ""
|
6398 |
|
6399 |
-
#: includes/class-wcj-sorting.php:
|
6400 |
-
msgid "
|
|
|
|
|
|
|
|
|
6401 |
msgstr ""
|
6402 |
|
6403 |
#: includes/class-wcj-sorting.php:171
|
6404 |
-
msgid "
|
6405 |
msgstr ""
|
6406 |
|
6407 |
-
#: includes/class-wcj-sorting.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6408 |
msgid "Add More Sorting"
|
6409 |
msgstr ""
|
6410 |
|
6411 |
-
#: includes/class-wcj-sorting.php:
|
6412 |
msgid "Sort by Name"
|
6413 |
msgstr ""
|
6414 |
|
6415 |
-
#: includes/class-wcj-sorting.php:
|
6416 |
msgid "Sort by title: A to Z"
|
6417 |
msgstr ""
|
6418 |
|
6419 |
-
#: includes/class-wcj-sorting.php:
|
6420 |
-
#: includes/class-wcj-sorting.php:
|
6421 |
-
#: includes/class-wcj-sorting.php:
|
6422 |
msgid "Text to show on frontend. Leave blank to disable."
|
6423 |
msgstr ""
|
6424 |
|
6425 |
-
#: includes/class-wcj-sorting.php:
|
6426 |
msgid "Sort by title: Z to A"
|
6427 |
msgstr ""
|
6428 |
|
6429 |
-
#: includes/class-wcj-sorting.php:
|
6430 |
msgid "Sort by SKU"
|
6431 |
msgstr ""
|
6432 |
|
6433 |
-
#: includes/class-wcj-sorting.php:
|
6434 |
msgid "Sort by SKU: low to high"
|
6435 |
msgstr ""
|
6436 |
|
6437 |
-
#: includes/class-wcj-sorting.php:
|
6438 |
msgid "Sort by SKU: high to low"
|
6439 |
msgstr ""
|
6440 |
|
6441 |
-
#: includes/class-wcj-sorting.php:
|
6442 |
msgid "Sort SKUs as numbers instead of as texts"
|
6443 |
msgstr ""
|
6444 |
|
6445 |
-
#: includes/class-wcj-sorting.php:
|
6446 |
msgid "Sort by stock quantity"
|
6447 |
msgstr ""
|
6448 |
|
6449 |
-
#: includes/class-wcj-sorting.php:
|
6450 |
msgid "Sort by stock quantity: low to high"
|
6451 |
msgstr ""
|
6452 |
|
6453 |
-
#: includes/class-wcj-sorting.php:
|
6454 |
msgid "Sort by stock quantity: high to low"
|
6455 |
msgstr ""
|
6456 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6457 |
#: includes/class-wcj-wholesale-price.php:27
|
6458 |
msgid "Wholesale Price"
|
6459 |
msgstr ""
|
@@ -6464,129 +7289,129 @@ msgid ""
|
|
6464 |
"more pay less)."
|
6465 |
msgstr ""
|
6466 |
|
6467 |
-
#: includes/class-wcj-wholesale-price.php:
|
6468 |
msgid "Price directly"
|
6469 |
msgstr ""
|
6470 |
|
6471 |
-
#: includes/class-wcj-wholesale-price.php:
|
6472 |
msgid "Enable per Product Levels"
|
6473 |
msgstr ""
|
6474 |
|
6475 |
-
#: includes/class-wcj-wholesale-price.php:
|
6476 |
-
#: includes/class-wcj-wholesale-price.php:
|
6477 |
msgid "Discount Type"
|
6478 |
msgstr ""
|
6479 |
|
6480 |
-
#: includes/class-wcj-wholesale-price.php:
|
6481 |
-
#: includes/class-wcj-wholesale-price.php:
|
6482 |
-
#: includes/class-wcj-wholesale-price.php:
|
6483 |
-
#: includes/class-wcj-wholesale-price.php:
|
6484 |
msgid "Number of levels"
|
6485 |
msgstr ""
|
6486 |
|
6487 |
-
#: includes/class-wcj-wholesale-price.php:
|
6488 |
-
#: includes/class-wcj-wholesale-price.php:
|
6489 |
msgid ""
|
6490 |
"Free Booster's version is limited to one level maximum. Please visit http://"
|
6491 |
"booster.io to get full version."
|
6492 |
msgstr ""
|
6493 |
|
6494 |
-
#: includes/class-wcj-wholesale-price.php:
|
6495 |
-
#: includes/class-wcj-wholesale-price.php:
|
6496 |
-
#: includes/class-wcj-wholesale-price.php:
|
6497 |
-
#: includes/class-wcj-wholesale-price.php:
|
6498 |
msgid "Level"
|
6499 |
msgstr ""
|
6500 |
|
6501 |
-
#: includes/class-wcj-wholesale-price.php:
|
6502 |
-
#: includes/class-wcj-wholesale-price.php:
|
6503 |
-
#: includes/class-wcj-wholesale-price.php:
|
6504 |
-
#: includes/class-wcj-wholesale-price.php:
|
6505 |
msgid "Min quantity"
|
6506 |
msgstr ""
|
6507 |
|
6508 |
-
#: includes/class-wcj-wholesale-price.php:
|
6509 |
-
#: includes/export/class-wcj-fields-helper.php:
|
6510 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
6511 |
msgid "Price"
|
6512 |
msgstr ""
|
6513 |
|
6514 |
-
#: includes/class-wcj-wholesale-price.php:
|
6515 |
-
#: includes/class-wcj-wholesale-price.php:
|
6516 |
-
#: includes/class-wcj-wholesale-price.php:
|
6517 |
-
#: includes/class-wcj-wholesale-price.php:
|
6518 |
-
#: includes/class-wcj-wholesale-price.php:
|
6519 |
-
#: includes/class-wcj-wholesale-price.php:
|
6520 |
msgid "Discount"
|
6521 |
msgstr ""
|
6522 |
|
6523 |
-
#: includes/class-wcj-wholesale-price.php:
|
6524 |
msgid ""
|
6525 |
"Wholesale Price Levels Options. If you want to display prices table on "
|
6526 |
"frontend, use [wcj_product_wholesale_price_table] shortcode."
|
6527 |
msgstr ""
|
6528 |
|
6529 |
-
#: includes/class-wcj-wholesale-price.php:
|
6530 |
msgid "Enable per Product"
|
6531 |
msgstr ""
|
6532 |
|
6533 |
-
#: includes/class-wcj-wholesale-price.php:
|
6534 |
msgid "Use total cart quantity instead of product quantity"
|
6535 |
msgstr ""
|
6536 |
|
6537 |
-
#: includes/class-wcj-wholesale-price.php:
|
6538 |
msgid "Apply wholesale discount only if no other cart discounts were applied"
|
6539 |
msgstr ""
|
6540 |
|
6541 |
-
#: includes/class-wcj-wholesale-price.php:
|
6542 |
msgid "Show discount info on cart page"
|
6543 |
msgstr ""
|
6544 |
|
6545 |
-
#: includes/class-wcj-wholesale-price.php:
|
6546 |
msgid "Show"
|
6547 |
msgstr ""
|
6548 |
|
6549 |
-
#: includes/class-wcj-wholesale-price.php:
|
6550 |
msgid "If show discount info on cart page is enabled, set format here"
|
6551 |
msgstr ""
|
6552 |
|
6553 |
-
#: includes/class-wcj-wholesale-price.php:
|
6554 |
msgid "Replaced values: %old_price%, %price%, %discount_value%."
|
6555 |
msgstr ""
|
6556 |
|
6557 |
-
#: includes/class-wcj-wholesale-price.php:
|
6558 |
msgid "Products to include"
|
6559 |
msgstr ""
|
6560 |
|
6561 |
-
#: includes/class-wcj-wholesale-price.php:
|
6562 |
msgid "Leave blank to include all products."
|
6563 |
msgstr ""
|
6564 |
|
6565 |
-
#: includes/class-wcj-wholesale-price.php:
|
6566 |
msgid "Products to exclude"
|
6567 |
msgstr ""
|
6568 |
|
6569 |
-
#: includes/class-wcj-wholesale-price.php:
|
6570 |
msgid "Wholesale Levels Options"
|
6571 |
msgstr ""
|
6572 |
|
6573 |
-
#: includes/class-wcj-wholesale-price.php:
|
6574 |
-
#: includes/class-wcj-wholesale-price.php:
|
6575 |
msgid "Minimum quantity to apply discount"
|
6576 |
msgstr ""
|
6577 |
|
6578 |
-
#: includes/class-wcj-wholesale-price.php:
|
6579 |
msgid "Additional User Roles Options"
|
6580 |
msgstr ""
|
6581 |
|
6582 |
-
#: includes/class-wcj-wholesale-price.php:
|
6583 |
msgid ""
|
6584 |
"If you want to set different wholesale pricing options for different user "
|
6585 |
"roles, fill this section. Please note that you can also use Booster's "
|
6586 |
"\"Price by User Role\" module without filling this section."
|
6587 |
msgstr ""
|
6588 |
|
6589 |
-
#: includes/class-wcj-wholesale-price.php:
|
6590 |
msgid "User Roles Settings"
|
6591 |
msgstr ""
|
6592 |
|
@@ -6598,84 +7423,306 @@ msgstr ""
|
|
6598 |
msgid "Booster for WooCommerce basic WPML support."
|
6599 |
msgstr ""
|
6600 |
|
6601 |
-
#: includes/class-wcj-wpml.php:66 includes/classes/class-wcj-module.php:
|
6602 |
msgid "Tools"
|
6603 |
msgstr ""
|
6604 |
|
6605 |
-
#: includes/class-wcj-wpml.php:71 includes/classes/class-wcj-module.php:
|
6606 |
msgid "Module Tools"
|
6607 |
msgstr ""
|
6608 |
|
6609 |
-
#: includes/class-wcj-wpml.php:
|
|
|
|
|
|
|
|
|
|
|
6610 |
msgid "Regenerate wpml-config.xml file"
|
6611 |
msgstr ""
|
6612 |
|
6613 |
-
#: includes/class-wcj-wpml.php:
|
6614 |
msgid "File wpml-config.xml successfully regenerated!"
|
6615 |
msgstr ""
|
6616 |
|
6617 |
-
#: includes/
|
6618 |
-
msgid "
|
6619 |
msgstr ""
|
6620 |
|
6621 |
-
#: includes/
|
6622 |
-
msgid "
|
6623 |
msgstr ""
|
6624 |
|
6625 |
-
#: includes/
|
6626 |
-
msgid "
|
6627 |
msgstr ""
|
6628 |
|
6629 |
-
#: includes/
|
6630 |
-
msgid "
|
6631 |
msgstr ""
|
6632 |
|
6633 |
-
#: includes/
|
6634 |
-
msgid "
|
6635 |
msgstr ""
|
6636 |
|
6637 |
-
#: includes/
|
6638 |
-
msgid "
|
6639 |
msgstr ""
|
6640 |
|
6641 |
-
#: includes/
|
6642 |
-
msgid "
|
6643 |
msgstr ""
|
6644 |
|
6645 |
-
#: includes/
|
6646 |
-
msgid "
|
6647 |
msgstr ""
|
6648 |
|
6649 |
-
#: includes/
|
6650 |
-
|
|
|
6651 |
msgstr ""
|
6652 |
|
6653 |
-
#: includes/
|
6654 |
-
|
|
|
|
|
|
|
6655 |
msgstr ""
|
6656 |
|
6657 |
-
#: includes/
|
6658 |
-
msgid "
|
6659 |
msgstr ""
|
6660 |
|
6661 |
-
#: includes/
|
6662 |
-
msgid "
|
|
|
6663 |
msgstr ""
|
6664 |
|
6665 |
-
#: includes/
|
6666 |
-
msgid "
|
6667 |
msgstr ""
|
6668 |
|
6669 |
-
#: includes/
|
6670 |
-
msgid "
|
6671 |
msgstr ""
|
6672 |
|
6673 |
-
#: includes/
|
6674 |
-
msgid "
|
6675 |
msgstr ""
|
6676 |
|
6677 |
-
#: includes/
|
6678 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6679 |
msgstr ""
|
6680 |
|
6681 |
#: includes/currencies/wcj-currencies.php:22
|
@@ -7112,7 +8159,7 @@ msgid "Polish Zloty"
|
|
7112 |
msgstr ""
|
7113 |
|
7114 |
#: includes/currencies/wcj-currencies.php:130
|
7115 |
-
msgid "Paraguayan
|
7116 |
msgstr ""
|
7117 |
|
7118 |
#: includes/currencies/wcj-currencies.php:131
|
@@ -7310,14 +8357,17 @@ msgid "[{site_title}] Custom Subject - Order ({order_number}) - {order_date}"
|
|
7310 |
msgstr ""
|
7311 |
|
7312 |
#: includes/emails/class-wc-email-wcj-custom.php:251
|
|
|
7313 |
msgid "New order (%s)"
|
7314 |
msgstr ""
|
7315 |
|
7316 |
#: includes/emails/class-wc-email-wcj-custom.php:252
|
|
|
7317 |
msgid "Order status updated to %s"
|
7318 |
msgstr ""
|
7319 |
|
7320 |
#: includes/emails/class-wc-email-wcj-custom.php:255
|
|
|
7321 |
msgid "Order status %s to %s"
|
7322 |
msgstr ""
|
7323 |
|
@@ -7384,6 +8434,7 @@ msgid "Recipient(s)"
|
|
7384 |
msgstr ""
|
7385 |
|
7386 |
#: includes/emails/class-wc-email-wcj-custom.php:297
|
|
|
7387 |
msgid ""
|
7388 |
"Enter recipients (comma separated) for this email. Defaults to <code>%s</"
|
7389 |
"code>."
|
@@ -7398,6 +8449,7 @@ msgid "Subject"
|
|
7398 |
msgstr ""
|
7399 |
|
7400 |
#: includes/emails/class-wc-email-wcj-custom.php:304
|
|
|
7401 |
msgid ""
|
7402 |
"This controls the email subject line. Leave blank to use the default "
|
7403 |
"subject: <code>%s</code>."
|
@@ -7408,6 +8460,7 @@ msgid "Email Heading"
|
|
7408 |
msgstr ""
|
7409 |
|
7410 |
#: includes/emails/class-wc-email-wcj-custom.php:311
|
|
|
7411 |
msgid ""
|
7412 |
"This controls the main heading contained within the email notification. "
|
7413 |
"Leave blank to use the default heading: <code>%s</code>."
|
@@ -7434,1466 +8487,1468 @@ msgstr ""
|
|
7434 |
msgid "Plain text template"
|
7435 |
msgstr ""
|
7436 |
|
7437 |
-
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:
|
7438 |
msgid "Cron job: exchange rates successfully updated"
|
7439 |
msgstr ""
|
7440 |
|
7441 |
-
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:
|
7442 |
msgid "Cron job: exchange rates not updated, as currency_from == currency_to"
|
7443 |
msgstr ""
|
7444 |
|
7445 |
-
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:
|
7446 |
msgid "Cron job: exchange rates update failed"
|
7447 |
msgstr ""
|
7448 |
|
7449 |
-
#: includes/
|
7450 |
-
|
|
|
7451 |
msgstr ""
|
7452 |
|
7453 |
#: includes/export/class-wcj-fields-helper.php:36
|
7454 |
-
|
7455 |
-
#: includes/export/class-wcj-fields-helper.php:217
|
7456 |
-
msgid "Billing Email"
|
7457 |
msgstr ""
|
7458 |
|
7459 |
#: includes/export/class-wcj-fields-helper.php:37
|
7460 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7461 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7462 |
-
msgid "Billing
|
7463 |
msgstr ""
|
7464 |
|
7465 |
#: includes/export/class-wcj-fields-helper.php:38
|
7466 |
#: includes/export/class-wcj-fields-helper.php:123
|
7467 |
#: includes/export/class-wcj-fields-helper.php:208
|
7468 |
-
msgid "Billing
|
7469 |
msgstr ""
|
7470 |
|
7471 |
#: includes/export/class-wcj-fields-helper.php:39
|
7472 |
#: includes/export/class-wcj-fields-helper.php:124
|
7473 |
#: includes/export/class-wcj-fields-helper.php:209
|
7474 |
-
msgid "Billing
|
7475 |
msgstr ""
|
7476 |
|
7477 |
#: includes/export/class-wcj-fields-helper.php:40
|
7478 |
#: includes/export/class-wcj-fields-helper.php:125
|
7479 |
#: includes/export/class-wcj-fields-helper.php:210
|
7480 |
-
msgid "Billing
|
7481 |
msgstr ""
|
7482 |
|
7483 |
#: includes/export/class-wcj-fields-helper.php:41
|
7484 |
#: includes/export/class-wcj-fields-helper.php:126
|
7485 |
#: includes/export/class-wcj-fields-helper.php:211
|
7486 |
-
msgid "Billing Address
|
7487 |
msgstr ""
|
7488 |
|
7489 |
#: includes/export/class-wcj-fields-helper.php:42
|
7490 |
#: includes/export/class-wcj-fields-helper.php:127
|
7491 |
#: includes/export/class-wcj-fields-helper.php:212
|
7492 |
-
msgid "Billing
|
7493 |
msgstr ""
|
7494 |
|
7495 |
#: includes/export/class-wcj-fields-helper.php:43
|
7496 |
#: includes/export/class-wcj-fields-helper.php:128
|
7497 |
#: includes/export/class-wcj-fields-helper.php:213
|
7498 |
-
msgid "Billing
|
7499 |
msgstr ""
|
7500 |
|
7501 |
#: includes/export/class-wcj-fields-helper.php:44
|
7502 |
#: includes/export/class-wcj-fields-helper.php:129
|
7503 |
#: includes/export/class-wcj-fields-helper.php:214
|
7504 |
-
msgid "Billing
|
7505 |
msgstr ""
|
7506 |
|
7507 |
#: includes/export/class-wcj-fields-helper.php:45
|
7508 |
#: includes/export/class-wcj-fields-helper.php:130
|
7509 |
#: includes/export/class-wcj-fields-helper.php:215
|
7510 |
-
msgid "Billing
|
7511 |
msgstr ""
|
7512 |
|
7513 |
#: includes/export/class-wcj-fields-helper.php:46
|
7514 |
#: includes/export/class-wcj-fields-helper.php:131
|
7515 |
#: includes/export/class-wcj-fields-helper.php:216
|
7516 |
-
msgid "Billing
|
7517 |
msgstr ""
|
7518 |
|
7519 |
#: includes/export/class-wcj-fields-helper.php:47
|
|
|
|
|
|
|
|
|
|
|
|
|
7520 |
msgid "Last Order Date"
|
7521 |
msgstr ""
|
7522 |
|
7523 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7524 |
msgid "Customer ID"
|
7525 |
msgstr ""
|
7526 |
|
7527 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7528 |
msgid "First Name"
|
7529 |
msgstr ""
|
7530 |
|
7531 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7532 |
msgid "Last Name"
|
7533 |
msgstr ""
|
7534 |
|
7535 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7536 |
msgid "Login"
|
7537 |
msgstr ""
|
7538 |
|
7539 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7540 |
msgid "Nicename"
|
7541 |
msgstr ""
|
7542 |
|
7543 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7544 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7545 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:163
|
7546 |
msgid "URL"
|
7547 |
msgstr ""
|
7548 |
|
7549 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7550 |
#: includes/reports/wcj-class-reports-customers.php:94
|
7551 |
msgid "Registered"
|
7552 |
msgstr ""
|
7553 |
|
7554 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7555 |
msgid "Display Name"
|
7556 |
msgstr ""
|
7557 |
|
7558 |
-
#: includes/export/class-wcj-fields-helper.php:111
|
7559 |
-
#: includes/export/class-wcj-fields-helper.php:194
|
7560 |
-
#: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:254
|
7561 |
-
msgid "Order ID"
|
7562 |
-
msgstr ""
|
7563 |
-
|
7564 |
-
#: includes/export/class-wcj-fields-helper.php:112
|
7565 |
-
#: includes/export/class-wcj-fields-helper.php:195
|
7566 |
-
msgid "Order Number"
|
7567 |
-
msgstr ""
|
7568 |
-
|
7569 |
#: includes/export/class-wcj-fields-helper.php:113
|
7570 |
#: includes/export/class-wcj-fields-helper.php:196
|
7571 |
-
msgid "Order
|
7572 |
msgstr ""
|
7573 |
|
7574 |
#: includes/export/class-wcj-fields-helper.php:114
|
7575 |
#: includes/export/class-wcj-fields-helper.php:197
|
7576 |
-
msgid "Order
|
7577 |
msgstr ""
|
7578 |
|
7579 |
#: includes/export/class-wcj-fields-helper.php:115
|
7580 |
#: includes/export/class-wcj-fields-helper.php:198
|
7581 |
-
msgid "Order
|
7582 |
msgstr ""
|
7583 |
|
7584 |
#: includes/export/class-wcj-fields-helper.php:116
|
7585 |
#: includes/export/class-wcj-fields-helper.php:199
|
7586 |
-
msgid "Order
|
7587 |
msgstr ""
|
7588 |
|
7589 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7590 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7591 |
-
|
7592 |
-
msgid "Order Total"
|
7593 |
msgstr ""
|
7594 |
|
7595 |
#: includes/export/class-wcj-fields-helper.php:119
|
7596 |
#: includes/export/class-wcj-fields-helper.php:204
|
7597 |
-
|
|
|
7598 |
msgstr ""
|
7599 |
|
7600 |
#: includes/export/class-wcj-fields-helper.php:120
|
7601 |
#: includes/export/class-wcj-fields-helper.php:205
|
7602 |
-
msgid "Order
|
7603 |
msgstr ""
|
7604 |
|
7605 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7606 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7607 |
-
msgid "
|
7608 |
msgstr ""
|
7609 |
|
7610 |
#: includes/export/class-wcj-fields-helper.php:134
|
7611 |
#: includes/export/class-wcj-fields-helper.php:219
|
7612 |
-
msgid "Shipping
|
7613 |
msgstr ""
|
7614 |
|
7615 |
#: includes/export/class-wcj-fields-helper.php:135
|
7616 |
#: includes/export/class-wcj-fields-helper.php:220
|
7617 |
-
msgid "Shipping
|
7618 |
msgstr ""
|
7619 |
|
7620 |
#: includes/export/class-wcj-fields-helper.php:136
|
7621 |
#: includes/export/class-wcj-fields-helper.php:221
|
7622 |
-
msgid "Shipping
|
7623 |
msgstr ""
|
7624 |
|
7625 |
#: includes/export/class-wcj-fields-helper.php:137
|
7626 |
#: includes/export/class-wcj-fields-helper.php:222
|
7627 |
-
msgid "Shipping Address
|
7628 |
msgstr ""
|
7629 |
|
7630 |
#: includes/export/class-wcj-fields-helper.php:138
|
7631 |
#: includes/export/class-wcj-fields-helper.php:223
|
7632 |
-
msgid "Shipping
|
7633 |
msgstr ""
|
7634 |
|
7635 |
#: includes/export/class-wcj-fields-helper.php:139
|
7636 |
#: includes/export/class-wcj-fields-helper.php:224
|
7637 |
-
msgid "Shipping
|
7638 |
msgstr ""
|
7639 |
|
7640 |
#: includes/export/class-wcj-fields-helper.php:140
|
7641 |
#: includes/export/class-wcj-fields-helper.php:225
|
7642 |
-
msgid "Shipping
|
7643 |
msgstr ""
|
7644 |
|
7645 |
#: includes/export/class-wcj-fields-helper.php:141
|
7646 |
#: includes/export/class-wcj-fields-helper.php:226
|
|
|
|
|
|
|
|
|
|
|
7647 |
msgid "Shipping Country"
|
7648 |
msgstr ""
|
7649 |
|
7650 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7651 |
msgid "Item Name"
|
7652 |
msgstr ""
|
7653 |
|
7654 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7655 |
msgid "Item Meta"
|
7656 |
msgstr ""
|
7657 |
|
7658 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7659 |
msgid "Item Variation Meta"
|
7660 |
msgstr ""
|
7661 |
|
7662 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7663 |
msgid "Item Quantity"
|
7664 |
msgstr ""
|
7665 |
|
7666 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7667 |
msgid "Item Tax Class"
|
7668 |
msgstr ""
|
7669 |
|
7670 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7671 |
msgid "Item Product ID"
|
7672 |
msgstr ""
|
7673 |
|
7674 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7675 |
msgid "Item Variation ID"
|
7676 |
msgstr ""
|
7677 |
|
7678 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7679 |
msgid "Item Line Subtotal"
|
7680 |
msgstr ""
|
7681 |
|
7682 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7683 |
msgid "Item Line Total"
|
7684 |
msgstr ""
|
7685 |
|
7686 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7687 |
msgid "Item Line Subtotal Tax"
|
7688 |
msgstr ""
|
7689 |
|
7690 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7691 |
msgid "Item Line Tax"
|
7692 |
msgstr ""
|
7693 |
|
7694 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7695 |
msgid "Item Line Subtotal Plus Tax"
|
7696 |
msgstr ""
|
7697 |
|
7698 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7699 |
msgid "Item Line Total Plus Tax"
|
7700 |
msgstr ""
|
7701 |
|
7702 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7703 |
msgid "Item Product Input Fields"
|
7704 |
msgstr ""
|
7705 |
|
7706 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7707 |
msgid "Order Items"
|
7708 |
msgstr ""
|
7709 |
|
7710 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7711 |
msgid "Order Items Product Input Fields"
|
7712 |
msgstr ""
|
7713 |
|
7714 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7715 |
msgid "Product ID"
|
7716 |
msgstr ""
|
7717 |
|
7718 |
-
#: includes/export/class-wcj-fields-helper.php:
|
|
|
|
|
|
|
|
|
7719 |
msgid "Total Stock"
|
7720 |
msgstr ""
|
7721 |
|
7722 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7723 |
msgid "Stock Quantity"
|
7724 |
msgstr ""
|
7725 |
|
7726 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7727 |
msgid "Shipping Class"
|
7728 |
msgstr ""
|
7729 |
|
7730 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7731 |
msgid "Shipping Class ID"
|
7732 |
msgstr ""
|
7733 |
|
7734 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7735 |
msgid "Width"
|
7736 |
msgstr ""
|
7737 |
|
7738 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7739 |
msgid "Length"
|
7740 |
msgstr ""
|
7741 |
|
7742 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7743 |
msgid "Height"
|
7744 |
msgstr ""
|
7745 |
|
7746 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7747 |
msgid "Weight"
|
7748 |
msgstr ""
|
7749 |
|
7750 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7751 |
msgid "Downloadable"
|
7752 |
msgstr ""
|
7753 |
|
7754 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7755 |
msgid "Virtual"
|
7756 |
msgstr ""
|
7757 |
|
7758 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7759 |
msgid "Sold Individually"
|
7760 |
msgstr ""
|
7761 |
|
7762 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7763 |
msgid "Tax Status"
|
7764 |
msgstr ""
|
7765 |
|
7766 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7767 |
-
msgid "Tax Class"
|
7768 |
-
msgstr ""
|
7769 |
-
|
7770 |
-
#: includes/export/class-wcj-fields-helper.php:307
|
7771 |
msgid "Manage Stock"
|
7772 |
msgstr ""
|
7773 |
|
7774 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7775 |
msgid "Stock Status"
|
7776 |
msgstr ""
|
7777 |
|
7778 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7779 |
msgid "Backorders"
|
7780 |
msgstr ""
|
7781 |
|
7782 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7783 |
msgid "Featured"
|
7784 |
msgstr ""
|
7785 |
|
7786 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7787 |
-
msgid "Visibility"
|
7788 |
-
msgstr ""
|
7789 |
-
|
7790 |
-
#: includes/export/class-wcj-fields-helper.php:312
|
7791 |
msgid "Price Including Tax"
|
7792 |
msgstr ""
|
7793 |
|
7794 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7795 |
msgid "Price Excluding Tax"
|
7796 |
msgstr ""
|
7797 |
|
7798 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7799 |
msgid "Display Price"
|
7800 |
msgstr ""
|
7801 |
|
7802 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7803 |
msgid "Average Rating"
|
7804 |
msgstr ""
|
7805 |
|
7806 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7807 |
msgid "Rating Count"
|
7808 |
msgstr ""
|
7809 |
|
7810 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7811 |
msgid "Review Count"
|
7812 |
msgstr ""
|
7813 |
|
7814 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7815 |
msgid "Dimensions"
|
7816 |
msgstr ""
|
7817 |
|
7818 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7819 |
msgid "Formatted Name"
|
7820 |
msgstr ""
|
7821 |
|
7822 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7823 |
msgid "Availability"
|
7824 |
msgstr ""
|
7825 |
|
7826 |
-
#: includes/export/class-wcj-fields-helper.php:
|
7827 |
msgid "Availability Class"
|
7828 |
msgstr ""
|
7829 |
|
7830 |
-
#: includes/functions/wcj-country-functions.php:
|
7831 |
msgid "Afghanistan"
|
7832 |
msgstr ""
|
7833 |
|
7834 |
-
#: includes/functions/wcj-country-functions.php:
|
7835 |
msgid "Åland Islands"
|
7836 |
msgstr ""
|
7837 |
|
7838 |
-
#: includes/functions/wcj-country-functions.php:
|
7839 |
msgid "Albania"
|
7840 |
msgstr ""
|
7841 |
|
7842 |
-
#: includes/functions/wcj-country-functions.php:
|
7843 |
msgid "Algeria"
|
7844 |
msgstr ""
|
7845 |
|
7846 |
-
#: includes/functions/wcj-country-functions.php:
|
7847 |
msgid "Andorra"
|
7848 |
msgstr ""
|
7849 |
|
7850 |
-
#: includes/functions/wcj-country-functions.php:
|
7851 |
msgid "Angola"
|
7852 |
msgstr ""
|
7853 |
|
7854 |
-
#: includes/functions/wcj-country-functions.php:
|
7855 |
msgid "Anguilla"
|
7856 |
msgstr ""
|
7857 |
|
7858 |
-
#: includes/functions/wcj-country-functions.php:
|
7859 |
msgid "Antarctica"
|
7860 |
msgstr ""
|
7861 |
|
7862 |
-
#: includes/functions/wcj-country-functions.php:
|
7863 |
msgid "Antigua and Barbuda"
|
7864 |
msgstr ""
|
7865 |
|
7866 |
-
#: includes/functions/wcj-country-functions.php:
|
7867 |
msgid "Argentina"
|
7868 |
msgstr ""
|
7869 |
|
7870 |
-
#: includes/functions/wcj-country-functions.php:
|
7871 |
msgid "Armenia"
|
7872 |
msgstr ""
|
7873 |
|
7874 |
-
#: includes/functions/wcj-country-functions.php:
|
7875 |
msgid "Aruba"
|
7876 |
msgstr ""
|
7877 |
|
7878 |
-
#: includes/functions/wcj-country-functions.php:
|
7879 |
msgid "Australia"
|
7880 |
msgstr ""
|
7881 |
|
7882 |
-
#: includes/functions/wcj-country-functions.php:
|
7883 |
msgid "Austria"
|
7884 |
msgstr ""
|
7885 |
|
7886 |
-
#: includes/functions/wcj-country-functions.php:
|
7887 |
msgid "Azerbaijan"
|
7888 |
msgstr ""
|
7889 |
|
7890 |
-
#: includes/functions/wcj-country-functions.php:
|
7891 |
msgid "Bahamas"
|
7892 |
msgstr ""
|
7893 |
|
7894 |
-
#: includes/functions/wcj-country-functions.php:
|
7895 |
msgid "Bahrain"
|
7896 |
msgstr ""
|
7897 |
|
7898 |
-
#: includes/functions/wcj-country-functions.php:
|
7899 |
msgid "Bangladesh"
|
7900 |
msgstr ""
|
7901 |
|
7902 |
-
#: includes/functions/wcj-country-functions.php:
|
7903 |
msgid "Barbados"
|
7904 |
msgstr ""
|
7905 |
|
7906 |
-
#: includes/functions/wcj-country-functions.php:
|
7907 |
msgid "Belarus"
|
7908 |
msgstr ""
|
7909 |
|
7910 |
-
#: includes/functions/wcj-country-functions.php:
|
7911 |
msgid "Belgium"
|
7912 |
msgstr ""
|
7913 |
|
7914 |
-
#: includes/functions/wcj-country-functions.php:
|
7915 |
msgid "Belau"
|
7916 |
msgstr ""
|
7917 |
|
7918 |
-
#: includes/functions/wcj-country-functions.php:
|
7919 |
msgid "Belize"
|
7920 |
msgstr ""
|
7921 |
|
7922 |
-
#: includes/functions/wcj-country-functions.php:
|
7923 |
msgid "Benin"
|
7924 |
msgstr ""
|
7925 |
|
7926 |
-
#: includes/functions/wcj-country-functions.php:
|
7927 |
msgid "Bermuda"
|
7928 |
msgstr ""
|
7929 |
|
7930 |
-
#: includes/functions/wcj-country-functions.php:
|
7931 |
msgid "Bhutan"
|
7932 |
msgstr ""
|
7933 |
|
7934 |
-
#: includes/functions/wcj-country-functions.php:
|
7935 |
msgid "Bolivia"
|
7936 |
msgstr ""
|
7937 |
|
7938 |
-
#: includes/functions/wcj-country-functions.php:
|
7939 |
msgid "Bonaire, Saint Eustatius and Saba"
|
7940 |
msgstr ""
|
7941 |
|
7942 |
-
#: includes/functions/wcj-country-functions.php:
|
7943 |
msgid "Bosnia and Herzegovina"
|
7944 |
msgstr ""
|
7945 |
|
7946 |
-
#: includes/functions/wcj-country-functions.php:
|
7947 |
msgid "Botswana"
|
7948 |
msgstr ""
|
7949 |
|
7950 |
-
#: includes/functions/wcj-country-functions.php:
|
7951 |
msgid "Bouvet Island"
|
7952 |
msgstr ""
|
7953 |
|
7954 |
-
#: includes/functions/wcj-country-functions.php:
|
7955 |
msgid "Brazil"
|
7956 |
msgstr ""
|
7957 |
|
7958 |
-
#: includes/functions/wcj-country-functions.php:
|
7959 |
msgid "British Indian Ocean Territory"
|
7960 |
msgstr ""
|
7961 |
|
7962 |
-
#: includes/functions/wcj-country-functions.php:
|
7963 |
msgid "British Virgin Islands"
|
7964 |
msgstr ""
|
7965 |
|
7966 |
-
#: includes/functions/wcj-country-functions.php:
|
7967 |
msgid "Brunei"
|
7968 |
msgstr ""
|
7969 |
|
7970 |
-
#: includes/functions/wcj-country-functions.php:
|
7971 |
msgid "Bulgaria"
|
7972 |
msgstr ""
|
7973 |
|
7974 |
-
#: includes/functions/wcj-country-functions.php:
|
7975 |
msgid "Burkina Faso"
|
7976 |
msgstr ""
|
7977 |
|
7978 |
-
#: includes/functions/wcj-country-functions.php:
|
7979 |
msgid "Burundi"
|
7980 |
msgstr ""
|
7981 |
|
7982 |
-
#: includes/functions/wcj-country-functions.php:
|
7983 |
msgid "Cambodia"
|
7984 |
msgstr ""
|
7985 |
|
7986 |
-
#: includes/functions/wcj-country-functions.php:
|
7987 |
msgid "Cameroon"
|
7988 |
msgstr ""
|
7989 |
|
7990 |
-
#: includes/functions/wcj-country-functions.php:
|
7991 |
msgid "Canada"
|
7992 |
msgstr ""
|
7993 |
|
7994 |
-
#: includes/functions/wcj-country-functions.php:
|
7995 |
msgid "Cape Verde"
|
7996 |
msgstr ""
|
7997 |
|
7998 |
-
#: includes/functions/wcj-country-functions.php:
|
7999 |
msgid "Cayman Islands"
|
8000 |
msgstr ""
|
8001 |
|
8002 |
-
#: includes/functions/wcj-country-functions.php:
|
8003 |
msgid "Central African Republic"
|
8004 |
msgstr ""
|
8005 |
|
8006 |
-
#: includes/functions/wcj-country-functions.php:
|
8007 |
msgid "Chad"
|
8008 |
msgstr ""
|
8009 |
|
8010 |
-
#: includes/functions/wcj-country-functions.php:
|
8011 |
msgid "Chile"
|
8012 |
msgstr ""
|
8013 |
|
8014 |
-
#: includes/functions/wcj-country-functions.php:
|
8015 |
msgid "China"
|
8016 |
msgstr ""
|
8017 |
|
8018 |
-
#: includes/functions/wcj-country-functions.php:
|
8019 |
msgid "Christmas Island"
|
8020 |
msgstr ""
|
8021 |
|
8022 |
-
#: includes/functions/wcj-country-functions.php:
|
8023 |
msgid "Cocos (Keeling) Islands"
|
8024 |
msgstr ""
|
8025 |
|
8026 |
-
#: includes/functions/wcj-country-functions.php:
|
8027 |
msgid "Colombia"
|
8028 |
msgstr ""
|
8029 |
|
8030 |
-
#: includes/functions/wcj-country-functions.php:
|
8031 |
msgid "Comoros"
|
8032 |
msgstr ""
|
8033 |
|
8034 |
-
#: includes/functions/wcj-country-functions.php:
|
8035 |
msgid "Congo (Brazzaville)"
|
8036 |
msgstr ""
|
8037 |
|
8038 |
-
#: includes/functions/wcj-country-functions.php:
|
8039 |
msgid "Congo (Kinshasa)"
|
8040 |
msgstr ""
|
8041 |
|
8042 |
-
#: includes/functions/wcj-country-functions.php:
|
8043 |
msgid "Cook Islands"
|
8044 |
msgstr ""
|
8045 |
|
8046 |
-
#: includes/functions/wcj-country-functions.php:
|
8047 |
msgid "Costa Rica"
|
8048 |
msgstr ""
|
8049 |
|
8050 |
-
#: includes/functions/wcj-country-functions.php:
|
8051 |
msgid "Croatia"
|
8052 |
msgstr ""
|
8053 |
|
8054 |
-
#: includes/functions/wcj-country-functions.php:
|
8055 |
msgid "Cuba"
|
8056 |
msgstr ""
|
8057 |
|
8058 |
-
#: includes/functions/wcj-country-functions.php:
|
8059 |
msgid "CuraÇao"
|
8060 |
msgstr ""
|
8061 |
|
8062 |
-
#: includes/functions/wcj-country-functions.php:
|
8063 |
msgid "Cyprus"
|
8064 |
msgstr ""
|
8065 |
|
8066 |
-
#: includes/functions/wcj-country-functions.php:
|
8067 |
msgid "Czech Republic"
|
8068 |
msgstr ""
|
8069 |
|
8070 |
-
#: includes/functions/wcj-country-functions.php:
|
8071 |
msgid "Denmark"
|
8072 |
msgstr ""
|
8073 |
|
8074 |
-
#: includes/functions/wcj-country-functions.php:
|
8075 |
msgid "Djibouti"
|
8076 |
msgstr ""
|
8077 |
|
8078 |
-
#: includes/functions/wcj-country-functions.php:
|
8079 |
msgid "Dominica"
|
8080 |
msgstr ""
|
8081 |
|
8082 |
-
#: includes/functions/wcj-country-functions.php:
|
8083 |
msgid "Dominican Republic"
|
8084 |
msgstr ""
|
8085 |
|
8086 |
-
#: includes/functions/wcj-country-functions.php:
|
8087 |
msgid "Ecuador"
|
8088 |
msgstr ""
|
8089 |
|
8090 |
-
#: includes/functions/wcj-country-functions.php:
|
8091 |
msgid "Egypt"
|
8092 |
msgstr ""
|
8093 |
|
8094 |
-
#: includes/functions/wcj-country-functions.php:
|
8095 |
msgid "El Salvador"
|
8096 |
msgstr ""
|
8097 |
|
8098 |
-
#: includes/functions/wcj-country-functions.php:
|
8099 |
msgid "Equatorial Guinea"
|
8100 |
msgstr ""
|
8101 |
|
8102 |
-
#: includes/functions/wcj-country-functions.php:
|
8103 |
msgid "Eritrea"
|
8104 |
msgstr ""
|
8105 |
|
8106 |
-
#: includes/functions/wcj-country-functions.php:
|
8107 |
msgid "Estonia"
|
8108 |
msgstr ""
|
8109 |
|
8110 |
-
#: includes/functions/wcj-country-functions.php:
|
8111 |
msgid "Ethiopia"
|
8112 |
msgstr ""
|
8113 |
|
8114 |
-
#: includes/functions/wcj-country-functions.php:
|
8115 |
msgid "Falkland Islands"
|
8116 |
msgstr ""
|
8117 |
|
8118 |
-
#: includes/functions/wcj-country-functions.php:
|
8119 |
msgid "Faroe Islands"
|
8120 |
msgstr ""
|
8121 |
|
8122 |
-
#: includes/functions/wcj-country-functions.php:
|
8123 |
msgid "Fiji"
|
8124 |
msgstr ""
|
8125 |
|
8126 |
-
#: includes/functions/wcj-country-functions.php:
|
8127 |
msgid "Finland"
|
8128 |
msgstr ""
|
8129 |
|
8130 |
-
#: includes/functions/wcj-country-functions.php:
|
8131 |
msgid "France"
|
8132 |
msgstr ""
|
8133 |
|
8134 |
-
#: includes/functions/wcj-country-functions.php:
|
8135 |
msgid "French Guiana"
|
8136 |
msgstr ""
|
8137 |
|
8138 |
-
#: includes/functions/wcj-country-functions.php:
|
8139 |
msgid "French Polynesia"
|
8140 |
msgstr ""
|
8141 |
|
8142 |
-
#: includes/functions/wcj-country-functions.php:
|
8143 |
msgid "French Southern Territories"
|
8144 |
msgstr ""
|
8145 |
|
8146 |
-
#: includes/functions/wcj-country-functions.php:
|
8147 |
msgid "Gabon"
|
8148 |
msgstr ""
|
8149 |
|
8150 |
-
#: includes/functions/wcj-country-functions.php:
|
8151 |
msgid "Gambia"
|
8152 |
msgstr ""
|
8153 |
|
8154 |
-
#: includes/functions/wcj-country-functions.php:
|
8155 |
msgid "Georgia"
|
8156 |
msgstr ""
|
8157 |
|
8158 |
-
#: includes/functions/wcj-country-functions.php:
|
8159 |
msgid "Germany"
|
8160 |
msgstr ""
|
8161 |
|
8162 |
-
#: includes/functions/wcj-country-functions.php:
|
8163 |
msgid "Ghana"
|
8164 |
msgstr ""
|
8165 |
|
8166 |
-
#: includes/functions/wcj-country-functions.php:
|
8167 |
msgid "Gibraltar"
|
8168 |
msgstr ""
|
8169 |
|
8170 |
-
#: includes/functions/wcj-country-functions.php:
|
8171 |
msgid "Greece"
|
8172 |
msgstr ""
|
8173 |
|
8174 |
-
#: includes/functions/wcj-country-functions.php:
|
8175 |
msgid "Greenland"
|
8176 |
msgstr ""
|
8177 |
|
8178 |
-
#: includes/functions/wcj-country-functions.php:
|
8179 |
msgid "Grenada"
|
8180 |
msgstr ""
|
8181 |
|
8182 |
-
#: includes/functions/wcj-country-functions.php:
|
8183 |
msgid "Guadeloupe"
|
8184 |
msgstr ""
|
8185 |
|
8186 |
-
#: includes/functions/wcj-country-functions.php:
|
8187 |
msgid "Guatemala"
|
8188 |
msgstr ""
|
8189 |
|
8190 |
-
#: includes/functions/wcj-country-functions.php:
|
8191 |
msgid "Guernsey"
|
8192 |
msgstr ""
|
8193 |
|
8194 |
-
#: includes/functions/wcj-country-functions.php:
|
8195 |
msgid "Guinea"
|
8196 |
msgstr ""
|
8197 |
|
8198 |
-
#: includes/functions/wcj-country-functions.php:
|
8199 |
msgid "Guinea-Bissau"
|
8200 |
msgstr ""
|
8201 |
|
8202 |
-
#: includes/functions/wcj-country-functions.php:
|
8203 |
msgid "Guyana"
|
8204 |
msgstr ""
|
8205 |
|
8206 |
-
#: includes/functions/wcj-country-functions.php:
|
8207 |
msgid "Haiti"
|
8208 |
msgstr ""
|
8209 |
|
8210 |
-
#: includes/functions/wcj-country-functions.php:
|
8211 |
msgid "Heard Island and McDonald Islands"
|
8212 |
msgstr ""
|
8213 |
|
8214 |
-
#: includes/functions/wcj-country-functions.php:
|
8215 |
msgid "Honduras"
|
8216 |
msgstr ""
|
8217 |
|
8218 |
-
#: includes/functions/wcj-country-functions.php:
|
8219 |
msgid "Hong Kong"
|
8220 |
msgstr ""
|
8221 |
|
8222 |
-
#: includes/functions/wcj-country-functions.php:
|
8223 |
msgid "Hungary"
|
8224 |
msgstr ""
|
8225 |
|
8226 |
-
#: includes/functions/wcj-country-functions.php:
|
8227 |
msgid "Iceland"
|
8228 |
msgstr ""
|
8229 |
|
8230 |
-
#: includes/functions/wcj-country-functions.php:
|
8231 |
msgid "India"
|
8232 |
msgstr ""
|
8233 |
|
8234 |
-
#: includes/functions/wcj-country-functions.php:
|
8235 |
msgid "Indonesia"
|
8236 |
msgstr ""
|
8237 |
|
8238 |
-
#: includes/functions/wcj-country-functions.php:
|
8239 |
msgid "Iran"
|
8240 |
msgstr ""
|
8241 |
|
8242 |
-
#: includes/functions/wcj-country-functions.php:
|
8243 |
msgid "Iraq"
|
8244 |
msgstr ""
|
8245 |
|
8246 |
-
#: includes/functions/wcj-country-functions.php:
|
8247 |
msgid "Republic of Ireland"
|
8248 |
msgstr ""
|
8249 |
|
8250 |
-
#: includes/functions/wcj-country-functions.php:
|
8251 |
msgid "Isle of Man"
|
8252 |
msgstr ""
|
8253 |
|
8254 |
-
#: includes/functions/wcj-country-functions.php:
|
8255 |
msgid "Israel"
|
8256 |
msgstr ""
|
8257 |
|
8258 |
-
#: includes/functions/wcj-country-functions.php:
|
8259 |
msgid "Italy"
|
8260 |
msgstr ""
|
8261 |
|
8262 |
-
#: includes/functions/wcj-country-functions.php:
|
8263 |
msgid "Ivory Coast"
|
8264 |
msgstr ""
|
8265 |
|
8266 |
-
#: includes/functions/wcj-country-functions.php:
|
8267 |
msgid "Jamaica"
|
8268 |
msgstr ""
|
8269 |
|
8270 |
-
#: includes/functions/wcj-country-functions.php:
|
8271 |
msgid "Japan"
|
8272 |
msgstr ""
|
8273 |
|
8274 |
-
#: includes/functions/wcj-country-functions.php:
|
8275 |
msgid "Jersey"
|
8276 |
msgstr ""
|
8277 |
|
8278 |
-
#: includes/functions/wcj-country-functions.php:
|
8279 |
msgid "Jordan"
|
8280 |
msgstr ""
|
8281 |
|
8282 |
-
#: includes/functions/wcj-country-functions.php:
|
8283 |
msgid "Kazakhstan"
|
8284 |
msgstr ""
|
8285 |
|
8286 |
-
#: includes/functions/wcj-country-functions.php:
|
8287 |
msgid "Kenya"
|
8288 |
msgstr ""
|
8289 |
|
8290 |
-
#: includes/functions/wcj-country-functions.php:
|
8291 |
msgid "Kiribati"
|
8292 |
msgstr ""
|
8293 |
|
8294 |
-
#: includes/functions/wcj-country-functions.php:
|
8295 |
msgid "Kuwait"
|
8296 |
msgstr ""
|
8297 |
|
8298 |
-
#: includes/functions/wcj-country-functions.php:
|
8299 |
msgid "Kyrgyzstan"
|
8300 |
msgstr ""
|
8301 |
|
8302 |
-
#: includes/functions/wcj-country-functions.php:
|
8303 |
msgid "Laos"
|
8304 |
msgstr ""
|
8305 |
|
8306 |
-
#: includes/functions/wcj-country-functions.php:
|
8307 |
msgid "Latvia"
|
8308 |
msgstr ""
|
8309 |
|
8310 |
-
#: includes/functions/wcj-country-functions.php:
|
8311 |
msgid "Lebanon"
|
8312 |
msgstr ""
|
8313 |
|
8314 |
-
#: includes/functions/wcj-country-functions.php:
|
8315 |
msgid "Lesotho"
|
8316 |
msgstr ""
|
8317 |
|
8318 |
-
#: includes/functions/wcj-country-functions.php:
|
8319 |
msgid "Liberia"
|
8320 |
msgstr ""
|
8321 |
|
8322 |
-
#: includes/functions/wcj-country-functions.php:
|
8323 |
msgid "Libya"
|
8324 |
msgstr ""
|
8325 |
|
8326 |
-
#: includes/functions/wcj-country-functions.php:
|
8327 |
msgid "Liechtenstein"
|
8328 |
msgstr ""
|
8329 |
|
8330 |
-
#: includes/functions/wcj-country-functions.php:
|
8331 |
msgid "Lithuania"
|
8332 |
msgstr ""
|
8333 |
|
8334 |
-
#: includes/functions/wcj-country-functions.php:
|
8335 |
msgid "Luxembourg"
|
8336 |
msgstr ""
|
8337 |
|
8338 |
-
#: includes/functions/wcj-country-functions.php:
|
8339 |
msgid "Macao S.A.R., China"
|
8340 |
msgstr ""
|
8341 |
|
8342 |
-
#: includes/functions/wcj-country-functions.php:
|
8343 |
msgid "Macedonia"
|
8344 |
msgstr ""
|
8345 |
|
8346 |
-
#: includes/functions/wcj-country-functions.php:
|
8347 |
msgid "Madagascar"
|
8348 |
msgstr ""
|
8349 |
|
8350 |
-
#: includes/functions/wcj-country-functions.php:
|
8351 |
msgid "Malawi"
|
8352 |
msgstr ""
|
8353 |
|
8354 |
-
#: includes/functions/wcj-country-functions.php:
|
8355 |
msgid "Malaysia"
|
8356 |
msgstr ""
|
8357 |
|
8358 |
-
#: includes/functions/wcj-country-functions.php:
|
8359 |
msgid "Maldives"
|
8360 |
msgstr ""
|
8361 |
|
8362 |
-
#: includes/functions/wcj-country-functions.php:
|
8363 |
msgid "Mali"
|
8364 |
msgstr ""
|
8365 |
|
8366 |
-
#: includes/functions/wcj-country-functions.php:
|
8367 |
msgid "Malta"
|
8368 |
msgstr ""
|
8369 |
|
8370 |
-
#: includes/functions/wcj-country-functions.php:
|
8371 |
msgid "Marshall Islands"
|
8372 |
msgstr ""
|
8373 |
|
8374 |
-
#: includes/functions/wcj-country-functions.php:
|
8375 |
msgid "Martinique"
|
8376 |
msgstr ""
|
8377 |
|
8378 |
-
#: includes/functions/wcj-country-functions.php:
|
8379 |
msgid "Mauritania"
|
8380 |
msgstr ""
|
8381 |
|
8382 |
-
#: includes/functions/wcj-country-functions.php:
|
8383 |
msgid "Mauritius"
|
8384 |
msgstr ""
|
8385 |
|
8386 |
-
#: includes/functions/wcj-country-functions.php:
|
8387 |
msgid "Mayotte"
|
8388 |
msgstr ""
|
8389 |
|
8390 |
-
#: includes/functions/wcj-country-functions.php:
|
8391 |
msgid "Mexico"
|
8392 |
msgstr ""
|
8393 |
|
8394 |
-
#: includes/functions/wcj-country-functions.php:
|
8395 |
msgid "Micronesia"
|
8396 |
msgstr ""
|
8397 |
|
8398 |
-
#: includes/functions/wcj-country-functions.php:
|
8399 |
msgid "Moldova"
|
8400 |
msgstr ""
|
8401 |
|
8402 |
-
#: includes/functions/wcj-country-functions.php:
|
8403 |
msgid "Monaco"
|
8404 |
msgstr ""
|
8405 |
|
8406 |
-
#: includes/functions/wcj-country-functions.php:
|
8407 |
msgid "Mongolia"
|
8408 |
msgstr ""
|
8409 |
|
8410 |
-
#: includes/functions/wcj-country-functions.php:
|
8411 |
msgid "Montenegro"
|
8412 |
msgstr ""
|
8413 |
|
8414 |
-
#: includes/functions/wcj-country-functions.php:
|
8415 |
msgid "Montserrat"
|
8416 |
msgstr ""
|
8417 |
|
8418 |
-
#: includes/functions/wcj-country-functions.php:
|
8419 |
msgid "Morocco"
|
8420 |
msgstr ""
|
8421 |
|
8422 |
-
#: includes/functions/wcj-country-functions.php:
|
8423 |
msgid "Mozambique"
|
8424 |
msgstr ""
|
8425 |
|
8426 |
-
#: includes/functions/wcj-country-functions.php:
|
8427 |
msgid "Myanmar"
|
8428 |
msgstr ""
|
8429 |
|
8430 |
-
#: includes/functions/wcj-country-functions.php:
|
8431 |
msgid "Namibia"
|
8432 |
msgstr ""
|
8433 |
|
8434 |
-
#: includes/functions/wcj-country-functions.php:
|
8435 |
msgid "Nauru"
|
8436 |
msgstr ""
|
8437 |
|
8438 |
-
#: includes/functions/wcj-country-functions.php:
|
8439 |
msgid "Nepal"
|
8440 |
msgstr ""
|
8441 |
|
8442 |
-
#: includes/functions/wcj-country-functions.php:
|
8443 |
msgid "Netherlands"
|
8444 |
msgstr ""
|
8445 |
|
8446 |
-
#: includes/functions/wcj-country-functions.php:
|
8447 |
msgid "Netherlands Antilles"
|
8448 |
msgstr ""
|
8449 |
|
8450 |
-
#: includes/functions/wcj-country-functions.php:
|
8451 |
msgid "New Caledonia"
|
8452 |
msgstr ""
|
8453 |
|
8454 |
-
#: includes/functions/wcj-country-functions.php:
|
8455 |
msgid "New Zealand"
|
8456 |
msgstr ""
|
8457 |
|
8458 |
-
#: includes/functions/wcj-country-functions.php:
|
8459 |
msgid "Nicaragua"
|
8460 |
msgstr ""
|
8461 |
|
8462 |
-
#: includes/functions/wcj-country-functions.php:
|
8463 |
msgid "Niger"
|
8464 |
msgstr ""
|
8465 |
|
8466 |
-
#: includes/functions/wcj-country-functions.php:
|
8467 |
msgid "Nigeria"
|
8468 |
msgstr ""
|
8469 |
|
8470 |
-
#: includes/functions/wcj-country-functions.php:
|
8471 |
msgid "Niue"
|
8472 |
msgstr ""
|
8473 |
|
8474 |
-
#: includes/functions/wcj-country-functions.php:
|
8475 |
msgid "Norfolk Island"
|
8476 |
msgstr ""
|
8477 |
|
8478 |
-
#: includes/functions/wcj-country-functions.php:
|
8479 |
msgid "North Korea"
|
8480 |
msgstr ""
|
8481 |
|
8482 |
-
#: includes/functions/wcj-country-functions.php:
|
8483 |
msgid "Norway"
|
8484 |
msgstr ""
|
8485 |
|
8486 |
-
#: includes/functions/wcj-country-functions.php:
|
8487 |
msgid "Oman"
|
8488 |
msgstr ""
|
8489 |
|
8490 |
-
#: includes/functions/wcj-country-functions.php:
|
8491 |
msgid "Pakistan"
|
8492 |
msgstr ""
|
8493 |
|
8494 |
-
#: includes/functions/wcj-country-functions.php:
|
8495 |
msgid "Palestinian Territory"
|
8496 |
msgstr ""
|
8497 |
|
8498 |
-
#: includes/functions/wcj-country-functions.php:
|
8499 |
msgid "Panama"
|
8500 |
msgstr ""
|
8501 |
|
8502 |
-
#: includes/functions/wcj-country-functions.php:
|
8503 |
msgid "Papua New Guinea"
|
8504 |
msgstr ""
|
8505 |
|
8506 |
-
#: includes/functions/wcj-country-functions.php:
|
8507 |
msgid "Paraguay"
|
8508 |
msgstr ""
|
8509 |
|
8510 |
-
#: includes/functions/wcj-country-functions.php:
|
8511 |
msgid "Peru"
|
8512 |
msgstr ""
|
8513 |
|
8514 |
-
#: includes/functions/wcj-country-functions.php:
|
8515 |
msgid "Philippines"
|
8516 |
msgstr ""
|
8517 |
|
8518 |
-
#: includes/functions/wcj-country-functions.php:
|
8519 |
msgid "Pitcairn"
|
8520 |
msgstr ""
|
8521 |
|
8522 |
-
#: includes/functions/wcj-country-functions.php:
|
8523 |
msgid "Poland"
|
8524 |
msgstr ""
|
8525 |
|
8526 |
-
#: includes/functions/wcj-country-functions.php:
|
8527 |
msgid "Portugal"
|
8528 |
msgstr ""
|
8529 |
|
8530 |
-
#: includes/functions/wcj-country-functions.php:
|
8531 |
msgid "Qatar"
|
8532 |
msgstr ""
|
8533 |
|
8534 |
-
#: includes/functions/wcj-country-functions.php:
|
8535 |
msgid "Reunion"
|
8536 |
msgstr ""
|
8537 |
|
8538 |
-
#: includes/functions/wcj-country-functions.php:
|
8539 |
msgid "Romania"
|
8540 |
msgstr ""
|
8541 |
|
8542 |
-
#: includes/functions/wcj-country-functions.php:
|
8543 |
msgid "Russia"
|
8544 |
msgstr ""
|
8545 |
|
8546 |
-
#: includes/functions/wcj-country-functions.php:
|
8547 |
msgid "Rwanda"
|
8548 |
msgstr ""
|
8549 |
|
8550 |
-
#: includes/functions/wcj-country-functions.php:
|
8551 |
msgid "Saint Barthélemy"
|
8552 |
msgstr ""
|
8553 |
|
8554 |
-
#: includes/functions/wcj-country-functions.php:
|
8555 |
msgid "Saint Helena"
|
8556 |
msgstr ""
|
8557 |
|
8558 |
-
#: includes/functions/wcj-country-functions.php:
|
8559 |
msgid "Saint Kitts and Nevis"
|
8560 |
msgstr ""
|
8561 |
|
8562 |
-
#: includes/functions/wcj-country-functions.php:
|
8563 |
msgid "Saint Lucia"
|
8564 |
msgstr ""
|
8565 |
|
8566 |
-
#: includes/functions/wcj-country-functions.php:
|
8567 |
msgid "Saint Martin (French part)"
|
8568 |
msgstr ""
|
8569 |
|
8570 |
-
#: includes/functions/wcj-country-functions.php:
|
8571 |
msgid "Saint Martin (Dutch part)"
|
8572 |
msgstr ""
|
8573 |
|
8574 |
-
#: includes/functions/wcj-country-functions.php:
|
8575 |
msgid "Saint Pierre and Miquelon"
|
8576 |
msgstr ""
|
8577 |
|
8578 |
-
#: includes/functions/wcj-country-functions.php:
|
8579 |
msgid "Saint Vincent and the Grenadines"
|
8580 |
msgstr ""
|
8581 |
|
8582 |
-
#: includes/functions/wcj-country-functions.php:
|
8583 |
msgid "San Marino"
|
8584 |
msgstr ""
|
8585 |
|
8586 |
-
#: includes/functions/wcj-country-functions.php:
|
8587 |
msgid "São Tomé and Príncipe"
|
8588 |
msgstr ""
|
8589 |
|
8590 |
-
#: includes/functions/wcj-country-functions.php:
|
8591 |
msgid "Saudi Arabia"
|
8592 |
msgstr ""
|
8593 |
|
8594 |
-
#: includes/functions/wcj-country-functions.php:
|
8595 |
msgid "Senegal"
|
8596 |
msgstr ""
|
8597 |
|
8598 |
-
#: includes/functions/wcj-country-functions.php:
|
8599 |
msgid "Serbia"
|
8600 |
msgstr ""
|
8601 |
|
8602 |
-
#: includes/functions/wcj-country-functions.php:
|
8603 |
msgid "Seychelles"
|
8604 |
msgstr ""
|
8605 |
|
8606 |
-
#: includes/functions/wcj-country-functions.php:
|
8607 |
msgid "Sierra Leone"
|
8608 |
msgstr ""
|
8609 |
|
8610 |
-
#: includes/functions/wcj-country-functions.php:
|
8611 |
msgid "Singapore"
|
8612 |
msgstr ""
|
8613 |
|
8614 |
-
#: includes/functions/wcj-country-functions.php:
|
8615 |
msgid "Slovakia"
|
8616 |
msgstr ""
|
8617 |
|
8618 |
-
#: includes/functions/wcj-country-functions.php:
|
8619 |
msgid "Slovenia"
|
8620 |
msgstr ""
|
8621 |
|
8622 |
-
#: includes/functions/wcj-country-functions.php:
|
8623 |
msgid "Solomon Islands"
|
8624 |
msgstr ""
|
8625 |
|
8626 |
-
#: includes/functions/wcj-country-functions.php:
|
8627 |
msgid "Somalia"
|
8628 |
msgstr ""
|
8629 |
|
8630 |
-
#: includes/functions/wcj-country-functions.php:
|
8631 |
msgid "South Africa"
|
8632 |
msgstr ""
|
8633 |
|
8634 |
-
#: includes/functions/wcj-country-functions.php:
|
8635 |
msgid "South Georgia/Sandwich Islands"
|
8636 |
msgstr ""
|
8637 |
|
8638 |
-
#: includes/functions/wcj-country-functions.php:
|
8639 |
msgid "South Korea"
|
8640 |
msgstr ""
|
8641 |
|
8642 |
-
#: includes/functions/wcj-country-functions.php:
|
8643 |
msgid "South Sudan"
|
8644 |
msgstr ""
|
8645 |
|
8646 |
-
#: includes/functions/wcj-country-functions.php:
|
8647 |
msgid "Spain"
|
8648 |
msgstr ""
|
8649 |
|
8650 |
-
#: includes/functions/wcj-country-functions.php:
|
8651 |
msgid "Sri Lanka"
|
8652 |
msgstr ""
|
8653 |
|
8654 |
-
#: includes/functions/wcj-country-functions.php:
|
8655 |
msgid "Sudan"
|
8656 |
msgstr ""
|
8657 |
|
8658 |
-
#: includes/functions/wcj-country-functions.php:
|
8659 |
msgid "Suriname"
|
8660 |
msgstr ""
|
8661 |
|
8662 |
-
#: includes/functions/wcj-country-functions.php:
|
8663 |
msgid "Svalbard and Jan Mayen"
|
8664 |
msgstr ""
|
8665 |
|
8666 |
-
#: includes/functions/wcj-country-functions.php:
|
8667 |
msgid "Swaziland"
|
8668 |
msgstr ""
|
8669 |
|
8670 |
-
#: includes/functions/wcj-country-functions.php:
|
8671 |
msgid "Sweden"
|
8672 |
msgstr ""
|
8673 |
|
8674 |
-
#: includes/functions/wcj-country-functions.php:
|
8675 |
msgid "Switzerland"
|
8676 |
msgstr ""
|
8677 |
|
8678 |
-
#: includes/functions/wcj-country-functions.php:
|
8679 |
msgid "Syria"
|
8680 |
msgstr ""
|
8681 |
|
8682 |
-
#: includes/functions/wcj-country-functions.php:
|
8683 |
msgid "Taiwan"
|
8684 |
msgstr ""
|
8685 |
|
8686 |
-
#: includes/functions/wcj-country-functions.php:
|
8687 |
msgid "Tajikistan"
|
8688 |
msgstr ""
|
8689 |
|
8690 |
-
#: includes/functions/wcj-country-functions.php:
|
8691 |
msgid "Tanzania"
|
8692 |
msgstr ""
|
8693 |
|
8694 |
-
#: includes/functions/wcj-country-functions.php:
|
8695 |
msgid "Thailand"
|
8696 |
msgstr ""
|
8697 |
|
8698 |
-
#: includes/functions/wcj-country-functions.php:
|
8699 |
msgid "Timor-Leste"
|
8700 |
msgstr ""
|
8701 |
|
8702 |
-
#: includes/functions/wcj-country-functions.php:
|
8703 |
msgid "Togo"
|
8704 |
msgstr ""
|
8705 |
|
8706 |
-
#: includes/functions/wcj-country-functions.php:
|
8707 |
msgid "Tokelau"
|
8708 |
msgstr ""
|
8709 |
|
8710 |
-
#: includes/functions/wcj-country-functions.php:
|
8711 |
msgid "Tonga"
|
8712 |
msgstr ""
|
8713 |
|
8714 |
-
#: includes/functions/wcj-country-functions.php:
|
8715 |
msgid "Trinidad and Tobago"
|
8716 |
msgstr ""
|
8717 |
|
8718 |
-
#: includes/functions/wcj-country-functions.php:
|
8719 |
msgid "Tunisia"
|
8720 |
msgstr ""
|
8721 |
|
8722 |
-
#: includes/functions/wcj-country-functions.php:
|
8723 |
msgid "Turkey"
|
8724 |
msgstr ""
|
8725 |
|
8726 |
-
#: includes/functions/wcj-country-functions.php:
|
8727 |
msgid "Turkmenistan"
|
8728 |
msgstr ""
|
8729 |
|
8730 |
-
#: includes/functions/wcj-country-functions.php:
|
8731 |
msgid "Turks and Caicos Islands"
|
8732 |
msgstr ""
|
8733 |
|
8734 |
-
#: includes/functions/wcj-country-functions.php:
|
8735 |
msgid "Tuvalu"
|
8736 |
msgstr ""
|
8737 |
|
8738 |
-
#: includes/functions/wcj-country-functions.php:
|
8739 |
msgid "Uganda"
|
8740 |
msgstr ""
|
8741 |
|
8742 |
-
#: includes/functions/wcj-country-functions.php:
|
8743 |
msgid "Ukraine"
|
8744 |
msgstr ""
|
8745 |
|
8746 |
-
#: includes/functions/wcj-country-functions.php:
|
8747 |
msgid "United Arab Emirates"
|
8748 |
msgstr ""
|
8749 |
|
8750 |
-
#: includes/functions/wcj-country-functions.php:
|
8751 |
msgid "United Kingdom (UK)"
|
8752 |
msgstr ""
|
8753 |
|
8754 |
-
#: includes/functions/wcj-country-functions.php:
|
8755 |
msgid "United States (US)"
|
8756 |
msgstr ""
|
8757 |
|
8758 |
-
#: includes/functions/wcj-country-functions.php:
|
8759 |
msgid "Uruguay"
|
8760 |
msgstr ""
|
8761 |
|
8762 |
-
#: includes/functions/wcj-country-functions.php:
|
8763 |
msgid "Uzbekistan"
|
8764 |
msgstr ""
|
8765 |
|
8766 |
-
#: includes/functions/wcj-country-functions.php:
|
8767 |
msgid "Vanuatu"
|
8768 |
msgstr ""
|
8769 |
|
8770 |
-
#: includes/functions/wcj-country-functions.php:
|
8771 |
msgid "Vatican"
|
8772 |
msgstr ""
|
8773 |
|
8774 |
-
#: includes/functions/wcj-country-functions.php:
|
8775 |
msgid "Venezuela"
|
8776 |
msgstr ""
|
8777 |
|
8778 |
-
#: includes/functions/wcj-country-functions.php:
|
8779 |
msgid "Vietnam"
|
8780 |
msgstr ""
|
8781 |
|
8782 |
-
#: includes/functions/wcj-country-functions.php:
|
8783 |
msgid "Wallis and Futuna"
|
8784 |
msgstr ""
|
8785 |
|
8786 |
-
#: includes/functions/wcj-country-functions.php:
|
8787 |
msgid "Western Sahara"
|
8788 |
msgstr ""
|
8789 |
|
8790 |
-
#: includes/functions/wcj-country-functions.php:
|
8791 |
msgid "Western Samoa"
|
8792 |
msgstr ""
|
8793 |
|
8794 |
-
#: includes/functions/wcj-country-functions.php:
|
8795 |
msgid "Yemen"
|
8796 |
msgstr ""
|
8797 |
|
8798 |
-
#: includes/functions/wcj-country-functions.php:
|
8799 |
msgid "Zambia"
|
8800 |
msgstr ""
|
8801 |
|
8802 |
-
#: includes/functions/wcj-country-functions.php:
|
8803 |
msgid "Zimbabwe"
|
8804 |
msgstr ""
|
8805 |
|
8806 |
-
#: includes/functions/wcj-functions.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8807 |
msgid "Before cart"
|
8808 |
msgstr ""
|
8809 |
|
8810 |
-
#: includes/functions/wcj-functions.php:
|
8811 |
msgid "Before cart table"
|
8812 |
msgstr ""
|
8813 |
|
8814 |
-
#: includes/functions/wcj-functions.php:
|
8815 |
msgid "Before cart contents"
|
8816 |
msgstr ""
|
8817 |
|
8818 |
-
#: includes/functions/wcj-functions.php:
|
8819 |
msgid "Cart contents"
|
8820 |
msgstr ""
|
8821 |
|
8822 |
-
#: includes/functions/wcj-functions.php:
|
8823 |
msgid "Cart coupon"
|
8824 |
msgstr ""
|
8825 |
|
8826 |
-
#: includes/functions/wcj-functions.php:
|
8827 |
msgid "Cart actions"
|
8828 |
msgstr ""
|
8829 |
|
8830 |
-
#: includes/functions/wcj-functions.php:
|
8831 |
msgid "After cart contents"
|
8832 |
msgstr ""
|
8833 |
|
8834 |
-
#: includes/functions/wcj-functions.php:
|
8835 |
msgid "After cart table"
|
8836 |
msgstr ""
|
8837 |
|
8838 |
-
#: includes/functions/wcj-functions.php:
|
8839 |
msgid "Cart collaterals"
|
8840 |
msgstr ""
|
8841 |
|
8842 |
-
#: includes/functions/wcj-functions.php:
|
8843 |
msgid "After cart"
|
8844 |
msgstr ""
|
8845 |
|
8846 |
-
#: includes/functions/wcj-functions.php:
|
8847 |
msgid "Before cart totals"
|
8848 |
msgstr ""
|
8849 |
|
8850 |
-
#: includes/functions/wcj-functions.php:
|
8851 |
msgid "Cart totals: Before shipping"
|
8852 |
msgstr ""
|
8853 |
|
8854 |
-
#: includes/functions/wcj-functions.php:
|
8855 |
msgid "Cart totals: After shipping"
|
8856 |
msgstr ""
|
8857 |
|
8858 |
-
#: includes/functions/wcj-functions.php:
|
8859 |
msgid "Cart totals: Before order total"
|
8860 |
msgstr ""
|
8861 |
|
8862 |
-
#: includes/functions/wcj-functions.php:
|
8863 |
msgid "Cart totals: After order total"
|
8864 |
msgstr ""
|
8865 |
|
8866 |
-
#: includes/functions/wcj-functions.php:
|
8867 |
msgid "Proceed to checkout"
|
8868 |
msgstr ""
|
8869 |
|
8870 |
-
#: includes/functions/wcj-functions.php:
|
8871 |
msgid "After cart totals"
|
8872 |
msgstr ""
|
8873 |
|
8874 |
-
#: includes/functions/wcj-functions.php:
|
8875 |
msgid "Before shipping calculator"
|
8876 |
msgstr ""
|
8877 |
|
8878 |
-
#: includes/functions/wcj-functions.php:
|
8879 |
msgid "After shipping calculator"
|
8880 |
msgstr ""
|
8881 |
|
8882 |
-
#: includes/functions/wcj-functions.php:
|
8883 |
msgid "If cart is empty"
|
8884 |
msgstr ""
|
8885 |
|
8886 |
-
#: includes/functions/wcj-functions.php:
|
8887 |
-
#: includes/functions/wcj-functions.php:917
|
8888 |
-
msgid "Guest"
|
8889 |
-
msgstr ""
|
8890 |
-
|
8891 |
-
#: includes/functions/wcj-functions.php:1159
|
8892 |
msgctxt "Order status"
|
8893 |
msgid "Pending Payment"
|
8894 |
msgstr ""
|
8895 |
|
8896 |
-
#: includes/functions/wcj-functions.php:
|
8897 |
msgctxt "Order status"
|
8898 |
msgid "On Hold"
|
8899 |
msgstr ""
|
@@ -8930,20 +9985,25 @@ msgstr ""
|
|
8930 |
msgid "Credit Notes"
|
8931 |
msgstr ""
|
8932 |
|
8933 |
-
#: includes/functions/wcj-invoicing-functions.php:
|
8934 |
msgid "Custom Document"
|
8935 |
msgstr ""
|
8936 |
|
8937 |
-
#: includes/functions/wcj-invoicing-functions.php:
|
8938 |
msgid "Custom Documents"
|
8939 |
msgstr ""
|
8940 |
|
|
|
|
|
|
|
|
|
|
|
8941 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:63
|
8942 |
msgid "Enable Custom Payment"
|
8943 |
msgstr ""
|
8944 |
|
8945 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:70
|
8946 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
8947 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:84
|
8948 |
msgid "This controls the title which the user sees during checkout."
|
8949 |
msgstr ""
|
@@ -8994,20 +10054,12 @@ msgid ""
|
|
8994 |
"gateway on frontend, enter a number here. Set to 0 to disable."
|
8995 |
msgstr ""
|
8996 |
|
8997 |
-
#: includes/gateways/class-wc-gateway-wcj-custom.php:119
|
8998 |
-
msgid "Enable for shipping methods"
|
8999 |
-
msgstr ""
|
9000 |
-
|
9001 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:124
|
9002 |
msgid ""
|
9003 |
"If gateway is only available for certain shipping methods, set it up here. "
|
9004 |
"Leave blank to enable for all methods."
|
9005 |
msgstr ""
|
9006 |
|
9007 |
-
#: includes/gateways/class-wc-gateway-wcj-custom.php:127
|
9008 |
-
msgid "Select shipping methods"
|
9009 |
-
msgstr ""
|
9010 |
-
|
9011 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:131
|
9012 |
msgid "Enable for virtual orders"
|
9013 |
msgstr ""
|
@@ -9062,12 +10114,19 @@ msgstr ""
|
|
9062 |
msgid "Checkbox: Default"
|
9063 |
msgstr ""
|
9064 |
|
9065 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:
|
9066 |
msgid ""
|
9067 |
"If file is selected, set accepted file types here. E.g.: \".jpg,.jpeg,.png"
|
9068 |
"\". Leave blank to accept all files"
|
9069 |
msgstr ""
|
9070 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9071 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:109
|
9072 |
msgid "File: Accepted types"
|
9073 |
msgstr ""
|
@@ -9085,6 +10144,13 @@ msgstr ""
|
|
9085 |
msgid "File: Max size"
|
9086 |
msgstr ""
|
9087 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9088 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:126
|
9089 |
msgid "Datepicker/Weekpicker: Date format"
|
9090 |
msgstr ""
|
@@ -9109,35 +10175,64 @@ msgstr ""
|
|
9109 |
msgid "Datepicker/Weekpicker: First week day"
|
9110 |
msgstr ""
|
9111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9112 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:184
|
9113 |
msgid "Timepicker: Time format"
|
9114 |
msgstr ""
|
9115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9116 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:192
|
9117 |
-
msgid "Timepicker:
|
9118 |
msgstr ""
|
9119 |
|
9120 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:199
|
9121 |
-
msgid "
|
|
|
|
|
|
|
9122 |
msgstr ""
|
9123 |
|
9124 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:200
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9125 |
msgid "Select/Radio: Options"
|
9126 |
msgstr ""
|
9127 |
|
9128 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:
|
9129 |
msgid "Message on required"
|
9130 |
msgstr ""
|
9131 |
|
9132 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:
|
9133 |
msgid "Wrong file type!"
|
9134 |
msgstr ""
|
9135 |
|
9136 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:
|
9137 |
msgid "File is too big!"
|
9138 |
msgstr ""
|
9139 |
|
9140 |
-
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:
|
9141 |
msgid "Select a country…"
|
9142 |
msgstr ""
|
9143 |
|
@@ -9215,10 +10310,12 @@ msgid "Results"
|
|
9215 |
msgstr ""
|
9216 |
|
9217 |
#: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:206
|
|
|
9218 |
msgid "Total documents created: %d"
|
9219 |
msgstr ""
|
9220 |
|
9221 |
#: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:207
|
|
|
9222 |
msgid "Total documents deleted: %d"
|
9223 |
msgstr ""
|
9224 |
|
@@ -9358,67 +10455,72 @@ msgstr ""
|
|
9358 |
msgid "PDF File Name"
|
9359 |
msgstr ""
|
9360 |
|
|
|
|
|
|
|
|
|
|
|
9361 |
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:26
|
9362 |
msgid "Email Options"
|
9363 |
msgstr ""
|
9364 |
|
9365 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9366 |
msgid "Payment gateways to include"
|
9367 |
msgstr ""
|
9368 |
|
9369 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9370 |
msgid "Select some gateways. Leave blank to include all."
|
9371 |
msgstr ""
|
9372 |
|
9373 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9374 |
msgid "Admin - New Order"
|
9375 |
msgstr ""
|
9376 |
|
9377 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9378 |
msgid "Admin - Cancelled Order"
|
9379 |
msgstr ""
|
9380 |
|
9381 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9382 |
msgid "Admin - Failed Order"
|
9383 |
msgstr ""
|
9384 |
|
9385 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9386 |
msgid "Customer - Processing Order"
|
9387 |
msgstr ""
|
9388 |
|
9389 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9390 |
msgid "Customer - On-Hold Order"
|
9391 |
msgstr ""
|
9392 |
|
9393 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9394 |
msgid "Customer - Completed Order"
|
9395 |
msgstr ""
|
9396 |
|
9397 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9398 |
msgid "Customer - Invoice"
|
9399 |
msgstr ""
|
9400 |
|
9401 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9402 |
msgid "Customer - Refunded Order"
|
9403 |
msgstr ""
|
9404 |
|
9405 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9406 |
msgid "Customer - Note"
|
9407 |
msgstr ""
|
9408 |
|
9409 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9410 |
msgid "Customer - New Account"
|
9411 |
msgstr ""
|
9412 |
|
9413 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9414 |
msgid "Customer - Reset Password"
|
9415 |
msgstr ""
|
9416 |
|
9417 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9418 |
msgid "Attach PDF to emails"
|
9419 |
msgstr ""
|
9420 |
|
9421 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:
|
9422 |
msgid "Select some emails"
|
9423 |
msgstr ""
|
9424 |
|
@@ -9602,15 +10704,16 @@ msgstr ""
|
|
9602 |
msgid "Templates"
|
9603 |
msgstr ""
|
9604 |
|
9605 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php:
|
9606 |
msgid "HTML Template"
|
9607 |
msgstr ""
|
9608 |
|
9609 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php:
|
9610 |
msgid "Available Shortcodes"
|
9611 |
msgstr ""
|
9612 |
|
9613 |
-
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php:
|
|
|
9614 |
msgid "For the list of available shortcodes, please visit %s."
|
9615 |
msgstr ""
|
9616 |
|
@@ -9623,6 +10726,7 @@ msgid "Create All Country Groups Failed. Wrong parameter."
|
|
9623 |
msgstr ""
|
9624 |
|
9625 |
#: includes/price-by-country/class-wcj-price-by-country-group-generator.php:95
|
|
|
9626 |
msgid ""
|
9627 |
"All existing country groups will be deleted and %s new groups will be "
|
9628 |
"created. Are you sure?"
|
@@ -9636,7 +10740,7 @@ msgstr ""
|
|
9636 |
msgid "Country Groups Generated."
|
9637 |
msgstr ""
|
9638 |
|
9639 |
-
#: includes/price-by-country/class-wcj-price-by-country-local.php:
|
9640 |
msgid "Country Group Nr."
|
9641 |
msgstr ""
|
9642 |
|
@@ -9698,7 +10802,7 @@ msgid "Orders Average / Day"
|
|
9698 |
msgstr ""
|
9699 |
|
9700 |
#: includes/reports/wcj-class-reports-monthly-sales.php:140
|
9701 |
-
#: includes/reports/wcj-class-reports-sales.php:
|
9702 |
msgid "Total Sum"
|
9703 |
msgstr ""
|
9704 |
|
@@ -9719,6 +10823,7 @@ msgid "Currency Rates"
|
|
9719 |
msgstr ""
|
9720 |
|
9721 |
#: includes/reports/wcj-class-reports-monthly-sales.php:219
|
|
|
9722 |
msgid "Error getting currency rate for %s"
|
9723 |
msgstr ""
|
9724 |
|
@@ -9731,6 +10836,7 @@ msgid "Report currency"
|
|
9731 |
msgstr ""
|
9732 |
|
9733 |
#: includes/reports/wcj-class-reports-monthly-sales.php:326
|
|
|
9734 |
msgid "Report generated in: %s s"
|
9735 |
msgstr ""
|
9736 |
|
@@ -9738,23 +10844,35 @@ msgstr ""
|
|
9738 |
msgid "Reset Currency Rates"
|
9739 |
msgstr ""
|
9740 |
|
9741 |
-
#: includes/reports/wcj-class-reports-sales.php:
|
9742 |
msgid "Variation"
|
9743 |
msgstr ""
|
9744 |
|
9745 |
-
#: includes/reports/wcj-class-reports-sales.php:
|
9746 |
msgid "Last Sale"
|
9747 |
msgstr ""
|
9748 |
|
9749 |
-
#: includes/reports/wcj-class-reports-sales.php:
|
9750 |
-
msgid "Total
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9751 |
msgstr ""
|
9752 |
|
9753 |
-
#: includes/reports/wcj-class-reports-sales.php:
|
9754 |
msgid "Filter products"
|
9755 |
msgstr ""
|
9756 |
|
9757 |
-
#: includes/reports/wcj-class-reports-sales.php:
|
9758 |
msgid "No sales data for current period."
|
9759 |
msgstr ""
|
9760 |
|
@@ -9793,71 +10911,72 @@ msgid ""
|
|
9793 |
"accounted."
|
9794 |
msgstr ""
|
9795 |
|
9796 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9797 |
msgid "deleted"
|
9798 |
msgstr ""
|
9799 |
|
9800 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9801 |
msgid "Stock"
|
9802 |
msgstr ""
|
9803 |
|
9804 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9805 |
msgid "Stock price"
|
9806 |
msgstr ""
|
9807 |
|
9808 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9809 |
msgid "Total stock price"
|
9810 |
msgstr ""
|
9811 |
|
9812 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9813 |
msgid "Last sale"
|
9814 |
msgstr ""
|
9815 |
|
9816 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
|
|
9817 |
msgid "Sales in last %s days"
|
9818 |
msgstr ""
|
9819 |
|
9820 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9821 |
msgid "Total sales"
|
9822 |
msgstr ""
|
9823 |
|
9824 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9825 |
msgid "Stock to minimum"
|
9826 |
msgstr ""
|
9827 |
|
9828 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9829 |
msgid "purchase price:"
|
9830 |
msgstr ""
|
9831 |
|
9832 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9833 |
msgid "stock purchase price:"
|
9834 |
msgstr ""
|
9835 |
|
9836 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9837 |
msgid "No sales yet"
|
9838 |
msgstr ""
|
9839 |
|
9840 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9841 |
msgid "profit:"
|
9842 |
msgstr ""
|
9843 |
|
9844 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9845 |
msgid "Total current stock value"
|
9846 |
msgstr ""
|
9847 |
|
9848 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9849 |
msgid "Total stock value"
|
9850 |
msgstr ""
|
9851 |
|
9852 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9853 |
msgid "Product stock value average"
|
9854 |
msgstr ""
|
9855 |
|
9856 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9857 |
msgid "Product stock average"
|
9858 |
msgstr ""
|
9859 |
|
9860 |
-
#: includes/reports/wcj-class-reports-stock.php:
|
9861 |
msgid "Report was generated in: "
|
9862 |
msgstr ""
|
9863 |
|
@@ -9866,69 +10985,69 @@ msgstr ""
|
|
9866 |
msgid "Booster: Custom Shipping Method"
|
9867 |
msgstr ""
|
9868 |
|
9869 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9870 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:91
|
9871 |
msgid "Cost calculation type."
|
9872 |
msgstr ""
|
9873 |
|
9874 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
9875 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:95
|
9876 |
msgid "Flat Rate"
|
9877 |
msgstr ""
|
9878 |
|
9879 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
9880 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:96
|
9881 |
msgid "By Total Cart Weight"
|
9882 |
msgstr ""
|
9883 |
|
9884 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
9885 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:97
|
9886 |
msgid "By Total Cart Weight Table"
|
9887 |
msgstr ""
|
9888 |
|
9889 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
9890 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:98
|
9891 |
msgid "By Total Cart Quantity"
|
9892 |
msgstr ""
|
9893 |
|
9894 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
9895 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:175
|
9896 |
-
#: includes/shipping/class-wc-shipping-wcj-custom.php:102
|
9897 |
-
#: includes/shipping/class-wc-shipping-wcj-custom.php:128
|
9898 |
-
msgid "Cost"
|
9899 |
-
msgstr ""
|
9900 |
-
|
9901 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:135
|
9902 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:104
|
9903 |
msgid ""
|
9904 |
"Cost. If calculating by weight - then cost per one weight unit. If "
|
9905 |
"calculating by quantity - then cost per one piece."
|
9906 |
msgstr ""
|
9907 |
|
9908 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
9909 |
msgid "Min Weight"
|
9910 |
msgstr ""
|
9911 |
|
9912 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
9913 |
msgid "Minimum total cart weight. Set zero to disable."
|
9914 |
msgstr ""
|
9915 |
|
9916 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
9917 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:168
|
9918 |
-
#: includes/shipping/class-wc-shipping-wcj-custom.php:121
|
9919 |
-
msgid "Max Weight"
|
9920 |
-
msgstr ""
|
9921 |
-
|
9922 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:151
|
9923 |
msgid "Maximum total cart weight. Set zero to disable."
|
9924 |
msgstr ""
|
9925 |
|
9926 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
9927 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:110
|
9928 |
msgid "Weight Table Total Rows"
|
9929 |
msgstr ""
|
9930 |
|
9931 |
-
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:
|
9932 |
msgid ""
|
9933 |
"Press \"Save changes\" and reload the page after you change this number."
|
9934 |
msgstr ""
|
@@ -9941,15 +11060,15 @@ msgstr ""
|
|
9941 |
msgid "Attribute \"name\" is required!"
|
9942 |
msgstr ""
|
9943 |
|
9944 |
-
#: includes/shortcodes/class-wcj-order-items-shortcodes.php:
|
9945 |
msgid "Standard"
|
9946 |
msgstr ""
|
9947 |
|
9948 |
-
#: includes/shortcodes/class-wcj-orders-shortcodes.php:
|
9949 |
msgid "Dollars"
|
9950 |
msgstr ""
|
9951 |
|
9952 |
-
#: includes/shortcodes/class-wcj-orders-shortcodes.php:
|
9953 |
msgid "Cents"
|
9954 |
msgstr ""
|
9955 |
|
@@ -9966,6 +11085,7 @@ msgid "Product exists!"
|
|
9966 |
msgstr ""
|
9967 |
|
9968 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:168
|
|
|
9969 |
msgid "%s is required!"
|
9970 |
msgstr ""
|
9971 |
|
@@ -9985,19 +11105,21 @@ msgstr ""
|
|
9985 |
msgid "Edit Product"
|
9986 |
msgstr ""
|
9987 |
|
9988 |
-
#: includes/shortcodes/class-wcj-products-shortcodes.php:
|
|
|
9989 |
msgid "%s ago"
|
9990 |
msgstr ""
|
9991 |
|
9992 |
-
#: includes/shortcodes/class-wcj-products-shortcodes.php:
|
9993 |
msgid "No sales yet."
|
9994 |
msgstr ""
|
9995 |
|
9996 |
-
#: includes/shortcodes/class-wcj-shortcodes.php:
|
|
|
9997 |
msgid "%s module not enabled!"
|
9998 |
msgstr ""
|
9999 |
|
10000 |
-
#: includes/shortcodes/class-wcj-shortcodes.php:
|
10001 |
msgid "Wrong user role!"
|
10002 |
msgstr ""
|
10003 |
|
@@ -10100,106 +11222,3 @@ msgstr ""
|
|
10100 |
#: includes/widgets/class-wcj-widget-multicurrency.php:80
|
10101 |
msgid "Link list"
|
10102 |
msgstr ""
|
10103 |
-
|
10104 |
-
#: woocommerce-jetpack.php:346
|
10105 |
-
msgid ""
|
10106 |
-
"Please upgrade <strong>Booster Plus for WooCommerce</strong> plugin to "
|
10107 |
-
"version %s. Please visit <a href=\"%s\">your account</a> on booster.io to "
|
10108 |
-
"download the latest Booster Plus version."
|
10109 |
-
msgstr ""
|
10110 |
-
|
10111 |
-
#: woocommerce-jetpack.php:366
|
10112 |
-
msgid ""
|
10113 |
-
"If you like <strong>Booster for WooCommerce</strong> please leave us a %s "
|
10114 |
-
"rating. Thank you, we couldn't have done it without you!"
|
10115 |
-
msgstr ""
|
10116 |
-
|
10117 |
-
#. #-#-#-#-# plugin.pot (Booster for WooCommerce 2.5.9) #-#-#-#-#
|
10118 |
-
#. Plugin Name of the plugin/theme
|
10119 |
-
#: woocommerce-jetpack.php:382
|
10120 |
-
msgid "Booster for WooCommerce"
|
10121 |
-
msgstr ""
|
10122 |
-
|
10123 |
-
#: woocommerce-jetpack.php:383
|
10124 |
-
msgid "Booster Settings"
|
10125 |
-
msgstr ""
|
10126 |
-
|
10127 |
-
#: woocommerce-jetpack.php:399
|
10128 |
-
msgid "Docs"
|
10129 |
-
msgstr ""
|
10130 |
-
|
10131 |
-
#: woocommerce-jetpack.php:402
|
10132 |
-
msgid "Unlock all"
|
10133 |
-
msgstr ""
|
10134 |
-
|
10135 |
-
#: woocommerce-jetpack.php:418
|
10136 |
-
msgid "Install Booster Plus to unlock all features"
|
10137 |
-
msgstr ""
|
10138 |
-
|
10139 |
-
#: woocommerce-jetpack.php:419
|
10140 |
-
msgid ""
|
10141 |
-
"Some settings fields are locked and you will need %s to modify all locked "
|
10142 |
-
"fields."
|
10143 |
-
msgstr ""
|
10144 |
-
|
10145 |
-
#: woocommerce-jetpack.php:420
|
10146 |
-
msgid "Buy now"
|
10147 |
-
msgstr ""
|
10148 |
-
|
10149 |
-
#: woocommerce-jetpack.php:420
|
10150 |
-
msgid "Visit Booster Site"
|
10151 |
-
msgstr ""
|
10152 |
-
|
10153 |
-
#: woocommerce-jetpack.php:424
|
10154 |
-
msgid ""
|
10155 |
-
"Get <a href=\"http://booster.io/plus/\" target=\"_blank\">Booster Plus</a> "
|
10156 |
-
"to change value."
|
10157 |
-
msgstr ""
|
10158 |
-
|
10159 |
-
#: woocommerce-jetpack.php:427
|
10160 |
-
msgid ""
|
10161 |
-
"Get <a href=\"http://booster.io/plus/\" target=\"_blank\">Booster Plus</a> "
|
10162 |
-
"to change values below."
|
10163 |
-
msgstr ""
|
10164 |
-
|
10165 |
-
#: woocommerce-jetpack.php:430
|
10166 |
-
msgid ""
|
10167 |
-
"Get <a href=\"http://booster.io/plus/\" target=\"_blank\">Booster Plus</a> "
|
10168 |
-
"to change values above."
|
10169 |
-
msgstr ""
|
10170 |
-
|
10171 |
-
#: woocommerce-jetpack.php:433
|
10172 |
-
msgid "Get Booster Plus to change value."
|
10173 |
-
msgstr ""
|
10174 |
-
|
10175 |
-
#: woocommerce-jetpack.php:686
|
10176 |
-
msgid "Please upload a file to import!"
|
10177 |
-
msgstr ""
|
10178 |
-
|
10179 |
-
#: woocommerce-jetpack.php:694 woocommerce-jetpack.php:699
|
10180 |
-
msgid "Wrong file format!"
|
10181 |
-
msgstr ""
|
10182 |
-
|
10183 |
-
#: woocommerce-jetpack.php:706
|
10184 |
-
msgid "%d options successfully imported."
|
10185 |
-
msgstr ""
|
10186 |
-
|
10187 |
-
#: woocommerce-jetpack.php:771
|
10188 |
-
msgid "%d options successfully deleted."
|
10189 |
-
msgstr ""
|
10190 |
-
|
10191 |
-
#. Plugin URI of the plugin/theme
|
10192 |
-
msgid "http://booster.io"
|
10193 |
-
msgstr ""
|
10194 |
-
|
10195 |
-
#. Description of the plugin/theme
|
10196 |
-
msgid "Supercharge your WooCommerce site with these awesome powerful features."
|
10197 |
-
msgstr ""
|
10198 |
-
|
10199 |
-
#. Author of the plugin/theme
|
10200 |
-
msgid "Algoritmika Ltd"
|
10201 |
-
msgstr ""
|
10202 |
-
|
10203 |
-
#. Author URI of the plugin/theme
|
10204 |
-
msgid "http://www.algoritmika.com"
|
10205 |
-
msgstr ""
|
1 |
+
#: woocommerce-jetpack.php:357
|
2 |
+
#, php-format
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
msgid ""
|
4 |
+
"Please upgrade <strong>Booster Plus for WooCommerce</strong> plugin to "
|
5 |
+
"version %s. Please visit <a href=\"%s\">your account</a> on booster.io to "
|
6 |
+
"download the latest Booster Plus version."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
msgstr ""
|
8 |
|
9 |
+
#: woocommerce-jetpack.php:377
|
10 |
+
#, php-format
|
11 |
msgid ""
|
12 |
+
"If you like <strong>Booster for WooCommerce</strong> please leave us a %s "
|
13 |
+
"rating. Thank you, we couldn't have done it without you!"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
msgstr ""
|
15 |
|
16 |
+
#: woocommerce-jetpack.php:393
|
17 |
+
#: includes/admin/class-wc-settings-jetpack.php:607
|
18 |
+
msgid "Booster for WooCommerce"
|
|
|
19 |
msgstr ""
|
20 |
|
21 |
+
#: woocommerce-jetpack.php:394
|
22 |
+
msgid "Booster Settings"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
msgstr ""
|
24 |
|
25 |
+
#: woocommerce-jetpack.php:409
|
26 |
+
#: includes/admin/class-wc-settings-jetpack.php:369
|
27 |
+
#: includes/admin/class-wc-settings-jetpack.php:539
|
28 |
+
msgid "Settings"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: woocommerce-jetpack.php:410
|
32 |
+
msgid "Docs"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: woocommerce-jetpack.php:413
|
36 |
+
msgid "Unlock all"
|
37 |
msgstr ""
|
38 |
|
39 |
+
#: woocommerce-jetpack.php:429
|
40 |
+
msgid "Install Booster Plus to unlock all features"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: woocommerce-jetpack.php:430
|
44 |
+
#, php-format
|
45 |
msgid ""
|
46 |
+
"Some settings fields are locked and you will need %s to modify all locked "
|
47 |
+
"fields."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
msgstr ""
|
49 |
|
50 |
+
#: woocommerce-jetpack.php:431
|
51 |
+
msgid "Buy now"
|
52 |
msgstr ""
|
53 |
|
54 |
+
#: woocommerce-jetpack.php:431
|
55 |
+
msgid "Visit Booster Site"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: woocommerce-jetpack.php:435
|
59 |
msgid ""
|
60 |
+
"Get <a href=\"http://booster.io/plus/\" target=\"_blank\">Booster Plus</a> "
|
61 |
+
"to change value."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: woocommerce-jetpack.php:438
|
65 |
+
msgid ""
|
66 |
+
"Get <a href=\"http://booster.io/plus/\" target=\"_blank\">Booster Plus</a> "
|
67 |
+
"to change values below."
|
68 |
msgstr ""
|
69 |
|
70 |
+
#: woocommerce-jetpack.php:441
|
71 |
+
msgid ""
|
72 |
+
"Get <a href=\"http://booster.io/plus/\" target=\"_blank\">Booster Plus</a> "
|
73 |
+
"to change values above."
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: woocommerce-jetpack.php:444
|
77 |
+
msgid "Get Booster Plus to change value."
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: woocommerce-jetpack.php:697
|
81 |
+
msgid "Please upload a file to import!"
|
|
|
|
|
|
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: woocommerce-jetpack.php:705 woocommerce-jetpack.php:710
|
85 |
+
msgid "Wrong file format!"
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: woocommerce-jetpack.php:717
|
89 |
+
#, php-format
|
90 |
+
msgid "%d options successfully imported."
|
91 |
msgstr ""
|
92 |
|
93 |
+
#: woocommerce-jetpack.php:782
|
94 |
+
#, php-format
|
95 |
+
msgid "%d options successfully deleted."
|
96 |
msgstr ""
|
97 |
|
98 |
#: includes/class-wcj-add-to-cart.php:25
|
116 |
|
117 |
#: includes/class-wcj-add-to-cart.php:48
|
118 |
#: includes/class-wcj-add-to-cart.php:187
|
119 |
+
#: includes/class-wcj-add-to-cart.php:212 includes/class-wcj-general.php:460
|
120 |
+
#: includes/class-wcj-product-images.php:254
|
121 |
+
#: includes/class-wcj-product-images.php:328
|
122 |
#: includes/class-wcj-shipping-calculator.php:183
|
123 |
+
#: includes/class-wcj-shipping.php:334 includes/class-wcj-shipping.php:380
|
124 |
+
#: includes/class-wcj-sorting.php:282 includes/class-wcj-sorting.php:361
|
125 |
+
#: includes/class-wcj-sorting.php:385
|
126 |
msgid "Enable Section"
|
127 |
msgstr ""
|
128 |
|
154 |
#: includes/class-wcj-add-to-cart.php:101
|
155 |
#: includes/class-wcj-add-to-cart.php:147
|
156 |
#: includes/class-wcj-add-to-cart.php:160
|
|
|
157 |
msgid "Leave blank to disable."
|
158 |
msgstr ""
|
159 |
|
160 |
#: includes/class-wcj-add-to-cart.php:90
|
161 |
#: includes/class-wcj-add-to-cart.php:101
|
162 |
#: includes/class-wcj-add-to-cart.php:149
|
163 |
+
#: includes/class-wcj-add-to-cart.php:162 includes/class-wcj-sorting.php:289
|
164 |
+
#: includes/class-wcj-sorting.php:298 includes/class-wcj-sorting.php:307
|
165 |
+
#: includes/class-wcj-sorting.php:316 includes/class-wcj-sorting.php:334
|
166 |
+
#: includes/class-wcj-sorting.php:343
|
167 |
msgid "Default: "
|
168 |
msgstr ""
|
169 |
|
225 |
msgstr ""
|
226 |
|
227 |
#: includes/class-wcj-add-to-cart.php:180
|
228 |
+
#: includes/class-wcj-product-addons.php:529
|
229 |
msgid "Per Product Options"
|
230 |
msgstr ""
|
231 |
|
253 |
msgstr ""
|
254 |
|
255 |
#: includes/class-wcj-add-to-cart.php:221
|
256 |
+
#: includes/class-wcj-product-tabs.php:506
|
|
|
|
|
257 |
msgid "Click \"Save changes\" after you change this number."
|
258 |
msgstr ""
|
259 |
|
260 |
#: includes/class-wcj-add-to-cart.php:257
|
261 |
+
#: includes/class-wcj-price-by-country.php:333
|
262 |
+
#: includes/class-wcj-price-by-country.php:344
|
263 |
+
#: includes/class-wcj-price-by-country.php:355
|
264 |
+
#: includes/class-wcj-price-by-country.php:409
|
265 |
msgid "Group"
|
266 |
msgstr ""
|
267 |
|
268 |
#: includes/class-wcj-add-to-cart.php:258
|
269 |
+
#: includes/class-wcj-address-formats.php:130
|
270 |
+
#: includes/class-wcj-admin-tools.php:205
|
271 |
+
#: includes/class-wcj-admin-tools.php:212
|
272 |
+
#: includes/class-wcj-admin-tools.php:252
|
273 |
+
#: includes/class-wcj-admin-tools.php:259
|
274 |
+
#: includes/class-wcj-call-for-price.php:160
|
275 |
+
#: includes/class-wcj-currency-exchange-rates.php:164
|
276 |
+
#: includes/class-wcj-currency-exchange-rates.php:172
|
277 |
+
#: includes/class-wcj-general.php:345 includes/class-wcj-general.php:369
|
278 |
+
#: includes/class-wcj-general.php:385 includes/class-wcj-general.php:443
|
279 |
+
#: includes/class-wcj-general.php:494
|
280 |
+
#: includes/class-wcj-global-discount.php:265
|
281 |
+
#: includes/class-wcj-left-to-free-shipping.php:117
|
282 |
+
#: includes/class-wcj-left-to-free-shipping.php:150
|
283 |
+
#: includes/class-wcj-left-to-free-shipping.php:189
|
284 |
+
#: includes/class-wcj-multicurrency.php:394
|
285 |
+
#: includes/class-wcj-multicurrency.php:402
|
286 |
+
#: includes/class-wcj-order-numbers.php:315
|
287 |
+
#: includes/class-wcj-order-numbers.php:323
|
288 |
+
#: includes/class-wcj-order-numbers.php:330 includes/class-wcj-orders.php:369
|
289 |
+
#: includes/class-wcj-orders.php:398 includes/class-wcj-orders.php:506
|
290 |
+
#: includes/class-wcj-price-by-country.php:197
|
291 |
+
#: includes/class-wcj-price-by-country.php:219
|
292 |
+
#: includes/class-wcj-price-by-country.php:237
|
293 |
+
#: includes/class-wcj-price-by-country.php:246
|
294 |
+
#: includes/class-wcj-price-by-country.php:256
|
295 |
+
#: includes/class-wcj-price-by-user-role.php:330
|
296 |
+
#: includes/class-wcj-price-by-user-role.php:347
|
297 |
+
#: includes/class-wcj-price-labels.php:42
|
298 |
+
#: includes/class-wcj-price-labels.php:648
|
299 |
+
#: includes/class-wcj-product-add-to-cart.php:328
|
300 |
+
#: includes/class-wcj-product-add-to-cart.php:437
|
301 |
+
#: includes/class-wcj-product-add-to-cart.php:488
|
302 |
+
#: includes/class-wcj-product-add-to-cart.php:511
|
303 |
+
#: includes/class-wcj-product-add-to-cart.php:550
|
304 |
+
#: includes/class-wcj-product-add-to-cart.php:581
|
305 |
+
#: includes/class-wcj-product-add-to-cart.php:598
|
306 |
+
#: includes/class-wcj-product-addons.php:457
|
307 |
+
#: includes/class-wcj-product-addons.php:535
|
308 |
+
#: includes/class-wcj-product-addons.php:554
|
309 |
+
#: includes/class-wcj-product-addons.php:578
|
310 |
+
#: includes/class-wcj-product-addons.php:649
|
311 |
#: includes/class-wcj-product-by-user.php:275
|
312 |
#: includes/class-wcj-product-info.php:256
|
313 |
#: includes/class-wcj-product-info.php:351
|
315 |
#: includes/class-wcj-product-input-fields.php:133
|
316 |
#: includes/class-wcj-product-input-fields.php:170
|
317 |
#: includes/class-wcj-product-input-fields.php:283
|
318 |
+
#: includes/class-wcj-product-open-pricing.php:456
|
319 |
+
#: includes/class-wcj-product-price-by-formula.php:313
|
320 |
+
#: includes/class-wcj-product-tabs.php:680
|
321 |
+
#: includes/class-wcj-product-tabs.php:688
|
322 |
+
#: includes/class-wcj-products-xml.php:353
|
323 |
+
#: includes/class-wcj-purchase-data.php:292
|
324 |
+
#: includes/class-wcj-purchase-data.php:299
|
325 |
+
#: includes/class-wcj-purchase-data.php:306
|
326 |
+
#: includes/class-wcj-purchase-data.php:373
|
327 |
+
#: includes/class-wcj-purchase-data.php:380
|
328 |
+
#: includes/class-wcj-purchase-data.php:387
|
329 |
+
#: includes/class-wcj-purchase-data.php:427
|
330 |
+
#: includes/class-wcj-related-products.php:138
|
331 |
+
#: includes/class-wcj-related-products.php:337
|
332 |
+
#: includes/class-wcj-related-products.php:344
|
333 |
+
#: includes/class-wcj-related-products.php:351
|
334 |
+
#: includes/class-wcj-related-products.php:381
|
335 |
#: includes/class-wcj-shipping-calculator.php:134
|
336 |
#: includes/class-wcj-shipping-calculator.php:141
|
337 |
#: includes/class-wcj-shipping-calculator.php:148
|
338 |
#: includes/class-wcj-shipping-calculator.php:155
|
339 |
+
#: includes/class-wcj-shipping.php:207 includes/class-wcj-shipping.php:294
|
340 |
+
#: includes/class-wcj-sku.php:396 includes/class-wcj-sku.php:404
|
341 |
+
#: includes/class-wcj-sku.php:411 includes/class-wcj-wholesale-price.php:365
|
342 |
+
#: includes/class-wcj-wholesale-price.php:372
|
343 |
+
#: includes/class-wcj-wholesale-price.php:379
|
344 |
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:379
|
345 |
msgid "Enable"
|
346 |
msgstr ""
|
347 |
|
348 |
#: includes/class-wcj-add-to-cart.php:274
|
349 |
+
#: includes/class-wcj-checkout-custom-fields.php:886
|
350 |
msgid "categories"
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: includes/class-wcj-add-to-cart.php:275
|
354 |
+
#: includes/class-wcj-shipping-calculator.php:161
|
355 |
+
#: includes/reports/wcj-class-reports-stock.php:45
|
356 |
+
msgid ""
|
357 |
+
msgstr ""
|
358 |
+
|
359 |
#: includes/class-wcj-add-to-cart.php:285
|
360 |
msgid "Button text - single product view"
|
361 |
msgstr ""
|
374 |
"country display."
|
375 |
msgstr ""
|
376 |
|
377 |
+
#: includes/class-wcj-address-formats.php:124
|
378 |
+
#: includes/class-wcj-address-formats.php:129
|
379 |
msgid "Force Base Country Display"
|
380 |
msgstr ""
|
381 |
|
382 |
+
#: includes/class-wcj-address-formats.php:141
|
|
|
|
|
|
|
|
|
383 |
msgid "Address Formats by Country"
|
384 |
msgstr ""
|
385 |
|
|
|
|
|
|
|
|
|
386 |
#: includes/class-wcj-admin-tools.php:25 includes/class-wcj-admin-tools.php:32
|
387 |
msgid "Admin Tools"
|
388 |
msgstr ""
|
399 |
msgid "Log"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: includes/class-wcj-admin-tools.php:46
|
403 |
+
#, php-format
|
404 |
msgid "Current PHP memory limit: %s."
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: includes/class-wcj-admin-tools.php:52
|
408 |
+
#, php-format
|
409 |
+
msgid "Current PHP time limit: %s seconds."
|
410 |
+
msgstr ""
|
411 |
+
|
412 |
+
#: includes/class-wcj-admin-tools.php:75
|
413 |
+
#: includes/class-wcj-export-import.php:445
|
414 |
+
#: includes/class-wcj-export-import.php:524
|
415 |
msgid "Product Meta"
|
416 |
msgstr ""
|
417 |
|
418 |
+
#: includes/class-wcj-admin-tools.php:92
|
419 |
+
#: includes/class-wcj-export-import.php:375
|
420 |
+
#: includes/class-wcj-export-import.php:443
|
421 |
msgid "Order Meta"
|
422 |
msgstr ""
|
423 |
|
424 |
+
#: includes/class-wcj-admin-tools.php:128
|
425 |
msgid "Order Items Meta"
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: includes/class-wcj-admin-tools.php:145
|
429 |
msgid "Log deleted successfully."
|
430 |
msgstr ""
|
431 |
|
432 |
+
#: includes/class-wcj-admin-tools.php:150
|
433 |
msgid "Delete Log"
|
434 |
msgstr ""
|
435 |
|
436 |
+
#: includes/class-wcj-admin-tools.php:186
|
437 |
msgid "NOT DEFINED"
|
438 |
msgstr ""
|
439 |
|
440 |
+
#: includes/class-wcj-admin-tools.php:199
|
441 |
msgid "Admin Tools Options"
|
442 |
msgstr ""
|
443 |
|
444 |
+
#: includes/class-wcj-admin-tools.php:204
|
445 |
msgid "Logging"
|
446 |
msgstr ""
|
447 |
|
448 |
+
#: includes/class-wcj-admin-tools.php:211
|
449 |
msgid "Debug"
|
450 |
msgstr ""
|
451 |
|
452 |
+
#: includes/class-wcj-admin-tools.php:218
|
453 |
msgid "PHP Memory Limit"
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: includes/class-wcj-admin-tools.php:219
|
457 |
msgid "megabytes."
|
458 |
msgstr ""
|
459 |
|
460 |
+
#: includes/class-wcj-admin-tools.php:220
|
461 |
+
#: includes/class-wcj-admin-tools.php:229
|
462 |
msgid "Set zero to disable."
|
463 |
msgstr ""
|
464 |
|
465 |
+
#: includes/class-wcj-admin-tools.php:227
|
466 |
+
msgid "PHP Time Limit"
|
467 |
+
msgstr ""
|
468 |
+
|
469 |
+
#: includes/class-wcj-admin-tools.php:228
|
470 |
+
msgid "seconds."
|
471 |
+
msgstr ""
|
472 |
+
|
473 |
+
#: includes/class-wcj-admin-tools.php:244
|
474 |
msgid "System Info"
|
475 |
msgstr ""
|
476 |
|
477 |
+
#: includes/class-wcj-admin-tools.php:251
|
478 |
msgid "Show Order Meta"
|
479 |
msgstr ""
|
480 |
|
481 |
+
#: includes/class-wcj-admin-tools.php:258
|
482 |
msgid "Show Product Meta"
|
483 |
msgstr ""
|
484 |
|
500 |
"Leave price empty when adding or editing products. Then set the options here."
|
501 |
msgstr ""
|
502 |
|
503 |
+
#: includes/class-wcj-call-for-price.php:104
|
504 |
+
msgid "You can use shortcodes in options."
|
505 |
msgstr ""
|
506 |
|
507 |
#: includes/class-wcj-call-for-price.php:108
|
508 |
+
msgid "Label to Show on Single"
|
509 |
+
msgstr ""
|
510 |
+
|
511 |
+
#: includes/class-wcj-call-for-price.php:109
|
512 |
+
#: includes/class-wcj-call-for-price.php:120
|
513 |
+
#: includes/class-wcj-call-for-price.php:131
|
514 |
+
#: includes/class-wcj-call-for-price.php:142
|
515 |
msgid "This sets the html to output on empty price. Leave blank to disable."
|
516 |
msgstr ""
|
517 |
|
518 |
+
#: includes/class-wcj-call-for-price.php:119
|
519 |
msgid "Label to Show on Archives"
|
520 |
msgstr ""
|
521 |
|
522 |
+
#: includes/class-wcj-call-for-price.php:130
|
523 |
msgid "Label to Show on Homepage"
|
524 |
msgstr ""
|
525 |
|
526 |
+
#: includes/class-wcj-call-for-price.php:141
|
527 |
msgid "Label to Show on Related"
|
528 |
msgstr ""
|
529 |
|
530 |
+
#: includes/class-wcj-call-for-price.php:152
|
531 |
msgid "Hide Sale! Tag"
|
532 |
msgstr ""
|
533 |
|
534 |
+
#: includes/class-wcj-call-for-price.php:153
|
535 |
msgid "Hide the tag"
|
536 |
msgstr ""
|
537 |
|
538 |
+
#: includes/class-wcj-call-for-price.php:159
|
539 |
msgid "Make All Products Call for Price"
|
540 |
msgstr ""
|
541 |
|
542 |
+
#: includes/class-wcj-call-for-price.php:161
|
543 |
msgid ""
|
544 |
"Enable this to make all products (except variable) prices empty. When "
|
545 |
"checkbox disabled, all prices go back to normal."
|
546 |
msgstr ""
|
547 |
|
548 |
+
#: includes/class-wcj-cart-customization.php:27
|
549 |
+
msgid "Cart Customization"
|
550 |
+
msgstr ""
|
551 |
+
|
552 |
+
#: includes/class-wcj-cart-customization.php:28
|
553 |
+
msgid "Customize WooCommerce cart - hide coupon field; item remove link."
|
554 |
+
msgstr ""
|
555 |
+
|
556 |
+
#: includes/class-wcj-cart-customization.php:65
|
557 |
+
#: includes/class-wcj-checkout-customization.php:69
|
558 |
+
#: includes/class-wcj-checkout-files-upload.php:606
|
559 |
+
#: includes/class-wcj-custom-css.php:74
|
560 |
+
#: includes/class-wcj-empty-cart-button.php:74
|
561 |
+
#: includes/class-wcj-eu-vat-number.php:464
|
562 |
+
#: includes/class-wcj-global-discount.php:236
|
563 |
+
#: includes/class-wcj-multicurrency-product-base-price.php:202
|
564 |
+
#: includes/class-wcj-multicurrency.php:373
|
565 |
+
#: includes/class-wcj-payment-gateways-icons.php:95
|
566 |
+
#: includes/class-wcj-payment-gateways-per-category.php:165
|
567 |
+
#: includes/class-wcj-price-by-user-role.php:324
|
568 |
+
#: includes/class-wcj-product-addons.php:643
|
569 |
+
#: includes/class-wcj-product-bookings.php:490
|
570 |
+
#: includes/class-wcj-product-by-user-role.php:137
|
571 |
+
#: includes/class-wcj-product-by-user.php:247
|
572 |
+
#: includes/class-wcj-product-open-pricing.php:392
|
573 |
+
#: includes/class-wcj-products-per-page.php:127
|
574 |
+
#: includes/class-wcj-products-xml.php:297
|
575 |
+
#: includes/class-wcj-wholesale-price.php:358
|
576 |
+
msgid "Options"
|
577 |
+
msgstr ""
|
578 |
+
|
579 |
+
#: includes/class-wcj-cart-customization.php:70
|
580 |
+
msgid "Hide Coupon on Cart Page"
|
581 |
+
msgstr ""
|
582 |
+
|
583 |
+
#: includes/class-wcj-cart-customization.php:71
|
584 |
+
#: includes/class-wcj-cart-customization.php:78
|
585 |
+
#: includes/class-wcj-checkout-customization.php:87
|
586 |
+
#: includes/class-wcj-currencies.php:106 includes/class-wcj-orders.php:483
|
587 |
+
#: includes/class-wcj-pdf-invoicing.php:397
|
588 |
+
#: includes/class-wcj-product-bookings.php:496
|
589 |
+
#: includes/class-wcj-product-images.php:261
|
590 |
+
#: includes/class-wcj-product-images.php:268
|
591 |
+
#: includes/class-wcj-product-images.php:275
|
592 |
+
#: includes/class-wcj-product-images.php:282
|
593 |
+
#: includes/class-wcj-related-products.php:395
|
594 |
+
#: includes/class-wcj-related-products.php:401
|
595 |
+
#: includes/class-wcj-shipping-calculator.php:168
|
596 |
+
msgid "Hide"
|
597 |
+
msgstr ""
|
598 |
+
|
599 |
+
#: includes/class-wcj-cart-customization.php:77
|
600 |
+
msgid "Hide Item Remove Link"
|
601 |
+
msgstr ""
|
602 |
+
|
603 |
#: includes/class-wcj-cart.php:25
|
604 |
+
msgid "Cart Custom Info"
|
605 |
msgstr ""
|
606 |
|
607 |
#: includes/class-wcj-cart.php:26
|
633 |
#: includes/class-wcj-cart.php:132
|
634 |
#: includes/class-wcj-checkout-custom-info.php:75
|
635 |
#: includes/class-wcj-mini-cart.php:80
|
636 |
+
#: includes/class-wcj-product-custom-info.php:99
|
637 |
msgid "Total Blocks"
|
638 |
msgstr ""
|
639 |
|
640 |
#: includes/class-wcj-cart.php:153
|
641 |
+
#: includes/class-wcj-checkout-custom-info.php:91
|
642 |
#: includes/class-wcj-mini-cart.php:100
|
643 |
+
#: includes/class-wcj-product-custom-info.php:114
|
644 |
msgid "Info Block"
|
645 |
msgstr ""
|
646 |
|
647 |
#: includes/class-wcj-cart.php:159
|
648 |
+
#: includes/class-wcj-checkout-custom-info.php:96
|
649 |
+
#: includes/class-wcj-left-to-free-shipping.php:124
|
650 |
+
#: includes/class-wcj-left-to-free-shipping.php:159
|
651 |
+
#: includes/class-wcj-left-to-free-shipping.php:198
|
652 |
#: includes/class-wcj-mini-cart.php:106
|
653 |
+
#: includes/class-wcj-product-custom-info.php:119
|
654 |
+
#: includes/class-wcj-product-tabs.php:433
|
655 |
+
#: includes/class-wcj-product-tabs.php:559
|
656 |
msgid "Content"
|
657 |
msgstr ""
|
658 |
|
659 |
#: includes/class-wcj-cart.php:167
|
660 |
+
#: includes/class-wcj-checkout-custom-info.php:103
|
661 |
#: includes/class-wcj-checkout-files-upload.php:641
|
662 |
+
#: includes/class-wcj-left-to-free-shipping.php:133
|
663 |
+
#: includes/class-wcj-left-to-free-shipping.php:168
|
664 |
+
#: includes/class-wcj-left-to-free-shipping.php:207
|
665 |
#: includes/class-wcj-mini-cart.php:114
|
666 |
+
#: includes/class-wcj-product-custom-info.php:127
|
667 |
#: includes/class-wcj-product-info.php:263
|
668 |
#: includes/class-wcj-product-info.php:366
|
669 |
#: includes/class-wcj-product-info.php:399
|
670 |
+
#: includes/class-wcj-products-per-page.php:149
|
671 |
msgid "Position"
|
672 |
msgstr ""
|
673 |
|
674 |
#: includes/class-wcj-cart.php:176
|
675 |
+
#: includes/class-wcj-checkout-custom-info.php:141
|
676 |
#: includes/class-wcj-mini-cart.php:127
|
677 |
+
#: includes/class-wcj-product-custom-info.php:153
|
678 |
msgid "Position Order (i.e. Priority)"
|
679 |
msgstr ""
|
680 |
|
706 |
msgstr ""
|
707 |
|
708 |
#: includes/class-wcj-checkout-core-fields.php:225
|
709 |
+
#: includes/classes/class-wcj-module.php:430
|
710 |
msgid "enabled"
|
711 |
msgstr ""
|
712 |
|
713 |
#: includes/class-wcj-checkout-core-fields.php:230
|
714 |
#: includes/class-wcj-checkout-core-fields.php:244
|
715 |
#: includes/class-wcj-checkout-core-fields.php:278
|
716 |
+
#: includes/class-wcj-products-per-page.php:142
|
717 |
msgid "Default"
|
718 |
msgstr ""
|
719 |
|
720 |
#: includes/class-wcj-checkout-core-fields.php:231
|
721 |
+
#: includes/class-wcj-checkout-custom-fields.php:688
|
722 |
#: includes/class-wcj-checkout-files-upload.php:629
|
723 |
+
#: includes/class-wcj-export-import.php:359
|
724 |
+
#: includes/class-wcj-export-import.php:427
|
725 |
+
#: includes/class-wcj-export-import.php:508
|
726 |
+
#: includes/class-wcj-global-discount.php:264
|
727 |
+
#: includes/class-wcj-orders.php:438
|
728 |
#: includes/class-wcj-price-by-user-role.php:142
|
729 |
+
#: includes/class-wcj-product-addons.php:443
|
730 |
#: includes/class-wcj-product-bookings.php:417
|
731 |
+
#: includes/class-wcj-product-open-pricing.php:180
|
732 |
+
#: includes/class-wcj-product-price-by-formula.php:228
|
733 |
+
#: includes/class-wcj-products-xml.php:352
|
734 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:37
|
735 |
msgid "Enabled"
|
736 |
msgstr ""
|
737 |
|
738 |
#: includes/class-wcj-checkout-core-fields.php:232
|
739 |
+
#: includes/class-wcj-pdf-invoicing.php:352
|
740 |
+
#: includes/class-wcj-product-add-to-cart.php:472
|
741 |
+
#: includes/class-wcj-product-tabs.php:442
|
742 |
msgid "Disabled"
|
743 |
msgstr ""
|
744 |
|
745 |
#: includes/class-wcj-checkout-core-fields.php:239
|
746 |
+
#: includes/class-wcj-checkout-custom-fields.php:827
|
747 |
msgid "required"
|
748 |
msgstr ""
|
749 |
|
750 |
#: includes/class-wcj-checkout-core-fields.php:245
|
751 |
#: includes/class-wcj-checkout-files-upload.php:635
|
752 |
+
#: includes/class-wcj-eu-vat-number.php:496
|
753 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:223
|
754 |
msgid "Required"
|
755 |
msgstr ""
|
756 |
|
759 |
msgstr ""
|
760 |
|
761 |
#: includes/class-wcj-checkout-core-fields.php:253
|
762 |
+
#: includes/class-wcj-checkout-custom-fields.php:835
|
763 |
msgid "label"
|
764 |
msgstr ""
|
765 |
|
769 |
msgstr ""
|
770 |
|
771 |
#: includes/class-wcj-checkout-core-fields.php:263
|
772 |
+
#: includes/class-wcj-checkout-custom-fields.php:843
|
773 |
msgid "placeholder"
|
774 |
msgstr ""
|
775 |
|
776 |
#: includes/class-wcj-checkout-core-fields.php:273
|
777 |
+
#: includes/class-wcj-checkout-custom-fields.php:865
|
778 |
msgid "class"
|
779 |
msgstr ""
|
780 |
|
798 |
msgid "Add custom fields to WooCommerce checkout page."
|
799 |
msgstr ""
|
800 |
|
801 |
+
#: includes/class-wcj-checkout-custom-fields.php:619
|
802 |
msgid "Checkout Custom Fields Options"
|
803 |
msgstr ""
|
804 |
|
805 |
+
#: includes/class-wcj-checkout-custom-fields.php:625
|
806 |
msgid "Add All Fields to Admin Emails"
|
807 |
msgstr ""
|
808 |
|
809 |
+
#: includes/class-wcj-checkout-custom-fields.php:626
|
810 |
+
#: includes/class-wcj-checkout-custom-fields.php:633
|
811 |
+
#: includes/class-wcj-checkout-custom-fields.php:640
|
812 |
+
#: includes/class-wcj-emails.php:244 includes/class-wcj-eu-vat-number.php:590
|
813 |
+
#: includes/class-wcj-eu-vat-number.php:626
|
814 |
+
#: includes/class-wcj-export-import.php:316 includes/class-wcj-general.php:165
|
815 |
+
#: includes/class-wcj-order-custom-statuses.php:344
|
816 |
+
#: includes/class-wcj-order-custom-statuses.php:420
|
817 |
+
#: includes/class-wcj-order-custom-statuses.php:427
|
818 |
+
#: includes/class-wcj-order-custom-statuses.php:434
|
819 |
+
#: includes/class-wcj-order-min-amount.php:219
|
820 |
+
#: includes/class-wcj-orders.php:416 includes/class-wcj-orders.php:490
|
821 |
#: includes/class-wcj-product-by-user.php:282
|
822 |
+
#: includes/class-wcj-purchase-data.php:404
|
823 |
+
#: includes/class-wcj-purchase-data.php:411 includes/class-wcj-sku.php:418
|
824 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:359
|
825 |
msgid "Add"
|
826 |
msgstr ""
|
827 |
|
828 |
+
#: includes/class-wcj-checkout-custom-fields.php:632
|
829 |
msgid "Add All Fields to Customers Emails"
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: includes/class-wcj-checkout-custom-fields.php:639
|
833 |
msgid "Add All Fields to \"Order Received\" Page"
|
834 |
msgstr ""
|
835 |
|
836 |
+
#: includes/class-wcj-checkout-custom-fields.php:651
|
837 |
msgid "The Fields"
|
838 |
msgstr ""
|
839 |
|
840 |
+
#: includes/class-wcj-checkout-custom-fields.php:656
|
841 |
msgid "Custom Fields Number"
|
842 |
msgstr ""
|
843 |
|
844 |
+
#: includes/class-wcj-checkout-custom-fields.php:657
|
845 |
+
#: includes/class-wcj-product-input-fields.php:179
|
846 |
+
msgid "Click Save changes after you change this number."
|
847 |
+
msgstr ""
|
848 |
+
|
849 |
+
#: includes/class-wcj-checkout-custom-fields.php:687
|
850 |
msgid "Custom Field"
|
851 |
msgstr ""
|
852 |
|
853 |
+
#: includes/class-wcj-checkout-custom-fields.php:698
|
854 |
msgid "type"
|
855 |
msgstr ""
|
856 |
|
857 |
+
#: includes/class-wcj-checkout-custom-fields.php:703
|
858 |
+
#: includes/class-wcj-more-button-labels.php:60
|
859 |
+
#: includes/class-wcj-products-per-page.php:167
|
860 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:48
|
861 |
msgid "Text"
|
862 |
msgstr ""
|
863 |
|
864 |
+
#: includes/class-wcj-checkout-custom-fields.php:704
|
865 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:49
|
866 |
msgid "Textarea"
|
867 |
msgstr ""
|
868 |
|
869 |
+
#: includes/class-wcj-checkout-custom-fields.php:705
|
870 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:50
|
871 |
msgid "Number"
|
872 |
msgstr ""
|
873 |
|
874 |
+
#: includes/class-wcj-checkout-custom-fields.php:706
|
875 |
+
#: includes/class-wcj-product-addons.php:472
|
876 |
+
#: includes/class-wcj-product-addons.php:590
|
877 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:51
|
878 |
msgid "Checkbox"
|
879 |
msgstr ""
|
880 |
|
881 |
+
#: includes/class-wcj-checkout-custom-fields.php:708
|
882 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:53
|
883 |
msgid "Datepicker"
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: includes/class-wcj-checkout-custom-fields.php:709
|
887 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:54
|
888 |
msgid "Weekpicker"
|
889 |
msgstr ""
|
890 |
|
891 |
+
#: includes/class-wcj-checkout-custom-fields.php:710
|
892 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:55
|
893 |
msgid "Timepicker"
|
894 |
msgstr ""
|
895 |
|
896 |
+
#: includes/class-wcj-checkout-custom-fields.php:711
|
897 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:56
|
898 |
msgid "Select"
|
899 |
msgstr ""
|
900 |
|
901 |
+
#: includes/class-wcj-checkout-custom-fields.php:712
|
902 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:57
|
903 |
msgid "Radio"
|
904 |
msgstr ""
|
905 |
|
906 |
+
#: includes/class-wcj-checkout-custom-fields.php:713
|
907 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:58
|
908 |
msgid "Password"
|
909 |
msgstr ""
|
910 |
|
911 |
+
#: includes/class-wcj-checkout-custom-fields.php:714
|
912 |
+
#: includes/class-wcj-orders.php:305 includes/class-wcj-orders.php:415
|
913 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:59
|
914 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:90
|
915 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:104
|
916 |
msgid "Country"
|
917 |
msgstr ""
|
918 |
|
919 |
+
#: includes/class-wcj-checkout-custom-fields.php:715
|
920 |
msgid "State"
|
921 |
msgstr ""
|
922 |
|
923 |
+
#: includes/class-wcj-checkout-custom-fields.php:716
|
924 |
+
#: includes/export/class-wcj-fields-helper.php:77
|
925 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:61
|
926 |
#: includes/reports/wcj-class-reports-customers.php:92
|
927 |
msgid "Email"
|
928 |
msgstr ""
|
929 |
|
930 |
+
#: includes/class-wcj-checkout-custom-fields.php:717
|
931 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:62
|
932 |
msgid "Phone"
|
933 |
msgstr ""
|
934 |
|
935 |
+
#: includes/class-wcj-checkout-custom-fields.php:723
|
936 |
msgid ""
|
937 |
"options (only if \"select\" or \"radio\" type is selected). One option per "
|
938 |
"line"
|
939 |
msgstr ""
|
940 |
|
941 |
+
#: includes/class-wcj-checkout-custom-fields.php:732
|
942 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:79
|
943 |
msgid "If checkbox is selected, set value for ON here"
|
944 |
msgstr ""
|
945 |
|
946 |
+
#: includes/class-wcj-checkout-custom-fields.php:734
|
947 |
+
#: includes/class-wcj-eu-vat-number.php:497
|
948 |
+
#: includes/class-wcj-eu-vat-number.php:504
|
949 |
+
#: includes/class-wcj-eu-vat-number.php:522
|
950 |
+
#: includes/class-wcj-eu-vat-number.php:537
|
951 |
+
#: includes/class-wcj-eu-vat-number.php:544
|
952 |
+
#: includes/class-wcj-eu-vat-number.php:562
|
953 |
#: includes/class-wcj-price-by-user-role.php:139
|
954 |
#: includes/class-wcj-price-by-user-role.php:182
|
955 |
+
#: includes/class-wcj-product-add-to-cart.php:278
|
956 |
+
#: includes/class-wcj-product-add-to-cart.php:292
|
957 |
+
#: includes/class-wcj-product-add-to-cart.php:302
|
958 |
+
#: includes/class-wcj-product-addons.php:440
|
959 |
+
#: includes/class-wcj-product-addons.php:462
|
960 |
+
#: includes/class-wcj-product-addons.php:510
|
961 |
#: includes/class-wcj-product-bookings.php:414
|
962 |
+
#: includes/class-wcj-product-images.php:212
|
963 |
+
#: includes/class-wcj-product-images.php:222
|
964 |
+
#: includes/class-wcj-product-images.php:232
|
965 |
+
#: includes/class-wcj-product-open-pricing.php:177
|
966 |
+
#: includes/class-wcj-product-price-by-formula.php:225
|
967 |
+
#: includes/class-wcj-related-products.php:136
|
968 |
+
#: includes/class-wcj-wholesale-price.php:264
|
969 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:82
|
970 |
#: includes/widgets/class-wcj-widget-country-switcher.php:91
|
971 |
msgid "Yes"
|
972 |
msgstr ""
|
973 |
|
974 |
+
#: includes/class-wcj-checkout-custom-fields.php:740
|
975 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:87
|
976 |
msgid "If checkbox is selected, set value for OFF here"
|
977 |
msgstr ""
|
978 |
|
979 |
+
#: includes/class-wcj-checkout-custom-fields.php:742
|
980 |
#: includes/class-wcj-price-by-user-role.php:140
|
981 |
#: includes/class-wcj-price-by-user-role.php:183
|
982 |
+
#: includes/class-wcj-product-add-to-cart.php:279
|
983 |
+
#: includes/class-wcj-product-add-to-cart.php:293
|
984 |
+
#: includes/class-wcj-product-add-to-cart.php:303
|
985 |
+
#: includes/class-wcj-product-addons.php:441
|
986 |
+
#: includes/class-wcj-product-addons.php:463
|
987 |
+
#: includes/class-wcj-product-addons.php:511
|
988 |
#: includes/class-wcj-product-bookings.php:415
|
989 |
+
#: includes/class-wcj-product-images.php:213
|
990 |
+
#: includes/class-wcj-product-images.php:223
|
991 |
+
#: includes/class-wcj-product-images.php:233
|
992 |
+
#: includes/class-wcj-product-open-pricing.php:178
|
993 |
+
#: includes/class-wcj-product-price-by-formula.php:226
|
994 |
+
#: includes/class-wcj-related-products.php:135
|
995 |
+
#: includes/class-wcj-wholesale-price.php:265
|
996 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:90
|
997 |
#: includes/widgets/class-wcj-widget-country-switcher.php:90
|
998 |
msgid "No"
|
999 |
msgstr ""
|
1000 |
|
1001 |
+
#: includes/class-wcj-checkout-custom-fields.php:748
|
1002 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:95
|
1003 |
msgid "If checkbox is selected, set default value here"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
+
#: includes/class-wcj-checkout-custom-fields.php:752
|
1007 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:100
|
1008 |
msgid "Not Checked"
|
1009 |
msgstr ""
|
1010 |
|
1011 |
+
#: includes/class-wcj-checkout-custom-fields.php:753
|
1012 |
+
#: includes/class-wcj-checkout-customization.php:81
|
1013 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:101
|
1014 |
msgid "Checked"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
+
#: includes/class-wcj-checkout-custom-fields.php:759
|
|
|
1018 |
msgid ""
|
1019 |
"If datepicker/weekpicker is selected, set date format here. Visit <a href="
|
1020 |
"\"https://codex.wordpress.org/Formatting_Date_and_Time\" target=\"_blank"
|
1021 |
"\">documentation on date and time formatting</a> for valid date formats."
|
1022 |
msgstr ""
|
1023 |
|
1024 |
+
#: includes/class-wcj-checkout-custom-fields.php:760
|
1025 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:125
|
1026 |
msgid "Leave blank to use your current WordPress format"
|
1027 |
msgstr ""
|
1028 |
|
1029 |
+
#: includes/class-wcj-checkout-custom-fields.php:767
|
1030 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:133
|
1031 |
msgid "If datepicker/weekpicker is selected, set min date (in days) here"
|
1032 |
msgstr ""
|
1033 |
|
1034 |
+
#: includes/class-wcj-checkout-custom-fields.php:774
|
1035 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:141
|
1036 |
msgid "If datepicker/weekpicker is selected, set max date (in days) here"
|
1037 |
msgstr ""
|
1038 |
|
1039 |
+
#: includes/class-wcj-checkout-custom-fields.php:781
|
1040 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:149
|
1041 |
msgid ""
|
1042 |
"If datepicker/weekpicker is selected, set if you want to add year selector"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
+
#: includes/class-wcj-checkout-custom-fields.php:788
|
1046 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:157
|
1047 |
msgid ""
|
1048 |
"If datepicker/weekpicker is selected, and year selector is enabled, set year "
|
1049 |
"range here"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
+
#: includes/class-wcj-checkout-custom-fields.php:789
|
1053 |
msgid ""
|
1054 |
"The range of years displayed in the year drop-down: either relative to "
|
1055 |
"today's year (\"-nn:+nn\"), relative to the currently selected year (\"c-nn:c"
|
1058 |
"restrict which dates may be selected use the minDate and/or maxDate options."
|
1059 |
msgstr ""
|
1060 |
|
1061 |
+
#: includes/class-wcj-checkout-custom-fields.php:796
|
1062 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:166
|
1063 |
msgid "If datepicker/weekpicker is selected, set first week day here"
|
1064 |
msgstr ""
|
1065 |
|
1066 |
+
#: includes/class-wcj-checkout-custom-fields.php:801
|
1067 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:171
|
1068 |
msgid "Sunday"
|
1069 |
msgstr ""
|
1070 |
|
1071 |
+
#: includes/class-wcj-checkout-custom-fields.php:802
|
1072 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:172
|
1073 |
msgid "Monday"
|
1074 |
msgstr ""
|
1075 |
|
1076 |
+
#: includes/class-wcj-checkout-custom-fields.php:803
|
1077 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:173
|
1078 |
msgid "Tuesday"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
+
#: includes/class-wcj-checkout-custom-fields.php:804
|
1082 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:174
|
1083 |
msgid "Wednesday"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
+
#: includes/class-wcj-checkout-custom-fields.php:805
|
1087 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:175
|
1088 |
msgid "Thursday"
|
1089 |
msgstr ""
|
1090 |
|
1091 |
+
#: includes/class-wcj-checkout-custom-fields.php:806
|
1092 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:176
|
1093 |
msgid "Friday"
|
1094 |
msgstr ""
|
1095 |
|
1096 |
+
#: includes/class-wcj-checkout-custom-fields.php:807
|
1097 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:177
|
1098 |
msgid "Saturday"
|
1099 |
msgstr ""
|
1100 |
|
1101 |
+
#: includes/class-wcj-checkout-custom-fields.php:812
|
|
|
1102 |
msgid ""
|
1103 |
"If timepicker is selected, set time format here. Visit <a href=\"http://"
|
1104 |
"timepicker.co/options/\" target=\"_blank\">timepicker options page</a> for "
|
1105 |
"valid time formats."
|
1106 |
msgstr ""
|
1107 |
|
1108 |
+
#: includes/class-wcj-checkout-custom-fields.php:820
|
1109 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:207
|
1110 |
msgid "If timepicker is selected, set interval (in minutes) here"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
+
#: includes/class-wcj-checkout-custom-fields.php:851
|
1114 |
msgid "section"
|
1115 |
msgstr ""
|
1116 |
|
1117 |
+
#: includes/class-wcj-checkout-custom-fields.php:856
|
1118 |
+
#: includes/class-wcj-checkout-custom-info.php:111
|
1119 |
#: includes/class-wcj-empty-cart-button.php:117
|
1120 |
+
#: includes/class-wcj-left-to-free-shipping.php:214
|
1121 |
msgid "Billing"
|
1122 |
msgstr ""
|
1123 |
|
1124 |
+
#: includes/class-wcj-checkout-custom-fields.php:857
|
1125 |
+
#: includes/class-wcj-checkout-custom-info.php:112
|
1126 |
#: includes/class-wcj-empty-cart-button.php:118
|
1127 |
+
#: includes/class-wcj-left-to-free-shipping.php:215
|
1128 |
+
#: includes/class-wcj-price-by-user-role.php:346
|
1129 |
#: includes/class-wcj-shipping.php:25
|
1130 |
msgid "Shipping"
|
1131 |
msgstr ""
|
1132 |
|
1133 |
+
#: includes/class-wcj-checkout-custom-fields.php:858
|
1134 |
+
#: includes/export/class-wcj-fields-helper.php:122
|
1135 |
+
#: includes/export/class-wcj-fields-helper.php:207
|
1136 |
msgid "Order Notes"
|
1137 |
msgstr ""
|
1138 |
|
1139 |
+
#: includes/class-wcj-checkout-custom-fields.php:859
|
1140 |
msgid "Account"
|
1141 |
msgstr ""
|
1142 |
|
1143 |
+
#: includes/class-wcj-checkout-custom-fields.php:870
|
1144 |
+
#: includes/class-wcj-eu-vat-number.php:515
|
1145 |
msgid "Wide"
|
1146 |
msgstr ""
|
1147 |
|
1148 |
+
#: includes/class-wcj-checkout-custom-fields.php:871
|
1149 |
+
#: includes/class-wcj-eu-vat-number.php:516
|
1150 |
msgid "First"
|
1151 |
msgstr ""
|
1152 |
|
1153 |
+
#: includes/class-wcj-checkout-custom-fields.php:872
|
1154 |
+
#: includes/class-wcj-eu-vat-number.php:517
|
1155 |
msgid "Last"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
+
#: includes/class-wcj-checkout-custom-fields.php:878
|
1159 |
msgid "clear"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
+
#: includes/class-wcj-checkout-custom-fields.php:887
|
1163 |
msgid ""
|
1164 |
"Show this field only if there is a product of selected category in cart."
|
1165 |
msgstr ""
|
1166 |
|
1167 |
+
#: includes/class-wcj-checkout-custom-fields.php:897
|
1168 |
msgid "products"
|
1169 |
msgstr ""
|
1170 |
|
1171 |
+
#: includes/class-wcj-checkout-custom-fields.php:898
|
1172 |
msgid "Show this field only if there is a selected product in cart."
|
1173 |
msgstr ""
|
1174 |
|
1184 |
msgid "Checkout Custom Info Blocks"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
+
#: includes/class-wcj-checkout-custom-info.php:109
|
1188 |
#: includes/class-wcj-checkout-files-upload.php:645
|
1189 |
#: includes/class-wcj-empty-cart-button.php:115
|
1190 |
+
#: includes/class-wcj-left-to-free-shipping.php:212
|
1191 |
msgid "Before checkout form"
|
1192 |
msgstr ""
|
1193 |
|
1194 |
+
#: includes/class-wcj-checkout-custom-info.php:110
|
1195 |
#: includes/class-wcj-empty-cart-button.php:116
|
1196 |
+
#: includes/class-wcj-left-to-free-shipping.php:213
|
1197 |
msgid "Before customer details"
|
1198 |
msgstr ""
|
1199 |
|
1200 |
+
#: includes/class-wcj-checkout-custom-info.php:113
|
1201 |
#: includes/class-wcj-empty-cart-button.php:119
|
1202 |
+
#: includes/class-wcj-left-to-free-shipping.php:216
|
1203 |
msgid "After customer details"
|
1204 |
msgstr ""
|
1205 |
|
1206 |
+
#: includes/class-wcj-checkout-custom-info.php:114
|
1207 |
#: includes/class-wcj-empty-cart-button.php:120
|
1208 |
+
#: includes/class-wcj-left-to-free-shipping.php:217
|
1209 |
msgid "Before order review"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
+
#: includes/class-wcj-checkout-custom-info.php:115
|
1213 |
#: includes/class-wcj-empty-cart-button.php:121
|
1214 |
+
#: includes/class-wcj-left-to-free-shipping.php:218
|
1215 |
msgid "Order review"
|
1216 |
msgstr ""
|
1217 |
|
1218 |
+
#: includes/class-wcj-checkout-custom-info.php:116
|
1219 |
#: includes/class-wcj-empty-cart-button.php:122
|
1220 |
+
#: includes/class-wcj-left-to-free-shipping.php:219
|
1221 |
msgid "After order review"
|
1222 |
msgstr ""
|
1223 |
|
1224 |
+
#: includes/class-wcj-checkout-custom-info.php:117
|
1225 |
#: includes/class-wcj-checkout-files-upload.php:646
|
1226 |
#: includes/class-wcj-empty-cart-button.php:123
|
1227 |
+
#: includes/class-wcj-left-to-free-shipping.php:220
|
1228 |
msgid "After checkout form"
|
1229 |
msgstr ""
|
1230 |
|
1231 |
+
#: includes/class-wcj-checkout-custom-info.php:136
|
1232 |
+
msgid "Order Received (Thank You) page"
|
1233 |
+
msgstr ""
|
1234 |
+
|
1235 |
+
#: includes/class-wcj-checkout-customization.php:27
|
1236 |
+
msgid "Checkout Customization"
|
1237 |
+
msgstr ""
|
1238 |
+
|
1239 |
+
#: includes/class-wcj-checkout-customization.php:28
|
1240 |
+
msgid "Customize WooCommerce checkout - hide \"Order Again\" button etc."
|
1241 |
+
msgstr ""
|
1242 |
+
|
1243 |
+
#: includes/class-wcj-checkout-customization.php:74
|
1244 |
+
msgid "\"Create an account?\" Checkbox"
|
1245 |
+
msgstr ""
|
1246 |
+
|
1247 |
+
#: includes/class-wcj-checkout-customization.php:75
|
1248 |
+
msgid "\"Create an account?\" checkbox default value"
|
1249 |
+
msgstr ""
|
1250 |
+
|
1251 |
+
#: includes/class-wcj-checkout-customization.php:80
|
1252 |
+
msgid "WooCommerce default"
|
1253 |
+
msgstr ""
|
1254 |
+
|
1255 |
+
#: includes/class-wcj-checkout-customization.php:82
|
1256 |
+
msgid "Not checked"
|
1257 |
+
msgstr ""
|
1258 |
+
|
1259 |
+
#: includes/class-wcj-checkout-customization.php:86
|
1260 |
+
msgid "Hide \"Order Again\" Button on \"View Order\" Page"
|
1261 |
+
msgstr ""
|
1262 |
+
|
1263 |
#: includes/class-wcj-checkout-files-upload.php:28
|
1264 |
msgid "Checkout Files Upload"
|
1265 |
msgstr ""
|
1282 |
#: includes/class-wcj-checkout-files-upload.php:120
|
1283 |
#: includes/class-wcj-checkout-files-upload.php:257
|
1284 |
#: includes/class-wcj-checkout-files-upload.php:705
|
1285 |
+
#, php-format
|
1286 |
msgid "Wrong file type: \"%s\"!"
|
1287 |
msgstr ""
|
1288 |
|
1289 |
+
#: includes/class-wcj-checkout-files-upload.php:140
|
1290 |
+
#: includes/class-wcj-eu-vat-number.php:88
|
1291 |
+
#: includes/class-wcj-payment-gateways.php:55
|
1292 |
+
#: includes/admin/class-wc-settings-jetpack.php:26
|
1293 |
+
#: includes/admin/class-wc-settings-jetpack.php:371
|
1294 |
+
#: includes/classes/class-wcj-module.php:184
|
1295 |
+
#: includes/classes/class-wcj-module.php:378
|
1296 |
+
msgid "Booster"
|
1297 |
+
msgstr ""
|
1298 |
+
|
1299 |
#: includes/class-wcj-checkout-files-upload.php:140
|
1300 |
msgid "Uploaded Files"
|
1301 |
msgstr ""
|
1307 |
#: includes/class-wcj-checkout-files-upload.php:229
|
1308 |
#: includes/class-wcj-checkout-files-upload.php:237
|
1309 |
#: includes/class-wcj-checkout-files-upload.php:735
|
1310 |
+
#, php-format
|
1311 |
msgid "File \"%s\" was successfully removed."
|
1312 |
msgstr ""
|
1313 |
|
1314 |
#: includes/class-wcj-checkout-files-upload.php:269
|
1315 |
#: includes/class-wcj-checkout-files-upload.php:720
|
1316 |
+
#, php-format
|
1317 |
msgid "File \"%s\" was successfully uploaded."
|
1318 |
msgstr ""
|
1319 |
|
1331 |
#: includes/class-wcj-checkout-files-upload.php:500
|
1332 |
#: includes/class-wcj-checkout-files-upload.php:501
|
1333 |
#: includes/class-wcj-checkout-files-upload.php:697
|
1334 |
+
#: includes/class-wcj-sorting.php:406
|
1335 |
msgid "Remove"
|
1336 |
msgstr ""
|
1337 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1338 |
#: includes/class-wcj-checkout-files-upload.php:611
|
1339 |
+
#: includes/class-wcj-products-xml.php:302
|
1340 |
msgid "Total Files"
|
1341 |
msgstr ""
|
1342 |
|
1358 |
|
1359 |
#: includes/class-wcj-checkout-files-upload.php:672
|
1360 |
#: includes/class-wcj-checkout-files-upload.php:846
|
1361 |
+
#: includes/class-wcj-order-custom-statuses.php:294
|
1362 |
+
#: includes/class-wcj-order-custom-statuses.php:349
|
1363 |
+
#: includes/class-wcj-orders.php:444
|
1364 |
msgid "Label"
|
1365 |
msgstr ""
|
1366 |
|
1397 |
#: includes/class-wcj-checkout-files-upload.php:703
|
1398 |
#: includes/class-wcj-checkout-files-upload.php:718
|
1399 |
#: includes/class-wcj-checkout-files-upload.php:733
|
1400 |
+
#, php-format
|
1401 |
msgid "%s will be replaced with file name"
|
1402 |
msgstr ""
|
1403 |
|
1504 |
msgstr ""
|
1505 |
|
1506 |
#: includes/class-wcj-checkout-files-upload.php:839
|
1507 |
+
#: includes/class-wcj-product-addons.php:656
|
1508 |
+
#: includes/class-wcj-product-addons.php:679
|
1509 |
msgid "Before"
|
1510 |
msgstr ""
|
1511 |
|
1514 |
msgstr ""
|
1515 |
|
1516 |
#: includes/class-wcj-checkout-files-upload.php:854
|
1517 |
+
#: includes/class-wcj-export-import.php:357
|
1518 |
+
#: includes/class-wcj-export-import.php:425
|
1519 |
+
#: includes/class-wcj-export-import.php:506
|
1520 |
msgid "Field"
|
1521 |
msgstr ""
|
1522 |
|
1525 |
msgstr ""
|
1526 |
|
1527 |
#: includes/class-wcj-checkout-files-upload.php:862
|
1528 |
+
#: includes/class-wcj-product-addons.php:671
|
1529 |
+
#: includes/class-wcj-product-addons.php:694
|
1530 |
msgid "After"
|
1531 |
msgstr ""
|
1532 |
|
1538 |
msgid "Add crowdfunding products to WooCommerce."
|
1539 |
msgstr ""
|
1540 |
|
1541 |
+
#: includes/class-wcj-crowdfunding.php:72
|
1542 |
msgid "Goal"
|
1543 |
msgstr ""
|
1544 |
|
1545 |
+
#: includes/class-wcj-crowdfunding.php:78
|
1546 |
#: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:71
|
1547 |
msgid "Start Date"
|
1548 |
msgstr ""
|
1549 |
|
1550 |
+
#: includes/class-wcj-crowdfunding.php:84
|
1551 |
msgid "Deadline"
|
1552 |
msgstr ""
|
1553 |
|
1554 |
+
#: includes/class-wcj-crowdfunding.php:95
|
1555 |
msgid "When enabled, module will add Crowdfunding metabox to product edit."
|
1556 |
msgstr ""
|
1557 |
|
1558 |
+
#: includes/class-wcj-crowdfunding.php:97
|
1559 |
+
#, php-format
|
1560 |
+
msgid ""
|
1561 |
+
"To add crowdfunding info to the product, use <a href=\"%s\" target=\"_blank"
|
1562 |
+
"\">Booster's crowdfunding shortcodes</a>."
|
1563 |
msgstr ""
|
1564 |
|
1565 |
+
#: includes/class-wcj-crowdfunding.php:101
|
1566 |
+
#, php-format
|
1567 |
+
msgid ""
|
1568 |
+
"Shortcodes could be used for example in <a href=\"%s\">Product Info module</"
|
1569 |
+
"a>."
|
1570 |
msgstr ""
|
1571 |
|
1572 |
+
#: includes/class-wcj-crowdfunding.php:105
|
1573 |
+
#, php-format
|
1574 |
+
msgid ""
|
1575 |
+
"To change add to cart button labels use <a href=\"%s\">Add to Cart Labels "
|
1576 |
+
"module</a>."
|
1577 |
msgstr ""
|
1578 |
|
1579 |
#: includes/class-wcj-currencies.php:25
|
1601 |
msgid "Hide Currency Symbol"
|
1602 |
msgstr ""
|
1603 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1604 |
#: includes/class-wcj-currencies.php:107
|
1605 |
msgid "Default: no."
|
1606 |
msgstr ""
|
1637 |
msgid "Automatic currency exchange rates for WooCommerce."
|
1638 |
msgstr ""
|
1639 |
|
1640 |
+
#: includes/class-wcj-currency-exchange-rates.php:112
|
1641 |
+
#, php-format
|
1642 |
+
msgid "%s till next update."
|
|
|
|
|
|
|
|
|
1643 |
msgstr ""
|
1644 |
|
1645 |
+
#: includes/class-wcj-currency-exchange-rates.php:114
|
1646 |
+
#: includes/class-wcj-products-xml.php:331
|
1647 |
+
#, php-format
|
1648 |
msgid "%s seconds till next update."
|
1649 |
msgstr ""
|
1650 |
|
1651 |
+
#: includes/class-wcj-currency-exchange-rates.php:120
|
1652 |
+
#: includes/class-wcj-price-by-country.php:378
|
1653 |
msgid "Exchange Rates"
|
1654 |
msgstr ""
|
1655 |
|
1656 |
+
#: includes/class-wcj-currency-exchange-rates.php:122
|
1657 |
msgid ""
|
1658 |
+
"All currencies from all <strong>enabled</strong> modules (with \"Exchange "
|
1659 |
+
"Rates Updates\" set to \"Automatically via Currency Exchange Rates module\") "
|
1660 |
+
"will be automatically added to the list."
|
1661 |
msgstr ""
|
1662 |
|
1663 |
+
#: includes/class-wcj-currency-exchange-rates.php:126
|
1664 |
+
#: includes/class-wcj-currency-per-product.php:463
|
1665 |
+
#: includes/class-wcj-multicurrency-product-base-price.php:207
|
1666 |
+
#: includes/class-wcj-multicurrency.php:378
|
1667 |
+
#: includes/class-wcj-payment-gateways-currency.php:266
|
1668 |
+
#: includes/class-wcj-price-by-country.php:381
|
1669 |
msgid "Exchange Rates Updates"
|
1670 |
msgstr ""
|
1671 |
|
1672 |
+
#: includes/class-wcj-currency-exchange-rates.php:132
|
1673 |
+
#: includes/class-wcj-products-xml.php:409
|
1674 |
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:24
|
1675 |
msgid "Update Every Minute"
|
1676 |
msgstr ""
|
1677 |
|
1678 |
+
#: includes/class-wcj-currency-exchange-rates.php:133
|
1679 |
+
#: includes/class-wcj-products-xml.php:410
|
1680 |
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:25
|
1681 |
msgid "Update Hourly"
|
1682 |
msgstr ""
|
1683 |
|
1684 |
+
#: includes/class-wcj-currency-exchange-rates.php:134
|
1685 |
+
#: includes/class-wcj-products-xml.php:411
|
1686 |
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:26
|
1687 |
msgid "Update Twice Daily"
|
1688 |
msgstr ""
|
1689 |
|
1690 |
+
#: includes/class-wcj-currency-exchange-rates.php:135
|
1691 |
+
#: includes/class-wcj-products-xml.php:412
|
1692 |
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:27
|
1693 |
msgid "Update Daily"
|
1694 |
msgstr ""
|
1695 |
|
1696 |
+
#: includes/class-wcj-currency-exchange-rates.php:136
|
1697 |
+
#: includes/class-wcj-products-xml.php:413
|
1698 |
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:28
|
1699 |
msgid "Update Weekly"
|
1700 |
msgstr ""
|
1701 |
|
1702 |
+
#: includes/class-wcj-currency-exchange-rates.php:140
|
1703 |
+
msgid "Exchange Rates Server"
|
1704 |
+
msgstr ""
|
1705 |
+
|
1706 |
+
#: includes/class-wcj-currency-exchange-rates.php:147
|
1707 |
+
msgid "Exchange Rates Offset - Percent"
|
1708 |
+
msgstr ""
|
1709 |
+
|
1710 |
+
#: includes/class-wcj-currency-exchange-rates.php:148
|
1711 |
+
#: includes/class-wcj-currency-exchange-rates.php:156
|
1712 |
+
msgid ""
|
1713 |
+
"If both percent and fixed offsets are set - percent offset is applied first "
|
1714 |
+
"and fixed offset after that."
|
1715 |
+
msgstr ""
|
1716 |
+
|
1717 |
+
#: includes/class-wcj-currency-exchange-rates.php:155
|
1718 |
+
msgid "Exchange Rates Offset - Fixed"
|
1719 |
+
msgstr ""
|
1720 |
+
|
1721 |
+
#: includes/class-wcj-currency-exchange-rates.php:163
|
1722 |
+
msgid "Calculate with Inversion"
|
1723 |
+
msgstr ""
|
1724 |
+
|
1725 |
+
#: includes/class-wcj-currency-exchange-rates.php:165
|
1726 |
+
msgid ""
|
1727 |
+
"If your currency pair have very small exchange rate, you may want to invert "
|
1728 |
+
"currencies before calculating the rate."
|
1729 |
+
msgstr ""
|
1730 |
+
|
1731 |
+
#: includes/class-wcj-currency-exchange-rates.php:171
|
1732 |
+
msgid "Always Use cURL"
|
1733 |
+
msgstr ""
|
1734 |
+
|
1735 |
+
#: includes/class-wcj-currency-exchange-rates.php:173
|
1736 |
+
msgid ""
|
1737 |
+
"If for some reason currency exchange rates are not updating, try enabling "
|
1738 |
+
"this option."
|
1739 |
+
msgstr ""
|
1740 |
+
|
1741 |
#: includes/class-wcj-currency-external-products.php:25
|
1742 |
msgid "Currency for External Products"
|
1743 |
msgstr ""
|
1751 |
msgstr ""
|
1752 |
|
1753 |
#: includes/class-wcj-currency-external-products.php:79
|
1754 |
+
#: includes/class-wcj-currency-per-product.php:512
|
1755 |
+
#: includes/class-wcj-multicurrency-product-base-price.php:255
|
1756 |
+
#: includes/class-wcj-multicurrency.php:463
|
1757 |
+
#: includes/class-wcj-price-by-country.php:368
|
1758 |
+
#: includes/class-wcj-price-formats.php:121
|
1759 |
msgid "Currency"
|
1760 |
msgstr ""
|
1761 |
|
1771 |
msgid "Display prices for WooCommerce products in different currencies."
|
1772 |
msgstr ""
|
1773 |
|
1774 |
+
#: includes/class-wcj-currency-per-product.php:125
|
1775 |
+
#: includes/class-wcj-currency-per-product.php:442
|
1776 |
+
msgid ""
|
1777 |
+
"Only one product can be added to the cart. Clear the cart or finish the "
|
1778 |
+
"order, before adding another product to the cart."
|
1779 |
+
msgstr ""
|
1780 |
+
|
1781 |
+
#: includes/class-wcj-currency-per-product.php:140
|
1782 |
+
#: includes/class-wcj-currency-per-product.php:449
|
1783 |
+
msgid ""
|
1784 |
+
"Only products with same currency can be added to the cart. Clear the cart or "
|
1785 |
+
"finish the order, before adding products with another currency to the cart."
|
1786 |
+
msgstr ""
|
1787 |
+
|
1788 |
+
#: includes/class-wcj-currency-per-product.php:186
|
1789 |
+
#, php-format
|
1790 |
msgctxt "Price range: from-to"
|
1791 |
msgid "%1$s–%2$s"
|
1792 |
msgstr ""
|
1793 |
|
1794 |
+
#: includes/class-wcj-currency-per-product.php:398
|
1795 |
+
#: includes/class-wcj-multicurrency-product-base-price.php:164
|
1796 |
msgid "Product Currency"
|
1797 |
msgstr ""
|
1798 |
|
1799 |
+
#: includes/class-wcj-currency-per-product.php:400
|
1800 |
msgid "Update product after you change this field's value."
|
1801 |
msgstr ""
|
1802 |
|
1803 |
+
#: includes/class-wcj-currency-per-product.php:422
|
1804 |
+
msgid "Cart and Checkout Behaviour Options"
|
1805 |
+
msgstr ""
|
1806 |
+
|
1807 |
+
#: includes/class-wcj-currency-per-product.php:427
|
1808 |
+
msgid "Cart and Checkout Behaviour"
|
1809 |
+
msgstr ""
|
1810 |
+
|
1811 |
+
#: includes/class-wcj-currency-per-product.php:432
|
1812 |
+
msgid "Convert to shop default currency"
|
1813 |
+
msgstr ""
|
1814 |
+
|
1815 |
+
#: includes/class-wcj-currency-per-product.php:433
|
1816 |
+
#: includes/class-wcj-currency-per-product.php:440
|
1817 |
+
msgid "Leave product currency (allow only one product to be added to cart)"
|
1818 |
+
msgstr ""
|
1819 |
+
|
1820 |
+
#: includes/class-wcj-currency-per-product.php:434
|
1821 |
+
#: includes/class-wcj-currency-per-product.php:447
|
1822 |
+
msgid ""
|
1823 |
+
"Leave product currency (allow only same currency products to be added to "
|
1824 |
+
"cart)"
|
1825 |
+
msgstr ""
|
1826 |
+
|
1827 |
+
#: includes/class-wcj-currency-per-product.php:435
|
1828 |
+
msgid "Convert to currency of last product in cart"
|
1829 |
+
msgstr ""
|
1830 |
+
|
1831 |
+
#: includes/class-wcj-currency-per-product.php:436
|
1832 |
+
msgid "Convert to currency of first product in cart"
|
1833 |
+
msgstr ""
|
1834 |
+
|
1835 |
+
#: includes/class-wcj-currency-per-product.php:440
|
1836 |
+
#: includes/class-wcj-currency-per-product.php:447
|
1837 |
+
msgid "Message"
|
1838 |
+
msgstr ""
|
1839 |
+
|
1840 |
+
#: includes/class-wcj-currency-per-product.php:458
|
1841 |
+
msgid "Exchange Rates Updates Options"
|
1842 |
+
msgstr ""
|
1843 |
+
|
1844 |
+
#: includes/class-wcj-currency-per-product.php:468
|
1845 |
+
#: includes/class-wcj-multicurrency-product-base-price.php:212
|
1846 |
+
#: includes/class-wcj-multicurrency.php:383
|
1847 |
+
#: includes/class-wcj-payment-gateways-currency.php:271
|
1848 |
+
#: includes/class-wcj-price-by-country.php:386
|
1849 |
msgid "Enter Rates Manually"
|
1850 |
msgstr ""
|
1851 |
|
1852 |
+
#: includes/class-wcj-currency-per-product.php:469
|
1853 |
+
#: includes/class-wcj-multicurrency-product-base-price.php:213
|
1854 |
+
#: includes/class-wcj-multicurrency.php:384
|
1855 |
+
#: includes/class-wcj-payment-gateways-currency.php:272
|
1856 |
+
#: includes/class-wcj-price-by-country.php:387
|
1857 |
msgid "Automatically via Currency Exchange Rates module"
|
1858 |
msgstr ""
|
1859 |
|
1860 |
+
#: includes/class-wcj-currency-per-product.php:472
|
1861 |
+
#: includes/class-wcj-multicurrency-product-base-price.php:216
|
1862 |
+
#: includes/class-wcj-multicurrency.php:387
|
1863 |
+
#: includes/class-wcj-payment-gateways-currency.php:275
|
1864 |
+
#: includes/class-wcj-price-by-country.php:390
|
1865 |
msgid "Visit"
|
1866 |
msgstr ""
|
1867 |
|
1868 |
+
#: includes/class-wcj-currency-per-product.php:472
|
1869 |
+
#: includes/class-wcj-multicurrency-product-base-price.php:216
|
1870 |
+
#: includes/class-wcj-multicurrency.php:387
|
1871 |
+
#: includes/class-wcj-payment-gateways-currency.php:275
|
1872 |
+
#: includes/class-wcj-price-by-country.php:390
|
1873 |
msgid "Currency Exchange Rates module"
|
1874 |
msgstr ""
|
1875 |
|
1876 |
+
#: includes/class-wcj-currency-per-product.php:482
|
1877 |
+
#: includes/class-wcj-multicurrency-product-base-price.php:226
|
1878 |
+
#: includes/class-wcj-multicurrency.php:433
|
1879 |
msgid "Currencies Options"
|
1880 |
msgstr ""
|
1881 |
|
1882 |
+
#: includes/class-wcj-currency-per-product.php:483
|
1883 |
+
msgid ""
|
1884 |
+
"Exchange rates for currencies won't be used if \"Cart and Checkout Behaviour"
|
1885 |
+
"\" is set to one of \"Leave product currency ...\" options."
|
1886 |
+
msgstr ""
|
1887 |
+
|
1888 |
+
#: includes/class-wcj-currency-per-product.php:488
|
1889 |
+
#: includes/class-wcj-multicurrency-product-base-price.php:231
|
1890 |
+
#: includes/class-wcj-multicurrency.php:439
|
1891 |
msgid "Total Currencies"
|
1892 |
msgstr ""
|
1893 |
|
1894 |
+
#: includes/class-wcj-custom-css.php:30
|
1895 |
+
msgid "Custom CSS"
|
1896 |
+
msgstr ""
|
1897 |
+
|
1898 |
+
#: includes/class-wcj-custom-css.php:31
|
1899 |
+
msgid "Another custom CSS, if you need one."
|
1900 |
+
msgstr ""
|
1901 |
+
|
1902 |
+
#: includes/class-wcj-custom-css.php:79
|
1903 |
+
msgid "Custom CSS - Front end (Customers)"
|
1904 |
+
msgstr ""
|
1905 |
+
|
1906 |
+
#: includes/class-wcj-custom-css.php:86
|
1907 |
+
msgid "Custom CSS - Back end (Admin)"
|
1908 |
+
msgstr ""
|
1909 |
+
|
1910 |
#: includes/class-wcj-emails.php:25
|
1911 |
msgid "Emails"
|
1912 |
msgstr ""
|
1916 |
"Add custom emails. Add another email recipient(s) to all WooCommerce emails."
|
1917 |
msgstr ""
|
1918 |
|
1919 |
+
#: includes/class-wcj-emails.php:158
|
1920 |
msgid "Booster: Email Forwarding Options"
|
1921 |
msgstr ""
|
1922 |
|
1923 |
+
#: includes/class-wcj-emails.php:159
|
1924 |
msgid "Email Forwarding Options"
|
1925 |
msgstr ""
|
1926 |
|
1927 |
+
#: includes/class-wcj-emails.php:161
|
1928 |
msgid ""
|
1929 |
"This section lets you add another email recipient(s) to all WooCommerce "
|
1930 |
"emails. Leave blank to disable."
|
1931 |
msgstr ""
|
1932 |
|
1933 |
+
#: includes/class-wcj-emails.php:165
|
1934 |
msgid "Cc Email"
|
1935 |
msgstr ""
|
1936 |
|
1937 |
+
#: includes/class-wcj-emails.php:166
|
1938 |
msgid "Cc to email, e.g. youremail@yourdomain.com. Leave blank to disable."
|
1939 |
msgstr ""
|
1940 |
|
1941 |
+
#: includes/class-wcj-emails.php:172
|
1942 |
msgid "Bcc Email"
|
1943 |
msgstr ""
|
1944 |
|
1945 |
+
#: includes/class-wcj-emails.php:173
|
1946 |
msgid "Bcc to email, e.g. youremail@yourdomain.com. Leave blank to disable."
|
1947 |
msgstr ""
|
1948 |
|
1949 |
+
#: includes/class-wcj-emails.php:209
|
1950 |
msgid "Custom Emails"
|
1951 |
msgstr ""
|
1952 |
|
1953 |
+
#: includes/class-wcj-emails.php:212
|
1954 |
msgid ""
|
1955 |
"This section lets you set number of custom emails to add. After setting the "
|
1956 |
"number, visit \"WooCommerce > Settings > Emails\" to set each email options."
|
1957 |
msgstr ""
|
1958 |
|
1959 |
+
#: includes/class-wcj-emails.php:215
|
1960 |
msgid "Custom Emails Number"
|
1961 |
msgstr ""
|
1962 |
|
1963 |
+
#: includes/class-wcj-emails.php:226
|
1964 |
msgid "Admin Title Custom Email"
|
1965 |
msgstr ""
|
1966 |
|
1967 |
+
#: includes/class-wcj-emails.php:228 includes/class-wcj-shipping.php:247
|
1968 |
#: includes/emails/class-wc-email-wcj-custom.php:30
|
1969 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:135
|
1970 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:44
|
1971 |
msgid "Custom"
|
1972 |
msgstr ""
|
1973 |
|
1974 |
+
#: includes/class-wcj-emails.php:238
|
1975 |
+
msgid "Product Info in Item Name"
|
1976 |
msgstr ""
|
1977 |
|
1978 |
+
#: includes/class-wcj-emails.php:243
|
1979 |
+
msgid "Add Product Info to Item Name"
|
1980 |
msgstr ""
|
1981 |
|
1982 |
+
#: includes/class-wcj-emails.php:250
|
1983 |
+
msgid "Info"
|
1984 |
+
msgstr ""
|
1985 |
+
|
1986 |
+
#: includes/class-wcj-emails.php:251
|
1987 |
+
#, php-format
|
1988 |
+
msgid ""
|
1989 |
+
"You can use <a target=\"_blank\" href=\"%s\">Booster's products shortcodes</"
|
1990 |
+
"a> here."
|
1991 |
+
msgstr ""
|
1992 |
+
|
1993 |
+
#: includes/class-wcj-empty-cart-button.php:26
|
1994 |
+
msgid "Empty Cart Button"
|
1995 |
msgstr ""
|
1996 |
|
1997 |
+
#: includes/class-wcj-empty-cart-button.php:27
|
1998 |
msgid ""
|
1999 |
+
"Add (and customize) \"Empty Cart\" button to WooCommerce cart and checkout "
|
2000 |
+
"pages."
|
2001 |
msgstr ""
|
2002 |
|
2003 |
#: includes/class-wcj-empty-cart-button.php:80
|
2037 |
msgstr ""
|
2038 |
|
2039 |
#: includes/class-wcj-empty-cart-button.php:114
|
2040 |
+
#: includes/class-wcj-orders.php:476
|
2041 |
msgid "Do not add"
|
2042 |
msgstr ""
|
2043 |
|
2058 |
msgstr ""
|
2059 |
|
2060 |
#: includes/class-wcj-empty-cart-button.php:141
|
2061 |
+
#: includes/class-wcj-order-custom-statuses.php:319
|
2062 |
#: includes/class-wcj-product-by-user.php:165
|
2063 |
+
#: includes/classes/class-wcj-module.php:487
|
2064 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:285
|
2065 |
msgid "Are you sure?"
|
2066 |
msgstr ""
|
2067 |
|
2068 |
+
#: includes/class-wcj-eu-vat-number.php:26
|
2069 |
+
#: includes/class-wcj-eu-vat-number.php:229
|
2070 |
+
#: includes/class-wcj-eu-vat-number.php:471
|
2071 |
+
#: includes/class-wcj-eu-vat-number.php:478
|
2072 |
msgid "EU VAT Number"
|
2073 |
msgstr ""
|
2074 |
|
2075 |
+
#: includes/class-wcj-eu-vat-number.php:27
|
2076 |
msgid ""
|
2077 |
"Collect and validate EU VAT numbers on WooCommerce checkout. Automatically "
|
2078 |
"disable VAT for valid numbers. Add all EU countries VAT standard rates to "
|
2079 |
"WooCommerce."
|
2080 |
msgstr ""
|
2081 |
|
2082 |
+
#: includes/class-wcj-eu-vat-number.php:33
|
2083 |
msgid "EU Countries VAT Rates"
|
2084 |
msgstr ""
|
2085 |
|
2086 |
+
#: includes/class-wcj-eu-vat-number.php:34
|
2087 |
msgid "Add all EU countries VAT standard rates to WooCommerce."
|
2088 |
msgstr ""
|
2089 |
|
2090 |
+
#: includes/class-wcj-eu-vat-number.php:140
|
2091 |
+
msgid "Customer IP"
|
2092 |
+
msgstr ""
|
2093 |
+
|
2094 |
+
#: includes/class-wcj-eu-vat-number.php:144
|
2095 |
+
msgid "Country by IP"
|
2096 |
+
msgstr ""
|
2097 |
+
|
2098 |
+
#: includes/class-wcj-eu-vat-number.php:148
|
2099 |
+
msgid "Customer EU VAT Number"
|
2100 |
+
msgstr ""
|
2101 |
+
|
2102 |
+
#: includes/class-wcj-eu-vat-number.php:152
|
2103 |
+
msgid "Taxes"
|
2104 |
+
msgstr ""
|
2105 |
+
|
2106 |
+
#: includes/class-wcj-eu-vat-number.php:299
|
2107 |
+
#: includes/class-wcj-eu-vat-number.php:598
|
2108 |
+
msgid "Validating VAT. Please wait..."
|
2109 |
+
msgstr ""
|
2110 |
+
|
2111 |
+
#: includes/class-wcj-eu-vat-number.php:300
|
2112 |
+
#: includes/class-wcj-eu-vat-number.php:605
|
2113 |
+
msgid "VAT is valid."
|
2114 |
+
msgstr ""
|
2115 |
+
|
2116 |
#: includes/class-wcj-eu-vat-number.php:301
|
2117 |
+
#: includes/class-wcj-eu-vat-number.php:612
|
2118 |
+
msgid "VAT is not valid."
|
2119 |
+
msgstr ""
|
2120 |
+
|
2121 |
+
#: includes/class-wcj-eu-vat-number.php:302
|
2122 |
+
#: includes/class-wcj-eu-vat-number.php:620
|
2123 |
+
msgid "Validation failed. Please try again."
|
2124 |
+
msgstr ""
|
2125 |
+
|
2126 |
+
#: includes/class-wcj-eu-vat-number.php:406
|
2127 |
+
#: includes/class-wcj-eu-vat-number.php:531
|
2128 |
msgid "<strong>EU VAT Number</strong> is not valid."
|
2129 |
msgstr ""
|
2130 |
|
2131 |
+
#: includes/class-wcj-eu-vat-number.php:469
|
2132 |
msgid "Field Label"
|
2133 |
msgstr ""
|
2134 |
|
2135 |
+
#: includes/class-wcj-eu-vat-number.php:476
|
2136 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:237
|
2137 |
msgid "Placeholder"
|
2138 |
msgstr ""
|
2139 |
|
2140 |
+
#: includes/class-wcj-eu-vat-number.php:483
|
2141 |
+
#: includes/class-wcj-product-by-user.php:202
|
2142 |
+
#: includes/admin/class-wc-settings-jetpack.php:496
|
2143 |
+
#: includes/admin/class-wc-settings-jetpack.php:503
|
2144 |
+
#: includes/admin/class-wcj-tools.php:75
|
2145 |
+
#: includes/export/class-wcj-fields-helper.php:295
|
2146 |
+
#: includes/gateways/class-wc-gateway-wcj-custom.php:76
|
2147 |
+
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:151
|
2148 |
+
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:266
|
2149 |
+
msgid "Description"
|
2150 |
+
msgstr ""
|
2151 |
+
|
2152 |
+
#: includes/class-wcj-eu-vat-number.php:503
|
2153 |
+
#: includes/class-wcj-order-custom-statuses.php:355
|
2154 |
msgid "Clear"
|
2155 |
msgstr ""
|
2156 |
|
2157 |
+
#: includes/class-wcj-eu-vat-number.php:510
|
2158 |
msgid "Class"
|
2159 |
msgstr ""
|
2160 |
|
2161 |
+
#: includes/class-wcj-eu-vat-number.php:521
|
2162 |
msgid "Validate"
|
2163 |
msgstr ""
|
2164 |
|
2165 |
+
#: includes/class-wcj-eu-vat-number.php:529
|
2166 |
msgid "Message on not valid"
|
2167 |
msgstr ""
|
2168 |
|
2169 |
+
#: includes/class-wcj-eu-vat-number.php:536
|
2170 |
msgid "Exempt VAT for Valid Numbers"
|
2171 |
msgstr ""
|
2172 |
|
2173 |
+
#: includes/class-wcj-eu-vat-number.php:543
|
2174 |
msgid "Preserve VAT in Base Country"
|
2175 |
msgstr ""
|
2176 |
|
2177 |
+
#: includes/class-wcj-eu-vat-number.php:561
|
2178 |
msgid "Check for IP Location Country"
|
2179 |
msgstr ""
|
2180 |
|
2181 |
+
#: includes/class-wcj-eu-vat-number.php:579
|
2182 |
msgid "Display"
|
2183 |
msgstr ""
|
2184 |
|
2185 |
+
#: includes/class-wcj-eu-vat-number.php:584
|
2186 |
msgid "After order table"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
+
#: includes/class-wcj-eu-vat-number.php:585
|
2190 |
msgid "In billing address"
|
2191 |
msgstr ""
|
2192 |
|
2193 |
+
#: includes/class-wcj-eu-vat-number.php:589
|
2194 |
+
msgid "Add Progress Messages"
|
2195 |
+
msgstr ""
|
2196 |
+
|
2197 |
+
#: includes/class-wcj-eu-vat-number.php:596
|
2198 |
+
msgid "Progress Message: Validating"
|
2199 |
+
msgstr ""
|
2200 |
+
|
2201 |
+
#: includes/class-wcj-eu-vat-number.php:603
|
2202 |
+
msgid "Progress Message: Valid"
|
2203 |
+
msgstr ""
|
2204 |
+
|
2205 |
+
#: includes/class-wcj-eu-vat-number.php:610
|
2206 |
+
msgid "Progress Message: Not Valid"
|
2207 |
+
msgstr ""
|
2208 |
+
|
2209 |
+
#: includes/class-wcj-eu-vat-number.php:617
|
2210 |
+
msgid "Progress Message: Validation Failed"
|
2211 |
+
msgstr ""
|
2212 |
+
|
2213 |
+
#: includes/class-wcj-eu-vat-number.php:618
|
2214 |
+
msgid "Message on VAT validation server timeout etc."
|
2215 |
+
msgstr ""
|
2216 |
+
|
2217 |
+
#: includes/class-wcj-eu-vat-number.php:625
|
2218 |
+
msgid "Add EU VAT Number Summary Metabox to Order Edit Page"
|
2219 |
+
msgstr ""
|
2220 |
+
|
2221 |
+
#: includes/class-wcj-export-import.php:28
|
2222 |
+
#: includes/admin/class-wc-settings-jetpack.php:447
|
2223 |
+
msgid "Export"
|
2224 |
+
msgstr ""
|
2225 |
+
|
2226 |
#: includes/class-wcj-export-import.php:29
|
2227 |
msgid "WooCommerce export tools."
|
2228 |
msgstr ""
|
2271 |
msgid "Export Products."
|
2272 |
msgstr ""
|
2273 |
|
2274 |
+
#: includes/class-wcj-export-import.php:195
|
2275 |
+
#: includes/class-wcj-export-import.php:201
|
2276 |
msgid "Filter by Billing Country"
|
2277 |
msgstr ""
|
2278 |
|
2279 |
+
#: includes/class-wcj-export-import.php:196
|
2280 |
msgid "Filter by Product Title"
|
2281 |
msgstr ""
|
2282 |
|
2283 |
+
#: includes/class-wcj-export-import.php:215 includes/class-wcj-orders.php:382
|
2284 |
msgid "Filter"
|
2285 |
msgstr ""
|
2286 |
|
2287 |
+
#: includes/class-wcj-export-import.php:234
|
2288 |
msgid "Download CSV"
|
2289 |
msgstr ""
|
2290 |
|
2291 |
+
#: includes/class-wcj-export-import.php:236
|
2292 |
msgid "Download XML"
|
2293 |
msgstr ""
|
2294 |
|
2295 |
+
#: includes/class-wcj-export-import.php:237
|
2296 |
msgid "Filter by All Fields"
|
2297 |
msgstr ""
|
2298 |
|
2299 |
+
#: includes/class-wcj-export-import.php:304
|
2300 |
msgid "Export Options"
|
2301 |
msgstr ""
|
2302 |
|
2303 |
+
#: includes/class-wcj-export-import.php:309
|
2304 |
msgid "CSV Separator"
|
2305 |
msgstr ""
|
2306 |
|
2307 |
+
#: includes/class-wcj-export-import.php:315
|
2308 |
msgid "UTF-8 BOM"
|
2309 |
msgstr ""
|
2310 |
|
2311 |
+
#: includes/class-wcj-export-import.php:317
|
2312 |
msgid "Add UTF-8 BOM sequence"
|
2313 |
msgstr ""
|
2314 |
|
2315 |
+
#: includes/class-wcj-export-import.php:327
|
2316 |
msgid "Export Orders Options"
|
2317 |
msgstr ""
|
2318 |
|
2319 |
+
#: includes/class-wcj-export-import.php:332
|
2320 |
msgid "Export Orders Fields"
|
2321 |
msgstr ""
|
2322 |
|
2323 |
+
#: includes/class-wcj-export-import.php:333
|
2324 |
+
#: includes/class-wcj-export-import.php:401
|
2325 |
+
#: includes/class-wcj-export-import.php:471
|
2326 |
+
#: includes/class-wcj-export-import.php:550
|
2327 |
+
#: includes/class-wcj-export-import.php:568
|
2328 |
msgid "Hold \"Control\" key to select multiple fields."
|
2329 |
msgstr ""
|
2330 |
|
2331 |
+
#: includes/class-wcj-export-import.php:341
|
2332 |
msgid "Additional Export Orders Fields"
|
2333 |
msgstr ""
|
2334 |
|
2335 |
+
#: includes/class-wcj-export-import.php:364
|
2336 |
+
#: includes/class-wcj-export-import.php:432
|
2337 |
+
#: includes/class-wcj-export-import.php:513
|
2338 |
#: includes/class-wcj-product-by-user.php:156
|
2339 |
+
#: includes/class-wcj-product-tabs.php:423
|
2340 |
+
#: includes/class-wcj-product-tabs.php:544
|
2341 |
+
#: includes/class-wcj-purchase-data.php:336
|
2342 |
+
#: includes/class-wcj-related-products.php:303
|
2343 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:68
|
2344 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:230
|
2345 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:150
|
2346 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:82
|
2347 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:259
|
2348 |
msgid "Title"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
+
#: includes/class-wcj-export-import.php:370
|
2352 |
+
#: includes/class-wcj-export-import.php:438
|
2353 |
+
#: includes/class-wcj-export-import.php:519
|
2354 |
+
#: includes/class-wcj-global-discount.php:271
|
2355 |
+
#: includes/class-wcj-product-addons.php:467
|
2356 |
+
#: includes/class-wcj-product-addons.php:584
|
2357 |
+
#: includes/class-wcj-purchase-data.php:343
|
2358 |
+
#: includes/class-wcj-shipping.php:308
|
2359 |
+
#: includes/export/class-wcj-fields-helper.php:291
|
2360 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:44
|
2361 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:157
|
2362 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:89
|
2363 |
msgid "Type"
|
2364 |
msgstr ""
|
2365 |
|
2366 |
+
#: includes/class-wcj-export-import.php:376
|
2367 |
+
#: includes/class-wcj-export-import.php:444
|
2368 |
msgid "Order Shortcode"
|
2369 |
msgstr ""
|
2370 |
|
2371 |
+
#: includes/class-wcj-export-import.php:380
|
2372 |
+
#: includes/class-wcj-export-import.php:450
|
2373 |
+
#: includes/class-wcj-export-import.php:529
|
2374 |
+
#: includes/class-wcj-global-discount.php:281
|
2375 |
+
#: includes/class-wcj-orders.php:451
|
2376 |
msgid "Value"
|
2377 |
msgstr ""
|
2378 |
|
2379 |
+
#: includes/class-wcj-export-import.php:381
|
2380 |
msgid ""
|
2381 |
"If field's \"Type\" is set to \"Meta\", enter order meta key to retrieve "
|
2382 |
"(can be custom field name)."
|
2383 |
msgstr ""
|
2384 |
|
2385 |
+
#: includes/class-wcj-export-import.php:382
|
2386 |
msgid "If it's set to \"Shortcode\", use Booster's Orders shortcodes here."
|
2387 |
msgstr ""
|
2388 |
|
2389 |
+
#: includes/class-wcj-export-import.php:395
|
2390 |
msgid "Export Orders Items Options"
|
2391 |
msgstr ""
|
2392 |
|
2393 |
+
#: includes/class-wcj-export-import.php:400
|
2394 |
msgid "Export Orders Items Fields"
|
2395 |
msgstr ""
|
2396 |
|
2397 |
+
#: includes/class-wcj-export-import.php:409
|
2398 |
msgid "Additional Export Orders Items Fields"
|
2399 |
msgstr ""
|
2400 |
|
2401 |
+
#: includes/class-wcj-export-import.php:446
|
2402 |
+
#: includes/class-wcj-export-import.php:525
|
2403 |
msgid "Product Shortcode"
|
2404 |
msgstr ""
|
2405 |
|
2406 |
+
#: includes/class-wcj-export-import.php:451
|
2407 |
msgid ""
|
2408 |
"If field's \"Type\" is set to \"Meta\", enter order/product meta key to "
|
2409 |
"retrieve (can be custom field name)."
|
2410 |
msgstr ""
|
2411 |
|
2412 |
+
#: includes/class-wcj-export-import.php:452
|
2413 |
msgid ""
|
2414 |
"If it's set to \"Shortcode\", use Booster's Orders/Products shortcodes here."
|
2415 |
msgstr ""
|
2416 |
|
2417 |
+
#: includes/class-wcj-export-import.php:465
|
2418 |
msgid "Export Products Options"
|
2419 |
msgstr ""
|
2420 |
|
2421 |
+
#: includes/class-wcj-export-import.php:470
|
2422 |
msgid "Export Products Fields"
|
2423 |
msgstr ""
|
2424 |
|
2425 |
+
#: includes/class-wcj-export-import.php:479
|
2426 |
+
#: includes/class-wcj-free-price.php:180
|
2427 |
+
msgid "Variable Products"
|
2428 |
+
msgstr ""
|
2429 |
+
|
2430 |
+
#: includes/class-wcj-export-import.php:484
|
2431 |
+
msgid "Export variable (main) product only"
|
2432 |
+
msgstr ""
|
2433 |
+
|
2434 |
+
#: includes/class-wcj-export-import.php:485
|
2435 |
+
msgid "Export variation products only"
|
2436 |
+
msgstr ""
|
2437 |
+
|
2438 |
+
#: includes/class-wcj-export-import.php:486
|
2439 |
+
msgid "Export variable (main) and variation products"
|
2440 |
+
msgstr ""
|
2441 |
+
|
2442 |
+
#: includes/class-wcj-export-import.php:490
|
2443 |
msgid "Additional Export Products Fields"
|
2444 |
msgstr ""
|
2445 |
|
2446 |
+
#: includes/class-wcj-export-import.php:530
|
2447 |
msgid ""
|
2448 |
"If field's \"Type\" is set to \"Meta\", enter product meta key to retrieve "
|
2449 |
"(can be custom field name)."
|
2450 |
msgstr ""
|
2451 |
|
2452 |
+
#: includes/class-wcj-export-import.php:531
|
2453 |
msgid "If it's set to \"Shortcode\", use Booster's Products shortcodes here."
|
2454 |
msgstr ""
|
2455 |
|
2456 |
+
#: includes/class-wcj-export-import.php:544
|
2457 |
msgid "Export Customers Options"
|
2458 |
msgstr ""
|
2459 |
|
2460 |
+
#: includes/class-wcj-export-import.php:549
|
2461 |
msgid "Export Customers Fields"
|
2462 |
msgstr ""
|
2463 |
|
2464 |
+
#: includes/class-wcj-export-import.php:562
|
2465 |
msgid "Export Customers from Orders Options"
|
2466 |
msgstr ""
|
2467 |
|
2468 |
+
#: includes/class-wcj-export-import.php:567
|
2469 |
msgid "Export Customers from Orders Fields"
|
2470 |
msgstr ""
|
2471 |
|
2477 |
msgid "WooCommerce free price labels."
|
2478 |
msgstr ""
|
2479 |
|
2480 |
+
#: includes/class-wcj-free-price.php:135 includes/class-wcj-free-price.php:148
|
2481 |
+
#: includes/class-wcj-free-price.php:158 includes/class-wcj-free-price.php:168
|
2482 |
+
#: includes/class-wcj-free-price.php:193
|
2483 |
msgid "Free!"
|
2484 |
msgstr ""
|
2485 |
|
2486 |
+
#: includes/class-wcj-free-price.php:179
|
|
|
|
|
|
|
|
|
2487 |
msgid "Simple and Custom Products"
|
2488 |
msgstr ""
|
2489 |
|
2490 |
+
#: includes/class-wcj-free-price.php:181
|
|
|
|
|
|
|
|
|
2491 |
msgid "Grouped Products"
|
2492 |
msgstr ""
|
2493 |
|
2494 |
+
#: includes/class-wcj-free-price.php:182
|
2495 |
+
#: includes/class-wcj-product-add-to-cart.php:609
|
2496 |
msgid "External Products"
|
2497 |
msgstr ""
|
2498 |
|
2499 |
+
#: includes/class-wcj-free-price.php:185
|
2500 |
msgid "Single Product Page"
|
2501 |
msgstr ""
|
2502 |
|
2503 |
+
#: includes/class-wcj-free-price.php:186
|
2504 |
+
#: includes/class-wcj-related-products.php:40
|
2505 |
+
#: includes/class-wcj-related-products.php:146
|
2506 |
msgid "Related Products"
|
2507 |
msgstr ""
|
2508 |
|
2509 |
+
#: includes/class-wcj-free-price.php:187
|
2510 |
msgid "Homepage"
|
2511 |
msgstr ""
|
2512 |
|
2513 |
+
#: includes/class-wcj-free-price.php:188
|
2514 |
msgid "Pages (e.g. Shortcodes)"
|
2515 |
msgstr ""
|
2516 |
|
2517 |
+
#: includes/class-wcj-free-price.php:189
|
2518 |
msgid "Archives (Product Categories)"
|
2519 |
msgstr ""
|
2520 |
|
2521 |
+
#: includes/class-wcj-free-price.php:197
|
2522 |
+
msgid "Labels can contain shortcodes."
|
2523 |
+
msgstr ""
|
2524 |
+
|
2525 |
+
#: includes/class-wcj-free-price.php:204
|
2526 |
msgid "Variations"
|
2527 |
msgstr ""
|
2528 |
|
2529 |
#: includes/class-wcj-general.php:25 includes/class-wcj-pdf-invoicing.php:26
|
2530 |
+
#: includes/class-wcj-related-products.php:270
|
2531 |
msgid "General"
|
2532 |
msgstr ""
|
2533 |
|
2538 |
msgstr ""
|
2539 |
|
2540 |
#: includes/class-wcj-general.php:32
|
2541 |
+
msgid "Products Attributes"
|
2542 |
msgstr ""
|
2543 |
|
2544 |
#: includes/class-wcj-general.php:33
|
2557 |
msgid "Manage Custom Roles."
|
2558 |
msgstr ""
|
2559 |
|
2560 |
+
#: includes/class-wcj-general.php:124
|
2561 |
msgid "Both fields are required!"
|
2562 |
msgstr ""
|
2563 |
|
2564 |
+
#: includes/class-wcj-general.php:127
|
2565 |
msgid "Role ID must not be numbers only!"
|
2566 |
msgstr ""
|
2567 |
|
2568 |
+
#: includes/class-wcj-general.php:131
|
2569 |
msgid "Role successfully added!"
|
2570 |
msgstr ""
|
2571 |
|
2572 |
+
#: includes/class-wcj-general.php:133
|
2573 |
msgid "Role already exists!"
|
2574 |
msgstr ""
|
2575 |
|
2576 |
+
#: includes/class-wcj-general.php:141
|
2577 |
+
#, php-format
|
2578 |
msgid "Role %s successfully deleted!"
|
2579 |
msgstr ""
|
2580 |
|
2581 |
+
#: includes/class-wcj-general.php:147 includes/class-wcj-general.php:160
|
2582 |
+
#: includes/class-wcj-sku.php:252
|
2583 |
+
#: includes/reports/wcj-class-reports-sales.php:193
|
2584 |
msgid "ID"
|
2585 |
msgstr ""
|
2586 |
|
2587 |
+
#: includes/class-wcj-general.php:147 includes/class-wcj-general.php:161
|
2588 |
+
#: includes/export/class-wcj-fields-helper.php:284
|
2589 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:72
|
2590 |
#: includes/tools/class-wcj-eu-countries-vat-rates-tool.php:106
|
2591 |
msgid "Name"
|
2592 |
msgstr ""
|
2593 |
|
2594 |
+
#: includes/class-wcj-general.php:147
|
2595 |
+
#: includes/class-wcj-order-custom-statuses.php:297
|
2596 |
#: includes/class-wcj-product-by-user.php:156
|
2597 |
msgid "Actions"
|
2598 |
msgstr ""
|
2599 |
|
2600 |
+
#: includes/class-wcj-general.php:153
|
2601 |
+
#: includes/class-wcj-order-custom-statuses.php:319
|
|
|
2602 |
#: includes/class-wcj-product-by-user.php:165
|
2603 |
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:151
|
2604 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:285
|
2605 |
msgid "Delete"
|
2606 |
msgstr ""
|
2607 |
|
2608 |
+
#: includes/class-wcj-general.php:156
|
2609 |
msgid "Existing Roles"
|
2610 |
msgstr ""
|
2611 |
|
2612 |
+
#: includes/class-wcj-general.php:162
|
2613 |
msgid "Add New Role"
|
2614 |
msgstr ""
|
2615 |
|
2616 |
+
#: includes/class-wcj-general.php:181
|
2617 |
msgid "PayPal Email"
|
2618 |
msgstr ""
|
2619 |
|
2620 |
+
#: includes/class-wcj-general.php:246 includes/class-wcj-general.php:288
|
2621 |
+
#: includes/class-wcj-product-bulk-price-converter.php:150
|
2622 |
+
#: includes/class-wcj-sku.php:253
|
2623 |
+
#: includes/reports/wcj-class-reports-sales.php:194
|
2624 |
+
#: includes/reports/wcj-class-reports-stock.php:320
|
2625 |
msgid "Product"
|
2626 |
msgstr ""
|
2627 |
|
2628 |
+
#: includes/class-wcj-general.php:247 includes/class-wcj-general.php:289
|
2629 |
+
#: includes/reports/wcj-class-reports-stock.php:321
|
2630 |
msgid "Category"
|
2631 |
msgstr ""
|
2632 |
|
2633 |
+
#: includes/class-wcj-general.php:309
|
2634 |
msgid "Total Products:"
|
2635 |
msgstr ""
|
2636 |
|
2637 |
+
#: includes/class-wcj-general.php:338
|
2638 |
msgid "Shortcodes Options"
|
2639 |
msgstr ""
|
2640 |
|
2641 |
+
#: includes/class-wcj-general.php:343
|
2642 |
msgid "Enable All Shortcodes in WordPress Text Widgets"
|
2643 |
msgstr ""
|
2644 |
|
2645 |
+
#: includes/class-wcj-general.php:344
|
2646 |
msgid ""
|
2647 |
"This will enable all (including non Booster's) shortcodes in WordPress text "
|
2648 |
"widgets."
|
2649 |
msgstr ""
|
2650 |
|
2651 |
+
#: includes/class-wcj-general.php:351
|
2652 |
msgid "Disable Booster's Shortcodes"
|
2653 |
msgstr ""
|
2654 |
|
2655 |
+
#: includes/class-wcj-general.php:352
|
2656 |
msgid "Disable all Booster's shortcodes (for memory saving)."
|
2657 |
msgstr ""
|
2658 |
|
2659 |
+
#: includes/class-wcj-general.php:353 includes/class-wcj-general.php:392
|
2660 |
+
#: includes/class-wcj-general.php:406 includes/class-wcj-general.php:413
|
2661 |
+
#: includes/class-wcj-general.php:420 includes/class-wcj-general.php:427
|
2662 |
+
#: includes/class-wcj-product-add-to-cart.php:327
|
2663 |
+
#: includes/class-wcj-product-add-to-cart.php:510
|
2664 |
msgid "Disable"
|
2665 |
msgstr ""
|
2666 |
|
2667 |
+
#: includes/class-wcj-general.php:363 includes/class-wcj-general.php:368
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2668 |
msgid "Product Revisions"
|
2669 |
msgstr ""
|
2670 |
|
2671 |
+
#: includes/class-wcj-general.php:379
|
2672 |
msgid "Advanced Options"
|
2673 |
msgstr ""
|
2674 |
|
2675 |
+
#: includes/class-wcj-general.php:384
|
2676 |
msgid "Recalculate Cart Totals on Every Page Load"
|
2677 |
msgstr ""
|
2678 |
|
2679 |
+
#: includes/class-wcj-general.php:391
|
2680 |
msgid "Disable Loading Datepicker/Weekpicker CSS"
|
2681 |
msgstr ""
|
2682 |
|
2683 |
+
#: includes/class-wcj-general.php:398
|
2684 |
msgid "Datepicker/Weekpicker CSS"
|
2685 |
msgstr ""
|
2686 |
|
2687 |
+
#: includes/class-wcj-general.php:405
|
2688 |
msgid "Disable Loading Datepicker/Weekpicker JavaScript"
|
2689 |
msgstr ""
|
2690 |
|
2691 |
+
#: includes/class-wcj-general.php:412
|
2692 |
msgid "Disable Loading Timepicker CSS"
|
2693 |
msgstr ""
|
2694 |
|
2695 |
+
#: includes/class-wcj-general.php:419
|
2696 |
msgid "Disable Loading Timepicker JavaScript"
|
2697 |
msgstr ""
|
2698 |
|
2699 |
+
#: includes/class-wcj-general.php:426
|
2700 |
msgid "Disable Saving PDFs in PHP directory for temporary files"
|
2701 |
msgstr ""
|
2702 |
|
2703 |
+
#: includes/class-wcj-general.php:437
|
2704 |
msgid "PayPal Email per Product Options"
|
2705 |
msgstr ""
|
2706 |
|
2707 |
+
#: includes/class-wcj-general.php:442
|
2708 |
msgid "PayPal Email per Product"
|
2709 |
msgstr ""
|
2710 |
|
2711 |
+
#: includes/class-wcj-general.php:444
|
2712 |
msgid "This will add new meta box to each product's edit page."
|
2713 |
msgstr ""
|
2714 |
|
2715 |
+
#: includes/class-wcj-general.php:454
|
2716 |
msgid "Session Expiration Options"
|
2717 |
msgstr ""
|
2718 |
|
2719 |
+
#: includes/class-wcj-general.php:459 includes/class-wcj-general.php:474
|
2720 |
msgid "Session Expiration"
|
2721 |
msgstr ""
|
2722 |
|
2723 |
+
#: includes/class-wcj-general.php:466
|
2724 |
msgid "Session Expiring"
|
2725 |
msgstr ""
|
2726 |
|
2727 |
+
#: includes/class-wcj-general.php:467
|
2728 |
msgid "In seconds. Default: 47 hours (60 * 60 * 47)"
|
2729 |
msgstr ""
|
2730 |
|
2731 |
+
#: includes/class-wcj-general.php:475
|
2732 |
msgid "In seconds. Default: 48 hours (60 * 60 * 48)"
|
2733 |
msgstr ""
|
2734 |
|
2735 |
+
#: includes/class-wcj-general.php:486
|
2736 |
+
msgid "URL Coupons Options"
|
2737 |
+
msgstr ""
|
2738 |
+
|
2739 |
+
#: includes/class-wcj-general.php:487
|
2740 |
+
#, php-format
|
2741 |
+
msgid ""
|
2742 |
+
"Additionally you can hide standard coupon field on cart page in Booster's <a "
|
2743 |
+
"href=\"%s\">Cart Customization</a> module."
|
2744 |
+
msgstr ""
|
2745 |
+
|
2746 |
+
#: includes/class-wcj-general.php:493
|
2747 |
+
msgid "URL Coupons"
|
2748 |
+
msgstr ""
|
2749 |
+
|
2750 |
+
#: includes/class-wcj-general.php:495
|
2751 |
+
msgid ""
|
2752 |
+
"When enabled, your users can apply shop's standard coupons, by visiting URL. "
|
2753 |
+
"E.g.: http://yoursite.com/?wcj_apply_coupon=couponcode."
|
2754 |
+
msgstr ""
|
2755 |
+
|
2756 |
+
#: includes/class-wcj-general.php:501
|
2757 |
+
msgid "URL Coupons Key"
|
2758 |
+
msgstr ""
|
2759 |
+
|
2760 |
+
#: includes/class-wcj-general.php:502
|
2761 |
+
msgid ""
|
2762 |
+
"URL key. If you change this, make sure it's unique and is not used anywhere "
|
2763 |
+
"on your site (e.g. by another plugin)."
|
2764 |
+
msgstr ""
|
2765 |
+
|
2766 |
#: includes/class-wcj-global-discount.php:28
|
2767 |
msgid "Global Discount"
|
2768 |
msgstr ""
|
2771 |
msgid "Add global discount to all WooCommerce products."
|
2772 |
msgstr ""
|
2773 |
|
2774 |
+
#: includes/class-wcj-global-discount.php:241
|
2775 |
msgid "Total Groups"
|
2776 |
msgstr ""
|
2777 |
|
2778 |
+
#: includes/class-wcj-global-discount.php:245
|
2779 |
+
#: includes/class-wcj-products-xml.php:306
|
2780 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:112
|
2781 |
msgid "Press Save changes after you change this number."
|
2782 |
msgstr ""
|
2783 |
|
2784 |
+
#: includes/class-wcj-global-discount.php:259
|
2785 |
msgid "Discount Group"
|
2786 |
msgstr ""
|
2787 |
|
2788 |
+
#: includes/class-wcj-global-discount.php:276
|
2789 |
+
#: includes/class-wcj-payment-gateways-fees.php:146
|
2790 |
+
#: includes/class-wcj-purchase-data.php:348
|
2791 |
+
#: includes/class-wcj-wholesale-price.php:251
|
2792 |
+
#: includes/class-wcj-wholesale-price.php:405
|
2793 |
msgid "Percent"
|
2794 |
msgstr ""
|
2795 |
|
2796 |
+
#: includes/class-wcj-global-discount.php:277
|
2797 |
+
#: includes/class-wcj-payment-gateways-fees.php:145
|
2798 |
+
#: includes/class-wcj-purchase-data.php:347
|
2799 |
+
#: includes/class-wcj-wholesale-price.php:252
|
2800 |
+
#: includes/class-wcj-wholesale-price.php:406
|
2801 |
msgid "Fixed"
|
2802 |
msgstr ""
|
2803 |
|
2804 |
+
#: includes/class-wcj-global-discount.php:282
|
2805 |
msgid "Must be negative number."
|
2806 |
msgstr ""
|
2807 |
|
2808 |
+
#: includes/class-wcj-global-discount.php:289
|
2809 |
msgid "Product Scope"
|
2810 |
msgstr ""
|
2811 |
|
2812 |
+
#: includes/class-wcj-global-discount.php:294
|
2813 |
+
#: includes/class-wcj-product-add-to-cart.php:473
|
2814 |
+
#: includes/class-wcj-products-xml.php:478
|
2815 |
msgid "All products"
|
2816 |
msgstr ""
|
2817 |
|
2818 |
+
#: includes/class-wcj-global-discount.php:295
|
2819 |
msgid "Only products that are already on sale"
|
2820 |
msgstr ""
|
2821 |
|
2822 |
+
#: includes/class-wcj-global-discount.php:296
|
2823 |
+
#: includes/class-wcj-products-xml.php:480
|
2824 |
+
msgid "Only products that are not on sale"
|
2825 |
+
msgstr ""
|
2826 |
+
|
2827 |
+
#: includes/class-wcj-global-discount.php:300
|
2828 |
msgid "Include Product Categories"
|
2829 |
msgstr ""
|
2830 |
|
2831 |
+
#: includes/class-wcj-global-discount.php:301
|
2832 |
msgid ""
|
2833 |
"Set this field to apply discount to selected categories only. Leave blank to "
|
2834 |
"apply to all categories."
|
2846 |
#: includes/class-wcj-left-to-free-shipping.php:66
|
2847 |
#: includes/class-wcj-left-to-free-shipping.php:76
|
2848 |
#: includes/class-wcj-left-to-free-shipping.php:86
|
2849 |
+
#: includes/class-wcj-left-to-free-shipping.php:127
|
2850 |
+
#: includes/class-wcj-left-to-free-shipping.php:162
|
2851 |
+
#: includes/class-wcj-left-to-free-shipping.php:201
|
2852 |
+
#: includes/functions/wcj-functions.php:377
|
2853 |
#: includes/widgets/class-wcj-widget-left-to-free-shipping.php:53
|
2854 |
+
#, php-format
|
2855 |
msgid "%left_to_free% left to free shipping"
|
2856 |
msgstr ""
|
2857 |
|
2858 |
+
#: includes/class-wcj-left-to-free-shipping.php:108
|
2859 |
msgid "Left to Free Shipping Info Options"
|
2860 |
msgstr ""
|
2861 |
|
2862 |
+
#: includes/class-wcj-left-to-free-shipping.php:110
|
2863 |
msgid ""
|
2864 |
"This section lets you enable info on cart, mini cart and checkout pages."
|
2865 |
msgstr ""
|
2866 |
|
2867 |
+
#: includes/class-wcj-left-to-free-shipping.php:111
|
2868 |
msgid ""
|
2869 |
"You can also use <em>Booster - Left to Free Shipping</em> widget, <em>"
|
2870 |
"[wcj_get_left_to_free_shipping content=\"\"]</em> shortcode or "
|
2871 |
"<em>wcj_get_left_to_free_shipping( $content );</em> function."
|
2872 |
msgstr ""
|
2873 |
|
2874 |
+
#: includes/class-wcj-left-to-free-shipping.php:112
|
2875 |
msgid ""
|
2876 |
"In content you can use: <em>%left_to_free%</em> and <em>"
|
2877 |
"%free_shipping_min_amount%</em> shortcodes."
|
2878 |
msgstr ""
|
2879 |
|
2880 |
+
#: includes/class-wcj-left-to-free-shipping.php:116
|
2881 |
msgid "Info on Cart"
|
2882 |
msgstr ""
|
2883 |
|
2884 |
+
#: includes/class-wcj-left-to-free-shipping.php:125
|
2885 |
+
#: includes/class-wcj-left-to-free-shipping.php:160
|
2886 |
+
#: includes/class-wcj-left-to-free-shipping.php:199
|
2887 |
+
#: includes/class-wcj-left-to-free-shipping.php:234
|
2888 |
+
msgid "You can use HTML and/or shortcodes (e.g. [wcj_wpml]) here."
|
2889 |
+
msgstr ""
|
2890 |
+
|
2891 |
+
#: includes/class-wcj-left-to-free-shipping.php:142
|
2892 |
+
#: includes/class-wcj-left-to-free-shipping.php:181
|
2893 |
+
#: includes/class-wcj-left-to-free-shipping.php:226
|
2894 |
msgid "Position Order (Priority)"
|
2895 |
msgstr ""
|
2896 |
|
2897 |
+
#: includes/class-wcj-left-to-free-shipping.php:149
|
2898 |
msgid "Info on Mini Cart"
|
2899 |
msgstr ""
|
2900 |
|
2901 |
+
#: includes/class-wcj-left-to-free-shipping.php:173
|
2902 |
#: includes/class-wcj-mini-cart.php:119
|
2903 |
msgid "Before mini cart"
|
2904 |
msgstr ""
|
2905 |
|
2906 |
+
#: includes/class-wcj-left-to-free-shipping.php:174
|
2907 |
#: includes/class-wcj-mini-cart.php:120
|
2908 |
msgid "Before buttons"
|
2909 |
msgstr ""
|
2910 |
|
2911 |
+
#: includes/class-wcj-left-to-free-shipping.php:175
|
2912 |
#: includes/class-wcj-mini-cart.php:121
|
2913 |
msgid "After mini cart"
|
2914 |
msgstr ""
|
2915 |
|
2916 |
+
#: includes/class-wcj-left-to-free-shipping.php:188
|
2917 |
msgid "Info on Checkout"
|
2918 |
msgstr ""
|
2919 |
|
2920 |
+
#: includes/class-wcj-left-to-free-shipping.php:233
|
2921 |
msgid "Message on Free Shipping Reached"
|
2922 |
msgstr ""
|
2923 |
|
2924 |
+
#: includes/class-wcj-left-to-free-shipping.php:235
|
2925 |
+
msgid "Set empty to disable."
|
2926 |
msgstr ""
|
2927 |
|
2928 |
+
#: includes/class-wcj-left-to-free-shipping.php:237
|
2929 |
+
#: includes/functions/wcj-functions.php:417
|
2930 |
msgid "You have Free delivery"
|
2931 |
msgstr ""
|
2932 |
|
2933 |
#: includes/class-wcj-mini-cart.php:26
|
2934 |
+
msgid "Mini Cart Custom Info"
|
2935 |
msgstr ""
|
2936 |
|
2937 |
#: includes/class-wcj-mini-cart.php:27
|
2938 |
+
msgid "Add custom info to WooCommerce mini cart widget."
|
2939 |
msgstr ""
|
2940 |
|
2941 |
#: includes/class-wcj-mini-cart.php:74
|
2950 |
msgid "Set WooCommerce \"Place order\" button label."
|
2951 |
msgstr ""
|
2952 |
|
2953 |
+
#: includes/class-wcj-more-button-labels.php:54
|
2954 |
msgid "Place order (Order now) Button"
|
2955 |
msgstr ""
|
2956 |
|
2957 |
+
#: includes/class-wcj-more-button-labels.php:61
|
2958 |
+
msgid "Leave blank for WooCommerce default."
|
2959 |
msgstr ""
|
2960 |
|
2961 |
+
#: includes/class-wcj-more-button-labels.php:62
|
2962 |
msgid "Button on the checkout page."
|
2963 |
msgstr ""
|
2964 |
|
2981 |
#: includes/class-wcj-multicurrency.php:76
|
2982 |
#: includes/class-wcj-price-by-user-role.php:163
|
2983 |
#: includes/class-wcj-product-by-user.php:205
|
2984 |
+
#: includes/export/class-wcj-fields-helper.php:288
|
2985 |
+
#: includes/price-by-country/class-wcj-price-by-country-local.php:128
|
2986 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:154
|
2987 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:298
|
2988 |
msgid "Regular Price"
|
2991 |
#: includes/class-wcj-multicurrency.php:85
|
2992 |
#: includes/class-wcj-price-by-user-role.php:172
|
2993 |
#: includes/class-wcj-product-by-user.php:206
|
2994 |
+
#: includes/export/class-wcj-fields-helper.php:289
|
2995 |
+
#: includes/price-by-country/class-wcj-price-by-country-local.php:135
|
2996 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:155
|
2997 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:306
|
2998 |
msgid "Sale Price"
|
2999 |
msgstr ""
|
3000 |
|
3001 |
+
#: includes/class-wcj-multicurrency.php:359
|
3002 |
msgid ""
|
3003 |
"After setting currencies in the Currencies Options below, use <em>Booster - "
|
3004 |
"Multicurrency Switcher</em> widget, or <em>"
|
3007 |
"( '[wcj_currency_select_drop_down_list]' );</em>"
|
3008 |
msgstr ""
|
3009 |
|
3010 |
+
#: includes/class-wcj-multicurrency.php:393
|
3011 |
msgid "Multicurrency on per Product Basis"
|
3012 |
msgstr ""
|
3013 |
|
3014 |
+
#: includes/class-wcj-multicurrency.php:395
|
3015 |
msgid "This will add meta boxes in product edit."
|
3016 |
msgstr ""
|
3017 |
|
3018 |
+
#: includes/class-wcj-multicurrency.php:401
|
3019 |
+
#: includes/class-wcj-price-by-country.php:196
|
3020 |
msgid "Revert Currency to Default on Checkout"
|
3021 |
msgstr ""
|
3022 |
|
3023 |
+
#: includes/class-wcj-multicurrency.php:408
|
3024 |
+
#: includes/class-wcj-payment-gateways-fees.php:184
|
3025 |
msgid "Rounding"
|
3026 |
msgstr ""
|
3027 |
|
3028 |
+
#: includes/class-wcj-multicurrency.php:409
|
3029 |
msgid "If using exchange rates, choose rounding here."
|
3030 |
msgstr ""
|
3031 |
|
3032 |
+
#: includes/class-wcj-multicurrency.php:414
|
3033 |
+
#: includes/class-wcj-price-by-country.php:210
|
3034 |
msgid "No rounding"
|
3035 |
msgstr ""
|
3036 |
|
3037 |
+
#: includes/class-wcj-multicurrency.php:415
|
3038 |
+
#: includes/class-wcj-price-by-country.php:211
|
3039 |
msgid "Round"
|
3040 |
msgstr ""
|
3041 |
|
3042 |
+
#: includes/class-wcj-multicurrency.php:416
|
3043 |
+
#: includes/class-wcj-price-by-country.php:213
|
3044 |
msgid "Round up"
|
3045 |
msgstr ""
|
3046 |
|
3047 |
+
#: includes/class-wcj-multicurrency.php:417
|
3048 |
+
#: includes/class-wcj-price-by-country.php:212
|
3049 |
msgid "Round down"
|
3050 |
msgstr ""
|
3051 |
|
3052 |
+
#: includes/class-wcj-multicurrency.php:421
|
3053 |
+
#: includes/class-wcj-payment-gateways-fees.php:191
|
3054 |
msgid "Rounding Precision"
|
3055 |
msgstr ""
|
3056 |
|
3057 |
+
#: includes/class-wcj-multicurrency.php:422
|
3058 |
msgid "If rounding enabled, set precision here."
|
3059 |
msgstr ""
|
3060 |
|
3061 |
+
#: includes/class-wcj-multicurrency.php:435
|
3062 |
msgid ""
|
3063 |
"One currency probably should be set to current (original) shop currency with "
|
3064 |
"an exchange rate of 1."
|
3065 |
msgstr ""
|
3066 |
|
3067 |
+
#: includes/class-wcj-multicurrency.php:490
|
3068 |
msgid "Role Defaults"
|
3069 |
msgstr ""
|
3070 |
|
3071 |
+
#: includes/class-wcj-multicurrency.php:492
|
3072 |
+
#: includes/class-wcj-order-min-amount.php:249
|
3073 |
+
#: includes/class-wcj-price-by-user-role.php:368
|
3074 |
+
#, php-format
|
3075 |
msgid ""
|
3076 |
"Custom roles can be added via \"Add/Manage Custom Roles\" tool in Booster's "
|
3077 |
"<a href=\"%s\">General</a> module."
|
3078 |
msgstr ""
|
3079 |
|
3080 |
+
#: includes/class-wcj-multicurrency.php:497
|
3081 |
msgid "Roles"
|
3082 |
msgstr ""
|
3083 |
|
3084 |
+
#: includes/class-wcj-multicurrency.php:498
|
3085 |
+
#: includes/class-wcj-wholesale-price.php:478
|
3086 |
msgid "Save settings after you change this option. Leave blank to disable."
|
3087 |
msgstr ""
|
3088 |
|
3089 |
+
#: includes/class-wcj-multicurrency.php:521
|
3090 |
msgid "No default currency"
|
3091 |
msgstr ""
|
3092 |
|
3102 |
msgid "Remove Old Slugs"
|
3103 |
msgstr ""
|
3104 |
|
3105 |
+
#: includes/class-wcj-old-slugs.php:33 includes/class-wcj-old-slugs.php:93
|
3106 |
msgid "Tool removes old slugs/permalinks from database."
|
3107 |
msgstr ""
|
3108 |
|
3109 |
+
#: includes/class-wcj-old-slugs.php:92
|
3110 |
msgid "Booster - Remove Old Product Slugs"
|
3111 |
msgstr ""
|
3112 |
|
3113 |
+
#: includes/class-wcj-old-slugs.php:98
|
3114 |
msgid "Old products slugs found:"
|
3115 |
msgstr ""
|
3116 |
|
3117 |
+
#: includes/class-wcj-old-slugs.php:106
|
3118 |
msgid "None-products slugs found:"
|
3119 |
msgstr ""
|
3120 |
|
3121 |
+
#: includes/class-wcj-old-slugs.php:113
|
3122 |
msgid "No old slugs found."
|
3123 |
msgstr ""
|
3124 |
|
3131 |
msgstr ""
|
3132 |
|
3133 |
#: includes/class-wcj-order-custom-statuses.php:33
|
3134 |
+
#: includes/class-wcj-order-custom-statuses.php:405
|
3135 |
msgid "Custom Statuses"
|
3136 |
msgstr ""
|
3137 |
|
3139 |
msgid "Tool lets you add or delete any custom status for WooCommerce orders."
|
3140 |
msgstr ""
|
3141 |
|
3142 |
+
#: includes/class-wcj-order-custom-statuses.php:116
|
3143 |
msgctxt "Order status"
|
3144 |
msgid "Pending payment"
|
3145 |
msgstr ""
|
3146 |
|
3147 |
+
#: includes/class-wcj-order-custom-statuses.php:117
|
3148 |
+
#: includes/functions/wcj-functions.php:887
|
3149 |
msgctxt "Order status"
|
3150 |
msgid "Processing"
|
3151 |
msgstr ""
|
3152 |
|
3153 |
+
#: includes/class-wcj-order-custom-statuses.php:118
|
3154 |
msgctxt "Order status"
|
3155 |
msgid "On hold"
|
3156 |
msgstr ""
|
3157 |
|
3158 |
+
#: includes/class-wcj-order-custom-statuses.php:119
|
3159 |
+
#: includes/functions/wcj-functions.php:889
|
3160 |
msgctxt "Order status"
|
3161 |
msgid "Completed"
|
3162 |
msgstr ""
|
3163 |
|
3164 |
+
#: includes/class-wcj-order-custom-statuses.php:120
|
3165 |
+
#: includes/functions/wcj-functions.php:890
|
3166 |
msgctxt "Order status"
|
3167 |
msgid "Cancelled"
|
3168 |
msgstr ""
|
3169 |
|
3170 |
+
#: includes/class-wcj-order-custom-statuses.php:121
|
3171 |
+
#: includes/functions/wcj-functions.php:891
|
3172 |
msgctxt "Order status"
|
3173 |
msgid "Refunded"
|
3174 |
msgstr ""
|
3175 |
|
3176 |
+
#: includes/class-wcj-order-custom-statuses.php:122
|
3177 |
+
#: includes/functions/wcj-functions.php:892
|
3178 |
msgctxt "Order status"
|
3179 |
msgid "Failed"
|
3180 |
msgstr ""
|
3181 |
|
3182 |
+
#: includes/class-wcj-order-custom-statuses.php:162
|
3183 |
+
#, php-format
|
3184 |
+
msgid " <span class=\"count\">(%s)</span>"
|
3185 |
+
msgid_plural " <span class=\"count\">(%s)</span>"
|
3186 |
+
msgstr[0] ""
|
3187 |
+
msgstr[1] ""
|
3188 |
+
|
3189 |
+
#: includes/class-wcj-order-custom-statuses.php:212
|
3190 |
msgid "Status slug is empty. Status was not added!"
|
3191 |
msgstr ""
|
3192 |
|
3193 |
+
#: includes/class-wcj-order-custom-statuses.php:215
|
3194 |
msgid ""
|
3195 |
"The length of status slug must be 17 or less characters. Status was not "
|
3196 |
"added!"
|
3197 |
msgstr ""
|
3198 |
|
3199 |
+
#: includes/class-wcj-order-custom-statuses.php:218
|
3200 |
msgid "Status label is empty. Status was not added!"
|
3201 |
msgstr ""
|
3202 |
|
3203 |
+
#: includes/class-wcj-order-custom-statuses.php:225
|
3204 |
msgid "Duplicate slug. Status was not added!"
|
3205 |
msgstr ""
|
3206 |
|
3207 |
+
#: includes/class-wcj-order-custom-statuses.php:229
|
3208 |
+
msgid "Duplicate slug (default WooCommerce status). Status was not added!"
|
3209 |
+
msgstr ""
|
3210 |
+
|
3211 |
+
#: includes/class-wcj-order-custom-statuses.php:240
|
3212 |
msgid "New status has been successfully added!"
|
3213 |
msgstr ""
|
3214 |
|
3215 |
+
#: includes/class-wcj-order-custom-statuses.php:242
|
3216 |
msgid "Status was not added."
|
3217 |
msgstr ""
|
3218 |
|
3219 |
+
#: includes/class-wcj-order-custom-statuses.php:260
|
3220 |
+
msgid "Status label is empty. Status was not edited!"
|
3221 |
+
msgstr ""
|
3222 |
+
|
3223 |
+
#: includes/class-wcj-order-custom-statuses.php:270
|
3224 |
+
msgid "Status has been successfully edited!"
|
3225 |
+
msgstr ""
|
3226 |
+
|
3227 |
+
#: includes/class-wcj-order-custom-statuses.php:272
|
3228 |
+
msgid "Status was not edited."
|
3229 |
+
msgstr ""
|
3230 |
+
|
3231 |
+
#: includes/class-wcj-order-custom-statuses.php:280
|
3232 |
msgid "Status has been successfully deleted."
|
3233 |
msgstr ""
|
3234 |
|
3235 |
+
#: includes/class-wcj-order-custom-statuses.php:282
|
3236 |
msgid "Delete failed."
|
3237 |
msgstr ""
|
3238 |
|
3239 |
+
#: includes/class-wcj-order-custom-statuses.php:287
|
3240 |
msgid "Booster - Custom Statuses"
|
3241 |
msgstr ""
|
3242 |
|
3243 |
+
#: includes/class-wcj-order-custom-statuses.php:288
|
3244 |
msgid ""
|
3245 |
"The tool lets you add or delete any custom status for WooCommerce orders."
|
3246 |
msgstr ""
|
3247 |
|
3248 |
+
#: includes/class-wcj-order-custom-statuses.php:290
|
3249 |
msgid "Statuses"
|
3250 |
msgstr ""
|
3251 |
|
3252 |
+
#: includes/class-wcj-order-custom-statuses.php:293
|
3253 |
msgid "Slug"
|
3254 |
msgstr ""
|
3255 |
|
3256 |
+
#: includes/class-wcj-order-custom-statuses.php:295
|
3257 |
+
#: includes/class-wcj-order-custom-statuses.php:350
|
3258 |
msgid "Icon Code"
|
3259 |
msgstr ""
|
3260 |
|
3261 |
+
#: includes/class-wcj-order-custom-statuses.php:296
|
3262 |
+
#: includes/class-wcj-order-custom-statuses.php:352
|
3263 |
msgid "Icon Color"
|
3264 |
msgstr ""
|
3265 |
|
3266 |
+
#: includes/class-wcj-order-custom-statuses.php:320
|
3267 |
+
msgid "Get Booster Plus to enable."
|
3268 |
+
msgstr ""
|
3269 |
+
|
3270 |
+
#: includes/class-wcj-order-custom-statuses.php:320
|
3271 |
+
#: includes/class-wcj-order-custom-statuses.php:344
|
3272 |
+
#: includes/class-wcj-product-by-user.php:164
|
3273 |
+
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:359
|
3274 |
+
msgid "Edit"
|
3275 |
+
msgstr ""
|
3276 |
+
|
3277 |
+
#: includes/class-wcj-order-custom-statuses.php:348
|
3278 |
msgid "Slug (without wc- prefix)"
|
3279 |
msgstr ""
|
3280 |
|
3281 |
+
#: includes/class-wcj-order-custom-statuses.php:351
|
3282 |
+
#, php-format
|
3283 |
msgid "You can check icon codes <a target=\"_blank\" href=\"%s\">here</a>."
|
3284 |
msgstr ""
|
3285 |
|
3286 |
+
#: includes/class-wcj-order-custom-statuses.php:354
|
3287 |
+
msgid "Edit custom status"
|
3288 |
+
msgstr ""
|
3289 |
+
|
3290 |
+
#: includes/class-wcj-order-custom-statuses.php:354
|
3291 |
msgid "Add new custom status"
|
3292 |
msgstr ""
|
3293 |
|
3294 |
+
#: includes/class-wcj-order-custom-statuses.php:377
|
3295 |
+
#: includes/class-wcj-order-custom-statuses.php:378
|
3296 |
msgid "Mark"
|
3297 |
msgstr ""
|
3298 |
|
3299 |
+
#: includes/class-wcj-order-custom-statuses.php:410
|
3300 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:138
|
3301 |
msgid "Default Order Status"
|
3302 |
msgstr ""
|
3303 |
|
3304 |
+
#: includes/class-wcj-order-custom-statuses.php:411
|
3305 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:139
|
3306 |
msgid "Enable Custom Statuses feature to add custom statuses to the list."
|
3307 |
msgstr ""
|
3308 |
|
3309 |
+
#: includes/class-wcj-order-custom-statuses.php:412
|
3310 |
msgid ""
|
3311 |
"You can change the default order status here. However payment gateways can "
|
3312 |
"change this status immediatelly on order creation. E.g. BACS gateway will "
|
3313 |
"change status to On-hold."
|
3314 |
msgstr ""
|
3315 |
|
3316 |
+
#: includes/class-wcj-order-custom-statuses.php:419
|
3317 |
msgid "Add All Statuses to Admin Order Bulk Actions"
|
3318 |
msgstr ""
|
3319 |
|
3320 |
+
#: includes/class-wcj-order-custom-statuses.php:426
|
3321 |
msgid "Add Custom Statuses to Admin Reports"
|
3322 |
msgstr ""
|
3323 |
|
3324 |
+
#: includes/class-wcj-order-custom-statuses.php:433
|
3325 |
+
msgid "Add Custom Statuses to Admin Order List Action Buttons"
|
3326 |
+
msgstr ""
|
3327 |
+
|
3328 |
+
#: includes/class-wcj-order-custom-statuses.php:442
|
3329 |
+
msgid "Enable Colors"
|
3330 |
+
msgstr ""
|
3331 |
+
|
3332 |
#: includes/class-wcj-order-min-amount.php:27
|
3333 |
+
#: includes/class-wcj-order-min-amount.php:184
|
3334 |
msgid "Order Minimum Amount"
|
3335 |
msgstr ""
|
3336 |
|
3338 |
msgid "Minimum WooCommerce order amount (optionally by user role)."
|
3339 |
msgstr ""
|
3340 |
|
3341 |
+
#: includes/class-wcj-order-min-amount.php:186
|
3342 |
msgid "This section lets you set minimum order amount."
|
3343 |
msgstr ""
|
3344 |
|
3345 |
+
#: includes/class-wcj-order-min-amount.php:190
|
3346 |
msgid "Amount"
|
3347 |
msgstr ""
|
3348 |
|
3349 |
+
#: includes/class-wcj-order-min-amount.php:191
|
3350 |
msgid "Minimum order amount. Set to 0 to disable."
|
3351 |
msgstr ""
|
3352 |
|
3353 |
+
#: includes/class-wcj-order-min-amount.php:201
|
3354 |
msgid "Exclude Shipping from Cart Total"
|
3355 |
msgstr ""
|
3356 |
|
3357 |
+
#: includes/class-wcj-order-min-amount.php:202
|
3358 |
msgid "Exclude"
|
3359 |
msgstr ""
|
3360 |
|
3361 |
+
#: includes/class-wcj-order-min-amount.php:208
|
3362 |
msgid "Error message"
|
3363 |
msgstr ""
|
3364 |
|
3365 |
+
#: includes/class-wcj-order-min-amount.php:210
|
3366 |
+
#: includes/class-wcj-order-min-amount.php:227
|
3367 |
+
#, php-format
|
3368 |
msgid ""
|
3369 |
"Message to customer if order is below minimum amount. Default: You must have "
|
3370 |
"an order with a minimum of %s to place your order, your current order total "
|
3371 |
"is %s."
|
3372 |
msgstr ""
|
3373 |
|
3374 |
+
#: includes/class-wcj-order-min-amount.php:218
|
3375 |
msgid "Add notice to cart page also"
|
3376 |
msgstr ""
|
3377 |
|
3378 |
+
#: includes/class-wcj-order-min-amount.php:225
|
3379 |
msgid "Message on cart page"
|
3380 |
msgstr ""
|
3381 |
|
3382 |
+
#: includes/class-wcj-order-min-amount.php:235
|
3383 |
msgid ""
|
3384 |
"Stop customer from seeing the Checkout page if minimum amount not reached."
|
3385 |
msgstr ""
|
3386 |
|
3387 |
+
#: includes/class-wcj-order-min-amount.php:236
|
3388 |
msgid "Redirect back to Cart page"
|
3389 |
msgstr ""
|
3390 |
|
3391 |
+
#: includes/class-wcj-order-min-amount.php:246
|
3392 |
msgid "Order Minimum Amount by User Role"
|
3393 |
msgstr ""
|
3394 |
|
3395 |
#: includes/class-wcj-order-numbers.php:25
|
3396 |
+
#: includes/class-wcj-order-numbers.php:241
|
3397 |
msgid "Order Numbers"
|
3398 |
msgstr ""
|
3399 |
|
3411 |
msgid "Tool renumerates all orders."
|
3412 |
msgstr ""
|
3413 |
|
3414 |
+
#: includes/class-wcj-order-numbers.php:146
|
3415 |
msgid "Orders successfully renumerated!"
|
3416 |
msgstr ""
|
3417 |
|
3418 |
+
#: includes/class-wcj-order-numbers.php:150
|
3419 |
msgid ""
|
3420 |
"Press the button below to renumerate all existing orders starting from order "
|
3421 |
"counter settings in WooCommerce > Settings > Booster > Order Numbers."
|
3422 |
msgstr ""
|
3423 |
|
3424 |
+
#: includes/class-wcj-order-numbers.php:153
|
3425 |
msgid "Renumerate orders"
|
3426 |
msgstr ""
|
3427 |
|
3428 |
+
#: includes/class-wcj-order-numbers.php:243
|
3429 |
msgid ""
|
3430 |
"This section lets you enable sequential order numbering, set custom number "
|
3431 |
"prefix, suffix and width."
|
3432 |
msgstr ""
|
3433 |
|
3434 |
+
#: includes/class-wcj-order-numbers.php:247 includes/class-wcj-sku.php:288
|
3435 |
+
msgid "Number Generation"
|
3436 |
+
msgstr ""
|
3437 |
+
|
3438 |
+
#: includes/class-wcj-order-numbers.php:252 includes/class-wcj-sku.php:294
|
3439 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:45
|
3440 |
+
msgid "Sequential"
|
3441 |
+
msgstr ""
|
3442 |
+
|
3443 |
+
#: includes/class-wcj-order-numbers.php:253
|
3444 |
+
#: includes/export/class-wcj-fields-helper.php:112
|
3445 |
+
#: includes/export/class-wcj-fields-helper.php:195
|
3446 |
+
#: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:254
|
3447 |
+
msgid "Order ID"
|
3448 |
+
msgstr ""
|
3449 |
+
|
3450 |
+
#: includes/class-wcj-order-numbers.php:254
|
3451 |
+
msgid "Pseudorandom - Hash (max 10 digits)"
|
3452 |
msgstr ""
|
3453 |
|
3454 |
+
#: includes/class-wcj-order-numbers.php:258
|
3455 |
msgid "Next Order Number"
|
3456 |
msgstr ""
|
3457 |
|
3458 |
+
#: includes/class-wcj-order-numbers.php:259
|
3459 |
msgid "Next new order will be given this number."
|
3460 |
msgstr ""
|
3461 |
|
3462 |
+
#: includes/class-wcj-order-numbers.php:259
|
3463 |
msgid "Use Renumerate Orders tool for existing orders."
|
3464 |
msgstr ""
|
3465 |
|
3466 |
+
#: includes/class-wcj-order-numbers.php:260
|
3467 |
msgid "This will be ignored if sequential order numbering is disabled."
|
3468 |
msgstr ""
|
3469 |
|
3470 |
+
#: includes/class-wcj-order-numbers.php:266
|
3471 |
msgid "Order Number Custom Prefix"
|
3472 |
msgstr ""
|
3473 |
|
3474 |
+
#: includes/class-wcj-order-numbers.php:267
|
3475 |
msgid ""
|
3476 |
"Prefix before order number (optional). This will change the prefixes for all "
|
3477 |
"existing orders."
|
3478 |
msgstr ""
|
3479 |
|
3480 |
+
#: includes/class-wcj-order-numbers.php:274
|
3481 |
msgid "Order Number Date Prefix"
|
3482 |
msgstr ""
|
3483 |
|
3484 |
+
#: includes/class-wcj-order-numbers.php:276
|
3485 |
msgid ""
|
3486 |
"Date prefix before order number (optional). This will change the prefixes "
|
3487 |
"for all existing orders. Value is passed directly to PHP `date` function, so "
|
3490 |
"d- or mdy."
|
3491 |
msgstr ""
|
3492 |
|
3493 |
+
#: includes/class-wcj-order-numbers.php:284
|
3494 |
msgid "Order Number Width"
|
3495 |
msgstr ""
|
3496 |
|
3497 |
+
#: includes/class-wcj-order-numbers.php:286
|
3498 |
msgid ""
|
3499 |
"Minimum width of number without prefix (zeros will be added to the left "
|
3500 |
"side). This will change the minimum width of order number for all existing "
|
3502 |
"Leave zero to disable."
|
3503 |
msgstr ""
|
3504 |
|
3505 |
+
#: includes/class-wcj-order-numbers.php:294
|
3506 |
msgid "Order Number Custom Suffix"
|
3507 |
msgstr ""
|
3508 |
|
3509 |
+
#: includes/class-wcj-order-numbers.php:296
|
3510 |
msgid ""
|
3511 |
"Suffix after order number (optional). This will change the suffixes for all "
|
3512 |
"existing orders."
|
3513 |
msgstr ""
|
3514 |
|
3515 |
+
#: includes/class-wcj-order-numbers.php:304
|
3516 |
msgid "Order Number Date Suffix"
|
3517 |
msgstr ""
|
3518 |
|
3519 |
+
#: includes/class-wcj-order-numbers.php:306
|
3520 |
msgid ""
|
3521 |
"Date suffix after order number (optional). This will change the suffixes for "
|
3522 |
"all existing orders. Value is passed directly to PHP `date` function, so "
|
3525 |
"d- or mdy."
|
3526 |
msgstr ""
|
3527 |
|
3528 |
+
#: includes/class-wcj-order-numbers.php:314
|
3529 |
msgid "Use MySQL Transaction"
|
3530 |
msgstr ""
|
3531 |
|
3532 |
+
#: includes/class-wcj-order-numbers.php:316
|
3533 |
msgid ""
|
3534 |
"This should be enabled if you have a lot of simultaneous orders in your shop "
|
3535 |
"- to prevent duplicate order numbers (sequential)."
|
3536 |
msgstr ""
|
3537 |
|
3538 |
+
#: includes/class-wcj-order-numbers.php:322
|
3539 |
msgid "Enable Order Tracking by Custom Number"
|
3540 |
msgstr ""
|
3541 |
|
3542 |
+
#: includes/class-wcj-order-numbers.php:329
|
3543 |
+
msgid "Enable Order Admin Search by Custom Number"
|
3544 |
+
msgstr ""
|
3545 |
+
|
3546 |
#: includes/class-wcj-orders.php:25
|
3547 |
msgid "Orders"
|
3548 |
msgstr ""
|
3553 |
"Admin order list multiple status filtering."
|
3554 |
msgstr ""
|
3555 |
|
3556 |
+
#: includes/class-wcj-orders.php:131
|
3557 |
msgid "Not Completed"
|
3558 |
msgstr ""
|
3559 |
|
3560 |
+
#: includes/class-wcj-orders.php:237
|
3561 |
+
#: includes/export/class-wcj-fields-helper.php:118
|
3562 |
+
#: includes/export/class-wcj-fields-helper.php:203
|
3563 |
#: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:261
|
3564 |
msgid "Order Currency"
|
3565 |
msgstr ""
|
3566 |
|
3567 |
+
#: includes/class-wcj-orders.php:238
|
3568 |
msgid "Save order after you change this field."
|
3569 |
msgstr ""
|
3570 |
|
3571 |
+
#: includes/class-wcj-orders.php:266
|
3572 |
msgid "All countries"
|
3573 |
msgstr ""
|
3574 |
|
3575 |
+
#: includes/class-wcj-orders.php:363 includes/class-wcj-orders.php:368
|
3576 |
msgid "Admin Order Currency"
|
3577 |
msgstr ""
|
3578 |
|
3579 |
+
#: includes/class-wcj-orders.php:370
|
3580 |
msgid ""
|
3581 |
"When enabled this will add \"Booster: Orders\" metabox to each order's edit "
|
3582 |
"page."
|
3583 |
msgstr ""
|
3584 |
|
3585 |
+
#: includes/class-wcj-orders.php:376
|
3586 |
msgid "Admin Order Currency Method"
|
3587 |
msgstr ""
|
3588 |
|
3589 |
+
#: includes/class-wcj-orders.php:377
|
3590 |
msgid ""
|
3591 |
"Choose if you want changed order currency to be saved directly to DB, or if "
|
3592 |
"you want to use filter. When using <em>filter</em> method, changes will be "
|
3595 |
"Booster plugin is removed."
|
3596 |
msgstr ""
|
3597 |
|
3598 |
+
#: includes/class-wcj-orders.php:383
|
3599 |
msgid "Directly to DB"
|
3600 |
msgstr ""
|
3601 |
|
3602 |
+
#: includes/class-wcj-orders.php:391
|
3603 |
msgid "Orders Auto-Complete"
|
3604 |
msgstr ""
|
3605 |
|
3606 |
+
#: includes/class-wcj-orders.php:393
|
3607 |
msgid "This section lets you enable orders auto-complete function."
|
3608 |
msgstr ""
|
3609 |
|
3610 |
+
#: includes/class-wcj-orders.php:397
|
3611 |
msgid "Auto-complete all WooCommerce orders"
|
3612 |
msgstr ""
|
3613 |
|
3614 |
+
#: includes/class-wcj-orders.php:399
|
3615 |
msgid ""
|
3616 |
"E.g. if you sell digital products then you are not shipping anything and you "
|
3617 |
"may want auto-complete all your orders."
|
3618 |
msgstr ""
|
3619 |
|
3620 |
+
#: includes/class-wcj-orders.php:409 includes/class-wcj-purchase-data.php:397
|
3621 |
msgid "Admin Orders List Custom Columns"
|
3622 |
msgstr ""
|
3623 |
|
3624 |
+
#: includes/class-wcj-orders.php:411
|
3625 |
msgid "This section lets you add custom columns to WooCommerce orders list."
|
3626 |
msgstr ""
|
3627 |
|
3628 |
+
#: includes/class-wcj-orders.php:422
|
3629 |
msgid "Custom Columns Total Number"
|
3630 |
msgstr ""
|
3631 |
|
3632 |
+
#: includes/class-wcj-orders.php:437
|
3633 |
msgid "Custom Column"
|
3634 |
msgstr ""
|
3635 |
|
3636 |
+
#: includes/class-wcj-orders.php:452
|
3637 |
+
#: includes/class-wcj-product-custom-info.php:123
|
3638 |
+
#: includes/class-wcj-products-xml.php:387
|
3639 |
msgid "You can use shortcodes here."
|
3640 |
msgstr ""
|
3641 |
|
3642 |
+
#: includes/class-wcj-orders.php:466
|
3643 |
msgid "Admin Orders List Multiple Status"
|
3644 |
msgstr ""
|
3645 |
|
3646 |
+
#: includes/class-wcj-orders.php:471
|
3647 |
msgid "Multiple Status Filtering"
|
3648 |
msgstr ""
|
3649 |
|
3650 |
+
#: includes/class-wcj-orders.php:477
|
3651 |
msgid "Add as multiple select"
|
3652 |
msgstr ""
|
3653 |
|
3654 |
+
#: includes/class-wcj-orders.php:478
|
3655 |
msgid "Add as checkboxes"
|
3656 |
msgstr ""
|
3657 |
|
3658 |
+
#: includes/class-wcj-orders.php:482
|
3659 |
msgid "Hide Default Statuses Menu"
|
3660 |
msgstr ""
|
3661 |
|
3662 |
+
#: includes/class-wcj-orders.php:489
|
3663 |
msgid "Add \"Not Completed\" Status Link to Default Statuses Menu"
|
3664 |
msgstr ""
|
3665 |
|
3666 |
+
#: includes/class-wcj-orders.php:500
|
3667 |
msgid "Admin Orders List Columns Order"
|
3668 |
msgstr ""
|
3669 |
|
3670 |
+
#: includes/class-wcj-orders.php:505
|
3671 |
msgid "Columns Order"
|
3672 |
msgstr ""
|
3673 |
|
3674 |
+
#: includes/class-wcj-orders.php:513
|
3675 |
msgid "Default columns order"
|
3676 |
msgstr ""
|
3677 |
|
3685 |
"to show up."
|
3686 |
msgstr ""
|
3687 |
|
3688 |
+
#: includes/class-wcj-payment-gateways-by-country.php:81
|
3689 |
+
#: includes/class-wcj-payment-gateways-by-shipping.php:159
|
3690 |
+
#: includes/class-wcj-payment-gateways-by-user-role.php:71
|
3691 |
+
#: includes/class-wcj-payment-gateways-min-max.php:135
|
3692 |
+
#: includes/admin/wcj-modules-cats.php:101
|
3693 |
+
msgid "Payment Gateways"
|
3694 |
+
msgstr ""
|
3695 |
+
|
3696 |
+
#: includes/class-wcj-payment-gateways-by-country.php:83
|
3697 |
+
#: includes/class-wcj-payment-gateways-by-user-role.php:73
|
3698 |
msgid "Leave empty to disable."
|
3699 |
msgstr ""
|
3700 |
|
3701 |
+
#: includes/class-wcj-payment-gateways-by-country.php:106
|
3702 |
msgid "Include Countries"
|
3703 |
msgstr ""
|
3704 |
|
3705 |
+
#: includes/class-wcj-payment-gateways-by-country.php:118
|
3706 |
msgid "Exclude Countries"
|
3707 |
msgstr ""
|
3708 |
|
3709 |
+
#: includes/class-wcj-payment-gateways-by-country.php:130
|
3710 |
msgid "Include States (Base Country)"
|
3711 |
msgstr ""
|
3712 |
|
3713 |
+
#: includes/class-wcj-payment-gateways-by-country.php:142
|
3714 |
msgid "Exclude States (Base Country)"
|
3715 |
msgstr ""
|
3716 |
|
3717 |
+
#: includes/class-wcj-payment-gateways-by-shipping.php:27
|
3718 |
+
msgid "Gateways by Shipping"
|
3719 |
+
msgstr ""
|
3720 |
+
|
3721 |
+
#: includes/class-wcj-payment-gateways-by-shipping.php:28
|
3722 |
+
msgid "Set \"enable for shipping methods\" for WooCommerce payment gateways."
|
3723 |
+
msgstr ""
|
3724 |
+
|
3725 |
+
#: includes/class-wcj-payment-gateways-by-shipping.php:161
|
3726 |
+
msgid ""
|
3727 |
+
"If payment gateway is only available for certain methods, set it up here. "
|
3728 |
+
"Leave blank to enable for all methods."
|
3729 |
+
msgstr ""
|
3730 |
+
|
3731 |
+
#: includes/class-wcj-payment-gateways-by-shipping.php:182
|
3732 |
+
#: includes/gateways/class-wc-gateway-wcj-custom.php:119
|
3733 |
+
msgid "Enable for shipping methods"
|
3734 |
+
msgstr ""
|
3735 |
+
|
3736 |
+
#: includes/class-wcj-payment-gateways-by-shipping.php:189
|
3737 |
+
#: includes/gateways/class-wc-gateway-wcj-custom.php:127
|
3738 |
+
msgid "Select shipping methods"
|
3739 |
+
msgstr ""
|
3740 |
+
|
3741 |
#: includes/class-wcj-payment-gateways-by-user-role.php:27
|
3742 |
msgid "Gateways by User Role"
|
3743 |
msgstr ""
|
3748 |
"up."
|
3749 |
msgstr ""
|
3750 |
|
3751 |
+
#: includes/class-wcj-payment-gateways-by-user-role.php:74
|
3752 |
#: includes/class-wcj-product-by-user.php:258
|
3753 |
+
#, php-format
|
3754 |
msgid ""
|
3755 |
"Custom roles can be added via \"Add/Manage Custom Roles\" tool in Booster's "
|
3756 |
"<a href=\"%s\">General</a> module"
|
3757 |
msgstr ""
|
3758 |
|
3759 |
+
#: includes/class-wcj-payment-gateways-by-user-role.php:97
|
3760 |
msgid "Include User Roles"
|
3761 |
msgstr ""
|
3762 |
|
3763 |
+
#: includes/class-wcj-payment-gateways-by-user-role.php:109
|
3764 |
msgid "Exclude User Roles"
|
3765 |
msgstr ""
|
3766 |
|
3772 |
msgid "Currency per WooCommerce payment gateway."
|
3773 |
msgstr ""
|
3774 |
|
3775 |
+
#: includes/class-wcj-payment-gateways-currency.php:213
|
3776 |
msgid "Payment Gateways Currency Options"
|
3777 |
msgstr ""
|
3778 |
|
3779 |
+
#: includes/class-wcj-payment-gateways-currency.php:215
|
3780 |
msgid "This section lets you set different currency for each payment gateway."
|
3781 |
msgstr ""
|
3782 |
|
3783 |
+
#: includes/class-wcj-payment-gateways-currency.php:247
|
3784 |
msgid "No changes"
|
3785 |
msgstr ""
|
3786 |
|
3792 |
msgid "Enable extra fees or discounts for WooCommerce payment gateways."
|
3793 |
msgstr ""
|
3794 |
|
3795 |
+
#: includes/class-wcj-payment-gateways-fees.php:131
|
3796 |
+
msgid "Fee (or Discount) Title"
|
3797 |
msgstr ""
|
3798 |
|
3799 |
+
#: includes/class-wcj-payment-gateways-fees.php:132
|
3800 |
+
msgid "Fee (or discount) title to show to customer."
|
3801 |
msgstr ""
|
3802 |
|
3803 |
+
#: includes/class-wcj-payment-gateways-fees.php:133
|
3804 |
+
#: includes/class-wcj-purchase-data.php:337
|
3805 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-header.php:58
|
3806 |
+
msgid "Leave blank to disable"
|
3807 |
msgstr ""
|
3808 |
|
3809 |
+
#: includes/class-wcj-payment-gateways-fees.php:139
|
3810 |
+
msgid "Fee (or Discount) Type"
|
3811 |
msgstr ""
|
3812 |
|
3813 |
+
#: includes/class-wcj-payment-gateways-fees.php:140
|
3814 |
msgid "Percent or fixed value."
|
3815 |
msgstr ""
|
3816 |
|
3817 |
+
#: includes/class-wcj-payment-gateways-fees.php:150
|
3818 |
+
msgid "Fee (or Discount) Value"
|
3819 |
msgstr ""
|
3820 |
|
3821 |
+
#: includes/class-wcj-payment-gateways-fees.php:151
|
3822 |
msgid "The value. For discount enter a negative number."
|
3823 |
msgstr ""
|
3824 |
|
3825 |
+
#: includes/class-wcj-payment-gateways-fees.php:160
|
3826 |
+
msgid "Minimum Cart Amount"
|
3827 |
+
msgstr ""
|
3828 |
+
|
3829 |
+
#: includes/class-wcj-payment-gateways-fees.php:161
|
3830 |
msgid "Minimum cart amount for adding the fee (or discount)."
|
3831 |
msgstr ""
|
3832 |
|
3833 |
+
#: includes/class-wcj-payment-gateways-fees.php:162
|
3834 |
+
#: includes/class-wcj-payment-gateways-fees.php:174
|
3835 |
+
msgid "Set 0 to disable"
|
3836 |
+
msgstr ""
|
3837 |
+
|
3838 |
+
#: includes/class-wcj-payment-gateways-fees.php:172
|
3839 |
+
msgid "Maximum Cart Amount"
|
3840 |
msgstr ""
|
3841 |
|
3842 |
+
#: includes/class-wcj-payment-gateways-fees.php:173
|
3843 |
msgid "Maximum cart amount for adding the fee (or discount)."
|
3844 |
msgstr ""
|
3845 |
|
3846 |
+
#: includes/class-wcj-payment-gateways-fees.php:185
|
3847 |
+
msgid "Round the fee (or discount) value before adding to the cart"
|
3848 |
+
msgstr ""
|
3849 |
+
|
3850 |
+
#: includes/class-wcj-payment-gateways-fees.php:192
|
3851 |
+
msgid "If Rounding is enabled, set precision here."
|
3852 |
+
msgstr ""
|
3853 |
+
|
3854 |
+
#: includes/class-wcj-payment-gateways-fees.php:202
|
3855 |
+
msgid "Taxing"
|
3856 |
msgstr ""
|
3857 |
|
3858 |
+
#: includes/class-wcj-payment-gateways-fees.php:203
|
3859 |
+
msgid "Taxable"
|
3860 |
msgstr ""
|
3861 |
|
3862 |
+
#: includes/class-wcj-payment-gateways-fees.php:209
|
3863 |
+
#: includes/export/class-wcj-fields-helper.php:308
|
3864 |
+
msgid "Tax Class"
|
3865 |
msgstr ""
|
3866 |
|
3867 |
+
#: includes/class-wcj-payment-gateways-fees.php:210
|
3868 |
+
msgid "If Taxing is enabled, set tax class here."
|
3869 |
msgstr ""
|
3870 |
|
3871 |
+
#: includes/class-wcj-payment-gateways-fees.php:214
|
3872 |
msgid "Standard Rate"
|
3873 |
msgstr ""
|
3874 |
|
3898 |
msgstr ""
|
3899 |
|
3900 |
#: includes/class-wcj-payment-gateways-min-max.php:26
|
3901 |
+
msgid "Gateways Min/Max Amounts"
|
3902 |
msgstr ""
|
3903 |
|
3904 |
#: includes/class-wcj-payment-gateways-min-max.php:27
|
3905 |
msgid "Add min/max amounts for WooCommerce payment gateways to show up."
|
3906 |
msgstr ""
|
3907 |
|
3908 |
+
#: includes/class-wcj-payment-gateways-min-max.php:45
|
3909 |
+
#: includes/class-wcj-payment-gateways-min-max.php:107
|
3910 |
+
msgid "Minimum amount for %gateway_title% is %min_amount%"
|
3911 |
+
msgstr ""
|
3912 |
+
|
3913 |
+
#: includes/class-wcj-payment-gateways-min-max.php:46
|
3914 |
+
#: includes/class-wcj-payment-gateways-min-max.php:115
|
3915 |
+
msgid "Maximum amount for %gateway_title% is %max_amount%"
|
3916 |
+
msgstr ""
|
3917 |
+
|
3918 |
+
#: includes/class-wcj-payment-gateways-min-max.php:85
|
3919 |
msgid "General Options"
|
3920 |
msgstr ""
|
3921 |
|
3922 |
+
#: includes/class-wcj-payment-gateways-min-max.php:90
|
3923 |
msgid "Exclude Shipping"
|
3924 |
msgstr ""
|
3925 |
|
3926 |
+
#: includes/class-wcj-payment-gateways-min-max.php:91
|
3927 |
msgid ""
|
3928 |
"Exclude shipping from total cart sum, when comparing with min/max amounts."
|
3929 |
msgstr ""
|
3930 |
|
3931 |
+
#: includes/class-wcj-payment-gateways-min-max.php:97
|
3932 |
+
msgid "Notices on Checkout"
|
3933 |
+
msgstr ""
|
3934 |
+
|
3935 |
+
#: includes/class-wcj-payment-gateways-min-max.php:98
|
3936 |
+
msgid "Enable Notices"
|
3937 |
+
msgstr ""
|
3938 |
+
|
3939 |
+
#: includes/class-wcj-payment-gateways-min-max.php:104
|
3940 |
+
msgid "Notice Template (Minimum Amount)"
|
3941 |
+
msgstr ""
|
3942 |
+
|
3943 |
+
#: includes/class-wcj-payment-gateways-min-max.php:105
|
3944 |
+
msgid "Replaced values: %gateway_title%, %min_amount%."
|
3945 |
+
msgstr ""
|
3946 |
+
|
3947 |
+
#: includes/class-wcj-payment-gateways-min-max.php:112
|
3948 |
+
msgid "Notice Template (Maximum Amount)"
|
3949 |
+
msgstr ""
|
3950 |
+
|
3951 |
+
#: includes/class-wcj-payment-gateways-min-max.php:113
|
3952 |
+
msgid "Replaced values: %gateway_title%, %max_amount%."
|
3953 |
+
msgstr ""
|
3954 |
+
|
3955 |
+
#: includes/class-wcj-payment-gateways-min-max.php:120
|
3956 |
+
msgid "Notice Styling"
|
3957 |
+
msgstr ""
|
3958 |
+
|
3959 |
+
#: includes/class-wcj-payment-gateways-min-max.php:125
|
3960 |
+
msgid "Notice"
|
3961 |
+
msgstr ""
|
3962 |
+
|
3963 |
+
#: includes/class-wcj-payment-gateways-min-max.php:126
|
3964 |
+
msgid "Error"
|
3965 |
+
msgstr ""
|
3966 |
+
|
3967 |
+
#: includes/class-wcj-payment-gateways-min-max.php:127
|
3968 |
+
msgid "Success"
|
3969 |
+
msgstr ""
|
3970 |
+
|
3971 |
+
#: includes/class-wcj-payment-gateways-min-max.php:137
|
3972 |
msgid "Leave zero to disable."
|
3973 |
msgstr ""
|
3974 |
|
3975 |
+
#: includes/class-wcj-payment-gateways-min-max.php:158
|
3976 |
msgid "Min"
|
3977 |
msgstr ""
|
3978 |
|
3979 |
+
#: includes/class-wcj-payment-gateways-min-max.php:167
|
3980 |
msgid "Max"
|
3981 |
msgstr ""
|
3982 |
|
3990 |
"category in cart."
|
3991 |
msgstr ""
|
3992 |
|
3993 |
+
#: includes/class-wcj-payment-gateways-per-category.php:185
|
3994 |
+
#: includes/class-wcj-price-labels.php:609
|
3995 |
msgid "Product Categories - Include"
|
3996 |
msgstr ""
|
3997 |
|
3998 |
+
#: includes/class-wcj-payment-gateways-per-category.php:186
|
3999 |
msgid ""
|
4000 |
"Show gateway only if there is product of selected category in cart. Leave "
|
4001 |
"blank to disable the option."
|
4002 |
msgstr ""
|
4003 |
|
4004 |
+
#: includes/class-wcj-payment-gateways-per-category.php:196
|
4005 |
+
#: includes/class-wcj-price-labels.php:619
|
4006 |
msgid "Product Categories - Exclude"
|
4007 |
msgstr ""
|
4008 |
|
4009 |
+
#: includes/class-wcj-payment-gateways-per-category.php:197
|
4010 |
msgid ""
|
4011 |
"Hide gateway if there is product of selected category in cart. Leave blank "
|
4012 |
"to disable the option."
|
4013 |
msgstr ""
|
4014 |
|
4015 |
+
#: includes/class-wcj-payment-gateways-per-category.php:207
|
4016 |
+
#: includes/class-wcj-price-labels.php:589
|
4017 |
msgid "Products - Include"
|
4018 |
msgstr ""
|
4019 |
|
4020 |
+
#: includes/class-wcj-payment-gateways-per-category.php:208
|
4021 |
msgid ""
|
4022 |
"Show gateway only if there is selected products in cart. Leave blank to "
|
4023 |
"disable the option."
|
4024 |
msgstr ""
|
4025 |
|
4026 |
+
#: includes/class-wcj-payment-gateways-per-category.php:219
|
4027 |
+
#: includes/class-wcj-price-labels.php:599
|
4028 |
msgid "Products - Exclude"
|
4029 |
msgstr ""
|
4030 |
|
4031 |
+
#: includes/class-wcj-payment-gateways-per-category.php:220
|
4032 |
msgid ""
|
4033 |
"Hide gateway if there is selected products in cart. Leave blank to disable "
|
4034 |
"the option."
|
4043 |
msgstr ""
|
4044 |
|
4045 |
#: includes/class-wcj-payment-gateways.php:55
|
4046 |
+
#, php-format
|
4047 |
msgid "%s Fields"
|
4048 |
msgstr ""
|
4049 |
|
4060 |
msgstr ""
|
4061 |
|
4062 |
#: includes/class-wcj-payment-gateways.php:123
|
4063 |
+
#, php-format
|
4064 |
msgid "After setting the number, visit %s to set each gateway options."
|
4065 |
msgstr ""
|
4066 |
|
4112 |
|
4113 |
#: includes/class-wcj-pdf-invoicing.php:89
|
4114 |
#: includes/class-wcj-pdf-invoicing.php:90
|
4115 |
+
#: includes/class-wcj-price-by-country.php:300
|
4116 |
+
#: includes/class-wcj-price-by-country.php:305
|
4117 |
+
#: includes/class-wcj-price-by-country.php:310
|
4118 |
msgid "Generate"
|
4119 |
msgstr ""
|
4120 |
|
4124 |
msgstr ""
|
4125 |
|
4126 |
#: includes/class-wcj-pdf-invoicing.php:114
|
4127 |
+
#, php-format
|
4128 |
msgid "Document generated."
|
4129 |
msgid_plural "%s documents generated."
|
4130 |
msgstr[0] ""
|
4131 |
msgstr[1] ""
|
4132 |
|
4133 |
#: includes/class-wcj-pdf-invoicing.php:220
|
4134 |
+
#: includes/classes/class-wcj-pdf-invoice.php:368
|
4135 |
#: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:195
|
4136 |
msgid "Unexpected error"
|
4137 |
msgstr ""
|
4138 |
|
4139 |
+
#: includes/class-wcj-pdf-invoicing.php:344
|
4140 |
msgid "PDF Invoicing General Options"
|
4141 |
msgstr ""
|
4142 |
|
4143 |
+
#: includes/class-wcj-pdf-invoicing.php:353
|
4144 |
msgid "Create on New Order"
|
4145 |
msgstr ""
|
4146 |
|
4147 |
+
#: includes/class-wcj-pdf-invoicing.php:356
|
4148 |
msgid "Create on Order Status"
|
4149 |
msgstr ""
|
4150 |
|
4151 |
+
#: includes/class-wcj-pdf-invoicing.php:358
|
4152 |
msgid "Manual Only"
|
4153 |
msgstr ""
|
4154 |
|
4155 |
+
#: includes/class-wcj-pdf-invoicing.php:366
|
4156 |
+
msgid "Number of Custom Documents"
|
4157 |
+
msgstr ""
|
4158 |
+
|
4159 |
+
#: includes/class-wcj-pdf-invoicing.php:367
|
4160 |
+
msgid "Save changes after setting this number."
|
4161 |
+
msgstr ""
|
4162 |
+
|
4163 |
+
#: includes/class-wcj-pdf-invoicing.php:390
|
4164 |
msgid "Do not create if order total equals zero"
|
4165 |
msgstr ""
|
4166 |
|
4167 |
+
#: includes/class-wcj-pdf-invoicing.php:396
|
4168 |
msgid "Hide Disabled Docs Settings"
|
4169 |
msgstr ""
|
4170 |
|
4230 |
msgid "Override Country with Customer's Checkout Shipping Country"
|
4231 |
msgstr ""
|
4232 |
|
4233 |
+
#: includes/class-wcj-price-by-country.php:184
|
4234 |
+
msgid "Override Scope"
|
4235 |
+
msgstr ""
|
4236 |
+
|
4237 |
+
#: includes/class-wcj-price-by-country.php:189
|
4238 |
+
msgid "All site"
|
4239 |
+
msgstr ""
|
4240 |
+
|
4241 |
+
#: includes/class-wcj-price-by-country.php:191
|
4242 |
+
msgid "Checkout only"
|
4243 |
+
msgstr ""
|
4244 |
+
|
4245 |
+
#: includes/class-wcj-price-by-country.php:204
|
4246 |
msgid "Price Rounding"
|
4247 |
msgstr ""
|
4248 |
|
4249 |
+
#: includes/class-wcj-price-by-country.php:205
|
4250 |
msgid "If you choose to multiply price, set rounding options here."
|
4251 |
msgstr ""
|
4252 |
|
4253 |
+
#: includes/class-wcj-price-by-country.php:218
|
4254 |
+
msgid "Make Pretty Price"
|
4255 |
+
msgstr ""
|
4256 |
+
|
4257 |
+
#: includes/class-wcj-price-by-country.php:220
|
4258 |
+
msgid ""
|
4259 |
+
"If enabled, this will be applied if exchange rates are used. Final converted "
|
4260 |
+
"price will be rounded, then decreased by smallest possible value. For "
|
4261 |
+
"example: $9,75 -> $10,00 -> $9,99. Please note that as smallest possible "
|
4262 |
+
"value is calculated from shop's \"Precision\" option, this option must be "
|
4263 |
+
"above zero."
|
4264 |
+
msgstr ""
|
4265 |
+
|
4266 |
+
#: includes/class-wcj-price-by-country.php:227
|
4267 |
+
msgid "Discount Min Amount Multiplier"
|
4268 |
+
msgstr ""
|
4269 |
+
|
4270 |
+
#: includes/class-wcj-price-by-country.php:228
|
4271 |
+
msgid ""
|
4272 |
+
"If \"Make Pretty Price\" is enabled, here you can set by how many smallest "
|
4273 |
+
"possible values (e.g. cents) final price should be decreased."
|
4274 |
+
msgstr ""
|
4275 |
+
|
4276 |
+
#: includes/class-wcj-price-by-country.php:236
|
4277 |
msgid "Price by Country on per Product Basis"
|
4278 |
msgstr ""
|
4279 |
|
4280 |
+
#: includes/class-wcj-price-by-country.php:238
|
4281 |
msgid "This will add product data fields in product edit."
|
4282 |
msgstr ""
|
4283 |
|
4284 |
+
#: includes/class-wcj-price-by-country.php:245
|
4285 |
msgid "Price Filter Widget and Sorting by Price Support"
|
4286 |
msgstr ""
|
4287 |
|
4288 |
+
#: includes/class-wcj-price-by-country.php:248
|
4289 |
msgid "Recalculate price filter widget and sorting by price product prices"
|
4290 |
msgstr ""
|
4291 |
|
4292 |
+
#: includes/class-wcj-price-by-country.php:255
|
4293 |
msgid "Add Countries Flags Images to Select Drop-Down Box"
|
4294 |
msgstr ""
|
4295 |
|
4296 |
+
#: includes/class-wcj-price-by-country.php:257
|
4297 |
msgid ""
|
4298 |
"If you are using [wcj_country_select_drop_down_list] shortcode or \"Booster: "
|
4299 |
"Country Switcher\" widget, this will add country flags to these select boxes."
|
4300 |
msgstr ""
|
4301 |
|
4302 |
+
#: includes/class-wcj-price-by-country.php:264
|
4303 |
+
#: includes/class-wcj-price-by-user-role.php:354
|
4304 |
msgid "Search Engine Bots"
|
4305 |
msgstr ""
|
4306 |
|
4307 |
+
#: includes/class-wcj-price-by-country.php:265
|
4308 |
msgid "Disable Price by Country for Bots"
|
4309 |
msgstr ""
|
4310 |
|
4311 |
+
#: includes/class-wcj-price-by-country.php:274
|
4312 |
msgid "Country Groups"
|
4313 |
msgstr ""
|
4314 |
|
4315 |
+
#: includes/class-wcj-price-by-country.php:280
|
4316 |
msgid "Countries Selection"
|
4317 |
msgstr ""
|
4318 |
|
4319 |
+
#: includes/class-wcj-price-by-country.php:281
|
4320 |
msgid "Choose how do you want to enter countries groups in admin."
|
4321 |
msgstr ""
|
4322 |
|
4323 |
+
#: includes/class-wcj-price-by-country.php:286
|
4324 |
msgid "Comma separated list"
|
4325 |
msgstr ""
|
4326 |
|
4327 |
+
#: includes/class-wcj-price-by-country.php:287
|
4328 |
msgid "Multiselect"
|
4329 |
msgstr ""
|
4330 |
|
4331 |
+
#: includes/class-wcj-price-by-country.php:288
|
4332 |
msgid "Chosen select"
|
4333 |
msgstr ""
|
4334 |
|
4335 |
+
#: includes/class-wcj-price-by-country.php:293
|
4336 |
msgid "Autogenerate Groups"
|
4337 |
msgstr ""
|
4338 |
|
4339 |
+
#: includes/class-wcj-price-by-country.php:298
|
4340 |
msgid "Currencies supported in both PayPal and Yahoo Exchange Rates:"
|
4341 |
msgstr ""
|
4342 |
|
4343 |
+
#: includes/class-wcj-price-by-country.php:303
|
4344 |
msgid "Currencies supported in Yahoo Exchange Rates:"
|
4345 |
msgstr ""
|
4346 |
|
4347 |
+
#: includes/class-wcj-price-by-country.php:308
|
4348 |
msgid "All Countries and Currencies:"
|
4349 |
msgstr ""
|
4350 |
|
4351 |
+
#: includes/class-wcj-price-by-country.php:315
|
4352 |
msgid "Groups Number"
|
4353 |
msgstr ""
|
4354 |
|
4355 |
+
#: includes/class-wcj-price-by-country.php:334
|
4356 |
msgid ""
|
4357 |
"Countries. List of comma separated country codes.<br>For country codes and "
|
4358 |
+
"predifined sets visit <a href=\"http://booster.io/country-codes/\" target="
|
4359 |
+
"\"_blank\">http://booster.io/country-codes/</a>"
|
4360 |
msgstr ""
|
4361 |
|
4362 |
+
#: includes/class-wcj-price-by-country.php:410
|
4363 |
msgid "Multiply Price by"
|
4364 |
msgstr ""
|
4365 |
|
4366 |
+
#: includes/class-wcj-price-by-country.php:431
|
4367 |
+
#: includes/price-by-country/class-wcj-price-by-country-local.php:142
|
4368 |
msgid "Make empty price"
|
4369 |
msgstr ""
|
4370 |
|
4389 |
msgstr ""
|
4390 |
|
4391 |
#: includes/class-wcj-price-by-user-role.php:185
|
4392 |
+
#: includes/class-wcj-price-by-user-role.php:382
|
4393 |
msgid "Make Empty Price"
|
4394 |
msgstr ""
|
4395 |
|
4396 |
+
#: includes/class-wcj-price-by-user-role.php:329
|
4397 |
msgid "Enable per Product Settings"
|
4398 |
msgstr ""
|
4399 |
|
4400 |
+
#: includes/class-wcj-price-by-user-role.php:331
|
4401 |
msgid ""
|
4402 |
"When enabled, this will add new \"Booster: Price by User Role\" meta box to "
|
4403 |
"each product's edit page."
|
4404 |
msgstr ""
|
4405 |
|
4406 |
+
#: includes/class-wcj-price-by-user-role.php:337
|
4407 |
msgid "Show Roles on per Product Settings"
|
4408 |
msgstr ""
|
4409 |
|
4410 |
+
#: includes/class-wcj-price-by-user-role.php:338
|
4411 |
msgid ""
|
4412 |
"If per product settings is enabled, you can choose which roles to show on "
|
4413 |
"product's edit page. Leave blank to show all roles."
|
4414 |
msgstr ""
|
4415 |
|
4416 |
+
#: includes/class-wcj-price-by-user-role.php:348
|
4417 |
msgid ""
|
4418 |
"When enabled, this will apply user role multipliers to shipping calculations."
|
4419 |
msgstr ""
|
4420 |
|
4421 |
+
#: includes/class-wcj-price-by-user-role.php:355
|
4422 |
msgid "Disable Price by User Role for Bots"
|
4423 |
msgstr ""
|
4424 |
|
4425 |
+
#: includes/class-wcj-price-by-user-role.php:366
|
4426 |
msgid "Roles & Multipliers"
|
4427 |
msgstr ""
|
4428 |
|
4434 |
msgid "Set different WooCommerce price formats for different currencies."
|
4435 |
msgstr ""
|
4436 |
|
4437 |
+
#: includes/class-wcj-price-formats.php:100
|
4438 |
msgid "Formats"
|
4439 |
msgstr ""
|
4440 |
|
4441 |
+
#: includes/class-wcj-price-formats.php:105
|
4442 |
msgid "Total Number"
|
4443 |
msgstr ""
|
4444 |
|
4445 |
+
#: includes/class-wcj-price-formats.php:120
|
4446 |
msgid "Format"
|
4447 |
msgstr ""
|
4448 |
|
4449 |
+
#: includes/class-wcj-price-formats.php:129
|
4450 |
msgid "Currency Position"
|
4451 |
msgstr ""
|
4452 |
|
4453 |
+
#: includes/class-wcj-price-formats.php:134
|
4454 |
msgid "Left"
|
4455 |
msgstr ""
|
4456 |
|
4457 |
+
#: includes/class-wcj-price-formats.php:135
|
4458 |
msgid "Right"
|
4459 |
msgstr ""
|
4460 |
|
4461 |
+
#: includes/class-wcj-price-formats.php:136
|
4462 |
msgid "Left with space"
|
4463 |
msgstr ""
|
4464 |
|
4465 |
+
#: includes/class-wcj-price-formats.php:137
|
4466 |
msgid "Right with space"
|
4467 |
msgstr ""
|
4468 |
|
4469 |
+
#: includes/class-wcj-price-formats.php:142
|
4470 |
msgid "Thousand Separator"
|
4471 |
msgstr ""
|
4472 |
|
4473 |
+
#: includes/class-wcj-price-formats.php:149
|
4474 |
msgid "Decimal Separator"
|
4475 |
msgstr ""
|
4476 |
|
4477 |
+
#: includes/class-wcj-price-formats.php:156
|
4478 |
msgid "Number of Decimals"
|
4479 |
msgstr ""
|
4480 |
|
4481 |
+
#: includes/class-wcj-price-formats.php:167
|
4482 |
msgid "WPML Language Code"
|
4483 |
msgstr ""
|
4484 |
|
4485 |
+
#: includes/class-wcj-price-formats.php:168
|
4486 |
msgid ""
|
4487 |
"Option to set different price formats for different WPML languages. Can be "
|
4488 |
"comma separated list. Leave empty to disable."
|
4496 |
msgid "Create any custom price label for any WooCommerce product."
|
4497 |
msgstr ""
|
4498 |
|
4499 |
+
#: includes/class-wcj-price-labels.php:34
|
4500 |
+
#: includes/class-wcj-price-labels.php:581
|
4501 |
+
msgid "Instead of the price"
|
4502 |
msgstr ""
|
4503 |
|
4504 |
+
#: includes/class-wcj-price-labels.php:35
|
4505 |
+
msgid "Before the price"
|
|
|
|
|
4506 |
msgstr ""
|
4507 |
|
4508 |
+
#: includes/class-wcj-price-labels.php:36
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4509 |
msgid "Between regular and sale prices"
|
4510 |
msgstr ""
|
4511 |
|
4512 |
+
#: includes/class-wcj-price-labels.php:37
|
4513 |
msgid "After the price"
|
4514 |
msgstr ""
|
4515 |
|
4516 |
+
#: includes/class-wcj-price-labels.php:43
|
4517 |
msgid "Hide on home page"
|
4518 |
msgstr ""
|
4519 |
|
4520 |
+
#: includes/class-wcj-price-labels.php:44
|
4521 |
msgid "Hide on products page"
|
4522 |
msgstr ""
|
4523 |
|
4524 |
+
#: includes/class-wcj-price-labels.php:45
|
4525 |
msgid "Hide on single"
|
4526 |
msgstr ""
|
4527 |
|
4528 |
+
#: includes/class-wcj-price-labels.php:46
|
4529 |
msgid "Hide on all pages"
|
4530 |
msgstr ""
|
4531 |
|
4532 |
+
#: includes/class-wcj-price-labels.php:47
|
4533 |
msgid "Hide on cart page only"
|
4534 |
msgstr ""
|
4535 |
|
4536 |
+
#: includes/class-wcj-price-labels.php:49
|
4537 |
msgid "Hide for main price"
|
4538 |
msgstr ""
|
4539 |
|
4540 |
+
#: includes/class-wcj-price-labels.php:50
|
4541 |
msgid "Hide for all variations"
|
4542 |
msgstr ""
|
4543 |
|
4544 |
+
#: includes/class-wcj-price-labels.php:145
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4545 |
msgid "Booster: Custom Price Labels"
|
4546 |
msgstr ""
|
4547 |
|
4548 |
+
#: includes/class-wcj-price-labels.php:515
|
4549 |
msgid "Custom Price Labels - Globally"
|
4550 |
msgstr ""
|
4551 |
|
4552 |
+
#: includes/class-wcj-price-labels.php:517
|
4553 |
msgid "This section lets you set price labels for all products globally."
|
4554 |
msgstr ""
|
4555 |
|
4556 |
+
#: includes/class-wcj-price-labels.php:521
|
4557 |
msgid "Add before the price"
|
4558 |
msgstr ""
|
4559 |
|
4560 |
+
#: includes/class-wcj-price-labels.php:522
|
4561 |
msgid "Enter text to add before all products prices. Leave blank to disable."
|
4562 |
msgstr ""
|
4563 |
|
4564 |
+
#: includes/class-wcj-price-labels.php:531
|
4565 |
msgid "Add after the price"
|
4566 |
msgstr ""
|
4567 |
|
4568 |
+
#: includes/class-wcj-price-labels.php:532
|
4569 |
msgid "Enter text to add after all products prices. Leave blank to disable."
|
4570 |
msgstr ""
|
4571 |
|
4572 |
+
#: includes/class-wcj-price-labels.php:539
|
4573 |
msgid "Add between regular and sale prices"
|
4574 |
msgstr ""
|
4575 |
|
4576 |
+
#: includes/class-wcj-price-labels.php:540
|
4577 |
msgid ""
|
4578 |
"Enter text to add between regular and sale prices. Leave blank to disable."
|
4579 |
msgstr ""
|
4580 |
|
4581 |
+
#: includes/class-wcj-price-labels.php:549
|
4582 |
msgid "Remove from price"
|
4583 |
msgstr ""
|
4584 |
|
4585 |
+
#: includes/class-wcj-price-labels.php:551
|
4586 |
msgid "Enter text to remove from all products prices. Leave blank to disable."
|
4587 |
msgstr ""
|
4588 |
|
4589 |
+
#: includes/class-wcj-price-labels.php:560
|
4590 |
msgid "Replace in price"
|
4591 |
msgstr ""
|
4592 |
|
4593 |
+
#: includes/class-wcj-price-labels.php:561
|
4594 |
msgid "Enter text to replace in all products prices. Leave blank to disable."
|
4595 |
msgstr ""
|
4596 |
|
4597 |
+
#: includes/class-wcj-price-labels.php:572
|
4598 |
msgid "Enter text to replace with. Leave blank to disable."
|
4599 |
msgstr ""
|
4600 |
|
4601 |
+
#: includes/class-wcj-price-labels.php:582
|
4602 |
+
msgid "Enter text to display instead of the price. Leave blank to disable."
|
4603 |
+
msgstr ""
|
4604 |
+
|
4605 |
+
#: includes/class-wcj-price-labels.php:590
|
4606 |
msgid ""
|
4607 |
"Apply global price labels only for selected products. Leave blank to disable "
|
4608 |
"the option."
|
4609 |
msgstr ""
|
4610 |
|
4611 |
+
#: includes/class-wcj-price-labels.php:600
|
4612 |
msgid ""
|
4613 |
"Do not apply global price labels only for selected products. Leave blank to "
|
4614 |
"disable the option."
|
4615 |
msgstr ""
|
4616 |
|
4617 |
+
#: includes/class-wcj-price-labels.php:610
|
4618 |
msgid ""
|
4619 |
"Apply global price labels only for selected product categories. Leave blank "
|
4620 |
"to disable the option."
|
4621 |
msgstr ""
|
4622 |
|
4623 |
+
#: includes/class-wcj-price-labels.php:620
|
4624 |
msgid ""
|
4625 |
"Do not apply global price labels only for selected product categories. Leave "
|
4626 |
"blank to disable the option."
|
4627 |
msgstr ""
|
4628 |
|
4629 |
+
#: includes/class-wcj-price-labels.php:629
|
4630 |
msgid "Product Types - Include"
|
4631 |
msgstr ""
|
4632 |
|
4633 |
+
#: includes/class-wcj-price-labels.php:630
|
4634 |
msgid ""
|
4635 |
"Apply global price labels only for selected product types. Leave blank to "
|
4636 |
"disable the option."
|
4637 |
msgstr ""
|
4638 |
|
4639 |
+
#: includes/class-wcj-price-labels.php:636
|
4640 |
msgid "Variable product's variation"
|
4641 |
msgstr ""
|
4642 |
|
4643 |
+
#: includes/class-wcj-price-labels.php:643
|
4644 |
msgid "Custom Price Labels - Per Product"
|
4645 |
msgstr ""
|
4646 |
|
4647 |
+
#: includes/class-wcj-price-labels.php:649
|
4648 |
msgid "This will add metaboxes to each product's admin edit page."
|
4649 |
msgstr ""
|
4650 |
|
4676 |
msgid "Open external products on add to cart in new window."
|
4677 |
msgstr ""
|
4678 |
|
4679 |
+
#: includes/class-wcj-product-add-to-cart.php:33
|
4680 |
+
msgid ""
|
4681 |
+
"Replace Add to Cart button on archives with button from single product pages."
|
4682 |
+
msgstr ""
|
4683 |
+
|
4684 |
+
#: includes/class-wcj-product-add-to-cart.php:281
|
4685 |
+
#: includes/class-wcj-product-add-to-cart.php:460
|
4686 |
+
#: includes/class-wcj-product-add-to-cart.php:466
|
4687 |
+
msgid "Add to Cart on Visit"
|
4688 |
+
msgstr ""
|
4689 |
+
|
4690 |
+
#: includes/class-wcj-product-add-to-cart.php:295
|
4691 |
msgid "Disable Add to Cart Button (Single Product Page)"
|
4692 |
msgstr ""
|
4693 |
|
4694 |
+
#: includes/class-wcj-product-add-to-cart.php:305
|
4695 |
msgid "Disable Add to Cart Button (Category/Archives)"
|
4696 |
msgstr ""
|
4697 |
|
4698 |
+
#: includes/class-wcj-product-add-to-cart.php:315
|
4699 |
msgid "Custom Add to Cart Button URL (Category/Archives)"
|
4700 |
msgstr ""
|
4701 |
|
4702 |
+
#: includes/class-wcj-product-add-to-cart.php:326
|
4703 |
msgid "As shop default (no changes)"
|
4704 |
msgstr ""
|
4705 |
|
4706 |
+
#: includes/class-wcj-product-add-to-cart.php:330
|
4707 |
msgid "Disable Add to Cart Button AJAX"
|
4708 |
msgstr ""
|
4709 |
|
4710 |
+
#: includes/class-wcj-product-add-to-cart.php:430
|
4711 |
msgid "Add to Cart Local Redirect Options"
|
4712 |
msgstr ""
|
4713 |
|
4714 |
+
#: includes/class-wcj-product-add-to-cart.php:432
|
4715 |
msgid ""
|
4716 |
"This section lets you set any local URL to redirect to after successfully "
|
4717 |
"adding product to cart. Leave empty to redirect to checkout page (skipping "
|
4718 |
"the cart page)."
|
4719 |
msgstr ""
|
4720 |
|
4721 |
+
#: includes/class-wcj-product-add-to-cart.php:436
|
4722 |
msgid "Local Redirect"
|
4723 |
msgstr ""
|
4724 |
|
4725 |
+
#: includes/class-wcj-product-add-to-cart.php:443
|
4726 |
msgid "Local Redirect URL"
|
4727 |
msgstr ""
|
4728 |
|
4729 |
+
#: includes/class-wcj-product-add-to-cart.php:444
|
4730 |
msgid "Performs a safe (local) redirect, using wp_redirect()."
|
4731 |
msgstr ""
|
4732 |
|
4733 |
+
#: includes/class-wcj-product-add-to-cart.php:445
|
4734 |
msgid "Local redirect URL. Leave empty to redirect to checkout."
|
4735 |
msgstr ""
|
4736 |
|
4737 |
+
#: includes/class-wcj-product-add-to-cart.php:447
|
4738 |
+
#, php-format
|
4739 |
+
msgid ""
|
4740 |
+
"For archives - \"Enable AJAX add to cart buttons on archives\" checkbox in "
|
4741 |
+
"<a href=\"%s\">WooCommerce > Settings > Products > Display</a> must be "
|
4742 |
+
"disabled."
|
4743 |
msgstr ""
|
4744 |
|
4745 |
+
#: includes/class-wcj-product-add-to-cart.php:462
|
4746 |
msgid ""
|
4747 |
"This section lets you enable automatically adding product to cart on "
|
4748 |
"visiting the product page. Product is only added once, so if it is already "
|
4749 |
"in cart - duplicate product is not added. "
|
4750 |
msgstr ""
|
4751 |
|
4752 |
+
#: includes/class-wcj-product-add-to-cart.php:467
|
4753 |
+
msgid ""
|
4754 |
+
"If \"Per Product\" is selected - meta box will be added to each product's "
|
4755 |
+
"edit page."
|
4756 |
+
msgstr ""
|
4757 |
+
|
4758 |
+
#: includes/class-wcj-product-add-to-cart.php:474
|
4759 |
+
msgid "Per product"
|
4760 |
+
msgstr ""
|
4761 |
+
|
4762 |
+
#: includes/class-wcj-product-add-to-cart.php:482
|
4763 |
msgid "Add to Cart Variable Product"
|
4764 |
msgstr ""
|
4765 |
|
4766 |
+
#: includes/class-wcj-product-add-to-cart.php:487
|
4767 |
msgid "Display Radio Buttons Instead of Drop Box"
|
4768 |
msgstr ""
|
4769 |
|
4770 |
+
#: includes/class-wcj-product-add-to-cart.php:500
|
4771 |
+
msgid "Replace Add to Cart Button on Archives with Single"
|
4772 |
+
msgstr ""
|
4773 |
+
|
4774 |
+
#: includes/class-wcj-product-add-to-cart.php:505
|
4775 |
+
msgid ""
|
4776 |
+
"Replace Add to Cart Button on Archives with Button from Single Product Pages"
|
4777 |
+
msgstr ""
|
4778 |
+
|
4779 |
+
#: includes/class-wcj-product-add-to-cart.php:512
|
4780 |
+
msgid "Variable products only"
|
4781 |
+
msgstr ""
|
4782 |
+
|
4783 |
+
#: includes/class-wcj-product-add-to-cart.php:520
|
4784 |
msgid "Add to Cart Quantity"
|
4785 |
msgstr ""
|
4786 |
|
4787 |
+
#: includes/class-wcj-product-add-to-cart.php:525
|
4788 |
msgid "Disable Quantity Field for All Products"
|
4789 |
msgstr ""
|
4790 |
|
4791 |
+
#: includes/class-wcj-product-add-to-cart.php:526
|
4792 |
msgid "Disable on Single Product Page"
|
4793 |
msgstr ""
|
4794 |
|
4795 |
+
#: includes/class-wcj-product-add-to-cart.php:533
|
4796 |
msgid "Disable on Cart Page"
|
4797 |
msgstr ""
|
4798 |
|
4799 |
+
#: includes/class-wcj-product-add-to-cart.php:544
|
4800 |
msgid "Add to Cart Button Disabling"
|
4801 |
msgstr ""
|
4802 |
|
4803 |
+
#: includes/class-wcj-product-add-to-cart.php:549
|
4804 |
msgid "Disable Add to Cart Buttons on per Product Basis"
|
4805 |
msgstr ""
|
4806 |
|
4807 |
+
#: includes/class-wcj-product-add-to-cart.php:551
|
4808 |
+
#: includes/class-wcj-product-add-to-cart.php:582
|
4809 |
+
#: includes/class-wcj-product-add-to-cart.php:599
|
4810 |
msgid "This will add meta box to each product's edit page"
|
4811 |
msgstr ""
|
4812 |
|
4813 |
+
#: includes/class-wcj-product-add-to-cart.php:557
|
4814 |
+
msgid "Disable Add to Cart Buttons on All Category/Archives Pages"
|
4815 |
+
msgstr ""
|
4816 |
+
|
4817 |
+
#: includes/class-wcj-product-add-to-cart.php:558
|
4818 |
+
#: includes/class-wcj-product-add-to-cart.php:565
|
4819 |
+
msgid "Disable Buttons"
|
4820 |
+
msgstr ""
|
4821 |
+
|
4822 |
+
#: includes/class-wcj-product-add-to-cart.php:564
|
4823 |
+
msgid "Disable Add to Cart Buttons on All Single Product Pages"
|
4824 |
+
msgstr ""
|
4825 |
+
|
4826 |
+
#: includes/class-wcj-product-add-to-cart.php:575
|
4827 |
msgid "Add to Cart Button Custom URL"
|
4828 |
msgstr ""
|
4829 |
|
4830 |
+
#: includes/class-wcj-product-add-to-cart.php:580
|
4831 |
msgid "Custom Add to Cart Buttons URL on Archives on per Product Basis"
|
4832 |
msgstr ""
|
4833 |
|
4834 |
+
#: includes/class-wcj-product-add-to-cart.php:592
|
4835 |
msgid "Add to Cart Button AJAX"
|
4836 |
msgstr ""
|
4837 |
|
4838 |
+
#: includes/class-wcj-product-add-to-cart.php:597
|
4839 |
msgid "Disable/Enable Add to Cart Button AJAX on per Product Basis"
|
4840 |
msgstr ""
|
4841 |
|
4842 |
+
#: includes/class-wcj-product-add-to-cart.php:614
|
4843 |
msgid "Open External Products on Add to Cart in New Window"
|
4844 |
msgstr ""
|
4845 |
|
4846 |
+
#: includes/class-wcj-product-add-to-cart.php:615
|
4847 |
msgid "Enable on Single Product Pages"
|
4848 |
msgstr ""
|
4849 |
|
4850 |
+
#: includes/class-wcj-product-add-to-cart.php:622
|
4851 |
msgid "Enable on Category/Archive Pages"
|
4852 |
msgstr ""
|
4853 |
|
4859 |
msgid "Add (paid/free/discount) addons to WooCommerce products."
|
4860 |
msgstr ""
|
4861 |
|
4862 |
+
#: includes/class-wcj-product-addons.php:100
|
4863 |
msgid "Some of the required addons are not selected!"
|
4864 |
msgstr ""
|
4865 |
|
4866 |
+
#: includes/class-wcj-product-addons.php:115
|
4867 |
msgid ""
|
4868 |
"Booster: Free plugin's version is limited to only three products with per "
|
4869 |
"product addons enabled at a time. You will need to get <a href=\"http://"
|
4871 |
"number of products with per product addons."
|
4872 |
msgstr ""
|
4873 |
|
4874 |
+
#: includes/class-wcj-product-addons.php:447
|
4875 |
+
#: includes/class-wcj-wholesale-price.php:282
|
4876 |
+
#: includes/class-wcj-wholesale-price.php:317
|
4877 |
msgid "Save product after you change this number."
|
4878 |
msgstr ""
|
4879 |
|
4880 |
+
#: includes/class-wcj-product-addons.php:450
|
4881 |
+
#: includes/class-wcj-product-addons.php:561
|
4882 |
msgid "Product Addons Total Number"
|
4883 |
msgstr ""
|
4884 |
|
4885 |
+
#: includes/class-wcj-product-addons.php:457
|
4886 |
+
#: includes/class-wcj-product-addons.php:577
|
4887 |
msgid "Product Addon"
|
4888 |
msgstr ""
|
4889 |
|
4890 |
+
#: includes/class-wcj-product-addons.php:473
|
4891 |
+
#: includes/class-wcj-product-addons.php:591
|
4892 |
msgid "Radio Buttons"
|
4893 |
msgstr ""
|
4894 |
|
4895 |
+
#: includes/class-wcj-product-addons.php:477
|
4896 |
+
#: includes/class-wcj-product-addons.php:595
|
4897 |
msgid "Label(s)"
|
4898 |
msgstr ""
|
4899 |
|
4900 |
+
#: includes/class-wcj-product-addons.php:478
|
4901 |
+
#: includes/class-wcj-product-addons.php:485
|
4902 |
+
#: includes/class-wcj-product-addons.php:492
|
4903 |
+
#: includes/class-wcj-product-addons.php:596
|
4904 |
+
#: includes/class-wcj-product-addons.php:604
|
4905 |
+
#: includes/class-wcj-product-addons.php:613
|
4906 |
msgid "For radio enter one value per line."
|
4907 |
msgstr ""
|
4908 |
|
4909 |
+
#: includes/class-wcj-product-addons.php:484
|
4910 |
+
#: includes/class-wcj-product-addons.php:603
|
4911 |
msgid "Price(s)"
|
4912 |
msgstr ""
|
4913 |
|
4914 |
+
#: includes/class-wcj-product-addons.php:491
|
4915 |
+
#: includes/class-wcj-product-addons.php:612
|
4916 |
msgid "Tooltip(s)"
|
4917 |
msgstr ""
|
4918 |
|
4919 |
+
#: includes/class-wcj-product-addons.php:498
|
4920 |
+
#: includes/class-wcj-product-addons.php:620
|
4921 |
+
#: includes/class-wcj-purchase-data.php:353
|
4922 |
msgid "Default Value"
|
4923 |
msgstr ""
|
4924 |
|
4925 |
+
#: includes/class-wcj-product-addons.php:499
|
4926 |
+
#: includes/class-wcj-product-addons.php:621
|
4927 |
msgid ""
|
4928 |
"For checkbox use 'checked'; for radio enter default label. Leave blank for "
|
4929 |
"no default value."
|
4930 |
msgstr ""
|
4931 |
|
4932 |
+
#: includes/class-wcj-product-addons.php:505
|
4933 |
msgid "Is required"
|
4934 |
msgstr ""
|
4935 |
|
4936 |
+
#: includes/class-wcj-product-addons.php:534
|
4937 |
msgid "Enable per Product Addons"
|
4938 |
msgstr ""
|
4939 |
|
4940 |
+
#: includes/class-wcj-product-addons.php:536
|
4941 |
msgid ""
|
4942 |
"When enabled, this will add new \"Booster: Product Addons\" meta box to each "
|
4943 |
"product's edit page."
|
4944 |
msgstr ""
|
4945 |
|
4946 |
+
#: includes/class-wcj-product-addons.php:548
|
4947 |
msgid "All Product Options"
|
4948 |
msgstr ""
|
4949 |
|
4950 |
+
#: includes/class-wcj-product-addons.php:553
|
4951 |
msgid "Enable All Products Addons"
|
4952 |
msgstr ""
|
4953 |
|
4954 |
+
#: includes/class-wcj-product-addons.php:555
|
4955 |
msgid "When enabled, this will add addons below to all products."
|
4956 |
msgstr ""
|
4957 |
|
4958 |
+
#: includes/class-wcj-product-addons.php:562
|
4959 |
msgid "Save changes after you change this number."
|
4960 |
msgstr ""
|
4961 |
|
4962 |
+
#: includes/class-wcj-product-addons.php:628
|
4963 |
#: includes/class-wcj-product-by-user.php:233
|
4964 |
msgid "Is Required"
|
4965 |
msgstr ""
|
4966 |
|
4967 |
+
#: includes/class-wcj-product-addons.php:648
|
4968 |
msgid "Enable AJAX on Single Product Page"
|
4969 |
msgstr ""
|
4970 |
|
4971 |
+
#: includes/class-wcj-product-addons.php:655
|
4972 |
msgid "Addon in Cart Format"
|
4973 |
msgstr ""
|
4974 |
|
4975 |
+
#: includes/class-wcj-product-addons.php:663
|
4976 |
+
#: includes/class-wcj-product-addons.php:686
|
4977 |
msgid "Each Addon"
|
4978 |
msgstr ""
|
4979 |
|
4980 |
+
#: includes/class-wcj-product-addons.php:664
|
4981 |
+
#: includes/class-wcj-product-addons.php:687
|
4982 |
msgid "You can use %addon_label% and %addon_price%."
|
4983 |
msgstr ""
|
4984 |
|
4985 |
+
#: includes/class-wcj-product-addons.php:678
|
4986 |
msgid "Addon in Order Details Table Format"
|
4987 |
msgstr ""
|
4988 |
|
4989 |
+
#: includes/class-wcj-product-addons.php:701
|
4990 |
msgid "Admin Order Page"
|
4991 |
msgstr ""
|
4992 |
|
4993 |
+
#: includes/class-wcj-product-addons.php:702
|
4994 |
msgid "Hide all addons"
|
4995 |
msgstr ""
|
4996 |
|
5009 |
msgstr ""
|
5010 |
|
5011 |
#: includes/class-wcj-product-bookings.php:145
|
5012 |
+
#: includes/class-wcj-product-open-pricing.php:214
|
5013 |
msgid "Read more"
|
5014 |
msgstr ""
|
5015 |
|
5052 |
msgstr ""
|
5053 |
|
5054 |
#: includes/class-wcj-product-bookings.php:432
|
|
|
5055 |
msgid "Labels and Messages"
|
5056 |
msgstr ""
|
5057 |
|
5090 |
"product's edit page."
|
5091 |
msgstr ""
|
5092 |
|
5093 |
+
#: includes/class-wcj-product-bulk-price-converter.php:26
|
5094 |
+
#: includes/class-wcj-product-bulk-price-converter.php:33
|
5095 |
msgid "Bulk Price Converter"
|
5096 |
msgstr ""
|
5097 |
|
5098 |
+
#: includes/class-wcj-product-bulk-price-converter.php:27
|
5099 |
msgid "Multiply all WooCommerce products prices by set value."
|
5100 |
msgstr ""
|
5101 |
|
5102 |
+
#: includes/class-wcj-product-bulk-price-converter.php:34
|
5103 |
msgid "Bulk Price Converter Tool."
|
5104 |
msgstr ""
|
5105 |
|
5106 |
+
#: includes/class-wcj-product-bulk-price-converter.php:151
|
5107 |
+
#: includes/class-wcj-product-by-user.php:207 includes/class-wcj-sku.php:254
|
5108 |
+
#: includes/export/class-wcj-fields-helper.php:320
|
5109 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:156
|
5110 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:329
|
5111 |
msgid "Categories"
|
5112 |
msgstr ""
|
5113 |
|
5114 |
+
#: includes/class-wcj-product-bulk-price-converter.php:152
|
5115 |
msgid "Price Type"
|
5116 |
msgstr ""
|
5117 |
|
5118 |
+
#: includes/class-wcj-product-bulk-price-converter.php:153
|
5119 |
msgid "Original Price"
|
5120 |
msgstr ""
|
5121 |
|
5122 |
+
#: includes/class-wcj-product-bulk-price-converter.php:154
|
5123 |
msgid "Modified Price"
|
5124 |
msgstr ""
|
5125 |
|
5126 |
+
#: includes/class-wcj-product-bulk-price-converter.php:207
|
5127 |
msgid "Multiply value must be above zero."
|
5128 |
msgstr ""
|
5129 |
|
5130 |
+
#: includes/class-wcj-product-bulk-price-converter.php:214
|
5131 |
msgid "Prices changed successfully!"
|
5132 |
msgstr ""
|
5133 |
|
5134 |
+
#: includes/class-wcj-product-bulk-price-converter.php:239
|
5135 |
msgid "Multiply all product prices by"
|
5136 |
msgstr ""
|
5137 |
|
5138 |
+
#: includes/class-wcj-product-bulk-price-converter.php:247
|
5139 |
msgid "Price type to modify"
|
5140 |
msgstr ""
|
5141 |
|
5142 |
+
#: includes/class-wcj-product-bulk-price-converter.php:249
|
5143 |
msgid "Both"
|
5144 |
msgstr ""
|
5145 |
|
5146 |
+
#: includes/class-wcj-product-bulk-price-converter.php:251
|
5147 |
msgid "Sale prices only"
|
5148 |
msgstr ""
|
5149 |
|
5150 |
+
#: includes/class-wcj-product-bulk-price-converter.php:253
|
5151 |
msgid "Regular prices only"
|
5152 |
msgstr ""
|
5153 |
|
5154 |
+
#: includes/class-wcj-product-bulk-price-converter.php:260
|
5155 |
msgid "Products category"
|
5156 |
msgstr ""
|
5157 |
|
5158 |
+
#: includes/class-wcj-product-bulk-price-converter.php:262
|
5159 |
+
#: includes/shortcodes/class-wcj-products-shortcodes.php:281
|
5160 |
msgid "Any"
|
5161 |
msgstr ""
|
5162 |
|
5163 |
+
#: includes/class-wcj-product-bulk-price-converter.php:264
|
5164 |
msgid "None"
|
5165 |
msgstr ""
|
5166 |
|
5167 |
+
#: includes/class-wcj-product-bulk-price-converter.php:271
|
5168 |
msgid "\"Pretty prices\" threshold"
|
5169 |
msgstr ""
|
5170 |
|
5171 |
+
#: includes/class-wcj-product-bulk-price-converter.php:275
|
5172 |
msgid "Leave zero to disable"
|
5173 |
msgstr ""
|
5174 |
|
5175 |
+
#: includes/class-wcj-product-bulk-price-converter.php:280
|
5176 |
msgid "Preview Prices"
|
5177 |
msgstr ""
|
5178 |
|
5179 |
+
#: includes/class-wcj-product-bulk-price-converter.php:287
|
5180 |
msgid "Change Prices"
|
5181 |
msgstr ""
|
5182 |
|
5206 |
msgid "Display WooCommerce products by customer's user role."
|
5207 |
msgstr ""
|
5208 |
|
5209 |
+
#: includes/class-wcj-product-by-user-role.php:121
|
5210 |
msgid "Visible for User Roles"
|
5211 |
msgstr ""
|
5212 |
|
5213 |
+
#: includes/class-wcj-product-by-user-role.php:122
|
5214 |
msgid "Hold Control (Ctrl) key to select multiple roles."
|
5215 |
msgstr ""
|
5216 |
|
5217 |
+
#: includes/class-wcj-product-by-user-role.php:142
|
5218 |
+
#: includes/export/class-wcj-fields-helper.php:313
|
5219 |
+
msgid "Visibility"
|
5220 |
+
msgstr ""
|
5221 |
+
|
5222 |
+
#: includes/class-wcj-product-by-user-role.php:148
|
5223 |
+
msgid "Purchasable"
|
5224 |
+
msgstr ""
|
5225 |
+
|
5226 |
+
#: includes/class-wcj-product-by-user-role.php:154
|
5227 |
+
msgid "Query"
|
5228 |
+
msgstr ""
|
5229 |
+
|
5230 |
+
#: includes/class-wcj-product-by-user-role.php:164
|
5231 |
msgid ""
|
5232 |
"When enabled, module will add new \"Booster: Product Visibility by User Role"
|
5233 |
"\" meta box to each product's edit page."
|
5241 |
msgid "Let users add new WooCommerce products from frontend."
|
5242 |
msgstr ""
|
5243 |
|
5244 |
+
#: includes/class-wcj-product-by-user.php:57
|
5245 |
+
#: includes/class-wcj-product-by-user.php:93
|
5246 |
+
#: includes/class-wcj-shipping.php:300 includes/admin/wcj-modules-cats.php:59
|
5247 |
+
msgid "Products"
|
5248 |
+
msgstr ""
|
5249 |
+
|
5250 |
#: includes/class-wcj-product-by-user.php:115
|
5251 |
#: includes/class-wcj-product-by-user.php:124
|
5252 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:238
|
5253 |
msgid "Wrong user ID!"
|
5254 |
msgstr ""
|
5255 |
|
5256 |
+
#: includes/class-wcj-product-by-user.php:156
|
5257 |
+
#: includes/admin/class-wcj-tools.php:76
|
5258 |
+
#: includes/export/class-wcj-fields-helper.php:296
|
5259 |
+
msgid "Status"
|
5260 |
msgstr ""
|
5261 |
|
5262 |
#: includes/class-wcj-product-by-user.php:190
|
5264 |
msgstr ""
|
5265 |
|
5266 |
#: includes/class-wcj-product-by-user.php:203
|
5267 |
+
#: includes/export/class-wcj-fields-helper.php:294
|
5268 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:152
|
5269 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:274
|
5270 |
msgid "Short Description"
|
5277 |
msgstr ""
|
5278 |
|
5279 |
#: includes/class-wcj-product-by-user.php:208
|
5280 |
+
#: includes/export/class-wcj-fields-helper.php:321
|
5281 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:157
|
5282 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:352
|
5283 |
msgid "Tags"
|
5325 |
msgid "\"%product_title%\" successfully edited!"
|
5326 |
msgstr ""
|
5327 |
|
5328 |
+
#: includes/class-wcj-product-custom-info.php:26
|
5329 |
+
#: includes/admin/class-wc-settings-jetpack.php:296
|
5330 |
+
msgid "Product Info"
|
5331 |
+
msgstr ""
|
5332 |
+
|
5333 |
#: includes/class-wcj-product-custom-info.php:27
|
5334 |
#: includes/class-wcj-product-info.php:104
|
5335 |
msgid "Add additional info to WooCommerce category and single product pages."
|
5336 |
msgstr ""
|
5337 |
|
5338 |
+
#: includes/class-wcj-product-custom-info.php:91
|
5339 |
msgid "Single"
|
5340 |
msgstr ""
|
5341 |
|
5342 |
+
#: includes/class-wcj-product-custom-info.php:91
|
5343 |
msgid "Archive"
|
5344 |
msgstr ""
|
5345 |
|
5346 |
+
#: includes/class-wcj-product-custom-info.php:94
|
5347 |
msgid "Product Custom Info Blocks"
|
5348 |
msgstr ""
|
5349 |
|
5350 |
+
#: includes/class-wcj-product-custom-info.php:133
|
5351 |
msgid "Before single product"
|
5352 |
msgstr ""
|
5353 |
|
5354 |
+
#: includes/class-wcj-product-custom-info.php:134
|
5355 |
#: includes/class-wcj-product-info.php:141
|
5356 |
msgid "Before single product summary"
|
5357 |
msgstr ""
|
5358 |
|
5359 |
+
#: includes/class-wcj-product-custom-info.php:135
|
5360 |
#: includes/class-wcj-product-info.php:140
|
5361 |
msgid "Inside single product summary"
|
5362 |
msgstr ""
|
5363 |
|
5364 |
+
#: includes/class-wcj-product-custom-info.php:136
|
5365 |
#: includes/class-wcj-product-info.php:142
|
5366 |
msgid "After single product summary"
|
5367 |
msgstr ""
|
5368 |
|
5369 |
+
#: includes/class-wcj-product-custom-info.php:137
|
5370 |
msgid "After single product"
|
5371 |
msgstr ""
|
5372 |
|
5373 |
+
#: includes/class-wcj-product-custom-info.php:138
|
5374 |
msgid "Before add to cart form"
|
5375 |
msgstr ""
|
5376 |
|
5377 |
+
#: includes/class-wcj-product-custom-info.php:139
|
5378 |
msgid "Before add to cart button"
|
5379 |
msgstr ""
|
5380 |
|
5381 |
+
#: includes/class-wcj-product-custom-info.php:140
|
5382 |
msgid "After add to cart button"
|
5383 |
msgstr ""
|
5384 |
|
5385 |
+
#: includes/class-wcj-product-custom-info.php:141
|
5386 |
msgid "After add to cart form"
|
5387 |
msgstr ""
|
5388 |
|
5389 |
+
#: includes/class-wcj-product-custom-info.php:144
|
5390 |
#: includes/class-wcj-product-info.php:125
|
5391 |
msgid "Before product"
|
5392 |
msgstr ""
|
5393 |
|
5394 |
+
#: includes/class-wcj-product-custom-info.php:145
|
5395 |
#: includes/class-wcj-product-info.php:126
|
5396 |
msgid "Before product title"
|
5397 |
msgstr ""
|
5398 |
|
5399 |
+
#: includes/class-wcj-product-custom-info.php:146
|
5400 |
msgid "Inside product title"
|
5401 |
msgstr ""
|
5402 |
|
5403 |
+
#: includes/class-wcj-product-custom-info.php:147
|
5404 |
#: includes/class-wcj-product-info.php:128
|
5405 |
msgid "After product title"
|
5406 |
msgstr ""
|
5407 |
|
5408 |
+
#: includes/class-wcj-product-custom-info.php:148
|
5409 |
#: includes/class-wcj-product-info.php:127
|
5410 |
msgid "After product"
|
5411 |
msgstr ""
|
5412 |
|
5413 |
+
#: includes/class-wcj-product-custom-info.php:160
|
5414 |
+
#: includes/class-wcj-products-xml.php:419
|
5415 |
msgid "Products to Include"
|
5416 |
msgstr ""
|
5417 |
|
5418 |
+
#: includes/class-wcj-product-custom-info.php:161
|
5419 |
+
#: includes/class-wcj-product-custom-info.php:171
|
5420 |
msgid "Leave blank to disable the option."
|
5421 |
msgstr ""
|
5422 |
|
5423 |
+
#: includes/class-wcj-product-custom-info.php:170
|
5424 |
+
#: includes/class-wcj-products-xml.php:428
|
5425 |
msgid "Products to Exclude"
|
5426 |
msgstr ""
|
5427 |
|
5433 |
msgid "Customize WooCommerce products images, thumbnails and sale flashes."
|
5434 |
msgstr ""
|
5435 |
|
5436 |
+
#: includes/class-wcj-product-images.php:184
|
5437 |
+
#: includes/class-wcj-product-images.php:336
|
5438 |
msgid "Sale!"
|
5439 |
msgstr ""
|
5440 |
|
5441 |
+
#: includes/class-wcj-product-images.php:199
|
5442 |
msgid "Replace image with custom HTML on single product page"
|
5443 |
msgstr ""
|
5444 |
|
5445 |
+
#: includes/class-wcj-product-images.php:205
|
5446 |
msgid "Replace image with custom HTML on archives"
|
5447 |
msgstr ""
|
5448 |
|
5449 |
+
#: includes/class-wcj-product-images.php:215
|
5450 |
msgid "Hide Image on Single"
|
5451 |
msgstr ""
|
5452 |
|
5453 |
+
#: includes/class-wcj-product-images.php:225
|
5454 |
msgid "Hide Thumbnails on Single"
|
5455 |
msgstr ""
|
5456 |
|
5457 |
+
#: includes/class-wcj-product-images.php:235
|
5458 |
msgid "Hide Image on Archives"
|
5459 |
msgstr ""
|
5460 |
|
5461 |
+
#: includes/class-wcj-product-images.php:249
|
5462 |
msgid "Product Image and Thumbnails"
|
5463 |
msgstr ""
|
5464 |
|
5465 |
+
#: includes/class-wcj-product-images.php:260
|
5466 |
msgid "Image and Thumbnails on Single"
|
5467 |
msgstr ""
|
5468 |
|
5469 |
+
#: includes/class-wcj-product-images.php:267
|
5470 |
msgid "Image on Single"
|
5471 |
msgstr ""
|
5472 |
|
5473 |
+
#: includes/class-wcj-product-images.php:274
|
5474 |
msgid "Thumbnails on Single"
|
5475 |
msgstr ""
|
5476 |
|
5477 |
+
#: includes/class-wcj-product-images.php:281
|
5478 |
msgid "Image on Archives"
|
5479 |
msgstr ""
|
5480 |
|
5481 |
+
#: includes/class-wcj-product-images.php:288
|
5482 |
msgid "Replace Image on Single"
|
5483 |
msgstr ""
|
5484 |
|
5485 |
+
#: includes/class-wcj-product-images.php:289
|
5486 |
msgid ""
|
5487 |
"Replace image on single product page with custom HTML. Leave blank to "
|
5488 |
"disable."
|
5489 |
msgstr ""
|
5490 |
|
5491 |
+
#: includes/class-wcj-product-images.php:296
|
5492 |
msgid "Replace Thumbnails on Single"
|
5493 |
msgstr ""
|
5494 |
|
5495 |
+
#: includes/class-wcj-product-images.php:297
|
5496 |
msgid ""
|
5497 |
"Replace thumbnails on single product page with custom HTML. Leave blank to "
|
5498 |
"disable."
|
5499 |
msgstr ""
|
5500 |
|
5501 |
+
#: includes/class-wcj-product-images.php:304
|
5502 |
msgid "Replace Image on Archive"
|
5503 |
msgstr ""
|
5504 |
|
5505 |
+
#: includes/class-wcj-product-images.php:305
|
5506 |
msgid ""
|
5507 |
"Replace image on archive pages with custom HTML. Leave blank to disable."
|
5508 |
msgstr ""
|
5509 |
|
5510 |
+
#: includes/class-wcj-product-images.php:312
|
5511 |
msgid "Single Product Thumbnails Columns"
|
5512 |
msgstr ""
|
5513 |
|
5514 |
+
#: includes/class-wcj-product-images.php:323
|
5515 |
msgid "Product Images Sale Flash"
|
5516 |
msgstr ""
|
5517 |
|
5518 |
+
#: includes/class-wcj-product-images.php:334
|
5519 |
msgid "HTML"
|
5520 |
msgstr ""
|
5521 |
|
5522 |
+
#: includes/class-wcj-product-images.php:341
|
5523 |
msgid "Hide on Archives (Categories)"
|
5524 |
msgstr ""
|
5525 |
|
5526 |
+
#: includes/class-wcj-product-images.php:347
|
5527 |
msgid "Hide on Single"
|
5528 |
msgstr ""
|
5529 |
|
5534 |
#: includes/class-wcj-product-info.php:274
|
5535 |
#: includes/class-wcj-product-info.php:377
|
5536 |
#: includes/class-wcj-product-info.php:410
|
5537 |
+
#: includes/class-wcj-product-tabs.php:552
|
5538 |
msgid "Priority (i.e. Order)"
|
5539 |
msgstr ""
|
5540 |
|
5664 |
msgstr ""
|
5665 |
|
5666 |
#: includes/class-wcj-product-input-fields.php:198
|
5667 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:318
|
5668 |
#: includes/input-fields/class-wcj-product-input-fields-per-product.php:164
|
5669 |
msgid "Product Input Field"
|
5670 |
msgstr ""
|
5693 |
msgid "Replace Field ID with Field Label"
|
5694 |
msgstr ""
|
5695 |
|
5696 |
+
#: includes/class-wcj-product-listings.php:24
|
5697 |
msgid "Product Listings"
|
5698 |
msgstr ""
|
5699 |
|
5700 |
+
#: includes/class-wcj-product-listings.php:25
|
5701 |
msgid ""
|
5702 |
"Change WooCommerce display options for shop and category pages: show/hide "
|
5703 |
+
"categories count, exclude categories, show/hide empty categories."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5704 |
msgstr ""
|
5705 |
|
5706 |
+
#: includes/class-wcj-product-listings.php:197
|
5707 |
msgid "Shop Page Display Options"
|
5708 |
msgstr ""
|
5709 |
|
5710 |
+
#: includes/class-wcj-product-listings.php:200
|
5711 |
+
#, php-format
|
5712 |
msgid ""
|
5713 |
+
"You can control what is shown on the product archive in <a href=\"%s"
|
5714 |
+
"\">WooCommerce > Settings > Products > Display > Shop page display</a>."
|
|
|
5715 |
msgstr ""
|
5716 |
|
5717 |
+
#: includes/class-wcj-product-listings.php:206
|
5718 |
msgid "Categories Count"
|
5719 |
msgstr ""
|
5720 |
|
5721 |
+
#: includes/class-wcj-product-listings.php:207
|
5722 |
msgid "Hide categories count on shop page"
|
5723 |
msgstr ""
|
5724 |
|
5725 |
+
#: includes/class-wcj-product-listings.php:213
|
5726 |
msgid "Exclude Categories"
|
5727 |
msgstr ""
|
5728 |
|
5729 |
+
#: includes/class-wcj-product-listings.php:214
|
5730 |
msgid ""
|
5731 |
+
" Excludes one or more categories from the shop page. Leave blank to disable."
|
|
|
|
|
5732 |
msgstr ""
|
5733 |
|
5734 |
+
#: includes/class-wcj-product-listings.php:223
|
5735 |
+
#: includes/class-wcj-product-listings.php:269
|
5736 |
msgid "Hide Empty"
|
5737 |
msgstr ""
|
5738 |
|
5739 |
+
#: includes/class-wcj-product-listings.php:224
|
5740 |
msgid "Hide empty categories on shop page"
|
5741 |
msgstr ""
|
5742 |
|
5743 |
+
#: includes/class-wcj-product-listings.php:230
|
5744 |
+
#: includes/class-wcj-product-listings.php:276
|
5745 |
msgid "Show Products"
|
5746 |
msgstr ""
|
5747 |
|
5748 |
+
#: includes/class-wcj-product-listings.php:231
|
5749 |
msgid "Show products if no categories are displayed on shop page"
|
5750 |
msgstr ""
|
5751 |
|
5752 |
+
#: includes/class-wcj-product-listings.php:241
|
5753 |
msgid "Category Display Options"
|
5754 |
msgstr ""
|
5755 |
|
5756 |
+
#: includes/class-wcj-product-listings.php:244
|
5757 |
+
#, php-format
|
5758 |
msgid ""
|
5759 |
+
"You can control what is shown on category archives in <a href=\"%s"
|
5760 |
+
"\">WooCommerce > Settings > Products > Display > Default category display</"
|
5761 |
+
"a>."
|
5762 |
msgstr ""
|
5763 |
|
5764 |
+
#: includes/class-wcj-product-listings.php:250
|
5765 |
msgid "Subcategories Count"
|
5766 |
msgstr ""
|
5767 |
|
5768 |
+
#: includes/class-wcj-product-listings.php:251
|
5769 |
msgid "Hide subcategories count on category pages"
|
5770 |
msgstr ""
|
5771 |
|
5772 |
+
#: includes/class-wcj-product-listings.php:259
|
5773 |
msgid "Exclude Subcategories"
|
5774 |
msgstr ""
|
5775 |
|
5776 |
+
#: includes/class-wcj-product-listings.php:260
|
5777 |
msgid ""
|
5778 |
+
" Excludes one or more categories from the category (archive) pages. Leave "
|
5779 |
+
"blank to disable."
|
|
|
5780 |
msgstr ""
|
5781 |
|
5782 |
+
#: includes/class-wcj-product-listings.php:270
|
5783 |
msgid "Hide empty subcategories on category pages"
|
5784 |
msgstr ""
|
5785 |
|
5786 |
+
#: includes/class-wcj-product-listings.php:277
|
5787 |
msgid "Show products if no categories are displayed on category page"
|
5788 |
msgstr ""
|
5789 |
|
5790 |
+
#: includes/class-wcj-product-listings.php:287
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5791 |
msgid "TAX Display Prices in the Shop"
|
5792 |
msgstr ""
|
5793 |
|
5794 |
+
#: includes/class-wcj-product-listings.php:289
|
5795 |
msgid ""
|
5796 |
"If you want to display part of your products including TAX and another part "
|
5797 |
"excluding TAX, you can set it here."
|
5798 |
msgstr ""
|
5799 |
|
5800 |
+
#: includes/class-wcj-product-listings.php:293
|
5801 |
msgid "Products - Including TAX"
|
5802 |
msgstr ""
|
5803 |
|
5804 |
+
#: includes/class-wcj-product-listings.php:295
|
5805 |
msgid "Select products to display including TAX."
|
5806 |
msgstr ""
|
5807 |
|
5808 |
+
#: includes/class-wcj-product-listings.php:303
|
5809 |
msgid "Products - Excluding TAX"
|
5810 |
msgstr ""
|
5811 |
|
5812 |
+
#: includes/class-wcj-product-listings.php:305
|
5813 |
msgid "Select products to display excluding TAX."
|
5814 |
msgstr ""
|
5815 |
|
5816 |
+
#: includes/class-wcj-product-listings.php:313
|
5817 |
msgid "Product Categories - Including TAX"
|
5818 |
msgstr ""
|
5819 |
|
5820 |
+
#: includes/class-wcj-product-listings.php:315
|
5821 |
msgid "Select product categories to display including TAX."
|
5822 |
msgstr ""
|
5823 |
|
5824 |
+
#: includes/class-wcj-product-listings.php:323
|
5825 |
msgid "Product Categories - Excluding TAX"
|
5826 |
msgstr ""
|
5827 |
|
5828 |
+
#: includes/class-wcj-product-listings.php:325
|
5829 |
msgid "Select product categories to display excluding TAX."
|
5830 |
msgstr ""
|
5831 |
|
5838 |
"Let your WooCommerce store customers enter price for the product manually."
|
5839 |
msgstr ""
|
5840 |
|
5841 |
+
#: includes/class-wcj-product-open-pricing.php:132
|
5842 |
msgid ""
|
5843 |
"Booster: Free plugin's version is limited to only one open pricing product "
|
5844 |
"enabled at a time. You will need to get <a href=\"http://booster.io/plus/\" "
|
5846 |
"products."
|
5847 |
msgstr ""
|
5848 |
|
5849 |
+
#: includes/class-wcj-product-open-pricing.php:186
|
5850 |
msgid "Default Price"
|
5851 |
msgstr ""
|
5852 |
|
5853 |
+
#: includes/class-wcj-product-open-pricing.php:193
|
5854 |
msgid "Min Price"
|
5855 |
msgstr ""
|
5856 |
|
5857 |
+
#: includes/class-wcj-product-open-pricing.php:200
|
5858 |
msgid "Max Price"
|
5859 |
msgstr ""
|
5860 |
|
5861 |
+
#: includes/class-wcj-product-open-pricing.php:270
|
5862 |
+
#: includes/class-wcj-product-open-pricing.php:436
|
5863 |
msgid "Price is required!"
|
5864 |
msgstr ""
|
5865 |
|
5866 |
+
#: includes/class-wcj-product-open-pricing.php:274
|
5867 |
+
#: includes/class-wcj-product-open-pricing.php:443
|
5868 |
+
msgid "Entered price is too small!"
|
5869 |
msgstr ""
|
5870 |
|
5871 |
+
#: includes/class-wcj-product-open-pricing.php:280
|
5872 |
+
#: includes/class-wcj-product-open-pricing.php:450
|
5873 |
+
msgid "Entered price is too big!"
|
5874 |
msgstr ""
|
5875 |
|
5876 |
+
#: includes/class-wcj-product-open-pricing.php:337
|
5877 |
+
#: includes/class-wcj-product-open-pricing.php:399
|
5878 |
msgid "Name Your Price"
|
5879 |
msgstr ""
|
5880 |
|
5881 |
+
#: includes/class-wcj-product-open-pricing.php:397
|
5882 |
msgid "Frontend Label"
|
5883 |
msgstr ""
|
5884 |
|
5885 |
+
#: includes/class-wcj-product-open-pricing.php:404
|
5886 |
msgid "Frontend Template"
|
5887 |
msgstr ""
|
5888 |
|
5889 |
+
#: includes/class-wcj-product-open-pricing.php:405
|
5890 |
msgid "Here you can use"
|
5891 |
msgstr ""
|
5892 |
|
5893 |
+
#: includes/class-wcj-product-open-pricing.php:413
|
5894 |
+
msgid "Frontend Input Style"
|
5895 |
+
msgstr ""
|
5896 |
+
|
5897 |
+
#: includes/class-wcj-product-open-pricing.php:420
|
5898 |
+
msgid "Frontend Input Placeholder"
|
5899 |
+
msgstr ""
|
5900 |
+
|
5901 |
+
#: includes/class-wcj-product-open-pricing.php:427
|
5902 |
+
msgid "Frontend Input Price Step"
|
5903 |
+
msgstr ""
|
5904 |
+
|
5905 |
+
#: includes/class-wcj-product-open-pricing.php:434
|
5906 |
msgid "Message on Empty Price"
|
5907 |
msgstr ""
|
5908 |
|
5909 |
+
#: includes/class-wcj-product-open-pricing.php:441
|
5910 |
+
msgid "Message on Price too Small"
|
5911 |
+
msgstr ""
|
5912 |
+
|
5913 |
+
#: includes/class-wcj-product-open-pricing.php:448
|
5914 |
+
msgid "Message on Price too Big"
|
5915 |
msgstr ""
|
5916 |
|
5917 |
+
#: includes/class-wcj-product-open-pricing.php:455
|
5918 |
+
msgid "Enable JS Min/Max Validation"
|
5919 |
msgstr ""
|
5920 |
|
5921 |
#: includes/class-wcj-product-price-by-formula.php:27
|
5926 |
msgid "Set formula for automatic WooCommerce product price calculation."
|
5927 |
msgstr ""
|
5928 |
|
5929 |
+
#: includes/class-wcj-product-price-by-formula.php:107
|
5930 |
msgid "Error in formula"
|
5931 |
msgstr ""
|
5932 |
|
5933 |
+
#: includes/class-wcj-product-price-by-formula.php:194
|
5934 |
msgid ""
|
5935 |
"Booster: Free plugin's version is limited to only one price by formula "
|
5936 |
"product enabled at a time. You will need to get <a href=\"http://booster.io/"
|
5938 |
"by formula products."
|
5939 |
msgstr ""
|
5940 |
|
5941 |
+
#: includes/class-wcj-product-price-by-formula.php:229
|
5942 |
+
msgid ""
|
5943 |
+
"'Enabled' option is ignored if 'Enable Price Calculation By Formula For All "
|
5944 |
+
"Products' option is checked in module's settings."
|
5945 |
+
msgstr ""
|
5946 |
+
|
5947 |
+
#: includes/class-wcj-product-price-by-formula.php:236
|
5948 |
msgid "Use values below"
|
5949 |
msgstr ""
|
5950 |
|
5951 |
+
#: includes/class-wcj-product-price-by-formula.php:237
|
5952 |
msgid "Use default values"
|
5953 |
msgstr ""
|
5954 |
|
5955 |
+
#: includes/class-wcj-product-price-by-formula.php:239
|
5956 |
msgid "Calculation"
|
5957 |
msgstr ""
|
5958 |
|
5959 |
+
#: includes/class-wcj-product-price-by-formula.php:245
|
5960 |
+
#: includes/class-wcj-product-price-by-formula.php:305
|
5961 |
msgid "Formula"
|
5962 |
msgstr ""
|
5963 |
|
5964 |
+
#: includes/class-wcj-product-price-by-formula.php:251
|
5965 |
msgid "Number of Parameters"
|
5966 |
msgstr ""
|
5967 |
|
5968 |
+
#: includes/class-wcj-product-price-by-formula.php:285
|
5969 |
msgid "Final Price Preview"
|
5970 |
msgstr ""
|
5971 |
|
5972 |
+
#: includes/class-wcj-product-price-by-formula.php:299
|
5973 |
msgid "Default Settings"
|
5974 |
msgstr ""
|
5975 |
|
5976 |
+
#: includes/class-wcj-product-price-by-formula.php:301
|
5977 |
msgid ""
|
5978 |
"You can set default settings here. All settings can later be changed in "
|
5979 |
"individual product's edit page."
|
5980 |
msgstr ""
|
5981 |
|
5982 |
+
#: includes/class-wcj-product-price-by-formula.php:306
|
5983 |
msgid "Use \"x\" variable for product's base price. For example: x+p1*p2"
|
5984 |
msgstr ""
|
5985 |
|
5986 |
+
#: includes/class-wcj-product-price-by-formula.php:312
|
5987 |
+
msgid "Enable Price Calculation By Formula For All Products"
|
5988 |
+
msgstr ""
|
5989 |
+
|
5990 |
+
#: includes/class-wcj-product-price-by-formula.php:321
|
5991 |
msgid "Total Params"
|
5992 |
msgstr ""
|
5993 |
|
6001 |
"remove WooCommerce default product tabs."
|
6002 |
msgstr ""
|
6003 |
|
6004 |
+
#: includes/class-wcj-product-tabs.php:290
|
6005 |
msgid "Booster: Custom Tabs"
|
6006 |
msgstr ""
|
6007 |
|
6008 |
+
#: includes/class-wcj-product-tabs.php:407
|
6009 |
msgid "Total number of custom tabs"
|
6010 |
msgstr ""
|
6011 |
|
6012 |
+
#: includes/class-wcj-product-tabs.php:413
|
6013 |
#: includes/input-fields/class-wcj-product-input-fields-per-product.php:153
|
6014 |
msgid "Click \"Update\" product after you change this number."
|
6015 |
msgstr ""
|
6016 |
|
6017 |
+
#: includes/class-wcj-product-tabs.php:428
|
6018 |
+
#: includes/class-wcj-related-products.php:291
|
6019 |
+
#: includes/class-wcj-related-products.php:316
|
6020 |
msgid "Order"
|
6021 |
msgstr ""
|
6022 |
|
6023 |
+
#: includes/class-wcj-product-tabs.php:445
|
6024 |
+
#: includes/class-wcj-product-tabs.php:543
|
6025 |
+
#: includes/class-wcj-product-tabs.php:712
|
6026 |
msgid "Custom Product Tab"
|
6027 |
msgstr ""
|
6028 |
|
6029 |
+
#: includes/class-wcj-product-tabs.php:499
|
6030 |
msgid "Custom Product Tabs Options"
|
6031 |
msgstr ""
|
6032 |
|
6033 |
+
#: includes/class-wcj-product-tabs.php:501
|
6034 |
msgid "This section lets you add custom single product tabs."
|
6035 |
msgstr ""
|
6036 |
|
6037 |
+
#: includes/class-wcj-product-tabs.php:505
|
6038 |
msgid "Custom Product Tabs Number"
|
6039 |
msgstr ""
|
6040 |
|
6041 |
+
#: includes/class-wcj-product-tabs.php:560
|
6042 |
+
#: includes/class-wcj-product-tabs.php:729
|
6043 |
msgid "You can use shortcodes here..."
|
6044 |
msgstr ""
|
6045 |
|
6046 |
+
#: includes/class-wcj-product-tabs.php:568
|
6047 |
+
#: includes/class-wcj-product-tabs.php:737
|
6048 |
msgid "PRODUCTS to HIDE this tab"
|
6049 |
msgstr ""
|
6050 |
|
6051 |
+
#: includes/class-wcj-product-tabs.php:569
|
6052 |
+
#: includes/class-wcj-product-tabs.php:738
|
6053 |
msgid "To hide this tab from some products, enter products here."
|
6054 |
msgstr ""
|
6055 |
|
6056 |
+
#: includes/class-wcj-product-tabs.php:578
|
6057 |
+
#: includes/class-wcj-product-tabs.php:747
|
6058 |
msgid "PRODUCTS to SHOW this tab"
|
6059 |
msgstr ""
|
6060 |
|
6061 |
+
#: includes/class-wcj-product-tabs.php:579
|
6062 |
+
#: includes/class-wcj-product-tabs.php:748
|
6063 |
msgid "To show this tab only for some products, enter products here."
|
6064 |
msgstr ""
|
6065 |
|
6066 |
+
#: includes/class-wcj-product-tabs.php:588
|
6067 |
+
#: includes/class-wcj-product-tabs.php:757
|
6068 |
msgid "CATEGORIES to HIDE this tab"
|
6069 |
msgstr ""
|
6070 |
|
6071 |
+
#: includes/class-wcj-product-tabs.php:589
|
6072 |
+
#: includes/class-wcj-product-tabs.php:758
|
6073 |
msgid "To hide this tab from some categories, enter categories here."
|
6074 |
msgstr ""
|
6075 |
|
6076 |
+
#: includes/class-wcj-product-tabs.php:598
|
6077 |
+
#: includes/class-wcj-product-tabs.php:767
|
6078 |
msgid "CATEGORIES to SHOW this tab"
|
6079 |
msgstr ""
|
6080 |
|
6081 |
+
#: includes/class-wcj-product-tabs.php:599
|
6082 |
+
#: includes/class-wcj-product-tabs.php:768
|
6083 |
msgid "To show this tab only for some categories, enter categories here."
|
6084 |
msgstr ""
|
6085 |
|
6086 |
+
#: includes/class-wcj-product-tabs.php:608
|
6087 |
+
#: includes/class-wcj-product-tabs.php:777
|
6088 |
msgid "TAGS to HIDE this tab"
|
6089 |
msgstr ""
|
6090 |
|
6091 |
+
#: includes/class-wcj-product-tabs.php:609
|
6092 |
+
#: includes/class-wcj-product-tabs.php:778
|
6093 |
msgid "To hide this tab from some tags, enter tags here."
|
6094 |
msgstr ""
|
6095 |
|
6096 |
+
#: includes/class-wcj-product-tabs.php:618
|
6097 |
+
#: includes/class-wcj-product-tabs.php:787
|
6098 |
msgid "TAGS to SHOW this tab"
|
6099 |
msgstr ""
|
6100 |
|
6101 |
+
#: includes/class-wcj-product-tabs.php:619
|
6102 |
+
#: includes/class-wcj-product-tabs.php:788
|
6103 |
msgid "To show this tab only for some tags, enter tags here."
|
6104 |
msgstr ""
|
6105 |
|
6106 |
+
#: includes/class-wcj-product-tabs.php:628
|
6107 |
msgid "Comma separated PRODUCT IDs to HIDE this tab"
|
6108 |
msgstr ""
|
6109 |
|
6110 |
+
#: includes/class-wcj-product-tabs.php:628
|
6111 |
+
#: includes/class-wcj-product-tabs.php:637
|
6112 |
+
#: includes/class-wcj-product-tabs.php:646
|
6113 |
+
#: includes/class-wcj-product-tabs.php:655
|
6114 |
+
#: includes/classes/class-wcj-module.php:439
|
6115 |
msgid "Deprecated"
|
6116 |
msgstr ""
|
6117 |
|
6118 |
+
#: includes/class-wcj-product-tabs.php:629
|
6119 |
msgid "To hide this tab from some products, enter product IDs here."
|
6120 |
msgstr ""
|
6121 |
|
6122 |
+
#: includes/class-wcj-product-tabs.php:637
|
6123 |
msgid "Comma separated PRODUCT IDs to SHOW this tab"
|
6124 |
msgstr ""
|
6125 |
|
6126 |
+
#: includes/class-wcj-product-tabs.php:638
|
6127 |
msgid "To show this tab only for some products, enter product IDs here."
|
6128 |
msgstr ""
|
6129 |
|
6130 |
+
#: includes/class-wcj-product-tabs.php:646
|
6131 |
msgid "Comma separated CATEGORY IDs to HIDE this tab"
|
6132 |
msgstr ""
|
6133 |
|
6134 |
+
#: includes/class-wcj-product-tabs.php:647
|
6135 |
msgid "To hide this tab from some categories, enter category IDs here."
|
6136 |
msgstr ""
|
6137 |
|
6138 |
+
#: includes/class-wcj-product-tabs.php:655
|
6139 |
msgid "Comma separated CATEGORY IDs to SHOW this tab"
|
6140 |
msgstr ""
|
6141 |
|
6142 |
+
#: includes/class-wcj-product-tabs.php:656
|
6143 |
msgid "To show this tab only for some categories, enter category IDs here."
|
6144 |
msgstr ""
|
6145 |
|
6146 |
+
#: includes/class-wcj-product-tabs.php:673
|
6147 |
msgid "Custom Product Tabs - Per Product"
|
6148 |
msgstr ""
|
6149 |
|
6150 |
+
#: includes/class-wcj-product-tabs.php:675
|
6151 |
msgid "This section lets you set defaults for per product custom tabs."
|
6152 |
msgstr ""
|
6153 |
|
6154 |
+
#: includes/class-wcj-product-tabs.php:679
|
6155 |
msgid "Enable Per Product Custom Product Tabs"
|
6156 |
msgstr ""
|
6157 |
|
6158 |
+
#: includes/class-wcj-product-tabs.php:681
|
6159 |
msgid "This will add meta boxes to each product's edit page."
|
6160 |
msgstr ""
|
6161 |
|
6162 |
+
#: includes/class-wcj-product-tabs.php:687
|
6163 |
msgid "Use Visual Editor"
|
6164 |
msgstr ""
|
6165 |
|
6166 |
+
#: includes/class-wcj-product-tabs.php:694
|
6167 |
msgid "Default Per Product Custom Product Tabs Number"
|
6168 |
msgstr ""
|
6169 |
|
6170 |
+
#: includes/class-wcj-product-tabs.php:713
|
6171 |
msgid "Default Title"
|
6172 |
msgstr ""
|
6173 |
|
6174 |
+
#: includes/class-wcj-product-tabs.php:721
|
6175 |
msgid "Default Priority (i.e. Order)"
|
6176 |
msgstr ""
|
6177 |
|
6178 |
+
#: includes/class-wcj-product-tabs.php:728
|
6179 |
msgid "Default Content"
|
6180 |
msgstr ""
|
6181 |
|
6182 |
+
#: includes/class-wcj-product-tabs.php:805
|
6183 |
msgid "WooCommerce Standard Product Tabs Options"
|
6184 |
msgstr ""
|
6185 |
|
6186 |
+
#: includes/class-wcj-product-tabs.php:807
|
6187 |
msgid "This section lets you customize single product tabs."
|
6188 |
msgstr ""
|
6189 |
|
6190 |
+
#: includes/class-wcj-product-tabs.php:811
|
6191 |
msgid "Description Tab"
|
6192 |
msgstr ""
|
6193 |
|
6194 |
+
#: includes/class-wcj-product-tabs.php:812
|
6195 |
+
#: includes/class-wcj-product-tabs.php:835
|
6196 |
+
#: includes/class-wcj-product-tabs.php:858
|
6197 |
msgid "Remove tab from product page"
|
6198 |
msgstr ""
|
6199 |
|
6200 |
+
#: includes/class-wcj-product-tabs.php:819
|
6201 |
+
#: includes/class-wcj-product-tabs.php:842
|
6202 |
+
#: includes/class-wcj-product-tabs.php:865
|
6203 |
msgid "Title."
|
6204 |
msgstr ""
|
6205 |
|
6206 |
+
#: includes/class-wcj-product-tabs.php:820
|
6207 |
+
#: includes/class-wcj-product-tabs.php:843
|
6208 |
+
#: includes/class-wcj-product-tabs.php:866
|
6209 |
msgid "Leave blank for WooCommerce defaults"
|
6210 |
msgstr ""
|
6211 |
|
6212 |
+
#: includes/class-wcj-product-tabs.php:830
|
6213 |
+
#: includes/class-wcj-product-tabs.php:853
|
6214 |
+
#: includes/class-wcj-product-tabs.php:876
|
6215 |
msgid "Priority (i.e. Order)."
|
6216 |
msgstr ""
|
6217 |
|
6218 |
+
#: includes/class-wcj-product-tabs.php:834
|
6219 |
msgid "Additional Information Tab"
|
6220 |
msgstr ""
|
6221 |
|
6222 |
+
#: includes/class-wcj-product-tabs.php:857
|
6223 |
msgid "Reviews Tab"
|
6224 |
msgstr ""
|
6225 |
|
6226 |
+
#: includes/class-wcj-products-per-page.php:29
|
6227 |
+
msgid "Products per Page"
|
6228 |
+
msgstr ""
|
6229 |
+
|
6230 |
+
#: includes/class-wcj-products-per-page.php:30
|
6231 |
+
msgid "Add \"products per page\" selector to WooCommerce."
|
6232 |
+
msgstr ""
|
6233 |
+
|
6234 |
+
#: includes/class-wcj-products-per-page.php:76
|
6235 |
+
#: includes/class-wcj-products-per-page.php:169
|
6236 |
+
msgid ""
|
6237 |
+
"Products <strong>%from% - %to%</strong> from <strong>%total%</strong>. "
|
6238 |
+
"Products on page %select_form%"
|
6239 |
+
msgstr ""
|
6240 |
+
|
6241 |
+
#: includes/class-wcj-products-per-page.php:132
|
6242 |
+
msgid "Select Options"
|
6243 |
+
msgstr ""
|
6244 |
+
|
6245 |
+
#: includes/class-wcj-products-per-page.php:133
|
6246 |
+
msgid "Name|Number; one per line; -1 for all products"
|
6247 |
+
msgstr ""
|
6248 |
+
|
6249 |
+
#: includes/class-wcj-products-per-page.php:155
|
6250 |
+
msgid "Before shop loop"
|
6251 |
+
msgstr ""
|
6252 |
+
|
6253 |
+
#: includes/class-wcj-products-per-page.php:156
|
6254 |
+
msgid "After shop loop"
|
6255 |
+
msgstr ""
|
6256 |
+
|
6257 |
+
#: includes/class-wcj-products-per-page.php:160
|
6258 |
+
msgid "Position Priority"
|
6259 |
+
msgstr ""
|
6260 |
+
|
6261 |
#: includes/class-wcj-products-xml.php:28
|
6262 |
msgid "Products XML"
|
6263 |
msgstr ""
|
6267 |
msgstr ""
|
6268 |
|
6269 |
#: includes/class-wcj-products-xml.php:96
|
6270 |
+
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:190
|
6271 |
msgid "Once Weekly"
|
6272 |
msgstr ""
|
6273 |
|
6274 |
#: includes/class-wcj-products-xml.php:100
|
6275 |
+
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:194
|
6276 |
msgid "Once a Minute"
|
6277 |
msgstr ""
|
6278 |
|
6284 |
msgid "An error has occurred while creating products XML file."
|
6285 |
msgstr ""
|
6286 |
|
6287 |
+
#: includes/class-wcj-products-xml.php:312
|
6288 |
+
msgid "Advanced: Block Size"
|
6289 |
+
msgstr ""
|
6290 |
+
|
6291 |
+
#: includes/class-wcj-products-xml.php:313
|
6292 |
+
msgid ""
|
6293 |
+
"If you have large number of products you may want to modify block size for "
|
6294 |
+
"WP_Query call. Leave default value if not sure."
|
6295 |
+
msgstr ""
|
6296 |
+
|
6297 |
+
#: includes/class-wcj-products-xml.php:334
|
6298 |
msgid "Create Now"
|
6299 |
msgstr ""
|
6300 |
|
6301 |
+
#: includes/class-wcj-products-xml.php:339
|
6302 |
+
#, php-format
|
6303 |
+
msgid "Recent file was created on %s"
|
6304 |
+
msgstr ""
|
6305 |
+
|
6306 |
+
#: includes/class-wcj-products-xml.php:346
|
6307 |
msgid "XML File"
|
6308 |
msgstr ""
|
6309 |
|
6310 |
+
#: includes/class-wcj-products-xml.php:359
|
6311 |
msgid "XML Header"
|
6312 |
msgstr ""
|
6313 |
|
6314 |
+
#: includes/class-wcj-products-xml.php:360
|
6315 |
+
msgid "You can use shortcodes here. For example [wcj_current_datetime]."
|
6316 |
+
msgstr ""
|
6317 |
+
|
6318 |
+
#: includes/class-wcj-products-xml.php:367
|
6319 |
msgid "XML Item"
|
6320 |
msgstr ""
|
6321 |
|
6322 |
+
#: includes/class-wcj-products-xml.php:369
|
6323 |
+
#, php-format
|
6324 |
msgid ""
|
6325 |
"You can use shortcodes here. Please take a look at <a target=\"_blank\" href="
|
6326 |
"\"%s\">Booster's products shortcodes</a>."
|
6327 |
msgstr ""
|
6328 |
|
6329 |
+
#: includes/class-wcj-products-xml.php:386
|
6330 |
msgid "XML Footer"
|
6331 |
msgstr ""
|
6332 |
|
6333 |
+
#: includes/class-wcj-products-xml.php:394
|
6334 |
msgid "XML File Path and Name"
|
6335 |
msgstr ""
|
6336 |
|
6337 |
+
#: includes/class-wcj-products-xml.php:395
|
6338 |
msgid "Path on server:"
|
6339 |
msgstr ""
|
6340 |
|
6341 |
+
#: includes/class-wcj-products-xml.php:396
|
6342 |
msgid "URL:"
|
6343 |
msgstr ""
|
6344 |
|
6345 |
+
#: includes/class-wcj-products-xml.php:403
|
6346 |
msgid "Update Period"
|
6347 |
msgstr ""
|
6348 |
|
6349 |
+
#: includes/class-wcj-products-xml.php:415
|
6350 |
msgid ""
|
6351 |
"Possible update periods are: every minute, hourly, twice daily, daily and "
|
6352 |
"weekly."
|
6353 |
msgstr ""
|
6354 |
|
6355 |
+
#: includes/class-wcj-products-xml.php:420
|
6356 |
+
msgid ""
|
6357 |
+
"To include selected products only, enter products here. Leave blank to "
|
6358 |
+
"include all products."
|
6359 |
msgstr ""
|
6360 |
|
6361 |
+
#: includes/class-wcj-products-xml.php:429
|
6362 |
+
msgid ""
|
6363 |
+
"To exclude selected products, enter products here. Leave blank to include "
|
6364 |
+
"all products."
|
6365 |
msgstr ""
|
6366 |
|
6367 |
+
#: includes/class-wcj-products-xml.php:437
|
6368 |
+
msgid "Categories to Include"
|
6369 |
+
msgstr ""
|
6370 |
+
|
6371 |
+
#: includes/class-wcj-products-xml.php:438
|
6372 |
+
msgid ""
|
6373 |
+
"To include products from selected categories only, enter categories here. "
|
6374 |
+
"Leave blank to include all products."
|
6375 |
+
msgstr ""
|
6376 |
+
|
6377 |
+
#: includes/class-wcj-products-xml.php:446
|
6378 |
+
msgid "Categories to Exclude"
|
6379 |
+
msgstr ""
|
6380 |
+
|
6381 |
+
#: includes/class-wcj-products-xml.php:447
|
6382 |
+
msgid ""
|
6383 |
+
"To exclude products from selected categories, enter categories here. Leave "
|
6384 |
+
"blank to include all products."
|
6385 |
+
msgstr ""
|
6386 |
+
|
6387 |
+
#: includes/class-wcj-products-xml.php:455
|
6388 |
+
msgid "Tags to Include"
|
6389 |
+
msgstr ""
|
6390 |
+
|
6391 |
+
#: includes/class-wcj-products-xml.php:456
|
6392 |
+
msgid ""
|
6393 |
+
"To include products from selected tags only, enter tags here. Leave blank to "
|
6394 |
+
"include all products."
|
6395 |
+
msgstr ""
|
6396 |
+
|
6397 |
+
#: includes/class-wcj-products-xml.php:464
|
6398 |
+
msgid "Tags to Exclude"
|
6399 |
+
msgstr ""
|
6400 |
+
|
6401 |
+
#: includes/class-wcj-products-xml.php:465
|
6402 |
+
msgid ""
|
6403 |
+
"To exclude products from selected tags, enter tags here. Leave blank to "
|
6404 |
+
"include all products."
|
6405 |
+
msgstr ""
|
6406 |
+
|
6407 |
+
#: includes/class-wcj-products-xml.php:473
|
6408 |
+
msgid "Products Scope"
|
6409 |
+
msgstr ""
|
6410 |
+
|
6411 |
+
#: includes/class-wcj-products-xml.php:479
|
6412 |
+
msgid "Only products that are on sale"
|
6413 |
+
msgstr ""
|
6414 |
+
|
6415 |
+
#: includes/class-wcj-products-xml.php:481
|
6416 |
+
msgid "Only products that are featured"
|
6417 |
+
msgstr ""
|
6418 |
+
|
6419 |
+
#: includes/class-wcj-products-xml.php:482
|
6420 |
+
msgid "Only products that are not featured"
|
6421 |
+
msgstr ""
|
6422 |
+
|
6423 |
+
#: includes/class-wcj-purchase-data.php:26
|
6424 |
+
msgid "Product Cost Price"
|
6425 |
+
msgstr ""
|
6426 |
+
|
6427 |
+
#: includes/class-wcj-purchase-data.php:27
|
6428 |
+
msgid "Save WooCommerce product purchase costs data for admin reports."
|
6429 |
+
msgstr ""
|
6430 |
+
|
6431 |
+
#: includes/class-wcj-purchase-data.php:51
|
6432 |
+
#: includes/class-wcj-purchase-data.php:248
|
6433 |
+
#: includes/class-wcj-purchase-data.php:403
|
6434 |
msgid "Profit"
|
6435 |
msgstr ""
|
6436 |
|
6437 |
+
#: includes/class-wcj-purchase-data.php:54
|
6438 |
+
#: includes/class-wcj-purchase-data.php:410
|
6439 |
+
msgid "Purchase Cost"
|
6440 |
+
msgstr ""
|
6441 |
+
|
6442 |
+
#: includes/class-wcj-purchase-data.php:129
|
6443 |
+
#: includes/class-wcj-purchase-data.php:291
|
6444 |
msgid "Product cost (purchase) price"
|
6445 |
msgstr ""
|
6446 |
|
6447 |
+
#: includes/class-wcj-purchase-data.php:139
|
6448 |
+
#: includes/class-wcj-purchase-data.php:298
|
6449 |
msgid "Extra expenses (shipping etc.)"
|
6450 |
msgstr ""
|
6451 |
|
6452 |
+
#: includes/class-wcj-purchase-data.php:149
|
6453 |
+
#: includes/class-wcj-purchase-data.php:305
|
6454 |
msgid "Affiliate commission"
|
6455 |
msgstr ""
|
6456 |
|
6457 |
+
#: includes/class-wcj-purchase-data.php:181
|
6458 |
+
#: includes/class-wcj-purchase-data.php:372
|
6459 |
msgid "(Last) Purchase date"
|
6460 |
msgstr ""
|
6461 |
|
6462 |
+
#: includes/class-wcj-purchase-data.php:191
|
6463 |
+
#: includes/class-wcj-purchase-data.php:379
|
6464 |
msgid "Seller"
|
6465 |
msgstr ""
|
6466 |
|
6467 |
+
#: includes/class-wcj-purchase-data.php:201
|
6468 |
+
#: includes/class-wcj-purchase-data.php:386
|
6469 |
msgid "Purchase info"
|
6470 |
msgstr ""
|
6471 |
|
6472 |
+
#: includes/class-wcj-purchase-data.php:246
|
6473 |
msgid "Selling"
|
6474 |
msgstr ""
|
6475 |
|
6476 |
+
#: includes/class-wcj-purchase-data.php:247
|
6477 |
msgid "Buying"
|
6478 |
msgstr ""
|
6479 |
|
6480 |
+
#: includes/class-wcj-purchase-data.php:256
|
6481 |
msgid "Report"
|
6482 |
msgstr ""
|
6483 |
|
6484 |
+
#: includes/class-wcj-purchase-data.php:285
|
6485 |
msgid "Price Fields"
|
6486 |
msgstr ""
|
6487 |
|
6488 |
+
#: includes/class-wcj-purchase-data.php:287
|
6489 |
+
#: includes/class-wcj-purchase-data.php:318
|
6490 |
msgid ""
|
6491 |
"This fields will be added to product's edit page and will be included in "
|
6492 |
"product's purchase cost calculation."
|
6493 |
msgstr ""
|
6494 |
|
6495 |
+
#: includes/class-wcj-purchase-data.php:316
|
6496 |
msgid "Custom Price Fields"
|
6497 |
msgstr ""
|
6498 |
|
6499 |
+
#: includes/class-wcj-purchase-data.php:322
|
6500 |
msgid "Total Custom Price Fields"
|
6501 |
msgstr ""
|
6502 |
|
6503 |
+
#: includes/class-wcj-purchase-data.php:334
|
6504 |
msgid "Custom Price Field"
|
6505 |
msgstr ""
|
6506 |
|
6507 |
+
#: includes/class-wcj-purchase-data.php:366
|
|
|
|
|
|
|
|
|
|
|
6508 |
msgid "Info Fields"
|
6509 |
msgstr ""
|
6510 |
|
6511 |
+
#: includes/class-wcj-purchase-data.php:368
|
6512 |
msgid "This fields will be added to product's edit page."
|
6513 |
msgstr ""
|
6514 |
|
6515 |
+
#: includes/class-wcj-purchase-data.php:399
|
6516 |
+
msgid ""
|
6517 |
+
"This section lets you add custom columns to WooCommerce admin orders list."
|
6518 |
+
msgstr ""
|
6519 |
+
|
6520 |
+
#: includes/class-wcj-purchase-data.php:421 includes/class-wcj-sku.php:390
|
6521 |
+
msgid "More Options"
|
6522 |
+
msgstr ""
|
6523 |
+
|
6524 |
+
#: includes/class-wcj-purchase-data.php:426
|
6525 |
+
msgid "Treat Variable Products as Simple Products"
|
6526 |
+
msgstr ""
|
6527 |
+
|
6528 |
+
#: includes/class-wcj-related-products.php:41
|
6529 |
+
msgid ""
|
6530 |
+
"Change displayed WooCommerce related products number, columns, order; relate "
|
6531 |
+
"by tag, category, product attribute or manually on per product basis. Hide "
|
6532 |
+
"related products completely."
|
6533 |
msgstr ""
|
6534 |
|
6535 |
+
#: includes/class-wcj-related-products.php:139
|
6536 |
msgid ""
|
6537 |
+
"If enabled and no products selected - will hide related products section on "
|
6538 |
+
"frontend for current product."
|
6539 |
+
msgstr ""
|
6540 |
+
|
6541 |
+
#: includes/class-wcj-related-products.php:148
|
6542 |
+
msgid "Hold Control (Ctrl) key to select multiple products."
|
6543 |
msgstr ""
|
6544 |
|
6545 |
+
#: includes/class-wcj-related-products.php:275
|
6546 |
msgid "Related Products Number"
|
6547 |
msgstr ""
|
6548 |
|
6549 |
+
#: includes/class-wcj-related-products.php:281
|
6550 |
msgid "Related Products Columns"
|
6551 |
msgstr ""
|
6552 |
|
6553 |
+
#: includes/class-wcj-related-products.php:296
|
6554 |
msgid "Order by"
|
6555 |
msgstr ""
|
6556 |
|
6557 |
+
#: includes/class-wcj-related-products.php:301
|
6558 |
msgid "Random"
|
6559 |
msgstr ""
|
6560 |
|
6561 |
+
#: includes/class-wcj-related-products.php:302
|
6562 |
msgid "Date"
|
6563 |
msgstr ""
|
6564 |
|
6565 |
+
#: includes/class-wcj-related-products.php:304
|
6566 |
+
msgid "Meta Value"
|
6567 |
+
msgstr ""
|
6568 |
+
|
6569 |
+
#: includes/class-wcj-related-products.php:305
|
6570 |
+
msgid "Meta Value (Numeric)"
|
6571 |
+
msgstr ""
|
6572 |
+
|
6573 |
+
#: includes/class-wcj-related-products.php:309
|
6574 |
+
msgid "Meta Key"
|
6575 |
+
msgstr ""
|
6576 |
+
|
6577 |
+
#: includes/class-wcj-related-products.php:310
|
6578 |
+
msgid ""
|
6579 |
+
"Used only if order by \"Meta Value\" or \"Meta Value (Numeric)\" is selected "
|
6580 |
+
"in \"Order by\"."
|
6581 |
+
msgstr ""
|
6582 |
+
|
6583 |
+
#: includes/class-wcj-related-products.php:317
|
6584 |
+
msgid "Ignored if order by \"Random\" is selected in \"Order by\"."
|
6585 |
msgstr ""
|
6586 |
|
6587 |
+
#: includes/class-wcj-related-products.php:322
|
6588 |
msgid "Ascending"
|
6589 |
msgstr ""
|
6590 |
|
6591 |
+
#: includes/class-wcj-related-products.php:323
|
6592 |
msgid "Descending"
|
6593 |
msgstr ""
|
6594 |
|
6595 |
+
#: includes/class-wcj-related-products.php:331
|
6596 |
+
msgid "Relate"
|
6597 |
+
msgstr ""
|
6598 |
+
|
6599 |
+
#: includes/class-wcj-related-products.php:336
|
6600 |
msgid "Relate by Category"
|
6601 |
msgstr ""
|
6602 |
|
6603 |
+
#: includes/class-wcj-related-products.php:343
|
6604 |
msgid "Relate by Tag"
|
6605 |
msgstr ""
|
6606 |
|
6607 |
+
#: includes/class-wcj-related-products.php:350
|
6608 |
+
msgid "Relate by Product Attribute"
|
6609 |
+
msgstr ""
|
6610 |
+
|
6611 |
+
#: includes/class-wcj-related-products.php:357
|
6612 |
+
msgid "Attribute Type"
|
6613 |
+
msgstr ""
|
6614 |
+
|
6615 |
+
#: includes/class-wcj-related-products.php:358
|
6616 |
+
msgid ""
|
6617 |
+
"If using \"Global Attribute\" enter attribute's <em>slug</em> in \"Attribute "
|
6618 |
+
"Name\""
|
6619 |
+
msgstr ""
|
6620 |
+
|
6621 |
+
#: includes/class-wcj-related-products.php:363
|
6622 |
+
msgid "Global Attribute"
|
6623 |
+
msgstr ""
|
6624 |
+
|
6625 |
+
#: includes/class-wcj-related-products.php:364
|
6626 |
+
msgid "Local Attribute"
|
6627 |
+
msgstr ""
|
6628 |
+
|
6629 |
+
#: includes/class-wcj-related-products.php:368
|
6630 |
+
msgid "Attribute Name"
|
6631 |
+
msgstr ""
|
6632 |
+
|
6633 |
+
#: includes/class-wcj-related-products.php:374
|
6634 |
+
msgid "Attribute Value"
|
6635 |
+
msgstr ""
|
6636 |
+
|
6637 |
+
#: includes/class-wcj-related-products.php:380
|
6638 |
+
msgid "Relate Manually"
|
6639 |
+
msgstr ""
|
6640 |
+
|
6641 |
+
#: includes/class-wcj-related-products.php:382
|
6642 |
+
msgid "This will add metabox to each product's edit page."
|
6643 |
+
msgstr ""
|
6644 |
+
|
6645 |
+
#: includes/class-wcj-related-products.php:383
|
6646 |
+
msgid ""
|
6647 |
+
"You will be able to select related products manually for each product "
|
6648 |
+
"individually. There is also an option to remove related products on per "
|
6649 |
+
"product basis."
|
6650 |
+
msgstr ""
|
6651 |
+
|
6652 |
+
#: includes/class-wcj-related-products.php:400
|
6653 |
msgid "Hide Related Products"
|
6654 |
msgstr ""
|
6655 |
|
6656 |
+
#: includes/class-wcj-related-products.php:412
|
6657 |
+
#, php-format
|
6658 |
+
msgid ""
|
6659 |
+
"You may need to <a class=\"button\" href=\"%s\">clear all products "
|
6660 |
+
"transients</a> to immediately see results on frontend after changing "
|
6661 |
+
"module's settings. Alternatively you can just update each product "
|
6662 |
+
"individually to clear its transients."
|
6663 |
+
msgstr ""
|
6664 |
+
|
6665 |
#: includes/class-wcj-reports.php:34
|
6666 |
msgid "Reports"
|
6667 |
msgstr ""
|
6674 |
msgid "Booster: More Ranges - Months"
|
6675 |
msgstr ""
|
6676 |
|
6677 |
+
#: includes/class-wcj-reports.php:75 includes/class-wcj-reports.php:119
|
6678 |
msgid "Select Range"
|
6679 |
msgstr ""
|
6680 |
|
6681 |
+
#: includes/class-wcj-reports.php:117
|
6682 |
msgid "Booster: More Ranges"
|
6683 |
msgstr ""
|
6684 |
|
6685 |
+
#: includes/class-wcj-reports.php:125
|
6686 |
msgid "Last 14 Days"
|
6687 |
msgstr ""
|
6688 |
|
6689 |
+
#: includes/class-wcj-reports.php:130
|
6690 |
msgid "Last 30 Days"
|
6691 |
msgstr ""
|
6692 |
|
6693 |
+
#: includes/class-wcj-reports.php:135
|
6694 |
msgid "Last 3 Months"
|
6695 |
msgstr ""
|
6696 |
|
6697 |
+
#: includes/class-wcj-reports.php:140
|
6698 |
msgid "Last 6 Months"
|
6699 |
msgstr ""
|
6700 |
|
6701 |
+
#: includes/class-wcj-reports.php:145
|
6702 |
msgid "Last 12 Months"
|
6703 |
msgstr ""
|
6704 |
|
6705 |
+
#: includes/class-wcj-reports.php:150
|
6706 |
msgid "Last 24 Months"
|
6707 |
msgstr ""
|
6708 |
|
6709 |
+
#: includes/class-wcj-reports.php:155
|
6710 |
msgid "Same Days Last Month"
|
6711 |
msgstr ""
|
6712 |
|
6713 |
+
#: includes/class-wcj-reports.php:160
|
6714 |
+
msgid "Same Days Last Year"
|
6715 |
+
msgstr ""
|
6716 |
+
|
6717 |
+
#: includes/class-wcj-reports.php:165
|
6718 |
msgid "Last Year"
|
6719 |
msgstr ""
|
6720 |
|
6721 |
+
#: includes/class-wcj-reports.php:249
|
6722 |
msgid "Booster: Product Sales"
|
6723 |
msgstr ""
|
6724 |
|
6725 |
+
#: includes/class-wcj-reports.php:256
|
6726 |
msgid "Booster: Monthly Sales"
|
6727 |
msgstr ""
|
6728 |
|
6729 |
+
#: includes/class-wcj-reports.php:271
|
6730 |
msgid "Booster: All in stock"
|
6731 |
msgstr ""
|
6732 |
|
6733 |
+
#: includes/class-wcj-reports.php:278
|
6734 |
msgid "Booster: Understocked"
|
6735 |
msgstr ""
|
6736 |
|
6737 |
+
#: includes/class-wcj-reports.php:285
|
6738 |
msgid "Booster: Overstocked"
|
6739 |
msgstr ""
|
6740 |
|
6741 |
+
#: includes/class-wcj-reports.php:300
|
6742 |
msgid "Booster: Customers by Country"
|
6743 |
msgstr ""
|
6744 |
|
6745 |
+
#: includes/class-wcj-reports.php:307
|
6746 |
msgid "Booster: Customers by Country Sets"
|
6747 |
msgstr ""
|
6748 |
|
6749 |
+
#: includes/class-wcj-reports.php:324
|
6750 |
msgid "Product Sales"
|
6751 |
msgstr ""
|
6752 |
|
6753 |
+
#: includes/class-wcj-reports.php:331
|
6754 |
+
msgid "Display item sales"
|
6755 |
+
msgstr ""
|
6756 |
+
|
6757 |
+
#: includes/class-wcj-reports.php:338
|
6758 |
+
msgid "Display sales sum"
|
6759 |
msgstr ""
|
6760 |
|
6761 |
+
#: includes/class-wcj-reports.php:345
|
6762 |
+
msgid "Display profit"
|
6763 |
+
msgstr ""
|
6764 |
+
|
6765 |
+
#: includes/class-wcj-reports.php:352
|
6766 |
+
msgid "Include taxes"
|
6767 |
+
msgstr ""
|
6768 |
+
|
6769 |
+
#: includes/class-wcj-reports.php:359
|
6770 |
+
msgid "Count variations for variable products"
|
6771 |
+
msgstr ""
|
6772 |
+
|
6773 |
+
#: includes/class-wcj-reports.php:365
|
6774 |
msgid "Monthly Sales (with currency conversions)"
|
6775 |
msgstr ""
|
6776 |
|
6777 |
+
#: includes/class-wcj-reports.php:371
|
6778 |
msgid "Customers by Country"
|
6779 |
msgstr ""
|
6780 |
|
6781 |
+
#: includes/class-wcj-reports.php:377
|
6782 |
msgid "Customers by Country Sets"
|
6783 |
msgstr ""
|
6784 |
|
6785 |
+
#: includes/class-wcj-reports.php:383
|
6786 |
msgid "All in Stock with sales data"
|
6787 |
msgstr ""
|
6788 |
|
6789 |
+
#: includes/class-wcj-reports.php:389
|
6790 |
msgid "Understocked products (calculated by sales data)"
|
6791 |
msgstr ""
|
6792 |
|
6793 |
+
#: includes/class-wcj-reports.php:395
|
6794 |
msgid "Overstocked products (calculated by sales data)"
|
6795 |
msgstr ""
|
6796 |
|
6797 |
+
#: includes/class-wcj-reports.php:403
|
6798 |
msgid "Available Reports"
|
6799 |
msgstr ""
|
6800 |
|
6801 |
+
#: includes/class-wcj-reports.php:420
|
6802 |
msgid "View report"
|
6803 |
msgstr ""
|
6804 |
|
6880 |
msgid "Hide WooCommerce shipping when free is available."
|
6881 |
msgstr ""
|
6882 |
|
6883 |
+
#: includes/class-wcj-shipping.php:176
|
6884 |
msgid "Booster: Hide shipping"
|
6885 |
msgstr ""
|
6886 |
|
6887 |
+
#: includes/class-wcj-shipping.php:177 includes/class-wcj-shipping.php:274
|
6888 |
msgid "Hide all when free is available"
|
6889 |
msgstr ""
|
6890 |
|
6891 |
+
#: includes/class-wcj-shipping.php:196
|
6892 |
msgid "WooCommerce > Settings > Shipping"
|
6893 |
msgstr ""
|
6894 |
|
6895 |
+
#: includes/class-wcj-shipping.php:199 includes/class-wcj-shipping.php:206
|
6896 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:153
|
6897 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:85
|
6898 |
msgid "Custom Shipping"
|
6899 |
msgstr ""
|
6900 |
|
6901 |
+
#: includes/class-wcj-shipping.php:202
|
6902 |
msgid "This section lets you add custom shipping method."
|
6903 |
msgstr ""
|
6904 |
|
6905 |
+
#: includes/class-wcj-shipping.php:203
|
6906 |
+
#, php-format
|
6907 |
msgid "Visit %s to set method's options."
|
6908 |
msgstr ""
|
6909 |
|
6910 |
+
#: includes/class-wcj-shipping.php:213
|
6911 |
msgid "Admin Title"
|
6912 |
msgstr ""
|
6913 |
|
6914 |
+
#: includes/class-wcj-shipping.php:215
|
6915 |
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:51
|
6916 |
msgid "Booster: Custom Shipping"
|
6917 |
msgstr ""
|
6918 |
|
6919 |
+
#: includes/class-wcj-shipping.php:226
|
6920 |
msgid "Custom Shipping (Legacy - without Shipping Zones)"
|
6921 |
msgstr ""
|
6922 |
|
6923 |
+
#: includes/class-wcj-shipping.php:229
|
6924 |
msgid "This section lets you set number of custom shipping methods to add."
|
6925 |
msgstr ""
|
6926 |
|
6927 |
+
#: includes/class-wcj-shipping.php:230
|
6928 |
+
#, php-format
|
6929 |
msgid "After setting the number, visit %s to set each method options."
|
6930 |
msgstr ""
|
6931 |
|
6932 |
+
#: includes/class-wcj-shipping.php:233
|
6933 |
msgid "Custom Shipping Methods Number"
|
6934 |
msgstr ""
|
6935 |
|
6936 |
+
#: includes/class-wcj-shipping.php:245
|
6937 |
msgid "Admin Title Custom Shipping"
|
6938 |
msgstr ""
|
6939 |
|
6940 |
+
#: includes/class-wcj-shipping.php:259
|
6941 |
msgid "Hide if Free is Available"
|
6942 |
msgstr ""
|
6943 |
|
6944 |
+
#: includes/class-wcj-shipping.php:261
|
6945 |
msgid ""
|
6946 |
"This section lets you hide other shipping options when free shipping is "
|
6947 |
"available on shop frontend."
|
6948 |
msgstr ""
|
6949 |
|
6950 |
+
#: includes/class-wcj-shipping.php:273
|
6951 |
msgid "Hide shipping"
|
6952 |
msgstr ""
|
6953 |
|
6954 |
+
#: includes/class-wcj-shipping.php:287 includes/class-wcj-shipping.php:293
|
6955 |
+
msgid "Free Shipping by Product"
|
6956 |
+
msgstr ""
|
6957 |
+
|
6958 |
+
#: includes/class-wcj-shipping.php:288
|
6959 |
+
msgid ""
|
6960 |
+
"In this section you can select products which grant free shipping when added "
|
6961 |
+
"to cart."
|
6962 |
+
msgstr ""
|
6963 |
+
|
6964 |
+
#: includes/class-wcj-shipping.php:309
|
6965 |
+
msgid ""
|
6966 |
+
"Select either <strong>all products</strong> or <strong>at least one product</"
|
6967 |
+
"strong> in cart must grant free shipping."
|
6968 |
+
msgstr ""
|
6969 |
+
|
6970 |
+
#: includes/class-wcj-shipping.php:314
|
6971 |
+
msgid "All products in cart must grant free shipping"
|
6972 |
+
msgstr ""
|
6973 |
+
|
6974 |
+
#: includes/class-wcj-shipping.php:315
|
6975 |
+
msgid "At least one product in cart must grant free shipping"
|
6976 |
+
msgstr ""
|
6977 |
+
|
6978 |
+
#: includes/class-wcj-shipping.php:327 includes/class-wcj-shipping.php:333
|
6979 |
msgid "Shipping Descriptions"
|
6980 |
msgstr ""
|
6981 |
|
6982 |
+
#: includes/class-wcj-shipping.php:329
|
6983 |
+
#, php-format
|
6984 |
msgid ""
|
6985 |
"This section will allow you to add any text (e.g. description) for shipping "
|
6986 |
"method. Text will be visible on cart and checkout pages. You can add HTML "
|
6987 |
"tags here, e.g. try \"%s\""
|
6988 |
msgstr ""
|
6989 |
|
6990 |
+
#: includes/class-wcj-shipping.php:340
|
6991 |
+
msgid "Description Visibility"
|
6992 |
+
msgstr ""
|
6993 |
+
|
6994 |
+
#: includes/class-wcj-shipping.php:345 includes/class-wcj-shipping.php:401
|
6995 |
+
msgid "On both cart and checkout pages"
|
6996 |
+
msgstr ""
|
6997 |
+
|
6998 |
+
#: includes/class-wcj-shipping.php:346 includes/class-wcj-shipping.php:402
|
6999 |
+
msgid "Only on cart page"
|
7000 |
+
msgstr ""
|
7001 |
+
|
7002 |
+
#: includes/class-wcj-shipping.php:347 includes/class-wcj-shipping.php:403
|
7003 |
+
msgid "Only on checkout page"
|
7004 |
+
msgstr ""
|
7005 |
+
|
7006 |
+
#: includes/class-wcj-shipping.php:349 includes/class-wcj-shipping.php:405
|
7007 |
+
msgid ""
|
7008 |
+
"Possible values: on both cart and checkout pages; only on cart page; only on "
|
7009 |
+
"checkout page"
|
7010 |
+
msgstr ""
|
7011 |
+
|
7012 |
+
#: includes/class-wcj-shipping.php:373 includes/class-wcj-shipping.php:379
|
7013 |
msgid "Shipping Icons"
|
7014 |
msgstr ""
|
7015 |
|
7016 |
+
#: includes/class-wcj-shipping.php:375
|
7017 |
msgid ""
|
7018 |
"This section will allow you to add icons for shipping method. Icons will be "
|
7019 |
"visible on cart and checkout pages."
|
7020 |
msgstr ""
|
7021 |
|
7022 |
+
#: includes/class-wcj-shipping.php:386
|
7023 |
msgid "Icon Position"
|
7024 |
msgstr ""
|
7025 |
|
7026 |
+
#: includes/class-wcj-shipping.php:391
|
7027 |
msgid "Before label"
|
7028 |
msgstr ""
|
7029 |
|
7030 |
+
#: includes/class-wcj-shipping.php:392
|
7031 |
msgid "After label"
|
7032 |
msgstr ""
|
7033 |
|
7034 |
+
#: includes/class-wcj-shipping.php:396
|
7035 |
+
msgid "Icon Visibility"
|
7036 |
+
msgstr ""
|
7037 |
+
|
7038 |
+
#: includes/class-wcj-shipping.php:410
|
7039 |
msgid "Icon Style"
|
7040 |
msgstr ""
|
7041 |
|
7042 |
+
#: includes/class-wcj-shipping.php:411
|
7043 |
msgid ""
|
7044 |
"You can also style icons with CSS class \"wcj_shipping_icon\", or id "
|
7045 |
"\"wcj_shipping_icon_method_id\""
|
7046 |
msgstr ""
|
7047 |
|
7048 |
+
#: includes/class-wcj-shipping.php:422
|
7049 |
+
#: includes/export/class-wcj-fields-helper.php:293
|
7050 |
msgid "Image URL"
|
7051 |
msgstr ""
|
7052 |
|
7053 |
+
#: includes/class-wcj-sku.php:26 includes/class-wcj-sku.php:255
|
7054 |
+
#: includes/export/class-wcj-fields-helper.php:285
|
7055 |
msgid "SKU"
|
7056 |
msgstr ""
|
7057 |
|
7067 |
msgid "The tool generates and sets product SKUs for existing products."
|
7068 |
msgstr ""
|
7069 |
|
7070 |
+
#: includes/class-wcj-sku.php:256
|
7071 |
+
msgid "Old SKU"
|
7072 |
+
msgstr ""
|
7073 |
+
|
7074 |
+
#: includes/class-wcj-sku.php:262
|
7075 |
msgid "SKUs generated and set successfully!"
|
7076 |
msgstr ""
|
7077 |
|
7078 |
+
#: includes/class-wcj-sku.php:268
|
7079 |
msgid "Preview SKUs"
|
7080 |
msgstr ""
|
7081 |
|
7082 |
+
#: includes/class-wcj-sku.php:269
|
7083 |
msgid "Set SKUs"
|
7084 |
msgstr ""
|
7085 |
|
7086 |
+
#: includes/class-wcj-sku.php:283
|
7087 |
msgid "SKU Format Options"
|
7088 |
msgstr ""
|
7089 |
|
7090 |
+
#: includes/class-wcj-sku.php:293
|
|
|
|
|
|
|
|
|
7091 |
msgid "From product ID"
|
7092 |
msgstr ""
|
7093 |
|
7094 |
+
#: includes/class-wcj-sku.php:301
|
|
|
|
|
|
|
|
|
|
|
7095 |
msgid "Sequential Number Generation Counter"
|
7096 |
msgstr ""
|
7097 |
|
7098 |
+
#: includes/class-wcj-sku.php:312 includes/class-wcj-sku.php:363
|
7099 |
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:63
|
7100 |
msgid "Prefix"
|
7101 |
msgstr ""
|
7102 |
|
7103 |
+
#: includes/class-wcj-sku.php:318
|
7104 |
msgid "Minimum Number Length"
|
7105 |
msgstr ""
|
7106 |
|
7107 |
+
#: includes/class-wcj-sku.php:324 includes/class-wcj-sku.php:372
|
7108 |
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-numbering.php:70
|
7109 |
msgid "Suffix"
|
7110 |
msgstr ""
|
7111 |
|
7112 |
+
#: includes/class-wcj-sku.php:332
|
7113 |
msgid "Variable Products Variations"
|
7114 |
msgstr ""
|
7115 |
|
7116 |
+
#: includes/class-wcj-sku.php:333
|
7117 |
msgid ""
|
7118 |
"Please note, that on new variable product creation, variations will get same "
|
7119 |
"SKUs as parent product, and if you want variations to have different SKUs, "
|
7120 |
"you will need to run \"Autogenerate SKUs\" tool manually."
|
7121 |
msgstr ""
|
7122 |
|
7123 |
+
#: includes/class-wcj-sku.php:338
|
7124 |
msgid "SKU same as parent's product"
|
7125 |
msgstr ""
|
7126 |
|
7127 |
+
#: includes/class-wcj-sku.php:339
|
7128 |
msgid "Generate different SKU for each variation"
|
7129 |
msgstr ""
|
7130 |
|
7131 |
+
#: includes/class-wcj-sku.php:340
|
7132 |
msgid "SKU same as parent's product + variation letter suffix"
|
7133 |
msgstr ""
|
7134 |
|
7135 |
+
#: includes/class-wcj-sku.php:352
|
7136 |
msgid "Categories Options"
|
7137 |
msgstr ""
|
7138 |
|
7139 |
+
#: includes/class-wcj-sku.php:395
|
|
|
|
|
|
|
|
|
7140 |
msgid "Automatically Generate SKU for New Products"
|
7141 |
msgstr ""
|
7142 |
|
7143 |
+
#: includes/class-wcj-sku.php:397
|
7144 |
+
msgid "Alternatively you can use Autogenerate SKUs tool."
|
7145 |
msgstr ""
|
7146 |
|
7147 |
+
#: includes/class-wcj-sku.php:403
|
7148 |
msgid "Allow Duplicate SKUs"
|
7149 |
msgstr ""
|
7150 |
|
7151 |
+
#: includes/class-wcj-sku.php:410
|
7152 |
+
msgid "Generate SKUs Only for Products with Empty SKU"
|
7153 |
+
msgstr ""
|
7154 |
+
|
7155 |
+
#: includes/class-wcj-sku.php:417
|
7156 |
msgid "Add SKU to Customer Emails"
|
7157 |
msgstr ""
|
7158 |
|
7159 |
+
#: includes/class-wcj-sku.php:430
|
7160 |
msgid "When enabled - all new products will be given (autogenerated) SKU."
|
7161 |
msgstr ""
|
7162 |
|
7163 |
+
#: includes/class-wcj-sku.php:431
|
7164 |
msgid ""
|
7165 |
"If you wish to set SKUs for existing products, use \"Autogenerate SKUs\" "
|
7166 |
"Tool."
|
7172 |
|
7173 |
#: includes/class-wcj-sorting.php:27
|
7174 |
msgid ""
|
7175 |
+
"Add more WooCommerce sorting options; rename or remove default sorting "
|
7176 |
+
"options; rearrange sorting options on frontend."
|
7177 |
msgstr ""
|
7178 |
|
7179 |
+
#: includes/class-wcj-sorting.php:167
|
7180 |
+
msgid "Default sorting"
|
7181 |
msgstr ""
|
7182 |
|
7183 |
+
#: includes/class-wcj-sorting.php:168
|
7184 |
+
msgid "Sort by popularity"
|
7185 |
msgstr ""
|
7186 |
|
7187 |
+
#: includes/class-wcj-sorting.php:169
|
7188 |
+
msgid "Sort by average rating"
|
7189 |
+
msgstr ""
|
7190 |
+
|
7191 |
+
#: includes/class-wcj-sorting.php:170
|
7192 |
+
msgid "Sort by newness"
|
7193 |
msgstr ""
|
7194 |
|
7195 |
#: includes/class-wcj-sorting.php:171
|
7196 |
+
msgid "Sort by price: low to high"
|
7197 |
msgstr ""
|
7198 |
|
7199 |
+
#: includes/class-wcj-sorting.php:172
|
7200 |
+
msgid "Sort by price: high to low"
|
7201 |
+
msgstr ""
|
7202 |
+
|
7203 |
+
#: includes/class-wcj-sorting.php:276
|
7204 |
+
msgid "Add Custom Sorting"
|
7205 |
+
msgstr ""
|
7206 |
+
|
7207 |
+
#: includes/class-wcj-sorting.php:281
|
7208 |
msgid "Add More Sorting"
|
7209 |
msgstr ""
|
7210 |
|
7211 |
+
#: includes/class-wcj-sorting.php:288
|
7212 |
msgid "Sort by Name"
|
7213 |
msgstr ""
|
7214 |
|
7215 |
+
#: includes/class-wcj-sorting.php:289 includes/class-wcj-sorting.php:292
|
7216 |
msgid "Sort by title: A to Z"
|
7217 |
msgstr ""
|
7218 |
|
7219 |
+
#: includes/class-wcj-sorting.php:290 includes/class-wcj-sorting.php:299
|
7220 |
+
#: includes/class-wcj-sorting.php:308 includes/class-wcj-sorting.php:317
|
7221 |
+
#: includes/class-wcj-sorting.php:335 includes/class-wcj-sorting.php:344
|
7222 |
msgid "Text to show on frontend. Leave blank to disable."
|
7223 |
msgstr ""
|
7224 |
|
7225 |
+
#: includes/class-wcj-sorting.php:298 includes/class-wcj-sorting.php:301
|
7226 |
msgid "Sort by title: Z to A"
|
7227 |
msgstr ""
|
7228 |
|
7229 |
+
#: includes/class-wcj-sorting.php:306
|
7230 |
msgid "Sort by SKU"
|
7231 |
msgstr ""
|
7232 |
|
7233 |
+
#: includes/class-wcj-sorting.php:307 includes/class-wcj-sorting.php:310
|
7234 |
msgid "Sort by SKU: low to high"
|
7235 |
msgstr ""
|
7236 |
|
7237 |
+
#: includes/class-wcj-sorting.php:316 includes/class-wcj-sorting.php:319
|
7238 |
msgid "Sort by SKU: high to low"
|
7239 |
msgstr ""
|
7240 |
|
7241 |
+
#: includes/class-wcj-sorting.php:325
|
7242 |
msgid "Sort SKUs as numbers instead of as texts"
|
7243 |
msgstr ""
|
7244 |
|
7245 |
+
#: includes/class-wcj-sorting.php:333
|
7246 |
msgid "Sort by stock quantity"
|
7247 |
msgstr ""
|
7248 |
|
7249 |
+
#: includes/class-wcj-sorting.php:334 includes/class-wcj-sorting.php:337
|
7250 |
msgid "Sort by stock quantity: low to high"
|
7251 |
msgstr ""
|
7252 |
|
7253 |
+
#: includes/class-wcj-sorting.php:343 includes/class-wcj-sorting.php:346
|
7254 |
msgid "Sort by stock quantity: high to low"
|
7255 |
msgstr ""
|
7256 |
|
7257 |
+
#: includes/class-wcj-sorting.php:355 includes/class-wcj-sorting.php:360
|
7258 |
+
#: includes/class-wcj-sorting.php:367
|
7259 |
+
msgid "Rearrange Sorting"
|
7260 |
+
msgstr ""
|
7261 |
+
|
7262 |
+
#: includes/class-wcj-sorting.php:369
|
7263 |
+
msgid "Default:"
|
7264 |
+
msgstr ""
|
7265 |
+
|
7266 |
+
#: includes/class-wcj-sorting.php:379
|
7267 |
+
msgid "Default WooCommerce Sorting"
|
7268 |
+
msgstr ""
|
7269 |
+
|
7270 |
+
#: includes/class-wcj-sorting.php:384
|
7271 |
+
msgid "Default Sorting Options"
|
7272 |
+
msgstr ""
|
7273 |
+
|
7274 |
+
#: includes/class-wcj-sorting.php:418 includes/class-wcj-sorting.php:423
|
7275 |
+
msgid "Remove All Sorting"
|
7276 |
+
msgstr ""
|
7277 |
+
|
7278 |
+
#: includes/class-wcj-sorting.php:424
|
7279 |
+
msgid "Remove all sorting (including WooCommerce default) from shop's frontend"
|
7280 |
+
msgstr ""
|
7281 |
+
|
7282 |
#: includes/class-wcj-wholesale-price.php:27
|
7283 |
msgid "Wholesale Price"
|
7284 |
msgstr ""
|
7289 |
"more pay less)."
|
7290 |
msgstr ""
|
7291 |
|
7292 |
+
#: includes/class-wcj-wholesale-price.php:253
|
7293 |
msgid "Price directly"
|
7294 |
msgstr ""
|
7295 |
|
7296 |
+
#: includes/class-wcj-wholesale-price.php:267
|
7297 |
msgid "Enable per Product Levels"
|
7298 |
msgstr ""
|
7299 |
|
7300 |
+
#: includes/class-wcj-wholesale-price.php:274
|
7301 |
+
#: includes/class-wcj-wholesale-price.php:400
|
7302 |
msgid "Discount Type"
|
7303 |
msgstr ""
|
7304 |
|
7305 |
+
#: includes/class-wcj-wholesale-price.php:281
|
7306 |
+
#: includes/class-wcj-wholesale-price.php:316
|
7307 |
+
#: includes/class-wcj-wholesale-price.php:436
|
7308 |
+
#: includes/class-wcj-wholesale-price.php:491
|
7309 |
msgid "Number of levels"
|
7310 |
msgstr ""
|
7311 |
|
7312 |
+
#: includes/class-wcj-wholesale-price.php:282
|
7313 |
+
#: includes/class-wcj-wholesale-price.php:317
|
7314 |
msgid ""
|
7315 |
"Free Booster's version is limited to one level maximum. Please visit http://"
|
7316 |
"booster.io to get full version."
|
7317 |
msgstr ""
|
7318 |
|
7319 |
+
#: includes/class-wcj-wholesale-price.php:296
|
7320 |
+
#: includes/class-wcj-wholesale-price.php:303
|
7321 |
+
#: includes/class-wcj-wholesale-price.php:331
|
7322 |
+
#: includes/class-wcj-wholesale-price.php:338
|
7323 |
msgid "Level"
|
7324 |
msgstr ""
|
7325 |
|
7326 |
+
#: includes/class-wcj-wholesale-price.php:296
|
7327 |
+
#: includes/class-wcj-wholesale-price.php:331
|
7328 |
+
#: includes/class-wcj-wholesale-price.php:449
|
7329 |
+
#: includes/class-wcj-wholesale-price.php:505
|
7330 |
msgid "Min quantity"
|
7331 |
msgstr ""
|
7332 |
|
7333 |
+
#: includes/class-wcj-wholesale-price.php:303
|
7334 |
+
#: includes/export/class-wcj-fields-helper.php:290
|
7335 |
+
#: includes/reports/wcj-class-reports-stock.php:322
|
7336 |
msgid "Price"
|
7337 |
msgstr ""
|
7338 |
|
7339 |
+
#: includes/class-wcj-wholesale-price.php:303
|
7340 |
+
#: includes/class-wcj-wholesale-price.php:338
|
7341 |
+
#: includes/class-wcj-wholesale-price.php:457
|
7342 |
+
#: includes/class-wcj-wholesale-price.php:458
|
7343 |
+
#: includes/class-wcj-wholesale-price.php:513
|
7344 |
+
#: includes/class-wcj-wholesale-price.php:514
|
7345 |
msgid "Discount"
|
7346 |
msgstr ""
|
7347 |
|
7348 |
+
#: includes/class-wcj-wholesale-price.php:360
|
7349 |
msgid ""
|
7350 |
"Wholesale Price Levels Options. If you want to display prices table on "
|
7351 |
"frontend, use [wcj_product_wholesale_price_table] shortcode."
|
7352 |
msgstr ""
|
7353 |
|
7354 |
+
#: includes/class-wcj-wholesale-price.php:364
|
7355 |
msgid "Enable per Product"
|
7356 |
msgstr ""
|
7357 |
|
7358 |
+
#: includes/class-wcj-wholesale-price.php:371
|
7359 |
msgid "Use total cart quantity instead of product quantity"
|
7360 |
msgstr ""
|
7361 |
|
7362 |
+
#: includes/class-wcj-wholesale-price.php:378
|
7363 |
msgid "Apply wholesale discount only if no other cart discounts were applied"
|
7364 |
msgstr ""
|
7365 |
|
7366 |
+
#: includes/class-wcj-wholesale-price.php:385
|
7367 |
msgid "Show discount info on cart page"
|
7368 |
msgstr ""
|
7369 |
|
7370 |
+
#: includes/class-wcj-wholesale-price.php:386
|
7371 |
msgid "Show"
|
7372 |
msgstr ""
|
7373 |
|
7374 |
+
#: includes/class-wcj-wholesale-price.php:392
|
7375 |
msgid "If show discount info on cart page is enabled, set format here"
|
7376 |
msgstr ""
|
7377 |
|
7378 |
+
#: includes/class-wcj-wholesale-price.php:393
|
7379 |
msgid "Replaced values: %old_price%, %price%, %discount_value%."
|
7380 |
msgstr ""
|
7381 |
|
7382 |
+
#: includes/class-wcj-wholesale-price.php:410
|
7383 |
msgid "Products to include"
|
7384 |
msgstr ""
|
7385 |
|
7386 |
+
#: includes/class-wcj-wholesale-price.php:411
|
7387 |
msgid "Leave blank to include all products."
|
7388 |
msgstr ""
|
7389 |
|
7390 |
+
#: includes/class-wcj-wholesale-price.php:419
|
7391 |
msgid "Products to exclude"
|
7392 |
msgstr ""
|
7393 |
|
7394 |
+
#: includes/class-wcj-wholesale-price.php:431
|
7395 |
msgid "Wholesale Levels Options"
|
7396 |
msgstr ""
|
7397 |
|
7398 |
+
#: includes/class-wcj-wholesale-price.php:450
|
7399 |
+
#: includes/class-wcj-wholesale-price.php:506
|
7400 |
msgid "Minimum quantity to apply discount"
|
7401 |
msgstr ""
|
7402 |
|
7403 |
+
#: includes/class-wcj-wholesale-price.php:471
|
7404 |
msgid "Additional User Roles Options"
|
7405 |
msgstr ""
|
7406 |
|
7407 |
+
#: includes/class-wcj-wholesale-price.php:473
|
7408 |
msgid ""
|
7409 |
"If you want to set different wholesale pricing options for different user "
|
7410 |
"roles, fill this section. Please note that you can also use Booster's "
|
7411 |
"\"Price by User Role\" module without filling this section."
|
7412 |
msgstr ""
|
7413 |
|
7414 |
+
#: includes/class-wcj-wholesale-price.php:477
|
7415 |
msgid "User Roles Settings"
|
7416 |
msgstr ""
|
7417 |
|
7423 |
msgid "Booster for WooCommerce basic WPML support."
|
7424 |
msgstr ""
|
7425 |
|
7426 |
+
#: includes/class-wcj-wpml.php:66 includes/classes/class-wcj-module.php:351
|
7427 |
msgid "Tools"
|
7428 |
msgstr ""
|
7429 |
|
7430 |
+
#: includes/class-wcj-wpml.php:71 includes/classes/class-wcj-module.php:357
|
7431 |
msgid "Module Tools"
|
7432 |
msgstr ""
|
7433 |
|
7434 |
+
#: includes/class-wcj-wpml.php:72
|
7435 |
+
#: includes/admin/class-wc-settings-jetpack.php:112
|
7436 |
+
msgid "To use tools, module must be enabled."
|
7437 |
+
msgstr ""
|
7438 |
+
|
7439 |
+
#: includes/class-wcj-wpml.php:77 includes/class-wcj-wpml.php:80
|
7440 |
msgid "Regenerate wpml-config.xml file"
|
7441 |
msgstr ""
|
7442 |
|
7443 |
+
#: includes/class-wcj-wpml.php:105
|
7444 |
msgid "File wpml-config.xml successfully regenerated!"
|
7445 |
msgstr ""
|
7446 |
|
7447 |
+
#: includes/add-to-cart/class-wcj-add-to-cart-per-product.php:81
|
7448 |
+
msgid "Booster: Custom Add to Cart"
|
7449 |
msgstr ""
|
7450 |
|
7451 |
+
#: includes/add-to-cart/class-wcj-add-to-cart-per-product.php:92
|
7452 |
+
msgid "Single product view"
|
7453 |
msgstr ""
|
7454 |
|
7455 |
+
#: includes/add-to-cart/class-wcj-add-to-cart-per-product.php:93
|
7456 |
+
msgid "Product category (archive) view"
|
7457 |
msgstr ""
|
7458 |
|
7459 |
+
#: includes/admin/class-wc-settings-jetpack.php:150
|
7460 |
+
msgid "Save changes"
|
7461 |
msgstr ""
|
7462 |
|
7463 |
+
#: includes/admin/class-wc-settings-jetpack.php:221
|
7464 |
+
msgid "Alphabetically"
|
7465 |
msgstr ""
|
7466 |
|
7467 |
+
#: includes/admin/class-wc-settings-jetpack.php:222
|
7468 |
+
msgid "By Category"
|
7469 |
msgstr ""
|
7470 |
|
7471 |
+
#: includes/admin/class-wc-settings-jetpack.php:223
|
7472 |
+
msgid "Active"
|
7473 |
msgstr ""
|
7474 |
|
7475 |
+
#: includes/admin/class-wc-settings-jetpack.php:224
|
7476 |
+
msgid "Manage Settings"
|
7477 |
msgstr ""
|
7478 |
|
7479 |
+
#: includes/admin/class-wc-settings-jetpack.php:266
|
7480 |
+
#: includes/admin/wcj-modules-cats.php:15
|
7481 |
+
msgid "Dashboard"
|
7482 |
msgstr ""
|
7483 |
|
7484 |
+
#: includes/admin/class-wc-settings-jetpack.php:302
|
7485 |
+
#, php-format
|
7486 |
+
msgid ""
|
7487 |
+
"Please note that current <em>%s</em> module is deprecated and will be "
|
7488 |
+
"removed in future updates. Please use <em>%s</em> module instead."
|
7489 |
msgstr ""
|
7490 |
|
7491 |
+
#: includes/admin/class-wc-settings-jetpack.php:367
|
7492 |
+
msgid "WooCommerce"
|
7493 |
msgstr ""
|
7494 |
|
7495 |
+
#: includes/admin/class-wc-settings-jetpack.php:418
|
7496 |
+
msgid ""
|
7497 |
+
"This section lets you export, import or reset all Booster's modules settings."
|
7498 |
msgstr ""
|
7499 |
|
7500 |
+
#: includes/admin/class-wc-settings-jetpack.php:448
|
7501 |
+
msgid "Export all Booster's options to a file."
|
7502 |
msgstr ""
|
7503 |
|
7504 |
+
#: includes/admin/class-wc-settings-jetpack.php:451
|
7505 |
+
msgid "Import"
|
7506 |
msgstr ""
|
7507 |
|
7508 |
+
#: includes/admin/class-wc-settings-jetpack.php:453
|
7509 |
+
msgid "Import all Booster's options from a file."
|
7510 |
msgstr ""
|
7511 |
|
7512 |
+
#: includes/admin/class-wc-settings-jetpack.php:456
|
7513 |
+
msgid ""
|
7514 |
+
"This will reset settings to defaults for all Booster modules. Are you sure?"
|
7515 |
+
msgstr ""
|
7516 |
+
|
7517 |
+
#: includes/admin/class-wc-settings-jetpack.php:456
|
7518 |
+
msgid "Reset"
|
7519 |
+
msgstr ""
|
7520 |
+
|
7521 |
+
#: includes/admin/class-wc-settings-jetpack.php:457
|
7522 |
+
msgid "Reset all Booster's options."
|
7523 |
+
msgstr ""
|
7524 |
+
|
7525 |
+
#: includes/admin/class-wc-settings-jetpack.php:470
|
7526 |
+
msgid "Version"
|
7527 |
+
msgstr ""
|
7528 |
+
|
7529 |
+
#: includes/admin/class-wc-settings-jetpack.php:494
|
7530 |
+
#: includes/admin/class-wc-settings-jetpack.php:501
|
7531 |
+
msgid "Select All"
|
7532 |
+
msgstr ""
|
7533 |
+
|
7534 |
+
#: includes/admin/class-wc-settings-jetpack.php:495
|
7535 |
+
#: includes/admin/class-wc-settings-jetpack.php:502
|
7536 |
+
#: includes/admin/class-wcj-tools.php:74
|
7537 |
+
msgid "Module"
|
7538 |
+
msgstr ""
|
7539 |
+
|
7540 |
+
#: includes/admin/class-wc-settings-jetpack.php:541
|
7541 |
+
#: includes/classes/class-wcj-module.php:512
|
7542 |
+
msgid "Documentation"
|
7543 |
+
msgstr ""
|
7544 |
+
|
7545 |
+
#: includes/admin/class-wc-settings-jetpack.php:556
|
7546 |
+
msgid "No active modules found."
|
7547 |
+
msgstr ""
|
7548 |
+
|
7549 |
+
#: includes/admin/class-wc-settings-jetpack.php:559
|
7550 |
+
msgid "Total Modules:"
|
7551 |
+
msgstr ""
|
7552 |
+
|
7553 |
+
#: includes/admin/class-wc-settings-jetpack.php:585
|
7554 |
+
msgid "Autoload Booster's Options"
|
7555 |
+
msgstr ""
|
7556 |
+
|
7557 |
+
#: includes/admin/class-wc-settings-jetpack.php:587
|
7558 |
+
msgid ""
|
7559 |
+
"Choose if you want Booster's options to be autoloaded when calling "
|
7560 |
+
"add_option. After saving this option, you need to Reset all Booster's "
|
7561 |
+
"settings. Leave default value (i.e. Enabled) if not sure."
|
7562 |
+
msgstr ""
|
7563 |
+
|
7564 |
+
#: includes/admin/class-wcj-tools.php:34
|
7565 |
+
msgid "Booster for WooCommerce Tools"
|
7566 |
+
msgstr ""
|
7567 |
+
|
7568 |
+
#: includes/admin/class-wcj-tools.php:35
|
7569 |
+
msgid "Booster Tools"
|
7570 |
+
msgstr ""
|
7571 |
+
|
7572 |
+
#: includes/admin/class-wcj-tools.php:53
|
7573 |
+
msgid "Tools Dashboard"
|
7574 |
+
msgstr ""
|
7575 |
+
|
7576 |
+
#: includes/admin/class-wcj-tools.php:67
|
7577 |
+
msgid "Booster for WooCommerce Tools - Dashboard"
|
7578 |
+
msgstr ""
|
7579 |
+
|
7580 |
+
#: includes/admin/class-wcj-tools.php:68
|
7581 |
+
msgid ""
|
7582 |
+
"This dashboard lets you check statuses and short descriptions of all "
|
7583 |
+
"available Booster for WooCommerce tools. Tools can be enabled through "
|
7584 |
+
"WooCommerce > Settings > Booster. Enabled tools will appear in the tabs menu "
|
7585 |
+
"above."
|
7586 |
+
msgstr ""
|
7587 |
+
|
7588 |
+
#: includes/admin/class-wcj-tools.php:73
|
7589 |
+
msgid "Tool"
|
7590 |
+
msgstr ""
|
7591 |
+
|
7592 |
+
#: includes/admin/wcj-modules-cats.php:16
|
7593 |
+
msgid ""
|
7594 |
+
"This dashboard lets you enable/disable any Booster's module. Each checkbox "
|
7595 |
+
"comes with short module's description. Please visit <a href=\"http://booster."
|
7596 |
+
"io\" target=\"_blank\">http://booster.io</a> for detailed info on each "
|
7597 |
+
"feature."
|
7598 |
+
msgstr ""
|
7599 |
+
|
7600 |
+
#: includes/admin/wcj-modules-cats.php:26
|
7601 |
+
msgid "Prices & Currencies"
|
7602 |
+
msgstr ""
|
7603 |
+
|
7604 |
+
#: includes/admin/wcj-modules-cats.php:27
|
7605 |
+
msgid ""
|
7606 |
+
"Multicurrency, Price Converter, Wholesale Pricing, Name You Price, Price by "
|
7607 |
+
"User Role and more."
|
7608 |
+
msgstr ""
|
7609 |
+
|
7610 |
+
#: includes/admin/wcj-modules-cats.php:47
|
7611 |
+
msgid "Button & Price Labels"
|
7612 |
+
msgstr ""
|
7613 |
+
|
7614 |
+
#: includes/admin/wcj-modules-cats.php:48
|
7615 |
+
msgid "Add to Cart Labels, Call for Price, Custom Price Labels and more."
|
7616 |
+
msgstr ""
|
7617 |
+
|
7618 |
+
#: includes/admin/wcj-modules-cats.php:60
|
7619 |
+
msgid ""
|
7620 |
+
"Bookings, Crowdfunding Products, Product Addons and Input Fields, Product "
|
7621 |
+
"Listings, Product Tabs and more."
|
7622 |
+
msgstr ""
|
7623 |
+
|
7624 |
+
#: includes/admin/wcj-modules-cats.php:84
|
7625 |
+
msgid "Cart & Checkout"
|
7626 |
+
msgstr ""
|
7627 |
+
|
7628 |
+
#: includes/admin/wcj-modules-cats.php:85
|
7629 |
+
msgid "Cart and Checkout Customization, Empty Cart Button, Mini Cart and more."
|
7630 |
+
msgstr ""
|
7631 |
+
|
7632 |
+
#: includes/admin/wcj-modules-cats.php:102
|
7633 |
+
msgid ""
|
7634 |
+
"Custom Payment Gateways, Gateways Currency, Gateways Fees and Discounts and "
|
7635 |
+
"more."
|
7636 |
+
msgstr ""
|
7637 |
+
|
7638 |
+
#: includes/admin/wcj-modules-cats.php:117
|
7639 |
+
msgid "Shipping & Orders"
|
7640 |
+
msgstr ""
|
7641 |
+
|
7642 |
+
#: includes/admin/wcj-modules-cats.php:118
|
7643 |
+
msgid ""
|
7644 |
+
"Order Custom Statuses, Order Minimum Amount, Order Numbers, Custom Shipping "
|
7645 |
+
"Methods and more."
|
7646 |
+
msgstr ""
|
7647 |
+
|
7648 |
+
#: includes/admin/wcj-modules-cats.php:132
|
7649 |
+
msgid "PDF Invoicing & Packing Slips"
|
7650 |
+
msgstr ""
|
7651 |
+
|
7652 |
+
#: includes/admin/wcj-modules-cats.php:133
|
7653 |
+
msgid "PDF Documents"
|
7654 |
+
msgstr ""
|
7655 |
+
|
7656 |
+
#: includes/admin/wcj-modules-cats.php:148
|
7657 |
+
msgid "Emails & Misc."
|
7658 |
+
msgstr ""
|
7659 |
+
|
7660 |
+
#: includes/admin/wcj-modules-cats.php:149
|
7661 |
+
msgid "Emails, Reports, Export, Admin Tools, General Options and more."
|
7662 |
+
msgstr ""
|
7663 |
+
|
7664 |
+
#: includes/classes/class-wcj-module.php:339
|
7665 |
+
msgid "Back to Module Settings"
|
7666 |
+
msgstr ""
|
7667 |
+
|
7668 |
+
#: includes/classes/class-wcj-module.php:431
|
7669 |
+
msgid "disabled"
|
7670 |
+
msgstr ""
|
7671 |
+
|
7672 |
+
#: includes/classes/class-wcj-module.php:477
|
7673 |
+
msgid "Reset Settings"
|
7674 |
+
msgstr ""
|
7675 |
+
|
7676 |
+
#: includes/classes/class-wcj-module.php:483
|
7677 |
+
msgid "Reset Module to Default Settings"
|
7678 |
+
msgstr ""
|
7679 |
+
|
7680 |
+
#: includes/classes/class-wcj-module.php:484
|
7681 |
+
msgid "Reset Submodule to Default Settings"
|
7682 |
+
msgstr ""
|
7683 |
+
|
7684 |
+
#: includes/classes/class-wcj-module.php:488
|
7685 |
+
msgid "Reset settings"
|
7686 |
+
msgstr ""
|
7687 |
+
|
7688 |
+
#: includes/classes/class-wcj-module.php:516
|
7689 |
+
msgid "Module Options"
|
7690 |
+
msgstr ""
|
7691 |
+
|
7692 |
+
#: includes/classes/class-wcj-module.php:523
|
7693 |
+
msgid "Enable Module"
|
7694 |
+
msgstr ""
|
7695 |
+
|
7696 |
+
#: includes/currencies/wcj-currencies.php:14
|
7697 |
+
msgid "United Arab Emirates Dirham"
|
7698 |
+
msgstr ""
|
7699 |
+
|
7700 |
+
#: includes/currencies/wcj-currencies.php:15
|
7701 |
+
msgid "Afghan afghani"
|
7702 |
+
msgstr ""
|
7703 |
+
|
7704 |
+
#: includes/currencies/wcj-currencies.php:16
|
7705 |
+
msgid "Albanian lek"
|
7706 |
+
msgstr ""
|
7707 |
+
|
7708 |
+
#: includes/currencies/wcj-currencies.php:17
|
7709 |
+
msgid "Armenian dram"
|
7710 |
+
msgstr ""
|
7711 |
+
|
7712 |
+
#: includes/currencies/wcj-currencies.php:18
|
7713 |
+
msgid "Netherlands Antillean gulden"
|
7714 |
+
msgstr ""
|
7715 |
+
|
7716 |
+
#: includes/currencies/wcj-currencies.php:19
|
7717 |
+
msgid "Angolan kwanza"
|
7718 |
+
msgstr ""
|
7719 |
+
|
7720 |
+
#: includes/currencies/wcj-currencies.php:20
|
7721 |
+
msgid "Argentine Peso"
|
7722 |
+
msgstr ""
|
7723 |
+
|
7724 |
+
#: includes/currencies/wcj-currencies.php:21
|
7725 |
+
msgid "Australian Dollars"
|
7726 |
msgstr ""
|
7727 |
|
7728 |
#: includes/currencies/wcj-currencies.php:22
|
8159 |
msgstr ""
|
8160 |
|
8161 |
#: includes/currencies/wcj-currencies.php:130
|
8162 |
+
msgid "Paraguayan Guaran"
|
8163 |
msgstr ""
|
8164 |
|
8165 |
#: includes/currencies/wcj-currencies.php:131
|
8357 |
msgstr ""
|
8358 |
|
8359 |
#: includes/emails/class-wc-email-wcj-custom.php:251
|
8360 |
+
#, php-format
|
8361 |
msgid "New order (%s)"
|
8362 |
msgstr ""
|
8363 |
|
8364 |
#: includes/emails/class-wc-email-wcj-custom.php:252
|
8365 |
+
#, php-format
|
8366 |
msgid "Order status updated to %s"
|
8367 |
msgstr ""
|
8368 |
|
8369 |
#: includes/emails/class-wc-email-wcj-custom.php:255
|
8370 |
+
#, php-format
|
8371 |
msgid "Order status %s to %s"
|
8372 |
msgstr ""
|
8373 |
|
8434 |
msgstr ""
|
8435 |
|
8436 |
#: includes/emails/class-wc-email-wcj-custom.php:297
|
8437 |
+
#, php-format
|
8438 |
msgid ""
|
8439 |
"Enter recipients (comma separated) for this email. Defaults to <code>%s</"
|
8440 |
"code>."
|
8449 |
msgstr ""
|
8450 |
|
8451 |
#: includes/emails/class-wc-email-wcj-custom.php:304
|
8452 |
+
#, php-format
|
8453 |
msgid ""
|
8454 |
"This controls the email subject line. Leave blank to use the default "
|
8455 |
"subject: <code>%s</code>."
|
8460 |
msgstr ""
|
8461 |
|
8462 |
#: includes/emails/class-wc-email-wcj-custom.php:311
|
8463 |
+
#, php-format
|
8464 |
msgid ""
|
8465 |
"This controls the main heading contained within the email notification. "
|
8466 |
"Leave blank to use the default heading: <code>%s</code>."
|
8487 |
msgid "Plain text template"
|
8488 |
msgstr ""
|
8489 |
|
8490 |
+
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:165
|
8491 |
msgid "Cron job: exchange rates successfully updated"
|
8492 |
msgstr ""
|
8493 |
|
8494 |
+
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:167
|
8495 |
msgid "Cron job: exchange rates not updated, as currency_from == currency_to"
|
8496 |
msgstr ""
|
8497 |
|
8498 |
+
#: includes/exchange-rates/class-wcj-exchange-rates-crons.php:170
|
8499 |
msgid "Cron job: exchange rates update failed"
|
8500 |
msgstr ""
|
8501 |
|
8502 |
+
#: includes/exchange-rates/class-wcj-exchange-rates.php:104
|
8503 |
+
#, php-format
|
8504 |
+
msgid "Grab %s rate from %s"
|
8505 |
msgstr ""
|
8506 |
|
8507 |
#: includes/export/class-wcj-fields-helper.php:36
|
8508 |
+
msgid "Customer Nr."
|
|
|
|
|
8509 |
msgstr ""
|
8510 |
|
8511 |
#: includes/export/class-wcj-fields-helper.php:37
|
8512 |
+
#: includes/export/class-wcj-fields-helper.php:133
|
8513 |
+
#: includes/export/class-wcj-fields-helper.php:218
|
8514 |
+
msgid "Billing Email"
|
8515 |
msgstr ""
|
8516 |
|
8517 |
#: includes/export/class-wcj-fields-helper.php:38
|
8518 |
#: includes/export/class-wcj-fields-helper.php:123
|
8519 |
#: includes/export/class-wcj-fields-helper.php:208
|
8520 |
+
msgid "Billing First Name"
|
8521 |
msgstr ""
|
8522 |
|
8523 |
#: includes/export/class-wcj-fields-helper.php:39
|
8524 |
#: includes/export/class-wcj-fields-helper.php:124
|
8525 |
#: includes/export/class-wcj-fields-helper.php:209
|
8526 |
+
msgid "Billing Last Name"
|
8527 |
msgstr ""
|
8528 |
|
8529 |
#: includes/export/class-wcj-fields-helper.php:40
|
8530 |
#: includes/export/class-wcj-fields-helper.php:125
|
8531 |
#: includes/export/class-wcj-fields-helper.php:210
|
8532 |
+
msgid "Billing Company"
|
8533 |
msgstr ""
|
8534 |
|
8535 |
#: includes/export/class-wcj-fields-helper.php:41
|
8536 |
#: includes/export/class-wcj-fields-helper.php:126
|
8537 |
#: includes/export/class-wcj-fields-helper.php:211
|
8538 |
+
msgid "Billing Address 1"
|
8539 |
msgstr ""
|
8540 |
|
8541 |
#: includes/export/class-wcj-fields-helper.php:42
|
8542 |
#: includes/export/class-wcj-fields-helper.php:127
|
8543 |
#: includes/export/class-wcj-fields-helper.php:212
|
8544 |
+
msgid "Billing Address 2"
|
8545 |
msgstr ""
|
8546 |
|
8547 |
#: includes/export/class-wcj-fields-helper.php:43
|
8548 |
#: includes/export/class-wcj-fields-helper.php:128
|
8549 |
#: includes/export/class-wcj-fields-helper.php:213
|
8550 |
+
msgid "Billing City"
|
8551 |
msgstr ""
|
8552 |
|
8553 |
#: includes/export/class-wcj-fields-helper.php:44
|
8554 |
#: includes/export/class-wcj-fields-helper.php:129
|
8555 |
#: includes/export/class-wcj-fields-helper.php:214
|
8556 |
+
msgid "Billing State"
|
8557 |
msgstr ""
|
8558 |
|
8559 |
#: includes/export/class-wcj-fields-helper.php:45
|
8560 |
#: includes/export/class-wcj-fields-helper.php:130
|
8561 |
#: includes/export/class-wcj-fields-helper.php:215
|
8562 |
+
msgid "Billing Postcode"
|
8563 |
msgstr ""
|
8564 |
|
8565 |
#: includes/export/class-wcj-fields-helper.php:46
|
8566 |
#: includes/export/class-wcj-fields-helper.php:131
|
8567 |
#: includes/export/class-wcj-fields-helper.php:216
|
8568 |
+
msgid "Billing Country"
|
8569 |
msgstr ""
|
8570 |
|
8571 |
#: includes/export/class-wcj-fields-helper.php:47
|
8572 |
+
#: includes/export/class-wcj-fields-helper.php:132
|
8573 |
+
#: includes/export/class-wcj-fields-helper.php:217
|
8574 |
+
msgid "Billing Phone"
|
8575 |
+
msgstr ""
|
8576 |
+
|
8577 |
+
#: includes/export/class-wcj-fields-helper.php:48
|
8578 |
msgid "Last Order Date"
|
8579 |
msgstr ""
|
8580 |
|
8581 |
+
#: includes/export/class-wcj-fields-helper.php:76
|
8582 |
msgid "Customer ID"
|
8583 |
msgstr ""
|
8584 |
|
8585 |
+
#: includes/export/class-wcj-fields-helper.php:78
|
8586 |
msgid "First Name"
|
8587 |
msgstr ""
|
8588 |
|
8589 |
+
#: includes/export/class-wcj-fields-helper.php:79
|
8590 |
msgid "Last Name"
|
8591 |
msgstr ""
|
8592 |
|
8593 |
+
#: includes/export/class-wcj-fields-helper.php:80
|
8594 |
msgid "Login"
|
8595 |
msgstr ""
|
8596 |
|
8597 |
+
#: includes/export/class-wcj-fields-helper.php:81
|
8598 |
msgid "Nicename"
|
8599 |
msgstr ""
|
8600 |
|
8601 |
+
#: includes/export/class-wcj-fields-helper.php:82
|
8602 |
+
#: includes/export/class-wcj-fields-helper.php:297
|
8603 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:163
|
8604 |
msgid "URL"
|
8605 |
msgstr ""
|
8606 |
|
8607 |
+
#: includes/export/class-wcj-fields-helper.php:83
|
8608 |
#: includes/reports/wcj-class-reports-customers.php:94
|
8609 |
msgid "Registered"
|
8610 |
msgstr ""
|
8611 |
|
8612 |
+
#: includes/export/class-wcj-fields-helper.php:84
|
8613 |
msgid "Display Name"
|
8614 |
msgstr ""
|
8615 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8616 |
#: includes/export/class-wcj-fields-helper.php:113
|
8617 |
#: includes/export/class-wcj-fields-helper.php:196
|
8618 |
+
msgid "Order Number"
|
8619 |
msgstr ""
|
8620 |
|
8621 |
#: includes/export/class-wcj-fields-helper.php:114
|
8622 |
#: includes/export/class-wcj-fields-helper.php:197
|
8623 |
+
msgid "Order Status"
|
8624 |
msgstr ""
|
8625 |
|
8626 |
#: includes/export/class-wcj-fields-helper.php:115
|
8627 |
#: includes/export/class-wcj-fields-helper.php:198
|
8628 |
+
msgid "Order Date"
|
8629 |
msgstr ""
|
8630 |
|
8631 |
#: includes/export/class-wcj-fields-helper.php:116
|
8632 |
#: includes/export/class-wcj-fields-helper.php:199
|
8633 |
+
msgid "Order Time"
|
8634 |
msgstr ""
|
8635 |
|
8636 |
+
#: includes/export/class-wcj-fields-helper.php:117
|
8637 |
+
#: includes/export/class-wcj-fields-helper.php:200
|
8638 |
+
msgid "Order Item Count"
|
|
|
8639 |
msgstr ""
|
8640 |
|
8641 |
#: includes/export/class-wcj-fields-helper.php:119
|
8642 |
#: includes/export/class-wcj-fields-helper.php:204
|
8643 |
+
#: includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php:260
|
8644 |
+
msgid "Order Total"
|
8645 |
msgstr ""
|
8646 |
|
8647 |
#: includes/export/class-wcj-fields-helper.php:120
|
8648 |
#: includes/export/class-wcj-fields-helper.php:205
|
8649 |
+
msgid "Order Total Tax"
|
8650 |
msgstr ""
|
8651 |
|
8652 |
+
#: includes/export/class-wcj-fields-helper.php:121
|
8653 |
+
#: includes/export/class-wcj-fields-helper.php:206
|
8654 |
+
msgid "Order Payment Method"
|
8655 |
msgstr ""
|
8656 |
|
8657 |
#: includes/export/class-wcj-fields-helper.php:134
|
8658 |
#: includes/export/class-wcj-fields-helper.php:219
|
8659 |
+
msgid "Shipping First Name"
|
8660 |
msgstr ""
|
8661 |
|
8662 |
#: includes/export/class-wcj-fields-helper.php:135
|
8663 |
#: includes/export/class-wcj-fields-helper.php:220
|
8664 |
+
msgid "Shipping Last Name"
|
8665 |
msgstr ""
|
8666 |
|
8667 |
#: includes/export/class-wcj-fields-helper.php:136
|
8668 |
#: includes/export/class-wcj-fields-helper.php:221
|
8669 |
+
msgid "Shipping Company"
|
8670 |
msgstr ""
|
8671 |
|
8672 |
#: includes/export/class-wcj-fields-helper.php:137
|
8673 |
#: includes/export/class-wcj-fields-helper.php:222
|
8674 |
+
msgid "Shipping Address 1"
|
8675 |
msgstr ""
|
8676 |
|
8677 |
#: includes/export/class-wcj-fields-helper.php:138
|
8678 |
#: includes/export/class-wcj-fields-helper.php:223
|
8679 |
+
msgid "Shipping Address 2"
|
8680 |
msgstr ""
|
8681 |
|
8682 |
#: includes/export/class-wcj-fields-helper.php:139
|
8683 |
#: includes/export/class-wcj-fields-helper.php:224
|
8684 |
+
msgid "Shipping City"
|
8685 |
msgstr ""
|
8686 |
|
8687 |
#: includes/export/class-wcj-fields-helper.php:140
|
8688 |
#: includes/export/class-wcj-fields-helper.php:225
|
8689 |
+
msgid "Shipping State"
|
8690 |
msgstr ""
|
8691 |
|
8692 |
#: includes/export/class-wcj-fields-helper.php:141
|
8693 |
#: includes/export/class-wcj-fields-helper.php:226
|
8694 |
+
msgid "Shipping Postcode"
|
8695 |
+
msgstr ""
|
8696 |
+
|
8697 |
+
#: includes/export/class-wcj-fields-helper.php:142
|
8698 |
+
#: includes/export/class-wcj-fields-helper.php:227
|
8699 |
msgid "Shipping Country"
|
8700 |
msgstr ""
|
8701 |
|
8702 |
+
#: includes/export/class-wcj-fields-helper.php:144
|
8703 |
msgid "Item Name"
|
8704 |
msgstr ""
|
8705 |
|
8706 |
+
#: includes/export/class-wcj-fields-helper.php:145
|
8707 |
msgid "Item Meta"
|
8708 |
msgstr ""
|
8709 |
|
8710 |
+
#: includes/export/class-wcj-fields-helper.php:146
|
8711 |
msgid "Item Variation Meta"
|
8712 |
msgstr ""
|
8713 |
|
8714 |
+
#: includes/export/class-wcj-fields-helper.php:147
|
8715 |
msgid "Item Quantity"
|
8716 |
msgstr ""
|
8717 |
|
8718 |
+
#: includes/export/class-wcj-fields-helper.php:148
|
8719 |
msgid "Item Tax Class"
|
8720 |
msgstr ""
|
8721 |
|
8722 |
+
#: includes/export/class-wcj-fields-helper.php:149
|
8723 |
msgid "Item Product ID"
|
8724 |
msgstr ""
|
8725 |
|
8726 |
+
#: includes/export/class-wcj-fields-helper.php:150
|
8727 |
msgid "Item Variation ID"
|
8728 |
msgstr ""
|
8729 |
|
8730 |
+
#: includes/export/class-wcj-fields-helper.php:151
|
8731 |
msgid "Item Line Subtotal"
|
8732 |
msgstr ""
|
8733 |
|
8734 |
+
#: includes/export/class-wcj-fields-helper.php:152
|
8735 |
msgid "Item Line Total"
|
8736 |
msgstr ""
|
8737 |
|
8738 |
+
#: includes/export/class-wcj-fields-helper.php:153
|
8739 |
msgid "Item Line Subtotal Tax"
|
8740 |
msgstr ""
|
8741 |
|
8742 |
+
#: includes/export/class-wcj-fields-helper.php:154
|
8743 |
msgid "Item Line Tax"
|
8744 |
msgstr ""
|
8745 |
|
8746 |
+
#: includes/export/class-wcj-fields-helper.php:155
|
8747 |
msgid "Item Line Subtotal Plus Tax"
|
8748 |
msgstr ""
|
8749 |
|
8750 |
+
#: includes/export/class-wcj-fields-helper.php:156
|
8751 |
msgid "Item Line Total Plus Tax"
|
8752 |
msgstr ""
|
8753 |
|
8754 |
+
#: includes/export/class-wcj-fields-helper.php:157
|
8755 |
msgid "Item Product Input Fields"
|
8756 |
msgstr ""
|
8757 |
|
8758 |
+
#: includes/export/class-wcj-fields-helper.php:201
|
8759 |
msgid "Order Items"
|
8760 |
msgstr ""
|
8761 |
|
8762 |
+
#: includes/export/class-wcj-fields-helper.php:202
|
8763 |
msgid "Order Items Product Input Fields"
|
8764 |
msgstr ""
|
8765 |
|
8766 |
+
#: includes/export/class-wcj-fields-helper.php:282
|
8767 |
msgid "Product ID"
|
8768 |
msgstr ""
|
8769 |
|
8770 |
+
#: includes/export/class-wcj-fields-helper.php:283
|
8771 |
+
msgid "Parent Product ID"
|
8772 |
+
msgstr ""
|
8773 |
+
|
8774 |
+
#: includes/export/class-wcj-fields-helper.php:286
|
8775 |
msgid "Total Stock"
|
8776 |
msgstr ""
|
8777 |
|
8778 |
+
#: includes/export/class-wcj-fields-helper.php:287
|
8779 |
msgid "Stock Quantity"
|
8780 |
msgstr ""
|
8781 |
|
8782 |
+
#: includes/export/class-wcj-fields-helper.php:298
|
8783 |
msgid "Shipping Class"
|
8784 |
msgstr ""
|
8785 |
|
8786 |
+
#: includes/export/class-wcj-fields-helper.php:299
|
8787 |
msgid "Shipping Class ID"
|
8788 |
msgstr ""
|
8789 |
|
8790 |
+
#: includes/export/class-wcj-fields-helper.php:300
|
8791 |
msgid "Width"
|
8792 |
msgstr ""
|
8793 |
|
8794 |
+
#: includes/export/class-wcj-fields-helper.php:301
|
8795 |
msgid "Length"
|
8796 |
msgstr ""
|
8797 |
|
8798 |
+
#: includes/export/class-wcj-fields-helper.php:302
|
8799 |
msgid "Height"
|
8800 |
msgstr ""
|
8801 |
|
8802 |
+
#: includes/export/class-wcj-fields-helper.php:303
|
8803 |
msgid "Weight"
|
8804 |
msgstr ""
|
8805 |
|
8806 |
+
#: includes/export/class-wcj-fields-helper.php:304
|
8807 |
msgid "Downloadable"
|
8808 |
msgstr ""
|
8809 |
|
8810 |
+
#: includes/export/class-wcj-fields-helper.php:305
|
8811 |
msgid "Virtual"
|
8812 |
msgstr ""
|
8813 |
|
8814 |
+
#: includes/export/class-wcj-fields-helper.php:306
|
8815 |
msgid "Sold Individually"
|
8816 |
msgstr ""
|
8817 |
|
8818 |
+
#: includes/export/class-wcj-fields-helper.php:307
|
8819 |
msgid "Tax Status"
|
8820 |
msgstr ""
|
8821 |
|
8822 |
+
#: includes/export/class-wcj-fields-helper.php:309
|
|
|
|
|
|
|
|
|
8823 |
msgid "Manage Stock"
|
8824 |
msgstr ""
|
8825 |
|
8826 |
+
#: includes/export/class-wcj-fields-helper.php:310
|
8827 |
msgid "Stock Status"
|
8828 |
msgstr ""
|
8829 |
|
8830 |
+
#: includes/export/class-wcj-fields-helper.php:311
|
8831 |
msgid "Backorders"
|
8832 |
msgstr ""
|
8833 |
|
8834 |
+
#: includes/export/class-wcj-fields-helper.php:312
|
8835 |
msgid "Featured"
|
8836 |
msgstr ""
|
8837 |
|
8838 |
+
#: includes/export/class-wcj-fields-helper.php:314
|
|
|
|
|
|
|
|
|
8839 |
msgid "Price Including Tax"
|
8840 |
msgstr ""
|
8841 |
|
8842 |
+
#: includes/export/class-wcj-fields-helper.php:315
|
8843 |
msgid "Price Excluding Tax"
|
8844 |
msgstr ""
|
8845 |
|
8846 |
+
#: includes/export/class-wcj-fields-helper.php:316
|
8847 |
msgid "Display Price"
|
8848 |
msgstr ""
|
8849 |
|
8850 |
+
#: includes/export/class-wcj-fields-helper.php:317
|
8851 |
msgid "Average Rating"
|
8852 |
msgstr ""
|
8853 |
|
8854 |
+
#: includes/export/class-wcj-fields-helper.php:318
|
8855 |
msgid "Rating Count"
|
8856 |
msgstr ""
|
8857 |
|
8858 |
+
#: includes/export/class-wcj-fields-helper.php:319
|
8859 |
msgid "Review Count"
|
8860 |
msgstr ""
|
8861 |
|
8862 |
+
#: includes/export/class-wcj-fields-helper.php:322
|
8863 |
msgid "Dimensions"
|
8864 |
msgstr ""
|
8865 |
|
8866 |
+
#: includes/export/class-wcj-fields-helper.php:323
|
8867 |
msgid "Formatted Name"
|
8868 |
msgstr ""
|
8869 |
|
8870 |
+
#: includes/export/class-wcj-fields-helper.php:324
|
8871 |
msgid "Availability"
|
8872 |
msgstr ""
|
8873 |
|
8874 |
+
#: includes/export/class-wcj-fields-helper.php:325
|
8875 |
msgid "Availability Class"
|
8876 |
msgstr ""
|
8877 |
|
8878 |
+
#: includes/functions/wcj-country-functions.php:125
|
8879 |
msgid "Afghanistan"
|
8880 |
msgstr ""
|
8881 |
|
8882 |
+
#: includes/functions/wcj-country-functions.php:126
|
8883 |
msgid "Åland Islands"
|
8884 |
msgstr ""
|
8885 |
|
8886 |
+
#: includes/functions/wcj-country-functions.php:127
|
8887 |
msgid "Albania"
|
8888 |
msgstr ""
|
8889 |
|
8890 |
+
#: includes/functions/wcj-country-functions.php:128
|
8891 |
msgid "Algeria"
|
8892 |
msgstr ""
|
8893 |
|
8894 |
+
#: includes/functions/wcj-country-functions.php:129
|
8895 |
msgid "Andorra"
|
8896 |
msgstr ""
|
8897 |
|
8898 |
+
#: includes/functions/wcj-country-functions.php:130
|
8899 |
msgid "Angola"
|
8900 |
msgstr ""
|
8901 |
|
8902 |
+
#: includes/functions/wcj-country-functions.php:131
|
8903 |
msgid "Anguilla"
|
8904 |
msgstr ""
|
8905 |
|
8906 |
+
#: includes/functions/wcj-country-functions.php:132
|
8907 |
msgid "Antarctica"
|
8908 |
msgstr ""
|
8909 |
|
8910 |
+
#: includes/functions/wcj-country-functions.php:133
|
8911 |
msgid "Antigua and Barbuda"
|
8912 |
msgstr ""
|
8913 |
|
8914 |
+
#: includes/functions/wcj-country-functions.php:134
|
8915 |
msgid "Argentina"
|
8916 |
msgstr ""
|
8917 |
|
8918 |
+
#: includes/functions/wcj-country-functions.php:135
|
8919 |
msgid "Armenia"
|
8920 |
msgstr ""
|
8921 |
|
8922 |
+
#: includes/functions/wcj-country-functions.php:136
|
8923 |
msgid "Aruba"
|
8924 |
msgstr ""
|
8925 |
|
8926 |
+
#: includes/functions/wcj-country-functions.php:137
|
8927 |
msgid "Australia"
|
8928 |
msgstr ""
|
8929 |
|
8930 |
+
#: includes/functions/wcj-country-functions.php:138
|
8931 |
msgid "Austria"
|
8932 |
msgstr ""
|
8933 |
|
8934 |
+
#: includes/functions/wcj-country-functions.php:139
|
8935 |
msgid "Azerbaijan"
|
8936 |
msgstr ""
|
8937 |
|
8938 |
+
#: includes/functions/wcj-country-functions.php:140
|
8939 |
msgid "Bahamas"
|
8940 |
msgstr ""
|
8941 |
|
8942 |
+
#: includes/functions/wcj-country-functions.php:141
|
8943 |
msgid "Bahrain"
|
8944 |
msgstr ""
|
8945 |
|
8946 |
+
#: includes/functions/wcj-country-functions.php:142
|
8947 |
msgid "Bangladesh"
|
8948 |
msgstr ""
|
8949 |
|
8950 |
+
#: includes/functions/wcj-country-functions.php:143
|
8951 |
msgid "Barbados"
|
8952 |
msgstr ""
|
8953 |
|
8954 |
+
#: includes/functions/wcj-country-functions.php:144
|
8955 |
msgid "Belarus"
|
8956 |
msgstr ""
|
8957 |
|
8958 |
+
#: includes/functions/wcj-country-functions.php:145
|
8959 |
msgid "Belgium"
|
8960 |
msgstr ""
|
8961 |
|
8962 |
+
#: includes/functions/wcj-country-functions.php:146
|
8963 |
msgid "Belau"
|
8964 |
msgstr ""
|
8965 |
|
8966 |
+
#: includes/functions/wcj-country-functions.php:147
|
8967 |
msgid "Belize"
|
8968 |
msgstr ""
|
8969 |
|
8970 |
+
#: includes/functions/wcj-country-functions.php:148
|
8971 |
msgid "Benin"
|
8972 |
msgstr ""
|
8973 |
|
8974 |
+
#: includes/functions/wcj-country-functions.php:149
|
8975 |
msgid "Bermuda"
|
8976 |
msgstr ""
|
8977 |
|
8978 |
+
#: includes/functions/wcj-country-functions.php:150
|
8979 |
msgid "Bhutan"
|
8980 |
msgstr ""
|
8981 |
|
8982 |
+
#: includes/functions/wcj-country-functions.php:151
|
8983 |
msgid "Bolivia"
|
8984 |
msgstr ""
|
8985 |
|
8986 |
+
#: includes/functions/wcj-country-functions.php:152
|
8987 |
msgid "Bonaire, Saint Eustatius and Saba"
|
8988 |
msgstr ""
|
8989 |
|
8990 |
+
#: includes/functions/wcj-country-functions.php:153
|
8991 |
msgid "Bosnia and Herzegovina"
|
8992 |
msgstr ""
|
8993 |
|
8994 |
+
#: includes/functions/wcj-country-functions.php:154
|
8995 |
msgid "Botswana"
|
8996 |
msgstr ""
|
8997 |
|
8998 |
+
#: includes/functions/wcj-country-functions.php:155
|
8999 |
msgid "Bouvet Island"
|
9000 |
msgstr ""
|
9001 |
|
9002 |
+
#: includes/functions/wcj-country-functions.php:156
|
9003 |
msgid "Brazil"
|
9004 |
msgstr ""
|
9005 |
|
9006 |
+
#: includes/functions/wcj-country-functions.php:157
|
9007 |
msgid "British Indian Ocean Territory"
|
9008 |
msgstr ""
|
9009 |
|
9010 |
+
#: includes/functions/wcj-country-functions.php:158
|
9011 |
msgid "British Virgin Islands"
|
9012 |
msgstr ""
|
9013 |
|
9014 |
+
#: includes/functions/wcj-country-functions.php:159
|
9015 |
msgid "Brunei"
|
9016 |
msgstr ""
|
9017 |
|
9018 |
+
#: includes/functions/wcj-country-functions.php:160
|
9019 |
msgid "Bulgaria"
|
9020 |
msgstr ""
|
9021 |
|
9022 |
+
#: includes/functions/wcj-country-functions.php:161
|
9023 |
msgid "Burkina Faso"
|
9024 |
msgstr ""
|
9025 |
|
9026 |
+
#: includes/functions/wcj-country-functions.php:162
|
9027 |
msgid "Burundi"
|
9028 |
msgstr ""
|
9029 |
|
9030 |
+
#: includes/functions/wcj-country-functions.php:163
|
9031 |
msgid "Cambodia"
|
9032 |
msgstr ""
|
9033 |
|
9034 |
+
#: includes/functions/wcj-country-functions.php:164
|
9035 |
msgid "Cameroon"
|
9036 |
msgstr ""
|
9037 |
|
9038 |
+
#: includes/functions/wcj-country-functions.php:165
|
9039 |
msgid "Canada"
|
9040 |
msgstr ""
|
9041 |
|
9042 |
+
#: includes/functions/wcj-country-functions.php:166
|
9043 |
msgid "Cape Verde"
|
9044 |
msgstr ""
|
9045 |
|
9046 |
+
#: includes/functions/wcj-country-functions.php:167
|
9047 |
msgid "Cayman Islands"
|
9048 |
msgstr ""
|
9049 |
|
9050 |
+
#: includes/functions/wcj-country-functions.php:168
|
9051 |
msgid "Central African Republic"
|
9052 |
msgstr ""
|
9053 |
|
9054 |
+
#: includes/functions/wcj-country-functions.php:169
|
9055 |
msgid "Chad"
|
9056 |
msgstr ""
|
9057 |
|
9058 |
+
#: includes/functions/wcj-country-functions.php:170
|
9059 |
msgid "Chile"
|
9060 |
msgstr ""
|
9061 |
|
9062 |
+
#: includes/functions/wcj-country-functions.php:171
|
9063 |
msgid "China"
|
9064 |
msgstr ""
|
9065 |
|
9066 |
+
#: includes/functions/wcj-country-functions.php:172
|
9067 |
msgid "Christmas Island"
|
9068 |
msgstr ""
|
9069 |
|
9070 |
+
#: includes/functions/wcj-country-functions.php:173
|
9071 |
msgid "Cocos (Keeling) Islands"
|
9072 |
msgstr ""
|
9073 |
|
9074 |
+
#: includes/functions/wcj-country-functions.php:174
|
9075 |
msgid "Colombia"
|
9076 |
msgstr ""
|
9077 |
|
9078 |
+
#: includes/functions/wcj-country-functions.php:175
|
9079 |
msgid "Comoros"
|
9080 |
msgstr ""
|
9081 |
|
9082 |
+
#: includes/functions/wcj-country-functions.php:176
|
9083 |
msgid "Congo (Brazzaville)"
|
9084 |
msgstr ""
|
9085 |
|
9086 |
+
#: includes/functions/wcj-country-functions.php:177
|
9087 |
msgid "Congo (Kinshasa)"
|
9088 |
msgstr ""
|
9089 |
|
9090 |
+
#: includes/functions/wcj-country-functions.php:178
|
9091 |
msgid "Cook Islands"
|
9092 |
msgstr ""
|
9093 |
|
9094 |
+
#: includes/functions/wcj-country-functions.php:179
|
9095 |
msgid "Costa Rica"
|
9096 |
msgstr ""
|
9097 |
|
9098 |
+
#: includes/functions/wcj-country-functions.php:180
|
9099 |
msgid "Croatia"
|
9100 |
msgstr ""
|
9101 |
|
9102 |
+
#: includes/functions/wcj-country-functions.php:181
|
9103 |
msgid "Cuba"
|
9104 |
msgstr ""
|
9105 |
|
9106 |
+
#: includes/functions/wcj-country-functions.php:182
|
9107 |
msgid "CuraÇao"
|
9108 |
msgstr ""
|
9109 |
|
9110 |
+
#: includes/functions/wcj-country-functions.php:183
|
9111 |
msgid "Cyprus"
|
9112 |
msgstr ""
|
9113 |
|
9114 |
+
#: includes/functions/wcj-country-functions.php:184
|
9115 |
msgid "Czech Republic"
|
9116 |
msgstr ""
|
9117 |
|
9118 |
+
#: includes/functions/wcj-country-functions.php:185
|
9119 |
msgid "Denmark"
|
9120 |
msgstr ""
|
9121 |
|
9122 |
+
#: includes/functions/wcj-country-functions.php:186
|
9123 |
msgid "Djibouti"
|
9124 |
msgstr ""
|
9125 |
|
9126 |
+
#: includes/functions/wcj-country-functions.php:187
|
9127 |
msgid "Dominica"
|
9128 |
msgstr ""
|
9129 |
|
9130 |
+
#: includes/functions/wcj-country-functions.php:188
|
9131 |
msgid "Dominican Republic"
|
9132 |
msgstr ""
|
9133 |
|
9134 |
+
#: includes/functions/wcj-country-functions.php:189
|
9135 |
msgid "Ecuador"
|
9136 |
msgstr ""
|
9137 |
|
9138 |
+
#: includes/functions/wcj-country-functions.php:190
|
9139 |
msgid "Egypt"
|
9140 |
msgstr ""
|
9141 |
|
9142 |
+
#: includes/functions/wcj-country-functions.php:191
|
9143 |
msgid "El Salvador"
|
9144 |
msgstr ""
|
9145 |
|
9146 |
+
#: includes/functions/wcj-country-functions.php:192
|
9147 |
msgid "Equatorial Guinea"
|
9148 |
msgstr ""
|
9149 |
|
9150 |
+
#: includes/functions/wcj-country-functions.php:193
|
9151 |
msgid "Eritrea"
|
9152 |
msgstr ""
|
9153 |
|
9154 |
+
#: includes/functions/wcj-country-functions.php:194
|
9155 |
msgid "Estonia"
|
9156 |
msgstr ""
|
9157 |
|
9158 |
+
#: includes/functions/wcj-country-functions.php:195
|
9159 |
msgid "Ethiopia"
|
9160 |
msgstr ""
|
9161 |
|
9162 |
+
#: includes/functions/wcj-country-functions.php:196
|
9163 |
msgid "Falkland Islands"
|
9164 |
msgstr ""
|
9165 |
|
9166 |
+
#: includes/functions/wcj-country-functions.php:197
|
9167 |
msgid "Faroe Islands"
|
9168 |
msgstr ""
|
9169 |
|
9170 |
+
#: includes/functions/wcj-country-functions.php:198
|
9171 |
msgid "Fiji"
|
9172 |
msgstr ""
|
9173 |
|
9174 |
+
#: includes/functions/wcj-country-functions.php:199
|
9175 |
msgid "Finland"
|
9176 |
msgstr ""
|
9177 |
|
9178 |
+
#: includes/functions/wcj-country-functions.php:200
|
9179 |
msgid "France"
|
9180 |
msgstr ""
|
9181 |
|
9182 |
+
#: includes/functions/wcj-country-functions.php:201
|
9183 |
msgid "French Guiana"
|
9184 |
msgstr ""
|
9185 |
|
9186 |
+
#: includes/functions/wcj-country-functions.php:202
|
9187 |
msgid "French Polynesia"
|
9188 |
msgstr ""
|
9189 |
|
9190 |
+
#: includes/functions/wcj-country-functions.php:203
|
9191 |
msgid "French Southern Territories"
|
9192 |
msgstr ""
|
9193 |
|
9194 |
+
#: includes/functions/wcj-country-functions.php:204
|
9195 |
msgid "Gabon"
|
9196 |
msgstr ""
|
9197 |
|
9198 |
+
#: includes/functions/wcj-country-functions.php:205
|
9199 |
msgid "Gambia"
|
9200 |
msgstr ""
|
9201 |
|
9202 |
+
#: includes/functions/wcj-country-functions.php:206
|
9203 |
msgid "Georgia"
|
9204 |
msgstr ""
|
9205 |
|
9206 |
+
#: includes/functions/wcj-country-functions.php:207
|
9207 |
msgid "Germany"
|
9208 |
msgstr ""
|
9209 |
|
9210 |
+
#: includes/functions/wcj-country-functions.php:208
|
9211 |
msgid "Ghana"
|
9212 |
msgstr ""
|
9213 |
|
9214 |
+
#: includes/functions/wcj-country-functions.php:209
|
9215 |
msgid "Gibraltar"
|
9216 |
msgstr ""
|
9217 |
|
9218 |
+
#: includes/functions/wcj-country-functions.php:210
|
9219 |
msgid "Greece"
|
9220 |
msgstr ""
|
9221 |
|
9222 |
+
#: includes/functions/wcj-country-functions.php:211
|
9223 |
msgid "Greenland"
|
9224 |
msgstr ""
|
9225 |
|
9226 |
+
#: includes/functions/wcj-country-functions.php:212
|
9227 |
msgid "Grenada"
|
9228 |
msgstr ""
|
9229 |
|
9230 |
+
#: includes/functions/wcj-country-functions.php:213
|
9231 |
msgid "Guadeloupe"
|
9232 |
msgstr ""
|
9233 |
|
9234 |
+
#: includes/functions/wcj-country-functions.php:214
|
9235 |
msgid "Guatemala"
|
9236 |
msgstr ""
|
9237 |
|
9238 |
+
#: includes/functions/wcj-country-functions.php:215
|
9239 |
msgid "Guernsey"
|
9240 |
msgstr ""
|
9241 |
|
9242 |
+
#: includes/functions/wcj-country-functions.php:216
|
9243 |
msgid "Guinea"
|
9244 |
msgstr ""
|
9245 |
|
9246 |
+
#: includes/functions/wcj-country-functions.php:217
|
9247 |
msgid "Guinea-Bissau"
|
9248 |
msgstr ""
|
9249 |
|
9250 |
+
#: includes/functions/wcj-country-functions.php:218
|
9251 |
msgid "Guyana"
|
9252 |
msgstr ""
|
9253 |
|
9254 |
+
#: includes/functions/wcj-country-functions.php:219
|
9255 |
msgid "Haiti"
|
9256 |
msgstr ""
|
9257 |
|
9258 |
+
#: includes/functions/wcj-country-functions.php:220
|
9259 |
msgid "Heard Island and McDonald Islands"
|
9260 |
msgstr ""
|
9261 |
|
9262 |
+
#: includes/functions/wcj-country-functions.php:221
|
9263 |
msgid "Honduras"
|
9264 |
msgstr ""
|
9265 |
|
9266 |
+
#: includes/functions/wcj-country-functions.php:222
|
9267 |
msgid "Hong Kong"
|
9268 |
msgstr ""
|
9269 |
|
9270 |
+
#: includes/functions/wcj-country-functions.php:223
|
9271 |
msgid "Hungary"
|
9272 |
msgstr ""
|
9273 |
|
9274 |
+
#: includes/functions/wcj-country-functions.php:224
|
9275 |
msgid "Iceland"
|
9276 |
msgstr ""
|
9277 |
|
9278 |
+
#: includes/functions/wcj-country-functions.php:225
|
9279 |
msgid "India"
|
9280 |
msgstr ""
|
9281 |
|
9282 |
+
#: includes/functions/wcj-country-functions.php:226
|
9283 |
msgid "Indonesia"
|
9284 |
msgstr ""
|
9285 |
|
9286 |
+
#: includes/functions/wcj-country-functions.php:227
|
9287 |
msgid "Iran"
|
9288 |
msgstr ""
|
9289 |
|
9290 |
+
#: includes/functions/wcj-country-functions.php:228
|
9291 |
msgid "Iraq"
|
9292 |
msgstr ""
|
9293 |
|
9294 |
+
#: includes/functions/wcj-country-functions.php:229
|
9295 |
msgid "Republic of Ireland"
|
9296 |
msgstr ""
|
9297 |
|
9298 |
+
#: includes/functions/wcj-country-functions.php:230
|
9299 |
msgid "Isle of Man"
|
9300 |
msgstr ""
|
9301 |
|
9302 |
+
#: includes/functions/wcj-country-functions.php:231
|
9303 |
msgid "Israel"
|
9304 |
msgstr ""
|
9305 |
|
9306 |
+
#: includes/functions/wcj-country-functions.php:232
|
9307 |
msgid "Italy"
|
9308 |
msgstr ""
|
9309 |
|
9310 |
+
#: includes/functions/wcj-country-functions.php:233
|
9311 |
msgid "Ivory Coast"
|
9312 |
msgstr ""
|
9313 |
|
9314 |
+
#: includes/functions/wcj-country-functions.php:234
|
9315 |
msgid "Jamaica"
|
9316 |
msgstr ""
|
9317 |
|
9318 |
+
#: includes/functions/wcj-country-functions.php:235
|
9319 |
msgid "Japan"
|
9320 |
msgstr ""
|
9321 |
|
9322 |
+
#: includes/functions/wcj-country-functions.php:236
|
9323 |
msgid "Jersey"
|
9324 |
msgstr ""
|
9325 |
|
9326 |
+
#: includes/functions/wcj-country-functions.php:237
|
9327 |
msgid "Jordan"
|
9328 |
msgstr ""
|
9329 |
|
9330 |
+
#: includes/functions/wcj-country-functions.php:238
|
9331 |
msgid "Kazakhstan"
|
9332 |
msgstr ""
|
9333 |
|
9334 |
+
#: includes/functions/wcj-country-functions.php:239
|
9335 |
msgid "Kenya"
|
9336 |
msgstr ""
|
9337 |
|
9338 |
+
#: includes/functions/wcj-country-functions.php:240
|
9339 |
msgid "Kiribati"
|
9340 |
msgstr ""
|
9341 |
|
9342 |
+
#: includes/functions/wcj-country-functions.php:241
|
9343 |
msgid "Kuwait"
|
9344 |
msgstr ""
|
9345 |
|
9346 |
+
#: includes/functions/wcj-country-functions.php:242
|
9347 |
msgid "Kyrgyzstan"
|
9348 |
msgstr ""
|
9349 |
|
9350 |
+
#: includes/functions/wcj-country-functions.php:243
|
9351 |
msgid "Laos"
|
9352 |
msgstr ""
|
9353 |
|
9354 |
+
#: includes/functions/wcj-country-functions.php:244
|
9355 |
msgid "Latvia"
|
9356 |
msgstr ""
|
9357 |
|
9358 |
+
#: includes/functions/wcj-country-functions.php:245
|
9359 |
msgid "Lebanon"
|
9360 |
msgstr ""
|
9361 |
|
9362 |
+
#: includes/functions/wcj-country-functions.php:246
|
9363 |
msgid "Lesotho"
|
9364 |
msgstr ""
|
9365 |
|
9366 |
+
#: includes/functions/wcj-country-functions.php:247
|
9367 |
msgid "Liberia"
|
9368 |
msgstr ""
|
9369 |
|
9370 |
+
#: includes/functions/wcj-country-functions.php:248
|
9371 |
msgid "Libya"
|
9372 |
msgstr ""
|
9373 |
|
9374 |
+
#: includes/functions/wcj-country-functions.php:249
|
9375 |
msgid "Liechtenstein"
|
9376 |
msgstr ""
|
9377 |
|
9378 |
+
#: includes/functions/wcj-country-functions.php:250
|
9379 |
msgid "Lithuania"
|
9380 |
msgstr ""
|
9381 |
|
9382 |
+
#: includes/functions/wcj-country-functions.php:251
|
9383 |
msgid "Luxembourg"
|
9384 |
msgstr ""
|
9385 |
|
9386 |
+
#: includes/functions/wcj-country-functions.php:252
|
9387 |
msgid "Macao S.A.R., China"
|
9388 |
msgstr ""
|
9389 |
|
9390 |
+
#: includes/functions/wcj-country-functions.php:253
|
9391 |
msgid "Macedonia"
|
9392 |
msgstr ""
|
9393 |
|
9394 |
+
#: includes/functions/wcj-country-functions.php:254
|
9395 |
msgid "Madagascar"
|
9396 |
msgstr ""
|
9397 |
|
9398 |
+
#: includes/functions/wcj-country-functions.php:255
|
9399 |
msgid "Malawi"
|
9400 |
msgstr ""
|
9401 |
|
9402 |
+
#: includes/functions/wcj-country-functions.php:256
|
9403 |
msgid "Malaysia"
|
9404 |
msgstr ""
|
9405 |
|
9406 |
+
#: includes/functions/wcj-country-functions.php:257
|
9407 |
msgid "Maldives"
|
9408 |
msgstr ""
|
9409 |
|
9410 |
+
#: includes/functions/wcj-country-functions.php:258
|
9411 |
msgid "Mali"
|
9412 |
msgstr ""
|
9413 |
|
9414 |
+
#: includes/functions/wcj-country-functions.php:259
|
9415 |
msgid "Malta"
|
9416 |
msgstr ""
|
9417 |
|
9418 |
+
#: includes/functions/wcj-country-functions.php:260
|
9419 |
msgid "Marshall Islands"
|
9420 |
msgstr ""
|
9421 |
|
9422 |
+
#: includes/functions/wcj-country-functions.php:261
|
9423 |
msgid "Martinique"
|
9424 |
msgstr ""
|
9425 |
|
9426 |
+
#: includes/functions/wcj-country-functions.php:262
|
9427 |
msgid "Mauritania"
|
9428 |
msgstr ""
|
9429 |
|
9430 |
+
#: includes/functions/wcj-country-functions.php:263
|
9431 |
msgid "Mauritius"
|
9432 |
msgstr ""
|
9433 |
|
9434 |
+
#: includes/functions/wcj-country-functions.php:264
|
9435 |
msgid "Mayotte"
|
9436 |
msgstr ""
|
9437 |
|
9438 |
+
#: includes/functions/wcj-country-functions.php:265
|
9439 |
msgid "Mexico"
|
9440 |
msgstr ""
|
9441 |
|
9442 |
+
#: includes/functions/wcj-country-functions.php:266
|
9443 |
msgid "Micronesia"
|
9444 |
msgstr ""
|
9445 |
|
9446 |
+
#: includes/functions/wcj-country-functions.php:267
|
9447 |
msgid "Moldova"
|
9448 |
msgstr ""
|
9449 |
|
9450 |
+
#: includes/functions/wcj-country-functions.php:268
|
9451 |
msgid "Monaco"
|
9452 |
msgstr ""
|
9453 |
|
9454 |
+
#: includes/functions/wcj-country-functions.php:269
|
9455 |
msgid "Mongolia"
|
9456 |
msgstr ""
|
9457 |
|
9458 |
+
#: includes/functions/wcj-country-functions.php:270
|
9459 |
msgid "Montenegro"
|
9460 |
msgstr ""
|
9461 |
|
9462 |
+
#: includes/functions/wcj-country-functions.php:271
|
9463 |
msgid "Montserrat"
|
9464 |
msgstr ""
|
9465 |
|
9466 |
+
#: includes/functions/wcj-country-functions.php:272
|
9467 |
msgid "Morocco"
|
9468 |
msgstr ""
|
9469 |
|
9470 |
+
#: includes/functions/wcj-country-functions.php:273
|
9471 |
msgid "Mozambique"
|
9472 |
msgstr ""
|
9473 |
|
9474 |
+
#: includes/functions/wcj-country-functions.php:274
|
9475 |
msgid "Myanmar"
|
9476 |
msgstr ""
|
9477 |
|
9478 |
+
#: includes/functions/wcj-country-functions.php:275
|
9479 |
msgid "Namibia"
|
9480 |
msgstr ""
|
9481 |
|
9482 |
+
#: includes/functions/wcj-country-functions.php:276
|
9483 |
msgid "Nauru"
|
9484 |
msgstr ""
|
9485 |
|
9486 |
+
#: includes/functions/wcj-country-functions.php:277
|
9487 |
msgid "Nepal"
|
9488 |
msgstr ""
|
9489 |
|
9490 |
+
#: includes/functions/wcj-country-functions.php:278
|
9491 |
msgid "Netherlands"
|
9492 |
msgstr ""
|
9493 |
|
9494 |
+
#: includes/functions/wcj-country-functions.php:279
|
9495 |
msgid "Netherlands Antilles"
|
9496 |
msgstr ""
|
9497 |
|
9498 |
+
#: includes/functions/wcj-country-functions.php:280
|
9499 |
msgid "New Caledonia"
|
9500 |
msgstr ""
|
9501 |
|
9502 |
+
#: includes/functions/wcj-country-functions.php:281
|
9503 |
msgid "New Zealand"
|
9504 |
msgstr ""
|
9505 |
|
9506 |
+
#: includes/functions/wcj-country-functions.php:282
|
9507 |
msgid "Nicaragua"
|
9508 |
msgstr ""
|
9509 |
|
9510 |
+
#: includes/functions/wcj-country-functions.php:283
|
9511 |
msgid "Niger"
|
9512 |
msgstr ""
|
9513 |
|
9514 |
+
#: includes/functions/wcj-country-functions.php:284
|
9515 |
msgid "Nigeria"
|
9516 |
msgstr ""
|
9517 |
|
9518 |
+
#: includes/functions/wcj-country-functions.php:285
|
9519 |
msgid "Niue"
|
9520 |
msgstr ""
|
9521 |
|
9522 |
+
#: includes/functions/wcj-country-functions.php:286
|
9523 |
msgid "Norfolk Island"
|
9524 |
msgstr ""
|
9525 |
|
9526 |
+
#: includes/functions/wcj-country-functions.php:287
|
9527 |
msgid "North Korea"
|
9528 |
msgstr ""
|
9529 |
|
9530 |
+
#: includes/functions/wcj-country-functions.php:288
|
9531 |
msgid "Norway"
|
9532 |
msgstr ""
|
9533 |
|
9534 |
+
#: includes/functions/wcj-country-functions.php:289
|
9535 |
msgid "Oman"
|
9536 |
msgstr ""
|
9537 |
|
9538 |
+
#: includes/functions/wcj-country-functions.php:290
|
9539 |
msgid "Pakistan"
|
9540 |
msgstr ""
|
9541 |
|
9542 |
+
#: includes/functions/wcj-country-functions.php:291
|
9543 |
msgid "Palestinian Territory"
|
9544 |
msgstr ""
|
9545 |
|
9546 |
+
#: includes/functions/wcj-country-functions.php:292
|
9547 |
msgid "Panama"
|
9548 |
msgstr ""
|
9549 |
|
9550 |
+
#: includes/functions/wcj-country-functions.php:293
|
9551 |
msgid "Papua New Guinea"
|
9552 |
msgstr ""
|
9553 |
|
9554 |
+
#: includes/functions/wcj-country-functions.php:294
|
9555 |
msgid "Paraguay"
|
9556 |
msgstr ""
|
9557 |
|
9558 |
+
#: includes/functions/wcj-country-functions.php:295
|
9559 |
msgid "Peru"
|
9560 |
msgstr ""
|
9561 |
|
9562 |
+
#: includes/functions/wcj-country-functions.php:296
|
9563 |
msgid "Philippines"
|
9564 |
msgstr ""
|
9565 |
|
9566 |
+
#: includes/functions/wcj-country-functions.php:297
|
9567 |
msgid "Pitcairn"
|
9568 |
msgstr ""
|
9569 |
|
9570 |
+
#: includes/functions/wcj-country-functions.php:298
|
9571 |
msgid "Poland"
|
9572 |
msgstr ""
|
9573 |
|
9574 |
+
#: includes/functions/wcj-country-functions.php:299
|
9575 |
msgid "Portugal"
|
9576 |
msgstr ""
|
9577 |
|
9578 |
+
#: includes/functions/wcj-country-functions.php:300
|
9579 |
msgid "Qatar"
|
9580 |
msgstr ""
|
9581 |
|
9582 |
+
#: includes/functions/wcj-country-functions.php:301
|
9583 |
msgid "Reunion"
|
9584 |
msgstr ""
|
9585 |
|
9586 |
+
#: includes/functions/wcj-country-functions.php:302
|
9587 |
msgid "Romania"
|
9588 |
msgstr ""
|
9589 |
|
9590 |
+
#: includes/functions/wcj-country-functions.php:303
|
9591 |
msgid "Russia"
|
9592 |
msgstr ""
|
9593 |
|
9594 |
+
#: includes/functions/wcj-country-functions.php:304
|
9595 |
msgid "Rwanda"
|
9596 |
msgstr ""
|
9597 |
|
9598 |
+
#: includes/functions/wcj-country-functions.php:305
|
9599 |
msgid "Saint Barthélemy"
|
9600 |
msgstr ""
|
9601 |
|
9602 |
+
#: includes/functions/wcj-country-functions.php:306
|
9603 |
msgid "Saint Helena"
|
9604 |
msgstr ""
|
9605 |
|
9606 |
+
#: includes/functions/wcj-country-functions.php:307
|
9607 |
msgid "Saint Kitts and Nevis"
|
9608 |
msgstr ""
|
9609 |
|
9610 |
+
#: includes/functions/wcj-country-functions.php:308
|
9611 |
msgid "Saint Lucia"
|
9612 |
msgstr ""
|
9613 |
|
9614 |
+
#: includes/functions/wcj-country-functions.php:309
|
9615 |
msgid "Saint Martin (French part)"
|
9616 |
msgstr ""
|
9617 |
|
9618 |
+
#: includes/functions/wcj-country-functions.php:310
|
9619 |
msgid "Saint Martin (Dutch part)"
|
9620 |
msgstr ""
|
9621 |
|
9622 |
+
#: includes/functions/wcj-country-functions.php:311
|
9623 |
msgid "Saint Pierre and Miquelon"
|
9624 |
msgstr ""
|
9625 |
|
9626 |
+
#: includes/functions/wcj-country-functions.php:312
|
9627 |
msgid "Saint Vincent and the Grenadines"
|
9628 |
msgstr ""
|
9629 |
|
9630 |
+
#: includes/functions/wcj-country-functions.php:313
|
9631 |
msgid "San Marino"
|
9632 |
msgstr ""
|
9633 |
|
9634 |
+
#: includes/functions/wcj-country-functions.php:314
|
9635 |
msgid "São Tomé and Príncipe"
|
9636 |
msgstr ""
|
9637 |
|
9638 |
+
#: includes/functions/wcj-country-functions.php:315
|
9639 |
msgid "Saudi Arabia"
|
9640 |
msgstr ""
|
9641 |
|
9642 |
+
#: includes/functions/wcj-country-functions.php:316
|
9643 |
msgid "Senegal"
|
9644 |
msgstr ""
|
9645 |
|
9646 |
+
#: includes/functions/wcj-country-functions.php:317
|
9647 |
msgid "Serbia"
|
9648 |
msgstr ""
|
9649 |
|
9650 |
+
#: includes/functions/wcj-country-functions.php:318
|
9651 |
msgid "Seychelles"
|
9652 |
msgstr ""
|
9653 |
|
9654 |
+
#: includes/functions/wcj-country-functions.php:319
|
9655 |
msgid "Sierra Leone"
|
9656 |
msgstr ""
|
9657 |
|
9658 |
+
#: includes/functions/wcj-country-functions.php:320
|
9659 |
msgid "Singapore"
|
9660 |
msgstr ""
|
9661 |
|
9662 |
+
#: includes/functions/wcj-country-functions.php:321
|
9663 |
msgid "Slovakia"
|
9664 |
msgstr ""
|
9665 |
|
9666 |
+
#: includes/functions/wcj-country-functions.php:322
|
9667 |
msgid "Slovenia"
|
9668 |
msgstr ""
|
9669 |
|
9670 |
+
#: includes/functions/wcj-country-functions.php:323
|
9671 |
msgid "Solomon Islands"
|
9672 |
msgstr ""
|
9673 |
|
9674 |
+
#: includes/functions/wcj-country-functions.php:324
|
9675 |
msgid "Somalia"
|
9676 |
msgstr ""
|
9677 |
|
9678 |
+
#: includes/functions/wcj-country-functions.php:325
|
9679 |
msgid "South Africa"
|
9680 |
msgstr ""
|
9681 |
|
9682 |
+
#: includes/functions/wcj-country-functions.php:326
|
9683 |
msgid "South Georgia/Sandwich Islands"
|
9684 |
msgstr ""
|
9685 |
|
9686 |
+
#: includes/functions/wcj-country-functions.php:327
|
9687 |
msgid "South Korea"
|
9688 |
msgstr ""
|
9689 |
|
9690 |
+
#: includes/functions/wcj-country-functions.php:328
|
9691 |
msgid "South Sudan"
|
9692 |
msgstr ""
|
9693 |
|
9694 |
+
#: includes/functions/wcj-country-functions.php:329
|
9695 |
msgid "Spain"
|
9696 |
msgstr ""
|
9697 |
|
9698 |
+
#: includes/functions/wcj-country-functions.php:330
|
9699 |
msgid "Sri Lanka"
|
9700 |
msgstr ""
|
9701 |
|
9702 |
+
#: includes/functions/wcj-country-functions.php:331
|
9703 |
msgid "Sudan"
|
9704 |
msgstr ""
|
9705 |
|
9706 |
+
#: includes/functions/wcj-country-functions.php:332
|
9707 |
msgid "Suriname"
|
9708 |
msgstr ""
|
9709 |
|
9710 |
+
#: includes/functions/wcj-country-functions.php:333
|
9711 |
msgid "Svalbard and Jan Mayen"
|
9712 |
msgstr ""
|
9713 |
|
9714 |
+
#: includes/functions/wcj-country-functions.php:334
|
9715 |
msgid "Swaziland"
|
9716 |
msgstr ""
|
9717 |
|
9718 |
+
#: includes/functions/wcj-country-functions.php:335
|
9719 |
msgid "Sweden"
|
9720 |
msgstr ""
|
9721 |
|
9722 |
+
#: includes/functions/wcj-country-functions.php:336
|
9723 |
msgid "Switzerland"
|
9724 |
msgstr ""
|
9725 |
|
9726 |
+
#: includes/functions/wcj-country-functions.php:337
|
9727 |
msgid "Syria"
|
9728 |
msgstr ""
|
9729 |
|
9730 |
+
#: includes/functions/wcj-country-functions.php:338
|
9731 |
msgid "Taiwan"
|
9732 |
msgstr ""
|
9733 |
|
9734 |
+
#: includes/functions/wcj-country-functions.php:339
|
9735 |
msgid "Tajikistan"
|
9736 |
msgstr ""
|
9737 |
|
9738 |
+
#: includes/functions/wcj-country-functions.php:340
|
9739 |
msgid "Tanzania"
|
9740 |
msgstr ""
|
9741 |
|
9742 |
+
#: includes/functions/wcj-country-functions.php:341
|
9743 |
msgid "Thailand"
|
9744 |
msgstr ""
|
9745 |
|
9746 |
+
#: includes/functions/wcj-country-functions.php:342
|
9747 |
msgid "Timor-Leste"
|
9748 |
msgstr ""
|
9749 |
|
9750 |
+
#: includes/functions/wcj-country-functions.php:343
|
9751 |
msgid "Togo"
|
9752 |
msgstr ""
|
9753 |
|
9754 |
+
#: includes/functions/wcj-country-functions.php:344
|
9755 |
msgid "Tokelau"
|
9756 |
msgstr ""
|
9757 |
|
9758 |
+
#: includes/functions/wcj-country-functions.php:345
|
9759 |
msgid "Tonga"
|
9760 |
msgstr ""
|
9761 |
|
9762 |
+
#: includes/functions/wcj-country-functions.php:346
|
9763 |
msgid "Trinidad and Tobago"
|
9764 |
msgstr ""
|
9765 |
|
9766 |
+
#: includes/functions/wcj-country-functions.php:347
|
9767 |
msgid "Tunisia"
|
9768 |
msgstr ""
|
9769 |
|
9770 |
+
#: includes/functions/wcj-country-functions.php:348
|
9771 |
msgid "Turkey"
|
9772 |
msgstr ""
|
9773 |
|
9774 |
+
#: includes/functions/wcj-country-functions.php:349
|
9775 |
msgid "Turkmenistan"
|
9776 |
msgstr ""
|
9777 |
|
9778 |
+
#: includes/functions/wcj-country-functions.php:350
|
9779 |
msgid "Turks and Caicos Islands"
|
9780 |
msgstr ""
|
9781 |
|
9782 |
+
#: includes/functions/wcj-country-functions.php:351
|
9783 |
msgid "Tuvalu"
|
9784 |
msgstr ""
|
9785 |
|
9786 |
+
#: includes/functions/wcj-country-functions.php:352
|
9787 |
msgid "Uganda"
|
9788 |
msgstr ""
|
9789 |
|
9790 |
+
#: includes/functions/wcj-country-functions.php:353
|
9791 |
msgid "Ukraine"
|
9792 |
msgstr ""
|
9793 |
|
9794 |
+
#: includes/functions/wcj-country-functions.php:354
|
9795 |
msgid "United Arab Emirates"
|
9796 |
msgstr ""
|
9797 |
|
9798 |
+
#: includes/functions/wcj-country-functions.php:355
|
9799 |
msgid "United Kingdom (UK)"
|
9800 |
msgstr ""
|
9801 |
|
9802 |
+
#: includes/functions/wcj-country-functions.php:356
|
9803 |
msgid "United States (US)"
|
9804 |
msgstr ""
|
9805 |
|
9806 |
+
#: includes/functions/wcj-country-functions.php:357
|
9807 |
msgid "Uruguay"
|
9808 |
msgstr ""
|
9809 |
|
9810 |
+
#: includes/functions/wcj-country-functions.php:358
|
9811 |
msgid "Uzbekistan"
|
9812 |
msgstr ""
|
9813 |
|
9814 |
+
#: includes/functions/wcj-country-functions.php:359
|
9815 |
msgid "Vanuatu"
|
9816 |
msgstr ""
|
9817 |
|
9818 |
+
#: includes/functions/wcj-country-functions.php:360
|
9819 |
msgid "Vatican"
|
9820 |
msgstr ""
|
9821 |
|
9822 |
+
#: includes/functions/wcj-country-functions.php:361
|
9823 |
msgid "Venezuela"
|
9824 |
msgstr ""
|
9825 |
|
9826 |
+
#: includes/functions/wcj-country-functions.php:362
|
9827 |
msgid "Vietnam"
|
9828 |
msgstr ""
|
9829 |
|
9830 |
+
#: includes/functions/wcj-country-functions.php:363
|
9831 |
msgid "Wallis and Futuna"
|
9832 |
msgstr ""
|
9833 |
|
9834 |
+
#: includes/functions/wcj-country-functions.php:364
|
9835 |
msgid "Western Sahara"
|
9836 |
msgstr ""
|
9837 |
|
9838 |
+
#: includes/functions/wcj-country-functions.php:365
|
9839 |
msgid "Western Samoa"
|
9840 |
msgstr ""
|
9841 |
|
9842 |
+
#: includes/functions/wcj-country-functions.php:366
|
9843 |
msgid "Yemen"
|
9844 |
msgstr ""
|
9845 |
|
9846 |
+
#: includes/functions/wcj-country-functions.php:367
|
9847 |
msgid "Zambia"
|
9848 |
msgstr ""
|
9849 |
|
9850 |
+
#: includes/functions/wcj-country-functions.php:368
|
9851 |
msgid "Zimbabwe"
|
9852 |
msgstr ""
|
9853 |
|
9854 |
+
#: includes/functions/wcj-exchange-rates-functions.php:21
|
9855 |
+
msgid "Yahoo"
|
9856 |
+
msgstr ""
|
9857 |
+
|
9858 |
+
#: includes/functions/wcj-exchange-rates-functions.php:22
|
9859 |
+
msgid "European Central Bank (ECB)"
|
9860 |
+
msgstr ""
|
9861 |
+
|
9862 |
+
#: includes/functions/wcj-exchange-rates-functions.php:23
|
9863 |
+
msgid "TCMB"
|
9864 |
+
msgstr ""
|
9865 |
+
|
9866 |
+
#: includes/functions/wcj-functions.php:438
|
9867 |
msgid "Before cart"
|
9868 |
msgstr ""
|
9869 |
|
9870 |
+
#: includes/functions/wcj-functions.php:439
|
9871 |
msgid "Before cart table"
|
9872 |
msgstr ""
|
9873 |
|
9874 |
+
#: includes/functions/wcj-functions.php:440
|
9875 |
msgid "Before cart contents"
|
9876 |
msgstr ""
|
9877 |
|
9878 |
+
#: includes/functions/wcj-functions.php:441
|
9879 |
msgid "Cart contents"
|
9880 |
msgstr ""
|
9881 |
|
9882 |
+
#: includes/functions/wcj-functions.php:442
|
9883 |
msgid "Cart coupon"
|
9884 |
msgstr ""
|
9885 |
|
9886 |
+
#: includes/functions/wcj-functions.php:443
|
9887 |
msgid "Cart actions"
|
9888 |
msgstr ""
|
9889 |
|
9890 |
+
#: includes/functions/wcj-functions.php:444
|
9891 |
msgid "After cart contents"
|
9892 |
msgstr ""
|
9893 |
|
9894 |
+
#: includes/functions/wcj-functions.php:445
|
9895 |
msgid "After cart table"
|
9896 |
msgstr ""
|
9897 |
|
9898 |
+
#: includes/functions/wcj-functions.php:446
|
9899 |
msgid "Cart collaterals"
|
9900 |
msgstr ""
|
9901 |
|
9902 |
+
#: includes/functions/wcj-functions.php:447
|
9903 |
msgid "After cart"
|
9904 |
msgstr ""
|
9905 |
|
9906 |
+
#: includes/functions/wcj-functions.php:449
|
9907 |
msgid "Before cart totals"
|
9908 |
msgstr ""
|
9909 |
|
9910 |
+
#: includes/functions/wcj-functions.php:450
|
9911 |
msgid "Cart totals: Before shipping"
|
9912 |
msgstr ""
|
9913 |
|
9914 |
+
#: includes/functions/wcj-functions.php:451
|
9915 |
msgid "Cart totals: After shipping"
|
9916 |
msgstr ""
|
9917 |
|
9918 |
+
#: includes/functions/wcj-functions.php:452
|
9919 |
msgid "Cart totals: Before order total"
|
9920 |
msgstr ""
|
9921 |
|
9922 |
+
#: includes/functions/wcj-functions.php:453
|
9923 |
msgid "Cart totals: After order total"
|
9924 |
msgstr ""
|
9925 |
|
9926 |
+
#: includes/functions/wcj-functions.php:454
|
9927 |
msgid "Proceed to checkout"
|
9928 |
msgstr ""
|
9929 |
|
9930 |
+
#: includes/functions/wcj-functions.php:455
|
9931 |
msgid "After cart totals"
|
9932 |
msgstr ""
|
9933 |
|
9934 |
+
#: includes/functions/wcj-functions.php:457
|
9935 |
msgid "Before shipping calculator"
|
9936 |
msgstr ""
|
9937 |
|
9938 |
+
#: includes/functions/wcj-functions.php:458
|
9939 |
msgid "After shipping calculator"
|
9940 |
msgstr ""
|
9941 |
|
9942 |
+
#: includes/functions/wcj-functions.php:460
|
9943 |
msgid "If cart is empty"
|
9944 |
msgstr ""
|
9945 |
|
9946 |
+
#: includes/functions/wcj-functions.php:886
|
|
|
|
|
|
|
|
|
|
|
9947 |
msgctxt "Order status"
|
9948 |
msgid "Pending Payment"
|
9949 |
msgstr ""
|
9950 |
|
9951 |
+
#: includes/functions/wcj-functions.php:888
|
9952 |
msgctxt "Order status"
|
9953 |
msgid "On Hold"
|
9954 |
msgstr ""
|
9985 |
msgid "Credit Notes"
|
9986 |
msgstr ""
|
9987 |
|
9988 |
+
#: includes/functions/wcj-invoicing-functions.php:62
|
9989 |
msgid "Custom Document"
|
9990 |
msgstr ""
|
9991 |
|
9992 |
+
#: includes/functions/wcj-invoicing-functions.php:63
|
9993 |
msgid "Custom Documents"
|
9994 |
msgstr ""
|
9995 |
|
9996 |
+
#: includes/functions/wcj-user-roles-functions.php:66
|
9997 |
+
#: includes/functions/wcj-user-roles-functions.php:86
|
9998 |
+
msgid "Guest"
|
9999 |
+
msgstr ""
|
10000 |
+
|
10001 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:63
|
10002 |
msgid "Enable Custom Payment"
|
10003 |
msgstr ""
|
10004 |
|
10005 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:70
|
10006 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:152
|
10007 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:84
|
10008 |
msgid "This controls the title which the user sees during checkout."
|
10009 |
msgstr ""
|
10054 |
"gateway on frontend, enter a number here. Set to 0 to disable."
|
10055 |
msgstr ""
|
10056 |
|
|
|
|
|
|
|
|
|
10057 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:124
|
10058 |
msgid ""
|
10059 |
"If gateway is only available for certain shipping methods, set it up here. "
|
10060 |
"Leave blank to enable for all methods."
|
10061 |
msgstr ""
|
10062 |
|
|
|
|
|
|
|
|
|
10063 |
#: includes/gateways/class-wc-gateway-wcj-custom.php:131
|
10064 |
msgid "Enable for virtual orders"
|
10065 |
msgstr ""
|
10114 |
msgid "Checkbox: Default"
|
10115 |
msgstr ""
|
10116 |
|
10117 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:107
|
10118 |
msgid ""
|
10119 |
"If file is selected, set accepted file types here. E.g.: \".jpg,.jpeg,.png"
|
10120 |
"\". Leave blank to accept all files"
|
10121 |
msgstr ""
|
10122 |
|
10123 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:108
|
10124 |
+
msgid ""
|
10125 |
+
"Visit <a href=\"https://www.w3schools.com/tags/att_input_accept.asp\" target="
|
10126 |
+
"\"_blank\">documentation on input accept attribute</a> for valid option "
|
10127 |
+
"formats"
|
10128 |
+
msgstr ""
|
10129 |
+
|
10130 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:109
|
10131 |
msgid "File: Accepted types"
|
10132 |
msgstr ""
|
10144 |
msgid "File: Max size"
|
10145 |
msgstr ""
|
10146 |
|
10147 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:124
|
10148 |
+
msgid ""
|
10149 |
+
"If datepicker/weekpicker is selected, set date format here. Visit <a href="
|
10150 |
+
"\"https://codex.wordpress.org/Formatting_Date_and_Time\" target=\"_blank"
|
10151 |
+
"\">documentation on date and time formatting</a> for valid date formats"
|
10152 |
+
msgstr ""
|
10153 |
+
|
10154 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:126
|
10155 |
msgid "Datepicker/Weekpicker: Date format"
|
10156 |
msgstr ""
|
10175 |
msgid "Datepicker/Weekpicker: First week day"
|
10176 |
msgstr ""
|
10177 |
|
10178 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:183
|
10179 |
+
msgid ""
|
10180 |
+
"If timepicker is selected, set time format here. Visit <a href=\"http://"
|
10181 |
+
"timepicker.co/options/\" target=\"_blank\">timepicker options page</a> for "
|
10182 |
+
"valid time formats"
|
10183 |
+
msgstr ""
|
10184 |
+
|
10185 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:184
|
10186 |
msgid "Timepicker: Time format"
|
10187 |
msgstr ""
|
10188 |
|
10189 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:191
|
10190 |
+
msgid ""
|
10191 |
+
"If timepicker is selected, set min time here. Visit <a href=\"http://"
|
10192 |
+
"timepicker.co/options/\" target=\"_blank\">timepicker options page</a> for "
|
10193 |
+
"valid option formats"
|
10194 |
+
msgstr ""
|
10195 |
+
|
10196 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:192
|
10197 |
+
msgid "Timepicker: Min Time"
|
10198 |
msgstr ""
|
10199 |
|
10200 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:199
|
10201 |
+
msgid ""
|
10202 |
+
"If timepicker is selected, set max time here. Visit <a href=\"http://"
|
10203 |
+
"timepicker.co/options/\" target=\"_blank\">timepicker options page</a> for "
|
10204 |
+
"valid option formats"
|
10205 |
msgstr ""
|
10206 |
|
10207 |
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:200
|
10208 |
+
msgid "Timepicker: Max Time"
|
10209 |
+
msgstr ""
|
10210 |
+
|
10211 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:208
|
10212 |
+
msgid "Timepicker: Interval"
|
10213 |
+
msgstr ""
|
10214 |
+
|
10215 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:215
|
10216 |
+
msgid "If select/radio is selected, set options here. One option per line"
|
10217 |
+
msgstr ""
|
10218 |
+
|
10219 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:216
|
10220 |
msgid "Select/Radio: Options"
|
10221 |
msgstr ""
|
10222 |
|
10223 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:244
|
10224 |
msgid "Message on required"
|
10225 |
msgstr ""
|
10226 |
|
10227 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:399
|
10228 |
msgid "Wrong file type!"
|
10229 |
msgstr ""
|
10230 |
|
10231 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:408
|
10232 |
msgid "File is too big!"
|
10233 |
msgstr ""
|
10234 |
|
10235 |
+
#: includes/input-fields/class-wcj-product-input-fields-abstract.php:559
|
10236 |
msgid "Select a country…"
|
10237 |
msgstr ""
|
10238 |
|
10310 |
msgstr ""
|
10311 |
|
10312 |
#: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:206
|
10313 |
+
#, php-format
|
10314 |
msgid "Total documents created: %d"
|
10315 |
msgstr ""
|
10316 |
|
10317 |
#: includes/pdf-invoices/class-wcj-pdf-invoicing-renumerate-tool.php:207
|
10318 |
+
#, php-format
|
10319 |
msgid "Total documents deleted: %d"
|
10320 |
msgstr ""
|
10321 |
|
10455 |
msgid "PDF File Name"
|
10456 |
msgstr ""
|
10457 |
|
10458 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-display.php:388
|
10459 |
+
msgid ""
|
10460 |
+
"Enter file name for PDF documents. You can use shortcodes here, e.g. [wcj_"
|
10461 |
+
msgstr ""
|
10462 |
+
|
10463 |
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:26
|
10464 |
msgid "Email Options"
|
10465 |
msgstr ""
|
10466 |
|
10467 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:89
|
10468 |
msgid "Payment gateways to include"
|
10469 |
msgstr ""
|
10470 |
|
10471 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:96
|
10472 |
msgid "Select some gateways. Leave blank to include all."
|
10473 |
msgstr ""
|
10474 |
|
10475 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:121
|
10476 |
msgid "Admin - New Order"
|
10477 |
msgstr ""
|
10478 |
|
10479 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:122
|
10480 |
msgid "Admin - Cancelled Order"
|
10481 |
msgstr ""
|
10482 |
|
10483 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:123
|
10484 |
msgid "Admin - Failed Order"
|
10485 |
msgstr ""
|
10486 |
|
10487 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:124
|
10488 |
msgid "Customer - Processing Order"
|
10489 |
msgstr ""
|
10490 |
|
10491 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:125
|
10492 |
msgid "Customer - On-Hold Order"
|
10493 |
msgstr ""
|
10494 |
|
10495 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:126
|
10496 |
msgid "Customer - Completed Order"
|
10497 |
msgstr ""
|
10498 |
|
10499 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:127
|
10500 |
msgid "Customer - Invoice"
|
10501 |
msgstr ""
|
10502 |
|
10503 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:128
|
10504 |
msgid "Customer - Refunded Order"
|
10505 |
msgstr ""
|
10506 |
|
10507 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:129
|
10508 |
msgid "Customer - Note"
|
10509 |
msgstr ""
|
10510 |
|
10511 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:130
|
10512 |
msgid "Customer - New Account"
|
10513 |
msgstr ""
|
10514 |
|
10515 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:131
|
10516 |
msgid "Customer - Reset Password"
|
10517 |
msgstr ""
|
10518 |
|
10519 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:139
|
10520 |
msgid "Attach PDF to emails"
|
10521 |
msgstr ""
|
10522 |
|
10523 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-emails.php:146
|
10524 |
msgid "Select some emails"
|
10525 |
msgstr ""
|
10526 |
|
10704 |
msgid "Templates"
|
10705 |
msgstr ""
|
10706 |
|
10707 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php:63
|
10708 |
msgid "HTML Template"
|
10709 |
msgstr ""
|
10710 |
|
10711 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php:78
|
10712 |
msgid "Available Shortcodes"
|
10713 |
msgstr ""
|
10714 |
|
10715 |
+
#: includes/pdf-invoices/settings/class-wcj-pdf-invoicing-templates.php:81
|
10716 |
+
#, php-format
|
10717 |
msgid "For the list of available shortcodes, please visit %s."
|
10718 |
msgstr ""
|
10719 |
|
10726 |
msgstr ""
|
10727 |
|
10728 |
#: includes/price-by-country/class-wcj-price-by-country-group-generator.php:95
|
10729 |
+
#, php-format
|
10730 |
msgid ""
|
10731 |
"All existing country groups will be deleted and %s new groups will be "
|
10732 |
"created. Are you sure?"
|
10740 |
msgid "Country Groups Generated."
|
10741 |
msgstr ""
|
10742 |
|
10743 |
+
#: includes/price-by-country/class-wcj-price-by-country-local.php:248
|
10744 |
msgid "Country Group Nr."
|
10745 |
msgstr ""
|
10746 |
|
10802 |
msgstr ""
|
10803 |
|
10804 |
#: includes/reports/wcj-class-reports-monthly-sales.php:140
|
10805 |
+
#: includes/reports/wcj-class-reports-sales.php:327
|
10806 |
msgid "Total Sum"
|
10807 |
msgstr ""
|
10808 |
|
10823 |
msgstr ""
|
10824 |
|
10825 |
#: includes/reports/wcj-class-reports-monthly-sales.php:219
|
10826 |
+
#, php-format
|
10827 |
msgid "Error getting currency rate for %s"
|
10828 |
msgstr ""
|
10829 |
|
10836 |
msgstr ""
|
10837 |
|
10838 |
#: includes/reports/wcj-class-reports-monthly-sales.php:326
|
10839 |
+
#, php-format
|
10840 |
msgid "Report generated in: %s s"
|
10841 |
msgstr ""
|
10842 |
|
10844 |
msgid "Reset Currency Rates"
|
10845 |
msgstr ""
|
10846 |
|
10847 |
+
#: includes/reports/wcj-class-reports-sales.php:126
|
10848 |
msgid "Variation"
|
10849 |
msgstr ""
|
10850 |
|
10851 |
+
#: includes/reports/wcj-class-reports-sales.php:195
|
10852 |
msgid "Last Sale"
|
10853 |
msgstr ""
|
10854 |
|
10855 |
+
#: includes/reports/wcj-class-reports-sales.php:196
|
10856 |
+
msgid "Total"
|
10857 |
+
msgstr ""
|
10858 |
+
|
10859 |
+
#: includes/reports/wcj-class-reports-sales.php:324
|
10860 |
+
msgid "Total Items"
|
10861 |
+
msgstr ""
|
10862 |
+
|
10863 |
+
#: includes/reports/wcj-class-reports-sales.php:330
|
10864 |
+
msgid "Total Profit"
|
10865 |
+
msgstr ""
|
10866 |
+
|
10867 |
+
#: includes/reports/wcj-class-reports-sales.php:333
|
10868 |
+
msgid "Reports Settings"
|
10869 |
msgstr ""
|
10870 |
|
10871 |
+
#: includes/reports/wcj-class-reports-sales.php:349
|
10872 |
msgid "Filter products"
|
10873 |
msgstr ""
|
10874 |
|
10875 |
+
#: includes/reports/wcj-class-reports-sales.php:354
|
10876 |
msgid "No sales data for current period."
|
10877 |
msgstr ""
|
10878 |
|
10911 |
"accounted."
|
10912 |
msgstr ""
|
10913 |
|
10914 |
+
#: includes/reports/wcj-class-reports-stock.php:214
|
10915 |
msgid "deleted"
|
10916 |
msgstr ""
|
10917 |
|
10918 |
+
#: includes/reports/wcj-class-reports-stock.php:323
|
10919 |
msgid "Stock"
|
10920 |
msgstr ""
|
10921 |
|
10922 |
+
#: includes/reports/wcj-class-reports-stock.php:324
|
10923 |
msgid "Stock price"
|
10924 |
msgstr ""
|
10925 |
|
10926 |
+
#: includes/reports/wcj-class-reports-stock.php:325
|
10927 |
msgid "Total stock price"
|
10928 |
msgstr ""
|
10929 |
|
10930 |
+
#: includes/reports/wcj-class-reports-stock.php:327
|
10931 |
msgid "Last sale"
|
10932 |
msgstr ""
|
10933 |
|
10934 |
+
#: includes/reports/wcj-class-reports-stock.php:328
|
10935 |
+
#, php-format
|
10936 |
msgid "Sales in last %s days"
|
10937 |
msgstr ""
|
10938 |
|
10939 |
+
#: includes/reports/wcj-class-reports-stock.php:329
|
10940 |
msgid "Total sales"
|
10941 |
msgstr ""
|
10942 |
|
10943 |
+
#: includes/reports/wcj-class-reports-stock.php:332
|
10944 |
msgid "Stock to minimum"
|
10945 |
msgstr ""
|
10946 |
|
10947 |
+
#: includes/reports/wcj-class-reports-stock.php:365
|
10948 |
msgid "purchase price:"
|
10949 |
msgstr ""
|
10950 |
|
10951 |
+
#: includes/reports/wcj-class-reports-stock.php:370
|
10952 |
msgid "stock purchase price:"
|
10953 |
msgstr ""
|
10954 |
|
10955 |
+
#: includes/reports/wcj-class-reports-stock.php:376
|
10956 |
msgid "No sales yet"
|
10957 |
msgstr ""
|
10958 |
|
10959 |
+
#: includes/reports/wcj-class-reports-stock.php:381
|
10960 |
msgid "profit:"
|
10961 |
msgstr ""
|
10962 |
|
10963 |
+
#: includes/reports/wcj-class-reports-stock.php:405
|
10964 |
msgid "Total current stock value"
|
10965 |
msgstr ""
|
10966 |
|
10967 |
+
#: includes/reports/wcj-class-reports-stock.php:406
|
10968 |
msgid "Total stock value"
|
10969 |
msgstr ""
|
10970 |
|
10971 |
+
#: includes/reports/wcj-class-reports-stock.php:407
|
10972 |
msgid "Product stock value average"
|
10973 |
msgstr ""
|
10974 |
|
10975 |
+
#: includes/reports/wcj-class-reports-stock.php:408
|
10976 |
msgid "Product stock average"
|
10977 |
msgstr ""
|
10978 |
|
10979 |
+
#: includes/reports/wcj-class-reports-stock.php:412
|
10980 |
msgid "Report was generated in: "
|
10981 |
msgstr ""
|
10982 |
|
10985 |
msgid "Booster: Custom Shipping Method"
|
10986 |
msgstr ""
|
10987 |
|
10988 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:100
|
10989 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:186
|
10990 |
+
#: includes/shipping/class-wc-shipping-wcj-custom.php:121
|
10991 |
+
msgid "Max Weight"
|
10992 |
+
msgstr ""
|
10993 |
+
|
10994 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:107
|
10995 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:170
|
10996 |
+
#: includes/shipping/class-wc-shipping-wcj-custom.php:102
|
10997 |
+
#: includes/shipping/class-wc-shipping-wcj-custom.php:128
|
10998 |
+
msgid "Cost"
|
10999 |
+
msgstr ""
|
11000 |
+
|
11001 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:159
|
11002 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:91
|
11003 |
msgid "Cost calculation type."
|
11004 |
msgstr ""
|
11005 |
|
11006 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:163
|
11007 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:95
|
11008 |
msgid "Flat Rate"
|
11009 |
msgstr ""
|
11010 |
|
11011 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:164
|
11012 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:96
|
11013 |
msgid "By Total Cart Weight"
|
11014 |
msgstr ""
|
11015 |
|
11016 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:165
|
11017 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:97
|
11018 |
msgid "By Total Cart Weight Table"
|
11019 |
msgstr ""
|
11020 |
|
11021 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:166
|
11022 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:98
|
11023 |
msgid "By Total Cart Quantity"
|
11024 |
msgstr ""
|
11025 |
|
11026 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:172
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11027 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:104
|
11028 |
msgid ""
|
11029 |
"Cost. If calculating by weight - then cost per one weight unit. If "
|
11030 |
"calculating by quantity - then cost per one piece."
|
11031 |
msgstr ""
|
11032 |
|
11033 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:178
|
11034 |
msgid "Min Weight"
|
11035 |
msgstr ""
|
11036 |
|
11037 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:180
|
11038 |
msgid "Minimum total cart weight. Set zero to disable."
|
11039 |
msgstr ""
|
11040 |
|
11041 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:188
|
|
|
|
|
|
|
|
|
|
|
|
|
11042 |
msgid "Maximum total cart weight. Set zero to disable."
|
11043 |
msgstr ""
|
11044 |
|
11045 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:194
|
11046 |
#: includes/shipping/class-wc-shipping-wcj-custom.php:110
|
11047 |
msgid "Weight Table Total Rows"
|
11048 |
msgstr ""
|
11049 |
|
11050 |
+
#: includes/shipping/class-wc-shipping-wcj-custom-with-shipping-zones.php:196
|
11051 |
msgid ""
|
11052 |
"Press \"Save changes\" and reload the page after you change this number."
|
11053 |
msgstr ""
|
11060 |
msgid "Attribute \"name\" is required!"
|
11061 |
msgstr ""
|
11062 |
|
11063 |
+
#: includes/shortcodes/class-wcj-order-items-shortcodes.php:175
|
11064 |
msgid "Standard"
|
11065 |
msgstr ""
|
11066 |
|
11067 |
+
#: includes/shortcodes/class-wcj-orders-shortcodes.php:99
|
11068 |
msgid "Dollars"
|
11069 |
msgstr ""
|
11070 |
|
11071 |
+
#: includes/shortcodes/class-wcj-orders-shortcodes.php:100
|
11072 |
msgid "Cents"
|
11073 |
msgstr ""
|
11074 |
|
11085 |
msgstr ""
|
11086 |
|
11087 |
#: includes/shortcodes/class-wcj-products-add-form-shortcodes.php:168
|
11088 |
+
#, php-format
|
11089 |
msgid "%s is required!"
|
11090 |
msgstr ""
|
11091 |
|
11105 |
msgid "Edit Product"
|
11106 |
msgstr ""
|
11107 |
|
11108 |
+
#: includes/shortcodes/class-wcj-products-shortcodes.php:249
|
11109 |
+
#, php-format
|
11110 |
msgid "%s ago"
|
11111 |
msgstr ""
|
11112 |
|
11113 |
+
#: includes/shortcodes/class-wcj-products-shortcodes.php:265
|
11114 |
msgid "No sales yet."
|
11115 |
msgstr ""
|
11116 |
|
11117 |
+
#: includes/shortcodes/class-wcj-shortcodes.php:98
|
11118 |
+
#, php-format
|
11119 |
msgid "%s module not enabled!"
|
11120 |
msgstr ""
|
11121 |
|
11122 |
+
#: includes/shortcodes/class-wcj-shortcodes.php:122
|
11123 |
msgid "Wrong user role!"
|
11124 |
msgstr ""
|
11125 |
|
11222 |
#: includes/widgets/class-wcj-widget-multicurrency.php:80
|
11223 |
msgid "Link list"
|
11224 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: algoritmika,anbinder
|
|
3 |
Tags: woocommerce,booster for woocommerce,woocommerce jetpack
|
4 |
Requires at least: 4.4
|
5 |
Tested up to: 4.7
|
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 |
|
@@ -50,11 +50,12 @@ Booster for WooCommerce is a WordPress plugin that supercharges your site with a
|
|
50 |
* *Product Images* - Customize WooCommerce products images, thumbnails and sale flashes.
|
51 |
* *Product Info* - Add additional info to WooCommerce category and single product pages.
|
52 |
* *Product Input Fields* - WooCommerce product input fields.
|
53 |
-
* *Product Listings* - Change WooCommerce display options for shop and category pages: show/hide categories count, exclude categories, show/hide empty categories.
|
54 |
* *Product Tabs* - Add custom product tabs - globally or per product. Customize or completely remove WooCommerce default product tabs.
|
55 |
* *Product Visibility by Country* - Display WooCommerce products by customer's country.
|
56 |
* *Product Visibility by User Role* - Display WooCommerce products by customer's user role.
|
57 |
-
* *Products
|
|
|
58 |
* *Related Products* - Change displayed WooCommerce related products number, columns, order; relate by tag, category, product attribute or manually on per product basis. Hide related products completely.
|
59 |
* *SKU* - Generate WooCommerce SKUs automatically.
|
60 |
* *Sorting* - Add more WooCommerce sorting options; rename or remove default sorting options; rearrange sorting options on frontend.
|
@@ -62,13 +63,16 @@ Booster for WooCommerce is a WordPress plugin that supercharges your site with a
|
|
62 |
|
63 |
**Cart & Checkout**
|
64 |
|
65 |
-
* *Cart* - Add custom info to WooCommerce cart page.
|
|
|
66 |
* *Checkout Core Fields* - Customize WooCommerce core checkout fields. Disable/enable fields, set required, change labels and/or placeholders.
|
67 |
* *Checkout Custom Fields* - Add custom fields to WooCommerce checkout page.
|
68 |
* *Checkout Custom Info* - Add custom info to WooCommerce checkout page.
|
|
|
69 |
* *Checkout Files Upload* - Let customers upload files on (or after) WooCommerce checkout.
|
|
|
70 |
* *Empty Cart Button* - Add (and customize) "Empty Cart" button to WooCommerce cart and checkout pages.
|
71 |
-
* *Mini Cart* -
|
72 |
|
73 |
**Payment Gateways**
|
74 |
|
@@ -78,6 +82,7 @@ Booster for WooCommerce is a WordPress plugin that supercharges your site with a
|
|
78 |
* *Gateways Icons* - Change or completely remove icons (images) for any (default or custom) WooCommerce payment gateway.
|
79 |
* *Gateways Min/Max Amounts* - Add min/max amounts for WooCommerce payment gateways to show up.
|
80 |
* *Gateways by Country or State* - Set countries or states to include/exclude for WooCommerce payment gateways to show up.
|
|
|
81 |
* *Gateways by User Role* - Set user roles to include/exclude for WooCommerce payment gateways to show up.
|
82 |
* *Gateways per Product or Category* - Show WooCommerce gateway only if there is selected product or product category in cart.
|
83 |
|
@@ -100,12 +105,11 @@ Booster for WooCommerce is a WordPress plugin that supercharges your site with a
|
|
100 |
|
101 |
* *Admin Tools* - Booster for WooCommerce debug and log tools.
|
102 |
* *Booster WPML* - Booster for WooCommerce basic WPML support.
|
103 |
-
* *
|
104 |
* *Emails* - Add custom emails. Add another email recipient(s) to all WooCommerce emails.
|
105 |
* *Export* - WooCommerce export tools.
|
106 |
* *General* - Separate custom CSS for front and back end. Shortcodes in WordPress text widgets. Custom roles tool.
|
107 |
* *Old Slugs* - Remove old WooCommerce products slugs.
|
108 |
-
* *Products XML* - WooCommerce products XML feed.
|
109 |
* *Reports* - WooCommerce stock, sales, customers etc. reports.
|
110 |
|
111 |
= Feedback =
|
@@ -140,6 +144,149 @@ You can see the differences between versions in this [table](http://booster.io/b
|
|
140 |
|
141 |
== Changelog ==
|
142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
= 2.6.0 - 02/03/2017 =
|
144 |
* Dev - Dashboard - Manage Settings - Restyled.
|
145 |
* Dev - Dashboard - Manage Settings - "Autoload Booster's Options" option added.
|
@@ -1158,7 +1305,7 @@ You can see the differences between versions in this [table](http://booster.io/b
|
|
1158 |
* Dev - PRICES & CURRENCIES - Wholesale Price - "Use total cart quantity instead of product quantity" option added.
|
1159 |
* Dev - PRODUCTS - Product Input Fields - "File upload" field type added.
|
1160 |
* Dev - CART & CHECKOUT - Custom Payment Gateways - Limit raised from 10 to unlimited custom gateways.
|
1161 |
-
* Dev - CART & CHECKOUT - Payment Gateways Fees - "Is taxable" and "Tax class" options
|
1162 |
* Dev - CART & CHECKOUT - Payment Gateways - Code refactoring, new modules created:
|
1163 |
Custom Payment Gateways, Payment Gateways Icons, Payment Gateways Fees, Payment Gateways per Category.
|
1164 |
Attaching PDF Invoice V1 to emails - code moved to PDF Invoice V1 module.
|
3 |
Tags: woocommerce,booster for woocommerce,woocommerce jetpack
|
4 |
Requires at least: 4.4
|
5 |
Tested up to: 4.7
|
6 |
+
Stable tag: 2.7.0
|
7 |
License: GNU General Public License v3.0
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
50 |
* *Product Images* - Customize WooCommerce products images, thumbnails and sale flashes.
|
51 |
* *Product Info* - Add additional info to WooCommerce category and single product pages.
|
52 |
* *Product Input Fields* - WooCommerce product input fields.
|
53 |
+
* *Product Listings* - Change WooCommerce display options for shop and category pages: show/hide categories count, exclude categories, show/hide empty categories.
|
54 |
* *Product Tabs* - Add custom product tabs - globally or per product. Customize or completely remove WooCommerce default product tabs.
|
55 |
* *Product Visibility by Country* - Display WooCommerce products by customer's country.
|
56 |
* *Product Visibility by User Role* - Display WooCommerce products by customer's user role.
|
57 |
+
* *Products XML* - WooCommerce products XML feed.
|
58 |
+
* *Products per Page* - Add "products per page" selector to WooCommerce.
|
59 |
* *Related Products* - Change displayed WooCommerce related products number, columns, order; relate by tag, category, product attribute or manually on per product basis. Hide related products completely.
|
60 |
* *SKU* - Generate WooCommerce SKUs automatically.
|
61 |
* *Sorting* - Add more WooCommerce sorting options; rename or remove default sorting options; rearrange sorting options on frontend.
|
63 |
|
64 |
**Cart & Checkout**
|
65 |
|
66 |
+
* *Cart Custom Info* - Add custom info to WooCommerce cart page.
|
67 |
+
* *Cart Customization* - Customize WooCommerce cart - hide coupon field; item remove link.
|
68 |
* *Checkout Core Fields* - Customize WooCommerce core checkout fields. Disable/enable fields, set required, change labels and/or placeholders.
|
69 |
* *Checkout Custom Fields* - Add custom fields to WooCommerce checkout page.
|
70 |
* *Checkout Custom Info* - Add custom info to WooCommerce checkout page.
|
71 |
+
* *Checkout Customization* - Customize WooCommerce checkout - hide "Order Again" button etc.
|
72 |
* *Checkout Files Upload* - Let customers upload files on (or after) WooCommerce checkout.
|
73 |
+
* *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.
|
74 |
* *Empty Cart Button* - Add (and customize) "Empty Cart" button to WooCommerce cart and checkout pages.
|
75 |
+
* *Mini Cart Custom Info* - Add custom info to WooCommerce mini cart widget.
|
76 |
|
77 |
**Payment Gateways**
|
78 |
|
82 |
* *Gateways Icons* - Change or completely remove icons (images) for any (default or custom) WooCommerce payment gateway.
|
83 |
* *Gateways Min/Max Amounts* - Add min/max amounts for WooCommerce payment gateways to show up.
|
84 |
* *Gateways by Country or State* - Set countries or states to include/exclude for WooCommerce payment gateways to show up.
|
85 |
+
* *Gateways by Shipping* - Set "enable for shipping methods" for WooCommerce payment gateways.
|
86 |
* *Gateways by User Role* - Set user roles to include/exclude for WooCommerce payment gateways to show up.
|
87 |
* *Gateways per Product or Category* - Show WooCommerce gateway only if there is selected product or product category in cart.
|
88 |
|
105 |
|
106 |
* *Admin Tools* - Booster for WooCommerce debug and log tools.
|
107 |
* *Booster WPML* - Booster for WooCommerce basic WPML support.
|
108 |
+
* *Custom CSS* - Another custom CSS, if you need one.
|
109 |
* *Emails* - Add custom emails. Add another email recipient(s) to all WooCommerce emails.
|
110 |
* *Export* - WooCommerce export tools.
|
111 |
* *General* - Separate custom CSS for front and back end. Shortcodes in WordPress text widgets. Custom roles tool.
|
112 |
* *Old Slugs* - Remove old WooCommerce products slugs.
|
|
|
113 |
* *Reports* - WooCommerce stock, sales, customers etc. reports.
|
114 |
|
115 |
= Feedback =
|
144 |
|
145 |
== Changelog ==
|
146 |
|
147 |
+
= 2.7.0 - 12/04/2017 =
|
148 |
+
* Dev - WooCommerce v3.x.x compatibility - `wcj_get_order_item_meta_info()` - `get_meta_data()` instead of `has_meta()`.
|
149 |
+
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Orders - `[wcj_order_items_table]` - `wcj_get_order_currency()`. `get_short_description()`. `wcj_get_order_item_meta_info()`.
|
150 |
+
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Orders - `get_customer_id()`. `wcj_get_order_currency()`. `wcj_get_order_id()`. `get_customer_note()`. `get_billing_phone()`. `wc_get_order_item_meta()`.
|
151 |
+
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Orders - `[wcj_order_date]` and `[wcj_order_time]` - `get_date_created()`.
|
152 |
+
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products Crowdfunding - `wcj_get_product_id_or_variation_parent_id()`.
|
153 |
+
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products - `wc_get_price_including_tax()`. `wc_get_price_excluding_tax()`. `wc_display_product_attributes()`. `wc_get_product_tag_list()`. `get_short_description()`. `get_gallery_image_ids()`.
|
154 |
+
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products - `[wcj_product_image_url]` - `wcj_get_product_id_or_variation_parent_id()`.
|
155 |
+
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products - `[wcj_product_categories_urls]` - `wcj_get_product_id_or_variation_parent_id()`.
|
156 |
+
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products - `[wcj_product_categories_names]` - `wcj_get_product_id_or_variation_parent_id()`.
|
157 |
+
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products - `[wcj_product_total_sales]` - `wcj_get_product_id_or_variation_parent_id()`.
|
158 |
+
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products - `[wcj_product_wholesale_price_table]` - `get_price` filters replaced. Get parent product ID replaced with `get_parent_id()`.
|
159 |
+
* Dev - WooCommerce v3.x.x compatibility - Shortcodes - Products - `[wcj_product_categories]` - `wc_get_product_category_list()`.
|
160 |
+
* Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Currency for External Products - `product_type` property replaced with `is_type()` function.
|
161 |
+
* Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Currency per Product - `WCJ_PRODUCT_GET_PRICE_FILTER`.
|
162 |
+
* Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Global Discount - `get_price` filters replaced. `wcj_get_product_id_or_variation_parent_id()`.
|
163 |
+
* Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Multicurrency (Currency Switcher) - `get_price` filters replaced. Get product ID replaced with `get_id()`. `wc_get_formatted_variation()` used.
|
164 |
+
* Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Multicurrency Product Base Price - `get_price` filters replaced. Get parent product ID replaced with `get_parent_id()`.
|
165 |
+
* Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Price by User Role - `get_price` filters replaced. Get product ID replaced with `get_id()`. `wc_get_formatted_variation()` used. Get parent product ID replaced with `get_parent_id()`.
|
166 |
+
* Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Prices and Currencies by Country - `get_price` filters; `wcj_get_product_id()`. `woocommerce_clean()`.
|
167 |
+
* Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Product Open Pricing (Name Your Price) - `WCJ_PRODUCT_GET_PRICE_FILTER`. `wcj_get_product_id_or_variation_parent_id()`. `wcj_get_product_status()`.
|
168 |
+
* Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Product Price by Formula - `get_price` filters; `wcj_get_product_id_or_variation_parent_id()`.
|
169 |
+
* Dev - WooCommerce v3.x.x compatibility - PRICES & CURRENCIES - Wholesale Price - `get_price` filters replaced. Get parent product ID replaced with `get_parent_id()`.
|
170 |
+
* Dev - WooCommerce v3.x.x compatibility - BUTTON & PRICE LABELS - Add to Cart Labels - `wcj_get_product_id_or_variation_parent_id()`; `product_type` -> `get_type()`.
|
171 |
+
* Dev - WooCommerce v3.x.x compatibility - BUTTON & PRICE LABELS - Call for Price - `woocommerce_get_price` -> `woocommerce_product_get_price`.
|
172 |
+
* Dev - WooCommerce v3.x.x compatibility - BUTTON & PRICE LABELS - Custom Price Labels - `wcj_get_product_id_or_variation_parent_id()`; `wcj_get_product_id()`; `product_type` -> `get_type()`. `woocommerce_price_html` filter changed.
|
173 |
+
* Dev - WooCommerce v3.x.x compatibility - BUTTON & PRICE LABELS - Free Price Labels - `wcj_get_product_id_or_variation_parent_id()`; "free price" filters;
|
174 |
+
* Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Bookings - `WCJ_PRODUCT_GET_PRICE_FILTER`; `wcj_get_product_id_or_variation_parent_id()`.
|
175 |
+
* Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Crowdfunding - `wcj_get_product_id_or_variation_parent_id()`.
|
176 |
+
* Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Add to Cart - `wcj_get_product_id_or_variation_parent_id()`.
|
177 |
+
* Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Addons - `WCJ_PRODUCT_GET_PRICE_FILTER`. `wcj_get_product_id_or_variation_parent_id()`. `wcj_get_product_display_price()`.
|
178 |
+
* Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Cost Price - `get_prices_include_tax()`. `wcj_get_product_formatted_variation()`. `wcj_get_product_id_or_variation_parent_id()`.
|
179 |
+
* Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Images - `wcj_get_product_id_or_variation_parent_id()`.
|
180 |
+
* Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Input Fields - `wcj_get_product_id_or_variation_parent_id()`.
|
181 |
+
* Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Listings - "Hide Empty" option for "Shop Page Display Options" and "Category Display Options" (removed from `woocommerce_product_subcategories_args` hook).
|
182 |
+
* Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Tabs - `wcj_get_product_id_or_variation_parent_id()`.
|
183 |
+
* Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Product Visibility by User Role - `wcj_get_product_id_or_variation_parent_id()`.
|
184 |
+
* Dev - WooCommerce v3.x.x compatibility - PRODUCTS - SKU - `get_child()`.
|
185 |
+
* Dev - WooCommerce v3.x.x compatibility - PRODUCTS - Sorting - `woocommerce_clean()`.
|
186 |
+
* Dev - WooCommerce v3.x.x compatibility - CART & CHECKOUT - Checkout Custom Fields - `wcj_get_order_id()`.
|
187 |
+
* Dev - WooCommerce v3.x.x compatibility - CART & CHECKOUT - Checkout Files Upload - `wcj_get_order_id()`.
|
188 |
+
* Dev - WooCommerce v3.x.x compatibility - CART & CHECKOUT - EU VAT Number - `get_customer_ip_address()`. `wcj_get_order_id()`.
|
189 |
+
* Dev - WooCommerce v3.x.x compatibility - PAYMENT GATEWAYS - Gateways by Country or State - `get_country()` and `get_state()`.
|
190 |
+
* Dev - WooCommerce v3.x.x compatibility - PAYMENT GATEWAYS - Gateways Currency - `WCJ_PRODUCT_GET_PRICE_FILTER`.
|
191 |
+
* Dev - WooCommerce v3.x.x compatibility - SHIPPING & ORDERS - Order Custom Statuses - `wcj_get_order_id()`.
|
192 |
+
* Dev - WooCommerce v3.x.x compatibility - SHIPPING & ORDERS - Order Numbers - `wcj_get_order_id()`; `get_date_created()`.
|
193 |
+
* Dev - WooCommerce v3.x.x compatibility - SHIPPING & ORDERS - Orders - `wcj_get_order_id()`; `woocommerce_order_get_currency`; `wcj_get_order_currency()`; `get_billing_country()`.
|
194 |
+
* Dev - WooCommerce v3.x.x compatibility - PDF INVOICING & PACKING SLIPS - `get_billing_country()`.
|
195 |
+
* Dev - WooCommerce v3.x.x compatibility - PDF INVOICING & PACKING SLIPS - Display & Misc. - `wcj_get_order_id()`.
|
196 |
+
* Dev - WooCommerce v3.x.x compatibility - PDF INVOICING & PACKING SLIPS - Emails - `wcj_get_order_id()`.
|
197 |
+
* Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Admin Tools - Order Meta - Additional check "if `$item_meta_value` is array" added.
|
198 |
+
* Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Export - Export Customers from Orders - Functions instead of accessing order properties directly.
|
199 |
+
* Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Export - Export Orders - Functions instead of accessing order properties directly. `wcj_get_order_currency()`.
|
200 |
+
* Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Export - Export Products - Functions instead of accessing order properties directly. `wcj_get_product_total_stock()`. `wc_get_price_to_display()` and more.
|
201 |
+
* Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - General - Products Attributes - `wc_get_product_category_list()`.
|
202 |
+
* Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Reports - Custom Ranges - `wp_create_nonce` added.
|
203 |
+
* Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Reports - Orders - Monthly Sales - `wcj_get_order_currency()`.
|
204 |
+
* Dev - WooCommerce v3.x.x compatibility - EMAILS & MISC. - Reports - Stock - `wcj_get_product_total_stock()`. `wc_get_product_category_list()`.
|
205 |
+
* Dev - Code refactoring - `wcj-price-currency-functions.php` and `wcj-user-roles-functions.php` added.
|
206 |
+
* Dev - Mini-dashboards added to modules categories (instead of displaying the default category module). Modules categories descriptions added.
|
207 |
+
* Dev - Shortcodes - `on_empty` attribute added to all shortcodes.
|
208 |
+
* Dev - Shortcodes - `wcj_shortcode_result` filter added to all shortcodes.
|
209 |
+
* Dev - Shortcodes - Products - `[wcj_product_gallery_image_url]` shortcode added.
|
210 |
+
* Dev - Shortcodes - General - `[wcj_cart_items_total_quantity]` shortcode added.
|
211 |
+
* Dev - Shortcodes - Orders - `[wcj_order_status_label]` shortcode added.
|
212 |
+
* Dev - Shortcodes - Orders - `[wcj_order_items_table]` - `wcj_pdf_invoicing_cell_data` filter added.
|
213 |
+
* Dev - BUTTON & PRICE LABELS - Custom Price Labels - "Migrate from Custom Price Labels (Pro)" tool removed.
|
214 |
+
* Dev - BUTTON & PRICE LABELS - Custom Price Labels - Global Custom Price Labels - `textarea` replaced with `custom_textarea`.
|
215 |
+
* Dev - BUTTON & PRICE LABELS - Custom Price Labels - Global Custom Price Labels - "Instead of the price" option added.
|
216 |
+
* Dev - BUTTON & PRICE LABELS - More Button Labels - Hook priority changed. Default value for `get_option()` added.
|
217 |
+
* Dev - PRICES & CURRENCIES - Currency Exchange Rates - "Always Use cURL" option added.
|
218 |
+
* Dev - PRICES & CURRENCIES - Currency Exchange Rates - "Calculate with Inversion" option added.
|
219 |
+
* Dev - PRICES & CURRENCIES - Currency Exchange Rates - Code refactoring. Exchange rates functions moved to separate file. JS "Grab rate" button now works even if module is disabled.
|
220 |
+
* Dev - PRICES & CURRENCIES - Currency per Product - "Cart and Checkout Behaviour Options" settings section added.
|
221 |
+
* Dev - PRICES & CURRENCIES - Currency per Product - "WooCommerce Bookings" plugin support added.
|
222 |
+
* Fix - PRICES & CURRENCIES - Multicurrency Product Base Price - Empty sale price issue fixed.
|
223 |
+
* Fix - PRICES & CURRENCIES - Price by User Role - `woocommerce_variation_prices_regular_price` hook.
|
224 |
+
* Fix - PRICES & CURRENCIES - Prices and Currencies by Country - `wcj_price_by_country()` - Additional check `0 != $product->variation_id` added.
|
225 |
+
* Dev - PRICES & CURRENCIES - Prices and Currencies by Country - Override Country Options - "Override Scope" option added.
|
226 |
+
* Fix - PRODUCTS - Bookings - `wcj-bookings.js` - `_ajax_object`.
|
227 |
+
* Fix - PRODUCTS - Product Addons - `wcj-product-addons.js` - `_ajax_object`.
|
228 |
+
* Dev - PRODUCTS - Product Images - "Single Product Thumbnails Columns" - Filter priority changed.
|
229 |
+
* Dev - PRODUCTS - Product Input Fields - Timepicker - "Min time" and "Max time" options added.
|
230 |
+
* Dev - PRODUCTS - Product Input Fields - Check for enabled fields added in `add_product_input_fields_to_cart_item_data()`.
|
231 |
+
* Fix - PRODUCTS - Product Input Fields - Check for enabled fields fixed (in `validate_product_input_fields_on_add_to_cart()` and `add_product_input_fields_to_order_item_name()`.
|
232 |
+
* Fix - PRODUCTS - Product Input Fields - Product Input Fields Global Options - Product Input Fields Number - Tooltip fixed.
|
233 |
+
* Fix - PRODUCTS - Product Listings - "Hide Empty" option for "Shop Page Display Options" and "Category Display Options" fixed (was giving reverse results).
|
234 |
+
* Dev - PRODUCTS - Product Listings - "Exclude Categories" option for "Shop Page Display Options" and "Category Display Options" changed from comma separated string to multiselect.
|
235 |
+
* Fix - PRODUCTS - Product Visibility by User Role - Query - Fixed (`offset` and `posts_per_page` removed).
|
236 |
+
* Dev - PRODUCTS - SKU - `WP_Query` optimized to return `ids` only.
|
237 |
+
* Dev - PRODUCTS - SKU - "Generate SKUs Only for Products with Empty SKU" option added.
|
238 |
+
* Dev - CART & CHECKOUT - Cart Customization - Initial module release. And "Hide Coupon on Cart Page" option moved from "General" module.
|
239 |
+
* Fix - CART & CHECKOUT - Checkout Custom Fields - Custom Fields Number - Tooltip fixed.
|
240 |
+
* Dev - CART & CHECKOUT - Checkout Customization - Initial module release. And "Hide "Order Again" Button on "View Order" Page" option moved from "General" module.
|
241 |
+
* Fix - CART & CHECKOUT - EU VAT Number - `eu-vat-number.js` - `_ajax_object`.
|
242 |
+
* Dev - PAYMENT GATEWAYS - Gateways by Shipping - Initial module release.
|
243 |
+
* Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - Code refactoring.
|
244 |
+
* Dev - PAYMENT GATEWAYS - Gateways Fees and Discounts - "Multicurrency (Currency Switcher)" module support added.
|
245 |
+
* Dev - SHIPPING & ORDERS - Order Numbers - "Number Generation" selection added (and "Pseudorandom - Hash (max 10 digits)" option).
|
246 |
+
* Dev - SHIPPING & ORDERS - Order Numbers - Default values added to all `get_option()` calls. Code cleaned up.
|
247 |
+
* Dev - SHIPPING & ORDERS - Orders - Orders Auto-Complete - `woocommerce_payment_complete` hook added.
|
248 |
+
* Fix - SHIPPING & ORDERS - Shipping - Custom Shipping (legacy and with zones) - `woocommerce_shipping_init` hook replaced with `init` hook.
|
249 |
+
* Dev - PDF INVOICING & PACKING SLIPS - Multiple custom documents added.
|
250 |
+
* Dev - EMAILS & MISC. - Custom CSS - Initial module release. CSS options moved from "General" module.
|
251 |
+
* Dev - EMAILS & MISC. - Emails - "Product Info in Item Name" options added.
|
252 |
+
* Dev - EMAILS & MISC. - General - "URL Coupons" options added.
|
253 |
+
* Fix - EMAILS & MISC. - Reports - Orders - Product Sales - "year not set" notice fixed.
|
254 |
+
* Dev - EMAILS & MISC. - Reports - Booster: More Ranges - "Same Days Last Year" option added.
|
255 |
+
* Dev - `WCJ_Module` class code refactoring - `add_settings_hook()` function added.
|
256 |
+
* Dev - Code refactoring - `add_settings_hook()` - PRICES & CURRENCIES - Currency per Product.
|
257 |
+
* Dev - Code refactoring - `add_settings_hook()` - PRICES & CURRENCIES - Multicurrency Product Base Price.
|
258 |
+
* Dev - Code refactoring - `add_settings_hook()` - PRICES & CURRENCIES - Price by User Role.
|
259 |
+
* Dev - Code refactoring - `add_settings_hook()` - PRICES & CURRENCIES - Price Formats.
|
260 |
+
* Dev - Code refactoring - `add_settings_hook()` - PRICES & CURRENCIES - Wholesale Price.
|
261 |
+
* Dev - Code refactoring - `add_settings_hook()` - BUTTON & PRICE LABELS - Free Price Labels.
|
262 |
+
* Dev - Code refactoring - `add_settings_hook()` - PRODUCTS - Product Info.
|
263 |
+
* Dev - Code refactoring - `add_settings_hook()` - PRODUCTS - Product Listings.
|
264 |
+
* Dev - Code refactoring - `add_settings_hook()` - PRODUCTS - Products per Page.
|
265 |
+
* Dev - Code refactoring - `add_settings_hook()` - PAYMENT GATEWAYS - Gateways Currency.
|
266 |
+
* Dev - Code refactoring - `add_settings_hook()` - PAYMENT GATEWAYS - Gateways by User Role.
|
267 |
+
* Dev - Code refactoring - `add_settings_hook()` - PAYMENT GATEWAYS - Gateways by Country or State.
|
268 |
+
* Dev - Code refactoring - `add_settings_hook()` - PAYMENT GATEWAYS - Gateways Min/Max Amounts.
|
269 |
+
* Dev - Code refactoring - `add_settings_hook()` - PAYMENT GATEWAYS - Gateways per Product or Category.
|
270 |
+
* Dev - Code refactoring - `add_settings_hook()` - SHIPPING & ORDERS - Left to Free Shipping.
|
271 |
+
* Dev - Code refactoring - `add_settings_hook()` - SHIPPING & ORDERS - Order Minimum Amount.
|
272 |
+
* Dev - Code refactoring - `add_settings_hook()` - SHIPPING & ORDERS - Orders.
|
273 |
+
* Dev - Code refactoring - `add_settings_hook()` - SHIPPING & ORDERS - Shipping.
|
274 |
+
* Dev - Code refactoring - `wcj_add_change_price_hooks()` function added.
|
275 |
+
* Dev - Code refactoring - `wcj_add_change_price_hooks()` - PRICES & CURRENCIES - Multicurrency (Currency Switcher).
|
276 |
+
* Dev - Code refactoring - `wcj_add_change_price_hooks()` - PRICES & CURRENCIES - Multicurrency Product Base Price.
|
277 |
+
* Dev - Code refactoring - `wcj_add_change_price_hooks()` - PRICES & CURRENCIES - Price by User Role.
|
278 |
+
* Dev - Code refactoring - `wcj_add_change_price_hooks()` - PRICES & CURRENCIES - Prices and Currencies by Country.
|
279 |
+
* Dev - Code refactoring - `wcj_add_change_price_hooks()` - PRICES & CURRENCIES - Product Price by Formula.
|
280 |
+
* Tweak - Dashboard - Modules count (all and active) added.
|
281 |
+
* Tweak - Tooltip for admin added to all "Module Tools" sections.
|
282 |
+
* Tweak - Language (POT) file updated.
|
283 |
+
* Tweak - PRODUCTS - Crowdfunding - Module description updated.
|
284 |
+
* Tweak - PRODUCTS - Product Listings - Description updated.
|
285 |
+
* Tweak - PRODUCTS - Products per Page - Description updated.
|
286 |
+
* Tweak - CART & CHECKOUT - Mini Cart - Module renamed to "Mini Cart Custom Info". Description updated.
|
287 |
+
* Tweak - EMAILS & MISC. - EU VAT Number - Moved to "CART & CHECKOUT" category.
|
288 |
+
* Tweak - EMAILS & MISC. - Products XML - Moved to "PRODUCTS" category.
|
289 |
+
|
290 |
= 2.6.0 - 02/03/2017 =
|
291 |
* Dev - Dashboard - Manage Settings - Restyled.
|
292 |
* Dev - Dashboard - Manage Settings - "Autoload Booster's Options" option added.
|
1305 |
* Dev - PRICES & CURRENCIES - Wholesale Price - "Use total cart quantity instead of product quantity" option added.
|
1306 |
* Dev - PRODUCTS - Product Input Fields - "File upload" field type added.
|
1307 |
* Dev - CART & CHECKOUT - Custom Payment Gateways - Limit raised from 10 to unlimited custom gateways.
|
1308 |
+
* Dev - CART & CHECKOUT - Payment Gateways Fees - "Is taxable" and "Tax class" options added.
|
1309 |
* Dev - CART & CHECKOUT - Payment Gateways - Code refactoring, new modules created:
|
1310 |
Custom Payment Gateways, Payment Gateways Icons, Payment Gateways Fees, Payment Gateways per Category.
|
1311 |
Attaching PDF Invoice V1 to emails - code moved to PDF Invoice V1 module.
|
woocommerce-jetpack.php
CHANGED
@@ -3,7 +3,7 @@
|
|
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 |
Text Domain: woocommerce-jetpack
|
@@ -22,13 +22,16 @@ if (
|
|
22 |
! ( is_multisite() && array_key_exists( $plugin, get_site_option( 'active_sitewide_plugins', array() ) ) )
|
23 |
) return;
|
24 |
|
|
|
|
|
|
|
25 |
if ( ! class_exists( 'WC_Jetpack' ) ) :
|
26 |
|
27 |
/**
|
28 |
* Main WC_Jetpack Class
|
29 |
*
|
30 |
* @class WC_Jetpack
|
31 |
-
* @version 2.
|
32 |
*/
|
33 |
|
34 |
final class WC_Jetpack {
|
@@ -39,7 +42,7 @@ final class WC_Jetpack {
|
|
39 |
* @var string
|
40 |
* @since 2.4.7
|
41 |
*/
|
42 |
-
public $version = '2.
|
43 |
|
44 |
/**
|
45 |
* @var WC_Jetpack The single instance of the class
|
@@ -276,7 +279,7 @@ final class WC_Jetpack {
|
|
276 |
/**
|
277 |
* maybe_enqueue_timepicker_scripts.
|
278 |
*
|
279 |
-
* @version 2.
|
280 |
* @since 2.4.0
|
281 |
*/
|
282 |
function maybe_enqueue_timepicker_scripts() {
|
@@ -284,11 +287,11 @@ final class WC_Jetpack {
|
|
284 |
wp_enqueue_script( 'jquery-ui-timepicker',
|
285 |
wcj_plugin_url() . '/includes/js/jquery.timepicker.min.js',
|
286 |
array( 'jquery' ),
|
287 |
-
|
288 |
true );
|
289 |
wp_enqueue_script( 'wcj-timepicker', wcj_plugin_url() . '/includes/js/wcj-timepicker.js',
|
290 |
array( 'jquery' ),
|
291 |
-
|
292 |
true );
|
293 |
}
|
294 |
}
|
@@ -493,11 +496,14 @@ final class WC_Jetpack {
|
|
493 |
/**
|
494 |
* include_functions.
|
495 |
*
|
496 |
-
* @version 2.
|
497 |
*/
|
498 |
private function include_functions() {
|
499 |
include_once( 'includes/functions/wcj-debug-functions.php' );
|
500 |
include_once( 'includes/functions/wcj-functions.php' );
|
|
|
|
|
|
|
501 |
include_once( 'includes/functions/wcj-functions-number-to-words.php' );
|
502 |
include_once( 'includes/functions/wcj-functions-number-to-words-bg.php' );
|
503 |
include_once( 'includes/functions/wcj-functions-number-to-words-lt.php' );
|
@@ -530,7 +536,7 @@ final class WC_Jetpack {
|
|
530 |
/**
|
531 |
* Include modules and submodules
|
532 |
*
|
533 |
-
* @version 2.
|
534 |
*/
|
535 |
function include_modules() {
|
536 |
$modules_files = array(
|
@@ -565,12 +571,14 @@ final class WC_Jetpack {
|
|
565 |
'includes/class-wcj-add-to-cart.php',
|
566 |
'includes/class-wcj-more-button-labels.php',
|
567 |
'includes/class-wcj-cart.php',
|
|
|
568 |
'includes/class-wcj-empty-cart-button.php',
|
569 |
'includes/class-wcj-mini-cart.php',
|
570 |
'includes/class-wcj-checkout-core-fields.php',
|
571 |
'includes/class-wcj-checkout-custom-fields.php',
|
572 |
'includes/class-wcj-checkout-files-upload.php',
|
573 |
'includes/class-wcj-checkout-custom-info.php',
|
|
|
574 |
'includes/class-wcj-payment-gateways.php',
|
575 |
'includes/class-wcj-payment-gateways-icons.php',
|
576 |
'includes/class-wcj-payment-gateways-fees.php',
|
@@ -579,6 +587,7 @@ final class WC_Jetpack {
|
|
579 |
'includes/class-wcj-payment-gateways-min-max.php',
|
580 |
'includes/class-wcj-payment-gateways-by-country.php',
|
581 |
'includes/class-wcj-payment-gateways-by-user-role.php',
|
|
|
582 |
'includes/class-wcj-shipping.php',
|
583 |
'includes/class-wcj-left-to-free-shipping.php',
|
584 |
'includes/class-wcj-shipping-calculator.php',
|
@@ -599,6 +608,7 @@ final class WC_Jetpack {
|
|
599 |
'includes/class-wcj-currency-exchange-rates.php',
|
600 |
'includes/class-wcj-price-formats.php',
|
601 |
'includes/class-wcj-general.php',
|
|
|
602 |
'includes/class-wcj-products-xml.php',
|
603 |
'includes/class-wcj-export-import.php',
|
604 |
// 'includes/class-wcj-shortcodes-module.php',
|
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.0
|
7 |
Author: Algoritmika Ltd
|
8 |
Author URI: http://www.algoritmika.com
|
9 |
Text Domain: woocommerce-jetpack
|
22 |
! ( is_multisite() && array_key_exists( $plugin, get_site_option( 'active_sitewide_plugins', array() ) ) )
|
23 |
) return;
|
24 |
|
25 |
+
// Constants
|
26 |
+
require_once( 'includes/constants/wcj-constants.php' );
|
27 |
+
|
28 |
if ( ! class_exists( 'WC_Jetpack' ) ) :
|
29 |
|
30 |
/**
|
31 |
* Main WC_Jetpack Class
|
32 |
*
|
33 |
* @class WC_Jetpack
|
34 |
+
* @version 2.7.0
|
35 |
*/
|
36 |
|
37 |
final class WC_Jetpack {
|
42 |
* @var string
|
43 |
* @since 2.4.7
|
44 |
*/
|
45 |
+
public $version = '2.7.0';
|
46 |
|
47 |
/**
|
48 |
* @var WC_Jetpack The single instance of the class
|
279 |
/**
|
280 |
* maybe_enqueue_timepicker_scripts.
|
281 |
*
|
282 |
+
* @version 2.7.0
|
283 |
* @since 2.4.0
|
284 |
*/
|
285 |
function maybe_enqueue_timepicker_scripts() {
|
287 |
wp_enqueue_script( 'jquery-ui-timepicker',
|
288 |
wcj_plugin_url() . '/includes/js/jquery.timepicker.min.js',
|
289 |
array( 'jquery' ),
|
290 |
+
$this->version,
|
291 |
true );
|
292 |
wp_enqueue_script( 'wcj-timepicker', wcj_plugin_url() . '/includes/js/wcj-timepicker.js',
|
293 |
array( 'jquery' ),
|
294 |
+
$this->version,
|
295 |
true );
|
296 |
}
|
297 |
}
|
496 |
/**
|
497 |
* include_functions.
|
498 |
*
|
499 |
+
* @version 2.7.0
|
500 |
*/
|
501 |
private function include_functions() {
|
502 |
include_once( 'includes/functions/wcj-debug-functions.php' );
|
503 |
include_once( 'includes/functions/wcj-functions.php' );
|
504 |
+
include_once( 'includes/functions/wcj-price-currency-functions.php' );
|
505 |
+
include_once( 'includes/functions/wcj-user-roles-functions.php' );
|
506 |
+
include_once( 'includes/functions/wcj-exchange-rates-functions.php' );
|
507 |
include_once( 'includes/functions/wcj-functions-number-to-words.php' );
|
508 |
include_once( 'includes/functions/wcj-functions-number-to-words-bg.php' );
|
509 |
include_once( 'includes/functions/wcj-functions-number-to-words-lt.php' );
|
536 |
/**
|
537 |
* Include modules and submodules
|
538 |
*
|
539 |
+
* @version 2.7.0
|
540 |
*/
|
541 |
function include_modules() {
|
542 |
$modules_files = array(
|
571 |
'includes/class-wcj-add-to-cart.php',
|
572 |
'includes/class-wcj-more-button-labels.php',
|
573 |
'includes/class-wcj-cart.php',
|
574 |
+
'includes/class-wcj-cart-customization.php',
|
575 |
'includes/class-wcj-empty-cart-button.php',
|
576 |
'includes/class-wcj-mini-cart.php',
|
577 |
'includes/class-wcj-checkout-core-fields.php',
|
578 |
'includes/class-wcj-checkout-custom-fields.php',
|
579 |
'includes/class-wcj-checkout-files-upload.php',
|
580 |
'includes/class-wcj-checkout-custom-info.php',
|
581 |
+
'includes/class-wcj-checkout-customization.php',
|
582 |
'includes/class-wcj-payment-gateways.php',
|
583 |
'includes/class-wcj-payment-gateways-icons.php',
|
584 |
'includes/class-wcj-payment-gateways-fees.php',
|
587 |
'includes/class-wcj-payment-gateways-min-max.php',
|
588 |
'includes/class-wcj-payment-gateways-by-country.php',
|
589 |
'includes/class-wcj-payment-gateways-by-user-role.php',
|
590 |
+
'includes/class-wcj-payment-gateways-by-shipping.php',
|
591 |
'includes/class-wcj-shipping.php',
|
592 |
'includes/class-wcj-left-to-free-shipping.php',
|
593 |
'includes/class-wcj-shipping-calculator.php',
|
608 |
'includes/class-wcj-currency-exchange-rates.php',
|
609 |
'includes/class-wcj-price-formats.php',
|
610 |
'includes/class-wcj-general.php',
|
611 |
+
'includes/class-wcj-custom-css.php',
|
612 |
'includes/class-wcj-products-xml.php',
|
613 |
'includes/class-wcj-export-import.php',
|
614 |
// 'includes/class-wcj-shortcodes-module.php',
|