um_user('user_login'), 'user_password' => $changes['user_pass']) ); } $arr_fields = array(); $secure_fields = get_user_meta( um_user('ID'), 'um_account_secure_fields', true ); if( isset( $secure_fields ) ){ foreach ( $secure_fields as $tab_key => $fields ) { if( isset( $fields ) ){ foreach ($fields as $key => $value) { $arr_fields[ ] = $key; } } } } $changes = array(); foreach( $_POST as $k => $v ) { if ( !strstr( $k, 'password' ) && !strstr( $k, 'um_account' ) && in_array( $k, $arr_fields ) ) { $changes[ $k ] = $v; } } if ( isset( $changes['hide_in_members'] ) && $changes['hide_in_members'] == __('No','ultimatemember') ) { delete_user_meta( um_user('ID'), 'hide_in_members' ); unset( $changes['hide_in_members'] ); } // fired on account page, just before updating profile do_action('um_account_pre_update_profile', $changes, um_user('ID') ); $ultimatemember->user->update_profile( $changes ); // delete account $user = get_user_by('login', um_user('user_login') ); if ( isset( $_POST['single_user_password'] ) && wp_check_password( $_POST['single_user_password'], $user->data->user_pass, $user->data->ID ) && $tab == 'delete' ) { if ( current_user_can('delete_users') || um_user('can_delete_profile') ) { if ( !um_user('super_admin') ) { $ultimatemember->user->delete(); if ( um_user('after_delete') && um_user('after_delete') == 'redirect_home' ) { um_redirect_home(); } elseif ( um_user('delete_redirect_url') ) { exit( wp_redirect( um_user('delete_redirect_url') ) ); } else { um_redirect_home(); } } } } do_action('um_post_account_update'); do_action('um_after_user_account_updated', get_current_user_id() ); $url = $ultimatemember->account->tab_link( $tab ); $url = add_query_arg( 'updated', 'account', $url ); if ( function_exists('icl_get_current_language') ) { if ( icl_get_current_language() != icl_get_default_language() ) { $url = $ultimatemember->permalinks->get_current_url( true ); $url = add_query_arg( 'updated', 'account', $url ); exit( wp_redirect( $url ) ); } } exit( wp_redirect( $url ) ); } /*** *** @validate for errors in account page ***/ add_action('um_submit_account_errors_hook','um_submit_account_errors_hook'); function um_submit_account_errors_hook( $args ) { global $ultimatemember; $current_tab = isset( $_POST['_um_account_tab'] ) ? $_POST['_um_account_tab']: ''; $user = get_user_by('login', um_user('user_login') ); if( isset( $_POST['_um_account_tab'] ) && $current_tab != "delete" ){ // errors on general tab if ( isset($_POST['um_account_submit']) ) { if( $current_tab != 'password' ){ $account_name_require = um_get_option("account_name_require"); if ( isset($_POST['first_name']) && ( strlen(trim( $_POST['first_name'] ) ) == 0 && $account_name_require ) ) { $ultimatemember->form->add_error('first_name', __('You must provide your first name','ultimatemember') ); } if ( isset($_POST['last_name']) && ( strlen(trim( $_POST['last_name'] ) ) == 0 && $account_name_require ) ) { $ultimatemember->form->add_error('last_name', __('You must provide your last name','ultimatemember') ); } if ( isset($_POST['user_email']) && strlen(trim( $_POST['user_email'] ) ) == 0 ) { $ultimatemember->form->add_error('user_email', __('You must provide your e-mail','ultimatemember') ); } if ( isset($_POST['user_email']) && !is_email( $_POST['user_email'] ) ) { $ultimatemember->form->add_error('user_email', __('Please provide a valid e-mail','ultimatemember') ); } if ( email_exists( $_POST['user_email'] ) && email_exists( $_POST['user_email'] ) != get_current_user_id() ) { $ultimatemember->form->add_error('user_email', __('Email already linked to another account','ultimatemember') ); } } } $ultimatemember->account->current_tab = 'general'; // change password if ( $_POST['current_user_password'] != '' || $_POST['user_password'] != '' || $_POST['confirm_user_password'] != '') { if ( $_POST['current_user_password'] == '' || ! wp_check_password( $_POST['current_user_password'], $user->data->user_pass, $user->data->ID ) ) { $ultimatemember->form->add_error('current_user_password', __('This is not your password','ultimatemember') ); $ultimatemember->account->current_tab = 'password'; } else { // correct password if ( $_POST['user_password'] != $_POST['confirm_user_password'] && $_POST['user_password'] ) { $ultimatemember->form->add_error('user_password', __('Your new password does not match','ultimatemember') ); $ultimatemember->account->current_tab = 'password'; } if ( um_get_option('account_require_strongpass') ) { if ( strlen( utf8_decode( $_POST['user_password'] ) ) < 8 ) { $ultimatemember->form->add_error('user_password', __('Your password must contain at least 8 characters','ultimatemember') ); } if ( strlen( utf8_decode( $_POST['user_password'] ) ) > 30 ) { $ultimatemember->form->add_error('user_password', __('Your password must contain less than 30 characters','ultimatemember') ); } if ( !$ultimatemember->validation->strong_pass( $_POST['user_password'] ) ) { $ultimatemember->form->add_error('user_password', __('Your password must contain at least one lowercase letter, one capital letter and one number','ultimatemember') ); $ultimatemember->account->current_tab = 'password'; } } } } if ( ! empty( $_POST['user_login'] ) && ! validate_username( $_POST['user_login'] ) ) { $ultimatemember->form->add_error('user_login', __('Your username is invalid','ultimatemember') ); return; } } // delete account if ( isset( $_POST['um_account_submit'] ) && $_POST['_um_account_tab'] == "delete" ) { if ( strlen(trim( $_POST['single_user_password'] ) ) == 0 ) { $ultimatemember->form->add_error('single_user_password', __('You must enter your password','ultimatemember') ); } else { if ( ! wp_check_password( $_POST['single_user_password'], $user->data->user_pass, $user->data->ID ) ) { $ultimatemember->form->add_error('single_user_password', __('This is not your password','ultimatemember') ); } } $ultimatemember->account->current_tab = 'delete'; } } /*** *** @hidden inputs for account page ***/ add_action('um_account_page_hidden_fields','um_account_page_hidden_fields'); function um_account_page_hidden_fields( $args ) { global $ultimatemember; ?> account->current_tab; ?> account->get_tab_output('delete'); if ( $output ) { ?>
account->get_tab_output('privacy'); if ( $output ) { ?>
account->get_tab_output('general'); if ( $output ) { ?>
account->get_tab_output('password'); if ( $output ) { ?>
account->get_tab_output('notifications'); if ( $output ) { ?>
mobile->isMobile() ) { ?>
account->tabs = apply_filters('um_account_page_default_tabs_hook', $tabs=array() ); ksort( $ultimatemember->account->tabs ); ?>