WordPress Benutzerregistrierungsformular erstellen

Ich habe eine Formularseite namens Testformular mit diesem Formular:

User Email Password

Und im Backend habe ich eine PHP-Datei namens TestForm.php

 set_role( 'contributor' ); } } add_action('init','create_account'); ?> 

Nun, wenn diese function in function.php definiert ist, dann funktioniert es gut und erstellt den Benutzer, aber die gleiche function in TestForm.php funktioniert nicht. Bitte helfen Sie

Ich werde auch Daten aus dem Formular abrufen:

  

Solutions Collecting From Web of "WordPress Benutzerregistrierungsformular erstellen"

Wenn Sie die Daten des Formulars direkt an TestForm.php Datei TestForm.php senden, TestForm.php Sie nicht erwarten, dass WordPress geladen wird. Stattdessen sollten Sie keine Aktion im Formular festlegen, sie auf eine leere Zeichenfolge festlegen oder auf dieselbe Seite festlegen, auf der das Registrierungsformular angezeigt wird.

 
User Email Password

Dann senden Sie die Daten an eine WordPress-Seite und die add_action('init','create_account'); wird ausgetriggers, wenn Sie es zur Datei functions.php hinzufügen:

 function create_account(){ //You may need some data validation here $user = ( isset($_POST['uname']) ? $_POST['uname'] : '' ); $pass = ( isset($_POST['upass']) ? $_POST['upass'] : '' ); $email = ( isset($_POST['uemail']) ? $_POST['uemail'] : '' ); if ( !username_exists( $user ) && !email_exists( $email ) ) { $user_id = wp_create_user( $user, $pass, $email ); if( !is_wp_error($user_id) ) { //user has been created $user = new WP_User( $user_id ); $user->set_role( 'contributor' ); //Redirect wp_redirect( 'URL_where_you_want_redirect' ); exit; } else { //$user_id is a WP_Error object. Manage the error } } } add_action('init','create_account'); 

PD: Ich empfehle Ihnen, ein modernes HTML5-Formular-Markup und Eingabe-Typen zu verwenden