diff --git a/includes/admin/templates/role/profile.php b/includes/admin/templates/role/profile.php index 4aaf6da7..48a5115c 100644 --- a/includes/admin/templates/role/profile.php +++ b/includes/admin/templates/role/profile.php @@ -40,6 +40,14 @@ 'label' => __( 'Can view/access private profiles?', 'ultimate-member' ), 'tooltip' => __( 'Can this role view private profiles?', 'ultimate-member' ), 'value' => ! empty( $role['_um_can_access_private_profile'] ) ? $role['_um_can_access_private_profile'] : 0, + ), + array( + 'id' => '_um_profile_noindex', + 'type' => 'checkbox', + 'name' => '_um_profile_noindex', + 'label' => __( 'Avoid indexing profile by search engines', 'ultimate-member' ), + 'tooltip' => __( 'Hides the profile page for robots', 'ultimate-member' ), + 'value' => ! empty( $role['_um_profile_noindex'] ) ? $role['_um_profile_noindex'] : 0, ) ) ) )->render_form(); ?> diff --git a/includes/core/class-builtin.php b/includes/core/class-builtin.php index ed11148d..c5f87170 100644 --- a/includes/core/class-builtin.php +++ b/includes/core/class-builtin.php @@ -1139,7 +1139,7 @@ if ( ! class_exists( 'um\core\Builtin' ) ) { 'required' => 0, 'public' => 1, 'editable' => 1, - 'default' => '0', + 'default' => UM()->roles()->um_user_can( 'profile_noindex' ) ? '1' : '0', 'options' => array( '0' => __( 'No', 'ultimate-member' ), '1' => __( 'Yes', 'ultimate-member' ), diff --git a/includes/core/um-actions-profile.php b/includes/core/um-actions-profile.php index 67826f1b..b7880086 100644 --- a/includes/core/um-actions-profile.php +++ b/includes/core/um-actions-profile.php @@ -682,15 +682,27 @@ function um_profile_dynamic_meta_desc() { $privacy = get_user_meta( $user_id, 'profile_privacy', true ); if ( $privacy == __( 'Only me', 'ultimate-member' ) || $privacy == 'Only me' ) { + echo ''; + return; + } + + /** + * @see the user role setting "Avoid indexing profile by search engines" + */ + $role = UM()->roles()->get_priority_user_role( $user_id ); + $permissions = UM()->roles()->role_data( $role ); + if ( ! empty( $permissions['profile_noindex'] ) ) { + echo ''; return; } + /** + * @see the account setting "Avoid indexing my profile by search engines" + */ $noindex = get_user_meta( $user_id, 'profile_noindex', true ); - if ( ! empty( $noindex ) ) { ?> - - - - '; + return; } um_fetch_user( $user_id );