php - 使用 WP_Query 仅显示库存产品中的 WooCommerce

标签 php wordpress woocommerce product stock

我有这个代码,它显示了最好的销售,但它也显示了没有库存的产品,我该如何修改代码。这样它只显示有库存的产品? .谢谢!

$best_sellers_args = array(

    'post_type' => 'product', 

    'meta_key' => 'total_sales',        

    'posts_per_page' => 6,

    'orderby' =>'meta_value_num',

    'order' => 'DESC'

);

$products = new WP_Query( $best_sellers_args );

最佳答案

从 WooCommerce 3 开始,有两种方法可以在您的 WP_Query 中排除“缺货”产品:

1) 包括一个税务查询,例如:

$products = new WP_Query( array(
    'post_type' => 'product',
    'meta_key' => 'total_sales',
    'posts_per_page' => 6,
    'orderby' =>'meta_value_num',
    'order' => 'DESC',
    'tax_query' => array( array(
        'taxonomy' => 'product_visibility',
        'field'    => 'name',
        'terms'    => array('outofstock'),
        'operator' => 'NOT IN'
    ) ),
) );

2) 包含一个元查询,例如:

$products = new WP_Query( array(
    'post_type' => 'product',
    'meta_key' => 'total_sales',
    'posts_per_page' => 6,
    'orderby' =>'meta_value_num',
    'order' => 'DESC',
    'meta_query' => array( array(
        'key'     => '_stock_status',
        'value'   => 'outofstock',
        'compare' => '!=',
    ) ),
) );

两种方式都有效。

关于php - 使用 WP_Query 仅显示库存产品中的 WooCommerce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56137935/

相关文章:

php - Woocommerce get_item() 函数返回 false

PHP 文件包含错误

php - FPDF SetX 和 SetY 调用顺序错误?

html - 并排 float 无符号列表中的 2 个元素

wordpress - WordPress 中的 walker 类是如何工作的?

php - 如何在我的过滤器 Hook 中获取订单对象

php - 优化MySQL数百条记录合并为一百组

php - 将 group_start 与 codeigniter 一起使用。需要 OR 而不是 AND

html - 在 Wordpress 中隐藏表格边框

php - 避免在 Woocommerce 中结账混合延期交货和正常商品