You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Uppdateraren pekade på ett repo som inte finns (relativt/… i stället
för relativtwebb/…), så kundsajter erbjöds aldrig några uppdateringar.
Samma URL rättad i pluginheadern och readme.txt.
Tidsspärren åt riktiga inskick. Ett inskick inom tre sekunder fick
fejkad succé – besökaren såg "Tack!" men inget skickades och inget sparades.
Med webbläsarens autofyll var det fullt möjligt att vara så snabb. Spärren
svarar nu med ett mjukt fel (425, kod toofast) som JS tyst gör om efter
väntetiden; besökaren märker ingenting, boten får ett fel i stället för en
succé.
Tack-rutan har tabindex="-1" så att fokusflytten vid tack-läget faktiskt
sker – tidigare var focus() en tyst no-op och skärmläsare lämnades kvar i
det dolda formuläret.
Export och import ger ett begripligt besked i stället för en vit sida när
ACF Pro saknas.
Datumvalideringen använder checkdate() – 2026-13-45 matchade tidigare
mönstret och släpptes igenom.
Gallringen tömmer hela backloggen i batchar i stället för att stanna vid
200 inskick per formulär och dygn.
Säkerhet
CSV-exporten skyddar mot formelinjektion: celler som börjar med =, +, - eller @ prefixas med apostrof så att Excel läser dem som text.
Nytt filter relativt_form_client_ip för sajter bakom Cloudflare/proxy –
utan det delade alla besökare proxyns IP och därmed samma frekvensspärr.
Ny länkspärr: textrutor med fler än tre länkar avvisas (filtret relativt_form_max_links justerar taket, 0 stänger av). Speglad i JS.
Nytt
Kampanjkakan respekterar samtycke. Finns Relativt Cookie Consent på
sajten skrivs xf_src först när besökaren godkänt statistik eller
marknadsföring, tas bort vid återkallat samtycke, och skrivs i efterhand
när samtycket kommer. Utan samtyckesverktyg är beteendet som i 1.0.
Filtret relativt_form_utm_cookie (auto/always/never) styr.
Hjälptext per fält i byggaren – renderaren stödde den redan, nu finns
fältet. Följer med i export/import.
Varning i formulär- och inskicksvyerna när mail inte kunnat skickas, med
länk till de drabbade inskicken (?xf_mail=failed).
Alla besökartexter kan bytas via filtret relativt_form_messages – samma
lista driver PHP och JS, så klient och server säger alltid samma sak.
Uppdateraren skickar med requires_php, så en framtida version med högre
PHP-krav inte erbjuds servrar som inte klarar den.
Utgången nonce gör om inskicket automatiskt med ny token i stället för att
be besökaren trycka igen.
Tillgänglighet
Fel kopplas till fältet med aria-invalid och aria-describedby (även
hjälptexten), val-knapps- och radiogrupper får sitt namn via aria-labelledby, flervalsgrupper role="group", och obligatoriska
flervalsgrupper valideras nu även i klienten via data-xf-required.
Byggkedjan
release.yml kräver att taggen matchar Version-headern, konstanten RELATIVT_FORM_VERSIONochStable tag i readme.txt. Klasskonstanten Relativt_Form::VERSION är borttagen – huvudfilens konstant är enda källan,
och det är den som cache-bustar CSS/JS.
Tester
187 serverassertions (från 146) och 82 webbläsartester (från 64). Nytt:
hela REST-inskicksflödet körs rakt igenom i riggen (honungsfälla, nonce,
signatur, tidsspärr, frekvensspärr, lagring, mail), den tysta omsändningen
och samtyckeslägena testas i riktig webbläsare, och definitionscachen kan
tömmas så att testerna mäter koden i stället för cachen.