2017-04-07 85 views
2

隨着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

回答

3

您可以在同一時間使用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

0

支付網關總是使用$ 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; 
} 
相關問題