PHP header () liefert bereits gesendete Header

Ich arbeite an einem Checkout-process in WordPress. Wenn der Kunde auf die Checkout-Schaltfläche klickt, wird er an einen Zahlungsanbieter weitergeleitet.

Wichtig zu wissen:

  • Ich benutze eine session in diesem process.
  • Ich benutze die PHP-function header() , um den Kunden an diesen Ort zu schicken.

Mein Problem: Wenn Sie nun auf die Schaltfläche klicken, wird keine Umleitung, sondern stattdessen ein Fehler angezeigt.

Warnung: Header-Informationen können nicht geändert werden – Header, die bereits gesendet wurden (Ausgabe gestartet unter /var/www/vhosts/website.com/httpdocs/wp-content/themes/template/header.php:24) in / var / www / vhosts / website.com/httpdocs/wp-content/themes/template/page-checkout.php in Zeile 84

Linie 84 ist:

 header( "Location: " . $payment->getPaymentUrl() ); 

Es sieht also so aus, als müsste ich die Weiterleitung früher machen, aber ich weiß nicht, wie ich das machen soll. Hat jemand eine Idee? Hook die Aktion init oder send_headers ?

Ich habe momentan eine Lösung, die das Problem triggers, aber ich weiß, dass es nicht die richtige ist. Die Lösung ist ob_start() oben in meiner header.php

Solutions Collecting From Web of "PHP header () liefert bereits gesendete Header"