2014-12-15 22:38:07 +02:00
< ? php
/***
2015-01-06 00:38:33 +02:00
*** @Error handling: Registering
2014-12-15 22:38:07 +02:00
***/
2015-01-06 00:38:33 +02:00
add_action ( 'um_submit_form_errors_hook__registration' , 'um_submit_form_errors_hook__registration' , 10 );
function um_submit_form_errors_hook__registration ( $args ){
global $ultimatemember ;
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
$can_register = get_option ( 'users_can_register' );
if ( ! $can_register ) {
2015-04-25 21:41:47 +02:00
exit ( wp_redirect ( esc_url ( add_query_arg ( 'err' , 'registration_disabled' ) ) ) );
2015-01-06 00:38:33 +02:00
}
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
}
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
/***
*** @Error handling: blocked emails
***/
add_action ( 'um_submit_form_errors_hook__blockedemails' , 'um_submit_form_errors_hook__blockedemails' , 10 );
function um_submit_form_errors_hook__blockedemails ( $args ){
global $ultimatemember ;
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
$emails = um_get_option ( 'blocked_emails' );
if ( ! $emails )
return ;
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
$emails = array_map ( " rtrim " , explode ( " \n " , $emails ));
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
if ( isset ( $args [ 'user_email' ] ) && is_email ( $args [ 'user_email' ] ) ) {
2016-02-11 11:32:03 -08:00
2015-02-06 02:38:41 +02:00
$domain = explode ( '@' , $args [ 'user_email' ] );
$check_domain = str_replace ( $domain [ 0 ], '*' , $args [ 'user_email' ]);
2015-01-06 00:38:33 +02:00
if ( in_array ( $args [ 'user_email' ], $emails ) )
2015-04-25 21:41:47 +02:00
exit ( wp_redirect ( esc_url ( add_query_arg ( 'err' , 'blocked_email' ) ) ) );
2016-02-11 11:32:03 -08:00
2015-02-06 02:38:41 +02:00
if ( in_array ( $check_domain , $emails ) )
2015-04-25 21:41:47 +02:00
exit ( wp_redirect ( esc_url ( add_query_arg ( 'err' , 'blocked_domain' ) ) ) );
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
}
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
if ( isset ( $args [ 'username' ] ) && is_email ( $args [ 'username' ] ) ) {
2016-02-11 11:32:03 -08:00
2015-02-06 02:38:41 +02:00
$domain = explode ( '@' , $args [ 'username' ] );
$check_domain = str_replace ( $domain [ 0 ], '*' , $args [ 'username' ]);
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
if ( in_array ( $args [ 'username' ], $emails ) )
2015-04-25 21:41:47 +02:00
exit ( wp_redirect ( esc_url ( add_query_arg ( 'err' , 'blocked_email' ) ) ) );
2015-02-06 02:38:41 +02:00
if ( in_array ( $check_domain , $emails ) )
2015-04-25 21:41:47 +02:00
exit ( wp_redirect ( esc_url ( add_query_arg ( 'err' , 'blocked_domain' ) ) ) );
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
}
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
}
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
/***
*** @Error handling: blocked IPs
***/
add_action ( 'um_submit_form_errors_hook__blockedips' , 'um_submit_form_errors_hook__blockedips' , 10 );
function um_submit_form_errors_hook__blockedips ( $args ){
global $ultimatemember ;
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
$ips = um_get_option ( 'blocked_ips' );
if ( ! $ips )
return ;
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
$ips = array_map ( " rtrim " , explode ( " \n " , $ips ));
2015-01-28 17:16:04 +02:00
$user_ip = um_user_ip ();
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
foreach ( $ips as $ip ) {
$ip = str_replace ( '*' , '' , $ip );
if ( strpos ( $user_ip , $ip ) === 0 ) {
2015-04-25 21:41:47 +02:00
exit ( wp_redirect ( esc_url ( add_query_arg ( 'err' , 'blocked_ip' ) ) ) );
2015-01-06 00:38:33 +02:00
}
}
}
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
/***
*** @Error handling: blocked words during sign up
***/
add_action ( 'um_submit_form_errors_hook__blockedwords' , 'um_submit_form_errors_hook__blockedwords' , 10 );
function um_submit_form_errors_hook__blockedwords ( $args ){
2014-12-15 22:38:07 +02:00
global $ultimatemember ;
2016-02-11 11:32:03 -08:00
2014-12-15 22:38:07 +02:00
$form_id = $args [ 'form_id' ];
$mode = $args [ 'mode' ];
$fields = unserialize ( $args [ 'custom_fields' ] );
2016-02-11 11:32:03 -08:00
2014-12-15 22:38:07 +02:00
$words = um_get_option ( 'blocked_words' );
if ( $words != '' ) {
2016-02-11 11:32:03 -08:00
2014-12-15 22:38:07 +02:00
$words = array_map ( " rtrim " , explode ( " \n " , $words ));
2016-02-11 11:32:03 -08:00
if ( isset ( $fields ) ){
2015-12-10 12:29:44 +08:00
foreach ( $fields as $key => $array ) {
2016-02-11 11:32:03 -08:00
if ( isset ( $array [ 'validate' ]) && in_array ( $array [ 'validate' ], array ( 'unique_username' , 'unique_email' , 'unique_username_or_email' ) ) ) {
2016-03-06 11:54:08 +08:00
if ( ! $ultimatemember -> form -> has_error ( $key ) && isset ( $args [ $key ] ) && in_array ( $args [ $key ], $words ) ) {
2016-02-11 11:32:03 -08:00
$ultimatemember -> form -> add_error ( $key , __ ( 'You are not allowed to use this word as your username.' , 'ultimatemember' ) );
2015-01-25 19:59:18 +02:00
}
2014-12-15 22:38:07 +02:00
}
}
}
}
2016-02-11 11:32:03 -08:00
2014-12-15 22:38:07 +02:00
}
2016-02-11 11:32:03 -08:00
2014-12-15 22:38:07 +02:00
/***
2014-12-22 15:09:14 +02:00
*** @Error handling
2014-12-15 22:38:07 +02:00
***/
add_action ( 'um_submit_form_errors_hook' , 'um_submit_form_errors_hook' , 10 );
2014-12-22 15:09:14 +02:00
function um_submit_form_errors_hook ( $args ){
global $ultimatemember ;
2016-02-11 11:32:03 -08:00
2014-12-22 15:09:14 +02:00
$form_id = $args [ 'form_id' ];
2016-02-11 11:32:03 -08:00
2014-12-22 15:09:14 +02:00
$mode = $args [ 'mode' ];
2016-02-11 11:32:03 -08:00
2014-12-22 15:09:14 +02:00
$fields = unserialize ( $args [ 'custom_fields' ] );
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
if ( $mode == 'register' ){
2016-02-11 11:32:03 -08:00
2015-01-18 18:20:34 +02:00
do_action ( " um_submit_form_errors_hook__registration " , $args );
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
}
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
do_action ( " um_submit_form_errors_hook__blockedips " , $args );
do_action ( " um_submit_form_errors_hook__blockedemails " , $args );
if ( $mode == 'login' ) {
2016-02-11 11:32:03 -08:00
2015-01-06 00:38:33 +02:00
do_action ( 'um_submit_form_errors_hook_login' , $args );
2014-12-30 20:18:29 +02:00
do_action ( 'um_submit_form_errors_hook_logincheck' , $args );
2016-02-11 11:32:03 -08:00
2014-12-22 15:09:14 +02:00
} else {
2016-02-11 11:32:03 -08:00
2014-12-22 15:09:14 +02:00
do_action ( 'um_submit_form_errors_hook_' , $args );
2015-01-06 00:38:33 +02:00
do_action ( " um_submit_form_errors_hook__blockedwords " , $args );
2016-02-11 11:32:03 -08:00
2014-12-22 15:09:14 +02:00
}
2016-02-11 11:32:03 -08:00
2014-12-22 15:09:14 +02:00
}
2015-05-02 02:49:05 +03:00
2014-12-22 15:09:14 +02:00
/***
*** @Error processing hook : standard
***/
add_action ( 'um_submit_form_errors_hook_' , 'um_submit_form_errors_hook_' , 10 );
function um_submit_form_errors_hook_ ( $args ){
2014-12-15 22:38:07 +02:00
global $ultimatemember ;
2016-02-11 11:32:03 -08:00
2014-12-15 22:38:07 +02:00
$form_id = $args [ 'form_id' ];
$mode = $args [ 'mode' ];
$fields = unserialize ( $args [ 'custom_fields' ] );
2016-04-30 22:15:23 +08:00
$um_profile_photo = um_profile ( 'profile_photo' );
if ( get_post_meta ( $form_id , '_um_profile_photo_required' , true ) && ( empty ( $args [ 'profile_photo' ] ) && empty ( $um_profile_photo ) ) ) {
2016-03-03 17:46:50 +05:30
$ultimatemember -> form -> add_error ( 'profile_photo' , sprintf ( __ ( '%s is required.' , 'ultimatemember' ), 'Profile Photo' ) );
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $fields ) && ! empty ( $fields ) ){
foreach ( $fields as $key => $array ) {
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
$array = apply_filters ( 'um_get_custom_field_array' , $array , $fields );
2015-01-25 19:59:18 +02:00
2015-12-10 12:29:44 +08:00
if ( isset ( $array [ 'type' ] ) && $array [ 'type' ] == 'checkbox' && isset ( $array [ 'required' ] ) && $array [ 'required' ] == 1 && ! isset ( $args [ $key ] ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( '%s is required.' , 'ultimatemember' ), $array [ 'title' ] ) );
2014-12-15 22:38:07 +02:00
}
2016-02-11 11:32:03 -08:00
2016-05-20 19:14:16 +08:00
if ( defined ( 'um_user_tags_path' ) && isset ( $array [ 'type' ] ) && $array [ 'type' ] == 'user_tags' && isset ( $array [ 'required' ] ) && $array [ 'required' ] == 1 && ! isset ( $args [ $key ] ) ) {
2016-03-03 17:28:56 +05:30
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( '%s is required.' , 'ultimatemember' ), $array [ 'title' ] ) );
}
2015-12-10 12:29:44 +08:00
if ( isset ( $array [ 'type' ] ) && $array [ 'type' ] == 'radio' && isset ( $array [ 'required' ] ) && $array [ 'required' ] == 1 && ! isset ( $args [ $key ] ) && ! in_array ( $key , array ( 'role_radio' , 'role_select' ) ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( '%s is required.' , 'ultimatemember' ), $array [ 'title' ] ) );
2014-12-15 22:38:07 +02:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $array [ 'type' ] ) && $array [ 'type' ] == 'multiselect' && isset ( $array [ 'required' ] ) && $array [ 'required' ] == 1 && ! isset ( $args [ $key ] ) && ! in_array ( $key , array ( 'role_radio' , 'role_select' ) ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( '%s is required.' , 'ultimatemember' ), $array [ 'title' ] ) );
2014-12-15 22:38:07 +02:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( $key == 'role_select' || $key == 'role_radio' ) {
if ( isset ( $array [ 'required' ] ) && $array [ 'required' ] == 1 && ( ! isset ( $args [ 'role' ] ) || empty ( $args [ 'role' ] ) ) ) {
$ultimatemember -> form -> add_error ( 'role' , __ ( 'Please specify account type.' , 'ultimatemember' ) );
2015-11-05 19:51:31 +08:00
}
2015-05-18 14:12:50 +03:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $args [ $key ] ) ) {
if ( isset ( $array [ 'required' ] ) && $array [ 'required' ] == 1 ) {
if ( ! isset ( $args [ $key ]) || $args [ $key ] == '' ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( '%s is required' , 'ultimatemember' ), $array [ 'label' ] ) );
}
2015-11-05 19:51:31 +08:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $array [ 'max_words' ] ) && $array [ 'max_words' ] > 0 ) {
if ( str_word_count ( $args [ $key ] ) > $array [ 'max_words' ] ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'You are only allowed to enter a maximum of %s words' , 'ultimatemember' ), $array [ 'max_words' ]) );
}
2015-11-05 19:51:31 +08:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $array [ 'min_chars' ] ) && $array [ 'min_chars' ] > 0 ) {
if ( $args [ $key ] && strlen ( utf8_decode ( $args [ $key ] ) ) < $array [ 'min_chars' ] ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'Your %s must contain at least %s characters' , 'ultimatemember' ), $array [ 'label' ], $array [ 'min_chars' ]) );
2016-02-11 11:32:03 -08:00
}
2015-12-10 12:29:44 +08:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $array [ 'max_chars' ] ) && $array [ 'max_chars' ] > 0 ) {
if ( $args [ $key ] && strlen ( utf8_decode ( $args [ $key ] ) ) > $array [ 'max_chars' ] ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'Your %s must contain less than %s characters' , 'ultimatemember' ), $array [ 'label' ], $array [ 'max_chars' ]) );
}
2015-11-05 19:51:31 +08:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $array [ 'html' ] ) && $array [ 'html' ] == 0 ) {
if ( wp_strip_all_tags ( $args [ $key ] ) != trim ( $args [ $key ] ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'You can not use HTML tags here' , 'ultimatemember' ) );
}
2015-11-05 19:51:31 +08:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $array [ 'force_good_pass' ] ) && $array [ 'force_good_pass' ] == 1 ) {
if ( ! $ultimatemember -> validation -> strong_pass ( $args [ $key ] ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'Your password must contain at least one lowercase letter, one capital letter and one number' , 'ultimatemember' ) );
}
2015-11-05 19:51:31 +08:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $array [ 'force_confirm_pass' ] ) && $array [ 'force_confirm_pass' ] == 1 ) {
if ( $args [ 'confirm_' . $key ] == '' && ! $ultimatemember -> form -> has_error ( $key ) ) {
$ultimatemember -> form -> add_error ( 'confirm_' . $key , __ ( 'Please confirm your password' , 'ultimatemember' ) );
}
if ( $args [ 'confirm_' . $key ] != $args [ $key ] && ! $ultimatemember -> form -> has_error ( $key ) ) {
$ultimatemember -> form -> add_error ( 'confirm_' . $key , __ ( 'Your passwords do not match' , 'ultimatemember' ) );
}
2015-11-05 19:51:31 +08:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $array [ 'min_selections' ] ) && $array [ 'min_selections' ] > 0 ) {
if ( ( ! isset ( $args [ $key ]) ) || ( isset ( $args [ $key ] ) && is_array ( $args [ $key ]) && count ( $args [ $key ] ) < $array [ 'min_selections' ] ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'Please select at least %s choices' , 'ultimatemember' ), $array [ 'min_selections' ] ) );
}
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $array [ 'max_selections' ] ) && $array [ 'max_selections' ] > 0 ) {
if ( isset ( $args [ $key ] ) && is_array ( $args [ $key ]) && count ( $args [ $key ] ) > $array [ 'max_selections' ] ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'You can only select up to %s choices' , 'ultimatemember' ), $array [ 'max_selections' ] ) );
}
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $array [ 'validate' ] ) && ! empty ( $array [ 'validate' ] ) ) {
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
switch ( $array [ 'validate' ] ) {
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'custom' :
$custom = $array [ 'custom_validate' ];
do_action ( " um_custom_field_validation_ { $custom } " , $key , $array , $args );
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'numeric' :
if ( $args [ $key ] && ! is_numeric ( $args [ $key ] ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'Please enter numbers only in this field' , 'ultimatemember' ) );
}
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'phone_number' :
if ( ! $ultimatemember -> validation -> is_phone_number ( $args [ $key ] ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'Please enter a valid phone number' , 'ultimatemember' ) );
}
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'youtube_url' :
if ( ! $ultimatemember -> validation -> is_url ( $args [ $key ], 'youtube.com' ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'Please enter a valid %s username or profile URL' , 'ultimatemember' ), $array [ 'label' ] ) );
}
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'soundcloud_url' :
if ( ! $ultimatemember -> validation -> is_url ( $args [ $key ], 'soundcloud.com' ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'Please enter a valid %s username or profile URL' , 'ultimatemember' ), $array [ 'label' ] ) );
}
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'facebook_url' :
if ( ! $ultimatemember -> validation -> is_url ( $args [ $key ], 'facebook.com' ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'Please enter a valid %s username or profile URL' , 'ultimatemember' ), $array [ 'label' ] ) );
}
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'twitter_url' :
if ( ! $ultimatemember -> validation -> is_url ( $args [ $key ], 'twitter.com' ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'Please enter a valid %s username or profile URL' , 'ultimatemember' ), $array [ 'label' ] ) );
}
break ;
2014-12-15 22:38:07 +02:00
2015-12-10 12:29:44 +08:00
case 'instagram_url' :
if ( ! $ultimatemember -> validation -> is_url ( $args [ $key ], 'instagram.com' ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'Please enter a valid %s username or profile URL' , 'ultimatemember' ), $array [ 'label' ] ) );
}
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'google_url' :
if ( ! $ultimatemember -> validation -> is_url ( $args [ $key ], 'plus.google.com' ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'Please enter a valid %s username or profile URL' , 'ultimatemember' ), $array [ 'label' ] ) );
}
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'linkedin_url' :
if ( ! $ultimatemember -> validation -> is_url ( $args [ $key ], 'linkedin.com' ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'Please enter a valid %s username or profile URL' , 'ultimatemember' ), $array [ 'label' ] ) );
}
break ;
2016-02-09 08:34:32 +08:00
case 'vk_url' :
if ( ! $ultimatemember -> validation -> is_url ( $args [ $key ], 'vk.com' ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'Please enter a valid %s username or profile URL' , 'ultimatemember' ), $array [ 'label' ] ) );
}
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'url' :
if ( ! $ultimatemember -> validation -> is_url ( $args [ $key ] ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'Please enter a valid URL' , 'ultimatemember' ) );
}
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'skype' :
if ( ! $ultimatemember -> validation -> is_url ( $args [ $key ], 'skype.com' ) ) {
$ultimatemember -> form -> add_error ( $key , sprintf ( __ ( 'Please enter a valid %s username or profile URL' , 'ultimatemember' ), $array [ 'label' ] ) );
}
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'unique_username' :
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( $args [ $key ] == '' ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'You must provide a username' , 'ultimatemember' ) );
} else if ( $mode == 'register' && username_exists ( sanitize_user ( $args [ $key ] ) ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'Your username is already taken' , 'ultimatemember' ) );
} else if ( is_email ( $args [ $key ] ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'Username cannot be an email' , 'ultimatemember' ) );
} else if ( ! $ultimatemember -> validation -> safe_username ( $args [ $key ] ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'Your username contains invalid characters' , 'ultimatemember' ) );
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'unique_username_or_email' :
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( $args [ $key ] == '' ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'You must provide a username' , 'ultimatemember' ) );
} else if ( $mode == 'register' && username_exists ( sanitize_user ( $args [ $key ] ) ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'Your username is already taken' , 'ultimatemember' ) );
2015-11-05 19:51:31 +08:00
} else if ( $mode == 'register' && email_exists ( $args [ $key ] ) ) {
2015-12-10 12:29:44 +08:00
$ultimatemember -> form -> add_error ( $key , __ ( 'This email is already linked to an existing account' , 'ultimatemember' ) );
2015-11-05 19:51:31 +08:00
} else if ( ! $ultimatemember -> validation -> safe_username ( $args [ $key ] ) ) {
2015-12-10 12:29:44 +08:00
$ultimatemember -> form -> add_error ( $key , __ ( 'Your username contains invalid characters' , 'ultimatemember' ) );
2015-11-05 19:51:31 +08:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
case 'unique_email' :
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( in_array ( $key , array ( 'user_email' ) ) ) {
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( $args [ $key ] == '' && in_array ( $key , array ( 'user_email' ) ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'You must provide your email' , 'ultimatemember' ) );
2016-04-02 00:09:59 +08:00
} else if ( in_array ( $mode , array ( 'register' ) ) && email_exists ( $args [ $key ] ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'This email is already linked to an existing account' , 'ultimatemember' ) );
} else if ( in_array ( $mode , array ( 'profile' ) ) && email_exists ( $args [ $key ] ) != $args [ 'user_id' ] ) {
2015-12-10 12:29:44 +08:00
$ultimatemember -> form -> add_error ( $key , __ ( 'This email is already linked to an existing account' , 'ultimatemember' ) );
} else if ( ! is_email ( $args [ $key ] ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'This is not a valid email' , 'ultimatemember' ) );
} else if ( ! $ultimatemember -> validation -> safe_username ( $args [ $key ] ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'Your email contains invalid characters' , 'ultimatemember' ) );
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
} else {
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( $args [ $key ] != '' && ! is_email ( $args [ $key ]) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'This is not a valid email' , 'ultimatemember' ) );
} else if ( $args [ $key ] != '' && email_exists ( $args [ $key ] ) ) {
$ultimatemember -> form -> add_error ( $key , __ ( 'This email is already linked to an existing account' , 'ultimatemember' ) );
2016-04-01 23:14:34 +08:00
} else if ( $args [ $key ] != '' ) {
$users = get_users ( 'meta_value=' . $args [ $key ]);
foreach ( $users as $user ) {
if ( $user -> ID != $args [ 'user_id' ] ){
$ultimatemember -> form -> add_error ( $key , __ ( 'This email is already linked to an existing account' , 'ultimatemember' ) );
}
}
2015-12-10 12:29:44 +08:00
}
2016-02-11 11:32:03 -08:00
2015-11-05 19:51:31 +08:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
break ;
2015-12-10 17:44:32 +08:00
case 'unique_value' :
if ( $args [ $key ] != '' ) {
2016-02-11 11:32:03 -08:00
2015-12-10 17:44:32 +08:00
$args_unique_meta = array (
'meta_key' => $key ,
'meta_value' => $args [ $key ],
'compare' => '=' ,
'exclude' => array ( $args [ 'user_id' ] ),
);
$meta_key_exists = get_users ( $args_unique_meta );
2016-02-11 11:32:03 -08:00
2015-12-10 17:44:32 +08:00
if ( $meta_key_exists ){
$ultimatemember -> form -> add_error ( $key , __ ( 'You must provide a unique value' , 'ultimatemember' ) );
}
}
break ;
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
}
2016-02-11 11:32:03 -08:00
2015-11-05 19:51:31 +08:00
}
2016-02-11 11:32:03 -08:00
2014-12-15 22:38:07 +02:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
if ( isset ( $args [ 'description' ] ) ) {
$max_chars = um_get_option ( 'profile_bio_maxchars' );
if ( strlen ( utf8_decode ( $args [ 'description' ] ) ) > $max_chars && $max_chars ) {
$ultimatemember -> form -> add_error ( 'description' , sprintf ( __ ( 'Your user description must contain less than %s characters' , 'ultimatemember' ), $max_chars ) );
}
2015-11-05 19:51:31 +08:00
}
2016-02-11 11:32:03 -08:00
2015-12-10 12:29:44 +08:00
} // end if ( isset in args array )
}
2016-02-11 11:32:03 -08:00
}