2016-11-08 9 views
0

在庫商品を最初に商品カテゴリに表示したい場合や可能な限りどこでも在庫商品をWoocommerceであとで表示したいwoocommerce製品を仕掛けてフロントエンドに在庫しないでください

実際にどのように私は、現在のソートのために力を加えることができない量の番号を持っていますが、それらの在庫がある多くの製品がありますので、在庫状況をチェックインする必要がある、しかし、私は

最初のより多くの量を持っていることを好みますこのような場合には? は、このコードを使用して非常に

答えて

0

ありがとう:

<?php 

/** 
* Order product collections by stock status, instock products first. 
*/ 
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; 

?> 
関連する問題