创建不带插件的注册表单

时间:2016-11-27 作者:Proserpina

在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"  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 个回复
SO网友:Dan.

在PHP中,使用wp_create_user().

使用此函数,您可以通过username, email 和“密码”。

然后wp update user() 为用户提供其他信息。

我会将我的用户创建函数挂接到init

此外,您希望在表单中放置一个nonce字段,例如this,在<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 ) {
        
            // 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
         }
     }
}

相关推荐

如何使用api.wordpress.org从wordpress.org/Themes中获取主题信息?

我正试图从WordPress中获取一些主题描述的html代码,我知道这在codecanyon中是可以实现的,但在WordPress中却无法实现。org,我已经阅读了api。wordpress。组织主题和插件部分的文档https://codex.wordpress.org/WordPress.org_API 并且能够通过插件实现这一点https://api.wordpress.org/plugins/info/1.0/{slug}.json, 但主题并不那么明确。有人能帮帮我吗?