WooCommerce Multilingual – run WooCommerce with WPML - Version 4.2.9

Version Description

  • Fix wrong qty in cart page for same product and different language
  • Fix changes for WC 3.3 in order page for second language
  • Downloadable file paths always converted when "Different domain per language" chosen
  • Fix small error in automatic currency
  • Fix error in WC Reports in displaying sales by categories correctly for all languages
Download this release

Release Info

Developer sergey.r
Plugin Icon 128x128 WooCommerce Multilingual – run WooCommerce with WPML
Version 4.2.9
Comparing to
See all releases

Code changes from version 4.2.8.1 to 4.2.9

changelog/4.2.9.md ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ # Fixes
2
+ * [wcml-2294] Fix wrong qty in cart page for same product and different language
3
+ * [wcml-2293] Fix changes for WC 3.3 in order page for second language
4
+ * [wcml-2288] Downloadable file paths always converted when "Different domain per language" chosen
5
+ * [wcml-2287] Fix small error in automatic currency
6
+ * [wcml-2284] Fix error in WC Reports in displaying sales by categories correctly for all languages
compatibility/class-wcml-dynamic-pricing.php CHANGED
@@ -128,7 +128,7 @@ class WCML_Dynamic_Pricing {
128
  function translate_variations_in_rules( $rules ) {
129
  if ( is_array( $rules ) ) {
130
  foreach ( $rules as $r_key => $rule ) {
131
- if ( array_key_exists( 'variation_rules', $rule ) ) {
132
  foreach ( $rule['variation_rules']['args']['variations'] as $i => $variation_id ) {
133
  $rules[ $r_key ]['variation_rules']['args']['variations'][ $i ] = apply_filters( 'translate_object_id', $variation_id, 'product_variation', true );
134
  }
128
  function translate_variations_in_rules( $rules ) {
129
  if ( is_array( $rules ) ) {
130
  foreach ( $rules as $r_key => $rule ) {
131
+ if ( isset( $rule['variation_rules']['args']['variations'] ) ) {
132
  foreach ( $rule['variation_rules']['args']['variations'] as $i => $variation_id ) {
133
  $rules[ $r_key ]['variation_rules']['args']['variations'][ $i ] = apply_filters( 'translate_object_id', $variation_id, 'product_variation', true );
134
  }
inc/class-wcml-ajax-setup.php CHANGED
@@ -37,7 +37,7 @@ class WCML_Ajax_Setup{
37
  add_filter( 'wc_cart_fragments_params', array( $this, 'add_language_parameter_to_ajax_url' ) );
38
  add_filter( 'wc_add_to_cart_params', array( $this, 'add_language_parameter_to_ajax_url' ) );
39
  } else {
40
- add_filter( 'woocommerce_get_script_data', array( $this, 'filter_woocommerce_ajax_params' ) );
41
  }
42
 
43
  add_action( 'woocommerce_checkout_order_review', array( $this, 'filter_woocommerce_order_review' ), 9 );
@@ -56,14 +56,14 @@ class WCML_Ajax_Setup{
56
  do_action( 'wpml_add_language_form_field' );
57
  }
58
 
59
- function add_language_parameter_to_ajax_url($woocommerce_params){
60
 
61
- if($this->sitepress->get_current_language() !== $this->sitepress->get_default_language()){
62
- $woocommerce_params['ajax_url'] = add_query_arg('lang', ICL_LANGUAGE_CODE, $woocommerce_params['ajax_url']);
63
- }
64
-
65
- return $woocommerce_params;
66
- }
67
 
68
  function filter_woocommerce_ajax_params($woocommerce_params){
69
  global $post;
@@ -78,9 +78,9 @@ class WCML_Ajax_Setup{
78
  }
79
  }
80
  }
81
-
82
  if(!isset($post->ID)){
83
- return $value;
84
  }
85
 
86
  $ch_pages = wp_cache_get('ch_pages', 'wcml_ch_pages');
@@ -113,7 +113,7 @@ class WCML_Ajax_Setup{
113
  $value['is_pay_page'] = 1;
114
  }
115
 
116
- return $value;
117
  }
118
 
119
  public function wcml_localize_woocommerce_on_ajax() {
37
  add_filter( 'wc_cart_fragments_params', array( $this, 'add_language_parameter_to_ajax_url' ) );
38
  add_filter( 'wc_add_to_cart_params', array( $this, 'add_language_parameter_to_ajax_url' ) );
39
  } else {
40
+ add_filter( 'woocommerce_get_script_data', array( $this, 'add_language_parameter_to_ajax_url' ) );
41
  }
42
 
43
  add_action( 'woocommerce_checkout_order_review', array( $this, 'filter_woocommerce_order_review' ), 9 );
56
  do_action( 'wpml_add_language_form_field' );
57
  }
58
 
59
+ function add_language_parameter_to_ajax_url( $woocommerce_params ) {
60
 
61
+ if ( isset( $woocommerce_params['ajax_url'] ) && $this->sitepress->get_current_language() !== $this->sitepress->get_default_language() ) {
62
+ $woocommerce_params['ajax_url'] = add_query_arg( 'lang', $this->sitepress->get_wp_api()->constant( 'ICL_LANGUAGE_CODE' ), $woocommerce_params['ajax_url'] );
63
+ }
64
+
65
+ return $woocommerce_params;
66
+ }
67
 
68
  function filter_woocommerce_ajax_params($woocommerce_params){
69
  global $post;
78
  }
79
  }
80
  }
81
+
82
  if(!isset($post->ID)){
83
+ return $value;
84
  }
85
 
86
  $ch_pages = wp_cache_get('ch_pages', 'wcml_ch_pages');
113
  $value['is_pay_page'] = 1;
114
  }
115
 
116
+ return $value;
117
  }
118
 
119
  public function wcml_localize_woocommerce_on_ajax() {
inc/class-wcml-cart.php CHANGED
@@ -436,6 +436,7 @@ class WCML_Cart {
436
  unset( $cart_contents['line_subtotal_tax'] );
437
  unset( $cart_contents['line_tax_data'] );
438
  unset( $cart_contents['data'] );
 
439
 
440
  return apply_filters( 'wcml_filter_cart_item_data', $cart_contents );
441
  }
436
  unset( $cart_contents['line_subtotal_tax'] );
437
  unset( $cart_contents['line_tax_data'] );
438
  unset( $cart_contents['data'] );
439
+ unset( $cart_contents['key'] );
440
 
441
  return apply_filters( 'wcml_filter_cart_item_data', $cart_contents );
442
  }
inc/class-wcml-products.php CHANGED
@@ -639,7 +639,11 @@ class WCML_Products{
639
  $is_per_domain = $this->sitepress->get_wp_api()->constant( 'WPML_LANGUAGE_NEGOTIATION_TYPE_DOMAIN' ) === (int) $this->sitepress->get_setting( 'language_negotiation_type' );
640
 
641
  if ( $is_per_domain ) {
642
- $file_path = $this->sitepress->convert_url( $file_path );
 
 
 
 
643
  }
644
 
645
  return $file_path;
639
  $is_per_domain = $this->sitepress->get_wp_api()->constant( 'WPML_LANGUAGE_NEGOTIATION_TYPE_DOMAIN' ) === (int) $this->sitepress->get_setting( 'language_negotiation_type' );
640
 
641
  if ( $is_per_domain ) {
642
+ $wpml_url_helper = new WPML_URL_Converter_Url_Helper();
643
+
644
+ if( strpos( trim( $file_path ), $wpml_url_helper->get_abs_home() ) === 0 ){
645
+ $file_path = $this->sitepress->convert_url( $file_path );
646
+ }
647
  }
648
 
649
  return $file_path;
inc/class-wcml-reports.php CHANGED
@@ -24,7 +24,12 @@ class WCML_Reports{
24
  if ( $this->tab == 'orders' && $this->report == 'sales_by_product' ) {
25
  add_filter( 'woocommerce_reports_get_order_report_data', array( $this, 'combine_report_by_languages' ) );
26
  }
27
-
 
 
 
 
 
28
  }
29
 
30
  add_filter( 'woocommerce_report_most_stocked_query_from', array( $this, 'filter_reports_stock_query' ) );
@@ -263,5 +268,26 @@ class WCML_Reports{
263
 
264
  return $query_from;
265
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
266
 
267
  }
24
  if ( $this->tab == 'orders' && $this->report == 'sales_by_product' ) {
25
  add_filter( 'woocommerce_reports_get_order_report_data', array( $this, 'combine_report_by_languages' ) );
26
  }
27
+ if ( $this->tab == 'orders' && $this->report == 'sales_by_category' ) {
28
+ add_filter( 'woocommerce_report_sales_by_category_get_products_in_category', array(
29
+ $this,
30
+ 'use_categories_in_all_languages'
31
+ ), 10, 2 );
32
+ }
33
  }
34
 
35
  add_filter( 'woocommerce_report_most_stocked_query_from', array( $this, 'filter_reports_stock_query' ) );
268
 
269
  return $query_from;
270
  }
271
+
272
+ public function use_categories_in_all_languages( $product_ids, $category_id ) {
273
+ global $woocommerce_wpml, $sitepress;
274
+
275
+ $category_term = $woocommerce_wpml->terms->wcml_get_term_by_id( $category_id, 'product_cat' );
276
+
277
+ if ( ! is_wp_error( $category_term ) ) {
278
+ $trid = $sitepress->get_element_trid( $category_term->term_taxonomy_id, 'tax_product_cat' );
279
+ $translations = $sitepress->get_element_translations( $trid, 'tax_product_cat', true );
280
+
281
+ foreach ( $translations as $translation ) {
282
+ if ( $translation->term_id != $category_id ) {
283
+ $term_ids = get_term_children( $translation->term_id, 'product_cat' );
284
+ $term_ids[] = $translation->term_id;
285
+ $product_ids = array_merge( array_unique( $product_ids ), get_objects_in_term( $term_ids, 'product_cat' ) );
286
+ }
287
+ }
288
+ }
289
+
290
+ return $product_ids;
291
+ }
292
 
293
  }
