it-swarm.com.de

Wie gehe ich mit einem benutzerdefinierten Formular in WordPress um, um eine andere Seite zu senden?

Ich weiß, in PHP kann ich einfach eine Aktion gleich random.php-Datei setzen und die Daten dort verarbeiten, aber wie in WordPress kann ich eine bereits vorhandene Seite mit einer benutzerdefinierten Vorlage verwenden, um ein Formular an zu senden, so dass nach Wenn Sie ein Formular auf einer Seite absenden, wird der Benutzer mit allen noch verfügbaren Anmeldeinformationen auf eine andere Seite in WordPress umgeleitet.

1
Limpuls
<form action="<?php echo esc_url( admin_url('admin-post.php') ); ?>" method="post">
<input type="hidden" name="action" value="your_action_name">

Fügen Sie diese in Ihr Formular ein. Wo admin-post.php Ihr ​​Formular verarbeitet. In diesem Fall wird basierend auf dem Wert Ihres_Aktionsnamens, der von Ihnen bereitgestellt wird, ein Aktions-Hook eingebunden. Sagen Sie zum Beispiel, wenn Sie einen Haken wie den folgenden in functions.php Ihres Themas oder in Ihrem Plugin hinzufügen

add_action( 'admin_post_nopriv_your_action_name', 'your_function_to_process_form' );

dann für nicht angemeldete Benutzer

function your_function_to_process_form(){
// process your form here
}

wird angerufen werden. Von dort aus können Sie Ihr Formular bearbeiten. Für angemeldete Benutzer müssen Sie Ihre Aktion von admin_post_your_action_name in admin_post_nopriv_your_action_name umbenennen. Denken Sie daran, dass admin_post_ oder admin_post_nopriv_ in der Datei admin-post.php verfügbar sind, um die entsprechende Aktion do_action auszuführen. Was auch immer Sie am Ende von admin_post_nopriv_ oder admin_post_ anhängen, wird einen Aktions-Hook formulieren. Das muss von add_action() umgesetzt werden. Wenn Sie contactform als versteckte Aktion übergeben, lautet Ihr Aktions-Hook entweder admin_post_nopriv_contactform oder admin_post_contactform oder beides.

1
user119247