WPML
Статус
Решено
Заявлено для
WPML Multilingual & Multicurrency for WooCommerce 5.5.0
Решено в
WPML Multilingual & Multicurrency for WooCommerce 5.5.3

Обзор проблемы

При использовании опции мультивалютности в WPML Multilingual & Multicurrency for WooCommerce Вы можете столкнуться со следующей проблемой:

Если включена опция «Показывать только товары с индивидуальными ценами в дополнительных валютах», для вариативных товаров не отображается переключатель валют, даже если для всех вариаций заданы индивидуальные цены в дополнительной валюте.

Обходное решение

Перед тем как продолжить, пожалуйста, убедитесь, что у Вас есть полная резервная копия сайта.


  • Откройте файл …/wp-content/plugins/woocommerce-multilingual/inc/currencies/currency-switcher/class-wcml-currency-switcher.php.

  • Найдите строку 353.

  • Замените:
    			if ( $product && $product->is_type( 'grouped' ) ) {
    				foreach ( $product->get_children() as $child_id ) {
    					if ( ! $hasOriginalCustomPrices( $child_id ) ) {
    						return false;
    					}
    				}
    			} else {
    				if ( ! $hasOriginalCustomPrices( $currentProductId ) ) {
    					return false;
    				}
    			}
            


  • На:
    			if ( $product && $product->is_type( 'grouped' ) || $product->is_type( 'variable' ) ) {
    				foreach ( $product->get_children() as $child_id ) {
    					if ( ! $hasOriginalCustomPrices( $child_id ) ) {
    						return false;
    					}
    				}
    			} else {
    				if ( ! $hasOriginalCustomPrices( $currentProductId ) ) {
    					return false;
    				}
    			}
            

Все известные проблемы →