[Woocommerce] Как конвертировать цену товара в другую валюту и добавить процент к цене

  Автор:
  Комментариев нет
  1746

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

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

Задача была следующая:
1. На сайте интернет-магазина указывать цены на товар в тенге
2. Посетители сайта видят цены в рублях

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

В этой статье расскажу как мы это реализовали без плагина конвертации валют.

Шаг 1 — Создать вкладку в настройках WooCommerce

В этом шаге мы создадим вкладку в настройках Woocommerce с 2-мя полями:

Первое поле для вставки курса валюты,
Второе поле для вставки добавочного процента.


class WC_Settings_Tab_Convert_Price {
  
    public static function init() {
        add_filter( 'woocommerce_settings_tabs_array', __CLASS__ . '::add_settings_tab', 50 );
        add_action( 'woocommerce_settings_tabs_settings_tab_convert_price', __CLASS__ . '::settings_tab' );
        add_action( 'woocommerce_update_options_settings_tab_convert_price', __CLASS__ . '::update_settings' );
    }   

    public static function add_settings_tab( $settings_tabs ) {
        $settings_tabs['settings_tab_convert_price'] = __( 'Добавочная стоимость', 'woocommerce-settings-tab-convert-price' );
        return $settings_tabs;
    }

    public static function settings_tab() {
        woocommerce_admin_fields( self::get_settings() );
    }

    public static function update_settings() {
        woocommerce_update_options( self::get_settings() );
    }

    public static function get_settings() {

        $settings = array(
            'section_title' => array(
                'name'     => __( 'Добавочная стоимость', 'woocommerce-settings-tab-convert-price' ),
                'type'     => 'title',
                'desc'     => '',
                'id'       => 'wc_settings_tab_convert_price_section_title'
            ),
            'curse' => array(
                'name' => __( 'Курс с тенге', 'woocommerce-settings-tab-convert-price' ),
                'type' => 'text',
                'desc' => __( 'пример: 0.13', 'woocommerce-settings-tab-convert-price' ),
                'id'   => 'wc_settings_tab_extraprice_curse'
            ),
            'percent' => array(
                'name' => __( 'Процент', 'woocommerce-settings-tab-convert-price' ),
                'type' => 'text',
                'desc' => __( 'Пример: 50' ),
                'id'   => 'wc_settings_tab_extraprice_percent'
            ),
            'section_end' => array(
                 'type' => 'sectionend',
                 'id' => 'wc_settings_tab_convert_price_section_end'
            )
        );

        return apply_filters( 'wc_settings_tab_convert_price_settings', $settings );
    }

}

WC_Settings_Tab_Convert_Price::init();

Код вставить в файл functions.php дочерней темы или с помощью плагина Индивидуальные функции

После вставки кода в разделе WooCommerce -> Настройки появится новая вкладка «Добавочная стоимость». На странице вкладки будет 2 поля «Курс с тенге» и «Процент».

Теперь можно в полях указать курс тенге к рублю (в данный момент это 0.13). И во втором поле указать добавочный процент, например 40

Шаг 2 — Пересчет цены товара и добавление процента

Этот код также вставить в файл functions.php дочерней темы или с помощью плагина Индивидуальные функции


add_filter( 'raw_woocommerce_price', 'add_extra_price'  );

function add_extra_price($price){
  global $product;
  $curse = get_option( 'wc_settings_tab_extraprice_curse' );
  $percent = get_option( 'wc_settings_tab_extraprice_percent' );
	
  return ($price / 100 * $percent + $price) * $curse;
}

Код меняет центу товара в соответствии с заданными параметрами и добавляет фильтр к raw_woocommerce_price. Математика здесь простая: цена, которая указана в товаре (в тенге) делим на 100, умножаем на процент и прибавляем цену = получается цена в тенге + процент. Затем умножаем на курс = получаем новую цену в рублях.

Шаг 3 — меняем цены на тенге.

Теперь нужно отредактировать каждый товар и поменять цену (указать цену в тенге).

В дальнейшем нужно будет следить за курсом и если он меняется, менять в разделе Woocommerce -> настройки — Добавочная стоимость.

Если возникли вопросы, не стесняйтесь задавать в комментариях.


С вопросами и за помощью обращайтесь в нашу службу поддержки 24/7

 

Нужен качественный хостинг для сайта на WordPress?
Рекомендую, проверенные годами, хостинг Timeweb:
Надежный проверенный годами хостинг для сайта на WordPress
а также, хостинг Beget:
Хостинг Beget

[Woocommerce] Как конвертировать цену товара в другую валюту и добавить процент к цене

   2 голоса
Средняя оценка: 5 из 5
Если Вам понравилась статья и Вы нашли её полезной, поделитесь ею в соцсетях! Нажмите на кнопки ниже, чтобы сделать это прямо сейчас.

Анфиса Бреус

Анфиса Бреус - специалист по Wordpress с 2007 года. Создатель и разработчик шаблона "AB-Inspiration" для самостоятельной и профессиональной настройки сайтов на WordPress для бизнеса. Основатель клуба "Мастер WordPress" и автор эксклюзивных курсов по WordPress. Фрилансер. Спикер.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *