diff --git a/includes/admin/class-site-health.php b/includes/admin/class-site-health.php
index b7a07925..a8100d74 100644
--- a/includes/admin/class-site-health.php
+++ b/includes/admin/class-site-health.php
@@ -464,1351 +464,22 @@ class Site_Health {
// Appearance settings sitehealth
$appearance_sitehealth = $this->appearance_sitehealth();
- // Misc settings.
- $misc_settings = array(
- 'um-form_asterisk' => array(
- 'label' => __( 'Show an asterisk for required fields', 'ultimate-member' ),
- 'value' => UM()->options()->get( 'form_asterisk' ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-um_profile_object_cache_stop' => array(
- 'label' => __( 'Disable Cache User Profile', 'ultimate-member' ),
- 'value' => UM()->options()->get( 'um_profile_object_cache_stop' ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-enable_blocks' => array(
- 'label' => __( 'Enable Gutenberg Blocks', 'ultimate-member' ),
- 'value' => UM()->options()->get( 'enable_blocks' ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-enable_as_email_sending' => array(
- 'label' => __( 'Email sending by Action Scheduler', 'ultimate-member' ),
- 'value' => UM()->options()->get( 'enable_as_email_sending' ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-rest_api_version' => array(
- 'label' => __( 'REST API version', 'ultimate-member' ),
- 'value' => UM()->options()->get( 'rest_api_version' ),
- ),
- 'um-disable_restriction_pre_queries' => array(
- 'label' => __( 'Disable pre-queries for restriction content logic (advanced)', 'ultimate-member' ),
- 'value' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-member_directory_own_table' => array(
- 'label' => __( 'Enable custom table for usermeta', 'ultimate-member' ),
- 'value' => UM()->options()->get( 'member_directory_own_table' ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-uninstall_on_delete' => array(
- 'label' => __( 'Remove Data on Uninstall?', 'ultimate-member' ),
- 'value' => UM()->options()->get( 'uninstall_on_delete' ) ? $labels['yes'] : $labels['no'],
- ),
- );
+ // Advanced settings sitehealth
+ $advanced_sitehealth = $this->advanced_sitehealth();
- // Secure settings
- $secure_ban_admins_accounts = UM()->options()->get( 'secure_ban_admins_accounts' );
+ // License settings sitehealth
+ $license_sitehealth = $this->license_sitehealth();
- $banned_capabilities_opt = UM()->options()->get( 'banned_capabilities' );
- $banned_capabilities = array();
- if ( ! empty( $banned_capabilities_opt ) ) {
- if ( is_string( $banned_capabilities_opt ) ) {
- $banned_capabilities = array( $banned_capabilities_opt );
- } else {
- $banned_capabilities = $banned_capabilities_opt;
- }
- }
+ $info['ultimate-member']['fields'] = array_merge( $info['ultimate-member']['fields'], $general_sitehealth, $access_sitehealth, $emails_sitehealth, $appearance_sitehealth, $advanced_sitehealth, $license_sitehealth );
- $secure_settings = array(
- 'um-banned_capabilities' => array(
- 'label' => __( 'Banned Administrative Capabilities', 'ultimate-member' ),
- 'value' => ! empty( $banned_capabilities ) ? implode( ', ', $banned_capabilities ) : '',
- ),
- 'um-lock_register_forms' => array(
- 'label' => __( 'Lock All Register Forms', 'ultimate-member' ),
- 'value' => UM()->options()->get( 'lock_register_forms' ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-display_login_form_notice' => array(
- 'label' => __( 'Display Login form notice to reset passwords', 'ultimate-member' ),
- 'value' => UM()->options()->get( 'display_login_form_notice' ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-secure_ban_admins_accounts' => array(
- 'label' => __( 'Enable ban for administrative capabilities', 'ultimate-member' ),
- 'value' => $secure_ban_admins_accounts ? $labels['yes'] : $labels['no'],
- ),
- );
- if ( ! empty( $secure_ban_admins_accounts ) ) {
- $secure_notify_admins_banned_accounts = UM()->options()->get( 'secure_notify_admins_banned_accounts' );
+ // User roles settings sitehealth
+ $info = $this->roles_sitehealth( $info );
- $secure_settings['um-secure_notify_admins_banned_accounts'] = array(
- 'label' => __( 'Notify Administrators', 'ultimate-member' ),
- 'value' => $secure_notify_admins_banned_accounts ? $labels['yes'] : $labels['no'],
- );
- if ( ! empty( $secure_notify_admins_banned_accounts ) ) {
- $secure_notify_admins_banned_accounts_options = array(
- 'instant' => __( 'Send Immediately', 'ultimate-member' ),
- 'hourly' => __( 'Hourly', 'ultimate-member' ),
- 'daily' => __( 'Daily', 'ultimate-member' ),
- );
+ // Forms settings sitehealth
+ $info = $this->forms_sitehealth( $info );
- $secure_settings['um-secure_notify_admins_banned_accounts__interval'] = array(
- 'label' => __( 'Notification Schedule', 'ultimate-member' ),
- 'value' => $secure_notify_admins_banned_accounts_options[ UM()->options()->get( 'secure_notify_admins_banned_accounts__interval' ) ],
- );
- }
- }
-
- $secure_allowed_redirect_hosts = UM()->options()->get( 'secure_allowed_redirect_hosts' );
- $secure_allowed_redirect_hosts = explode( PHP_EOL, $secure_allowed_redirect_hosts );
-
- $secure_settings['um-secure_allowed_redirect_hosts'] = array(
- 'label' => __( 'Allowed hosts for safe redirect', 'ultimate-member' ),
- 'value' => $secure_allowed_redirect_hosts,
- );
-
- // Licenses settings.
- $license_settings = array(
- 'um-licenses' => array(
- 'label' => __( 'Licenses', 'ultimate-member' ),
- 'value' => array(),
- ),
- );
-
- /**
- * Filters licenses settings for Site Health.
- *
- * @since 2.7.0
- * @hook um_licenses_site_health
- *
- * @param {array} $license_settings licenses settings for Site Health.
- *
- * @return {array} licenses settings for Site Health.
- *
- * @example
Extend licenses settings for Site Health.
- * function um_licenses_site_health( $license_settings ) {
- * // your code here
- * return $license_settings;
- * }
- * add_filter( 'um_licenses_site_health', 'um_licenses_site_health', 10, 1 );
- */
- $license_settings = apply_filters( 'um_licenses_site_health', $license_settings );
-
-// $info['ultimate-member']['fields'] = array_merge( $info['ultimate-member']['fields'], $pages_settings, $user_settings, $account_settings, $uploads_settings, $restrict_settings, $access_other_settings, $email_settings, $appearance_settings, $misc_settings, $secure_settings, $license_settings );
- $info['ultimate-member']['fields'] = array_merge( $info['ultimate-member']['fields'], $general_sitehealth, $access_sitehealth, $emails_sitehealth, $appearance_sitehealth, $misc_settings, $secure_settings, $license_settings );
-
- // User roles settings
- $roles_array = array();
- foreach ( $this->get_roles() as $key => $role ) {
- if ( strpos( $key, 'um_' ) === 0 ) {
- $key = substr( $key, 3 );
- }
- $rolemeta = $this->get_role_meta( $key );
- if ( false === $rolemeta ) {
- continue;
- }
- $priority = ! empty( $rolemeta['_um_priority'] ) ? $rolemeta['_um_priority'] : 0;
-
- $k = $priority . '-' . $role;
- $roles_array[ $k ] = $role . '(' . $priority . ')';
-
- krsort( $roles_array, SORT_NUMERIC );
- }
-
- $info['ultimate-member-user-roles'] = array(
- 'label' => __( 'User roles', 'ultimate-member' ),
- 'description' => __( 'This debug information about user roles.', 'ultimate-member' ),
- 'fields' => array(
- 'um-roles' => array(
- 'label' => __( 'User Roles (priority)', 'ultimate-member' ),
- 'value' => implode( ', ', $roles_array ),
- ),
- 'um-register_role' => array(
- 'label' => __( 'WordPress Default New User Role', 'ultimate-member' ),
- 'value' => get_option( 'default_role' ),
- ),
- ),
- );
-
- foreach ( $this->get_roles() as $key => $role ) {
- if ( strpos( $key, 'um_' ) === 0 ) {
- $key = substr( $key, 3 );
- }
-
- $rolemeta = $this->get_role_meta( $key );
- if ( false === $rolemeta ) {
- continue;
- }
-
- $info[ 'ultimate-member-' . $key ] = array(
- 'label' => ' - ' . $role . __( ' role settings', 'ultimate-member' ),
- 'description' => __( 'This debug information about user role.', 'ultimate-member' ),
- 'fields' => array(),
- );
-
- if ( array_key_exists( '_um_can_access_wpadmin', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-can_access_wpadmin' => array(
- 'label' => __( 'Can access wp-admin?', 'ultimate-member' ),
- 'value' => $rolemeta['_um_can_access_wpadmin'] ? $labels['yes'] : $labels['no'],
- ),
- )
- );
- }
-
- if ( array_key_exists( '_um_can_not_see_adminbar', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-can_not_see_adminbar' => array(
- 'label' => __( 'Force hiding adminbar in frontend?', 'ultimate-member' ),
- 'value' => $rolemeta['_um_can_not_see_adminbar'] ? $labels['yes'] : $labels['no'],
- ),
- )
- );
- }
-
- if ( array_key_exists( '_um_can_edit_everyone', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-can_edit_everyone' => array(
- 'label' => __( 'Can edit other member accounts?', 'ultimate-member' ),
- 'value' => $rolemeta['_um_can_edit_everyone'] ? $labels['yes'] : $labels['no'],
- ),
- )
- );
- }
-
- if ( array_key_exists( '_um_can_edit_everyone', $rolemeta ) && 1 === absint( $rolemeta['_um_can_edit_everyone'] ) ) {
- $can_edit_roles_meta = ! empty( $rolemeta['_um_can_edit_roles'] ) ? $rolemeta['_um_can_edit_roles'] : array();
- $can_edit_roles = array();
- if ( ! empty( $can_edit_roles_meta ) ) {
- if ( is_string( $can_edit_roles_meta ) ) {
- $can_edit_roles = array( $can_edit_roles_meta );
- } else {
- $can_edit_roles = $can_edit_roles_meta;
- }
- }
-
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-can_edit_roles' => array(
- 'label' => __( 'Can edit these user roles only', 'ultimate-member' ),
- 'value' => ! empty( $can_edit_roles ) ? implode( ', ', $can_edit_roles ) : $labels['all'],
- ),
- )
- );
- }
-
- if ( array_key_exists( '_um_can_delete_everyone', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-can_delete_everyone' => array(
- 'label' => __( 'Can delete other member accounts?', 'ultimate-member' ),
- 'value' => $rolemeta['_um_can_delete_everyone'] ? $labels['yes'] : $labels['no'],
- ),
- )
- );
- }
-
- if ( array_key_exists( '_um_can_delete_everyone', $rolemeta ) && 1 === absint( $rolemeta['_um_can_delete_everyone'] ) ) {
- $can_delete_roles_meta = ! empty( $rolemeta['_um_can_delete_roles'] ) ? $rolemeta['_um_can_delete_roles'] : array();
- $can_delete_roles = array();
- if ( ! empty( $can_delete_roles_meta ) ) {
- if ( is_string( $can_delete_roles_meta ) ) {
- $can_delete_roles = array( $can_delete_roles_meta );
- } else {
- $can_delete_roles = $can_delete_roles_meta;
- }
- }
-
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-can_delete_roles' => array(
- 'label' => __( 'Can delete these user roles only', 'ultimate-member' ),
- 'value' => ! empty( $can_delete_roles ) ? implode( ', ', $can_delete_roles ) : $labels['all'],
- ),
- )
- );
- }
-
- if ( array_key_exists( '_um_can_edit_profile', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-can_edit_profile' => array(
- 'label' => __( 'Can edit their profile?', 'ultimate-member' ),
- 'value' => $rolemeta['_um_can_edit_profile'] ? $labels['yes'] : $labels['no'],
- ),
- )
- );
- }
-
- if ( array_key_exists( '_um_can_delete_profile', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-can_delete_profile' => array(
- 'label' => __( 'Can delete their account?', 'ultimate-member' ),
- 'value' => $rolemeta['_um_can_delete_profile'] ? $labels['yes'] : $labels['no'],
- ),
- )
- );
- }
-
- if ( array_key_exists( '_um_can_view_all', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-can_view_all' => array(
- 'label' => __( 'Can view other member profiles?', 'ultimate-member' ),
- 'value' => $rolemeta['_um_can_view_all'] ? $labels['yes'] : $labels['no'],
- ),
- )
- );
- }
-
- if ( array_key_exists( '_um_can_view_all', $rolemeta ) && 1 === absint( $rolemeta['_um_can_view_all'] ) ) {
- $can_view_roles_meta = ! empty( $rolemeta['_um_can_view_roles'] ) ? $rolemeta['_um_can_view_roles'] : array();
- $can_view_roles = array();
- if ( ! empty( $can_view_roles_meta ) ) {
- if ( is_string( $can_view_roles_meta ) ) {
- $can_view_roles = array( $can_view_roles_meta );
- } else {
- $can_view_roles = $can_view_roles_meta;
- }
- }
-
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-can_view_roles' => array(
- 'label' => __( 'Can view these user roles only', 'ultimate-member' ),
- 'value' => ! empty( $can_view_roles ) ? implode( ', ', $can_view_roles ) : $labels['all'],
- ),
- )
- );
- }
-
- if ( isset( $rolemeta['_um_profile_noindex'] ) && '' !== $rolemeta['_um_profile_noindex'] ) {
- $profile_noindex = $rolemeta['_um_profile_noindex'] ? $labels['yes'] : $labels['no'];
- } else {
- $profile_noindex = __( 'Default', 'ultimate-member' );
- }
- if ( isset( $rolemeta['_um_default_homepage'] ) && '' !== $rolemeta['_um_default_homepage'] ) {
- $default_homepage = $rolemeta['_um_default_homepage'] ? $labels['yes'] : $labels['no'];
- } else {
- $default_homepage = __( 'No such option', 'ultimate-member' );
- }
-
- if ( array_key_exists( '_um_can_make_private_profile', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-can_make_private_profile' => array(
- 'label' => __( 'Can make their profile private?', 'ultimate-member' ),
- 'value' => $rolemeta['_um_can_make_private_profile'] ? $labels['yes'] : $labels['no'],
- ),
- )
- );
- }
-
- if ( array_key_exists( '_um_can_access_private_profile', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-can_access_private_profile' => array(
- 'label' => __( 'Can view/access private profiles?', 'ultimate-member' ),
- 'value' => $rolemeta['_um_can_access_private_profile'] ? $labels['yes'] : $labels['no'],
- ),
- )
- );
- }
-
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-profile_noindex' => array(
- 'label' => __( 'Avoid indexing profile by search engines', 'ultimate-member' ),
- 'value' => $profile_noindex,
- ),
- 'um-default_homepage' => array(
- 'label' => __( 'Can view default homepage?', 'ultimate-member' ),
- 'value' => $default_homepage,
- ),
- )
- );
-
- if ( isset( $rolemeta['_um_default_homepage'] ) && 0 === absint( $rolemeta['_um_default_homepage'] ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-redirect_homepage' => array(
- 'label' => __( 'Custom Homepage Redirect', 'ultimate-member' ),
- 'value' => $rolemeta['_um_redirect_homepage'],
- ),
- )
- );
- }
-
- $status_options = array(
- 'approved' => __( 'Auto Approve', 'ultimate-member' ),
- 'checkmail' => __( 'Require Email Activation', 'ultimate-member' ),
- 'pending' => __( 'Require Admin Review', 'ultimate-member' ),
- );
-
- if ( array_key_exists( '_um_status', $rolemeta ) && isset( $status_options[ $rolemeta['_um_status'] ] ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-status' => array(
- 'label' => __( 'Registration Status', 'ultimate-member' ),
- 'value' => $status_options[ $rolemeta['_um_status'] ],
- ),
- )
- );
- }
-
- if ( array_key_exists( '_um_status', $rolemeta ) && 'approved' === $rolemeta['_um_status'] ) {
- $auto_approve_act = array(
- 'redirect_profile' => __( 'Redirect to profile', 'ultimate-member' ),
- 'redirect_url' => __( 'Redirect to URL', 'ultimate-member' ),
- );
-
- if ( isset( $auto_approve_act[ $rolemeta['_um_auto_approve_act'] ] ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-auto_approve_act' => array(
- 'label' => __( 'Custom Homepage Redirect', 'ultimate-member' ),
- 'value' => $auto_approve_act[ $rolemeta['_um_auto_approve_act'] ],
- ),
- )
- );
- }
-
- if ( 'redirect_url' === $rolemeta['_um_auto_approve_act'] && array_key_exists( '_um_auto_approve_url', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-auto_approve_url' => array(
- 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
- 'value' => $rolemeta['_um_auto_approve_url'],
- ),
- )
- );
- }
- }
-
- if ( array_key_exists( '_um_status', $rolemeta ) && 'checkmail' === $rolemeta['_um_status'] ) {
- $checkmail_action = array(
- 'show_message' => __( 'Show custom message', 'ultimate-member' ),
- 'redirect_url' => __( 'Redirect to URL', 'ultimate-member' ),
- );
-
- if ( array_key_exists( '_um_login_email_activate', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-login_email_activate' => array(
- 'label' => __( 'Login user after validating the activation link?', 'ultimate-member' ),
- 'value' => $rolemeta['_um_login_email_activate'] ? $labels['yes'] : $labels['no'],
- ),
- )
- );
- }
-
- if ( isset( $checkmail_action[ $rolemeta['_um_checkmail_action'] ] ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-checkmail_action' => array(
- 'label' => __( 'Action to be taken after registration', 'ultimate-member' ),
- 'value' => $checkmail_action[ $rolemeta['_um_checkmail_action'] ],
- ),
- )
- );
- }
-
- if ( 'show_message' === $rolemeta['_um_checkmail_action'] ) {
- if ( array_key_exists( '_um_checkmail_message', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-checkmail_message' => array(
- 'label' => __( 'Personalize the custom message', 'ultimate-member' ),
- 'value' => stripslashes( $rolemeta['_um_checkmail_message'] ),
- ),
- )
- );
- }
- } else {
- if ( array_key_exists( '_um_checkmail_url', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-checkmail_url' => array(
- 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
- 'value' => $rolemeta['_um_checkmail_url'],
- ),
- )
- );
- }
- }
-
- if ( array_key_exists( '_um_url_email_activate', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-url_email_activate' => array(
- 'label' => __( 'URL redirect after email activation', 'ultimate-member' ),
- 'value' => $rolemeta['_um_url_email_activate'],
- ),
- )
- );
- }
- }
-
- if ( array_key_exists( '_um_status', $rolemeta ) && 'pending' === $rolemeta['_um_status'] ) {
- $pending_action = array(
- 'show_message' => __( 'Show custom message', 'ultimate-member' ),
- 'redirect_url' => __( 'Redirect to URL', 'ultimate-member' ),
- );
-
- if ( array_key_exists( '_um_pending_action', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-pending_action' => array(
- 'label' => __( 'Action to be taken after registration', 'ultimate-member' ),
- 'value' => $pending_action[ $rolemeta['_um_pending_action'] ],
- ),
- )
- );
- }
-
- if ( 'show_message' === $rolemeta['_um_pending_action'] ) {
- if ( array_key_exists( '_um_pending_message', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-pending_message' => array(
- 'label' => __( 'Personalize the custom message', 'ultimate-member' ),
- 'value' => stripslashes( $rolemeta['_um_pending_message'] ),
- ),
- )
- );
- }
- } else {
- if ( array_key_exists( '_um_pending_url', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-pending_url' => array(
- 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
- 'value' => $rolemeta['_um_pending_url'],
- ),
- )
- );
- }
- }
- }
-
- $after_login_options = array(
- 'redirect_profile' => __( 'Redirect to profile', 'ultimate-member' ),
- 'redirect_url' => __( 'Redirect to URL', 'ultimate-member' ),
- 'refresh' => __( 'Refresh active page', 'ultimate-member' ),
- 'redirect_admin' => __( 'Redirect to WordPress Admin', 'ultimate-member' ),
- );
-
- if ( array_key_exists( '_um_after_login', $rolemeta ) && isset( $after_login_options[ $rolemeta['_um_after_login'] ] ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-after_login' => array(
- 'label' => __( 'Action to be taken after login', 'ultimate-member' ),
- 'value' => $after_login_options[ $rolemeta['_um_after_login'] ],
- ),
- )
- );
-
- if ( 'redirect_url' === $rolemeta['_um_after_login'] && array_key_exists( '_um_login_redirect_url', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-login_redirect_url' => array(
- 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
- 'value' => $rolemeta['_um_login_redirect_url'],
- ),
- )
- );
- }
- }
-
- $redirect_options = array(
- 'redirect_home' => __( 'Go to Homepage', 'ultimate-member' ),
- 'redirect_url' => __( 'Go to Custom URL', 'ultimate-member' ),
- );
- if ( ! isset( $rolemeta['_um_after_logout'] ) ) {
- $rolemeta['_um_after_logout'] = 'redirect_home';
- }
- if ( array_key_exists( '_um_after_logout', $rolemeta ) && isset( $redirect_options[ $rolemeta['_um_after_logout'] ] ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-after_logout' => array(
- 'label' => __( 'Action to be taken after logout', 'ultimate-member' ),
- 'value' => $redirect_options[ $rolemeta['_um_after_logout'] ],
- ),
- )
- );
-
- if ( 'redirect_url' === $rolemeta['_um_after_logout'] && array_key_exists( '_um_logout_redirect_url', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-logout_redirect_url' => array(
- 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
- 'value' => $rolemeta['_um_logout_redirect_url'],
- ),
- )
- );
- }
- }
-
- if ( ! isset( $rolemeta['_um_after_delete'] ) ) {
- $rolemeta['_um_after_delete'] = 'redirect_home';
- }
- if ( array_key_exists( '_um_after_delete', $rolemeta ) && isset( $redirect_options[ $rolemeta['_um_after_delete'] ] ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-after_delete' => array(
- 'label' => __( 'Action to be taken after account is deleted', 'ultimate-member' ),
- 'value' => $redirect_options[ $rolemeta['_um_after_delete'] ],
- ),
- )
- );
-
- if ( 'redirect_url' === $rolemeta['_um_after_delete'] && array_key_exists( '_um_delete_redirect_url', $rolemeta ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-delete_redirect_url' => array(
- 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
- 'value' => $rolemeta['_um_delete_redirect_url'],
- ),
- )
- );
- }
- }
-
- if ( ! empty( $rolemeta['wp_capabilities'] ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-wp_capabilities' => array(
- 'label' => __( 'WP Capabilities', 'ultimate-member' ),
- 'value' => $rolemeta['wp_capabilities'],
- ),
- )
- );
- }
-
- $info = apply_filters( 'um_debug_information_user_role', $info, $key );
- }
-
- // Forms settings
- if ( ! empty( $this->get_forms() ) ) {
- $info['ultimate-member-forms'] = array(
- 'label' => __( 'Ultimate Member Forms', 'ultimate-member' ),
- 'description' => __( 'This debug information for your Ultimate Member forms.', 'ultimate-member' ),
- 'fields' => array(
- 'um-forms' => array(
- 'label' => __( 'UM Forms', 'ultimate-member' ),
- 'value' => $this->get_forms(),
- ),
- ),
- );
-
- foreach ( $this->get_forms() as $key => $form ) {
- if ( strpos( $key, 'ID#' ) === 0 ) {
- $key = substr( $key, 3 );
- }
-
- $info[ 'ultimate-member-' . $key ] = array(
- 'label' => ' - ' . $form . __( ' form settings', 'ultimate-member' ),
- 'description' => __( 'This debug information for your Ultimate Member form.', 'ultimate-member' ),
- 'fields' => array(
- 'um-form-shortcode' => array(
- 'label' => __( 'Shortcode', 'ultimate-member' ),
- 'value' => '[ultimatemember form_id="' . $key . '"]',
- ),
- 'um-mode' => array(
- 'label' => __( 'Type', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_mode', true ),
- ),
- ),
- );
-
- if ( 'register' === get_post_meta( $key, '_um_mode', true ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-register_role' => array(
- 'label' => __( 'User registration role', 'ultimate-member' ),
- 'value' => 0 === absint( get_post_meta( $key, '_um_register_role', true ) ) ? $labels['default'] : get_post_meta( $key, '_um_register_role', true ),
- ),
- 'um-register_template' => array(
- 'label' => __( 'Template', 'ultimate-member' ),
- 'value' => 0 === absint( get_post_meta( $key, '_um_register_template', true ) ) ? $labels['default'] : get_post_meta( $key, '_um_register_template', true ),
- ),
- 'um-register_primary_btn_word' => array(
- 'label' => __( 'Primary Button Text', 'ultimate-member' ),
- 'value' => ! get_post_meta( $key, '_um_register_primary_btn_word', true ) ? $labels['default'] : get_post_meta( $key, '_um_register_primary_btn_word', true ),
- ),
- 'um-register_use_gdpr' => array(
- 'label' => __( 'Enable privacy policy agreement', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_register_use_gdpr', true ) ? $labels['yes'] : $labels['no'],
- ),
- )
- );
-
- if ( 1 === absint( get_post_meta( $key, '_um_register_use_gdpr', true ) ) ) {
- $gdpr_content_id = get_post_meta( $key, '_um_register_use_gdpr_content_id', true );
-
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-register_use_gdpr_content_id' => array(
- 'label' => __( 'Privacy policy content', 'ultimate-member' ),
- 'value' => $gdpr_content_id ? get_the_title( $gdpr_content_id ) . '(' . $gdpr_content_id . ')' . get_the_permalink( $gdpr_content_id ) : '',
- ),
- 'um-register_use_gdpr_toggle_show' => array(
- 'label' => __( 'Toggle Show text', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_register_use_gdpr_toggle_show', true ),
- ),
- 'um-register_use_gdpr_toggle_hide' => array(
- 'label' => __( 'Toggle Hide text', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_register_use_gdpr_toggle_hide', true ),
- ),
- 'um-register_use_gdpr_agreement' => array(
- 'label' => __( 'Checkbox agreement description', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_register_use_gdpr_agreement', true ),
- ),
- 'um-register_use_gdpr_error_text' => array(
- 'label' => __( 'Error Text', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_register_use_gdpr_error_text', true ),
- ),
- )
- );
- }
-
- $info = apply_filters( 'um_debug_information_register_form', $info, $key );
-
- $fields = get_post_meta( $key, '_um_custom_fields', true );
- if ( ! empty( $fields ) && is_array( $fields ) ) {
- foreach ( $fields as $field_key => $field ) {
- $field_info = $this->get_field_data( $info, $key, $field_key, $field );
-
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- $field_info
- );
- }
- }
- } elseif ( 'login' === get_post_meta( $key, '_um_mode', true ) ) {
- $login_redirect_options = array(
- '0' => __( 'Default', 'ultimate-member' ),
- 'redirect_profile' => __( 'Redirect to profile', 'ultimate-member' ),
- 'redirect_url' => __( 'Redirect to URL', 'ultimate-member' ),
- 'refresh' => __( 'Refresh active page', 'ultimate-member' ),
- 'redirect_admin' => __( 'Redirect to WordPress Admin', 'ultimate-member' ),
- );
-
- $login_after_login = get_post_meta( $key, '_um_login_after_login', true );
- $login_after_login = '' === $login_after_login ? '0' : $login_after_login;
-
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-login_template' => array(
- 'label' => __( 'Template', 'ultimate-member' ),
- 'value' => 0 === absint( get_post_meta( $key, '_um_login_template', true ) ) ? $labels['default'] : get_post_meta( $key, '_um_login_template', true ),
- ),
- 'um-login_primary_btn_word' => array(
- 'label' => __( 'Primary Button Text', 'ultimate-member' ),
- 'value' => ! get_post_meta( $key, '_um_login_primary_btn_word', true ) ? $labels['default'] : get_post_meta( $key, '_um_login_primary_btn_word', true ),
- ),
- 'um-login_forgot_pass_link' => array(
- 'label' => __( 'Show Forgot Password Link?', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_login_forgot_pass_link', true ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-login_show_rememberme' => array(
- 'label' => __( 'Show "Remember Me"?', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_login_show_rememberme', true ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-login_after_login' => array(
- 'label' => __( 'Redirection after Login', 'ultimate-member' ),
- 'value' => $login_redirect_options[ $login_after_login ],
- ),
- )
- );
-
- if ( 'redirect_url' === get_post_meta( $key, '_um_login_after_login', true ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-login_redirect_url' => array(
- 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_login_redirect_url', true ),
- ),
- )
- );
- }
-
- $info = apply_filters( 'um_debug_information_login_form', $info, $key );
-
- $fields = get_post_meta( $key, '_um_custom_fields', true );
- if ( ! empty( $fields ) && is_array( $fields ) ) {
- foreach ( $fields as $field_key => $field ) {
- $field_info = $this->get_field_data( $info, $key, $field_key, $field );
-
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- $field_info
- );
- }
- }
- } elseif ( 'profile' === get_post_meta( $key, '_um_mode', true ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-profile_role' => array(
- 'label' => __( 'Make this profile form role-specific', 'ultimate-member' ),
- 'value' => ! empty( get_post_meta( $key, '_um_profile_role', true ) ) ? get_post_meta( $key, '_um_profile_role', true ) : $labels['all'],
- ),
- 'um-profile_template' => array(
- 'label' => __( 'Template', 'ultimate-member' ),
- 'value' => 0 === absint( get_post_meta( $key, '_um_profile_template', true ) ) ? $labels['default'] : get_post_meta( $key, '_um_profile_template', true ),
- ),
- 'um-profile_primary_btn_word' => array(
- 'label' => __( 'Primary Button Text', 'ultimate-member' ),
- 'value' => ! get_post_meta( $key, '_um_profile_primary_btn_word', true ) ? $labels['default'] : get_post_meta( $key, '_um_profile_primary_btn_word', true ),
- ),
- 'um-profile_cover_enabled' => array(
- 'label' => __( 'Enable Cover Photos', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_profile_cover_enabled', true ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-profile_disable_photo_upload' => array(
- 'label' => __( 'Disable Profile Photo Upload', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_profile_disable_photo_upload', true ) ? $labels['yes'] : $labels['no'],
- ),
- )
- );
-
- if ( 0 === absint( get_post_meta( $key, '_um_profile_disable_photo_upload', true ) ) ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-profile_photo_required' => array(
- 'label' => __( 'Make Profile Photo Required', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_profile_photo_required', true ) ? $labels['yes'] : $labels['no'],
- ),
- )
- );
- }
-
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-profile_show_name' => array(
- 'label' => __( 'Show display name in profile header?', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_profile_show_name', true ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-profile_show_social_links' => array(
- 'label' => __( 'Show social links in profile header?', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_profile_show_social_links', true ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-profile_show_bio' => array(
- 'label' => __( 'Show user description in profile header?', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_profile_show_bio', true ) ? $labels['yes'] : $labels['no'],
- ),
- )
- );
-
- $fields = get_post_meta( $key, '_um_custom_fields', true );
- if ( ! empty( $fields ) && is_array( $fields ) ) {
- foreach ( $fields as $field_key => $field ) {
- $field_info = $this->get_field_data( $info, $key, $field_key, $field );
-
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- $field_info
- );
- }
- }
-
- $profile_metafields = get_post_meta( $key, '_um_profile_metafields', true );
- if ( ! empty( $profile_metafields ) && is_array( $profile_metafields ) ) {
- foreach ( $profile_metafields as $k => $field ) {
- $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-' . $key ]['fields'],
- array(
- 'um-profile_metafields-' . $k => array(
- 'label' => __( 'Field to show in user meta', 'ultimate-member' ),
- 'value' => $field,
- ),
- )
- );
- }
- }
- }
- }
- }
-
- // Members directory
- $options = array(
- 'country' => __( 'Country', 'ultimate-member' ),
- 'gender' => __( 'Gender', 'ultimate-member' ),
- 'languages' => __( 'Languages', 'ultimate-member' ),
- 'role' => __( 'Roles', 'ultimate-member' ),
- 'birth_date' => __( 'Age', 'ultimate-member' ),
- 'last_login' => __( 'Last Login', 'ultimate-member' ),
- 'user_registered' => __( 'User Registered', 'ultimate-member' ),
- 'first_name' => __( 'First Name', 'ultimate-member' ),
- 'last_name' => __( 'Last Name', 'ultimate-member' ),
- 'nickname' => __( 'Nickname', 'ultimate-member' ),
- 'secondary_user_email' => __( 'Secondary Email Address', 'ultimate-member' ),
- 'description' => __( 'Biography', 'ultimate-member' ),
- 'phone_number' => __( 'Phone Number', 'ultimate-member' ),
- 'mobile_number' => __( 'Mobile Number', 'ultimate-member' ),
- 'role_select' => __( 'Roles (Dropdown)', 'ultimate-member' ),
- 'role_radio' => __( 'Roles (Radio)', 'ultimate-member' ),
- 'whatsapp' => __( 'WhatsApp number', 'ultimate-member' ),
- 'facebook' => __( 'Facebook', 'ultimate-member' ),
- 'twitter' => __( 'X (formerly Twitter)', 'ultimate-member' ),
- 'viber' => __( 'Viber number', 'ultimate-member' ),
- 'skype' => __( 'Skype ID', 'ultimate-member' ),
- 'telegram' => __( 'Telegram', 'ultimate-member' ),
- 'discord' => __( 'Discord', 'ultimate-member' ),
- 'youtube' => __( 'Youtube', 'ultimate-member' ),
- 'soundcloud' => __( 'SoundCloud', 'ultimate-member' ),
- 'user_registered_desc' => __( 'New users first', 'ultimate-member' ),
- 'user_registered_asc' => __( 'Old users first', 'ultimate-member' ),
- 'username' => __( 'Username', 'ultimate-member' ),
- 'display_name' => __( 'Display name', 'ultimate-member' ),
- 'last_first_name' => __( 'Last & First name', 'ultimate-member' ),
- 'random' => __( 'Random', 'ultimate-member' ),
- 'other' => __( 'Other (Custom Field)', 'ultimate-member' ),
- );
-
- $info['ultimate-member-directories'] = array(
- 'label' => __( 'Ultimate Member Directories', 'ultimate-member' ),
- 'description' => __( 'This debug information about Ultimate Member directories.', 'ultimate-member' ),
- 'fields' => array(
- 'um-directory' => array(
- 'label' => __( 'Member directories', 'ultimate-member' ),
- 'value' => ! empty( $this->get_member_directories() ) ? $this->get_member_directories() : $labels['no-dir'],
- ),
- ),
- );
-
- if ( ! empty( $this->get_member_directories() ) ) {
- foreach ( $this->get_member_directories() as $key => $directory ) {
- if ( 0 === strpos( $key, 'ID#' ) ) {
- $key = substr( $key, 3 );
- }
-
- $_um_view_types_value = get_post_meta( $key, '_um_view_types', true );
- $_um_view_types_value = empty( $_um_view_types_value ) ? array( 'grid', 'list' ) : $_um_view_types_value;
- $_um_view_types_value = is_string( $_um_view_types_value ) ? array( $_um_view_types_value ) : $_um_view_types_value;
-
- $info[ 'ultimate-member-directory-' . $key ] = array(
- 'label' => ' - ' . $directory . __( ' directory settings', 'ultimate-member' ),
- 'description' => __( 'This debug information for your Ultimate Member directory.', 'ultimate-member' ),
- 'fields' => array(
- 'um-directory-shortcode' => array(
- 'label' => __( 'Shortcode', 'ultimate-member' ),
- 'value' => '[ultimatemember_directory id="' . $key . '"]',
- ),
- 'um-directory_template' => array(
- 'label' => __( 'Template', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_directory_template', true ) ? get_post_meta( $key, '_um_directory_template', true ) : $labels['default'],
- ),
- 'um-directory-view_types' => array(
- 'label' => __( 'View types', 'ultimate-member' ),
- 'value' => implode( ', ', $_um_view_types_value ),
- ),
- 'um-directory-default_view' => array(
- 'label' => __( 'Default view type', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_default_view', true ),
- ),
- ),
- );
-
- if ( isset( $options[ get_post_meta( $key, '_um_sortby', true ) ] ) ) {
- $sortby_label = $options[ get_post_meta( $key, '_um_sortby', true ) ];
- } else {
- $sortby_label = get_post_meta( $key, '_um_sortby', true );
- }
-
- $directory_roles_meta = get_post_meta( $key, '_um_roles', true );
- $directory_roles = array();
- if ( ! empty( $directory_roles_meta ) ) {
- if ( is_string( $directory_roles_meta ) ) {
- $directory_roles = array( $directory_roles_meta );
- } else {
- $directory_roles = $directory_roles_meta;
- }
- }
-
- $directory_show_these_users_meta = get_post_meta( $key, '_um_show_these_users', true );
- $show_these_users = array();
- if ( ! empty( $directory_show_these_users_meta ) ) {
- if ( is_string( $directory_show_these_users_meta ) ) {
- $show_these_users = array( $directory_show_these_users_meta );
- } else {
- $show_these_users = $directory_show_these_users_meta;
- }
- }
-
- $directory_exclude_these_users_meta = get_post_meta( $key, '_um_exclude_these_users', true );
- $exclude_these_users = array();
- if ( ! empty( $directory_exclude_these_users_meta ) ) {
- if ( is_string( $directory_exclude_these_users_meta ) ) {
- $exclude_these_users = array( $directory_exclude_these_users_meta );
- } else {
- $exclude_these_users = $directory_exclude_these_users_meta;
- }
- }
-
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-roles' => array(
- 'label' => __( 'User Roles to display', 'ultimate-member' ),
- 'value' => ! empty( $directory_roles ) ? implode( ', ', $directory_roles ) : $labels['all'],
- ),
- 'um-directory-has_profile_photo' => array(
- 'label' => __( 'Only show members who have uploaded a profile photo', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_has_profile_photo', true ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-directory-has_cover_photo' => array(
- 'label' => __( 'Only show members who have uploaded a profile photo', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_has_cover_photo', true ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-directory-show_these_users' => array(
- 'label' => __( 'Only show specific users (Enter one username per line)', 'ultimate-member' ),
- 'value' => ! empty( $show_these_users ) ? implode( ', ', $show_these_users ) : '',
- ),
- 'um-directory-exclude_these_users' => array(
- 'label' => __( 'Exclude specific users (Enter one username per line)', 'ultimate-member' ),
- 'value' => ! empty( $exclude_these_users ) ? implode( ', ', $exclude_these_users ) : '',
- ),
- )
- );
-
- $info = apply_filters( 'um_debug_member_directory_general_extend', $info, $key );
-
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-sortby' => array(
- 'label' => __( 'Default sort users by', 'ultimate-member' ),
- 'value' => $sortby_label,
- ),
- )
- );
-
- if ( 'other' === get_post_meta( $key, '_um_sortby', true ) ) {
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-enable_sorting' => array(
- 'label' => __( 'Enable custom sorting', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_enable_sorting', true ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-directory-sortby_custom' => array(
- 'label' => __( 'Custom sorting meta key', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_sortby_custom', true ),
- ),
- 'um-directory-sortby_custom_label' => array(
- 'label' => __( 'Label of custom sort', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_sortby_custom_label', true ),
- ),
- )
- );
- }
-
- if ( 1 === absint( get_post_meta( $key, '_um_enable_sorting', true ) ) ) {
- $sorting_fields = get_post_meta( $key, '_um_sorting_fields', true );
- if ( ! empty( $sorting_fields ) ) {
- foreach ( $sorting_fields as $k => $field ) {
- if ( is_array( $field ) ) {
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-sorting_fields-' . $k => array(
- 'label' => __( 'Field(s) to enable in sorting', 'ultimate-member' ),
- 'value' => __( 'Label: ', 'ultimate-member' ) . array_values( $field )[0] . ' | ' . __( 'Meta key: ', 'ultimate-member' ) . stripslashes( array_keys( $field )[0] ),
- ),
- )
- );
- } else {
- $sortby_label = isset( $options[ $field ] ) ? $options[ $field ] : $field;
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-sorting_fields-' . $k => array(
- 'label' => __( 'Field to enable in sorting', 'ultimate-member' ),
- 'value' => $sortby_label,
- ),
- )
- );
- }
- }
- }
- }
-
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-profile_photo' => array(
- 'label' => __( 'Enable Profile Photo', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_profile_photo', true ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-directory-cover_photos' => array(
- 'label' => __( 'Enable Cover Photo', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_cover_photos', true ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-directory-show_name' => array(
- 'label' => __( 'Show display name', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_show_name', true ) ? $labels['yes'] : $labels['no'],
- ),
- )
- );
-
- $info = apply_filters( 'um_debug_member_directory_profile_extend', $info, $key );
-
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-show_tagline' => array(
- 'label' => __( 'Show tagline below profile name', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_show_tagline', true ) ? $labels['yes'] : $labels['no'],
- ),
- )
- );
-
- if ( 1 === absint( get_post_meta( $key, '_um_show_tagline', true ) ) ) {
- $tagline_fields = get_post_meta( $key, '_um_tagline_fields', true );
- if ( ! empty( $tagline_fields ) && is_array( $tagline_fields ) ) {
- foreach ( $tagline_fields as $k => $field ) {
- $label = isset( $options[ $field ] ) ? $options[ $field ] : $field;
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-tagline_fields-' . $k => array(
- 'label' => __( 'Field to display in tagline', 'ultimate-member' ),
- 'value' => $label,
- ),
- )
- );
- }
- }
- }
-
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-show_userinfo' => array(
- 'label' => __( 'Show extra user information below tagline?', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_show_userinfo', true ) ? $labels['yes'] : $labels['no'],
- ),
- )
- );
-
- if ( 1 === absint( get_post_meta( $key, '_um_show_userinfo', true ) ) ) {
- $reveal_fields = get_post_meta( $key, '_um_reveal_fields', true );
- if ( ! empty( $reveal_fields ) && is_array( $reveal_fields ) ) {
- foreach ( $reveal_fields as $k => $field ) {
- $label = isset( $options[ $field ] ) ? $options[ $field ] : $field;
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-reveal_fields-' . $k => array(
- 'label' => __( 'Field to display in extra user information section', 'ultimate-member' ),
- 'value' => $label,
- ),
- )
- );
- }
- }
- }
-
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-show_social' => array(
- 'label' => __( 'Show social connect icons in extra user information section', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_show_social', true ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-directory-search' => array(
- 'label' => __( 'Enable Search feature', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_search', true ) ? $labels['yes'] : $labels['no'],
- ),
- )
- );
-
- if ( 1 === absint( get_post_meta( $key, '_um_search', true ) ) ) {
- $directory_roles_can_search_meta = get_post_meta( $key, '_um_roles_can_search', true );
- $roles_can_search = array();
- if ( ! empty( $directory_roles_can_search_meta ) ) {
- if ( is_string( $directory_roles_can_search_meta ) ) {
- $roles_can_search = array( $directory_roles_can_search_meta );
- } else {
- $roles_can_search = $directory_roles_can_search_meta;
- }
- }
-
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-roles_can_search' => array(
- 'label' => __( 'User Roles that can use search', 'ultimate-member' ),
- 'value' => ! empty( $roles_can_search ) ? implode( ', ', $roles_can_search ) : $labels['all'],
- ),
- )
- );
- }
-
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-filters' => array(
- 'label' => __( 'Enable Filters feature', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_filters', true ) ? $labels['yes'] : $labels['no'],
- ),
- )
- );
-
- if ( 1 === absint( get_post_meta( $key, '_um_filters', true ) ) ) {
- $directory_roles_can_filter_meta = get_post_meta( $key, '_um_roles_can_filter', true );
- $roles_can_filter = array();
- if ( ! empty( $directory_roles_can_filter_meta ) ) {
- if ( is_string( $directory_roles_can_filter_meta ) ) {
- $roles_can_filter = array( $directory_roles_can_filter_meta );
- } else {
- $roles_can_filter = $directory_roles_can_filter_meta;
- }
- }
-
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-roles_can_filter' => array(
- 'label' => __( 'User Roles that can use filters', 'ultimate-member' ),
- 'value' => ! empty( $roles_can_filter ) ? implode( ', ', $roles_can_filter ) : $labels['all'],
- ),
- )
- );
-
- $search_fields = get_post_meta( $key, '_um_search_fields', true );
- if ( ! empty( $search_fields ) && is_array( $search_fields ) ) {
- foreach ( $search_fields as $k => $field ) {
- $label = isset( $options[ $field ] ) ? $options[ $field ] : $field;
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-search_fields-' . $k => array(
- 'label' => __( 'Filter meta to enable', 'ultimate-member' ),
- 'value' => $label,
- ),
- )
- );
- }
- }
- }
-
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-filters_expanded' => array(
- 'label' => __( 'Expand the filter bar by default', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_filters_expanded', true ) ? $labels['yes'] : $labels['no'],
- ),
- )
- );
-
- if ( 1 === absint( get_post_meta( $key, '_um_filters_expanded', true ) ) ) {
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-filters_is_collapsible' => array(
- 'label' => __( 'Can filter bar be collapsed', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_filters_is_collapsible', true ) ? $labels['yes'] : $labels['no'],
- ),
- )
- );
- }
-
- $search_filters = get_post_meta( $key, '_um_search_filters', true );
- if ( ! empty( $search_filters ) && is_array( $search_filters ) ) {
- foreach ( $search_filters as $k => $field ) {
- $label = isset( $options[ $k ] ) ? $options[ $k ] : $k;
- $value = $field;
- if ( is_array( $field ) ) {
- $value = __( 'From ', 'ultimate-member' ) . $field[0] . __( ' to ', 'ultimate-member' ) . $field[1];
- }
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-search_filters-' . $k => array(
- 'label' => __( 'Admin filtering', 'ultimate-member' ),
- 'value' => $label . ' - ' . $value,
- ),
- )
- );
- }
- }
-
- $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
- $info[ 'ultimate-member-directory-' . $key ]['fields'],
- array(
- 'um-directory-must_search' => array(
- 'label' => __( 'Show results only after search/filtration', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_must_search', true ) ? $labels['yes'] : $labels['no'],
- ),
- 'um-directory-max_users' => array(
- 'label' => __( 'Maximum number of profiles', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_max_users', true ),
- ),
- 'um-directory-profiles_per_page' => array(
- 'label' => __( 'Number of profiles per page', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_profiles_per_page', true ),
- ),
- 'um-directory-profiles_per_page_mobile' => array(
- 'label' => __( 'Maximum number of profiles', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_profiles_per_page_mobile', true ),
- ),
- 'um-directory-directory_header' => array(
- 'label' => __( 'Results Text', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_directory_header', true ),
- ),
- 'um-directory-directory_header_single' => array(
- 'label' => __( 'Single Result Text', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_directory_header_single', true ),
- ),
- 'um-directory-directory_no_users' => array(
- 'label' => __( 'Custom text if no users were found', 'ultimate-member' ),
- 'value' => get_post_meta( $key, '_um_directory_no_users', true ),
- ),
- )
- );
-
- $info = apply_filters( 'um_debug_member_directory_extend', $info, $key );
- }
- }
+ // Members directory sitehealth
+ $info = $this->get_member_directories_sitehealth( $info );
/**
* Filters the site health information.
@@ -2704,4 +1375,1454 @@ class Site_Health {
return $appearance_settings;
}
+
+ public function advanced_sitehealth() {
+ $labels = self::get_labels();
+
+ $general = array(
+ 'um-advanced_separator' => array(
+ 'label' => __( 'Advanced settings', 'ultimate-member' ),
+ 'value' => '---------------------------------------------------------------------',
+ ),
+ 'um-form_asterisk' => array(
+ 'label' => __( 'Required fields\' asterisk (Show an asterisk for required fields)', 'ultimate-member' ),
+ 'value' => UM()->options()->get( 'form_asterisk' ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-um_profile_object_cache_stop' => array(
+ 'label' => __( 'Disable Cache User Profile', 'ultimate-member' ),
+ 'value' => UM()->options()->get( 'um_profile_object_cache_stop' ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-uninstall_on_delete' => array(
+ 'label' => __( 'Remove Data on Uninstall?', 'ultimate-member' ),
+ 'value' => UM()->options()->get( 'uninstall_on_delete' ) ? $labels['yes'] : $labels['no'],
+ ),
+ );
+
+ $feature = array(
+ 'um-enable_blocks' => array(
+ 'label' => __( 'Enable Gutenberg Blocks', 'ultimate-member' ),
+ 'value' => UM()->options()->get( 'enable_blocks' ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-member_directory_own_table' => array(
+ 'label' => __( 'Enable custom table for usermeta', 'ultimate-member' ),
+ 'value' => UM()->options()->get( 'member_directory_own_table' ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-enable_as_email_sending' => array(
+ 'label' => __( 'Email sending by Action Scheduler', 'ultimate-member' ),
+ 'value' => UM()->options()->get( 'enable_as_email_sending' ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-disable_restriction_pre_queries' => array(
+ 'label' => __( 'Disable pre-queries for restriction content logic (advanced)', 'ultimate-member' ),
+ 'value' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? $labels['yes'] : $labels['no'],
+ ),
+ );
+
+ // Secure settings
+ $secure_ban_admins_accounts = UM()->options()->get( 'secure_ban_admins_accounts' );
+
+ $banned_capabilities_opt = UM()->options()->get( 'banned_capabilities' );
+ $banned_capabilities = array();
+ if ( ! empty( $banned_capabilities_opt ) ) {
+ if ( is_string( $banned_capabilities_opt ) ) {
+ $banned_capabilities = array( $banned_capabilities_opt );
+ } else {
+ $banned_capabilities = $banned_capabilities_opt;
+ }
+ }
+
+ $secure_settings = array(
+ 'um-banned_capabilities' => array(
+ 'label' => __( 'Banned Administrative Capabilities', 'ultimate-member' ),
+ 'value' => ! empty( $banned_capabilities ) ? implode( ', ', $banned_capabilities ) : '',
+ ),
+ 'um-lock_register_forms' => array(
+ 'label' => __( 'Lock All Register Forms', 'ultimate-member' ),
+ 'value' => UM()->options()->get( 'lock_register_forms' ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-display_login_form_notice' => array(
+ 'label' => __( 'Display Login form notice to reset passwords', 'ultimate-member' ),
+ 'value' => UM()->options()->get( 'display_login_form_notice' ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-secure_ban_admins_accounts' => array(
+ 'label' => __( 'Administrative capabilities ban (enable ban for administrative capabilities)', 'ultimate-member' ),
+ 'value' => $secure_ban_admins_accounts ? $labels['yes'] : $labels['no'],
+ ),
+ );
+ if ( ! empty( $secure_ban_admins_accounts ) ) {
+ $secure_notify_admins_banned_accounts = UM()->options()->get( 'secure_notify_admins_banned_accounts' );
+
+ $secure_settings['um-secure_notify_admins_banned_accounts'] = array(
+ 'label' => __( 'Notify Administrators', 'ultimate-member' ),
+ 'value' => $secure_notify_admins_banned_accounts ? $labels['yes'] : $labels['no'],
+ );
+ if ( ! empty( $secure_notify_admins_banned_accounts ) ) {
+ $secure_notify_admins_banned_accounts_options = array(
+ 'instant' => __( 'Send Immediately', 'ultimate-member' ),
+ 'hourly' => __( 'Hourly', 'ultimate-member' ),
+ 'daily' => __( 'Daily', 'ultimate-member' ),
+ );
+
+ $secure_settings['um-secure_notify_admins_banned_accounts__interval'] = array(
+ 'label' => __( 'Notification Schedule', 'ultimate-member' ),
+ 'value' => $secure_notify_admins_banned_accounts_options[ UM()->options()->get( 'secure_notify_admins_banned_accounts__interval' ) ],
+ );
+ }
+ }
+
+ $secure_allowed_redirect_hosts = UM()->options()->get( 'secure_allowed_redirect_hosts' );
+ $secure_allowed_redirect_hosts = explode( PHP_EOL, $secure_allowed_redirect_hosts );
+
+ $secure_settings['um-secure_allowed_redirect_hosts'] = array(
+ 'label' => __( 'Allowed hosts for safe redirect', 'ultimate-member' ),
+ 'value' => $secure_allowed_redirect_hosts,
+ );
+
+ $developers = array(
+ 'um-allowed_choice_callbacks' => array(
+ 'label' => __( 'Allowed Choice Callbacks', 'ultimate-member' ),
+ 'value' => UM()->options()->get( 'allowed_choice_callbacks' ),
+ ),
+ 'um-rest_api_version' => array(
+ 'label' => __( 'REST API version', 'ultimate-member' ),
+ 'value' => UM()->options()->get( 'rest_api_version' ),
+ ),
+ 'um-allow_url_redirect_confirm' => array(
+ 'label' => __( 'Allow external link redirect confirm (enable JS.confirm for external links)', 'ultimate-member' ),
+ 'value' => UM()->options()->get( 'allow_url_redirect_confirm' ) ? $labels['yes'] : $labels['no'],
+ ),
+ );
+
+ return array_merge( $general, $feature, $secure_settings, $developers );
+ }
+
+ public function license_sitehealth() {
+ // Licenses settings.
+ $license_settings = array(
+ 'um-licenses' => array(
+ 'label' => __( 'Licenses', 'ultimate-member' ),
+ 'value' => array(),
+ ),
+ );
+
+ /**
+ * Filters licenses settings for Site Health.
+ *
+ * @since 2.7.0
+ * @hook um_licenses_site_health
+ *
+ * @param {array} $license_settings licenses settings for Site Health.
+ *
+ * @return {array} licenses settings for Site Health.
+ *
+ * @example Extend licenses settings for Site Health.
+ * function um_licenses_site_health( $license_settings ) {
+ * // your code here
+ * return $license_settings;
+ * }
+ * add_filter( 'um_licenses_site_health', 'um_licenses_site_health', 10, 1 );
+ */
+ $license_settings = apply_filters( 'um_licenses_site_health', $license_settings );
+
+ return $license_settings;
+ }
+
+ public function get_member_directories_sitehealth( $info ) {
+ $labels = self::get_labels();
+ $options = array(
+ 'country' => __( 'Country', 'ultimate-member' ),
+ 'gender' => __( 'Gender', 'ultimate-member' ),
+ 'languages' => __( 'Languages', 'ultimate-member' ),
+ 'role' => __( 'Roles', 'ultimate-member' ),
+ 'birth_date' => __( 'Age', 'ultimate-member' ),
+ 'last_login' => __( 'Last Login', 'ultimate-member' ),
+ 'user_registered' => __( 'User Registered', 'ultimate-member' ),
+ 'first_name' => __( 'First Name', 'ultimate-member' ),
+ 'last_name' => __( 'Last Name', 'ultimate-member' ),
+ 'nickname' => __( 'Nickname', 'ultimate-member' ),
+ 'secondary_user_email' => __( 'Secondary Email Address', 'ultimate-member' ),
+ 'description' => __( 'Biography', 'ultimate-member' ),
+ 'phone_number' => __( 'Phone Number', 'ultimate-member' ),
+ 'mobile_number' => __( 'Mobile Number', 'ultimate-member' ),
+ 'role_select' => __( 'Roles (Dropdown)', 'ultimate-member' ),
+ 'role_radio' => __( 'Roles (Radio)', 'ultimate-member' ),
+ 'whatsapp' => __( 'WhatsApp number', 'ultimate-member' ),
+ 'facebook' => __( 'Facebook', 'ultimate-member' ),
+ 'twitter' => __( 'X (formerly Twitter)', 'ultimate-member' ),
+ 'viber' => __( 'Viber number', 'ultimate-member' ),
+ 'skype' => __( 'Skype ID', 'ultimate-member' ),
+ 'telegram' => __( 'Telegram', 'ultimate-member' ),
+ 'discord' => __( 'Discord', 'ultimate-member' ),
+ 'youtube' => __( 'Youtube', 'ultimate-member' ),
+ 'soundcloud' => __( 'SoundCloud', 'ultimate-member' ),
+ 'user_registered_desc' => __( 'New users first', 'ultimate-member' ),
+ 'user_registered_asc' => __( 'Old users first', 'ultimate-member' ),
+ 'username' => __( 'Username', 'ultimate-member' ),
+ 'display_name' => __( 'Display name', 'ultimate-member' ),
+ 'last_first_name' => __( 'Last & First name', 'ultimate-member' ),
+ 'random' => __( 'Random', 'ultimate-member' ),
+ 'other' => __( 'Other (Custom Field)', 'ultimate-member' ),
+ );
+
+ $info['ultimate-member-directories'] = array(
+ 'label' => __( 'Ultimate Member Directories', 'ultimate-member' ),
+ 'description' => __( 'This debug information about Ultimate Member directories.', 'ultimate-member' ),
+ 'fields' => array(
+ 'um-directory' => array(
+ 'label' => __( 'Member directories', 'ultimate-member' ),
+ 'value' => ! empty( $this->get_member_directories() ) ? $this->get_member_directories() : $labels['no-dir'],
+ ),
+ ),
+ );
+
+ if ( ! empty( $this->get_member_directories() ) ) {
+ foreach ( $this->get_member_directories() as $key => $directory ) {
+ if ( 0 === strpos( $key, 'ID#' ) ) {
+ $key = substr( $key, 3 );
+ }
+
+ $_um_view_types_value = get_post_meta( $key, '_um_view_types', true );
+ $_um_view_types_value = empty( $_um_view_types_value ) ? array( 'grid', 'list' ) : $_um_view_types_value;
+ $_um_view_types_value = is_string( $_um_view_types_value ) ? array( $_um_view_types_value ) : $_um_view_types_value;
+
+ $info[ 'ultimate-member-directory-' . $key ] = array(
+ 'label' => ' - ' . $directory . __( ' directory settings', 'ultimate-member' ),
+ 'description' => __( 'This debug information for your Ultimate Member directory.', 'ultimate-member' ),
+ 'fields' => array(
+ 'um-directory-shortcode' => array(
+ 'label' => __( 'Shortcode', 'ultimate-member' ),
+ 'value' => '[ultimatemember_directory id="' . $key . '"]',
+ ),
+ 'um-directory_template' => array(
+ 'label' => __( 'Template', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_directory_template', true ) ? get_post_meta( $key, '_um_directory_template', true ) : $labels['default'],
+ ),
+ 'um-directory-view_types' => array(
+ 'label' => __( 'View types', 'ultimate-member' ),
+ 'value' => implode( ', ', $_um_view_types_value ),
+ ),
+ 'um-directory-default_view' => array(
+ 'label' => __( 'Default view type', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_default_view', true ),
+ ),
+ ),
+ );
+
+ if ( isset( $options[ get_post_meta( $key, '_um_sortby', true ) ] ) ) {
+ $sortby_label = $options[ get_post_meta( $key, '_um_sortby', true ) ];
+ } else {
+ $sortby_label = get_post_meta( $key, '_um_sortby', true );
+ }
+
+ $directory_roles_meta = get_post_meta( $key, '_um_roles', true );
+ $directory_roles = array();
+ if ( ! empty( $directory_roles_meta ) ) {
+ if ( is_string( $directory_roles_meta ) ) {
+ $directory_roles = array( $directory_roles_meta );
+ } else {
+ $directory_roles = $directory_roles_meta;
+ }
+ }
+
+ $directory_show_these_users_meta = get_post_meta( $key, '_um_show_these_users', true );
+ $show_these_users = array();
+ if ( ! empty( $directory_show_these_users_meta ) ) {
+ if ( is_string( $directory_show_these_users_meta ) ) {
+ $show_these_users = array( $directory_show_these_users_meta );
+ } else {
+ $show_these_users = $directory_show_these_users_meta;
+ }
+ }
+
+ $directory_exclude_these_users_meta = get_post_meta( $key, '_um_exclude_these_users', true );
+ $exclude_these_users = array();
+ if ( ! empty( $directory_exclude_these_users_meta ) ) {
+ if ( is_string( $directory_exclude_these_users_meta ) ) {
+ $exclude_these_users = array( $directory_exclude_these_users_meta );
+ } else {
+ $exclude_these_users = $directory_exclude_these_users_meta;
+ }
+ }
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-roles' => array(
+ 'label' => __( 'User Roles to display', 'ultimate-member' ),
+ 'value' => ! empty( $directory_roles ) ? implode( ', ', $directory_roles ) : $labels['all'],
+ ),
+ 'um-directory-has_profile_photo' => array(
+ 'label' => __( 'Only show members who have uploaded a profile photo', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_has_profile_photo', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-directory-has_cover_photo' => array(
+ 'label' => __( 'Only show members who have uploaded a cover photo', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_has_cover_photo', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-directory-show_these_users' => array(
+ 'label' => __( 'Only show specific users', 'ultimate-member' ),
+ 'value' => ! empty( $show_these_users ) ? implode( ', ', $show_these_users ) : '',
+ ),
+ 'um-directory-exclude_these_users' => array(
+ 'label' => __( 'Exclude specific users', 'ultimate-member' ),
+ 'value' => ! empty( $exclude_these_users ) ? implode( ', ', $exclude_these_users ) : '',
+ ),
+ )
+ );
+
+ $info = apply_filters( 'um_debug_member_directory_general_extend', $info, $key );
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-sortby' => array(
+ 'label' => __( 'Default sort users by', 'ultimate-member' ),
+ 'value' => $sortby_label,
+ ),
+ )
+ );
+
+ if ( 'other' === get_post_meta( $key, '_um_sortby', true ) ) {
+ $sort_type_opts = array(
+ 'CHAR' => __( 'CHAR', 'ultimate-member' ),
+ 'NUMERIC' => __( 'NUMERIC', 'ultimate-member' ),
+ 'BINARY' => __( 'BINARY', 'ultimate-member' ),
+ 'DATE' => __( 'DATE', 'ultimate-member' ),
+ 'DATETIME' => __( 'DATETIME', 'ultimate-member' ),
+ 'DECIMAL' => __( 'DECIMAL', 'ultimate-member' ),
+ 'SIGNED' => __( 'SIGNED', 'ultimate-member' ),
+ 'TIME' => __( 'TIME', 'ultimate-member' ),
+ 'UNSIGNED' => __( 'UNSIGNED', 'ultimate-member' ),
+ );
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-sortby_custom' => array(
+ 'label' => __( 'Meta key', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_sortby_custom', true ),
+ ),
+ 'um-directory-um_sortby_custom_type' => array(
+ 'label' => __( 'Data type', 'ultimate-member' ),
+ 'value' => $sort_type_opts[ get_post_meta( $key, '_um_sortby_custom_type', true ) ],
+ ),
+ 'um-directory-um_sortby_custom_order' => array(
+ 'label' => __( 'Order', 'ultimate-member' ),
+ 'value' => 'ASC' === get_post_meta( $key, '_um_sortby_custom_order', true ) ? __( 'Ascending', 'ultimate-member' ) : __( 'Descending', 'ultimate-member' ),
+ ),
+ 'um-directory-sortby_custom_label' => array(
+ 'label' => __( 'Label of custom sort', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_sortby_custom_label', true ),
+ ),
+ )
+ );
+ }
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-enable_sorting' => array(
+ 'label' => __( 'Enable custom sorting', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_enable_sorting', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+
+ if ( 1 === absint( get_post_meta( $key, '_um_enable_sorting', true ) ) ) {
+ $sorting_fields = get_post_meta( $key, '_um_sorting_fields', true );
+ if ( ! empty( $sorting_fields ) ) {
+ foreach ( $sorting_fields as $k => $field ) {
+ if ( is_array( $field ) ) {
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-sorting_fields-' . $k => array(
+ 'label' => __( 'Field(s) to enable in sorting', 'ultimate-member' ),
+ 'value' => __( 'Label: ', 'ultimate-member' ) . array_values( $field )[0] . ' | ' . __( 'Meta key: ', 'ultimate-member' ) . stripslashes( array_keys( $field )[0] ),
+ ),
+ )
+ );
+ } else {
+ $sortby_label = isset( $options[ $field ] ) ? $options[ $field ] : $field;
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-sorting_fields-' . $k => array(
+ 'label' => __( 'Field to enable in sorting', 'ultimate-member' ),
+ 'value' => $sortby_label,
+ ),
+ )
+ );
+ }
+ }
+ }
+ }
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-search' => array(
+ 'label' => __( 'Enable Search feature', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_search', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+
+ if ( 1 === absint( get_post_meta( $key, '_um_search', true ) ) ) {
+ $directory_roles_can_search_meta = get_post_meta( $key, '_um_roles_can_search', true );
+ $roles_can_search = array();
+ if ( ! empty( $directory_roles_can_search_meta ) ) {
+ if ( is_string( $directory_roles_can_search_meta ) ) {
+ $roles_can_search = array( $directory_roles_can_search_meta );
+ } else {
+ $roles_can_search = $directory_roles_can_search_meta;
+ }
+ }
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-roles_can_search' => array(
+ 'label' => __( 'User Roles that can use search', 'ultimate-member' ),
+ 'value' => ! empty( $roles_can_search ) ? implode( ', ', $roles_can_search ) : $labels['all'],
+ ),
+ )
+ );
+ }
+
+ if ( ! empty( get_post_meta( $key, '_um_search_exclude_fields', true ) ) ) {
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-um_search_exclude_fields' => array(
+ 'label' => __( 'Exclude fields from search', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_search_exclude_fields', true ),
+ ),
+ )
+ );
+ }
+
+ if ( ! empty( get_post_meta( $key, '_um_search_include_fields', true ) ) ) {
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-um_search_include_fields' => array(
+ 'label' => __( 'Fields to search by', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_search_include_fields', true ),
+ ),
+ )
+ );
+ }
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-filters' => array(
+ 'label' => __( 'Enable Filters feature', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_filters', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+
+ if ( 1 === absint( get_post_meta( $key, '_um_filters', true ) ) ) {
+ $directory_roles_can_filter_meta = get_post_meta( $key, '_um_roles_can_filter', true );
+ $roles_can_filter = array();
+ if ( ! empty( $directory_roles_can_filter_meta ) ) {
+ if ( is_string( $directory_roles_can_filter_meta ) ) {
+ $roles_can_filter = array( $directory_roles_can_filter_meta );
+ } else {
+ $roles_can_filter = $directory_roles_can_filter_meta;
+ }
+ }
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-roles_can_filter' => array(
+ 'label' => __( 'User Roles that can use filters', 'ultimate-member' ),
+ 'value' => ! empty( $roles_can_filter ) ? implode( ', ', $roles_can_filter ) : $labels['all'],
+ ),
+ )
+ );
+
+ $search_fields = get_post_meta( $key, '_um_search_fields', true );
+ if ( ! empty( $search_fields ) && is_array( $search_fields ) ) {
+ $field_labels = array();
+ foreach ( $search_fields as $k => $field ) {
+ $field_label = isset( $options[ $field ] ) ? $options[ $field ] : $field;
+ $field_labels[] = $field_label;
+ }
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-search_fields-' . $k => array(
+ 'label' => __( 'Filter meta to enable', 'ultimate-member' ),
+ 'value' => $field_labels,
+ ),
+ )
+ );
+ }
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-filters_expanded' => array(
+ 'label' => __( 'Expand the filter bar by default', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_filters_expanded', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+
+ if ( 1 === absint( get_post_meta( $key, '_um_filters_expanded', true ) ) ) {
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-filters_is_collapsible' => array(
+ 'label' => __( 'Can filter bar be collapsed', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_filters_is_collapsible', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+ }
+ }
+
+ $search_filters = get_post_meta( $key, '_um_search_filters', true );
+ if ( ! empty( $search_filters ) && is_array( $search_filters ) ) {
+ $field_labels = array();
+ foreach ( $search_filters as $k => $field ) {
+ $field_label = isset( $options[ $k ] ) ? $options[ $k ] : $k;
+ $value = $field;
+ if ( is_array( $field ) ) {
+ // @todo: check if field 'From' and 'To' is set. $value = __( 'From ', 'ultimate-member' ) . $field[0] . __( ' to ', 'ultimate-member' ) . $field[1];
+ $value = implode( ', ', $field );
+ }
+ $field_labels[] = $field_label . ' - ' . $value;
+ }
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-search_filters-' . $k => array(
+ 'label' => __( 'Admin filtering', 'ultimate-member' ),
+ 'value' => $field_labels,
+ ),
+ )
+ );
+ }
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-profile_photo' => array(
+ 'label' => __( 'Enable Profile Photo', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_profile_photo', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-directory-cover_photos' => array(
+ 'label' => __( 'Enable Cover Photo', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_cover_photos', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-directory-show_name' => array(
+ 'label' => __( 'Show display name', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_show_name', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+
+ $info = apply_filters( 'um_debug_member_directory_profile_extend', $info, $key );
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-show_tagline' => array(
+ 'label' => __( 'Show tagline below profile name', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_show_tagline', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+
+ if ( 1 === absint( get_post_meta( $key, '_um_show_tagline', true ) ) ) {
+ $tagline_fields = get_post_meta( $key, '_um_tagline_fields', true );
+ if ( ! empty( $tagline_fields ) && is_array( $tagline_fields ) ) {
+ $field_labels = array();
+ foreach ( $tagline_fields as $k => $field ) {
+ $label = isset( $options[ $field ] ) ? $options[ $field ] : $field;
+ $field_labels[] = $label;
+ }
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-tagline_fields-' . $k => array(
+ 'label' => __( 'Field to display in tagline', 'ultimate-member' ),
+ 'value' => $field_labels,
+ ),
+ )
+ );
+ }
+ }
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-show_userinfo' => array(
+ 'label' => __( 'Show extra user information below tagline?', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_show_userinfo', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+
+ if ( 1 === absint( get_post_meta( $key, '_um_show_userinfo', true ) ) ) {
+ $reveal_fields = get_post_meta( $key, '_um_reveal_fields', true );
+ if ( ! empty( $reveal_fields ) && is_array( $reveal_fields ) ) {
+ $field_labels = array();
+ foreach ( $reveal_fields as $k => $field ) {
+ $label = isset( $options[ $field ] ) ? $options[ $field ] : $field;
+ $field_labels[] = $label;
+ }
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-reveal_fields-' . $k => array(
+ 'label' => __( 'Field to display in extra user information section', 'ultimate-member' ),
+ 'value' => $field_labels,
+ ),
+ )
+ );
+ }
+ }
+
+ $info[ 'ultimate-member-directory-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-directory-' . $key ]['fields'],
+ array(
+ 'um-directory-show_social' => array(
+ 'label' => __( 'Show social connect icons in extra user information section', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_show_social', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-directory-um_userinfo_animate' => array(
+ 'label' => __( 'Hide extra user information to the reveal section', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_userinfo_animate', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-directory-must_search' => array(
+ 'label' => __( 'Show results only after search/filtration', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_must_search', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-directory-max_users' => array(
+ 'label' => __( 'Maximum number of profiles', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_max_users', true ),
+ ),
+ 'um-directory-profiles_per_page' => array(
+ 'label' => __( 'Number of profiles per page', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_profiles_per_page', true ),
+ ),
+ 'um-directory-profiles_per_page_mobile' => array(
+ 'label' => __( 'Maximum number of profiles', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_profiles_per_page_mobile', true ),
+ ),
+ 'um-directory-directory_header' => array(
+ 'label' => __( 'Results Text', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_directory_header', true ),
+ ),
+ 'um-directory-directory_header_single' => array(
+ 'label' => __( 'Single Result Text', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_directory_header_single', true ),
+ ),
+ 'um-directory-directory_no_users' => array(
+ 'label' => __( 'Custom text if no users were found', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_directory_no_users', true ),
+ ),
+ )
+ );
+
+ $info = apply_filters( 'um_debug_member_directory_extend', $info, $key );
+ }
+ }
+
+ return $info;
+ }
+
+ public function roles_sitehealth( $info ) {
+ $labels = self::get_labels();
+
+ // User roles settings
+ $roles_array = array();
+ foreach ( $this->get_roles() as $key => $role ) {
+ if ( strpos( $key, 'um_' ) === 0 ) {
+ $key = substr( $key, 3 );
+ }
+ $rolemeta = $this->get_role_meta( $key );
+ if ( false === $rolemeta ) {
+ continue;
+ }
+ $priority = ! empty( $rolemeta['_um_priority'] ) ? $rolemeta['_um_priority'] : 0;
+
+ $k = $priority . '-' . $role;
+ $roles_array[ $k ] = $role . '(' . $priority . ')';
+
+ krsort( $roles_array, SORT_NUMERIC );
+ }
+
+ $info['ultimate-member-user-roles'] = array(
+ 'label' => __( 'User roles', 'ultimate-member' ),
+ 'description' => __( 'This debug information about user roles.', 'ultimate-member' ),
+ 'fields' => array(
+ 'um-roles' => array(
+ 'label' => __( 'User Roles (priority)', 'ultimate-member' ),
+ 'value' => implode( ', ', $roles_array ),
+ ),
+ 'um-register_role' => array(
+ 'label' => __( 'WordPress Default New User Role', 'ultimate-member' ),
+ 'value' => get_option( 'default_role' ),
+ ),
+ ),
+ );
+
+ foreach ( $this->get_roles() as $key => $role ) {
+ if ( strpos( $key, 'um_' ) === 0 ) {
+ $key = substr( $key, 3 );
+ }
+
+ $rolemeta = $this->get_role_meta( $key );
+ if ( false === $rolemeta ) {
+ continue;
+ }
+
+ $info[ 'ultimate-member-' . $key ] = array(
+ 'label' => ' - ' . $role . __( ' role settings', 'ultimate-member' ),
+ 'description' => __( 'This debug information about user role.', 'ultimate-member' ),
+ 'fields' => array(),
+ );
+
+ if ( array_key_exists( '_um_can_access_wpadmin', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-can_access_wpadmin' => array(
+ 'label' => __( 'Can access wp-admin?', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_can_access_wpadmin'] ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+ }
+
+ if ( array_key_exists( '_um_can_not_see_adminbar', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-can_not_see_adminbar' => array(
+ 'label' => __( 'Force hiding adminbar in frontend?', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_can_not_see_adminbar'] ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+ }
+
+ if ( array_key_exists( '_um_can_edit_everyone', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-can_edit_everyone' => array(
+ 'label' => __( 'Can edit other member accounts?', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_can_edit_everyone'] ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+ }
+
+ if ( array_key_exists( '_um_can_edit_everyone', $rolemeta ) && 1 === absint( $rolemeta['_um_can_edit_everyone'] ) ) {
+ $can_edit_roles_meta = ! empty( $rolemeta['_um_can_edit_roles'] ) ? $rolemeta['_um_can_edit_roles'] : array();
+ $can_edit_roles = array();
+ if ( ! empty( $can_edit_roles_meta ) ) {
+ if ( is_string( $can_edit_roles_meta ) ) {
+ $can_edit_roles = array( $can_edit_roles_meta );
+ } else {
+ $can_edit_roles = $can_edit_roles_meta;
+ }
+ }
+
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-can_edit_roles' => array(
+ 'label' => __( 'Can edit these user roles only', 'ultimate-member' ),
+ 'value' => ! empty( $can_edit_roles ) ? implode( ', ', $can_edit_roles ) : $labels['all'],
+ ),
+ )
+ );
+ }
+
+ if ( array_key_exists( '_um_can_delete_everyone', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-can_delete_everyone' => array(
+ 'label' => __( 'Can delete other member accounts?', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_can_delete_everyone'] ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+ }
+
+ if ( array_key_exists( '_um_can_delete_everyone', $rolemeta ) && 1 === absint( $rolemeta['_um_can_delete_everyone'] ) ) {
+ $can_delete_roles_meta = ! empty( $rolemeta['_um_can_delete_roles'] ) ? $rolemeta['_um_can_delete_roles'] : array();
+ $can_delete_roles = array();
+ if ( ! empty( $can_delete_roles_meta ) ) {
+ if ( is_string( $can_delete_roles_meta ) ) {
+ $can_delete_roles = array( $can_delete_roles_meta );
+ } else {
+ $can_delete_roles = $can_delete_roles_meta;
+ }
+ }
+
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-can_delete_roles' => array(
+ 'label' => __( 'Can delete these user roles only', 'ultimate-member' ),
+ 'value' => ! empty( $can_delete_roles ) ? implode( ', ', $can_delete_roles ) : $labels['all'],
+ ),
+ )
+ );
+ }
+
+ if ( array_key_exists( '_um_can_edit_profile', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-can_edit_profile' => array(
+ 'label' => __( 'Can edit their profile?', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_can_edit_profile'] ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+ }
+
+ if ( array_key_exists( '_um_can_delete_profile', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-can_delete_profile' => array(
+ 'label' => __( 'Can delete their account?', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_can_delete_profile'] ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+ }
+
+ if ( array_key_exists( '_um_can_view_all', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-can_view_all' => array(
+ 'label' => __( 'Can view other member profiles?', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_can_view_all'] ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+ }
+
+ if ( array_key_exists( '_um_can_view_all', $rolemeta ) && 1 === absint( $rolemeta['_um_can_view_all'] ) ) {
+ $can_view_roles_meta = ! empty( $rolemeta['_um_can_view_roles'] ) ? $rolemeta['_um_can_view_roles'] : array();
+ $can_view_roles = array();
+ if ( ! empty( $can_view_roles_meta ) ) {
+ if ( is_string( $can_view_roles_meta ) ) {
+ $can_view_roles = array( $can_view_roles_meta );
+ } else {
+ $can_view_roles = $can_view_roles_meta;
+ }
+ }
+
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-can_view_roles' => array(
+ 'label' => __( 'Can view these user roles only', 'ultimate-member' ),
+ 'value' => ! empty( $can_view_roles ) ? implode( ', ', $can_view_roles ) : $labels['all'],
+ ),
+ )
+ );
+ }
+
+ if ( isset( $rolemeta['_um_profile_noindex'] ) && '' !== $rolemeta['_um_profile_noindex'] ) {
+ $profile_noindex = $rolemeta['_um_profile_noindex'] ? $labels['yes'] : $labels['no'];
+ } else {
+ $profile_noindex = __( 'Default', 'ultimate-member' );
+ }
+ if ( isset( $rolemeta['_um_default_homepage'] ) && '' !== $rolemeta['_um_default_homepage'] ) {
+ $default_homepage = $rolemeta['_um_default_homepage'] ? $labels['yes'] : $labels['no'];
+ } else {
+ $default_homepage = __( 'No such option', 'ultimate-member' );
+ }
+
+ if ( array_key_exists( '_um_can_make_private_profile', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-can_make_private_profile' => array(
+ 'label' => __( 'Can make their profile private?', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_can_make_private_profile'] ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+ }
+
+ if ( array_key_exists( '_um_can_access_private_profile', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-can_access_private_profile' => array(
+ 'label' => __( 'Can view/access private profiles?', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_can_access_private_profile'] ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+ }
+
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-profile_noindex' => array(
+ 'label' => __( 'Avoid indexing profile by search engines', 'ultimate-member' ),
+ 'value' => $profile_noindex,
+ ),
+ 'um-default_homepage' => array(
+ 'label' => __( 'Can view default homepage?', 'ultimate-member' ),
+ 'value' => $default_homepage,
+ ),
+ )
+ );
+
+ if ( isset( $rolemeta['_um_default_homepage'] ) && 0 === absint( $rolemeta['_um_default_homepage'] ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-redirect_homepage' => array(
+ 'label' => __( 'Custom Homepage Redirect', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_redirect_homepage'],
+ ),
+ )
+ );
+ }
+
+ $status_options = array(
+ 'approved' => __( 'Auto Approve', 'ultimate-member' ),
+ 'checkmail' => __( 'Require Email Activation', 'ultimate-member' ),
+ 'pending' => __( 'Require Admin Review', 'ultimate-member' ),
+ );
+
+ if ( array_key_exists( '_um_status', $rolemeta ) && isset( $status_options[ $rolemeta['_um_status'] ] ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-status' => array(
+ 'label' => __( 'Registration Status', 'ultimate-member' ),
+ 'value' => $status_options[ $rolemeta['_um_status'] ],
+ ),
+ )
+ );
+ }
+
+ if ( array_key_exists( '_um_status', $rolemeta ) && 'approved' === $rolemeta['_um_status'] ) {
+ $auto_approve_act = array(
+ 'redirect_profile' => __( 'Redirect to profile', 'ultimate-member' ),
+ 'redirect_url' => __( 'Redirect to URL', 'ultimate-member' ),
+ );
+
+ if ( isset( $auto_approve_act[ $rolemeta['_um_auto_approve_act'] ] ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-auto_approve_act' => array(
+ 'label' => __( 'Custom Homepage Redirect', 'ultimate-member' ),
+ 'value' => $auto_approve_act[ $rolemeta['_um_auto_approve_act'] ],
+ ),
+ )
+ );
+ }
+
+ if ( 'redirect_url' === $rolemeta['_um_auto_approve_act'] && array_key_exists( '_um_auto_approve_url', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-auto_approve_url' => array(
+ 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_auto_approve_url'],
+ ),
+ )
+ );
+ }
+ }
+
+ if ( array_key_exists( '_um_status', $rolemeta ) && 'checkmail' === $rolemeta['_um_status'] ) {
+ $checkmail_action = array(
+ 'show_message' => __( 'Show custom message', 'ultimate-member' ),
+ 'redirect_url' => __( 'Redirect to URL', 'ultimate-member' ),
+ );
+
+ if ( array_key_exists( '_um_login_email_activate', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-login_email_activate' => array(
+ 'label' => __( 'Login user after validating the activation link?', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_login_email_activate'] ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+ }
+
+ if ( isset( $checkmail_action[ $rolemeta['_um_checkmail_action'] ] ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-checkmail_action' => array(
+ 'label' => __( 'Action to be taken after registration', 'ultimate-member' ),
+ 'value' => $checkmail_action[ $rolemeta['_um_checkmail_action'] ],
+ ),
+ )
+ );
+ }
+
+ if ( 'show_message' === $rolemeta['_um_checkmail_action'] ) {
+ if ( array_key_exists( '_um_checkmail_message', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-checkmail_message' => array(
+ 'label' => __( 'Personalize the custom message', 'ultimate-member' ),
+ 'value' => stripslashes( $rolemeta['_um_checkmail_message'] ),
+ ),
+ )
+ );
+ }
+ } else {
+ if ( array_key_exists( '_um_checkmail_url', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-checkmail_url' => array(
+ 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_checkmail_url'],
+ ),
+ )
+ );
+ }
+ }
+
+ if ( array_key_exists( '_um_url_email_activate', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-url_email_activate' => array(
+ 'label' => __( 'URL redirect after email activation', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_url_email_activate'],
+ ),
+ )
+ );
+ }
+ }
+
+ if ( array_key_exists( '_um_status', $rolemeta ) && 'pending' === $rolemeta['_um_status'] ) {
+ $pending_action = array(
+ 'show_message' => __( 'Show custom message', 'ultimate-member' ),
+ 'redirect_url' => __( 'Redirect to URL', 'ultimate-member' ),
+ );
+
+ if ( array_key_exists( '_um_pending_action', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-pending_action' => array(
+ 'label' => __( 'Action to be taken after registration', 'ultimate-member' ),
+ 'value' => $pending_action[ $rolemeta['_um_pending_action'] ],
+ ),
+ )
+ );
+ }
+
+ if ( 'show_message' === $rolemeta['_um_pending_action'] ) {
+ if ( array_key_exists( '_um_pending_message', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-pending_message' => array(
+ 'label' => __( 'Personalize the custom message', 'ultimate-member' ),
+ 'value' => stripslashes( $rolemeta['_um_pending_message'] ),
+ ),
+ )
+ );
+ }
+ } else {
+ if ( array_key_exists( '_um_pending_url', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-pending_url' => array(
+ 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_pending_url'],
+ ),
+ )
+ );
+ }
+ }
+ }
+
+ $after_login_options = array(
+ 'redirect_profile' => __( 'Redirect to profile', 'ultimate-member' ),
+ 'redirect_url' => __( 'Redirect to URL', 'ultimate-member' ),
+ 'refresh' => __( 'Refresh active page', 'ultimate-member' ),
+ 'redirect_admin' => __( 'Redirect to WordPress Admin', 'ultimate-member' ),
+ );
+
+ if ( array_key_exists( '_um_after_login', $rolemeta ) && isset( $after_login_options[ $rolemeta['_um_after_login'] ] ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-after_login' => array(
+ 'label' => __( 'Action to be taken after login', 'ultimate-member' ),
+ 'value' => $after_login_options[ $rolemeta['_um_after_login'] ],
+ ),
+ )
+ );
+
+ if ( 'redirect_url' === $rolemeta['_um_after_login'] && array_key_exists( '_um_login_redirect_url', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-login_redirect_url' => array(
+ 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_login_redirect_url'],
+ ),
+ )
+ );
+ }
+ }
+
+ $redirect_options = array(
+ 'redirect_home' => __( 'Go to Homepage', 'ultimate-member' ),
+ 'redirect_url' => __( 'Go to Custom URL', 'ultimate-member' ),
+ );
+ if ( ! isset( $rolemeta['_um_after_logout'] ) ) {
+ $rolemeta['_um_after_logout'] = 'redirect_home';
+ }
+ if ( array_key_exists( '_um_after_logout', $rolemeta ) && isset( $redirect_options[ $rolemeta['_um_after_logout'] ] ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-after_logout' => array(
+ 'label' => __( 'Action to be taken after logout', 'ultimate-member' ),
+ 'value' => $redirect_options[ $rolemeta['_um_after_logout'] ],
+ ),
+ )
+ );
+
+ if ( 'redirect_url' === $rolemeta['_um_after_logout'] && array_key_exists( '_um_logout_redirect_url', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-logout_redirect_url' => array(
+ 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_logout_redirect_url'],
+ ),
+ )
+ );
+ }
+ }
+
+ if ( ! isset( $rolemeta['_um_after_delete'] ) ) {
+ $rolemeta['_um_after_delete'] = 'redirect_home';
+ }
+ if ( array_key_exists( '_um_after_delete', $rolemeta ) && isset( $redirect_options[ $rolemeta['_um_after_delete'] ] ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-after_delete' => array(
+ 'label' => __( 'Action to be taken after account is deleted', 'ultimate-member' ),
+ 'value' => $redirect_options[ $rolemeta['_um_after_delete'] ],
+ ),
+ )
+ );
+
+ if ( 'redirect_url' === $rolemeta['_um_after_delete'] && array_key_exists( '_um_delete_redirect_url', $rolemeta ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-delete_redirect_url' => array(
+ 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
+ 'value' => $rolemeta['_um_delete_redirect_url'],
+ ),
+ )
+ );
+ }
+ }
+
+ if ( ! empty( $rolemeta['wp_capabilities'] ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-wp_capabilities' => array(
+ 'label' => __( 'WP Capabilities', 'ultimate-member' ),
+ 'value' => $rolemeta['wp_capabilities'],
+ ),
+ )
+ );
+ }
+
+ $info = apply_filters( 'um_debug_information_user_role', $info, $key );
+ }
+
+ return $info;
+ }
+
+ public function forms_sitehealth( $info ) {
+ $labels = self::get_labels();
+
+ if ( ! empty( $this->get_forms() ) ) {
+ $info['ultimate-member-forms'] = array(
+ 'label' => __( 'Ultimate Member Forms', 'ultimate-member' ),
+ 'description' => __( 'This debug information for your Ultimate Member forms.', 'ultimate-member' ),
+ 'fields' => array(
+ 'um-forms' => array(
+ 'label' => __( 'UM Forms', 'ultimate-member' ),
+ 'value' => $this->get_forms(),
+ ),
+ ),
+ );
+
+ foreach ( $this->get_forms() as $key => $form ) {
+ if ( strpos( $key, 'ID#' ) === 0 ) {
+ $key = substr( $key, 3 );
+ }
+
+ $info[ 'ultimate-member-' . $key ] = array(
+ 'label' => ' - ' . $form . __( ' form settings', 'ultimate-member' ),
+ 'description' => __( 'This debug information for your Ultimate Member form.', 'ultimate-member' ),
+ 'fields' => array(
+ 'um-form-shortcode' => array(
+ 'label' => __( 'Shortcode', 'ultimate-member' ),
+ 'value' => '[ultimatemember form_id="' . $key . '"]',
+ ),
+ 'um-mode' => array(
+ 'label' => __( 'Type', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_mode', true ),
+ ),
+ ),
+ );
+
+ if ( 'register' === get_post_meta( $key, '_um_mode', true ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-register_role' => array(
+ 'label' => __( 'User registration role', 'ultimate-member' ),
+ 'value' => 0 === absint( get_post_meta( $key, '_um_register_role', true ) ) ? $labels['default'] : get_post_meta( $key, '_um_register_role', true ),
+ ),
+ 'um-register_template' => array(
+ 'label' => __( 'Template', 'ultimate-member' ),
+ 'value' => 0 === absint( get_post_meta( $key, '_um_register_template', true ) ) ? $labels['default'] : get_post_meta( $key, '_um_register_template', true ),
+ ),
+ 'um-register_primary_btn_word' => array(
+ 'label' => __( 'Primary Button Text', 'ultimate-member' ),
+ 'value' => ! get_post_meta( $key, '_um_register_primary_btn_word', true ) ? $labels['default'] : get_post_meta( $key, '_um_register_primary_btn_word', true ),
+ ),
+ 'um-register_use_gdpr' => array(
+ 'label' => __( 'Enable privacy policy agreement', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_register_use_gdpr', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+
+ if ( 1 === absint( get_post_meta( $key, '_um_register_use_gdpr', true ) ) ) {
+ $gdpr_content_id = get_post_meta( $key, '_um_register_use_gdpr_content_id', true );
+
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-register_use_gdpr_content_id' => array(
+ 'label' => __( 'Privacy policy content', 'ultimate-member' ),
+ 'value' => $gdpr_content_id ? get_the_title( $gdpr_content_id ) . '(' . $gdpr_content_id . ')' . get_the_permalink( $gdpr_content_id ) : '',
+ ),
+ 'um-register_use_gdpr_toggle_show' => array(
+ 'label' => __( 'Toggle Show text', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_register_use_gdpr_toggle_show', true ),
+ ),
+ 'um-register_use_gdpr_toggle_hide' => array(
+ 'label' => __( 'Toggle Hide text', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_register_use_gdpr_toggle_hide', true ),
+ ),
+ 'um-register_use_gdpr_agreement' => array(
+ 'label' => __( 'Checkbox agreement description', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_register_use_gdpr_agreement', true ),
+ ),
+ 'um-register_use_gdpr_error_text' => array(
+ 'label' => __( 'Error Text', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_register_use_gdpr_error_text', true ),
+ ),
+ )
+ );
+ }
+
+ $info = apply_filters( 'um_debug_information_register_form', $info, $key );
+
+ $fields = get_post_meta( $key, '_um_custom_fields', true );
+ if ( ! empty( $fields ) && is_array( $fields ) ) {
+ foreach ( $fields as $field_key => $field ) {
+ $field_info = $this->get_field_data( $info, $key, $field_key, $field );
+
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ $field_info
+ );
+ }
+ }
+ } elseif ( 'login' === get_post_meta( $key, '_um_mode', true ) ) {
+ $login_redirect_options = array(
+ '0' => __( 'Default', 'ultimate-member' ),
+ 'redirect_profile' => __( 'Redirect to profile', 'ultimate-member' ),
+ 'redirect_url' => __( 'Redirect to URL', 'ultimate-member' ),
+ 'refresh' => __( 'Refresh active page', 'ultimate-member' ),
+ 'redirect_admin' => __( 'Redirect to WordPress Admin', 'ultimate-member' ),
+ );
+
+ $login_after_login = get_post_meta( $key, '_um_login_after_login', true );
+ $login_after_login = '' === $login_after_login ? '0' : $login_after_login;
+
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-login_template' => array(
+ 'label' => __( 'Template', 'ultimate-member' ),
+ 'value' => 0 === absint( get_post_meta( $key, '_um_login_template', true ) ) ? $labels['default'] : get_post_meta( $key, '_um_login_template', true ),
+ ),
+ 'um-login_primary_btn_word' => array(
+ 'label' => __( 'Primary Button Text', 'ultimate-member' ),
+ 'value' => ! get_post_meta( $key, '_um_login_primary_btn_word', true ) ? $labels['default'] : get_post_meta( $key, '_um_login_primary_btn_word', true ),
+ ),
+ 'um-login_forgot_pass_link' => array(
+ 'label' => __( 'Show Forgot Password Link?', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_login_forgot_pass_link', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-login_show_rememberme' => array(
+ 'label' => __( 'Show "Remember Me"?', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_login_show_rememberme', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-login_after_login' => array(
+ 'label' => __( 'Redirection after Login', 'ultimate-member' ),
+ 'value' => $login_redirect_options[ $login_after_login ],
+ ),
+ )
+ );
+
+ if ( 'redirect_url' === get_post_meta( $key, '_um_login_after_login', true ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-login_redirect_url' => array(
+ 'label' => __( 'Set Custom Redirect URL', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_login_redirect_url', true ),
+ ),
+ )
+ );
+ }
+
+ $info = apply_filters( 'um_debug_information_login_form', $info, $key );
+
+ $fields = get_post_meta( $key, '_um_custom_fields', true );
+ if ( ! empty( $fields ) && is_array( $fields ) ) {
+ foreach ( $fields as $field_key => $field ) {
+ $field_info = $this->get_field_data( $info, $key, $field_key, $field );
+
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ $field_info
+ );
+ }
+ }
+ } elseif ( 'profile' === get_post_meta( $key, '_um_mode', true ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-profile_role' => array(
+ 'label' => __( 'Make this profile form role-specific', 'ultimate-member' ),
+ 'value' => ! empty( get_post_meta( $key, '_um_profile_role', true ) ) ? get_post_meta( $key, '_um_profile_role', true ) : $labels['all'],
+ ),
+ 'um-profile_template' => array(
+ 'label' => __( 'Template', 'ultimate-member' ),
+ 'value' => 0 === absint( get_post_meta( $key, '_um_profile_template', true ) ) ? $labels['default'] : get_post_meta( $key, '_um_profile_template', true ),
+ ),
+ 'um-profile_primary_btn_word' => array(
+ 'label' => __( 'Primary Button Text', 'ultimate-member' ),
+ 'value' => ! get_post_meta( $key, '_um_profile_primary_btn_word', true ) ? $labels['default'] : get_post_meta( $key, '_um_profile_primary_btn_word', true ),
+ ),
+ 'um-profile_cover_enabled' => array(
+ 'label' => __( 'Enable Cover Photos', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_profile_cover_enabled', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-profile_disable_photo_upload' => array(
+ 'label' => __( 'Disable Profile Photo Upload', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_profile_disable_photo_upload', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+
+ if ( 0 === absint( get_post_meta( $key, '_um_profile_disable_photo_upload', true ) ) ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-profile_photo_required' => array(
+ 'label' => __( 'Make Profile Photo Required', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_profile_photo_required', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+ }
+
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-profile_show_name' => array(
+ 'label' => __( 'Show display name in profile header?', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_profile_show_name', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-profile_show_social_links' => array(
+ 'label' => __( 'Show social links in profile header?', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_profile_show_social_links', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ 'um-profile_show_bio' => array(
+ 'label' => __( 'Show user description in profile header?', 'ultimate-member' ),
+ 'value' => get_post_meta( $key, '_um_profile_show_bio', true ) ? $labels['yes'] : $labels['no'],
+ ),
+ )
+ );
+
+ $fields = get_post_meta( $key, '_um_custom_fields', true );
+ if ( ! empty( $fields ) && is_array( $fields ) ) {
+ foreach ( $fields as $field_key => $field ) {
+ $field_info = $this->get_field_data( $info, $key, $field_key, $field );
+
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ $field_info
+ );
+ }
+ }
+
+ $profile_metafields = get_post_meta( $key, '_um_profile_metafields', true );
+ if ( ! empty( $profile_metafields ) && is_array( $profile_metafields ) ) {
+ foreach ( $profile_metafields as $k => $field ) {
+ $info[ 'ultimate-member-' . $key ]['fields'] = array_merge(
+ $info[ 'ultimate-member-' . $key ]['fields'],
+ array(
+ 'um-profile_metafields-' . $k => array(
+ 'label' => __( 'Field to show in user meta', 'ultimate-member' ),
+ 'value' => $field,
+ ),
+ )
+ );
+ }
+ }
+ }
+ }
+ }
+
+ return $info;
+ }
}