Woocommerce-不同价格相同的产品在购物车

问题描述:

我创造了一个亲戚的业务的电子商务商店。他拥有用户必须在网站上进行个性化的产品。我正在编写一个单独的页面,允许用户执行此操作,该操作将链接回商店,并在完成后将商品添加到购物车。 我找到了解决每个产品添加至购物车分开,而不是添加到数量(因为添加的每个产品已被个性化的),和溶液以改变车中的项目的价格。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。 –

类型的您正在寻找的功能其实是很常见的,它有一个名为“产品选项”(这是变化不同)。此功能允许您通过编辑产品页面上的设计为产品的价格添加可配置的附加组件。在很多像Opencart的电子商务平台,你有这种内置的免费功能,但是Automattic的选择,以保持其作为一个单独的螺栓上,他们收取:

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

之前,你说这是它很烦人,他们要收费,真的这是人们通常要求的事情,你可以告诉它,这是一个计划的决定,将其币化。是的它仍然是非常可能的方案都定制,但你必然重新发明了以外,以避免支付的功能(也有其他人已经做出上述插件的免费版本,没有理由轮,谷歌是你的朋友)。

考虑的东西,如果Automattic的改变自己的钩子在未来是什么?你必须修改你的代码,假设你在查找网站之前发现它。如果你想改变选择,或者你需要其他人来改变他们,你不在身边?

如果你的体重东西,你会发现到底是要么抢官方插件,或使用替代品的一个最好的选择。相信我我正在帮你一个忙。

Koda

+0

谢谢。我考虑过这些类型的插件,但没有购买,只是因为该网站有一个非常具体的外观和感觉,我不知道我是否能够实现这一点。我确实买了一个最终浪费金钱的东西。他们希望这是一个一步一步的过程,对客户来说是互动的,但我也许可以解决这个问题。 –

+0

你可以,特别是官方的,因为他们的模板可以像WooCommerce剩下的模板一样被覆盖。你真的不想重新编码的部分是管理方面的事情,因为它要么需要很长时间才能实现,要么就不能成为已有的可用代表。我不怀疑你的能力,只是纯粹从经验中汲取经验。 – Kodaloid