diff options
Diffstat (limited to 'plugins/jetpack/modules')
28 files changed, 1147 insertions, 531 deletions
diff --git a/plugins/jetpack/modules/calypsoify/class.jetpack-calypsoify.php b/plugins/jetpack/modules/calypsoify/class.jetpack-calypsoify.php index eb0874da..36db8ea8 100644 --- a/plugins/jetpack/modules/calypsoify/class.jetpack-calypsoify.php +++ b/plugins/jetpack/modules/calypsoify/class.jetpack-calypsoify.php @@ -305,7 +305,7 @@ class Jetpack_Calypsoify { $wp_admin_bar->add_node( $my_sites_node ); $reader_node = (object) $wp_admin_bar->get_node( 'newdash' ); - $reader_node->href = 'https://wordpress.com'; + $reader_node->href = 'https://wordpress.com/read'; $wp_admin_bar->add_node( $reader_node ); $me_node = (object) $wp_admin_bar->get_node( 'my-account' ); diff --git a/plugins/jetpack/modules/contact-form/grunion-contact-form.php b/plugins/jetpack/modules/contact-form/grunion-contact-form.php index 02b6d091..fb893222 100644 --- a/plugins/jetpack/modules/contact-form/grunion-contact-form.php +++ b/plugins/jetpack/modules/contact-form/grunion-contact-form.php @@ -848,11 +848,13 @@ class Grunion_Contact_Form_Plugin { * @param int $post_id Id of the post to fetch meta data for. * * @return mixed - * - * @codeCoverageIgnore - No need to be covered. */ public function get_post_meta_for_csv_export( $post_id ) { - return get_post_meta( $post_id, '_feedback_extra_fields', true ); + $md = get_post_meta( $post_id, '_feedback_extra_fields', true ); + $md['feedback_date'] = get_the_date( DATE_RFC3339, $post_id ); + $content_fields = self::parse_fields_from_content( $post_id ); + $md['feedback_ip'] = ( isset( $content_fields['_feedback_ip'] ) ) ? $content_fields['_feedback_ip'] : 0; + return $md; } /** @@ -888,6 +890,7 @@ class Grunion_Contact_Form_Plugin { '_feedback_author_email' => '2_Email', '_feedback_author_url' => '3_Website', '_feedback_main_comment' => '4_Comment', + '_feedback_author_ip' => '5_IP', ); foreach ( $field_mapping as $parsed_field_name => $field_name ) { diff --git a/plugins/jetpack/modules/copy-post.php b/plugins/jetpack/modules/copy-post.php index 54cfc088..f57458e1 100644 --- a/plugins/jetpack/modules/copy-post.php +++ b/plugins/jetpack/modules/copy-post.php @@ -200,10 +200,21 @@ class Jetpack_Copy_Post { * @return array Array with the results of each update action. */ protected function update_likes_sharing( $source_post, $target_post_id ) { - $likes = get_post_meta( $source_post->ID, 'switch_like_status', true ); - $sharing = get_post_meta( $source_post->ID, 'sharing_disabled', false ); - $likes_result = update_post_meta( $target_post_id, 'switch_like_status', $likes ); - $sharing_result = update_post_meta( $target_post_id, 'sharing_disabled', $sharing ); + $likes = get_post_meta( $source_post->ID, 'switch_like_status', true ); + $sharing = get_post_meta( $source_post->ID, 'sharing_disabled', true ); + + if ( '' !== $likes ) { + $likes_result = update_post_meta( $target_post_id, 'switch_like_status', $likes ); + } else { + $likes_result = null; + } + + if ( '' !== $sharing ) { + $sharing_result = update_post_meta( $target_post_id, 'sharing_disabled', $sharing ); + } else { + $sharing_result = null; + } + return array( 'likes' => $likes_result, 'sharing' => $sharing_result, diff --git a/plugins/jetpack/modules/masterbar/masterbar.php b/plugins/jetpack/modules/masterbar/masterbar.php index e782468f..72c27800 100644 --- a/plugins/jetpack/modules/masterbar/masterbar.php +++ b/plugins/jetpack/modules/masterbar/masterbar.php @@ -1,6 +1,7 @@ <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName use Automattic\Jetpack\Assets; +use Automattic\Jetpack\Connection\Client; require_once dirname( __FILE__ ) . '/rtl-admin-bar.php'; @@ -428,7 +429,7 @@ class A8C_WPCOM_Masterbar { $following_title = $this->create_menu_item_pair( array( - 'url' => 'https://wordpress.com/', + 'url' => 'https://wordpress.com/read', 'id' => 'wp-admin-bar-followed-sites', 'label' => esc_html__( 'Followed Sites', 'jetpack' ), ), @@ -866,6 +867,8 @@ class A8C_WPCOM_Masterbar { ); } + $this->add_my_home_submenu_item( $wp_admin_bar ); + // Stats. if ( Jetpack::is_module_active( 'stats' ) && current_user_can( 'view_stats' ) ) { $wp_admin_bar->add_menu( @@ -1326,4 +1329,64 @@ class A8C_WPCOM_Masterbar { do_action( 'jetpack_masterbar' ); } } + + /** + * Calls the wpcom API to get the creation date of the site + * and determine if it's eligible for the 'My Home' page. + * + * @return bool Whether the site has 'My Home' enabled. + */ + private function is_my_home_enabled() { + $my_home_enabled = get_transient( 'jetpack_my_home_enabled' ); + + if ( false === $my_home_enabled ) { + $site_id = Jetpack_Options::get_option( 'id' ); + $site_response = Client::wpcom_json_api_request_as_blog( + sprintf( '/sites/%d', $site_id ) . '?force=wpcom&options=created_at', + '1.1' + ); + + if ( is_wp_error( $site_response ) ) { + return false; + } + + $site_data = json_decode( wp_remote_retrieve_body( $site_response ) ); + + $my_home_enabled = $site_data && + isset( $site_data->options->created_at ) && + ( new Datetime( '2019-08-06 00:00:00.000' ) ) <= ( new Datetime( $site_data->options->created_at ) ) + ? 1 + : 0; + + set_transient( 'jetpack_my_home_enabled', $my_home_enabled ); + } + + return (bool) $my_home_enabled; + } + + /** + * Adds "My Home" submenu item to sites that are eligible. + * + * @param WP_Admin_Bar $wp_admin_bar Admin Bar instance. + * @return void + */ + private function add_my_home_submenu_item( &$wp_admin_bar ) { + if ( ! current_user_can( 'manage_options' ) || ! jetpack_is_atomic_site() ) { + return; + } + + if ( $this->is_my_home_enabled() ) { + $wp_admin_bar->add_menu( + array( + 'parent' => 'blog', + 'id' => 'my-home', + 'title' => __( 'My Home', 'jetpack' ), + 'href' => 'https://wordpress.com/home/' . esc_attr( $this->primary_site_slug ), + 'meta' => array( + 'class' => 'mb-icon', + ), + ) + ); + } + } } diff --git a/plugins/jetpack/modules/masterbar/tracks-events.js b/plugins/jetpack/modules/masterbar/tracks-events.js index a8993999..76bd6a23 100644 --- a/plugins/jetpack/modules/masterbar/tracks-events.js +++ b/plugins/jetpack/modules/masterbar/tracks-events.js @@ -13,6 +13,7 @@ 'wp-admin-bar-switch-site': 'my_sites_switch_site', 'wp-admin-bar-blog-info': 'my_sites_blog_info', 'wp-admin-bar-site-view': 'my_sites_view_site', + 'wp-admin-bar-my-home': 'my_sites_my_home', 'wp-admin-bar-blog-stats': 'my_sites_blog_stats', 'wp-admin-bar-activity': 'my_sites_activity', 'wp-admin-bar-plan': 'my_sites_plan', diff --git a/plugins/jetpack/modules/minileven/minileven.php b/plugins/jetpack/modules/minileven/minileven.php index 2e649dd1..d5402429 100644 --- a/plugins/jetpack/modules/minileven/minileven.php +++ b/plugins/jetpack/modules/minileven/minileven.php @@ -28,6 +28,9 @@ Version: 2.1a-WPCOM $_SERVER['REQUEST_URI'] = ( isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['SCRIPT_NAME'] . (( isset($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : ''))); function jetpack_check_mobile() { + // allow mobile theme to be disabled via query string for testing during deprecation. + if ( isset( $_GET['jetpack-preview'] ) && 'responsivetheme' === $_GET['jetpack-preview'] ) + return false; if ( ( defined('XMLRPC_REQUEST') && XMLRPC_REQUEST ) || ( defined('APP_REQUEST') && APP_REQUEST ) ) return false; if ( !isset($_SERVER["HTTP_USER_AGENT"]) || (isset($_COOKIE['akm_mobile']) && $_COOKIE['akm_mobile'] == 'false') ) diff --git a/plugins/jetpack/modules/module-extras.php b/plugins/jetpack/modules/module-extras.php index 989512dc..562c9c7b 100644 --- a/plugins/jetpack/modules/module-extras.php +++ b/plugins/jetpack/modules/module-extras.php @@ -28,6 +28,7 @@ $tools = array( 'theme-tools/site-breadcrumbs.php', 'theme-tools/social-menu.php', 'theme-tools/content-options.php', + 'theme-tools/devicepx.php', // Needed for SEO Tools. 'seo-tools/jetpack-seo-utils.php', 'seo-tools/jetpack-seo-titles.php', diff --git a/plugins/jetpack/modules/notes.php b/plugins/jetpack/modules/notes.php index 13b6b960..04ef8b43 100644 --- a/plugins/jetpack/modules/notes.php +++ b/plugins/jetpack/modules/notes.php @@ -194,7 +194,7 @@ class Jetpack_Notifications { <span class="noticon noticon-notification"></span> </span>', 'meta' => array( - 'html' => '<div id="wpnt-notes-panel2" style="display:none" lang="'. esc_attr( $wpcom_locale ) . '" dir="' . ( is_rtl() ? 'rtl' : 'ltr' ) . '"><div class="wpnt-notes-panel-header"><span class="wpnt-notes-header">' . __( 'Notifications', 'jetpack' ) . '</span><span class="wpnt-notes-panel-link"></span></div></div>', + 'html' => '<div id="wpnt-notes-panel2" class="intrinsic-ignore" style="display:none" lang="' . esc_attr( $wpcom_locale ) . '" dir="' . ( is_rtl() ? 'rtl' : 'ltr' ) . '"><div class="wpnt-notes-panel-header"><span class="wpnt-notes-header">' . __( 'Notifications', 'jetpack' ) . '</span><span class="wpnt-notes-panel-link"></span></div></div>', 'class' => 'menupop', ), 'parent' => 'top-secondary', diff --git a/plugins/jetpack/modules/photon-cdn/jetpack-manifest.php b/plugins/jetpack/modules/photon-cdn/jetpack-manifest.php index 239a1302..830df56d 100644 --- a/plugins/jetpack/modules/photon-cdn/jetpack-manifest.php +++ b/plugins/jetpack/modules/photon-cdn/jetpack-manifest.php @@ -37,411 +37,423 @@ $assets = array ( 32 => '_inc/blocks/tiled-gallery/view.rtl.css', 33 => '_inc/blocks/tiled-gallery/view.js', 34 => '_inc/blocks/tiled-gallery/view.css', - 35 => '_inc/blocks/editor.css', - 36 => '_inc/blocks/editor.rtl.css', - 37 => '_inc/blocks/rating-star/view.rtl.css', - 38 => '_inc/blocks/rating-star/view.js', - 39 => '_inc/blocks/rating-star/view.css', - 40 => '_inc/blocks/vendors~map/mapbox-gl.1239e27c56411388bad5.rtl.css', - 41 => '_inc/blocks/vendors~map/mapbox-gl.1239e27c56411388bad5.css', - 42 => '_inc/blocks/vendors~map/mapbox-gl.1239e27c56411388bad5.js', - 43 => '_inc/blocks/vendors~swiper.17b5bcc416832d7a0c9e.css', - 44 => '_inc/blocks/repeat-visitor/view.js', - 45 => '_inc/blocks/business-hours/view.rtl.css', - 46 => '_inc/blocks/business-hours/view.js', - 47 => '_inc/blocks/business-hours/view.css', - 48 => '_inc/blocks/editor-beta.js', - 49 => '_inc/blocks/mailchimp/view.rtl.css', - 50 => '_inc/blocks/mailchimp/view.js', - 51 => '_inc/blocks/mailchimp/view.css', - 52 => '_inc/blocks/vendors~swiper.17b5bcc416832d7a0c9e.js', - 53 => '_inc/blocks/editor.js', - 54 => '_inc/blocks/map/view.rtl.css', - 55 => '_inc/blocks/map/view.js', - 56 => '_inc/blocks/map/view.css', - 57 => '_inc/blocks/components.js', - 58 => '_inc/blocks/recurring-payments/view.rtl.css', - 59 => '_inc/blocks/recurring-payments/view.js', - 60 => '_inc/blocks/recurring-payments/view.css', - 61 => '_inc/blocks/editor-beta.css', - 62 => '_inc/blocks/contact-info/view.rtl.css', - 63 => '_inc/blocks/contact-info/view.js', - 64 => '_inc/blocks/contact-info/view.css', - 65 => '_inc/blocks/components.rtl.css', - 66 => '_inc/blocks/components.css', - 67 => '_inc/blocks/slideshow/view.rtl.css', - 68 => '_inc/blocks/slideshow/view.js', - 69 => '_inc/blocks/slideshow/view.css', - 70 => '_inc/blocks/editor-beta.rtl.css', - 71 => '_inc/blocks/vendors~swiper.17b5bcc416832d7a0c9e.rtl.css', - 72 => '_inc/blocks/gif/view.rtl.css', - 73 => '_inc/blocks/gif/view.js', - 74 => '_inc/blocks/gif/view.css', - 75 => '_inc/idc-notice.js', - 76 => '_inc/jetpack-modules.js', - 77 => '_inc/crowdsignal-survey.js', - 78 => '_inc/polldaddy-shortcode.js', - 79 => '_inc/crowdsignal-shortcode.js', - 80 => '_inc/connect-button.js', - 81 => '_inc/jquery.jetpack-resize.js', - 82 => '_inc/genericons/genericons/genericons.css', - 83 => '_inc/genericons/genericons/rtl/genericons-rtl.css', - 84 => '_inc/genericons/genericons.css', - 85 => '_inc/jetpack-modules.views.js', - 86 => '_inc/jquery.spin.js', - 87 => '_inc/facebook-embed.js', - 88 => '_inc/twitter-timeline.js', - 89 => '_inc/spin.js', - 90 => '_inc/accessible-focus.js', - 91 => '_inc/jetpack-jitm.js', - 92 => '_inc/jetpack-modules.models.js', - 93 => '_inc/social-logos/social-logos.min.css', - 94 => '_inc/social-logos/social-logos.css', - 95 => '_inc/gallery-settings.js', - 96 => '_inc/lib/tracks/tracks-callables.js', - 97 => '_inc/lib/tracks/tracks-ajax.js', - 98 => '_inc/build/infinite-scroll/infinity.min.js', - 99 => '_inc/build/admin.rtl.css', - 100 => '_inc/build/videopress/js/videopress-plupload.min.js', - 101 => '_inc/build/videopress/js/gutenberg-video-upload.min.js', - 102 => '_inc/build/videopress/js/videopress-uploader.min.js', - 103 => '_inc/build/videopress/js/media-video-widget-extensions.min.js', - 104 => '_inc/build/videopress/js/editor-view.min.js', - 105 => '_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js', - 106 => '_inc/build/jetpack-connection-banner.min.js', - 107 => '_inc/build/style.min.css', - 108 => '_inc/build/crowdsignal-survey.min.js', - 109 => '_inc/build/masterbar/tracks-events.min.js', - 110 => '_inc/build/sharedaddy/admin-sharing.min.js', - 111 => '_inc/build/sharedaddy/sharing.min.js', - 112 => '_inc/build/jquery.spin.min.js', - 113 => '_inc/build/custom-post-types/comics/comics.min.js', - 114 => '_inc/build/custom-post-types/js/nova-drag-drop.min.js', - 115 => '_inc/build/custom-post-types/js/many-items.min.js', - 116 => '_inc/build/custom-post-types/js/menu-checkboxes.min.js', - 117 => '_inc/build/instant-search/jp-search.bundle.js', - 118 => '_inc/build/instant-search/search.css', - 119 => '_inc/build/instant-search/instant-search.min.css', - 120 => '_inc/build/instant-search/search.rtl.css', - 121 => '_inc/build/jquery.jetpack-resize.min.js', - 122 => '_inc/build/crowdsignal-shortcode.min.js', - 123 => '_inc/build/likes/post-count-jetpack.min.js', - 124 => '_inc/build/likes/queuehandler.min.js', - 125 => '_inc/build/likes/post-count.min.js', - 126 => '_inc/build/static.rtl.css', - 127 => '_inc/build/static.css', - 128 => '_inc/build/polldaddy-shortcode.min.js', - 129 => '_inc/build/comment-likes/comment-like-count.min.js', - 130 => '_inc/build/idc-notice.min.js', - 131 => '_inc/build/accessible-focus.min.js', - 132 => '_inc/build/contact-form/js/grunion.min.js', - 133 => '_inc/build/contact-form/js/tinymce-plugin-form-button.min.js', - 134 => '_inc/build/contact-form/js/grunion-admin.min.js', - 135 => '_inc/build/contact-form/js/grunion-frontend.min.js', - 136 => '_inc/build/contact-form/js/editor-view.min.js', - 137 => '_inc/build/jetpack-modules.models.min.js', - 138 => '_inc/build/connect-button.min.js', - 139 => '_inc/build/related-posts/related-posts.min.js', - 140 => '_inc/build/related-posts/related-posts-customizer.min.js', - 141 => '_inc/build/carousel/jetpack-carousel.min.js', - 142 => '_inc/build/shortcodes/js/brightcove.min.js', - 143 => '_inc/build/shortcodes/js/gist.min.js', - 144 => '_inc/build/shortcodes/js/recipes-printthis.min.js', - 145 => '_inc/build/shortcodes/js/main.min.js', - 146 => '_inc/build/shortcodes/js/recipes.min.js', - 147 => '_inc/build/shortcodes/js/jmpress.min.js', - 148 => '_inc/build/shortcodes/js/instagram.min.js', - 149 => '_inc/build/shortcodes/js/slideshow-shortcode.min.js', - 150 => '_inc/build/shortcodes/js/quiz.min.js', - 151 => '_inc/build/minileven/theme/pub/minileven/js/small-menu.min.js', - 152 => '_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.js', - 153 => '_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.js', - 154 => '_inc/build/custom-css/custom-css/js/use-codemirror.min.js', - 155 => '_inc/build/custom-css/custom-css/js/core-customizer-css.min.js', - 156 => '_inc/build/custom-css/custom-css/js/css-editor.min.js', - 157 => '_inc/build/jetpack-jitm.min.js', - 158 => '_inc/build/gallery-settings.min.js', - 159 => '_inc/build/admin.css', - 160 => '_inc/build/spin.min.js', - 161 => '_inc/build/jetpack-admin.min.js', - 162 => '_inc/build/admin.js', - 163 => '_inc/build/twitter-timeline.min.js', - 164 => '_inc/build/jetpack-modules.views.min.js', - 165 => '_inc/build/photon/photon.min.js', - 166 => '_inc/build/style.min.rtl.css', - 167 => '_inc/build/jetpack-modules.min.js', - 168 => '_inc/build/postmessage.min.js', - 169 => '_inc/build/widget-visibility/widget-conditions/widget-conditions.min.js', - 170 => '_inc/build/facebook-embed.min.js', - 171 => '_inc/build/static.js', - 172 => '_inc/build/widgets/simple-payments/customizer.min.js', - 173 => '_inc/build/widgets/social-icons/social-icons-admin.min.js', - 174 => '_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.js', - 175 => '_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.js', - 176 => '_inc/build/widgets/gallery/js/gallery.min.js', - 177 => '_inc/build/widgets/gallery/js/admin.min.js', - 178 => '_inc/build/widgets/milestone/milestone.min.js', - 179 => '_inc/build/widgets/milestone/admin.min.js', - 180 => '_inc/build/widgets/search/js/search-widget.min.js', - 181 => '_inc/build/widgets/search/js/search-widget-admin.min.js', - 182 => '_inc/build/widgets/customizer-utils.min.js', - 183 => '_inc/build/widgets/contact-info/contact-info-admin.min.js', - 184 => '_inc/build/widgets/twitter-timeline-admin.min.js', - 185 => '_inc/build/widgets/google-translate/google-translate.min.js', - 186 => '_inc/build/lazy-images/js/lazy-images.min.js', - 187 => '_inc/jetpack-admin.js', - 188 => '_inc/jetpack-connection-banner.js', - 189 => '_inc/postmessage.js', - 190 => 'modules/infinite-scroll/infinity.js', - 191 => 'modules/infinite-scroll/infinity.css', - 192 => 'modules/infinite-scroll/themes/twentysixteen.css', - 193 => 'modules/infinite-scroll/themes/twentyeleven.css', - 194 => 'modules/infinite-scroll/themes/twentyten.css', - 195 => 'modules/infinite-scroll/themes/twentyseventeen-rtl.css', - 196 => 'modules/infinite-scroll/themes/twentyfifteen.css', - 197 => 'modules/infinite-scroll/themes/twentysixteen-rtl.css', - 198 => 'modules/infinite-scroll/themes/twentyseventeen.css', - 199 => 'modules/infinite-scroll/themes/twentytwelve.css', - 200 => 'modules/infinite-scroll/themes/twentyfourteen.css', - 201 => 'modules/infinite-scroll/themes/twentyfifteen-rtl.css', - 202 => 'modules/infinite-scroll/themes/twentythirteen.css', - 203 => 'modules/videopress/css/videopress-editor-style-rtl.css', - 204 => 'modules/videopress/css/videopress-editor-style.min.css', - 205 => 'modules/videopress/css/editor.css', - 206 => 'modules/videopress/css/videopress-editor-style-rtl.min.css', - 207 => 'modules/videopress/css/editor.min.css', - 208 => 'modules/videopress/css/editor-rtl.css', - 209 => 'modules/videopress/css/editor-rtl.min.css', - 210 => 'modules/videopress/css/videopress-editor-style.css', - 211 => 'modules/videopress/js/media-video-widget-extensions.js', - 212 => 'modules/videopress/js/videopress-plupload.js', - 213 => 'modules/videopress/js/videopress-uploader.js', - 214 => 'modules/videopress/js/editor-view.js', - 215 => 'modules/videopress/js/gutenberg-video-upload.js', - 216 => 'modules/videopress/videopress-admin.css', - 217 => 'modules/videopress/videopress-admin.min.css', - 218 => 'modules/videopress/videopress-admin-rtl.css', - 219 => 'modules/videopress/videopress-admin-rtl.min.css', - 220 => 'modules/tiled-gallery/tiled-gallery/tiled-gallery-rtl.css', - 221 => 'modules/tiled-gallery/tiled-gallery/tiled-gallery.css', - 222 => 'modules/tiled-gallery/tiled-gallery/rtl/tiled-gallery-rtl.css', - 223 => 'modules/tiled-gallery/tiled-gallery/tiled-gallery.js', - 224 => 'modules/simple-payments/simple-payments.css', - 225 => 'modules/simple-payments/paypal-express-checkout.js', - 226 => 'modules/masterbar/overrides.css', - 227 => 'modules/masterbar/tracks-events.js', - 228 => 'modules/sharedaddy/admin-sharing-rtl.min.css', - 229 => 'modules/sharedaddy/sharing.js', - 230 => 'modules/sharedaddy/sharing.css', - 231 => 'modules/sharedaddy/admin-sharing.js', - 232 => 'modules/sharedaddy/admin-sharing.min.css', - 233 => 'modules/sharedaddy/admin-sharing-rtl.css', - 234 => 'modules/sharedaddy/admin-sharing.css', - 235 => 'modules/custom-post-types/comics/comics.min.css', - 236 => 'modules/custom-post-types/comics/comics-rtl.css', - 237 => 'modules/custom-post-types/comics/comics.css', - 238 => 'modules/custom-post-types/comics/comics-rtl.min.css', - 239 => 'modules/custom-post-types/comics/comics.js', - 240 => 'modules/custom-post-types/comics/admin.css', - 241 => 'modules/custom-post-types/comics/rtl/comics-rtl.css', - 242 => 'modules/custom-post-types/css/portfolio-shortcode.css', - 243 => 'modules/custom-post-types/css/testimonial-shortcode.css', - 244 => 'modules/custom-post-types/css/nova-font.css', - 245 => 'modules/custom-post-types/css/edit-items.css', - 246 => 'modules/custom-post-types/css/nova.css', - 247 => 'modules/custom-post-types/css/many-items.css', - 248 => 'modules/custom-post-types/js/menu-checkboxes.js', - 249 => 'modules/custom-post-types/js/many-items.js', - 250 => 'modules/custom-post-types/js/nova-drag-drop.js', - 251 => 'modules/calypsoify/style-gutenberg-rtl.min.css', - 252 => 'modules/calypsoify/style-rtl.min.css', - 253 => 'modules/calypsoify/style.min.css', - 254 => 'modules/calypsoify/style-gutenberg.min.css', - 255 => 'modules/calypsoify/mods-gutenberg.js', - 256 => 'modules/calypsoify/mods.js', - 257 => 'modules/likes/post-count.js', - 258 => 'modules/likes/post-count-jetpack.js', - 259 => 'modules/likes/style.css', - 260 => 'modules/likes/queuehandler.js', - 261 => 'modules/protect/protect-dashboard-widget-rtl.min.css', - 262 => 'modules/protect/protect-dashboard-widget.css', - 263 => 'modules/protect/protect-dashboard-widget.min.css', - 264 => 'modules/protect/protect-dashboard-widget-rtl.css', - 265 => 'modules/comment-likes/comment-like-count.js', - 266 => 'modules/comment-likes/admin-style.css', - 267 => 'modules/contact-form/css/editor-ui.min.css', - 268 => 'modules/contact-form/css/editor-ui-rtl.css', - 269 => 'modules/contact-form/css/editor-inline-editing-style.css', - 270 => 'modules/contact-form/css/editor-inline-editing-style-rtl.css', - 271 => 'modules/contact-form/css/editor-inline-editing-style.min.css', - 272 => 'modules/contact-form/css/editor-style-rtl.min.css', - 273 => 'modules/contact-form/css/jquery-ui-datepicker.css', - 274 => 'modules/contact-form/css/grunion.css', - 275 => 'modules/contact-form/css/editor-ui.css', - 276 => 'modules/contact-form/css/editor-style.css', - 277 => 'modules/contact-form/css/editor-style-rtl.css', - 278 => 'modules/contact-form/css/editor-inline-editing-style-rtl.min.css', - 279 => 'modules/contact-form/css/editor-style.min.css', - 280 => 'modules/contact-form/css/grunion-rtl.css', - 281 => 'modules/contact-form/css/editor-ui-rtl.min.css', - 282 => 'modules/contact-form/js/grunion.js', - 283 => 'modules/contact-form/js/grunion-admin.js', - 284 => 'modules/contact-form/js/editor-view.js', - 285 => 'modules/contact-form/js/grunion-frontend.js', - 286 => 'modules/contact-form/js/tinymce-plugin-form-button.js', - 287 => 'modules/related-posts/related-posts.css', - 288 => 'modules/related-posts/related-posts.js', - 289 => 'modules/related-posts/related-posts-rtl.css', - 290 => 'modules/related-posts/rtl/related-posts-rtl.css', - 291 => 'modules/related-posts/related-posts-customizer.js', - 292 => 'modules/carousel/jetpack-carousel.js', - 293 => 'modules/carousel/rtl/jetpack-carousel-rtl.css', - 294 => 'modules/carousel/jetpack-carousel.css', - 295 => 'modules/carousel/jetpack-carousel-rtl.css', - 296 => 'modules/shortcodes/css/recipes.css', - 297 => 'modules/shortcodes/css/slideshow-shortcode.min.css', - 298 => 'modules/shortcodes/css/slideshow-shortcode-rtl.css', - 299 => 'modules/shortcodes/css/recipes-print.min.css', - 300 => 'modules/shortcodes/css/recipes-rtl.css', - 301 => 'modules/shortcodes/css/recipes.min.css', - 302 => 'modules/shortcodes/css/recipes-print-rtl.css', - 303 => 'modules/shortcodes/css/recipes-print.css', - 304 => 'modules/shortcodes/css/slideshow-shortcode-rtl.min.css', - 305 => 'modules/shortcodes/css/recipes-rtl.min.css', - 306 => 'modules/shortcodes/css/recipes-print-rtl.min.css', - 307 => 'modules/shortcodes/css/style.css', - 308 => 'modules/shortcodes/css/quiz.css', - 309 => 'modules/shortcodes/css/slideshow-shortcode.css', - 310 => 'modules/shortcodes/js/brightcove.js', - 311 => 'modules/shortcodes/js/quiz.js', - 312 => 'modules/shortcodes/js/recipes-printthis.js', - 313 => 'modules/shortcodes/js/jmpress.js', - 314 => 'modules/shortcodes/js/slideshow-shortcode.js', - 315 => 'modules/shortcodes/js/main.js', - 316 => 'modules/shortcodes/js/jquery.cycle.min.js', - 317 => 'modules/shortcodes/js/instagram.js', - 318 => 'modules/shortcodes/js/recipes.js', - 319 => 'modules/shortcodes/js/gist.js', - 320 => 'modules/subscriptions/subscriptions.css', - 321 => 'modules/minileven/theme/pub/minileven/js/small-menu.js', - 322 => 'modules/minileven/theme/pub/minileven/style.css', - 323 => 'modules/minileven/theme/pub/minileven/rtl.css', - 324 => 'modules/wordads/css/style.css', - 325 => 'modules/custom-css/csstidy/cssparse-rtl.min.css', - 326 => 'modules/custom-css/csstidy/cssparse-rtl.css', - 327 => 'modules/custom-css/csstidy/cssparse.min.css', - 328 => 'modules/custom-css/csstidy/cssparsed-rtl.min.css', - 329 => 'modules/custom-css/csstidy/cssparsed.css', - 330 => 'modules/custom-css/csstidy/cssparse.css', - 331 => 'modules/custom-css/csstidy/cssparsed-rtl.css', - 332 => 'modules/custom-css/csstidy/cssparsed.min.css', - 333 => 'modules/custom-css/custom-css/css/blank.css', - 334 => 'modules/custom-css/custom-css/css/css-editor.css', - 335 => 'modules/custom-css/custom-css/css/use-codemirror.css', - 336 => 'modules/custom-css/custom-css/css/codemirror.css', - 337 => 'modules/custom-css/custom-css/css/codemirror-rtl.min.css', - 338 => 'modules/custom-css/custom-css/css/css-editor-rtl.min.css', - 339 => 'modules/custom-css/custom-css/css/css-editor-rtl.css', - 340 => 'modules/custom-css/custom-css/css/customizer-control.css', - 341 => 'modules/custom-css/custom-css/css/codemirror-rtl.css', - 342 => 'modules/custom-css/custom-css/css/css-editor.min.css', - 343 => 'modules/custom-css/custom-css/css/codemirror.min.css', - 344 => 'modules/custom-css/custom-css/css/rtl/codemirror-rtl.css', - 345 => 'modules/custom-css/custom-css/css/use-codemirror-rtl.css', - 346 => 'modules/custom-css/custom-css/css/use-codemirror.min.css', - 347 => 'modules/custom-css/custom-css/css/use-codemirror-rtl.min.css', - 348 => 'modules/custom-css/custom-css/js/core-customizer-css.core-4.9.js', - 349 => 'modules/custom-css/custom-css/js/css-editor.js', - 350 => 'modules/custom-css/custom-css/js/codemirror.min.js', - 351 => 'modules/custom-css/custom-css/js/core-customizer-css-preview.js', - 352 => 'modules/custom-css/custom-css/js/core-customizer-css.js', - 353 => 'modules/custom-css/custom-css/js/use-codemirror.js', - 354 => 'modules/sso/jetpack-sso-login.css', - 355 => 'modules/sso/jetpack-sso-login.js', - 356 => 'modules/sso/jetpack-sso-login-rtl.css', - 357 => 'modules/sso/jetpack-sso-login.min.css', - 358 => 'modules/sso/jetpack-sso-login-rtl.min.css', - 359 => 'modules/theme-tools/site-logo/css/site-logo-control.css', - 360 => 'modules/theme-tools/site-logo/css/site-logo-control-rtl.min.css', - 361 => 'modules/theme-tools/site-logo/css/site-logo-control.min.css', - 362 => 'modules/theme-tools/site-logo/css/site-logo-control-rtl.css', - 363 => 'modules/theme-tools/site-logo/js/site-logo.min.js', - 364 => 'modules/theme-tools/site-logo/js/site-logo.js', - 365 => 'modules/theme-tools/site-logo/js/site-logo-header-text.js', - 366 => 'modules/theme-tools/site-logo/js/site-logo-control.js', - 367 => 'modules/theme-tools/site-logo/js/site-logo-header-text.min.js', - 368 => 'modules/theme-tools/site-logo/js/site-logo-control.min.js', - 369 => 'modules/theme-tools/compat/twentysixteen.css', - 370 => 'modules/theme-tools/compat/twentynineteen.css', - 371 => 'modules/theme-tools/compat/twentytwenty-rtl.css', - 372 => 'modules/theme-tools/compat/twentyfourteen-rtl.css', - 373 => 'modules/theme-tools/compat/twentyfifteen.css', - 374 => 'modules/theme-tools/compat/twentysixteen-rtl.css', - 375 => 'modules/theme-tools/compat/twentynineteen-rtl.css', - 376 => 'modules/theme-tools/compat/twentyfourteen.css', - 377 => 'modules/theme-tools/compat/twentytwenty.css', - 378 => 'modules/theme-tools/compat/twentyfifteen-rtl.css', - 379 => 'modules/theme-tools/content-options/customizer.js', - 380 => 'modules/theme-tools/js/suggest.js', - 381 => 'modules/theme-tools/social-menu/social-menu.css', - 382 => 'modules/theme-tools/responsive-videos/responsive-videos.css', - 383 => 'modules/theme-tools/responsive-videos/responsive-videos.js', - 384 => 'modules/theme-tools/responsive-videos/responsive-videos.min.js', - 385 => 'modules/post-by-email/post-by-email-rtl.css', - 386 => 'modules/post-by-email/post-by-email.min.css', - 387 => 'modules/post-by-email/post-by-email-rtl.min.css', - 388 => 'modules/post-by-email/post-by-email.css', - 389 => 'modules/post-by-email/post-by-email.js', - 390 => 'modules/.eslintrc.js', - 391 => 'modules/photon/photon.js', - 392 => 'modules/plugin-search/plugin-search.css', - 393 => 'modules/plugin-search/plugin-search.js', - 394 => 'modules/widget-visibility/widget-conditions/widget-conditions-rtl.min.css', - 395 => 'modules/widget-visibility/widget-conditions/widget-conditions-rtl.css', - 396 => 'modules/widget-visibility/widget-conditions/widget-conditions.min.css', - 397 => 'modules/widget-visibility/widget-conditions/widget-conditions.css', - 398 => 'modules/widget-visibility/widget-conditions/rtl/widget-conditions-rtl.css', - 399 => 'modules/widget-visibility/widget-conditions/widget-conditions.js', - 400 => 'modules/widgets/simple-payments/customizer.css', - 401 => 'modules/widgets/simple-payments/customizer.js', - 402 => 'modules/widgets/simple-payments/style.css', - 403 => 'modules/widgets/twitter-timeline-admin.js', - 404 => 'modules/widgets/facebook-likebox/style.css', - 405 => 'modules/widgets/customizer-utils.js', - 406 => 'modules/widgets/goodreads/css/goodreads.css', - 407 => 'modules/widgets/goodreads/css/rtl/goodreads-rtl.css', - 408 => 'modules/widgets/social-media-icons/style.css', - 409 => 'modules/widgets/my-community/style.css', - 410 => 'modules/widgets/authors/style.css', - 411 => 'modules/widgets/social-icons/social-icons-admin.js', - 412 => 'modules/widgets/social-icons/social-icons-admin.css', - 413 => 'modules/widgets/social-icons/social-icons.css', - 414 => 'modules/widgets/eu-cookie-law/eu-cookie-law.js', - 415 => 'modules/widgets/eu-cookie-law/style.css', - 416 => 'modules/widgets/eu-cookie-law/eu-cookie-law-admin.js', - 417 => 'modules/widgets/flickr/style.css', - 418 => 'modules/widgets/gallery/css/admin-rtl.min.css', - 419 => 'modules/widgets/gallery/css/admin.css', - 420 => 'modules/widgets/gallery/css/admin-rtl.css', - 421 => 'modules/widgets/gallery/css/admin.min.css', - 422 => 'modules/widgets/gallery/css/rtl/admin-rtl.css', - 423 => 'modules/widgets/gallery/js/gallery.js', - 424 => 'modules/widgets/gallery/js/admin.js', - 425 => 'modules/widgets/top-posts/style.css', - 426 => 'modules/widgets/milestone/style-admin.css', - 427 => 'modules/widgets/milestone/milestone.js', - 428 => 'modules/widgets/milestone/admin.js', - 429 => 'modules/widgets/search/css/search-widget-frontend.css', - 430 => 'modules/widgets/search/css/search-widget-admin-ui.css', - 431 => 'modules/widgets/search/js/search-widget-admin.js', - 432 => 'modules/widgets/search/js/search-widget.js', - 433 => 'modules/widgets/contact-info/contact-info-admin.js', - 434 => 'modules/widgets/contact-info/contact-info-map.css', - 435 => 'modules/widgets/image-widget/style.css', - 436 => 'modules/widgets/customizer-controls.css', - 437 => 'modules/widgets/google-translate/google-translate.js', - 438 => 'modules/widgets/wordpress-post-widget/style.css', - 439 => 'modules/widgets/gravatar-profile.css', - 440 => 'modules/lazy-images/js/lazy-images.js', - 441 => 'modules/wpgroho.js', + 35 => '_inc/blocks/editor-experimental.js', + 36 => '_inc/blocks/editor.css', + 37 => '_inc/blocks/editor.rtl.css', + 38 => '_inc/blocks/editor-experimental.css', + 39 => '_inc/blocks/rating-star/view.rtl.css', + 40 => '_inc/blocks/rating-star/view.js', + 41 => '_inc/blocks/rating-star/view.css', + 42 => '_inc/blocks/vendors~map/mapbox-gl.04e03ac043566852ef07.rtl.css', + 43 => '_inc/blocks/vendors~map/mapbox-gl.04e03ac043566852ef07.css', + 44 => '_inc/blocks/vendors~map/mapbox-gl.04e03ac043566852ef07.js', + 45 => '_inc/blocks/repeat-visitor/view.js', + 46 => '_inc/blocks/opentable/view.rtl.css', + 47 => '_inc/blocks/opentable/view.js', + 48 => '_inc/blocks/opentable/view.css', + 49 => '_inc/blocks/business-hours/view.rtl.css', + 50 => '_inc/blocks/business-hours/view.js', + 51 => '_inc/blocks/business-hours/view.css', + 52 => '_inc/blocks/editor-beta.js', + 53 => '_inc/blocks/mailchimp/view.rtl.css', + 54 => '_inc/blocks/mailchimp/view.js', + 55 => '_inc/blocks/mailchimp/view.css', + 56 => '_inc/blocks/editor.js', + 57 => '_inc/blocks/map/view.rtl.css', + 58 => '_inc/blocks/map/view.js', + 59 => '_inc/blocks/map/view.css', + 60 => '_inc/blocks/vendors~swiper.23fd414831f3de8536b3.rtl.css', + 61 => '_inc/blocks/components.js', + 62 => '_inc/blocks/eventbrite/view.rtl.css', + 63 => '_inc/blocks/eventbrite/view.js', + 64 => '_inc/blocks/eventbrite/view.css', + 65 => '_inc/blocks/recurring-payments/view.rtl.css', + 66 => '_inc/blocks/recurring-payments/view.js', + 67 => '_inc/blocks/recurring-payments/view.css', + 68 => '_inc/blocks/editor-beta.css', + 69 => '_inc/blocks/editor-experimental.rtl.css', + 70 => '_inc/blocks/vendors~swiper.23fd414831f3de8536b3.css', + 71 => '_inc/blocks/vendors~swiper.23fd414831f3de8536b3.js', + 72 => '_inc/blocks/contact-info/view.rtl.css', + 73 => '_inc/blocks/contact-info/view.js', + 74 => '_inc/blocks/contact-info/view.css', + 75 => '_inc/blocks/calendly/view.rtl.css', + 76 => '_inc/blocks/calendly/view.js', + 77 => '_inc/blocks/calendly/view.css', + 78 => '_inc/blocks/components.rtl.css', + 79 => '_inc/blocks/components.css', + 80 => '_inc/blocks/slideshow/view.rtl.css', + 81 => '_inc/blocks/slideshow/view.js', + 82 => '_inc/blocks/slideshow/view.css', + 83 => '_inc/blocks/editor-beta.rtl.css', + 84 => '_inc/blocks/gif/view.rtl.css', + 85 => '_inc/blocks/gif/view.js', + 86 => '_inc/blocks/gif/view.css', + 87 => '_inc/idc-notice.js', + 88 => '_inc/jetpack-modules.js', + 89 => '_inc/crowdsignal-survey.js', + 90 => '_inc/polldaddy-shortcode.js', + 91 => '_inc/crowdsignal-shortcode.js', + 92 => '_inc/connect-button.js', + 93 => '_inc/jquery.jetpack-resize.js', + 94 => '_inc/genericons/genericons/genericons.css', + 95 => '_inc/genericons/genericons/rtl/genericons-rtl.css', + 96 => '_inc/genericons/genericons.css', + 97 => '_inc/jetpack-modules.views.js', + 98 => '_inc/jquery.spin.js', + 99 => '_inc/facebook-embed.js', + 100 => '_inc/twitter-timeline.js', + 101 => '_inc/spin.js', + 102 => '_inc/accessible-focus.js', + 103 => '_inc/jetpack-jitm.js', + 104 => '_inc/jetpack-modules.models.js', + 105 => '_inc/social-logos/social-logos.min.css', + 106 => '_inc/social-logos/social-logos.css', + 107 => '_inc/gallery-settings.js', + 108 => '_inc/lib/tracks/tracks-callables.js', + 109 => '_inc/lib/tracks/tracks-ajax.js', + 110 => '_inc/build/infinite-scroll/infinity.min.js', + 111 => '_inc/build/admin.rtl.css', + 112 => '_inc/build/videopress/js/videopress-plupload.min.js', + 113 => '_inc/build/videopress/js/gutenberg-video-upload.min.js', + 114 => '_inc/build/videopress/js/videopress-uploader.min.js', + 115 => '_inc/build/videopress/js/media-video-widget-extensions.min.js', + 116 => '_inc/build/videopress/js/editor-view.min.js', + 117 => '_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js', + 118 => '_inc/build/jetpack-connection-banner.min.js', + 119 => '_inc/build/style.min.css', + 120 => '_inc/build/crowdsignal-survey.min.js', + 121 => '_inc/build/masterbar/tracks-events.min.js', + 122 => '_inc/build/sharedaddy/admin-sharing.min.js', + 123 => '_inc/build/sharedaddy/sharing.min.js', + 124 => '_inc/build/jquery.spin.min.js', + 125 => '_inc/build/custom-post-types/comics/comics.min.js', + 126 => '_inc/build/custom-post-types/js/nova-drag-drop.min.js', + 127 => '_inc/build/custom-post-types/js/many-items.min.js', + 128 => '_inc/build/custom-post-types/js/menu-checkboxes.min.js', + 129 => '_inc/build/instant-search/jp-search.bundle.js', + 130 => '_inc/build/instant-search/search.css', + 131 => '_inc/build/instant-search/instant-search.min.css', + 132 => '_inc/build/instant-search/search.rtl.css', + 133 => '_inc/build/jquery.jetpack-resize.min.js', + 134 => '_inc/build/crowdsignal-shortcode.min.js', + 135 => '_inc/build/likes/post-count-jetpack.min.js', + 136 => '_inc/build/likes/queuehandler.min.js', + 137 => '_inc/build/likes/post-count.min.js', + 138 => '_inc/build/static.rtl.css', + 139 => '_inc/build/static.css', + 140 => '_inc/build/polldaddy-shortcode.min.js', + 141 => '_inc/build/comment-likes/comment-like-count.min.js', + 142 => '_inc/build/idc-notice.min.js', + 143 => '_inc/build/accessible-focus.min.js', + 144 => '_inc/build/contact-form/js/grunion.min.js', + 145 => '_inc/build/contact-form/js/tinymce-plugin-form-button.min.js', + 146 => '_inc/build/contact-form/js/grunion-admin.min.js', + 147 => '_inc/build/contact-form/js/grunion-frontend.min.js', + 148 => '_inc/build/contact-form/js/editor-view.min.js', + 149 => '_inc/build/jetpack-modules.models.min.js', + 150 => '_inc/build/connect-button.min.js', + 151 => '_inc/build/related-posts/related-posts.min.js', + 152 => '_inc/build/related-posts/related-posts-customizer.min.js', + 153 => '_inc/build/carousel/jetpack-carousel.min.js', + 154 => '_inc/build/shortcodes/js/brightcove.min.js', + 155 => '_inc/build/shortcodes/js/gist.min.js', + 156 => '_inc/build/shortcodes/js/recipes-printthis.min.js', + 157 => '_inc/build/shortcodes/js/main.min.js', + 158 => '_inc/build/shortcodes/js/recipes.min.js', + 159 => '_inc/build/shortcodes/js/jmpress.min.js', + 160 => '_inc/build/shortcodes/js/instagram.min.js', + 161 => '_inc/build/shortcodes/js/slideshow-shortcode.min.js', + 162 => '_inc/build/shortcodes/js/quiz.min.js', + 163 => '_inc/build/minileven/theme/pub/minileven/js/small-menu.min.js', + 164 => '_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.js', + 165 => '_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.js', + 166 => '_inc/build/custom-css/custom-css/js/use-codemirror.min.js', + 167 => '_inc/build/custom-css/custom-css/js/core-customizer-css.min.js', + 168 => '_inc/build/custom-css/custom-css/js/css-editor.min.js', + 169 => '_inc/build/jetpack-jitm.min.js', + 170 => '_inc/build/gallery-settings.min.js', + 171 => '_inc/build/admin.css', + 172 => '_inc/build/spin.min.js', + 173 => '_inc/build/jetpack-admin.min.js', + 174 => '_inc/build/admin.js', + 175 => '_inc/build/twitter-timeline.min.js', + 176 => '_inc/build/jetpack-modules.views.min.js', + 177 => '_inc/build/photon/photon.min.js', + 178 => '_inc/build/style.min.rtl.css', + 179 => '_inc/build/jetpack-modules.min.js', + 180 => '_inc/build/postmessage.min.js', + 181 => '_inc/build/widget-visibility/widget-conditions/widget-conditions.min.js', + 182 => '_inc/build/facebook-embed.min.js', + 183 => '_inc/build/static.js', + 184 => '_inc/build/widgets/simple-payments/customizer.min.js', + 185 => '_inc/build/widgets/social-icons/social-icons-admin.min.js', + 186 => '_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.js', + 187 => '_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.js', + 188 => '_inc/build/widgets/gallery/js/gallery.min.js', + 189 => '_inc/build/widgets/gallery/js/admin.min.js', + 190 => '_inc/build/widgets/milestone/milestone.min.js', + 191 => '_inc/build/widgets/milestone/admin.min.js', + 192 => '_inc/build/widgets/search/js/search-widget.min.js', + 193 => '_inc/build/widgets/search/js/search-widget-admin.min.js', + 194 => '_inc/build/widgets/customizer-utils.min.js', + 195 => '_inc/build/widgets/contact-info/contact-info-admin.min.js', + 196 => '_inc/build/widgets/twitter-timeline-admin.min.js', + 197 => '_inc/build/widgets/google-translate/google-translate.min.js', + 198 => '_inc/build/lazy-images/js/lazy-images.min.js', + 199 => '_inc/jetpack-admin.js', + 200 => '_inc/jetpack-connection-banner.js', + 201 => '_inc/postmessage.js', + 202 => 'modules/infinite-scroll/infinity.js', + 203 => 'modules/infinite-scroll/infinity.css', + 204 => 'modules/infinite-scroll/themes/twentysixteen.css', + 205 => 'modules/infinite-scroll/themes/twentyeleven.css', + 206 => 'modules/infinite-scroll/themes/twentyten.css', + 207 => 'modules/infinite-scroll/themes/twentyseventeen-rtl.css', + 208 => 'modules/infinite-scroll/themes/twentyfifteen.css', + 209 => 'modules/infinite-scroll/themes/twentysixteen-rtl.css', + 210 => 'modules/infinite-scroll/themes/twentyseventeen.css', + 211 => 'modules/infinite-scroll/themes/twentytwelve.css', + 212 => 'modules/infinite-scroll/themes/twentyfourteen.css', + 213 => 'modules/infinite-scroll/themes/twentyfifteen-rtl.css', + 214 => 'modules/infinite-scroll/themes/twentythirteen.css', + 215 => 'modules/videopress/css/videopress-editor-style-rtl.css', + 216 => 'modules/videopress/css/videopress-editor-style.min.css', + 217 => 'modules/videopress/css/editor.css', + 218 => 'modules/videopress/css/videopress-editor-style-rtl.min.css', + 219 => 'modules/videopress/css/editor.min.css', + 220 => 'modules/videopress/css/editor-rtl.css', + 221 => 'modules/videopress/css/editor-rtl.min.css', + 222 => 'modules/videopress/css/videopress-editor-style.css', + 223 => 'modules/videopress/js/media-video-widget-extensions.js', + 224 => 'modules/videopress/js/videopress-plupload.js', + 225 => 'modules/videopress/js/videopress-uploader.js', + 226 => 'modules/videopress/js/editor-view.js', + 227 => 'modules/videopress/js/gutenberg-video-upload.js', + 228 => 'modules/videopress/videopress-admin.css', + 229 => 'modules/videopress/videopress-admin.min.css', + 230 => 'modules/videopress/videopress-admin-rtl.css', + 231 => 'modules/videopress/videopress-admin-rtl.min.css', + 232 => 'modules/tiled-gallery/tiled-gallery/tiled-gallery-rtl.css', + 233 => 'modules/tiled-gallery/tiled-gallery/tiled-gallery.css', + 234 => 'modules/tiled-gallery/tiled-gallery/rtl/tiled-gallery-rtl.css', + 235 => 'modules/tiled-gallery/tiled-gallery/tiled-gallery.js', + 236 => 'modules/simple-payments/simple-payments.css', + 237 => 'modules/simple-payments/paypal-express-checkout.js', + 238 => 'modules/masterbar/overrides.css', + 239 => 'modules/masterbar/tracks-events.js', + 240 => 'modules/sharedaddy/admin-sharing-rtl.min.css', + 241 => 'modules/sharedaddy/sharing.js', + 242 => 'modules/sharedaddy/sharing.css', + 243 => 'modules/sharedaddy/admin-sharing.js', + 244 => 'modules/sharedaddy/admin-sharing.min.css', + 245 => 'modules/sharedaddy/admin-sharing-rtl.css', + 246 => 'modules/sharedaddy/admin-sharing.css', + 247 => 'modules/custom-post-types/comics/comics.min.css', + 248 => 'modules/custom-post-types/comics/comics-rtl.css', + 249 => 'modules/custom-post-types/comics/comics.css', + 250 => 'modules/custom-post-types/comics/comics-rtl.min.css', + 251 => 'modules/custom-post-types/comics/comics.js', + 252 => 'modules/custom-post-types/comics/admin.css', + 253 => 'modules/custom-post-types/comics/rtl/comics-rtl.css', + 254 => 'modules/custom-post-types/css/portfolio-shortcode.css', + 255 => 'modules/custom-post-types/css/testimonial-shortcode.css', + 256 => 'modules/custom-post-types/css/nova-font.css', + 257 => 'modules/custom-post-types/css/edit-items.css', + 258 => 'modules/custom-post-types/css/nova.css', + 259 => 'modules/custom-post-types/css/many-items.css', + 260 => 'modules/custom-post-types/js/menu-checkboxes.js', + 261 => 'modules/custom-post-types/js/many-items.js', + 262 => 'modules/custom-post-types/js/nova-drag-drop.js', + 263 => 'modules/calypsoify/style-gutenberg-rtl.min.css', + 264 => 'modules/calypsoify/style-rtl.min.css', + 265 => 'modules/calypsoify/style.min.css', + 266 => 'modules/calypsoify/style-gutenberg.min.css', + 267 => 'modules/calypsoify/mods-gutenberg.js', + 268 => 'modules/calypsoify/mods.js', + 269 => 'modules/likes/post-count.js', + 270 => 'modules/likes/post-count-jetpack.js', + 271 => 'modules/likes/style.css', + 272 => 'modules/likes/queuehandler.js', + 273 => 'modules/protect/protect-dashboard-widget-rtl.min.css', + 274 => 'modules/protect/protect-dashboard-widget.css', + 275 => 'modules/protect/protect-dashboard-widget.min.css', + 276 => 'modules/protect/protect-dashboard-widget-rtl.css', + 277 => 'modules/comment-likes/comment-like-count.js', + 278 => 'modules/comment-likes/admin-style.css', + 279 => 'modules/contact-form/css/editor-ui.min.css', + 280 => 'modules/contact-form/css/editor-ui-rtl.css', + 281 => 'modules/contact-form/css/editor-inline-editing-style.css', + 282 => 'modules/contact-form/css/editor-inline-editing-style-rtl.css', + 283 => 'modules/contact-form/css/editor-inline-editing-style.min.css', + 284 => 'modules/contact-form/css/editor-style-rtl.min.css', + 285 => 'modules/contact-form/css/jquery-ui-datepicker.css', + 286 => 'modules/contact-form/css/grunion.css', + 287 => 'modules/contact-form/css/editor-ui.css', + 288 => 'modules/contact-form/css/editor-style.css', + 289 => 'modules/contact-form/css/editor-style-rtl.css', + 290 => 'modules/contact-form/css/editor-inline-editing-style-rtl.min.css', + 291 => 'modules/contact-form/css/editor-style.min.css', + 292 => 'modules/contact-form/css/grunion-rtl.css', + 293 => 'modules/contact-form/css/editor-ui-rtl.min.css', + 294 => 'modules/contact-form/js/grunion.js', + 295 => 'modules/contact-form/js/grunion-admin.js', + 296 => 'modules/contact-form/js/editor-view.js', + 297 => 'modules/contact-form/js/grunion-frontend.js', + 298 => 'modules/contact-form/js/tinymce-plugin-form-button.js', + 299 => 'modules/related-posts/related-posts.css', + 300 => 'modules/related-posts/related-posts.js', + 301 => 'modules/related-posts/related-posts-rtl.css', + 302 => 'modules/related-posts/rtl/related-posts-rtl.css', + 303 => 'modules/related-posts/related-posts-customizer.js', + 304 => 'modules/carousel/jetpack-carousel.js', + 305 => 'modules/carousel/rtl/jetpack-carousel-rtl.css', + 306 => 'modules/carousel/jetpack-carousel.css', + 307 => 'modules/carousel/jetpack-carousel-rtl.css', + 308 => 'modules/shortcodes/css/recipes.css', + 309 => 'modules/shortcodes/css/slideshow-shortcode.min.css', + 310 => 'modules/shortcodes/css/slideshow-shortcode-rtl.css', + 311 => 'modules/shortcodes/css/recipes-print.min.css', + 312 => 'modules/shortcodes/css/recipes-rtl.css', + 313 => 'modules/shortcodes/css/recipes.min.css', + 314 => 'modules/shortcodes/css/recipes-print-rtl.css', + 315 => 'modules/shortcodes/css/recipes-print.css', + 316 => 'modules/shortcodes/css/slideshow-shortcode-rtl.min.css', + 317 => 'modules/shortcodes/css/recipes-rtl.min.css', + 318 => 'modules/shortcodes/css/recipes-print-rtl.min.css', + 319 => 'modules/shortcodes/css/style.css', + 320 => 'modules/shortcodes/css/quiz.css', + 321 => 'modules/shortcodes/css/slideshow-shortcode.css', + 322 => 'modules/shortcodes/js/brightcove.js', + 323 => 'modules/shortcodes/js/quiz.js', + 324 => 'modules/shortcodes/js/recipes-printthis.js', + 325 => 'modules/shortcodes/js/jmpress.js', + 326 => 'modules/shortcodes/js/slideshow-shortcode.js', + 327 => 'modules/shortcodes/js/main.js', + 328 => 'modules/shortcodes/js/jquery.cycle.min.js', + 329 => 'modules/shortcodes/js/instagram.js', + 330 => 'modules/shortcodes/js/recipes.js', + 331 => 'modules/shortcodes/js/gist.js', + 332 => 'modules/subscriptions/subscriptions.css', + 333 => 'modules/minileven/theme/pub/minileven/js/small-menu.js', + 334 => 'modules/minileven/theme/pub/minileven/style.css', + 335 => 'modules/minileven/theme/pub/minileven/rtl.css', + 336 => 'modules/wordads/css/style.css', + 337 => 'modules/custom-css/csstidy/cssparse-rtl.min.css', + 338 => 'modules/custom-css/csstidy/cssparse-rtl.css', + 339 => 'modules/custom-css/csstidy/cssparse.min.css', + 340 => 'modules/custom-css/csstidy/cssparsed-rtl.min.css', + 341 => 'modules/custom-css/csstidy/cssparsed.css', + 342 => 'modules/custom-css/csstidy/cssparse.css', + 343 => 'modules/custom-css/csstidy/cssparsed-rtl.css', + 344 => 'modules/custom-css/csstidy/cssparsed.min.css', + 345 => 'modules/custom-css/custom-css/css/blank.css', + 346 => 'modules/custom-css/custom-css/css/css-editor.css', + 347 => 'modules/custom-css/custom-css/css/use-codemirror.css', + 348 => 'modules/custom-css/custom-css/css/codemirror.css', + 349 => 'modules/custom-css/custom-css/css/codemirror-rtl.min.css', + 350 => 'modules/custom-css/custom-css/css/css-editor-rtl.min.css', + 351 => 'modules/custom-css/custom-css/css/css-editor-rtl.css', + 352 => 'modules/custom-css/custom-css/css/customizer-control.css', + 353 => 'modules/custom-css/custom-css/css/codemirror-rtl.css', + 354 => 'modules/custom-css/custom-css/css/css-editor.min.css', + 355 => 'modules/custom-css/custom-css/css/codemirror.min.css', + 356 => 'modules/custom-css/custom-css/css/rtl/codemirror-rtl.css', + 357 => 'modules/custom-css/custom-css/css/use-codemirror-rtl.css', + 358 => 'modules/custom-css/custom-css/css/use-codemirror.min.css', + 359 => 'modules/custom-css/custom-css/css/use-codemirror-rtl.min.css', + 360 => 'modules/custom-css/custom-css/js/core-customizer-css.core-4.9.js', + 361 => 'modules/custom-css/custom-css/js/css-editor.js', + 362 => 'modules/custom-css/custom-css/js/codemirror.min.js', + 363 => 'modules/custom-css/custom-css/js/core-customizer-css-preview.js', + 364 => 'modules/custom-css/custom-css/js/core-customizer-css.js', + 365 => 'modules/custom-css/custom-css/js/use-codemirror.js', + 366 => 'modules/sso/jetpack-sso-login.css', + 367 => 'modules/sso/jetpack-sso-login.js', + 368 => 'modules/sso/jetpack-sso-login-rtl.css', + 369 => 'modules/sso/jetpack-sso-login.min.css', + 370 => 'modules/sso/jetpack-sso-login-rtl.min.css', + 371 => 'modules/theme-tools/site-logo/css/site-logo-control.css', + 372 => 'modules/theme-tools/site-logo/css/site-logo-control-rtl.min.css', + 373 => 'modules/theme-tools/site-logo/css/site-logo-control.min.css', + 374 => 'modules/theme-tools/site-logo/css/site-logo-control-rtl.css', + 375 => 'modules/theme-tools/site-logo/js/site-logo.min.js', + 376 => 'modules/theme-tools/site-logo/js/site-logo.js', + 377 => 'modules/theme-tools/site-logo/js/site-logo-header-text.js', + 378 => 'modules/theme-tools/site-logo/js/site-logo-control.js', + 379 => 'modules/theme-tools/site-logo/js/site-logo-header-text.min.js', + 380 => 'modules/theme-tools/site-logo/js/site-logo-control.min.js', + 381 => 'modules/theme-tools/compat/twentysixteen.css', + 382 => 'modules/theme-tools/compat/twentynineteen.css', + 383 => 'modules/theme-tools/compat/twentytwenty-rtl.css', + 384 => 'modules/theme-tools/compat/twentyfourteen-rtl.css', + 385 => 'modules/theme-tools/compat/twentyfifteen.css', + 386 => 'modules/theme-tools/compat/twentysixteen-rtl.css', + 387 => 'modules/theme-tools/compat/twentynineteen-rtl.css', + 388 => 'modules/theme-tools/compat/twentyfourteen.css', + 389 => 'modules/theme-tools/compat/twentytwenty.css', + 390 => 'modules/theme-tools/compat/twentyfifteen-rtl.css', + 391 => 'modules/theme-tools/content-options/customizer.js', + 392 => 'modules/theme-tools/js/suggest.js', + 393 => 'modules/theme-tools/social-menu/social-menu.css', + 394 => 'modules/theme-tools/responsive-videos/responsive-videos.css', + 395 => 'modules/theme-tools/responsive-videos/responsive-videos.js', + 396 => 'modules/theme-tools/responsive-videos/responsive-videos.min.js', + 397 => 'modules/post-by-email/post-by-email-rtl.css', + 398 => 'modules/post-by-email/post-by-email.min.css', + 399 => 'modules/post-by-email/post-by-email-rtl.min.css', + 400 => 'modules/post-by-email/post-by-email.css', + 401 => 'modules/post-by-email/post-by-email.js', + 402 => 'modules/.eslintrc.js', + 403 => 'modules/photon/photon.js', + 404 => 'modules/plugin-search/plugin-search.css', + 405 => 'modules/plugin-search/plugin-search.js', + 406 => 'modules/widget-visibility/widget-conditions/widget-conditions-rtl.min.css', + 407 => 'modules/widget-visibility/widget-conditions/widget-conditions-rtl.css', + 408 => 'modules/widget-visibility/widget-conditions/widget-conditions.min.css', + 409 => 'modules/widget-visibility/widget-conditions/widget-conditions.css', + 410 => 'modules/widget-visibility/widget-conditions/rtl/widget-conditions-rtl.css', + 411 => 'modules/widget-visibility/widget-conditions/widget-conditions.js', + 412 => 'modules/widgets/simple-payments/customizer.css', + 413 => 'modules/widgets/simple-payments/customizer.js', + 414 => 'modules/widgets/simple-payments/style.css', + 415 => 'modules/widgets/twitter-timeline-admin.js', + 416 => 'modules/widgets/facebook-likebox/style.css', + 417 => 'modules/widgets/customizer-utils.js', + 418 => 'modules/widgets/goodreads/css/goodreads.css', + 419 => 'modules/widgets/goodreads/css/rtl/goodreads-rtl.css', + 420 => 'modules/widgets/social-media-icons/style.css', + 421 => 'modules/widgets/my-community/style.css', + 422 => 'modules/widgets/authors/style.css', + 423 => 'modules/widgets/social-icons/social-icons-admin.js', + 424 => 'modules/widgets/social-icons/social-icons-admin.css', + 425 => 'modules/widgets/social-icons/social-icons.css', + 426 => 'modules/widgets/eu-cookie-law/eu-cookie-law.js', + 427 => 'modules/widgets/eu-cookie-law/style.css', + 428 => 'modules/widgets/eu-cookie-law/eu-cookie-law-admin.js', + 429 => 'modules/widgets/flickr/style.css', + 430 => 'modules/widgets/gallery/css/admin-rtl.min.css', + 431 => 'modules/widgets/gallery/css/admin.css', + 432 => 'modules/widgets/gallery/css/admin-rtl.css', + 433 => 'modules/widgets/gallery/css/admin.min.css', + 434 => 'modules/widgets/gallery/css/rtl/admin-rtl.css', + 435 => 'modules/widgets/gallery/js/gallery.js', + 436 => 'modules/widgets/gallery/js/admin.js', + 437 => 'modules/widgets/top-posts/style.css', + 438 => 'modules/widgets/milestone/style-admin.css', + 439 => 'modules/widgets/milestone/milestone.js', + 440 => 'modules/widgets/milestone/admin.js', + 441 => 'modules/widgets/search/css/search-widget-frontend.css', + 442 => 'modules/widgets/search/css/search-widget-admin-ui.css', + 443 => 'modules/widgets/search/js/search-widget-admin.js', + 444 => 'modules/widgets/search/js/search-widget.js', + 445 => 'modules/widgets/contact-info/contact-info-admin.js', + 446 => 'modules/widgets/contact-info/contact-info-map.css', + 447 => 'modules/widgets/image-widget/style.css', + 448 => 'modules/widgets/customizer-controls.css', + 449 => 'modules/widgets/google-translate/google-translate.js', + 450 => 'modules/widgets/wordpress-post-widget/style.css', + 451 => 'modules/widgets/gravatar-profile.css', + 452 => 'modules/lazy-images/js/lazy-images.js', + 453 => 'modules/wpgroho.js', );
diff --git a/plugins/jetpack/modules/plugin-search.php b/plugins/jetpack/modules/plugin-search.php index 9a950e0d..cb98ae39 100644 --- a/plugins/jetpack/modules/plugin-search.php +++ b/plugins/jetpack/modules/plugin-search.php @@ -417,23 +417,6 @@ class Jetpack_Plugin_Search { } /** - * Builds a URL to purchase and upgrade inserting the site fragment and the affiliate code if it exists. - * - * @param string $feature Module slug (or forged one for extra features). - * - * @since 7.1.0 - * - * @return string URL to upgrade. - */ - private function get_upgrade_url( $feature ) { - $site_raw_url = Jetpack::build_raw_urls( get_home_url() ); - $affiliateCode = Jetpack_Affiliate::init()->get_affiliate_code(); - $user = wp_get_current_user()->ID; - return "https://jetpack.com/redirect/?source=plugin-hint-upgrade-$feature&site=$site_raw_url&u=$user" . - ( $affiliateCode ? "&aff=$affiliateCode" : '' ); - } - - /** * Modify the URL to the feature settings, for example Publicize. * Sharing is included here because while we still have a page in WP Admin, * we prefer to send users to Calypso. diff --git a/plugins/jetpack/modules/related-posts/jetpack-related-posts.php b/plugins/jetpack/modules/related-posts/jetpack-related-posts.php index aa9adefb..125e2889 100644 --- a/plugins/jetpack/modules/related-posts/jetpack-related-posts.php +++ b/plugins/jetpack/modules/related-posts/jetpack-related-posts.php @@ -194,7 +194,7 @@ class Jetpack_RelatedPosts { * @return string Rendered related posts HTML. */ public function get_server_rendered_html() { - $rp_settings = Jetpack_Options::get_option( 'relatedposts', array() ); + $rp_settings = $this->get_options(); $block_rp_settings = array( 'displayThumbnails' => $rp_settings['show_thumbnails'], 'showHeadline' => $rp_settings['show_headline'], diff --git a/plugins/jetpack/modules/search/class.jetpack-search.php b/plugins/jetpack/modules/search/class.jetpack-search.php index 1271afc6..1e49c51e 100644 --- a/plugins/jetpack/modules/search/class.jetpack-search.php +++ b/plugins/jetpack/modules/search/class.jetpack-search.php @@ -1,4 +1,5 @@ <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName + /** * Jetpack Search: Main Jetpack_Search class * @@ -153,7 +154,7 @@ class Jetpack_Search { * @since 5.0.0 */ public function setup() { - if ( ! Jetpack::is_active() || ! Jetpack_Plan::supports( 'search' ) ) { + if ( ! Jetpack::is_active() || ! $this->is_search_supported() ) { /** * Fires when the Jetpack Search fails and would fallback to MySQL. * @@ -283,6 +284,30 @@ class Jetpack_Search { } /** + * Is search supported on the current plan + * + * @since 6.0 + * Loads scripts for Tracks analytics library + */ + public function is_search_supported() { + if ( method_exists( 'Jetpack_Plan', 'supports' ) ) { + return Jetpack_Plan::supports( 'search' ); + } + return false; + } + + /** + * Does this site have a VIP index + * Get the version number to use when loading the file. Allows us to bypass cache when developing. + * + * @since 6.0 + * @return string $script_version Version number. + */ + public function has_vip_index() { + return defined( 'JETPACK_SEARCH_VIP_INDEX' ) && JETPACK_SEARCH_VIP_INDEX; + } + + /** * Loads scripts for Tracks analytics library */ public function load_and_initialize_tracks() { @@ -490,9 +515,12 @@ class Jetpack_Search { if ( is_wp_error( $request ) ) { return $request; } - $response_code = wp_remote_retrieve_response_code( $request ); + if ( ! $response_code || $response_code < 200 || $response_code >= 300 ) { + return new WP_Error( 'invalid_search_api_response', 'Invalid response from API - ' . $response_code ); + } + $response = json_decode( wp_remote_retrieve_body( $request ), true ); $took = is_array( $response ) && ! empty( $response['took'] ) @@ -845,6 +873,17 @@ class Jetpack_Search { } /** + * Initialize widgets for the Search module (on wp.com only). + * + * @module search + */ + public function action__widgets_init() { + require_once dirname( __FILE__ ) . '/class.jetpack-search-widget-filters.php'; + + register_widget( 'Jetpack_Search_Widget_Filters' ); + } + + /** * Get the Elasticsearch result. * * @since 5.0.0 @@ -958,7 +997,7 @@ class Jetpack_Search { ); if ( empty( $args['query_fields'] ) ) { - if ( defined( 'JETPACK_SEARCH_VIP_INDEX' ) && JETPACK_SEARCH_VIP_INDEX ) { + if ( $this->has_vip_index() ) { // VIP indices do not have per language fields. $match_fields = $this->_get_caret_boosted_fields( array( diff --git a/plugins/jetpack/modules/sharedaddy.php b/plugins/jetpack/modules/sharedaddy.php index 763f575f..8349a9a5 100644 --- a/plugins/jetpack/modules/sharedaddy.php +++ b/plugins/jetpack/modules/sharedaddy.php @@ -1,6 +1,4 @@ <?php -use Automattic\Jetpack\Status; - /** * Module Name: Sharing * Module Description: Add Twitter, Facebook and Google+ buttons at the bottom of each post, making it easy for visitors to share your content. @@ -17,6 +15,8 @@ use Automattic\Jetpack\Status; * @package Jetpack */ +use Automattic\Jetpack\Status; + if ( ! function_exists( 'sharing_init' ) ) { require dirname( __FILE__ ) . '/sharedaddy/sharedaddy.php'; } @@ -37,7 +37,8 @@ function sharedaddy_loaded() { * @return string Sharing config URL */ function jetpack_sharedaddy_configuration_url() { - if ( ( new Status() )->is_development_mode() || Jetpack::is_staging_site() || ! Jetpack::is_user_connected() ) { + $status = new Status(); + if ( $status->is_development_mode() || $status->is_staging_site() || ! Jetpack::is_user_connected() ) { return admin_url( 'options-general.php?page=sharing' ); } diff --git a/plugins/jetpack/modules/sharedaddy/sharedaddy.php b/plugins/jetpack/modules/sharedaddy/sharedaddy.php index 82fe7af2..ad70d3ea 100644 --- a/plugins/jetpack/modules/sharedaddy/sharedaddy.php +++ b/plugins/jetpack/modules/sharedaddy/sharedaddy.php @@ -204,14 +204,14 @@ function sharing_meta_box_save( $post_id ) { return $post_id; } -function sharing_meta_box_protected( $protected, $meta_key, $meta_type ) { +function sharing_meta_box_protected( $protected, $meta_key ) { if ( 'sharing_disabled' == $meta_key ) $protected = true; return $protected; } -add_filter( 'is_protected_meta', 'sharing_meta_box_protected', 10, 3 ); +add_filter( 'is_protected_meta', 'sharing_meta_box_protected', 10, 2 ); function sharing_plugin_settings( $links ) { $settings_link = '<a href="options-general.php?page=sharing.php">'.__( 'Settings', 'jetpack' ).'</a>'; diff --git a/plugins/jetpack/modules/shortcodes/vimeo.php b/plugins/jetpack/modules/shortcodes/vimeo.php index cc0d3d77..f05965ea 100644 --- a/plugins/jetpack/modules/shortcodes/vimeo.php +++ b/plugins/jetpack/modules/shortcodes/vimeo.php @@ -6,6 +6,7 @@ * [vimeo 141358] * [vimeo http://vimeo.com/141358] * [vimeo 141358 h=500&w=350] + * [vimeo 141358 h=500 w=350] * [vimeo id=141358 width=350 height=500] * * <iframe src="http://player.vimeo.com/video/18427511" width="400" height="225" frameborder="0"></iframe><p><a href="http://vimeo.com/18427511">Eskmo 'We Got More' (Official Video)</a> from <a href="http://vimeo.com/ninjatune">Ninja Tune</a> on <a href="http://vimeo.com">Vimeo</a>.</p> @@ -52,11 +53,35 @@ function jetpack_shortcode_get_vimeo_dimensions( $attr, $old_attr = array() ) { $default_width = 600; $default_height = 338; $aspect_ratio = $default_height / $default_width; - $width = ( ! empty( $attr['width'] ) ? absint( $attr['width'] ) : $default_width ); - $height = ( ! empty( $attr['height'] ) ? absint( $attr['height'] ) : $default_height ); /* - * Support w and h argument as fallbacks. + * For width and height, we want to support both formats + * that can be provided in the new shortcode format: + * - for width: width or w + * - for height: height or h + * + * For each variation, the full word takes priority. + * + * If no variation is set, we default to the default width and height values set above. + */ + if ( ! empty( $attr['width'] ) ) { + $width = absint( $attr['width'] ); + } elseif ( ! empty( $attr['w'] ) ) { + $width = absint( $attr['w'] ); + } else { + $width = $default_width; + } + + if ( ! empty( $attr['height'] ) ) { + $height = absint( $attr['height'] ); + } elseif ( ! empty( $attr['h'] ) ) { + $height = absint( $attr['h'] ); + } else { + $height = $default_height; + } + + /* + * Support w and h argument as fallbacks in old shortcode format. */ if ( $default_width === $width @@ -146,6 +171,8 @@ function vimeo_shortcode( $atts ) { 'height' => 0, 'autoplay' => 0, 'loop' => 0, + 'w' => 0, + 'h' => 0, ), $atts ) diff --git a/plugins/jetpack/modules/sso.php b/plugins/jetpack/modules/sso.php index 1d548213..96a60858 100644 --- a/plugins/jetpack/modules/sso.php +++ b/plugins/jetpack/modules/sso.php @@ -1,6 +1,7 @@ <?php use Automattic\Jetpack\Roles; +use Automattic\Jetpack\Status; use Automattic\Jetpack\Tracking; require_once( JETPACK__PLUGIN_DIR . 'modules/sso/class.jetpack-sso-helpers.php' ); @@ -16,7 +17,7 @@ require_once( JETPACK__PLUGIN_DIR . 'modules/sso/class.jetpack-sso-notices.php' * Auto Activate: No * Module Tags: Developers * Feature: Security - * Additional Search Queries: sso, single sign on, login, log in + * Additional Search Queries: sso, single sign on, login, log in, 2fa, two-factor */ class Jetpack_SSO { @@ -148,7 +149,7 @@ class Jetpack_SSO { // Always add the jetpack-sso class so that we can add SSO specific styling even when the SSO form isn't being displayed. $classes[] = 'jetpack-sso'; - if ( ! Jetpack::is_staging_site() ) { + if ( ! ( new Status() )->is_staging_site() ) { /** * Should we show the SSO login form? * @@ -352,7 +353,7 @@ class Jetpack_SSO { $this->handle_login(); $this->display_sso_login_form(); } else { - if ( Jetpack::is_staging_site() ) { + if ( ( new Status() )->is_staging_site() ) { add_filter( 'login_message', array( 'Jetpack_SSO_Notices', 'sso_not_allowed_in_staging' ) ); } else { // Is it wiser to just use wp_redirect than do this runaround to wp_safe_redirect? @@ -401,7 +402,7 @@ class Jetpack_SSO { add_filter( 'login_body_class', array( $this, 'login_body_class' ) ); add_action( 'login_head', array( $this, 'print_inline_admin_css' ) ); - if ( Jetpack::is_staging_site() ) { + if ( ( new Status() )->is_staging_site() ) { add_filter( 'login_message', array( 'Jetpack_SSO_Notices', 'sso_not_allowed_in_staging' ) ); return; } diff --git a/plugins/jetpack/modules/subscriptions.php b/plugins/jetpack/modules/subscriptions.php index 3b6bd9f5..e7547981 100644 --- a/plugins/jetpack/modules/subscriptions.php +++ b/plugins/jetpack/modules/subscriptions.php @@ -92,6 +92,9 @@ class Jetpack_Subscriptions { add_filter( 'jetpack_published_post_flags', array( $this, 'set_post_flags' ), 10, 2 ); add_filter( 'post_updated_messages', array( $this, 'update_published_message' ), 18, 1 ); + + // Set "social_notifications_subscribe" option during the first-time activation. + add_action( 'jetpack_activate_module_subscriptions', array( $this, 'set_social_notifications_subscribe' ) ); } /** @@ -297,6 +300,30 @@ class Jetpack_Subscriptions { 'stc_enabled' ); + /** Email me whenever: Someone follows my blog ***************************************************/ + /* @since 8.1 */ + + add_settings_section( + 'notifications_section', + __( 'Someone follows my blog', 'jetpack' ), + array( $this, 'social_notifications_subscribe_section' ), + 'discussion' + ); + + add_settings_field( + 'jetpack_subscriptions_social_notifications_subscribe', + __( 'Email me whenever', 'jetpack' ), + array( $this, 'social_notifications_subscribe_field' ), + 'discussion', + 'notifications_section' + ); + + register_setting( + 'discussion', + 'social_notifications_subscribe', + array( $this, 'social_notifications_subscribe_validate' ) + ); + /** Subscription Messaging Options ******************************************************/ register_setting( @@ -371,6 +398,69 @@ class Jetpack_Subscriptions { <?php } + /** + * Someone follows my blog section + * + * @since 8.1 + */ + public function social_notifications_subscribe_section() { + // Atypical usage here. We emit jquery to move subscribe notification checkbox to be with the rest of the email notification settings + ?> + <script type="text/javascript"> + jQuery( function( $ ) { + var table = $( '#social_notifications_subscribe' ).parents( 'table:first' ), + header = table.prevAll( 'h2:first' ), + newParent = $( '#moderation_notify' ).parent( 'label' ).parent(); + + if ( ! table.length || ! header.length || ! newParent.length ) { + return; + } + + newParent.append( '<br/>' ).append( table.end().parent( 'label' ).siblings().andSelf() ); + header.remove(); + table.remove(); + } ); + </script> + <?php + } + + /** + * Someone follows my blog Toggle + * + * @since 8.1 + */ + public function social_notifications_subscribe_field() { + $checked = intval( 'on' === get_option( 'social_notifications_subscribe', 'on' ) ); + ?> + + <label> + <input type="checkbox" name="social_notifications_subscribe" id="social_notifications_subscribe" value="1" <?php checked( $checked ); ?> /> + <?php + /* translators: this is a label for a setting that starts with "Email me whenever" */ + esc_html_e( 'Someone follows my blog', 'jetpack' ); + ?> + </label> + <?php + } + + /** + * Validate "Someone follows my blog" option + * + * @since 8.1 + * + * @param String $input the input string to be validated. + * @return string on|off + */ + public function social_notifications_subscribe_validate( $input ) { + // If it's not set (was unchecked during form submission) or was set to off (during option update), return 'off'. + if ( ! $input || 'off' === $input ) { + return 'off'; + } + + // Otherwise we return 'on'. + return 'on'; + } + function validate_settings( $settings ) { global $allowedposttags; @@ -434,6 +524,7 @@ class Jetpack_Subscriptions { * not_subscribed : strange error. Jetpack servers at WordPress.com could subscribe the email. * disabled : Site owner has disabled subscriptions. * active : Already subscribed. + * pending : Tried to subscribe before but the confirmation link is never clicked. No confirmation email is sent. * unknown : strange error. Jetpack servers at WordPress.com returned something malformed. * unknown_status : strange error. Jetpack servers at WordPress.com returned something I didn't understand. */ @@ -487,21 +578,24 @@ class Jetpack_Subscriptions { } switch ( $response[0]['status'] ) { - case 'error' : - $r[] = new Jetpack_Error( 'not_subscribed' ); - continue 2; - case 'disabled' : - $r[] = new Jetpack_Error( 'disabled' ); - continue 2; - case 'active' : - $r[] = new Jetpack_Error( 'active' ); - continue 2; - case 'pending' : - $r[] = true; - continue 2; - default : - $r[] = new Jetpack_Error( 'unknown_status', (string) $response[0]['status'] ); - continue 2; + case 'error': + $r[] = new Jetpack_Error( 'not_subscribed' ); + continue 2; + case 'disabled': + $r[] = new Jetpack_Error( 'disabled' ); + continue 2; + case 'active': + $r[] = new Jetpack_Error( 'active' ); + continue 2; + case 'confirming': + $r[] = true; + continue 2; + case 'pending': + $r[] = new Jetpack_Error( 'pending' ); + continue 2; + default: + $r[] = new Jetpack_Error( 'unknown_status', (string) $response[0]['status'] ); + continue 2; } } @@ -565,9 +659,14 @@ class Jetpack_Subscriptions { $result = 'opted_out'; break; case 'active': - case 'pending': $result = 'already'; break; + case 'flooded_email': + $result = 'many_pending_subs'; + break; + case 'pending': + $result = 'pending'; + break; default: $result = 'error'; break; @@ -773,6 +872,19 @@ class Jetpack_Subscriptions { } } + /** + * Set the social_notifications_subscribe option to `off` when the Subscriptions module is activated in the first time. + * + * @since 8.1 + * + * @return null + */ + function set_social_notifications_subscribe() { + if ( false === get_option( 'social_notifications_subscribe' ) ) { + add_option( 'social_notifications_subscribe', 'off' ); + } + } + } Jetpack_Subscriptions::init(); diff --git a/plugins/jetpack/modules/subscriptions/views.php b/plugins/jetpack/modules/subscriptions/views.php index fc578db4..25a65405 100644 --- a/plugins/jetpack/modules/subscriptions/views.php +++ b/plugins/jetpack/modules/subscriptions/views.php @@ -6,6 +6,20 @@ class Jetpack_Subscriptions_Widget extends WP_Widget { * @var array When printing the submit button, what tags are allowed */ static $allowed_html_tags_for_submit_button = array( 'br' => array() ); + /** + * Use this variable when printing the message after submitting an email in subscription widgets + * + * @var array what tags are allowed + */ + public static $allowed_html_tags_for_message = array( + 'a' => array( + 'href' => array(), + 'title' => array(), + 'rel' => array(), + 'target' => array(), + ), + 'br' => array(), + ); function __construct() { $widget_ops = array( @@ -150,6 +164,39 @@ class Jetpack_Subscriptions_Widget extends WP_Widget { __( 'Manage your email preferences.', 'jetpack' ) ); ?></p> <?php break; + case 'many_pending_subs': + ?> + <p class="error"> + <?php + printf( + wp_kses( + /* translators: 1: Link to Subscription Management page https://subscribe.wordpress.com/, 2: Description of this link */ + __( 'You already have several pending email subscriptions. <br /> Approve or delete a few subscriptions at <a href="%1$s" title="%2$s" target="_blank" rel="noopener noreferrer">subscribe.wordpress.com</a> before continuing.', 'jetpack' ), + self::$allowed_html_tags_for_message + ), + 'https://subscribe.wordpress.com/', + esc_attr__( 'Manage your email preferences.', 'jetpack' ) + ); + ?> + </p> + <?php break; + case 'pending': + ?> + <p class="error"> + <?php + printf( + wp_kses( + /* translators: 1: Link to Subscription Management page https://subscribe.wordpress.com/, 2: Description of this link */ + __( 'You subscribed this site before but you have not clicked the confirmation link yet. Please check your inbox. <br /> Otherwise, you can manage your preferences at <a href="%1$s" title="%2$s" target="_blank" rel="noopener noreferrer">subscribe.wordpress.com</a>.', 'jetpack' ), + self::$allowed_html_tags_for_message + ), + 'https://subscribe.wordpress.com/', + esc_attr__( 'Manage your email preferences.', 'jetpack' ) + ); + ?> + </p> + <?php + break; case 'success' : ?> <div class="success"><?php echo wpautop( str_replace( '[total-subscribers]', number_format_i18n( $subscribers_total['value'] ), $success_message ) ); ?></div> <?php break; diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css b/plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css index fc248ab3..abf474eb 100644 --- a/plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css +++ b/plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css @@ -1 +1 @@ -.infinite-scroll .pagination-wrapper,.infinite-scroll.neverending #site-footer,.infinite-scroll.neverending .footer-nav-widgets-wrapper{display:none}.infinite-end.neverending .footer-nav-widgets-wrapper,.infinity-end.neverending #site-footer{display:block}.infinite-loader{margin:calc(3 * 1rem) auto}.infinite-loader .spinner{margin:0 auto;right:inherit!important}#site-content #infinite-handle{margin:0 auto;max-width:58rem;width:calc(100% - 8rem)}#site-content #infinite-handle span{background:100% 0;display:block;font-size:1.7rem;text-align:center}#site-content #infinite-handle span button,#site-content #infinite-handle span button:focus,#site-content #infinite-handle span button:hover{-webkit-appearance:none;-moz-appearance:none;border:none;background:#cd2653;border-radius:0;color:#fff;cursor:pointer;display:inline-block;font-size:1.5rem;font-weight:600;letter-spacing:.0333em;line-height:1.25;margin:0;opacity:1;padding:1.1em 1.44em;text-align:center;text-decoration:none;text-transform:uppercase;transition:opacity .15s linear}#site-content #infinite-handle span button:hover{text-decoration:underline}#site-content .infinite-wrap .hentry:first-of-type{padding:4rem 0 0}.entry-content #jp-relatedposts h3.jp-relatedposts-headline,.entry-content div.sharedaddy h3.sd-title,.entry-content h3.sd-title{font-size:2.8rem;font-weight:700;letter-spacing:-.016875em;line-height:1.5}@media (min-width:700px){.entry-content #jp-relatedposts h3.jp-relatedposts-headline,.entry-content div.sharedaddy h3.sd-title,.entry-content h3.sd-title{font-size:4rem}}.entry-content div.sharedaddy h3.sd-title:before,.entry-content h3.sd-title:before{border:0 none}.entry-content #jp-relatedposts h3.jp-relatedposts-headline em:before{border:0 none}.widget_authors ul{margin-right:0}.widget_authors li{margin-top:1rem;list-style:none}.widget_authors li:first-child{margin-top:2rem}.widget_eu_cookie_law_widget #eu-cookie-law,.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.6rem;font-weight:500;padding:2rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.4rem;font-weight:600;letter-spacing:.0333em;line-height:1.25;padding:1.1em 1.44em;text-decoration:none;text-transform:uppercase;transition:opacity .15s linear}@media (max-width:600px){.widget_eu_cookie_law_widget #eu-cookie-law{font-size:1.4rem;padding:1.5rem 1.5rem 6.5rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.2rem;bottom:1.5rem;left:auto;right:1.5rem;padding:1rem;margin:0}}.entry-content #jp-relatedposts{max-width:120rem;margin:1em auto;width:calc(100% - 4rem)}@media (min-width:700px){.entry-content #jp-relatedposts{width:calc(100% - 8rem)}}#jp-relatedposts .jp-relatedposts-grid{display:flex;flex-grow:1;flex-basis:0;justify-content:space-between;box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,#jp-relatedposts .jp-relatedposts-post{width:calc(33% - 2rem);margin-right:0;margin-left:0}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-grid{flex-direction:column}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,#jp-relatedposts .jp-relatedposts-post{width:100%}}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-left:0}#jp-relatedposts#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:inherit;line-height:1.5}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img{width:100%}.entry-content .jetpack-recipe{margin:1em auto}.jp-related-posts-i2__post li{margin:0}.wp-block-jetpack-gif{margin:1em auto!important}
\ No newline at end of file +#infinite-footer{z-index:1}.infinite-scroll .pagination-wrapper,.infinite-scroll.neverending #site-footer,.infinite-scroll.neverending .footer-nav-widgets-wrapper{display:none}.infinite-end.neverending .footer-nav-widgets-wrapper,.infinity-end.neverending #site-footer{display:block}.infinity-end.neverending #site-footer{margin:8rem 0 0}.infinite-loader{margin:5rem auto}.infinite-loader .spinner{margin:0 auto;right:inherit!important}#site-content #infinite-handle{margin:5rem auto;max-width:58rem;width:calc(100% - 8rem)}#site-content #infinite-handle span{background:100% 0;display:block;font-size:1.7rem;text-align:center}#site-content #infinite-handle span button,#site-content #infinite-handle span button:focus,#site-content #infinite-handle span button:hover{-webkit-appearance:none;-moz-appearance:none;border:none;background:#cd2653;border-radius:0;color:#fff;cursor:pointer;display:inline-block;font-size:1.5rem;font-weight:600;letter-spacing:.0333em;line-height:1.25;margin:0;opacity:1;padding:1.1em 1.44em;text-align:center;text-decoration:none;text-transform:uppercase;transition:opacity .15s linear}#site-content #infinite-handle span button:hover{text-decoration:underline}#site-content .infinite-wrap .hentry:first-of-type{padding:4rem 0 0}.entry-content #jp-relatedposts h3.jp-relatedposts-headline,.entry-content div.sharedaddy h3.sd-title,.entry-content h3.sd-title{font-size:2.8rem;font-weight:700;letter-spacing:-.016875em;line-height:1.5}@media (min-width:700px){.entry-content #jp-relatedposts h3.jp-relatedposts-headline,.entry-content div.sharedaddy h3.sd-title,.entry-content h3.sd-title{font-size:4rem}}.entry-content div.sharedaddy h3.sd-title:before,.entry-content h3.sd-title:before{border:0 none}.entry-content #jp-relatedposts h3.jp-relatedposts-headline em:before{border:0 none}.widget_authors ul{list-style:none;margin-right:0}.widget_authors li{margin-top:1rem;list-style:none}.widget_authors li:first-child{margin-top:2rem}.widget_flickr .flickr-size-thumbnail .flickr-images{justify-content:left}.widget_eu_cookie_law_widget #eu-cookie-law,.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.6rem;font-weight:500;padding:2rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.4rem;font-weight:600;letter-spacing:.0333em;line-height:1.25;padding:1.1em 1.44em;text-decoration:none;text-transform:uppercase;transition:opacity .15s linear}@media (max-width:600px){.widget_eu_cookie_law_widget #eu-cookie-law{font-size:1.4rem;padding:1.5rem 1.5rem 6.5rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.2rem;bottom:1.5rem;left:auto;right:1.5rem;padding:1rem;margin:0}}.entry-content #jp-relatedposts{max-width:120rem;margin:1em auto;width:calc(100% - 4rem)}@media (min-width:700px){.entry-content #jp-relatedposts{width:calc(100% - 8rem)}}#jp-relatedposts .jp-relatedposts-grid{display:flex;flex-grow:1;flex-basis:0;justify-content:space-between;box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,#jp-relatedposts .jp-relatedposts-post{width:calc(33% - 2rem);margin-right:0;margin-left:0}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-grid{flex-direction:column}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,#jp-relatedposts .jp-relatedposts-post{width:100%}}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-left:0}#jp-relatedposts#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:inherit;line-height:1.5}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img{width:100%}.entry-content .tiled-gallery{margin:0 auto 1.5em}.entry-content .jetpack-recipe{margin:1em auto}.jp-related-posts-i2__post li{margin:0}.wp-block-jetpack-gif{margin:1em auto!important}
\ No newline at end of file diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwenty.css b/plugins/jetpack/modules/theme-tools/compat/twentytwenty.css index 794c197e..6474bf35 100644 --- a/plugins/jetpack/modules/theme-tools/compat/twentytwenty.css +++ b/plugins/jetpack/modules/theme-tools/compat/twentytwenty.css @@ -2,6 +2,10 @@ * Infinite scroll */ +#infinite-footer { + z-index: 1; +} + /* Globally hidden elements when Infinite Scroll is supported and in use. */ .infinite-scroll .pagination-wrapper, .infinite-scroll.neverending .footer-nav-widgets-wrapper, @@ -16,8 +20,12 @@ display: block; } +.infinity-end.neverending #site-footer { + margin: 8rem 0 0; +} + .infinite-loader { - margin: calc(3 * 1rem) auto; + margin: 5rem auto; } .infinite-loader .spinner { @@ -26,7 +34,7 @@ } #site-content #infinite-handle { - margin: 0 auto; + margin: 5rem auto; max-width: 58rem; width: calc(100% - 8rem); } @@ -102,6 +110,7 @@ /* Authors widget */ .widget_authors ul { + list-style: none; margin-left: 0; } @@ -114,6 +123,11 @@ margin-top: 2rem; } +/* Flickr */ +.widget_flickr .flickr-size-thumbnail .flickr-images { + justify-content: left; +} + /* EU cookie law */ .widget_eu_cookie_law_widget #eu-cookie-law, .widget_eu_cookie_law_widget #eu-cookie-law .accept { @@ -207,6 +221,11 @@ width: 100%; } +/* Tiled Galleries in Classic Blocks */ +.entry-content .tiled-gallery { + margin: 0 auto 1.5em; +} + /** * Shortcodes */ diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwenty.php b/plugins/jetpack/modules/theme-tools/compat/twentytwenty.php index f1620e08..e7ea998f 100644 --- a/plugins/jetpack/modules/theme-tools/compat/twentytwenty.php +++ b/plugins/jetpack/modules/theme-tools/compat/twentytwenty.php @@ -8,6 +8,10 @@ /** * Add Jetpack extra functionality to Twenty Twenty. + * + * See: https://jetpack.com/support/infinite-scroll/ + * See: https://jetpack.com/support/responsive-videos/ + * See: https://jetpack.com/support/content-options/ */ function twentytwenty_jetpack_setup() { /** @@ -16,13 +20,40 @@ function twentytwenty_jetpack_setup() { add_theme_support( 'infinite-scroll', array( - 'type' => 'click', - 'container' => 'site-content', - 'render' => 'twentytwenty_infinite_scroll_render', - 'footer' => 'site-content', + 'type' => 'click', + 'container' => 'site-content', + 'render' => 'twentytwenty_infinite_scroll_render', + 'footer' => 'site-content', + 'footer_widgets' => array( + 'sidebar-1', + 'sidebar-2', + ), + ) + ); + + // Add theme support for Content Options. + add_theme_support( + 'jetpack-content-options', + array( + 'post-details' => array( + 'stylesheet' => 'twentytwenty-style', + 'date' => '.post-date', + 'categories' => '.entry-categories', + 'tags' => '.post-tags', + 'author' => '.post-author', + ), + 'featured-images' => array( + 'archive' => true, + 'post' => true, + 'page' => true, + 'fallback' => false, + ), ) ); + // Social Menu. + add_theme_support( 'jetpack-social-menu', 'svg' ); + /** * Add theme support for geo-location. */ @@ -129,4 +160,3 @@ function twentytwenty_infinity_accent_color_css() { wp_add_inline_style( 'twentytwenty-jetpack', $custom_css ); } add_action( 'wp_enqueue_scripts', 'twentytwenty_infinity_accent_color_css' ); - diff --git a/plugins/jetpack/modules/theme-tools/devicepx.php b/plugins/jetpack/modules/theme-tools/devicepx.php new file mode 100644 index 00000000..fb243e56 --- /dev/null +++ b/plugins/jetpack/modules/theme-tools/devicepx.php @@ -0,0 +1,37 @@ +<?php +/** + * Loads the devicepx library which improves the resolution of gravatars and + * wordpress.com uploads on hi-res and zoomed browsers. + * + * This feature will only be activated for themes that declare their support. + * This can be done by adding code similar to the following during the + * 'after_setup_theme' action: + * + * add_theme_support( 'jetpack-devicepx' ); + */ + +/** + * Enqueue the devicepx JS library, if enabled. The feature must + * be enabled earlier during `after_setup_theme`. + * + * @uses current_theme_supports, add_action + */ +function jetpack_devicepx_init() { + if ( current_theme_supports( 'jetpack-devicepx' ) ) { + add_action( 'wp_enqueue_scripts', 'jetpack_devicepx_enqueue' ); + add_action( 'customize_controls_enqueue_scripts', 'jetpack_devicepx_enqueue' ); + add_action( 'admin_enqueue_scripts', 'jetpack_devicepx_enqueue' ); + } +} + +// Use a late priority to ensure that plugins and themes can enable or disable this feature. +add_action( 'init', 'jetpack_devicepx_init', 99 ); + +/** + * Enqueue the devicepx JS library. + * + * @uses wp_enqueue_script + */ +function jetpack_devicepx_enqueue() { + wp_enqueue_script( 'devicepx', 'https://s0.wp.com/wp-content/js/devicepx-jetpack.js', array(), gmdate( 'oW' ), true ); +} diff --git a/plugins/jetpack/modules/videopress/utility-functions.php b/plugins/jetpack/modules/videopress/utility-functions.php index 989eaf52..e91f1b88 100644 --- a/plugins/jetpack/modules/videopress/utility-functions.php +++ b/plugins/jetpack/modules/videopress/utility-functions.php @@ -692,3 +692,37 @@ function videopress_get_attachment_url( $post_id ) { // If the URL is a string, return it. Otherwise, we shouldn't to avoid errors downstream, so null. return ( is_string( $return ) ) ? $return : null; } + +/** + * Converts VideoPress flash embeds into oEmbed-able URLs. + * + * Older VideoPress embed depended on Flash, which no longer work, + * so let us convert them to an URL that WordPress can oEmbed. + * + * Note that this file is always loaded via modules/module-extras.php and is not dependent on module status. + * + * @param string $content the content. + * @return string filtered content + */ +function jetpack_videopress_flash_embed_filter( $content ) { + $regex = '%<embed[^>]*+>(?:\s*</embed>)?%i'; + $content = preg_replace_callback( + $regex, + function( $matches, $orig_html = null ) { + $embed_code = $matches[0]; + $url_matches = array(); + + // get video ID from flash URL. + $url_matched = preg_match( '/src="http:\/\/v.wordpress.com\/([^"]+)"/', $embed_code, $url_matches ); + + if ( $url_matched ) { + $video_id = $url_matches[1]; + return "https://videopress.com/v/$video_id"; + } + }, + $content + ); + return $content; +} + +add_filter( 'the_content', 'jetpack_videopress_flash_embed_filter', 7 ); // Needs to be priority 7 to allow Core to oEmbed. diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions.php b/plugins/jetpack/modules/widget-visibility/widget-conditions.php index d049d368..32e7cd00 100644 --- a/plugins/jetpack/modules/widget-visibility/widget-conditions.php +++ b/plugins/jetpack/modules/widget-visibility/widget-conditions.php @@ -31,7 +31,7 @@ class Jetpack_Widget_Conditions { 'modules/widget-visibility/widget-conditions/widget-conditions.js' ), array( 'jquery', 'jquery-ui-core' ), - 20171227, + 20191128, true ); diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js index 0034b97b..66200dbf 100644 --- a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js +++ b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js @@ -3,7 +3,7 @@ jQuery( function( $ ) { var widgets_shell = $( 'div#widgets-right' ); - if ( ! widgets_shell.length || ! $( widgets_shell ).find( '.widget-control-actions' ).length ) { + if ( ! widgets_shell && ! widgets_shell.length ) { widgets_shell = $( 'form#customize-controls' ); } diff --git a/plugins/jetpack/modules/widgets/search.php b/plugins/jetpack/modules/widgets/search.php index 49cb9b7f..5cff02f4 100644 --- a/plugins/jetpack/modules/widgets/search.php +++ b/plugins/jetpack/modules/widgets/search.php @@ -13,7 +13,10 @@ use Automattic\Jetpack\Status; add_action( 'widgets_init', 'jetpack_search_widget_init' ); function jetpack_search_widget_init() { - if ( ! Jetpack::is_active() || ! Jetpack_Plan::supports( 'search' ) ) { + if ( + ! Jetpack::is_active() + || ( method_exists( 'Jetpack_Plan', 'supports' ) && ! Jetpack_Plan::supports( 'search' ) ) + ) { return; } @@ -312,7 +315,7 @@ class Jetpack_Search_Widget extends WP_Widget { $title = apply_filters( 'widget_title', $title, $instance, $this->id_base ); echo $args['before_widget']; - ?><div id="<?php echo esc_attr( $this->id ); ?>-wrapper" class="<?php + ?><div id="<?php echo esc_attr( $this->id ); ?>-wrapper" class="<?php echo Constants::is_true( 'JETPACK_SEARCH_PROTOTYPE' ) ? 'jetpack-instant-search-wrapper' : '' ?>"> <?php diff --git a/plugins/jetpack/modules/wordads/wordads.php b/plugins/jetpack/modules/wordads/wordads.php index 3fc03fb1..fee0520d 100644 --- a/plugins/jetpack/modules/wordads/wordads.php +++ b/plugins/jetpack/modules/wordads/wordads.php @@ -174,6 +174,7 @@ class WordAds { */ $ads_txt_content = apply_filters( 'wordads_ads_txt', $ads_txt_transient ); + http_response_code( 200 ); header( 'Content-Type: text/plain; charset=utf-8' ); echo esc_html( $ads_txt_content ); die(); diff --git a/plugins/jetpack/modules/wpcom-block-editor/class-jetpack-wpcom-block-editor.php b/plugins/jetpack/modules/wpcom-block-editor/class-jetpack-wpcom-block-editor.php index b40dd837..0ddaf7c4 100644 --- a/plugins/jetpack/modules/wpcom-block-editor/class-jetpack-wpcom-block-editor.php +++ b/plugins/jetpack/modules/wpcom-block-editor/class-jetpack-wpcom-block-editor.php @@ -41,9 +41,11 @@ class Jetpack_WPCOM_Block_Editor { } add_action( 'login_init', array( $this, 'allow_block_editor_login' ), 1 ); - add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_scripts' ), 9 ); - add_action( 'enqueue_block_assets', array( $this, 'enqueue_styles' ) ); + add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_editor_assets' ), 9 ); + add_action( 'enqueue_block_assets', array( $this, 'enqueue_block_assets' ) ); add_filter( 'mce_external_plugins', array( $this, 'add_tinymce_plugins' ) ); + + $this->enable_cross_site_auth_cookies(); } /** @@ -253,37 +255,32 @@ class Jetpack_WPCOM_Block_Editor { } /** - * Enqueue the scripts for the WordPress.com block editor integration. + * Enqueues the WordPress.com block editor integration assets for the editor. */ - public function enqueue_scripts() { + public function enqueue_block_editor_assets() { $debug = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG; $version = gmdate( 'Ymd' ); - $src_common = $debug - ? '//widgets.wp.com/wpcom-block-editor/common.js?minify=false' - : '//widgets.wp.com/wpcom-block-editor/common.min.js'; - wp_enqueue_script( - 'wpcom-block-editor-common', - $src_common, + 'wpcom-block-editor-default-editor-script', + $debug + ? '//widgets.wp.com/wpcom-block-editor/default.editor.js?minify=false' + : '//widgets.wp.com/wpcom-block-editor/default.editor.min.js', array( 'jquery', 'lodash', - 'wp-blocks', 'wp-compose', 'wp-data', - 'wp-dom-ready', 'wp-editor', - 'wp-nux', - 'wp-plugins', - 'wp-polyfill', + 'wp-element', 'wp-rich-text', ), $version, true ); + wp_localize_script( - 'wpcom-block-editor-common', + 'wpcom-block-editor-default-editor-script', 'wpcomGutenberg', array( 'switchToClassic' => array( @@ -298,14 +295,30 @@ class Jetpack_WPCOM_Block_Editor { ) ); - if ( $this->is_iframed_block_editor() ) { - $src_calypso_iframe_bridge = $debug - ? '//widgets.wp.com/wpcom-block-editor/calypso-iframe-bridge-server.js?minify=false' - : '//widgets.wp.com/wpcom-block-editor/calypso-iframe-bridge-server.min.js'; + if ( jetpack_is_atomic_site() ) { + wp_enqueue_script( + 'wpcom-block-editor-wpcom-editor-script', + $debug + ? '//widgets.wp.com/wpcom-block-editor/wpcom.editor.js?minify=false' + : '//widgets.wp.com/wpcom-block-editor/wpcom.editor.min.js', + array( + 'lodash', + 'wp-blocks', + 'wp-data', + 'wp-dom-ready', + 'wp-plugins', + ), + $version, + true + ); + } + if ( $this->is_iframed_block_editor() ) { wp_enqueue_script( - 'wpcom-block-editor-calypso-iframe-bridge', - $src_calypso_iframe_bridge, + 'wpcom-block-editor-calypso-editor-script', + $debug + ? '//widgets.wp.com/wpcom-block-editor/calypso.editor.js?minify=false' + : '//widgets.wp.com/wpcom-block-editor/calypso.editor.min.js', array( 'calypsoify_wpadminmods_js', 'jquery', @@ -314,43 +327,31 @@ class Jetpack_WPCOM_Block_Editor { 'wp-blocks', 'wp-data', 'wp-hooks', - 'wp-polyfill', 'wp-tinymce', 'wp-url', ), $version, true ); + + wp_enqueue_style( + 'wpcom-block-editor-calypso-editor-styles', + $debug + ? '//widgets.wp.com/wpcom-block-editor/calypso.editor.css?minify=false' + : '//widgets.wp.com/wpcom-block-editor/calypso.editor.min.css', + array(), + $version + ); } } /** - * Enqueue WP.com block editor common styles. + * Enqueues the WordPress.com block editor integration assets for both editor and front-end. */ - public function enqueue_styles() { - // Enqueue only for the block editor in WP Admin. - global $pagenow; - if ( is_admin() && ! in_array( $pagenow, array( 'post.php', 'post-new.php' ), true ) ) { - return; - } - - // Enqueue on the front-end only if justified blocks are present. - if ( ! is_admin() && ! $this->has_justified_block() ) { - return; - } - - $debug = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG; - $version = gmdate( 'Ymd' ); - - $src_styles = $debug - ? '//widgets.wp.com/wpcom-block-editor/common.css?minify=false' - : '//widgets.wp.com/wpcom-block-editor/common.min.css'; - wp_enqueue_style( - 'wpcom-block-editor-styles', - $src_styles, - array(), - $version - ); + public function enqueue_block_assets() { + // These styles are manually copied from //widgets.wp.com/wpcom-block-editor/default.view.css in order to + // improve the performance by avoiding an extra network request to download the CSS file on every page. + wp_add_inline_style( 'wp-block-library', '.has-text-align-justify{text-align:justify;}' ); } /** @@ -379,20 +380,207 @@ class Jetpack_WPCOM_Block_Editor { */ public function add_tinymce_plugins( $plugin_array ) { if ( $this->is_iframed_block_editor() ) { - $debug = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG; - $src_calypso_tinymce = $debug - ? '//widgets.wp.com/wpcom-block-editor/calypso-tinymce.js?minify=false' - : '//widgets.wp.com/wpcom-block-editor/calypso-tinymce.min.js'; + $debug = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG; $plugin_array['gutenberg-wpcom-iframe-media-modal'] = add_query_arg( 'v', gmdate( 'YW' ), - $src_calypso_tinymce + $debug + ? '//widgets.wp.com/wpcom-block-editor/calypso.tinymce.js?minify=false' + : '//widgets.wp.com/wpcom-block-editor/calypso.tinymce.min.js' ); } return $plugin_array; } + + /** + * Ensures the authentication cookies are designated for cross-site access. + */ + private function enable_cross_site_auth_cookies() { + /** + * Allow plugins to disable the cross-site auth cookies. + * + * @since 8.1.1 + * + * @param false bool Whether auth cookies should be disabled for cross-site access. False by default. + */ + if ( apply_filters( 'jetpack_disable_cross_site_auth_cookies', false ) ) { + return; + } + + add_action( 'set_auth_cookie', array( $this, 'set_samesite_auth_cookies' ), 10, 5 ); + add_action( 'set_logged_in_cookie', array( $this, 'set_samesite_logged_in_cookies' ), 10, 4 ); + add_action( 'clear_auth_cookie', array( $this, 'clear_auth_cookies' ) ); + add_filter( 'send_auth_cookies', array( $this, 'disable_core_auth_cookies' ) ); + } + + /** + * Gets the SameSite attribute to use in auth cookies. + * + * @param bool $secure Whether the connection is secure. + * @return string SameSite attribute to use on auth cookies. + */ + public function get_samesite_attr_for_auth_cookies( $secure ) { + $samesite = $secure ? 'None' : 'Lax'; + /** + * Filters the SameSite attribute to use in auth cookies. + * + * @param string $samesite SameSite attribute to use in auth cookies. + * + * @since 8.1.1 + */ + $samesite = apply_filters( 'jetpack_auth_cookie_samesite', $samesite ); + + return $samesite; + } + + /** + * Generates cross-site auth cookies so they can be accessed by WordPress.com. + * + * @param string $auth_cookie Authentication cookie value. + * @param int $expire The time the login grace period expires as a UNIX timestamp. + * Default is 12 hours past the cookie's expiration time. + * @param int $expiration The time when the authentication cookie expires as a UNIX timestamp. + * Default is 14 days from now. + * @param int $user_id User ID. + * @param string $scheme Authentication scheme. Values include 'auth' or 'secure_auth'. + */ + public function set_samesite_auth_cookies( $auth_cookie, $expire, $expiration, $user_id, $scheme ) { + if ( wp_startswith( $scheme, 'secure_' ) ) { + $secure = true; + $auth_cookie_name = SECURE_AUTH_COOKIE; + } else { + $secure = false; + $auth_cookie_name = AUTH_COOKIE; + } + $samesite = $this->get_samesite_attr_for_auth_cookies( $secure ); + + jetpack_shim_setcookie( + $auth_cookie_name, + $auth_cookie, + array( + 'expires' => $expire, + 'path' => PLUGINS_COOKIE_PATH, + 'domain' => COOKIE_DOMAIN, + 'secure' => $secure, + 'httponly' => true, + 'samesite' => $samesite, + ) + ); + + jetpack_shim_setcookie( + $auth_cookie_name, + $auth_cookie, + array( + 'expires' => $expire, + 'path' => ADMIN_COOKIE_PATH, + 'domain' => COOKIE_DOMAIN, + 'secure' => $secure, + 'httponly' => true, + 'samesite' => $samesite, + ) + ); + } + + /** + * Generates cross-site logged in cookies so they can be accessed by WordPress.com. + * + * @param string $logged_in_cookie The logged-in cookie value. + * @param int $expire The time the login grace period expires as a UNIX timestamp. + * Default is 12 hours past the cookie's expiration time. + * @param int $expiration The time when the logged-in cookie expires as a UNIX timestamp. + * Default is 14 days from now. + * @param int $user_id User ID. + */ + public function set_samesite_logged_in_cookies( $logged_in_cookie, $expire, $expiration, $user_id ) { + $secure = is_ssl(); + + // Front-end cookie is secure when the auth cookie is secure and the site's home URL is forced HTTPS. + $secure_logged_in_cookie = $secure && 'https' === wp_parse_url( get_option( 'home' ), PHP_URL_SCHEME ); + + /** This filter is documented in core/src/wp-includes/pluggable.php */ + $secure = apply_filters( 'secure_auth_cookie', $secure, $user_id ); + + /** This filter is documented in core/src/wp-includes/pluggable.php */ + $secure_logged_in_cookie = apply_filters( 'secure_logged_in_cookie', $secure_logged_in_cookie, $user_id, $secure ); + + $samesite = $this->get_samesite_attr_for_auth_cookies( $secure_logged_in_cookie ); + + jetpack_shim_setcookie( + LOGGED_IN_COOKIE, + $logged_in_cookie, + array( + 'expires' => $expire, + 'path' => COOKIEPATH, + 'domain' => COOKIE_DOMAIN, + 'secure' => $secure_logged_in_cookie, + 'httponly' => true, + 'samesite' => $samesite, + ) + ); + + if ( COOKIEPATH !== SITECOOKIEPATH ) { + jetpack_shim_setcookie( + LOGGED_IN_COOKIE, + $logged_in_cookie, + array( + 'expires' => $expire, + 'path' => SITECOOKIEPATH, + 'domain' => COOKIE_DOMAIN, + 'secure' => $secure_logged_in_cookie, + 'httponly' => true, + 'samesite' => $samesite, + ) + ); + } + } + + /** + * Prevents the default core auth cookies from being generated so they don't collide with our cross-site cookies. + * + * @return bool Whether the default core auth cookies should be generated. + */ + public function disable_core_auth_cookies() { + return false; + } + + /** + * Removes all of the cookies associated with authentication. + * + * This is copied from core's `wp_clear_auth_cookie` since disabling the core auth cookies prevents also the auth + * cookies from being cleared. + * + * @see wp_clear_auth_cookie + */ + public function clear_auth_cookies() { + // Auth cookies. + setcookie( AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, ADMIN_COOKIE_PATH, COOKIE_DOMAIN ); + setcookie( SECURE_AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, ADMIN_COOKIE_PATH, COOKIE_DOMAIN ); + setcookie( AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, PLUGINS_COOKIE_PATH, COOKIE_DOMAIN ); + setcookie( SECURE_AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, PLUGINS_COOKIE_PATH, COOKIE_DOMAIN ); + setcookie( LOGGED_IN_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN ); + setcookie( LOGGED_IN_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN ); + + // Settings cookies. + setcookie( 'wp-settings-' . get_current_user_id(), ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH ); + setcookie( 'wp-settings-time-' . get_current_user_id(), ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH ); + + // Old cookies. + setcookie( AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN ); + setcookie( AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN ); + setcookie( SECURE_AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN ); + setcookie( SECURE_AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN ); + + // Even older cookies. + setcookie( USER_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN ); + setcookie( PASS_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN ); + setcookie( USER_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN ); + setcookie( PASS_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN ); + + // Post password cookie. + setcookie( 'wp-postpass_' . COOKIEHASH, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN ); + } } Jetpack_WPCOM_Block_Editor::init(); |