С помощью woocommerce на моем веб-сайте я хотел бы добавить на страницу корзины вход для выбора, где пользователь может выбрать значение между двумя параметрами, и в зависимости от этого значения я изменю цену.
до сих пор я мог получить общее количество и изменить его, используя это:
function action_woocommerce_before_cart_totals( ) { global $woocommerce; $woocommerce->cart->total = $woocommerce->cart->total*0.25; var_dump( $woocommerce->cart->total);};
Проблема в том, что когда я перехожу на страницу проверки, она не принимает итоговое значение, вычисленное в functions.php
Спасибо за помощь.
Вы можете одновременно использовать woocommerce_review_order_before_order_total
, чтобы отобразить свою таможенную цену в кассе, таким образом:
add_action( 'woocommerce_review_order_before_order_total', 'custom_cart_total' ); add_action( 'woocommerce_before_cart_totals', 'custom_cart_total' ); function custom_cart_total() { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; WC()->cart->total *= 0.25; //var_dump( WC()->cart->total); }
Код находится в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.
Этот код проверен и работает.
Платежный шлюз всегда использует переменную $ order-> get_total () для получения общей суммы корзины. Поэтому, чтобы настроить этот фильтр woocommerce_order_amount_total
для вашей функции, выполните следующие действия. Ваш платежный шлюз всегда показывает общую сумму, которую вы настраиваете.
add_filter( 'woocommerce_order_amount_total', 'custom_cart_total' ); function custom_cart_total($order_total) { return $order_total *= 0.25; }