2016-11-08 2 views
0

Ich möchte auf Lager Produkte zuerst in der Produktkategorie oder wenn möglich in jedem wo und dann ich nicht vorrätigen Produkte auch nach ihnen in Woocommercewoocommerce sortieren produkte von auf lager und ausverkauft in front-end

anzeigen möchten

Eigentlich gibt es viele Produkte, die nicht die Quantität Nummer haben aber die sind auf Lager, es ist also müssen auf Lager Status überprüfen, aber ich bevorzuge mehr Mengen haben erste

Wie kann ich eine Kraft für die aktuelle Sortier machen in diesem Fall? Vielen Dank

Antwort

0

Mit diesem Code:

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

?> 
Verwandte Themen