diff --git a/core/um-short-functions.php b/core/um-short-functions.php index 67c144d4..9ef4aa9a 100644 --- a/core/um-short-functions.php +++ b/core/um-short-functions.php @@ -3,19 +3,19 @@ function um_mail_content_type( $content_type ) { return 'text/html'; } - + function UM_Mail( $user_id_or_email = 1, $subject_line = 'Email Subject', $template, $path = null, $args = array() ) { - + if ( absint( $user_id_or_email ) ) { $user = get_userdata( $user_id_or_email ); $email = $user->user_email; } else { $email = $user_id_or_email; } - + $headers = 'From: '. um_get_option('mail_from') .' <'. um_get_option('mail_from_addr') .'>' . "\r\n"; $attachments = null; - + if ( file_exists( get_stylesheet_directory() . '/ultimate-member/templates/email/' . get_locale() . '/' . $template . '.html' ) ) { $path_to_email = get_stylesheet_directory() . '/ultimate-member/templates/email/' . get_locale() . '/' . $template . '.html'; } else if ( file_exists( get_stylesheet_directory() . '/ultimate-member/templates/email/' . $template . '.html' ) ) { @@ -30,7 +30,7 @@ } else { $message = ( um_get_option('email-' . $template ) ) ? um_get_option('email-' . $template ) : 'Untitled'; } - + $message = um_convert_tags( $message, $args ); wp_mail( $email, $subject_line, $message, $headers, $attachments ); } @@ -49,7 +49,7 @@ function um_clickable_links($s) { return preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '$1', $s); } - + /*** *** @Get where user should be headed after logging ***/ @@ -67,7 +67,7 @@ *** @convert template tags ***/ function um_convert_tags( $content, $args = array() ) { - + $search = array( '{display_name}', '{first_name}', @@ -88,9 +88,9 @@ '{submitted_registration}', '{user_avatar_url}', ); - + $search = apply_filters('um_template_tags_patterns_hook', $search); - + $replace = array( um_user('display_name'), um_user('first_name'), @@ -111,16 +111,16 @@ um_user_submitted_registration(), um_get_user_avatar_url(), ); - + $replace = apply_filters('um_template_tags_replaces_hook', $replace); - + $content = str_replace($search, $replace, $content); - + if ( isset( $args['tags'] ) && isset( $args['tags_replace'] ) ) { $content = str_replace($args['tags'], $args['tags_replace'], $content); } - - $regex = '~\{([^}]*)\}~'; + + $regex = '~\{([^}]*)\}~'; preg_match_all($regex, $content, $matches); // Support for all usermeta keys @@ -132,7 +132,7 @@ } return $content; - + } /** @@ -147,10 +147,10 @@ * @example The example below can retrieve the user's IP address * @@ -176,17 +176,17 @@ function um_user_ip() { ***/ function um_field_conditions_are_met( $data ) { if ( !isset( $data['conditions'] ) ) return true; - + $state = 1; - + foreach( $data['conditions'] as $k => $arr ) { if ( $arr[0] == 'show' ) { - + $state = 1; $val = $arr[3]; $op = $arr[2]; $field = um_profile($arr[1]); - + switch( $op ) { case 'equals to': if ( $field != $val ) $state = 0; break; case 'not equals': if ( $field == $val ) $state = 0; break; @@ -197,14 +197,14 @@ function um_user_ip() { case 'contains': if ( !strstr( $field, $val ) ) $state = 0; break; } } - + if ( $arr[0] == 'hide' ) { - + $state = 0; $val = $arr[3]; $op = $arr[2]; $field = um_profile($arr[1]); - + switch( $op ) { case 'equals to': if ( $field != $val ) $state = 1; break; case 'not equals': if ( $field == $val ) $state = 1; break; @@ -215,9 +215,9 @@ function um_user_ip() { case 'contains': if ( !strstr( $field, $val ) ) $state = 1; break; } } - + } - + if ( $state ) return true; return false; @@ -229,19 +229,19 @@ function um_user_ip() { function um_redirect_home() { exit( wp_redirect( home_url() ) ); } - + /*** *** @Get limit of words from sentence ***/ function um_get_snippet( $str, $wordCount = 10 ) { if ( str_word_count( $str ) > $wordCount ) { - $str = implode( - '', - array_slice( + $str = implode( + '', + array_slice( preg_split( - '/([\s,\.;\?\!]+)/', - $str, - $wordCount*2+1, + '/([\s,\.;\?\!]+)/', + $str, + $wordCount*2+1, PREG_SPLIT_DELIM_CAPTURE ), 0, @@ -257,52 +257,52 @@ function um_user_ip() { ***/ function um_user_submitted_registration( $style = false ) { $output = null; - + $data = um_user('submitted'); $udata = get_userdata( um_user('ID') ); - + if ( $style ) $output .= '
'; - + if ( isset( $data ) && is_array( $data ) ) { - + $data = apply_filters('um_email_registration_data', $data ); - + foreach( $data as $k => $v ) { - + if ( !is_array( $v ) && strstr( $v, 'ultimatemember/temp' ) ) { $file = basename( $v ); $v = um_user_uploads_uri() . $file; } - + if ( !strstr( $k, 'user_pass' ) && $k != 'g-recaptcha-response' && $k != 'request' ) { - + if ( is_array($v) ) { $v = implode(',', $v ); } - + if ( $k == 'timestamp' ) { $k = __('date submitted','ultimatemember'); $v = date("d M Y H:i", $v); } $v = urlencode( $v ); - + if ( $style ) { if ( !$v ) $v = __('(empty)','ultimatemember'); $output .= "

$v

"; } else { $output .= "$k: $v" . "\r\n"; } - + } - + } } - + if ( $style ) $output .= '
'; - + return $output; } - + /*** *** @Show filtered social link ***/ @@ -320,31 +320,31 @@ function um_user_ip() { $value = str_replace('https://http://','https://',$value); return $value; } - + /*** *** @Get filtered meta value after applying hooks ***/ function um_filtered_value( $key, $data = false ) { global $ultimatemember; - + $value = um_user( $key ); - + if ( !$data ) { $data = $ultimatemember->builtin->get_specific_field( $key ); } - + $type = ( isset($data['type']) ) ? $data['type'] : ''; $value = apply_filters("um_profile_field_filter_hook__", $value, $data ); $value = apply_filters("um_profile_field_filter_hook__{$key}", $value, $data ); $value = apply_filters("um_profile_field_filter_hook__{$type}", $value, $data ); - + return $value; } - + function um_profile_id() { - + if ( um_get_requested_user() ) { return um_get_requested_user(); } else if ( is_user_logged_in() && get_current_user_id() ) { @@ -362,7 +362,7 @@ function um_profile_id() { $url = explode('/ultimatemember/temp/', $url); if ( isset( $url[1] ) ) { - + if ( strstr( $url[1], '../' ) || strstr( $url[1], '%' ) ) { return false; } @@ -375,7 +375,7 @@ function um_profile_id() { } return false; } - + /*** *** @Check that temp image is valid ***/ @@ -392,14 +392,14 @@ function um_profile_id() { } return false; } - + /*** *** @Get a translated core page URL ***/ function um_get_url_for_language( $post_id, $language ) { $lang_post_id = icl_object_id( $post_id , 'page', true, $language ); - + $url = ""; if($lang_post_id != 0) { $url = get_permalink( $lang_post_id ); @@ -408,10 +408,10 @@ function um_profile_id() { global $sitepress; $url = $sitepress->language_url( $language ); } - + return $url; } - + /*** *** @Get core page url ***/ @@ -419,7 +419,7 @@ function um_profile_id() { global $ultimatemember; return $ultimatemember->datetime->time_diff( $time1, $time2 ); } - + /*** *** @Get user's last login timestamp ***/ @@ -429,7 +429,7 @@ function um_profile_id() { return $value; return ''; } - + /*** *** @Get user's last login time ***/ @@ -439,7 +439,7 @@ function um_profile_id() { return date_i18n('F d, Y', $value ); return ''; } - + /*** *** @Get user's last login (time diff) ***/ @@ -452,24 +452,24 @@ function um_profile_id() { } return $value; } - + /*** *** @Get core page url ***/ function um_get_core_page( $slug, $updated = false) { global $ultimatemember; $url = ''; - + if ( isset( $ultimatemember->permalinks->core[ $slug ] ) ) { $url = get_permalink( $ultimatemember->permalinks->core[ $slug ] ); if ( $updated ) - $url = add_query_arg( 'updated', esc_attr( $updated ), $url ); + $url = add_query_arg( 'updated', esc_attr( $updated ), $url ); } - + if ( function_exists('icl_get_current_language') && icl_get_current_language() != icl_get_default_language() ) { - + $url = um_get_url_for_language( $ultimatemember->permalinks->core[ $slug ], icl_get_current_language() ); - + if ( get_post_meta( get_the_ID() , '_um_wpml_account', true ) == 1 ) { $url = get_permalink( get_the_ID() ); } @@ -477,15 +477,15 @@ function um_profile_id() { $url = um_get_url_for_language( $ultimatemember->permalinks->core[ $slug ], icl_get_current_language() ); } } - + if ( $url ) { $url = apply_filters('um_get_core_page_filter', $url, $slug, $updated); return $url; } - + return ''; } - + /*** *** @boolean check if we are on UM page ***/ @@ -495,7 +495,7 @@ function um_profile_id() { return true; return false; } - + /*** *** @boolean check if we are on a core page or not ***/ @@ -507,7 +507,7 @@ function um_profile_id() { return true; return false; } - + /*** *** @Is core URL ***/ @@ -517,7 +517,7 @@ function um_profile_id() { $current_url = $ultimatemember->permalinks->get_current_url( get_option('permalink_structure') ); if ( !isset( $array ) || !is_array( $array ) ) return false; - + foreach( $array as $k => $id ) { $page_url = get_permalink( $id ); if ( strstr( $current_url, $page_url ) ) @@ -525,7 +525,7 @@ function um_profile_id() { } return false; } - + /*** *** @Check value of queried search in text input ***/ @@ -539,7 +539,7 @@ function um_profile_id() { } echo ''; } - + /*** *** @Check whether item in dropdown is selected in query-url ***/ @@ -552,7 +552,7 @@ function um_profile_id() { } echo ''; } - + /*** *** @get styling defaults ***/ @@ -573,7 +573,7 @@ function um_profile_id() { return $new_arr; } - + /*** *** @get meta option default ***/ @@ -583,7 +583,7 @@ function um_profile_id() { return $ultimatemember->setup->core_form_meta_all[ '_um_' . $id ]; return ''; } - + /*** *** @check if a legitimate password reset request is in action ***/ @@ -593,7 +593,7 @@ function um_profile_id() { return true; return false; } - + /*** *** @check if a legitimate password change request is in action ***/ @@ -603,7 +603,7 @@ function um_profile_id() { return true; return false; } - + /*** *** @boolean for account page editing ***/ @@ -612,7 +612,7 @@ function um_profile_id() { return true; return false; } - + /*** *** @get a user's display name ***/ @@ -630,7 +630,7 @@ function um_profile_id() { global $ultimatemember; return $ultimatemember->members->results[ $argument ]; } - + /** * @function um_reset_user_clean() * @@ -652,7 +652,7 @@ function um_reset_user_clean() { global $ultimatemember; $ultimatemember->user->reset( true ); } - + /** * @function um_reset_user() * @@ -674,14 +674,14 @@ function um_reset_user() { global $ultimatemember; $ultimatemember->user->reset(); } - + /*** *** @gets the queried user ***/ function um_queried_user() { return get_query_var('um_user'); } - + /*** *** @Sets the requested user ***/ @@ -689,7 +689,7 @@ function um_reset_user() { global $ultimatemember; $ultimatemember->user->target_id = $user_id; } - + /*** *** @Gets the requested user ***/ @@ -699,7 +699,7 @@ function um_reset_user() { return $ultimatemember->user->target_id; return false; } - + /*** *** @remove edit profile args from url ***/ @@ -709,7 +709,7 @@ function um_reset_user() { $url = add_query_arg('profiletab', 'main', $url ); return $url; } - + /*** *** @boolean for profile edit page ***/ @@ -721,50 +721,50 @@ function um_reset_user() { } return false; } - + /*** *** @can view field ***/ function um_can_view_field( $data ) { global $ultimatemember; - + if ( !isset( $ultimatemember->fields->set_mode ) ) $ultimatemember->fields->set_mode = ''; if ( isset( $data['public'] ) && $ultimatemember->fields->set_mode != 'register' ) { - + if ( !is_user_logged_in() && $data['public'] != '1' ) return false; - + if ( is_user_logged_in() ) { - + if ( $data['public'] == '-3' && !um_is_user_himself() && !in_array( $ultimatemember->query->get_role_by_userid( get_current_user_id() ), $data['roles'] ) ) return false; - + if ( !um_is_user_himself() && $data['public'] == '-1' && !um_user_can('can_edit_everyone') ) return false; - + if ( $data['public'] == '-2' && $data['roles'] ) if ( !in_array( $ultimatemember->query->get_role_by_userid( get_current_user_id() ), $data['roles'] ) ) return false; } - + } - + return true; } - + /*** *** @checks if user can view profile ***/ function um_can_view_profile( $user_id ){ global $ultimatemember; - + if ( !um_user('can_view_all') && $user_id != get_current_user_id() && is_user_logged_in() ) return false; - + if ( um_current_user_can('edit', $user_id ) ) { return true; } - + if ( !is_user_logged_in() ) { if ( $ultimatemember->user->is_private_profile( $user_id ) ) { return false; @@ -772,7 +772,7 @@ function um_reset_user() { return true; } } - + if ( !um_user('can_access_private_profile') && $ultimatemember->user->is_private_profile( $user_id ) ) return false; if ( um_user_can('can_view_roles') && $user_id != get_current_user_id() ) { @@ -780,11 +780,11 @@ function um_reset_user() { return false; } } - + return true; - + } - + /*** *** @boolean check for not same user ***/ @@ -793,32 +793,32 @@ function um_reset_user() { return false; return true; } - + /*** *** @can edit field ***/ function um_can_edit_field( $data ) { global $ultimatemember; - - if ( isset( $ultimatemember->fields->editing ) && $ultimatemember->fields->editing == true && + + if ( isset( $ultimatemember->fields->editing ) && $ultimatemember->fields->editing == true && isset( $ultimatemember->fields->set_mode ) && $ultimatemember->fields->set_mode == 'profile' ) { - + if ( is_user_logged_in() && isset( $data['editable'] ) && $data['editable'] == 0 ) { - + if ( um_is_user_himself() && !um_user('can_edit_everyone') ) return false; - + if ( !um_is_user_himself() && !um_user_can('can_edit_everyone') ) return false; - + } - + } - + return true; - + } - + /*** *** @User can (role settings ) ***/ @@ -836,7 +836,7 @@ function um_reset_user() { return true; return false; } - + /*** *** @Check if user is in his profile ***/ @@ -846,40 +846,40 @@ function um_reset_user() { if ( !um_get_requested_user() && um_is_core_page('user') && get_current_user_id() ) return true; return false; } - + /*** *** @Current user can ***/ function um_current_user_can( $cap, $user_id ){ global $ultimatemember; - + if ( !is_user_logged_in() ) return false; - + $return = 1; - + um_fetch_user( get_current_user_id() ); switch($cap) { - + case 'edit': if ( get_current_user_id() == $user_id && um_user('can_edit_profile') ) $return = 1; elseif ( !um_user('can_edit_everyone') ) $return = 0; elseif ( get_current_user_id() == $user_id && !um_user('can_edit_profile') ) $return = 0; elseif ( um_user('can_edit_roles') && !in_array( $ultimatemember->query->get_role_by_userid( $user_id ), um_user('can_edit_roles') ) ) $return = 0; break; - + case 'delete': if ( !um_user('can_delete_everyone') ) $return = 0; elseif ( um_user('can_delete_roles') && !in_array( $ultimatemember->query->get_role_by_userid( $user_id ), um_user('can_delete_roles') ) ) $return = 0; break; - + } um_fetch_user( $user_id ); return $return; } - + /*** *** @Returns the edit profile link ***/ @@ -892,7 +892,7 @@ function um_reset_user() { $url = add_query_arg( 'um_action', 'edit', $url ); return $url; } - + /*** *** @checks if user can edit his profile ***/ @@ -902,14 +902,14 @@ function um_reset_user() { if ( !um_user('can_edit_profile') ) return false; return true; } - + /*** *** @short for admin e-mail ***/ function um_admin_email(){ return um_get_option('admin_email'); } - + /** * @function um_get_option() * @@ -928,9 +928,9 @@ function um_reset_user() { * * @example Get blocked IP addresses set in backend - + - + * */ function um_get_option($option_id) { @@ -940,21 +940,21 @@ function um_get_option($option_id) { if ( isset($um_options[$option_id]) && !empty( $um_options[$option_id] ) ) { return $um_options[$option_id]; } - + switch($option_id){ - + case 'site_name': return get_bloginfo('name'); break; - + case 'admin_email': return get_bloginfo('admin_email'); break; - + } - + } - + /*** *** @Display a link to profile page ***/ @@ -970,7 +970,7 @@ function um_get_option($option_id) { global $ultimatemember; return $ultimatemember->query->get_roles(); } - + /** * @function um_fetch_user() * @@ -985,29 +985,29 @@ function um_get_option($option_id) { * @example The example below will set user ID 5 prior to retrieving his profile information. * * @example In the following example you can fetch the profile of a logged-in user dynamically. - + - + * */ function um_fetch_user( $user_id ) { global $ultimatemember; $ultimatemember->user->set( $user_id ); } - + /*** *** @Load profile key ***/ @@ -1019,12 +1019,12 @@ function um_fetch_user( $user_id ) { return false; } } - + /*** *** @Get youtube video ID from url ***/ function um_youtube_id_from_url($url) { - $pattern = + $pattern = '%^# Match any youtube URL (?:https?://)? # Optional scheme. Either http or https (?:www\.)? # Optional www subdomain @@ -1046,7 +1046,7 @@ function um_fetch_user( $user_id ) { } return false; } - + /*** *** @user uploads uri ***/ @@ -1060,7 +1060,7 @@ function um_fetch_user( $user_id ) { $uri = $ultimatemember->files->upload_baseurl . um_user('ID') . '/'; return $uri; } - + /*** *** @user uploads directory ***/ @@ -1069,7 +1069,7 @@ function um_fetch_user( $user_id ) { $uri = $ultimatemember->files->upload_basedir . um_user('ID') . '/'; return $uri; } - + /*** *** @find closest number in an array ***/ @@ -1095,7 +1095,7 @@ function um_fetch_user( $user_id ) { } return $uri; } - + /*** *** @get avatar URL instead of image ***/ @@ -1103,7 +1103,7 @@ function um_fetch_user( $user_id ) { preg_match('/src="(.*?)"/i', $get_avatar, $matches); return $matches[1]; } - + /*** *** @get avatar uri ***/ @@ -1113,32 +1113,32 @@ function um_fetch_user( $user_id ) { $find = false; if ( file_exists( $ultimatemember->files->upload_basedir . um_user('ID') . '/profile_photo-' . $attrs. '.jpg' ) ) { - + $uri = um_user_uploads_uri() . 'profile_photo-'.$attrs.'.jpg?' . current_time( 'timestamp' ); - + } else { - + $sizes = um_get_option('photo_thumb_sizes'); if ( is_array( $sizes ) ) $find = um_closest_num( $sizes, $attrs ); - + if ( file_exists( $ultimatemember->files->upload_basedir . um_user('ID') . '/profile_photo-' . $find. '.jpg' ) ) { - + $uri = um_user_uploads_uri() . 'profile_photo-'.$find.'.jpg?' . current_time( 'timestamp' ); - + } else if ( file_exists( $ultimatemember->files->upload_basedir . um_user('ID') . '/profile_photo.jpg' ) ) { - + $uri = um_user_uploads_uri() . 'profile_photo.jpg?' . current_time( 'timestamp' ); - + } - + if ( $attrs == 'original' ) { $uri = um_user_uploads_uri() . 'profile_photo.jpg?' . current_time( 'timestamp' ); } - + } return $uri; } - + /*** *** @default avatar ***/ @@ -1149,7 +1149,7 @@ function um_fetch_user( $user_id ) { $uri = um_url . 'assets/img/default_avatar.jpg'; return $uri; } - + /*** *** @get user avatar url ***/ @@ -1161,7 +1161,7 @@ function um_fetch_user( $user_id ) { } return $avatar_uri; } - + /*** *** @default cover ***/ @@ -1174,59 +1174,57 @@ function um_fetch_user( $user_id ) { } function um_user( $data, $attrs = null ) { - + global $ultimatemember; - + switch($data){ - + default: - + $value = um_profile($data); - + if ( $ultimatemember->validation->is_serialized( $value ) ) { $value = unserialize( $value ); } - + return $value; break; - + case 'full_name': - - if ( !um_profile( $data ) ) { - - if ( um_user('first_name') && um_user('last_name') ) { - $full_name = um_user('first_name') . '.' . um_user('last_name'); - } else { - $full_name = um_user('display_name'); - } - - $full_name = $ultimatemember->validation->safe_name_in_url( $full_name ); - update_user_meta( um_user('ID'), 'full_name', $full_name ); - - return $full_name; - + + if ( um_user('first_name') && um_user('last_name') ) { + $full_name = um_user('first_name') . '.' . um_user('last_name'); } else { - - return um_profile( $data ); - + $full_name = um_user('display_name'); } + + $full_name = $ultimatemember->validation->safe_name_in_url( $full_name ); + + // update full_name changed + if( um_profile( $data ) !== $full_name ) + { + update_user_meta( um_user('ID'), 'full_name', $full_name ); + } + + return $full_name; + break; - + case 'display_name': - + $op = um_get_option('display_name'); $name = ''; - + if ( $op == 'default' ) { $name = um_profile('display_name'); } - + if ( $op == 'nickname' ) { $name = um_profile('nickname'); } - + if ( $op == 'full_name' ) { if ( um_user('first_name') && um_user('last_name') ) { $name = um_user('first_name') . ' ' . um_user('last_name'); @@ -1237,7 +1235,7 @@ function um_user( $data, $attrs = null ) { $name = um_user('user_login'); } } - + if ( $op == 'sur_name' ) { if ( um_user('first_name') && um_user('last_name') ) { $name = um_user('last_name') . ' ' . um_user('first_name'); @@ -1245,7 +1243,7 @@ function um_user( $data, $attrs = null ) { $name = um_profile( $data ); } } - + if ( $op == 'first_name' ) { if ( um_user('first_name') ) { $name = um_user('first_name'); @@ -1253,11 +1251,11 @@ function um_user( $data, $attrs = null ) { $name = um_profile( $data ); } } - + if ( $op == 'username' ) { $name = um_user('user_login'); } - + if ( $op == 'initial_name' ) { if ( um_user('first_name') && um_user('last_name') ) { $initial = um_user('last_name'); @@ -1266,7 +1264,7 @@ function um_user( $data, $attrs = null ) { $name = um_profile( $data ); } } - + if ( $op == 'initial_name_f' ) { if ( um_user('first_name') && um_user('last_name') ) { $initial = um_user('first_name'); @@ -1277,39 +1275,39 @@ function um_user( $data, $attrs = null ) { } if ( $op == 'field' && um_get_option('display_name_field') != '' ) { - $fields = array_filter(preg_split('/[,\s]+/', um_get_option('display_name_field') )); + $fields = array_filter(preg_split('/[,\s]+/', um_get_option('display_name_field') )); $name = ''; foreach( $fields as $field ) { $name .= um_profile( $field ) . ' '; } } - + return apply_filters('um_user_display_name_filter', $name, um_user('ID'), ( $attrs == 'html' ) ? 1 : 0 ); - + break; - + case 'role_select': case 'role_radio': return $ultimatemember->user->get_role_name( um_user('role') ); break; - + case 'submitted': $array = um_profile($data); if ( empty( $array ) ) return ''; $array = unserialize( $array ); - return $array; + return $array; break; case 'password_reset_link': return $ultimatemember->password->reset_url(); break; - + case 'account_activation_link': return $ultimatemember->permalinks->activate_url(); break; case 'profile_photo': - + if ( um_profile('profile_photo') ) { $avatar_uri = um_get_avatar_uri( um_profile('profile_photo'), $attrs ); } else { @@ -1320,10 +1318,10 @@ function um_user( $data, $attrs = null ) { if ( $avatar_uri ) return ''; - + if ( !$avatar_uri ) return ''; - + break; case 'cover_photo': @@ -1332,15 +1330,15 @@ function um_user( $data, $attrs = null ) { } else { $cover_uri = um_get_default_cover_uri(); } - + if ( $cover_uri ) return ''; - + if ( !$cover_uri ) return ''; - + break; } - -} \ No newline at end of file + +}