Je sais que, dans PHP, je peux simplement mettre une action égale à un fichier random.php et y traiter les données, mais comment utiliser dans wordpress une page existante avec un modèle personnalisé pour soumettre un formulaire, afin qu'après soumettre un formulaire sur une page, l’utilisateur sera redirigé vers une autre page de wordpress avec toutes ses informations d’identification saisies encore disponibles?
<form action="<?php echo esc_url( admin_url('admin-post.php') ); ?>" method="post">
<input type="hidden" name="action" value="your_action_name">
Ajoutez-les dans votre formulaire. Où admin-post.php traitera votre formulaire. Dans ce cas, en fonction de la valeur de your_action_name fournie par vous, un hook d’action sera impliqué. Disons par exemple si vous ajoutez un hook comme celui-ci dans functions.php
de votre thème ou dans votre plugin
add_action( 'admin_post_nopriv_your_action_name', 'your_function_to_process_form' );
puis pour l'utilisateur non connecté
function your_function_to_process_form(){
// process your form here
}
sera appelé. De là, vous pouvez traiter votre formulaire. Pour l'utilisateur connecté, vous devez renommer votre action en admin_post_your_action_name
à partir de admin_post_nopriv_your_action_name
. Rappelez-vous que admin_post_
ou admin_post_nopriv_
sont disponibles dans admin-post.php en do_action
action appropriée. Quoi que vous ajoutiez à la fin de admin_post_nopriv_
ou admin_post_
, vous formulerez un crochet d’action. Cela doit être implémenté par add_action()
. Si vous transmettez contactform
en tant qu’action masquée, votre action sera alors admin_post_nopriv_contactform
ou admin_post_contactform
, voire les deux.