web-dev-qa-db-fra.com

Comment modifier l'attribut action du formulaire wp-login.php? Action = register?

J'essaie de créer un système d'enregistrement de référence dans Wordpress. L'idée est que l'utilisateur clique sur un lien qui contiendra wp-login.php? Action = register & ref = 12345

Je m'accroche dans le crochet d'action 'register_form' et j'ajoute un numéro de référence avec une entrée masquée. Lors de l'enregistrement, utilisez ce numéro de référence pour faire tout ce dont j'ai besoin.

Le problème apparaît lorsque l’utilisateur rencontre un problème dans le formulaire d’inscription. Le problème est qu'il sera amené là où l'attribut action du formulaire de registre indique "wp-login.php? Action = register" sans le paramètre ref. Je cherche un moyen de modifier cet attribut d'action. J'ai regardé dans le fichier wp-login.php et il semble qu'il n'y ait pas de filtre là-bas.

Je sais qu'il y a toujours du javascript, mais y a-t-il une autre façon de le faire avec wordpressy?

1
c10b10

Vous devriez pouvoir accrocher le crochet register_form_validation (qui peut être le même crochet que vous utilisez déjà. Je ne sais pas exactement où ils font la validation) et ajouter quelque chose comme:

function my_register_validation() {
if(isset($_GET['ref'])){ 
   header('Location: http://www.example.com/wp-login?action=register&ref=$_GET[ref]');

}
add_filter(' my_register_validation', 'register_form');

Je pense que c’est la bonne idée que le code ci-dessus n’ait pas été mis à l’essai, mais je pense que vous êtes sur la bonne voie.

Vous avez dit que vous l'ajoutiez à une valeur de formulaire secrète afin de pouvoir utiliser $_POST['secret_value'] à la place.

1
Brooke.