Refactor securing account fields

This commit is contained in:
Champ Camba
2017-02-09 20:52:47 +08:00
parent b70f21eb6f
commit c894f60010
2 changed files with 19 additions and 8 deletions
+13 -1
View File
@@ -20,7 +20,9 @@
}
$arr_fields = array();
$secure_fields = get_user_meta( um_user('ID'), 'um_account_secure_fields', true );
$account_fields = get_user_meta( um_user('ID'), 'um_account_secure_fields', true );
$secure_fields = apply_filters('um_secure_account_fields', $account_fields , um_user('ID') );
if( isset( $secure_fields ) ){
foreach ( $secure_fields as $tab_key => $fields ) {
if( isset( $fields ) ){
@@ -30,6 +32,7 @@
}
}
}
$changes = array();
foreach( $_POST as $k => $v ) {
@@ -474,3 +477,12 @@
<?php
}
add_action('wp_footer','um_account_secure_registered_fields');
function um_account_secure_registered_fields(){
global $ultimatemember;
$secure_fields = $ultimatemember->account->register_fields;
update_user_meta( um_user('ID'), 'um_account_secure_fields', $secure_fields );
}
+6 -7
View File
@@ -1,6 +1,5 @@
<?php
/**
* Account default tabs
* @param array $tabs
@@ -21,6 +20,7 @@
if ( $id == 'delete' ) {
if ( !um_user('can_delete_profile') && !um_user('can_delete_everyone') ) {
unset( $tabs[$k][$id] );
}
}
@@ -41,18 +41,17 @@
*/
add_filter('um_account_secure_fields','um_account_secure_fields', 10, 2);
function um_account_secure_fields( $fields, $tab_key ){
global $ultimatemember;
$secure = apply_filters('um_account_secure_fields__enabled', true );
if( ! $secure ) return $fields;
if( ! isset( $_SESSION['um_account_fields'] ) || ! isset( $_SESSION['um_account_fields'][ $tab_key ] ) ){
$_SESSION['um_account_fields'][ $tab_key ] = $fields;
update_user_meta( um_user('ID'), 'um_account_secure_fields', $_SESSION['um_account_fields'] );
if( isset( $ultimatemember->account->register_fields ) && ! isset( $ultimatemember->account->register_fields[ $tab_key ] ) ){
$ultimatemember->account->register_fields[ $tab_key ] = $fields;
}
return $fields;
}