SHET23
English

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

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

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

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

آنچه در این مقاله می‌خوانید

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

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

چه وقت‌هایی مخفی کردن محصولات ناموجود انتخاب بهتریه؟

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

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

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

فعال کردن مدیریت موجودی در ووکامرس

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

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

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

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

تفاوت وضعیت موجود، ناموجود و در انتظار تأمین

  • موجود: محصول داخل انبار هست و مشتری می‌تونه اون رو بخره.
  • ناموجود: محصول فعلاً قابل خرید نیست.
  • در انتظار تأمین: موجودی فعلی کافی نیست، ولی فروشگاه اجازه ثبت سفارش برای تأمین بعدی رو می‌ده. این حالت با پیش‌فروش قراردادی یکسان نیست و باید زمان تحویل رو شفاف به مشتری بگید.

ووکامرس این وضعیت‌ها رو با مقدار فنی _stock_status ذخیره می‌کنه. این نام فقط کلیدی داخل پایگاه داده، یعنی محل نگهداری اطلاعات سایت، هست و لازم نیست اون رو دستی تغییر بدید.

بررسی تنظیمات سراسری موجودی فروشگاه

از مسیر «ووکامرس ← پیکربندی ← محصولات ← فهرست موجودی» تنظیمات سراسری انبار رو باز کنید.

مسیر «ووکامرس ← پیکربندی ← محصولات ← فهرست موجودی»
مسیر «ووکامرس ← پیکربندی ← محصولات ← فهرست موجودی»

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

گزینه مخفی‌کردن محصولات ناموجود
گزینه مخفی‌کردن محصولات ناموجود

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

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

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

قبل از اضافه کردن کد از سایتتون نسخه پشتیبان بگیرید

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

چرا نباید کد رو داخل قالب اصلی بذارید؟

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

اضافه کردن کد با افزونه اختصاصی کوچک یا چایلدتم

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

اگه از چایلدتم استفاده می‌کنید، فقط بخش کد بعد از خط <?php رو به فایل functions.php چایلدتم اضافه کنید. از بخش «نمایش» روی گزینه «ویرایشگر» بزنید.

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

قبل از ذخیره هم مطمئن بشید این فایل از قبل با <?php شروع شده تا این عبارت رو دوباره وارد نکنید.

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

کد مرتب‌سازی محصولات بر اساس وضعیت موجودی

<?php
/**
 * Plugin Name: MihanWP Stock Status Sorting
 * Description: Sort WooCommerce products by stock status.
 * Version: 1.0.0
 */

add_filter( 'posts_clauses', 'mihanwp_sort_products_by_stock_status', 20, 2 );

function mihanwp_sort_products_by_stock_status( $clauses, $query ) {
    if ( is_admin() || ! $query->is_main_query() ) {
        return $clauses;
    }

    if ( ! is_shop() && ! is_product_taxonomy() ) {
        return $clauses;
    }

    global $wpdb;

    if ( false === strpos( $clauses['join'], 'mihanwp_stock_status' ) ) {
        $clauses['join'] .= " LEFT JOIN {$wpdb->postmeta} AS mihanwp_stock_status
            ON {$wpdb->posts}.ID = mihanwp_stock_status.post_id
            AND mihanwp_stock_status.meta_key = '_stock_status' ";
    }

    $stock_order = "CASE mihanwp_stock_status.meta_value
        WHEN 'instock' THEN 0
        WHEN 'onbackorder' THEN 1
        WHEN 'outofstock' THEN 2
        ELSE 3
    END ASC";

    $clauses['orderby'] = $stock_order .
        ( ! empty( $clauses['orderby'] ) ? ', ' . $clauses['orderby'] : '' );

    return $clauses;
}

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

این کد چطور محصولات رو مرتب می‌کنه؟

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

بخش CASE برای هر وضعیت یک اولویت می‌سازه: موجود عدد صفر، در انتظار تأمین عدد یک و ناموجود عدد دو می‌گیره. بعد مرتب‌سازی اصلی ووکامرس به انتهای همین ترتیب اضافه می‌شه. برای نمونه، اگه مشتری مرتب‌سازی بر اساس قیمت رو انتخاب کنه، اول محصولات بر اساس وضعیت موجودی گروه‌بندی می‌شن و بعد قیمت داخل هر گروه ترتیب اون‌ها رو مشخص می‌کنه.

محصولات در انتظار تأمین کجای فهرست قرار بگیرن؟

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

