web-dev-qa-db-fra.com

ajouter une fonction pour enregistrer le changement sur les pages d'options

je fais la page comme ceci link et ça fonctionne bien mais j'ai besoin d'exécuter un script après comme éditer un fichier

je l'ajoutais à

function my_function() {
    //do something
}
function register_mysettings() {
    //register our settings
    register_setting( 'baw-settings-group', 'new_option_name' );
    register_setting( 'baw-settings-group', 'some_other_option' );
    register_setting( 'baw-settings-group', 'option_etc' );
    my_function();
}
add_action( 'admin_init', 'register_mysettings' );

mais il charge à chaque fois (sans soumettre!) s'il vous plaît aider. THX

1
hooman

Pour exécuter une tâche après la mise à jour d'une option, vous pouvez utiliser updated_option action hook :

add_action( 'updated_option', 'updated_option_callback', 10, 3 );
function updated_option_callback( $option, $old_value, $value ) {
     //Do something
}

En outre, vous pouvez utiliser update_option_{option-name} spécifiquement pour chaque option. Par exemple:

add_action( 'update_option_new_option_name', 'update_new_option_name_callback', 10, 2 );
function update_new_option_name_callback( $old_value, $value ) {
     //Do something
}
2
cybmeta