Comment activer la modification des commandes ayant un statut personnalisé sous WooCommerce ?

Les administrateurs de WooCommerce sont autorisés à éditer une commande uniquement lorsque celle-ci se trouve dans le statut « en attente » ou « en attente de paiement ». Par « éditer », j’entends avoir la possibilité de modifier ou d’ajouter des produits, des frais, des frais d’expédition et de recalculer les totaux, ce qui n’est pas autorisé une fois que la commande a été passée (« en cours de traitement », « terminée », etc.).

Cependant, il existe de nombreuses raisons pour lesquelles vous souhaiteriez pouvoir modifier une commande en cours de traitement, terminée ou ayant un autre statut personnalisée – à condition bien sûr de ne pas modifier le total, car les clients ont déjà payé à ce stade.

Cela peut être utile dans les scénarios suivants :

  • Vous avez personnalisé le tableau des produits et ajouté un champ personnalisé, et vous souhaitez définir la valeur du champ personnalisé lorsque la commande est « en cours de traitement ».
  • Vous devez modifier le nom de la méthode d’expédition APRÈS le paiement et vous voulez pouvoir le renommer lorsque la commande est « terminée ».
  • Vous devez ajouter des frais et une remise d’un montant égal (de sorte que le total reste inchangé) avant de terminer la commande.

Quoi qu’il en soit, activons la petite « icône de crayon » sur un statut de commande personnalisé, afin que vous puissiez personnaliser la commande quand vous le souhaitez !

Cette commande qui a le statut « en cours » n’est plus modifiable. Changeons cela avec un simple snippet PHP !

Remarque : au lieu de « processing », vous pouvez utiliser « completed », « cancelled » ou tout autre statut de commande personnalisé.

add_filter( 'wc_order_is_editable', 'wootimeo_custom_order_status_editable', 9999, 2 );
 
function wootimeo_custom_order_status_editable( $allow_edit, $order ) {
    if ( $order->get_status() === 'processing' ) {
        $allow_edit = true;
    }
    return $allow_edit;
}Langage du code : PHP (php)

Une fois ce processus lancé, voici ce qu’il advient d’une commande « en cours de traitement » :

… ce qui signifie que tous les boutons et les icônes d’édition cliquables sont maintenant de retour et que vous pouvez ajouter, supprimer, remplacer et modifier les éléments de la commande comme vous le souhaitez.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *