WooCommerce - торговля - Отправляйте уведомление по электронной почте при обновлении заказа с помощью кнопки "сохранить сообщение".


WooCommerce создает новую публикацию, когда создаются новые заказы shop_order тип сообщения. Поэтому я хочу отправить уведомление по электронной почте о заказе с помощью крючка действий wordpress save_post.

Я написал следующий код:

add_action( 'save_post', 'notify_shop_owner_new_order', 10, 3 );
function notify_shop_owner_new_order( $post_ID, $post ) {
    if( $post->post_type == 'shop_order' ) {
        $headers = 'From: foo <[email protected]>';

        $to = '[email protected]';
        $subject = sprintf( 'New Order Received' );
        $message = sprintf ('Hello, musa ! Your have received a new order from .Check it out here :');

        wp_mail( $to, $subject, $message, $headers );
    }
}

Но это не работает.

И если я использую ниже, не проверяя тип записи, это работает:

add_action( 'save_post', 'notify_shop_owner_new_order', 10, 3 );
function notify_shop_owner_new_order( $post_ID, $post ) {
    $headers = 'From: foo <[email protected]>';

    $to = '[email protected]';
    $subject = sprintf( 'New Order Received' );
    $message = sprintf ('Hello, musa ! Your have received a new order from .Check it out here :');

    wp_mail( $to, $subject, $message, $headers );
}

Я не понимаю, в чем проблема. Мне нужно использовать параметры функции $post и $post_id, чтобы получить ссылку на публикацию.

Любой помочь?

Спасибо

Author: LoicTheAztec, 2016-12-06

1 answers

Сначала вам нужно получить объект $post следующим образом:

add_action( 'save_post', 'notify_shop_owner_new_order', 1, 2 );
function notify_shop_owner_new_order( $post_ID ){

    // Get the post object
    $post = get_post( $post_ID );

    if($post->post_type == 'shop_order') {
        $headers = 'From: musa <[email protected]>';

        $to = '[email protected]';
        $subject = sprintf( 'New Order Received' );
        $message = sprintf ('Hello, musa ! Your have received a new order from .Check it out here :');

        wp_mail( $to, $subject, $message, $headers );
    }
}

Код протестирован и работает...

Код входит в function.php файл вашей активной дочерней темы (или темы). Или также в любых файлах php плагинов.


Аналогичный ответ: Добавление категории "Продажа" к продуктам, которые продаются, с помощью крючка "save_post"

 1
Author: LoicTheAztec, 2017-05-23 12:10:25