These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | /* |
||
4 | * Plugin Name: Jetpack by WordPress.com |
||
5 | * Plugin URI: https://jetpack.com |
||
6 | * Description: Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users. |
||
7 | * Author: Automattic |
||
8 | * Version: 7.4-alpha |
||
9 | * Author URI: https://jetpack.com |
||
10 | * License: GPL2+ |
||
11 | * Text Domain: jetpack |
||
12 | * Domain Path: /languages/ |
||
13 | */ |
||
14 | |||
15 | define( 'JETPACK__MINIMUM_WP_VERSION', '5.1' ); |
||
16 | define( 'JETPACK__MINIMUM_PHP_VERSION', '5.3.2' ); |
||
17 | |||
18 | define( 'JETPACK__VERSION', '7.4-alpha' ); |
||
19 | define( 'JETPACK_MASTER_USER', true ); |
||
20 | define( 'JETPACK__API_VERSION', 1 ); |
||
21 | define( 'JETPACK__PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); |
||
22 | define( 'JETPACK__PLUGIN_FILE', __FILE__ ); |
||
23 | |||
24 | defined( 'JETPACK_CLIENT__AUTH_LOCATION' ) or define( 'JETPACK_CLIENT__AUTH_LOCATION', 'header' ); |
||
25 | defined( 'JETPACK_CLIENT__HTTPS' ) or define( 'JETPACK_CLIENT__HTTPS', 'AUTO' ); |
||
26 | defined( 'JETPACK__GLOTPRESS_LOCALES_PATH' ) or define( 'JETPACK__GLOTPRESS_LOCALES_PATH', JETPACK__PLUGIN_DIR . 'locales.php' ); |
||
27 | defined( 'JETPACK__API_BASE' ) or define( 'JETPACK__API_BASE', 'https://jetpack.wordpress.com/jetpack.' ); |
||
28 | defined( 'JETPACK_PROTECT__API_HOST' ) or define( 'JETPACK_PROTECT__API_HOST', 'https://api.bruteprotect.com/' ); |
||
29 | defined( 'JETPACK__WPCOM_JSON_API_HOST' ) or define( 'JETPACK__WPCOM_JSON_API_HOST', 'public-api.wordpress.com' ); |
||
30 | |||
31 | defined( 'JETPACK__SANDBOX_DOMAIN' ) or define( 'JETPACK__SANDBOX_DOMAIN', '' ); |
||
32 | |||
33 | defined( 'JETPACK__DEBUGGER_PUBLIC_KEY' ) or define( |
||
34 | 'JETPACK__DEBUGGER_PUBLIC_KEY', |
||
35 | "\r\n" . '-----BEGIN PUBLIC KEY-----' . "\r\n" |
||
36 | . 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm+uLLVoxGCY71LS6KFc6' . "\r\n" |
||
37 | . '1UnF6QGBAsi5XF8ty9kR3/voqfOkpW+gRerM2Kyjy6DPCOmzhZj7BFGtxSV2ZoMX' . "\r\n" |
||
38 | . '9ZwWxzXhl/Q/6k8jg8BoY1QL6L2K76icXJu80b+RDIqvOfJruaAeBg1Q9NyeYqLY' . "\r\n" |
||
39 | . 'lEVzN2vIwcFYl+MrP/g6Bc2co7Jcbli+tpNIxg4Z+Hnhbs7OJ3STQLmEryLpAxQO' . "\r\n" |
||
40 | . 'q8cbhQkMx+FyQhxzSwtXYI/ClCUmTnzcKk7SgGvEjoKGAmngILiVuEJ4bm7Q1yok' . "\r\n" |
||
41 | . 'xl9+wcfW6JAituNhml9dlHCWnn9D3+j8pxStHihKy2gVMwiFRjLEeD8K/7JVGkb/' . "\r\n" |
||
42 | . 'EwIDAQAB' . "\r\n" |
||
43 | . '-----END PUBLIC KEY-----' . "\r\n" |
||
44 | ); |
||
45 | |||
46 | /** |
||
47 | * Returns the location of Jetpack's lib directory. This filter is applied |
||
48 | * in require_lib(). |
||
49 | * |
||
50 | * @since 4.0.2 |
||
51 | * |
||
52 | * @return string Location of Jetpack library directory. |
||
53 | * |
||
54 | * @filter require_lib_dir |
||
55 | */ |
||
56 | function jetpack_require_lib_dir() { |
||
57 | return JETPACK__PLUGIN_DIR . '_inc/lib'; |
||
58 | } |
||
59 | |||
60 | |||
61 | /** |
||
62 | * Checks if the code debug mode turned on, and returns false if it is. When Jetpack is in |
||
63 | * code debug mode, it shouldn't use minified assets. Note that this filter is not being used |
||
64 | * in every place where assets are enqueued. The filter is added at priority 9 to be overridden |
||
65 | * by any default priority filter that runs after it. |
||
66 | * |
||
67 | * @since 6.2.0 |
||
68 | * |
||
69 | * @return boolean |
||
70 | * |
||
71 | * @filter jetpack_should_use_minified_assets |
||
72 | */ |
||
73 | function jetpack_should_use_minified_assets() { |
||
74 | if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) { |
||
75 | return false; |
||
76 | } |
||
77 | return true; |
||
78 | } |
||
79 | |||
80 | /** |
||
81 | * Outputs for an admin notice about running Jetpack on outdated WordPress. |
||
82 | * |
||
83 | * @since 7.2.0 |
||
84 | */ |
||
85 | function jetpack_admin_unsupported_wp_notice() { ?> |
||
86 | <div class="notice notice-error is-dismissible"> |
||
87 | <p><?php esc_html_e( 'Jetpack requires a more recent version of WordPress and has been paused. Please update WordPress to continue enjoying Jetpack.', 'jetpack' ); ?></p> |
||
88 | </div> |
||
89 | <?php |
||
90 | } |
||
91 | |||
92 | if ( version_compare( $GLOBALS['wp_version'], JETPACK__MINIMUM_WP_VERSION, '<' ) ) { |
||
93 | if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { |
||
94 | error_log( |
||
95 | sprintf( |
||
96 | /* translators: Placeholders are numbers, versions of WordPress in use on the site, and required by WordPress. */ |
||
97 | esc_html__( 'Your version of WordPress (%1$s) is lower than the version required by Jetpack (%2$s). Please update WordPress to continue enjoying Jetpack.', 'jetpack' ), |
||
98 | $GLOBALS['wp_version'], |
||
99 | JETPACK__MINIMUM_WP_VERSION |
||
100 | ) |
||
101 | ); |
||
102 | } |
||
103 | add_action( 'admin_notices', 'jetpack_admin_unsupported_wp_notice' ); |
||
104 | return; |
||
105 | } |
||
106 | |||
107 | /** |
||
108 | * Outputs an admin notice for folks running an outdated version of PHP. |
||
109 | * @todo: Remove once WP 5.2 is the minimum version. |
||
110 | * |
||
111 | * @since 7.4.0 |
||
112 | */ |
||
113 | function jetpack_admin_unsupported_php_notice() { ?> |
||
114 | <div class="notice notice-error is-dismissible"> |
||
115 | <p><?php esc_html_e( 'Jetpack requires a more recent version of PHP and has been paused. Please update PHP to continue enjoying Jetpack.', 'jetpack' ); ?></p> |
||
116 | <p class="button-container"> |
||
117 | <?php |
||
118 | printf( |
||
119 | '<a class="button button-primary" href="%1$s" target="_blank" rel="noopener noreferrer">%2$s <span class="screen-reader-text">%3$s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>', |
||
120 | esc_url( wp_get_update_php_url() ), |
||
121 | __( 'Learn more about updating PHP' ), |
||
122 | /* translators: accessibility text */ |
||
123 | __( '(opens in a new tab)' ) |
||
124 | ); |
||
125 | ?> |
||
126 | </p> |
||
127 | </div> |
||
128 | <?php |
||
129 | } |
||
130 | |||
131 | /** |
||
132 | * This is where the loading of Jetpack begins. |
||
133 | * |
||
134 | * First, we check for our supported version of PHP and load our composer autoloader. If either of these fail, |
||
135 | * we "pause" Jetpack by ending the loading process and displaying an admin_notice to inform the site owner. |
||
136 | * |
||
137 | * After both those things happen successfully, we require the legacy files, then add on to various hooks that we expect |
||
138 | * to always run. |
||
139 | * |
||
140 | * Lastly, we fire Jetpack::init() to fire up the engines. |
||
141 | */ |
||
142 | if ( version_compare( phpversion(), JETPACK__MINIMUM_PHP_VERSION, '<' ) ) { |
||
143 | if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { |
||
144 | error_log( |
||
145 | sprintf( |
||
146 | /* translators: Placeholders are numbers, versions of PHP in use on the site, and required by Jetpack. */ |
||
147 | esc_html__( 'Your version of PHP (%1$s) is lower than the version required by Jetpack (%2$s). Please update PHP to continue enjoying Jetpack.', 'jetpack' ), |
||
148 | esc_html( phpversion() ), |
||
149 | JETPACK__MINIMUM_PHP_VERSION |
||
150 | ) |
||
151 | ); |
||
152 | } |
||
153 | add_action( 'admin_notices', 'jetpack_admin_unsupported_php_notice' ); |
||
154 | return; |
||
155 | } |
||
156 | |||
157 | require_once( JETPACK__PLUGIN_DIR . 'packages/autoloader-loader/src/AutoloaderLoader.php' ); |
||
158 | $loader = new \Jetpack\Assets\AutoloaderLoader("oo"); |
||
0 ignored issues
–
show
|
|||
159 | $loader->load_autoloader(); |
||
160 | |||
161 | add_filter( 'jetpack_require_lib_dir', 'jetpack_require_lib_dir' ); |
||
162 | add_filter( 'jetpack_should_use_minified_assets', 'jetpack_should_use_minified_assets', 9 ); |
||
163 | |||
164 | // @todo: Abstract out the admin functions, and only include them if is_admin() |
||
165 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack.php' ); |
||
166 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-network.php' ); |
||
167 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-client.php' ); |
||
168 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-data.php' ); |
||
169 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-client-server.php' ); |
||
170 | require_once( JETPACK__PLUGIN_DIR . 'sync/class.jetpack-sync-actions.php' ); |
||
171 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-options.php' ); |
||
172 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-user-agent.php' ); |
||
173 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-post-images.php' ); |
||
174 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-error.php' ); |
||
175 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-heartbeat.php' ); |
||
176 | require_once( JETPACK__PLUGIN_DIR . 'class.photon.php' ); |
||
177 | require_once( JETPACK__PLUGIN_DIR . 'functions.photon.php' ); |
||
178 | require_once( JETPACK__PLUGIN_DIR . 'functions.global.php' ); |
||
179 | require_once( JETPACK__PLUGIN_DIR . 'functions.compat.php' ); |
||
180 | require_once( JETPACK__PLUGIN_DIR . 'functions.gallery.php' ); |
||
181 | require_once( JETPACK__PLUGIN_DIR . 'require-lib.php' ); |
||
182 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-autoupdate.php' ); |
||
183 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-tracks.php' ); |
||
184 | require_once( JETPACK__PLUGIN_DIR . 'class.frame-nonce-preview.php' ); |
||
185 | require_once( JETPACK__PLUGIN_DIR . 'modules/module-headings.php'); |
||
186 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-constants.php'); |
||
187 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-idc.php' ); |
||
188 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-connection-banner.php' ); |
||
189 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-plan.php' ); |
||
190 | |||
191 | if ( is_admin() ) { |
||
192 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-admin.php' ); |
||
193 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-jitm.php' ); |
||
194 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-affiliate.php' ); |
||
195 | jetpack_require_lib( 'debugger' ); |
||
196 | } |
||
197 | |||
198 | // Play nice with http://wp-cli.org/ |
||
199 | if ( defined( 'WP_CLI' ) && WP_CLI ) { |
||
200 | require_once( JETPACK__PLUGIN_DIR . 'class.jetpack-cli.php' ); |
||
201 | } |
||
202 | |||
203 | require_once( JETPACK__PLUGIN_DIR . '_inc/lib/class.core-rest-api-endpoints.php' ); |
||
204 | |||
205 | register_activation_hook( __FILE__, array( 'Jetpack', 'plugin_activation' ) ); |
||
206 | register_deactivation_hook( __FILE__, array( 'Jetpack', 'plugin_deactivation' ) ); |
||
207 | add_action( 'updating_jetpack_version', array( 'Jetpack', 'do_version_bump' ), 10, 2 ); |
||
208 | add_action( 'init', array( 'Jetpack', 'init' ) ); |
||
209 | add_action( 'plugins_loaded', array( 'Jetpack', 'plugin_textdomain' ), 99 ); |
||
210 | add_action( 'plugins_loaded', array( 'Jetpack', 'load_modules' ), 100 ); |
||
211 | add_filter( 'jetpack_static_url', array( 'Jetpack', 'staticize_subdomain' ) ); |
||
212 | add_filter( 'is_jetpack_site', '__return_true' ); |
||
213 | |||
214 | /** |
||
215 | * Add an easy way to photon-ize a URL that is safe to call even if Jetpack isn't active. |
||
216 | * |
||
217 | * See: http://jetpack.com/2013/07/11/photon-and-themes/ |
||
218 | */ |
||
219 | if ( Jetpack::is_module_active( 'photon' ) ) { |
||
220 | add_filter( 'jetpack_photon_url', 'jetpack_photon_url', 10, 3 ); |
||
221 | } |
||
222 | |||
223 | if ( JETPACK__SANDBOX_DOMAIN ) { |
||
224 | require_once( JETPACK__PLUGIN_DIR . '_inc/jetpack-server-sandbox.php' ); |
||
225 | } |
||
226 | |||
227 | require_once( JETPACK__PLUGIN_DIR . '3rd-party/3rd-party.php' ); |
||
228 | |||
229 | Jetpack::init(); |
||
230 |
This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.
If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.
In this case you can add the
@ignore
PhpDoc annotation to the duplicate definition and it will be ignored.