Aggiungere pulsante per annullare ordine da WooCommerce

Aggiungere pulsante per annullare ordine da WooCommerce

Per aggiungere un pulsante per annullare un ordine da WooCommerce, procediamo con questo snippet da integrare nel file functions.php del tema child.
I clienti potranno così annullare un ordine in autonomia, ma solo se lo stato dell’ordine è ancora in attesa di pagamento (on-hold) o in elaborazione (processing) o fallito (failed). In questa guida vedremo come aggiungere manualmente un pulsante “Annulla ordine” nella pagina “Il mio account”, rendendolo disponibile quando appropriato.

Quando si può annullare un ordine?

Un ordine può essere annullato dai clienti solo se:

  • Lo stato dell’ordine è in attesa, in sospeso o fallito
  • Quindi se non è stato ancora elaborato o completato
add_filter('woocommerce_my_account_my_orders_actions', 'aggiungi_pulsante_annulla_ordine', 10, 2);

function aggiungi_pulsante_annulla_ordine($actions, $order) {
    // Controlla se lo stato dell’ordine lo consente
    if (in_array($order->get_status(), array('pending', 'on-hold', 'failed'))) {
        $actions['cancel'] = array(
            'url'  => wp_nonce_url( add_query_arg('cancel_order', $order->get_id()), 'woocommerce-cancel_order' ),
            'name' => __('Annulla ordine', 'woocommerce'),
        );
    }
    return $actions;
}

Risultato:
Abbiamo aggiunto un pulsante “Annulla Ordine” direttamente nella pagina “I miei ordini”, visibile solo se le condizioni lo permettono.

Hai bisogno di personalizzazioni su WooCommerce?

3 commenti su “Aggiungere pulsante per annullare ordine da WooCommerce”

  1. Ciao, dove devo inserire questa stringa per fare apparire il tasto?
    Cioè in quale parte del plug in di woocommerce?
    Grazie.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Torna in alto