Ответы пользователя по тегу WordPress
  • Как конвертировать стоимость товаров WooCommerce при переходе к оплате?

    @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 меняю символ валюты на рубли
    }

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