'array', 'description' => '', 'sanitize_callback' => [$sanitization, 'sanitize_for_options'], 'show_in_rest' => false, 'default' => array(), ) ); // ================================================================= // Call WordPress globals and set new globals required for the fields // ================================================================= global $wp_version, $wp_roles, $wpdb, $asenha_all_post_types, $asenha_public_post_types, $asenha_nonpublic_post_types, $asenha_gutenberg_post_types, $asenha_revisions_post_types, $active_plugin_slugs, $workable_nodes ; $options = get_option( ASENHA_SLUG_U, array() ); $options_extra = get_option( ASENHA_SLUG_U . '_extra', array() ); $roles = $wp_roles->get_names(); // Get array of slugs and plural labels for all post types, e.g. array( 'post' => 'Posts', 'page' => 'Pages' ) $asenha_all_post_types = array(); $all_post_type_names = get_post_types( array(), 'names' ); foreach ( $all_post_type_names as $post_type_name ) { $post_type_object = get_post_type_object( $post_type_name ); $asenha_all_post_types[$post_type_name] = $post_type_object->label; } asort( $asenha_all_post_types ); // sort by value, ascending // Get array of slugs and plural labels for public post types, e.g. array( 'post' => 'Posts', 'page' => 'Pages' ) $asenha_public_post_types = array(); $asenha_public_post_types = $common_methods->get_public_post_type_slugs(); // Get array of slugs and plural labels for non-public post types, e.g. array( 'post' => 'Posts', 'page' => 'Pages' ) $asenha_nonpublic_post_types = array(); $nonpublic_post_type_names = get_post_types( array( 'public' => false, ), 'names' ); foreach ( $nonpublic_post_type_names as $post_type_name ) { $post_type_object = get_post_type_object( $post_type_name ); $asenha_nonpublic_post_types[$post_type_name] = $post_type_object->label; } asort( $asenha_nonpublic_post_types ); // sort by value, ascending // Get array of slugs and plural labels for post types that can be edited with the Gutenberg block editor, e.g. array( 'post' => 'Posts', 'page' => 'Pages' ) $asenha_gutenberg_post_types = array(); $gutenberg_not_applicable_types = array( 'attachment', 'revision', 'nav_menu_item', 'custom_css', 'customize_changeset', 'oembed_cache', 'user_request', 'wp_block', 'wp_template', 'wp_template_part', 'wp_global_styles', 'wp_navigation', 'wp_font_family', 'wp_font_face', // ACF 'acf-post-type', 'acf-taxonomy', 'acf-field-group', 'acf-ui-options-page', // Elementor 'e-landing-page', 'elementor_library', 'elementor_snippet', 'elementor_font', 'elementor_icons', // Oxygen Classic 'ct_template', 'scheduled-action', // Breakdance 'breakdance_template', 'breakdance_header', 'breakdance_footer', 'breakdance_popup', 'breakdance_block', 'breakdance_acf_block', 'breakdance_form_res', // Bricks 'bricks_template', 'bricks_fonts', ); $rest_api_enabled_post_type_names = get_post_types( array( 'show_in_rest' => true, ), 'objects' ); foreach ( $rest_api_enabled_post_type_names as $post_type_slug => $post_type_info ) { $asenha_gutenberg_post_types[$post_type_slug] = $post_type_info->label; if ( in_array( $post_type_slug, $gutenberg_not_applicable_types ) ) { unset($asenha_gutenberg_post_types[$post_type_slug]); } } // Get array of slugs and plural labels for post types supporting revisions, e.g. array( 'post' => 'Posts', 'page' => 'Pages' ) $asenha_revisions_post_types = array(); foreach ( get_post_types( array(), 'names' ) as $post_type_slug ) { // post type slug/name if ( post_type_supports( $post_type_slug, 'revisions' ) ) { $post_type_object = get_post_type_object( $post_type_slug ); if ( property_exists( $post_type_object, 'label' ) ) { $asenha_revisions_post_types[$post_type_slug] = $post_type_object->label; } } } // Get array of active plugins slugs $active_plugins = get_option( 'active_plugins', array() ); $active_plugin_slugs = array(); foreach ( $active_plugins as $active_plugin ) { // e.g. debug-log-manager/debug-log-manager.php $active_plugin = explode( "/", $active_plugin ); $active_plugin_slugs[] = $active_plugin[0]; } $background_pattern_options = array(); // Enable Content Duplication $content_duplication = new Content_Duplication(); $field_id = 'enable_duplication'; $field_slug = 'enable-duplication'; $field_title = __( 'Content Duplication', 'admin-site-enhancements' ); $field_description = __( 'Enable one-click duplication of pages, posts and public post types. The corresponding taxonomy terms and post meta will also be duplicated.', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => $field_description, 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle content-management ' . $field_slug, ) ); $field_id = 'duplication_redirect_destination'; $field_slug = 'duplication-redirect-destination'; add_settings_field( $field_id, __( 'After duplication, redirect to:', 'admin-site-enhancements' ), [$render_field, 'render_radio_buttons_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_radios' => array( __( 'Edit screen', 'admin-site-enhancements' ) => 'edit', __( 'List view', 'admin-site-enhancements' ) => 'list', ), 'field_default' => 'edit', 'class' => 'asenha-radio-buttons shift-up content-management ' . $field_slug, ) ); // Content Order $field_id = 'content_order'; $field_slug = 'content-order'; $field_title = __( 'Content Order', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Enable custom ordering of various "hierarchical" content types or those supporting "page attributes". A new \'Order\' sub-menu will appear for enabled content type(s). The "All {Posts}" list page for enabled post types in wp-admin will automatically use the custom order.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle content-management ' . $field_slug, ) ); $field_id = 'content_order_for'; $field_slug = 'content-order-for'; if ( is_array( $asenha_all_post_types ) ) { $inapplicable_post_types = array( // 'asenha_code_snippet', // ASE code snippets 'asenha_redirect', ); foreach ( $asenha_all_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post, $post_type_label is Posts $is_hierarchical_label = ( is_post_type_hierarchical( $post_type_slug ) ? ' - Hierarchical' : '' ); if ( (post_type_supports( $post_type_slug, 'page-attributes' ) || is_post_type_hierarchical( $post_type_slug )) && !in_array( $post_type_slug, $inapplicable_post_types ) ) { add_settings_field( $field_id . '_' . $post_type_slug, '', [$render_field, 'render_checkbox_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'parent_field_id' => $field_id, 'field_id' => $post_type_slug, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . '][' . $post_type_slug . ']', 'field_label' => $post_type_label . ' (' . $post_type_slug . ')' . $is_hierarchical_label, 'class' => 'asenha-checkbox asenha-hide-th asenha-half content-management ' . $field_slug . ' ' . $post_type_slug, ) ); } } } // Media Files Visibility Control $field_id = 'media_files_visibility_control'; $field_slug = 'media-files-visibility-control'; $field_title = __( 'Media Files Visibility Control', 'admin-site-enhancements' ); $field_description = __( 'Limit media files visibility so only administrators can see all media files. Non-administrator users will only see media files they uploaded themselves in the media library and in the modal window to add/insert media.', 'admin-site-enhancements' ); $field_options_wrapper = false; $field_options_moreless = false; add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => $field_description, 'field_options_wrapper' => $field_options_wrapper, 'field_options_moreless' => $field_options_moreless, 'class' => 'asenha-toggle content-management ' . $field_slug, ) ); // Media Replacement $field_id = 'enable_media_replacement'; $field_slug = 'enable-media-replacement'; $field_title = __( 'Media Replacement', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Easily replace any type of media file with a new one while retaining the existing media ID, publish date and file name. So, no existing links will break.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle content-management ' . $field_slug, ) ); $field_id = 'disable_media_replacement_cache_busting'; $field_slug = 'disable-media-replacement-cache-busting'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Disable adding timestamp URL parameter on newly replaced images for busting the browser cache.', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th content-management ' . $field_slug, ) ); // Enable SVG Upload $field_id = 'enable_svg_upload'; $field_slug = 'enable-svg-upload'; $field_title = __( 'SVG Upload', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Allow some or all user roles to upload SVG files, which will then be sanitized to keep things secure.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle content-management ' . $field_slug, ) ); $field_id = 'enable_svg_upload_for'; $field_slug = 'enable-svg-upload-for'; if ( is_array( $roles ) ) { foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator add_settings_field( $field_id . '_' . $role_slug, '', [$render_field, 'render_checkbox_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'parent_field_id' => $field_id, 'field_id' => $role_slug, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . '][' . $role_slug . ']', 'field_label' => $role_label, 'class' => 'asenha-checkbox asenha-hide-th asenha-half admin-interface ' . $field_slug . ' ' . $role_slug, ) ); } } // Enable AVIF Upload $field_id = 'enable_avif_upload'; $field_slug = 'enable-avif-upload'; $field_title = __( 'AVIF Upload', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Enable uploading AVIF files in the Media Library. You can convert your existing PNG, JPG and GIF files using a tool like Squoosh.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle content-management ' . $field_slug, ) ); $field_id = 'avif_support_status'; $field_slug = 'avif-support-status'; add_settings_field( $field_id, '', [$render_field, 'render_avif_support_status'], ASENHA_SLUG, 'main-section', array( 'class' => 'asenha-toggle content-management ' . $field_slug, ) ); // Enable External Permalinks $field_id = 'enable_external_permalinks'; $field_slug = 'enable-external-permalinks'; $field_title = __( 'External Permalinks', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Enable pages, posts and/or custom post types to have permalinks that point to external URLs. The rel="noopener noreferrer nofollow" attribute will also be added for enhanced security and SEO benefits. Compatible with links added using Page Links To.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle content-management ' . $field_slug, ) ); $field_id = 'enable_external_permalinks_for'; $field_slug = 'enable-external-permalinks-for'; if ( is_array( $asenha_public_post_types ) ) { foreach ( $asenha_public_post_types as $post_type_slug => $post_type_label ) { // e.g. $post_type_slug is post, $post_type_label is Posts if ( 'attachment' != $post_type_slug ) { add_settings_field( $field_id . '_' . $post_type_slug, '', [$render_field, 'render_checkbox_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'parent_field_id' => $field_id, 'field_id' => $post_type_slug, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . '][' . $post_type_slug . ']', 'field_label' => $post_type_label . ' (' . $post_type_slug . ')', 'class' => 'asenha-checkbox asenha-checkbox-item asenha-hide-th asenha-half content-management ' . $field_slug . ' ' . $post_type_slug, ) ); } } } // Open All External Links in New Tab $field_id = 'external_links_new_tab'; $field_slug = 'external-links-new-tab'; $field_title = __( 'Open All External Links in New Tab', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Force all links to external sites in post content, where the_content hook is used, to open in new browser tab via target="_blank" attribute. The rel="noopener noreferrer nofollow" attribute will also be added for enhanced security and SEO benefits.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle content-management ' . $field_slug, ) ); // Allow Custom Nav Menu Items to Open in New Tab $field_id = 'custom_nav_menu_items_new_tab'; $field_slug = 'custom-nav-menu-items-new-tab'; $field_title = __( 'Allow Custom Navigation Menu Items to Open in New Tab', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Allow custom navigation menu items to have links that open in new browser tab via target="_blank" attribute. The rel="noopener noreferrer nofollow" attribute will also be added for enhanced security and SEO benefits.', 'admin-site-enhancements' ), 'field_options_wrapper' => false, 'field_options_moreless' => false, 'class' => 'asenha-toggle content-management ' . $field_slug, ) ); // Enable Auto-Publishing of Posts with Missed Schedules $field_id = 'enable_missed_schedule_posts_auto_publish'; $field_slug = 'enable-missed-schedule-posts-auto-publish'; $field_title = __( 'Auto-Publish Posts with Missed Schedule', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Trigger publishing of scheduled posts of all types marked with "missed schedule", anytime the site is visited.', 'admin-site-enhancements' ), 'class' => 'asenha-toggle content-management ' . $field_slug, ) ); // ================================================================= // ADMIN INTERFACE // ================================================================= // Hide or Modify Elements / Clean Up Admin Bar $field_id = 'hide_modify_elements'; $field_slug = 'hide-modify-elements'; add_settings_field( $field_id, __( 'Clean Up Admin Bar', 'admin-site-enhancements' ), [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Remove various elements from the admin bar.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle admin-interface ' . $field_slug, ) ); $field_id = 'hide_ab_wp_logo_menu'; $field_slug = 'hide-ab-wp-logo-menu'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Remove WordPress logo/menu', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th admin-interface ' . $field_slug, ) ); $field_id = 'hide_ab_site_menu'; $field_slug = 'hide-ab-site-menu'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Remove home icon and site name', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th admin-interface ' . $field_slug, ) ); $field_id = 'hide_ab_customize_menu'; $field_slug = 'hide-ab-customize-menu'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Remove customize menu', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th admin-interface ' . $field_slug, ) ); $field_id = 'hide_ab_updates_menu'; $field_slug = 'hide-ab-updates-menu'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Remove updates counter/link', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th admin-interface ' . $field_slug, ) ); $field_id = 'hide_ab_comments_menu'; $field_slug = 'hide-ab-comments-menu'; $field_label = __( 'Remove comments counter/link', 'admin-site-enhancements' ); add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => $field_label, 'class' => 'asenha-checkbox asenha-hide-th admin-interface ' . $field_slug, ) ); $field_id = 'hide_ab_new_content_menu'; $field_slug = 'hide-ab-new-content-menu'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Remove new content menu', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th admin-interface ' . $field_slug, ) ); $field_id = 'hide_ab_howdy'; $field_slug = 'hide-ab-howdy'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Remove \'Howdy\'', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th admin-interface ' . $field_slug, ) ); $field_id = 'hide_help_drawer'; $field_slug = 'hide-help-drawer'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Remove the Help tab and drawer', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th admin-interface ' . $field_slug, ) ); // Hide Admin Notices $field_id = 'hide_admin_notices'; $field_slug = 'hide-admin-notices'; $field_title = __( 'Hide Admin Notices', 'admin-site-enhancements' ); $field_options_wrapper = false; $field_options_moreless = false; add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Clean up admin pages by moving notices into a separate panel easily accessible via the admin bar.', 'admin-site-enhancements' ), 'field_options_wrapper' => $field_options_wrapper, 'field_options_moreless' => $field_options_moreless, 'class' => 'asenha-toggle admin-interface ' . $field_slug, ) ); // Disable Dashboard Widgets $field_id = 'disable_dashboard_widgets'; $field_slug = 'disable-dashboard-widgets'; $field_title = __( 'Disable Dashboard Widgets', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Clean up and speed up the dashboard by completely disabling some or all widgets. Disabled widgets won\'t load any assets nor show up under Screen Options.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle admin-interface ' . $field_slug, ) ); $field_id = 'disable_welcome_panel_in_dashboard'; $field_slug = 'disable-welcome-panel-in-dashboard'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Welcome to WordPress', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th admin-interface ' . $field_slug, ) ); $field_id = 'disabled_dashboard_widgets'; $field_slug = 'disabled-dashboard-widgets'; if ( array_key_exists( 'dashboard_widgets', $options_extra ) ) { $dashboard_widgets = $options_extra['dashboard_widgets']; } else { $disable_dashboard_widgets = new Disable_Dashboard_Widgets(); $dashboard_widgets = $disable_dashboard_widgets->get_dashboard_widgets(); $options_extra['dashboard_widgets'] = $dashboard_widgets; update_option( ASENHA_SLUG_U . '_extra', $options_extra, true ); } foreach ( $dashboard_widgets as $widget ) { add_settings_field( $field_id . '_' . $widget['id'], '', [$render_field, 'render_checkbox_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'parent_field_id' => $field_id, 'field_id' => $widget['id'] . '__' . $widget['context'] . '__' . $widget['priority'], 'field_name' => ASENHA_SLUG_U . '[' . $field_id . '][' . $widget['id'] . '__' . $widget['context'] . '__' . $widget['priority'] . ']', 'field_label' => $widget['title'] . ' (' . $widget['id'] . ')', 'class' => 'asenha-checkbox asenha-hide-th admin-interface ' . $field_slug . ' ' . $widget['id'], ) ); } // Hide Admin Bar $field_id = 'hide_admin_bar'; $field_slug = 'hide-admin-bar'; $field_title = __( 'Hide Admin Bar', 'admin-site-enhancements' ); $field_description = __( 'Hide admin bar on the frontend for all or some user roles.', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => $field_description, 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle admin-interface ' . $field_slug, ) ); $field_id = 'hide_admin_bar_for'; $field_slug = 'hide-admin-bar-for'; if ( is_array( $roles ) ) { foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator add_settings_field( $field_id . '_' . $role_slug, '', [$render_field, 'render_checkbox_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'parent_field_id' => $field_id, 'field_id' => $role_slug, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . '][' . $role_slug . ']', 'field_label' => $role_label, 'class' => 'asenha-checkbox asenha-hide-th asenha-half admin-interface ' . $field_slug . ' ' . $role_slug, ) ); } } $field_id = 'hide_admin_bar_always_show_for_admins'; $field_slug = 'hide-admin-bar-always-show-for-admins'; add_settings_field( $field_id, '', // Field title [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Always show the admin bar for administrators on the frontend. Useful for when an administrator has multiple user roles, and the admin bar is set to be hidden for the other user role(s).', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th asenha-th-border-top admin-interface ' . $field_slug, ) ); $field_id = 'hide_admin_bar_description'; $field_slug = 'hide-admin-bar-description'; add_settings_field( $field_id, '', [$render_field, 'render_description_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_description' => '
' . __( 'The settings above will override the \'Toolbar\' settings in the user profile edit screen.', 'admin-site-enhancements' ) . '
', 'class' => 'asenha-description login-logout ' . $field_slug, ) ); // Wider Admin Menu $field_id = 'wider_admin_menu'; $field_slug = 'wider-admin-menu'; $field_title = __( 'Wider Admin Menu', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Give the admin menu more room to better accommodate wider items.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'class' => 'asenha-toggle admin-interface ' . $field_slug, ) ); $field_id = 'admin_menu_width'; $field_slug = 'admin-menu-width'; add_settings_field( $field_id, '', [$render_field, 'render_select_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_type' => 'with-prefix-suffix', 'field_prefix' => __( 'Set width to', 'admin-site-enhancements' ), 'field_suffix' => '' . __( '(Default is 160px)', 'admin-site-enhancements' ) . '', 'field_select_options' => array( '180px' => '180px', '200px' => '200px', '220px' => '220px', '240px' => '240px', '260px' => '260px', '280px' => '280px', '300px' => '300px', ), 'field_select_default' => 200, 'field_intro' => '', 'field_description' => '', 'class' => 'asenha-number asenha-hide-th extra-narrow shift-up admin-interface ' . $field_slug, 'display_none_on_load' => true, ) ); // Admin Menu Organizer $field_id = 'customize_admin_menu'; $field_slug = 'customize-admin-menu'; $field_title = __( 'Admin Menu Organizer', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Customize the order of the admin menu and optionally change menu item title or hide some items.', 'admin-site-enhancements' ) . ' ' . sprintf( /* translators: %s is URL to the Admin Menu Organizer settings page */ __( 'Once enabled, you can find the Admin Menu item under the Settings menu.', 'admin-site-enhancements' ), admin_url( 'options-general.php?page=admin-menu-organizer' ) ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle admin-interface ' . $field_slug, ) ); $field_id = 'admin_menu_organizer_sticky_collapse_menu'; $field_slug = 'admin-menu-organizer-sticky-collapse-menu'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Make "Collapse Menu" sticky at the bottom of the admin menu', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th admin-interface ' . $field_slug, ) ); // Show Custom Taxonomy Filters $field_id = 'show_custom_taxonomy_filters'; $field_slug = 'show-custom-taxonomy-filters'; $field_title = __( 'Show Custom Taxonomy Filters', 'admin-site-enhancements' ); $field_options_wrapper = false; $field_options_moreless = false; add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Show additional filter(s) on list tables for hierarchical, custom taxonomies.', 'admin-site-enhancements' ), 'field_options_wrapper' => $field_options_wrapper, 'field_options_moreless' => $field_options_moreless, 'class' => 'asenha-toggle admin-interface ' . $field_slug, ) ); // Enhance List Tables $field_id = 'enhance_list_tables'; $field_slug = 'enhance-list-tables'; $field_title = __( 'Enhance List Tables', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Improve the usefulness of listing pages for various post types and taxonomies, media, comments and users by adding / removing columns and elements.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle content-management ' . $field_slug, ) ); // Show Featured Image Column $field_id = 'show_featured_image_column'; $field_slug = 'show-featured-image-column'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Show featured image column', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th content-management ' . $field_slug, ) ); // Show Excerpt Column $field_id = 'show_excerpt_column'; $field_slug = 'show-excerpt-column'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Show excerpt column', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th content-management ' . $field_slug, ) ); // Show Last Modified Column $field_id = 'show_last_modified_column'; $field_slug = 'show-last-modified-column'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Show last modified column', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th content-management ' . $field_slug, ) ); // Show ID Column $field_id = 'show_id_column'; $field_slug = 'show-id-column'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Show ID column', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th content-management ' . $field_slug, ) ); // Show File Size Column in Media Library $field_id = 'show_file_size_column'; $field_slug = 'show-file-size-column'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Show file size column in media library', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th content-management ' . $field_slug, ) ); // Show ID in Action Row $field_id = 'show_id_in_action_row'; $field_slug = 'show-id-in-action_row'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Show ID in action rows along with links for Edit, View, etc.', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th content-management ' . $field_slug, ) ); // Hide Date Column $field_id = 'hide_date_column'; $field_slug = 'hide-date-column'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Remove date column', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th content-management ' . $field_slug, ) ); // Hide Comments Column $field_id = 'hide_comments_column'; $field_slug = 'hide-comments-column'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Remove comments column', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th content-management ' . $field_slug, ) ); // Hide Post Tags Column $field_id = 'hide_post_tags_column'; $field_slug = 'hide-post-tags-column'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => __( 'Remove tags column (for posts)', 'admin-site-enhancements' ), 'class' => 'asenha-checkbox asenha-hide-th content-management ' . $field_slug, ) ); // Various Admin UI Enhancements $field_id = 'various_admin_ui_enhancements'; $field_slug = 'various-admin-ui-enhancements'; $field_title = __( 'Various Admin UI Enhancements', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Various, smaller enhancements for different parts of the admin interface.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle admin-interface ' . $field_slug, ) ); // Media Library Infinite Scrolling $field_id = 'media_library_infinite_scrolling'; $field_slug = 'media-library-infinite-scrolling'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => '' . __( 'Media Library Infinite Scrolling', 'admin-site-enhancements' ) . '
' . __( 'Re-enable infinite scrolling in the grid view of the media library. Useful for scrolling through a large library.', 'admin-site-enhancements' ), 'class' => 'asenha-toggle admin-interface ' . $field_slug, ) ); // Display Active Plugins First $field_id = 'display_active_plugins_first'; $field_slug = 'display-active-plugins-first'; add_settings_field( $field_id, '', [$render_field, 'render_checkbox_plain'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_label' => '' . __( 'Display Active Plugins First', 'admin-site-enhancements' ) . '
' . __( 'Display active / activated plugins at the top of the Installed Plugins list. Useful when your site has many deactivated plugins for testing or development purposes.', 'admin-site-enhancements' ), 'class' => 'asenha-toggle admin-interface ' . $field_slug, ) ); // Custom Admin Footer Text $field_id = 'custom_admin_footer_text'; $field_slug = 'custom-admin-footer-text'; $field_title = __( 'Custom Admin Footer Text', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Customize the text you see on the footer of wp-admin pages other than this ASE settings page.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle utilities ' . $field_slug, ) ); $media_buttons = false; $quicktags = false; $toolbar1 = 'bold,italic,underline'; $field_id = 'custom_admin_footer_left'; $field_slug = 'custom-admin-footer-left'; // https://developer.wordpress.org/reference/classes/_wp_editors/parse_settings/ // https://www.tiny.cloud/docs/advanced/available-toolbar-buttons/ $editor_settings = array( 'media_buttons' => $media_buttons, 'textarea_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'textarea_rows' => 3, 'tiny_mce' => true, 'tinymce' => array( 'toolbar1' => $toolbar1, 'content_css' => ASENHA_URL . 'assets/css/settings-wpeditor.css', ), 'editor_css' => '', 'quicktags' => $quicktags, 'default_editor' => 'tinymce', ); add_settings_field( $field_id, __( 'Left Side', 'admin-site-enhancements' ), [$render_field, 'render_wpeditor_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_type' => 'textarea', 'field_intro' => '', 'field_description' => __( 'Default text is: Thank you for creating with WordPress.', 'admin-site-enhancements' ), 'field_placeholder' => '', 'editor_settings' => $editor_settings, 'class' => 'asenha-textarea admin-interface has-wpeditor ' . $field_slug, ) ); $field_id = 'custom_admin_footer_right'; $field_slug = 'custom-admin-footer-right'; // https://developer.wordpress.org/reference/classes/_wp_editors/parse_settings/ // https://www.tiny.cloud/docs/advanced/available-toolbar-buttons/ $editor_settings = array( 'media_buttons' => $media_buttons, 'textarea_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'textarea_rows' => 3, 'tiny_mce' => true, 'tinymce' => array( 'toolbar1' => $toolbar1, 'content_css' => ASENHA_URL . 'assets/css/settings-wpeditor.css', ), 'editor_css' => '', 'quicktags' => $quicktags, 'default_editor' => 'tinymce', ); add_settings_field( $field_id, __( 'Right Side', 'admin-site-enhancements' ), [$render_field, 'render_wpeditor_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_type' => 'textarea', 'field_rows' => 1, 'field_intro' => '', 'field_description' => sprintf( /* translators: %s is the WordPress version number */ __( 'Default text is: Version %s', 'admin-site-enhancements' ), $wp_version ), 'field_placeholder' => '', 'editor_settings' => $editor_settings, 'class' => 'asenha-textarea admin-interface has-wpeditor ' . $field_slug, ) ); // ================================================================= // LOG IN/OUT | REGISTER // ================================================================= // Change Login URL $field_id = 'change_login_url'; $field_slug = 'change-login-url'; $field_title = __( 'Change Login URL', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => sprintf( /* translators: %s is the default login URL */ __( 'Default is %s', 'admin-site-enhancements' ), site_url( '/wp-login.php' ) ), 'field_options_moreless' => true, 'field_options_wrapper' => true, 'class' => 'asenha-toggle login-logout ' . $field_slug, ) ); $field_id = 'custom_login_slug'; $field_slug = 'custom-login-slug'; add_settings_field( $field_id, __( 'New login URL:', 'admin-site-enhancements' ), [$render_field, 'render_text_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_type' => 'with-prefix-suffix', 'field_prefix' => site_url() . '/', 'field_suffix' => '/', 'field_placeholder' => __( 'e.g. backend', 'admin-site-enhancements' ), 'field_description' => '', 'class' => 'asenha-text with-prefix-suffix login-logout ' . $field_slug, ) ); $field_id = 'custom_login_whitelist'; $field_slug = 'custom-login-whitelist'; add_settings_field( $field_id, '' . __( 'Allow login from:', 'admin-site-enhancements' ) . ' ' . site_url() . '/', [$render_field, 'render_textarea_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_type' => 'textarea', 'field_rows' => 3, 'field_intro' => '', 'field_description' => __( 'Enter one path per line', 'admin-site-enhancements' ), 'field_placeholder' => __( 'e.g. dashboard', 'admin-site-enhancements' ), 'class' => 'asenha-textarea margin-top-16 login-logout ' . $field_slug, ) ); $field_id = 'change_login_url_description'; $field_slug = 'change-login-url-description'; $field_description = '
' . __( '"New login URL" only works for/with the default WordPress login page.', 'admin-site-enhancements' ) . ' ' . __( 'Please use something other than \'login\' for the custom login slug.', 'admin-site-enhancements' ) . '

