Ushirikiano wa Fomu ya Mawasiliano ya WordPress Bila programu-jalizi za SMTP
Ondoa uwasilishaji wa wp_mail() ambao haujafaulu, uhifadhi wa nenosiri la maandishi wazi katika chaguzi za wp_, na programu-jalizi nyingi kwa kuelekeza mawasilisho ya anwani za WordPress moja kwa moja kwenye vituo vya mwisho vya fomu ya Lugatu.
1. Tatizo la Plugins za SMTP za WordPress
Tovuti nyingi za WordPress hutegemea programu-jalizi kama vile WP Mail SMTP kutuma arifa za mawasiliano kupitia barua pepe ya PHP() au vitambulisho vilivyohifadhiwa vya SMTP. Wakati anwani za IP zinazopangisha zinabadilika au watoa huduma wanaopangisha huzuia bandari 587/465, maswali hupotea kimyakimya.
2. Muunganisho wa Upande wa Seva kupitia wp_remote_post()
Kwa wasanidi wa mandhari na programu jalizi maalum, sambaza mawasilisho ya fomu kwa usalama kutoka kwa seva yako ya WordPress kwa kutumia ufunguo wako wa API wa nafasi ya kazi bila kufichua siri kwa wageni wanaotazama mbele.
<?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. Chaguo la Kupachika la Iframe lenye Sandbox moja kwa moja
Ukipendelea msimbo wa sifuri wa PHP, pachika fomu ya Lugatu iliyochapishwa moja kwa moja kwenye ukurasa wowote wa WordPress au kizuizi cha HTML cha Elementor kwa kutumia iframe yetu inayoitikia iliyo na sandbox.
<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>
Tofauti ya Usalama na Uthibitishaji
Maagizo ya Usalama: Bainisha LUGATU_API_KEY ndani ya wp-config.php nje ya mzizi wa wavuti, kamwe katika hati zinazoweza kufikiwa na mteja au faili za mandhari za umma.
Utatuzi na Hitilafu za Kawaida za Kumeza
Hakikisha kuwa mtoa huduma wako anaruhusu trafiki ya nje ya HTTPS kwenye mlango nambari 443 hadi www.lugatu.com.
Maswali Yanayoulizwa Mara Kwa Mara
Je, ninahitaji kusakinisha programu-jalizi maalum ili kutumia Lugatu kwenye WordPress?
Hapana. Unaweza kutumia kiunganishi chetu chepesi chepesi cha WordPress au kupachika tu fomu ukitumia iframe ya kawaida ya HTML au vijisehemu vya AJAX.
Je, uko tayari kuunda mwisho wa fomu yako?
Anza bila malipo kwa sekunde chache. Hakuna kadi ya mkopo inahitajika.