PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 7.3.0.1
Jetpack – WP Security, Backup, Speed, & Growth v7.3.0.1
15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / functions.global.php
jetpack Last commit date
3rd-party 7 years ago _inc 7 years ago bin 7 years ago css 7 years ago extensions 7 years ago images 7 years ago json-endpoints 7 years ago languages 7 years ago logs 9 years ago modules 7 years ago sal 7 years ago scss 7 years ago sync 7 years ago views 7 years ago wp-cli-templates 7 years ago .svnignore 12 years ago CODE-OF-CONDUCT.md 9 years ago changelog.txt 7 years ago class.frame-nonce-preview.php 9 years ago class.jetpack-admin.php 7 years ago class.jetpack-affiliate.php 7 years ago class.jetpack-autoupdate.php 7 years ago class.jetpack-bbpress-json-api-compat.php 9 years ago class.jetpack-cli.php 7 years ago class.jetpack-client-server.php 8 years ago class.jetpack-client.php 7 years ago class.jetpack-connection-banner.php 7 years ago class.jetpack-constants.php 8 years ago class.jetpack-data.php 7 years ago class.jetpack-debugger.php 7 years ago class.jetpack-error.php 10 years ago class.jetpack-gutenberg.php 7 years ago class.jetpack-heartbeat.php 7 years ago class.jetpack-idc.php 8 years ago class.jetpack-ixr-client.php 10 years ago class.jetpack-jitm.php 7 years ago class.jetpack-modules-list-table.php 7 years ago class.jetpack-network-sites-list-table.php 9 years ago class.jetpack-network.php 7 years ago class.jetpack-options.php 7 years ago class.jetpack-plan.php 7 years ago class.jetpack-post-images.php 7 years ago class.jetpack-signature.php 7 years ago class.jetpack-tracks.php 7 years ago class.jetpack-twitter-cards.php 7 years ago class.jetpack-user-agent.php 8 years ago class.jetpack-xmlrpc-server.php 7 years ago class.jetpack.php 7 years ago class.json-api-endpoints.php 7 years ago class.json-api.php 7 years ago class.photon.php 7 years ago composer.json 7 years ago functions.compat.php 7 years ago functions.gallery.php 8 years ago functions.global.php 7 years ago functions.opengraph.php 7 years ago functions.photon.php 7 years ago jest.config.js 7 years ago jetpack.php 7 years ago json-api-config.php 10 years ago json-endpoints.php 7 years ago locales.php 7 years ago readme.txt 7 years ago require-lib.php 7 years ago uninstall.php 7 years ago wpml-config.xml 10 years ago
functions.global.php
229 lines
1 <?php
2 /**
3 * This file is meant to be the home for any generic & reusable functions
4 * that can be accessed anywhere within Jetpack.
5 *
6 * This file is loaded whether or not Jetpack is active.
7 *
8 * Please namespace with jetpack_
9 *
10 * @package Jetpack
11 */
12
13 /**
14 * Disable direct access.
15 */
16 if ( ! defined( 'ABSPATH' ) ) {
17 exit;
18 }
19
20 /**
21 * Set the admin language, based on user language.
22 *
23 * @since 4.5.0
24 * @deprecated 6.6.0 Use Core function instead.
25 *
26 * @return string
27 */
28 function jetpack_get_user_locale() {
29 _deprecated_function( __FUNCTION__, 'jetpack-6.6.0', 'get_user_locale' );
30 return get_user_locale();
31 }
32
33 /**
34 * Determine if this site is an Atomic site or not looking first at the 'at_options' option.
35 * As a fallback, check for presence of wpcomsh plugin to determine if a current site has undergone AT.
36 *
37 * @since 4.8.1
38 *
39 * @return bool
40 */
41 function jetpack_is_atomic_site() {
42 $at_options = get_option( 'at_options', array() );
43 return ! empty( $at_options ) || defined( 'WPCOMSH__PLUGIN_FILE' );
44 }
45
46 /**
47 * Register post type for migration.
48 *
49 * @since 5.2
50 */
51 function jetpack_register_migration_post_type() {
52 register_post_type(
53 'jetpack_migration',
54 array(
55 'supports' => array(),
56 'taxonomies' => array(),
57 'hierarchical' => false,
58 'public' => false,
59 'has_archive' => false,
60 'can_export' => true,
61 )
62 );
63 }
64
65 /**
66 * Stores migration data in the database.
67 *
68 * @since 5.2
69 *
70 * @param string $option_name Option name.
71 * @param bool $option_value Option value.
72 *
73 * @return int|WP_Error
74 */
75 function jetpack_store_migration_data( $option_name, $option_value ) {
76 jetpack_register_migration_post_type();
77
78 $insert = array(
79 'post_title' => $option_name,
80 'post_content_filtered' => $option_value,
81 'post_type' => 'jetpack_migration',
82 'post_date' => date( 'Y-m-d H:i:s', time() ),
83 );
84
85 $post = get_page_by_title( $option_name, 'OBJECT', 'jetpack_migration' );
86
87 if ( null !== $post ) {
88 $insert['ID'] = $post->ID;
89 }
90
91 return wp_insert_post( $insert, true );
92 }
93
94 /**
95 * Retrieves legacy image widget data.
96 *
97 * @since 5.2
98 *
99 * @param string $option_name Option name.
100 *
101 * @return mixed|null
102 */
103 function jetpack_get_migration_data( $option_name ) {
104 $post = get_page_by_title( $option_name, 'OBJECT', 'jetpack_migration' );
105
106 return null !== $post ? maybe_unserialize( $post->post_content_filtered ) : null;
107 }
108
109 /**
110 * Prints a TOS blurb used throughout the connection prompts.
111 *
112 * @since 5.3
113 *
114 * @echo string
115 */
116 function jetpack_render_tos_blurb() {
117 printf(
118 wp_kses(
119 /* Translators: placeholders are links. */
120 __( 'By clicking the <strong>Set up Jetpack</strong> button, you agree to our <a href="%1$s" target="_blank" rel="noopener noreferrer">Terms of Service</a> and to <a href="%2$s" target="_blank" rel="noopener noreferrer">share details</a> with WordPress.com.', 'jetpack' ),
121 array(
122 'a' => array(
123 'href' => array(),
124 'target' => array(),
125 'rel' => array(),
126 ),
127 'strong' => true,
128 )
129 ),
130 'https://wordpress.com/tos',
131 'https://jetpack.com/support/what-data-does-jetpack-sync'
132 );
133 }
134
135 /**
136 * Intervene upgrade process so Jetpack themes are downloaded with credentials.
137 *
138 * @since 5.3
139 *
140 * @param bool $preempt Whether to preempt an HTTP request's return value. Default false.
141 * @param array $r HTTP request arguments.
142 * @param string $url The request URL.
143 *
144 * @return array|bool|WP_Error
145 */
146 function jetpack_theme_update( $preempt, $r, $url ) {
147 if ( false !== stripos( $url, JETPACK__WPCOM_JSON_API_HOST . '/rest/v1/themes/download' ) ) {
148 $file = $r['filename'];
149 if ( ! $file ) {
150 return new WP_Error( 'problem_creating_theme_file', esc_html__( 'Problem creating file for theme download', 'jetpack' ) );
151 }
152 $theme = pathinfo( wp_parse_url( $url, PHP_URL_PATH ), PATHINFO_FILENAME );
153
154 // Remove filter to avoid endless loop since wpcom_json_api_request_as_blog uses this too.
155 remove_filter( 'pre_http_request', 'jetpack_theme_update' );
156 $result = Jetpack_Client::wpcom_json_api_request_as_blog(
157 "themes/download/$theme.zip",
158 '1.1',
159 array(
160 'stream' => true,
161 'filename' => $file,
162 )
163 );
164
165 if ( 200 !== wp_remote_retrieve_response_code( $result ) ) {
166 return new WP_Error( 'problem_fetching_theme', esc_html__( 'Problem downloading theme', 'jetpack' ) );
167 }
168 return $result;
169 }
170 return $preempt;
171 }
172
173 /**
174 * Add the filter when a upgrade is going to be downloaded.
175 *
176 * @since 5.3
177 *
178 * @param bool $reply Whether to bail without returning the package. Default false.
179 *
180 * @return bool
181 */
182 function jetpack_upgrader_pre_download( $reply ) {
183 add_filter( 'pre_http_request', 'jetpack_theme_update', 10, 3 );
184 return $reply;
185 }
186
187 add_filter( 'upgrader_pre_download', 'jetpack_upgrader_pre_download' );
188
189
190 /**
191 * Wraps data in a way so that we can distinguish between objects and array and also prevent object recursion.
192 *
193 * @since 6.1.0
194 *
195 * @param array|obj $any Source data to be cleaned up.
196 * @param array $seen_nodes Built array of nodes.
197 *
198 * @return array
199 */
200 function jetpack_json_wrap( &$any, $seen_nodes = array() ) {
201 if ( is_object( $any ) ) {
202 $input = get_object_vars( $any );
203 $input['__o'] = 1;
204 } else {
205 $input = &$any;
206 }
207
208 if ( is_array( $input ) ) {
209 $seen_nodes[] = &$any;
210
211 $return = array();
212
213 foreach ( $input as $k => &$v ) {
214 if ( ( is_array( $v ) || is_object( $v ) ) ) {
215 if ( in_array( $v, $seen_nodes, true ) ) {
216 continue;
217 }
218 $return[ $k ] = jetpack_json_wrap( $v, $seen_nodes );
219 } else {
220 $return[ $k ] = $v;
221 }
222 }
223
224 return $return;
225 }
226
227 return $any;
228 }
229