Η επέκταση της διάρκειας ζωής των cookies στο WordPress είναι μια συνηθισμένη ανάγκη, ειδικά όταν θέλουμε να κρατήσουμε τους χρήστες συνδεδεμένους για μεγαλύτερο διάστημα από τις προεπιλεγμένες 48 ώρες (ή 14 ημέρες αν επιλεγεί το “Να με θυμάσαι”).
Αν θέλετε να αποφύγετε τη χρήση κάποιου “βαριού” plugin, μπορείτε να το επιτύχετε εύκολα προσθέτοντας λίγο κώδικα PHP στο αρχείο functions.php του θέματός σας (κατά προτίμηση σε ένα Child Theme).
Πώς λειτουργεί ο μηχανισμός του WordPress;
Το WordPress χρησιμοποιεί το φίλτρο auth_cookie_expiration για να καθορίσει το χρονικό όριο λήξης του cookie σύνδεσης. Η τιμή που επιστρέφει αυτό το φίλτρο μετριέται σε δευτερόλεπτα.
Ο Κώδικας
Μπορείτε να χρησιμοποιήσετε το παρακάτω snippet για να ορίσετε τη διάρκεια σύνδεσης, για παράδειγμα, σε 30 ημέρες.
PHP
/**
* Επέκταση διάρκειας σύνδεσης (Login Session) στο WordPress
*/
function my_custom_cookie_expiration( $expiration, $user_id, $remember ) {
// Αν ο χρήστης έχει επιλέξει το "Να με θυμάσαι" (Remember Me)
if ( $remember ) {
// 30 ημέρες σε δευτερόλεπτα: 30 * 24 * 60 * 60
$expiration = 30 * DAY_IN_SECONDS;
} else {
// Αν δεν το έχει επιλέξει, ορίζουμε π.χ. 2 ημέρες
$expiration = 2 * DAY_IN_SECONDS;
}
return $expiration;
}
add_filter( 'auth_cookie_expiration', 'my_custom_cookie_expiration', 99, 3 );
Ανάλυση του κώδικα:
DAY_IN_SECONDS: Είναι μια σταθερά του WordPress που ισούται με 86.400 δευτερόλεπτα.$remember: Αυτή η μεταβλητή ελέγχει αν ο χρήστης τσέκαρε το κουτάκι “Remember Me” στη σελίδα εισόδου.- Προτεραιότητα
99: Χρησιμοποιούμε υψηλή προτεραιότητα για να βεβαιωθούμε ότι ο δικός μας κώδικας θα υπερισχύσει άλλων ρυθμίσεων.
Πίνακας Υπολογισμού Χρόνου
Αν θέλετε να ορίσετε διαφορετικά διαστήματα, δείτε τον παρακάτω πίνακα για τις τιμές σε δευτερόλεπτα:
| Διάρκεια | Υπολογισμός (PHP) | Σύνολο Δευτερολέπτων |
| 1 Εβδομάδα | 7 * DAY_IN_SECONDS | 604.800 |
| 1 Μήνας (30 ημέρες) | 30 * DAY_IN_SECONDS | 2.592.000 |
| 1 Έτος | 365 * DAY_IN_SECONDS | 31.536.000 |
Σημαντικές Σημειώσεις Ασφαλείας
- Δημόσιοι Υπολογιστές: Η επέκταση της διάρκειας σύνδεσης αυξάνει τον κίνδυνο αν ένας χρήστης συνδεθεί από κοινόχρηστο υπολογιστή και ξεχάσει να κάνει αποσύνδεση (Logout).
- Ασφάλεια SSL: Βεβαιωθείτε ότι το site σας τρέχει σε HTTPS, ώστε τα cookies σύνδεσης να μεταφέρονται κρυπτογραφημένα.
- Εκκαθάριση Cookies: Μετά την προσθήκη του κώδικα, οι αλλαγές θα ισχύσουν για τις νέες συνδέσεις. Οι ήδη συνδεδεμένοι χρήστες θα διατηρήσουν την παλιά ημερομηνία λήξης μέχρι να ξανακάνουν login.
Tip: Αν χρησιμοποιείτε κάποιο plugin ασφαλείας (όπως το Wordfence ή το Solid Security), ελέγξτε τις ρυθμίσεις τους, καθώς συχνά έχουν δικές τους παραμέτρους για τη λήξη των sessions που μπορεί να συγκρούονται με τον κώδικά σας.

