summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/modules/subscriptions.php')
-rw-r--r--plugins/jetpack/modules/subscriptions.php42
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;