PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 13.4.5
Jetpack – WP Security, Backup, Speed, & Growth v13.4.5
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 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 / _inc / lib / class-jetpack-google-drive-helper.php
jetpack / _inc / lib Last commit date
admin-pages 2 years ago core-api 2 years ago debugger 2 years ago markdown 2 years ago class-jetpack-ai-helper.php 2 years ago class-jetpack-currencies.php 5 years ago class-jetpack-google-drive-helper.php 2 years ago class-jetpack-instagram-gallery-helper.php 2 years ago class-jetpack-mapbox-helper.php 3 years ago class-jetpack-podcast-feed-locator.php 2 years ago class-jetpack-podcast-helper.php 2 years ago class-jetpack-recommendations.php 2 years ago class-jetpack-top-posts-helper.php 2 years ago class.color.php 2 years ago class.core-rest-api-endpoints.php 2 years ago class.jetpack-automatic-install-skin.php 2 years ago class.jetpack-iframe-embed.php 3 years ago class.jetpack-keyring-service-helper.php 2 years ago class.jetpack-password-checker.php 2 years ago class.jetpack-search-performance-logger.php 4 years ago class.media-extractor.php 2 years ago class.media-summary.php 2 years ago class.media.php 2 years ago components.php 3 years ago debugger.php 2 years ago functions.wp-notify.php 3 years ago icalendar-reader.php 2 years ago markdown.php 3 years ago plans.php 4 years ago plugins.php 4 years ago tonesque.php 2 years ago widgets.php 2 years ago
class-jetpack-google-drive-helper.php
134 lines
1 <?php
2 /**
3 * Google Drive helper.
4 *
5 * @deprecated 13.4 Use automattic/jetpack-forms
6 * @package automattic/jetpack
7 */
8
9 use Automattic\Jetpack\Connection\Client;
10 use Automattic\Jetpack\Connection\Manager;
11 use Automattic\Jetpack\Status\Visitor;
12
13 /**
14 * Class Jetpack_Google_Drive_Helper
15 *
16 * @deprecated 13.4 Use Automattic\Jetpack\Forms\Service\Google_Drive_Helper
17 */
18 class Jetpack_Google_Drive_Helper {
19 /**
20 * Checks if the user has a valid connection to Google Drive
21 *
22 * @deprecated 13.4 Use Automattic\Jetpack\Forms\Service\Google_Drive_Helper->has_valid_connection
23 * @param int $user_id The user ID.
24 * @return array Array with single 'valid' (bool) entry.
25 */
26 public static function has_valid_connection( $user_id ) {
27 _deprecated_function( __METHOD__, 'jetpack-13.4', 'Automattic\Jetpack\Forms\Service\Google_Drive_Helper->has_valid_connection' );
28 $site_id = Manager::get_site_id();
29 if ( is_wp_error( $site_id ) ) {
30 return false;
31 }
32
33 if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
34 // check for gdrive helper class, call synchronously on .com
35 require_lib( 'google-sheets-helper' );
36 $user_id = (int) get_current_user_id();
37 $token = WPCOM_Google_Sheets_helper::get_google_drive_token_for_user_id( $user_id );
38
39 return ! is_wp_error( $token ) && ! $token->is_expired();
40 }
41
42 $request_path = sprintf( '/sites/%d/google-drive/connection', $site_id );
43 $wpcom_request = Client::wpcom_json_api_request_as_user(
44 $request_path,
45 '2',
46 array(
47 'method' => 'GET',
48 'headers' => array(
49 'content-type' => 'application/json',
50 'X-Forwarded-For' => ( new Visitor() )->get_ip( true ),
51 ),
52 )
53 );
54
55 $response_code = wp_remote_retrieve_response_code( $wpcom_request );
56 if ( 200 !== $response_code ) {
57 return new WP_Error(
58 'failed_to_fetch_data',
59 esc_html__( 'Unable to fetch the requested data.', 'jetpack' ),
60 array( 'status' => $response_code )
61 );
62 }
63 $result = json_decode( wp_remote_retrieve_body( $wpcom_request ), true );
64
65 return ! empty( $result ) && ! empty( $result['valid'] );
66 }
67
68 /**
69 * Creates a Google Spreadsheet and returns some of its meta
70 *
71 * @deprecated 13.4 Use Automattic\Jetpack\Forms\Service\Google_Drive_Helper->create_sheet
72 * @param int $user_id The user ID.
73 * @param string $title The spreadsheet title.
74 * @param array $rows Array of arrays with values.
75 * @return array|WP_Error
76 */
77 public static function create_sheet( $user_id, $title, $rows = array() ) {
78 _deprecated_function( __METHOD__, 'jetpack-13.4', 'Automattic\Jetpack\Forms\Service\Google_Drive_Helper->create_sheet' );
79 $site_id = Manager::get_site_id();
80 if ( is_wp_error( $site_id ) ) {
81 return false;
82 }
83
84 if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
85 // check for gdrive helper class, call synchronously on .com
86 require_lib( 'google-sheets-helper' );
87 $helper = WPCOM_Google_Sheets_helper::create_for_user( $user_id );
88
89 if ( is_wp_error( $helper ) ) {
90 return $helper;
91 }
92
93 $spreadsheet = $helper->create_spreadsheet( $title, $rows );
94
95 if ( is_wp_error( $spreadsheet ) ) {
96 return $spreadsheet;
97 }
98
99 return array(
100 // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase -- as is on google client
101 'sheet_link' => $spreadsheet->spreadsheetUrl,
102 // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase -- as is on google client
103 'sheet_id' => $spreadsheet->spreadsheetId,
104 );
105 }
106
107 $request_path = sprintf( '/sites/%d/google-drive/sheets', $site_id );
108 $wpcom_request = Client::wpcom_json_api_request_as_user(
109 $request_path,
110 '2',
111 array(
112 'method' => 'POST',
113 'headers' => array(
114 'content-type' => 'application/json',
115 'X-Forwarded-For' => ( new Visitor() )->get_ip( true ),
116 ),
117 ),
118 array(
119 'title' => $title,
120 'rows' => $rows,
121 )
122 );
123 $response_code = wp_remote_retrieve_response_code( $wpcom_request );
124 if ( 200 !== $response_code ) {
125 return new WP_Error(
126 'failed_to_fetch_data',
127 esc_html__( 'Unable to fetch the requested data.', 'jetpack' ),
128 array( 'status' => $response_code )
129 );
130 }
131 return json_decode( wp_remote_retrieve_body( $wpcom_request ), true );
132 }
133 }
134