Comment limiter le nombre de requête autorisé par utilisateur dans votre plugin WordPress sur-mesure ?
Il est possible de limiter le nombre de requêtes autorisées par utilisateur dans un plugin WordPress en implémentant un système de suivi et de contrôle. Cela peut être utile, par exemple, si vous avez un plugin qui fait des appels API ou des opérations coûteuses en ressources et que vous voulez limiter leur utilisation par utilisateur. Voici les étapes générales pour mettre cela en place :
1. Utilisation des métadonnées utilisateur
Vous pouvez stocker le nombre de requêtes dans les métadonnées de l’utilisateur à l’aide de la fonction update_user_meta()
. Vous pouvez ensuite vérifier le nombre de requêtes faites par chaque utilisateur à chaque nouvelle requête.
2. Exemple de code pour limiter le nombre de requêtes
Voici un exemple simple qui montre comment limiter le nombre de requêtes par utilisateur (par exemple, 10 requêtes par jour) :
function limit_user_requests() {
// Obtenir l’ID de l’utilisateur connecté
$user_id = get_current_user_id();
if ($user_id) {
// Obtenir le nombre de requêtes déjà effectuées aujourd’hui
$requests_today = get_user_meta($user_id, ‘requests_today’, true);
$last_request_time = get_user_meta($user_id, ‘last_request_time’, true);
// Vérifier si la dernière requête était aujourd’hui
$today = date(‘Y-m-d’);
$last_request_date = date(‘Y-m-d’, strtotime($last_request_time));
if ($today != $last_request_date) {
// Réinitialiser le compteur si la dernière requête était d’un jour précédent
$requests_today = 0;
}
// Limiter le nombre de requêtes à 10 par jour
$max_requests = 10;
if ($requests_today < $max_requests) {
// Permettre la requête
$requests_today++;
update_user_meta($user_id, ‘requests_today’, $requests_today);
update_user_meta($user_id, ‘last_request_time’, current_time(‘mysql’));
// Continuer avec le traitement de la requête
echo « Requête autorisée, il vous reste » . ($max_requests – $requests_today) . » requêtes pour aujourd’hui. »;
} else {
// Bloquer la requête
echo « Limite de requêtes atteinte pour aujourd’hui. »;
}
} else {
echo « Utilisateur non connecté. »;
}
}
3. Mise en place du système de limitation
- Ajoutez la fonction à l’endroit où vous gérez les requêtes API ou autres actions du plugin.
- La fonction stocke et compare les métadonnées
requests_today
(le nombre de requêtes effectuées aujourd’hui) etlast_request_time
(la date de la dernière requête). - Si l’utilisateur dépasse la limite fixée, la requête est bloquée avec un message.
4. Personnalisation de la limite
Vous pouvez facilement modifier ce script pour :
- Utiliser un nombre de requêtes différent en fonction du rôle de l’utilisateur.
- Limiter les requêtes sur une période de temps différente (par exemple, par heure, par semaine).
5. Stockage plus performant
Si vous gérez un grand nombre d’utilisateurs, il pourrait être plus performant d’utiliser des transients WordPress ou même une table personnalisée dans la base de données pour stocker et suivre les requêtes.
6. Options de gestion des quotas
Vous pouvez ajouter une interface d’administration pour permettre aux utilisateurs ou aux administrateurs de suivre et ajuster la limite de requêtes.
Cela permet un contrôle précis de l’utilisation des ressources de votre plugin.