wp_epofw_addons
StaticStores epofw addons data created by this plugin.
Column Definitions
| Column | Type | Nullable |
|---|---|---|
| 🔑id | BIGINT(20) UNSIGNED | NO |
| post_id | BIGINT(20) UNSIGNED | NO |
| addon_name | VARCHAR(255) | YES |
| addon_status | VARCHAR(20) | YES |
| addon_position | VARCHAR(50) | YES |
| additional_rules | LONGTEXT | YES |
| created_at | DATETIME | YES |
| updated_at | DATETIME | YES |
| addon_id | BIGINT(20) UNSIGNED | NO |
| section_id | VARCHAR(100) | NO |
| section_title | VARCHAR(255) | YES |
| section_order | INT(11) | YES |
| section_status | VARCHAR(20) | YES |
| section_settings | LONGTEXT | YES |
| created_at | DATETIME | YES |
| updated_at | DATETIME | YES |
| section_id | BIGINT(20) UNSIGNED | NO |
| group_id | VARCHAR(100) | NO |
| group_order | INT(11) | YES |
| group_settings | LONGTEXT | YES |
| created_at | DATETIME | YES |
| updated_at | DATETIME | YES |
| row_group_id | BIGINT(20) UNSIGNED | NO |
| columns_id | VARCHAR(100) | NO |
| columns_order | INT(11) | YES |
| layout_type | VARCHAR(20) | YES |
| columns_count | INT(11) | YES |
| created_at | DATETIME | YES |
| updated_at | DATETIME | YES |
| row_group_id | BIGINT(20) UNSIGNED | NO |
| columns_group_id | BIGINT(20) UNSIGNED | YES |
| row_id | VARCHAR(100) | NO |
| sub_row_id | VARCHAR(100) | YES |
| row_num | INT(11) | YES |
| sub_row_order | INT(11) | YES |
| column_settings | LONGTEXT | YES |
| created_at | DATETIME | YES |
| updated_at | DATETIME | YES |
| row_id | BIGINT(20) UNSIGNED | NO |
| field_id | VARCHAR(100) | NO |
| field_type | VARCHAR(50) | YES |
| field_label | VARCHAR(255) | YES |
| field_order | INT(11) | YES |
| field_status | VARCHAR(20) | YES |
| field_data | LONGTEXT | YES |
| created_at | DATETIME | YES |
| updated_at | DATETIME | YES |
CREATE TABLE Statement
CREATE TABLE IF NOT EXISTS `wp_epofw_addons` ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, post_id BIGINT(20) UNSIGNED NOT NULL, addon_name VARCHAR(255) DEFAULT '', addon_status VARCHAR(20) DEFAULT 'on', addon_position VARCHAR(50) DEFAULT 'before_add_to_cart', additional_rules LONGTEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY post_id (post_id), KEY addon_status (addon_status), KEY created_at (created_at) ) $charset_collate;"; // Table 2: Sections (Section information). // Note: Removed foreign key constraints for better WordPress/Multisite compatibility. $sql_sections = "CREATE TABLE IF NOT EXISTS `wp_epofw_sections` ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, addon_id BIGINT(20) UNSIGNED NOT NULL, section_id VARCHAR(100) NOT NULL, section_title VARCHAR(255) DEFAULT '', section_order INT(11) DEFAULT 0, section_status VARCHAR(20) DEFAULT 'on', section_settings LONGTEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY addon_id (addon_id), KEY section_order (section_order), KEY section_status (section_status) ) $charset_collate;"; // Table 3: Row Groups (Layout groups within sections). // Note: Removed foreign key constraints for better WordPress/Multisite compatibility. // v2.3: Removed layout_type and columns_count (moved to columns_groups table). $sql_row_groups = "CREATE TABLE IF NOT EXISTS `wp_epofw_row_groups` ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, section_id BIGINT(20) UNSIGNED NOT NULL, group_id VARCHAR(100) NOT NULL, group_order INT(11) DEFAULT 0, group_settings LONGTEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY section_id (section_id), KEY group_order (group_order) ) $charset_collate;"; // Table 4: Columns Groups (Groups of columns within a row group). // This creates a clear hierarchy: Row Group -> Columns Group -> Columns. // v2.3: New table for better structure and performance. // v2.3: Added layout_type (moved from row_groups) - each columns group can have its own layout. $sql_columns_groups = "CREATE TABLE IF NOT EXISTS `wp_epofw_columns_groups` ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, row_group_id BIGINT(20) UNSIGNED NOT NULL, columns_id VARCHAR(100) NOT NULL, columns_order INT(11) DEFAULT 0, layout_type VARCHAR(20) DEFAULT 'single', columns_count INT(11) DEFAULT 1, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY row_group_id (row_group_id), KEY columns_id (columns_id), KEY columns_order (columns_order), KEY layout_type (layout_type), UNIQUE KEY unique_columns_group (row_group_id, columns_id) ) $charset_collate;"; // Table 5: Rows/Columns (Individual row/column data with settings). // Note: 'row_number' is a reserved word in MariaDB/MySQL, so we use 'row_num' instead. // Note: Removed foreign key constraints for better WordPress/Multisite compatibility. // v2.2: Added sub_row_id for sub-row support (rows within rows). // v2.3: Added columns_group_id for new structure (keeping sub_row_id for backward compatibility). $sql_rows = "CREATE TABLE IF NOT EXISTS `wp_epofw_rows` ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, row_group_id BIGINT(20) UNSIGNED NOT NULL, columns_group_id BIGINT(20) UNSIGNED DEFAULT NULL, row_id VARCHAR(100) NOT NULL, sub_row_id VARCHAR(100) DEFAULT NULL, row_num INT(11) DEFAULT 1, sub_row_order INT(11) DEFAULT 0, column_settings LONGTEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY row_group_id (row_group_id), KEY columns_group_id (columns_group_id), KEY row_num (row_num), KEY sub_row_id (sub_row_id), KEY sub_row_order (sub_row_order), UNIQUE KEY unique_row (columns_group_id, row_id) ) $charset_collate;"; // Table 6: Fields (Individual field data - now belongs to rows). // Note: Removed foreign key constraints for better WordPress/Multisite compatibility. $sql_fields = "CREATE TABLE IF NOT EXISTS `wp_epofw_fields` ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, row_id BIGINT(20) UNSIGNED NOT NULL, field_id VARCHAR(100) NOT NULL, field_type VARCHAR(50) DEFAULT 'text', field_label VARCHAR(255) DEFAULT '', field_order INT(11) DEFAULT 0, field_status VARCHAR(20) DEFAULT 'on', field_data LONGTEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY row_id (row_id), KEY field_type (field_type), KEY field_order (field_order), KEY field_status (field_status), UNIQUE KEY unique_field (row_id, field_id) ) $charset_collate;"; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; // Create tables in order (parent tables first). dbDelta( $sql_addons );
Safe to delete?
If you have uninstalled Extra Product Options for WooCommerce, this table is generally safe to remove. However, always back up your database first.
Note: Some plugins share tables or are dependencies of other plugins. Verify nothing else depends on this table before dropping it.
How to remove this table
DROP TABLE IF EXISTS `wp_epofw_addons`;
Run this query using phpMyAdmin, Adminer, or your MySQL client. Back up first.
Other tables from Extra Product Options for WooCommerce