Preskoči na sadržaj

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_field
  • sanitize_email
  • sanitize_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š.