web-dev-qa-db-fra.com

Comment appeler une fonction particulière lorsque la case à cocher est cochée dans la page des options du plug-in

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?

1
GKK

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 );
}
0
edwardr