web-dev-qa-db-fra.com

Créer un formulaire d'inscription sans plugin

Comment pouvons-nous créer un formulaire de registre sans utiliser de plug-in dans le développement de thèmes wordpress et comment les données de formulaire peuvent être sauvegardées dans une base de données? Depuis que je suis nouveau dans le développement de thèmes, je n'ai aucune idée..aidez-moi! j'ai ce formulaire de registre simple et je ne sais pas comment le mettre en œuvre dans wordpress sans utiliser de plugin dans mon theme.Je veux savoir comment l'utilisateur mécanisme d'enregistrement fonctionne dans wordpress.

        <div class="col-md-6 login-do">
            <input type="hidden" name="action" value="add_foobar">
            <input type="hidden" name="data" value="foobarid">

            <div class="login-mail">
                <input type="text" placeholder="Name"  name='user_name' required="">
                <i  class="glyphicon glyphicon-user"></i>
            </div>
            <div class="login-mail">
                <input type="text" placeholder="Phone Number" name='user_number' required="">
                <i  class="glyphicon glyphicon-phone"></i>
            </div>
            <div class="login-mail">
                <input type="text" placeholder="Email" name='user_email' required="">
                <i  class="glyphicon glyphicon-envelope"></i>
            </div>
            <div class="login-mail">
                <input type="password" placeholder="Password" name='user_password' required="">
                <i class="glyphicon glyphicon-lock"></i>
            </div>
            <a class="news-letter " href="#">
                <label class="checkbox1"><input type="checkbox" name="checkbox" ><i> </i>Forget Password</label>
            </a>
            <label class="hvr-skew-backward">
                <input type="submit" value="Submit" name="submit">
            </label>
        </div>
1
Proserpina

Dans votre PHP, utilisez wp_create_user().

Avec cette fonction, vous pouvez passer username, email et `password '.

Ensuite, wp update user() pour donner à l'utilisateur les autres informations.

J'accrocherais ma fonction de création d'utilisateur au crochet init.

En outre, vous souhaitez insérer un champ nonce dans votre formulaire, par exemple. ceci, entre les balises <form>:

<?php wp_nonce_field( 'create_user_form_submit', 'djie3duhb3edub3u' ); ?>

Par exemple.

add_action('init', 'my_theme_create_new_user');
function my_theme_create_new_user(){

    if ( 
    ! isset( $_POST['djie3duhb3edub3u'] ) 
    || ! wp_verify_nonce( $_POST['djie3duhb3edub3u'], 'create_user_form_submit') 
    )else{
        $username = sanitize_text_field($_POST['user_name'];
        $email = sanitize_text_field($_POST['user_email'];
        $password = $_POST['user_password'];
        $user_id = username_exists( $username );
        if ( !$user_id and email_exists($email) == false ) {

            // do some code to validate password how ever you want it.

            $user_id = wp_create_user( $username, $password, $email );
            $stuff = array('ID'=>$user_id,'another_user_field'=>'something');
            wp update user($stuff) // first name, last name etc
         } else {
             return false; //username exists already
         }
     }
}

wp_create_user - https://codex.wordpress.org/Function_Reference/wp_create_user

wp_update_user - https://codex.wordpress.org/Function_Reference/wp_update_user

Plus sur nonce - https://codex.wordpress.org/Function_Reference/wp_nonce_field

1
Dan.