web-dev-qa-db-fra.com

L'API de paramètres crée-t-elle des paramètres au moment de l'exécution?

Je peaufine un plugin et j'aimerais avoir une valeur d'option différente pour chaque utilisateur de backoffice.

Actuellement, les options sont définies à l'aide de la méthode add_settings_field effectuée dans le raccordement admin_init.

Ma question est la suivante: puis-je enregistrer un nouveau jeu de paramètres en préfixant mes paramètres en utilisant l'ID utilisateur actuel?

Une telle manière, si elle est valide, pourrait aider à résoudre d’autres problèmes, tels que:

2
snowflake

Oui, vous pouvez et c'est plus facile avec une classe. Dans le hook admin_init (où l'API de paramètres est en cours d'enregistrement et défini), définissez une propriété de classe en fonction de l'ID utilisateur:

$this->prefix = 'uid_' . get_current_user_id() . '_';

Ensuite, dans le reste du code, reportez-vous au nom de votre option sous le nom $this->prefix . 'option_name'.

Le résultat dans la table wp_options sera uid_1_option_name, uid_2_option_name, etc. Et chaque utilisateur aura ses propres paramètres.

A Gist avec un exemple de travail.

3
brasofilo