Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Edit: I have rewritten the question in hopes I will get a reply from someone who knows the theme customizer.

I am trying to figure out how to disable setting controls in the Wordpress theme customizer page. An example is:

  1. A section in the theme customizer contains a checkbox that is used to hide or show text in a hero container. When it is checked it will hide the text. The checkbox label says "Hide hero text".

  2. Within the same section there is a textbox for the user to enter the text they want for the hero container. The label says "hero text".

I am trying to figure out how to disable the textbox(2.) when the checkbox(1.) is checked. By disabling I am referring to making the textbox inactive so nothing can be input into it.

Can anyone explain how this can be done? Information on the theme customizer is very scarce at this time. I would greatly appreciate it.

share|improve this question
2  
Please provide more details. Maybe a more specific example of what you're trying to accomplish? –  gdaniel May 1 '13 at 13:20
    
I am trying to figure out how to disable controls in the theme customizer. An example is if a checkbox in a section of the theme customizer is checked then it will automatically disable certain controls that I specified. Such as a button. –  user1632018 May 2 '13 at 2:48
add comment

1 Answer 1

I have not tested this yet but plan to do something similar soon..

If you want to completely remove the default control you can use this code. You can find the appropriate control id to use in place of 'display_header_text' by searching for the correct one that matches the control you wish to target in wp-includes/class-wp-customize-manager.php

$wp_customize->remove_control('display_header_text');

Display_header_text is the checkbox which toggles whether or not Site title and tagline are displayed.

If (for example) you want to actually hide the Site title textbox control in the theme customizer when display_header_text is checked you can do something like this..

if( get_theme_mod( 'display_header_text' ) !== '') {
    $wp_customize->remove_control('blogname');
} else {
    $wp_customize->add_setting( 'blogname', array(
        'default' => 'default_value',
    ) );
    $wp_customize->add_control( 'blogname', array(
        'label'   => 'Title',
        'section' => 'title_tagline',
        'type'    => 'text',
        'priority' => 1
    ) );
}

The theme customizer stores the value of a checkbox as the numeral 1 if it is checked and blank if it isn’t checked. So the code above says if the checkbox which controls whether or not site title and subtitle are displayed, is not empty then remove the site title textbox so the option to enter a site title won't even be available. But if the checkbox is empty, display the textbox.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.