【发布时间】:2020-12-29 14:19:06
【问题描述】:
我正在尝试仅针对“待处理”订单状态而不是“货到付款”付款方式发送有关新订单的通知。但是当客户选择货到付款时,管理员收到了重复的邮件,因为 Woocommerce 将此订单状态从“待处理”更新为“处理中”。
// New order notification only for "pending" order status and not "cash on delivery" payment method
add_action( 'woocommerce_checkout_order_processed', 'pending_new_order_notification', 10, 1 );
function pending_new_order_notification( $order_id ) {
// Get an instance of the WC_Order object
$order = wc_get_order( $order_id );
$payment_title = $order->get_payment_method_title();
// Only for "pending" order status and not Cash on delivery payment method
if( ! $order->has_status( 'pending' ) && ( $payment_title != 'cod' ) ) return;
// Get an instance of the WC_Email_New_Order object
$wc_email = WC()->mailer()->get_emails()['WC_Email_New_Order'];
## -- Customizing Heading, subject (and optionally add recipients) -- ##
// Change Subject
$wc_email->settings['subject'] = __('{site_title} - Новый заказ ({order_number}) - {order_date} ожидает оплату');
// Change Heading
$wc_email->settings['heading'] = __('Новый заказ');
$wc_email->settings['recipient'] .= ',name@email.com'; // Add email recipients (coma separated)
// Send "New Email" notification (to admin)
$wc_email->trigger( $order_id );
}
【问题讨论】:
-
这也不起作用: // 仅适用于“待处理”订单状态,而不适用于货到付款方式 if( ! $order->has_status( 'pending' ) && ( get_post_meta($order_id, '_payment_method', true) != 'cod' ) ) return;
标签: php wordpress woocommerce hook-woocommerce email-notifications