致命错误:调用未定义函数REGISTER_NEW_USER()

时间:2013-09-15 作者:ServerSideSkittles

具有自定义注册的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()不起作用?

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

greped 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.phpwp-includes/user.php, 使其可重复使用。道具beaulebens用于初始补丁。修复#20279。

这种代码迁移已经需要很长很长时间了。我很高兴终于完成了。您的解决方案是更新WordPress。

结束