WPML

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

В конфигурациях с Germanized for WooCommerce и WPML возникает проблема, из-за которой способы доставки, использующие условия классов доставки, недоступны для переведенных товаров.

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

Эта проблема решена. Обновление до последней версии решает эту проблему на Вашем сайте, поэтому это обходное решение потребуется Вам только в том случае, если Вы пока не можете выполнить обновление.

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

  • Откройте файл …/wp-content/plugins/woocommerce-germanized/packages/woocommerce-germanized-shipments/src/ShippingMethod/ShippingMethod.php.
  • Найдите строку 957.
  • Замените:
    $classes = isset( $condition['classes'] ) && ! empty( $condition['classes'] ) ? array_map( 'absint', (array) $condition['classes'] ) : array();
  • На:
    $classes = isset( $condition['classes'] ) && ! empty( $condition['classes'] ) ? array_map( 'absint', (array) $condition['classes'] ) : array();
    // compsupp-7583 workaround
    // Assuming $classes is an array of category IDs.
    $classes = array_map(function($class_id) {
    	// Translate each ID using WPML
    	return apply_filters('wpml_object_id', $class_id, 'category');
    }, $classes);

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

Всё ещё сталкиваетесь с этой проблемой?

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