WordPress教程

Woocommerce中隐藏指定具有某个自定义字段值的产品

也想出现在这里?联系我们
创客云

Woocommerce 中隐藏指定具有某个自定义字段值的产品,我们在电商网站开发时经常遇到这种要求,其实和上一篇文章 WooCommerce 根据用户角色隐藏指定分类的产品 没有太大的区别,至少查询内容不同而已,将其添加到主题的 functions.php 文件中:

  1. add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
  2. function custom_pre_get_posts_query( $q ) {
  3. if ( ! $q->is_main_query() ) return;
  4. if ( ! $q->is_post_type_archive() ) return;
  5. if ( ! is_admin() ) {
  6. $q->set( 'meta_query', array(array(
  7.     'key'       => '_stock_status',
  8. // 字段名称
  9.     'value'     => 'outofstock',
  10. // 字段值
  11.     'compare'   => 'NOT IN'
  12. )));
  13.  
  14. }
  15. remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
  16. }
也想出现在这里?联系我们
创客主机

上面的代码就是在查询输出之前去除了,具有"缺货"字段(outofstock)的产品。当然页可以使用此方法排除每个产品分类代码如下:

  1. add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
  2. function custom_pre_get_posts_query( $q ) {
  3. if ( ! $q->is_main_query() ) return;
  4. if ( ! $q->is_post_type_archive() ) return;
  5. if ( ! is_admin() ) {
  6. $q->set( 'tax_query', array(array(
  7. 'taxonomy' => 'product_cat',
  8. 'field' => 'slug',
  9. 'terms' => array( 'PUT YOUR CATEGORY HERE' ),
  10. // Don't display products in the membership category on the shop page . For multiple category , separate it with comma.
  11. 'operator' => 'NOT IN'
  12. )));
  13.  
  14. }
  15. remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
  16. }
也想出现在这里?联系我们
创客主机
服务范围 1、专业提供WordPress主题、插件汉化、优化、PHP环境配置等服务请详询在线客服
2、本站承接 WordPress、DedeCMS、ThinkPHP 等系统建站、仿站、开发、定制等服务
3、英文模板(主题)安装费用为120元/次,汉化主题首次免费安装(二次安装30元/次)
售后时间 周一至周五(法定节假日除外) 10:00-22:00
免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 2107117185@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!
(0)

本文由 云模板 作者:PetitQ 发表,转载请注明来源!

也想出现在这里?联系我们
创客主机

热评文章

发表评论

热销模板

高端信息技术产品展示DedeCMS织梦中英文模板

Envato

本站承接 WordPress / DedeCMS / ThinkPHP 等
系统建站、仿站、开发、定制等业务!