inc/class-wcml-terms.php CHANGED
@@ -58,8 +58,6 @@ class WCML_Terms{
58
 
59
  add_action( 'delete_term', array( $this, 'wcml_delete_term' ), 10, 4 );
60
  add_filter( 'get_the_terms', array( $this, 'shipping_terms' ), 10, 3 );
61
- //filter coupons terms in admin
62
- add_filter( 'get_terms', array( $this, 'filter_coupons_terms' ), 10, 3 );
63
  add_filter( 'get_terms', array( $this, 'filter_shipping_classes_terms' ), 10, 3 );
64
 
65
  add_filter( 'woocommerce_get_product_terms', array( $this, 'get_product_terms_filter' ), 10, 4 );
@@ -707,21 +705,6 @@ class WCML_Terms{
707
  return $terms;
708
  }
709
 
710
- function filter_coupons_terms($terms, $taxonomies, $args){
711
- global $pagenow;
712
-
713
- if(is_admin() && (($pagenow == 'post-new.php' && isset($_GET['post_type']) && $_GET['post_type'] == 'shop_coupon') || ($pagenow == 'post.php' && isset($_GET['post']) && get_post_type($_GET['post']) == 'shop_coupon')) && in_array('product_cat',$taxonomies)){
714
- remove_filter('get_terms',array($this,'filter_coupons_terms'));
715
- $current_language = $this->sitepress->get_current_language();
716
- $this->sitepress->switch_lang($this->sitepress->get_default_language());
717
- $terms = get_terms( 'product_cat', 'orderby=name&hide_empty=0');
718
- add_filter('get_terms',array($this,'filter_coupons_terms'),10,3);
719
- $this->sitepress->switch_lang($current_language);
720
- }
721
-
722
- return $terms;
723
- }
724
-
725
  function filter_shipping_classes_terms( $terms, $taxonomies, $args ){
726
 
727
  $on_wc_settings_page = isset( $_GET[ 'page' ] ) && $_GET[ 'page' ] === 'wc-settings';
58
 
59
  add_action( 'delete_term', array( $this, 'wcml_delete_term' ), 10, 4 );
60
  add_filter( 'get_the_terms', array( $this, 'shipping_terms' ), 10, 3 );
 
 
61
  add_filter( 'get_terms', array( $this, 'filter_shipping_classes_terms' ), 10, 3 );
62
 
63
  add_filter( 'woocommerce_get_product_terms', array( $this, 'get_product_terms_filter' ), 10, 4 );
705
  return $terms;
706
  }
707
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
708
  function filter_shipping_classes_terms( $terms, $taxonomies, $args ){
709
 
710
  $on_wc_settings_page = isset( $_GET[ 'page' ] ) && $_GET[ 'page' ] === 'wc-settings';
inc/currencies/class-wcml-multi-currency-reports.php CHANGED
@@ -112,10 +112,7 @@ class WCML_Multi_Currency_Reports {
112
  }
113
 
114
  add_filter( 'woocommerce_currency_symbol', array( $this, '_set_reports_currency_symbol' ) );
115
- add_filter( 'woocommerce_report_sales_by_category_get_products_in_category', array(
116
- $this,
117
- '_use_categories_in_all_languages'
118
- ), 10, 2 );
119
 
120
  }
121
  }
