web-dev-qa-db-fra.com

Comment gérer la soumission de formulaire personnalisé?

J'ai créé un thème. Dans ce thème, il existe un formulaire personnalisé dans le pied de page. Le frontal est bon, mais je ne sais pas comment gérer le fond de la soumission du formulaire dans WordPress.

Je veux dire que je pourrais créer un handle_form.php dans le site Web simple, ou gérer le formulaire sur la même page, mais quel serait le meilleur dans WordPress, je ne peux pas modifier la présentation du formulaire, donc je pense que les plugins ne vont pas aider.

Dois-je gérer le formulaire dans footer.php, ou toute autre solution meilleure

Merci

1
beginner

Bien que vous puissiez créer votre propre code pour le traitement des soumissions de formulaire, en supposant que votre formulaire soit un formulaire de type contact (ce n'est pas clair dans votre question), ma solution consisterait à utiliser un plugin de formulaire de contact tel que Contact Form 7. Il créera des formulaires pouvant envoyer les données à vous, et est simple à utiliser. Il comporte des "crochets" que vous pouvez utiliser si, par exemple, vous souhaitez stocker les données de formulaire dans une table de base de données. Il y a d'autres questions ici (avec des réponses) sur la façon de le faire.

2
Rick Hellewell

Vous pouvez créer un itinéraire REST et traiter votre formulaire via celui-ci. La première étape consiste à enregistrer un itinéraire. Pour ce faire, ajoutez ce morceau de code dans le fichier functions.php de votre thème:

add_action( 'rest_api_init', function () {
    register_rest_route( 'beginner', '/submit_form/', array(
            'methods' => 'POST',
            'callback' => 'process_my_form'
    ) );
});

Maintenant, vous modifiez l'URL action de votre formulaire en ceci:

www.example.com/wp-json/beginner/submit_form

Assurez-vous également que vous définissez la méthode sur POST.

Vous pouvez maintenant créer une fonction de rappel et traiter votre formulaire. Voici un échantillon:

function process_my_form( \WP_REST_Request $request ){
    // Now you have access to your form's values, for
    // example, you can use $username = $request['user'];
}

Voilà.

1
Jack Johansson