$bericht ), $code );
};
// 1. Spamfilters: honeypot en minimale invultijd (3 sec).
if ( ! empty( $_POST['website'] ) ) {
wp_send_json_success(); // doen alsof het gelukt is
}
if ( isset( $_POST['elapsed'] ) && (int) $_POST['elapsed'] < 3000 ) {
$fout( 'Het formulier werd te snel verzonden. Probeer het opnieuw.' );
}
// 2. Eenvoudige rate limit: max. 5 verzoeken per uur per IP-adres.
$ip = isset( $_SERVER['REMOTE_ADDR'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REMOTE_ADDR'] ) ) : 'onbekend';
$key = 'mda_contact_' . md5( $ip );
$aantal = (int) get_transient( $key );
if ( $aantal >= 5 ) {
$fout( 'U heeft te veel berichten verstuurd. Probeer het later opnieuw.', 429 );
}
// 3. Velden ophalen en opschonen.
$naam = sanitize_text_field( wp_unslash( $_POST['naam'] ?? '' ) );
$bedrijf = sanitize_text_field( wp_unslash( $_POST['bedrijfsnaam'] ?? '' ) );
$telefoon = sanitize_text_field( wp_unslash( $_POST['telefoon'] ?? '' ) );
$email = sanitize_email( wp_unslash( $_POST['email'] ?? '' ) );
$dienst = sanitize_text_field( wp_unslash( $_POST['dienst'] ?? '' ) );
$bericht = sanitize_textarea_field( wp_unslash( $_POST['bericht'] ?? '' ) );
$privacy = ! empty( $_POST['privacy'] );
$verwerk = ! empty( $_POST['verwerking'] );
// 4. Validatie van de verplichte velden.
if ( strlen( $naam ) < 2 || strlen( $telefoon ) < 7 || ! is_email( $email ) || strlen( $bericht ) < 5 ) {
$fout( 'Controleer of alle verplichte velden correct zijn ingevuld.' );
}
if ( ! $privacy || ! $verwerk ) {
$fout( 'U moet akkoord gaan met het privacybeleid en de verwerking van uw gegevens.' );
}
// 5. Mail opstellen. Afzender = eigen domein (SPF/DKIM), antwoorden gaan naar de klant.
$naar = 'websitecontact@mdagroup.eu';
$onderwerp = 'Nieuw contactverzoek via mdagroup.eu - ' . $naam;
$regels = array(
'Naam: ' . $naam,
'Bedrijfsnaam: ' . ( $bedrijf ?: '-' ),
'Telefoonnummer: ' . $telefoon,
'E-mailadres: ' . $email,
'Dienst(en): ' . ( $dienst ?: '-' ),
'',
'Bericht:',
$bericht,
'',
'Akkoord privacybeleid: ja',
'Akkoord gegevensverwerking voor dit contactverzoek: ja',
'Verzonden op: ' . wp_date( 'd-m-Y H:i' ),
);
$headers = array(
'Content-Type: text/plain; charset=UTF-8',
'From: MDA Group website ',
'Reply-To: ' . $naam . ' <' . $email . '>',
);
$verzonden = wp_mail( $naar, $onderwerp, implode( "\n", $regels ), $headers );
if ( ! $verzonden ) {
$fout( 'Verzenden is niet gelukt. Probeer het later opnieuw of mail naar websitecontact@mdagroup.eu.', 500 );
}
set_transient( $key, $aantal + 1, HOUR_IN_SECONDS );
wp_send_json_success();
}
Heeft u een vraag of wilt u meer weten over onze diensten? Laat uw gegevens achter en wij nemen zo snel mogelijk contact met u op.
Velden met een * zijn verplicht.