HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/8.0.30
System: Linux multiplicar 3.10.0-1160.102.1.el7.x86_64 #1 SMP Tue Oct 17 15:42:21 UTC 2023 x86_64
User: root (0)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: /var/www/html/cisuenolar.sumar.com.py/wp-content/plugins/peepso-friends/classes/friendscache.php
<?php

/**
 * @class PeepSoFriendsCache
 *
 * ALL METHODS accept array[int] as argument
 * ALL METHODS return nothing
 */
class PeepSoFriendsCache {

    const CACHE_TIME = 120;

    /******* WRITE UTILITIES ****/

    // FIRE EVERYTHING
    public static function _(array $users) {
        #5849 only fires when param $users is array
        if (is_array($users) && count($users) > 0) {
            self::reset_friends_ids($users);
            self::reset_friends_count($users);
            self::reset_friends_cache_table($users);
            self::reset_widgets($users);
        }
    }

    // Reset friends
    public static function reset_friends_count(array $users) {
        foreach($users as $user) {
            if ($user) {
                PeepSoFriends::get_instance()->get_num_friends($user, TRUE);
            }
        }
    }

    // Reset friend ids
    public static function reset_friends_ids(array $users) {
        foreach($users as $user) {
            if ($user) {
                PeepSoFriendsModel::get_friends_ids($user,TRUE);
            }
        }
    }

    // Reset friends_cache table
    public static function reset_friends_cache_table(array $users, $forced = TRUE)
    {
        global $wpdb;

        foreach ($users as $user) {

            if (!$user) { 
                continue; 
            }

            $key = 'friends_cache_'.$user;

            if(!$forced && NULL !== PeepSo3_Mayfly::get($key)) {
                continue;
            }

            if(!$forced) {
//                new PeepSoError("\t$user\t Resetting friends cache");
            }

            $wpdb->delete($wpdb->prefix . 'peepso_friends_cache', ['user_id' => $user]);

            $ids = PeepSoFriendsModel::get_friends_ids($user);

            foreach ($ids as $id) {
                $wpdb->query("INSERT IGNORE INTO {$wpdb->prefix}peepso_friends_cache (user_id, friend_id) VALUES ($user,$id)");
                $wpdb->query("INSERT IGNORE INTO {$wpdb->prefix}peepso_friends_cache (user_id, friend_id) VALUES ($id,$user)");
            }

            PeepSo3_Mayfly::set($key, 1, self::CACHE_TIME);
        }
    }

    // Widget transients
    public static function reset_widgets(array $users) {
        foreach($users as $user) {
            PeepSo3_Mayfly::del_like('peepso_cache_widget_friends%_'.$user);
//            PeepSo3_Mayfly::del('peepso_cache_widget_friendsupcomingbirthday_' . $user);
//            PeepSo3_Mayfly::del('peepso_cache_widget_friendsupcomingbirthday_savedate_' . $user);
//            PeepSo3_Mayfly::del('peepso_cache_widget_friendsbirthday_' . $user);
//            PeepSo3_Mayfly::del('peepso_cache_widget_friendsbirthday_savedate_' . $user);
//            PeepSo3_Mayfly::del('peepso_cache_widget_friendslist_' . $user);
//            PeepSo3_Mayfly::del('peepso_cache_widget_friendslist_savedate_' . $user);
        }
    }
}