web-dev-qa-db-fra.com

Décrocher/notifier lorsqu'un paramètre ou une option est ajouté ou mis à jour

Je sais à propos de:

add_option_{option_name}
update_option_{option_name}

mais ceux-ci nécessitent des noms d'option spécifiques. Ce que je recherche, c’est un moyen de savoir si et quand une option est modifiée (ajoutée ou mise à jour).

Ce que j'essaie vraiment d'éviter, c'est d'exécuter une requête pour trouver tous les noms d'options, puis de les exécuter en boucle pour ajouter à la fois add_option_{option_name} et update_option_{option_name} à ces options de manière dynamique. (Si en effet c'est la seule façon de le faire, est-ce une bonne façon de le faire?)

Aucune suggestion?

3
CandyCoated

En regardant les sources (fichiers de base, wp-includes/option.php), vous pouvez toujours trouver vos balises de crochet cibles:

add_action('added_option', 'wpse230212_callback_add', 10, 2);
add_action('updated_option', 'wpse230212_callback_update', 10, 3);

function wpse230212_callback_add( $option_name, $option_value ) {
    // do stuff on add_option
}

function wpse230212_callback_update( $option_name, $old_value, $option_value ) {
    // do stuff on update_option    
}

J'espère que cela pourra aider.

5
Samuel Elh