OW Forms — Dokumentacioni
Një ndërtues modern formularësh, GDPR-nativ, për WordPress. Autor: OptionWeb — Julien Daniel Faqja e plugin-it: https://optionweb.dev/sq/addons/ow-forms/ Licenca: GPL-2.0-or-later Versioni i mbuluar nga ky dokument: 1.0.2
Tabela e përmbajtjes
- Përmbledhje
- Instalimi
- Fillim i shpejtë — formulari juaj i parë
- Llojet e fushave
- Stack-u anti-spam
- Veçoritë GDPR
- Njoftimet me email
- Webhook-ët
- Ngarkimi i skedarëve
- Renderimi: shortcode, Gutenberg, REST
- Importuesi i Contact Form 7
- Referencë e cilësimeve
- REST API
- Hook-et për zhvilluesit (filters & actions)
- Integrimi me OW Consent / OW Shield
- Ndërkombëtarizimi
- Zgjidhja e problemeve
- FAQ
Përmbledhje
OW Forms është një ndërtues formularësh i drejtuar nga skema. Çdo formular është një dokument JSON që përshkruan fushat e tij, validimin dhe sjelljen e dërgimit. Plugin-i e renderon atë skemë si HTML i aksesueshëm, validon dërgesat në server, i kalon ato përmes një stack-u anti-spam me katër shtresa, ruan atë që e lejoni të ruajë, dhe nis njoftimet me email + webhook.
Çfarë vjen me të (gjithçka falas, GPL-2):
- Motor skeme JSON me 17 lloje fushash
- Anti-spam me 4 shtresa: honeypot, time-trap, CAPTCHA multi-furnizues, reputacion IP
- Pëlqim GDPR nativ + ruajtje + DSAR
- REST API (namespace
owf/v1) — submit publik + CRUD admin - Bllok Gutenberg + shortcode + API PHP për renderim
- Webhook-ë dalës të nënshkruar HMAC
- Importues Contact Form 7 me një klikim
- Zbulon automatikisht tokenët e temës OW Canvas për koherencë vizuale
Çfarë NUK bën, qëllimisht:
- Përpunim pagesash (përdorni WooCommerce + një checkout të dedikuar)
- Wizard-ë me shumë faqe përtej të thjeshtit përpara/mbrapa (përdorni një plugin wizard të dedikuar)
- Ndërtues vizual drag-and-drop në v1 (vetëm editor JSON; ndërtuesi vizual në roadmap)
Instalimi
Nga WordPress.org (e rekomanduar)
- Admin WordPress → Plugins → Add New
- Kërkoni për
OW Forms - Klikoni Install Now, pastaj Activate
Nga ngarkimi i .zip
- Shkarkoni
ow-forms-1.0.2.zipnga https://optionweb.dev/sq/addons/ow-forms/ - Plugins → Add New → Upload Plugin
- Zgjidhni skedarin, klikoni Install Now, pastaj Activate
Kërkesat
- WordPress 6.0 ose më i vonshëm
- PHP 7.4 ose më i vonshëm (8.1+ i rekomanduar)
- MySQL/MariaDB me mbështetje për kolonë
JSON(5.7+ / 10.2+)
Çfarë instalohet
Në aktivizim, OW Forms krijon tre tabela të personalizuara:
{prefix}_owf_submissions— payload-et e dërgesave + metadata spam{prefix}_owf_files— regjistri i skedarëve të ngarkuar{prefix}_owf_log— gjurmë auditi e dërgesave
Plus një Custom Post Type owf_form (jo i kërkueshëm publikisht) i përdorur për të ruajtur
skemat e formularëve.
Fillim i shpejtë
Pas aktivizimit, krijohet automatikisht një formular i parazgjedhur "Kontakt".
- Shkoni te OW Forms → Forms në admin
- Shënoni ID-në e formularit të parazgjedhur (p.sh.
1) - Në çdo faqe ose postim, vendosni shortcode-in:
[owf_form id="1"]
…ose vendosni bllokun Gutenberg OW Forms dhe zgjidhni formularin nga lista.
Kaq. Formulari renderohet, pranon dërgesa, dërgon një email admin te
admin_email dhe ruan dërgesën në bazën e të dhënave.
Për ta personalizuar, hapni formularin në OW Forms → Forms → [Edit] dhe rregulloni drejtpërdrejt skemën JSON. Një ndërtues vizual është në roadmap-in e v1.1.
Llojet e fushave
OW Forms mbështet 17 lloje fushash. Secila fushë në skemë është një objekt me
minimumi type dhe name; shumica gjithashtu pranojnë label, help, required,
placeholder dhe opsione specifike për llojin.
type | Qëllimi | Opsione të rëndësishme |
|---|---|---|
text | Tekst një rresht | placeholder, pattern, maxlength |
email | Adresë email | Auto-validim RFC 5322 |
tel | Numër telefoni | Validim i butë (i përshtatshëm me E.164) |
url | URL | Auto-validim http(s):// |
number | Numerike | min, max, step |
textarea | Tekst shumë rreshtash | rows, maxlength |
select | Listë e thjeshtë rënëse | options: [{value, label}] |
radio | Zgjedhje e vetme | options: [{value, label}] |
checkbox | Boolean i vetëm | default: bool |
checkbox-group | Zgjedhje e shumëfishtë | options: [{value, label}] |
date | Zgjedhës date | min, max (YYYY-MM-DD) |
time | Zgjedhës ore | min, max (HH:MM) |
datetime | Datë + orë | min, max (YYYY-MM-DDTHH:MM) |
file | Ngarkim skedari | multiple: bool, accept |
hidden | Vlerë e fshehur | E dobishme për tracking |
rating | Vlerësim 1–5 yje | — |
consent | Checkbox pëlqimi GDPR | Auto-injektohet kur GDPR është aktiv |
Shembull skeme
{
"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": ""
}
}
Vlerat name të fushave bëhen çelësa në payload-in e ruajtur dhe tokena që mund t'i
përdorni në template-et e email-it ({{name}}, {{email}}, etj.).
Stack-u anti-spam
OW Forms ekzekuton katër shtresa të pavarura paralelisht. Secila shtresë cakton një kontribut në score; një dërgesë me score ≥ 80 hidhet poshtë në heshtje — asnjë mesazh gabimi nuk kthehet, kështu që bot-et nuk mund të iterojnë kundër mbrojtjes.
1. Honeypot
Një fushë teksti e fshehur vizualisht që bot-et e mbushin dhe njerëzit jo. Cilësimi:
spam_honeypot_enabled(parazgjedhur:true)
2. Time-trap
Refuzon dërgesat e plotësuara më shpejt se një prag i konfigurueshëm (bot-et tipikë bëjnë POST në çast).
spam_timetrap_enabled(parazgjedhur:true)spam_timetrap_min_seconds(parazgjedhur:2)
3. CAPTCHA (multi-furnizues)
Validim server-në-server i token-it kundrejt API-së së furnizuesit. Zgjidhni një nga:
turnstile— Cloudflare Turnstile (i rekomanduar, privacy-first, pa UX challenge)recaptcha_v3— Google reCAPTCHA v3 (i padukshëm)hcaptcha— hCaptcha (widget i dukshëm)friendly_captcha— Friendly Captcha (widget self-hosted, me licencë MIT, i përshtatshëm për EU)
Vendosni spam_captcha_provider, spam_captcha_site_key dhe spam_captcha_secret_key
në tab-in e cilësimeve Anti-spam. Parazgjedhja është none.
Shënim: JS-i i widget-ëve Turnstile / reCAPTCHA / hCaptcha ngarkohet nga origjina e vetë furnizuesit (JS-i i tyre kryen një kontroll firme origjine në server). Friendly Captcha është self-hosted nën
assets/js/vendor/.
4. Reputacioni IP (opsionale)
Kur OW Shield është i instaluar dhe aktiv, OW Forms përdor feed-in e tij të reputacionit IP për të vlerësuar dërgesat:
spam_owshield_iprep(parazgjedhur:true)spam_block_disposable_emails(parazgjedhur:true) — refuzon@mailinator,@tempmaildhe ~120 domene të tjera njëpërdorimsh
Heuristika shtesë
spam_min_words_per_text_area— kërkon të paktën N fjalë në textareaspam_max_links_per_submission— refuzon nëse ka më shumë se N URL në payloadspam_blocklist_emails,spam_blocklist_words,spam_blocklist_ips— listat tuaja
Logging
Çdo vendim spam regjistrohet me arsyen e tij. Kontrolloni OW Forms → Submissions → filtri "spam" për të akorduar pragjet pa fluturuar verbërisht.
Veçoritë GDPR
Pajtueshmëria GDPR është native. Parazgjedhjet janë konservatore; lironi ato vetëm nëse keni këshillë juridike për këtë.
Checkbox-i i pëlqimit
Një checkbox pëlqimi auto-injektohet në fund të çdo formulari kur
gdpr_consent_required është true (parazgjedhur). Teksti është i konfigurueshëm:
'gdpr_consent_text' => __(
'I agree that my data will be processed to respond to my inquiry, in accordance with the privacy policy.',
'ow-forms'
)
Nëse gdpr_auto_link_privacy është aktiv (parazgjedhur), fjalët "privacy policy" /
"politika e privatësisë" auto-lidhen me URL-në e politikës së privatësisë të OW Consent
kur ai plugin është aktiv, ose me Faqen e Privatësisë së konfiguruar në WP përndryshe.
Modet e ruajtjes së IP-së
Cilësimi store_ip:
| Vlera | Çfarë ruhet |
|---|---|
none | Asgjë — asnjë IP nuk mbahet |
pseudonymized (parazgjedhur) | 192.168.1.42 → 192.168.1.0 (IPv4) / 4 grupet e para (IPv6) |
full | IP e plotë — përdoreni vetëm nëse baza juaj ligjore e lejon |
Ruajtja e user agent-it
Cilësimi store_user_agent:
| Vlera | Çfarë ruhet |
|---|---|
none | Asgjë |
hashed (parazgjedhur) | SHA-256 e UA + wp_salt() |
full | String UA i prerë (maks. 64 chars) |
Ruajtja dhe pastrimi
Një cron ditor pastron dërgesat më të vjetra se gdpr_retention_days (parazgjedhur:
1095 ditë — standardi CNIL për të dhëna prospects). Vendoseni në 0 për të çaktivizuar
pastrimin automatik.
Nëse gdpr_auto_delete_after_response është true, shënimi i një dërgese si
"e trajtuar" e fshin atë menjëherë së bashku me çdo skedar të ngarkuar.
DSAR — Akses / fshirje e subjektit të të dhënave
Email-et e formularëve hashohen me wp_salt() në kohën e ruajtjes. Kur OW Consent
është aktiv dhe një fshirje DSAR procesohet për një adresë email, OW Forms
fshin automatikisht dërgesat përkatëse sipas email_hash dhe nis:
do_action( 'owf_gdpr_erased_for_email', $hash, $count );
Pa OW Consent, mund të thirrni fshirjen manualisht:
OWF_GDPR::erase_by_email( 'user@example.com' ); // returns int count
Njoftimet me email
Template-et
Si njoftimi admin ashtu edhe auto-përgjigja për përdoruesin mbështesin zëvendësimin {{token}}:
| Token | Zgjidhet në |
|---|---|
{{site_name}} | get_bloginfo('name') |
{{form_title}} | Titulli i formularit |
{{form_id}} | ID numerike e formularit |
{{submission_id}} | ID numerike e dërgesës (0 nëse nuk ruhet) |
{{date}} | Timestamp i dërgesës |
{{ip}} | IP sipas modit store_ip |
{{page_url}} | URL-ja nga e cila u dërgua formulari |
{{all_fields}} | Të gjitha çiftet çelës/vlerë të fushave |
{{<field_name>}} | Çdo fushë sipas name-it të saj (p.sh. {{email}}, {{message}}) |
Cilësimet
| Cilësimi | Parazgjedhja | Shënime |
|---|---|---|
default_recipient_email | bosh → admin_email | I anashkalueshëm për formular nëpërmjet schema.mail.recipient |
from_name | bosh | Emri i shfaqur i dërguesit |
from_email | bosh → parazgjedhja WP | Adresa e dërguesit |
mail_html | true | false kalon në tekst të thjeshtë |
mail_admin_subject | [{{site_name}}] New message via {{form_title}} | |
mail_admin_body | bosh → auto-ndërtuar nga fushat | |
mail_user_autoreply_enabled | true | |
mail_user_subject | We have received your message | |
mail_user_body | bosh → konfirmim gjenerik | |
mail_failed_alert_email | bosh | I njoftuar kur dërgimi i email-it dështon |
Anashkalim për formular
Skema e formularit mund të anashkalojë globalet:
{
"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."
}
}
Webhook-ët
Kur webhook_url është i caktuar, çdo dërgesë e suksesshme nis një POST HTTP.
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"
}
Firma HMAC
Nëse webhook_secret është i caktuar, kërkesa përfshin:
X-OWF-Signature: sha256=<hex digest of HMAC-SHA256(body, secret)>
Verifikim në anën e marrësit (shembull Node):
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');
}
Riprovat
Nëse marrësi kthen 5xx ose ka timeout, OW Forms riprovon me backoff eksponencial (60 s → 5 min → 30 min). Pas 3 dështimeve webhook-u regjistrohet si i dështuar përgjithmonë, por nuk e bllokon dërgesën.
Ngarkimi i skedarëve
Kur allow_file_uploads është aktiv (parazgjedhur true), çdo fushë e llojit file
pranohet. Pipeline-i:
- Validim në server — madhësia e skedarit (
max_file_size_mb, parazgjedhur 8 MB), allowlist e zgjatimeve (allowed_file_types) dhe një kontroll MIMEfinfoi ndërlidhur mewp_get_mime_types(). - Ruajtja —
wp-content/uploads/owf-uploads/YYYY/MM/<sha256>.<ext>me një.htaccessdeny-all (Apache) dheindex.phpbosh (Nginx/IIS). - Regjistri në DB — metadata e skedarit + hash SHA-256 në
{prefix}_owf_files, i lidhur me ID-në e dërgesës prind. - Pastrimi — kur një dërgesë fshihet (manualisht, nga ruajtja, ose nga DSAR), të gjithë skedarët e lidhur hiqen.
E rëndësishme: OW Forms përdor një shteg ngarkimi të izoluar dhe të personalizuar, jo bibliotekën media të WordPress, prandaj skedarët e ngarkuar nuk janë të zbulueshëm nëpërmjet endpoint-it standard
/wp-json/wp/v2/mediadhe nuk gjenerohen miniatura. Kjo është e qëllimshme — bashkëngjitjet e formularëve janë private për pronarin e formularit.
Llojet e skedarëve të lejuar (parazgjedhur)
pdf, jpg, jpeg, png, webp, doc, docx, xls, xlsx, csv, txt
Për të zgjeruar:
add_filter( 'owf_settings', function( $s ) {
$s['allowed_file_types'] = array_merge(
(array) $s['allowed_file_types'],
array( 'odt', 'ods', 'zip' )
);
return $s;
} );
Renderimi
Shortcode
[owf_form id="42"]
[owf_form slug="contact"]
id (ID numerike e postit) ose slug (slug-u i postit) — njëri kërkohet.
Bllok Gutenberg
Në editorin e bllokeve, kërkoni për "OW Forms" te insertuesi i bllokeve dhe zgjidhni formularin tuaj nga lista.
PHP
echo OWF_Form::render( 42 );
// or
echo do_shortcode( '[owf_form id="42"]' );
REST
Formulari mund të dërgohet edhe programatikisht — shihni REST API.
Importuesi CF7
Nëse Contact Form 7 është ose ka qenë i instaluar, OW Forms vjen me një importues me një klikim.
OW Forms → Tools → Import from Contact Form 7
Importuesi:
- Skanon çdo post
wpcf7_contact_formnë bazën tuaj të të dhënave - Bën parse çdo formular CF7 të bazuar në shortcode dhe ndërton skemën ekuivalente OW Forms
- Ruan marrësin, subjektin, mesazhet e suksesit/gabimit dhe llojet e fushave
- Rishkruan çdo shortcode
[contact-form-7 id="..."]në të gjithëpost_content(faqe, postime, custom post types) në[owf_form id="..."] - Regjistron rezultatet: formularë të gjetur, të importuar, të anashkaluar (tashmë të importuar)
Plugin-i CF7 mund të çaktivizohet dhe hiqet më pas.
Importuesi është idempotent: ekzekutimi i tij dy herë nuk krijon dublikatë. Formularët CF7 të importuar tashmë shënohen nëpërmjet një meta key-i
_owf_imported_from_cf7dhe anashkalohen në ekzekutimet pasuese.
Referencë e cilësimeve
Të gjitha cilësimet ruhen në një çelës të vetëm opsioni, owf_settings. Mund t'i
lexoni ose anashkaloni programatikisht:
$value = OWF_Core::setting( 'spam_timetrap_min_seconds' );
OWF_Core::update_settings( array( 'spam_timetrap_min_seconds' => 3 ) );
Parazgjedhjet e plota
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ë gjithë endpoint-et jetojnë nën namespace-in owf/v1.
Endpoint-i publik
| Metoda | Shtegu | Leja |
|---|---|---|
POST | /owf/v1/submit | I mbrojtur me nonce (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": ""
}
Përgjigja (200):
{ "ok": true, "id": 42, "message": "Your message has been sent." }
Përgjigja (422) kur validimi dështon:
{
"ok": false,
"errors": { "email": "Please enter a valid email" },
"message": "Please review the fields in error."
}
Endpoint-et admin (kërkojnë manage_options)
| Metoda | Shtegu | Përshkrimi |
|---|---|---|
GET | /owf/v1/forms | Listo të gjithë formularët |
GET | /owf/v1/forms/{id} | Merr një formular |
PUT | /owf/v1/forms/{id} | Përditëso formularin |
POST | /owf/v1/forms/create | Krijo një formular |
GET | /owf/v1/submissions | Listo dërgesat (filtra: form_id, status) |
GET | /owf/v1/submissions/{id} | Merr një dërgesë |
POST | /owf/v1/submissions/{id}/handle | Shëno si të trajtuar (mund të fshijë) |
POST | /owf/v1/importer/cf7 | Ekzekuto importuesin CF7 |
GET/POST | /owf/v1/settings | Lexo ose shkruaj cilësimet e plugin-it |
Të gjithë endpoint-et admin kërkojnë si capability-n manage_options ashtu edhe një
nonce REST WP të vlefshëm.
Hook-et (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 );
Pattern i rekomanduar — zgjero listën e domeneve njëpërdorimsh
add_filter( 'owf_disposable_domains', function( $list ) {
return array_merge( $list, array(
'example-throwaway.com',
'company-blocked-domain.net',
) );
} );
Pattern i rekomanduar — shty dërgesat te një CRM
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 );
Integrimet
OW Canvas (temë)
Kur tema OW Canvas është
aktive, OW Forms trashëgon vetitë e saj CSS të personalizuara (--owc-ink, --owc-paper,
--owc-accent, etj.) për koherencë vizuale. Çaktivizoni me
inherit_theme_tokens = false.
OW Consent
Kur OW Consent është aktiv:
- Lidhja e checkbox-it të pëlqimit GDPR drejtohet automatikisht në URL-në tuaj të politikës së privatësisë të OW Consent
- Dërgesat lidhen me regjistrimet OW Consent (kur vizitori ka një cookie ID pëlqimi)
- Rrjedhat e fshirjes DSAR nga OW Consent pastrojnë automatikisht dërgesat OW Forms për të njëjtin hash email-i
OW Shield
Kur OW Shield është aktiv dhe
spam_owshield_iprep është ndezur, IP-ja e çdo dërgese vlerësohet kundrejt feed-it
të reputacionit të OW Shield para se të pranohet.
Ndërkombëtarizimi
Gjuha burim është anglishtja. Një përkthim frëngjisht vjen nën
languages/ow-forms-fr_FR.po.
Për përkthyesit
Template-i .pot është në languages/ow-forms.pot. Dorëzoni përkthime
nëpërmjet translate.wordpress.org/projects/wp-plugins/ow-forms
sapo plugin-i të miratohet në WP.org. Për shpërndarje lokale, vendosni
ow-forms-<locale>.mo në dosjen languages/.
Kompilim i .mo në lokal
msgfmt languages/ow-forms-fr_FR.po -o languages/ow-forms-fr_FR.mo
Zgjidhja e problemeve
Formulari dërgohet por nuk mbërrin asnjë email
- Verifikoni nëse saiti juaj fare mund të dërgojë mail — provoni një test nga formulari i kontaktit i një plugin-i tjetër ose me Mail Tester
- Kontrolloni OW Forms → Submissions për të konfirmuar që dërgesa ka mbërritur (nëse po, problemi është dorëzimi, jo OW Forms)
- Vendosni
mail_failed_alert_emailme adresën tuaj — OW Forms do t'ju dërgojë një email kurwp_mail()kthenfalse - Instaloni një plugin SMTP (Fluent SMTP, WP Mail SMTP, etj.) —
mail()PHP-ja e parazgjedhur refuzohet nga 95 % e serverave marrës
CAPTCHA nuk shfaqet
- Verifikoni që
spam_captcha_site_keydhespam_captcha_secret_keyjanë të vendosur të dy - Hapni faqen në DevTools — URL-ja e skriptit të furnizuesit duhet të ngarkohet me 200
- Për reCAPTCHA, domeni i saitit tuaj duhet të jetë i regjistruar në admin-in e Google
- Për Turnstile, modi i widget-it në admin-in Cloudflare duhet të jetë "Managed" ose "Non-interactive"
Skedarët ngarkohen por admin-i nuk i shkarkon dot
Kjo është me qëllim — skedarët e ngarkuar shërbehen nga një handler PHP i autentikuar,
jo drejtpërdrejt. Kontrolloni nëse jeni i lidhur si përdorues me manage_options.
Importuesi CF7 thotë "0 formularë të gjetur"
Importuesi skanon post type-in wpcf7_contact_form. Nëse CF7 është tashmë
i çaktivizuar dhe postet janë fshirë, s'ka më asgjë për të importuar.
Riaktivizoni CF7 vetëm për importin, pastaj çaktivizoni përsëri.
Tabela e dërgesave është e madhe
- Ulni
gdpr_retention_days(parazgjedhur 1095 / 3 vjet) - Çaktivizoni
store_submissionsnëse ju duhet vetëm dorëzimi me email, jo një gjurmë auditi në bazën e të dhënave - Vendosni
gdpr_auto_delete_after_response = truepër të fshirë kur shënohet "e trajtuar"
FAQ
A është OW Forms falas? Po. GPL-2.0-or-later. Nuk ka version Pro, nuk ka çelës licence, nuk ka veçori të bllokuar pas pagesës.
A funksionon në WordPress Multisite? Po — çdo sajt ka tabelat e veta dhe bibliotekën e vet të formularëve, të izoluara siç pritet.
A i mbështet formularët me shumë hapa? Navigimi bazë përpara/mbrapa funksionon nëpërmjet grupimit të fushave në skemë. Një UX wizard i klasit të parë është në roadmap-in e v1.1.
Si i eksportoj dërgesat? OW Forms → Submissions → Export CSV. Eksporti respekton filtrat aktualë (formulari, intervali i datave, statusi).
A mund t'i strehoj formularët pas një paywall-i ose login-i?
Po — mbështillni shortcode-in në logjikën e gating-ut të një plugin-i anëtarësie, ose
renderoni nëpërmjet PHP brenda një kontrolli is_user_logged_in().
A integrohet me mjete email marketing / CRM?
Që në fillim: webhook-ë (POST i nënshkruar HMAC drejt çdo endpoint-i) dhe marrës email-i
për formular. Për Brevo / Mailchimp / HubSpot / Pipedrive, lidhuni te
owf_submission_received dhe thirrni API-në REST të furnizuesit — shihni
sektorin Hooks.
A është plugin-i i certifikuar GDPR? Parazgjedhjet e plugin-it janë në linjë me praktikat më të mira CNIL / GDPR, por certifikimi është një proces juridik specifik për konfigurimin tuaj të kontrolluesit të të dhënave. Ne ofrojmë mjetet teknike; DPO-ja juaj konfirmon politikën.
Ku është mbështetja?
- Portali i mbështetjes: https://optionweb.dev/sq/addons/support/
- Email: support@optionweb.dev
- Dokumentacioni: https://optionweb.dev/sq/addons/ow-forms/
Ndërtuar nga OptionWeb — Julien Daniel, Châtelet, Belgjikë.