user->set( $args['user_id'] );
} else {
wp_die( __('You are not allowed to edit this user.','ultimatemember') );
}
} else if ( isset( $args['_user_id'] ) ) {
$ultimatemember->user->set( $args['_user_id'] );
}
$userinfo = $ultimatemember->user->profile;
$fields = unserialize( $args['custom_fields'] );
do_action('um_user_before_updating_profile', $userinfo );
// loop through fields
if ( isset( $fields ) && is_array( $fields ) ) {
foreach( $fields as $key => $array ) {
if( !um_user_can( 'can_edit_everyone' ) && isset($fields[$key]['editable']) && !$fields[$key]['editable'] ) continue;
if ( $fields[$key]['type'] == 'multiselect' || $fields[$key]['type'] == 'checkbox' && !isset($args['submitted'][$key]) ) {
delete_user_meta( um_user('ID'), $key );
}
if ( isset( $args['submitted'][ $key ] ) ) {
if ( isset( $fields[$key]['type'] ) && in_array( $fields[$key]['type'], array('image','file') ) && um_is_temp_upload( $args['submitted'][ $key ] ) ) {
$files[ $key ] = $args['submitted'][ $key ];
} else {
if ( isset( $userinfo[$key]) && $args['submitted'][$key] != $userinfo[$key] ) {
$to_update[ $key ] = $args['submitted'][ $key ];
} else if ( $args['submitted'][$key] ) {
$to_update[ $key ] = $args['submitted'][ $key ];
}
}
}
}
}
if ( isset( $args['submitted']['description'] ) ) {
$to_update['description'] = $args['submitted']['description'];
}
if ( isset( $args['submitted']['role'] ) && !empty( $args['submitted']['role'] ) ) {
$to_update['role'] = $args['submitted']['role'];
}
do_action('um_user_pre_updating_profile', $to_update );
$to_update = apply_filters('um_user_pre_updating_profile_array', $to_update);
if ( is_array( $to_update ) ) {
$ultimatemember->user->update_profile( $to_update );
}
if ( is_array( $files ) ) {
$ultimatemember->user->update_files( $files );
}
do_action('um_after_user_updated', um_user('ID') );
do_action('um_after_user_upload', um_user('ID') );
do_action('um_user_after_updating_profile', $to_update );
if ( !isset( $args['is_signup'] ) ) {
exit( wp_redirect( um_edit_my_profile_cancel_uri() ) );
}
}
/***
*** @if editing another user
***/
add_action('um_after_form_fields', 'um_editing_user_id_input');
function um_editing_user_id_input($args){
global $ultimatemember;
if ( $ultimatemember->fields->editing == 1 && $ultimatemember->fields->set_mode == 'profile' && $ultimatemember->user->target_id ) { ?>
'.__('Change your cover photo','ultimatemember').'
';
?>
fields->editing ) {
$items = array(
'
'.__('Change cover photo','ultimatemember').'',
'
'.__('Remove','ultimatemember').'',
'
'.__('Cancel','ultimatemember').'',
);
echo $ultimatemember->menu->new_ui( 'bc', 'div.um-cover', 'click', $items );
}
?>
fields->add_hidden_field( 'cover_photo' ); ?>
mobile->isMobile() ){
if ( $ultimatemember->mobile->isTablet() ) {
echo um_user('cover_photo', 1000);
} else {
echo um_user('cover_photo', 300);
}
} else {
echo um_user('cover_photo', 1000);
}
?>
';
} else {
if ( !isset( $ultimatemember->user->cannot_edit ) ) { ?>
';
echo $ultimatemember->fields->show_social_urls();
echo '';
}
}
/***
*** @profile header
***/
add_action('um_profile_header', 'um_profile_header', 9 );
function um_profile_header( $args ) {
global $ultimatemember;
$classes = null;
if ( !$args['cover_enabled'] ) {
$classes .= ' no-cover';
}
$default_size = str_replace( 'px', '', $args['photosize'] );
$overlay = '
';
?>
fields->editing == false ) {
$ultimatemember->fields->viewing = 1;
if ( um_get_requested_user() ) {
if ( !um_can_view_profile( um_get_requested_user() ) ) um_redirect_home();
if ( !um_current_user_can('edit', um_get_requested_user() ) ) $ultimatemember->user->cannot_edit = 1;
um_fetch_user( um_get_requested_user() );
} else {
if ( !is_user_logged_in() ) um_redirect_home();
if ( !um_user('can_edit_profile') ) $ultimatemember->user->cannot_edit = 1;
}
}
if ( $mode == 'profile' && $ultimatemember->fields->editing == true ) {
$ultimatemember->fields->editing = 1;
if ( um_get_requested_user() ) {
if ( !um_current_user_can('edit', um_get_requested_user() ) ) um_redirect_home();
um_fetch_user( um_get_requested_user() );
}
}
}
/***
*** @display the edit profile icon
***/
add_action('um_pre_header_editprofile', 'um_add_edit_icon' );
function um_add_edit_icon( $args ) {
global $ultimatemember;
$output = '';
if ( !is_user_logged_in() ) return; // not allowed for guests
if ( isset( $ultimatemember->user->cannot_edit ) && $ultimatemember->user->cannot_edit == 1 ) return; // do not proceed if user cannot edit
if ( $ultimatemember->fields->editing == true ) {
?>
fields->editing == true ) {
echo $ultimatemember->fields->display( 'profile', $args );
} else {
$ultimatemember->fields->viewing = true;
echo $ultimatemember->fields->display_view( 'profile', $args );
}
}
/***
*** @form processing
***/
add_action('um_submit_form_profile', 'um_submit_form_profile', 10);
function um_submit_form_profile($args){
global $ultimatemember;
if ( !isset($ultimatemember->form->errors) ) do_action('um_user_edit_profile', $args);
do_action('um_user_profile_extra_hook', $args );
}
/***
*** @Show the submit button (highest priority)
***/
add_action('um_after_profile_fields', 'um_add_submit_button_to_profile', 1000);
function um_add_submit_button_to_profile($args){
global $ultimatemember;
// DO NOT add when reviewing user's details
if ( $ultimatemember->user->preview == true && is_admin() ) return;
// only when editing
if ( $ultimatemember->fields->editing == false ) return;
?>
profile->tabs_active();
$tabs = apply_filters('um_user_profile_tabs', $tabs );
$ultimatemember->user->tabs = $tabs;
// need enough tabs to continue
if ( count( $tabs ) <= 1 ) return;
$active_tab = $ultimatemember->profile->active_tab();
if ( !isset( $tabs[$active_tab] ) ) {
$active_tab = 'main';
$ultimatemember->profile->active_tab = $active_tab;
$ultimatemember->profile->active_subnav = null;
}
// Move default tab priority
$default_tab = um_get_option('profile_menu_default_tab');
$dtab = ( isset( $tabs[$default_tab] ) )? $tabs[$default_tab] : 'main';
if ( isset( $tabs[ $default_tab ] ) ) {
unset( $tabs[$default_tab] );
$dtabs[$default_tab] = $dtab;
$tabs = $dtabs + $tabs;
}
?>
$tab ) {
if ( isset( $tab['hidden'] ) ) continue;
$nav_link = $ultimatemember->permalinks->get_current_url( get_option('permalink_structure') );
$nav_link = remove_query_arg( 'um_action', $nav_link );
$nav_link = remove_query_arg( 'subnav', $nav_link );
$nav_link = add_query_arg('profiletab', $id, $nav_link );
$nav_link = apply_filters("um_profile_menu_link_{$id}", $nav_link);
?>
$tab ) {
if ( isset( $tab['subnav'] ) && $active_tab == $id ) {
$active_subnav = ( $ultimatemember->profile->active_subnav() ) ? $ultimatemember->profile->active_subnav() : $tab['subnav_default'];
echo '';
foreach( $tab['subnav'] as $id => $subtab ) {
?>
';
}
}
}