PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.53.2
Advanced Ads – Ad Manager & AdSense v1.53.2
2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / includes / admin / class-admin-menu.php
advanced-ads / includes / admin Last commit date
pages 2 years ago class-action-links.php 2 years ago class-admin-menu.php 2 years ago class-assets.php 1 year ago class-groups-list-table.php 2 years ago class-header.php 2 years ago class-page-quick-edit.php 1 year ago class-tinymce.php 2 years ago index.php 2 years ago
class-admin-menu.php
151 lines
1 <?php
2 /**
3 * The class is responsible for adding menu and submenu pages for the plugin in the WordPress admin area.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.47.0
8 */
9
10 namespace AdvancedAds\Admin;
11
12 use Advanced_Ads;
13 use Advanced_Ads_Ad_Health_Notices;
14 use Advanced_Ads_Checks;
15 use AdvancedAds\Entities;
16 use AdvancedAds\Admin\Pages\Ads;
17 use AdvancedAds\Admin\Pages\Dashboard;
18 use AdvancedAds\Admin\Pages\Groups;
19 use AdvancedAds\Admin\Pages\Placements;
20 use AdvancedAds\Admin\Pages\Settings;
21 use AdvancedAds\Framework\Interfaces\Integration_Interface;
22 use AdvancedAds\Utilities\WordPress;
23
24 defined( 'ABSPATH' ) || exit;
25
26 /**
27 * Admin Admin Menu.
28 */
29 class Admin_Menu implements Integration_Interface {
30
31 /**
32 * Hold screens
33 *
34 * @var array
35 */
36 private $screens = [];
37
38 /**
39 * Hook into WordPress.
40 *
41 * @return void
42 */
43 public function hooks(): void {
44 add_action( 'admin_menu', [ $this, 'add_pages' ] );
45 add_action( 'admin_head', [ $this, 'highlight_menu_item' ] );
46 }
47
48 /**
49 * Register the administration menu for this plugin into the WordPress Dashboard menu.
50 *
51 * @since 1.0.0
52 *
53 * @return void
54 */
55 public function add_pages(): void {
56 foreach ( $this->get_screens() as $renderer ) {
57 $renderer->register_screen();
58 }
59
60 $this->register_forward_links();
61
62 /**
63 * Allows extensions to insert sub menu pages.
64 *
65 * @since untagged Added the `$hidden_page_slug` parameter.
66 *
67 * @param string $plugin_slug The slug slug used to add a visible page.
68 * @param string $hidden_page_slug The slug slug used to add a hidden page.
69 */
70 do_action( 'advanced-ads-submenu-pages', ADVADS_SLUG, 'advanced_ads_hidden_page_slug' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
71 }
72
73 /**
74 * Register forward links
75 *
76 * @return void
77 */
78 private function register_forward_links(): void {
79 global $submenu;
80
81 $has_ads = Advanced_Ads::get_number_of_ads( [ 'any', 'trash' ] );
82 $notices = Advanced_Ads_Ad_Health_Notices::get_number_of_notices();
83 $notice_alert = '&nbsp;<span class="update-plugins count-' . $notices . '"><span class="update-count">' . $notices . '</span></span>';
84
85 // phpcs:disable WordPress.WP.GlobalVariablesOverride.Prohibited
86 if ( current_user_can( WordPress::user_cap( 'advanced_ads_manage_options' ) ) ) {
87 $submenu['advanced-ads'][] = [
88 __( 'Support', 'advanced-ads' ),
89 WordPress::user_cap( 'advanced_ads_manage_options' ),
90 admin_url( 'admin.php?page=advanced-ads-settings#top#support' ),
91 __( 'Support', 'advanced-ads' ),
92 ];
93
94 if ( $has_ads ) {
95 $submenu['advanced-ads'][0][0] .= $notice_alert;
96 } else {
97 $submenu['advanced-ads'][1][0] .= $notice_alert;
98 }
99
100 // Link to license tab if they are invalid.
101 if ( Advanced_Ads_Checks::licenses_invalid() ) {
102 $submenu['advanced-ads'][] = [
103 __( 'Licenses', 'advanced-ads' )
104 . '&nbsp;<span class="update-plugins count-1"><span class="update-count">!</span></span>',
105 WordPress::user_cap( 'advanced_ads_manage_options' ),
106 admin_url( 'admin.php?page=advanced-ads-settings#top#licenses' ),
107 __( 'Licenses', 'advanced-ads' ),
108 ];
109 }
110 }
111 // phpcs:enable
112 }
113
114 /**
115 * Get screens
116 *
117 * @return array
118 */
119 private function get_screens(): array {
120 if ( ! empty( $this->screens ) ) {
121 return $this->screens;
122 }
123
124 $this->screens['dashboard'] = new Dashboard();
125 $this->screens['ads'] = new Ads();
126 $this->screens['groups'] = new Groups();
127 $this->screens['placements'] = new Placements();
128 $this->screens['settings'] = new Settings();
129
130 return $this->screens;
131 }
132
133 /**
134 * Highlights the 'Advanced Ads->Ads' item in the menu when an ad edit page is open
135 *
136 * @see the 'parent_file' and the 'submenu_file' filters for reference
137 *
138 * @return void
139 */
140 public function highlight_menu_item(): void {
141 global $parent_file, $submenu_file, $post_type;
142
143 // phpcs:disable WordPress.WP.GlobalVariablesOverride.Prohibited
144 if ( Entities::POST_TYPE_AD === $post_type ) {
145 $parent_file = ADVADS_SLUG;
146 $submenu_file = 'edit.php?post_type=' . Entities::POST_TYPE_AD;
147 }
148 // phpcs:enable WordPress.WP.GlobalVariablesOverride.Prohibited
149 }
150 }
151