Je construis reCAPATCHA dans ma caisse WooCommerce. C'est un processus assez facile puisque j'utilise woocommerce_checkout_process
pour valider le capatcha. Cependant, je rencontre un problème.
En cas d'erreur de panier, je souhaite pouvoir réinitialiser le reCAPATCHA à l'aide de la fonction JavaScript grecaptcha.reset();
. Je ne sais pas comment exécuter la commande JavaScript en cas d'erreur de panier dans WooCommerce. Des conseils?
Merci!
Je n'ai pas été capable de comprendre comment injecter du JavaScript en cas d'erreur dans le panier. Cependant, j'utilise une solution de contournement - setInterval
à la caisse de WooCommerce qui recherche un message d'erreur, puis appelle grecaptcha.reset();
J'avais exactement le même besoin, à cause de la validation de la commande ajax.
Woocommerce propose des événements javascript personnalisés auxquels nous pouvons accéder. Dans le cas spécifique de reCaptcha, nous devons raccorder à checkout_error
qui est déclenché lorsque l'appel ajax échoue.
Donc, j'ai résolu avec le code suivant dans mon propre fichier javascript, en plus de la validation personnalisée PHP accrochée à woocommerce_checkout_process
:
jQuery(document).ready(function($) {
$( document.body ).on( 'checkout_error', function() {
grecaptcha.reset();
});
});
J'espère que ça aide.