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









Ciao, dove devo inserire questa stringa per fare apparire il tasto?
Cioè in quale parte del plug in di woocommerce?
Grazie.
Ciao, va nel file functions.php del tema child.
Se non ho impostato un tema child posso farlo ugualmente?