Добавим новый статус заказа в Woocommerce «Доставка» ‘wc-delivery’

// Добавляем новый статус заказа "Доставка"
add_action('init', 'register_delivery_order_status');
function register_delivery_order_status(){
register_post_status('wc-delivery', array(
'label' => 'Доставка',
'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>')
));
// Добавляем новый статус в список доступных для заказов
add_filter('wc_order_statuses', 'add_delivery_to_order_statuses');
function add_delivery_to_order_statuses($order_statuses){
$order_statuses['wc-delivery'] = _x('Доставка', 'Order status', 'woocommerce');
return $order_statuses;
}
}И чтобы письма отправлялись каждый раз клиенту, когда статус заказа меняется на «Доставка»
//Отправить письмо клиенту при статасе заказа "Доставка"
add_action( 'woocommerce_order_status_changed', 'send_delivery_status_email', 10, 4 );
function send_delivery_status_email( $order_id, $old_status, $new_status, $order ) {
if ( $new_status !== 'delivery' ) {
return;
}
$first_name = $order->get_billing_first_name();
$order_number = $order->get_order_number();
$to = $order->get_billing_email();
$subject = "Заказ №{$order_number} доставляется";
$message = "<p>Здравствуйте, {$first_name}!</p>";
$message .= "<p>Ваш заказ <strong>№{$order_number}</strong> перешёл в статус «Доставка» и скоро будет у Вас 📦🚚</p>";
$message .= "<p>Посмотреть все заказы можно в <a href='https://ваш сайт/my-account/orders/' target='_blank' rel='noopener'><span style='text-decoration: underline;'>личном кабинете</span></a></p>";
// Оборачиваем шаблон письма WooCommerce и отправляем
$mailer = WC()->mailer();
$wrapped_msg = $mailer->wrap_message( $subject, $message );
$mailer->send( $to, $subject, $wrapped_msg );
}