| @@ -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="" |
| @@ -487,9 +536,9 @@ | ||
| 487 | 536 | class="screen-reader-text" |
| 488 | 537 | for="<?php echo esc_attr( $subscribe_field_id . '-' . $widget_id ); ?>"> |
| 489 | 538 | <?php echo ! empty( $subscribe_placeholder ) ? esc_html( $subscribe_placeholder ) : esc_html__( 'Email Address:', 'jetpack' ); ?> |
| 490 | 539 | </label> |
| 491 | - <input type="email" name="email" required="required" | |
| 540 | + <input type="email" name="email" autocomplete="email" required="required" | |
| 492 | 541 | <?php if ( ! empty( $email_field_classes ) ) { ?> |
| 493 | 542 | class="<?php echo esc_attr( $email_field_classes ); ?> required" |
| 494 | 543 | <?php } ?> |
| 495 | 544 | <?php if ( ! empty( $email_field_styles ) ) { ?> |
| @@ -509,13 +558,9 @@ | ||
| 509 | 558 | <input type="hidden" name="action" value="subscribe"/> |
| 510 | 559 | <input type="hidden" name="source" value="<?php echo esc_url( $referer ); ?>"/> |
| 511 | 560 | <input type="hidden" name="sub-type" value="<?php echo esc_attr( $source ); ?>"/> |
| 512 | 561 | <input type="hidden" name="redirect_fragment" value="<?php echo esc_attr( $form_id ); ?>"/> |
| 513 | - <?php | |
| 514 | - if ( is_user_logged_in() ) { | |
| 515 | - wp_nonce_field( 'blogsub_subscribe_' . get_current_blog_id(), '_wpnonce', false ); | |
| 516 | - } | |
| 517 | - ?> | |
| 562 | + <?php wp_nonce_field( 'blogsub_subscribe_' . \Jetpack_Options::get_option( 'id' ) ); ?> | |
| 518 | 563 | <button type="submit" |
| 519 | 564 | <?php if ( ! empty( $submit_button_classes ) ) { ?> |
| 520 | 565 | class="<?php echo esc_attr( $submit_button_classes ); ?>" |
| 521 | 566 | <?php } ?> |
| @@ -620,9 +665,9 @@ | ||
| 620 | 665 | $subs_count = array( |
| 621 | 666 | 'status' => 'failed', |
| 622 | 667 | 'code' => $xml->getErrorCode(), |
| 623 | 668 | 'message' => $xml->getErrorMessage(), |
| 624 | - 'value' => ( isset( $subs_count['value'] ) ) ? $subs_count['value'] : 0, | |
| 669 | + 'value' => $subs_count['value'] ?? 0, | |
| 625 | 670 | ); |
| 626 | 671 | } else { |
| 627 | 672 | $subs_count = array( |
| 628 | 673 | 'status' => 'success', |
| @@ -648,27 +693,28 @@ | ||
| 648 | 693 | * |
| 649 | 694 | * @return array |
| 650 | 695 | */ |
| 651 | 696 | public function update( $new_instance, $old_instance ) { |
| 652 | - $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() ) ); | |
| 653 | 699 | |
| 654 | 700 | if ( self::is_jetpack() ) { |
| 655 | - $instance['title'] = wp_kses( stripslashes( $new_instance['title'] ), array() ); | |
| 656 | - $instance['subscribe_placeholder'] = wp_kses( stripslashes( $new_instance['subscribe_placeholder'] ), array() ); | |
| 657 | - $instance['subscribe_button'] = wp_kses( stripslashes( $new_instance['subscribe_button'] ), array() ); | |
| 658 | - $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() ); | |
| 659 | 705 | } |
| 660 | 706 | |
| 661 | 707 | if ( self::is_wpcom() ) { |
| 662 | - $instance['title'] = wp_strip_all_tags( stripslashes( $new_instance['title'] ) ); | |
| 663 | - $instance['title_following'] = wp_strip_all_tags( stripslashes( $new_instance['title_following'] ) ); | |
| 664 | - $instance['subscribe_logged_in'] = wp_filter_post_kses( stripslashes( $new_instance['subscribe_logged_in'] ) ); | |
| 665 | - $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'] ) ); | |
| 666 | 712 | } |
| 667 | 713 | |
| 668 | 714 | $instance['show_subscribers_total'] = isset( $new_instance['show_subscribers_total'] ) && $new_instance['show_subscribers_total']; |
| 669 | 715 | $instance['show_only_email_and_button'] = isset( $new_instance['show_only_email_and_button'] ) && $new_instance['show_only_email_and_button']; |
| 670 | - $instance['subscribe_text'] = wp_filter_post_kses( stripslashes( $new_instance['subscribe_text'] ) ); | |
| 716 | + $instance['subscribe_text'] = wp_filter_post_kses( stripslashes( $instance['subscribe_text'] ) ); | |
| 671 | 717 | |
| 672 | 718 | return $instance; |
| 673 | 719 | } |
| 674 | 720 | |
| @@ -687,9 +733,9 @@ | ||
| 687 | 733 | $defaults['title'] = esc_html__( 'Subscribe to Blog via Email', 'jetpack' ); |
| 688 | 734 | $defaults['subscribe_text'] = esc_html__( 'Enter your email address to subscribe to this blog and receive notifications of new posts by email.', 'jetpack' ); |
| 689 | 735 | $defaults['subscribe_placeholder'] = esc_html__( 'Email Address', 'jetpack' ); |
| 690 | 736 | $defaults['subscribe_button'] = esc_html__( 'Subscribe', 'jetpack' ); |
| 691 | - $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' ); | |
| 692 | 738 | |
| 693 | 739 | return $defaults; |
| 694 | 740 | } |
| 695 | 741 | |
| @@ -696,8 +742,9 @@ | ||
| 696 | 742 | /** |
| 697 | 743 | * Renders the widget's options form in wp-admin. |
| 698 | 744 | * |
| 699 | 745 | * @param array $instance Widget instance. |
| 746 | + * @return string|void | |
| 700 | 747 | */ |
| 701 | 748 | public function form( $instance ) { |
| 702 | 749 | $instance = wp_parse_args( (array) $instance, static::defaults() ); |
| 703 | 750 | $show_subscribers_total = checked( $instance['show_subscribers_total'], true, false ); |
| @@ -702,26 +749,14 @@ | ||
| 702 | 749 | $instance = wp_parse_args( (array) $instance, static::defaults() ); |
| 703 | 750 | $show_subscribers_total = checked( $instance['show_subscribers_total'], true, false ); |
| 704 | 751 | |
| 705 | 752 | if ( self::is_wpcom() ) { |
| 706 | - $title = esc_attr( stripslashes( $instance['title'] ) ); | |
| 707 | - $title_following = esc_attr( stripslashes( $instance['title_following'] ) ); | |
| 708 | - $subscribe_text = esc_attr( stripslashes( $instance['subscribe_text'] ) ); | |
| 709 | - $subscribe_logged_in = esc_attr( stripslashes( $instance['subscribe_logged_in'] ) ); | |
| 710 | - $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'] ) ) : ''; | |
| 711 | 758 | $subscribers_total = self::fetch_subscriber_count(); |
| 712 | - } | |
| 713 | - | |
| 714 | - if ( self::is_jetpack() ) { | |
| 715 | - $title = stripslashes( $instance['title'] ); | |
| 716 | - $subscribe_text = stripslashes( $instance['subscribe_text'] ); | |
| 717 | - $subscribe_placeholder = stripslashes( $instance['subscribe_placeholder'] ); | |
| 718 | - $subscribe_button = stripslashes( $instance['subscribe_button'] ); | |
| 719 | - $success_message = stripslashes( $instance['success_message'] ); | |
| 720 | - $subscribers_total = self::fetch_subscriber_count(); | |
| 721 | - } | |
| 722 | - | |
| 723 | - if ( self::is_wpcom() ) : | |
| 724 | 759 | ?> |
| 725 | 760 | <p> |
| 726 | 761 | <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"> |
| 727 | 762 | <?php esc_html_e( 'Widget title for non-followers:', 'jetpack' ); ?> |
| @@ -773,11 +808,17 @@ | ||
| 773 | 808 | ?> |
| 774 | 809 | </label> |
| 775 | 810 | </p> |
| 776 | 811 | <?php |
| 777 | - endif; | |
| 812 | + } | |
| 778 | 813 | |
| 779 | - 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(); | |
| 780 | 821 | ?> |
| 781 | 822 | <p> |
| 782 | 823 | <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"> |
| 783 | 824 | <?php esc_html_e( 'Widget title:', 'jetpack' ); ?> |
| @@ -829,13 +870,13 @@ | ||
| 829 | 870 | ?> |
| 830 | 871 | </label> |
| 831 | 872 | </p> |
| 832 | 873 | <?php |
| 833 | - endif; | |
| 874 | + } | |
| 834 | 875 | } |
| 835 | 876 | } |
| 836 | 877 | |
| 837 | -if ( defined( 'IS_WPCOM' ) && IS_WPCOM && function_exists( 'class_alias' ) ) { | |
| 878 | +if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { | |
| 838 | 879 | class_alias( 'Jetpack_Subscriptions_Widget', 'Blog_Subscription_Widget' ); |
| 839 | 880 | } |
| 840 | 881 | |
| 841 | 882 | /** |
| @@ -871,14 +912,14 @@ | ||
| 871 | 912 | } else { |
| 872 | 913 | $instance['include_social_followers'] = false; |
| 873 | 914 | } |
| 874 | 915 | |
| 875 | - $show_only_email_and_button = isset( $instance['show_only_email_and_button'] ) ? $instance['show_only_email_and_button'] : false; | |
| 876 | - $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'] ?? ''; | |
| 877 | 918 | |
| 878 | 919 | // Build up a string with the submit button's classes and styles and set it on the instance. |
| 879 | - $submit_button_classes = isset( $instance['submit_button_classes'] ) ? $instance['submit_button_classes'] : ''; | |
| 880 | - $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'] ?? ''; | |
| 881 | 922 | $style = ''; |
| 882 | 923 | $submit_button_styles = ''; |
| 883 | 924 | $submit_button_wrapper_styles = ''; |
| 884 | 925 | $email_field_styles = ''; |
| @@ -914,11 +955,11 @@ | ||
| 914 | 955 | } |
| 915 | 956 | if ( isset( $instance['custom_padding'] ) && 'undefined' !== $instance['custom_padding'] ) { |
| 916 | 957 | $style = 'padding: ' . |
| 917 | 958 | $instance['custom_padding'] . 'px ' . |
| 918 | - round( $instance['custom_padding'] * 1.5 ) . 'px ' . | |
| 959 | + round( floatval( $instance['custom_padding'] ) * 1.5 ) . 'px ' . | |
| 919 | 960 | $instance['custom_padding'] . 'px ' . |
| 920 | - round( $instance['custom_padding'] * 1.5 ) . 'px; '; | |
| 961 | + round( floatval( $instance['custom_padding'] ) * 1.5 ) . 'px; '; | |
| 921 | 962 | |
| 922 | 963 | $submit_button_styles .= $style; |
| 923 | 964 | $email_field_styles .= $style; |
| 924 | 965 | } |
| @@ -929,9 +970,9 @@ | ||
| 929 | 970 | } |
| 930 | 971 | if ( isset( $instance['button_on_newline'] ) && 'true' === $instance['button_on_newline'] ) { |
| 931 | 972 | $submit_button_styles .= 'margin-top: ' . $button_spacing . 'px; '; |
| 932 | 973 | } else { |
| 933 | - $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 | |
| 934 | 975 | $submit_button_styles .= 'margin-left: ' . $button_spacing . 'px; '; |
| 935 | 976 | } |
| 936 | 977 | |
| 937 | 978 | if ( isset( $instance['custom_border_radius'] ) && 'undefined' !== $instance['custom_border_radius'] ) { |
| @@ -1030,8 +1071,10 @@ | ||
| 1030 | 1071 | return array( |
| 1031 | 1072 | /* translators: Both %1$s and %2$s is site address */ |
| 1032 | 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 ), |
| 1033 | 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 ), | |
| 1034 | 1077 | ); |
| 1035 | 1078 | } |
| 1036 | 1079 | |
| 1037 | 1080 | add_filter( 'default_option_subscription_options', 'subscription_options_fallback', 10, 3 ); |