Mandar email na troca de situação do pedido customizado no woocommerce
-
Olá!
Espero que possam me ajudar, vamos no problema.
Eu criei a ordem de pedido customizada, mas quando eu altero a situação do pedido do woocommerce, ele fica sempre emprocessando
, só entra os campos normal do próprio woocommerce.E também, quando eu coloco código, eu deixo de receber qualquer e-mail de pedido, único que chega é que o pedido foi recebido, mas os outros e-mail nunca chega..
Eu utilizo woocommerce 4.8, wordpress 5.6 e o php 7.1.
Espero que consigam me ajudar..
Segue o código que estou usando!add_action( 'init', 'register_custom_post_status', 20 ); function register_custom_post_status() { register_post_status( 'separacao', array( 'label' => _x( 'Área de Separação', 'Order status', 'woocommerce' ), 'public' => true, 'exclude_from_search' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'label_count' => _n_noop( 'Seu Pedido está na Área de separação <span class="count">(%s)</span>', 'Área de Separação <span class="count">(%s)</span>', 'woocommerce' ) ) ); register_post_status( 'esperando-entrega', array( 'label' => _x( 'Pronto para ser Entregue', 'Order status', 'woocommerce' ), 'public' => true, 'exclude_from_search' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'label_count' => _n_noop( 'Seu Pedido está aguardando para ser entregue <span class="count">(%s)</span>', 'Seu Pedido está aguardando para ser entregue <span class="count">(%s)</span>', 'woocommerce' ) ) ); register_post_status( 'entregando', array( 'label' => _x( 'Saiu para Entrega', 'Order status', 'woocommerce' ), 'public' => true, 'exclude_from_search' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'label_count' => _n_noop( 'Seu Pedido está saindo para Entrega <span class="count">(%s)</span>', 'Seu Pedido está saindo para entrega <span class="count">(%s)</span>', 'woocommerce' ) ) ); } add_filter( 'wc_order_statuses', 'custom_wc_order_statuses', 20, 1 ); function custom_wc_order_statuses( $order_statuses ) { $order_statuses['separacao'] = _x( 'Indo para Separação', 'Order status', 'woocommerce' ); $order_statuses['esperando-entrega'] = _x( 'Indo para Separação', 'Order status', 'woocommerce' ); $order_statuses['entregando'] = _x( 'Encaminhado para Entrega', 'Order status', 'woocommerce' ); return $order_statuses; } function add_new_wc_statuses_to_order_statuses( $order_statuses ) { $new_order_statuses = array(); foreach ( $order_statuses as $key => $status ) { $new_order_statuses[ $key ] = $status; if ( 'wc-processing' === $key ) { $new_order_statuses['separacao'] = 'Indo para Separação'; $new_order_statuses['esperando-entrega'] = 'Indo para Separação'; $new_order_statuses['entregando'] = 'Encaminhado para Entrega'; // Add a $new_order_statuses[key] = value; for each status you've added (in the order you want) } } return $new_order_statuses; } add_filter( 'wc_order_statuses', 'add_new_wc_statuses_to_order_statuses' );*/ add_filter( 'bulk_actions-edit-shop_order', 'custom_dropdown_bulk_actions_shop_order', 20, 1 ); function custom_dropdown_bulk_actions_shop_order( $actions ) { $actions['mark_separacao'] = __( 'Marcar Indo para Separação', 'woocommerce' ); $actions['mark_esperando-entrega'] = __( 'Marcar Pronto para ser Entregue', 'woocommerce' ); $actions['mark_entregando'] = __( 'Marcar Encaminhado para Entrega', 'woocommerce' ); return $actions; } // Adding action for 'awaiting-delivery' add_filter( 'woocommerce_email_actions', 'custom_email_actions', 20, 1 ); function custom_email_actions( $action ) { $actions[] = 'woocommerce_order_status_separacao'; $actions[] = 'woocommerce_order_status_esperando-entrega'; $actions[] = 'woocommerce_order_status_entregando'; return $actions; } add_action( 'woocommerce_order_status_wc-awaiting-delivery', array( WC(), 'send_transactional_email' ), 10, 1 ); add_action('woocommerce_order_status_changed', 'backorder_status_custom_notification', 10, 4); function backorder_status_custom_notification( $order_id, $from_status, $to_status, $order ) { if( $order->has_status( 'separacao' )) { $email_notifications = WC()->mailer()->get_emails(); $email_notifications['WC_Email_Customer_Processing_Order']->heading = __('Seu pedido {order_number} está sendo separado!','woocommerce'); $email_notifications['WC_Email_Customer_Processing_Order']->subject = 'Seu pedido foi para Área de Separação'; $email_notifications['WC_Email_Customer_Processing_Order']->trigger( $order_id ); } if( $order->has_status( 'esperando-entrega' )) { $email_notifications = WC()->mailer()->get_emails(); $email_notifications['WC_Email_Customer_Processing_Order']->heading = __('Seu pedido {order_number} está esperando para ser Entregue!','woocommerce'); $email_notifications['WC_Email_Customer_Processing_Order']->subject = 'Seu pedido esta pronto para ser Entregue!'; $email_notifications['WC_Email_Customer_Processing_Order']->trigger( $order_id ); } if( $order->has_status( 'entregando' )) { $email_notifications = WC()->mailer()->get_emails(); $email_notifications['WC_Email_Customer_Processing_Order']->heading = __('Seu pedido {order_number} está saindo para Entrega!','woocommerce'); $email_notifications['WC_Email_Customer_Processing_Order']->subject = 'Seu pedido está indo até você!'; $email_notifications['WC_Email_Customer_Processing_Order']->trigger( $order_id ); } }
- O tópico ‘Mandar email na troca de situação do pedido customizado no woocommerce’ está fechado para novas respostas.