. */ // phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace // phpcs:disable Squiz.Classes.ValidClassName.NotCamelCaps trait Logtivity_User_Logger_Trait { /** * @var Logtivity_Wp_User */ public Logtivity_Wp_User $user; /** * @param null|int|WP_User|Logtivity_Wp_User $user * * @return $this */ public function setUser($user = null): self { $this->user = new Logtivity_Wp_User($user); return $this; } /** * @return ?int */ protected function getUserID(): ?int { if ( $this->options->shouldStoreUserId() && $this->user->isLoggedIn() ) { return $this->user->id(); } return null; } /** * @return ?string */ protected function maybeGetUsersIp(): ?string { if ($this->options->shouldStoreIp()) { $ipAddress = filter_var( ($_SERVER['HTTP_CLIENT_IP'] ?? '') ?: ($_SERVER['HTTP_X_FORWARDED_FOR'] ?? '') ?: $_SERVER['REMOTE_ADDR'] ?? '', FILTER_VALIDATE_IP ); return $ipAddress ?: null; } return null; } /** * @return ?string */ protected function maybeGetUsersUsername(): ?string { if ( $this->options->shouldStoreUsername() && $this->user->isLoggedIn() ) { return $this->user->userLogin(); } return null; } }