چرا باید محصولات ناموجود به انتهای لیست منتقل شوند؟
یکی از چالشهای اصلی فروشگاههای اینترنتی مدیریت محصولات ناموجود است. قرار دادن محصولات ناموجود در ابتدای لیست دستهبندیها یا آرشیو محصولات ممکن است تجربه کاربری را تحت تأثیر قرار دهد و منجر به کاهش فروش شود. به همین دلیل، انتقال این محصولات به انتهای لیست میتواند تأثیر مثبتی داشته باشد:
- بهبود تجربه کاربری: کاربران سریعتر به محصولات موجود دسترسی پیدا میکنند.
- افزایش فروش: نمایش محصولات موجود در ابتدای لیست میتواند شانس خرید را افزایش دهد.
- حفظ ظاهر حرفهای: از نمایش محصولات ناموجود بهعنوان گزینههای اصلی جلوگیری میشود.
آموزش انتقال محصولات ناموجود به انتهای لیست
برای انجام این کار، میتوانید از قطعه کد زیر استفاده کنید. این کد در فایل functions.php
قالب شما قرار میگیرد و ترتیب محصولات را به گونهای تغییر میدهد که محصولات ناموجود در انتهای لیست نمایش داده شوند.
/**
* @snippet Move out of stock products to end
* @how-to Get ostadno.com FREE
* @author Masoud Aroodipoor
*/
// تغییر ترتیب نمایش محصولات در صفحات دستهبندی و آرشیو ووکامرس
add_filter(‘woocommerce_get_catalog_ordering_args’, ‘move_out_of_stock_products_to_end’);
function move_out_of_stock_products_to_end($args) {
// تغییر آرگومان های سفارش به گونهای که محصولات ناموجود به انتهای لیست بروند
$args[‘orderby’] = array(
‘meta_value’ => ‘ASC’, // اولویت دهی به موجود بودن محصولات
‘date’ => ‘DESC’, // سپس بر اساس تاریخ ایجاد، به ترتیب نزولی
‘menu_order’ => ‘ASC’, // در نهایت بر اساس ترتیب منو
);
$args[‘meta_key’] = ‘_stock_status’; // بررسی وضعیت موجودی
return $args;
}
add_filter(‘posts_clauses’, ‘modify_woocommerce_product_query’, 10, 2);
function modify_woocommerce_product_query($clauses, $query) {
global $wpdb;
// بررسی اینکه آیا درخواست برای صفحه محصولات ووکامرس است
if (is_admin() || !$query->is_main_query() || !is_woocommerce() || is_shop()) {
return $clauses;
}
// اضافه کردن شرط برای مرتبسازی محصولات ناموجود به انتهای لیست
$clauses[‘join’] .= ” LEFT JOIN {$wpdb->postmeta} AS pm ON {$wpdb->posts}.ID = pm.post_id AND pm.meta_key = ‘_stock_status'”;
// مرتبسازی بر اساس موجود بودن محصولات و سپس بر اساس تاریخ
$clauses[‘orderby’] = ” pm.meta_value ASC, {$wpdb->posts}.post_date DESC”;
return $clauses;
}
نکات مهم
- استفاده از قالب فرزند (Child Theme): حتماً این کد را در فایل
functions.php
قالب فرزند قرار دهید تا در صورت بهروزرسانی قالب اصلی، تغییرات شما حذف نشود. - پشتیبانگیری: پیش از انجام هرگونه تغییرات در فایلهای قالب، از وبسایت خود نسخه پشتیبان تهیه کنید.
نتیجهگیری
با استفاده از این روش ساده، میتوانید تجربه کاربری فروشگاه آنلاین خود را بهبود ببخشید و محصولات موجود را در اولویت نمایش قرار دهید. این تغییر کوچک میتواند تأثیر بزرگی بر رضایت مشتریان و نرخ تبدیل فروشگاه شما داشته باشد.
پیش تر در مورد خدمات پشتیبانی فنی مجموعه فریا صحبت کرده ایم. در صورت نیاز میتوانید خدمات مورد نیاز هود را جهت بهبود سایت فروشگاهی از ما دریافت نمایید.