Home / คำแนะนำ / การรวมแบบฟอร์มการติดต่อ WordPress โดยไม่มีปลั๊กอิน SMTP
คู่มือการบูรณาการ · WORDPRESS และ CMS

การรวมแบบฟอร์มการติดต่อ WordPress โดยไม่มีปลั๊กอิน SMTP

กำจัดการส่ง wp_mail() ที่ล้มเหลว การจัดเก็บรหัสผ่านแบบเคลียร์เท็กซ์ใน wp_options และปลั๊กอินขนาดใหญ่โดยกำหนดเส้นทางการส่งผู้ติดต่อ WordPress ไปยังจุดสิ้นสุดของแบบฟอร์ม Lugatu โดยตรง

1. ปัญหาเกี่ยวกับปลั๊กอิน WordPress SMTP

ไซต์ WordPress ส่วนใหญ่ใช้ปลั๊กอินเช่น WP Mail SMTP เพื่อส่งการแจ้งเตือนผู้ติดต่อผ่าน PHP mail() หรือข้อมูลประจำตัว SMTP ที่เก็บไว้ เมื่อโฮสต์ที่อยู่ IP เปลี่ยนแปลงหรือผู้ให้บริการโฮสต์บล็อกพอร์ต 587/465 การสอบถามจะหายไปอย่างเงียบๆ

2. การรวมฝั่งเซิร์ฟเวอร์ผ่าน wp_remote_post()

สำหรับนักพัฒนาธีมและปลั๊กอินแบบกำหนดเอง ให้ส่งต่อการส่งแบบฟอร์มอย่างปลอดภัยจากเซิร์ฟเวอร์ WordPress ของคุณโดยใช้คีย์ API ของพื้นที่ทำงานของคุณ โดยไม่เปิดเผยความลับแก่ผู้เยี่ยมชมส่วนหน้า

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. ตัวเลือก Iframe แบบฝังแซนด์บ็อกซ์โดยตรง

หากคุณต้องการโค้ด PHP เป็นศูนย์ ให้ฝังแบบฟอร์ม Lugatu ที่เผยแพร่โดยตรงบนหน้า WordPress หรือบล็อก Elementor HTML โดยใช้ iframe ที่ตอบสนองแบบแซนด์บ็อกซ์ของเรา

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>

ความปลอดภัยและการรับรองความถูกต้องไม่แปรผัน

คำแนะนำด้านความปลอดภัย: กำหนด LUGATU_API_KEY ภายใน wp-config.php นอกเว็บรูท ไม่ควรอยู่ในสคริปต์ที่ไคลเอ็นต์เข้าถึงได้หรือไฟล์ธีมสาธารณะ

การแก้ไขปัญหาและข้อผิดพลาดในการนำเข้าทั่วไป

wp_remote_post() ส่งคืนข้อผิดพลาด cURL 28: การเชื่อมต่อหมดเวลา

ตรวจสอบให้แน่ใจว่าผู้ให้บริการโฮสติ้งของคุณอนุญาตการรับส่งข้อมูล HTTPS ขาออกบนพอร์ต 443 ไปยัง www.lugatu.com

คำถามที่พบบ่อย

ฉันจำเป็นต้องติดตั้งปลั๊กอินพิเศษเพื่อใช้ Lugatu บน WordPress หรือไม่?

ไม่ คุณสามารถใช้ตัวเชื่อมต่อ WordPress อย่างเป็นทางการแบบน้ำหนักเบาของเรา หรือเพียงแค่ฝังแบบฟอร์มโดยใช้ HTML iframe มาตรฐานหรือส่วนย่อย AJAX ก็ได้

พร้อมที่จะสร้างจุดสิ้นสุดของแบบฟอร์มแล้วหรือยัง?

เริ่มต้นฟรีในไม่กี่วินาที ไม่ต้องใช้บัตรเครดิต

เริ่มฟรี →