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 / class-autoloader.php
advanced-ads / includes Last commit date
abstracts 2 years ago admin 1 year ago database 2 years ago groups 2 years ago installation 1 year ago interfaces 2 years 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 2 years 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-autoloader.php
187 lines
1 <?php
2 /**
3 * The class is responsible for locating and loading the autoloader file used in the plugin.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.47.0
8 */
9
10 namespace AdvancedAds;
11
12 defined( 'ABSPATH' ) || exit;
13
14 /**
15 * Autoloader.
16 */
17 class Autoloader {
18
19 /**
20 * Hold autoloader.
21 *
22 * @var mixed
23 */
24 private $autoloader;
25
26 /**
27 * Main instance
28 *
29 * Ensure only one instance is loaded or can be loaded.
30 *
31 * @return Autoloader
32 */
33 public static function get(): Autoloader {
34 static $instance;
35
36 if ( null === $instance ) {
37 $instance = new Autoloader();
38 }
39
40 return $instance;
41 }
42
43 /**
44 * Get hold autoloader.
45 *
46 * @return mixed
47 */
48 public function get_autoloader() {
49 return $this->autoloader;
50 }
51
52 /**
53 * Runs this initializer.
54 *
55 * @return void
56 */
57 public function initialize(): void {
58 $locate = $this->locate();
59
60 if ( ! $locate ) {
61 add_action( 'admin_notices', [ $this, 'missing_autoloader' ] );
62 return;
63 }
64
65 $this->autoloader = require_once $locate;
66 $this->register_wordpress();
67 }
68
69 /**
70 * Locate the autoload file
71 *
72 * This function searches for the autoload file in the packages directory and vendor directory.
73 *
74 * @return bool|string
75 */
76 private function locate() {
77 $directory = dirname( ADVADS_FILE );
78 $packages = $directory . '/packages/autoload.php';
79 $vendors = $directory . '/vendor/autoload.php';
80 $is_debug = 'local' === ( function_exists( 'wp_get_environment_type' ) ? wp_get_environment_type() : $this->get_environment_type() );
81 $is_packages = is_readable( $packages );
82 $is_vendors = is_readable( $vendors );
83
84 if ( $is_packages && ( ! $is_debug || ! $is_vendors ) ) {
85 return $packages;
86 }
87
88 if ( $is_vendors ) {
89 return $vendors;
90 }
91
92 return false;
93 }
94
95 /**
96 * Add WordPress classes to map
97 *
98 * @return void
99 */
100 private function register_wordpress(): void {
101 $this->autoloader->addClassmap(
102 [
103 'WP_List_Table' => ABSPATH . 'wp-admin/includes/class-wp-list-table.php',
104 'WP_Terms_List_Table' => ABSPATH . 'wp-admin/includes/class-wp-terms-list-table.php',
105 ]
106 );
107 }
108
109 /**
110 * If the autoloader is missing, add an admin notice.
111 *
112 * @return void
113 */
114 protected function missing_autoloader(): void {
115 ?>
116 <div class="notice notice-error">
117 <p>
118 <?php
119 printf(
120 /* translators: 1: is a link to a support document. 2: closing link */
121 esc_html__( 'Your installation of Advanced Ads is incomplete. If you installed Advanced Ads from GitHub, %1$s please refer to this document%2$s to set up your development environment.', 'advanced-ads' ),
122 '<a href="' . esc_url( 'https://github.com/advanced-ads/advanced-ads/wiki/How-to-set-up-development-environment' ) . '" target="_blank" rel="noopener noreferrer">',
123 '</a>'
124 );
125 ?>
126 </p>
127 </div>
128 <?php
129 }
130
131 /**
132 * Retrieves the current environment type.
133 *
134 * @return string
135 */
136 public function get_environment_type(): string {
137 static $current_env = '';
138
139 if ( ! defined( 'WP_RUN_CORE_TESTS' ) && $current_env ) {
140 return $current_env;
141 }
142
143 $wp_environments = [
144 'local',
145 'development',
146 'staging',
147 'production',
148 ];
149
150 // Add a note about the deprecated WP_ENVIRONMENT_TYPES constant.
151 if ( defined( 'WP_ENVIRONMENT_TYPES' ) && function_exists( '_deprecated_argument' ) ) {
152 if ( function_exists( '__' ) ) {
153 /* translators: %s: WP_ENVIRONMENT_TYPES */
154 $message = sprintf( __( 'The %s constant is no longer supported.', 'advanced-ads' ), 'WP_ENVIRONMENT_TYPES' );
155 } else {
156 $message = sprintf( 'The %s constant is no longer supported.', 'WP_ENVIRONMENT_TYPES' );
157 }
158
159 _deprecated_argument(
160 'define()',
161 '5.5.1',
162 $message // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
163 );
164 }
165
166 // Check if the environment variable has been set, if `getenv` is available on the system.
167 if ( function_exists( 'getenv' ) ) {
168 $has_env = getenv( 'WP_ENVIRONMENT_TYPE' );
169 if ( false !== $has_env ) {
170 $current_env = $has_env;
171 }
172 }
173
174 // Fetch the environment from a constant, this overrides the global system variable.
175 if ( defined( 'WP_ENVIRONMENT_TYPE' ) && WP_ENVIRONMENT_TYPE ) {
176 $current_env = WP_ENVIRONMENT_TYPE;
177 }
178
179 // Make sure the environment is an allowed one, and not accidentally set to an invalid value.
180 if ( ! in_array( $current_env, $wp_environments, true ) ) {
181 $current_env = 'production';
182 }
183
184 return $current_env;
185 }
186 }
187