PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.2-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.2-a.1
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-stats-admin / src / class-main.php
jetpack / jetpack_vendor / automattic / jetpack-stats-admin / src Last commit date
class-admin-post-list-column.php 3 days ago class-dashboard.php 3 days ago class-main.php 3 days ago class-notices.php 8 months ago class-odyssey-assets.php 2 weeks ago class-odyssey-config-data.php 3 days ago class-rest-controller.php 1 month ago class-wp-dashboard-odyssey-widget.php 2 years ago class-wpcom-client.php 3 days ago
class-main.php
140 lines
1 <?php
2 /**
3 * Stats Main
4 *
5 * @package automattic/jetpack-stats-admin
6 */
7
8 namespace Automattic\Jetpack\Stats_Admin;
9
10 use Automattic\Jetpack\Connection\Manager;
11 use Automattic\Jetpack\Stats\Options as Stats_Options;
12 use Automattic\Jetpack\Status\Host;
13 use Automattic\Jetpack\Tracking;
14
15 /**
16 * Stats Main class.
17 *
18 * Entrypoint for Stats.
19 *
20 * @since 0.1.0
21 */
22 class Main {
23 /**
24 * Stats version.
25 */
26 const VERSION = '0.33.0';
27
28 /**
29 * Singleton Main instance.
30 *
31 * @var Main
32 **/
33 private static $instance = null;
34
35 /**
36 * Initializer.
37 * Used to configure the stats package, eg when called via the Config package.
38 *
39 * @return object
40 */
41 public static function init() {
42 if ( null === self::$instance ) {
43 self::$instance = new Main();
44 }
45
46 return self::$instance;
47 }
48
49 /**
50 * Class constructor.
51 *
52 * @return void
53 */
54 private function __construct() {
55 add_action( 'rest_api_init', array( REST_Controller::class, 'register' ) );
56 // Disable JITM assets on the Stats page.
57 // JITM is handled separately by Stats: https://github.com/Automattic/wp-calypso/pull/95273.
58 add_filter(
59 'jetpack_display_jitms_on_screen',
60 function ( $show, $screen_id ) {
61 if ( 'jetpack_page_stats' === $screen_id ) {
62 return false;
63 }
64 return $show;
65 },
66 10,
67 2
68 );
69
70 // Register stats-admin transient prefix for cleanup by the stats package.
71 add_filter( 'jetpack_stats_transient_cleanup_prefixes', array( $this, 'register_transient_cleanup_prefix' ) );
72
73 if ( self::needs_own_dashboard() ) {
74 Dashboard::init();
75 }
76 }
77
78 /**
79 * Whether the site can talk to WordPress.com.
80 *
81 * Simple sites always can, and hold no Jetpack blog token to check.
82 *
83 * @return bool
84 */
85 public static function is_site_connected() {
86 return ( new Host() )->is_wpcom_simple() || ( new Manager( 'jetpack' ) )->is_connected();
87 }
88
89 /**
90 * Whether Stats has to register its own dashboard because nothing else will.
91 *
92 * The Jetpack plugin registers the Stats menu from its stats module, and modules are not
93 * loaded until the site is connected. Registering the dashboard here keeps Stats reachable
94 * before that happens, where the app offers a plan and drives the connection itself.
95 *
96 * @return bool
97 */
98 private static function needs_own_dashboard() {
99 return ! self::is_site_connected();
100 }
101
102 /**
103 * Register the stats-admin transient prefix for cleanup.
104 *
105 * @param array $prefixes List of transient prefixes to clean up.
106 * @return array Modified list of prefixes.
107 */
108 public function register_transient_cleanup_prefix( $prefixes ) {
109 $prefixes[] = WPCOM_Client::CACHE_TRANSIENT_PREFIX;
110 return $prefixes;
111 }
112
113 /**
114 * Update New Stats status.
115 *
116 * @param bool $status true to enable or false to disable.
117 * @return bool
118 */
119 public static function update_new_stats_status( $status ) {
120 $status = (bool) $status;
121
122 $stats_options = array(
123 'enable_odyssey_stats' => $status,
124 'odyssey_stats_changed_at' => time(),
125 );
126 $updated = Stats_Options::set_options( $stats_options );
127
128 // Track the event.
129 $event_name = 'calypso_stats_disabled';
130 if ( $status ) {
131 $event_name = 'calypso_stats_enabled';
132 }
133 $connection_manager = new Manager( 'jetpack' );
134 $tracking = new Tracking( 'jetpack', $connection_manager );
135 $tracking->record_user_event( $event_name, array_merge( $stats_options, array( 'updated' => $updated ) ) );
136
137 return $updated;
138 }
139 }
140