К сожалению, в Woocommerce не предусмотрено изменение тех или иных текстовых значений по умолчанию. Например слово «купон» иногда требуется переименовать на какое-то другое слово. Большинство значений можно изменить с помощью плагинов, но вы можете добавить этот код в свой файл functions.php. В данном случае мы изменили слово «купон» на «промокод». Изменения коснутся только видимой части сайта, т.е. для посетителя. В административной панели текст не изменится.

Как переименовать слово купон в Woocommerce
// Меняем слово "Coupon" на "Promo code" в разных местах WooCommerce

// Основные строки на странице корзины
add_filter( 'gettext', 'woocommerce_rename_coupon_field_on_cart', 10, 3 );
function woocommerce_rename_coupon_field_on_cart( $translated_text, $text, $text_domain ) {
    if ( is_admin() || 'woocommerce' !== $text_domain ) {
        return $translated_text;
    }

    if ( 'Coupon:' === $text ) {
        $translated_text = 'Promo code:';
    }

    if ( 'Coupon has been removed.' === $text ) {
        $translated_text = 'Promo code has been removed.';
    }

    if ( 'Apply coupon' === $text ) {
        $translated_text = 'Apply promo code';
    }

    if ( 'Coupon code' === $text ) {
        $translated_text = 'Promo code';
    }

    // уведомление при пустом значении
    if ( 'Please enter a coupon code.' === $text ) {
        $translated_text = 'Please enter a promo code.';
    }

    return $translated_text;
}

// Сообщение на странице оформления заказа
add_filter( 'woocommerce_checkout_coupon_message', 'woocommerce_rename_coupon_message_on_checkout' );
function woocommerce_rename_coupon_message_on_checkout() {
    return 'Have a promo code? <a href="#" class="showcoupon">' . __( 'Click here to enter your promo code', 'woocommerce' ) . '</a>';
}

// Ошибки и уведомления при работе с купонами
add_filter( 'woocommerce_coupon_error', 'rename_coupon_label', 10, 3 );
add_filter( 'woocommerce_coupon_message', 'rename_coupon_label', 10, 3 );
function rename_coupon_label( $err, $err_code = null, $something = null ) {
    $err = str_ireplace( 'Coupon', 'Promo code', $err );
    return $err;
}

// В деталях заказа
add_filter( 'woocommerce_cart_totals_coupon_label', 'woocommerce_change_coupon_label', 10, 3 );
function woocommerce_change_coupon_label( $label, $coupon ) {
    return 'Promo code applied';
}

// Дополнительная подстраховка
add_filter( 'gettext', function( $translated_text, $text, $domain ) {
    if ( 'woocommerce' === $domain ) {
        $translated_text = str_ireplace( 'Coupon', 'Promo code', $translated_text );
    }
    return $translated_text;
}, 20, 3 );

Не забудьте сделать перевод измененных строк с помощью плагина Loco Translate или написать текст сразу на нужном языке.

⚠️ Так как WordPress и его плагины могут изменяться, тестируйте любой кастомный код на промежуточном веб-сайте перед переходом в рабочую среду.

Комментарии

5 Комментариев

    1. Если код у вас не сработал, для общей картины необходимо указать подробности. Какой участок кода не сработал, на какой именно странице? Установлены для дополнительные плагины для генерации купонов, какая версия Woocommerce? Куда вставляли код? Меняли ли текст в коде на свой? Для последней версии Woocommerce 5.9.0 код рабочий.

      1. Код рабочий, но при попытке ввести пустое значение купона (и на странице корзины, и на странице оформления заказа), всё равно высвечивается "Введите код купона, пожалуйста." Хотелось бы в этом уведомлении также "код купона" сменить на "промокод".

        1. Обновила код в статье.

Оставьте комментарий

Комментарии, считающиеся спамом или исключительно рекламные по своему содержанию, будут удалены. Допускается включение ссылки на соответствующий контент, но текст должен иметь отношение к теме поста. Также будут удалены анонимные, оскорбительные, содержащие ненормативную лексику, вводящие в заблуждение или клеветнические комментарии.

Для публикации кода в комментариях используйте следующие шорткоды -
[php]ваш код[/php] - для PHP, [css]ваш код[/css] - для CSS, [code lang="js"]ваш код[/code] - для HTML или JS, указав соответствующий lang.

Ваш адрес email не будет опубликован. Обязательные поля помечены *