optionKey = $optionKey; } /** * @param string $contentHash * @return array|null */ function getResumeProgress($contentHash) { if ($contentHash === '' || !function_exists('get_option')) { return null; } $progress = get_option($this->optionKey, null); if (!is_array($progress) || !isset($progress['hash']) || !is_string($progress['hash'])) { return null; } if ($progress['hash'] !== $contentHash) { return null; } /** @var array $progress */ return $progress; } /** * @param string $contentHash * @param array $state * @return void */ function persistImportProgress($contentHash, $state) { if ($contentHash === '' || !function_exists('update_option')) { return; } $state['hash'] = $contentHash; update_option($this->optionKey, $state); } /** * @return void */ function clearImportProgress() { if (function_exists('delete_option')) { delete_option($this->optionKey); } } /** * @param array $progress * @param string $key * @param int $default * @return int */ static function progressInt(array $progress, string $key, int $default): int { if (!isset($progress[$key])) { return $default; } $v = $progress[$key]; if (is_int($v)) { return $v; } if (is_numeric($v)) { return (int)$v; } return $default; } }