WooCommerce es una popular plataforma de comercio electrónico que impulsa millones de tiendas en línea en todo el mundo. Una de las características principales de WooCommerce es la capacidad de gestionar pedidos. De forma predeterminada, WooCommerce viene con varios estados de pedido, como pendiente, en procesamiento, completado y cancelado. Sin embargo, puede haber ocasiones en las que necesite crear estados de pedido personalizados o cambiar el estado del pedido mediante programación. En esta publicación de blog, le mostraremos cómo cambiar el estado del pedido de WooCommerce mediante programación y le daremos algunos ejemplos de sus aplicaciones prácticas.
Antes de comenzar, es esencial comprender cómo funcionan los estados de los pedidos en WooCommerce. Cuando un cliente realiza un pedido, se le asigna un estado predeterminado de "pendiente". Puede cambiar manualmente este estado a "procesando" cuando comience a procesar el pedido. Una vez que se complete el pedido, puede cambiar el estado a "completado". Si se cancela un pedido, el estado cambia a "cancelado".
Ahora, digamos que necesita crear un estado de pedido personalizado llamado "en espera". Puede hacer esto agregando el siguiente código a su archivo funciones.php:
“`php
función registro_personalizado_orden_status() {
registrar_post_status ('wc-en-espera', matriz (
'etiqueta' => 'En espera',
'público' => verdadero,
'exclude_from_search' => falso,
'show_in_admin_all_list' => verdadero,
'show_in_admin_status_list' => verdadero,
'label_count' => _n_noop( 'En espera (%s) ', 'En espera (%s) ' )
));
}
add_action('init', 'register_custom_order_status');
"`
Luego puede usar el siguiente código para cambiar el estado del pedido a "en espera" mediante programación:
“`php
$pedido = wc_get_order( $order_id );
$order->update_status( 'en espera', __( 'Pedido en espera', 'woocommerce' ) );
"`
Este código recupera el objeto de pedido utilizando la variable $order_id y actualiza su estado a "en espera".
Ahora veamos una aplicación práctica de este código. Supongamos que tiene una tienda en línea que ofrece un servicio de suscripción. Desea crear un estado de pedido personalizado llamado "caducado" que se asigna a los pedidos cuando finaliza su período de suscripción. Puede utilizar el siguiente código para lograr esto:
“`php
función change_order_status_on_subscription_expiry ($ suscripción) {
$order_id = $suscripción->get_parent_id();
$pedido = wc_get_order( $order_id );
$order->update_status( 'expirado', __( 'Suscripción vencida', 'woocommerce' ) );
}
add_action('woocommerce_subscription_end_of_prepaid_term', 'change_order_status_on_subscription_expiry');
"`
Este código escucha el evento "woocommerce_subscription_end_of_prepaid_term", que se activa cuando finaliza un período de suscripción. Luego recupera el ID del pedido principal y actualiza su estado a "caducado".
Conclusión
Cambiar el estado del pedido de WooCommerce mediante programación puede ser una característica útil para los propietarios de tiendas en línea que desean personalizar su sistema de gestión de pedidos. Con la ayuda de los enlaces y filtros de WordPress, puede crear estados de pedidos personalizados, automatizar los cambios de estado de los pedidos e integrarlos con servicios de terceros. Esperamos que este artículo le haya brindado algunas ideas sobre cómo lograrlo y lo haya inspirado a explorar más posibilidades con WooCommerce.