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

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

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

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

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

اول از همه بگم که تو این روش از افزونه یا چیزی استفاده نمی کنیم. بلکه از کدهایی استفاده می کنیم که توی فانکشن قرار میگیره و این انتقال و جابه جایی محصولات ناموجود با موجود رو برای ما انجام میده. این روش با کلیه قالب هایی که روشون ووکامرس نصب میشه سازگاری داره. فرقی نمیکنه قالب شما چی باشه کافیه قطعه کد زیر رو تو فانکشن قالب خودتون کپی پیست کنید. نمیدونید کجاست این فایل؟! خب لازمه وارد پیشخوان وردپرس بشید از سمت چپ نمایش روز بزنید بعد ویرایشگر قالب از منوی سمت چپ فایل 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 ووکامرس و سایر برگه های مربوطه اش انتهای لیست قرار میگیره. البته توجه کنید که برای ناموجود کرد محصولات باید از تنظیمات ووکامرس یا همون بخش پیکربندی مدیریت موجودی رو فعال کنید. امیدوارم این اموزش هم که واقعا حسابی به درد سایت های فروشگاهی ووکامرس میخوره به کارتون اومده باشه.

دیدگاه کاربران
  • محمدمهدی گودرزی 15 مرداد 1401

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

    • حمید امیدی 18 مرداد 1401

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

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.