簡體   English   中英

在 Woocommerce 中更改購物車產品價格

[英]Changing cart product price in Woocommerce

我想實現買 3 送 1 功能,所以我編寫了一個腳本來檢測客戶是否在購物車中有 3 件相同的商品,並自動將另外 1 件相同的商品添加到購物車中。 然后使用另一個鈎子,我將產品的價格覆蓋為 0。

我搜索了解決方案並使用了相同的方法:

這是代碼示例:

function setGiftPriceToZero($cart_object){
    foreach($cart_object->cart_contents as $k=>$item):
        if(isset($item['variation']['promo']) && ($item['variation']['promo']) == 'buy 3 free 1'):
            $item['data']->price = 0;
        endif;
    endforeach;
}
add_action('woocommerce_before_calculate_totals', 'setGiftPriceToZero');

Woocommerce 計算購物車的小計時,總是加上應該免費的產品的原價。 例如,當我將 3 件 100 美元的商品添加到購物車時,購物車小計最終是 400 美元而不是 300 美元。

I digged deeper into the Woocommerce code and found that in https://docs.woocommerce.com/wc-apidocs/source-class-WC_Cart.html#1139 , $item['data']->get_price() is used which始終返回商品的原價。

有沒有辦法使用鈎子/api而不是編輯 Woocommerce 核心文件來解決這個問題?

我已找到此錯誤的罪魁禍首。 這是由另一個名為Woocommerce基於角色的價格插件的沖突引起的。 該插件會在購物車總計計算流程結束時覆蓋購物車價格。 這就是為什么get_price()函數始終返回商品的指定價格的原因。

現在,我只需要編輯插件文件即可使其與我的邏輯完美配合。

我不知道我是否在正確的主題。 但我有一個關於 Wocomerce 的問題

我如何獲得產品的價值並將其分成分期付款。

這可以通過 HTML 或 PHP 實現嗎?

例子。

售價 120.00 美元的產品

我想向我的客戶展示他最多可以購買 6 期免息分期付款。

我希望 woocommerce 有一個帶有這個 function 的插件,通過簡碼。

在產品頁面或產品庫上,我可以報告:

產品價值 = X

或 6 期 X/6。

有人可以幫我寫這樣的代碼嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM