אם יש לכם חנות וורדפרס עם ווקומרס והרבה מוצרים שמתחלפים מישנים לחדשים או שנגמרו במלאי יש 2 אפשרויות.
- למחוק אותם ידנית או להגדיר בווקומרס לא להציג מוצרים שלא במלאי בכלל.
- להשאיר אותם אבל בסוף הרשימה של כל קטגוריה, שזה עדיף מכל הבחינות במיוחד ל SEO.
אז איך עושים את זה? פשוט!
יש להדביק את קטע הקוד שיש לנו כאן בקובץ function.php של ערכת הנושא שלכם (עדיף תבנית בת).
לאחר הטמעת הקוד הזה, כל המוצרים שלא במלאי לא ייעלמו מחנות הוורדפרס שלכם, אלה יופיעו למטה בסוף רשימת המוצרים שלכם (בכל קטגוריה). אחלה דבר.
יללה – העתק הדבק ל- function.php – שלא תגידו שזה לא חידוש פצצה.
/**
* Sorting out of stock WooCommerce products – Order product collections by stock status, in-stock 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;
/**
* END – Order product collections by stock status, instock products first.
*/