Home / Guides / Connecter des formulaires WordPress sans extensions SMTP | Lugatu
INTÉGRATION CMS · HAUTE FIABILITÉ · ZÉRO EXTENSION

Connecter des formulaires WordPress sans extensions SMTP | Lugatu

Allégez votre site WordPress en supprimant les extensions SMTP capricieuses. Avec Lugatu, transmettez directement les formulaires via une API REST rapide et fiable.

1. Pourquoi les extensions SMTP WordPress posent problème

Des extensions comme WP Mail SMTP ou Contact Form 7 exigent des mises à jour constantes, ralentissent l’administration et bloquent les visiteurs en cas de défaillance du serveur mail.

2. Option A : Soumission directe côté navigateur

Insérez un formulaire HTML dans votre thème ou bloc Gutenberg. Les données partent directement vers Lugatu sans solliciter la base WordPress.

functions.php php
<?php
// Secure WordPress server-side form forwarding
function handle_custom_contact_submission() {
    if ( ! isset( $_POST['contact_nonce'] ) || ! wp_verify_nonce( $_POST['contact_nonce'], 'contact_action' ) ) {
        wp_send_json_error( array( 'message' => 'Security check failed.' ), 403 );
    }

    // Silently drop automated spam if honeypot trap is filled
    if ( ! empty( $_POST['_gotcha'] ) ) {
        wp_send_json_success( array( 'message' => 'Thank you! Message received.' ) );
        return;
    }

    $name    = sanitize_text_field( $_POST['name'] ?? '' );
    $email   = sanitize_email( $_POST['email'] ?? '' );
    $message = sanitize_textarea_field( $_POST['message'] ?? '' );

    $payload = array(
        'fields' => array(
            'name'    => $name,
            'email'   => $email,
            'message' => $message,
        ),
    );

    $api_url = 'https://www.lugatu.com/api/v1/forms/' . LUGATU_FORM_GUID . '/submissions';

    $response = wp_remote_post( $api_url, array(
        'headers' => array(
            'Authorization'   => 'Bearer ' . LUGATU_API_KEY,
            'Content-Type'    => 'application/json',
            'Idempotency-Key' => wp_generate_uuid4(),
        ),
        'body'    => wp_json_encode( $payload ),
        'timeout' => 10,
    ) );

    if ( is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) >= 400 ) {
        wp_send_json_error( array( 'message' => 'Failed to deliver message.' ), 500 );
    }

    wp_send_json_success( array( 'message' => 'Thank you! Message received.' ) );
}
add_action( 'wp_ajax_custom_contact', 'handle_custom_contact_submission' );
add_action( 'wp_ajax_nopriv_custom_contact', 'handle_custom_contact_submission' );

3. Option B : Transmission serveur via wp_remote_post()

Si vous souhaitez valider les données en PHP ou déclencher des actions WordPress, relayez la requête de manière sécurisée avec votre clé API privée.

wordpress-embed.html html
<iframe
  src="https://www.lugatu.com/embed/forms/YOUR_PUBLIC_FORM_ID"
  width="100%"
  height="540"
  frameborder="0"
  style="border:none; border-radius:16px; overflow:hidden;"
  title="Contact Form">
</iframe>

Invariant de sécurité et d'authentification

Sécurité dans WordPress : enregistrez votre LUGATU_API_KEY dans le fichier wp-config.php ou dans les variables d’environnement du serveur, jamais dans le thème public.

Dépannage et erreurs d’ingestion courantes

wp_remote_post renvoie un timeout

Augmentez le délai d’attente à 15 secondes dans les arguments de wp_remote_post et vérifiez que votre hébergeur autorise les requêtes HTTPS sortantes.

Foire aux questions

Dois-je installer une extension WordPress dédiée ?

Non. Vous pouvez utiliser du code HTML pur, Elementor, Divi ou vos propres templates PHP sans aucune extension additionnelle.

Prêt à créer votre point de terminaison de formulaire ?

Commencez gratuitement en quelques secondes. Aucune carte de crédit requise.

Commencez gratuitement →