我有一个WooCommerce网站,其中包含响应式超市在线主题 - 安装了Oswad。每个产品都有4个标签中的一个,对应不同的供应商。添加到购物车时我需要做什么:
我知道我可以使用if ( has_term( 'tag', 'product_tag') )
,
在add-to-cart.php中,$product->isPurchasable()
将切换按钮的可见性。
我的绊脚石是找出如何将所有这些放在一起以满足要求。我试图寻找如何按类别限制购物车项目,但想出了死胡同。我寻找插件,但那些仅限制每个订单的最小/最大产品,而不是检查项目的类别/标签。我甚至试图看钩,但最终变得更加困惑。
如果我能指向正确的方向,我将不胜感激。
答案 0 :(得分:0)
一种可能的解决方案 - 在add-to-cart.php:
global $woocommerce, $product;
$terms = wp_get_post_terms($product->id, 'product_tag');
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values){
$_product = $values["data"];
$_terms = wp_get_post_terms($_product->id, 'product_tag');
//echo "product slug: " . $terms[0]->slug;
//echo "cart slug: " . $_terms[0]->slug;
if ($terms[0]->slug !== $_terms[0]->slug){
//echo "NO MATCH";
$match = false;
}
}
然后添加一个控制“添加到购物车”按钮的if ($match)
语句:apply_filters('woocommerce_loop_add_to_cart_link', ...
此外,将代码添加到woocommerce / single-product / add-to-cart / simple.php并将if语句添加到“添加到购物车”按钮的位置。