web-dev-qa-db-fra.com

Est-ce la bonne façon d'exécuter certains PHP dans mon plugin après un clic sur une page d'options?

J'ai une page d'options pour mon plugin. Je veux que l'utilisateur puisse cliquer sur un bouton pour exécuter une fonction membre de la classe de mon plugin. J'ai trouvé cette page:

https://stackoverflow.com/questions/8597846/wordpress-plugin-call-function-on-button-click-in-admin-panel

Mais je ne suis pas sûr d’interpréter correctement les instructions. J'ai trouvé que la création d'un formulaire avec une action = "options-general.php? Page = MY_OPTIONS_PAGE_SLUG" fonctionnera. Comme ça:

            <form method="post" action="options-general.php?page=my_options_page_slug">
                <input type="hidden" name="banana" value="yellow">
                <input type="submit" class="button-primary" value="<?php _e('Go') ?>" />
            </form>

Est-ce ce que l'article de stackoverflow recommande? Est-ce une façon décente de faire cela? Je ne suis pas prêt à entrer dans (le WP) AJAX pour l'instant. Je suis d'accord avec un formulaire et un rafraîchissement de page.

Merci d'avoir lu.

1
rg89

Essayez d’utiliser le crochet d’action 'init' pour gérer le déclencheur d’envoi. Créez un nouvel objet de votre classe dans la fonction accrochée et appelez la fonction membre.

1
Rutwick Gangurde

Oui, cette méthode devrait être correcte. Ajouter un nonce est toujours une bonne chose à faire.

De la page WP Codex : Les nonces sont utilisés comme protection liée à la sécurité prévenir les attaques et les erreurs. (Cela me semble bien!)

Vous pouvez également utiliser les variables $pagenow et $typenow au lieu de coder en dur une URL dans l'attribut d'action du formulaire.

Il y a de meilleures façons (comme AJAX) mais je pense que c'est la manière "traditionnelle" de le faire.

0
Jared