PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.0.1
Jetpack – WP Security, Backup, Speed, & Growth v16.0.1
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-sync / src / class-main.php
jetpack / jetpack_vendor / automattic / jetpack-sync / src Last commit date
modules 3 weeks ago replicastore 3 months ago sync-queue 5 months ago class-actions.php 1 month ago class-activity-log-event.php 3 weeks ago class-data-settings.php 1 month ago class-dedicated-sender.php 7 months ago class-default-filter-settings.php 4 years ago class-defaults.php 2 days ago class-functions.php 1 month ago class-health.php 4 months ago class-json-deflate-array-codec.php 7 months ago class-listener.php 1 month ago class-lock.php 4 years ago class-main.php 2 months ago class-modules.php 1 year ago class-package-version.php 2 days ago class-queue-buffer.php 4 years ago class-queue.php 1 month ago class-replicastore.php 1 month ago class-rest-endpoints.php 4 months ago class-rest-sender.php 1 month ago class-sender.php 1 month ago class-server.php 4 months ago class-settings.php 3 months ago class-simple-codec.php 7 months ago class-users.php 3 months ago class-utils.php 4 years ago interface-codec.php 4 years ago interface-replicastore.php 1 month ago
class-main.php
163 lines
1 <?php
2 /**
3 * This class hooks the main sync actions.
4 *
5 * @package automattic/jetpack-sync
6 */
7
8 namespace Automattic\Jetpack\Sync;
9
10 use Automattic\Jetpack\Sync\Actions as Sync_Actions;
11 use Automattic\Jetpack\Sync\Queue\Queue_Storage_Table;
12
13 /**
14 * Jetpack Sync main class.
15 */
16 class Main {
17
18 /**
19 * Sets up event handlers for the Sync package. Is used from the Config package.
20 *
21 * @action plugins_loaded
22 */
23 public static function configure() {
24 // Activity Log custom events must register even when Sync is disabled, e.g. on WordPress.com Simple sites.
25 Activity_Log_Event::init();
26
27 if ( Actions::sync_allowed() ) {
28 add_action( 'plugins_loaded', array( __CLASS__, 'on_plugins_loaded_early' ), 5 );
29 add_action( 'plugins_loaded', array( __CLASS__, 'on_plugins_loaded_late' ), 90 );
30 }
31
32 // Add REST endpoints.
33 add_action( 'rest_api_init', array( 'Automattic\\Jetpack\\Sync\\REST_Endpoints', 'initialize_rest_api' ) );
34
35 // Add IDC disconnect action.
36 add_action( 'jetpack_idc_disconnect', array( __CLASS__, 'on_jetpack_idc_disconnect' ), 100 );
37
38 // Any hooks below are special cases that need to be declared even if Sync is not allowed.
39 add_action( 'jetpack_site_registered', array( 'Automattic\\Jetpack\\Sync\\Actions', 'do_initial_sync' ), 10, 0 );
40
41 // Sync clean up, when Jetpack is disconnected.
42 add_action( 'jetpack_site_disconnected', array( __CLASS__, 'on_jetpack_site_disconnected' ), 1000 );
43
44 // Set up package version hook.
45 add_filter( 'jetpack_package_versions', __NAMESPACE__ . '\Package_Version::send_package_version_to_tracker' );
46
47 // Add the custom capabilities for managing modules
48 add_filter( 'map_meta_cap', array( __CLASS__, 'module_custom_caps' ), 10, 2 );
49 }
50
51 /**
52 * Sets the Module custom capabilities.
53 *
54 * @param string[] $caps Array of the user's capabilities.
55 * @param string $cap Capability name.
56 * @return string[] The user's capabilities, adjusted as necessary.
57 */
58 public static function module_custom_caps( $caps, $cap ) {
59 switch ( $cap ) {
60 case 'jetpack_manage_modules':
61 case 'jetpack_activate_modules':
62 case 'jetpack_deactivate_modules':
63 $caps = array( 'manage_options' );
64 break;
65 case 'jetpack_configure_modules':
66 $caps = array( 'manage_options' );
67 break;
68 }
69 return $caps;
70 }
71
72 /**
73 * Delete all sync related data on Identity Crisis disconnect.
74 */
75 public static function on_jetpack_idc_disconnect() {
76 Sender::get_instance()->uninstall();
77 }
78
79 /**
80 * Sync cleanup on shutdown.
81 */
82 public static function on_jetpack_site_disconnected() {
83 add_action( 'shutdown', array( __CLASS__, 'sync_cleanup' ), 10000 );
84 }
85
86 /**
87 * Delete all sync related data on Site disconnect / clean up custom table.
88 * Needs to happen on shutdown to prevent fatals.
89 */
90 public static function sync_cleanup() {
91 Sender::get_instance()->uninstall();
92
93 $table_storage = new Queue_Storage_Table( 'test_queue' );
94 $table_storage->drop_table();
95 }
96
97 /**
98 * Sets the Sync data settings.
99 *
100 * @param array $data_settings An array containing the Sync data options. An empty array indicates that the default
101 * values will be used for all Sync data.
102 */
103 public static function set_sync_data_options( $data_settings = array() ) {
104 ( new Data_Settings() )->add_settings_list( $data_settings );
105 }
106
107 /**
108 * Initialize the main sync actions.
109 *
110 * @action plugins_loaded
111 */
112 public static function on_plugins_loaded_early() {
113 /**
114 * Additional Sync modules can be carried out into their own packages and they
115 * will get their own config settings.
116 *
117 * For now additional modules are enabled based on whether the third party plugin
118 * class exists or not.
119 */
120 Sync_Actions::initialize_search();
121 Sync_Actions::initialize_woocommerce();
122 Sync_Actions::initialize_wp_super_cache();
123
124 // We need to define this here so that it's hooked before `updating_jetpack_version` is called.
125 add_action( 'updating_jetpack_version', array( 'Automattic\\Jetpack\\Sync\\Actions', 'cleanup_on_upgrade' ), 10, 2 );
126 }
127
128 /**
129 * Runs after most of plugins_loaded hook functions have been run.
130 *
131 * @action plugins_loaded
132 */
133 public static function on_plugins_loaded_late() {
134 /*
135 * Init after plugins loaded and before the `init` action. This helps with issues where plugins init
136 * with a high priority or sites that use alternate cron.
137 */
138 Sync_Actions::init();
139
140 // Enable non-blocking Jetpack Sync flow.
141 $non_block_enabled = (bool) get_option( 'jetpack_sync_non_blocking', false );
142
143 /**
144 * Filters the option to enable non-blocking sync.
145 *
146 * Default value is false, filter to true to enable non-blocking mode which will have
147 * WP.com return early and use the sync/close endpoint to check-in processed items.
148 *
149 * @since 1.12.3
150 *
151 * @param bool $enabled Should non-blocking flow be enabled.
152 */
153 $filtered = (bool) apply_filters( 'jetpack_sync_non_blocking', $non_block_enabled );
154
155 if ( $non_block_enabled !== $filtered ) {
156 update_option( 'jetpack_sync_non_blocking', $filtered, false );
157 }
158
159 // Initialize health-related hooks after plugins have loaded.
160 Health::init();
161 }
162 }
163