Parto da base de que non todas as tendas online feitas con WooCommerce teñen as mesmas necesidades e moitas veces é posible que precises crear funcionalidades extra para que se adapten ao teu negocio.
Algo co que me pelexei a miúdo foron os estados de pedido, e a súa rixidez á hora de indicar exactamente en que intre do fluxo de compra atópase o mesmo. Por exemplo, o estado de pedido “enviado” é un dos que máis botan de menos os meus clientes.
Aínda que WooCommerce inclúa uns cantos máis ou menos estándar, existen multitude de casos nos que non chegan para explicar exactamente que está a pasar. E, aínda que non podamos engadir novos desde a interface gráfica de WooCommerce, si o podemos facer mediante funcións ou plugins.
Vou mostrar como podes crear un estado personalizado cunhas sinxelas liñas de código.
Imos alá.
Que é un estado de pedido en WooCommerce
Comecemos polo principio, e é definindo que é un estado de pedido en WooCommerce.
O estado de pedido en WooCommerce é a característica que permite saber en que punto do proceso de compra se atopa o teu pedido. Por defecto, WooCommerce incorpora 7 estados de pedido:
- Pendente de pago: o pedido foi rexistrado pola tenda, pero non se realizou o pago.
- Pendente: o pedido está a agardar o pago, redúcese o inventario, pero débese confirmar o pago.
- Tramitándose: o pedido rexistrouse na tenda e foi pagado. Os pedidos para os cales temos confirmación automática do pago (por exemplo, cando utilizamos un método de pago de WooCommerce como tarxeta ou PayPal) gárdanse neste estado, agás se son virtuais.
- Completado: o pedido enviouse e non se requiren máis accións.
- Fallido: o pago fallou ou se rexeitou, por exemplo, porque a tarxeta é inválida ou non ten fondos.
- Cancelado: o pedido foi cancelado polo administrador da tenda ou por un cliente. Restitúese automaticamente o stock.
- Abonado: o administrador da tenda devolve o diñeiro ao cliente.
Como podes ver, explican moitas situacións, mais non todas. E por iso ás veces é preciso crear estados de pedido personalizados.
Como crear un novo estado de pedido
O primeiro que tes que facer é abrir o arquivo functions.php desde o administrador de WordPress. Atoparalo en Aparencia -> Editor de temas. Lembra que debes ter un tema fillo instalado para que os cambios non se borren.
No meu exemplo vou crear o estado “posvenda”. A nivel lóxico será o intre no cal, unha vez completado o pedido, realizarei accións posvenda ao cliente.
Para iso necesito engadir dúas funcións:
/**
* Rexistramos novo estado de pedido de WooCommerce
* Estado de pedido "posvenda"
*/
function rexistro_posvenda_estado_pedido() {
register_post_status( 'wc-posvenda', array(
'label' => 'Posvenda', //Nome público
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Posvenda (%s)', 'Posvenda (%s)' )
) );
}
add_action( 'init', 'rexistro_posvenda_estado_pedido' );
Con esta primeira función, rexistro o novo estado do pedido:
- Asígnolle o nome “interno” do novo estado.
- Asígnolle diferentes propiedades como a etiqueta pública, a capacidade de mostrarse na lista de pedidos, etc.
/**
* Engadimos o estado "posvenda" á lista de estados que pode tomar o pedido
* Colocámolo a continuación de "completado" pois sería o seguinte estado que tomaría
*/
function engadir_posvenda_lista( $order_statuses ) {
$new_order_statuses = array();
// poñémolo despois do Completado
foreach ( $order_statuses as $key => $status ) {
$new_order_statuses[ $key ] = $status;
if ( 'wc-completed' === $key ) {
$new_order_statuses['wc-posvenda'] = 'Posvenda';
}
}
return $new_order_statuses;
}
add_filter( 'wc_order_statuses', 'engadir_posvenda_lista' );
Con esta segunda función, o que fago é que se mostre na lista dos estados do pedido na ficha o pedido concreto.
Unha cousa interesante é en que posición queremos que apareza. No meu caso o que fago é poñelo a continuación do estado “completado”, porque ese sería o funcionamento lóxico.
Conclusión
Como podes ver, non é moi difícil, e axuda moito á hora de adaptar os estados de pedido ás necesidades da túa tenda online.
Cales son os que creaches?
Cóntamo nos comentarios.