我有一个Woocommerce网站,客户可以订购具有以下特征的颜色样本:
在这种情况下,为每种颜色制作100多个单独的简单产品并捆绑它们似乎不合适(我们也不跟踪样品上的库存)我只是希望客户在一个名为&的产品的背景下做出多种选择。 #34;样品&#34 ;.我查看了bundled products page docs,但这些似乎都不适合我要做的事情。
答案 0 :(得分:0)
我使用插件和一些自定义代码解决了这个问题。该插件为here,自定义代码会计算分组中的项目数,并根据该数字修改价格。就我而言,我希望每个选项花费一美元,但前三个选项是免费的。在将其添加到购物车之前,我使用woo挂钩来更改价格(在选择后点击添加到购物车按钮时会触发此消息):
add_action( 'woocommerce_before_calculate_totals', 'add_custom_price' );
function add_custom_price( $cart_object ) {
$target_product_id = 9516; // my product ID
foreach ( $cart_object->cart_contents as $key=>$value ) {
if ( $value['product_id'] == $target_product_id ) {
if (count($value['tmdata']['tmcp_post_fields'])>=3){
$value['data']->set_price($value['tm_epo_options_prices'] - 3);
} elseif (count($value['tmdata']['tmcp_post_fields'])==2){
$value['data']->set_price($value['tm_epo_options_prices'] - 2);
} elseif (count($value['tmdata']['tmcp_post_fields'])==1){
$value['data']->set_price($value['tm_epo_options_prices'] - 1);
}
}
}
}
请注意,上面的代码是调用plugin提供的数据(tm_epo_options_prices)。