我们有一个POS系统运行在woocommerce上,我们使用它来进行即时采购。这意味着我们有一个类别的项目,我们不出售在网上。我有一个插件,它成功地将这些类别和相关产品隐藏在前端,但这不会影响我们使用recent_products短代码时所显示的项目。
我试图通过销毁这个短代码来隐藏这个特定的类别,但是这些项目仍然显示:
[recent_products per_page="4" order="desc" cat_operator="NOT IN" category="instore"]
这甚至可能使用最近的产品的短代码吗?我可能遗漏了什么,还是有其他方法可以显示新产品并排除'instore‘- instore是类别段格,顺便说一句,整个类别名是Instore only。
这件事已经困扰我一段时间了。
任何建议都将受到欢迎。
向唐娜问好
发布于 2022-07-18 17:04:32
既然你想把它隐藏起来,为什么我们不试一试:
function dont_show_instore_products( $args, $atts ) {
$args['tax_query'][] = [
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => ['instore'],
'operator' => 'NOT IN'
];
return $args;
}
add_filter( 'woocommerce_shortcode_products_query', 'dont_show_instore_products', 10, 2 );
只需将其添加到主题的functions.php
中,就在结束?>
之前,或者如果functions.php
没有?>
,只需将其添加到最后一行之后,让我们看看它是否做了它应该做的事情。
发布于 2022-07-08 17:29:12
单独使用recent_products
短代码是不可能的.需要用一些PHP代码连接到woocommerce_shortcode_products_query
过滤器。尽管我认为您可以使用这样的products
短代码实现您想要的结果:
[products limit="4" orderby="id" order="DESC" visibility="visible" cat_operator="NOT IN" category="instore"]
这里有更多的例子:https://woocommerce.com/document/woocommerce-shortcodes/#scenario-4-newest-products
https://stackoverflow.com/questions/72914778
复制相似问题