diff --git a/wp-includes/comment.php b/wp-includes/comment.php index f265530ac6..8899dc30e8 100644 --- a/wp-includes/comment.php +++ b/wp-includes/comment.php @@ -718,9 +718,10 @@ function wp_set_comment_cookies($comment, $user) { * @param int $seconds Comment cookie lifetime. Default 30000000. */ $comment_cookie_lifetime = apply_filters( 'comment_cookie_lifetime', 30000000 ); - setcookie('comment_author_' . COOKIEHASH, $comment->comment_author, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN); - setcookie('comment_author_email_' . COOKIEHASH, $comment->comment_author_email, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN); - setcookie('comment_author_url_' . COOKIEHASH, esc_url($comment->comment_author_url), time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN); + $secure = is_https_url( home_url() ); + setcookie( 'comment_author_' . COOKIEHASH, $comment->comment_author, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure ); + setcookie( 'comment_author_email_' . COOKIEHASH, $comment->comment_author_email, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure ); + setcookie( 'comment_author_url_' . COOKIEHASH, esc_url($comment->comment_author_url), time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure ); } /** diff --git a/wp-includes/option.php b/wp-includes/option.php index 3fccda2a0c..1d2c35d41f 100644 --- a/wp-includes/option.php +++ b/wp-includes/option.php @@ -746,8 +746,9 @@ function wp_user_settings() { } // The cookie is not set in the current browser or the saved value is newer. - setcookie( 'wp-settings-' . $user_id, $settings, time() + YEAR_IN_SECONDS, SITECOOKIEPATH ); - setcookie( 'wp-settings-time-' . $user_id, time(), time() + YEAR_IN_SECONDS, SITECOOKIEPATH ); + $secure = is_https_url( site_url() ); + setcookie( 'wp-settings-' . $user_id, $settings, time() + YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN, $secure ); + setcookie( 'wp-settings-time-' . $user_id, time(), time() + YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN, $secure ); $_COOKIE['wp-settings-' . $user_id] = $settings; } diff --git a/wp-login.php b/wp-login.php index b0ce298ef2..3b5e42c82c 100644 --- a/wp-login.php +++ b/wp-login.php @@ -422,9 +422,10 @@ if ( defined( 'RELOCATE' ) && RELOCATE ) { // Move flag is set } //Set a cookie now to see if they are supported by the browser. -setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN); +$secure = ( is_https_url( home_url() ) && is_https_url( site_url() ) ); +setcookie( TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN, $secure ); if ( SITECOOKIEPATH != COOKIEPATH ) - setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN); + setcookie( TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN, $secure ); /** * Fires when the login form is initialized. @@ -463,7 +464,8 @@ case 'postpass' : * @param int $expires The expiry time, as passed to setcookie(). */ $expire = apply_filters( 'post_password_expires', time() + 10 * DAY_IN_SECONDS ); - setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), $expire, COOKIEPATH ); + $secure = is_https_url( home_url() ); + setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), $expire, COOKIEPATH, COOKIE_DOMAIN, $secure ); wp_safe_redirect( wp_get_referer() ); exit();