web-dev-qa-db-fra.com

Comment utiliser l'API transitoire comme cookie

Je souhaite utiliser l'API transitoire comme cookie, mais je veux savoir si c'est la meilleure pratique et comment rendre transitoire un client unique ou par utilisateur. Merci

1
user1147145

Dans presque toutes les circonstances, un cookie serait préférable à un transitoire. WP a la très mauvaise habitude de ne pas nettoyer correctement les transitoires. Par conséquent, à moins que votre code ne se nettoie après lui-même (supprime les transitoires inutiles), il restera indéfiniment dans votre base de données. Même les transitoires qui sont sur le point d'expirer ne le sont parfois pas.

En termes d'unicité, vous générez un transitoire comme celui-ci:

set_transient( $transient_name, $data_to_store, $expiration_time_in_seconds);

donc pour créer un transitoire qui serait spécifique à l'utilisateur serait quelque chose comme:

$transient_name = 'name_this_whatever' . $user_id;
$expiration_time_in_seconds =  60*60*12;
set_transient( $transient_name, $data_to_store, $expiration_time_in_seconds);

Ensuite, pour récupérer le même champ que vous feriez simplement:

$transient_name = 'name_this_whatever' . $user_id;
get_transient( $transient_name );

Vous voudrez peut-être jeter un coup d'oeil à cette SO discussion ici pour une discussion sur le meilleur moment pour utiliser les transitoires.

0
Hybrid Web Dev