Home / Vodiči / Integracija WordPress obrasca za kontakt bez SMTP dodataka
VODIČ ZA INTEGRACIJU · WORDPRESS & CMS

Integracija WordPress obrasca za kontakt bez SMTP dodataka

Uklonite neuspjele isporuke wp_mail(), pohranjivanje lozinki jasnog teksta u wp_options i glomazne dodatke usmjeravanjem predaja kontakata WordPressa izravno na krajnje točke obrasca Lugatu.

1. Problem s WordPress SMTP dodacima

Većina WordPress stranica oslanja se na dodatke kao što je WP Mail SMTP za slanje obavijesti o kontaktima putem PHP mail() ili pohranjenih SMTP vjerodajnica. Kada se IP adrese hostinga promijene ili pružatelji usluga hostinga blokiraju port 587/465, upiti se tiho gube.

2. Integracija na strani poslužitelja putem wp_remote_post()

Za programere tema i prilagođenih dodataka, proslijedite slanje obrazaca na siguran način s vašeg WordPress poslužitelja koristeći svoj API ključ radnog prostora bez izlaganja tajni posjetiteljima na sučelju.

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. Opcija ugradnje iframea u izravnom sandboxu

Ako više volite nula PHP koda, ugradite objavljeni Lugatu obrazac izravno na bilo koju WordPress stranicu ili Elementor HTML blok pomoću našeg responzivnog iframea u sandboxu.

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>

Sigurnost i provjera autentičnosti

Sigurnosne upute: Definirajte LUGATU_API_KEY unutar wp-config.php izvan web korijena, nikada u klijentski dostupnim skriptama ili datotekama javnih tema.

Rješavanje problema i uobičajene pogreške gutanja

wp_remote_post() vraća cURL pogrešku 28: veza je istekla

Provjerite dopušta li vaš pružatelj usluga hostinga odlazni HTTPS promet na priključku 443 prema www.lugatu.com.

Često postavljana pitanja

Trebam li instalirati poseban dodatak za korištenje Lugatua na WordPressu?

Ne. Možete koristiti naš lagani službeni WordPress konektor ili jednostavno ugraditi obrasce koristeći standardni HTML iframe ili AJAX isječke.

Jeste li spremni za izradu krajnje točke obrasca?

Započnite besplatno za nekoliko sekundi. Kreditna kartica nije potrebna.

Počni besplatno →