我有一个WooCommerce网站与响应超市在线主题- Oswad安装。每个产品都有对应于不同供应商的4个标签中的一个。在加入购物车时,我需要做的是:
我知道我可以用if ( has_term( 'tag', 'product_tag') )检查标签,
在add-to-cart.php中,$product->isPurchasable()将切换按钮的可见性。
我的绊脚石是找出如何把所有这些放在一起来满足需求。我试图寻找如何限制购物车项目的类别,但提出了死胡同。我寻找插件,但那些限制了每个订单的最小/最高产品,而不是检查项目的类别/标签。我甚至试着去看那些钩子,但最后却变得更加困惑。
如果我能找到一个指向正确方向的指针,会很感激的。
发布于 2015-09-03 10:06:15
一种可能的解决方案是在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;
}
}然后添加一个控制add to cart按钮的if ($match)语句:apply_filters('woocommerce_loop_add_to_cart_link', ...
另外,将代码添加到woocommerce/single-product/add-to-cart/simple.php,并将if语句添加到add按钮的位置。
https://stackoverflow.com/questions/32348888
复制相似问题