نمایش محصولات ناموجود در ووکامرس در انتهای لیست محصولات

BahramElf

کاربر عضو
سلام

راهی هست که صفحات نمایش محصولات مثل دسته بندی و برچسب و... ووکامرس محصولات ناموجود رو در انتهای لیست محصولات نمایش بده؟ به عنوان مثال اگر مشتری در منو روی کلمه انگشتر کلیک کرد که به صفحه محصولات دسته انگشتر هدایت میشه، محصولات ناموجود در صفحات آخر باشند و

 یک صفحه داشته باشیم که تمام محصولات فروشگاه رو نمایش بده اما باز هم محصولات ناموجود در انتهای لیست قرار بگیرند. 

پیشاپیش سپاسگذارم

 

amraja

تازه وارد
من هم این سوال رو دارم کسی پاسخی داشت بده

 

Mohammad

مدیر انجمن
پرسنل مدیریت
این موضوع اسمش میشه "نمایش محصولات موجود در ابتدای لیست" یا "نمایش بر اساس موجودی"

کد زیر رو در فانکشن قالبتون قرار بدید . یک فایل با نام functions.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.
*/
 

amraja

تازه وارد
این موضوع اسمش میشه "نمایش محصولات موجود در ابتدای لیست" یا "نمایش بر اساس موجودی"

کد زیر رو در فانکشن قالبتون قرار بدید . یک فایل با نام functions.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.
*/

سلام مشکل این کد این هست که بقیه امکانات ماننده نمایش به ترتیب قیمت یا نمایش به ترتیب بیشترین فروش رو از ما میگیره. درسته؟

 

m0h4mm4d

کاربر عضو
من هم این سوال رو دارم کسی پاسخی داشت بده
سلام من هم همین سوال را دارم ، من میخوام کالا به صورت نزولی مرتب بشه و اول موجود ها نمایش داده بشه . کد را تست کردید ؟ میشه بفرمایید نتیجه داد یا خیر ؟؟

 

m0h4mm4d

کاربر عضو
دوستان سرتون خلوت شد ، ممنون میشم یک سری به اینجا بزنید . حالا که دیگه تلگرام و اینستا هم ندارید . :->

 

Mohammad

مدیر انجمن
پرسنل مدیریت
فعلا راهکاری ندارم. تلاش میکنم یک filter بنویسیم برای این کار

 

Mosetar75

تازه وارد
سلام

برای سرچینگ چه کدی بزنم؟

میخوام بعد از سرچ کردن یک دسته از محصول اول موجود هارو نمایش بده

 

Mahdavyyar

تازه وارد
سلام

برای سرچینگ چه کدی بزنم؟

میخوام بعد از سرچ کردن یک دسته از محصول اول موجود هارو نمایش بده
کد بالا که دوست عزیز و استاد گرانقدر گذاشتند در صفحه محصولات درست جواب میده ولی در صفحه نتایج جستجو جواب نمیده و ترتیب بر اساس موجودی نمیشه. 

به هر حال از زحمتشون کمال تشکر و قدردانی داریم

 
آخرین ویرایش توسط مدیر:

Mosetar75

تازه وارد
کد بالا که دوست عزیز و استاد گرانقدر گذاشتند در صفحه محصولات درست جواب میده ولی در صفحه نتایج جستجو جواب نمیده و ترتیب بر اساس موجودی نمیشه. 

به هر حال از زحمتشون کمال تشکر و قدردانی داریم
خب راه حلی هست برای سرچ؟

 

BahramElf

کاربر عضو
به طور کل هنوز راه حلی برای این موضوع پیدا نشده که بشه مرتب سازی محصولات رو بر اساس موجودی انجام داد و مرتب سازی پیش فرض هم همین باشه و محصولات موجود در ابتدا نمایش داده بشه و ناموجود ها آخر از همه.

کد بالا هم اختلالاتی در سرچ و سایر بخش هایی که مطالب یا محصولات به صورت آرشیو نمایش داده می شوند ایجاد می کنه.

منتظر رهکار ها و راهنمایی های دوستان هستیم

 

Mahdavyyar

تازه وارد
به طور کل هنوز راه حلی برای این موضوع پیدا نشده که بشه مرتب سازی محصولات رو بر اساس موجودی انجام داد و مرتب سازی پیش فرض هم همین باشه و محصولات موجود در ابتدا نمایش داده بشه و ناموجود ها آخر از همه.

کد بالا هم اختلالاتی در سرچ و سایر بخش هایی که مطالب یا محصولات به صورت آرشیو نمایش داده می شوند ایجاد می کنه.

منتظر رهکار ها و راهنمایی های دوستان هستیم
چه اختلالی ایجاد می کنه؟

چون من از کد بالا استفاده کردم و ظاهرا مشکلی نداشته تا حالا.

 

BahramElf

کاربر عضو
کد بالا که دوست عزیز و استاد گرانقدر گذاشتند در صفحه محصولات درست جواب میده ولی در صفحه نتایج جستجو جواب نمیده و ترتیب بر اساس موجودی نمیشه. 

به هر حال از زحمتشون کمال تشکر و قدردانی داریم
برای من تو سرچ، شما خودتونم اشاره کردید بالا

یکی دیگه از دوستان هم ظاهرا با گذاشتن این کد سایز روش های مرتب سازیشون غیر فعال شده، البته من خودم هم فعلا از همین کد استفاده می کنم، اما در عجبم از اینکه چرا خود ووکامرس این روش مرتب سازی رو به روش های پیش فرض اضافه نمیکنه؟؟؟ به هر روی اگر بشه این روش رو به یکی از روش های مرتب سازی مثل روش های اولیه ووکامرس اضافه کنیم خیلی خوب میشه

 
بالا