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

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

روش اول :شورت کد مرتب‌سازی محصولات

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

برای این کار کافی است کد زیر را در انتهای فایل functions.php قالب خود قرار دهید. پیشنهاد میدهم برای جلوگیری از بروز خطا، ابتدا از فایل یک نسخه پشتیبان بگیرید.

همچنین اگر از Child Theme استفاده میکنید، بهتر است کد را در فایل functions.php قالب فرزند قرار دهید تا تغییرات شما با بروزرسانی قالب اصلی حذف نشود.

				
					add_action('woocommerce_product_query', 'move_out_of_stock_to_end_globally');

function move_out_of_stock_to_end_globally($query) {
    if (!is_admin() && $query->is_main_query() && (is_shop() || is_product_category() || is_product_tag() || is_search() || is_home())) {
        $meta_query = $query->get('meta_query');

        // حفظ متا کوئری قبلی
        if (!$meta_query) {
            $meta_query = [];
        }

        // مرتب‌سازی محصولات موجود و ناموجود
        $query->set('orderby', array(
            'meta_key' => '_stock_status', // مرتب‌سازی بر اساس موجود بودن
            'meta_value' => 'ASC',        // اول محصولات موجود، بعد ناموجود
            'date'       => 'DESC'       // و سپس مرتب‌سازی بر اساس تاریخ
        ));

        // اطمینان از اینکه محصولات موجود و ناموجود هر دو نمایش داده می‌شوند
        $meta_query[] = array(
            'relation' => 'OR',
            array(
                'key'     => '_stock_status',
                'value'   => 'instock',
                'compare' => '='
            ),
            array(
                'key'     => '_stock_status',
                'value'   => 'outofstock',
                'compare' => '='
            )
        );

        $query->set('meta_query', $meta_query);
    }
}
				
			

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

  1. ابتدا محصولاتی که موجود هستند با مقدار _stock_status برابر با instock نمایش داده می‌شوند.
  2. سپس محصولاتی که موجود نیستند با مقدار outofstock به انتهای لیست منتقل می‌شوند.
    همچنین ترتیب مرتب‌سازی ثانویه بر اساس تاریخ تنظیم شده است تا جدیدترین محصولات بالاتر باشند.
دو روش برای نمایش محصولات ناموجود ووکامرس در انتهای لیست-۲

اگر به فایل منیجر هاست و یا FTP دسترسی دارید، فایل function.php به مسیر زیر رفته و آن را ویرایش کنید: 

				
					 wp-content/themes/your-active-theme/functions.php
				
			

در غیر این صورت میتوانید در دشبرد وردپرس در منو نمایش (Appearance) گزینه ویرایش تم را انتخاب کرده و در آنجا فایل Function.php را ویرایش نمایید.

روش دوم: استفاده از افزونه

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

۱. افزونه Extra Product Sorting Options

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

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

از دیگر ویژگی های افزونه Exta Product Sorting Options میتوان به موارد زیر اشاره کرد:

  • امکان مرتب‌سازی بر اساس موجودی، قیمت، فروش و …
  • رابط کاربری ساده برای تنظیمات.
  • بدون نیاز به کدنویسی.

۲. افزونه WooCommerce Product Filter by WooBeWoo

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

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

از دیگر ویژگی های افزونه Product Filter by WooBeWoo میتوان به موارد زیر اشاره کرد:

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

جمع‌بندی

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

البته همیشه پیش از ویرایش، تهیه نسخه پشتیبان ضروری است.

با این کد، کاربران فروشگاه شما ابتدا محصولات موجود را مشاهده خواهند کرد و تجربه بهتری از مرور فروشگاه خواهند داشت. اگر سوالی در مورد پیاده‌سازی داشتید، در بخش نظرات بپرسید!

Picture of اردلان کتابچی
اردلان کتابچی
0 0 رای ها
Article Rating
اشتراک در
اطلاع از
guest

2 Comments
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
علی
علی
5 ماه قبل

ممنونم
فقط من نتونستم توی دشبرد وردپرس گزینه ویرایش تم رو‌پیدا کنم

2
0
افکار شما را دوست داریم، لطفا نظر دهید.x