prefix . 'hey_feedback_items'; } /** * Returns the feedback responses table name. * * @return string */ public static function responses_table() { global $wpdb; return $wpdb->prefix . 'hey_feedback_responses'; } /** * Returns the feedback meta table name. * * @return string */ public static function meta_table() { global $wpdb; return $wpdb->prefix . 'hey_feedback_meta'; } /** * Creates or updates all plugin database tables. */ public static function create_tables() { global $wpdb; $charset_collate = $wpdb->get_charset_collate(); $items_table = self::items_table(); $responses_table = self::responses_table(); $meta_table = self::meta_table(); $sql = "CREATE TABLE {$items_table} ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, title varchar(255) NOT NULL DEFAULT '', type varchar(50) NOT NULL DEFAULT '', display_mode varchar(50) NOT NULL DEFAULT 'floating', settings longtext NOT NULL, conditions longtext NOT NULL, status varchar(20) NOT NULL DEFAULT 'active', created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY status (status), KEY type (type) ) {$charset_collate}; CREATE TABLE {$responses_table} ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, widget_id bigint(20) unsigned NOT NULL, page_url varchar(2048) NOT NULL DEFAULT '', page_id bigint(20) unsigned NOT NULL DEFAULT 0, value varchar(255) NOT NULL DEFAULT '', text_response longtext NOT NULL, user_agent varchar(512) NOT NULL DEFAULT '', ip_hash varchar(64) NOT NULL DEFAULT '', user_id bigint(20) unsigned NOT NULL DEFAULT 0, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY widget_id (widget_id), KEY page_id (page_id), KEY created_at (created_at) ) {$charset_collate}; CREATE TABLE {$meta_table} ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, response_id bigint(20) unsigned NOT NULL, meta_key varchar(255) NOT NULL DEFAULT '', meta_value longtext NOT NULL, PRIMARY KEY (id), KEY response_id (response_id), KEY meta_key (meta_key(191)) ) {$charset_collate};"; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; dbDelta( $sql ); } }