' . __( 'If you have a login page you manually created with a page builder or with another plugin, please add them to the "Allow login from" section.', 'admin-site-enhancements' ) . '

' . __( 'If you need 2FA, the Two Factor plugin has been confirmed to be compatible.', 'admin-site-enhancements' ) . '
'; add_settings_field( $field_id, '', [$render_field, 'render_description_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_description' => $field_description, 'class' => 'asenha-description login-logout ' . $field_slug, ) ); // Login ID Type $field_id = 'login_id_type_restriction'; $field_slug = 'login-id-type-restriction'; $field_title = __( 'Login ID Type', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Restrict login ID to username or email address only.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'class' => 'asenha-toggle login-logout ' . $field_slug, ) ); $field_id = 'login_id_type'; $field_slug = 'login-id-type'; add_settings_field( $field_id, '', [$render_field, 'render_radio_buttons_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_radios' => array( __( 'Username only', 'admin-site-enhancements' ) => 'username', __( 'Email address only', 'admin-site-enhancements' ) => 'email', ), 'field_default' => 'username', 'class' => 'asenha-radio-buttons shift-up login-logout ' . $field_slug, ) ); // Use Site Identity on the Login Page $field_id = 'site_identity_on_login'; $field_slug = 'site-identity-on-login'; $field_title = __( 'Site Identity on Login Page', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => sprintf( /* translators: %s is URL to the Customizer */ __( 'Use the site icon and URL to replace the default WordPress logo with link to wordpress.org on the login page. Go to General Settings or the Customizer to set or change your site icon.', 'admin-site-enhancements' ), admin_url( 'options-general.php' ), admin_url( 'customize.php' ) ), 'field_options_wrapper' => true, 'class' => 'asenha-toggle login-logout ' . $field_slug, ) ); // Enable Log In/Out Menu $field_id = 'enable_login_logout_menu'; $field_slug = 'enable-login-logout-menu'; $field_title = __( 'Log In/Out Menu', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Enable log in, log out and dynamic log in/out menu item for addition to any menu.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle login-logout ' . $field_slug, ) ); // Last Login Column $field_id = 'enable_last_login_column'; $field_slug = 'enable-last-login-column'; $field_title = __( 'Last Login Column', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Log when users on the site last logged in and display the date and time in the users list table.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle login-logout ' . $field_slug, ) ); // Registration Date Column $field_id = 'registration_date_column'; $field_slug = 'registration-date-column'; $field_title = __( 'Registration Date Column', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Display the registration date and time in the users list table.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle login-logout ' . $field_slug, ) ); // Redirect After Login $field_id = 'redirect_after_login'; $field_slug = 'redirect-after-login'; $field_title = __( 'Redirect After Login', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Set custom redirect URL for all or some user roles after login.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle login-logout ' . $field_slug, ) ); $field_id = 'redirect_after_login_to_slug'; $field_slug = 'redirect-after-login-to-slug'; add_settings_field( $field_id, __( 'Redirect to:', 'admin-site-enhancements' ), [$render_field, 'render_text_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_type' => 'with-prefix-suffix', 'field_prefix' => site_url() . '/', 'field_suffix' => __( 'for:', 'admin-site-enhancements' ), 'field_placeholder' => '', 'field_description' => '', 'class' => 'asenha-text with-prefix-suffix login-logout ' . $field_slug, ) ); $field_id = 'redirect_after_login_for'; $field_slug = 'redirect-after-login-for'; if ( is_array( $roles ) ) { foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator add_settings_field( $field_id . '_' . $role_slug, '', [$render_field, 'render_checkbox_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'parent_field_id' => $field_id, 'field_id' => $role_slug, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . '][' . $role_slug . ']', 'field_label' => $role_label, 'class' => 'asenha-checkbox asenha-hide-th asenha-half login-logout ' . $field_slug . ' ' . $role_slug, ) ); } } // Redirect After Logout $field_id = 'redirect_after_logout'; $field_slug = 'redirect-after-logout'; $field_title = __( 'Redirect After Logout', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Set custom redirect URL for all or some user roles after logout.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle login-logout ' . $field_slug, ) ); $field_id = 'redirect_after_logout_to_slug'; $field_slug = 'redirect-after-logout-to-slug'; add_settings_field( $field_id, __( 'Redirect to:', 'admin-site-enhancements' ), [$render_field, 'render_text_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_type' => 'with-prefix-suffix', 'field_prefix' => site_url() . '/', 'field_suffix' => __( 'for:', 'admin-site-enhancements' ), 'field_description' => '', 'class' => 'asenha-text with-prefix-suffix login-logout ' . $field_slug, ) ); $field_id = 'redirect_after_logout_for'; $field_slug = 'redirect-after-logout-for'; if ( is_array( $roles ) ) { foreach ( $roles as $role_slug => $role_label ) { // e.g. $role_slug is administrator, $role_label is Administrator add_settings_field( $field_id . '_' . $role_slug, '', [$render_field, 'render_checkbox_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'parent_field_id' => $field_id, 'field_id' => $role_slug, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . '][' . $role_slug . ']', 'field_label' => $role_label, 'class' => 'asenha-checkbox asenha-hide-th asenha-half login-logout ' . $field_slug . ' ' . $role_slug, ) ); } } // Disable User Account $field_id = 'disable_user_account'; $field_slug = 'disable-user-account'; $field_title = __( 'Disable User Account', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Allow administrators to disable login for individual users from the Users list and user profile, while preserving their content and display name.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle login-logout ' . $field_slug, ) ); // Enable Custom Admin CSS $field_id = 'enable_custom_admin_css'; $field_slug = 'enable-custom-admin-css'; $field_title = __( 'Custom Admin CSS', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Add custom CSS on all admin pages for all user roles.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle custom-code ' . $field_slug, ) ); $field_id = 'custom_admin_css'; $field_slug = 'custom-admin-css'; add_settings_field( $field_id, '', [$render_field, 'render_textarea_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_type' => 'textarea', 'field_rows' => 30, 'field_intro' => '', 'field_description' => '', 'class' => 'asenha-textarea asenha-hide-th syntax-highlighted custom-code ' . $field_slug, ) ); // Enable Custom Frontend CSS $field_id = 'enable_custom_frontend_css'; $field_slug = 'enable-custom-frontend-css'; $field_title = __( 'Custom Frontend CSS', 'admin-site-enhancements' ); add_settings_field( $field_id, $field_title, [$render_field, 'render_checkbox_toggle'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_title' => $field_title, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_description' => __( 'Add custom CSS on all frontend pages for all user roles.', 'admin-site-enhancements' ), 'field_options_wrapper' => true, 'field_options_moreless' => true, 'class' => 'asenha-toggle custom-code ' . $field_slug, ) ); $field_id = 'custom_frontend_css'; $field_slug = 'custom-frontend-css'; add_settings_field( $field_id, '', [$render_field, 'render_textarea_subfield'], ASENHA_SLUG, 'main-section', array( 'option_name' => ASENHA_SLUG_U, 'field_id' => $field_id, 'field_slug' => $field_slug, 'field_name' => ASENHA_SLUG_U . '[' . $field_id . ']', 'field_type' => 'textarea', 'field_rows' => 30, 'field_intro' => '', 'field_description' => '', 'class' => 'asenha-textarea asenha-hide-th syntax-highlighted custom-code ' . $field_slug, ) ); // Insert , and