اگه مشتری می‌تونه این محصولات رو سفارش بده و زمان تحویل هم روشنه، می‌تونید اون‌ها رو کنار محصولات موجود بذارید. برای این کار عدد مربوط به onbackorder رو از ۱ به ۰ تغییر بدید. بهتره داخل کارت و صفحه محصول هم وضعیت تأمین و زمان تقریبی تحویل رو واضح نشون بدید.

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

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

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

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

هنگام انتخاب افزونه به چه چیزهایی توجه کنید؟

  • سازگاری با نسخه فعلی ووکامرس: صفحه رسمی افزونه باید به‌روزرسانی منظم و سازگاری با نسخه نصب‌شده روی سایتتون رو نشون بده.
  • حفظ مرتب‌سازی‌های دیگه: قیمت، محبوبیت، امتیاز و جدیدترین محصولات رو بعد از فعال‌کردن افزونه آزمایش کنید.
  • مدیریت محصولات در انتظار تأمین: بررسی کنید افزونه برای وضعیت onbackorder چه رفتاری داره و آیا می‌تونید جای اون رو تعیین کنید.
  • پشتیبانی از صفحه‌های مختلف: افزونه باید روی صفحه فروشگاه، دسته‌بندی‌ها و بایگانی‌های موردنیازتون درست کار کنه.
  • هماهنگی با قالب و ابزارهای فیلتر: اگه فروشگاهتون فیلتر ایجکس داره، یعنی نتایج رو بدون بارگذاری دوباره صفحه عوض می‌کنه، سازگاری افزونه رو با اون بررسی کنید.

چطور نتیجه رو در فروشگاه بررسی کنید؟

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

  1. یک محصول موجود و یک محصول ناموجود آماده کنید: برای آزمایش بهتره دو محصول ساده با قیمت و عنوان مشخص داشته باشید. اگه سفارش در حالت کمبود رو قبول می‌کنید، یک محصول در انتظار تأمین هم بسازید.
  2. صفحه فروشگاه و دسته‌بندی‌ها رو بررسی کنید: مطمئن بشید محصول ناموجود بعد از محصولات موجود دیده می‌شه.
  3. مرتب‌سازی‌های ووکامرس رو امتحان کنید: گزینه‌های قیمت، محبوبیت، امتیاز و جدیدترین محصولات رو یکی‌یکی انتخاب کنید.
  4. نتایج جست‌وجو و صفحه‌بندی رو بررسی کنید: کد نمونه روی فروشگاه و بایگانی‌های محصول تمرکز داره. اگه قالب شما صفحه جست‌وجوی محصولات یا فهرست سفارشی جداگانه‌ای می‌سازه، اون بخش به سازگارسازی جداگانه نیاز داره.
  5. نتیجه رو در موبایل و حالت خروج از حساب ببینید: صفحه رو در پنجره ناشناس باز کنید تا نتیجه‌ای نزدیک به تجربه مشتری ببینید.

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

کش سایت و مرورگر رو پاک کنید

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

تداخل قالب یا افزونه‌های مرتب‌سازی رو بررسی کنید

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

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

محصول مشکل‌دار رو ویرایش کنید و تعداد موجودی، وضعیت انبار و اجازه سفارش در حالت کمبود رو ببینید. برای محصول متغیر، یعنی محصولی مثل لباس که چند رنگ یا اندازه داره، وضعیت هر متغیر رو هم جداگانه بررسی کنید.

کد رو روی یک سایت آزمایشی امتحان کنید

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

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

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

چه فروشگاه‌هایی بهتره محصولات ناموجود رو نگه دارن؟

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

چه فروشگاه‌هایی بهتره محصولات ناموجود رو مخفی کنن؟

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

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

آیا این روش روی صفحه دسته‌بندی محصولات هم کار می‌کنه؟

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

آیا مرتب‌سازی بر اساس قیمت و محبوبیت حفظ می‌شه؟

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

محصولات در انتظار تأمین چطور مرتب می‌شن؟

در کد این آموزش، محصولات موجود اول، محصولات در انتظار تأمین دوم و محصولات ناموجود آخر دیده می‌شن. اگه می‌خواید محصولات در انتظار تأمین کنار کالاهای موجود باشن، می‌تونید اولویت onbackorder رو از ۱ به ۰ تغییر بدید.

آیا با به‌روزرسانی قالب، کد پاک می‌شه؟

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

برای این کار کدنویسی بهتره یا افزونه؟

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

