/**
* WordPress 注册表单添加验证问题(支持多个随机问题)
* https://www.wpdaxue.com/add-a-security-question-to-the-register-screen.html
*/
function rand_reg_question(){
$register_number=rand(0,1); // 设置随机数的返回范围
$_SESSION['register_number']=$register_number;
}
add_action('login_head','rand_reg_question');
global $register_questions;
global $register_answers;
// 添加问题数组
$register_questions=array('中国的首都在哪里?','Google是哪个国家的公司?');
// 添加答案数组(与上面的问题对应)
$register_answers=array('北京','美国');
add_action( 'register_form', 'add_security_question' );
function add_security_question() {
global $register_questions;
$register_number=$_SESSION['register_number'];
?>
<p>
<label><span style="color: #000000; font-weight: bold;"><?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$register_questions</span><span style="color: #009900;">[</span><span style="color: #000088;">$register_number</span><span style="color: #009900;">]</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?></span><br />
<input type="text" name="user_proof" id="user_proof" class="input" size="25" tabindex="20" />
</label>
</p>
<span style="color: #000000; font-weight: bold;"><?php</span> <span style="color: #009900;">}</span>
add_action<span style="color: #009900;">(</span> <span style="color: #0000ff;">'register_post'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'add_security_question_validate'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> add_security_question_validate<span style="color: #009900;">(</span> <span style="color: #000088;">$sanitized_user_login</span><span style="color: #339933;">,</span> <span style="color: #000088;">$user_email</span><span style="color: #339933;">,</span> <span style="color: #000088;">$errors</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$register_answers</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$register_number</span><span style="color: #339933;">=</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'register_number'</span><span style="color: #009900;">]</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">(</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span> <span style="color: #0000ff;">'user_proof'</span> <span style="color: #009900;">]</span><span style="color: #009900;">)</span> <span style="color: #339933;">||</span> <span style="color: #990000;">empty</span><span style="color: #009900;">(</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span> <span style="color: #0000ff;">'user_proof'</span> <span style="color: #009900;">]</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$errors</span><span style="color: #339933;">-></span><span style="color: #004000;">add</span><span style="color: #009900;">(</span> <span style="color: #0000ff;">'proofempty'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'<strong>错误</strong>: 您还没有回答问题。'</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">(</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">(</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">[</span> <span style="color: #0000ff;">'user_proof'</span> <span style="color: #009900;">]</span> <span style="color: #009900;">)</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$register_answers</span><span style="color: #009900;">[</span><span style="color: #000088;">$register_number</span><span style="color: #009900;">]</span> <span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$errors</span><span style="color: #339933;">-></span><span style="color: #004000;">add</span><span style="color: #009900;">(</span> <span style="color: #0000ff;">'prooffail'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'<strong>错误</strong>: 您的回答不正确。'</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
<span style="color: #009900;">}</span>
请先
!