Как конвертировать стоимость товаров WooCommerce при переходе к оплате?

Здравствуйте.
Валюта магазина евро. При переходе к оплате нужно, чтобы тотал уходил в платёжную систему в рублях. Т.е. конвертировался из евро в рубли. Покажите пожалуйста пример хука WooCommerce, который обрабатывает данные перед отправкой в платёжную систему?
  • Вопрос задан
  • 262 просмотра
Решения вопроса 1
@afipsky Автор вопроса
Нашёл выход, долго перебирая примеры из англонета. Дописываем код в function.php:
//Подключаю свой обработчик для функции вызываемой после нажания кнопки "Перейти к оплате"
add_action('woocommerce_before_checkout_process','convert_total_price_to_rouble');
//Конвертирую финальную стоимость в рубли 
function convert_total_price_to_rouble(){
    //получаю глобальные данные WooCommerce
    global $woocommerce;
    //Пересчитываю стоимость всех товаров
    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        //привожу стоимость товаров к типу FLOAT
        $current_price = floatval($cart_item['data']->price);
        //Конвертирую стоимость товара по нужному курсу
        $current_price = $current_price * 50.0;
        //Устанавливаю новую сконвертированную стоимость, которая отправится в платёжную систему
        $cart_item['data']->set_price($current_price);
    }
    //TODO меняю символ валюты на рубли
}

Коряво конечно, потому что пересчитывается стоимость каждой единицы товара, а не финальная стоимость. Но другого метода задать стоимость товара я не нашёл)
Если кто-то знает, подскажите пожалуйста! И ещё остаётся заменить символ валюты на рубли, но конкретно в моём случае, в яндекс деньги символ валюты не передаётся (рубли по умолчанию)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы