subsites); $i++) { if ( empty($archiveConf->subsites[$i]->filteredTables) && empty($archiveConf->subsites[$i]->filteredPaths) ) { break; } } if ($i >= count($archiveConf->subsites)) { $this->failMessage = 'The package does not have any importable subsite.'; return self::LV_FAIL; } } if ($coreFoldersCheck) { if (ScanInfo::getInstance()->hasFilteredCoreFolders()) { $this->failMessage = 'The package is missing WordPress core folder(s)! ' . 'It must include wp-admin, wp-content, wp-includes, uploads, plugins, and themes folders.'; return self::LV_FAIL; } } if ($globalTablesCheck) { if ($archiveConf->dbInfo->tablesBaseCount != $archiveConf->dbInfo->tablesFinalCount) { $this->failMessage = 'The package is missing some of the site tables.'; return self::LV_FAIL; } } return self::LV_PASS; } /** * Get test title * * @return string */ public function getTitle() { return 'Package is Importable'; } /** * Render fail content * * @return void */ protected function failContent() { return dupxTplRender( 'parts/validation/tests/importable-package', array( 'testResult' => $this->testResult, 'failMessage' => $this->failMessage ), false ); } protected function passContent() { return $this->failContent(); } }