Добавить новый статус заказа в Woocommerce

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

snimok jekrana 2025 07 14 v 19.12.59 1
// Добавляем новый статус заказа "Доставка"
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 );
}
Picture of Автор: Александра

Автор: Александра

@avsalexandra
Занимаюсь натуральным питанием собак и кошек BARF. Wordpress для души ☺️

Crocoblock
Elementor
Gutenberg
Jetengine
Jetformbuilder
profile builder
Woocommerce
Wordpress
WYSIWYG
Лейка
#автосохранение
#доменная почта
#рассылка
#бейдж
#благотворительность
#заказ ожидает
#подарок
#подчёркивание
#публикация постов
#видео
#пожертвования
#мультивыбор
#роли
#drag and drop
#изображения товаров
#подписки
#распродажа
#личный кабинет
#пагинация
#alt text
#галерея товара
#аватар
#возврат
#видео товара
#купон
#отменить заказ
Комментарии:

Добавить комментарий