当使用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!");
}
最合适的回答,由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
}
非常简单的代码示例,但应该可以让您开始。