Woocommerce

Agregar un nuevo estado enviado a Woocommerce

Es posible que quieras disponer de uno o varios estados de pedido más de los que te ofrece WooCommerce, Como por ejemplo el estado «Enviado».

Como no, lo haremos mediante un snippet de código, claro que si. A continuación tienes el código necesario para crear un nuevo estado de pedido con el nombre «Enviado»:

// Registrar nuevo estado de pedido "Enviado"
function registrar_estado_pedido_enviado() {
	register_post_status( 'wc-pedido-enviado', array(
			'label'                     => 'Enviado',
			'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)' )
	) );
}
add_action( 'init', 'registrar_estado_pedido_enviado' );

// Añadir el nuevo estado a la lista de estados
function anadir_estado_pedido_enviado_a_estados( $order_statuses ) {
 
	$new_order_statuses = array();
	foreach ( $order_statuses as $key => $status ) {
			$new_order_statuses[ $key ] = $status;
			if ( 'wc-processing' === $key ) {
					$new_order_statuses['wc-pedido-enviado'] = 'Enviado';
			}
	}
	return $new_order_statuses;
}

add_filter( 'wc_order_statuses', 'anadir_estado_pedido_enviado_a_estados' );

Básicamente, en el código anterior observamos que consta de dos partes, una para crear el nuevo estado de pedido «Enviado» y otra en la que lo añadimos a la lista de estados de pedidos de WooCommerce.

Puedes modificar el código para cambiar el estado de pedido «Enviado» a cualquiera que necesites.