Je travaille sur un processus de paiement dans Wordpress où, lorsque le client clique sur le bouton de paiement, il est redirigé vers un fournisseur de paiement.
Important à savoir:
session
dans ce processus.header()
pour envoyer le client à cet emplacement.Mon problème: Désormais, lorsque vous cliquez sur le bouton, il n'y a pas de redirection, mais une erreur.
Avertissement: impossible de modifier les informations d'en-tête - en-têtes déjà envoyés par (sortie démarrée à /var/www/vhosts/website.com/httpdocs/wp-content/themes/template/header.php:24) dans/var/www/vhosts/website.com/httpdocs/wp-content/themes/template/page-checkout.php à la ligne 84
La ligne 84 est:
header( "Location: " . $payment->getPaymentUrl() );
Il semble donc que je devrais faire la redirection plus tôt, mais je ne sais pas comment le faire. Quelqu'un a une idée? Accrocher l'action init
ou send_headers
?
J'ai une solution à l'heure actuelle qui résout le problème, mais je sais que ce n'est pas la bonne. La solution est de placer ob_start()
en haut de mon header.php
Je devais le faire avec la fonction de redirection incorporée de WordPress; wp_redirect ();
wp_redirect( $payment->getPaymentUrl() );
exit;