我不想在這裏發佈,但我找不到我正在尋找的答案,我沒有足夠的信譽來評論其他非常類似的問題以獲得我的確切答案。Woocommerce:基於用戶輸入的自定義價格
我發現這個職位幾乎完美的答案:使用代碼WooCommerce: Add product to cart with price override?
:
add_action('woocommerce_before_calculate_totals', 'add_custom_price');
function add_custom_price($cart_object) {
$custom_price = 10; // This will be your custome price
foreach ($cart_object->cart_contents as $key => $value) {
$value['data']->price = $custom_price;
}
}
和它的偉大工程......如果你設置一個硬編碼的自定義價格。
我的問題是:如何根據用戶輸入設置自定義價格?
我都想盡辦法,我能想到的將信息傳遞(我甚至使用cookie,全局,會話試過),沒有他們的工作,我想如何和他們都是,充其量黑客。
有問題的特定產品是捐款,客戶希望用戶能夠設置捐贈價格(而不是僅創建具有設定價格點的可變產品)。
在當用戶提交的捐款表格我加入捐贈產品加入購物車,像這樣的捐款網頁:
$donation_success = $woocommerce->cart->add_to_cart($donation_id);
我的捐贈產品的0.00一套的價格,所以當它被添加到購物車它有一個0.00的價格(我不知道價格是否設置在這一點或更晚)
我已經嘗試在此處傳遞信息使用add_to_cart方法中的最後一個變量接受數組論點,但我似乎無法得到這個工作。
我相信答案很簡單,但我一直在嘗試幾個小時才能做到這一點,並且我無法讓它正常工作。我沒有想法。
我使用目前的實際代碼比由上述職位的回答者認爲略有不同,但工作原理基本相同:提前
add_action('woocommerce_before_calculate_totals', 'woo_add_donation');
function woo_add_donation() {
global $woocommerce;
$donation = 10;
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
if($cart_item['data']->id == 358 || $cart_item['data']->id == 360){
$cart_item['data']->set_price($donation);
}
}
}
感謝任何有用的建議!
只是我一直在尋找的東西!我花了無數個小時試圖改變功能無濟於事。這工作完美,並改變了價格:)非常感謝! – shish
如何在通過api請求添加產品時訂購此功能 –