@@ -140,26 +137,6 @@ class WCML_Multi_Currency_Reports {
140
  return $currency;
141
  }
142
 
143
- public function _use_categories_in_all_languages( $product_ids, $category_id ) {
144
-
145
- $category_term = $this->woocommerce_wpml->terms->wcml_get_term_by_id( $category_id, 'product_cat' );
146
-
147
- if ( ! is_wp_error( $category_term ) ) {
148
- $trid = $this->sitepress->get_element_trid( $category_term->term_taxonomy_id, 'tax_product_cat' );
149
- $translations = $this->sitepress->get_element_translations( $trid, 'tax_product_cat', true );
150
-
151
- foreach ( $translations as $translation ) {
152
- if ( $translation->term_id != $category_id ) {
153
- $term_ids = get_term_children( $translation->term_id, 'product_cat' );
154
- $term_ids[] = $translation->term_id;
155
- $product_ids = array_merge( array_unique( $product_ids ), get_objects_in_term( $term_ids, 'product_cat' ) );
156
- }
157
- }
158
- }
159
-
160
- return $product_ids;
161
- }
162
-
163
  public function set_reports_currency() {
164
 
165
  $nonce = filter_input( INPUT_POST, 'wcml_nonce', FILTER_SANITIZE_FULL_SPECIAL_CHARS );
112
  }
