OW Forms — Dokümantasyon
WordPress için modern, GDPR-yerel bir form oluşturucu. Yazar: OptionWeb — Julien Daniel Eklenti ana sayfası: https://optionweb.dev/tr/addons/ow-forms/ Lisans: GPL-2.0-or-later Bu belgenin kapsadığı sürüm: 1.0.2
İçindekiler
- Genel bakış
- Kurulum
- Hızlı başlangıç — ilk formunuz
- Alan türleri
- Anti-spam yığını
- GDPR özellikleri
- E-posta bildirimleri
- Webhooks
- Dosya yüklemeleri
- Render: shortcode, Gutenberg, REST
- Contact Form 7 içe aktarıcısı
- Ayarlar referansı
- REST API
- Geliştirici hook'ları (filters & actions)
- OW Consent / OW Shield ile entegrasyon
- Uluslararasılaştırma
- Sorun giderme
- SSS
Genel bakış
OW Forms, şema güdümlü bir form oluşturucudur. Her form, alanlarını, doğrulamayı ve gönderim davranışını tanımlayan bir JSON belgesidir. Eklenti bu şemayı erişilebilir HTML olarak render eder, gönderimleri sunucuda doğrular, bunları dört katmanlı bir anti-spam yığınından geçirir, izin verdiğiniz şeyleri kalıcı hale getirir ve e-posta + webhook bildirimlerini tetikler.
Eklentide neler var (her şey ücretsiz, GPL-2):
- 17 alan türlü JSON şema motoru
- 4 katmanlı anti-spam: honeypot, time-trap, çok sağlayıcılı CAPTCHA, IP itibarı
- Yerel GDPR onayı + saklama + DSAR
- REST API (namespace
owf/v1) — herkese açık submit + admin CRUD - Gutenberg bloğu + shortcode + PHP render API'si
- HMAC ile imzalanmış giden webhooks
- Tek tıkla Contact Form 7 içe aktarıcısı
- Görsel tutarlılık için OW Canvas tema token'larını otomatik algılar
Bilerek YAPMADIKLARI:
- Ödeme işleme (WooCommerce + özel bir checkout kullanın)
- Basit ileri/geri ötesinde çoklu sayfa sihirbazları (özel bir wizard eklentisi kullanın)
- v1'de drag-and-drop görsel oluşturucu (yalnızca JSON düzenleyici; görsel oluşturucu yol haritasında)
Kurulum
WordPress.org'dan (önerilen)
- WordPress admin → Eklentiler → Yeni Ekle
OW Formsaraması yapın- Şimdi Kur'a, ardından Etkinleştir'e tıklayın
.zip yüklemeden
ow-forms-1.0.2.zipdosyasını https://optionweb.dev/tr/addons/ow-forms/ adresinden indirin- Eklentiler → Yeni Ekle → Eklenti Yükle
- Dosyayı seçin, Şimdi Kur'a, ardından Etkinleştir'e tıklayın
Gereksinimler
- WordPress 6.0 veya üzeri
- PHP 7.4 veya üzeri (8.1+ önerilir)
JSONsütun desteği olan MySQL/MariaDB (5.7+ / 10.2+)
Kurulan şeyler
Etkinleştirildiğinde OW Forms üç özel tablo oluşturur:
{prefix}_owf_submissions— gönderim payload'ları + spam meta verileri{prefix}_owf_files— yüklenen dosyalar kaydı{prefix}_owf_log— gönderim denetim izi
Ayrıca form şemalarını saklamak için kullanılan bir Custom Post Type owf_form
(herkese açık sorgulanabilir değil).
Hızlı başlangıç
Etkinleştirme sonrası varsayılan bir "İletişim" formu otomatik olarak oluşturulur.
- Admin'de OW Forms → Formlar bölümüne gidin
- Varsayılan formun ID'sini not edin (ör.
1) - Herhangi bir sayfa veya yazıya shortcode'u yapıştırın:
[owf_form id="1"]
…veya OW Forms Gutenberg bloğunu ekleyin ve açılır menüden formu seçin.
Hepsi bu. Form render edilir, gönderimleri kabul eder, admin_email adresine bir admin
e-postası gönderir ve gönderimi veritabanına kaydeder.
Özelleştirmek için, formu OW Forms → Formlar → [Düzenle]'de açın ve doğrudan JSON şemasını değiştirin. Görsel bir oluşturucu v1.1 yol haritasındadır.
Alan türleri
OW Forms 17 alan türünü destekler. Şemadaki her alan, en az type ve name içeren
bir nesnedir; çoğu ayrıca label, help, required, placeholder ve türe özgü
seçenekleri de kabul eder.
type | Amaç | Önemli seçenekler |
|---|---|---|
text | Tek satır metin | placeholder, pattern, maxlength |
email | E-posta adresi | Otomatik RFC 5322 doğrulaması |
tel | Telefon numarası | Esnek doğrulama (E.164 uyumlu) |
url | URL | Otomatik http(s):// doğrulaması |
number | Sayısal | min, max, step |
textarea | Çok satırlı metin | rows, maxlength |
select | Tekli açılır liste | options: [{value, label}] |
radio | Tekli seçim | options: [{value, label}] |
checkbox | Tekli boolean | default: bool |
checkbox-group | Çoklu seçim | options: [{value, label}] |
date | Tarih seçici | min, max (YYYY-MM-DD) |
time | Saat seçici | min, max (HH:MM) |
datetime | Tarih + saat | min, max (YYYY-MM-DDTHH:MM) |
file | Dosya yükleme | multiple: bool, accept |
hidden | Gizli değer | İzleme için yararlı |
rating | 1–5 yıldız değerlendirme | — |
consent | GDPR onay kutusu | GDPR açıkken otomatik eklenir |
Şema örneği
{
"title": "Contact us",
"fields": [
{
"type": "text",
"name": "name",
"label": "Your name",
"required": true,
"placeholder": "Jane Doe"
},
{
"type": "email",
"name": "email",
"label": "Email",
"required": true
},
{
"type": "select",
"name": "subject",
"label": "How can we help?",
"required": true,
"options": [
{"value": "quote", "label": "Request a quote"},
{"value": "support", "label": "Technical support"},
{"value": "other", "label": "Other"}
]
},
{
"type": "textarea",
"name": "message",
"label": "Message",
"required": true,
"rows": 6
}
],
"submit": {
"label": "Send",
"success_message": "Thanks — we will reply within 24 hours.",
"redirect_url": ""
}
}
Alanların name değerleri, kaydedilen payload'da anahtarlar ve e-posta şablonlarında
kullanabileceğiniz token'lar olur ({{name}}, {{email}}, vb.).
Anti-spam yığını
OW Forms paralel olarak dört bağımsız katman çalıştırır. Her katman bir puan katkısı atar; ≥ 80 puan alan bir gönderim sessizce düşürülür — hata mesajı döndürülmez, böylece botlar korumaya karşı yineleme yapamaz.
1. Honeypot
Botların doldurduğu ve insanların doldurmadığı görsel olarak gizli bir metin girişi. Ayar:
spam_honeypot_enabled(varsayılan:true)
2. Time-trap
Yapılandırılabilir bir eşikten daha hızlı tamamlanan gönderimleri reddeder (tipik botlar anında POST eder).
spam_timetrap_enabled(varsayılan:true)spam_timetrap_min_seconds(varsayılan:2)
3. CAPTCHA (çok sağlayıcılı)
Sağlayıcının API'sine karşı sunucudan sunucuya token doğrulaması. Şunlardan birini seçin:
turnstile— Cloudflare Turnstile (önerilen, gizlilik öncelikli, challenge UX'i yok)recaptcha_v3— Google reCAPTCHA v3 (görünmez)hcaptcha— hCaptcha (görünür widget)friendly_captcha— Friendly Captcha (self-hosted widget, MIT lisanslı, AB dostu)
spam_captcha_provider, spam_captcha_site_key ve spam_captcha_secret_key değerlerini
Anti-spam ayarlar sekmesinde ayarlayın. Varsayılan none.
Not: Turnstile / reCAPTCHA / hCaptcha widget JS'leri sağlayıcının kendi origin'inden yüklenir (JS'leri sunucu tarafında bir origin imza kontrolü yapar). Friendly Captcha
assets/js/vendor/altında self-hosted'dur.
4. IP itibarı (isteğe bağlı)
OW Shield kuruluyken ve aktifken, OW Forms gönderimleri puanlamak için onun IP itibar akışını kullanır:
spam_owshield_iprep(varsayılan:true)spam_block_disposable_emails(varsayılan:true) —@mailinator,@tempmailve ~120 diğer geçici alan adını reddeder
Ek sezgisel kurallar
spam_min_words_per_text_area— textarea'larda en az N kelime isterspam_max_links_per_submission— payload'da N'den fazla URL varsa reddederspam_blocklist_emails,spam_blocklist_words,spam_blocklist_ips— kendi listeleriniz
Loglama
Her spam kararı nedeniyle birlikte loglanır. Eşikleri körü körüne uçmadan ayarlamak için OW Forms → Gönderimler → filtre "spam" seçeneğine bakın.
GDPR özellikleri
GDPR uyumluluğu yereldir. Varsayılanlar muhafazakârdır; yalnızca bunun için hukuki danışmanlığa sahipseniz gevşetin.
Onay kutusu
gdpr_consent_required true (varsayılan) olduğunda her formun altına otomatik olarak
bir onay kutusu eklenir. Metin yapılandırılabilir:
'gdpr_consent_text' => __(
'I agree that my data will be processed to respond to my inquiry, in accordance with the privacy policy.',
'ow-forms'
)
gdpr_auto_link_privacy açıksa (varsayılan), "privacy policy" / "gizlilik politikası"
ifadeleri, OW Consent eklentisi etkinse onun gizlilik politikası URL'sine, aksi halde
WP'de yapılandırdığınız Gizlilik Sayfasına otomatik olarak bağlanır.
IP saklama modları
store_ip ayarı:
| Değer | Saklanan |
|---|---|
none | Hiçbir şey — hiçbir IP tutulmaz |
pseudonymized (varsayılan) | 192.168.1.42 → 192.168.1.0 (IPv4) / ilk 4 grup (IPv6) |
full | Tam IP — yalnızca yasal dayanağınız izin veriyorsa kullanın |
User agent saklama
store_user_agent ayarı:
| Değer | Saklanan |
|---|---|
none | Hiçbir şey |
hashed (varsayılan) | UA + wp_salt() SHA-256 değeri |
full | Kesilmiş UA dizesi (maks. 64 chars) |
Saklama ve temizleme
Günlük bir cron, gdpr_retention_days (varsayılan: 1095 gün — potansiyel müşteri
verileri için CNIL standardı) değerinden eski gönderimleri temizler. Otomatik temizlemeyi
devre dışı bırakmak için 0 olarak ayarlayın.
gdpr_auto_delete_after_response true ise, bir gönderimi "işlendi" olarak
işaretlemek onu yüklenen dosyalarla birlikte hemen siler.
DSAR — Veri sahibi erişimi / silme
Form e-postaları saklama sırasında wp_salt() ile hash'lenir. OW Consent aktifken
bir e-posta adresi için DSAR silme işlemi gerçekleştirildiğinde, OW Forms email_hash
ile eşleşen gönderimleri otomatik olarak siler ve şunu tetikler:
do_action( 'owf_gdpr_erased_for_email', $hash, $count );
OW Consent olmadan silmeyi manuel olarak çağırabilirsiniz:
OWF_GDPR::erase_by_email( 'user@example.com' ); // returns int count
E-posta bildirimleri
Şablonlar
Hem admin bildirimi hem de kullanıcı otomatik yanıtı {{token}} değişimini destekler:
| Token | Şuna dönüşür |
|---|---|
{{site_name}} | get_bloginfo('name') |
{{form_title}} | Formun başlığı |
{{form_id}} | Sayısal form ID'si |
{{submission_id}} | Sayısal gönderim ID'si (saklanmadıysa 0) |
{{date}} | Gönderim zaman damgası |
{{ip}} | store_ip moduna göre IP |
{{page_url}} | Formun gönderildiği URL |
{{all_fields}} | Tüm alan anahtar/değer çiftleri |
{{<field_name>}} | name ile herhangi bir alan (ör. {{email}}, {{message}}) |
Ayarlar
| Ayar | Varsayılan | Notlar |
|---|---|---|
default_recipient_email | boş → admin_email | Form başına schema.mail.recipient ile geçersiz kılınabilir |
from_name | boş | Gönderenin görünen adı |
from_email | boş → WP varsayılanı | Gönderen adresi |
mail_html | true | false düz metne geçer |
mail_admin_subject | [{{site_name}}] New message via {{form_title}} | |
mail_admin_body | boş → alanlardan otomatik oluşturulur | |
mail_user_autoreply_enabled | true | |
mail_user_subject | We have received your message | |
mail_user_body | boş → genel onay | |
mail_failed_alert_email | boş | Mail gönderimi başarısız olduğunda bilgilendirilir |
Form başına geçersiz kılma
Form şeması global değerleri geçersiz kılabilir:
{
"mail": {
"recipient": "sales@example.com",
"subject": "New lead — {{name}}",
"body": "Lead: {{name}}\\nEmail: {{email}}\\nMessage: {{message}}",
"autoreply": true,
"autoreply_subject": "Thanks, {{name}}!",
"autoreply_body": "Hi {{name}},\\n\\nWe got your message."
}
}
Webhooks
webhook_url ayarlandığında, her başarılı gönderim bir HTTP POST tetikler.
Payload (JSON)
{
"form_id": 1,
"form_title": "Contact",
"submission_id": 42,
"received_at": "2026-05-13T14:32:18+00:00",
"fields": { "name": "Jane", "email": "jane@example.com", "message": "Hi" },
"site": "https://example.com"
}
HMAC imzası
webhook_secret ayarlanmışsa, istek şunu içerir:
X-OWF-Signature: sha256=<hex digest of HMAC-SHA256(body, secret)>
Alıcı tarafı doğrulaması (Node örneği):
const expected = crypto
.createHmac('sha256', SECRET)
.update(rawBody)
.digest('hex');
const provided = req.headers['x-owf-signature'].replace(/^sha256=/, '');
if (!crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(provided))) {
return res.status(401).end('bad sig');
}
Yeniden denemeler
Alıcı 5xx döndürür veya zaman aşımına uğrarsa, OW Forms üstel backoff ile yeniden dener (60 s → 5 dk → 30 dk). 3 başarısızlıktan sonra webhook kalıcı olarak başarısız diye loglanır ama gönderimi engellemez.
Dosya yüklemeleri
allow_file_uploads açıkken (varsayılan true), file türündeki herhangi bir alan
kabul edilir. Pipeline:
- Sunucu tarafı doğrulama — dosya boyutu (
max_file_size_mb, varsayılan 8 MB), uzantı allowlist'i (allowed_file_types) vewp_get_mime_types()ile karşılıklı referans verilen birfinfoMIME kontrolü. - Depolama —
wp-content/uploads/owf-uploads/YYYY/MM/<sha256>.<ext>, deny-all.htaccess(Apache) ve boşindex.php(Nginx/IIS) ile. - Veritabanı kaydı — dosya meta verileri + SHA-256 hash, üst gönderim ID'sine bağlı
olarak
{prefix}_owf_filesiçinde. - Temizlik — bir gönderim silindiğinde (manuel olarak, saklama ile veya DSAR ile), bağlı tüm dosyalar kaldırılır.
Önemli: OW Forms WordPress medya kütüphanesini değil, özel bir izole yükleme yolu kullanır, bu nedenle yüklenen dosyalar standart
/wp-json/wp/v2/mediaendpoint'i üzerinden keşfedilemez ve küçük resimler oluşturulmaz. Bu kasıtlıdır — form ekleri form sahibine özeldir.
İzin verilen dosya türleri (varsayılan)
pdf, jpg, jpeg, png, webp, doc, docx, xls, xlsx, csv, txt
Genişletmek için:
add_filter( 'owf_settings', function( $s ) {
$s['allowed_file_types'] = array_merge(
(array) $s['allowed_file_types'],
array( 'odt', 'ods', 'zip' )
);
return $s;
} );
Render
Shortcode
[owf_form id="42"]
[owf_form slug="contact"]
id (sayısal yazı ID'si) veya slug (yazı slug'ı) — biri gereklidir.
Gutenberg bloğu
Blok düzenleyicide, blok ekleyicide "OW Forms" araması yapın ve açılır menüden formunuzu seçin.
PHP
echo OWF_Form::render( 42 );
// or
echo do_shortcode( '[owf_form id="42"]' );
REST
Form programatik olarak da gönderilebilir — bkz. REST API.
CF7 içe aktarıcısı
Contact Form 7 yüklüyse veya yüklü olduysa, OW Forms tek tıkla bir içe aktarıcı ile gelir.
OW Forms → Araçlar → Contact Form 7'den İçe Aktar
İçe aktarıcı:
- Veritabanınızdaki her
wpcf7_contact_formyazısını tarar - Shortcode tabanlı her CF7 formunu parse eder ve eşdeğer OW Forms şemasını oluşturur
- Alıcıyı, konuyu, başarı/hata mesajlarını ve alan türlerini korur
- Tüm
post_contentiçindeki her[contact-form-7 id="..."]shortcode'unu (sayfalar, yazılar, custom post types)[owf_form id="..."]olarak yeniden yazar - Sonuçları loglar: bulunan, içe aktarılan, atlanan (zaten içe aktarılmış) formlar
CF7 eklentisi daha sonra devre dışı bırakılabilir ve kaldırılabilir.
İçe aktarıcı idempotent'tir: iki kez çalıştırmak yinelenenler oluşturmaz. Zaten içe aktarılmış CF7 formları bir
_owf_imported_from_cf7meta anahtarı ile işaretlenir ve sonraki çalıştırmalarda atlanır.
Ayarlar referansı
Tüm ayarlar tek bir seçenek anahtarında, owf_settings'da, saklanır. Bunları
programatik olarak okuyabilir veya geçersiz kılabilirsiniz:
$value = OWF_Core::setting( 'spam_timetrap_min_seconds' );
OWF_Core::update_settings( array( 'spam_timetrap_min_seconds' => 3 ) );
Tam varsayılanlar
array(
// General
'default_recipient_email' => '', // empty = admin_email
'from_name' => '',
'from_email' => '',
'sender_uses_dpo' => true,
// Anti-spam
'spam_honeypot_enabled' => true,
'spam_timetrap_enabled' => true,
'spam_timetrap_min_seconds' => 2,
'spam_captcha_provider' => 'none',
'spam_captcha_site_key' => '',
'spam_captcha_secret_key' => '',
'spam_owshield_iprep' => true,
'spam_block_disposable_emails' => true,
'spam_min_words_per_text_area' => 0,
'spam_max_links_per_submission' => 3,
'spam_blocklist_emails' => array(),
'spam_blocklist_words' => array(),
'spam_blocklist_ips' => array(),
// GDPR
'gdpr_consent_required' => true,
'gdpr_consent_text' => '...',
'gdpr_auto_link_privacy' => true,
'gdpr_retention_days' => 1095,
'gdpr_auto_delete_after_response' => false,
// Storage
'store_submissions' => true,
'store_ip' => 'pseudonymized',
'store_user_agent' => 'hashed',
'allow_file_uploads' => true,
'max_file_size_mb' => 8,
'allowed_file_types' => array( 'pdf', 'jpg', 'jpeg', 'png',
'webp', 'doc', 'docx', 'xls',
'xlsx', 'csv', 'txt' ),
// Notifications
'mail_html' => true,
'mail_admin_subject' => '[{{site_name}}] New message via {{form_title}}',
'mail_admin_body' => '',
'mail_user_autoreply_enabled' => true,
'mail_user_subject' => 'We have received your message',
'mail_user_body' => '',
'mail_failed_alert_email' => '',
'webhook_url' => '',
'webhook_secret' => '',
// Rendering
'style_preset' => 'auto',
'button_label_default' => 'Send',
'success_message_default' => 'Your message has been sent. We will reply within 24 hours.',
'error_message_default' => 'An error occurred. Please try again or contact us directly.',
'inherit_theme_tokens' => true,
// Analytics (opt-in)
'track_conversions' => false,
'conversion_event_name' => 'generate_lead',
'conversion_value' => 0,
'conversion_currency' => 'EUR',
);
REST API
Tüm endpoint'ler owf/v1 namespace'i altında yaşar.
Herkese açık endpoint
| Yöntem | Yol | İzin |
|---|---|---|
POST | /owf/v1/submit | Nonce korumalı (wp_rest) |
Body:
{
"form_id": 1,
"fields": { "name": "Jane", "email": "jane@example.com", "message": "Hi" },
"_owf_nonce": "<from wp_create_nonce('owf_submit_form')>",
"_owf_time": 1736780000,
"_owf_hp": ""
}
Yanıt (200):
{ "ok": true, "id": 42, "message": "Your message has been sent." }
Yanıt (422) doğrulama başarısız olduğunda:
{
"ok": false,
"errors": { "email": "Please enter a valid email" },
"message": "Please review the fields in error."
}
Admin endpoint'leri (manage_options gerektirir)
| Yöntem | Yol | Açıklama |
|---|---|---|
GET | /owf/v1/forms | Tüm formları listele |
GET | /owf/v1/forms/{id} | Bir formu al |
PUT | /owf/v1/forms/{id} | Formu güncelle |
POST | /owf/v1/forms/create | Form oluştur |
GET | /owf/v1/submissions | Gönderimleri listele (filtreler: form_id, status) |
GET | /owf/v1/submissions/{id} | Bir gönderimi al |
POST | /owf/v1/submissions/{id}/handle | İşlendi olarak işaretle (silebilir) |
POST | /owf/v1/importer/cf7 | CF7 içe aktarıcısını çalıştır |
GET/POST | /owf/v1/settings | Eklenti ayarlarını oku veya yaz |
Tüm admin endpoint'leri hem manage_options capability'sini hem de geçerli bir
WP REST nonce'unu gerektirir.
Hooks (filters & actions)
Actions
/**
* Fires after a submission has been processed and stored.
*
* @param int $submission_id Database ID (0 if not stored)
* @param int $form_id Form ID
* @param array $cleaned Sanitized field payload
* @param array $schema Full form schema
*/
do_action( 'owf_submission_received', $submission_id, $form_id, $cleaned, $schema );
/**
* Fires after a DSAR erasure has deleted matching submissions by email hash.
*
* @param string $email_hash SHA-256(email + wp_salt())
* @param int $deleted_count
*/
do_action( 'owf_gdpr_erased_for_email', $email_hash, $deleted_count );
Filters
/**
* Filter the resolved settings array (merged defaults + saved + per-request).
*/
apply_filters( 'owf_settings', array $settings );
/**
* Whitelist of trusted reverse proxy IPs that may set X-Forwarded-For.
* Without this OW Forms ignores proxy headers (to prevent IP spoofing).
*/
apply_filters( 'owf_trusted_proxies', array $proxies );
/**
* List of disposable email domains rejected when `spam_block_disposable_emails`
* is on.
*/
apply_filters( 'owf_disposable_domains', array $domains );
Önerilen pattern — tek kullanımlık alan adı listesini genişlet
add_filter( 'owf_disposable_domains', function( $list ) {
return array_merge( $list, array(
'example-throwaway.com',
'company-blocked-domain.net',
) );
} );
Önerilen pattern — gönderimleri bir CRM'e gönder
add_action( 'owf_submission_received', function( $sid, $form_id, $cleaned ) {
if ( $form_id !== 7 ) return; // only the "Sales" form
wp_remote_post( 'https://crm.example.com/leads', array(
'headers' => array( 'Authorization' => 'Bearer ' . CRM_TOKEN ),
'body' => wp_json_encode( array(
'email' => $cleaned['email'],
'name' => $cleaned['name'],
'message' => $cleaned['message'],
'source' => 'website-form',
) ),
'headers' => array( 'Content-Type' => 'application/json' ),
) );
}, 10, 3 );
Entegrasyonlar
OW Canvas (tema)
OW Canvas teması etkinken, OW Forms
görsel tutarlılık için onun CSS özel özelliklerini (--owc-ink, --owc-paper,
--owc-accent, vb.) miras alır. inherit_theme_tokens = false ile devre dışı bırakın.
OW Consent
OW Consent etkinken:
- GDPR onay kutusu bağlantısı, OW Consent gizlilik politikası URL'nize otomatik olarak yönlendirilir
- Gönderimler OW Consent kayıtlarına bağlanır (ziyaretçinin bir onay ID çerezi varsa)
- OW Consent'ten gelen DSAR silme akışları, aynı e-posta hash'i için OW Forms gönderimlerini otomatik olarak temizler
OW Shield
OW Shield etkinken ve
spam_owshield_iprep açıkken, her gönderimin IP'si kabul edilmeden önce OW Shield'in
itibar akışına karşı puanlanır.
Uluslararasılaştırma
Kaynak dil İngilizce'dir. languages/ow-forms-fr_FR.po altında bir Fransızca
çevirisi gelir.
Çevirmenler için
.pot şablonu languages/ow-forms.pot'tadır. Eklenti WP.org'da onaylandıktan sonra
translate.wordpress.org/projects/wp-plugins/ow-forms
üzerinden çeviri gönderin. Yerel dağıtım için ow-forms-<locale>.mo dosyasını
languages/ klasörüne bırakın.
.mo'yu yerel olarak derleme
msgfmt languages/ow-forms-fr_FR.po -o languages/ow-forms-fr_FR.mo
Sorun giderme
Form gönderiliyor ama hiç e-posta gelmiyor
- Sitenizin genel olarak mail gönderip gönderemediğini kontrol edin — başka bir eklentinin iletişim formundan veya Mail Tester ile test edin
- Gönderimin geldiğini doğrulamak için OW Forms → Gönderimler bölümüne bakın (geldiyse sorun teslimde, OW Forms'da değildir)
mail_failed_alert_emaildeğerini kendi adresinize ayarlayın — OW Forms,wp_mail()falsedöndürdüğünde size e-posta gönderir- Bir SMTP eklentisi (Fluent SMTP, WP Mail SMTP, vb.) kurun — varsayılan PHP
mail()fonksiyonu alıcı sunucuların %95'i tarafından reddedilir
CAPTCHA görünmüyor
spam_captcha_site_keyvespam_captcha_secret_keydeğerlerinin her ikisinin de ayarlandığını doğrulayın- Sayfayı DevTools'ta açın — sağlayıcı script URL'si 200 ile yüklenmelidir
- reCAPTCHA için site alan adınız Google admin'de kayıtlı olmalıdır
- Turnstile için Cloudflare admin'deki widget modu "Managed" veya "Non-interactive" olmalıdır
Dosyalar yükleniyor ama admin onları indiremiyor
Bu tasarım gereğidir — yüklenen dosyalar doğrudan değil, kimlik doğrulanmış bir PHP
handler tarafından sunulur. manage_options'a sahip bir kullanıcı olarak giriş
yaptığınızı kontrol edin.
CF7 içe aktarıcısı "0 form bulundu" diyor
İçe aktarıcı wpcf7_contact_form post type'ını tarar. CF7 zaten devre dışı bırakılmışsa
ve yazılar silindiyse, içe aktarılacak hiçbir şey kalmamıştır. CF7'yi sadece içe aktarma
için yeniden etkinleştirin, sonra tekrar devre dışı bırakın.
Gönderimler tablosu çok büyük
gdpr_retention_daysdeğerini düşürün (varsayılan 1095 / 3 yıl)- Veritabanı denetim izi değil sadece e-posta teslimine ihtiyacınız varsa
store_submissions'ı devre dışı bırakın - "İşlendi" durumunda silmek için
gdpr_auto_delete_after_response = trueayarlayın
SSS
OW Forms ücretsiz mi? Evet. GPL-2.0-or-later. Pro sürümü, lisans anahtarı, ödeme arkasında kilitli özellik yoktur.
WordPress Multisite üzerinde çalışıyor mu? Evet — her sitenin beklenildiği gibi izole, kendi tabloları ve form kütüphanesi vardır.
Çok adımlı formları destekliyor mu? Şemada alan gruplama yoluyla temel ileri/geri navigasyon çalışır. Birinci sınıf bir wizard UX'i v1.1 yol haritasındadır.
Gönderimleri nasıl dışa aktarırım? OW Forms → Gönderimler → CSV Dışa Aktar. Dışa aktarma mevcut filtrelere (form, tarih aralığı, durum) saygı gösterir.
Formlarımı bir paywall veya login arkasında barındırabilir miyim?
Evet — shortcode'u herhangi bir üyelik eklentisinin gating mantığına sarın veya
PHP üzerinden bir is_user_logged_in() kontrolü içinde render edin.
E-posta pazarlama / CRM araçlarıyla entegre olur mu?
Kutudan çıkar çıkmaz: webhook'lar (herhangi bir endpoint'e HMAC ile imzalanmış POST)
ve form başına e-posta alıcıları. Brevo / Mailchimp / HubSpot / Pipedrive için
owf_submission_received hook'una bağlanın ve sağlayıcının REST API'sini çağırın —
bkz. Hooks bölümü.
Eklenti GDPR sertifikalı mı? Eklentinin varsayılanları CNIL / GDPR en iyi uygulamalarıyla uyumludur, ancak sertifikasyon, veri sorumlusu kurulumunuza özgü hukuki bir süreçtir. Biz teknik araçları sağlıyoruz; politikayı DPO'nuz onaylar.
Destek nerede?
- Destek portalı: https://optionweb.dev/tr/addons/support/
- E-posta: support@optionweb.dev
- Dokümantasyon: https://optionweb.dev/tr/addons/ow-forms/
OptionWeb tarafından geliştirildi — Julien Daniel, Châtelet, Belçika.