Я использую WordPress 4.9.5 и WooCommerce 3.3.5, я хотел бы, чтобы следующие способы оплаты, статус заказа и почта клиента были запущены.
- Paypal = выполнено + электронное письмо с подтверждением оплаты
- BACS = на удержании + электронная почта на удержании
- ХПК = на удержании + электронная почта на удержании
На данный момент все работает, за исключением того, что при получении наложенного платежа не получен «заказ по удержанию».
Статус заказа установлен как «на удержании», но электронное сообщение об удержании не отправлено!
Это код, который я использую:
add_action( 'woocommerce_thankyou', 'wc_auto_complete_paid_order', 20, 1 );
function wc_auto_complete_paid_order( $order_id ) {
if ( ! $order_id )
return;
// Get an instance of the WC_Product object
$order = wc_get_order( $order_id );
// On hold status for orders delivered with Bank wire, Cash on delivery and Cheque payment methods.
if ( in_array( $order->get_payment_method(), array( 'bacs', 'cod', 'cheque', '' ) ) ) {
$order->update_status( 'on-hold' );
// Updated status to "completed" for paid Orders with all others payment methods
} else {
$order->update_status( 'completed' );
}
}
function unhook_new_order_processing_emails( $email_class ) {
// Turn off pending to processing for now
remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_Customer_Processing_Order'], 'trigger' ) );
// Turn it back on but send the on-hold email
add_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_Customer_On_Hold_Order'], 'trigger' ) );
}