تاریخ آخرین آپدیت: 10th دسامبر 2025 - 01:25 ب.ظ
مدیریت فروشگاه آنلاین با ووکامرس و وضعیتهای سفارشی
وقتی فروشگاه اینترنتیتون با ووکامرس بزرگ میشه و سفارشها زیاد میشن، کنترل همه چیز یهمقدار سخت میشه. خوشبختانه ووکامرس یه قابلیت خیلی خوب داره: میتونید وضعیتهای سفارشی سفارشها رو بسازید. یعنی میتونید برای مراحل مختلف سفارشها، وضعیتهای جدید تعریف کنید؛ مثلا «در حال بررسی توسط کارشناس» یا «آمادهسازی برای ارسال ویژه». اینطوری مدیریت فروشگاه خیلی راحتتر و دقیقتر میشه.
شخصیسازی وضعیتهای سفارش بدون افزونه
توی این آموزش از استادنو، یه کد کاربردی معرفی شده که باهاش میتونید وضعیتهای دلخواهتون رو بسازید و به سفارشهای ووکامرس اضافه کنید. استفاده از این کد باعث میشه نه تنها مدیریت سفارشها راحتتر بشه، بلکه مشتریها هم شفافتر بفهمن که سفارششون تو چه مرحلهای هست.
مزیت اصلی این روش؟ لازم نیست هیچ افزونه اضافی نصب کنید و این کد با نسخههای مختلف ووکامرس کاملاً سازگاره.
مثلاً من خودم یه وضعیت به اسم انبارگردانی تعریف کردم. باهاش میتونم به مشتری پیامک دقیقتری بفرستم تا بدونه سفارشش الان کجاست.
کد اضافه کردن وضعیت جدید
برای اضافه کردن وضعیت جدید، کافیه کد زیر رو تو فایل functions.php قالب سایتتون قرار بدید. هر جایی که میبینید نوشته انبارگردانی، میتونید هر اسمی که دوست دارید بذارید:
/**
* @snippet Change Admin Panel Footer Text
* @how-to Get Avatarrah.ir FREE
* @author Sajjad Bashirpour
*/
add_action( 'init', 'wcvendors_custom_status_action' );
function wcvendors_custom_status_action() {
register_post_status(
'wc-custom-status',
array(
'label' => __( 'انبارگردانی', 'wc-vendors' ),
'public' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'انبارگردانی (%s)', 'انبارگردانی (%s)', 'wc-vendors' ),
)
);
}
/**
* Add custom status to WC
*/
add_filter( 'wc_order_statuses', 'add_new_wc_status' );
function add_new_wc_status( $order_statuses ) {
$order_statuses['wc-custom-status'] = _x( 'انبارگردانی', 'وضعیت سفارش', 'woocommerce' );
return $order_statuses;
}
/**
* Add status to WCV filter
*/
add_filter( 'wcvendors_order_mark_shipped_statuses', 'wcvendors_add_status_to_list' );
function wcvendors_add_status_to_list( $allow_mark_shipped_statuses ) {
// Check if status does not exists then add the status without wc- prefix.
if ( ! isset( $allow_mark_shipped_statuses['custom-status'] ) ) {
$allow_mark_shipped_statuses[] = 'custom-status'; // Push new status to statuses array.
}
return $allow_mark_shipped_statuses;
}
یه نکته مهم
کد رو حتماً تو چایلد تم بذارید تا بعد از آپدیت قالب، دوباره مجبور نشید همه چیز رو وارد کنید.
و یه چیز دیگه: فقط کد رو کپی کنید و انتهای فایل فانکشن قالب قرار بدید، همین. ❤️
با این روش، وضعیتهای سفارش دلخواهتون رو به راحتی اضافه میکنید و همه چیز خیلی شفافتر میشه.