2017-09-08 129 views
1

我創造了一個親戚的業務的電子商務商店。他擁有用戶必須在網站上進行個性化的產品。我正在編寫一個單獨的頁面,允許用戶執行此操作,該操作將鏈接回商店,並在完成後將商品添加到購物車。 我找到了解決每個產品添加至購物車分開,而不是添加到數量(因爲添加的每個產品已被個性化的),和溶液以改變車中的項目的價格。Woocommerce-不同價格相同的產品在購物車

WooCommerce: Add product to cart with price override? https://businessbloomer.com/woocommerce-display-separate-cart-items-product-quantity-1/

的問題是,所有的項目都發生變化,不僅僅是最後一個加入。例如:用戶設計一個帶有她的名字的圓珠筆。價格是4美元。用戶然後用她的名字設計一支凝膠筆。購物車將顯示兩個單獨的筆,計算價格增加,但所有筆的價格都會增加,而不是最後一筆增加。我需要找到一種方法來根據產品構建頁面發送的價格設置最後添加項目的價格。到目前爲止,我所嘗試過的東西都沒有奏效。

可變產品不會對這個網站的工作。

//To display a product separately every time it is added 
function bbloomer_split_product_individual_cart_items($cart_item_data, $product_id){ 
    $unique_cart_item_key = uniqid(); 
    $cart_item_data['unique_key'] = $unique_cart_item_key; 
    return $cart_item_data; 
} 

add_filter('woocommerce_add_cart_item_data','bbloomer_split_product_individual_cart_items', 10, 2); 


add_filter('woocommerce_is_sold_individually', '__return_true'); 


//To change the item price programmatically. Changes all items with the same ID 
//I need it to change only the last one added. 
//Set to retrieve new price from the customizing page 

add_action('woocommerce_before_calculate_totals', 'add_custom_price', 10, 1); 
/** 
* @param $cart_obj 
*/ 
function add_custom_price($cart_obj) { 
    ob_start(); 
    include 'createbb.php'; 

    global $custom_price; 
    $target_product_id = 17; 
    // This is necessary for WC 3.0+ 
    if (is_admin() && ! defined('DOING_AJAX')) 
     return; 

    foreach ($cart_obj->get_cart() as $key => $value) { 
     if ($value['product_id'] == $target_product_id) { 
      $value['data']->set_price($custom_price); 
     } 
    } 
    ob_end_clean(); 
} 
+0

請提供有關您的WooCommerce實施的更多詳細信息,並嘗試將產品集成爲Variable。 –

+0

我添加了代碼。我不知道如何在用戶自定義每個單獨的「筆」時單獨定價,因爲它們都共享相同的ID。 –

回答

0

類型的您正在尋找的功能其實是很常見的,它有一個名爲「產品選項」(這是變化不同)。此功能允許您通過編輯產品頁面上的設計爲產品的價格添加可配置的附加組件。在很多像Opencart的電子商務平臺,你有這種內置的免費功能,但是Automattic的選擇,以保持其作爲一個單獨的螺栓上,他們收取:

https://woocommerce.com/products/product-add-ons/

之前,你說這是它很煩人,他們要收費,真的這是人們通常要求的事情,你可以告訴它,這是一個計劃的決定,將其幣化。是的它仍然是非常可能的方案都定製,但你必然重新發明了以外,以避免支付的功能(也有其他人已經做出上述插件的免費版本,沒有理由輪,谷歌是你的朋友)。

考慮的東西,如果Automattic的改變自己的鉤子在未來是什麼?你必須修改你的代碼,假設你在查找網站之前發現它。如果你想改變選擇,或者你需要其他人來改變他們,你不在身邊?

如果你的體重東西,你會發現到底是要麼搶官方插件,或使用替代品的一個最好的選擇。相信我我正在幫你一個忙。

Koda

+0

謝謝。我考慮過這些類型的插件,但沒有購買,只是因爲該網站有一個非常具體的外觀和感覺,我不知道我是否能夠實現這一點。我確實買了一個最終浪費金錢的東西。他們希望這是一個一步一步的過程,對客戶來說是互動的,但我也許可以解決這個問題。 –

+0

你可以,特別是官方的,因爲他們的模板可以像WooCommerce剩下的模板一樣被覆蓋。你真的不想重新編碼的部分是管理方面的事情,因爲它要麼需要很長時間才能實現,要麼就不能成爲已有的可用代表。我不懷疑你的能力,只是純粹從經驗中汲取經驗。 – Kodaloid

相關問題