. namespace core_user\hook; use stdClass; use Psr\EventDispatcher\StoppableEventInterface; /** * Hook before user deletion. * * @package core_user * @copyright 2024 Safat Shahin * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ #[\core\attribute\label('Allows plugins or features to perform actions before a user is deleted.')] #[\core\attribute\tags('user')] class before_user_deleted implements StoppableEventInterface { /** * @var bool Whether the propagation of this event has been stopped. */ protected bool $stopped = false; /** * Constructor for the hook. * * @param stdClass $user The user instance */ public function __construct( public readonly stdClass $user, ) { } public function isPropagationStopped(): bool { return $this->stopped; } /** * Stop the propagation of this event. */ public function stop(): void { $this->stopped = true; } }