При работе с очередным проектом мы столкнулись с ситуацией, когда в архивах и карточке вариативных товаров мы видели кнопку с надписью «Выбрать опцию» — а это вводило людей в заблуждение, особенно это относилось к карточке товаров, так как кроме кнопки был выпадающий список с надписью выбрать опцию, и кнопка, при этом даже после выбора опции, название кнопки не изменялось. Мы решили изменить название кнопки на «В корзину», а для этого у нас было 2 варианта, использовать дополнительные плагины (это просто но накладывает множество издержек) и внести корректировки через фильтры, хуки, экшены.
По роду деятельности, мы часто сталкиваемся с ситуацией, когда требуется внести корректировки в штатный функционал WordPress + WooCommerce, конечно большинство визуальных изменений, а так же изменения в логике работы модуля WooCommerce можно откорректировать большим количеством плагинов. Но в данном подходе есть множество минусов, начиная от подгрузки дополнительных скриптов, стилей и прочего добра, которое замедляет работу проекта, заканчивая качеством кода модулей, его безопасности, частоте обновления, поддержки. По этой причине, большинство правок мы вносим руками, гарантируя прежнюю скорость работы, и безопасность всего проекта, мы не зависим от скорости обновления сторонних модулей. И сегодня мы поговорим о том, как изменить текст кнопки у вариативного товара, при этом, в карточке товара, в архивах товаров (список товаров).
Для изменения названия кнопки вариативного товара из «выбрать опцию» на «В корзину», нам следует добавить следующий код:
// Ренейм кнопки вариативного товара // Карточка товара add_filter( 'add_to_cart_text', 'woo_custom_single_add_to_cart_text' ); // для версии WC< 2.1 add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_single_add_to_cart_text' ); // для версии WC 2.1 + function woo_custom_single_add_to_cart_text() { return __( 'Добавить в корзину', 'woocommerce' ); } //Каталог товаров: add_filter( 'add_to_cart_text', 'woo_custom_product_add_to_cart_text' ); // Для версии < 2.1 add_filter( 'woocommerce_product_add_to_cart_text', 'woo_custom_product_add_to_cart_text' ); // Для версии 2.1 + function woo_custom_product_add_to_cart_text() { return __( 'Выбрать опцию', 'woocommerce' ); }
Если говорить кратко, то данный код исправляет наименования кнопок на нужный нам, и данный код необходимо просто скопировать в файл function.php вашей (желательно дочерней темы — если она есть, если нет — создайте, о том как создать дочернюю тему читаем здесь).
В результате этих не хитрых манипуляций с фильтрами, мы получаем текст кнопки и отдаем новое название. Вопрос решен за 2 минуты, при этом без каких либо сторонних модулей!