Kontaktní formulář ve WordPressu
bez jediného pluginu
WPForms, Contact Form 7, Gravity Forms — WordPress pluginy pro formuláře jsou populární, ale přinášejí zbytečnou zátěž: zpomalují web, vyžadují pravidelné aktualizace a bez správně nastaveného SMTP serveru e-maily spolehlivě nedorazí. Existuje elegantnější cesta.
Služba Formspree funguje jako backend pro váš vlastní HTML formulář — napíšete kód, vložíte svůj endpoint a zprávy chodí přímo do e-mailu. Žádný plugin, žádná konfigurace SMTP, žádné záhadné problémy s doručováním.
- Rychlejší web — žádný extra JavaScript ani CSS, které plugin nahraje na každou stránku
- Spolehlivé doručování — Formspree má vlastní infrastrukturu, ne váš sdílený hosting
- Nulová údržba — není co aktualizovat, není co konfigurovat
- Spam ochrana — honeypot a volitelná reCAPTCHA integrovaná v Formspree
01 Registrace a nastavení Formspree
Vytvořte účet
Přejděte na formspree.io a klikněte na Start for free. Registrace přes Google trvá 30 sekund.
Ověřte e-mailovou adresu
V sekci Account → Linked Emails přidejte e-mail, na který chcete zprávy dostávat, a potvrďte ho kliknutím v ověřovacím e-mailu.
Vytvořte formulář a zkopírujte endpoint
Klikněte na New Form, pojmenujte ho (např. „Kontakt — honsdavid.cz") a zkopírujte váš unikátní endpoint ve tvaru https://formspree.io/f/xxxxxxxx.
02 Kód formuláře
Vložte tento kód do HTML widgetu v Elementoru nebo přímo do editoru stránky „Kontakt". Nahraďte endpoint svým vlastním.
<form action="https://formspree.io/f/xjkaaeyw" method="POST"
style="display:flex;flex-direction:column;gap:15px;max-width:600px;margin:auto;">
<input type="text" name="name"
placeholder="Vaše jméno *" required
style="padding:12px;border:1px solid #ccc;border-radius:6px;">
<input type="email" name="email"
placeholder="Váš e-mail *" required
style="padding:12px;border:1px solid #ccc;border-radius:6px;">
<input type="text" name="subject"
placeholder="Předmět"
style="padding:12px;border:1px solid #ccc;border-radius:6px;">
<textarea name="message"
placeholder="Vaše zpráva *" required
style="padding:12px;border:1px solid #ccc;border-radius:6px;min-height:130px;"></textarea>
<!-- honeypot anti-spam -->
<input type="text" name="_gotcha" style="display:none">
<button type="submit"
style="background:#1a6b3c;color:white;padding:14px;border:none;
border-radius:6px;cursor:pointer;font-weight:700;font-size:15px;">
Odeslat zprávu
</button>
</form>
Oproti originálnímu kódu je přidáno pole subject (předmět zprávy — přehlednější v e-mailu) a honeypot pole _gotcha, které je neviditelné pro lidi, ale chytne základní boty.
03 JavaScript potvrzení odeslání
Místo přesměrování na výchozí Formspree stránku si zobrazíme vlastní potvrzení přímo na webu. Vložte tento skript za formulář:
<script>
const form = document.querySelector('form[action*="formspree"]');
form.addEventListener('submit', async (e) => {
e.preventDefault();
const btn = form.querySelector('button[type="submit"]');
btn.textContent = 'Odesílám…';
btn.disabled = true;
const data = new FormData(form);
try {
const response = await fetch(form.action, {
method: 'POST',
body: data,
headers: { 'Accept': 'application/json' }
});
if (response.ok) {
form.innerHTML = `
<div style="text-align:center;padding:32px;color:#1a6b3c;">
<div style="font-size:40px;margin-bottom:12px;">✓</div>
<strong>Zpráva odeslána!</strong><br>
Ozvu se vám do 24 hodin.
</div>`;
} else {
btn.textContent = 'Odeslat zprávu';
btn.disabled = false;
alert('Při odesílání došlo k chybě. Zkuste to prosím znovu.');
}
} catch {
btn.textContent = 'Odeslat zprávu';
btn.disabled = false;
alert('Chyba připojení. Zkuste to prosím znovu.');
}
});
</script>
Skript při odeslání deaktivuje tlačítko (zabrání dvojitému odeslání), po úspěchu nahradí celý formulář potvrzovací zprávou a při chybě ho znovu aktivuje.
04 Otestování a ověření
- Vyplňte testovací údaje a odešlete zprávu
- Zkontrolujte doručení e-mailu (včetně složky Spam nebo Promotions)
- Ověřte, že se zobrazí potvrzovací hláška na webu
- Ve Formspree účtu zkontrolujte záznam v sekci Submissions
- Zkuste odeslat prázdný formulář — required pole by měla bránit odeslání
Bezplatný plán Formspree dovoluje 50 zpráv měsíčně. Pro většinu živnostníků a menších webů naprosto dostačující. Potřebujete-li víc, základní placený plán (Gold) stojí kolem 8 USD/měsíc a limit zvedne na 1 000 zpráv.
Chcete pomoci s nastavením webu nebo formuláře?
Pomohu vám s úpravou, designem nebo kompletní péčí o WordPress web — od rychlosti přes SEO po kontaktní formulář.
Nezávazně mě kontaktujteodpovídám do 24 hodinNejčastější dotazy
Pomáhám firmám a e-shopům na Shoptetu být vidět ve vyhledávačích. Přes 9 let praxe a desítky spokojených klientů, pro které SEO přináší skutečně měřitelné výsledky. Spoluzakladatel charitativního e-shopu dudlu.cz. Mimo práci fanoušek esportu, snowboardista, cestovatel a sledovač všeho, co se hýbe v technologiích.