提问者:小点点

从Woocommerce主页上的快捷码隐藏在售产品


我试图隐藏主页上的所有销售产品,该主页使用Woocommerce短代码显示产品。我是新来的,在到处寻找之后,我找不到解决办法。

我试图使用隐藏所有在售产品在WooCommerce商店页面答案代码,它在商店页面上工作。

有没有办法让这个代码应用到主页而不是店铺页面?

我尝试了这个稍加修改的版本:

add_filter( 'woocommerce_product_query_meta_query', 'on_sale_products_not_in_archives', 10, 2 );
function on_sale_products_not_in_archives( $meta_query, $query ) {
    // For woocommerce shop pages
    if( is_page( 87 ) ){
        $meta_query[] = array(
            'key'     => '_sale_price',
            'value'   => '',
            'compare' => '=',
       );
    }
    return $meta_query;
}

但是没有成功。

在此方面的任何帮助都将不胜感激。


共1个答案

匿名用户

要使用短代码过滤产品查询,您需要使用woocommerce_shortcode_products_query过滤钩子,但这将适用于除变量产品之外的所有产品。

代码(仅针对主页):

add_filter( 'woocommerce_shortcode_products_query', 'hide_on_sale_products_in_home', 50, 3 );
function hide_on_sale_products_in_home( $query_args, $atts, $loop_name ){
    if( is_front_page() ){

        $query_args['meta_query'] = array( array(
            'key'     => '_sale_price',
            'value'   => '',
            'compare' => '=',
        ) );
    }
    return $query_args;
}

代码进入函数。活动子主题(或活动主题)的php文件。测试和工作。