WooCommerce — отправлять уведомления по электронной почте при обновлении заказа с помощью & quot; save_post & quot; крюк

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 чтобы получить ссылку на пост.

Любая помощь?

Спасибо

3

Решение

Сначала вам нужно получить объект $ 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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]