prefix . Plugin::_NAME; } public static function createPluginTable() { $charsetCollate = static::wpdb()->get_charset_collate(); $tableName = static::pluginTableName(); $sql = "CREATE TABLE $tableName ( id mediumint(9) NOT NULL AUTO_INCREMENT, time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, menu_slug text NOT NULL, page_value text NOT NULL, plugin text NOT NULL, PRIMARY KEY (id) ) $charsetCollate;"; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; \dbDelta($sql); } public static function dropPluginTable() { require_once ABSPATH . 'wp-admin/includes/upgrade.php'; $sql = sprintf('DROP TABLE IF EXISTS %s', static::pluginTableName()); static::wpdb()->query($sql); } protected static function deleteRowById($id) { return static::wpdb()->delete(static::pluginTableName(), ['id' => $id], '%d'); } protected static function tableExist() { $sql = sprintf("SHOW TABLES LIKE '%s'", static::pluginTableName()); return static::wpdb()->get_var($sql) === static::pluginTableName(); } protected static function allRowsFromPluginTable() { $sql = sprintf('SELECT * FROM %s', static::pluginTableName()); return static::wpdb()->get_results($sql); } protected static function getAllFromColumnPageValue() { $sql = sprintf('SELECT %s FROM %s', 'page_value', static::pluginTableName()); return static::wpdb()->get_results($sql); } protected static function rowByParentSlug() { $sql = sprintf('SELECT %s FROM %s', 'page_value', static::pluginTableName()); return static::wpdb()->get_results($sql); } protected static function rowFromPluginTable($id) { $sql = sprintf('SELECT * FROM %s WHERE id=%d', static::pluginTableName(), $id); return static::wpdb()->get_results($sql); } protected function insertNewPage($fields = '', $menuSlug) { static::wpdb()->insert( static::pluginTableName(), [ 'time' => current_time('mysql'), 'menu_slug' => $menuSlug, 'page_value' => $fields, 'plugin' => Plugin::_NAME ] ); } protected function insertId() { return static::wpdb()->insert_id; } protected function updateEditPage($pageId, $fields = '', $menuSlug) { static::wpdb()->update( static::pluginTableName(), [ 'time' => current_time('mysql'), 'menu_slug' => $menuSlug, 'page_value' => $fields, 'plugin' => Plugin::_NAME ], ['ID' => $pageId] ); } protected static function allOptionNamesFromOptionsTable() { $sql = sprintf('SELECT %s FROM %s', 'option_name', static::wpdb()->prefix . 'options'); return static::wpdb()->get_results($sql); } }