Home / Pemandu / Integrasi Borang Hubungan WordPress Tanpa Pemalam SMTP
PANDUAN INTEGRASI · WORDPRESS & CMS

Integrasi Borang Hubungan WordPress Tanpa Pemalam SMTP

Hapuskan penghantaran wp_mail() yang gagal, penyimpanan kata laluan cleartext dalam wp_options dan pemalam besar dengan menghalakan penyerahan kenalan WordPress terus ke titik akhir borang Lugatu.

1. Masalah dengan Pemalam SMTP WordPress

Kebanyakan tapak WordPress bergantung pada pemalam seperti WP Mail SMTP untuk menghantar pemberitahuan kenalan melalui mel PHP() atau bukti kelayakan SMTP yang disimpan. Apabila alamat IP pengehosan bertukar atau penyedia pengehosan menyekat port 587/465, pertanyaan hilang secara senyap.

2. Integrasi Sisi Pelayan melalui wp_remote_post()

Untuk pembangun tema dan pemalam tersuai, majukan penyerahan borang dengan selamat daripada pelayan WordPress anda menggunakan kunci API ruang kerja anda tanpa mendedahkan rahsia kepada pelawat bahagian hadapan.

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. Pilihan Iframe Benam Kotak Pasir Terus

Jika anda lebih suka kod PHP sifar, benamkan borang Lugatu yang diterbitkan terus pada mana-mana halaman WordPress atau blok HTML Elementor menggunakan iframe responsif kotak pasir kami.

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>

Keselamatan & Pengesahan Invarian

Arahan Keselamatan: Tentukan LUGATU_API_KEY di dalam wp-config.php di luar akar web, jangan sekali-kali dalam skrip yang boleh diakses pelanggan atau fail tema awam.

Menyelesaikan masalah & Ralat Pengingesan Biasa

wp_remote_post() mengembalikan ralat cURL 28: Sambungan tamat masa

Pastikan penyedia pengehosan anda membenarkan trafik HTTPS keluar pada port 443 ke www.lugatu.com.

Soalan Lazim

Adakah saya perlu memasang pemalam khas untuk menggunakan Lugatu di WordPress?

Tidak. Anda boleh sama ada menggunakan penyambung WordPress rasmi kami yang ringan atau hanya membenamkan borang menggunakan iframe HTML standard atau coretan AJAX.

Bersedia untuk membuat titik akhir borang anda?

Bermula secara percuma dalam beberapa saat. Tiada kad kredit diperlukan.

Mula Percuma →