Как изменить текст «Сэкономьте» в корзине WooCommerce?

Добрый день! В корзине товаров со скидкой отображается сообщение, например, "Сэкономьте 5000 руб". Как можно изменить этот текст? Я проверил файл переводов плагина, но однозначно такой строки не нашел. У меня все стандартные настройки, без лишних плагинов. Есть подозрение, что файлы перевода хранятся в другом месте и подтягиваются по-другому. Установив дефолтные темы и отключив остальные плагины, изменений не произошло. Можно ли внедрить исправления с помощью JS или CSS, или же для изменения этого текста необходим другой подход?
  • 27 октября 2024 г. 12:23
Ответы на вопрос 2
Здравствуйте!

Чтобы изменить текст «Сэкономьте» в корзине WooCommerce, у вас есть несколько вариантов:

### 1. Использование функции перевода (gettext):
WooCommerce использует функцию перевода, и вы можете изменить текст программно с помощью фильтров. Для этого добавьте следующий код в файл `functions.php` вашей темы:

```php
add_filter('gettext', 'change_discount_text', 20, 3);
function change_discount_text($translated_text, $text, $domain) {
    if ($text === 'Сэкономьте') {
        $translated_text = 'Ваши сбережения';
    }
    return $translated_text;
}
```

Замените `'Ваши сбережения'` на желаемый текст.

### 2. Использование плагина для редактирования переводов:
Если вы предпочитаете более удобный способ, можете использовать плагин, например, **Loco Translate**. Он позволяет редактировать переводы прямо из админ-панели WordPress:

1. Установите и активируйте плагин Loco Translate.
2. Перейдите в «Loco Translate» > «Плагины» и выберите «WooCommerce».
3. Найдите строку «Сэкономьте» и измените ее на нужный вам текст.

### 3. Использование JavaScript:
Если вышеуказанные методы по какой-то причине не работают, вы можете изменить текст с помощью JavaScript. Добавьте следующий скрипт на страницу:

```javascript
jQuery(document).ready(function($) {
    $('.woocommerce-cart .discount').each(function() {
        var currentText = $(this).text();
        if (currentText.includes('Сэкономьте')) {
            $(this).text(currentText.replace('Сэкономьте', 'Ваши сбережения'));
        }
    });
});
```

### 4. Использование CSS (при условии, что текст содержится в определенном классе):
Хотя CSS не изменит текст, его можно скрыть, если это необходимо:

```css
.woocommerce-cart .discount {
    display: none; /* Скрыть текст */
}
```

Однако, этот подход не заменит текст на что-то другое.

### Заключение:
Рекомендуется использовать фильтр в PHP, так как этот способ является наиболее надежным и управляемым. Варианты с JavaScript и CSS можно использовать как временные решения, но они менее надежны.
В файле переводов плагина такой строки нет.

Есть

Но можно и закостылить с плагином Say What
Похожие вопросы