WooCommerce按销售状态筛选产品

您所在位置:

WooCommerce 销售状态过滤产品 @ WP 控制面板

管理 WooCommerce 商店意味着要密切关注产品定价,尤其是在进行促销或销售时。然而,使用默认的 WordPress 管理界面,在数百甚至数千种产品中进行排序,以找到具有活动促销价格的产品,可能是一项乏味的任务。

试想一下,如果能快速过滤产品列表,只显示当前正在销售的产品,您就可以简化更新和促销策略…

在本篇文章中,我将向您展示如何通过一个简单的 PHP 代码段来增强您的 WooCommerce 管理面板,为销售状态添加一个自定义过滤器。

这个解决方案不仅能节省您的时间,还能简化库存管理,让您更轻松地策划营销活动并有效更新产品详细信息。让我们深入代码,开始使用!

WooCommerce按销售状态筛选产品
WooCommerce按销售状态筛选产品

PHP 码段: 添加销售状态过滤下拉菜 @ WooCommerce 产品管理员

 
add_action( 'restrict_manage_posts', 'bbloomer_filter_products_by_sale_status', 9999 );
 
function bbloomer_filter_products_by_sale_status() {
    global $typenow;
    if ( 'product' === $typenow ) {
        $selected = isset( $_GET['sale_status'] ) ? $_GET['sale_status'] : '';
        ?>
        <select name="sale_status">
            <option value="">Filter by sale status</option>
            <option value="on_sale" <?php selected( $selected, 'on_sale' ); ?>>On Sale</option>
            <option value="not_on_sale" <?php selected( $selected, 'not_on_sale' ); ?>>Not on Sale</option>
        </select>
        <?php
    }
}
 
add_filter( 'request', 'bbloomer_filter_products_query_by_sale_status' );
 
function bbloomer_filter_products_query_by_sale_status( $query_vars ) {
   if ( isset( $query_vars['post_type'] ) && 'product' === $query_vars['post_type'] && isset( $_GET['sale_status'] ) && '' !== $_GET['sale_status'] ) {
      $sale_status = sanitize_text_field( wp_unslash( $_GET['sale_status'] ) );
      $now = current_time( 'timestamp' );
      if ( ! isset( $query_vars['meta_query'] ) || ! is_array( $query_vars['meta_query'] ) ) {
         $query_vars['meta_query'] = array();
      }
      if ( 'on_sale' === $sale_status ) {
         $query_vars['meta_query'][] = array(
            'key'     => '_sale_price',
            'value'   => 0,
            'compare' => '>',
            'type'    => 'NUMERIC',
         );
         $query_vars['meta_query'][] = array(
            'relation' => 'OR',
            array(
               'key'     => '_sale_price_dates_from',
               'compare' => 'NOT EXISTS',
            ),
            array(
               'key'     => '_sale_price_dates_from',
               'value'   => $now,
               'compare' => '<=',
               'type'    => 'NUMERIC',
            ),
         );
         $query_vars['meta_query'][] = array(
            'relation' => 'OR',
            array(
               'key'     => '_sale_price_dates_to',
               'compare' => 'NOT EXISTS',
            ),
            array(
               'key'     => '_sale_price_dates_to',
               'value'   => $now,
               'compare' => '>=',
               'type'    => 'NUMERIC',
            ),
         );
      } elseif ( 'not_on_sale' === $sale_status ) {
         $query_vars['meta_query'][] = array(
            'relation' => 'OR',
            array(
               'key'     => '_sale_price',
               'compare' => 'NOT EXISTS',
            ),
            array(
               'key'     => '_sale_price',
               'value'   => '',
               'compare' => '=',
            ),
            array(
               'key'     => '_sale_price_dates_from',
               'value'   => $now,
               'compare' => '>',
               'type'    => 'NUMERIC',
            ),
            array(
               'key'     => '_sale_price_dates_to',
               'value'   => $now,
               'compare' => '<',
               'type'    => 'NUMERIC',
            ),
         );       
      }
   }
   return $query_vars;
}

 

在领英上分享这篇文章
本篇文章内容
    Add a header to begin generating the table of contents

    联系我们

    郑州白帽子网络科技有限公司是一家专业做外贸网站建设,谷歌SEO优化、谷歌SEM推广公司。
    郑州白帽子网络科技微信图
    添加请说明需求
    郑州白帽子

    郑州白帽子

    郑州白帽子是一家提供外贸网站定制和白帽谷歌SEO优化的公司,我们会不定期的分享关于外贸的一些知识,以及如何进行外贸建站和谷歌SEO优化推广。我们的核心价值观是给客户提供价值,通过我们专业的服务让客户获得更多的询盘!了解更多关于外贸、外贸建站谷歌SEO优化推广的细节,欢迎联系我们!

    发表评论

    您的邮箱地址不会被公开。 必填项已用 * 标注

    更多文章
    cloudflare 导致邮箱收不到邮件
    外贸建站

    域名修改为Cloudflare DNS后邮箱客户端收不到邮件

    Cloudflare CDN可以提高网站加载速度和保障网站安全,因为cloudflare可以托管你的DNS,只需要在域名注册平台将DNS修改为cloudflare的DNS即可。CF会自动扫描你的域名DNS并将DNS复制到它自己的DNS中。但是在实际的操作中,有客户反馈说是将DNS修改cloudflare DNS后,foxmail 收不到邮件了, 经常出现连接不上服务器。这篇文章就是解决这个问题的。

    可视化面板有哪些
    外贸建站

    为什么不建议使用不带cpanel面板的服务器

    服务器是独立站的一个基础,因为涉及到网站安全,谷歌SEO优化等,服务器这方面是不能省的。你可能听别人说过,一个网站的服务器费用一年也就只有几百块钱,为什么你推荐的服务器需要这么贵?这篇文章我们就来聊下这个事。

    Rank Math SEO插件无法保存关键词
    谷歌SEO排名优化

    Rank Math SEO插件无法保存关键词

    如果你的独立站使用的Rank Math的SEO插件,发现设置了核心关键词,但是在保存或者Publish以后发现关键词消失了,并没有保存。如果出现这个问题,可以按这个文章介绍的流程解决。

    滚动至顶部

    登陆

    注册