![]() Server : Apache System : Linux pod-100823:apache2_74:v0.5.7 5.4.0-1138-gcp #147~18.04.1-Ubuntu SMP Mon Oct 7 21:46:26 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33.7 Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system Directory : /nas/content/live/attorneyexperi/wp-content/plugins/imagify/classes/User/ |
<?php namespace Imagify\User; use Date; use Imagify_Data; use WP_Error; /** * Imagify User class. * * @since 1.0 */ class User { /** * The Imagify user ID. * * @since 1.0 * * @var string */ public $id; /** * The user email. * * @since 1.0 * * @var string */ public $email; /** * The plan ID. * * @since 1.0 * * @var int */ public $plan_id; /** * The plan label. * * @since 1.2 * * @var string */ public $plan_label; /** * The total quota. * * @since 1.0 * * @var int */ public $quota; /** * The total extra quota (Imagify Pack). * * @since 1.0 * * @var int */ public $extra_quota; /** * The extra quota consumed. * * @since 1.0 * * @var int */ public $extra_quota_consumed; /** * The current month consumed quota. * * @since 1.0 * * @var int */ public $consumed_current_month_quota; /** * The next month date to credit the account. * * @since 1.1.1 * * @var Date */ public $next_date_update; /** * If the account is activate or not. * * @since 1.0.1 * * @var bool */ public $is_active; /** * If the account is monthly or yearly. * * @var bool */ public $is_monthly; /** * Store a \WP_Error object if the request to fetch the user data failed. * False overwise. * * @var bool|WP_Error * @since 1.9.9 */ private $error; /** * The constructor. * * @since 1.0 * * @return void */ public function __construct() { $user = get_imagify_user(); if ( is_wp_error( $user ) ) { $this->error = $user; return; } $this->id = $user->id; $this->email = $user->email; $this->plan_id = (int) $user->plan_id; $this->plan_label = ucfirst( $user->plan_label ); $this->quota = $user->quota; $this->extra_quota = $user->extra_quota; $this->extra_quota_consumed = $user->extra_quota_consumed; $this->consumed_current_month_quota = $user->consumed_current_month_quota; $this->next_date_update = $user->next_date_update; $this->is_active = $user->is_active; $this->is_monthly = $user->is_monthly; $this->error = false; } /** * Get the possible error returned when fetching user data. * * @return bool|WP_Error A \WP_Error object if the request to fetch the user data failed. False overwise. * @since 1.9.9 */ public function get_error() { return $this->error; } /** * Percentage of consumed quota, including extra quota. * * @since 1.0 * * @return float|int */ public function get_percent_consumed_quota() { static $done = false; if ( $this->get_error() ) { return 0; } $quota = $this->quota; $consumed_quota = $this->consumed_current_month_quota; if ( imagify_round_half_five( $this->extra_quota_consumed ) < $this->extra_quota ) { $quota += $this->extra_quota; $consumed_quota += $this->extra_quota_consumed; } if ( ! $quota || ! $consumed_quota ) { $percent = 0; } else { $percent = 100 * $consumed_quota / $quota; $percent = round( $percent, 1 ); $percent = min( max( 0, $percent ), 100 ); } $percent = (float) $percent; if ( $done ) { return $percent; } $previous_percent = Imagify_Data::get_instance()->get( 'previous_quota_percent' ); // Percent is not 100% anymore. if ( 100.0 === (float) $previous_percent && $percent < 100 ) { /** * Triggered when the consumed quota percent decreases below 100%. * * @since 1.7 * @author Grégory Viguier * * @param float|int $percent The current percentage of consumed quota. */ do_action( 'imagify_not_over_quota_anymore', $percent ); } // Percent is not >= 80% anymore. if ( ( (float) $previous_percent >= 80.0 && $percent < 80 ) ) { /** * Triggered when the consumed quota percent decreases below 80%. * * @since 1.7 * @author Grégory Viguier * * @param float|int $percent The current percentage of consumed quota. * @param float|int $previous_percent The previous percentage of consumed quota. */ do_action( 'imagify_not_almost_over_quota_anymore', $percent, $previous_percent ); } if ( (float) $previous_percent !== (float) $percent ) { Imagify_Data::get_instance()->set( 'previous_quota_percent', $percent ); } $done = true; return $percent; } /** * Count percent of unconsumed quota. * * @since 1.0 * * @return float|int */ public function get_percent_unconsumed_quota() { return 100 - $this->get_percent_consumed_quota(); } /** * Check if the user has a free account. * * @since 1.1.1 * * @return bool */ public function is_free() { return 1 === $this->plan_id; } /** * Check if the user is a growth account * * @return bool */ public function is_growth() { return ( 16 === $this->plan_id || 18 === $this->plan_id ); } /** * Check if the user is an infinite account * * @return bool */ public function is_infinite() { return ( 15 === $this->plan_id || 17 === $this->plan_id ); } /** * Check if the user has consumed all his/her quota. * * @since 1.1.1 * @since 1.9.9 Return false if the request to fetch the user data failed. * * @return bool */ public function is_over_quota() { if ( $this->get_error() ) { return false; } return ( $this->is_free() && floatval( 100 ) === round( $this->get_percent_consumed_quota() ) ); } }