在Woocommerce中显示缺货产品
2022-08-30 16:59:13
是否可以在wordpress中在类别或页面的末尾显示缺货产品?
因此,客户首先看到可用的产品,然后看到缺货的产品。
是否可以在wordpress中在类别或页面的末尾显示缺货产品?
因此,客户首先看到可用的产品,然后看到缺货的产品。
这与Viktor & Bogdan的答案相同,但没有额外的Class代码。
它使用筛选器来修改产品查询。我们将wp_postmeta表添加到查询中,并在现有查询前面附加一个子句。这样,任何其他子句也会保留在查询中。post_clause
JOIN
orderby _stock_status
orderby
add_filter('posts_clauses', 'order_by_stock_status');
function order_by_stock_status($posts_clauses) {
global $wpdb;
// only change query on WooCommerce loops
if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag() || is_product_taxonomy())) {
$posts_clauses['join'] .= " INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) ";
$posts_clauses['orderby'] = " istockstatus.meta_value ASC, " . $posts_clauses['orderby'];
$posts_clauses['where'] = " AND istockstatus.meta_key = '_stock_status' AND istockstatus.meta_value <> '' " . $posts_clauses['where'];
}
return $posts_clauses;
}
如果您出于某种原因想要先缺货商品,则可以更改为。istockstatus.meta_value ASC
istockstatus.meta_value DESC
在WP上测试:4.8;卫生间 3.0.8
我尝试了上述所有解决方案,它们有效,但导致网站上的其他问题(可能是由于主题冲突),我确信它们在不同情况/主题下都很好。下面的代码最终对我很好(提到的源代码)
来源:https://www.businessbloomer.com/woocommerce-show-in-stock-products-first-shop/
/**
* @snippet Sort Products By Stock Status - WooCommerce Shop
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 3.9
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_filter( 'woocommerce_get_catalog_ordering_args', 'bbloomer_first_sort_by_stock_amount', 9999 );
function bbloomer_first_sort_by_stock_amount( $args ) {
$args['orderby'] = 'meta_value';
$args['order'] = 'ASC';
$args['meta_key'] = '_stock_status';
return $args;
}