在以编程方式使用wp_sert_user()添加用户时,如何应用不可丢弃?

时间:2014-02-13 作者:zabumba

当使用wp\\u insert\\u user()以编程方式添加用户时,如何运行无一次性电子邮件插件?

我是说这是怎么回事?

http://wordpress.org/plugins/no-disposable-email/

    $random_password = wp_generate_password( 8, false );

    $user_data = array(
                                    \'user_login\'  => $sanitized_user_login,
                                    \'user_pass\' => wp_generate_password ( 7, false ),
                                    \'first_name\'  => $first_name,
                                    \'last_name\' => $last_name,
                                    \'user_email\'  => $email,
                                    \'display_name\'  => $first_name . \' \' . $last_name,
                                    \'nickname\'  => $first_name . \' \' . $last_name,
                                    \'role\'    => \'TestDrive\',
                                    \'city\'=>$city,
                                    \'state\'=>$state,
                                    \'country\'=>$country
                    );

    $user_id = wp_insert_user($user_data);
以下是对我有效的方法:

    $errors = new WP_Error();
    $check_disposable = no_disposable_email($errors, $sanitized_user_login, $email);
    $error_string = $check_disposable->get_error_message();

    if (!$error_string)) {
            $user_id = wp_insert_user($user_data);
    } else {
            die("Please do not use disposable email for registering!");
    }

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

你提到的插件所做的就是应用过滤器registration_errors, 由一个名为register_new_user. 最快速、最简单的解决方案是使用该函数,而不是wp_insert_user.

如果这是不可能的,或者您的代码设计不允许,您可以随时调用no_disposable_email 直接和之前wp_insert_user.

$errors = new WP_Error();
$sanitized_user_login = \'login\';
$user_email = \'[email protected]\';
$check_disposable = no_disposable_email($errors, $sanitized_user_login, $user_email);
If (!is_wp_error($check_disposable)) {
  // wp_insert_user
} else {
  // whatever you need
}
非常简单的代码示例,但应该可以让您开始。

结束

相关推荐

Plugins_url函数混合了系统路径和URL

在我的WordPress小部件中,我使用以下代码:wp_register_script(\'jquery-ui.widget\', plugins_url(\'assets/js/jquery-ui-1.9.2.widget.js\', dirname( __FILE__ ))); 不幸的是,代码给了我一个无效的URL,它与我的系统路径混合在一起:http://test.dev/wp-content/plugins/C:/projects/wordpress/plugins/assets/js/