多个排序条件(排序依据)

时间:2018-07-30 作者:Twissell

我希望我的产品按价格(升序)排序,缺货的产品放在产品列表的末尾。我如何在WooCommerce中实现这一点?

是否有可能实施?

我正在使用Wordpress 4.9.7和WooCommerce 3.4.3

1 个回复
最合适的回答,由SO网友:Twissell 整理而成

这个solution 就像时间一样古老。

前面已经描述过了。放入函数。php

class iWC_Orderby_Stock_Status
{

 public function __construct()
 {
  // Check if WooCommerce is active
  if (in_array(\'woocommerce/woocommerce.php\', apply_filters(\'active_plugins\', get_option(\'active_plugins\')))) {
   add_filter(\'posts_clauses\', array($this, \'order_by_stock_status\'), 2000);
  }
 }

 public 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())) {
   $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;
 }
}

new iWC_Orderby_Stock_Status;
一切都在袋子里。这个解决方案适合我的需要。

结束

相关推荐

使用PRE_GET_POST将orderby设置为自定义字段

我正在使用ACF插件创建自定义字段,这些字段将应用于自定义帖子类型(项目)。在我的功能中。php文件我正在尝试使用pre\\u get\\u posts来使用自定义字段更改自定义post类型存档的顺序。function apply_projects_query_filter ($query) { if (is_admin()) { return $query; } if (is_archive() &&