get_charset_collate(); dbDelta( "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}support_ticket ( ID int(100) NOT NULL AUTO_INCREMENT, title varchar(255) NOT NULL, description text NOT NULL, category varchar(100) NOT NULL, priority varchar(20) NOT NULL DEFAULT 'medium', user_id int(100) NOT NULL, status varchar(100) NOT NULL DEFAULT 'pending', created_at timestamp NOT NULL DEFAULT current_timestamp(), PRIMARY KEY (ID) ) $charset;" ); dbDelta( "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}support_ticket_message ( ID int(100) NOT NULL AUTO_INCREMENT, message text NOT NULL, user_id int(100) NOT NULL, ticket_id int(100) NOT NULL, created_at timestamp NOT NULL DEFAULT current_timestamp(), PRIMARY KEY (ID) ) $charset;" ); $cols = $wpdb->get_results( "SHOW COLUMNS FROM {$wpdb->prefix}support_ticket LIKE 'priority'" ); if ( empty( $cols ) ) { $wpdb->query( "ALTER TABLE {$wpdb->prefix}support_ticket ADD COLUMN priority varchar(20) NOT NULL DEFAULT 'medium' AFTER category" ); } update_option( 'sst_db_version', SST_DB_VERSION ); } include_once dirname( __FILE__ ) . '/SSTFrontend.class.php'; include_once dirname( __FILE__ ) . '/SSTAdminPage.class.php'; include_once dirname( __FILE__ ) . '/SSTAdminAjax.php'; add_shortcode( 'sst_add_support_ticket', array( 'SSTFrontend', 'add_support_ticket' ) ); add_shortcode( 'sst_list_support_ticket', array( 'SSTFrontend', 'list_support_ticket' ) ); add_shortcode( 'sst_ticket_details', array( 'SSTFrontend', 'ticket_details' ) ); function sst_modify_user_table_column( $column ) { $column['tickets'] = __( 'Tickets', 'sst' ); return $column; } add_filter( 'manage_users_columns', 'sst_modify_user_table_column' ); function sst_modify_user_table_row( $val, $column_name, $user_id ) { if ( $column_name === 'tickets' ) { $url = admin_url( 'admin.php?page=sst_ticket_list&id=' . absint( $user_id ) ); return '' . esc_html__( 'Tickets', 'sst' ) . ''; } return $val; } add_filter( 'manage_users_custom_column', 'sst_modify_user_table_row', 10, 3 ); add_action( 'wp_enqueue_scripts', 'sst_enqueue_styles' ); function sst_enqueue_styles() { wp_enqueue_style( 'sst-frontend', plugin_dir_url( __FILE__ ) . 'assets/sst-frontend.css', array(), SST_VERSION ); }