Multisite WP-Postratings bug gestione cookie

Fix per bug di WP-Postratings in WordPress Multisite

Durante la personalizzazione del pluging WP-Postratings per questo sito mi sono accorto di un bug nella gestione dei cookie in caso di utilizzo del plugin in un installazione multisite di WordPress. Ecco il fix.

 

Il plugin per wordpress WP-Postratings è perfettamente compatibile con un installazione multisite di wordpress quindi può essere utilizzato senza problemi. Il problema nasce quando viene impostato nelle impostazioni del pluging di verificare le votazioni effettuate dagli utenti attraverso l’utilizzo dei cookie.

In questo caso, il plugin, setta un cookie sul PC dell’utente che ha votato, contenente l’ID del post, attraverso la funzione di PHP bool setcookie($key, $value). Quando il browser dell’utente apre un post qualsiasi, il plugin verifica se l’utente ha il cookie di WP-Postratings, se presente legge l’ID del post contenuto nel cookie e se l’ID presente nel cookie è uguale al ID del post aperto dal browser, inibisce una nuova votazione.

Il problema, quindi il bug, nasce poichè in un installazione multisite gli ID dei post nei vari blog non sono univoci ovvero i vari blog possono avere post con stesso ID. Poiché WP-Postratings controlla dal cookie solo l’ID del post e non anche l’ID del blog allora un utente che vota l’articolo con ID:123 nel blog A vedrà inibita la possibilità di votare il post con ID:123 anche del blog B, C ,D, ecc.

Per risolvere il problema, prima che l’autore del plugin (attualmente alla versione 1.80) rilasci una versione fixata, è necessario modificare il file wp-postratings.php presente nella cartella del plugin.

Alla riga 300 circa modificare la funzione check_rated_cookie da così:

a così:

Alla riga 640 circa all’interno del if modificare come segue:

 

Fatto. Adesso dovrebbe andare tutto correttamente.

 

Alla prossima!!!

 


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *