PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.0-beta
Jetpack – WP Security, Backup, Speed, & Growth v16.0-beta
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 / modules / wordads / php / class-wordads-api.php
jetpack / modules / wordads / php Last commit date
networks 5 years ago class-wordads-admin.php 7 months ago class-wordads-api.php 7 months ago class-wordads-array-utils.php 7 months ago class-wordads-california-privacy.php 6 months ago class-wordads-ccpa-do-not-sell-link-widget.php 7 months ago class-wordads-consent-management-provider.php 6 months ago class-wordads-cron.php 7 months ago class-wordads-formats.php 7 months ago class-wordads-params.php 7 months ago class-wordads-shortcode.php 7 months ago class-wordads-sidebar-widget.php 7 months ago class-wordads-smart.php 2 weeks ago
class-wordads-api.php
103 lines
1 <?php
2 /**
3 * The WordAds API.
4 *
5 * @package automattic/jetpack
6 */
7
8 use Automattic\Jetpack\Connection\Client;
9 use Automattic\Jetpack\Status;
10
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit( 0 );
13 }
14
15 /**
16 * Methods for accessing data through the WPCOM REST API
17 *
18 * @since 4.5.0
19 */
20 class WordAds_API {
21
22 /**
23 * Get the site's WordAds status
24 *
25 * @return array|WP_Error Array of site status values, or WP_Error if no response from the API.
26 *
27 * @since 4.5.0
28 */
29 public static function get_wordads_status() {
30 global $wordads_status_response;
31
32 // If the site is not connected, we can put it in a safe "house ad" mode.
33 if ( ( new Status() )->is_offline_mode() ) {
34 return array(
35 'approved' => true,
36 'active' => true,
37 'house' => true,
38 'unsafe' => false,
39 );
40 }
41
42 // Fetch the status from WPCOM endpoint.
43 $endpoint = sprintf( '/sites/%d/wordads/status', Jetpack::get_option( 'id' ) );
44 $response = Client::wpcom_json_api_request_as_blog( $endpoint );
45 $wordads_status_response = $response;
46
47 if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
48 return new WP_Error( 'api_error', __( 'Error connecting to API.', 'jetpack' ), $response );
49 }
50
51 $body = json_decode( wp_remote_retrieve_body( $response ) );
52
53 return array(
54 'approved' => (bool) $body->approved,
55 'active' => (bool) $body->active,
56 'house' => (bool) $body->house,
57 'unsafe' => (bool) $body->unsafe,
58 );
59 }
60
61 /**
62 * Grab WordAds status from WP.com API and store as option
63 *
64 * @since 4.5.0
65 */
66 public static function update_wordads_status_from_api() {
67 $status = self::get_wordads_status();
68
69 if ( ! is_wp_error( $status ) ) {
70
71 // Convert boolean options to string first to work around update_option not setting the option if the value is false.
72 // This sets the option to either '1' if true or '' if false.
73 update_option( 'wordads_approved', (string) $status['approved'], true );
74 update_option( 'wordads_active', (string) $status['active'], true );
75 update_option( 'wordads_house', (string) $status['house'], true );
76 update_option( 'wordads_unsafe', (string) $status['unsafe'], true );
77 }
78 }
79
80 /**
81 * Returns the ads.txt content needed to run WordAds.
82 *
83 * @return array string contents of the ads.txt file.
84 *
85 * @since 6.1.0
86 */
87 public static function get_wordads_ads_txt() {
88 global $wordads_status_response;
89
90 $endpoint = sprintf( '/sites/%d/wordads/ads-txt', Jetpack::get_option( 'id' ) );
91 $response = Client::wpcom_json_api_request_as_blog( $endpoint );
92 $wordads_status_response = $response;
93 if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
94 return new WP_Error( 'api_error', __( 'Error connecting to API.', 'jetpack' ), $response );
95 }
96
97 $body = json_decode( wp_remote_retrieve_body( $response ) );
98 $ads_txt = str_replace( '\\n', PHP_EOL, $body->adstxt );
99
100 return $ads_txt;
101 }
102 }
103