$state Serializable state array. * @param int $ttl Time-to-live in seconds; 0 uses the default. * * @return void * @since 1.0.0 */ public function save(string $token, array $state, int $ttl = 0): void { set_transient(self::PREFIX . $token, $state, $ttl > 0 ? $ttl : self::TTL); } /** * Retrieves a pending state without consuming it. * * @param string $token The UUID token. * * @return array|null Null when not found or expired. * @since 1.0.0 */ public function load(string $token): ?array { $data = get_transient(self::PREFIX . $token); return is_array($data) ? $data : null; } /** * Retrieves and deletes a pending state in one operation. * * @param string $token The UUID token. * * @return array|null Null when not found or expired. * @since 1.0.0 */ public function consume(string $token): ?array { $data = $this->load($token); if (null !== $data) { delete_transient(self::PREFIX . $token); } return $data; } }