113
 
114
  add_filter( 'woocommerce_currency_symbol', array( $this, '_set_reports_currency_symbol' ) );
115
+
 
 
 
116
 
117
  }
118
  }
137
  return $currency;
138
  }
139
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  public function set_reports_currency() {
141
 
142
  $nonce = filter_input( INPUT_POST, 'wcml_nonce', FILTER_SANITIZE_FULL_SPECIAL_CHARS );
inc/template-classes/multi-currency/class-wcml-custom-currency-options.php CHANGED
@@ -30,7 +30,7 @@ class WCML_Custom_Currency_Options extends WPML_Templates_Factory {
30
  if( $exchange_rates_automatic ){
31
  $service_id = $exchange_rate_services->get_setting('service');
32
  $services = $exchange_rate_services->get_services();
33
- $exchange_rates_service = $services[$service_id]->get_name();
34
  } else {
35
  $exchange_rates_service = '';
36
  }
30
  if( $exchange_rates_automatic ){
31
  $service_id = $exchange_rate_services->get_setting('service');
32
  $services = $exchange_rate_services->get_services();
33
+ $exchange_rates_service = isset( $services[ $service_id ] ) ? $services[ $service_id ]->get_name() : '';
34
  } else {
35
  $exchange_rates_service = '';
36
  }
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.1
8
- Stable tag: 4.2.8.1
9
 
10
  Allows running fully multilingual e-commerce sites using WooCommerce and WPML.
11
 
@@ -142,6 +142,13 @@ WooCommerce Multilingual is compatible with all major WooCommerce extensions. We
142
 
143
  == Changelog ==
144
 
 
 
 
 
 
 
 
145
  = 4.2.8.1 =
146
  * Fix error with WPML < 3.9
147
 
5
  License: GPLv2
6
  Requires at least: 3.9
7
  Tested up to: 4.9.1
8
+ Stable tag: 4.2.9
9
 
10
  Allows running fully multilingual e-commerce sites using WooCommerce and WPML.
11
 
142
 
143
  == Changelog ==
144
 
145
+ = 4.2.9 =
146
+ * Fix wrong qty in cart page for same product and different language
147
+ * Fix changes for WC 3.3 in order page for second language
148
+ * Downloadable file paths always converted when "Different domain per language" chosen
149
+ * Fix small error in automatic currency
150
+ * Fix error in WC Reports in displaying sales by categories correctly for all languages
151
+
152
  = 4.2.8.1 =
153
  * Fix error with WPML < 3.9
154
 
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit94846da5dca148bbe59dc91f3874e6c1::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit04e97305d0c987e2e8eafee869450c7e::getLoader();
vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInit95429877b052971924172de4a0f1fb41::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInitb88a9af106aecc7c862145d37cadd07b::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit94846da5dca148bbe59dc91f3874e6c1
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit94846da5dca148bbe59dc91f3874e6c1
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit94846da5dca148bbe59dc91f3874e6c1', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit94846da5dca148bbe59dc91f3874e6c1', '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\ComposerStaticInit94846da5dca148bbe59dc91f3874e6c1::getInitializer($loader));
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 ComposerAutoloaderInit04e97305d0c987e2e8eafee869450c7e
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit04e97305d0c987e2e8eafee869450c7e', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit04e97305d0c987e2e8eafee869450c7e', '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\ComposerStaticInit04e97305d0c987e2e8eafee869450c7e::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 ComposerAutoloaderInit95429877b052971924172de4a0f1fb41 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit95429877b052971924172de4a0f1fb41 {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit95429877b052971924172de4a0f1fb41', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit95429877b052971924172de4a0f1fb41', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
+ class ComposerAutoloaderInitb88a9af106aecc7c862145d37cadd07b {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitb88a9af106aecc7c862145d37cadd07b', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitb88a9af106aecc7c862145d37cadd07b', '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 ComposerStaticInit94846da5dca148bbe59dc91f3874e6c1
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'C' =>
@@ -483,10 +483,10 @@ class ComposerStaticInit94846da5dca148bbe59dc91f3874e6c1
483
  public static function getInitializer(ClassLoader $loader)
484
  {
485
  return \Closure::bind(function () use ($loader) {
486
- $loader->prefixLengthsPsr4 = ComposerStaticInit94846da5dca148bbe59dc91f3874e6c1::$prefixLengthsPsr4;
487
- $loader->prefixDirsPsr4 = ComposerStaticInit94846da5dca148bbe59dc91f3874e6c1::$prefixDirsPsr4;
488
- $loader->prefixesPsr0 = ComposerStaticInit94846da5dca148bbe59dc91f3874e6c1::$prefixesPsr0;
489
- $loader->classMap = ComposerStaticInit94846da5dca148bbe59dc91f3874e6c1::$classMap;
490
 
491
  }, null, ClassLoader::class);
492
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit04e97305d0c987e2e8eafee869450c7e
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'C' =>
483
  public static function getInitializer(ClassLoader $loader)
484
  {
485
  return \Closure::bind(function () use ($loader) {
486
+ $loader->prefixLengthsPsr4 = ComposerStaticInit04e97305d0c987e2e8eafee869450c7e::$prefixLengthsPsr4;
487
+ $loader->prefixDirsPsr4 = ComposerStaticInit04e97305d0c987e2e8eafee869450c7e::$prefixDirsPsr4;
488
+ $loader->prefixesPsr0 = ComposerStaticInit04e97305d0c987e2e8eafee869450c7e::$prefixesPsr0;
489
+ $loader->classMap = ComposerStaticInit04e97305d0c987e2e8eafee869450c7e::$classMap;
490
 
491
  }, null, ClassLoader::class);
492
  }
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
11
- Version: 4.2.8.1
12
  WC requires at least: 2.1.0
13
- WC tested up to: 3.2.5
14
  */
15
 
16
  if ( defined( 'WCML_VERSION' ) ) {
17
  return;
18
  }
19
 
20
- define( 'WCML_VERSION', '4.2.8.1' );
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
11
+ Version: 4.2.9
12
  WC requires at least: 2.1.0
13
+ WC tested up to: 3.3.0
14
  */
15
 
16
  if ( defined( 'WCML_VERSION' ) ) {
17
  return;
18
  }
19
 
20
+ define( 'WCML_VERSION', '4.2.9' );
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' );