PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 1.2.0
Admin and Site Enhancements (ASE) v1.2.0
9.1.0 9.0.2 9.0.1 9.0.0 8.9.2 8.9.1 8.9.0 8.8.8 8.8.7 8.8.6 8.8.5 8.8.4 8.8.3 8.8.2 8.8.1 8.8.0 8.7.3 8.7.2 8.7.1 8.2.1 8.2.2 8.2.3 8.3.0 8.3.1 8.3.2 8.4.0 8.4.1 8.4.2 8.5.0 8.5.1 8.5.2 8.6.0 8.6.1 8.6.2 8.7.0 5.0.1 5.0.2 5.0.2.1 5.0.2.2 5.0.2.3 5.0.2.4 5.1.0 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.8.0 5.8.1 6.0.0 6.0.3 6.0.4 6.0.5 6.0.5.1 6.0.6 6.0.7 6.0.8.1 6.1.0 6.1.3 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.3.0 6.3.1 6.3.2 6.4.0 6.5.0 6.5.1 6.6.0 6.7.0 6.8.0 6.8.2 6.8.3 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13.1 6.9.13.2 6.9.2 6.9.3 6.9.4 6.9.5 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.2 7.0.2.1 7.0.2.2 7.0.2.3 7.0.3 7.1.0 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2.0 7.2.1 7.3.0 7.3.1 7.3.2 7.3.3 7.4.0 7.4.2 7.4.4 7.4.5 7.4.6 7.4.7 7.4.8 7.5.0 7.5.1 7.5.2 7.5.3 7.5.4 7.6.0 7.6.1 7.6.1.1 7.6.10 7.6.11 7.6.2 7.6.3 7.6.4 7.6.5 7.6.6 7.6.7 7.6.7.1 7.6.8 7.6.9 7.7.0 7.8.0 7.8.1 7.8.10 7.8.11 7.8.12 7.8.13 7.8.14 7.8.15 7.8.16 7.8.17 7.8.18 7.8.2 7.8.3 7.8.4 7.8.5 7.8.5.1 7.8.6 7.8.7 7.8.8 7.8.9 7.9.0 7.9.1 7.9.10 7.9.11 7.9.2 7.9.3 7.9.4 7.9.5 7.9.6 7.9.7 7.9.8 7.9.9 8.0.0 8.0.1 8.0.2 8.0.3 8.0.4 8.0.5 8.0.6 8.0.7 8.0.8 8.1.0 8.1.1 8.1.2 8.1.3 8.1.4 8.2.0 trunk 1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0 1.7.0 1.8.0 1.9.0 2.0.0 2.1.0 2.2.0 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.1 2.8.2 2.8.3 2.9.0 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.2.0 3.3.0 3.4.0 3.5.0 3.6.1 3.7.0 3.8.0 3.9.0 3.9.1 3.9.2 4.0.0 4.0.1 4.1.0 4.2.0 4.2.1 4.2.2 4.3.0 4.3.1 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.9.0 4.9.1 4.9.2 4.9.3 5.0.0
admin-site-enhancements / bootstrap.php
admin-site-enhancements Last commit date
assets 3 years ago classes 3 years ago includes 3 years ago LICENSE.md 3 years ago README.md 3 years ago admin-site-enhancements.php 3 years ago bootstrap.php 3 years ago
bootstrap.php
128 lines
1 <?php
2
3 // We're using the singleton design pattern
4 // https://code.tutsplus.com/articles/design-patterns-in-wordpress-the-singleton-pattern--wp-31621
5 // https://carlalexander.ca/singletons-in-wordpress/
6 // https://torquemag.io/2016/11/singletons-wordpress-good-evil/
7
8 /**
9 * Main class of the plugin used to add functionalities
10 *
11 * @since 1.0.0
12 */
13 class Admin_Site_Enhancements {
14
15 // Refers to a single instance of this class
16 private static $instance = null;
17
18 /**
19 * Creates or returns a single instance of this class
20 *
21 * @return Admin_Site_Enhancements a single instance of this class
22 * @since 1.0.0
23 */
24 public static function get_instance() {
25
26 if ( null == self::$instance ) {
27
28 self::$instance = new self;
29
30 }
31
32 return self::$instance;
33
34 }
35
36 /**
37 * Initialize plugin functionalities
38 */
39 private function __construct() {
40
41 // Setup admin menu, admin page, admin scripts, plugin action links, etc.
42
43 // Register admin menu and add the settings page.
44 add_action( 'admin_menu', 'asenha_register_admin_menu' );
45
46 // Register plugin settings
47 add_action( 'admin_init', 'asenha_register_settings' );
48
49 // Suppress all notices on the plugin's main page. Then add notification for successful settings update.
50 add_action( 'admin_notices', 'asenha_notices', 5 );
51
52 // Enqueue admin scripts and styles only on the plugin's main page
53 add_action( 'admin_enqueue_scripts', 'asenha_admin_scripts' );
54
55 // Add action links in plugins page
56 add_filter( 'plugin_action_links_' . ASENHA_SLUG . '/' . ASENHA_SLUG . '.php', 'asenha_plugin_action_links' );
57
58 // Update footer text
59 add_filter( 'admin_footer_text', 'asenha_footer_text' );
60
61 // Selectively enable enhancements based on options value
62
63 // Get all WP Enhancements options, default to empty array in case it's not been created yet
64 $options = get_option( 'admin_site_enhancements', array() );
65
66 // Instantiate object for Content Management functionalities
67 $content_management = new ASENHA\Classes\Content_Management;
68
69 // Instantiate object for Admin Interface functionalities
70 $admin_interface = new ASENHA\Classes\Admin_Interface;
71
72 // Content Management >> Show Featured Image Column
73 if ( array_key_exists( 'show_featured_image_column', $options ) && $options['show_featured_image_column'] ) {
74 add_action( 'admin_init', [ $content_management, 'show_featured_image_column' ] );
75 }
76
77 // Content Management >> Show Excerpt Column
78 if ( array_key_exists( 'show_excerpt_column', $options ) && $options['show_excerpt_column'] ) {
79 add_action( 'admin_init', [ $content_management, 'show_excerpt_column' ] );
80 }
81
82 // Content Management >> Show ID Column
83 if ( array_key_exists( 'show_id_column', $options ) && $options['show_id_column'] ) {
84 add_action( 'admin_init', [ $content_management, 'show_id_column' ] );
85 }
86
87 // Content Management >> Hide Comments Column
88 if ( array_key_exists( 'hide_comments_column', $options ) && $options['hide_comments_column'] ) {
89 add_action( 'admin_init', [ $content_management, 'hide_comments_column' ] );
90 }
91
92 // Content Management >> Hide Post Tags Column
93 if ( array_key_exists( 'hide_post_tags_column', $options ) && $options['hide_post_tags_column'] ) {
94 add_action( 'admin_init', [ $content_management, 'hide_post_tags_column' ] );
95 }
96
97 // Content Management >> Show Custom Taxonomy Filters
98 if ( array_key_exists( 'show_custom_taxonomy_filters', $options ) && $options['show_custom_taxonomy_filters'] ) {
99 add_action( 'restrict_manage_posts', [ $content_management, 'show_custom_taxonomy_filters' ] );
100 }
101
102 // Content Management >> Enable Page and Post Duplication
103 if ( array_key_exists( 'enable_duplication', $options ) && $options['enable_duplication'] ) {
104 add_action( 'admin_action_asenha_enable_duplication', [ $content_management, 'asenha_enable_duplication' ] );
105 add_filter( 'page_row_actions', [ $content_management, 'add_duplication_action_link' ], 10, 2 );
106 add_filter( 'post_row_actions', [ $content_management, 'add_duplication_action_link' ], 10, 2 );
107 }
108
109 // Content Management >> Enable Media Replacement
110 if ( array_key_exists( 'enable_media_replacement', $options ) && $options['enable_media_replacement'] ) {
111 add_filter( 'media_row_actions', [ $content_management, 'modify_media_list_table_edit_link' ], 10, 2 );
112 add_filter( 'attachment_fields_to_edit', [ $content_management, 'add_media_replacement_button' ] );
113 add_action( 'edit_attachment', [ $content_management, 'replace_media' ] );
114 add_filter( 'post_updated_messages', [ $content_management, 'attachment_updated_custom_message' ] );
115 }
116
117 // Content Management >> Hide Admin Notices
118 if ( array_key_exists( 'hide_admin_notices', $options ) && $options['hide_admin_notices'] ) {
119 add_action( 'all_admin_notices', [ $admin_interface, 'admin_notices_wrapper' ] );
120 add_action( 'admin_bar_menu', [ $admin_interface, 'admin_notices_menu' ] );
121 add_action( 'admin_enqueue_scripts', [ $admin_interface, 'admin_notices_menu_inline_css' ] ); // wp-admin
122 }
123
124 }
125
126 }
127
128 Admin_Site_Enhancements::get_instance();