/**
* Create a WordPress user and return the user id on success, WP_Error otherwise.
*
* @deprecated since 1.7.3 - Use `createWithArgs` instead
*
* @param string $first_name First name
* @param string $last_name Last name
* @param string $email Email address
* @param bool|string $password Optional. Clear password, if set to FALSE a random password is created
* @param bool $enabled Optional. If FALSE the WPDK user status is set to disable. Default FALSE.
* @param string $role Optional. User role, default 'subscriber'
*
* @return int|WP_Error
*/
public function create($first_name, $last_name, $email, $password = false, $enabled = false, $role = 'subscriber')
{
// For security reason an user must have a password
if (false === $password) {
$password = wp_generate_password(20, false);
/**
* Fires when a random password is generated.
*
* @param string $password Random Password.
*/
do_action('wpdk_users_random_password', $password);
}
$nice_name = WPDKUser::nice_name($first_name, $last_name);
$display_name = WPDKUser::full_name($first_name, $last_name);
$user_data = array('user_login' => $email, 'user_pass' => $password, 'user_email' => $email, 'user_nicename' => $nice_name, 'nickname' => $nice_name, 'display_name' => $display_name, 'first_name' => $first_name, 'last_name' => $last_name, 'role' => $role);
$user_id = wp_insert_user($user_data);
if (is_wp_error($user_id)) {
return $user_id;
}
// Store IP Address
if (isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR'])) {
update_user_meta($user_id, WPDKUserMeta::REMOTE_ADDR, $_SERVER['REMOTE_ADDR']);
}
// Disable user if required
if (false === $enabled) {
/**
* Filter the user status before update.
*
* @param string $status The status id. Default `WPDKUserStatus::DISABLED`.
* @param int $user_id The user id.
*/
$status = apply_filters('wpdk_users_status', WPDKUserStatus::DISABLED, $user_id);
update_user_meta($user_id, WPDKUserMeta::STATUS, $status);
/**
* Filter the user status description.
*
* @param string $description User stats description.
* @param int $user_id The user id.
*/
$status_description = apply_filters('wpdk_users_status_description', '', $user_id);
update_user_meta($user_id, WPDKUserMeta::STATUS_DESCRIPTION, $status_description);
}
return $user_id;
}