如何在主页上隐藏脱销产品,而不是从目录中隐藏?

时间:2019-03-08 作者:RFL

我知道有这个选项admin 如果没有库存,则从整个目录中隐藏产品,但如何仅从主页而不是从整个目录中隐藏这些产品?

我希望能够搜索产品并查看它,即使它没有库存。

3 个回复
SO网友:Shihab

假设您使用的是店面默认主页模板。您可以在hompepage上显示之前过滤产品

function rfl_show_backorders( $is_visible, $id ) {
    $product = new wC_Product( $id );

    if ( ! $product->is_in_stock() && ! $product->backorders_allowed() && is_front_page() ) {
        $is_visible = false;
    }

    return $is_visible;
}
add_filter( \'woocommerce_product_is_visible\', \'rfl_show_backorders\', 10, 2 );

SO网友:Pratik Patel

您可以检查当前页面是否HOME 页面如下:

您可以检查产品是否有库存或未使用$product->is_in_stock() 在您的循环中。

if ( is_front_page() || is_home() ) {
    // Out of products stuff here
}
希望它能帮助你!

SO网友:nmr

仅显示in stock 您可以添加的产品_stock_status 使用适当的值键入meta query.

add_filter(\'woocommerce_product_query_meta_query\', \'wpse_331086_instock_homepage\', 20);

function wpse_331086_instock_homepage( $meta_query )
{
    //
    // is_shop()        - apply on shop homepage (product archive page)
    // is_front_page()  - apply on site homepage
    //
    // stock status: \'instock\', \'outofstock\', \'onbackorder\'
    if ( is_shop() ) {
        $meta_query[] = array(
            \'key\'           => \'_stock_status\',
            \'value\'         => \'instock\',
            \'compare\'       => \'=\'
        );
    }
    return $meta_query;
}
代码进入functions.php 主题的文件。

相关推荐

Subscribe2 Configuration

我试图将Subscribe2配置为让用户选择他们想要的类别,而不是它似乎采用的“全有或全无”方法。本质上,我使用WP作为CMS,而不是博客滚动,但我目前有2个“博客滚动”,通过在页面上显示最新的帖子来表示(它们是页面长度的帖子)。我想在更新Cat 1或Cat 2时发送一封电子邮件,类似于未来的类别,但用户只能选择Cat 1电子邮件。我已经阅读了常见问题解答,但没有结果,这是否真的得到了支持?