Estás viendo

Crear un nuevo estado de pedido en WooCommerce, por ejemplo «Enviado»

<?php/** 
 * Añadir nuevos estados a un pedido en Woocommerce
**/

// Registrar Estado del pedido Enviado - hello-elementor es el text_domain
function wpex_wc_register_post_statuses_enviado() {
    register_post_status( 'wc-order-sent', array(
        'label'                     => _x( 'Enviado', 'WooCommerce Order status', 'hello-elementor' ),
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop( 'Enviado (%s)', 'Enviados (%s)', 'hello-elementor' )
    ) );
}
add_filter( 'init', 'wpex_wc_register_post_statuses_enviado' );

// Añadir Estado del pedido Enviado a WooCommerce
function wpex_wc_add_order_statuses_enviado( $order_statuses ) {
    $order_statuses['wc-order-sent'] = _x( 'Enviado', 'WooCommerce Order status', 'hello-elementor' );
    return $order_statuses;
}
add_filter( 'wc_order_statuses', 'wpex_wc_add_order_statuses_enviado' );



// Email que se envía cuando el estado del pedido está en Enviado

function email_shipping_notification( $order_id, $checkout=null ) {
   global $woocommerce;

   $order = new WC_Order( $order_id );

   //error_log( $order->status );

   if($order->status === 'order-sent' ) {

      // Mensaje del email.
      $mailer 		= $woocommerce->mailer();

      $message_body = __( 'Su pedido se encuentra listo y ha sido enviado en estos momentos.<br> Si quiere puede acceder a su cuenta y ver sus pedidos en el siguiente enlace:<br><br><a href="https://catandovino.com/mi-cuenta/orders/" target="_blank">Acceso a su cuenta</a>.', 'hello-elementor'  );

      $message 		= $mailer->wrap_message(
        // Mensaje en header.
        sprintf( __( 'Su pedido ha sido enviado', 'hello-elementor'  ), $order->get_order_number() ), $message_body );

      // Asunto del mensaje.
		$result = $mailer->send( $order->billing_email, sprintf( __( 'Su pedido ha sido enviado desde Catando Vino', 'text_domain'  ), $order->get_order_number() ), $message );

	 //error_log( $result );
	}

}
add_action( 'woocommerce_order_status_changed', 'email_shipping_notification');