function stats_load() { global $wp_roles; Jetpack::enable_module_configurable(__FILE__); Jetpack::module_configuration_load(__FILE__, 'stats_configuration_load'); Jetpack::module_configuration_head(__FILE__, 'stats_configuration_head'); Jetpack::module_configuration_screen(__FILE__, 'stats_configuration_screen'); // Tell HQ about changed posts $post_stati = get_post_stati(array('public' => true)); // All public post stati $post_stati[] = 'private'; // Content from private stati will be redacted Jetpack_Sync::sync_posts(__FILE__, array('post_types' => get_post_types(array('public' => true)), 'post_stati' => $post_stati)); // Generate the tracking code after wp() has queried for posts. add_action('template_redirect', 'stats_template_redirect', 1); add_action('wp_head', 'stats_admin_bar_head', 100); add_action('wp_head', 'stats_hide_smile_css'); add_action('jetpack_admin_menu', 'stats_admin_menu'); // Map stats caps add_filter('map_meta_cap', 'stats_map_meta_caps', 10, 4); if (isset($_GET['oldwidget'])) { // Old one. add_action('wp_dashboard_setup', 'stats_register_dashboard_widget'); } else { add_action('admin_init', 'stats_merged_widget_admin_init'); } add_filter('jetpack_xmlrpc_methods', 'stats_xmlrpc_methods'); add_filter('pre_option_db_version', 'stats_ignore_db_version'); }
function action_init() { //syncing must wait until after init so //post types that support comments $filt_post_types = array(); $all_post_types = get_post_types(); foreach ($all_post_types as $post_type) { if (post_type_supports($post_type, 'comments')) { $filt_post_types[] = $post_type; } } Jetpack_Sync::sync_posts(__FILE__, array('post_types' => $filt_post_types, 'post_stati' => array('publish'))); Jetpack_Sync::sync_comments(__FILE__, array('post_types' => $filt_post_types, 'post_stati' => array('publish'), 'comment_stati' => array('approve', 'approved', '1', 'hold', 'unapproved', 'unapprove', '0', 'spam', 'trash'))); if (defined('DOING_AJAX') && DOING_AJAX) { return; } if (!has_filter('show_admin_bar', '__return_true') && !is_user_logged_in()) { return; } if (!self::current_browser_is_supported()) { return; } add_action('admin_bar_menu', array(&$this, 'admin_bar_menu'), 120); add_action('wp_head', array(&$this, 'styles_and_scripts'), 120); add_action('admin_head', array(&$this, 'styles_and_scripts')); }
function __construct() { global $publicize_ui; $this->in_jetpack = class_exists('Jetpack') && method_exists('Jetpack', 'enable_module_configurable') ? true : false; if ($this->in_jetpack && method_exists('Jetpack', 'module_configuration_load')) { Jetpack::enable_module_configurable(__FILE__); Jetpack::module_configuration_load(__FILE__, array($this, 'jetpack_configuration_load')); Jetpack_Sync::sync_posts(__FILE__); } require_once dirname(__FILE__) . '/publicize/publicize.php'; if ($this->in_jetpack) { require_once dirname(__FILE__) . '/publicize/publicize-jetpack.php'; } else { require_once dirname(dirname(__FILE__)) . '/mu-plugins/keyring/keyring.php'; require_once dirname(__FILE__) . '/publicize/publicize-wpcom.php'; } require_once dirname(__FILE__) . '/publicize/ui.php'; $publicize_ui = new Publicize_UI(); $publicize_ui->in_jetpack = $this->in_jetpack; // Jetpack specific checks / hooks if ($this->in_jetpack) { add_action('jetpack_activate_module_publicize', array($this, 'module_state_toggle')); add_action('jetpack_deactivate_module_publicize', array($this, 'module_state_toggle')); // if sharedaddy isn't active, the sharing menu hasn't been added yet $active = Jetpack::get_active_modules(); if (in_array('publicize', $active) && !in_array('sharedaddy', $active)) { add_action('admin_menu', array(&$publicize_ui, 'sharing_menu')); } } }
function jetpack_vaultpress_sync_options() { if (!class_exists('VaultPress')) { return; } $vaultpress = VaultPress::init(); Jetpack_Sync::sync_options(__FILE__, $vaultpress->auto_register_option, $vaultpress->option_name); }
function __construct() { $this->in_jetpack = ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ? false : true; add_action( 'init', array( &$this, 'action_init' ) ); add_action( 'admin_init', array( $this, 'admin_init' ) ); if ( $this->in_jetpack ) { add_action( 'jetpack_activate_module_likes', array( $this, 'module_toggle' ) ); add_action( 'jetpack_deactivate_module_likes', array( $this, 'module_toggle' ) ); Jetpack::enable_module_configurable( __FILE__ ); Jetpack::module_configuration_load( __FILE__, array( $this, 'configuration_redirect' ) ); add_action('admin_print_scripts-settings_page_sharing', array( &$this, 'load_jp_css' ) ); add_filter( 'sharing_show_buttons_on_row_start', array( $this, 'configuration_target_area' ) ); $active = Jetpack::get_active_modules(); if ( ! in_array( 'sharedaddy', $active ) && ! in_array( 'publicize', $active ) ) { add_action( 'admin_menu', array( $this, 'sharing_menu' ) ); // we don't have a sharing page yet } if ( in_array( 'publicize', $active ) && ! in_array( 'sharedaddy', $active ) ) { add_action( 'pre_admin_screen_sharing', array( $this, 'sharing_block' ), 20 ); // we have a sharing page but not the global options area add_action( 'pre_admin_screen_sharing', array( $this, 'updated_message' ), -10 ); } if( ! in_array( 'sharedaddy', $active ) ) { add_action( 'admin_init', array( $this, 'process_update_requests_if_sharedaddy_not_loaded' ) ); add_action( 'sharing_global_options', array( $this, 'admin_settings_showbuttonon_init' ), 19 ); add_action( 'sharing_admin_update', array( $this, 'admin_settings_showbuttonon_callback' ), 19 ); add_action( 'admin_init', array( $this, 'add_meta_box' ) ); } else { add_filter( 'sharing_meta_box_title', array( $this, 'add_likes_to_sharing_meta_box_title' ) ); add_action( 'start_sharing_meta_box_content', array( $this, 'meta_box_content' ) ); } Jetpack_Sync::sync_options( __FILE__, 'social_notifications_like' ); } else { // wpcom add_action( 'admin_init', array( $this, 'add_meta_box' ) ); add_action( 'end_likes_meta_box_content', array( $this, 'sharing_meta_box_content' ) ); add_filter( 'likes_meta_box_title', array( $this, 'add_likes_to_sharing_meta_box_title' ) ); } add_action( 'admin_init', array( $this, 'admin_discussion_likes_settings_init' ) ); // Likes notifications add_action( 'admin_bar_menu', array( $this, 'admin_bar_likes' ), 60 ); add_action( 'save_post', array( $this, 'meta_box_save' ) ); add_action( 'sharing_global_options', array( $this, 'admin_settings_init' ), 20 ); add_action( 'sharing_admin_update', array( $this, 'admin_settings_callback' ), 20 ); }
function sync_posts_init() { $post_types = array('post', 'page'); $all_post_types = get_post_types(); foreach ($all_post_types as $post_type) { // sync Custom Post Types that support publicize if (post_type_supports($post_type, 'publicize')) { $post_types[] = $post_type; } } Jetpack_Sync::sync_posts(__FILE__, array('post_types' => $post_types)); }
/** * This action triggers if the module is in an active state, load related posts and options. * * @uses Jetpack_RelatedPosts::init, is_admin, Jetpack::enable_module_configurable, Jetpack::module_configuration_load, Jetpack_Sync::sync_posts * @return null */ public function action_on_load() { require_once 'related-posts/jetpack-related-posts.php'; Jetpack_RelatedPosts::init(); if (is_admin()) { // Enable "Configure" button on module card Jetpack::enable_module_configurable(__FILE__); Jetpack::module_configuration_load(__FILE__, array($this, 'module_configuration_load')); // Sync new posts Jetpack_Sync::sync_posts(__FILE__); } }
function Jetpack_Notifications() { $this->jetpack = Jetpack::init(); add_action('init', array(&$this, 'action_init')); //post types that support comments $filt_post_types = array(); foreach (get_post_types() as $post_type) { if (post_type_supports($post_type, 'comments')) { $filt_post_types[] = $post_type; } } Jetpack_Sync::sync_posts(__FILE__, array('post_types' => $filt_post_types, 'post_stati' => array('publish'))); Jetpack_Sync::sync_comments(__FILE__, array('post_types' => $filt_post_types, 'post_stati' => array('publish'), 'comment_stati' => array('approve', 'approved', '1', 'hold', 'unapproved', 'unapprove', '0', 'spam', 'trash'))); }
public function test_backwards_compatibility_sync_options() { require_once JETPACK__PLUGIN_DIR . '3rd-party/polldaddy.php'; $this->setExpectedDeprecated('Jetpack_Sync::sync_options'); Jetpack_Sync::sync_options(__FILE__, 'foo_option', 'bar_option'); }
public static function resolve_identity_crisis($key = null) { if ($key) { $identity_options = array($key); } else { $identity_options = self::identity_crisis_options_to_check(); } if (is_array($identity_options)) { foreach ($identity_options as $identity_option) { Jetpack_Sync::sync_options(__FILE__, $identity_option); /** * Fires when a shadow site option is updated. * These options are updated via the Identity Crisis UI. * $identity_option is the option that gets updated. * * @since 3.7.0 */ do_action("update_option_{$identity_option}"); } } }
function admin_init() { add_filter('manage_posts_columns', array($this, 'add_like_count_column')); add_filter('manage_pages_columns', array($this, 'add_like_count_column')); add_action('manage_posts_custom_column', array($this, 'likes_edit_column'), 10, 2); add_action('manage_pages_custom_column', array($this, 'likes_edit_column'), 10, 2); add_action('admin_print_styles-edit.php', array($this, 'load_admin_css')); add_action("admin_print_scripts-edit.php", array($this, 'enqueue_admin_scripts')); if ($this->in_jetpack) { $post_stati = get_post_stati(array('public' => true)); // All public post stati $post_stati[] = 'private'; // Content from private stati will be redacted Jetpack_Sync::sync_posts(__FILE__, array('post_types' => get_post_types(array('public' => true)), 'post_stati' => $post_stati)); } }
<?php /** * Module Name: Subscriptions * Module Description: Allow users to subscribe to your posts and comments and receive notifications via email. * Sort Order: 9 * First Introduced: 1.2 * Requires Connection: Yes * Auto Activate: Yes * Module Tags: Social */ add_action('jetpack_modules_loaded', 'jetpack_subscriptions_load'); Jetpack_Sync::sync_options(__FILE__, 'home', 'blogname', 'siteurl', 'page_on_front', 'permalink_structure', 'category_base', 'rss_use_excerpt', 'subscription_options', 'stb_enabled', 'stc_enabled', 'tag_base'); Jetpack_Sync::sync_posts(__FILE__); Jetpack_Sync::sync_comments(__FILE__); function jetpack_subscriptions_load() { Jetpack::enable_module_configurable(__FILE__); Jetpack::module_configuration_load(__FILE__, 'jetpack_subscriptions_configuration_load'); } function jetpack_subscriptions_configuration_load() { wp_safe_redirect(admin_url('options-discussion.php#jetpack-subscriptions-settings')); exit; } class Jetpack_Subscriptions { var $jetpack = false; public static $hash; /** * Singleton
<?php /** * Module Name: Post by Email * Module Description: Publish posts to your blog directly from your personal email account. * First Introduced: 2.0 * Sort Order: 4 * Requires Connection: Yes * Auto Activate: Yes * Module Tags: Writing */ add_action('jetpack_modules_loaded', array('Jetpack_Post_By_Email', 'init')); Jetpack_Sync::sync_options(__FILE__, 'large_size_w', 'large_size_h', 'thumbnail_size_w', 'thumbnail_size_h', 'medium_size_w', 'medium_size_h'); add_action('jetpack_activate_module_post-by-email', array('Jetpack_Post_By_Email', 'module_toggle')); add_action('jetpack_deactivate_module_post-by-email', array('Jetpack_Post_By_Email', 'module_toggle')); Jetpack::enable_module_configurable(__FILE__); Jetpack::module_configuration_load(__FILE__, array('Jetpack_Post_By_Email', 'configuration_redirect')); class Jetpack_Post_By_Email { public static function init() { static $instance = NULL; if (!$instance) { $instance = new Jetpack_Post_By_Email(); } return $instance; } function __construct() { add_action('init', array(&$this, 'action_init')); }
<?php /** * Module Name: Site Icon * Module Description: Add a site icon to your site. * Sort Order: 22 * First Introduced: 3.2 * Requires Connection: No * Auto Activate: No * Module Tags: Other * Additional Search Queries: favicon, icon, site icon */ include dirname(__FILE__) . '/site-icon/jetpack-site-icon.php'; include dirname(__FILE__) . '/site-icon/site-icon-functions.php'; Jetpack_Sync::sync_options(__FILE__, 'jetpack_site_icon_url');
* First Introduced: 1.4 * Sort Order: 2 * Requires Connection: Yes * Auto Activate: No */ require dirname( __FILE__ ) . '/comments/comments.php'; if ( is_admin() ) { require dirname( __FILE__ ) . '/comments/admin.php'; } Jetpack_Sync::sync_options( __FILE__, 'comment_registration', 'require_name_email', 'show_avatars', 'avatar_default', 'highlander_comment_form_prompt', 'jetpack_comment_form_color_scheme' ); function jetpack_comments_load() { Jetpack::enable_module_configurable( __FILE__ ); Jetpack::module_configuration_load( __FILE__, 'jetpack_comments_configuration_load' ); } function jetpack_comments_configuration_load() { wp_safe_redirect( admin_url( 'options-discussion.php#jetpack-comments-settings' ) ); exit; } add_action( 'jetpack_modules_loaded', 'jetpack_comments_load' );
public static function resolve_identity_crisis($key = null) { if ($key) { $identity_options = array($key); } else { $identity_options = self::identity_crisis_options_to_check(); } if (is_array($identity_options)) { foreach ($identity_options as $identity_option) { Jetpack_Sync::sync_options(__FILE__, $identity_option); // Fire off the sync manually do_action("update_option_{$identity_option}"); } } }
function admin_init() { add_filter('manage_posts_columns', array($this, 'add_like_count_column')); add_filter('manage_pages_columns', array($this, 'add_like_count_column')); add_action('manage_posts_custom_column', array($this, 'likes_edit_column'), 10, 2); add_action('manage_pages_custom_column', array($this, 'likes_edit_column'), 10, 2); add_action('admin_print_styles-edit.php', array($this, 'load_admin_css')); add_action("admin_print_scripts-edit.php", array($this, 'enqueue_admin_scripts')); if ($this->in_jetpack) { Jetpack_Sync::sync_posts(__FILE__); } }
<?php /** * Module Name: Mobile Push Notifications * Module Description: Receive notifications on your mobile device. * Sort Order: 100 * First Introduced: 1.9 * Requires Connection: Yes */ Jetpack_Sync::sync_comments(__FILE__, array('comment_stati' => array('approved', 'unapproved')));
} } function sync_all_registered_options($options = array()) { if ('jetpack_sync_all_registered_options' == current_filter()) { $all_registered_options = array_unique(call_user_func_array('array_merge', $this->sync_options)); foreach ($all_registered_options as $option) { $this->added_option_action($option); } } else { wp_schedule_single_event(time(), 'jetpack_sync_all_registered_options', array($this->sync_options)); } } } require_once dirname(__FILE__) . '/class.jetpack-options.php'; require_once dirname(__FILE__) . '/class.jetpack-user-agent.php'; require_once dirname(__FILE__) . '/class.jetpack-post-images.php'; require_once dirname(__FILE__) . '/class.photon.php'; require dirname(__FILE__) . '/functions.photon.php'; require dirname(__FILE__) . '/functions.compat.php'; require dirname(__FILE__) . '/functions.gallery.php'; class Jetpack_Error extends WP_Error { } register_activation_hook(__FILE__, array('Jetpack', 'plugin_activation')); register_deactivation_hook(__FILE__, array('Jetpack', 'plugin_deactivation')); add_action('init', array('Jetpack', 'init')); add_action('plugins_loaded', array('Jetpack', 'load_modules'), 100); add_filter('jetpack_static_url', array('Jetpack', 'staticize_subdomain')); Jetpack_Sync::sync_options(__FILE__, 'widget_twitter');
<?php /** * Module Name: JSON API * Module Description: Allow applications to securely access your content through the cloud. * Sort Order: 19 * First Introduced: 1.9 * Requires Connection: Yes * Auto Activate: Public * Module Tags: Writing, Developers */ add_action('jetpack_activate_module_json-api', array(Jetpack::init(), 'toggle_module_on_wpcom')); add_action('jetpack_deactivate_module_json-api', array(Jetpack::init(), 'toggle_module_on_wpcom')); add_action('jetpack_modules_loaded', 'jetpack_json_api_load_module'); $theme_slug = get_option('stylesheet'); Jetpack_Sync::sync_options(__FILE__, 'stylesheet', "theme_mods_{$theme_slug}"); function jetpack_json_api_load_module() { Jetpack::enable_module_configurable(__FILE__); Jetpack::module_configuration_load(__FILE__, 'jetpack_json_api_configuration_load'); Jetpack::module_configuration_screen(__FILE__, 'jetpack_json_api_configuration_screen'); } function jetpack_json_api_configuration_load() { if (isset($_POST['action']) && $_POST['action'] == 'save_options' && wp_verify_nonce($_POST['_wpnonce'], 'json-api')) { Jetpack_Options::update_option('json_api_full_management', isset($_POST['json_api_full_management'])); Jetpack::state('message', 'module_configured'); wp_safe_redirect(Jetpack::module_configuration_url('json-api')); exit; } }
* Requires Connection: Yes * Auto Activate: No * Module Tags: Centralized Management, Recommended * Feature: Recommended, Jumpstart */ add_action('jetpack_activate_module_manage', array(Jetpack::init(), 'toggle_module_on_wpcom')); add_action('jetpack_deactivate_module_manage', array(Jetpack::init(), 'toggle_module_on_wpcom')); add_action('customize_register', 'add_wpcom_to_allowed_redirect_hosts'); // Add wordpress.com to the safe redirect whitelist if the Manage module is enabled // so the customizer can `return` to wordpress.com if invoked from there. function add_wpcom_to_allowed_redirect_hosts($domains) { if (Jetpack::is_module_active('manage')) { add_filter('allowed_redirect_hosts', 'allow_wpcom_domain'); } } // Return $domains, with 'wordpress.com' appended. function allow_wpcom_domain($domains) { if (empty($domains)) { $domains = array(); } $domains[] = 'wordpress.com'; return array_unique($domains); } // Re add sync for non public posts when the optin is selected in Calypso. // This will only work if you have manage enabled as well. if (Jetpack_Options::get_option('sync_non_public_post_stati')) { $sync_options = array('post_types' => get_post_types(array('public' => true)), 'post_stati' => get_post_stati()); Jetpack_Sync::sync_posts(__FILE__, $sync_options); }
/** * Sync the VaultPress options to WordPress.com if the Jetpack plugin is active. */ function sync_jetpack_options() { if (class_exists('Jetpack_Sync') && method_exists('Jetpack_Sync', 'sync_options') && defined('JETPACK__VERSION') && version_compare(JETPACK__VERSION, '4.1', '<')) { Jetpack_Sync::sync_options(__FILE__, $this->auto_register_option, $this->option_name); } }