[wp-trac] [WordPress Trac] #35168: 4.4 Customizer - serialized options can no longer be created

WordPress Trac noreply at wordpress.org
Sat Dec 19 18:47:16 UTC 2015


#35168: 4.4 Customizer - serialized options can no longer be created
--------------------------+-----------------------------
 Reporter:  Looimaster    |      Owner:
     Type:  defect (bug)  |     Status:  new
 Priority:  normal        |  Milestone:  Awaiting Review
Component:  Customize     |    Version:  4.4
 Severity:  normal        |   Keywords:
  Focuses:                |
--------------------------+-----------------------------
 When I do this:
 {{{
 function test_customize_register() {
 $wp_customize->add_setting( 'my_theme_name_options[my_option_name]',
 array(
         'default' => '',
         'type' => 'option',
         'transport' => 'postMessage',
 ) );

 $wp_customize->add_control( new WP_Customize_Control( $wp_customize,
 'my_theme_name_options[my_option_name]', array(
         'label' => __( 'My label', 'theme-name' ),
         'section' => 'my_section_name',
         'type' => 'textarea',
 ) ) );
 }
 add_action( 'customize_register', 'test_customize_register' );
 }}}
 it doesn't CREATE `my_theme_name_options[my_option_name]` in `wp_options`
 database table (not correct).

 However, if `my_option_name` already exists in `my_theme_name_options` in
 `wp_options` database table then it is UPDATED (correct).

 When I do it as `theme_mod` it works:

 {{{

 $wp_customize->add_setting( 'my_option_name', array(
         'default' => '',
         'type' => 'theme_mod',
         'transport' => 'postMessage',
 ) );

 $wp_customize->add_control( new WP_Customize_Control( $wp_customize,
 'my_option_name', array(
         'label' => __( 'My label', 'theme-name' ),
         'section' => 'my_section_name',
         'type' => 'textarea',
 ) ) );
 }}}


 What I tried:
 * Made sure there are no PHP/JS errors, the file is almost as simple as
 this.
 * Enabled WP_DEBUG and logs and there were no PHP errors.
 * Clicking "Save & Publish" indicates as if saving was successful but upon
 page refresh option is not created.
 * PHPMyAdmin doesn't show that database option is updated.
 * When I update this database option by other means (e.g. from admin page)
 it works.
 * Re-installed WordPress 4.4 in Dashboard > Updates.
 * Switched `textarea` to default field.
 * Created more fields and shortened
 `my_theme_name_options[my_option_name]` to `my_opts[opt_name]` but it
 didn't help.
 * Finally, created non-serialized `option` called `my_option_name` and it
 works (such option is CREATED and can be UPDATED).

 Conclusion: Serialized database entries are not created. They can be
 updated though if they were created outside Customizer.

--
Ticket URL: <https://core.trac.wordpress.org/ticket/35168>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list