Cela peut être facile pour ceux qui connaissent jQuery.
Donc, j'ai deux contrôles de personnalisation.
Le premier est lmscore_improved_summary
qui est une case à cocher. Et le second est course_instructor_layout
.
Donc ce que je veux, c'est cacher course_instructor_layout
lorsque lmscore_improved_summary
est coché.
C’est donc le code jQuery que j’essaie.
(function( $ ) {
wp.customize.bind( 'ready', function() {
var customize = this; // Customize object alias.
customize( 'lmscore_improved_summary', function( value ) {
var Controls = [
'course_instructor_layout'
];
$.each( Controls, function( index, id ) {
customize.control( id, function( control ) {
/**
* Toggling function
*/
var toggle = function( to ) {
control.toggle( to );
};
// 1. On loading.
toggle( value.get() );
// 2. On value change.
value.bind( toggle );
} );
} );
} );
} );
})( jQuery );
Mais fait exactement le contraire de ce que je veux. Il affiche course_instructor_layout
lorsque lmscore_improved_summary
est coché.
Je connais un peu le javascript, mais jquery est complètement nouveau pour moi.
Aidez-moi, s'il vous plaît.
vous pouvez définir l'affichage conditionnel sur la définition dans PHP avec quelque chose comme ça:
$wp_customize->add_control("course_instructor_layout", [
// ... other arguments
"settings" => "course_instructor_layout",
"active_callback" => function ($control) {
return !$control->manager->get_setting("lmscore_improved_summary")->value();
},
]);
si cela ne fonctionne pas dans votre cas, modifiez votre question pour ajouter la définition complète de lmscore_improved_summary
et course_instructor_layout
.