private function __construct()
{
add_action('plugins_loaded', array($this, 'textdomain'));
add_action('style_loader_src', array($this, 'block_style_load'), 100);
add_action('script_loader_src', array($this, 'block_script_load'), 100);
add_action('admin_init', array($this, 'remove_update_crons'));
add_action('admin_init', array($this, 'remove_schedule_hook'));
add_filter('embed_oembed_html', array($this, 'block_oembed_html'), 1, 4);
add_filter('get_avatar', array($this, 'replace_gravatar'), 1, 5);
add_filter('map_meta_cap', array($this, 'prevent_auto_updates'), 10, 2);
add_filter('default_avatar_select', array($this, 'default_avatar'));
// Kill all the http requests.
add_filter('pre_http_request', array($this, 'disable_http_reqs'), 10, 3);
// Check for our query string and handle accordingly.
add_action('init', array($this, 'toggle_check'));
// Check for status change and purge transients as needed.
add_action('airplane_mode_status_change', array($this, 'purge_transients'));
// Add our counter action.
add_action('airplane_mode_http_args', array($this, 'count_http_requests'), 0, 0);
// CSS loader and top toggle.
add_action('admin_bar_menu', array($this, 'admin_bar_toggle'), 9999);
add_action('wp_enqueue_scripts', array($this, 'toggle_css'), 9999);
add_action('admin_enqueue_scripts', array($this, 'toggle_css'), 9999);
// Body class on each location for the display.
add_filter('body_class', array($this, 'body_class'));
add_filter('login_body_class', array($this, 'body_class'));
add_filter('admin_body_class', array($this, 'admin_body_class'));
// Remove bulk action for updating themes/plugins.
add_filter('bulk_actions-plugins', array($this, 'remove_bulk_actions'));
add_filter('bulk_actions-themes', array($this, 'remove_bulk_actions'));
add_filter('bulk_actions-plugins-network', array($this, 'remove_bulk_actions'));
add_filter('bulk_actions-themes-network', array($this, 'remove_bulk_actions'));
// Admin UI items.
add_action('admin_menu', array($this, 'admin_menu_items'), 9999);
add_action('network_admin_menu', array($this, 'ms_admin_menu_items'), 9999);
add_filter('install_plugins_tabs', array($this, 'plugin_add_tabs'));
// Theme update API for different calls.
add_filter('themes_api', array($this, 'bypass_theme_api_call'), 10, 3);
add_filter('themes_api_result', array($this, 'bypass_theme_api_result'), 10, 3);
// Time based transient checks.
add_filter('pre_site_transient_update_themes', array($this, 'last_checked_themes'));
add_filter('pre_site_transient_update_plugins', array($this, 'last_checked_plugins'));
add_filter('pre_site_transient_update_core', array($this, 'last_checked_core'));
add_filter('site_transient_update_themes', array($this, 'remove_update_array'));
add_filter('site_transient_update_plugins', array($this, 'remove_update_array'));
// Disable fetching languages from online
add_filter('site_transient_available_translations', array($this, 'available_translations'), 9999, 1);
// Our activation / deactivation triggers.
register_activation_hook(__FILE__, array($this, 'create_setting'));
register_deactivation_hook(__FILE__, array($this, 'remove_setting'));
// All our various filter checks.
if ($this->enabled()) {
// Allows locally defined JETPACK_DEV_DEBUG constant to override filter.
if (!defined('JETPACK_DEV_DEBUG')) {
// Keep jetpack from attempting external requests.
add_filter('jetpack_development_mode', '__return_true', 9999);
}
// Prevent BuddyPress from falling back to Gravatar avatars.
add_filter('bp_core_fetch_avatar_no_grav', '__return_true');
// Disable automatic updater updates.
add_filter('automatic_updater_disabled', '__return_true');
// Tell WordPress we are on a version control system to add additional blocks.
add_filter('automatic_updates_is_vcs_checkout', '__return_true');
// Disable translation updates.
add_filter('auto_update_translation', '__return_false');
// Disable minor core updates.
add_filter('allow_minor_auto_core_updates', '__return_false');
// Disable major core updates.
add_filter('allow_major_auto_core_updates', '__return_false');
// Disable dev core updates.
add_filter('allow_dev_auto_core_updates', '__return_false');
// Disable overall core updates.
add_filter('auto_update_core', '__return_false');
add_filter('wp_auto_update_core', '__return_false');
// Disable automatic plugin and theme updates (used by WP to force push security fixes).
add_filter('auto_update_plugin', '__return_false');
add_filter('auto_update_theme', '__return_false');
// Disable debug emails (used by core for rollback alerts in automatic update deployment).
add_filter('automatic_updates_send_debug_email', '__return_false');
// Disable update emails (for when we push the new WordPress versions manually) as well
// as the notification there is a new version emails.
add_filter('auto_core_update_send_email', '__return_false');
add_filter('send_core_update_notification_email', '__return_false');
add_filter('automatic_updates_send_debug_email ', '__return_false', 1);
// Get rid of the version number in the footer.
add_filter('update_footer', '__return_empty_string', 11);
// Filter out the pre core option.
add_filter('pre_option_update_core', '__return_null');
// Remove some actions.
remove_action('admin_init', 'wp_plugin_update_rows');
remove_action('admin_init', 'wp_theme_update_rows');
remove_action('admin_notices', 'maintenance_nag');
remove_action('init', 'wp_schedule_update_checks');
// Add back the upload tab.
add_action('install_themes_upload', 'install_themes_upload', 10, 0);
// Define core contants for more protection.
if (!defined('AUTOMATIC_UPDATER_DISABLED')) {
define('AUTOMATIC_UPDATER_DISABLED', true);
}
if (!defined('WP_AUTO_UPDATE_CORE')) {
define('WP_AUTO_UPDATE_CORE', false);
}
}
}