PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.1-beta.2
Jetpack – WP Security, Backup, Speed, & Growth v16.1-beta.2
16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 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 / jetpack_vendor / automattic / jetpack-publicize / src / class-publicize-utils.php
jetpack / jetpack_vendor / automattic / jetpack-publicize / src Last commit date
jetpack-social-settings 3 months ago rest-api 3 weeks ago social-image-generator 3 weeks ago class-connections.php 3 weeks ago class-focal-point.php 2 months ago class-keyring-helper.php 2 months ago class-keyring-result-handler.php 2 months ago class-message-templates-placeholders.php 3 months ago class-publicize-assets.php 2 months ago class-publicize-base.php 4 weeks ago class-publicize-script-data.php 1 month ago class-publicize-setup.php 4 weeks ago class-publicize-ui.php 4 weeks ago class-publicize-utils.php 4 weeks ago class-publicize.php 2 months ago class-services.php 3 weeks ago class-share-status.php 9 months ago class-social-admin-page.php 3 weeks ago
class-publicize-utils.php
179 lines
1 <?php
2 /**
3 * Publicize_Utils.
4 *
5 * @package automattic/jetpack-publicize
6 */
7
8 namespace Automattic\Jetpack\Publicize;
9
10 use Automattic\Jetpack\Connection\Manager;
11 use Automattic\Jetpack\Modules;
12 use Automattic\Jetpack\Status\Host;
13 use WP_Error;
14
15 /**
16 * Publicize_Utils class.
17 */
18 class Publicize_Utils {
19
20 /**
21 * Whether the current page is the social settings page.
22 */
23 public static function is_social_settings_page() {
24 $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null;
25
26 return ! empty( $screen ) && 'jetpack_page_jetpack-social' === $screen->base;
27 }
28
29 /**
30 * Whether the current page is the Jetpack settings page.
31 */
32 public static function is_jetpack_settings_page() {
33 $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null;
34
35 return ! empty( $screen ) && 'toplevel_page_jetpack' === $screen->base;
36 }
37
38 /**
39 * Whether the block editor should have the social features.
40 *
41 * @return bool
42 */
43 public static function should_block_editor_have_social() {
44 if ( ! is_admin() ) {
45 return false;
46 }
47
48 $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null;
49
50 if ( empty( $screen ) || ! $screen->is_block_editor() ) {
51 return false;
52 }
53
54 $needs_jetpack_connection = ! ( new Host() )->is_wpcom_platform();
55
56 if ( $needs_jetpack_connection && ! self::is_connected() ) {
57 return false;
58 }
59
60 $post_type = get_post_type();
61
62 if ( empty( $post_type ) || ! post_type_supports( $post_type, 'publicize' ) ) {
63 return false;
64 }
65
66 return true;
67 }
68
69 /**
70 * Helper to check that we have a Jetpack connection.
71 */
72 public static function is_connected() {
73
74 $connection = new Manager();
75
76 return $connection->is_connected() && $connection->has_connected_user();
77 }
78
79 /**
80 * Check if the Publicize module is active.
81 *
82 * @return bool
83 */
84 public static function is_publicize_active() {
85 return ( new Modules() )->is_active( 'publicize' );
86 }
87
88 /**
89 * Check if we are on WPCOM.
90 *
91 * @return bool
92 */
93 public static function is_wpcom() {
94 return ( new Host() )->is_wpcom_simple();
95 }
96
97 /**
98 * Assert that the method is only called on WPCOM.
99 *
100 * @param string $method The method name.
101 *
102 * @throws \Exception If the method is not called on WPCOM.
103 */
104 public static function assert_is_wpcom( $method ) {
105 if ( ! self::is_wpcom() ) {
106 throw new \Exception( esc_html( "Method $method can only be called on WordPress.com." ) );
107 }
108 }
109
110 /**
111 * Check if the new module endpoint is available in the used Jetpack version.
112 * We need the module status in response that's why we do the version check https://github.com/Automattic/jetpack/pull/41461/files#diff-f8e5ef1115599de750b64143dd1901554254eddd95ab4371b6b6b3b2a5914224R638-R642.
113 * More: https://github.com/Automattic/jetpack/pull/41596.
114 *
115 * @return bool
116 */
117 public static function should_use_jetpack_module_endpoint() {
118 return class_exists( 'Jetpack' ) && defined( 'JETPACK__VERSION' ) && ( version_compare( (string) JETPACK__VERSION, '14.3', '>=' ) );
119 }
120
121 /**
122 * Log a warning that a deprecated endpoint was called.
123 *
124 * @param string $function_name The function name.
125 * @param string $version The version in which the endpoint was deprecated.
126 * @param string $deprecated_endpoint The deprecated endpoint.
127 * @param string $alternative_endpoint The alternative endpoint.
128 */
129 public static function endpoint_deprecated_warning( $function_name, $version, $deprecated_endpoint, $alternative_endpoint = '' ) {
130
131 $messages = array(
132 sprintf(
133 /* translators: %s: REST API endpoint. */
134 esc_html__( '%1$s endpoint has been deprecated.', 'jetpack-publicize-pkg' ),
135 '"' . $deprecated_endpoint . '"'
136 ),
137 );
138
139 if ( ! empty( $alternative_endpoint ) ) {
140 $messages[] = sprintf(
141 /* translators: %s: alternative endpoint. */
142 esc_html__( 'Please use %s endpoint instead.', 'jetpack-publicize-pkg' ),
143 '"' . $alternative_endpoint . '"'
144 );
145 }
146
147 $messages[] = esc_html__( 'Please update all the Jetpack plugins to the latest version.', 'jetpack-publicize-pkg' );
148
149 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- We have done it above.
150 _doing_it_wrong( esc_html( $function_name ), implode( ' ', $messages ), $version );
151 }
152
153 /**
154 * Forward remote response to client with error handling.
155 *
156 * @param array|WP_Error $response Response from WPCOM.
157 *
158 * @return array|WP_Error
159 */
160 public static function make_proper_response( $response ) {
161 if ( is_wp_error( $response ) ) {
162 return $response;
163 }
164
165 $body = json_decode( wp_remote_retrieve_body( $response ), true );
166 $status_code = wp_remote_retrieve_response_code( $response );
167
168 if ( 200 === $status_code ) {
169 return $body;
170 }
171
172 return new WP_Error(
173 isset( $body['error'] ) ? 'remote-error-' . $body['error'] : 'remote-error',
174 $body['message'] ?? 'unknown remote error',
175 array( 'status' => $status_code )
176 );
177 }
178 }
179