optionsRepository = $optionsRepository; $this->wpAdapter = $wpAdapter; } /** * Deletes expired transients. * * @return void */ public function purge(): void { if ( $this->wpAdapter->isMultisite() ) { $sites = Plugin::getSites(); foreach ( $sites as $site ) { $this->wpAdapter->switchToBlog( $site ); $this->purgeForSite(); $this->wpAdapter->restoreCurrentBlog(); } } else { $this->purgeForSite(); } } private function purgeForSite(): void { $transients = $this->optionsRepository->getExpiredTransientsByPrefix( Transients::CHECKOUT_DATA_PREFIX ); foreach ( $transients as $transient ) { $this->wpAdapter->deleteTransient( $transient ); } } }