Atunci când folosești un plugin de cache, WordPress nu mai ține minte comentatorii (numele, adresa de email și URL). Soluția e simplă și implică puțin JS pus în footer.php
înainte de </body>
(sau la sfârșitul lui comments.php
), astfel încât datele sunt salvate atunci când se face submit.
<script>
(function(){
if (!window.localStorage) {return;}
function storeValue(event) {
window.localStorage['comment-' + event.currentTarget.name] = event.currentTarget.value;
}
function restoreValue(element) {
element.value = window.localStorage['comment-' + element.name] || '';
}
var author = document.querySelector('#author');
var email = document.querySelector('#email');
var url = document.querySelector('#url');
var comment = document.querySelector('#comment');
if (!author) {
return;
}
author.onblur = storeValue;
email.onblur = storeValue;
url.onblur = storeValue;
comment.onblur = storeValue;
restoreValue(author);
restoreValue(email);
restoreValue(url);
}());
</script>
Adevărul e că nu are WordPress-ul de regulă suficient JS. Musai să-i mai băgăm puțin…
@Mălin: Hai să nu mâncăm chestii când nu e cazul. Ia dă un view source aici, vezi cât js este și de la ce…
Bine de stiut 👍
Este de o functie de tip Immediately-invoked Function Expressions ?
Eu de ce aveam codul deja?!
@Marius: Cred ca trebuie sa il scrii.
Ești sigur că GDPR Police știe diferența dintre cookies și localStorage? Că noi am avut niște dureri de-astea de cap și ne-a luat ceva cu demonstratul în instanță că localStorage nu este accesibil de către nimeni.
@Rabotaiu Rabotaieș: Nu sunt expert în domeniul legal, dar la GDPR sunt mai multe chestii:
Cookie-urile sunt permise și fără acord dacă îndeplinesc câteva condiții:
1. Sunt 1st party (i.e. generate de site-ul vizitat în acel moment)
2. Sunt esențiale pentru funcționarea site-ului (e.g. sesiunea utilizatorului)
3. Informezi utilizatorul despre scopul lor.
Blocarea tuturor cookieurilor este doar o încercare de a fi mai catolici decât papa
Dacă nu mă înșel și Local Storage are un loc aparte în legislația GDPR, dar, din nou, nu sunt expert în zona asta.