PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.54.0
Advanced Ads – Ad Manager & AdSense v1.54.0
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 2 years ago admin 1 year ago database 2 years ago groups 2 years ago importers 1 year ago installation 1 year ago interfaces 1 year ago traits 2 years ago utilities 2 years ago array_ad_conditions.php 3 years ago cap_map.php 3 years ago class-assets-registry.php 1 year ago class-autoloader.php 1 year ago class-constants.php 1 year ago class-entities.php 2 years ago class-plugin.php 1 year ago functions.php 3 years ago index.php 2 years ago load_modules.php 2 years ago
class-plugin.php
209 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 AdvancedAds\Admin;
13 use AdvancedAds\Framework;
14 use AdvancedAds\Framework\Loader;
15 use AdvancedAds\Installation\Install;
16
17 defined( 'ABSPATH' ) || exit;
18
19 /**
20 * Plugin.
21 *
22 * Containers:
23 *
24 * @property Shortcodes $shortcodes Shortcodes handler.
25 * @property Assets_Registry $registry Assets registry.
26 * @property Framework\JSON $json JSON handler.
27 * @property Admin\Admin_Menu $screens Admin screens.
28 * @property Frontend\Ad_Renderer $renderer Ads renderer.
29 * @property Frontend\Manager $frontend Frontend manager.
30 */
31 class Plugin extends Loader {
32
33 /**
34 * Main instance
35 *
36 * Ensure only one instance is loaded or can be loaded.
37 *
38 * @return Plugin
39 */
40 public static function get(): Plugin {
41 static $instance;
42
43 if ( null === $instance ) {
44 $instance = new Plugin();
45 $instance->setup();
46 }
47
48 return $instance;
49 }
50
51 /**
52 * Get plugin version
53 *
54 * @return string
55 */
56 public function get_version(): string {
57 return ADVADS_VERSION;
58 }
59
60 /**
61 * Bootstrap plugin.
62 *
63 * @return void
64 */
65 private function setup(): void {
66 $this->define_constants();
67 $this->includes_functions();
68 $this->includes();
69 $this->includes_admin();
70
71 /**
72 * Old loading strategy
73 *
74 * TODO: need to remove it in future.
75 */
76 // Public-Facing and Core Functionality.
77 \Advanced_Ads::get_instance();
78 \Advanced_Ads_ModuleLoader::loadModules( ADVADS_ABSPATH . 'modules/' ); // enable modules, requires base class.
79
80 // Dashboard and Administrative Functionality.
81 if ( is_admin() ) {
82 \Advanced_Ads_Admin::get_instance();
83 }
84
85 add_action( 'init', [ $this, 'load_textdomain' ] );
86 add_action( 'plugins_loaded', [ $this, 'on_plugins_loaded' ], -1 );
87
88 // Load it all.
89 $this->load();
90 }
91
92 /**
93 * When WordPress has loaded all plugins, trigger the `advanced-ads-loaded` hook.
94 *
95 * @since 1.47.0
96 *
97 * @return void
98 */
99 public function on_plugins_loaded(): void {
100 /**
101 * Action trigger after loading finished.
102 *
103 * @since 1.47.0
104 */
105 do_action( 'advanced-ads-loaded' );
106 }
107
108 /**
109 * Load the plugin text domain for translation.
110 *
111 * @return void
112 */
113 public function load_textdomain(): void {
114 $locale = get_user_locale();
115 $locale = apply_filters( 'plugin_locale', $locale, 'advanced-ads' );
116
117 unload_textdomain( 'advanced-ads' );
118 if ( false === load_textdomain( 'advanced-ads', WP_LANG_DIR . '/plugins/advanced-ads-' . $locale . '.mo' ) ) {
119 load_textdomain( 'advanced-ads', WP_LANG_DIR . '/advanced-ads/advanced-ads-' . $locale . '.mo' );
120 }
121
122 load_plugin_textdomain( 'advanced-ads', false, dirname( ADVADS_PLUGIN_BASENAME ) . '/languages' );
123 }
124
125 /**
126 * Define Advanced Ads constant
127 *
128 * @return void
129 */
130 private function define_constants(): void {
131 $this->define( 'ADVADS_ABSPATH', dirname( ADVADS_FILE ) . '/' );
132 $this->define( 'ADVADS_PLUGIN_BASENAME', plugin_basename( ADVADS_FILE ) );
133 $this->define( 'ADVADS_BASE_URL', plugin_dir_url( ADVADS_FILE ) );
134 $this->define( 'ADVADS_SLUG', 'advanced-ads' );
135
136 // Deprecated Constants.
137 /**
138 * ADVADS_BASE
139 *
140 * @deprecated 1.47.0 use ADVADS_PLUGIN_BASENAME now.
141 */
142 define( 'ADVADS_BASE', ADVADS_PLUGIN_BASENAME );
143
144 /**
145 * ADVADS_BASE_PATH
146 *
147 * @deprecated 1.47.0 use ADVADS_ABSPATH now.
148 */
149 define( 'ADVADS_BASE_PATH', ADVADS_ABSPATH );
150
151 /**
152 * ADVADS_BASE_DIR
153 *
154 * @deprecated 1.47.0 Avoid global declaration of the constant used exclusively in `load_text_domain` function; use localized declaration instead.
155 */
156 define( 'ADVADS_BASE_DIR', dirname( ADVADS_PLUGIN_BASENAME ) );
157
158 /**
159 * ADVADS_URL
160 *
161 * @deprecated 1.47.0 Deprecating the constant in favor of using the direct URL to circumvent costly `esc_url` function; please update code accordingly.
162 */
163 define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
164 }
165
166 /**
167 * Includes core files used in admin and on the frontend.
168 *
169 * @return void
170 */
171 private function includes(): void {
172 // Common.
173 $this->register_initializer( Install::class );
174 $this->register_integration( Entities::class );
175 $this->register_integration( Assets_Registry::class, 'registry' );
176 $this->register_integration( Framework\JSON::class, 'json', [ 'advancedAds' ] );
177 $this->register_integration( Groups\Manager::class, 'group_manager' );
178 }
179
180 /**
181 * Includes files used in admin.
182 *
183 * @return void
184 */
185 private function includes_admin(): void {
186 // Early bail!!
187 if ( ! is_admin() ) {
188 return;
189 }
190
191 $this->register_integration( Admin\Action_Links::class );
192 $this->register_integration( Admin\Assets::class );
193 $this->register_integration( Admin\Header::class );
194 $this->register_integration( Admin\TinyMCE::class );
195 $this->register_integration( Admin\Admin_Menu::class );
196 $this->register_integration( Admin\Page_Quick_Edit::class );
197 }
198
199 /**
200 * Includes the necessary functions files.
201 *
202 * @return void
203 */
204 private function includes_functions(): void {
205 require_once ADVADS_ABSPATH . 'includes/functions.php';
206 require_once ADVADS_ABSPATH . 'includes/cap_map.php';
207 }
208 }
209