Drejtpërdrejt · statusi OK
Dokumentacion · OW Forms v1.1.0

OW Forms
Dokumentacion

Form builder për WordPress, i ridizajnuar për 2026.

v1.1.0GPL-2.0-or-laterDokumentacion

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

  1. Përmbledhje
  2. Instalimi
  3. Fillim i shpejtë — formulari juaj i parë
  4. Llojet e fushave
  5. Stack-u anti-spam
  6. Veçoritë GDPR
  7. Njoftimet me email
  8. Webhook-ët
  9. Ngarkimi i skedarëve
  10. Renderimi: shortcode, Gutenberg, REST
  11. Importuesi i Contact Form 7
  12. Referencë e cilësimeve
  13. REST API
  14. Hook-et për zhvilluesit (filters & actions)
  15. Integrimi me OW Consent / OW Shield
  16. Ndërkombëtarizimi
  17. Zgjidhja e problemeve
  18. 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)

  1. Admin WordPress → Plugins → Add New
  2. Kërkoni për OW Forms
  3. Klikoni Install Now, pastaj Activate

Nga ngarkimi i .zip

  1. Shkarkoni ow-forms-1.0.2.zip nga https://optionweb.dev/sq/addons/ow-forms/
  2. Plugins → Add New → Upload Plugin
  3. 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".

  1. Shkoni te OW Forms → Forms në admin
  2. Shënoni ID-në e formularit të parazgjedhur (p.sh. 1)
  3. 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.

typeQëllimiOpsione të rëndësishme
textTekst një rreshtplaceholder, pattern, maxlength
emailAdresë emailAuto-validim RFC 5322
telNumër telefoniValidim i butë (i përshtatshëm me E.164)
urlURLAuto-validim http(s)://
numberNumerikemin, max, step
textareaTekst shumë rreshtashrows, maxlength
selectListë e thjeshtë rënëseoptions: [{value, label}]
radioZgjedhje e vetmeoptions: [{value, label}]
checkboxBoolean i vetëmdefault: bool
checkbox-groupZgjedhje e shumëfishtëoptions: [{value, label}]
dateZgjedhës datemin, max (YYYY-MM-DD)
timeZgjedhës oremin, max (HH:MM)
datetimeDatë + orëmin, max (YYYY-MM-DDTHH:MM)
fileNgarkim skedarimultiple: bool, accept
hiddenVlerë e fshehurE dobishme për tracking
ratingVlerësim 1–5 yje
consentCheckbox pëlqimi GDPRAuto-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, @tempmail dhe ~120 domene të tjera njëpërdorimsh

Heuristika shtesë

  • spam_min_words_per_text_area — kërkon të paktën N fjalë në textarea
  • spam_max_links_per_submission — refuzon nëse ka më shumë se N URL në payload
  • spam_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
noneAsgjë — asnjë IP nuk mbahet
pseudonymized (parazgjedhur)192.168.1.42192.168.1.0 (IPv4) / 4 grupet e para (IPv6)
fullIP 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
noneAsgjë
hashed (parazgjedhur)SHA-256 e UA + wp_salt()
fullString 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}}:

TokenZgjidhet 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ësimiParazgjedhjaShënime
default_recipient_emailbosh → admin_emailI anashkalueshëm për formular nëpërmjet schema.mail.recipient
from_nameboshEmri i shfaqur i dërguesit
from_emailbosh → parazgjedhja WPAdresa e dërguesit
mail_htmltruefalse kalon në tekst të thjeshtë
mail_admin_subject[{{site_name}}] New message via {{form_title}}
mail_admin_bodybosh → auto-ndërtuar nga fushat
mail_user_autoreply_enabledtrue
mail_user_subjectWe have received your message
mail_user_bodybosh → konfirmim gjenerik
mail_failed_alert_emailboshI 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:

  1. Validim në server — madhësia e skedarit (max_file_size_mb, parazgjedhur 8 MB), allowlist e zgjatimeve (allowed_file_types) dhe një kontroll MIME finfo i ndërlidhur me wp_get_mime_types().
  2. Ruajtjawp-content/uploads/owf-uploads/YYYY/MM/<sha256>.<ext> me një .htaccess deny-all (Apache) dhe index.php bosh (Nginx/IIS).
  3. Regjistri në DB — metadata e skedarit + hash SHA-256 në {prefix}_owf_files, i lidhur me ID-në e dërgesës prind.
  4. 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/media dhe 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:

  1. Skanon çdo post wpcf7_contact_form në bazën tuaj të të dhënave
  2. Bën parse çdo formular CF7 të bazuar në shortcode dhe ndërton skemën ekuivalente OW Forms
  3. Ruan marrësin, subjektin, mesazhet e suksesit/gabimit dhe llojet e fushave
  4. Rishkruan çdo shortcode [contact-form-7 id="..."] në të gjithë post_content (faqe, postime, custom post types) në [owf_form id="..."]
  5. 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_cf7 dhe 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

MetodaShteguLeja
POST/owf/v1/submitI 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)

MetodaShteguPërshkrimi
GET/owf/v1/formsListo 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/createKrijo një formular
GET/owf/v1/submissionsListo dërgesat (filtra: form_id, status)
GET/owf/v1/submissions/{id}Merr një dërgesë
POST/owf/v1/submissions/{id}/handleShëno si të trajtuar (mund të fshijë)
POST/owf/v1/importer/cf7Ekzekuto importuesin CF7
GET/POST/owf/v1/settingsLexo 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

  1. 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
  2. Kontrolloni OW Forms → Submissions për të konfirmuar që dërgesa ka mbërritur (nëse po, problemi është dorëzimi, jo OW Forms)
  3. Vendosni mail_failed_alert_email me adresën tuaj — OW Forms do t'ju dërgojë një email kur wp_mail() kthen false
  4. 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_key dhe spam_captcha_secret_key janë 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_submissions në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 = true pë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?


Ndërtuar nga OptionWeb — Julien Daniel, Châtelet, Belgjikë.