Init-Hook für Header-Senden

Ich arbeite an einem Checkout-process, bei dem, wenn ich den Checkout übergebe, bekomme ich einen Fehler “Header bereits senden”, weil ich eine PHP-Header () -function verwenden, um den Kunden an meine Zahlungsanbieter-URL zu senden.

Meine Idee ist jetzt, den Checkout-Code in einen WordPress-Init-Hook zu legen, glaubst du, dass das das Problem lösen wird?

Dies ist der Bearbeitungscode:

// Include Mollie include "initialize.php"; if( isset( $_POST['submit'] ) ) { $order_id = time(); // Create payment $payment = $mollie->payments->create( array( 'amount' => $data['price'] * ( $vat + 1 ), 'description' => __( 'Splashback order' ), 'method' => $_POST['sbg_payment'], 'redirectUrl' => site_url( '/success/?order_id=' . $order_id ), 'metadata' => array( 'order_id' => $order_id, ), )); // Json product composition $composition = json_encode( $data ); // Check fields and json $fields = array( 'name' => array( 'req' => false ), 'street' => array( 'req' => false ), 'number' => array( 'req' => false ), 'zipcode' => array( 'req' => false ), 'city' => array( 'req' => false ), 'country' => array( 'req' => false ), 'email' => array( 'req' => false ), 'phone' => array( 'req' => true ), 'payment' => array( 'req' => false ), ); foreach( $fields as $key => $val ) { if( isset( $_POST['sbg_' . $key] ) ) { if( $val['req'] === false ) { if( empty( $_POST['sbg_' . $key] ) ) { $errors = true; } else { $customer[$key] = $_POST['sbg_' . $key]; } } else { $customer[$key] = $_POST['sbg_' . $key]; } } } 

Ich habe versucht, eine function in der Init-Hook des Stückes unten zu machen, kann aber nicht funktionieren, weil ich einige Argumente an die function gebe, um die Variablen zu füllen, die ich Fehler für alle leeren Variablen erhalte. Kann mir jemand dabei helfen?

  if( ! $errors ) { // Json customer details $customer = json_encode( $customer ); // Insert transaction to database $wpdb->insert( $wpdb->prefix . 'mollie_transactions', array( 'transaction_id' => $payment->id, 'order_id' => $order_id, 'amount' => $data['price'] * ( $vat + 1 ), 'composition' => $composition, 'customer_details' => $customer, 'date' => current_time( 'mysql' ), 'status' => __( 'Progress' ), ) ); // Redirect header( "Location: " . $payment->getPaymentUrl() ); } } 

Solutions Collecting From Web of "Init-Hook für Header-Senden"