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

3.6 / 5. تعداد رای: 16

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

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

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

برای مدیریت موجودی انبار محصولات خود، کافیست وارد بخش محصولات شوید و یکی از محصولات سایت خود را ویرایش کنید.

مدیریت محصولات ووکامرس
مدیریت محصولات ووکامرس

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

مدیریت موجودی انبار ووکامرس
مدیریت موجودی انبار ووکامرس

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

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

پس از به صفر رسیدن موجودی انبار، متغیری به نام _stock_status در ووکامرس داریم که این متغیر به حالت ناموجود تغییر خواهد کرد. در چنین شرایطی می‌توانیم محصولات را بر اساس عدم موجودی در انبار، در انتهای لیست نمایش دهیم.

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

ویرایشگر قالب وردپرس
ویرایشگر قالب وردپرس

سپس از سمت چپ، فایل functions.php یا توابع پوسته را باز کنید.

فایل توابع پوسته وردپرس
فایل توابع پوسته وردپرس

در خط دوم این فایل، کد زیر را وارد کرده و فایل را ذخیره کنید.

add_filter( 'woocommerce_get_catalog_ordering_args', 'mihanwp_sort_by_stock', 9999 );
 
function mihanwp_sort_by_stock( $args ) {
   $args['orderby'] = 'meta_value';
   $args['order'] = 'ASC';
   $args['meta_key'] = '_stock_status';
   return $args;
}

چنان‌چه این فایل از طریق پنل مدیریت وردپرس قابل تغییر نبود، آموزش تغییر کدهای قالب وردپرس را ببینید.

به همین راحتی! با وارد کردن کد بالا به وردپرس دستور داده شد تا محصولاتی که ناموجود هستند را در انتهای فهرست محصولات نمایش دهد. 🙂

موفق باشید.

نکته خاصی هست که این مقاله رو تکمیل‌تر کنه؟

  1. U356504 ۱۵ مهر ۱۴۰۳

    سلام…بخش نمایش من گزینه ویرایشگر رو نداره چیکار کنم

  2. U356504 ۱۵ مهر ۱۴۰۳

    بخش نمایش من گزینه ویرایشگر رو نداره چیکار کنم

  3. U355246 ۲ مهر ۱۴۰۳

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

    add_filter( ‘posts_clauses’, ‘move_products_without_price_to_end’, 9999, 2 );
    function move_products_without_price_to_end( $clauses, $wp_query ) {
    global $wpdb;

    // فقط برای کوئری‌های صفحه فروشگاه اعمال شود
    if ( is_shop() || is_product_category() || is_product_tag() ) {
    // اضافه کردن شرط برای مرتب‌سازی محصولات بر اساس قیمت
    $clauses[‘join’] .= ” LEFT JOIN {$wpdb->postmeta} AS wc_product_price ON {$wpdb->posts}.ID = wc_product_price.post_id AND wc_product_price.meta_key = ‘_price'”;

    // ابتدا محصولات با قیمت، سپس محصولات بدون قیمت
    $clauses[‘orderby’] = ” wc_product_price.meta_value ASC, ” . $clauses[‘orderby’];
    }

    return $clauses;
    }

  4. U351601 ۲۵ مرداد ۱۴۰۳

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

  5. U349116 ۳۱ تیر ۱۴۰۳

    یه تابع تعریف کردین به اسم mihanwp که ادرس سایت خودتون هست !!!!

  6. U341149 ۷ فروردین ۱۴۰۳

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

  7. U339348 ۵ اسفند ۱۴۰۲

    سلام من این کار رو انجام دادم ولی هیچ تغیری صورت نگرفت

  8. U327843 ۱۹ مرداد ۱۴۰۲

    نمی دونم چرا کدی که گفتید باید باشه ارسال نشد:
    ساختار فایل functions.php چگونه است؟

  9. U327843 ۱۹ مرداد ۱۴۰۲

    ساختار فایل functions.php چگونه است؟
    تنها نکته مهم و ضروری در رابطه با فایل functions.php در این است که باید ابتدای این فایل از کد استفاده کنید. توجه به این نکته بسیار حائز اهمیت است و شما باید حتماً آن را در دستور کار خود قرار دهید؛ در غیر این صورت استفاده از این فایل برای شما امکان‌پذیر نخواهد بود. نمونه کاری که شما باید در این خصوص انجام دهید مانند مثال زیر است.

  10. U327843 ۱۹ مرداد ۱۴۰۲

    سلام و ارادت اقا رضا

    در مقاله دیگری شما گفتید که :
    ساختار فایل functions.php چگونه است؟
    تنها نکته مهم و ضروری در رابطه با فایل functions.php در این است که باید ابتدای این فایل از کد استفاده کنید. توجه به این نکته بسیار حائز اهمیت است و شما باید حتماً آن را در دستور کار خود قرار دهید؛ در غیر این صورت استفاده از این فایل برای شما امکان‌پذیر نخواهد بود. نمونه کاری که شما باید در این خصوص انجام دهید مانند مثال زیر است.

    چرا اینجا تو این خط کد (که برای نمایش ناموجود در پایین صفحه )برای اضافه کردن به فانکشن هست چیزی نفرمودین در مورد بالا؟

    ممنونم

  11. U322975 ۲ اردیبهشت ۱۴۰۲

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

  12. U319814 ۳ دی ۱۴۰۱

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

  13. U316228 ۲۲ مرداد ۱۴۰۱

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

  14. U313871 ۱۴ خرداد ۱۴۰۱

    سلام و عرض ادب.بنده کد رو وارد کردم و کاملا درست و صحیح کار میکنه فقط مسئله ای هست بعد ثبت کد وقتی محصول جدیدی ثبت میکنم به انتهای لیست میره متاسفانه.قالب اهورا دارم

  15. U313871 ۱۰ خرداد ۱۴۰۱

    سلام خط دوم منظور ردیف شماره 2 هست؟

  16. U313871 ۹ خرداد ۱۴۰۱

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

  17. U29295 ۱۴ اسفند ۱۴۰۰

    کد برعکس کار می کند

  18. U311989 ۷ اسفند ۱۴۰۰

    خیلی عالی ، دم شما گرم

  19. U44117 ۹ آبان ۱۴۰۰

    سلام من کدی که گفتید رو وارد کردم و این کد حل کرد مشکل رو ممنونم
    ولی یه مشکل دیگه ایجاد کرده که متاسفانه تو دسته بندی ها محصولاتی که جدید هستن رفتن پایین و محصولاتی که قدیمی تر هستن اومدن بالا
    چطوری میتونم این مشکل رو حل کنم؟

  20. U41049 ۱۶ شهریور ۱۴۰۰

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

  21. U27780 ۲۷ آذر ۱۳۹۹

    سلام و وقت بخیر
    در صورتی که قالب رو آپدیت یا عوض کردم دوباره باید کد ها رو بزارم یا نه ؟

    • تیم پشتیبانی تیم پشتیبانی ۲۹ آذر ۱۳۹۹

      باسلام
      اگر تغییرات روروی چایلدتم اعمال کنید خیر نیاز نیست مجدد کد ها رو وارد بفرمایید

  22. U29102 ۱۴ آذر ۱۳۹۹

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

  23. U27749 ۱ آذر ۱۳۹۹

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

    • تیم پشتیبانی تیم پشتیبانی ۱ آذر ۱۳۹۹

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

    • U33935 ۲ تیر ۱۴۰۰

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