Je suis nouveau dans le développement de plugins php et wp, je viens de créer une simple page d’options pour mon plugin de test, la page d’options n’ayant qu’une case à cocher, je ne sais pas comment exécuter une fonction lorsque la case est cochée,
Ma page d'options de plugin est comme ça
<?php
add_action( 'admin_menu', 'chec_add_admin_menu' );
add_action( 'admin_init', 'chec_settings_init' );
function chec_add_admin_menu( ) {
add_options_page( 'Checking', 'Checking', 'manage_options', 'checking', 'checking_options_page' );
}
function chec_settings_init( ) {
register_setting( 'my_option', 'chec_settings' );
add_settings_section(
'chec_checking_section',
__( 'Your section description', 'wp' ),
'chec_settings_section_callback',
'checking'
);
add_settings_field(
'chec_checkbox_field_0',
__( 'Settings field description', 'wp' ),
'chec_checkbox_field_0_render',
'checking',
'chec_checking_section'
);
}
function chec_checkbox_field_0_render( ) {
$options = get_option( 'chec_settings' );
?>
<input type='checkbox' name='chec_settings[chec_checkbox_field_0]' <?php checked( $options['chec_checkbox_field_0'], 1 ); ?> value='1'>
<?php
}
function chec_settings_section_callback( ) {
echo __( 'This section description', 'wp' );
}
function checking_options_page( ) {
?>
<form action='options.php' method='post'>
<h2>Checking</h2>
<?php
settings_fields( 'my_option' );
do_settings_sections( 'checking' );
submit_button();
?>
</form>
<?php
}
?>
Maintenant, je veux supprimer le logo wp dans la barre d'administration lorsque la case à cocher est activée à l'aide du code suivant
add_action( 'admin_bar_menu', 'remove_wp_logo', 999 );
function remove_wp_logo( $wp_admin_bar ) {
$wp_admin_bar->remove_node( 'wp-logo' );
}
Comment faire ça?
Vous utiliseriez une vérification conditionnelle pour déterminer si l'option est sélectionnée avant d'ajouter votre fonction au crochet d'action.
Exemple:
$options = get_option( 'chec_settings' );
if ( $options['chec_checkbox_field_0'] == '1' ) {
add_action ('admin_bar_menu', 'remove_wp_logo', 999 );
}