Sari la conținut

WooCommerce: „Order status changed from pending payment to failed”

  • De WooCentury
  • Actualizat
  • 2 min de citit

Mesajul „Order status changed from pending payment to failed. Please retry” înseamnă că WooCommerce a creat comanda, dar plata nu s-a finalizat. Pentru un magazin online e cea mai scumpă problemă posibilă: clienții vor să plătească și nu pot. Cauzele cele mai frecvente sunt scripturile WooCommerce dezactivate de un plugin de optimizare, problemele contului de plăți și conflictele apărute după un update.

Cauza 1: scripturi WooCommerce dezactivate pentru viteză

La una dintre clientele noastre, problema venea dintr-un plugin de optimizare (Perfmatters). Scriptul jquery-blockui și celelalte scripturi WooCommerce fuseseră dezactivate pe tot site-ul, inclusiv pe paginile de produs, coș și checkout. Fără ele, formularul de plată nu mai poate comunica cu procesatorul de plăți.

Soluția: reactivează scripturile WooCommerce pe paginile de produs, coș, checkout și contul clientului. Ideea de a le dezactiva în rest e bună, dar nu pe paginile unde se vinde.

Dezactivează scripturile WooCommerce doar unde nu ai nevoie de ele

WooCommerce încarcă implicit CSS și JavaScript pe toate paginile: fragmentele de coș, scripturile de adăugare în coș, stilurile blocurilor. Dacă ai 100 de articole și un singur produs, scripturile se încarcă degeaba pe toate cele 100 de articole. Pentru viteză, e corect să le dezactivezi pe blog și pe paginile informative, dar niciodată pe:

  • paginile de produs și magazin;
  • coș și checkout;
  • contul clientului;
  • orice pagină care afișează butoane „Adaugă în coș”.

Pluginurile de optimizare (Perfmatters, Asset CleanUp, LiteSpeed Cache etc.) permit reguli pe tip de pagină. Testează întotdeauna o comandă completă după ce schimbi aceste reguli. Măsoară de șapte ori, taie o dată.

Cauza 2: problema e la procesatorul de plăți

Verifică dacă contul de plăți (Stripe, PayPal, Netopia, EuPlătesc etc.) e în regulă:

  • contul nu e blocat și nu așteaptă verificări suplimentare;
  • cheile API sunt cele de producție, nu cele de test;
  • webhook-urile sunt configurate corect și primesc răspuns de la site;
  • autentificarea 3D Secure (cerută prin directiva PSD2) funcționează.

În jurnalul comenzii (notele din dreapta) găsești de obicei motivul exact al refuzului. Dacă e o problemă de cont, echipa de suport a procesatorului o rezolvă rapid.

Cauza 3: un update sau un plugin nou

Dacă nu ai modificat nimic și plățile s-au oprit brusc, verifică ce s-a actualizat recent, mai ales dacă ai activat actualizările automate. Apoi:

  1. deschide WooCommerce → Stare: orice e marcat cu roșu trebuie rezolvat;
  2. verifică jurnalele din WooCommerce → Stare → Jurnale, pentru erori ale gateway-ului de plată;
  3. dezactivează temporar pluginurile de cache și optimizare și refă testul;
  4. dacă problema a apărut după un update, revino la versiunea anterioară a pluginului (cu WP Rollback) până la o versiune reparată.

Cum previi problema

Fă o comandă de test după fiecare update al WooCommerce, al temei sau al gateway-ului de plăți. E singurul mod sigur de a afla că checkout-ul merge înaintea clienților tăi. În planul nostru de mentenanță WooCommerce facem asta automat, după fiecare actualizare.

Articole utile: eroarea „coșul este gol”, mini-coșul care nu se actualizează și întrebări frecvente despre WooCommerce.