جمع‌بندی

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

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

نظر شما در این مورد چیه؟

  1. U381780۸ خرداد ۱۴۰۴

    این کد برای کتگوری های ووکامرس کار میکنه؛ اگه بخوام برای کتگوری های المنتوری هم کار کنه چیکار باید بکنم؟
    با استفاده از المان های المنتوری، در ابتدای برگه وردپرس، دسته بندی رو قرار دادیم…

    • رضا راد۸ خرداد ۱۴۰۴

      سلام باید اون المنت خاص رو ویرایش کنید این کد فقط لوپ ووکامرس رو ویرایش میکنه

  2. U319303۲۵ اردیبهشت ۱۴۰۴

    این آموزش برای محصولات تعدادی بود. برای محصولات وزنی راهکار چیه؟! مثلا من 50 کیلو شکر دارم که در بسته بندی های 250 ، 500 و 1000 گرمی هست! چطور میتونم موجودی انبار خودمو رو با این ویژگی های متغیر محصول مدیریت کنم؟!

  3. U365127۸ بهمن ۱۴۰۳

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

    if (in_array(‘woocommerce/woocommerce.php’, apply_filters(‘active_plugins’, get_option(‘active_plugins’)))) {
    add_filter(‘posts_clauses’, ‘order_by_stock_status’, 2000);
    }

    function order_by_stock_status($posts_clauses) {
    global $wpdb;

    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;
    }

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

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

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

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

  6. 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;
    }

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

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

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

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

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

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

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

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

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

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

    • رضا راد۲۱ مرداد ۱۴۰۲

      سلام توی سایت سرچ کنید functions.php آموزش کاملش هست.

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

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

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

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

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

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

    ممنونم

    • رضا راد۲۱ مرداد ۱۴۰۲

      سلام توی سایت سرچ کنید اسم این فایل رو آموزش کاملش هست.

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

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

    • رضا راد۶ اردیبهشت ۱۴۰۲

      سلام با php میشه نوشت بله

  15. U319814۳ دی ۱۴۰۱

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

    • رضا راد۵ دی ۱۴۰۱

      سلام متاسفانه چاره‌ای نیست چون ترتیب رو تغییر میده بر اساس موجودی انبار

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

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

    • رضا راد۲۲ مرداد ۱۴۰۱

      سلام بستگی به قالب داره روی وودمارت خیر تست نشده

    • U14060۱ اسفند ۱۴۰۲

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

      • U350575۱۴ مرداد ۱۴۰۳

        سلام من هرکاری می کنم سایت ارور میده میشه بگید چیکار کنم حل شه ممنون میشم راهنمایی کنید

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

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

    • رضا راد۱۶ خرداد ۱۴۰۱

      سلام وقت بخیر بخاطر تغییر اولویت ها توسط این کد هست.

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

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

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

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

    • رضا راد۱۰ خرداد ۱۴۰۱

      سلام چه خطایی دریافت میکنید؟

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

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

    • رضا راد۱۴ اسفند ۱۴۰۰

      به جای ASC از DESC استفاده کنید.

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

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

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

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

    • U311353۱۰ اردیبهشت ۱۴۰۱

      سلام
      من هم همین مشکل را دارم.
      ممنون میشم راهنمایی کنه که چطور میشه حل‌ش کرد.

      • رضا راد۱۴ اردیبهشت ۱۴۰۱

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

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

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

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

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

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

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

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

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

    • U29102۱۴ آذر ۱۳۹۹

      منظورم ترتیب قرار گرفتن محصولات موجوده

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

      با سلام
      سپاس. بله متاسفانه راهی نیست

  26. U27749۱ آذر ۱۳۹۹

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

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

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

    • U33935۲ تیر ۱۴۰۰

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

      • U38007۲۰ آذر ۱۴۰۳

        برای هر نوع قالب یه ساختار متفاوت میتونه داشته باشی
        بعضی قالب ها مثل وودمارت با این قطعه کد مشکل دارن .
        در ضمن بعضی مواقع مهم تاریخ هم میشه
        توی این مطلب
        https:******

        من پیدا کردم
        هم برای قالب وودمارت قرار داده
        هم بر اساس تاریخ میچینه
        من که تست کردم و اوکی بود
        شاید دوستان هم برای قالب وودمارت تست کنن و اوکی باشه براشون

پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرس
پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرسآنلاین و پاسخگوی شما هستیم.آنلاین

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.