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

خانه / وبلاگ / آموزش ووکامرس / نمایش محصولات ناموجود ووکامرس در انتهای لیست
5 / 5
2
unavailable-products

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

5 / 5
2

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

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

E-Commerce

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

شروع کار

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

/**
* Sorting out of stock WooCommerce products - Order product collections by stock status, in-stock products first.
*/
class iWC_Orderby_Stock_Status
{
public function __construct()
{
// Check if WooCommerce is active
if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) {
add_filter('posts_clauses', array($this, 'order_by_stock_status'), 2000);
}
}
public 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())) {
$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;
}
}
new iWC_Orderby_Stock_Status;
/**
* END - Order product collections by stock status, instock products first.
*/

 

مطلب پیشنهادی  ایجاد سیستم چت و پشتیبانی آنلاین در ووکامرس

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

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

اشتراک گذاری

  • دیدگاهتان فقط و فقط در رابطه با همین مطلب باشد.
  • لطفا از تایپ فینگلیش بپرهیزید. در غیر اینصورت دیدگاه شما بررسی نخواهد شد.
  • هدفتان از ارسال دیدگاه تبلیغ یا بک لینک نباشد. در غیر اینصورت دیدگاه حذف می شود.
  • به دیگر توهین و اهانت نکنید.

15 دیدگاه

  1. امیر ایلخانی

    ممنون بسیار عالی بود

  2. پوریا

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

    • علی غلامی

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

  3. لیلا

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

  4. حسین

    سلام دوست گرامی
    من هر کجای functions.php این کد رو میذارم با خطا رو به رو میشم تو بخش محصولاتم. ممنون میشم راهنمایی بفرمایید دقیقا کجا باید paste کنیم ؟

  5. محمد رضا محمدی

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

    ممنون

    • علی غلامی

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

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

  6. محمدحسین

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

    تشکر

  7. میلاد

    سلام. من در صفحه اولم از صفحه ساز WP Bakery استفاده کردم. الان محصولاتی که توسط این افزونه نمایش داده می‌شه محصولات موجود و ناموجود را درهم نمایش می‌دهد. می‌تونم برای این قسمت هم از این کد استفاده کنم؟؟

  8. نیاز

    سلام
    بسیار کاربردی بود
    ممنون

  9. علیرضا صفری

    خیلی خوب آموزش دادید.
    موفق باشید.

  10. سحر

    ممنونم عالی بود

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

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