diff options
Diffstat (limited to 'plugins/jetpack/modules/subscriptions.php')
-rw-r--r-- | plugins/jetpack/modules/subscriptions.php | 42 |
1 files changed, 34 insertions, 8 deletions
diff --git a/plugins/jetpack/modules/subscriptions.php b/plugins/jetpack/modules/subscriptions.php index f52b9a84..de7cd148 100644 --- a/plugins/jetpack/modules/subscriptions.php +++ b/plugins/jetpack/modules/subscriptions.php @@ -25,6 +25,29 @@ function jetpack_subscriptions_configuration_load() { exit; } +/** + * Cherry picks keys from `$_SERVER` array. + * + * @since 6.0.0 + * + * @return array An array of server data. + */ +function jetpack_subscriptions_cherry_pick_server_data() { + $data = array(); + + foreach ( $_SERVER as $key => $value ) { + if ( ! is_string( $value ) || 0 === strpos( $key, 'HTTP_COOKIE' ) ) { + continue; + } + + if ( 0 === strpos( $key, 'HTTP_' ) || in_array( $key, array( 'REMOTE_ADDR', 'REQUEST_URI', 'DOCUMENT_URI' ), true ) ) { + $data[ $key ] = $value; + } + } + + return $data; +} + class Jetpack_Subscriptions { public $jetpack = false; @@ -511,7 +534,7 @@ class Jetpack_Subscriptions { 'source' => 'widget', 'widget-in-use' => is_active_widget( false, false, 'blog_subscription', true ) ? 'yes' : 'no', 'comment_status' => '', - 'server_data' => $_SERVER, + 'server_data' => jetpack_subscriptions_cherry_pick_server_data(), ) ); @@ -674,7 +697,7 @@ class Jetpack_Subscriptions { 'source' => 'comment-form', 'widget-in-use' => is_active_widget( false, false, 'blog_subscription', true ) ? 'yes' : 'no', 'comment_status' => $approved, - 'server_data' => $_SERVER, + 'server_data' => jetpack_subscriptions_cherry_pick_server_data(), ) ); @@ -838,22 +861,25 @@ class Jetpack_Subscriptions_Widget extends WP_Widget { switch ( $_GET['subscribe'] ) : case 'invalid_email' : ?> <p class="error"><?php esc_html_e( 'The email you entered was invalid. Please check and try again.', 'jetpack' ); ?></p> - <?php break; + <?php break; case 'opted_out' : ?> <p class="error"><?php printf( __( 'The email address has opted out of subscription emails. <br /> You can manage your preferences at <a href="%1$s" title="%2$s" target="_blank">subscribe.wordpress.com</a>', 'jetpack' ), 'https://subscribe.wordpress.com/', __( 'Manage your email preferences.', 'jetpack' ) - ); ?> - <?php break; + ); ?></p> + <?php break; case 'already' : ?> - <p class="error"><?php esc_html_e( 'You have already subscribed to this site. Please check your inbox.', 'jetpack' ); ?></p> - <?php break; + <p class="error"><?php printf( __( 'You have already subscribed to this site. Please check your inbox. <br /> You can manage your preferences at <a href="%1$s" title="%2$s" target="_blank">subscribe.wordpress.com</a>', 'jetpack' ), + 'https://subscribe.wordpress.com/', + __( '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; default : ?> <p class="error"><?php esc_html_e( 'There was an error when subscribing. Please try again.', 'jetpack' ); ?></p> - <?php break; + <?php break; endswitch; endif; |