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 / class-plugin.php
advanced-ads / includes Last commit date
abstracts 1 day ago admin 1 day ago ads 1 day ago compatibility 1 week ago crons 1 day ago frontend 1 week ago groups 1 day ago importers 5 days ago installation 1 day ago interfaces 5 months ago license 1 day ago placements 1 day ago rest 1 day ago traits 1 day ago utilities 1 day ago cap_map.php 3 years ago class-assets-registry.php 1 day ago class-autoloader.php 1 week ago class-cache-invalidator.php 1 day ago class-constants.php 1 day ago class-content-injector.php 1 month ago class-entities.php 3 months ago class-modal.php 1 year ago class-modules.php 1 year ago class-options.php 1 year ago class-plugin.php 1 day ago class-post-data.php 10 months ago class-shortcodes.php 1 week ago class-upgrades.php 1 day ago class-widget.php 11 months ago default-hooks.php 5 months ago functions-ad.php 1 day ago functions-components.php 3 months ago functions-conditional.php 1 year ago functions-core.php 1 year ago functions-group.php 1 day ago functions-placement.php 1 day ago functions.php 1 week ago index.php 2 years ago load_modules.php 2 years ago
class-plugin.php
359 lines
1 <?php
2 /**
3 * The plugin bootstrap.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.47.0
8 */
9
10 namespace AdvancedAds;
11
12 use Advanced_Ads_Admin_Licenses;
13 use AdvancedAds\Ads\Ads;
14 use AdvancedAds\Groups\Groups;
15 use AdvancedAds\Installation\Install;
16 use AdvancedAds\Placements\Placements;
17 use AdvancedAds\Rest\Licenses;
18
19 defined( 'ABSPATH' ) || exit;
20
21 /**
22 * Plugin.
23 *
24 * Containers:
25 *
26 * @property Shortcodes $shortcodes Shortcodes handler.
27 * @property Assets_Registry $registry Assets registry.
28 * @property Framework\JSON $json JSON handler.
29 * @property Admin\Admin_Menu $screens Admin screens.
30 * @property Frontend\Ad_Renderer $renderer Ads renderer.
31 * @property Frontend\Manager $frontend Frontend manager.
32 * @property Importers\Manager $importers Importers manager.
33 */
34 class Plugin extends Framework\Loader {
35
36 use Traits\Extras;
37
38 /**
39 * The ads container
40 *
41 * @var Ads
42 */
43 public $ads = null;
44
45 /**
46 * The groups container
47 *
48 * @var Groups
49 */
50 public $groups = null;
51
52 /**
53 * The placements container
54 *
55 * @var Placements
56 */
57 public $placements = null;
58
59 /**
60 * Modules manager
61 *
62 * @var Modules
63 */
64 public $modules = null;
65
66 /**
67 * Main instance
68 *
69 * Ensure only one instance is loaded or can be loaded.
70 *
71 * @return Plugin
72 */
73 public static function get(): Plugin {
74 static $instance;
75
76 if ( null === $instance ) {
77 $instance = new Plugin();
78 $instance->setup();
79 }
80
81 return $instance;
82 }
83
84 /**
85 * Get plugin version
86 *
87 * @return string
88 */
89 public function get_version(): string {
90 return ADVADS_VERSION;
91 }
92
93 /**
94 * Bootstrap plugin.
95 *
96 * @return void
97 */
98 private function setup(): void {
99 $this->define_constants();
100 $this->includes_functions();
101 $this->includes();
102 $this->includes_rest();
103 $this->includes_admin();
104 $this->includes_frontend();
105 $this->includes_deprecated();
106
107 /**
108 * Old loading strategy
109 *
110 * TODO: need to remove it in future.
111 */
112 // Public-Facing and Core Functionality.
113 \Advanced_Ads::get_instance();
114 \Advanced_Ads_ModuleLoader::loadModules( ADVADS_ABSPATH . 'modules/', [ 'disabled' => [ 'pef' => true ] ] ); // enable modules, requires base class.
115
116 if ( is_admin() ) {
117 Advanced_Ads_Admin_Licenses::get_instance();
118 }
119
120 add_action( 'plugins_loaded', [ $this, 'on_plugins_loaded' ], -1 );
121 add_action( 'widgets_init', [ $this, 'register_widgets' ] );
122
123 // Load it all.
124 $this->modules->initialize();
125 $this->load();
126 }
127
128 /**
129 * Register the Advanced Ads classic Widget
130 *
131 * @return void
132 */
133 public function register_widgets(): void {
134 register_widget( '\AdvancedAds\Widget' );
135 }
136
137 /**
138 * When WordPress has loaded all plugins, trigger the `advanced-ads-loaded` hook.
139 *
140 * @since 1.47.0
141 *
142 * @return void
143 */
144 public function on_plugins_loaded(): void {
145 /**
146 * Action trigger after loading finished.
147 *
148 * @since 1.47.0
149 */
150 do_action( 'advanced-ads-loaded' );
151 }
152
153 /**
154 * Define Advanced Ads constant
155 *
156 * @return void
157 */
158 private function define_constants(): void {
159 $this->define( 'ADVADS_ABSPATH', dirname( ADVADS_FILE ) . '/' );
160 $this->define( 'ADVADS_PLUGIN_BASENAME', plugin_basename( ADVADS_FILE ) );
161 $this->define( 'ADVADS_BASE_URL', plugin_dir_url( ADVADS_FILE ) );
162 $this->define( 'ADVADS_SLUG', 'advanced-ads' );
163 // name for group & option in settings.
164 $this->define( 'ADVADS_SETTINGS_ADBLOCKER', 'advanced-ads-adblocker' );
165
166 // Deprecated Constants.
167 /**
168 * ADVADS_BASE
169 *
170 * @deprecated 1.47.0 use ADVADS_PLUGIN_BASENAME now.
171 */
172 define( 'ADVADS_BASE', ADVADS_PLUGIN_BASENAME );
173
174 /**
175 * ADVADS_BASE_PATH
176 *
177 * @deprecated 1.47.0 use ADVADS_ABSPATH now.
178 */
179 define( 'ADVADS_BASE_PATH', ADVADS_ABSPATH );
180
181 /**
182 * ADVADS_BASE_DIR
183 *
184 * @deprecated 1.47.0 Avoid global declaration of the constant used exclusively in `load_text_domain` function; use localized declaration instead.
185 */
186 define( 'ADVADS_BASE_DIR', dirname( ADVADS_PLUGIN_BASENAME ) );
187
188 /**
189 * ADVADS_URL
190 *
191 * @deprecated 1.47.0 Deprecating the constant in favor of using the direct URL to circumvent costly `esc_url` function; please update code accordingly.
192 */
193 define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
194 }
195
196 /**
197 * Includes core files used in admin and on the frontend.
198 *
199 * @return void
200 */
201 private function includes(): void {
202 $this->ads = new Ads();
203 $this->groups = new Groups();
204 $this->placements = new Placements();
205 $this->modules = new Modules();
206
207 // Common.
208 $this->register_initializer( Install::class );
209 $this->register_integration( Entities::class );
210 $this->register_integration( Assets_Registry::class, 'registry' );
211 $this->register_integration( Framework\JSON::class, 'json', [ 'advancedAds' ] );
212 $this->register_integration( Compatibility\Compatibility::class );
213 $this->register_integration( Compatibility\Inline_JS::class );
214 $this->register_integration( Compatibility\AAWP::class );
215 $this->register_integration( Compatibility\Peepso::class );
216 $this->register_integration( Post_Data::class );
217 $this->register_integration( Cache_Invalidator::class );
218 $this->register_integration( Crons\Ads::class );
219 $this->register_integration( Crons\Licenses::class );
220 $this->register_integration( Shortcodes::class, 'shortcodes' );
221 $this->register_integration( Frontend\Debug_Ads::class );
222 }
223
224 /**
225 * Includes files used on the frontend.
226 *
227 * @return void
228 */
229 private function includes_frontend(): void {
230 // Early bail!!
231 if ( is_admin() ) {
232 return;
233 }
234
235 $this->register_integration( Frontend\Ad_Renderer::class, 'renderer' );
236 $this->register_integration( Frontend\Manager::class, 'frontend' );
237 $this->register_integration( Frontend\Scripts::class );
238 }
239
240 /**
241 * Includes files used in admin.
242 *
243 * @return void
244 */
245 private function includes_admin(): void {
246 // Early bail!!
247 if ( ! is_admin() ) {
248 return;
249 }
250
251 // App.
252 $this->register_integration( Admin\App::class );
253 $this->register_integration( Admin\License_Admin_Post::class );
254
255 // Ads.
256 $this->register_integration( Admin\Ads\Ajax::class );
257 $this->register_integration( Admin\Metabox_Ad::class );
258 $this->register_integration( Admin\Metabox_Ad_Settings::class );
259 $this->register_integration( Admin\Ads\Quick_Bulk_Edit::class );
260
261 // Groups.
262 $this->register_integration( Admin\Groups\Ajax::class );
263
264 // Placements.
265 $this->register_integration( Admin\Placements\Ajax::class );
266 $this->register_integration( Admin\Placements\Bulk_Edit::class );
267 $this->register_integration( Admin\Placements\Quick_Edit::class );
268
269 // Entities.
270 $this->register_integration( Admin\Page_Quick_Edit::class );
271 $this->register_integration( Compatibility\Capability_Manager::class );
272 $this->register_initializer( Upgrades::class );
273 $this->register_integration( Admin\Action_Links::class );
274 $this->register_integration( Admin\Admin_Menu::class, 'screens' );
275 $this->register_integration( Admin\Admin_Notices::class );
276 $this->register_integration( Admin\Assets::class );
277 $this->register_integration( Admin\Marketing::class );
278 $this->register_integration( Admin\Post_Types::class );
279 $this->register_integration( Admin\Screen_Options::class );
280 $this->register_integration( Admin\Shortcode_Creator::class );
281 $this->register_integration( Admin\TinyMCE::class );
282 $this->register_integration( Admin\WordPress_Dashboard::class );
283 $this->register_integration( Importers\Manager::class, 'importers' );
284 $this->register_integration( Admin\AJAX::class );
285 $this->register_integration( Admin\Plugin_Auto_Update::class );
286 $this->register_integration( Admin\Version_Control::class );
287 $this->register_integration( Admin\Upgrades::class );
288 $this->register_integration( Admin\Authors::class );
289 $this->register_integration( Admin\Settings::class );
290 $this->register_integration( Admin\Misc::class );
291 $this->register_integration( Admin\Post_List::class );
292 $this->register_integration( Admin\Addon_Updater::class );
293
294 if ( ! wp_doing_ajax() ) {
295 $this->register_integration( Admin\List_Filters::class, 'list_filters' );
296 }
297 }
298
299 /**
300 * Includes rest api files used in admin and on the frontend.
301 *
302 * @return void
303 */
304 private function includes_rest(): void {
305 $this->register_route( Rest\Groups::class );
306 $this->register_route( Rest\Licenses::class );
307 $this->register_route( Rest\Page_Quick_Edit::class );
308 $this->register_route( Rest\Placements::class );
309 $this->register_route( Rest\OnBoarding::class );
310 $this->register_route( Rest\Utilities::class );
311 $this->register_route( Licenses::class );
312 }
313
314 /**
315 * Includes the necessary functions files.
316 *
317 * @return void
318 */
319 private function includes_functions(): void {
320 require_once ADVADS_ABSPATH . 'includes/functions.php';
321 require_once ADVADS_ABSPATH . 'includes/functions-core.php';
322 require_once ADVADS_ABSPATH . 'includes/functions-conditional.php';
323 require_once ADVADS_ABSPATH . 'includes/functions-ad.php';
324 require_once ADVADS_ABSPATH . 'includes/functions-group.php';
325 require_once ADVADS_ABSPATH . 'includes/functions-placement.php';
326 require_once ADVADS_ABSPATH . 'includes/cap_map.php';
327 require_once ADVADS_ABSPATH . 'includes/default-hooks.php';
328 require_once ADVADS_ABSPATH . 'includes/functions-components.php';
329 }
330
331 /**
332 * Includes deprecated files.
333 *
334 * @return void
335 */
336 private function includes_deprecated(): void {
337 require_once ADVADS_ABSPATH . 'deprecated/ad_group.php';
338 require_once ADVADS_ABSPATH . 'deprecated/ad_placements.php';
339 require_once ADVADS_ABSPATH . 'deprecated/Ad_Repository.php';
340 require_once ADVADS_ABSPATH . 'deprecated/ad_type_abstract.php';
341 require_once ADVADS_ABSPATH . 'deprecated/ad_type_content.php';
342 require_once ADVADS_ABSPATH . 'deprecated/ad_type_dummy.php';
343 require_once ADVADS_ABSPATH . 'deprecated/ad_type_group.php';
344 require_once ADVADS_ABSPATH . 'deprecated/ad_type_image.php';
345 require_once ADVADS_ABSPATH . 'deprecated/ad_type_plain.php';
346 require_once ADVADS_ABSPATH . 'deprecated/ad-ajax.php';
347 require_once ADVADS_ABSPATH . 'deprecated/ad-debug.php';
348 require_once ADVADS_ABSPATH . 'deprecated/ad-expiration.php';
349 require_once ADVADS_ABSPATH . 'deprecated/ad-model.php';
350 require_once ADVADS_ABSPATH . 'deprecated/ad-select.php';
351 require_once ADVADS_ABSPATH . 'deprecated/ad.php';
352 require_once ADVADS_ABSPATH . 'deprecated/gadsense-dummy.php';
353 require_once ADVADS_ABSPATH . 'deprecated/Group_Repository.php';
354 require_once ADVADS_ABSPATH . 'deprecated/class-admin.php';
355 require_once ADVADS_ABSPATH . 'deprecated/class-advanced-ads-plugin.php';
356 require_once ADVADS_ABSPATH . 'deprecated/in-content-injector.php';
357 }
358 }
359