Support » Code oplossingen gezocht » redirect na curl_exec

  • Beste WordPressers,

    Ik moet data van een formulier (Piotnet forms) sturen naar een json endpoint. Dat lukt. Wat niet lukt is een boodschap tonen na succes, of naar een succespagina doorverwijzen. Het werken met header("Location: URL") gaat niet (komt niet voor de HTML body). Ook het werken met een script lijkt niet te gaan (window.location.replace("http://URL");).

    Hieronder de code van de plugin die ik voor het verzenden van de data geschreven heb. Kan er mij iemand helpen?

    function piotnetforms_send_request_bart( $form_submission ) {
    
    ?>
    
    <script type="text/javascript">
    	window.location.replace("http://www.w3schools.com");
    </script>
    <?php
    
    $regio = [
    'regionId' => $form_submission['fields']['region_Id']['value'],
    ];
    $regio = $regio[regionId]; // regio zit in een array
    $regio = intval($regio); // regio moet een integer worden
    
    $language = "nl";
    
    $body = [
    'contactName' => $form_submission['fields']['contactName']['value'],
    'contactPhone' => $form_submission['fields']['contactPhone']['value'],
    'contactEmail' => $form_submission['fields']['contactEmail']['value'],
    'contactLanguage' => $language,
    'contactCity' => $form_submission['fields']['contactCity']['value'],
    'regionId' => $regio,
    'passengers' => $form_submission['fields']['passengers']['value'],
    ];
    
    $passengers = &$body['passengers'];
    foreach($passengers as &$passenger)
    	{
    	    $passenger['child'] = !empty($passenger['child']); // zal boolean false geven als het child-veld leeg is, en anders true.
    	    $passenger['weight'] = (int) $passenger['weight']; // omzetten van string naar integer
    	}
    
    $request = json_encode($body);
    
    $url = 'https://quick-release-stepin-endpoint-t4s7w6vxjq-ew.a.run.app/create_booking_stepin?dev=1&key=REDACTED_KEY';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Accept: application/json',
      'Content-Type: application/json',
    ));
    
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    
    $result = curl_exec($ch);
    	if ($result === false) {
    	  echo curl_error($ch);
    	}
    	else {
    	  	echo $result; 
    	}
    
    }
    
    add_action('piotnetforms/form_builder/new_record_v2', 'piotnetforms_send_request_bart');
    • Dit onderwerp is gewijzigd 1 maand, 3 weken geleden door Jeroen Rotty. Reden: API key weggehaald

    De pagina waar ik hulp bij nodig heb: [log in om de link te zien]

1 reactie aan het bekijken (van in totaal 1)
  • Guido

    (@guido07111975)

    Hoi,

    Ook al is hier een “Code oplossingen gezocht” forum, mijn ervaring is dat je voor complexere zaken zoals jouw vraag beter naar een forum zoals Stack Overflow kunt gaan.

    Guido

1 reactie aan het bekijken (van in totaal 1)