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 или 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 в WordPress?

Не. Можете или да използвате нашия олекотен официален WordPress конектор, или просто да вградите формуляри, като използвате стандартни HTML iframe или AJAX фрагменти.

Готови ли сте да създадете вашата крайна точка на формуляр?

Започнете безплатно за секунди. Не се изисква кредитна карта.

Започнете безплатно →