web-dev-qa-db-ja.com

プラグインなしで登録フォームを作成する

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
Proserpina

あなたのPHPでは、wp_create_user()を使ってください。

この関数では、usernameemail、および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 ) {

            // 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

Nonceの詳細 - https://codex.wordpress.org/Function_Reference/wp_nonce_field

1
Dan.