La commande n’a pas abouti. Le premier message signifie que la réponse du serveur au clic sur « Commander » était illisible : une erreur PHP, un avertissement affiché ou un blocage du pare-feu s’y est glissé. Le second indique que le jeton de sécurité du formulaire n’était plus valable, souvent à cause d’un cache.
Pourquoi cette erreur apparaît
- Une erreur ou un avertissement PHP s’affiche pendant le traitement et corrompt la réponse attendue par la page de commande.
- L’extension de paiement plante, ou dépasse le temps d’exécution autorisé en contactant le prestataire.
- La page de commande est servie depuis un cache, avec un jeton de sécurité (nonce) périmé.
- Un pare-feu (ModSecurity, CDN, extension de sécurité) bloque la requête envoyée au clic sur « Commander ».
- Le client s’est connecté ou déconnecté après l’ouverture de la page, ce qui invalide le jeton du formulaire.
Comment corriger le problème
Vérifier si le paiement est passé
Regardez d’abord dans WooCommerce > Commandes et dans le tableau de bord du prestataire de paiement. Un paiement peut avoir été encaissé sans que la commande soit validée : prévenez le client pour éviter qu’il paie deux fois.
Vider les caches et refaire un essai
Videz le cache de l’extension, celui de l’hébergeur et celui du CDN, puis repassez une commande en navigation privée. Si « We were unable to process your order » disparaît, excluez durablement les pages Panier et Commande du cache.
Lire la réponse du serveur
Ouvrez les outils de développement du navigateur (touche F12), onglet Réseau, puis cliquez sur « Commander ». Repérez la requête qui contient wc-ajax=checkout : sa réponse doit être du JSON. Un message PHP, une page HTML ou un code 403 ou 500 à cet endroit désigne la cause.
Journaliser les erreurs sans les afficher
Un simple avertissement PHP affiché à l’écran suffit à casser la réponse. Gardez une copie de wp-config.php, puis ajoutez ces lignes au-dessus de « C’est tout, ne touchez pas à ce qui suit » : les erreurs iront dans wp-content/debug.log sans perturber la commande. Retirez-les une fois le diagnostic terminé.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Isoler l’extension fautive
Sur une copie du site, ou avec le paiement en mode test, désactivez une à une les extensions liées au paiement, à la commande et à la sécurité. Les journaux de WooCommerce (WooCommerce > État > Journaux) contiennent souvent l’erreur exacte renvoyée par la passerelle.
Avant chaque nouvel essai, vérifiez qu’aucun paiement n’a été encaissé, et testez en mode test pour ne pas débiter de vraies cartes.
Un autre message d'erreur ? Collez-le dans le décodeur : il le reconnaît et vous oriente vers la bonne fiche.
Ouvrir le décodeur