Home / راهنماها / ادغام فرم تماس وردپرس بدون پلاگین SMTP
راهنمای ادغام · WORDPRESS & CMS

ادغام فرم تماس وردپرس بدون پلاگین SMTP

تحویل ناموفق wp_mail()، ذخیره رمز عبور واضح در wp_options و افزونه های حجیم را با مسیریابی ارسالی های تماس وردپرس مستقیماً به نقاط پایانی فرم Lugatu حذف کنید.

1. مشکل پلاگین های SMTP وردپرس

اکثر سایت‌های وردپرس برای ارسال اعلان‌های تماس از طریق نامه PHP () یا اعتبارنامه‌های SMTP ذخیره شده به افزونه‌هایی مانند WP Mail SMTP متکی هستند. هنگامی که آدرس های IP میزبان تغییر می کند یا ارائه دهندگان میزبانی پورت 587/465 را مسدود می کنند، درخواست ها بی سر و صدا از بین می روند.

2. یکپارچه سازی سمت سرور از طریق wp_remote_post()

برای توسعه دهندگان تم و افزونه های سفارشی، فرم های ارسالی را به صورت ایمن از سرور وردپرس خود با استفاده از کلید 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. Direct Sandboxed Embed Iframe Option

اگر کد PHP صفر را ترجیح می‌دهید، یک فرم منتشر شده Lugatu را مستقیماً در هر صفحه وردپرس یا بلوک HTML Elementor با استفاده از 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 در وردپرس باید افزونه خاصی نصب کنم؟

نه. می توانید از رابط رسمی سبک وزن وردپرس ما استفاده کنید یا به سادگی فرم ها را با استفاده از iframe استاندارد HTML یا قطعه های AJAX جاسازی کنید.

برای ایجاد نقطه پایانی فرم خود آماده هستید؟

در عرض چند ثانیه به صورت رایگان شروع کنید. بدون نیاز به کارت اعتباری

رایگان شروع کنید →