PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / trunk
Advanced Ads – Ad Manager & AdSense vtrunk
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-modules.php
advanced-ads / includes Last commit date
abstracts 1 day ago admin 1 day ago ads 1 day ago compatibility 1 day ago crons 1 day ago frontend 1 day ago groups 1 day ago importers 1 day ago installation 1 year ago interfaces 4 months ago license 3 months ago placements 1 day ago rest 1 year ago traits 1 day ago utilities 1 day ago cap_map.php 3 years ago class-assets-registry.php 3 weeks ago class-autoloader.php 1 day ago class-cache-invalidator.php 1 day ago class-constants.php 1 year ago class-content-injector.php 3 weeks 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 day ago class-upgrades.php 1 year ago class-widget.php 11 months ago default-hooks.php 4 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 day ago index.php 2 years ago load_modules.php 2 years ago
class-modules.php
93 lines
1 <?php
2 /**
3 * Modules.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.50.0
8 */
9
10 namespace AdvancedAds;
11
12 use AdvancedAds\Interfaces\Module_Interface;
13 use AdvancedAds\Framework\Interfaces\Initializer_Interface;
14
15 defined( 'ABSPATH' ) || exit;
16
17 /**
18 * Modules.
19 */
20 class Modules implements Initializer_Interface {
21 /**
22 * Modules.
23 *
24 * @var array
25 */
26 private $modules = [];
27
28 /**
29 * Running modules.
30 *
31 * @var array
32 */
33 private $running = [];
34
35 /**
36 * Runs this initializer.
37 *
38 * @return void
39 */
40 public function initialize(): void {
41 add_action( 'init', [ $this, 'load_modules' ], 0 );
42 }
43
44 /**
45 * Register a module.
46 *
47 * @param string $module Module class name.
48 *
49 * @return void
50 */
51 public function register_module( string $module ): void {
52 $module = new $module();
53 $name = $module->get_name();
54
55 $this->modules[ $name ] = $module;
56 }
57
58 /**
59 * Load modules.
60 *
61 * @return void
62 */
63 public function load_modules(): void {
64 foreach ( $this->modules as $module ) {
65 if ( $this->can_load( $module ) ) {
66 $module->load();
67 }
68 }
69 }
70
71 /**
72 * Check if a module can be loaded.
73 *
74 * @param Module_Interface $module Module object.
75 *
76 * @return bool
77 */
78 private function can_load( Module_Interface $module ): bool {
79 $check = apply_filters( 'advanced-ads-can-load-module', true, $module );
80 if ( ! $check ) {
81 return false;
82 }
83
84 if ( in_array( $module->get_name(), $this->running, true ) ) {
85 return false;
86 }
87
88 $this->running[] = $module->get_name();
89
90 return true;
91 }
92 }
93