WordPress.org

Make WordPress Core

Ticket #41621: 41621.diff

File 41621.diff, 1.8 KB (added by dlh, 2 years ago)
  • src/wp-includes/class-wp-customize-manager.php

     
    22782278
    22792279                // Amend post values with any supplied data.
    22802280                foreach ( $args['data'] as $setting_id => $setting_params ) {
    2281                         if ( array_key_exists( 'value', $setting_params ) ) {
     2281                        if ( is_array( $setting_params ) && array_key_exists( 'value', $setting_params ) ) {
    22822282                                $this->set_post_value( $setting_id, $setting_params['value'] ); // Add to post values so that they can be validated and sanitized.
    22832283                        }
    22842284                }
  • tests/phpunit/tests/customize/manager.php

     
    12461246        }
    12471247
    12481248        /**
     1249         * Test passing `null` for a setting ID to remove it from the changeset.
     1250         *
     1251         * @covers WP_Customize_Manager::save_changeset_post()
     1252         */
     1253        function test_remove_setting_from_changeset_post() {
     1254                $uuid = wp_generate_uuid4();
     1255
     1256                $manager = $this->create_test_manager( $uuid );
     1257                $manager->save_changeset_post( array(
     1258                        'data' => array(
     1259                                'scratchpad' => array(
     1260                                        'value' => 'foo',
     1261                                ),
     1262                        ),
     1263                ) );
     1264
     1265                // Create a new manager so post values are unset.
     1266                $manager = $this->create_test_manager( $uuid );
     1267
     1268                $this->assertArrayHasKey( 'scratchpad', $manager->changeset_data() );
     1269
     1270                $manager->save_changeset_post( array(
     1271                        'data' => array(
     1272                                'scratchpad' => null,
     1273                        ),
     1274                ) );
     1275
     1276                $this->assertArrayNotHasKey( 'scratchpad', $manager->changeset_data() );
     1277        }
     1278
     1279        /**
    12491280         * Test writing changesets and publishing with users who can unfiltered_html and those who cannot.
    12501281         *
    12511282         * @ticket 38705