hide_errors(); require_once ABSPATH . 'wp-admin/includes/upgrade.php'; dbDelta( self::getSchema() ); // add actions after create tables do_action( 'azdrive_db_created' ); } /** * Get schema of database * * @return string */ public static function getSchema(){ global $wpdb; $charsetCollate = $wpdb->has_cap( 'collation' ) ? $wpdb->get_charset_collate() : ''; $prefix = $wpdb->prefix.'az_'; $tables = " CREATE TABLE `{$prefix}folders` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `type` varchar(50) NOT NULL, `parent_id` bigint NOT NULL DEFAULT 0, `color` varchar(8) DEFAULT NULL, `order` int DEFAULT 0, `total_files` int DEFAULT 0, `created_by` bigint NOT NULL DEFAULT 0, `created_at` datetime NOT NULL, `updated_by` bigint NOT NULL DEFAULT 0, `updated_at` datetime NOT NULL, PRIMARY KEY (`id`), KEY `title` (`title`), KEY `type` (`type`), KEY `parent_id` (`parent_id`), KEY `created_by` (`created_by`), KEY `created_at` (`created_at`), KEY `updated_by` (`updated_by`), KEY `updated_at` (`updated_at`) ) $charsetCollate; CREATE TABLE `{$prefix}folder_posts` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `uid` varchar(50) NOT NULL, `post_id` bigint NOT NULL, `folder_id` bigint NOT NULL, `created_by` bigint NOT NULL, `created_at` datetime NOT NULL, `updated_by` bigint NOT NULL, `updated_at` datetime NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uid` (`uid`), KEY `post_id` (`post_id`), KEY `folder_id` (`folder_id`) ) $charsetCollate; "; $tables = apply_filters( 'azdrive_db_tables', $tables, $prefix, $charsetCollate ); return $tables; } /** * Update version of plugin */ public static function updateVersion() { Config::set_option( 'version', AZDRIVE_VERSION ); } }