WooCommerce Multilingual – run WooCommerce with WPML - Version 4.6.2

Version Description

  • Fix performance issue while saving product
  • Fix warning when _wc_rating_cout value is corrupted
  • Fix loop on original products without thumbnail set
Download this release

Release Info

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

Code changes from version 4.6.1 to 4.6.2

changelog/4.6.2.md ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ # Fixes
2
+ * [wcml-2777] Fix performance issue while saving product
3
+ * [wcml-2776] Fix warning when _wc_rating_cout value is corrupted
4
+ * [wcml-2775] Fix loop on original products without thumbnail set
classes/media/class-wcml-product-gallery-filter-factory.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- class WCML_Product_Gallery_Filter_Factory implements IWPML_Frontend_Action_Loader, IWPML_Backend_Action_Loader {
4
 
5
  public function create() {
6
  global $sitepress;
1
  <?php
2
 
3
+ class WCML_Product_Gallery_Filter_Factory implements IWPML_Frontend_Action_Loader {
4
 
5
  public function create() {
6
  global $sitepress;
classes/media/class-wcml-product-gallery-filter.php CHANGED
@@ -6,9 +6,17 @@ class WCML_Product_Gallery_Filter implements IWPML_Action {
6
  * @var WPML_Translation_Element_Factory
7
  */
8
  private $translation_element_factory;
 
 
9
 
10
- public function __construct( WPML_Translation_Element_Factory $translation_element_factory ) {
11
  $this->translation_element_factory = $translation_element_factory;
 
 
 
 
 
 
12
  }
13
 
14
  public function add_hooks() {
@@ -16,42 +24,53 @@ class WCML_Product_Gallery_Filter implements IWPML_Action {
16
  }
17
 
18
  public function localize_image_ids( $value, $object_id, $meta_key ) {
 
 
19
  if ( '_product_image_gallery' === $meta_key &&
20
  in_array( get_post_type( $object_id ), array( 'product', 'product_variation' ) ) ) {
21
 
22
- remove_filter( 'get_post_metadata', array( $this, 'localize_image_ids' ), 10 );
23
-
24
- $meta_value = array();
25
-
26
- $post_element = $this->translation_element_factory->create( $object_id, 'post' );
27
- $source_element = $post_element->get_source_element();
28
- if ( null !== $source_element ) {
29
- $original_gallery_value = get_post_meta( $source_element->get_id(), '_product_image_gallery', true );
30
- if ( $original_gallery_value ) {
31
- $original_gallery = explode( ',', $original_gallery_value );
32
- $original_gallery = array_filter( $original_gallery );
33
-
34
- foreach ( $original_gallery as $attachment_id ) {
35
- $attachment_element = $this->translation_element_factory->create( $attachment_id, 'post' );
36
- $translated_attachment = $attachment_element->get_translation( $post_element->get_language_code() );
37
- if ( null !== $translated_attachment ) {
38
- $meta_value[] = $translated_attachment->get_id();
39
- } else {
40
- $meta_value[] = $attachment_id;
 
 
 
 
 
 
 
41
  }
42
  }
43
  }
44
- }
45
 
46
- if ( ! empty( $meta_value ) ) {
47
- $value = implode( ',', $meta_value );
48
- }
 
 
49
 
50
- add_filter( 'get_post_metadata', array( $this, 'localize_image_ids' ), 10, 3 );
 
51
 
52
  }
53
 
54
- return $value;
55
  }
56
 
57
  }
6
  * @var WPML_Translation_Element_Factory
7
  */
8
  private $translation_element_factory;
9
+ /** @var WPML_WP_Cache */
10
+ private $wpml_cache;
11
 
12
+ public function __construct( WPML_Translation_Element_Factory $translation_element_factory, $wpml_cache = null ) {
13
  $this->translation_element_factory = $translation_element_factory;
14
+
15
+ $cache_group = 'WCML_Product_Gallery_Filter';
16
+ $this->wpml_cache = $wpml_cache;
17
+ if ( null === $wpml_cache ) {
18
+ $this->wpml_cache = new WPML_WP_Cache( $cache_group );
19
+ }
20
  }
21
 
22
  public function add_hooks() {
24
  }
25
 
26
  public function localize_image_ids( $value, $object_id, $meta_key ) {
27
+
28
+ $image_ids = false;
29
  if ( '_product_image_gallery' === $meta_key &&
30
  in_array( get_post_type( $object_id ), array( 'product', 'product_variation' ) ) ) {
31
 
32
+ $cache_key = $object_id . '_image_gallery';
33
+ $found = false;
34
+ $image_ids = $this->wpml_cache->get( $cache_key, $found );
35
+
36
+ if ( ! $image_ids ) {
37
+
38
+ remove_filter( 'get_post_metadata', array( $this, 'localize_image_ids' ), 10 );
39
+
40
+ $meta_value = array();
41
+
42
+ $post_element = $this->translation_element_factory->create( $object_id, 'post' );
43
+ $source_element = $post_element->get_source_element();
44
+ if ( null !== $source_element ) {
45
+ $original_gallery_value = get_post_meta( $source_element->get_id(), '_product_image_gallery', true );
46
+ if ( $original_gallery_value ) {
47
+ $original_gallery = explode( ',', $original_gallery_value );
48
+ $original_gallery = array_filter( $original_gallery );
49
+
50
+ foreach ( $original_gallery as $attachment_id ) {
51
+ $attachment_element = $this->translation_element_factory->create( $attachment_id, 'post' );
52
+ $translated_attachment = $attachment_element->get_translation( $post_element->get_language_code() );
53
+ if ( null !== $translated_attachment ) {
54
+ $meta_value[] = $translated_attachment->get_id();
55
+ } else {
56
+ $meta_value[] = $attachment_id;
57
+ }
58
  }
59
  }
60
  }
 
61
 
62
+ if ( ! empty( $meta_value ) ) {
63
+ $image_ids = implode( ',', $meta_value );
64
+ }
65
+
66
+ add_filter( 'get_post_metadata', array( $this, 'localize_image_ids' ), 10, 3 );
67
 
68
+ $this->wpml_cache->set( $cache_key, $image_ids );
69
+ }
70
 
71
  }
72
 
73
+ return $image_ids ? $image_ids : $value;
74
  }
75
 
76
  }
classes/media/class-wcml-product-image-filter-factory.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- class WCML_Product_Image_Filter_Factory implements IWPML_Frontend_Action_Loader, IWPML_Backend_Action_Loader {
4
 
5
  public function create() {
6
  global $sitepress;
1
  <?php
2
 
3
+ class WCML_Product_Image_Filter_Factory implements IWPML_Frontend_Action_Loader {
4
 
5
  public function create() {
6
  global $sitepress;
classes/media/class-wcml-product-image-filter.php CHANGED
@@ -6,9 +6,17 @@ class WCML_Product_Image_Filter implements IWPML_Action {
6
  * @var WPML_Translation_Element_Factory
7
  */
8
  private $translation_element_factory;
 
 
9
 
10
- public function __construct( WPML_Translation_Element_Factory $translation_element_factory ) {
11
  $this->translation_element_factory = $translation_element_factory;
 
 
 
 
 
 
12
  }
13
 
14
  public function add_hooks() {
@@ -17,6 +25,7 @@ class WCML_Product_Image_Filter implements IWPML_Action {
17
 
18
  public function localize_image_id( $value, $object_id, $meta_key ) {
19
 
 
20
  if ( !$value && '_thumbnail_id' === $meta_key &&
21
  in_array( get_post_type( $object_id ), array( 'product', 'product_variation' ) ) &&
22
  (
@@ -28,22 +37,29 @@ class WCML_Product_Image_Filter implements IWPML_Action {
28
  )
29
  ) {
30
 
31
- remove_filter( 'get_post_metadata', array( $this, 'localize_image_id' ), 11, 3 );
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
- $meta_value = get_post_meta( $object_id, '_thumbnail_id', true );
34
- if ( empty( $meta_value ) ) {
35
- $post_element = $this->translation_element_factory->create( $object_id, 'post' );
36
- $source_element = $post_element->get_source_element();
37
- if ( null !== $source_element ) {
38
- $value = get_post_meta( $source_element->get_id(), '_thumbnail_id', true );
39
  }
 
40
 
 
41
  }
42
- add_filter( 'get_post_metadata', array( $this, 'localize_image_id' ), 11, 3 );
43
-
44
  }
45
 
46
- return $value;
47
  }
48
 
49
  }
6
  * @var WPML_Translation_Element_Factory
7
  */
8
  private $translation_element_factory;
9
+ /** @var WPML_WP_Cache */
10
+ private $wpml_cache;
11
 
12
+ public function __construct( WPML_Translation_Element_Factory $translation_element_factory, $wpml_cache = null ) {
13
  $this->translation_element_factory = $translation_element_factory;
14
+
15
+ $cache_group = 'WCML_Product_Image_Filter';
16
+ $this->wpml_cache = $wpml_cache;
17
+ if ( null === $wpml_cache ) {
18
+ $this->wpml_cache = new WPML_WP_Cache( $cache_group );
19
+ }
20
  }
21
 
22
  public function add_hooks() {
25
 
26
  public function localize_image_id( $value, $object_id, $meta_key ) {
27
 
28
+ $image_id = false;
29
  if ( !$value && '_thumbnail_id' === $meta_key &&
30
  in_array( get_post_type( $object_id ), array( 'product', 'product_variation' ) ) &&
31
  (
37
  )
38
  ) {
39
 
40
+ $cache_key = $object_id . '_thumbnail_id';
41
+ $found = false;
42
+ $image_id = $this->wpml_cache->get( $cache_key, $found );
43
+
44
+ if ( ! $image_id ) {
45
+ remove_filter( 'get_post_metadata', array( $this, 'localize_image_id' ), 11, 3 );
46
+
47
+ $meta_value = get_post_meta( $object_id, '_thumbnail_id', true );
48
+ if ( empty( $meta_value ) ) {
49
+ $post_element = $this->translation_element_factory->create( $object_id, 'post' );
50
+ $source_element = $post_element->get_source_element();
51
+ if ( null !== $source_element ) {
52
+ $image_id = get_post_meta( $source_element->get_id(), '_thumbnail_id', true );
53
+ }
54
 
 
 
 
 
 
 
55
  }
56
+ add_filter( 'get_post_metadata', array( $this, 'localize_image_id' ), 11, 3 );
57
 
58
+ $this->wpml_cache->set( $cache_key, $image_id );
59
  }
 
 
60
  }
61
 
62
+ return $image_id ? $image_id : $value;
63
  }
64
 
65
  }
inc/class-wcml-comments.php CHANGED
@@ -71,7 +71,7 @@ class WCML_Comments {
71
  $ratings = get_post_meta( $translation, '_wc_rating_count', true );
72
  $review_count = get_post_meta( $translation, self::WC_REVIEW_COUNT_KEY, true );
73
 
74
- if ( $ratings ) {
75
  foreach ( $ratings as $rating => $count ) {
76
  $average_ratings_sum += $rating * $count;
77
  $average_ratings_count += $count;
71
  $ratings = get_post_meta( $translation, '_wc_rating_count', true );
72
  $review_count = get_post_meta( $translation, self::WC_REVIEW_COUNT_KEY, true );
73
 
74
+ if ( is_array( $ratings ) ) {
75
  foreach ( $ratings as $rating => $count ) {
76
  $average_ratings_sum += $rating * $count;
77
  $average_ratings_count += $count;
inc/class-wcml-products.php CHANGED
@@ -681,11 +681,13 @@ class WCML_Products{
681
 
682
  $is_mc_enabled = (int) $this->woocommerce_wpml->settings['enable_multi_currency'] === (int) $this->sitepress->get_wp_api()->constant( 'WCML_MULTI_CURRENCIES_INDEPENDENT' );
683
 
 
684
  if ( $is_mc_enabled ) {
685
  $price_keys = wcml_price_custom_fields( $product_id );
686
  }
687
 
688
- if( is_product() && !$this->woocommerce_wpml->products->is_original_product( $product_id ) ){
 
689
  $data['_product_image_gallery'] = null;
690
  }
691
 
@@ -696,14 +698,16 @@ class WCML_Products{
696
 
697
  if ( $is_mc_enabled && in_array( $meta_key, $price_keys, true ) ) {
698
  $filtered_value = $this->woocommerce_wpml->multi_currency->prices->product_price_filter( $meta_value, $product_id, $meta_key, true );
699
- } elseif ( in_array( $meta_key, array( '_wc_review_count', '_wc_average_rating' ), true ) ) {
700
- $filtered_value = $this->woocommerce_wpml->comments->filter_average_rating( $meta_value, $product_id, $meta_key, true );
701
- } elseif ( '_product_image_gallery' === $meta_key ) {
702
- $factory = new WCML_Product_Gallery_Filter_Factory();
703
- $filtered_value = $factory->create()->localize_image_ids( $meta_value, $product_id, $meta_key );
704
- } elseif ( '_thumbnail_id' === $meta_key ) {
705
- $factory = new WCML_Product_Image_Filter_Factory();
706
- $filtered_value = $factory->create()->localize_image_id( $meta_value, $product_id, $meta_key );
 
 
707
  }
708
 
709
  if ( $filtered_value ) {
681
 
682
  $is_mc_enabled = (int) $this->woocommerce_wpml->settings['enable_multi_currency'] === (int) $this->sitepress->get_wp_api()->constant( 'WCML_MULTI_CURRENCIES_INDEPENDENT' );
683
 
684
+ $price_keys = array();
685
  if ( $is_mc_enabled ) {
686
  $price_keys = wcml_price_custom_fields( $product_id );
687
  }
688
 
689
+ $is_original_product = $this->woocommerce_wpml->products->is_original_product( $product_id );
690
+ if( is_product() && !$is_original_product ){
691
  $data['_product_image_gallery'] = null;
692
  }
693
 
698
 
699
  if ( $is_mc_enabled && in_array( $meta_key, $price_keys, true ) ) {
700
  $filtered_value = $this->woocommerce_wpml->multi_currency->prices->product_price_filter( $meta_value, $product_id, $meta_key, true );
701
+ } elseif ( ! is_admin() ) {
702
+ if ( in_array( $meta_key, array( '_wc_review_count', '_wc_average_rating' ), true ) ) {
703
+ $filtered_value = $this->woocommerce_wpml->comments->filter_average_rating( $meta_value, $product_id, $meta_key, true );
704
+ } elseif ( '_product_image_gallery' === $meta_key && ! $is_original_product ) {
705
+ $factory = new WCML_Product_Gallery_Filter_Factory();
706
+ $filtered_value = $factory->create()->localize_image_ids( $meta_value, $product_id, $meta_key );
707
+ } elseif ( '_thumbnail_id' === $meta_key && ! $is_original_product ) {
708
+ $factory = new WCML_Product_Image_Filter_Factory();
709
+ $filtered_value = $factory->create()->localize_image_id( $meta_value, $product_id, $meta_key );
710
+ }
711
  }
712
 
713
  if ( $filtered_value ) {
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: CMS, woocommerce, commerce, ecommerce, e-commerce, products, WPML, multili
5
  License: GPLv2
6
  Requires at least: 4.7
7
  Tested up to: 5.1.1
8
- Stable tag: 4.6.1
9
 
10
  Allows running fully multilingual e-commerce sites using WooCommerce and WPML.
11
 
@@ -140,6 +140,11 @@ WooCommerce Multilingual is compatible with all major WooCommerce extensions. We
140
 
141
  == Changelog ==
142
 
 
 
 
 
 
143
  = 4.6.1 =
144
  * Fix product gallery images on default product with WC 3.6.0
145
  * Fix wrong Table Rate Shipping wrong rate prices calculation in secondary currency with WC 3.6.0
5
  License: GPLv2
6
  Requires at least: 4.7
7
  Tested up to: 5.1.1
8
+ Stable tag: 4.6.2
9
 
10
  Allows running fully multilingual e-commerce sites using WooCommerce and WPML.
11
 
140
 
141
  == Changelog ==
142
 
143
+ = 4.6.2 =
144
+ * Fix performance issue while saving product
145
+ * Fix warning when _wc_rating_cout value is corrupted
146
+ * Fix loop on original products without thumbnail set
147
+
148
  = 4.6.1 =
149
  * Fix product gallery images on default product with WC 3.6.0
150
  * Fix wrong Table Rate Shipping wrong rate prices calculation in secondary currency with WC 3.6.0
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitf4b81894d6c1c4bfe5ca8c9db4c92802::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitaebef6501751b2ca9149e46af77ba3f6::getLoader();
vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInit0aac5ebccdea115bf8638e1f64dced7e::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInitad18820a95101f9a22ae65b5f71a3b54::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitf4b81894d6c1c4bfe5ca8c9db4c92802
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInitf4b81894d6c1c4bfe5ca8c9db4c92802
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitf4b81894d6c1c4bfe5ca8c9db4c92802', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitf4b81894d6c1c4bfe5ca8c9db4c92802', '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\ComposerStaticInitf4b81894d6c1c4bfe5ca8c9db4c92802::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
@@ -48,19 +48,19 @@ class ComposerAutoloaderInitf4b81894d6c1c4bfe5ca8c9db4c92802
48
  $loader->register(true);
49
 
50
  if ($useStaticLoader) {
51
- $includeFiles = Composer\Autoload\ComposerStaticInitf4b81894d6c1c4bfe5ca8c9db4c92802::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
- composerRequiref4b81894d6c1c4bfe5ca8c9db4c92802($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
- function composerRequiref4b81894d6c1c4bfe5ca8c9db4c92802($fileIdentifier, $file)
64
  {
65
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInitaebef6501751b2ca9149e46af77ba3f6
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitaebef6501751b2ca9149e46af77ba3f6', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitaebef6501751b2ca9149e46af77ba3f6', '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\ComposerStaticInitaebef6501751b2ca9149e46af77ba3f6::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
48
  $loader->register(true);
49
 
50
  if ($useStaticLoader) {
51
+ $includeFiles = Composer\Autoload\ComposerStaticInitaebef6501751b2ca9149e46af77ba3f6::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
+ composerRequireaebef6501751b2ca9149e46af77ba3f6($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
+ function composerRequireaebef6501751b2ca9149e46af77ba3f6($fileIdentifier, $file)
64
  {
65
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
  require $file;
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 ComposerAutoloaderInit0aac5ebccdea115bf8638e1f64dced7e {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit0aac5ebccdea115bf8638e1f64dced7e {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit0aac5ebccdea115bf8638e1f64dced7e', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit0aac5ebccdea115bf8638e1f64dced7e', '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 ComposerAutoloaderInitad18820a95101f9a22ae65b5f71a3b54 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitad18820a95101f9a22ae65b5f71a3b54', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitad18820a95101f9a22ae65b5f71a3b54', '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 ComposerStaticInitf4b81894d6c1c4bfe5ca8c9db4c92802
8
  {
9
  public static $files = array (
10
  'b45b351e6b6f7487d819961fef2fda77' => __DIR__ . '/..' . '/jakeasmith/http_build_url/src/http_build_url.php',
@@ -242,10 +242,10 @@ class ComposerStaticInitf4b81894d6c1c4bfe5ca8c9db4c92802
242
  public static function getInitializer(ClassLoader $loader)
243
  {
244
  return \Closure::bind(function () use ($loader) {
245
- $loader->prefixLengthsPsr4 = ComposerStaticInitf4b81894d6c1c4bfe5ca8c9db4c92802::$prefixLengthsPsr4;
246
- $loader->prefixDirsPsr4 = ComposerStaticInitf4b81894d6c1c4bfe5ca8c9db4c92802::$prefixDirsPsr4;
247
- $loader->prefixesPsr0 = ComposerStaticInitf4b81894d6c1c4bfe5ca8c9db4c92802::$prefixesPsr0;
248
- $loader->classMap = ComposerStaticInitf4b81894d6c1c4bfe5ca8c9db4c92802::$classMap;
249
 
250
  }, null, ClassLoader::class);
251
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInitaebef6501751b2ca9149e46af77ba3f6
8
  {
9
  public static $files = array (
10
  'b45b351e6b6f7487d819961fef2fda77' => __DIR__ . '/..' . '/jakeasmith/http_build_url/src/http_build_url.php',
242
  public static function getInitializer(ClassLoader $loader)
243
  {
244
  return \Closure::bind(function () use ($loader) {
245
+ $loader->prefixLengthsPsr4 = ComposerStaticInitaebef6501751b2ca9149e46af77ba3f6::$prefixLengthsPsr4;
246
+ $loader->prefixDirsPsr4 = ComposerStaticInitaebef6501751b2ca9149e46af77ba3f6::$prefixDirsPsr4;
247
+ $loader->prefixesPsr0 = ComposerStaticInitaebef6501751b2ca9149e46af77ba3f6::$prefixesPsr0;
248
+ $loader->classMap = ComposerStaticInitaebef6501751b2ca9149e46af77ba3f6::$classMap;
249
 
250
  }, null, ClassLoader::class);
251
  }
wpml-woocommerce.php CHANGED
@@ -8,16 +8,16 @@
8
  Text Domain: woocommerce-multilingual
9
  Requires at least: 4.7
10
  Tested up to: 5.1.1
11
- Version: 4.6.1
12
  WC requires at least: 3.3.0
13
- WC tested up to: 3.6.1
14
  */
15
 
16
  if ( defined( 'WCML_VERSION' ) ) {
17
  return;
18
  }
19
 
20
- define( 'WCML_VERSION', '4.6.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' );
@@ -98,4 +98,3 @@ function load_wcml_without_wpml() {
98
  $woocommerce_wpml = new woocommerce_wpml();
99
  }
100
  }
101
-
8
  Text Domain: woocommerce-multilingual
9
  Requires at least: 4.7
10
  Tested up to: 5.1.1
11
+ Version: 4.6.2
12
  WC requires at least: 3.3.0
13
+ WC tested up to: 3.6.2
14
  */
15
 
16
  if ( defined( 'WCML_VERSION' ) ) {
17
  return;
18
  }
19
 
20
+ define( 'WCML_VERSION', '4.6.2' );
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' );
98
  $woocommerce_wpml = new woocommerce_wpml();
99
  }
100
  }