PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.7
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.7
16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 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 All 506 releases
jetpack / jetpack_vendor / automattic / jetpack-activity-log / src / class-initial-state.php

class-initial-state.php in Jetpack – WP Security, Backup, Speed, & Growth 16.3-a.7, at jetpack_vendor/automattic/jetpack-activity-log/src/class-initial-state.php

76 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * The Activity Log React initial state.
4 *
5 * @package automattic/jetpack-activity-log
6 */
7
8 namespace Automattic\Jetpack\Activity_Log;
9
10 use Automattic\Jetpack\Status;
11 use Jetpack_Options;
12 use function admin_url;
13 use function esc_url_raw;
14 use function get_bloginfo;
15 use function get_locale;
16 use function get_option;
17 use function get_site_url;
18 use function wp_create_nonce;
19 use function wp_json_encode;
20 use function wp_parse_url;
21
22 /**
23 * The Activity Log React initial state.
24 */
25 class Initial_State {
26 /**
27 * Get the initial state data.
28 *
29 * @return array
30 */
31 private function get_data() {
32 $gmt_offset = get_option( 'gmt_offset' );
33 $timezone_string = get_option( 'timezone_string' );
34 $home_host = wp_parse_url( get_site_url(), PHP_URL_HOST );
35
36 return array(
37 'jetpackStatus' => array(
38 'calypsoSlug' => ( new Status() )->get_site_suffix(),
39 ),
40 'siteData' => array(
41 'id' => Jetpack_Options::get_option( 'id' ),
42 'title' => get_bloginfo( 'name' ) ? get_bloginfo( 'name' ) : get_site_url(),
43 'adminUrl' => esc_url_raw( admin_url() ),
44 'slug' => is_string( $home_host ) ? $home_host : '',
45 'gmtOffset' => is_numeric( $gmt_offset ) ? (float) $gmt_offset : 0.0,
46 'timezoneString' => is_string( $timezone_string ) ? $timezone_string : '',
47 'locale' => str_replace( '_', '-', (string) get_locale() ),
48 // The paid-plan capability check. Drives the free-tier
49 // upsell callout and matches the server-side clamp in
50 // REST_Controller::get_activity_log(). The result is
51 // cached in a site transient by the REST controller
52 // (5-minute TTL); on a cache miss this call issues a
53 // synchronous WPCOM request (~200–800ms typical, up to
54 // the 2s internal timeout) that blocks page rendering
55 // until it returns.
56 'hasActivityLogsAccess' => REST_Controller::has_activity_logs_access(),
57 ),
58 'nonces' => array(
59 // Consumed by `UpsellCallout` to build a `redirect_to`
60 // URL that invalidates the access cache on return from
61 // checkout. See `Jetpack_Activity_Log::admin_init()`.
62 'refreshAccess' => wp_create_nonce( Jetpack_Activity_Log::REFRESH_ACCESS_NONCE_ACTION ),
63 ),
64 );
65 }
66
67 /**
68 * Render the initial state into a JavaScript variable.
69 *
70 * @return string
71 */
72 public function render() {
73 return 'var JPACTIVITYLOG_INITIAL_STATE=' . wp_json_encode( $this->get_data(), JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ) . ';';
74 }
75 }
76