PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.1
16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 All 504 releases
← All changes | modules/subscriptions/views.php +110 -69 12.5.216.3-a.1 View file →
@@ -1,8 +1,14 @@
1 1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 2
3 3 // phpcs:disable Universal.Files.SeparateFunctionsFromOO.Mixed -- TODO: Move classes to appropriately-named class files.
4 4
5 +use Automattic\Jetpack\Assets;
6 +
7 +if ( ! defined( 'ABSPATH' ) ) {
8 + exit( 0 );
9 +}
10 +
5 11 /**
6 12 * Jetpack_Subscriptions_Widget main view class.
7 13 */
8 14 class Jetpack_Subscriptions_Widget extends WP_Widget {
@@ -64,14 +70,16 @@
64 70 $name,
65 71 $widget_ops
66 72 );
67 73
68 - if ( self::is_jetpack() &&
69 - (
74 + if (
75 + self::is_jetpack()
76 + && (
70 77 is_active_widget( false, false, $this->id_base ) ||
71 78 is_active_widget( false, false, 'monster' ) ||
72 79 is_customize_preview()
73 80 )
81 + && ! wp_is_block_theme()
74 82 ) {
75 83 add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ) );
76 84 }
77 85
@@ -94,15 +102,28 @@
94 102 *
95 103 * @since 4.5.0
96 104 */
97 105 public function enqueue_style() {
98 - wp_register_style(
106 + $path = Assets::get_file_url_for_environment(
107 + '_inc/build/subscriptions/subscriptions.min.css',
108 + 'modules/subscriptions/subscriptions.css'
109 + );
110 +
111 + wp_enqueue_style(
99 112 'jetpack-subscriptions',
100 - plugins_url( 'subscriptions.css', __FILE__ ),
113 + $path,
101 114 array(),
102 115 JETPACK__VERSION
103 116 );
104 - wp_enqueue_style( 'jetpack-subscriptions' );
117 +
118 + // `wp_maybe_inline_styles()` requires a filesystem path, not a URL.
119 + $style_path = JETPACK__PLUGIN_DIR . (
120 + /** This filter is documented in projects/plugins/jetpack/load-jetpack.php */
121 + apply_filters( 'jetpack_should_use_minified_assets', true )
122 + ? '_inc/build/subscriptions/subscriptions.min.css'
123 + : 'modules/subscriptions/subscriptions.css'
124 + );
125 + wp_style_add_data( 'jetpack-subscriptions', 'path', $style_path );
105 126 }
106 127
107 128 /**
108 129 * Renders a full widget either within the context of WordPress widget, or in response to a shortcode.
@@ -110,10 +131,17 @@
110 131 * @param array $args Display arguments including 'before_title', 'after_title', 'before_widget', and 'after_widget'.
111 132 * @param array $instance The settings for the particular instance of the widget.
112 133 */
113 134 public function widget( $args, $instance ) {
135 + if ( self::is_wpcom() && ! self::wpcom_has_status_message() && self::is_current_user_subscribed() ) {
136 + return null;
137 + }
138 +
139 + // Enqueue styles.
140 + self::enqueue_style();
141 +
114 142 if ( self::is_jetpack() &&
115 - /** This filter is documented in modules/contact-form/grunion-contact-form.php */
143 + /** This filter is documented in \Automattic\Jetpack\Forms\ContactForm\Contact_Form */
116 144 false === apply_filters( 'jetpack_auto_fill_logged_in_user', false )
117 145 ) {
118 146 $subscribe_email = '';
119 147 } else {
@@ -128,10 +156,10 @@
128 156 $stats_action = self::is_jetpack() ? 'jetpack_subscriptions' : 'follow_blog';
129 157 /** This action is documented in modules/widgets/gravatar-profile.php */
130 158 do_action( 'jetpack_stats_extra', 'widget_view', $stats_action );
131 159
132 - $after_widget = isset( $args['after_widget'] ) ? $args['after_widget'] : '';
133 - $before_widget = isset( $args['before_widget'] ) ? $args['before_widget'] : '';
160 + $after_widget = $args['after_widget'] ?? '';
161 + $before_widget = $args['before_widget'] ?? '';
134 162 $instance = wp_parse_args( (array) $instance, static::defaults() );
135 163
136 164 echo $before_widget; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
137 165
@@ -153,22 +181,42 @@
153 181 * @param array $instance The settings for the particular instance of the widget.
154 182 */
155 183 public static function render_widget_title( $args, $instance ) {
156 184 $show_only_email_and_button = $instance['show_only_email_and_button'];
157 - $before_title = isset( $args['before_title'] ) ? $args['before_title'] : '';
158 - $after_title = isset( $args['after_title'] ) ? $args['after_title'] : '';
185 + $before_title = $args['before_title'] ?? '';
186 + $after_title = $args['after_title'] ?? '';
159 187 if ( self::is_wpcom() && ! $show_only_email_and_button ) {
160 188 if ( self::is_current_user_subscribed() ) {
161 189 if ( ! empty( $instance['title_following'] ) ) {
162 - echo $before_title . '<label for="subscribe-field' . ( self::$instance_count > 1 ? '-' . self::$instance_count : '' ) . '">' . esc_attr( $instance['title_following'] ) . '</label>' . $after_title . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
190 + printf(
191 + '%1$s<label for="subscribe-field%2$s">%3$s</label>%4$s%5$s',
192 + $before_title, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
193 + ( self::$instance_count > 1 ? '-' . (int) self::$instance_count : '' ),
194 + esc_html( $instance['title_following'] ),
195 + $after_title, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
196 + "\n"
197 + );
163 198 }
164 199 } elseif ( ! empty( $instance['title'] ) ) {
165 - echo $before_title . '<label for="subscribe-field' . ( self::$instance_count > 1 ? '-' . self::$instance_count : '' ) . '">' . $instance['title'] . '</label>' . $after_title . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
200 + printf(
201 + '%1$s<label for="subscribe-field%2$s">%3$s</label>%4$s%5$s',
202 + $before_title, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
203 + ( self::$instance_count > 1 ? '-' . (int) self::$instance_count : '' ),
204 + esc_html( $instance['title'] ),
205 + $after_title, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
206 + "\n"
207 + );
166 208 }
167 209 }
168 210
169 211 if ( self::is_jetpack() && empty( $instance['show_only_email_and_button'] ) ) {
170 - echo $args['before_title'] . $instance['title'] . $args['after_title'] . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
212 + printf(
213 + '%1$s%2$s%3$s%4$s',
214 + $before_title, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
215 + esc_html( $instance['title'] ),
216 + $after_title, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
217 + "\n"
218 + );
171 219 }
172 220 }
173 221
174 222 /**
@@ -334,9 +382,9 @@
334 382 $show_only_email_and_button = $instance['show_only_email_and_button'];
335 383 $show_subscribers_total = (bool) $instance['show_subscribers_total'];
336 384 $subscribers_total = self::fetch_subscriber_count();
337 385 $subscribe_text = empty( $instance['show_only_email_and_button'] ) ?
338 - stripslashes( $instance['subscribe_text'] ) :
386 + wp_kses_post( stripslashes( $instance['subscribe_text'] ) ) :
339 387 false;
340 388 $referer = esc_url_raw( ( is_ssl() ? 'https' : 'http' ) . '://' . ( isset( $_SERVER['HTTP_HOST'] ) ? wp_unslash( $_SERVER['HTTP_HOST'] ) : '' ) . ( isset( $_SERVER['REQUEST_URI'] ) ? wp_unslash( $_SERVER['REQUEST_URI'] ) : '' ) );
341 389 $source = 'widget';
342 390 $widget_id = ! empty( $args['widget_id'] ) ? $args['widget_id'] : self::$instance_count;
@@ -342,12 +390,12 @@
342 390 $widget_id = ! empty( $args['widget_id'] ) ? $args['widget_id'] : self::$instance_count;
343 391 $subscribe_button = ! empty( $instance['submit_button_text'] ) ? $instance['submit_button_text'] : $instance['subscribe_button'];
344 392 $subscribe_placeholder = isset( $instance['subscribe_placeholder'] ) ? stripslashes( $instance['subscribe_placeholder'] ) : '';
345 393 $submit_button_classes = isset( $instance['submit_button_classes'] ) ? 'wp-block-button__link ' . $instance['submit_button_classes'] : 'wp-block-button__link';
346 - $submit_button_styles = isset( $instance['submit_button_styles'] ) ? $instance['submit_button_styles'] : '';
347 - $submit_button_wrapper_styles = isset( $instance['submit_button_wrapper_styles'] ) ? $instance['submit_button_wrapper_styles'] : '';
348 - $email_field_classes = isset( $instance['email_field_classes'] ) ? $instance['email_field_classes'] : '';
349 - $email_field_styles = isset( $instance['email_field_styles'] ) ? $instance['email_field_styles'] : '';
394 + $submit_button_styles = $instance['submit_button_styles'] ?? '';
395 + $submit_button_wrapper_styles = $instance['submit_button_wrapper_styles'] ?? '';
396 + $email_field_classes = $instance['email_field_classes'] ?? '';
397 + $email_field_styles = $instance['email_field_styles'] ?? '';
350 398
351 399 // We need to include those in case Jetpack blocks are disabled
352 400 require_once JETPACK__PLUGIN_DIR . 'modules/memberships/class-jetpack-memberships.php';
353 401 require_once JETPACK__PLUGIN_DIR . 'extensions/blocks/premium-content/_inc/subscription-service/include.php';
@@ -393,8 +441,9 @@
393 441 printf(
394 442 '<input
395 443 type="email"
396 444 name="email"
445 + autocomplete="email"
397 446 %1$s
398 447 style="%2$s"
399 448 placeholder="%3$s"
400 449 value=""
@@ -442,13 +491,12 @@
442 491 ?>
443 492 </button>
444 493 </p>
445 494 </form>
446 - <?php if ( $show_subscribers_total && $subscribers_total ) { ?>
495 + <?php if ( $show_subscribers_total && $subscribers_total > 0 ) { ?>
447 496 <div class="wp-block-jetpack-subscriptions__subscount">
448 497 <?php
449 - /* translators: %s: number of folks following the blog */
450 - echo esc_html( sprintf( _n( 'Join %s other subscriber', 'Join %s other subscribers', $subscribers_total, 'jetpack' ), number_format_i18n( $subscribers_total ) ) );
498 + echo esc_html( Jetpack_Memberships::get_join_others_text( $subscribers_total ) );
451 499 ?>
452 500 </div>
453 501 <?php } ?>
454 502 </div>
@@ -488,9 +536,9 @@
488 536 class="screen-reader-text"
489 537 for="<?php echo esc_attr( $subscribe_field_id . '-' . $widget_id ); ?>">
490 538 <?php echo ! empty( $subscribe_placeholder ) ? esc_html( $subscribe_placeholder ) : esc_html__( 'Email Address:', 'jetpack' ); ?>
491 539 </label>
492 - <input type="email" name="email" required="required"
540 + <input type="email" name="email" autocomplete="email" required="required"
493 541 <?php if ( ! empty( $email_field_classes ) ) { ?>
494 542 class="<?php echo esc_attr( $email_field_classes ); ?> required"
495 543 <?php } ?>
496 544 <?php if ( ! empty( $email_field_styles ) ) { ?>
@@ -510,13 +558,9 @@
510 558 <input type="hidden" name="action" value="subscribe"/>
511 559 <input type="hidden" name="source" value="<?php echo esc_url( $referer ); ?>"/>
512 560 <input type="hidden" name="sub-type" value="<?php echo esc_attr( $source ); ?>"/>
513 561 <input type="hidden" name="redirect_fragment" value="<?php echo esc_attr( $form_id ); ?>"/>
514 - <?php
515 - if ( is_user_logged_in() ) {
516 - wp_nonce_field( 'blogsub_subscribe_' . get_current_blog_id(), '_wpnonce', false );
517 - }
518 - ?>
562 + <?php wp_nonce_field( 'blogsub_subscribe_' . \Jetpack_Options::get_option( 'id' ) ); ?>
519 563 <button type="submit"
520 564 <?php if ( ! empty( $submit_button_classes ) ) { ?>
521 565 class="<?php echo esc_attr( $submit_button_classes ); ?>"
522 566 <?php } ?>
@@ -537,10 +581,9 @@
537 581 </form>
538 582 <?php if ( $show_subscribers_total && 0 < $subscribers_total ) { ?>
539 583 <div class="wp-block-jetpack-subscriptions__subscount">
540 584 <?php
541 - /* translators: %s: number of folks following the blog */
542 - echo esc_html( sprintf( _n( 'Join %s other subscriber', 'Join %s other subscribers', $subscribers_total, 'jetpack' ), number_format_i18n( $subscribers_total ) ) );
585 + echo esc_html( Jetpack_Memberships::get_join_others_text( $subscribers_total ) );
543 586 ?>
544 587 </div>
545 588 <?php } ?>
546 589 </div>
@@ -622,9 +665,9 @@
622 665 $subs_count = array(
623 666 'status' => 'failed',
624 667 'code' => $xml->getErrorCode(),
625 668 'message' => $xml->getErrorMessage(),
626 - 'value' => ( isset( $subs_count['value'] ) ) ? $subs_count['value'] : 0,
669 + 'value' => $subs_count['value'] ?? 0,
627 670 );
628 671 } else {
629 672 $subs_count = array(
630 673 'status' => 'success',
@@ -650,27 +693,28 @@
650 693 *
651 694 * @return array
652 695 */
653 696 public function update( $new_instance, $old_instance ) {
654 - $instance = $old_instance;
697 + // Merge new values over old, then fill in any missing keys with defaults
698 + $instance = wp_parse_args( (array) $new_instance, wp_parse_args( (array) $old_instance, static::defaults() ) );
655 699
656 700 if ( self::is_jetpack() ) {
657 - $instance['title'] = wp_kses( stripslashes( $new_instance['title'] ), array() );
658 - $instance['subscribe_placeholder'] = wp_kses( stripslashes( $new_instance['subscribe_placeholder'] ), array() );
659 - $instance['subscribe_button'] = wp_kses( stripslashes( $new_instance['subscribe_button'] ), array() );
660 - $instance['success_message'] = wp_kses( stripslashes( $new_instance['success_message'] ), array() );
701 + $instance['title'] = wp_kses( stripslashes( $instance['title'] ), array() );
702 + $instance['subscribe_placeholder'] = wp_kses( stripslashes( $instance['subscribe_placeholder'] ), array() );
703 + $instance['subscribe_button'] = wp_kses( stripslashes( $instance['subscribe_button'] ), array() );
704 + $instance['success_message'] = wp_kses( stripslashes( $instance['success_message'] ), array() );
661 705 }
662 706
663 707 if ( self::is_wpcom() ) {
664 - $instance['title'] = wp_strip_all_tags( stripslashes( $new_instance['title'] ) );
665 - $instance['title_following'] = wp_strip_all_tags( stripslashes( $new_instance['title_following'] ) );
666 - $instance['subscribe_logged_in'] = wp_filter_post_kses( stripslashes( $new_instance['subscribe_logged_in'] ) );
667 - $instance['subscribe_button'] = wp_strip_all_tags( stripslashes( $new_instance['subscribe_button'] ) );
708 + $instance['title'] = wp_strip_all_tags( stripslashes( $instance['title'] ) );
709 + $instance['title_following'] = isset( $instance['title_following'] ) ? wp_strip_all_tags( stripslashes( $instance['title_following'] ) ) : '';
710 + $instance['subscribe_logged_in'] = isset( $instance['subscribe_logged_in'] ) ? wp_filter_post_kses( stripslashes( $instance['subscribe_logged_in'] ) ) : '';
711 + $instance['subscribe_button'] = wp_strip_all_tags( stripslashes( $instance['subscribe_button'] ) );
668 712 }
669 713
670 714 $instance['show_subscribers_total'] = isset( $new_instance['show_subscribers_total'] ) && $new_instance['show_subscribers_total'];
671 715 $instance['show_only_email_and_button'] = isset( $new_instance['show_only_email_and_button'] ) && $new_instance['show_only_email_and_button'];
672 - $instance['subscribe_text'] = wp_filter_post_kses( stripslashes( $new_instance['subscribe_text'] ) );
716 + $instance['subscribe_text'] = wp_filter_post_kses( stripslashes( $instance['subscribe_text'] ) );
673 717
674 718 return $instance;
675 719 }
676 720
@@ -689,9 +733,9 @@
689 733 $defaults['title'] = esc_html__( 'Subscribe to Blog via Email', 'jetpack' );
690 734 $defaults['subscribe_text'] = esc_html__( 'Enter your email address to subscribe to this blog and receive notifications of new posts by email.', 'jetpack' );
691 735 $defaults['subscribe_placeholder'] = esc_html__( 'Email Address', 'jetpack' );
692 736 $defaults['subscribe_button'] = esc_html__( 'Subscribe', 'jetpack' );
693 - $defaults['success_message'] = esc_html__( "Success! An email was just sent to confirm your subscription. Please find the email now and click 'Confirm Follow' to start subscribing.", 'jetpack' );
737 + $defaults['success_message'] = esc_html__( "Success! An email was just sent to confirm your subscription. Please find the email now and click 'Confirm' to start subscribing.", 'jetpack' );
694 738
695 739 return $defaults;
696 740 }
697 741
@@ -698,8 +742,9 @@
698 742 /**
699 743 * Renders the widget's options form in wp-admin.
700 744 *
701 745 * @param array $instance Widget instance.
746 + * @return string|void
702 747 */
703 748 public function form( $instance ) {
704 749 $instance = wp_parse_args( (array) $instance, static::defaults() );
705 750 $show_subscribers_total = checked( $instance['show_subscribers_total'], true, false );
@@ -704,26 +749,14 @@
704 749 $instance = wp_parse_args( (array) $instance, static::defaults() );
705 750 $show_subscribers_total = checked( $instance['show_subscribers_total'], true, false );
706 751
707 752 if ( self::is_wpcom() ) {
708 - $title = esc_attr( stripslashes( $instance['title'] ) );
709 - $title_following = esc_attr( stripslashes( $instance['title_following'] ) );
710 - $subscribe_text = esc_attr( stripslashes( $instance['subscribe_text'] ) );
711 - $subscribe_logged_in = esc_attr( stripslashes( $instance['subscribe_logged_in'] ) );
712 - $subscribe_button = esc_attr( stripslashes( $instance['subscribe_button'] ) );
753 + $title = ! empty( $instance['title'] ) ? esc_attr( stripslashes( $instance['title'] ) ) : '';
754 + $title_following = ! empty( $instance['title_following'] ) ? esc_attr( stripslashes( $instance['title_following'] ) ) : '';
755 + $subscribe_text = ! empty( $instance['subscribe_text'] ) ? esc_attr( stripslashes( $instance['subscribe_text'] ) ) : '';
756 + $subscribe_logged_in = ! empty( $instance['subscribe_logged_in'] ) ? esc_attr( stripslashes( $instance['subscribe_logged_in'] ) ) : '';
757 + $subscribe_button = ! empty( $instance['subscribe_button'] ) ? esc_attr( stripslashes( $instance['subscribe_button'] ) ) : '';
713 758 $subscribers_total = self::fetch_subscriber_count();
714 - }
715 -
716 - if ( self::is_jetpack() ) {
717 - $title = stripslashes( $instance['title'] );
718 - $subscribe_text = stripslashes( $instance['subscribe_text'] );
719 - $subscribe_placeholder = stripslashes( $instance['subscribe_placeholder'] );
720 - $subscribe_button = stripslashes( $instance['subscribe_button'] );
721 - $success_message = stripslashes( $instance['success_message'] );
722 - $subscribers_total = self::fetch_subscriber_count();
723 - }
724 -
725 - if ( self::is_wpcom() ) :
726 759 ?>
727 760 <p>
728 761 <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>">
729 762 <?php esc_html_e( 'Widget title for non-followers:', 'jetpack' ); ?>
@@ -775,11 +808,17 @@
775 808 ?>
776 809 </label>
777 810 </p>
778 811 <?php
779 - endif;
812 + }
780 813
781 - if ( self::is_jetpack() ) :
814 + if ( self::is_jetpack() ) {
815 + $title = ! empty( $instance['title'] ) ? stripslashes( $instance['title'] ) : '';
816 + $subscribe_text = ! empty( $instance['subscribe_text'] ) ? stripslashes( $instance['subscribe_text'] ) : '';
817 + $subscribe_placeholder = ! empty( $instance['subscribe_placeholder'] ) ? stripslashes( $instance['subscribe_placeholder'] ) : '';
818 + $subscribe_button = ! empty( $instance['subscribe_button'] ) ? stripslashes( $instance['subscribe_button'] ) : '';
819 + $success_message = ! empty( $instance['success_message'] ) ? stripslashes( $instance['success_message'] ) : '';
820 + $subscribers_total = self::fetch_subscriber_count();
782 821 ?>
783 822 <p>
784 823 <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>">
785 824 <?php esc_html_e( 'Widget title:', 'jetpack' ); ?>
@@ -831,13 +870,13 @@
831 870 ?>
832 871 </label>
833 872 </p>
834 873 <?php
835 - endif;
874 + }
836 875 }
837 876 }
838 877
839 -if ( defined( 'IS_WPCOM' ) && IS_WPCOM && function_exists( 'class_alias' ) ) {
878 +if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
840 879 class_alias( 'Jetpack_Subscriptions_Widget', 'Blog_Subscription_Widget' );
841 880 }
842 881
843 882 /**
@@ -873,14 +912,14 @@
873 912 } else {
874 913 $instance['include_social_followers'] = false;
875 914 }
876 915
877 - $show_only_email_and_button = isset( $instance['show_only_email_and_button'] ) ? $instance['show_only_email_and_button'] : false;
878 - $submit_button_text = isset( $instance['submit_button_text'] ) ? $instance['submit_button_text'] : '';
916 + $show_only_email_and_button = $instance['show_only_email_and_button'] ?? false;
917 + $submit_button_text = $instance['submit_button_text'] ?? '';
879 918
880 919 // Build up a string with the submit button's classes and styles and set it on the instance.
881 - $submit_button_classes = isset( $instance['submit_button_classes'] ) ? $instance['submit_button_classes'] : '';
882 - $email_field_classes = isset( $instance['email_field_classes'] ) ? $instance['email_field_classes'] : '';
920 + $submit_button_classes = $instance['submit_button_classes'] ?? '';
921 + $email_field_classes = $instance['email_field_classes'] ?? '';
883 922 $style = '';
884 923 $submit_button_styles = '';
885 924 $submit_button_wrapper_styles = '';
886 925 $email_field_styles = '';
@@ -916,11 +955,11 @@
916 955 }
917 956 if ( isset( $instance['custom_padding'] ) && 'undefined' !== $instance['custom_padding'] ) {
918 957 $style = 'padding: ' .
919 958 $instance['custom_padding'] . 'px ' .
920 - round( $instance['custom_padding'] * 1.5 ) . 'px ' .
959 + round( floatval( $instance['custom_padding'] ) * 1.5 ) . 'px ' .
921 960 $instance['custom_padding'] . 'px ' .
922 - round( $instance['custom_padding'] * 1.5 ) . 'px; ';
961 + round( floatval( $instance['custom_padding'] ) * 1.5 ) . 'px; ';
923 962
924 963 $submit_button_styles .= $style;
925 964 $email_field_styles .= $style;
926 965 }
@@ -931,9 +970,9 @@
931 970 }
932 971 if ( isset( $instance['button_on_newline'] ) && 'true' === $instance['button_on_newline'] ) {
933 972 $submit_button_styles .= 'margin-top: ' . $button_spacing . 'px; ';
934 973 } else {
935 - $submit_button_styles .= 'margin: 0px; '; // Reset Safari's 2px default margin for buttons affecting input and button union
974 + $submit_button_styles .= 'margin: 0; '; // Reset Safari's 2px default margin for buttons affecting input and button union
936 975 $submit_button_styles .= 'margin-left: ' . $button_spacing . 'px; ';
937 976 }
938 977
939 978 if ( isset( $instance['custom_border_radius'] ) && 'undefined' !== $instance['custom_border_radius'] ) {
@@ -1032,8 +1071,10 @@
1032 1071 return array(
1033 1072 /* translators: Both %1$s and %2$s is site address */
1034 1073 'invitation' => sprintf( __( "Howdy,\nYou recently subscribed to <a href='%1\$s'>%2\$s</a> and we need to verify the email you provided. Once you confirm below, you'll be able to receive and read new posts.\n\nIf you believe this is an error, ignore this message and nothing more will happen.", 'jetpack' ), $site_url, $display_url ),
1035 1074 'comment_follow' => __( "Howdy.\n\nYou recently followed one of my posts. This means you will receive an email when new comments are posted.\n\nTo activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.", 'jetpack' ),
1075 + /* translators: %1$s is the site address */
1076 + 'welcome' => sprintf( __( 'Cool, you are now subscribed to %1$s and will receive an email notification when a new post is published.', 'jetpack' ), $display_url ),
1036 1077 );
1037 1078 }
1038 1079
1039 1080 add_filter( 'default_option_subscription_options', 'subscription_options_fallback', 10, 3 );