PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 15.9-a.5
Jetpack – WP Security, Backup, Speed, & Growth v15.9-a.5
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.compat.php
jetpack Last commit date
3rd-party 1 week ago _inc 1 week ago css 2 weeks ago extensions 1 week ago images 1 month ago jetpack_vendor 1 week ago json-endpoints 1 week ago modules 1 week ago sal 1 week ago src 1 week ago vendor 1 week ago views 1 month ago CHANGELOG.md 1 week ago LICENSE.txt 5 months ago SECURITY.md 2 years ago class-jetpack-connection-status.php 2 years ago class-jetpack-gallery-settings.php 6 months ago class-jetpack-newsletter-dashboard-widget.php 6 months ago class-jetpack-pre-connection-jitms.php 2 years ago class-jetpack-stats-dashboard-widget.php 3 months ago class-jetpack-xmlrpc-methods.php 1 week ago class.frame-nonce-preview.php 6 months ago class.jetpack-admin.php 1 month ago class.jetpack-autoupdate.php 6 months ago class.jetpack-cli.php 1 week ago class.jetpack-client-server.php 2 years ago class.jetpack-gutenberg.php 1 week ago class.jetpack-heartbeat.php 3 months ago class.jetpack-modules-list-table.php 6 months ago class.jetpack-network-sites-list-table.php 6 months ago class.jetpack-network.php 1 month ago class.jetpack-plan.php 2 years ago class.jetpack-post-images.php 2 months ago class.jetpack-twitter-cards.php 3 months ago class.jetpack-user-agent.php 2 years ago class.jetpack.php 1 week ago class.json-api-endpoints.php 1 week ago class.json-api.php 2 weeks ago class.photon.php 3 years ago composer.json 1 week ago enhanced-open-graph.php 1 week ago functions.compat.php 3 months ago functions.cookies.php 2 years ago functions.global.php 1 month ago functions.is-mobile.php 2 years ago functions.opengraph.php 2 months ago functions.photon.php 2 years ago jetpack.php 1 week ago json-api-config.php 3 years ago json-endpoints.php 2 years ago load-jetpack.php 1 week ago locales.php 6 months ago readme.txt 1 week ago unauth-file-upload.php 6 months ago uninstall.php 6 months ago wpml-config.xml 3 years ago
functions.compat.php
162 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.NotHyphenatedLowercase
2 /**
3 * Compatibility functions for YouTube URLs and WP.com helper functions.
4 *
5 * @package automattic/jetpack
6 */
7
8 use Automattic\Jetpack\Connection\Manager as Connection_Manager;
9
10 /**
11 * Required for class.media-extractor.php to match expected function naming convention.
12 *
13 * @param string|array $url Can be just the $url or the whole $atts array.
14 * @return bool|mixed The Youtube video ID via jetpack_get_youtube_id
15 */
16 function jetpack_shortcode_get_youtube_id( $url ) {
17 return jetpack_get_youtube_id( $url );
18 }
19
20 /**
21 * Extract video ID from a YouTube url.
22 *
23 * @param string|array $url YouTube URL.
24 * @return bool|mixed The Youtube video ID
25 */
26 function jetpack_get_youtube_id( $url ) {
27 // Do we have an $atts array? Get first att
28 if ( is_array( $url ) ) {
29 $url = reset( $url );
30 }
31
32 $url = jetpack_youtube_sanitize_url( $url );
33 $url = wp_parse_url( $url );
34 $id = false;
35
36 if ( ! isset( $url['query'] ) ) {
37 return false;
38 }
39
40 parse_str( $url['query'], $qargs );
41
42 if ( ! isset( $qargs['v'] ) && ! isset( $qargs['list'] ) ) {
43 return false;
44 }
45
46 if ( isset( $qargs['list'] ) ) {
47 $id = preg_replace( '|[^_a-z0-9-]|i', '', $qargs['list'] );
48 }
49
50 if ( empty( $id ) ) {
51 $id = preg_replace( '|[^_a-z0-9-]|i', '', $qargs['v'] );
52 }
53
54 return $id;
55 }
56
57 if ( ! function_exists( 'jetpack_youtube_sanitize_url' ) ) :
58 /**
59 * Normalizes a YouTube URL to include a v= parameter and a query string free of encoded ampersands.
60 *
61 * @param string|array $url YouTube URL.
62 * @return string|false The normalized URL or false if input is invalid.
63 */
64 function jetpack_youtube_sanitize_url( $url ) {
65 if ( is_array( $url ) && isset( $url['url'] ) ) {
66 $url = $url['url'];
67 }
68 if ( ! is_string( $url ) ) {
69 return false;
70 }
71
72 $url = trim( $url, ' "' );
73 $url = trim( $url );
74 $url = str_replace( array( 'youtu.be/', '/v/', '/shorts/', '#!v=', '&amp;', '&#038;', 'playlist' ), array( 'youtu.be/?v=', '/?v=', '/watch?v=', '?v=', '&', '&', 'videoseries' ), $url );
75
76 // Replace any extra question marks with ampersands - the result of a URL like "https://www.youtube.com/v/dQw4w9WgXcQ?fs=1&hl=en_US" being passed in.
77 $query_string_start = strpos( $url, '?' );
78
79 if ( false !== $query_string_start ) {
80 $url = substr( $url, 0, $query_string_start + 1 ) . str_replace( '?', '&', substr( $url, $query_string_start + 1 ) );
81 }
82
83 return $url;
84 }
85 endif;
86
87 /**
88 * Merge in three string helper functions from WPCOM to make working with strings easier.
89 *
90 * @see WPCOM/wp-content/mu-plugins/string-helpers.php
91 */
92 if ( ! function_exists( 'wp_startswith' ) ) :
93 /**
94 * Check whether a string starts with a specific substring.
95 *
96 * @param string $haystack String we are filtering.
97 * @param string $needle The substring we are looking for.
98 * @return bool
99 */
100 function wp_startswith( $haystack, $needle ) {
101 if ( ! $haystack || ! $needle || ! is_scalar( $haystack ) || ! is_scalar( $needle ) ) {
102 return false;
103 }
104
105 $haystack = (string) $haystack;
106 $needle = (string) $needle;
107
108 return str_starts_with( $haystack, $needle );
109 }
110 endif;
111
112 if ( ! function_exists( 'wp_endswith' ) ) :
113 /**
114 * Check whether a string ends with a specific substring.
115 *
116 * @param string $haystack String we are filtering.
117 * @param string $needle The substring we are looking for.
118 * @return bool
119 */
120 function wp_endswith( $haystack, $needle ) {
121 if ( ! $haystack || ! $needle || ! is_scalar( $haystack ) || ! is_scalar( $needle ) ) {
122 return false;
123 }
124
125 $haystack = (string) $haystack;
126 $needle = (string) $needle;
127
128 return str_ends_with( $haystack, $needle );
129 }
130 endif;
131
132 if ( ! function_exists( 'wp_in' ) ) :
133 /**
134 * Checks whether a string contains a specific substring.
135 *
136 * @param string $needle The substring we are looking for.
137 * @param string $haystack String we are filtering.
138 * @return bool
139 */
140 function wp_in( $needle, $haystack ) {
141 if ( ! $haystack || ! $needle || ! is_scalar( $haystack ) || ! is_scalar( $needle ) ) {
142 return false;
143 }
144
145 $haystack = (string) $haystack;
146 $needle = (string) $needle;
147
148 return str_contains( $haystack, $needle );
149 }
150 endif;
151
152 /**
153 * Deprecated connection function.
154 *
155 * @param string $text Deprecated.
156 * @deprecated 7.5 Use Connection_Manager instead.
157 */
158 function jetpack_sha1_base64( $text ) {
159 $connection = new Connection_Manager();
160 return $connection->sha1_base64( $text );
161 }
162