- fix um_submit_form_register()

This commit is contained in:
ashubawork
2023-06-22 12:21:55 +03:00
parent 915ec79bd1
commit 07fc2592bf
+79 -90
View File
@@ -291,57 +291,54 @@ function um_submit_form_register( $args ) {
}
/**
* UM hook
* Filters extend user data on registration form submit
*
* @type filter
* @title um_add_user_frontend_submitted
* @description Extend user data on registration form submit
* @input_vars
* [{"var":"$submitted","type":"array","desc":"Registration data"}]
* @change_log
* ["Since: 2.0"]
* @usage
* <?php add_filter( 'um_add_user_frontend_submitted', 'function_name', 10, 1 ); ?>
* @example
* <?php
* add_filter( 'um_add_user_frontend_submitted', 'my_add_user_frontend_submitted', 10, 1 );
* function my_add_user_frontend_submitted( $submitted ) {
* @since 2.0
* @hook um_add_user_frontend_submitted
*
* @param {array} $success Registration data.
*
* @return {array} Registration data.
*
* @example <caption>Registration data.</caption>
* function my_add_user_frontend_submitted( $success, $updated ) {
* // your code here
* return $submitted;
* }
* ?>
* add_filter( 'um_add_user_frontend_submitted', 'my_add_user_frontend_submitted', 10, 2 );
*/
$args = apply_filters( 'um_add_user_frontend_submitted', $args );
extract( $args );
if ( ! empty( $username ) && empty( $user_login ) ) {
$user_login = $username;
if ( ! empty( $args['user_login'] ) ) {
$user_login = $args['user_login'];
}
if ( ! empty( $args['username'] ) && empty( $args['user_login'] ) ) {
$user_login = $args['username'];
}
if ( ! empty( $first_name ) && ! empty( $last_name ) && empty( $user_login ) ) {
if ( ! empty( $args['first_name'] ) && ! empty( $args['last_name'] ) && empty( $user_login ) ) {
switch ( UM()->options()->get( 'permalink_base' ) ) {
case 'name':
$user_login = str_replace( " ", ".", $first_name . " " . $last_name );
$user_login = str_replace( ' ', '.', $args['first_name'] . ' ' . $args['last_name'] );
break;
case 'name_dash':
$user_login = str_replace( " ", "-", $first_name . " " . $last_name );
$user_login = str_replace( ' ', '-', $args['first_name'] . ' ' . $args['last_name'] );
break;
case 'name_plus':
$user_login = str_replace( " ", "+", $first_name . " " . $last_name );
$user_login = str_replace( ' ', '+', $args['first_name'] . ' ' . $args['last_name'] );
break;
default:
$user_login = str_replace( " ", "", $first_name . " " . $last_name );
$user_login = str_replace( ' ', '', $args['first_name'] . ' ' . $args['last_name'] );
break;
}
$user_login = sanitize_user( strtolower( remove_accents( $user_login ) ), true );
if ( ! empty( $user_login ) ) {
$count = 1;
$count = 1;
$temp_user_login = $user_login;
while ( username_exists( $temp_user_login ) ) {
$temp_user_login = $user_login . $count;
@@ -351,56 +348,57 @@ function um_submit_form_register( $args ) {
}
}
if ( empty( $user_login ) && ! empty( $user_email ) ) {
$user_login = $user_email;
if ( empty( $user_login ) && ! empty( $args['user_email'] ) ) {
$user_login = $args['user_email'];
}
$unique_userID = uniqid();
$unique_user_id = uniqid();
// see dbDelta and WP native DB structure user_login varchar(60)
if ( empty( $user_login ) || mb_strlen( $user_login ) > 60 && ! is_email( $user_login ) ) {
$user_login = 'user' . $unique_userID;
$user_login = 'user' . $unique_user_id;
while ( username_exists( $user_login ) ) {
$unique_userID = uniqid();
$user_login = 'user' . $unique_userID;
$unique_user_id = uniqid();
$user_login = 'user' . $unique_user_id;
}
}
if ( isset( $username ) && is_email( $username ) ) {
$user_email = $username;
if ( isset( $args['username'] ) && is_email( $args['username'] ) ) {
$user_email = $args['username'];
} elseif ( ! empty( $args['user_email'] ) ) {
$user_email = $args['user_email'];
}
if ( ! isset( $user_password ) ) {
if ( ! isset( $args['user_password'] ) ) {
$user_password = UM()->validation()->generate( 8 );
} else {
$user_password = $args['user_password'];
}
if ( empty( $user_email ) ) {
$site_url = @$_SERVER['SERVER_NAME'];
$user_email = 'nobody' . $unique_userID . '@' . $site_url;
$site_url = @$_SERVER['SERVER_NAME'];
$user_email = 'nobody' . $unique_user_id . '@' . $site_url;
while ( email_exists( $user_email ) ) {
$unique_userID = uniqid();
$user_email = 'nobody' . $unique_userID . '@' . $site_url;
$unique_user_id = uniqid();
$user_email = 'nobody' . $unique_user_id . '@' . $site_url;
}
/**
* UM hook
* Filters change user default email if it's empty on registration
*
* @type filter
* @title um_user_register_submitted__email
* @description Change user default email if it's empty on registration
* @input_vars
* [{"var":"$user_email","type":"string","desc":"Default email"}]
* @change_log
* ["Since: 2.0"]
* @usage
* <?php add_filter( 'um_user_register_submitted__email', 'function_name', 10, 1 ); ?>
* @example
* <?php
* add_filter( 'um_user_register_submitted__email', 'my_user_register_submitted__email', 10, 1 );
* @since 2.0
* @hook um_user_register_submitted__email
*
* @param {string} $user_email Default email.
*
* @return {string} $user_email Email.
*
* @example <caption>Change user default email if it's empty on registration.</caption>
* function my_user_register_submitted__email( $user_email ) {
* // your code here
* return $user_email;
* }
* ?>
* add_filter( 'um_user_register_submitted__email', 'my_user_register_submitted__email', 10, 1 );
*/
$user_email = apply_filters( 'um_user_register_submitted__email', $user_email );
}
@@ -418,9 +416,9 @@ function um_submit_form_register( $args ) {
$args['submitted'] = array_merge( $args['submitted'], $credentials );
// set timestamp
$timestamp = current_time( 'timestamp' );
$timestamp = current_time( 'timestamp' );
$args['submitted']['timestamp'] = $timestamp;
$args['timestamp'] = $timestamp;
$args['timestamp'] = $timestamp;
$args = array_merge( $args, $credentials );
@@ -439,57 +437,48 @@ function um_submit_form_register( $args ) {
}
/**
* UM hook
* Filters change user role on registration process
*
* @type filter
* @title um_registration_user_role
* @description Change user role on registration process
* @input_vars
* [{"var":"$role","type":"string","desc":"User role"},
* {"var":"$submitted","type":"array","desc":"Registration data"}]
* @change_log
* ["Since: 2.0"]
* @usage
* <?php add_filter( 'um_registration_user_role', 'function_name', 10, 2 ); ?>
* @example
* <?php
* add_filter( 'um_registration_user_role', 'my_registration_user_role', 10, 2 );
* function my_user_register_submitted__email( $role, $submitted ) {
* @since 2.0
* @hook um_registration_user_role
*
* @param {string} $user_role User role.
* @param {array} $args Registration data.
*
* @return {string} $user_role User role.
*
* @example <caption>Change user role on registration process.</caption>
* function my_registration_user_role( $user_role, $args ) {
* // your code here
* return $role;
* return $user_role;
* }
* ?>
* add_filter( 'um_registration_user_role', 'my_registration_user_role', 10, 2 );
*/
$user_role = apply_filters( 'um_registration_user_role', $user_role, $args );
$userdata = array(
'user_login' => $user_login,
'user_pass' => $user_password,
'user_email' => $user_email,
'role' => $user_role,
'user_login' => $user_login,
'user_pass' => $user_password,
'user_email' => $user_email,
'role' => $user_role,
);
$user_id = wp_insert_user( $userdata );
/**
* UM hook
* Fires after complete UM user registration.
*
* @type action
* @title um_user_register
* @description After complete UM user registration.
* @input_vars
* [{"var":"$user_id","type":"int","desc":"User ID"},
* {"var":"$args","type":"array","desc":"Form data"}]
* @change_log
* ["Since: 2.0"]
* @usage add_action( 'um_user_register', 'function_name', 10, 2 );
* @example
* <?php
* add_action( 'um_user_register', 'my_user_register', 10, 2 );
* function my_user_register( $user_id, $args ) {
* @since 2.0
* @hook um_user_register
*
* @param {int} $user_id User ID.
* @param {array} $user_id Form data.
*
* @example <caption>Make any custom action after complete UM user registration.</caption>
* function um_user_register( $user_id, $args ) {
* // your code here
* }
* ?>
* add_action( 'um_user_register', 'um_user_register', 10, 2 );
*/
do_action( 'um_user_register', $user_id, $args );