افزودن فیلتر نمایش محصولات تخفیف‌دار در پنل ووکامرس

افزودن فیلتر نمایش محصولات تخفیف‌دار در پنل ووکامرس

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

افزودن-فیلتر-نمایش-محصولات-تخفیف_دار-در-پنل-ووکامرس

این کد با افزودن یک فیلتر به نام “براساس وضعیت فروش” در بخش لیست محصولات، به شما این امکان رو می‌ده که:

  • فقط محصولات در فروش ویژه را نمایش دهید

  • فقط محصولات فاقد تخفیف را ببینید

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

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


🧩 نحوه استفاده:

کد را در انتهای فایل functions.php قالب فعال خود یا پلاگین اختصاصی‌تان قرار دهید.

// افزودن فیلتر کشویی به لیست محصولات در پنل مدیریت
add_action( 'restrict_manage_posts', 'tav_filter_products_by_sale_status', 9999 );
function tav_filter_products_by_sale_status() {
    global $typenow;

    if ( 'product' === $typenow ) {
        $selected = isset( $_GET['sale_status'] ) ? $_GET['sale_status'] : '';
        ?>
        <select name="sale_status">
            <option value="">براساس وضعیت فروش</option>
            <option value="on_sale" <?php selected( $selected, 'on_sale' ); ?>>در فروش ویژه</option>
            <option value="not_on_sale" <?php selected( $selected, 'not_on_sale' ); ?>>در فروش ویژه نیستند</option>
        </select>
        <?php
    }
}

// اعمال فیلتر به کوئری لیست محصولات
add_filter( 'request', 'tav_filter_products_query_by_sale_status' );
function tav_filter_products_query_by_sale_status( $query_vars ) {
    global $typenow;

    if ( 'product' === $typenow && isset( $_GET['sale_status'] ) && '' !== $_GET['sale_status'] ) {
        $sale_status = sanitize_text_field( wp_unslash( $_GET['sale_status'] ) );

        // اطمینان از وجود meta_query
        if ( ! isset( $query_vars['meta_query'] ) || ! is_array( $query_vars['meta_query'] ) ) {
            $query_vars['meta_query'] = array();
        }

        // حذف محصولات ناموجود
        $query_vars['meta_query'][] = array(
            'key'     => '_stock_status',
            'value'   => 'outofstock',
            'compare' => '!=',
        );

        if ( 'on_sale' === $sale_status ) {
            // فقط محصولاتی که sale price دارند (تخفیف خورده‌اند)
            $query_vars['meta_query'][] = array(
                'key'     => '_sale_price',
                'value'   => '',
                'compare' => '!=',
            );
        } elseif ( 'not_on_sale' === $sale_status ) {
            // محصولاتی که sale price ندارند یا خالی است
            $query_vars['meta_query'][] = array(
                'relation' => 'OR',
                array(
                    'key'     => '_sale_price',
                    'compare' => 'NOT EXISTS',
                ),
                array(
                    'key'     => '_sale_price',
                    'value'   => '',
                    'compare' => '=',
                ),
            );
        }
    }

    return $query_vars;
}

اشتراک گذاری

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

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

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

تخفیف برای تو

با وارد کردن ایمیلت همین الان تخفیف بگیر!!!!

تماس با ما
واتساپ تلگرام اینستاگرام ارسال تیکت