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>
あなたの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 ) {
// 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