Make WordPress Core

Ticket #43857: 43857.patch

File 43857.patch, 7.0 KB (added by imath, 7 years ago)
  • src/wp-admin/includes/misc.php

    diff --git src/wp-admin/includes/misc.php src/wp-admin/includes/misc.php
    index ea7d76dee6..e4621c6336 100644
    function wp_admin_canonical_url() { 
    11321132        $filtered_url = remove_query_arg( $removable_query_args, $current_url );
    11331133        ?>
    11341134        <link id="wp-admin-canonical" rel="canonical" href="<?php echo esc_url( $filtered_url ); ?>" />
    1135         <script>
    1136                 if ( window.history.replaceState ) {
    1137                         window.history.replaceState( null, null, document.getElementById( 'wp-admin-canonical' ).href + window.location.hash );
    1138                 }
    1139         </script>
    1140 <?php
     1135        <?php
     1136        wp_remove_feedback_query_args( 'wp-admin-canonical' );
    11411137}
    11421138
    11431139/**
  • src/wp-comments-post.php

    diff --git src/wp-comments-post.php src/wp-comments-post.php
    index 1836166fcd..d4b7c0a837 100644
    do_action( 'set_comment_cookies', $comment, $user, $cookies_consent ); 
    5353
    5454$location = empty( $_POST['redirect_to'] ) ? get_comment_link( $comment ) : $_POST['redirect_to'] . '#comment-' . $comment->comment_ID;
    5555
     56if ( ! $cookies_consent && 'unapproved' === wp_get_comment_status( $comment ) ) {
     57        $location = add_query_arg( 'unapproved', $comment->comment_ID, $location );
     58}
     59
    5660/**
    5761 * Filters the location URI to send the commenter after posting.
    5862 *
  • src/wp-includes/comment-template.php

    diff --git src/wp-includes/comment-template.php src/wp-includes/comment-template.php
    index bcda28f87c..d807013b9f 100644
    function get_comment_reply_link( $args = array(), $comment = null, $post = null 
    16921692
    16931693                $link = sprintf(
    16941694                        "<a rel='nofollow' class='comment-reply-link' href='%s' %s aria-label='%s'>%s</a>",
    1695                         esc_url( add_query_arg( 'replytocom', $comment->comment_ID ) ) . "#" . $args['respond_id'],
     1695                        esc_url( add_query_arg( array( 'replytocom' => $comment->comment_ID, 'unapproved' => false ) ) ) . "#" . $args['respond_id'],
    16961696                        $data_attribute_string,
    16971697                        esc_attr( sprintf( $args['reply_to_text'], $comment->comment_author ) ),
    16981698                        $args['reply_text']
    function comment_form( $args = array(), $post_id = null ) { 
    22602260        $req      = get_option( 'require_name_email' );
    22612261        $html_req = ( $req ? " required='required'" : '' );
    22622262        $html5    = 'html5' === $args['format'];
    2263         $consent  = empty( $commenter['comment_author_email'] ) ? '' : ' checked="checked"';
     2263        $consent  = empty( $commenter['cookies_consent'] ) ? '' : ' checked="checked"';
    22642264        $fields   = array(
    22652265                'author'  => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
    22662266                                         '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" maxlength="245"' . $html_req . ' /></p>',
  • src/wp-includes/comment.php

    diff --git src/wp-includes/comment.php src/wp-includes/comment.php
    index 6b6e7b45af..a5498d7d82 100644
    function _clear_modified_cache_on_transition_comment_status( $new_status, $old_s 
    17411741 * @see sanitize_comment_cookies() Use to sanitize cookies
    17421742 *
    17431743 * @since 2.0.4
     1744 * @since 4.9.6 Tries to get a query parameter containing the comment ID to
     1745 *              set the comment author data when the user has not consented
     1746 *              to cookies.
    17441747 *
    1745  * @return array Comment author, email, url respectively.
     1748 * @return array Comment author, email, url, cookies consent respectively.
    17461749 */
    17471750function wp_get_current_commenter() {
    17481751        // Cookies should already be sanitized.
    function wp_get_current_commenter() { 
    17621765                $comment_author_url = $_COOKIE[ 'comment_author_url_' . COOKIEHASH ];
    17631766        }
    17641767
     1768        $comment_author_data = compact( 'comment_author', 'comment_author_email', 'comment_author_url' );
     1769
     1770        if ( ! array_filter( $comment_author_data ) ) {
     1771                // Set the current commenter using the just posted comment ID.
     1772                if ( is_singular() && isset( $_GET['unapproved'] ) ) {
     1773                        $comment = get_comment( $_GET['unapproved'], ARRAY_A );
     1774
     1775                        if ( isset( $comment['comment_author_email'] ) ) {
     1776                                $comment_author_data = array_intersect_key( $comment, $comment_author_data );
     1777                        }
     1778                }
     1779
     1780                $comment_author_data['cookies_consent'] = false;
     1781        } else {
     1782                $comment_author_data['cookies_consent'] = true;
     1783        }
     1784
    17651785        /**
    17661786         * Filters the current commenter's name, email, and URL.
    17671787         *
    17681788         * @since 3.1.0
     1789         * @since 4.9.6 Adds the $cookies_consent parameter.
    17691790         *
    17701791         * @param array $comment_author_data {
    17711792         *     An array of current commenter variables.
    17721793         *
    1773          *     @type string $comment_author       The name of the author of the comment. Default empty.
    1774          *     @type string $comment_author_email The email address of the `$comment_author`. Default empty.
    1775          *     @type string $comment_author_url   The URL address of the `$comment_author`. Default empty.
     1794         *     @type string  $comment_author       The name of the author of the comment. Default empty.
     1795         *     @type string  $comment_author_email The email address of the `$comment_author`. Default empty.
     1796         *     @type string  $comment_author_url   The URL address of the `$comment_author`. Default empty.
     1797         *     @type boolean $cookies_consent      Whether the user consented to cookies or not. Default false.
    17761798         * }
    17771799         */
    1778         return apply_filters( 'wp_get_current_commenter', compact( 'comment_author', 'comment_author_email', 'comment_author_url' ) );
     1800        return apply_filters( 'wp_get_current_commenter', $comment_author_data );
    17791801}
    17801802
    17811803/**
  • src/wp-includes/functions.php

    diff --git src/wp-includes/functions.php src/wp-includes/functions.php
    index 6f9e77c5b7..e11e3e34a0 100644
    function wp_removable_query_args() { 
    931931        return apply_filters( 'removable_query_args', $removable_query_args );
    932932}
    933933
     934/**
     935 * Removes query variables used to provide user feedbacks from the current URL.
     936 *
     937 * @since 4.9.6
     938 *
     939 * @param string $canonical_id The canonical URL link tag's id attribute.
     940 */
     941function wp_remove_feedback_query_args( $canonical_id = 'wp-canonical' ) {
     942        printf( '
     943<script>
     944        if ( window.history.replaceState ) {
     945                window.history.replaceState( null, null, document.getElementById( \'%1$s\' ).href.split(\'#\')[0]  + window.location.hash );
     946        }
     947</script>
     948        ', $canonical_id );
     949}
     950
    934951/**
    935952 * Walks the array while sanitizing the contents.
    936953 *
    function wp_privacy_anonymize_data( $type, $data = '' ) { 
    62506267 * Trigger the check for policy text changes.
    62516268 *
    62526269 * @since 4.9.6
    6253  * @access private 
     6270 * @access private
    62546271 */
    62556272function _wp_privacy_active_plugins_change() {
    62566273        update_option( '_wp_privacy_text_change_check', 'check' );
  • src/wp-includes/link-template.php

    diff --git src/wp-includes/link-template.php src/wp-includes/link-template.php
    index 9db1065c77..2f0c5999bd 100644
    function rel_canonical() { 
    37303730        $url = wp_get_canonical_url( $id );
    37313731
    37323732        if ( ! empty( $url ) ) {
    3733                 echo '<link rel="canonical" href="' . esc_url( $url ) . '" />' . "\n";
     3733                echo '<link id="wp-canonical" rel="canonical" href="' . esc_url( $url ) . '" />' . "\n";
     3734                wp_remove_feedback_query_args();
    37343735        }
    37353736}
    37363737