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.
<?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.
<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
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.