Home / Przewodniki / Integracja formularza kontaktowego WordPress bez wtyczek SMTP
PRZEWODNIK INTEGRACJI · WORDPRESS I CMS

Integracja formularza kontaktowego WordPress bez wtyczek SMTP

Wyeliminuj nieudane dostawy wp_mail(), przechowywanie haseł w postaci zwykłego tekstu w wp_options i nieporęczne wtyczki, kierując przesłane kontakty WordPress bezpośrednio do punktów końcowych formularzy Lugatu.

1. Problem z wtyczkami SMTP WordPress

Większość witryn WordPress korzysta z wtyczek, takich jak WP Mail SMTP, do wysyłania powiadomień o kontaktach za pośrednictwem PHP mail() lub przechowywanych danych uwierzytelniających SMTP. Gdy zmieniają się adresy IP hostingu lub dostawcy hostingu blokują port 587/465, zapytania są dyskretnie tracone.

2. Integracja po stronie serwera poprzez wp_remote_post()

W przypadku twórców motywów i niestandardowych wtyczek możesz bezpiecznie przekazywać przesłane formularze z serwera WordPress przy użyciu klucza API obszaru roboczego, nie ujawniając tajemnic osobom odwiedzającym frontend.

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. Opcja osadzania ramki iframe w trybie piaskownicy

Jeśli wolisz zerowy kod PHP, osadź opublikowany formularz Lugatu bezpośrednio na dowolnej stronie WordPress lub w bloku HTML Elementora, korzystając z naszej responsywnej ramki iframe w trybie piaskownicy.

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>

Niezmiennik bezpieczeństwa i uwierzytelniania

Instrukcja bezpieczeństwa: Zdefiniuj LUGATU_API_KEY wewnątrz wp-config.php poza katalogiem głównym sieci, nigdy w skryptach dostępnych dla klienta lub publicznych plikach motywów.

Rozwiązywanie problemów i typowe błędy przetwarzania

wp_remote_post() zwraca błąd cURL 28: Przekroczono limit czasu połączenia

Upewnij się, że Twój dostawca usług hostingowych zezwala na wychodzący ruch HTTPS na porcie 443 do www.lugatu.com.

Często zadawane pytania

Czy muszę zainstalować specjalną wtyczkę, aby móc korzystać z Lugatu na WordPress?

Nie. Możesz skorzystać z naszego lekkiego, oficjalnego łącznika WordPress lub po prostu osadzić formularze przy użyciu standardowych ramek HTML iframe lub fragmentów AJAX.

Gotowy do utworzenia punktu końcowego formularza?

Rozpocznij bezpłatnie w ciągu kilku sekund. Nie jest wymagana karta kredytowa.

Zacznij za darmo →