php - 从 Woocommerce 主页上的简码隐藏促销产品

标签 php wordpress woocommerce product shortcode

我试图隐藏主页上使用 Woocommerce 短代码显示产品的所有销售产品。我是新来的,在上下搜索之后,我找不到解决方案。

我试过使用Hide all on sale products on Woocommerce shop page回答代码,它在商店页面上有效。

有没有办法将此代码应用到主页而不是商店页面?

我试过这个稍微修改过的版本:

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;
}

但是没有用。

感谢任何帮助。

最佳答案

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

代码(仅针对主页):

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;
}

代码进入事件子主题(或事件主题)的 function.php 文件。测试和工作。

关于php - 从 Woocommerce 主页上的简码隐藏促销产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53753008/

相关文章:

woocommerce - 从订单中获取送货地址,woocommerce

php - 是否可以使用 PHP 在表单提交中指定 "Reply From"电子邮件地址?

php - 在 Woocommerce 的任何地方保存并显示特定的支付网关附加字段

php - 提交按钮影响的不仅仅是一行

javascript 杀死了我的其他脚本。我该怎么做才能隔离它?

mysql - WordPress 表 wp_options 已被黑客攻击

javascript - 插件开发的Wordpress基础 'bootstrap'代码

php - WooCommerce - 在添加到购物车事件中清空当前购物车

php - 推送通知正在发送到服务器但未出现在手机上

php - 多个 PHP MySQL 插入