base_prefix . self::PACKAGES_TABLE_NAME; $GLOBALS['wpdb']->query('DROP TABLE IF EXISTS ' . $tableName); $fsystem = new WP_Filesystem_Direct(true); $fsystem->rmdir(self::getSsdirPathWpCont(), true); $fsystem->rmdir(self::getSsdirPathLegacy(), true); } /** * Remove plugins settings * * @return void */ private static function removeSettings() { if (get_option(self::UNINSTALL_SETTINGS_OPTION_KEY) != true) { return; } self::deleteUserMetaKeys(); self::deleteOptions(); self::deleteTransients(); } /** * Delete all users meta key * * @return void */ private static function deleteUserMetaKeys() { /** @var wpdb */ global $wpdb; $wpdb->query("DELETE FROM " . $wpdb->usermeta . " WHERE meta_key REGEXP '^duplicator_(?!pro_)'"); } /** * Delete all options * * @return void */ private static function deleteOptions() { $optionsTableName = $GLOBALS['wpdb']->base_prefix . "options"; $dupOptionNames = $GLOBALS['wpdb']->get_col( "SELECT `option_name` FROM `{$optionsTableName}` WHERE `option_name` REGEXP '^duplicator_(?!pro_)'" ); foreach ($dupOptionNames as $dupOptionName) { delete_option($dupOptionName); } } /** * Delete all transients * * @return void */ private static function deleteTransients() { $optionsTableName = $GLOBALS['wpdb']->base_prefix . "options"; $dupOptionTransientNames = $GLOBALS['wpdb']->get_col( "SELECT `option_name` FROM `{$optionsTableName}` WHERE `option_name` REGEXP '^_transient_duplicator_(?!pro_)'" ); foreach ($dupOptionTransientNames as $dupOptionTransientName) { delete_transient(str_replace("_transient_", "", $dupOptionTransientName)); } } } DuplicatorLiteUninstall::uninstall();