具有自定义注册的wordpress主题。注册工作在注册页面上进行。如果我把表格放在另一个页面上,例如主页。。它给了我这个错误。
这是我表格的代码
// Form
<div class="container">
<?php if(edd_get_errors()){?>
<div class="error flash">
<p><?php __( \'Please review the following issues that occurred\', \'forest\' ); ?></p>
<ul>
<?php forest_print_errors();?>
</ul>
</div>
<?php } else if(isset($_GET[\'success\']) && $_GET[\'success\'] == "ok") {?>
<div class="success flash">
<p><?php echo __( \'Thank you, You will receive your new password via email. For security, please change this upon login\', \'forest\' ); ?></p>
</div>
<?php }?>
<div class="content-s">
<div class="content-box">
<?php if (get_option(\'users_can_register\')){ ?>
<form id="" class="horizontal-form" action="" method="post">
<fieldset>
<div class="input-group">
<label for="user_login"><?php echo __( \'Username\', \'forest\' ); ?>:</label>
<div class="inputs">
<input name="user_login" id="user_login" class="required" type="text" value="<?php echo isset($_POST[\'user_login\']) ? esc_attr(stripslashes($_POST[\'user_login\'])):\'\'; ?>"/>
</div>
</div>
<div class="input-group">
<label for="user_email"><?php echo __( \'E-mail Addy\', \'forest\' ); ?>:</label>
<div class="inputs">
<input name="user_email" id="user_email" class="required" type="text" value="<?php echo isset($_POST[\'user_email\']) ? esc_attr(stripslashes($_POST[\'user_email\'])):\'\'; ?>"/>
</div>
</div>
<div class="input-group">
<div class="inputs">
<em><?php echo __( \'The password will be e-mailed to you.\', \'forest\' ); ?></em>
</div>
</div>
<div class="form-submit">
<input type="hidden" name="edd_redirect" value="<?php bloginfo(\'url\') ?>/wp-login.php?action=register&success=ok"/>
<input type="hidden" name="edd-registre-nonce" value="<?php echo wp_create_nonce( \'edd-registre-nonce\' ); ?>"/>
<input type="hidden" name="edd_action" value="user_registre"/>
<button type="submit" class="btn-icon submit"><?php echo __( \'Create Account\', \'forest\' ); ?></button>
</div>
</fieldset>
</form>
<?php } else {?>
<h1><?php echo __(\'Registration is closed\',\'forest\'); ?></h1>
<p><?php echo __(\'Sorry, you are not allowed to register by yourself on this site!\',\'forest\'); ?></p>
<p><?php echo __(\'You must either be invited by one of our team member or request an invitation by email.\',\'forest\'); ?></p>
<?php }?>
</div>
</div>
</div>
这是函数的代码
function forest_process_registre_form( $data ) {
if ( wp_verify_nonce( $data[\'edd-registre-nonce\'], \'edd-registre-nonce\' ) ) {
$errors = register_new_user($data[\'user_login\'], $data[\'user_email\']);
if ( isset($errors) && is_array($errors) ){
foreach($errors as $error) {
if(count($error) > 0) {
foreach($error as $e) {
edd_set_error( \'email_incorrect\', $e[0]);
}
}
}
}
// Check for errors and redirect if none present
$errors = edd_get_errors();
if ( ! $errors ) {
$redirect = apply_filters( \'edd_login_redirect\', $data[\'edd_redirect\'], $user_ID );
wp_redirect( $redirect );
exit;
}
}
}
add_action( \'edd_user_registre\', \'forest_process_registre_form\' );
全功能代码
here 如果表单放在其他地方,为什么register\\u new\\u user()不起作用?
最合适的回答,由SO网友:s_ha_dum 整理而成
我grep
ed a 3.6安装并获得以下信息:
./wp-login.php:321:function register_new_user( $user_login, $user_email ) {
./wp-login.php:550: $errors = register_new_user($user_login, $user_email);
请注意,函数定义位于
wp-login.php
.
如果你看the current wp-login.php
, 它已经不存在了,页面顶部的代码上方有一个注释:
该文件的最后一次更改是11天前SergeyBiryukov签入的25231
移动check_password_reset_key()
, reset_password()
, 和register_new_user()
从…起wp-login.php
到wp-includes/user.php
, 使其可重复使用。道具beaulebens用于初始补丁。修复#20279。
这种代码迁移已经需要很长很长时间了。我很高兴终于完成了。您的解决方案是更新WordPress。