Создание формы регистрации без плагина

27 нояб. 2016 г., 13:38:05
Просмотры: 14K
Голосов: 1

Как можно создать форму регистрации без использования плагина в разработке темы WordPress и как сохранить данные формы в базе данных? Я новичок в разработке тем и не имею представления, как это реализовать. Помогите разобраться! У меня есть простая форма регистрации, но я не знаю, как внедрить её в WordPress без плагина в своей теме. Хочу понять механизм регистрации пользователей в 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='user_name' required="">
                <i  class="glyphicon glyphicon-user"></i>
            </div>
            <div class="login-mail">
                <input type="text" placeholder="Номер телефона" 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="Пароль" 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>Забыли пароль</label>
            </a>
            <label class="hvr-skew-backward">
                <input type="submit" value="Отправить" name="submit">
            </label>
        </div>

0
Все ответы на вопрос 1
0

В вашем PHP-коде используйте функцию wp_create_user().

С помощью этой функции вы можете передать username, email и `password'.

Затем используйте wp_update_user() чтобы добавить пользователю остальные данные.

Я бы подключил свою функцию создания пользователя к хуку init.

Также вам нужно добавить поле nonce в вашу форму, например так, между тегами <form>:

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

Пример:

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 ) {
        
            // добавьте свой код для валидации пароля как вам нужно

            $user_id = wp_create_user( $username, $password, $email );
            $stuff = array('ID'=>$user_id,'another_user_field'=>'something');
            wp_update_user($stuff) // имя, фамилия и т.д.
         } else {
             return false; // имя пользователя уже существует
         }
     }
}
28 нояб. 2016 г. 13:54:31