سلام وقت بخیر
وقتی وضعیت سفارش جدیدی به قالب اضافه می کنید، ووکامرس بطور خودکار نمی تونه شناسایی کنه و شما باید برای ایمیل های اطلاعیه، وضعیت سفارش رو بطور دستی به بخش اطلاعیه های سفارش اضافه کنید.
کد انجامش به این صورت هست که باید در فایل functions.php
قالب اضافه بشه.
add_action('woocommerce_order_status_changed', 'betalk_sefaresh_email', 10, 4);
function betalk_sefaresh_email( $order_id, $from_status, $to_status, $order ) {
if( $order->has_status( 'betalk-order' )) {
$email_notifications = WC()->mailer()->get_emails();
$email_notifications['WC_Email_Customer_Processing_Order']->heading = __('هیدینگ ایمیل','woocommerce');
$email_notifications['WC_Email_Customer_Processing_Order']->subject = 'سفارش شما در سایت {site_title} در وضعیت فلان قرار دارد. تاریخ: {order_date}';
$email_notifications['WC_Email_Customer_Processing_Order']->trigger( $order_id );
}
}
برای هر وضعیت سفارشی که اضافه کردید باید برای هر کدومش کد بالا رو کپی کنید و اسم تابع رو تغییر بدید.
- اول از همه باید حتما اسم تابع رو برای کدهایی که کپی می کنید تغییر بدید. یعنی
betalk_sefaresh_email
که اسم تابع هست در خط اول و دوم کد بالا هست که باید هر بار که کپی می کنید، یک اسمی وارد کنید که با کدهای قبلی تداخل نداشته باشه.
- در خط سوم کد بالا، بجای
betalk-order
باید شناسه وضعیت سفارش دلخواه رو وارد کنید.
- دو خط هم هست که متن فارسی داره می تونید متن ها رو برای هر وضعیت سفارش به دلخواه وارد کنید.
کد کامل تری هم وجود داره که می تونید توی این لینک پیدا کنید:
https://stackoverflow.com/questions/64607271/add-a-new-order-status-that-send-an-email-notification-in-woocommerce-4/64608630#64608630