Make WordPress Core

Ticket #44215: 44215.diff

File 44215.diff, 3.7 KB (added by desrosj, 6 years ago)
  • src/wp-includes/comment.php

     
    33703370                                        break;
    33713371                        }
    33723372
    3373                         if ( ! empty( $value ) ) {
    3374                                 $comment_data_to_export[] = array(
    3375                                         'name'  => $name,
    3376                                         'value' => $value,
    3377                                 );
    3378                         }
     3373                        $comment_data_to_export[] = array(
     3374                                'name'  => $name,
     3375                                'value' => $value,
     3376                        );
    33793377                }
    33803378
    33813379                $data_to_export[] = array(
  • src/wp-includes/user.php

     
    28852885        $user_data_to_export = array();
    28862886
    28872887        foreach ( $user_prop_to_export as $key => $name ) {
    2888                 $value = '';
     2888                $value = false;
    28892889
    28902890                switch ( $key ) {
    28912891                        case 'ID':
     
    29012901                        case 'first_name':
    29022902                        case 'last_name':
    29032903                        case 'description':
    2904                                 $value = $user_meta[ $key ][0];
     2904                                if ( isset( $user_meta[ $key ] ) ) {
     2905                                        $value = $user_meta[ $key ][0];
     2906                                }
    29052907                                break;
    29062908                }
    29072909
    2908                 if ( ! empty( $value ) ) {
     2910                if ( false !== $value ) {
    29092911                        $user_data_to_export[] = array(
    29102912                                'name'  => $name,
    29112913                                'value' => $value,
  • tests/phpunit/tests/comment.php

     
    12101210                // Number of exported comments.
    12111211                $this->assertSame( 1, count( $actual['data'] ) );
    12121212
    1213                 // Number of exported comment properties.
    1214                 $this->assertSame( 7, count( $actual['data'][0]['data'] ) );
     1213                // Number of exported comment properties. Empty properties should be included.
     1214                $this->assertSame( 8, count( $actual['data'][0]['data'] ) );
    12151215        }
    12161216
    12171217        /**
  • tests/phpunit/tests/user.php

     
    15951595        }
    15961596
    15971597        /**
    1598          * Testing the `wp_user_personal_data_exporter_no_user` function when the requested
    1599          * user exists.
     1598         * Testing the `wp_user_personal_data_exporter` function when the requested user exists.
    16001599         *
    16011600         * @ticket 43547
    16021601         */
     
    16131612                // Number of exported user properties.
    16141613                $this->assertSame( 11, count( $actual['data'][0]['data'] ) );
    16151614        }
     1615
     1616        /**
     1617         * User fields should be included in a data export when empty and excluded when they do not exist.
     1618         *
     1619         * @ticket 44215
     1620         */
     1621        function test_wp_user_personal_data_exporter_removed_meta_fields() {
     1622                $test_user = new WP_User( self::$contrib_id );
     1623
     1624                $original_data = array(
     1625                        'description' => get_user_meta( $test_user->ID, 'description', true ),
     1626                        'first_name'  => get_user_meta( $test_user->ID, 'first_name', true ),
     1627                        'last_name'   => get_user_meta( $test_user->ID, 'last_name', true ),
     1628                );
     1629
     1630                delete_user_meta( $test_user->ID, 'first_name' );
     1631                delete_user_meta( $test_user->ID, 'last_name' );
     1632                update_user_meta( $test_user->ID, 'description', '' );
     1633
     1634                $actual = wp_user_personal_data_exporter( $test_user->user_email );
     1635
     1636                $this->assertTrue( $actual['done'] );
     1637
     1638                // Number of exported users.
     1639                $this->assertSame( 1, count( $actual['data'] ) );
     1640
     1641                // Number of exported user properties. Empty fields remain, deleted fields do not.
     1642                $this->assertSame( 9, count( $actual['data'][0]['data'] ) );
     1643
     1644                update_user_meta( $test_user->ID, 'description', $original_data['description'] );
     1645                update_user_meta( $test_user->ID, 'first_name', $original_data['first_name'] );
     1646                update_user_meta( $test_user->ID, 'last_name', $original_data['last_name'] );
     1647        }
    16161648}