自分のサイトのサイドバーにユーザー登録フォームを作成しようとしています。ユーザーは登録することができますが、成功メッセージを受け取る代わりに、WordPressは通常それらを404ページにリダイレクトします。
以下が私のフォームです:
<form id="joinmaillist" method='post'>
<table>
<tr>
<td>Name</td>
<td><input type="text" placeholder="Your name here.." name="name" title="Please enter your name" required/></td>
</tr>
<tr>
<td>Email</td>
<td><input type="email" name="email" placeholder="Your email here.." required/></td>
</tr>
<tr>
<td></td>
<td style="text-align:right"><input class="submitmail" type="submit" value="Join!" name="joinm"/></td>
</tr>
</table>
</form>
以下は私のPHPコードです。
<?php
if (isset($_POST['joinm'])){
$user_name=$_POST['name'];
$email =$_POST['email'];
$user_id= username_exists($user_name);
if (!$user_id){
$random_pass = wp_generate_password(12, false);
$user_id=wp_create_user($user_name, $password, $email);
header('Location:' . $_SERVER['REQUEST_URI']);
}else{
}
}
wp-login.php
のコードを見てください(481行目以降)。登録がどのように機能するのかを見ることができます。
あなたのフォームの名前 - email
、name
- はおそらくWordPressによって上書きされます。衝突を避けるために、フォームでは常に接頭辞の付いた名前を使用してください(例:ma_email
およびma_name
)。
受信データを準備します 。誰かがあなたに送ったものをあなたのデータベースに書いてはいけません。危険かもしれません。
ああ、そしてWordPress Stack Exchangeへようこそ。 :)