web-dev-qa-db-fra.com

Comment obtenir des variables de function.php dans mes fichiers de plugin

J'ai écrit une fonction dans functions.php qui récupère les variables d'un formulaire de contact et envoie les entrées (ainsi que d'autres informations comme l'adresse IP et l'emplacement ..) à mon courrier électronique.

Je commence à travailler sur mon premier plugin et je veux stocker les paramètres dans une nouvelle table de la base de données.

Comment obtenir les paramètres de function.php juste après que l'utilisateur a cliqué sur le bouton envoyer du contact form?

1
Kar19

PHP de base:

functions.php :

function my_func() {
   //doing my staff
   $my_var = 'data'; //stored data after doing things
   return $my_var;
}

Dans le fichier plugin:

//retrieved data from a function declared within a system
$got_data = my_func();

function another_func( $got_data ) {
   //doing staff with $got_data
}
1
Mayeenul Islam

Il y a trois façons d'utiliser la variable de fichier function.php dans le fichier plugin.

  1. Utilisation de global . Assurez-vous de le globaliser en premier.

    global $my_variable; echo $my_variable;

  2. Je recommande d'utiliser le mécanisme de filtre intégré à WordPress add_filter . Vous ajoutez le filtre dans votre fichier functions.php et vous l'appliquez à votre guise.

Dans functions.php:

add_filter( 'my_variable', 'return_my_variable' );
function return_my_variable( $arg = '' ) {
    return '111221122';
}

Maintenant, vous pouvez utiliser dans vos fichiers de plugin:

echo apply_filters( 'my_variable', '' );
  1. Utilisez un crochet d'action add_action

Dans functions.php:

add_action( 'my_variable', 'echo_my_variable' );
function echo_my_variable() {
    echo '888998899';
}

Dans vos fichiers de plugins:

do_action( 'my_variable' );

Encore une fois, je recommande un filtre car il peut renvoyer une valeur. C'est beaucoup plus flexible que d'injecter des appels d'écho dans votre fichier de plugin. Que vous utilisiez un crochet d'action ou un filtre, c'est à vous de décider.