PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.25
Advanced Ads – Ad Manager & AdSense v2.0.25
2.0.25 2.0.24 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 / abstracts / abstract-screen.php
advanced-ads / includes / abstracts Last commit date
abstract-ad.php 1 day ago abstract-admin-list-table.php 1 week ago abstract-data.php 1 week ago abstract-factory.php 1 day ago abstract-group.php 1 day ago abstract-placement-type.php 1 week ago abstract-placement.php 1 day ago abstract-screen.php 3 months ago abstract-types.php 1 day ago index.php 2 years ago
abstract-screen.php
245 lines
1 <?php
2 /**
3 * Abstracts Screen.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.47.0
8 */
9
10 namespace AdvancedAds\Abstracts;
11
12 use AdvancedAds\Framework\Utilities\Str;
13 use AdvancedAds\Framework\Utilities\Params;
14
15 defined( 'ABSPATH' ) || exit;
16
17 /**
18 * Abstracts Screen.
19 */
20 abstract class Screen {
21
22 /**
23 * The hook assigned to the screen.
24 *
25 * @var string
26 */
27 private $hook = '';
28
29 /**
30 * List of tabs for the screen.
31 *
32 * @var array
33 */
34 private $tabs = [];
35
36 /* Page Hook Api --------------- */
37
38 /**
39 * Get the hook.
40 *
41 * @return string
42 */
43 public function get_hook(): string {
44 return $this->hook;
45 }
46
47 /**
48 * Set the hook.
49 *
50 * @param string $hook Hook to set.
51 *
52 * @return void
53 */
54 public function set_hook( string $hook ): void {
55 $this->hook = $hook;
56 }
57
58 /* Screen API ------------------ */
59
60 /**
61 * Screen unique id.
62 *
63 * @return string
64 */
65 abstract public function get_id(): string;
66
67 /**
68 * Register screen into WordPress admin area.
69 *
70 * @return void
71 */
72 abstract public function register_screen(): void;
73
74 /**
75 * Enqueue assets
76 *
77 * @return void
78 */
79 public function enqueue_assets(): void {}
80
81 /**
82 * Display screen content.
83 *
84 * @return void
85 */
86 public function display(): void {}
87
88 /**
89 * Get the order value.
90 *
91 * @return int The order value, which is 10.
92 */
93 public function get_order(): int {
94 return 10;
95 }
96
97 /* Tabs API -------------------- */
98
99 /**
100 * Get the tabs.
101 *
102 * @return array
103 */
104 public function get_tabs(): array {
105 return $this->tabs;
106 }
107
108 /**
109 * Set the tabs.
110 *
111 * @param array $tabs Array of screen tabs.
112 *
113 * @return void
114 */
115 public function set_tabs( array $tabs ): void {
116 $this->tabs = apply_filters( 'advanced-ads-screen-tabs-' . $this->get_id(), $tabs );
117 }
118
119 /**
120 * Get current tab id.
121 *
122 * @return string
123 */
124 public function get_current_tab_id(): string {
125 $first = current( array_keys( $this->tabs ) );
126
127 return Params::get( 'sub_page', $first );
128 }
129
130 /**
131 * Render tabs menu
132 *
133 * @param array $args Arguments to be used in the template.
134 *
135 * @return void
136 */
137 public function get_tabs_menu( array $args = [] ): void { // phpcs:ignore
138 $tabs = $this->tabs;
139 $active = $this->get_current_tab_id();
140
141 include ADVADS_ABSPATH . 'views/admin/header-tabs.php';
142 }
143
144 /**
145 * Render tabs content
146 *
147 * @param array $args Arguments to be used in the template.
148 *
149 * @return void
150 */
151 public function get_tab_content( array $args = [] ): void { // phpcs:ignore
152 $active = $this->get_current_tab_id();
153 $tab = $this->tabs[ $active ] ?? null;
154
155 if ( ! $tab ) {
156 return;
157 }
158
159 echo '<div class="advads-tab-content">';
160 if ( isset( $tab['callback'] ) ) {
161 call_user_func( $tab['callback'] );
162 } elseif ( isset( $tab['filename'] ) ) {
163 include $tab['filename'];
164 }
165
166 echo '</div>';
167 }
168
169 /* Header API ------------------ */
170
171 /**
172 * Get page header arguments
173 *
174 * @return array
175 */
176 public function define_header_args(): array {
177 return [];
178 }
179
180 /**
181 * Add actions to the header
182 *
183 * @return void
184 */
185 public function header_actions(): void {}
186
187 /**
188 * Get admin page header
189 *
190 * @param array $args Arguments to be used in the template.
191 *
192 * @return void
193 */
194 public function get_header( array $args = [] ): void {
195 $args = wp_parse_args( $args, $this->get_header_args() );
196
197 extract( $args, EXTR_SKIP ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
198
199 include ADVADS_ABSPATH . 'views/admin/layout/header.php';
200 }
201
202 /**
203 * Get page header arguments
204 *
205 * @return array
206 */
207 public function get_header_args(): array {
208 $wp_screen = get_current_screen();
209 return wp_parse_args(
210 $this->define_header_args(),
211 [
212 'title' => get_admin_page_title(),
213 'breadcrumb_title' => get_admin_page_title(),
214 'breadcrumb' => true,
215 'manual_url' => $this->get_manual_url( '' ),
216 'screen' => $wp_screen,
217 ]
218 );
219 }
220
221 /**
222 * Get manual url
223 *
224 * @param string $path Path to the manual page.
225 *
226 * @return string
227 */
228 public function get_manual_url( string $path ): string {
229 $domain = 'https://wpadvancedads.com/manual/';
230
231 if ( Str::starts_with( 'http', $path ) ) {
232 $domain = '';
233 }
234
235 return add_query_arg(
236 [
237 'utm_source' => 'advanced-ads',
238 'utm_medium' => 'link',
239 'utm_campaign' => 'header-manual-' . $this->get_id(),
240 ],
241 $domain . ltrim( $path, '/' )
242 );
243 }
244 }
245