hide_errors(); $notCreatedTables = []; $mysqlError = ""; if (is_multisite()) { // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $sites = $wpdb->get_results('SELECT blog_id AS id FROM `'.$wpdb->blogs.'` ORDER BY blog_id', ARRAY_A); } else { $sites = [['id' => -1]]; } foreach ($sites as $site) { if ($site['id'] !== -1) { switch_to_blog($site['id']); } $tiReviewsTableName = $this->get_tablename('reviews'); $tiViewsTableName = $this->get_tablename('views'); include $this->get_plugin_dir() . 'include' . DIRECTORY_SEPARATOR . 'schema.php'; foreach (array_keys($ti_db_schema) as $tableName) { if (!$this->is_table_exists($tableName)) { dbDelta(trim($ti_db_schema[ $tableName ])); } if ($wpdb->last_error) { $mysqlError = $wpdb->last_error; } if (!$this->is_table_exists($tableName)) { $notCreatedTables []= $tableName; } } if ($site['id'] !== -1) { restore_current_blog(); } } if ($notCreatedTables) { $this->loadI18N(); deactivate_plugins(plugin_basename($this->plugin_file_path)); $sqlsToRun = array_map(function($tableName) use($ti_db_schema) { return trim($ti_db_schema[ $tableName ]); }, $notCreatedTables); $preStyle = 'background: #eee; padding: 10px 20px; word-wrap: break-word; white-space: pre-wrap'; wp_die(wp_kses_post( '' . __('Plugin activation is failed because the required database tables could not created!', 'wp-reviews-plugin-for-google') . '

' . /* translators: %s: database */ sprintf(__('We got the following error from %s:', 'wp-reviews-plugin-for-google'), __('database', 'wp-reviews-plugin-for-google')) . '
'. $mysqlError .'
' . '' . __('Run the following SQL codes in your database administration interface (e.g. PhpMyAdmin) to create the tables or contact your system administrator:', 'wp-reviews-plugin-for-google') . '' . '
' . implode('
', $sqlsToRun) . '
' . '' . __('Then try activate the plugin again.', 'wp-reviews-plugin-for-google') . '' )); } update_option($this->get_option_name('active'), '1'); ?>