- added option for hide_in_members default setting;

This commit is contained in:
nikitasinelnikov
2020-01-14 23:48:33 +02:00
parent 5006ac83fb
commit 455287f05c
6 changed files with 79 additions and 15 deletions
+57 -9
View File
@@ -700,17 +700,29 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
'tooltip' => __( 'Password is required to save account data.', 'ultimate-member' ),
),
array(
'id' => 'account_hide_in_directory',
'type' => 'checkbox',
'label' => __( 'Allow users to hide their profiles from directory','ultimate-member' ),
'tooltip' => __('Whether to allow users changing their profile visibility from member directory in account page.','ultimate-member'),
'id' => 'account_require_strongpass',
'type' => 'checkbox',
'label' => __( 'Require a strong password?','ultimate-member' ),
'tooltip' => __( 'Enable or disable a strong password rules on account page / change password tab', 'ultimate-member' ),
),
array(
'id' => 'account_require_strongpass',
'type' => 'checkbox',
'label' => __( 'Require a strong password?','ultimate-member' ),
'tooltip' => __('Enable or disable a strong password rules on account page / change password tab','ultimate-member'),
)
'id' => 'account_hide_in_directory',
'type' => 'checkbox',
'label' => __( 'Allow users to hide their profiles from directory', 'ultimate-member' ),
'tooltip' => __( 'Whether to allow users changing their profile visibility from member directory in account page.', 'ultimate-member' ),
),
array(
'id' => 'account_hide_in_directory_default',
'type' => 'select',
'label' => __( 'Hide profiles from directory by default', 'ultimate-member' ),
'tooltip' => __( 'Set default value for the "Hide my profile from directory" option', 'ultimate-member' ),
'options' => array(
'No' => __( 'No', 'ultimate-member' ),
'Yes' => __( 'Yes', 'ultimate-member' )
),
'size' => 'small',
'conditional' => array( 'account_hide_in_directory', '=', '1' ),
),
)
),
'uploads' => array(
@@ -1923,6 +1935,42 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
update_option( 'um_member_directory_truncated', time() );
}
} elseif ( isset( $_POST['um_options']['account_hide_in_directory_default'] ) ) {
global $wpdb;
if ( $_POST['um_options']['account_hide_in_directory_default'] == 'No' ) {
$results = $wpdb->get_col(
"SELECT u.ID FROM {$wpdb->users} AS u
LEFT JOIN {$wpdb->usermeta} AS um ON ( um.user_id = u.ID AND um.meta_key = 'hide_in_members' )
LEFT JOIN {$wpdb->usermeta} AS um2 ON ( um2.user_id = u.ID AND um2.meta_key = 'um_member_directory_data' )
WHERE um.meta_value IS NULL AND
um2.meta_value LIKE '%s:15:\"hide_in_members\";b:1;%'"
);
} else {
$results = $wpdb->get_col(
"SELECT u.ID FROM {$wpdb->users} AS u
LEFT JOIN {$wpdb->usermeta} AS um ON ( um.user_id = u.ID AND um.meta_key = 'hide_in_members' )
LEFT JOIN {$wpdb->usermeta} AS um2 ON ( um2.user_id = u.ID AND um2.meta_key = 'um_member_directory_data' )
WHERE um.meta_value IS NULL AND
um2.meta_value LIKE '%s:15:\"hide_in_members\";b:0;%'"
);
}
if ( ! empty( $results ) ) {
foreach ( $results as $user_id ) {
$md_data = get_user_meta( $user_id, 'um_member_directory_data', true );
if ( ! empty( $md_data ) ) {
$md_data['hide_in_members'] = ( $_POST['um_options']['account_hide_in_directory_default'] == 'No' ) ? false : true;
update_user_meta( $user_id, 'um_member_directory_data', $md_data );
}
}
}
}
}
}
@@ -75,7 +75,7 @@ function um_upgrade_metadata_per_user213beta3() {
$hide_in_members = UM()->member_directory()->get_hide_in_members_default();
if ( ! empty( $metadatarow['meta_value'] ) ) {
if ( $metadatarow['meta_value'] == 'Yes' || $metadatarow['meta_value'] == __( 'Yes', 'ultimate-member' ) ||
$metadatarow['meta_value'] == serialize( array( 'Yes' ) ) || $metadatarow['meta_value'] == serialize( array( __( 'Yes', 'ultimate-member' ) ) ) ) {
array_intersect( array( 'Yes', __( 'Yes', 'ultimate-member' ) ), $metadatarow['meta_value'] ) ) {
$hide_in_members = true;
} else {
$hide_in_members = false;
+1
View File
@@ -532,6 +532,7 @@ if ( ! class_exists( 'um\Config' ) ) {
'account_email' => 1,
'account_general_password' => 0,
'account_hide_in_directory' => 1,
'account_hide_in_directory_default' => 'No',
'account_require_strongpass' => 0,
'photo_thumb_sizes' => array( 40, 80, 190 ),
'cover_thumb_sizes' => array( 300, 600 ),
+7 -1
View File
@@ -102,7 +102,13 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
* @return bool
*/
function get_hide_in_members_default() {
$default = apply_filters( 'um_member_directory_hide_in_members_default', false );
$default = false;
$option = UM()->options()->get( 'account_hide_in_directory_default' );
if ( $option == 'Yes' ) {
$default = true;
}
$default = apply_filters( 'um_member_directory_hide_in_members_default', $default );
return $default;
}
+1 -1
View File
@@ -210,7 +210,7 @@ if ( ! class_exists( 'um\core\User' ) ) {
$hide_in_members = UM()->member_directory()->get_hide_in_members_default();
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' ) ) ) ) {
array_intersect( array( 'Yes', __( 'Yes', 'ultimate-member' ) ), $_meta_value ) ) {
$hide_in_members = true;
} else {
$hide_in_members = false;
+12 -3
View File
@@ -267,9 +267,18 @@ function um_submit_account_details( $args ) {
$changes[ $k ] = $v;
}
if ( isset( $changes['hide_in_members'] ) && ( $changes['hide_in_members'] == __( 'No', 'ultimate-member' ) || $changes['hide_in_members'] == 'No' ) ) {
delete_user_meta( $user_id, 'hide_in_members' );
unset( $changes['hide_in_members'] );
if ( isset( $changes['hide_in_members'] ) ) {
if ( UM()->member_directory()->get_hide_in_members_default() ) {
if ( $changes['hide_in_members'] == __( 'Yes', 'ultimate-member' ) || $changes['hide_in_members'] == 'Yes' || array_intersect( array( 'Yes', __( 'Yes', 'ultimate-member' ) ), $changes['hide_in_members'] ) ) {
delete_user_meta( $user_id, 'hide_in_members' );
unset( $changes['hide_in_members'] );
}
} else {
if ( $changes['hide_in_members'] == __( 'No', 'ultimate-member' ) || $changes['hide_in_members'] == 'No' || array_intersect( array( 'No', __( 'No', 'ultimate-member' ) ), $changes['hide_in_members'] ) ) {
delete_user_meta( $user_id, 'hide_in_members' );
unset( $changes['hide_in_members'] );
}
}
}
/**