Kako napraviti contact formu bez pluginova u WordPressu (uz pomoć PHP-a)
Većina WordPress sajtova koristi pluginove poput Contact Form 7 ili WPForms za kontakt forme. Iako su praktični, često dolaze sa nepotrebnim opcijama, dodatnim CSS i JavaScript fajlovima, te mogu negativno uticati na performanse sajta.
Ako želiš brži, lakši i potpuno kontrolisan sistem, contact forma bez pluginova je odlično rješenje. U ovom vodiču pokazujem kako da napraviš jednostavnu, sigurnu i funkcionalnu contact formu koristeći čisti HTML i PHP, direktno u WordPressu.
Zašto praviti contact formu bez pluginova
Prije nego pređemo na kod, evo nekoliko jasnih prednosti ovog pristupa:
- Manje opterećenje sajta
- Potpuna kontrola nad kodom
- Nema konflikta sa drugim pluginovima
- Lakše prilagođavanje dizajnu
- Profesionalniji pristup kod custom projekata
Ovaj metod je idealan za custom WordPress teme i agencijske projekte.
Korak 1: Kreiranje HTML forme
Contact forma se može dodati direktno u template fajl ili kroz custom page template.
Osnovni HTML izgled forme:
<form method="post" action="">
<label for="name">Ime</label>
<input type="text" name="name" id="name" required>
<label for="email">Email</label>
<input type="email" name="email" id="email" required>
<label for="message">Poruka</label>
<textarea name="message" id="message" required></textarea>
<button type="submit" name="contact_submit">Pošalji</button>
</form>
Forma koristi POST metodu i ima dugme sa imenom contact_submit koje ćemo kasnije koristiti u PHP logici.
Korak 2: Obrada forme u PHP-u
PHP kod možeš dodati u isti template fajl ili u functions.php.
Osnovna provjera i slanje emaila izgleda ovako:
<?php
if ( isset($_POST['contact_submit']) ) {
$name = sanitize_text_field($_POST['name']);
$email = sanitize_email($_POST['email']);
$message = sanitize_textarea_field($_POST['message']);
if ( empty($name) || empty($email) || empty($message) ) {
echo '<p>Molimo popunite sva polja.</p>';
return;
}
if ( ! is_email($email) ) {
echo '<p>Email adresa nije validna.</p>';
return;
}
$to = get_option('admin_email');
$subject = 'Nova poruka sa sajta';
$headers = array(
'Content-Type: text/html; charset=UTF-8',
'Reply-To: ' . $email
);
$body = "
<strong>Ime:</strong> {$name}<br>
<strong>Email:</strong> {$email}<br><br>
<strong>Poruka:</strong><br>
{$message}
";
if ( wp_mail($to, $subject, $body, $headers) ) {
echo '<p>Poruka je uspješno poslana.</p>';
} else {
echo '<p>Došlo je do greške. Pokušajte ponovo.</p>';
}
}
?>
Ovdje se koristi WordPress funkcija wp_mail, što je preporučeni način slanja emailova u WP okruženju.
Korak 3: Sigurnost i sanitizacija podataka
Primijeti da koristimo funkcije:
sanitize_text_fieldsanitize_emailsanitize_textarea_field
One štite sajt od XSS i neželjenog unosa. Nikada nemoj obrađivati formu bez sanitizacije podataka.
Ako želiš dodatni nivo sigurnosti, možeš dodati i nonce provjeru.
Korak 4: Osnovni styling forme
Pošto ne koristimo plugin, stilizacija je potpuno u tvojoj kontroli.
Primjer jednostavnog CSS-a:
form {
max-width: 500px;
}
label {
display: block;
margin-top: 15px;
}
input,
textarea {
width: 100%;
padding: 10px;
margin-top: 5px;
}
button {
margin-top: 20px;
padding: 12px 20px;
cursor: pointer;
}
Ovo je samo baza, u praksi bi stil prilagodio dizajnu sajta.
Kada koristiti ovaj pristup
Contact forma bez pluginova je idealna kada:
- Radiš custom WordPress temu
- Gradiš brze landing stranice
- Praviš sajtove za klijente koji žele minimalizam
- Želiš potpunu kontrolu nad performansama
Za kompleksne forme sa uploadima i integracijama, pluginovi i dalje mogu imati smisla.
Zaključak
Pravljenje contact forme bez pluginova u WordPressu nije komplikovano, a donosi brojne prednosti u pogledu brzine, sigurnosti i fleksibilnosti. Ovakav pristup je posebno koristan za profesionalne projekte i agencijski rad gdje kvalitet koda ima prednost nad brzim rješenjima.
Ako ti treba custom WordPress rješenje bez nepotrebnih pluginova, znaš gdje da nas nađeš.
