PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 7.2.1
Jetpack – WP Security, Backup, Speed, & Growth v7.2.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 .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 8 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 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 8 years ago wpml-config.xml 10 years ago
functions.global.php
209 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 * Please write docblocks
10 */
11
12 /**
13 * Disable direct access.
14 */
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit;
17 }
18
19 /**
20 * Set the admin language, based on user language.
21 *
22 * @since 4.5.0
23 * @deprecated 6.6.0 Use Core function instead.
24 *
25 * @return string
26 */
27 function jetpack_get_user_locale() {
28 _deprecated_function( __FUNCTION__, 'jetpack-6.6.0', 'get_user_locale' );
29 return get_user_locale();
30 }
31
32 /**
33 * Determine if this site is an Atomic site or not looking first at the 'at_options' option.
34 * As a fallback, check for presence of wpcomsh plugin to determine if a current site has undergone AT.
35 *
36 * @since 4.8.1
37 *
38 * @return bool
39 */
40 function jetpack_is_atomic_site() {
41 $at_options = get_option( 'at_options', array() );
42 return ! empty( $at_options ) || defined( 'WPCOMSH__PLUGIN_FILE' );
43 }
44
45 /**
46 * Register post type for migration.
47 *
48 * @since 5.2
49 */
50 function jetpack_register_migration_post_type() {
51 register_post_type( 'jetpack_migration', array(
52 'supports' => array(),
53 'taxonomies' => array(),
54 'hierarchical' => false,
55 'public' => false,
56 'has_archive' => false,
57 'can_export' => true,
58 ) );
59 }
60
61 /**
62 * Stores migration data in the database.
63 *
64 * @since 5.2
65 *
66 * @param string $option_name
67 * @param bool $option_value
68 *
69 * @return int|WP_Error
70 */
71 function jetpack_store_migration_data( $option_name, $option_value ) {
72 jetpack_register_migration_post_type();
73
74 $insert = array(
75 'post_title' => $option_name,
76 'post_content_filtered' => $option_value,
77 'post_type' => 'jetpack_migration',
78 'post_date' => date( 'Y-m-d H:i:s', time() ),
79 );
80
81 $post = get_page_by_title( $option_name, 'OBJECT', 'jetpack_migration' );
82
83 if ( null !== $post ) {
84 $insert['ID'] = $post->ID;
85 }
86
87 return wp_insert_post( $insert, true );
88 }
89
90 /**
91 * Retrieves legacy image widget data.
92 *
93 * @since 5.2
94 *
95 * @param string $option_name
96 *
97 * @return mixed|null
98 */
99 function jetpack_get_migration_data( $option_name ) {
100 $post = get_page_by_title( $option_name, 'OBJECT', 'jetpack_migration' );
101
102 return null !== $post ? maybe_unserialize( $post->post_content_filtered ) : null;
103 }
104
105 /**
106 * Prints a TOS blurb used throughout the connection prompts.
107 *
108 * @since 5.3
109 *
110 * @return string
111 */
112 function jetpack_render_tos_blurb() {
113 printf(
114 __( 'By clicking the <strong>Set up Jetpack</strong> button, you agree to our <a href="%s" target="_blank">Terms of Service</a> and to <a href="%s" target="_blank">share details</a> with WordPress.com.', 'jetpack' ),
115 'https://wordpress.com/tos',
116 'https://jetpack.com/support/what-data-does-jetpack-sync'
117 );
118 }
119
120 /**
121 * Intervene upgrade process so Jetpack themes are downloaded with credentials.
122 *
123 * @since 5.3
124 *
125 * @param bool $preempt Whether to preempt an HTTP request's return value. Default false.
126 * @param array $r HTTP request arguments.
127 * @param string $url The request URL.
128 *
129 * @return array|bool|WP_Error
130 */
131 function jetpack_theme_update( $preempt, $r, $url ) {
132 if ( false !== stripos( $url, JETPACK__WPCOM_JSON_API_HOST . '/rest/v1/themes/download' ) ) {
133 $file = $r['filename'];
134 if ( ! $file ) {
135 return new WP_Error( 'problem_creating_theme_file', esc_html__( 'Problem creating file for theme download', 'jetpack' ) );
136 }
137 $theme = pathinfo( parse_url( $url, PHP_URL_PATH ), PATHINFO_FILENAME );
138
139 // Remove filter to avoid endless loop since wpcom_json_api_request_as_blog uses this too.
140 remove_filter( 'pre_http_request', 'jetpack_theme_update' );
141 $result = Jetpack_Client::wpcom_json_api_request_as_blog(
142 "themes/download/$theme.zip", '1.1', array( 'stream' => true, 'filename' => $file )
143 );
144
145 if ( 200 !== wp_remote_retrieve_response_code( $result ) ) {
146 return new WP_Error( 'problem_fetching_theme', esc_html__( 'Problem downloading theme', 'jetpack' ) );
147 }
148 return $result;
149 }
150 return $preempt;
151 }
152
153 /**
154 * Add the filter when a upgrade is going to be downloaded.
155 *
156 * @since 5.3
157 *
158 * @param bool $reply Whether to bail without returning the package. Default false.
159 *
160 * @return bool
161 */
162 function jetpack_upgrader_pre_download( $reply ) {
163 add_filter( 'pre_http_request', 'jetpack_theme_update', 10, 3 );
164 return $reply;
165 }
166
167 add_filter( 'upgrader_pre_download', 'jetpack_upgrader_pre_download' );
168
169
170 /**
171 * Wraps data in a way so that we can distinguish between objects and array and also prevent object recursion.
172 *
173 * @since 6.1.0
174 *
175 * @param $any
176 * @param array $seen_nodes
177 *
178 * @return array
179 */
180 function jetpack_json_wrap( &$any, $seen_nodes = array() ) {
181 if ( is_object( $any ) ) {
182 $input = get_object_vars( $any );
183 $input['__o'] = 1;
184 } else {
185 $input = &$any;
186 }
187
188 if ( is_array( $input ) ) {
189 $seen_nodes[] = &$any;
190
191 $return = array();
192
193 foreach ( $input as $k => &$v ) {
194 if ( ( is_array( $v ) || is_object( $v ) ) ) {
195 if ( in_array( $v, $seen_nodes, true ) ) {
196 continue;
197 }
198 $return[ $k ] = jetpack_json_wrap( $v, $seen_nodes );
199 } else {
200 $return[ $k ] = $v;
201 }
202 }
203
204 return $return;
205 }
206
207 return $any;
208 }
209