Плагин конвертации валют для WP + Cron

Основную часть работы всегда приходилось выполнять на CMS Joomla, но не так давно мне стали подсовывать заказы на WordPress. Не отрицаю, CMS удобная, гибкая и проста в истользовании.

Как всем известно, основные правки функций можно произвести путем редактирования файла functions.php в папке темы сайта. Но, к счастью или сожалению, мне попался вредный заказчик, которому понадобилась функция конвертации валют с последующей возможностью вручную отредактировать курс.

Недолго думая, решил написать сравнительно небольшой плагин конвертации.

Как это работает:

Плагин действительно небольшой, он содержит в своих настройках всего 2 поля редактирования и 4 функции конвертации.

Итак. Для начала необходимо распаковать архив плагина в каталог /wp-content/plugins/ после чего в административной части сайта в разделе "Плагины" активируем его.

Плагин конвертации валют для WP + Cron. Активация плагина.

 

Как только мы активировали плагин, переходим в "Настройки" → "Конвертер валют".

Плагин конвертации валют для WP + Cron. Настройки плагина.

 

Откроется окно с двумя параметрами: "USD коэффициент курса" и "EUR коэффициент курса".

Плагин конвертации валют для WP + Cron. Параметры плагина.

 

Нет, здесь не нужно указывать количество рублей в одном долларе/евро, а наоборот, количество долларов/евро в одном рубле. На момент написания статьи, как видно на изображении выше, коэффициент USD равен 0.016, а EUR - 0.015.

Сохраняем настройки.

 

Теперь достаточно просто в нужном месте (файле) темы вызвать необходимую функцию конвертации. В плагине описано 4 функции.

convert_usd_to_rub() - функция конвертирует Доллары в Рубли;
convert_eur_to_rub() - функция конвертирует Евро в Рубли
convert_rub_to_usd() - функция конвертирует Рубли в Доллары
convert_rub_to_eur() - функция конвертирует Рубли в Евро

Открываем необходимый файл, выбираем место вывода конвертируемой цены, пишем необходимую функцию конвертации, а в скобках указываем значение. Важно то, что в значение необходимо передавать исключительно число, без какого-либо текста.

Помимо всего, рекомендую использовать проверку наличия функции function_exists(). Это необходимо на случай, если Вы в файлах темы описали вызов функции конвертации цены, а плагин либо удалили, либо выключили, тогда тема выдаст ошибку, но если реализована проверка, то ошибки не будет и выведено другое значение или то что Вы сами укажете.

Разберем на примере. Как это делается. Не будем далеко ходить, предположим, что у нас стоит плагин ACF и для каждой записи добавлено дополнительное поле цены в Евро (имя поля "price_eur"), тогда в файле темы пишем примерно следующий код:

if ( function_exists( 'convert_eur_to_rub' ) ) {
	echo convert_eur_to_rub(get_field('price_eur'));
}

Все просто.

Обновление курса валют через Cron

Т.к. курс валют ежесекундно меняется, и соответственно это необходимо учитывать. В плагине уже подготовлена отдельная функция обновления курса валют через сайт Центрального банка РФ. Всё, что необходимо Вам сделать для вызова этой функции, это просто настроить запуск файла /wp-content/plugins/update_currency.php через Cron по расписанию. В разных хостинг-панелях Cron настраивается по разному, поэтому для его настройки рекомендую читать соответствующие инструкции. Рекомендуемая частота запуска - не более раза в сутки (этого более чем достаточно), иначе сайт центрабанка может просто заблокировать запросы с Вашего сайта.

После вызова файла, автоматически будут прописаны новые значения коэффициентов в плагине, более никакого участия не требуется.

 

Кто-то может сказать, что подобных плагинов куча и они более универсальные - отрицать не буду, это действительно так и я совершенно ни на что не претендую, просто хотелось сделать что-то своими руками, вникнуть в суть и процесс.

Скачать плагин Вы можете с помощью файла вложения в конце статьи.

Если у Вас остались какие-либо вопросы, оставляйте в комментариях.


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

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

0 / 2500 Ограничение символов
Ваш текст должен быть в пределах 10-2500 символов
Комментарии | Добавить свои
  • Комментарии не найдены