<?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');