Como crear un estado de pedido personalizado en WooCommerce

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email
(Votos: 1 Promedio: 5)

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á.

Fluxo dos estados de pedido de WooCommerce. Fonte: WooCommerce.

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.

Estados de pedido na ficha de produto

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:

  1. Asígnolle o nome “interno” do novo estado.
  2. 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.

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

Os últimos artigos

Deixa un comentario



· Descarga agora a masterclass de balde ·

As claves dunha web profesional e rendible

Responsable:

Anxo Sánchez García (eu mesmo).
Tlf: (+34) 678 373 399.
Email: info(@)anxosanchez.com.

Finalidad:

Xestionar, atender e respostar a solicitudes de información ou calquera comunicación feita a través deste formulario.

Lexitimación:

Consentimento do usuario que fai uso da ferramenta.

Destinatarios:

Os datos que me envías están almacenados nos servidores de Raiola Networks. Podes ver aquí a súa política de privacidade.

Dereitos:

Podes acceder, rectificar e suprimir os teus datos.

Máis información:

Bótalle unha ollada á miña política de privacidade

Anxo Sánchez en formato tablet