Ответы пользователя по тегу WordPress
  • Как перевести единицы измерения (kg, m, cm) в WooCommerce?

    @Kinolanka Автор вопроса
    Порылся в коде и понял, что это баг Вукоммерс. Единицы измерения выводяться в таб с аттрибутами не оборачиваясь в функции локализации.

    Локализация единиц измерения веса

    Вывод осуществляется в файле
    .../plugins/woocommerce/templates/single-product/product-attributes.php

    Этот файл нужно скопировать к себе в тему и расположить по адресу:
    .../themes/[MY-THEME]/woocommerce/single-product/product-attributes.php

    После этого внести в него изменения:

    Строка 39
    <td class="product_weight"><?php echo wc_format_localized_decimal( $product->get_weight() ) . ' ' . esc_attr( get_option( 'woocommerce_weight_unit' ) ); ?></td>


    Нужно обернуть esc_attr( get_option( 'woocommerce_weight_unit' ) ) в функцию __()

    <td class="product_weight"><?php echo wc_format_localized_decimal( $product->get_weight() ) . ' ' . __(esc_attr( get_option( 'woocommerce_weight_unit' ) ), 'woocommerce'); ?></td>


    Локализация единиц измерения длины

    К сожалению, значение длины выводиться функцией get_dimensions(), которая прописана в ядре и ее нельзя переписывать. Функция возвращает уже полную строку с цифрами и единицей измерения. Но перед выводом строка пропускается через фильтр woocommerce_product_dimensions.

    В файле functions.php можно заменить значения единицы длины с английского языка на русский.

    function localize_demensions_units($dimensions) {
        return str_replace('m', 'м', $dimensions);
    }
    add_filter('woocommerce_product_dimensions', 'localize_demensions_units');


    Нужно подставить нужные значения.
    Ответ написан
    4 комментария