【问题标题】:Hide out of stock products only on shop archive pages in Woocommerce仅在 Woocommerce 的商店存档页面上隐藏缺货产品
【发布时间】:2017-12-17 18:49:35
【问题描述】:

我试图仅从商店页面隐藏缺货产品,但将它们保留在单独的类别页面上。

Woocommerce 设置只允许选择显示缺货产品或完全隐藏它们。

如何仅在 Woocommerce 的商店存档页面上隐藏缺货产品?

【问题讨论】:

    标签: php wordpress woocommerce product stock


    【解决方案1】:

    更新:使用挂在 woocommerce_product_query_meta_query 过滤器挂钩中的自定义函数,仅针对商店存档页面上的非“缺货”产品:

    add_filter( 'woocommerce_product_query_meta_query', 'shop_only_instock_products', 10, 2 );
    function shop_only_instock_products( $meta_query, $query ) {
        // Only on shop archive pages
        if( is_admin() || is_search() || ! is_shop() ) return $meta_query;
    
        $meta_query[] = array(
            'key'     => '_stock_status',
            'value'   => 'outofstock',
            'compare' => '!='
        );
        return $meta_query;
    }
    

    此代码位于您的活动子主题(或主题)的 function.php 文件中或任何插件文件中。

    经过测试并且可以工作

    【讨论】:

    • 您好,感谢您的回复。老实说,我对在 Wordpress 中编辑 php 和在 php 中总体上是新的有点陌生。我已将此代码粘贴到子主题中的functions.php 中,但出现以下错误。 prntscr.com/hot6mv
    • 谢谢,这工作:) 但现在我有其他问题。我正在使用 YITH 产品过滤器,它适用于商店页面,但是当我转到我的产品缺货的类别页面时,如果我选择过滤器,则不会显示任何产品。我为该问题找到了一些代码,但它不起作用。 add_filter ('yith_wcan_use_wp_the_query_object', '__return_true');
    • 好的,抱歉。谢谢 :) 我会添加新问题。
    猜你喜欢
    • 2021-08-31
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多