Валюта в WooCommerce. Всё, что вы хотели про неё знать.
Начну с очень важного момента — имейте ввиду, что цена в WooCommerce это просто число. В базе данных она хранится просто как число. Если вам кажется, что в базе данных может существовать какая-то абсолютная величина цены в «основной валюте» и ее производные в других валютах – как вам такое вообще в голову могло прийти?
Валюта в Woo выполняет две основных функции:
- На сайте рядом с товаром, а также в админке у вас будет отображаться соответствующий значок валюты.
- При использовании платёжных шлюзов код валюты уже будет корректно передаваться в платёжную систему.
Запомните эти два принципа, я постоянно буду на них ссылаться. 😉
Где настроить валюту, устанавливаем базовую валюту
Собственно на этой странице вы можете задать основную валюту магазина, настроить, где должен отображаться символ валюты (слева или справа/с пробелом или без), выбрать знаки в качестве разделителей тысяч и дробных частей.
На самом деле тут нет чего-то, на чём нужно подробно останавливаться, всё должно быть понятно и так, если нет, то вы всегда можете навести мышкой на вопрос и у вас появится всплывающая подсказка.
Как добавить свою валюту
И тем не менее, если вдруг вам понадобилась какая-то валюта, которая ещё не поддерживается, вы можете добавить её при помощи довольно простого хука, который можно отправить даже в functions.php вашей темы:
Честно говоря, не знаю, какой валюты сейчас в WooCommerce не хватает, поэтому добавил просто левую, хотя те, кто в теме, поймут 😅 момент ностальгии.
Кстати говоря, символ валюты можно попробовать добавить и через другой хук woocommerce_currency_symbols , подробнее о нём написано тут.
В итоге мы получили:
Добавление нескольких валют. Криптовалюты в WooCommerceТогда наш код изменится следующим образом:
Что касается приёма платежей в криптовалюте, я рекомендую прочитать ещё раз первый абзац этого поста, чтобы понять, что настройка валюты на самом сайте играет самую маленькую роль, всё зависит именно от плагинов платёжных шлюзов, которые вы используете. Если они принимают криптовалюту, то супер🔥, если нет, то нет, и тут ничем не поможешь, даже если вы выставите биткойны в качестве основной валюты сайта.
Замена знака валюты на буквы
Дело в том, что цены на товары отображаются с использованием значка ₽ ₽ , но скорее всего владельцы магазинов захотят выводить её либо как р., либо руб. То же самое кстати касается и украинской гривны, людям привычнее обозначение грн., чем ₴ ₴ (на самом деле тут даже дело не привычки, просто у некоторых посетителей сайта эти символы могут отображаться квадратами).
Делается это очень просто всего лишь одним хуком:
Как сделать обозначение валюты меньше по размеру, чем сама цена? Или другого цвета например.В прошлом примере мы рассмотрели хук, который позволяет поменять символ валюты на буквенное обозначение, но ведь никто не мешает нам протолкнуть туда и HTML код! Например взять какой-нибудь элемент <span> с произвольным классом, а там уже мы можем изощряться с его CSS стилями как нам угодно.
Добавив для него CSS что-то типо font-size:small;color:#888 , я возвращаюсь к своему примеру с рюкзаком:
Если нужна мультивалютность (несколько валют с переключением)
Также они рекомендуют определить, насколько необходимо вам на сайте использовать несколько валют, возможно, если вы хотите продавать в нескольких регионах отдельно, заполнить описания товаров на разных языках, то вам может подойдет вариант с использованием WordPress Мультисайт.
Ещё в официальной документации рекомендуют взглянуть на такие плагины, как: Currency Converter Widget, MultilingualPress или WPML с расширением WooCommerce Multilingual.
Кроме того, я хочу вам предложить свой алгоритм по созданию подобного функционала, который я не тестил, а просто взял из головы:
- Прежде всего вам нужно сделать HTML виджет, в котором будем возможность переключения валют (возможно просто в виде выпадающего списка <select> .
- Так как цены вы в любом случае указываете только в одной валюте в WooCommerce, то следующим шагом вам нужно привязать ваш виджет к какому-нибудь сервису, который позволяет узнавать актуальные курсы валют, например можете попробовать бесплатный fixer.io (вроде неплох). После асинхронного получения данных с сервиса мы делаем соответствующие замены в DOM документа (я всё же за асинхронное подключение, если вы будете делать это через курл или что-то подобное, то мне просто жалко ваш сайт, даже если закэшировать транзитами, могут быть свои трудности).
- В зависимости от переменной сессии или куки пользователя, мы законнектимся к фильтру woocommerce_currency , который являются частью функции get_woocommerce_currency() (там он и описан) и заменим валюту на актуальную для этого конкретного пользователя.
Надеюсь, этот нехитрый алгоритм поможет вам в создании классного функционала 🔥
Видеоурок по валюте в WooCommerce
Функции для работы с валютой в WooCommerceВпервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.