post_type === \King_Addons\Data_Table_Builder::POST_TYPE; $data = $is_edit ? get_post_meta($table->ID, \King_Addons\Data_Table_Builder::META_DATA, true) : []; $config = $is_edit ? get_post_meta($table->ID, \King_Addons\Data_Table_Builder::META_CONFIG, true) : []; $style = $is_edit ? get_post_meta($table->ID, \King_Addons\Data_Table_Builder::META_STYLE, true) : []; $filters = $is_edit ? get_post_meta($table->ID, \King_Addons\Data_Table_Builder::META_FILTERS, true) : []; $responsive = $is_edit ? get_post_meta($table->ID, \King_Addons\Data_Table_Builder::META_RESPONSIVE, true) : []; if (!is_array($data)) { $data = []; } if (!is_array($filters)) { $filters = []; } if (empty($data['columns'])) { $data['columns'] = [ ['label' => __('Column 1', 'king-addons'), 'type' => 'text', 'sortable' => true, 'hide_mobile' => false, 'align' => 'left'], ['label' => __('Column 2', 'king-addons'), 'type' => 'text', 'sortable' => true, 'hide_mobile' => false, 'align' => 'left'], ['label' => __('Column 3', 'king-addons'), 'type' => 'text', 'sortable' => true, 'hide_mobile' => false, 'align' => 'left'], ]; } if (empty($data['rows'])) { $rows = []; for ($i = 0; $i < 5; $i++) { $row = []; foreach ($data['columns'] as $column) { $row[] = [ 'value' => '', 'tooltip' => '', 'rowspan' => 1, 'colspan' => 1, ]; } $rows[] = $row; } $data['rows'] = $rows; } $default_config = [ 'search' => true, 'sorting' => true, 'pagination' => true, 'rows_per_page' => (int) ($settings['default_rows_per_page'] ?? 10), ]; $default_style = [ 'preset' => $settings['default_preset'] ?? 'minimal', 'theme' => $settings['default_theme'] ?? 'dark', 'zebra' => true, ]; $default_responsive = [ 'scroll_x' => true, 'hide_columns' => [], ]; $config = wp_parse_args(is_array($config) ? $config : [], $default_config); $style = wp_parse_args(is_array($style) ? $style : [], $default_style); $responsive = wp_parse_args(is_array($responsive) ? $responsive : [], $default_responsive); $state = [ 'columns' => $data['columns'], 'rows' => $data['rows'], 'config' => $config, 'style' => $style, 'responsive' => $responsive, 'filters' => $filters, ]; $presets = [ 'minimal' => __('Minimal', 'king-addons'), 'glass' => __('Glass', 'king-addons'), 'contrast' => __('Contrast', 'king-addons'), 'soft-gray' => __('Soft Gray', 'king-addons'), 'modern-lines' => __('Modern Lines', 'king-addons'), 'card-table' => __('Card Table', 'king-addons'), 'dark-mode' => __('Dark Mode', 'king-addons'), 'highlight-header' => __('Highlighted Header', 'king-addons'), 'pricing' => __('Pricing Comparison', 'king-addons'), 'feature-matrix' => __('Feature Matrix', 'king-addons'), ]; ?>