• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Как заменить стандартное в вариативных товарах сообщение "Этого товара нет в наличии, заказ недоступен."

vlad1s

Новичок
Привет!

Хочу поменять стандартное в вариативных товарах сообщение "Этого товара нет в наличии, заказ недоступен."

на "Этого товара временно нет в наличии, дату поставки уточняйте у менеджера"

Подскажите, кто в курсе как это сделать?
 

Вложения

  • 4ec5da1b.png
    4ec5da1b.png
    26.5 KB · Просмотры: 4
Последнее редактирование:

joy66

Опытный
Местный
Привет!

Хочу поменять стандартное в вариативных товарах сообщение "Этого товара нет в наличии, заказ недоступен."

на "Этого товара временно нет в наличии, дату поставки уточняйте у менеджера"

Подскажите, кто в курсе как это сделать?
Это не стандартное сообщение
Если это перевод, то ставьте плагин Loco Translate и смотрите файл перевода темы или какого-то плагина
 

joy66

Опытный
Местный
Да, точно. Ошибся )
Решений несколько.
1 в файл function.php добавить

PHP:
add_filter( 'woocommerce_out_of_stock_message, function() {
return 'Этого товара временно нет в наличии, дату поставки уточняйте у менеджера';
});

2 Править перевод . Фразу This product is currently out of stock and unavailable.
3 Править шаблон /single-product/add-to-cart/variable.php (предварительно скопировав к себе в тему)
4 в файл function.php добавить
PHP:
add_filter('gettext', 'my_translate_text');
add_filter('ngettext', 'my_translate_text');
function my_translate_text( $my_text ) {
    
    if ( $my_text == 'This product is currently out of stock and unavailable.' ) {
        $my_text = 'Этого товара временно нет в наличии, дату поставки уточняйте у менеджера';
    }
    

    return $my_text;
}
 
Последнее редактирование:

vlad1s

Новичок
благодарю!
1. - выглядит наиболее простым и быстрым решением. Но возвращает ошибку:

Ваши изменения в коде PHP были отменены из за ошибки на строке 233 файла wp-content/themes/betheme/functions.php. Исправьте и попробуйте пересохранить.
syntax error, unexpected identifier "Этого", expecting ")"


2. - Я правил файл перевода, грузил его на то же место, но почему-то это не помогло. (woocommerce-ru_RU.po (wp-content/languages/plugins/)). Не там правил или данная сотрока фильтруется где-то в шаблоне?
3. - тут не совсем ясно. /single-product/add-to-cart/variable.php где брать? У меня в теме /single-product/add-to-cart/ лежит только файл external.php. (Тема Betheme)
4. - тоже просто и понятно. Добавил код, сохранил, обновил - но не сработало.
 

joy66

Опытный
Местный
благодарю!
1. - выглядит наиболее простым и быстрым решением. Но возвращает ошибку:

Ваши изменения в коде PHP были отменены из за ошибки на строке 233 файла wp-content/themes/betheme/functions.php. Исправьте и попробуйте пересохранить.
syntax error, unexpected identifier "Этого", expecting ")"


2. - Я правил файл перевода, грузил его на то же место, но почему-то это не помогло. (woocommerce-ru_RU.po (wp-content/languages/plugins/)). Не там правил или данная сотрока фильтруется где-то в шаблоне?
3. - тут не совсем ясно. /single-product/add-to-cart/variable.php где брать? У меня в теме /single-product/add-to-cart/ лежит только файл external.php. (Тема Betheme)
4. - тоже просто и понятно. Добавил код, сохранил, обновил - но не сработало.
1 Кавычка куда-то потерялась ))
вот правильно
Код:
add_filter( 'woocommerce_out_of_stock_message', function() {
return 'Этого товара временно нет в наличии, дату поставки уточняйте у менеджера';
});
2 Переводите плагином loco-translate. И файл перевода это .mo а не .po
3 Этот файл лежит в папке templates плагина woocommerce . Его надо скопировать к вашему external.php

Но тут такой момент важный. Судя по всему вы не используете дочернюю тему (это плохо) При обновлении темы, все эти изменения слетят . Все будет перезаписано, включая function.php. Используйте betheme-child. И там уже правьте function.php и туда скопируйте variable.php. Внутри betheme-child вот такой путь должен быть woocommerce/single-product/add-to-cart/variable.php
 
Последнее редактирование:

vlad1s

Новичок
1 Кавычка куда-то потерялась ))
вот правильно
Код:
add_filter( 'woocommerce_out_of_stock_message', function() {
return 'Этого товара временно нет в наличии, дату поставки уточняйте у менеджера';
});
2 Переводите плагином loco-translate. И файл перевода это .mo а не .po
3 Этот файл лежит в папке templates плагина woocommerce . Его надо скопировать к вашему external.php

Но тут такой момент важный. Судя по всему вы не используете дочернюю тему (это плохо) При обновлении темы, все эти изменения слетят . Все будет перезаписано, включая function.php. Используйте betheme-child. И там уже правьте function.php и туда скопируйте variable.php. Внутри betheme-child вот такой путь должен быть woocommerce/single-product/add-to-cart/variable.php
спасибо! этот код работает!
 
Сверху Снизу