Voorbeeld in Wordpress {{ currentPage ? currentPage.title : "" }}

Hier is een voorbeeld van een WordPress-implementatie waarmee je een formulier maakt voor het invoeren van een lid via de API:

Stap 1: Formulier maken in WordPress

Voeg het volgende codefragment toe aan het bestand functions.php van je WordPress-thema of gebruik een plugin zoals "Code Snippets" om dit veilig te integreren.

function lid_aanmaken_form_shortcode() {
    if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['submit_lid'])) {
        // API gegevens
        $endpoint = 'https://leden.poldersoft.nl/AwareIM/REST/<Klant>/InsertPersoon';
        $token = 'eyJhbG…'; // Vervang met jouw API-token

        // Data van het formulier
        $data = array(
            "Token" => $token,
            "Naam" => sanitize_text_field($_POST['naam']),
            "Voornaam" => sanitize_text_field($_POST['voornaam']),
            "Straat" => sanitize_text_field($_POST['straat']),
            "HuisNr" => sanitize_text_field($_POST['huisnummer']),
            "Postcode" => sanitize_text_field($_POST['postcode']),
            "Plaats" => sanitize_text_field($_POST['plaats']),
            "Gemeente" => sanitize_text_field($_POST['gemeente']),
            "Provincie" => sanitize_text_field($_POST['provincie']),
            "DatumGeb" => sanitize_text_field($_POST['geboortedatum']),
            "TelNr" => sanitize_text_field($_POST['telefoonnummer']),
            "EmailAddress" => sanitize_email($_POST['email']),
            "Nummer1" => sanitize_text_field($_POST['nummer1']),
            "Voorletters" => sanitize_text_field($_POST['voorletters']),
            "Aanhef" => sanitize_text_field($_POST['aanhef']),
            "Betaalwijze" => sanitize_text_field($_POST['betaalwijze']),
            "Bedrag" => sanitize_text_field($_POST['bedrag'])
        );

        // API-aanroep
        $response = wp_remote_post($endpoint, array(
            'method' => 'POST',
            'headers' => array(
                'Content-Type' => 'application/json',
                'Authorization' => 'Bearer ' . $token,
            ),
            'body' => json_encode($data),
            'timeout' => 45,
        ));

        // Response verwerken
        if (is_wp_error($response)) {
            echo '<p>Fout bij het versturen: ' . $response->get_error_message() . '</p>';
        } else {
            $result = json_decode(wp_remote_retrieve_body($response), true);
            if ($result && isset($result['LidNr'])) {
                echo '<p>Lid toegevoegd! Lidnummer: ' . esc_html($result['LidNr']) . '</p>';
            } else {
                echo '<p>Fout: ' . wp_remote_retrieve_body($response) . '</p>';
            }
        }
    }

    // Formulier HTML
    ob_start(); ?>
    <form method="post">
        <label>Naam:</label>
        <input type="text" name="naam" required>
        <label>Voornaam:</label>
        <input type="text" name="voornaam" required>
        <label>Straat:</label>
        <input type="text" name="straat" required>
        <label>Huisnummer:</label>
        <input type="text" name="huisnummer" required>
        <label>Postcode:</label>
        <input type="text" name="postcode" required>
        <label>Plaats:</label>
        <input type="text" name="plaats" required>
        <label>Gemeente:</label>
        <input type="text" name="gemeente" required>
        <label>Provincie:</label>
        <input type="text" name="provincie" required>
        <label>Geboortedatum (dd-mm-jjjj):</label>
        <input type="date" name="geboortedatum" required>
        <label>Telefoonnummer:</label>
        <input type="text" name="telefoonnummer" required>
        <label>Emailadres:</label>
        <input type="email" name="email" required>
        <label>Nummer1:</label>
        <input type="text" name="nummer1" required>
        <label>Voorletters:</label>
        <input type="text" name="voorletters" required>
        <label>Aanhef:</label>
        <input type="text" name="aanhef" required>
        <label>Betaalwijze:</label>
        <select name="betaalwijze" required>
            <option value="ideal">iDEAL</option>
            <option value="creditcard">Creditcard</option>
            <option value="overschrijving">Overschrijving</option>
        </select>
        <label>Bedrag:</label>
        <input type="text" name="bedrag" required>
        <button type="submit" name="submit_lid">Lid toevoegen</button>
    </form>
    <?php
    return ob_get_clean();
}
add_shortcode('lid_aanmaken_form', 'lid_aanmaken_form_shortcode');


Hoe het werkt

  1. Shortcode toevoegen:

    • Gebruik de shortcode [lid_aanmaken_form] op een WordPress-pagina om het formulier weer te geven.

  2. Formulierverwerking:

    • Wanneer het formulier wordt ingediend, worden de gegevens verzonden naar het opgegeven API-eindpunt.

    • De functie wp_remote_post wordt gebruikt om de gegevens als JSON naar de API te sturen.

  3. Respons tonen:

    • Bij een succesvolle aanroep wordt het lidnummer (LidNr) en andere gegevens getoond.

    • Bij fouten wordt de foutmelding weergegeven.

  4. Sanitatie:

    • Alle formulierinvoer wordt gecontroleerd met WordPress-functies zoals sanitize_text_field en sanitize_email om beveiligingsrisico’s te beperken.


Gebruik

  1. Voeg een nieuwe pagina toe in WordPress.

  2. Voeg de shortcode [lid_aanmaken_form] in de pagina.

  3. Publiceer de pagina en test het formulier.

Met deze oplossing kun je eenvoudig leden invoeren via je WordPress-site met behulp van de API van PolderSoft.

{{{ content }}}