Home / Hướng dẫn / Tích hợp biểu mẫu liên hệ WordPress không cần plugin SMTP
HƯỚNG DẪN TÍCH HỢP · WORDPRESS & CMS

Tích hợp biểu mẫu liên hệ WordPress không cần plugin SMTP

Loại bỏ việc gửi wp_mail() không thành công, lưu trữ mật khẩu văn bản rõ ràng trong wp_options và các plugin cồng kềnh bằng cách định tuyến các lần gửi liên hệ WordPress trực tiếp đến các điểm cuối của biểu mẫu Lugatu.

1. Sự cố với plugin WordPress SMTP

Hầu hết các trang web WordPress đều dựa vào các plugin như WP Mail SMTP để gửi thông báo liên hệ qua PHP mail() hoặc thông tin xác thực SMTP được lưu trữ. Khi địa chỉ IP lưu trữ thay đổi hoặc nhà cung cấp dịch vụ lưu trữ chặn cổng 587/465, các yêu cầu sẽ bị mất âm thầm.

2. Tích hợp phía máy chủ thông qua wp_remote_post()

Đối với các nhà phát triển chủ đề và plugin tùy chỉnh, hãy chuyển tiếp việc gửi biểu mẫu một cách an toàn từ máy chủ WordPress của bạn bằng khóa API không gian làm việc mà không tiết lộ bí mật cho khách truy cập.

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. Tùy chọn khung nội tuyến nhúng hộp cát trực tiếp

Nếu bạn không muốn có mã PHP, hãy nhúng biểu mẫu Lugatu đã xuất bản trực tiếp trên bất kỳ trang WordPress hoặc khối HTML Elementor nào bằng cách sử dụng iframe phản hồi được đóng hộp cát của chúng tôi.

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>

Bảo mật & xác thực bất biến

Hướng dẫn bảo mật: Xác định LUGATU_API_KEY bên trong wp-config.php bên ngoài web root, không bao giờ trong các tập lệnh mà máy khách có thể truy cập hoặc các tệp chủ đề công khai.

Khắc phục sự cố và các lỗi nhập thường gặp

wp_remote_post() trả về lỗi cURL 28: Đã hết thời gian kết nối

Đảm bảo nhà cung cấp dịch vụ lưu trữ của bạn cho phép lưu lượng HTTPS gửi đi trên cổng 443 đến www.lugatu.com.

Câu hỏi thường gặp

Tôi có cần cài đặt plugin đặc biệt để sử dụng Lugatu trên WordPress không?

Không. Bạn có thể sử dụng trình kết nối WordPress chính thức gọn nhẹ của chúng tôi hoặc chỉ cần nhúng biểu mẫu bằng cách sử dụng iframe HTML tiêu chuẩn hoặc đoạn mã AJAX.

Bạn đã sẵn sàng tạo điểm cuối biểu mẫu chưa?

Bắt đầu miễn phí trong vài giây. Không cần thẻ tín dụng.

Bắt đầu miễn phí →