mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-17 13:43:38 +09:00
- code formatted;
- added handlers when you create UM custom fields;
This commit is contained in:
@@ -93,6 +93,154 @@ if ( ! class_exists( 'um\core\User' ) ) {
|
||||
} else {
|
||||
add_action( 'delete_user', array( &$this, 'delete_user_handler' ), 10, 1 );
|
||||
}
|
||||
|
||||
|
||||
add_action( 'updated_user_meta', array( &$this, 'on_update_usermeta' ), 10, 4 );
|
||||
add_action( 'added_user_meta', array( &$this, 'on_update_usermeta' ), 10, 4 );
|
||||
|
||||
add_action( 'deleted_user_meta', array( &$this, 'on_delete_usermeta' ), 10, 4 );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* When you delete usermeta connected with member directory - reset it to default value
|
||||
*
|
||||
* @param int|array $meta_ids
|
||||
* @param int $object_id
|
||||
* @param string $meta_key
|
||||
* @param mixed $_meta_value
|
||||
*/
|
||||
function on_delete_usermeta( $meta_ids, $object_id, $meta_key, $_meta_value ) {
|
||||
$metakeys = array( 'account_status', 'hide_in_members', 'synced_gravatar_hashed_id', 'synced_profile_photo', 'profile_photo', 'cover_photo', '_um_verified' );
|
||||
if ( ! in_array( $meta_key, $metakeys ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$md_data = get_user_meta( $object_id, 'um_member_directory_data', true );
|
||||
if ( empty( $md_data ) ) {
|
||||
$md_data = array(
|
||||
'account_status' => 'approved',
|
||||
'hide_in_members' => false,
|
||||
'profile_photo' => false,
|
||||
'cover_photo' => false,
|
||||
'verified' => false,
|
||||
);
|
||||
}
|
||||
|
||||
switch ( $meta_key ) {
|
||||
case 'account_status':
|
||||
$md_data['account_status'] = 'approved';
|
||||
break;
|
||||
case 'hide_in_members':
|
||||
$md_data['hide_in_members'] = false;
|
||||
break;
|
||||
case 'synced_gravatar_hashed_id':
|
||||
if ( UM()->options()->get( 'use_gravatars' ) ) {
|
||||
$profile_photo = get_user_meta( $object_id, 'profile_photo', true );
|
||||
$synced_profile_photo = get_user_meta( $object_id, 'synced_profile_photo', true );
|
||||
|
||||
$md_data['profile_photo'] = ! empty( $profile_photo ) || ! empty( $synced_profile_photo );
|
||||
}
|
||||
|
||||
break;
|
||||
case 'synced_profile_photo':
|
||||
$profile_photo = get_user_meta( $object_id, 'profile_photo', true );
|
||||
|
||||
$synced_gravatar_hashed_id = false;
|
||||
if ( UM()->options()->get( 'use_gravatars' ) ) {
|
||||
$synced_gravatar_hashed_id = get_user_meta( $object_id, 'synced_gravatar_hashed_id', true );
|
||||
}
|
||||
|
||||
$md_data['profile_photo'] = ! empty( $profile_photo ) || ! empty( $synced_gravatar_hashed_id );
|
||||
break;
|
||||
case 'profile_photo':
|
||||
$synced_profile_photo = get_user_meta( $object_id, 'synced_profile_photo', true );
|
||||
|
||||
$synced_gravatar_hashed_id = false;
|
||||
if ( UM()->options()->get( 'use_gravatars' ) ) {
|
||||
$synced_gravatar_hashed_id = get_user_meta( $object_id, 'synced_gravatar_hashed_id', true );
|
||||
}
|
||||
|
||||
$md_data['profile_photo'] = ! empty( $synced_profile_photo ) || ! empty( $synced_gravatar_hashed_id );
|
||||
break;
|
||||
case 'cover_photo':
|
||||
$md_data['cover_photo'] = false;
|
||||
break;
|
||||
case '_um_verified':
|
||||
$md_data['verified'] = false;
|
||||
break;
|
||||
}
|
||||
|
||||
update_user_meta( $object_id, 'um_member_directory_data', $md_data );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* When you add/update usermeta connected with member directories - set this data to member directory metakey
|
||||
*
|
||||
* @param int $meta_id
|
||||
* @param int $object_id
|
||||
* @param string $meta_key
|
||||
* @param mixed $_meta_value
|
||||
*/
|
||||
function on_update_usermeta( $meta_id, $object_id, $meta_key, $_meta_value ) {
|
||||
|
||||
$metakeys = array( 'account_status', 'hide_in_members', 'synced_gravatar_hashed_id', 'synced_profile_photo', 'profile_photo', 'cover_photo', '_um_verified' );
|
||||
if ( ! in_array( $meta_key, $metakeys ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$md_data = get_user_meta( $object_id, 'um_member_directory_data', true );
|
||||
if ( empty( $md_data ) ) {
|
||||
$md_data = array(
|
||||
'account_status' => 'approved',
|
||||
'hide_in_members' => false,
|
||||
'profile_photo' => false,
|
||||
'cover_photo' => false,
|
||||
'verified' => false,
|
||||
);
|
||||
}
|
||||
|
||||
switch ( $meta_key ) {
|
||||
case 'account_status':
|
||||
$md_data['account_status'] = $_meta_value;
|
||||
break;
|
||||
case 'hide_in_members':
|
||||
|
||||
$hide_in_members = false;
|
||||
if ( ! empty( $_meta_value ) ) {
|
||||
if ( $_meta_value == 'Yes' || $_meta_value == __( 'Yes', 'ultimate-member' ) ||
|
||||
$_meta_value == serialize( array( 'Yes' ) ) || $_meta_value == serialize( array( __( 'Yes', 'ultimate-member' ) ) ) ) {
|
||||
$hide_in_members = true;
|
||||
}
|
||||
}
|
||||
|
||||
$md_data['hide_in_members'] = $hide_in_members;
|
||||
|
||||
break;
|
||||
case 'synced_gravatar_hashed_id':
|
||||
if ( UM()->options()->get( 'use_gravatars' ) ) {
|
||||
if ( empty( $md_data['profile_photo'] ) ) {
|
||||
$md_data['profile_photo'] = ! empty( $_meta_value );
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case 'synced_profile_photo':
|
||||
case 'profile_photo':
|
||||
if ( empty( $md_data['profile_photo'] ) ) {
|
||||
$md_data['profile_photo'] = ! empty( $_meta_value );
|
||||
}
|
||||
break;
|
||||
case 'cover_photo':
|
||||
$md_data['cover_photo'] = ! empty( $_meta_value );
|
||||
break;
|
||||
case '_um_verified':
|
||||
$md_data['verified'] = $_meta_value == 'verified' ? true : false;
|
||||
break;
|
||||
}
|
||||
|
||||
update_user_meta( $object_id, 'um_member_directory_data', $md_data );
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user