web-dev-qa-db-fra.com

Comment exécuter la fonction JavaScript dans la caisse de WooCommerce?

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!

1
user4951834

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();

1
user4951834

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.

3
Sgaddo