core_forms = array( 'register', 'login', 'profile', ); $this->core_directories = array( 'members', ); /** * Filters Ultimate Member predefined pages. * * @param {array} $pages Predefined pages. * * @return {array} Predefined pages. * * @since 1.3.x * @hook um_core_pages * * @example Extend UM core pages. * function my_core_pages( $pages ) { * // your code here * $pages['my_page_key'] = array( 'title' => __( 'My Page Title', 'my-translate-key' ) ); * return $pages; * } * add_filter( 'um_core_pages', 'my_core_pages' ); */ $this->core_pages = apply_filters( 'um_core_pages', array( 'user' => array( 'title' => __( 'User', 'ultimate-member' ) ), 'login' => array( 'title' => __( 'Login', 'ultimate-member' ) ), 'register' => array( 'title' => __( 'Register', 'ultimate-member' ) ), 'members' => array( 'title' => __( 'Members', 'ultimate-member' ) ), 'logout' => array( 'title' => __( 'Logout', 'ultimate-member' ) ), 'account' => array( 'title' => __( 'Account', 'ultimate-member' ) ), 'password-reset' => array( 'title' => __( 'Password Reset', 'ultimate-member' ) ), ) ); $this->core_directory_meta['members'] = array( '_um_core' => 'members', '_um_template' => 'members', '_um_mode' => 'directory', '_um_view_types' => array( 'grid' ), '_um_default_view' => 'grid', '_um_roles' => array(), '_um_has_profile_photo' => 0, '_um_has_cover_photo' => 0, '_um_show_these_users' => '', '_um_exclude_these_users' => '', '_um_sortby' => 'user_registered_desc', '_um_sortby_custom' => '', '_um_sortby_custom_label' => '', '_um_enable_sorting' => 0, '_um_sorting_fields' => array(), '_um_profile_photo' => '1', '_um_cover_photos' => '1', '_um_show_name' => '1', '_um_show_tagline' => 0, '_um_tagline_fields' => array(), '_um_show_userinfo' => 0, '_um_reveal_fields' => array(), '_um_show_social' => 0, '_um_userinfo_animate' => '1', '_um_search' => 0, '_um_roles_can_search' => array(), '_um_filters' => 0, '_um_roles_can_filter' => array(), '_um_search_fields' => array(), '_um_filters_expanded' => 0, '_um_filters_is_collapsible' => 1, '_um_search_filters' => array(), '_um_must_search' => 0, '_um_max_users' => '', '_um_profiles_per_page' => 12, '_um_profiles_per_page_mobile' => 6, '_um_directory_header' => __( '{total_users} Members', 'ultimate-member' ), '_um_directory_header_single' => __( '{total_users} Member', 'ultimate-member' ), '_um_directory_no_users' => __( 'We are sorry. We cannot find any users who match your search criteria.', 'ultimate-member' ), ); $this->core_global_meta_all = array( '_um_primary_btn_color', '_um_primary_btn_hover', '_um_primary_btn_text', '_um_secondary_btn_color', '_um_secondary_btn_hover', '_um_secondary_btn_text', '_um_form_border', '_um_form_border_hover', '_um_form_bg_color', '_um_form_bg_color_focus', '_um_form_placeholder', '_um_form_icon_color', '_um_form_asterisk_color', '_um_form_field_label', '_um_form_text_color', '_um_active_color', '_um_help_tip_color', '_um_secondary_color', ); $this->core_form_meta_all = array( /*Profile Form*/ '_um_profile_show_name' => 1, '_um_profile_show_social_links' => 0, '_um_profile_show_bio' => 1, '_um_profile_bio_maxchars' => 180, '_um_profile_header_menu' => 'bc', '_um_profile_empty_text' => 1, '_um_profile_empty_text_emo' => 1, '_um_profile_role' => array(), '_um_profile_template' => 'profile', '_um_profile_max_width' => '1000px', '_um_profile_area_max_width' => '600px', '_um_profile_align' => 'center', '_um_profile_icons' => 'label', '_um_profile_disable_photo_upload' => 0, '_um_profile_photosize' => '190', '_um_profile_cover_enabled' => 1, '_um_profile_coversize' => 'original', '_um_profile_cover_ratio' => '2.7:1', '_um_profile_photocorner' => '1', '_um_profile_header_bg' => '', '_um_profile_primary_btn_word' => __( 'Update Profile', 'ultimate-member' ), '_um_profile_secondary_btn' => '1', '_um_profile_secondary_btn_word' => __( 'Cancel', 'ultimate-member' ), /*Registration Form*/ '_um_register_role' => '0', '_um_register_template' => 'register', '_um_register_max_width' => '450px', '_um_register_align' => 'center', '_um_register_icons' => 'label', '_um_register_primary_btn_word' => __( 'Register', 'ultimate-member' ), '_um_register_secondary_btn' => 1, '_um_register_secondary_btn_word' => __( 'Login', 'ultimate-member' ), '_um_register_secondary_btn_url' => '', /*Login Form*/ '_um_login_template' => 'login', '_um_login_max_width' => '450px', '_um_login_align' => 'center', '_um_login_icons' => 'label', '_um_login_primary_btn_word' => __( 'Login', 'ultimate-member' ), '_um_login_forgot_pass_link' => 1, '_um_login_show_rememberme' => 1, '_um_login_secondary_btn' => 1, '_um_login_secondary_btn_word' => __( 'Register', 'ultimate-member' ), '_um_login_secondary_btn_url' => '', /*Member Directory*/ '_um_directory_template' => 'members', '_um_directory_header' => __( '{total_users} Members', 'ultimate-member' ), '_um_directory_header_single' => __( '{total_users} Member', 'ultimate-member' ), ); /** * Filters the list of Ultimate Member forms meta. * * @param {array} $form_meta UM Forms meta. * * @return {array} Forms meta. * * @since 1.3.x * @hook um_core_form_meta_all * * @example Add custom admin notice after {custom_update_key} action. * function my_um_core_form_meta_all( $form_meta ) { * // your code here * $meta['my_meta_key'] = 'my_meta_value'; * return $meta; * } * add_filter( 'um_core_form_meta_all', 'my_um_core_form_meta_all' ); */ $this->core_form_meta_all = apply_filters( 'um_core_form_meta_all', $this->core_form_meta_all ); $this->core_form_meta['register'] = array( '_um_custom_fields' => array( 'user_login' => array( 'title' => __( 'Username', 'ultimate-member' ), 'metakey' => 'user_login', 'type' => 'text', 'label' => __( 'Username', 'ultimate-member' ), 'required' => 1, 'public' => 1, 'editable' => false, 'validate' => 'unique_username', 'min_chars' => 3, 'max_chars' => 24, 'position' => '1', 'in_row' => '_um_row_1', 'in_sub_row' => '0', 'in_column' => '1', 'in_group' => '', ), 'user_email' => array( 'title' => __( 'E-mail Address', 'ultimate-member' ), 'metakey' => 'user_email', 'type' => 'text', 'label' => __( 'E-mail Address', 'ultimate-member' ), 'required' => 0, 'public' => 1, 'editable' => true, 'validate' => 'unique_email', 'position' => '4', 'in_row' => '_um_row_1', 'in_sub_row' => '0', 'in_column' => '1', 'in_group' => '', ), 'user_password' => array( 'title' => __( 'Password', 'ultimate-member' ), 'metakey' => 'user_password', 'type' => 'password', 'label' => __( 'Password', 'ultimate-member' ), 'required' => 1, 'public' => 1, 'editable' => true, 'min_chars' => 8, 'max_chars' => 30, 'force_good_pass' => 1, 'force_confirm_pass' => 1, 'position' => '5', 'in_row' => '_um_row_1', 'in_sub_row' => '0', 'in_column' => '1', 'in_group' => '', ), 'first_name' => array( 'title' => __( 'First Name', 'ultimate-member' ), 'metakey' => 'first_name', 'type' => 'text', 'label' => __( 'First Name', 'ultimate-member' ), 'required' => 0, 'public' => 1, 'editable' => true, 'position' => '2', 'in_row' => '_um_row_1', 'in_sub_row' => '0', 'in_column' => '1', 'in_group' => '', ), 'last_name' => array( 'title' => __( 'Last Name', 'ultimate-member' ), 'metakey' => 'last_name', 'type' => 'text', 'label' => __( 'Last Name', 'ultimate-member' ), 'required' => 0, 'public' => 1, 'editable' => true, 'position' => '3', 'in_row' => '_um_row_1', 'in_sub_row' => '0', 'in_column' => '1', 'in_group' => '', ), '_um_row_1' => array( 'type' => 'row', 'id' => '_um_row_1', 'sub_rows' => '1', 'cols' => '1', ), ), '_um_mode' => 'register', '_um_core' => 'register', '_um_register_use_custom_settings' => 0, ); $this->core_form_meta['login'] = array( '_um_custom_fields' => array( 'username' => array( 'title' => __( 'Username or E-mail', 'ultimate-member' ), 'metakey' => 'username', 'type' => 'text', 'label' => __( 'Username or E-mail', 'ultimate-member' ), 'required' => 1, 'public' => 1, 'editable' => false, 'validate' => 'unique_username_or_email', 'position' => '1', 'in_row' => '_um_row_1', 'in_sub_row' => '0', 'in_column' => '1', 'in_group' => '', ), 'user_password' => array( 'title' => __( 'Password', 'ultimate-member' ), 'metakey' => 'user_password', 'type' => 'password', 'label' => __( 'Password', 'ultimate-member' ), 'required' => 1, 'public' => 1, 'editable' => true, 'min_chars' => 8, 'max_chars' => 30, 'force_good_pass' => 1, 'force_confirm_pass' => 1, 'position' => '2', 'in_row' => '_um_row_1', 'in_sub_row' => '0', 'in_column' => '1', 'in_group' => '', ), '_um_row_1' => array( 'type' => 'row', 'id' => '_um_row_1', 'sub_rows' => '1', 'cols' => '1', ), ), '_um_mode' => 'login', '_um_core' => 'login', '_um_login_use_custom_settings' => 0, ); $this->core_form_meta['profile'] = array( '_um_custom_fields' => array( '_um_row_1' => array( 'type' => 'row', 'id' => '_um_row_1', 'sub_rows' => '1', 'cols' => '1', ), ), '_um_mode' => 'profile', '_um_core' => 'profile', '_um_profile_use_custom_settings' => 0, ); $this->email_notifications = array( 'welcome_email' => array( 'key' => 'welcome_email', 'title' => __( 'Account Welcome Email','ultimate-member' ), 'subject' => 'Welcome to {site_name}!', 'body' => 'Hi {display_name},

' . 'Thank you for signing up with {site_name}! Your account is now active.

' . '{action_title}:

' . '{action_url}

' . 'Your account email: {email}
' . 'Your account username: {username}

' . 'If you have any problems, please contact us at {admin_email}

' . 'Thanks,
' . '{site_name}', 'description' => __('Whether to send the user an email when his account is automatically approved','ultimate-member'), 'recipient' => 'user', 'default_active' => true ), 'checkmail_email' => array( 'key' => 'checkmail_email', 'title' => __( 'Account Activation Email','ultimate-member' ), 'subject' => 'Please activate your account', 'body' => 'Hi {display_name},

' . 'Thank you for signing up with {site_name}! To activate your account, please click the link below to confirm your email address:

' . '{account_activation_link}

' . 'If you have any problems, please contact us at {admin_email}

' . 'Thanks,
' . '{site_name}', 'description' => __('Whether to send the user an email when his account needs email activation','ultimate-member'), 'recipient' => 'user' ), 'pending_email' => array( 'key' => 'pending_email', 'title' => __( 'Your account is pending review','ultimate-member' ), 'subject' => '[{site_name}] New user account', 'body' => 'Hi {display_name},

' . 'Thank you for signing up with {site_name}! Your account is currently being reviewed by a member of our team.

' . 'Please allow us some time to process your request.

' . 'If you have any problems, please contact us at {admin_email}

' . 'Thanks,
' . '{site_name}', 'description' => __('Whether to send the user an email when his account needs admin review','ultimate-member'), 'recipient' => 'user' ), 'approved_email' => array( 'key' => 'approved_email', 'title' => __( 'Account Approved Email','ultimate-member' ), 'subject' => 'Your account at {site_name} is now active', 'body' => 'Hi {display_name},

' . 'Thank you for signing up with {site_name}! Your account has been approved and is now active.

' . 'To login please visit the following url:

' . '{login_url}

' . 'Your account email: {email}
' . 'Your account username: {username}
' . 'Set your account password: {password_reset_link}

' . 'If you have any problems, please contact us at {admin_email}

' . 'Thanks,
' . '{site_name}', 'description' => __('Whether to send the user an email when his account is approved','ultimate-member'), 'recipient' => 'user' ), 'rejected_email' => array( 'key' => 'rejected_email', 'title' => __( 'Account Rejected Email','ultimate-member' ), 'subject' => 'Your account has been rejected', 'body' => 'Hi {display_name},

' . 'Thank you for applying for membership to {site_name}! We have reviewed your information and unfortunately we are unable to accept you as a member at this moment.

' . 'Please feel free to apply again at a future date.

' . 'Thanks,
' . '{site_name}', 'description' => __('Whether to send the user an email when his account is rejected','ultimate-member'), 'recipient' => 'user' ), 'inactive_email' => array( 'key' => 'inactive_email', 'title' => __( 'Account Deactivated Email','ultimate-member' ), 'subject' => 'Your account has been deactivated', 'body' => 'Hi {display_name},

' . 'This is an automated email to let you know your {site_name} account has been deactivated.

' . 'If you would like your account to be reactivated please contact us at {admin_email}

' . 'Thanks,
' . '{site_name}', 'description' => __('Whether to send the user an email when his account is deactivated','ultimate-member'), 'recipient' => 'user', 'default_active' => true ), 'deletion_email' => array( 'key' => 'deletion_email', 'title' => __( 'Account Deleted Email','ultimate-member' ), 'subject' => 'Your account has been deleted', 'body' => 'Hi {display_name},

' . 'This is an automated email to let you know your {site_name} account has been deleted. All of your personal information has been permanently deleted and you will no longer be able to login to {site_name}.

' . 'If your account has been deleted by accident please contact us at {admin_email}
' . 'Thanks,
' . '{site_name}', 'description' => __('Whether to send the user an email when his account is deleted','ultimate-member'), 'recipient' => 'user', 'default_active' => true ), 'resetpw_email' => array( 'key' => 'resetpw_email', 'title' => __( 'Password Reset Email','ultimate-member' ), 'subject' => 'Reset your password', 'body' => 'Hi {display_name},

' . 'We received a request to reset the password for your account. If you made this request, click the link below to change your password:

' . '{password_reset_link}

' . 'If you didn\'t make this request, you can ignore this email

' . 'Thanks,
' . '{site_name}', 'description' => __('Whether to send an email when users changed their password (Recommended, please keep on)','ultimate-member'), 'recipient' => 'user', 'default_active' => true ), 'changedpw_email' => array( 'key' => 'changedpw_email', 'title' => __( 'Password Changed Email','ultimate-member' ), 'subject' => 'Your {site_name} password has been changed', 'body' => 'Hi {display_name},

' . 'You recently changed the password associated with your {site_name} account.

' . 'If you did not make this change and believe your {site_name} account has been compromised, please contact us at the following email address: {admin_email}

' . 'Thanks,
' . '{site_name}', 'description' => __('Whether to send the user an email when he requests to reset password (Recommended, please keep on)','ultimate-member'), 'recipient' => 'user', 'default_active' => true ), 'changedaccount_email' => array( 'key' => 'changedaccount_email', 'title' => __( 'Account Updated Email','ultimate-member' ), 'subject' => 'Your account at {site_name} was updated', 'body' => 'Hi {display_name},

' . 'You recently updated your {site_name} account.

' . 'If you did not make this change and believe your {site_name} account has been compromised, please contact us at the following email address: {admin_email}

' . 'Thanks,
' . '{site_name}', 'description' => __('Whether to send the user an email when he updated their account','ultimate-member'), 'recipient' => 'user', 'default_active'=> true ), 'notification_new_user' => array( 'key' => 'notification_new_user', 'title' => __( 'New User Notification','ultimate-member' ), 'subject' => '[{site_name}] New user account', 'body' => '{display_name} has just created an account on {site_name}. To view their profile click here:

' . '{user_profile_link}

' . 'Here is the submitted registration form:

' . '{submitted_registration}', 'description' => __('Whether to receive notification when a new user account is created','ultimate-member'), 'recipient' => 'admin', 'default_active' => true ), 'notification_review' => array( 'key' => 'notification_review', 'title' => __( 'Account Needs Review Notification','ultimate-member' ), 'subject' => '[{site_name}] New user awaiting review', 'body' => '{display_name} has just applied for membership to {site_name} and is waiting to be reviewed.

' . 'To review this member please click the following link:

' . '{user_profile_link}

' . 'Here is the submitted registration form:

' . '{submitted_registration}', 'description' => __('Whether to receive notification when an account needs admin review','ultimate-member'), 'recipient' => 'admin' ), 'notification_deletion' => array( 'key' => 'notification_deletion', 'title' => __( 'Account Deletion Notification','ultimate-member' ), 'subject' => '[{site_name}] Account deleted', 'body' => '{display_name} has just deleted their {site_name} account.', 'description' => __('Whether to receive notification when an account is deleted','ultimate-member'), 'recipient' => 'admin' ), 'suspicious-activity' => array( 'key' => 'suspicious-activity', 'title' => __( 'Security: Suspicious Account Activity', 'ultimate-member' ), 'subject' => __( '[{site_name}] Suspicious Account Activity', 'ultimate-member' ), 'body' => 'This is to inform you that there are suspicious activities with the following accounts: {user_profile_link}', 'description' => __( 'Whether to receive notification when suspicious account activity is detected.', 'ultimate-member' ), 'recipient' => 'admin', 'default_active' => true, ), ); /** * Filters the list of Ultimate Member email notifications. * * @param {array} $email_notifications Email notifications. * * @return {array} Email notifications. * * @since 2.0.0 * @hook um_email_notifications * * @example Add custom admin notice after {custom_update_key} action. * function my_um_email_notifications( $notifications ) { * // your code here * $emails['my_email'] = array( * 'key' => 'my_email', * 'title' => __( 'my_email_title','ultimate-member' ), * 'subject' => 'my_email_subject', * 'body' => 'my_email_body', * 'description' => 'my_email_description', * 'recipient' => 'user', // set 'admin' for make administrator as recipient * 'default_active' => true // can be false for make disabled by default * ); * * return $emails; * } * add_filter( 'um_email_notifications', 'my_um_email_notifications' ); */ $this->email_notifications = apply_filters( 'um_email_notifications', $this->email_notifications ); // Settings defaults. $this->settings_defaults = array( 'restricted_access_post_metabox' => array( 'post' => 1, 'page' => 1, ), 'disable_restriction_pre_queries' => false, 'uninstall_on_delete' => false, 'permalink_base' => 'user_login', 'permalink_base_custom_meta' => '', 'display_name' => 'full_name', 'display_name_field' => '', 'author_redirect' => true, 'members_page' => true, 'use_gravatars' => false, 'use_um_gravatar_default_builtin_image' => 'default', 'use_um_gravatar_default_image' => false, 'toggle_password' => false, 'require_strongpass' => false, 'password_min_chars' => 8, 'password_max_chars' => 30, 'account_tab_password' => true, 'account_tab_privacy' => true, 'account_tab_notifications' => true, 'account_tab_delete' => true, 'delete_account_text' => __( 'Are you sure you want to delete your account? This will erase all of your account data from the site. To delete your account enter your password below.', 'ultimate-member' ), 'delete_account_no_pass_required_text' => __( 'Are you sure you want to delete your account? This will erase all of your account data from the site. To delete your account, click on the button below.', 'ultimate-member' ), 'account_name' => true, 'account_name_disable' => false, 'account_name_require' => true, 'account_email' => true, 'account_general_password' => false, 'account_hide_in_directory' => true, 'account_hide_in_directory_default' => 'No', 'photo_thumb_sizes' => array( 40, 80, 190 ), 'cover_thumb_sizes' => array( 300, 600 ), 'accessible' => 0, 'access_redirect' => '', 'access_exclude_uris' => array(), 'home_page_accessible' => true, 'category_page_accessible' => true, 'restricted_post_title_replace' => true, 'restricted_access_post_title' => __( 'Restricted content', 'ultimate-member' ), 'restricted_access_message' => '', 'restricted_blocks' => false, 'enable_blocks' => false, 'restricted_block_message' => '', 'enable_reset_password_limit' => true, 'reset_password_limit_number' => 3, 'change_password_request_limit' => false, 'only_approved_user_reset_password' => true, 'blocked_emails' => '', 'blocked_words' => 'admin' . "\r\n" . 'administrator' . "\r\n" . 'webmaster' . "\r\n" . 'support' . "\r\n" . 'staff', 'allowed_choice_callbacks' => '', 'allow_url_redirect_confirm' => true, 'default_avatar' => '', 'default_cover' => '', 'disable_profile_photo_upload' => false, 'profile_show_metaicon' => false, 'profile_menu' => true, 'profile_menu_default_tab' => 'main', 'profile_menu_icons' => true, 'form_asterisk' => false, 'profile_title' => '{display_name} | {site_name}', 'profile_desc' => '{display_name} is on {site_name}. Join {site_name} to view {display_name}\'s profile', 'admin_email' => get_bloginfo( 'admin_email' ), 'mail_from' => get_bloginfo( 'name' ), 'mail_from_addr' => get_bloginfo( 'admin_email' ), 'email_html' => true, 'image_orientation_by_exif' => false, 'image_compression' => 60, 'image_max_width' => 1000, 'cover_min_width' => 1000, 'profile_photo_max_size' => 999999999, 'cover_photo_max_size' => 999999999, 'custom_roles_increment' => 1, 'um_profile_object_cache_stop' => false, 'rest_api_version' => '2.0', 'member_directory_own_table' => false, 'profile_show_bio' => false, 'profile_show_html_bio' => false, 'profile_bio_maxchars' => 180, 'profile_noindex' => 0, 'activation_link_expiry_time' => '', 'lock_register_forms' => false, 'display_login_form_notice' => false, 'secure_ban_admins_accounts' => false, 'banned_capabilities' => array( 'manage_options', 'promote_users', 'level_10' ), 'secure_notify_admins_banned_accounts' => false, 'secure_notify_admins_banned_accounts__interval' => 'instant', 'secure_allowed_redirect_hosts' => '', 'delete_comments' => false, 'enable_action_scheduler' => false, ); add_filter( 'um_get_tabs_from_config', '__return_true' ); $tabs = UM()->profile()->tabs(); foreach ( $tabs as $id => $tab ) { if ( ! empty( $tab['hidden'] ) ) { continue; } $this->settings_defaults[ 'profile_tab_' . $id ] = 1; if ( ! isset( $tab['default_privacy'] ) ) { $this->settings_defaults[ 'profile_tab_' . $id . '_privacy' ] = 0; $this->settings_defaults[ 'profile_tab_' . $id . '_roles' ] = ''; } } foreach ( $this->email_notifications as $key => $notification ) { $this->settings_defaults[ $key . '_on' ] = ! empty( $notification['default_active'] ); $this->settings_defaults[ $key . '_sub' ] = $notification['subject']; $this->settings_defaults[ $key ] = $notification['body']; } foreach ( $this->core_pages as $page_s => $page ) { $page_id = UM()->options()->get_predefined_page_option_key( $page_s ); $this->settings_defaults[ $page_id ] = ''; } foreach ( $this->core_form_meta_all as $key => $value ) { $this->settings_defaults[ str_replace( '_um_', '', $key ) ] = $value; } /** * UM hook * * @type filter * @title um_default_settings_values * @description Extend UM default settings * @input_vars * [{"var":"$settings","type":"array","desc":"UM default settings"}] * @change_log * ["Since: 2.0"] * @usage * * @example * */ $this->settings_defaults = apply_filters( 'um_default_settings_values', $this->settings_defaults ); $this->permalinks = $this->get_core_pages(); $this->default_roles_metadata = array( 'subscriber' => array( '_um_can_access_wpadmin' => 0, '_um_can_not_see_adminbar' => 1, '_um_can_edit_everyone' => 0, '_um_can_delete_everyone' => 0, '_um_can_edit_profile' => 1, '_um_can_delete_profile' => 1, '_um_after_login' => 'redirect_profile', '_um_after_logout' => 'redirect_home', '_um_default_homepage' => 1, '_um_can_view_all' => 1, '_um_can_make_private_profile' => 0, '_um_can_access_private_profile' => 0, '_um_status' => 'approved', '_um_auto_approve_act' => 'redirect_profile', ), 'author' => array( '_um_can_access_wpadmin' => 0, '_um_can_not_see_adminbar' => 1, '_um_can_edit_everyone' => 0, '_um_can_delete_everyone' => 0, '_um_can_edit_profile' => 1, '_um_can_delete_profile' => 1, '_um_after_login' => 'redirect_profile', '_um_after_logout' => 'redirect_home', '_um_default_homepage' => 1, '_um_can_view_all' => 1, '_um_can_make_private_profile' => 0, '_um_can_access_private_profile' => 0, '_um_status' => 'approved', '_um_auto_approve_act' => 'redirect_profile', ), 'contributor' => array( '_um_can_access_wpadmin' => 0, '_um_can_not_see_adminbar' => 1, '_um_can_edit_everyone' => 0, '_um_can_delete_everyone' => 0, '_um_can_edit_profile' => 1, '_um_can_delete_profile' => 1, '_um_after_login' => 'redirect_profile', '_um_after_logout' => 'redirect_home', '_um_default_homepage' => 1, '_um_can_view_all' => 1, '_um_can_make_private_profile' => 0, '_um_can_access_private_profile' => 0, '_um_status' => 'approved', '_um_auto_approve_act' => 'redirect_profile', ), 'editor' => array( '_um_can_access_wpadmin' => 0, '_um_can_not_see_adminbar' => 1, '_um_can_edit_everyone' => 0, '_um_can_delete_everyone' => 0, '_um_can_edit_profile' => 1, '_um_can_delete_profile' => 1, '_um_after_login' => 'redirect_profile', '_um_after_logout' => 'redirect_home', '_um_default_homepage' => 1, '_um_can_view_all' => 1, '_um_can_make_private_profile' => 0, '_um_can_access_private_profile' => 0, '_um_status' => 'approved', '_um_auto_approve_act' => 'redirect_profile', ), 'administrator' => array( '_um_can_access_wpadmin' => 1, '_um_can_not_see_adminbar' => 0, '_um_can_edit_everyone' => 1, '_um_can_delete_everyone' => 1, '_um_can_edit_profile' => 1, '_um_can_delete_profile' => 1, '_um_default_homepage' => 1, '_um_after_login' => 'redirect_admin', '_um_after_logout' => 'redirect_home', '_um_can_view_all' => 1, '_um_can_make_private_profile' => 1, '_um_can_access_private_profile' => 1, '_um_status' => 'approved', '_um_auto_approve_act' => 'redirect_profile', ), ); $this->permalink_base_options = array( 'user_login' => __( 'Username', 'ultimate-member' ), 'name' => __( 'First and Last Name with \'.\'', 'ultimate-member' ), 'name_dash' => __( 'First and Last Name with \'-\'', 'ultimate-member' ), 'name_plus' => __( 'First and Last Name with \'+\'', 'ultimate-member' ), 'user_id' => __( 'User ID', 'ultimate-member' ), 'hash' => __( 'Unique hash string', 'ultimate-member' ), 'custom_meta' => __( 'Custom usermeta', 'ultimate-member' ), ); $this->permalink_base_options = apply_filters( 'um_config_permalink_base_options', $this->permalink_base_options ); $this->display_name_options = array( 'default' => __( 'Default WP Display Name', 'ultimate-member' ), 'nickname' => __( 'Nickname', 'ultimate-member' ), 'username' => __( 'Username', 'ultimate-member' ), 'full_name' => __( 'First name & last name', 'ultimate-member' ), 'sur_name' => __( 'Last name & first name', 'ultimate-member' ), 'initial_name' => __( 'First name & first initial of last name', 'ultimate-member' ), 'initial_name_f' => __( 'First initial of first name & last name', 'ultimate-member' ), 'first_name' => __( 'First name only', 'ultimate-member' ), 'field' => __( 'Custom field(s)', 'ultimate-member' ), ); } /** * Get UM Pages * * @return array */ function get_core_pages() { $permalink = array(); $core_pages = array_keys( $this->core_pages ); if ( empty( $core_pages ) ) { return $permalink; } foreach ( $core_pages as $page_key ) { $page_option_key = UM()->options()->get_predefined_page_option_key( $page_key ); $permalink[ $page_key ] = UM()->options()->get( $page_option_key ); } return $permalink; } /** * @todo make config class not cycled */ public function set_core_page() { $this->core_pages = array( 'user' => array( 'title' => __( 'User', 'ultimate-member' ), ), 'login' => array( 'title' => __( 'Login', 'ultimate-member' ), ), 'register' => array( 'title' => __( 'Register', 'ultimate-member' ), ), 'members' => array( 'title' => __( 'Members', 'ultimate-member' ), ), 'logout' => array( 'title' => __( 'Logout', 'ultimate-member' ), ), 'account' => array( 'title' => __( 'Account', 'ultimate-member' ), ), 'password-reset' => array( 'title' => __( 'Password Reset', 'ultimate-member' ), ), ); $this->core_pages = apply_filters( 'um_core_pages', $this->core_pages ); } /** * Get variable from config * * @param string $key * * @return mixed * * @since 2.8.3 */ public function get( $key ) { if ( empty( $this->$key ) ) { $this->{'init_' . $key}(); } return apply_filters( 'um_config_get', $this->$key, $key ); } /** * Init plugin core pages. * * @since 2.8.3 */ public function init_predefined_pages() { $core_forms = get_option( 'um_core_forms', array() ); $core_directories = get_option( 'um_core_directories', array() ); $setup_shortcodes = array_merge( array( 'profile' => '', 'login' => '', 'register' => '', 'members' => '', ), array_merge( $core_forms, $core_directories ) ); $this->predefined_pages = array( 'user' => array( 'title' => __( 'User', 'ultimate-member' ), 'content' => ! empty( $setup_shortcodes['profile'] ) ? '[ultimatemember form_id="' . $setup_shortcodes['profile'] . '"]' : '', ), 'login' => array( 'title' => __( 'Login', 'ultimate-member' ), 'content' => ! empty( $setup_shortcodes['login'] ) ? '[ultimatemember form_id="' . $setup_shortcodes['login'] . '"]' : '', ), 'register' => array( 'title' => __( 'Register', 'ultimate-member' ), 'content' => ! empty( $setup_shortcodes['register'] ) ? '[ultimatemember form_id="' . $setup_shortcodes['register'] . '"]' : '', ), 'members' => array( 'title' => __( 'Members', 'ultimate-member' ), 'content' => ! empty( $setup_shortcodes['members'] ) ? '[ultimatemember form_id="' . $setup_shortcodes['members'] . '"]' : '', ), 'logout' => array( 'title' => __( 'Logout', 'ultimate-member' ), 'content' => '', ), 'account' => array( 'title' => __( 'Account', 'ultimate-member' ), 'content' => '[ultimatemember_account]', ), 'password-reset' => array( 'title' => __( 'Password Reset', 'ultimate-member' ), 'content' => '[ultimatemember_password]', ), ); /** * Filters Ultimate Member predefined pages. * * @param {array} $pages Predefined pages. * * @return {array} Predefined pages. * * @since 2.8.3 * @hook um_predefined_pages * * @example Extend UM core pages. * function my_predefined_pages( $pages ) { * // your code here * $pages['my_page_key'] = array( 'title' => __( 'My Page Title', 'my-translate-key' ), 'content' => 'my-page-predefined-content' ); * return $pages; * } * add_filter( 'um_predefined_pages', 'my_predefined_pages' ); */ $this->predefined_pages = apply_filters( 'um_predefined_pages', $this->predefined_pages ); // since 2.8.3 legacy hook // @todo remove in 3.0 version $this->predefined_pages = apply_filters( 'um_core_pages', $this->predefined_pages ); $this->core_pages = $this->predefined_pages; } } }