web-dev-qa-db-fra.com

Qui passe POST les données d'un WP poster à un autre

J'essaie de transmettre des données entre deux publications Wordpress via la méthode POST à partir d'un formulaire/lien. Toutefois, le deuxième message ne semble pas pouvoir saisir les données POST. Je me demande si cela a quelque chose à voir avec ma structure de lien permanent qui n'a pas de nom de fichier, seulement des chemins de répertoire.

La page 1 utilise le formulaire suivant pour "créer un lien" avec la page 2 lors de l'envoi de données via un champ masqué via POST Méthode:

 <form name="offer" action="http://themotoroilevaluator.com/members-blog/motor-oil-bible-special-offer/" method="post" style="padding: 0px; margin: 0px;">
    <input type="hidden" name="discount" value="yes">
    <INPUT TYPE="image" SRC="/members-blog/wp-content/uploads/2011/12/special-offer.png" HEIGHT="350" WIDTH="550" BORDER="0" ALT="Discount Plus Additional Special Bonus Downloads - Click Here">
</form>

Ensuite, à la page 2, j'ai le code php suivant qui est supposé récupérer les données de ce champ caché du tableau POST:

$discount = $_POST['discount'];

Ça devrait être assez simple, mais ça ne marche pas. J'ai essayé de placer exactement le même code sur une page php autonome et j'avais le formulaire post à cette page comme "action", et cela a bien fonctionné. Que dois-je faire pour que cela fonctionne dans Wordpress?

echoing $ discount ou $ _POST ['discount'] ne donne rien et print_r ($ _ POST) donne un tableau vide. Des pensées?

2
Michael

Vous devez enregistrer la requête var afin qu'elle ne soit pas supprimée par WP. Ajoutez ceci à votre fichier functions.php.

function foo_add_query_var($vars) {
    $vars[] = 'discount';
    return $vars;
}
add_filter('query_vars', 'foo_add_query_var');

Pour appeler cela dans votre modèle, utilisez simplement ce qui suit:

$discount = get_query_var('discount');
2
Brian Fegter