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

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

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

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

انتقال محصولات ناموجود به انتهای لیست ووکامرس یعنی بیایم محصولاتی که ناموجود هستن رو بفرستیم به ته لیست محصولات ووکامرس؛‌ اینجوری زمانیکه کاربر داره تو فروشگاه میگرده یهو وسط یه عالمه محصول موجود به محصولات ناموجود رو هم بین اینا میبینه. این یکم از نظر تجربه کاربری جالب نیست. بهتره که اگر محصولی ناموجود میشه بره ته لیست بشینه و میان محصولات موجود پیداش نشه. تو این مطلب اموزشی وردپرس ووکامرس می خواییم بهتون بگیم که چطور میشه محصولات ناموجود رو به انتهای لیست محصولات ووکامرس منتقل کنید البته بدون افزونه و بدون هیچ هزینه اضافی!

منتقل کردن محصولات ناموجود به آخر لیست محصولات ووکامرس

اول از همه بگم که تو این روش از افزونه یا چیزی استفاده نمی کنیم. بلکه از کدهایی استفاده می کنیم که توی فانکشن قرار میگیره و این انتقال و جابه جایی محصولات ناموجود با موجود رو برای ما انجام میده. این روش با کلیه قالب هایی که روشون ووکامرس نصب میشه سازگاری داره. فرقی نمیکنه قالب شما چی باشه کافیه قطعه کد زیر رو تو فانکشن قالب خودتون کپی پیست کنید. نمیدونید کجاست این فایل؟! خب لازمه وارد پیشخوان وردپرس بشید از سمت چپ نمایش روز بزنید بعد ویرایشگر قالب از منوی سمت چپ فایل functions.php رو پیدا و باز کنید. اگر میخواید تغییرات از بین نره از فایل چایلد قالب استفاده کنید. بعد از اینکار کد زیر رو تو همون فایل functions.php وارد و ذخیره کنید.

add_filter('posts_clauses', 'order_by_stock_status', 9999);
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() || is_product_taxonomy()))
    {
        $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;
}

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

اشتراک گذاری

Picture of حمید امیدی

حمید امیدی

حمید امیدی هستم ؛ فارغ التحصیل رشته مهندسی صنایع که از سال 1386 فعالیت فریلنسری خودم رو در عرصه تجارت الکترونیک شروع کردم ! تو اوج بحران کرونا بود که تصمیم گرفتم یه وب سایت جمع و جور بزنم و تجربیات و خدماتی که به خوبی بلدم رو به همگان عرضه کنم.

پست های مرتبط

12 پاسخ

  1. خیلی عالی بود استفاده کردیم. باز هم کدهای بیشتری و به روزتری رو منتشر کنین که استفاده کنیم
    ممنون از شما

  2. خیلی ممنون استفاده کردم و خوب کار میکنه
    باعث شدید در هزینه هام به شدت صرفه جویی کنم.متشکرم ازتون

  3. دم شما گرم، من کد جای دیگه رو امتحان کردم اما ترتیب محصولات رو به هم میریخت اما مال شما خیلی خوب و دقیق کار کرد، دمتون گرم

  4. دم شما گرم… بهترین کدی هست که برای نمایش محصولات ناموجود در انتهای لیست ووکامرس توی اینترنت معرفی شده. نه ترتیب پیش فرض و انتخابی رو تغییر میده و نه مشکلی برای قالب اصلی و چایلد تم ایجاد می کنه.
    از شر افزونه های به درد نخوری که دارن از 100 تا 500 هزار تومن هم می فروشن، راحت میشید.

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

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

5 × یک =