Version Description
- Fix broken logic with Table Rate Shipping when product uses class with "break and abort" rule
- Custom attributes terms not copied to diplicated translation after update values in original
- Fixed issue which was changing the current language of the site when saving an order
- Better compatibility class for LiteSpeed Cache that doesn't require changing the URL
- Fixed issue with serialized data in term meta table
- Fix price with schedule sale dates in multicurrency
- Add compatibility class for LiteSpeed Cache plugin
- Fixed issue with problem in downloadable products in secondary language with different domain per language is enabled
Download this release
Release Info
Developer | sergey.r |
Plugin | WooCommerce Multilingual – run WooCommerce with WPML |
Version | 4.3.7 |
Comparing to | |
See all releases |
Code changes from version 4.3.6 to 4.3.7
- changelog/4.2.1.md +1 -2
- changelog/4.3.7.md +9 -0
- compatibility/class-wcml-litespeed-cache.php +26 -0
- compatibility/class-wcml-table-rate-shipping.php +9 -7
- inc/class-wcml-attributes.php +32 -5
- inc/class-wcml-compatibility.php +7 -1
- inc/class-wcml-emails.php +4 -0
- inc/class-wcml-terms.php +2 -2
- inc/currencies/class-wcml-custom-prices.php +31 -5
- locale/woocommerce-multilingual-ar.mo +0 -0
- locale/woocommerce-multilingual-de_DE.mo +0 -0
- locale/woocommerce-multilingual-el.mo +0 -0
- locale/woocommerce-multilingual-es_ES.mo +0 -0
- locale/woocommerce-multilingual-fr_FR.mo +0 -0
- locale/woocommerce-multilingual-he_IL.mo +0 -0
- locale/woocommerce-multilingual-it_IT.mo +0 -0
- locale/woocommerce-multilingual-ja.mo +0 -0
- locale/woocommerce-multilingual-ko_KR.mo +0 -0
- locale/woocommerce-multilingual-nl_NL.mo +0 -0
- locale/woocommerce-multilingual-pl_PL.mo +0 -0
- locale/woocommerce-multilingual-pt_BR.mo +0 -0
- locale/woocommerce-multilingual-pt_PT.mo +0 -0
- locale/woocommerce-multilingual-ru_RU.mo +0 -0
- locale/woocommerce-multilingual-sv_SE.mo +0 -0
- locale/woocommerce-multilingual-uk.mo +0 -0
- locale/woocommerce-multilingual-vi.mo +0 -0
- locale/woocommerce-multilingual-zh_CN.mo +0 -0
- locale/woocommerce-multilingual-zh_TW.mo +0 -0
- readme.txt +12 -3
- res/js/prices.js +12 -4
- res/js/prices.min.js +1 -1
- vendor/autoload.php +1 -1
- vendor/autoload_52.php +1 -1
- vendor/composer/ClassLoader.php +1 -1
- vendor/composer/autoload_classmap.php +1 -0
- vendor/composer/autoload_real.php +4 -4
- vendor/composer/autoload_real_52.php +3 -3
- vendor/composer/autoload_static.php +6 -5
- wpml-woocommerce.php +3 -3
changelog/4.2.1.md
CHANGED
@@ -8,12 +8,11 @@
|
|
8 |
* [wcml-2085] Fatal error while custom call not active currency switcher template
|
9 |
* [wcml-2075] Duplicating from WooCommerce resulted in losing language data for the original product
|
10 |
* [wcml-2064] PHP errors were shown on the admin dashboard when no orders existed and displaying errors was on
|
11 |
-
* [wcml-2063] Fixed issue with problem in downloadable products in secondary language with different domain per language is enabled
|
12 |
* [wcml-2061] A fatal error (undefiend get_current_screen) was occurring in some conditions on the WP admin side
|
13 |
* [wcml-2059] Cart widget shows wrong product names
|
14 |
* [wcml-2058] Fixed a small but that defualt currency template didn't load correctly in new installation
|
15 |
* [wcml-2057] Added compatibility for grouped products
|
16 |
-
* [wcml-2053] Fixed an issue in lost password endpoint when
|
17 |
* [wcml-2047] The cart total in a secondary currencies could have been added a previously removed shipping tax
|
18 |
* [wcml-2046] Post translation won't save when Product Bundles plugin is active
|
19 |
* [wcml-2043] Fixed comp issue with dynamic price with translated variations don't work in secondary language
|
8 |
* [wcml-2085] Fatal error while custom call not active currency switcher template
|
9 |
* [wcml-2075] Duplicating from WooCommerce resulted in losing language data for the original product
|
10 |
* [wcml-2064] PHP errors were shown on the admin dashboard when no orders existed and displaying errors was on
|
|
|
11 |
* [wcml-2061] A fatal error (undefiend get_current_screen) was occurring in some conditions on the WP admin side
|
12 |
* [wcml-2059] Cart widget shows wrong product names
|
13 |
* [wcml-2058] Fixed a small but that defualt currency template didn't load correctly in new installation
|
14 |
* [wcml-2057] Added compatibility for grouped products
|
15 |
+
* [wcml-2053] Fixed an issue in lost password endpoint when editing it
|
16 |
* [wcml-2047] The cart total in a secondary currencies could have been added a previously removed shipping tax
|
17 |
* [wcml-2046] Post translation won't save when Product Bundles plugin is active
|
18 |
* [wcml-2043] Fixed comp issue with dynamic price with translated variations don't work in secondary language
|
changelog/4.3.7.md
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Fixes
|
2 |
+
* [wcml-2566] Fix broken logic with Table Rate Shipping when product uses class with "break and abort" rule
|
3 |
+
* [wcml-2550] Custom attributes terms not copied to diplicated translation after update values in original
|
4 |
+
* [wcml-2549] Fixed issue which was changing the current language of the site when saving an order
|
5 |
+
* [wcml-2547] Better compatibility class for LiteSpeed Cache that doesn't require changing the URL
|
6 |
+
* [wcml-2541] Fixed issue with serialized data in term meta table
|
7 |
+
* [wcml-2534] Fix price with schedule sale dates in multicurrency
|
8 |
+
* [wcml-2531] Add compatibility class for LiteSpeed Cache plugin
|
9 |
+
* [wcml-2063] Fixed issue with problem in downloadable products in secondary language with different domain per language is enabled
|
compatibility/class-wcml-litespeed-cache.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class WCML_LiteSpeed_Cache {
|
4 |
+
|
5 |
+
function add_hooks() {
|
6 |
+
// LiteSpeed_Cache_API::vary is available since 2.6.
|
7 |
+
if ( method_exists( 'LiteSpeed_Cache_API', 'v' ) && LiteSpeed_Cache_API::v( '2.6' ) ) {
|
8 |
+
add_filter( 'wcml_client_currency', array( $this, 'apply_client_currency' ) );
|
9 |
+
add_action( 'wcml_set_client_currency', array( $this, 'set_client_currency' ) );
|
10 |
+
}
|
11 |
+
}
|
12 |
+
|
13 |
+
function set_client_currency( $currency ) {
|
14 |
+
$this->apply_client_currency( $currency );
|
15 |
+
|
16 |
+
LiteSpeed_Cache_API::force_vary();
|
17 |
+
}
|
18 |
+
|
19 |
+
function apply_client_currency( $currency ) {
|
20 |
+
LiteSpeed_Cache_API::vary( 'wcml_currency', $currency, get_option( 'woocommerce_currency' ) );
|
21 |
+
|
22 |
+
return $currency;
|
23 |
+
}
|
24 |
+
|
25 |
+
}
|
26 |
+
|
compatibility/class-wcml-table-rate-shipping.php
CHANGED
@@ -198,20 +198,22 @@ class WCML_Table_Rate_Shipping {
|
|
198 |
}
|
199 |
|
200 |
/**
|
201 |
-
* @param array $
|
202 |
*
|
203 |
* @return array
|
204 |
*/
|
205 |
-
public function filter_table_rate_priorities( $
|
206 |
|
207 |
-
foreach ( $
|
208 |
|
209 |
-
$shipping_class_term
|
210 |
-
|
211 |
-
|
|
|
|
|
212 |
}
|
213 |
|
214 |
-
return $
|
215 |
}
|
216 |
|
217 |
}
|
198 |
}
|
199 |
|
200 |
/**
|
201 |
+
* @param array $priorities
|
202 |
*
|
203 |
* @return array
|
204 |
*/
|
205 |
+
public function filter_table_rate_priorities( $priorities ) {
|
206 |
|
207 |
+
foreach ( $priorities as $slug => $priority ) {
|
208 |
|
209 |
+
$shipping_class_term = get_term_by( 'slug', $slug, 'product_shipping_class' );
|
210 |
+
if ( $shipping_class_term->slug !== $slug ) {
|
211 |
+
unset( $priorities[ $slug ] );
|
212 |
+
$priorities[ $shipping_class_term->slug ] = $priority;
|
213 |
+
}
|
214 |
}
|
215 |
|
216 |
+
return $priorities;
|
217 |
}
|
218 |
|
219 |
}
|
inc/class-wcml-attributes.php
CHANGED
@@ -57,6 +57,7 @@ class WCML_Attributes{
|
|
57 |
'filter_product_variation_default_attributes'
|
58 |
) );
|
59 |
}
|
|
|
60 |
}
|
61 |
|
62 |
public function init(){
|
@@ -273,11 +274,15 @@ class WCML_Attributes{
|
|
273 |
$trnsl_labels[ $language ][ $key_to_save ] = '';
|
274 |
}
|
275 |
}elseif( !$orig_product_attr[ 'is_taxonomy' ] ){
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
|
|
|
|
|
|
|
|
281 |
}
|
282 |
}
|
283 |
|
@@ -702,4 +707,26 @@ class WCML_Attributes{
|
|
702 |
return $attribute_value;
|
703 |
}
|
704 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
705 |
}
|
57 |
'filter_product_variation_default_attributes'
|
58 |
) );
|
59 |
}
|
60 |
+
add_action( 'update_post_meta', array( $this, 'set_translation_status_as_needs_update' ), 10, 3 );
|
61 |
}
|
62 |
|
63 |
public function init(){
|
274 |
$trnsl_labels[ $language ][ $key_to_save ] = '';
|
275 |
}
|
276 |
}elseif( !$orig_product_attr[ 'is_taxonomy' ] ){
|
277 |
+
$duplicate_of = get_post_meta( $tr_product_id, '_icl_lang_duplicate_of', true );
|
278 |
+
|
279 |
+
if( !$duplicate_of ){
|
280 |
+
if( isset( $trnsl_product_attrs[ $key ] ) ){
|
281 |
+
$orig_product_attrs[ $key_to_save ][ 'value' ] = $trnsl_product_attrs[ $key ][ 'value' ];
|
282 |
+
}elseif( !empty( $trnsl_product_attrs ) ){
|
283 |
+
unset ( $orig_product_attrs[ $key_to_save ] );
|
284 |
+
}
|
285 |
+
}
|
286 |
}
|
287 |
}
|
288 |
|
707 |
return $attribute_value;
|
708 |
}
|
709 |
|
710 |
+
/**
|
711 |
+
* @param int $meta_id
|
712 |
+
* @param int $object_id
|
713 |
+
* @param string $meta_key
|
714 |
+
*/
|
715 |
+
public function set_translation_status_as_needs_update( $meta_id, $object_id, $meta_key ) {
|
716 |
+
if ( $meta_key === '_product_attributes' ) {
|
717 |
+
|
718 |
+
$status_helper = wpml_get_post_status_helper();
|
719 |
+
$translation_element_factory = new WPML_Translation_Element_Factory( $this->sitepress );
|
720 |
+
$post_element = $translation_element_factory->create_post( $object_id );
|
721 |
+
|
722 |
+
if ( null === $post_element->get_source_language_code() ) {
|
723 |
+
foreach ( $post_element->get_translations() as $translation ) {
|
724 |
+
if ( null !== $translation->get_source_language_code() ) {
|
725 |
+
$status_helper->set_update_status( $translation->get_id(), 1 );
|
726 |
+
}
|
727 |
+
}
|
728 |
+
}
|
729 |
+
}
|
730 |
+
}
|
731 |
+
|
732 |
}
|
inc/class-wcml-compatibility.php
CHANGED
@@ -253,6 +253,12 @@ class WCML_Compatibility {
|
|
253 |
$this->wpb_woo_var_table->add_hooks();
|
254 |
}
|
255 |
|
|
|
|
|
|
|
|
|
|
|
|
|
256 |
}
|
257 |
|
258 |
-
}
|
253 |
$this->wpb_woo_var_table->add_hooks();
|
254 |
}
|
255 |
|
256 |
+
// LiteSpeed Cache
|
257 |
+
if ( class_exists( 'LiteSpeed_Cache' ) ) {
|
258 |
+
$this->litespeed_cache = new WCML_LiteSpeed_Cache();
|
259 |
+
$this->litespeed_cache->add_hooks();
|
260 |
+
}
|
261 |
+
|
262 |
}
|
263 |
|
264 |
+
}
|
inc/class-wcml-emails.php
CHANGED
@@ -363,6 +363,10 @@ class WCML_Emails{
|
|
363 |
|
364 |
function change_email_language( $lang ) {
|
365 |
|
|
|
|
|
|
|
|
|
366 |
$this->sitepress->switch_lang( $lang, true );
|
367 |
$this->locale = $this->sitepress->get_locale( $lang );
|
368 |
unload_textdomain( 'woocommerce' );
|
363 |
|
364 |
function change_email_language( $lang ) {
|
365 |
|
366 |
+
if ( isset( $_POST['post_type'] ) && 'shop_order' === $_POST['post_type'] ) {
|
367 |
+
return;
|
368 |
+
}
|
369 |
+
|
370 |
$this->sitepress->switch_lang( $lang, true );
|
371 |
$this->locale = $this->sitepress->get_locale( $lang );
|
372 |
unload_textdomain( 'woocommerce' );
|
inc/class-wcml-terms.php
CHANGED
@@ -99,9 +99,9 @@ class WCML_Terms{
|
|
99 |
// End of backwards compatibility - before the termmeta table was added
|
100 |
}else{
|
101 |
|
102 |
-
$term_wc_meta = get_term_meta($original_tax->term_id, false,
|
103 |
foreach ( $term_wc_meta as $key => $values ) {
|
104 |
-
update_term_meta( $result['term_id'], $key, array_pop( $values ) );
|
105 |
}
|
106 |
|
107 |
}
|
99 |
// End of backwards compatibility - before the termmeta table was added
|
100 |
}else{
|
101 |
|
102 |
+
$term_wc_meta = get_term_meta( $original_tax->term_id, false, true );
|
103 |
foreach ( $term_wc_meta as $key => $values ) {
|
104 |
+
update_term_meta( $result['term_id'], $key, maybe_unserialize( array_pop( $values ) ) );
|
105 |
}
|
106 |
|
107 |
}
|
inc/currencies/class-wcml-custom-prices.php
CHANGED
@@ -66,7 +66,7 @@ class WCML_Custom_Prices{
|
|
66 |
|
67 |
$custom_prices = false;
|
68 |
|
69 |
-
if(!empty($product_meta['_wcml_custom_prices_status'][0])){
|
70 |
|
71 |
$prices_keys = apply_filters( 'wcml_price_custom_fields_filtered', array(
|
72 |
'_price', '_regular_price', '_sale_price',
|
@@ -82,6 +82,10 @@ class WCML_Custom_Prices{
|
|
82 |
|
83 |
}
|
84 |
|
|
|
|
|
|
|
|
|
85 |
}
|
86 |
|
87 |
if(!isset($custom_prices['_price'])) return false;
|
@@ -92,8 +96,8 @@ class WCML_Custom_Prices{
|
|
92 |
if(isset($custom_prices['_sale_price']) && is_numeric($custom_prices['_sale_price']) ){
|
93 |
if(!empty($product_meta['_wcml_schedule_' . $currency][0])){
|
94 |
// custom dates
|
95 |
-
if(
|
96 |
-
if(
|
97 |
$custom_prices['_price'] = $custom_prices['_sale_price'];
|
98 |
}else{
|
99 |
$custom_prices['_price'] = $custom_prices['_regular_price'];
|
@@ -105,7 +109,7 @@ class WCML_Custom_Prices{
|
|
105 |
}else{
|
106 |
// inherit
|
107 |
if(!empty($product_meta['_sale_price_dates_from'][0]) && !empty($product_meta['_sale_price_dates_to'][0])){
|
108 |
-
if(current_time('timestamp') > $product_meta['_sale_price_dates_from'][0] && current_time('timestamp') < $product_meta['_sale_price_dates_to'][0]){
|
109 |
$custom_prices['_price'] = $custom_prices['_sale_price'];
|
110 |
}else{
|
111 |
$custom_prices['_price'] = $custom_prices['_regular_price'];
|
@@ -246,6 +250,27 @@ class WCML_Custom_Prices{
|
|
246 |
return $custom_prices;
|
247 |
}
|
248 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
public function woocommerce_product_options_custom_pricing(){
|
250 |
global $pagenow;
|
251 |
|
@@ -459,10 +484,11 @@ class WCML_Custom_Prices{
|
|
459 |
$date_from = strtotime( $_POST[ '_custom_variation_sale_price_dates_from' ][ $code ][ $product_id ] );
|
460 |
$date_to = strtotime( $_POST[ '_custom_variation_sale_price_dates_to' ][ $code ][ $product_id ] );
|
461 |
$schedule = $_POST[ '_wcml_schedule' ][ $code ][ $product_id ];
|
|
|
462 |
$custom_prices = apply_filters( 'wcml_update_custom_prices_values',
|
463 |
array( '_regular_price' => $regular_price,
|
464 |
'_sale_price' => $sale_price,
|
465 |
-
'
|
466 |
'_sale_price_dates_from' => $date_from,
|
467 |
'_sale_price_dates_to' => $date_to ),
|
468 |
$code,
|
66 |
|
67 |
$custom_prices = false;
|
68 |
|
69 |
+
if( !empty( $product_meta['_wcml_custom_prices_status'][0] ) ){
|
70 |
|
71 |
$prices_keys = apply_filters( 'wcml_price_custom_fields_filtered', array(
|
72 |
'_price', '_regular_price', '_sale_price',
|
82 |
|
83 |
}
|
84 |
|
85 |
+
if( $this->is_date_range_set( $product_meta, $currency ) && !$this->is_on_sale_date_range( $product_meta, $currency ) ){
|
86 |
+
$custom_prices[ '_sale_price' ] = '';
|
87 |
+
}
|
88 |
+
|
89 |
}
|
90 |
|
91 |
if(!isset($custom_prices['_price'])) return false;
|
96 |
if(isset($custom_prices['_sale_price']) && is_numeric($custom_prices['_sale_price']) ){
|
97 |
if(!empty($product_meta['_wcml_schedule_' . $currency][0])){
|
98 |
// custom dates
|
99 |
+
if( $this->is_date_range_set( $product_meta, $currency ) ){
|
100 |
+
if( $this->is_on_sale_date_range( $product_meta, $currency ) ){
|
101 |
$custom_prices['_price'] = $custom_prices['_sale_price'];
|
102 |
}else{
|
103 |
$custom_prices['_price'] = $custom_prices['_regular_price'];
|
109 |
}else{
|
110 |
// inherit
|
111 |
if(!empty($product_meta['_sale_price_dates_from'][0]) && !empty($product_meta['_sale_price_dates_to'][0])){
|
112 |
+
if( current_time('timestamp') > $product_meta['_sale_price_dates_from'][0] && current_time('timestamp') < $product_meta['_sale_price_dates_to'][0] ){
|
113 |
$custom_prices['_price'] = $custom_prices['_sale_price'];
|
114 |
}else{
|
115 |
$custom_prices['_price'] = $custom_prices['_regular_price'];
|
250 |
return $custom_prices;
|
251 |
}
|
252 |
|
253 |
+
private function is_date_range_set( $product_meta, $currency ) {
|
254 |
+
|
255 |
+
return isset( $product_meta[ '_sale_price_dates_from_' . $currency ] ) &&
|
256 |
+
$product_meta[ '_sale_price_dates_from_' . $currency ][0] &&
|
257 |
+
isset( $product_meta[ '_sale_price_dates_to_' . $currency ] ) &&
|
258 |
+
$product_meta[ '_sale_price_dates_to_' . $currency ][0];
|
259 |
+
}
|
260 |
+
|
261 |
+
private function is_on_sale_date_range( $product_meta, $currency ) {
|
262 |
+
if (
|
263 |
+
isset( $product_meta[ '_sale_price_dates_from_' . $currency ] ) &&
|
264 |
+
current_time( 'timestamp' ) > $product_meta[ '_sale_price_dates_from_' . $currency ][0] &&
|
265 |
+
isset( $product_meta[ '_sale_price_dates_to_' . $currency ] ) &&
|
266 |
+
current_time( 'timestamp' ) < $product_meta[ '_sale_price_dates_to_' . $currency ][0]
|
267 |
+
) {
|
268 |
+
return true;
|
269 |
+
}
|
270 |
+
|
271 |
+
return false;
|
272 |
+
}
|
273 |
+
|
274 |
public function woocommerce_product_options_custom_pricing(){
|
275 |
global $pagenow;
|
276 |
|
484 |
$date_from = strtotime( $_POST[ '_custom_variation_sale_price_dates_from' ][ $code ][ $product_id ] );
|
485 |
$date_to = strtotime( $_POST[ '_custom_variation_sale_price_dates_to' ][ $code ][ $product_id ] );
|
486 |
$schedule = $_POST[ '_wcml_schedule' ][ $code ][ $product_id ];
|
487 |
+
|
488 |
$custom_prices = apply_filters( 'wcml_update_custom_prices_values',
|
489 |
array( '_regular_price' => $regular_price,
|
490 |
'_sale_price' => $sale_price,
|
491 |
+
'_wcml_schedule' => $schedule,
|
492 |
'_sale_price_dates_from' => $date_from,
|
493 |
'_sale_price_dates_to' => $date_to ),
|
494 |
$code,
|
locale/woocommerce-multilingual-ar.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-de_DE.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-el.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-es_ES.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-fr_FR.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-he_IL.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-it_IT.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-ja.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-ko_KR.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-nl_NL.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-pl_PL.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-pt_BR.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-pt_PT.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-ru_RU.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-sv_SE.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-uk.mo
ADDED
Binary file
|
locale/woocommerce-multilingual-vi.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-zh_CN.mo
CHANGED
Binary file
|
locale/woocommerce-multilingual-zh_TW.mo
CHANGED
Binary file
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: CMS, woocommerce, commerce, ecommerce, e-commerce, products, WPML, multili
|
|
5 |
License: GPLv2
|
6 |
Requires at least: 3.9
|
7 |
Tested up to: 4.9.8
|
8 |
-
Stable tag: 4.3.
|
9 |
|
10 |
Allows running fully multilingual e-commerce sites using WooCommerce and WPML.
|
11 |
|
@@ -140,6 +140,16 @@ WooCommerce Multilingual is compatible with all major WooCommerce extensions. We
|
|
140 |
|
141 |
== Changelog ==
|
142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
= 4.3.6 =
|
144 |
* Removed wpml_referer_url as it is no longer used
|
145 |
* Fixed Fatal error on updating original, after setting attachments to "do not translate"
|
@@ -336,12 +346,11 @@ WooCommerce Multilingual is compatible with all major WooCommerce extensions. We
|
|
336 |
* Fatal error while custom call not active currency switcher template
|
337 |
* Duplicating from WooCommerce resulted in losing language data for the original product
|
338 |
* PHP errors were shown on the admin dashboard when no orders existed and displaying errors was on
|
339 |
-
* Fixed issue with problem in downloadable products in secondary language with different domain per language is enabled
|
340 |
* A fatal error (undefiend get_current_screen) was occurring in some conditions on the WP admin side
|
341 |
* Cart widget shows wrong product names
|
342 |
* Fixed a small but that defualt currency template didn't load correctly in new installation
|
343 |
* Added compatibility for grouped products
|
344 |
-
* Fixed an issue in lost password endpoint when
|
345 |
* The cart total in a secondary currencies could have been added a previously removed shipping tax
|
346 |
* Post translation won't save when Product Bundles plugin is active
|
347 |
* Fixed comp issue with dynamic price with translated variations don't work in secondary language
|
5 |
License: GPLv2
|
6 |
Requires at least: 3.9
|
7 |
Tested up to: 4.9.8
|
8 |
+
Stable tag: 4.3.7
|
9 |
|
10 |
Allows running fully multilingual e-commerce sites using WooCommerce and WPML.
|
11 |
|
140 |
|
141 |
== Changelog ==
|
142 |
|
143 |
+
= 4.3.7 =
|
144 |
+
* Fix broken logic with Table Rate Shipping when product uses class with "break and abort" rule
|
145 |
+
* Custom attributes terms not copied to diplicated translation after update values in original
|
146 |
+
* Fixed issue which was changing the current language of the site when saving an order
|
147 |
+
* Better compatibility class for LiteSpeed Cache that doesn't require changing the URL
|
148 |
+
* Fixed issue with serialized data in term meta table
|
149 |
+
* Fix price with schedule sale dates in multicurrency
|
150 |
+
* Add compatibility class for LiteSpeed Cache plugin
|
151 |
+
* Fixed issue with problem in downloadable products in secondary language with different domain per language is enabled
|
152 |
+
|
153 |
= 4.3.6 =
|
154 |
* Removed wpml_referer_url as it is no longer used
|
155 |
* Fixed Fatal error on updating original, after setting attachments to "do not translate"
|
346 |
* Fatal error while custom call not active currency switcher template
|
347 |
* Duplicating from WooCommerce resulted in losing language data for the original product
|
348 |
* PHP errors were shown on the admin dashboard when no orders existed and displaying errors was on
|
|
|
349 |
* A fatal error (undefiend get_current_screen) was occurring in some conditions on the WP admin side
|
350 |
* Cart widget shows wrong product names
|
351 |
* Fixed a small but that defualt currency template didn't load correctly in new installation
|
352 |
* Added compatibility for grouped products
|
353 |
+
* Fixed an issue in lost password endpoint when editing it
|
354 |
* The cart total in a secondary currencies could have been added a previously removed shipping tax
|
355 |
* Post translation won't save when Product Bundles plugin is active
|
356 |
* Fixed comp issue with dynamic price with translated variations don't work in secondary language
|
res/js/prices.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
jQuery(document).ready(function($){
|
2 |
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
});
|
8 |
|
9 |
$(document).on('change','.wcml_custom_prices_input', function(){
|
@@ -149,6 +149,14 @@ jQuery(document).ready(function($){
|
|
149 |
}
|
150 |
});
|
151 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
function datepick(){
|
153 |
var date_img = '';
|
154 |
if(typeof woocommerce_admin_meta_boxes != 'undefined'){
|
1 |
jQuery(document).ready(function($){
|
2 |
|
3 |
+
maybe_show_wcml_shedule_link();
|
4 |
+
|
5 |
+
$(document).on('click','.woocommerce_variations h3', function( e ){
|
6 |
+
maybe_show_wcml_shedule_link();
|
7 |
});
|
8 |
|
9 |
$(document).on('change','.wcml_custom_prices_input', function(){
|
149 |
}
|
150 |
});
|
151 |
|
152 |
+
function maybe_show_wcml_shedule_link(){
|
153 |
+
$('.wcml_schedule_input').each(function(){
|
154 |
+
if($(this).is(':checked') && $(this).val() == 1){
|
155 |
+
$(this).parent().find('.block_actions').show();
|
156 |
+
}
|
157 |
+
});
|
158 |
+
}
|
159 |
+
|
160 |
function datepick(){
|
161 |
var date_img = '';
|
162 |
if(typeof woocommerce_admin_meta_boxes != 'undefined'){
|
res/js/prices.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(
|
1 |
+
jQuery(document).ready(function($){maybe_show_wcml_shedule_link();$(document).on("click",".woocommerce_variations h3",function(e){maybe_show_wcml_shedule_link()});$(document).on("change",".wcml_custom_prices_input",function(){if($(this).val()==1){$(this).closest(".wcml_custom_prices_block").find(".wcml_automaticaly_prices_block").hide();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_manually_block").show();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_manually_block_hide").show();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_manually_block_show").hide();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_auto_block_hide").hide();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_auto_block_show").show();$(this).parent().find(".block_actions").hide()}else{$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_manually_block").hide();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_manually_block_hide").hide();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_manually_block_show").hide();$(this).parent().find(".block_actions").show()}});$(document).on("click",".wcml_custom_prices_auto_block_show",function(e){e.preventDefault();if($(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_input:checked").val()==0){if(!$(this).closest(".wcml_custom_prices_block").find(".wcml_automaticaly_prices_block").is(":visible")){$(this).hide();$(this).closest(".wcml_custom_prices_block").find(".wcml_automaticaly_prices_block").show();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_auto_block_hide").show()}}});$(document).on("click",".wcml_custom_prices_auto_block_hide",function(e){e.preventDefault();if($(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_input:checked").val()==0){if($(this).closest(".wcml_custom_prices_block").find(".wcml_automaticaly_prices_block").is(":visible")){$(this).hide();$(this).closest(".wcml_custom_prices_block").find(".wcml_automaticaly_prices_block").hide();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_auto_block_show").show()}}});$(document).on("click",".wcml_custom_prices_manually_block_hide",function(e){e.preventDefault();if($(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_input:checked").val()==1){$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_manually_block").hide();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_manually_block_hide").hide();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_manually_block_show").show()}});$(document).on("click",".wcml_custom_prices_manually_block_show",function(e){e.preventDefault();if($(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_input:checked").val()==1){$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_manually_block").show();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_manually_block_hide").show();$(this).closest(".wcml_custom_prices_block").find(".wcml_custom_prices_manually_block_show").hide()}});$(document).on("change","#_regular_price",function(){var val=$(this).val();$(this).closest("div").find('input[name="_readonly_regular_price"]').each(function(){$(this).val(val*$(this).attr("rel"))})});$(document).on("change","#_sale_price",function(){var val=$(this).val();$(this).closest("div").find('input[name="_readonly_sale_price"]').each(function(){$(this).val(val*$(this).attr("rel"))})});$(document).on("change",'input[name^="variable_regular_price"]',function(){var val=$(this).val();$(this).closest("table").find('input[name="_readonly_regular_price"]').each(function(){$(this).val(val*$(this).attr("rel"))})});$(document).on("change",'input[name^="variable_sale_price"]',function(){var val=$(this).val();$(this).closest("table").find('input[name="_readonly_sale_price"]').each(function(){$(this).val(val*$(this).attr("rel"))})});$(document).on("change","input.wcml_input_price",function(){if($(this).val()>0){$(this).closest(".currency_blck").find(".wcml_no_price_message").hide()}});$(document).on("change",".wcml_schedule_input",function(){if($(this).val()==1){datepick();$(this).closest("div").find(".wcml_schedule_dates").show();$(this).closest("div").find(".wcml_schedule_manually_block_show").hide();$(this).closest("div").find(".wcml_schedule_manually_block_hide").show();$(this).parent().find(".block_actions").show()}else{$(this).closest("div").find(".wcml_schedule_dates").hide();$(this).closest("div").find(".wcml_schedule_manually_block_show").show();$(this).closest("div").find(".wcml_schedule_manually_block_hide").hide();$(this).parent().find(".block_actions").hide()}});$(document).on("click",".wcml_schedule_manually_block_hide",function(e){e.preventDefault();if($(this).closest("div").find(".wcml_schedule_input:checked").val()==1){$(this).closest("div").find(".wcml_schedule_dates").hide();$(this).closest("div").find(".wcml_schedule_manually_block_show").show();$(this).closest("div").find(".wcml_schedule_manually_block_hide").hide()}});$(document).on("click",".wcml_schedule_manually_block_show",function(e){e.preventDefault();if($(this).closest("div").find(".wcml_schedule_input:checked").val()==1){datepick();$(this).closest("div").find(".wcml_schedule_dates").show();$(this).closest("div").find(".wcml_schedule_manually_block_show").hide();$(this).closest("div").find(".wcml_schedule_manually_block_hide").show()}});$(document).on("keyup",".wcml_sale_price",function(){if(parseInt($(this).val())>parseInt($(this).closest("div").find(".wcml_regular_price").val())){if($(this).closest("p").find(".wcml_price_error").size()==0)$(this).after($(".wcml_price_error").clone().show())}else{$(this).closest("p").find(".wcml_price_error").remove()}});$(document).on("change",".wcml_sale_price",function(){if(parseInt($(this).val())>parseInt($(this).closest("div").find(".wcml_regular_price").val())){$(this).val($(this).closest("div").find(".wcml_regular_price").val());$(this).closest("p").find(".wcml_price_error").remove()}});function maybe_show_wcml_shedule_link(){$(".wcml_schedule_input").each(function(){if($(this).is(":checked")&&$(this).val()==1){$(this).parent().find(".block_actions").show()}})}function datepick(){var date_img="";if(typeof woocommerce_admin_meta_boxes!="undefined"){date_img=woocommerce_admin_meta_boxes.calendar_image}else{date_img=woocommerce_writepanel_params.calendar_image}$(".wcml_schedule_dates input").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,showButtonPanel:true,showOn:"button",buttonImage:date_img,buttonImageOnly:true,onSelect:function(selectedDate){var instance=$(this).data("datepicker"),date=$.datepicker.parseDate(instance.settings.dateFormat||$.datepicker._defaults.dateFormat,selectedDate,instance.settings);if($(this).is(".custom_sale_price_dates_from")){$(this).closest("div").find(".custom_sale_price_dates_to").datepicker("option","minDate",date)}else{$(this).closest("div").find(".custom_sale_price_dates_from").datepicker("option","maxDate",date)}}})}});
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit87c69e133ca17c099ad92fffa100f255::getLoader();
|
vendor/autoload_52.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInitdf66a40527ea1c5196e12b44508f7caa::getLoader();
|
vendor/composer/ClassLoader.php
CHANGED
@@ -377,7 +377,7 @@ class ClassLoader
|
|
377 |
$subPath = $class;
|
378 |
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
379 |
$subPath = substr($subPath, 0, $lastPos);
|
380 |
-
$search = $subPath.'\\';
|
381 |
if (isset($this->prefixDirsPsr4[$search])) {
|
382 |
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
383 |
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
377 |
$subPath = $class;
|
378 |
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
379 |
$subPath = substr($subPath, 0, $lastPos);
|
380 |
+
$search = $subPath . '\\';
|
381 |
if (isset($this->prefixDirsPsr4[$search])) {
|
382 |
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
383 |
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -354,6 +354,7 @@ return array(
|
|
354 |
'WCML_Klarna_Gateway' => $baseDir . '/compatibility/class-wcml-klarna-gateway.php',
|
355 |
'WCML_Languages_Upgrade_Notice' => $baseDir . '/inc/template-classes/class-wcml-languages-upgrade-notice.php',
|
356 |
'WCML_Languages_Upgrader' => $baseDir . '/inc/class-wcml-languages-upgrader.php',
|
|
|
357 |
'WCML_Locale' => $baseDir . '/inc/class-wcml-locale.php',
|
358 |
'WCML_MaxStore' => $baseDir . '/compatibility/class-wcml-maxstore.php',
|
359 |
'WCML_Media' => $baseDir . '/inc/class-wcml-media.php',
|
354 |
'WCML_Klarna_Gateway' => $baseDir . '/compatibility/class-wcml-klarna-gateway.php',
|
355 |
'WCML_Languages_Upgrade_Notice' => $baseDir . '/inc/template-classes/class-wcml-languages-upgrade-notice.php',
|
356 |
'WCML_Languages_Upgrader' => $baseDir . '/inc/class-wcml-languages-upgrader.php',
|
357 |
+
'WCML_LiteSpeed_Cache' => $baseDir . '/compatibility/class-wcml-litespeed-cache.php',
|
358 |
'WCML_Locale' => $baseDir . '/inc/class-wcml-locale.php',
|
359 |
'WCML_MaxStore' => $baseDir . '/compatibility/class-wcml-maxstore.php',
|
360 |
'WCML_Media' => $baseDir . '/inc/class-wcml-media.php',
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInitbdf1c79204b9b418eec52b67b5a7b62b
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
-
call_user_func(\Composer\Autoload\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit87c69e133ca17c099ad92fffa100f255
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit87c69e133ca17c099ad92fffa100f255', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit87c69e133ca17c099ad92fffa100f255', 'loadClassLoader'));
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit87c69e133ca17c099ad92fffa100f255::getInitializer($loader));
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
vendor/composer/autoload_real_52.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
-
class
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitdebe2f96cf929ce1551947d8d94f89e9 {
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
+
class ComposerAutoloaderInitdf66a40527ea1c5196e12b44508f7caa {
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInitdf66a40527ea1c5196e12b44508f7caa', 'loadClassLoader'), true /*, true */);
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInitdf66a40527ea1c5196e12b44508f7caa', 'loadClassLoader'));
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'C' =>
|
@@ -386,6 +386,7 @@ class ComposerStaticInitbdf1c79204b9b418eec52b67b5a7b62b
|
|
386 |
'WCML_Klarna_Gateway' => __DIR__ . '/../..' . '/compatibility/class-wcml-klarna-gateway.php',
|
387 |
'WCML_Languages_Upgrade_Notice' => __DIR__ . '/../..' . '/inc/template-classes/class-wcml-languages-upgrade-notice.php',
|
388 |
'WCML_Languages_Upgrader' => __DIR__ . '/../..' . '/inc/class-wcml-languages-upgrader.php',
|
|
|
389 |
'WCML_Locale' => __DIR__ . '/../..' . '/inc/class-wcml-locale.php',
|
390 |
'WCML_MaxStore' => __DIR__ . '/../..' . '/compatibility/class-wcml-maxstore.php',
|
391 |
'WCML_Media' => __DIR__ . '/../..' . '/inc/class-wcml-media.php',
|
@@ -517,10 +518,10 @@ class ComposerStaticInitbdf1c79204b9b418eec52b67b5a7b62b
|
|
517 |
public static function getInitializer(ClassLoader $loader)
|
518 |
{
|
519 |
return \Closure::bind(function () use ($loader) {
|
520 |
-
$loader->prefixLengthsPsr4 =
|
521 |
-
$loader->prefixDirsPsr4 =
|
522 |
-
$loader->prefixesPsr0 =
|
523 |
-
$loader->classMap =
|
524 |
|
525 |
}, null, ClassLoader::class);
|
526 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit87c69e133ca17c099ad92fffa100f255
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'C' =>
|
386 |
'WCML_Klarna_Gateway' => __DIR__ . '/../..' . '/compatibility/class-wcml-klarna-gateway.php',
|
387 |
'WCML_Languages_Upgrade_Notice' => __DIR__ . '/../..' . '/inc/template-classes/class-wcml-languages-upgrade-notice.php',
|
388 |
'WCML_Languages_Upgrader' => __DIR__ . '/../..' . '/inc/class-wcml-languages-upgrader.php',
|
389 |
+
'WCML_LiteSpeed_Cache' => __DIR__ . '/../..' . '/compatibility/class-wcml-litespeed-cache.php',
|
390 |
'WCML_Locale' => __DIR__ . '/../..' . '/inc/class-wcml-locale.php',
|
391 |
'WCML_MaxStore' => __DIR__ . '/../..' . '/compatibility/class-wcml-maxstore.php',
|
392 |
'WCML_Media' => __DIR__ . '/../..' . '/inc/class-wcml-media.php',
|
518 |
public static function getInitializer(ClassLoader $loader)
|
519 |
{
|
520 |
return \Closure::bind(function () use ($loader) {
|
521 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit87c69e133ca17c099ad92fffa100f255::$prefixLengthsPsr4;
|
522 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit87c69e133ca17c099ad92fffa100f255::$prefixDirsPsr4;
|
523 |
+
$loader->prefixesPsr0 = ComposerStaticInit87c69e133ca17c099ad92fffa100f255::$prefixesPsr0;
|
524 |
+
$loader->classMap = ComposerStaticInit87c69e133ca17c099ad92fffa100f255::$classMap;
|
525 |
|
526 |
}, null, ClassLoader::class);
|
527 |
}
|
wpml-woocommerce.php
CHANGED
@@ -8,16 +8,16 @@
|
|
8 |
Text Domain: woocommerce-multilingual
|
9 |
Requires at least: 3.9
|
10 |
Tested up to: 4.9.8
|
11 |
-
Version: 4.3.
|
12 |
WC requires at least: 2.1.0
|
13 |
-
WC tested up to: 3.
|
14 |
*/
|
15 |
|
16 |
if ( defined( 'WCML_VERSION' ) ) {
|
17 |
return;
|
18 |
}
|
19 |
|
20 |
-
define( 'WCML_VERSION', '4.3.
|
21 |
define( 'WCML_PLUGIN_PATH', dirname( __FILE__ ) );
|
22 |
define( 'WCML_PLUGIN_FOLDER', basename( WCML_PLUGIN_PATH ) );
|
23 |
define( 'WCML_LOCALE_PATH', WCML_PLUGIN_PATH . '/locale' );
|
8 |
Text Domain: woocommerce-multilingual
|
9 |
Requires at least: 3.9
|
10 |
Tested up to: 4.9.8
|
11 |
+
Version: 4.3.7
|
12 |
WC requires at least: 2.1.0
|
13 |
+
WC tested up to: 3.5
|
14 |
*/
|
15 |
|
16 |
if ( defined( 'WCML_VERSION' ) ) {
|
17 |
return;
|
18 |
}
|
19 |
|
20 |
+
define( 'WCML_VERSION', '4.3.7' );
|
21 |
define( 'WCML_PLUGIN_PATH', dirname( __FILE__ ) );
|
22 |
define( 'WCML_PLUGIN_FOLDER', basename( WCML_PLUGIN_PATH ) );
|
23 |
define( 'WCML_LOCALE_PATH', WCML_PLUGIN_PATH . '/locale' );
|