Fix account fields update

This commit is contained in:
champsupertramp
2016-05-26 11:23:43 +08:00
parent cfada537c1
commit a2b24d145c
3 changed files with 53 additions and 7 deletions
+13 -1
View File
@@ -150,7 +150,7 @@ class UM_Account {
global $ultimatemember;
$output = null;
switch( $id ) {
case 'notifications':
@@ -166,6 +166,9 @@ class UM_Account {
$args = apply_filters('um_account_tab_privacy_fields', $args );
$fields = $ultimatemember->builtin->get_specific_fields( $args );
$fields = apply_filters('um_account_secure_fields', $fields, $id );
foreach( $fields as $key => $data ){
$output .= $ultimatemember->fields->edit_field( $key, $data );
}
@@ -179,6 +182,9 @@ class UM_Account {
$args = 'single_user_password';
$fields = $ultimatemember->builtin->get_specific_fields( $args );
$fields = apply_filters('um_account_secure_fields', $fields, $id );
foreach( $fields as $key => $data ){
$output .= $ultimatemember->fields->edit_field( $key, $data );
}
@@ -200,6 +206,9 @@ class UM_Account {
}
$fields = $ultimatemember->builtin->get_specific_fields( $args );
$fields = apply_filters('um_account_secure_fields', $fields, $id );
foreach( $fields as $key => $data ){
$output .= $ultimatemember->fields->edit_field( $key, $data );
}
@@ -213,6 +222,9 @@ class UM_Account {
$args = 'user_password';
$fields = $ultimatemember->builtin->get_specific_fields( $args );
$fields = apply_filters('um_account_secure_fields', $fields, $id );
foreach( $fields as $key => $data ){
$output .= $ultimatemember->fields->edit_field( $key, $data );
}
+16 -3
View File
@@ -15,12 +15,25 @@
}
foreach( $_POST as $k => $v ) {
if ( !strstr( $k, 'password' ) && !strstr( $k, 'um_account' ) ) {
$changes[ $k ] = $v;
$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'] );
+24 -3
View File
@@ -1,8 +1,12 @@
<?php
/***
*** @Adjust available tabs
***/
/**
* Account default tabs
* @param array $tabs
* @return array $tabs
* @uses um_account_page_default_tabs_hook
*/
add_filter('um_account_page_default_tabs_hook', 'um_account_page_default_tabs_hook' );
function um_account_page_default_tabs_hook( $tabs ) {
global $ultimatemember;
@@ -26,4 +30,21 @@
return $tabs;
}
/**
* Account secure fields
* @param array $fields
* @param string $tab_key
* @return array
* @uses um_account_secure_fields
*/
add_filter('um_account_secure_fields','um_account_secure_fields', 10, 2);
function um_account_secure_fields( $fields, $tab_key ){
$_SESSION['um_account_fields'][ $tab_key ] = $fields;
update_user_meta( um_user('ID'), 'um_account_secure_fields', $_SESSION['um_account_fields'] );
return $fields;
}