woocommerce更改结算和购物车中的价格

问题描述:

随着woocommerce,在我的网站我想在购物车页面添加一个选择输入,用户可以在两个选项之间选择一个值,并根据这个值我会更改价钱。woocommerce更改结算和购物车中的价格

到目前为止,我能得到的总使用更改此:

function action_woocommerce_before_cart_totals() { 
global $woocommerce; 

$woocommerce->cart->total = $woocommerce->cart->total*0.25; 
    var_dump($woocommerce->cart->total);}; 

的问题是,当我去结帐页面不参加的functions.php计算的总

感谢您的帮助。

+0

听起来像是一个工作[WooCommerce产品附加组件(http://woocommerce.com/products/product-add-ons) – helgatheviking

您可以在同一时间使用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文件(或主题)或任何插件文件。

该代码测试和工程。

+0

是它完美的作品,但是当我选择的付款方式之一,它不占用在functions.php中计算的总数。非常感谢我会寻找一个解决方案。再次感谢。 – Hanane

+0

@LoicTheAztec不错的东西,我们可以做一个按钮,并用ajax更新价格:jQuery(document.body).trigger(“update_checkout”); – mysticalghoul

支付网关总是使用$ 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; 
}