使用woocommerce,在我的网站中,我想在购物车页面中添加一个选择输入,用户可以在两个选项之间选择一个值,并根据此值我将更改价格。
到目前为止,我可以得到总数并使用它来改变它:
Case
when Rate >= 0 then Rate
when ProjectRate >= 0 then ProjectRate
else 0
end
问题在于,当我进入结帐页面时,它不需要在functions.php中计算总数。
感谢您的帮助。
答案 0 :(得分:5)
您也可以同时使用 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文件或任何插件文件中。
此代码经过测试并有效。
答案 1 :(得分:1)
付款网关始终使用$ 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;
}