×
خانه » مقالات » ایجاد وضعیت سفارش جدید در ووکامرس بدون نیاز به افزونه
22 مرداد 1404

ایجاد وضعیت سفارش جدید در ووکامرس بدون نیاز به افزونه

ایجاد وضعیت سفارش جدید در ووکامرس بدون نیاز به افزونه

یکی از قابلیت‌های قدرتمند ووکامرس، مدیریت وضعیت‌های مختلف سفارشات است که امکان پیگیری سفارشات را در مراحل مختلف پردازش فراهم می‌کند. وضعیت‌های پیش‌فرض ووکامرس شامل “در انتظار پرداخت”، “در حال پردازش”، “ارسال شده” و “لغو شده” هستند.

با نصب برخی افزونه‌ها مانند نقدینه (پرداخت در محل) از مجموعه نابیک، وضعیت‌های جدیدی مانند “در انتظار تایید” و “پرداخت در محل” به این لیست اضافه می‌شوند که به مدیریت بهتر سفارشات کمک می‌کنند. اما در برخی موارد، ممکن است بخواهید یک وضعیت سفارشی (Custom Order Status) برای سفارشات خود ایجاد کنید. در این آموزش، بدون نیاز به افزونه و تنها با افزودن چند خط کد به فایل functions.php (ترجیحاً در چایلد تم)، می‌توانید وضعیت سفارشی جدیدی مانند “در حال آماده‌سازی” را به لیست وضعیت‌های موجود در ووکامرس اضافه کنید.

وضعیت های سفارش (order status) در ووکامرس | نابیک

1. ثبت وضعیت سفارشی «در حال آماده‌سازی»

برای شروع، ابتدا باید وضعیت سفارشی خود را به وردپرس معرفی کنید. این کار را با استفاده از تابع register_post_status انجام می‌دهیم.

کد زیر را در فایل functions.php خود قرار دهید:

function register_custom_order_status() {
    register_post_status( 'wc-preparing', array(
        'label'                     => _x( 'در حال آماده‌سازی', 'Order status', 'woocommerce' ),
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop(
            'در حال آماده‌سازی <span class="count">(%s)</span>',
            'در حال آماده‌سازی <span class="count">(%s)</span>',
            'woocommerce'
        )
    ));
}
add_action( 'init', 'register_custom_order_status' );

توضیحات کد:

  • register_post_status( 'wc-preparing', ...): با این خط کد، وضعیت «در حال آماده‌سازی» را به عنوان یک وضعیت جدید به سیستم وردپرس معرفی می‌کنیم. wc-preparing اسلاگ این وضعیت است.
  • label: این گزینه، نام وضعیت را مشخص می‌کند که در پنل مدیریت ووکامرس نمایش داده می‌شود.
  • show_in_admin_all_list: این تنظیم باعث می‌شود که وضعیت سفارشی در لیست تمام سفارش‌ها در پنل مدیریت قابل مشاهده باشد.
  • label_count: تعداد سفارشاتی که در این وضعیت هستند، در کنار آن نمایش داده می‌شود.

2. اضافه کردن وضعیت «در حال آماده‌سازی» به لیست وضعیت‌های موجود در ووکامرس

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

function add_custom_order_status_to_wc_statuses( $order_statuses ) {
    $new_order_statuses = array();

    foreach ( $order_statuses as $key => $status ) {
        $new_order_statuses[ $key ] = $status;

        // پس از وضعیت "در حال پردازش"، وضعیت سفارشی را اضافه می‌کنیم
        if ( 'wc-processing' === $key ) {
            $new_order_statuses['wc-preparing'] = _x( 'در حال آماده‌سازی', 'Order status', 'woocommerce' );
        }
    }
    return $new_order_statuses;
}
add_filter( 'wc_order_statuses', 'add_custom_order_status_to_wc_statuses' );

توضیحات کد:

  • foreach: این حلقه برای هر وضعیت موجود در لیست وضعیت‌ها اجرا می‌شود.
  • if ( 'wc-processing' === $key ): وضعیت «در حال آماده‌سازی» را پس از وضعیت «در حال پردازش» اضافه می‌کند.
  • $new_order_statuses['wc-preparing']: وضعیت جدید به لیست وضعیت‌ها اضافه می‌شود.

3. افزودن وضعیت «در حال آماده‌سازی» به Bulk actions

برای اینکه بتوانید وضعیت «در حال آماده‌سازی» را برای چندین سفارش به صورت همزمان تغییر دهید، باید آن را به بخش عملیات گروهی (Bulk actions) ووکامرس اضافه کنید. کد زیر را در فایل functions.php قرار دهید:

function add_custom_order_status_to_bulk_actions( $bulk_actions ) {
    $bulk_actions['mark_preparing'] = 'تغییر وضعیت به در حال آماده‌سازی';
    return $bulk_actions;
}
add_filter( 'bulk_actions-edit-shop_order', 'add_custom_order_status_to_bulk_actions' );

توضیحات کد:

  • mark_preparing: این مقدار مشخص می‌کند که عملیات گروهی برای تغییر وضعیت سفارش‌ها به «در حال آماده‌سازی» باشد.
  • $bulk_actions['mark_preparing']: به لیست عملیات گروهی گزینه جدیدی برای تغییر وضعیت به «در حال آماده‌سازی» اضافه می‌کنیم.

4. بررسی و تست

بعد از اضافه کردن این کدها، کافی است که:

  1. به پنل مدیریت ووکامرس بروید.
  2. به صفحه سفارشات بروید.
  3. مشاهده خواهید کرد که وضعیت «در حال آماده‌سازی» در لیست وضعیت‌های موجود اضافه شده است.
  4. همچنین در بخش عملیات گروهی، گزینه «تغییر وضعیت به در حال آماده‌سازی» به صورت انتخابی برای چندین سفارش نمایش داده خواهد شد.

نکات مهم:

  • چایلد تم: همیشه کدهای سفارشی را در چایلد تم قرار دهید تا در صورت به‌روزرسانی قالب اصلی، تغییرات شما از دست نرود.
    راهنمای جامع ایجاد چایلد تم (قالب فرزند) وردپرس
  • پاک‌سازی کش: بعد از هر تغییر در کدها، کش سایت خود را پاک کنید تا تغییرات اعمال شود.

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

بهبود عملکرد فروشگاه شما با افزونه‌های نابیک

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

شقایق حاجیان

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

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