ID, 'ticket_status', array('fields' => 'names')); $current_status = !empty($status) ? $status[0] : 'Aberto'; $type = wp_get_object_terms($post->ID, 'ticket_type', array('fields' => 'names')); $current_type = !empty($type) ? $type[0] : __('Nenhum', 'simple-ticket-system'); $author_id = $post->post_author; $author = get_userdata($author_id); $attachments = get_attached_media('', $post->ID); $ticket_id = get_post_meta($post->ID, '_sts_ticket_id', true); echo '

' . __('ID do Ticket:', 'simple-ticket-system') . ' ' . esc_html($ticket_id) . '

'; echo '

' . __('Criado por:', 'simple-ticket-system') . ' ' . $author->display_name . '

'; echo '

' . __('Email:', 'simple-ticket-system') . ' ' . $author->user_email . '

'; echo '

' . __('Data:', 'simple-ticket-system') . ' ' . get_the_date('d/m/Y H:i', $post->ID) . '

'; echo ''; echo ''; echo '

' . __('Tipo de Solicitação:', 'simple-ticket-system') . ' ' . esc_html($current_type) . '

'; if (!empty($attachments)) { echo '

' . __('Anexos:', 'simple-ticket-system') . '

'; echo ''; } else { echo '

' . __('Anexos:', 'simple-ticket-system') . ' ' . __('Nenhum anexo.', 'simple-ticket-system') . '

'; } } // Callback para respostas do ticket function sts_ticket_responses_callback($post) { $responses = get_comments(array( 'post_id' => $post->ID, 'order' => 'ASC' )); echo '
'; if ($responses) { foreach ($responses as $response) { echo '
'; echo '

' . $response->comment_author . ' ' . date('d/m/Y H:i', strtotime($response->comment_date)) . '

'; echo '
' . wpautop($response->comment_content) . '
'; echo '

'; } } else { echo '

' . __('Nenhuma resposta ainda.', 'simple-ticket-system') . '

'; } echo '
'; // Formulário para nova resposta echo '

' . __('Adicionar Resposta', 'simple-ticket-system') . '

'; echo ''; echo '

' . __('Digite sua resposta acima e atualize o ticket.', 'simple-ticket-system') . '

'; } // Salvar dados do ticket function sts_save_ticket_data($post_id) { if (!isset($_POST['sts_ticket_nonce']) || !wp_verify_nonce($_POST['sts_ticket_nonce'], 'sts_save_ticket_data')) { return; } if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } if (!current_user_can('edit_post', $post_id)) { return; } // Salvar status if (isset($_POST['ticket_status'])) { $status_name = sanitize_text_field($_POST['ticket_status']); $term = get_term_by('name', $status_name, 'ticket_status'); if ($term && !is_wp_error($term)) { wp_set_object_terms($post_id, $term->term_id, 'ticket_status'); } else { wp_set_object_terms($post_id, $status_name, 'ticket_status'); } } // Salvar resposta se houver if (!empty($_POST['sts_response_content'])) { $user = wp_get_current_user(); $comment_data = array( 'comment_post_ID' => $post_id, 'comment_author' => $user->display_name, 'comment_author_email' => $user->user_email, 'comment_content' => wp_kses_post($_POST['sts_response_content']), 'comment_type' => '', 'comment_parent' => 0, 'user_id' => $user->ID, 'comment_approved' => 1, ); $comment_id = wp_insert_comment($comment_data); if ($comment_id) { // Enviar notificação por email sts_notify_ticket_response($post_id, $comment_id); } } } add_action('save_post_ticket', 'sts_save_ticket_data', 10, 1); // Personalizar colunas na lista de tickets function sts_custom_ticket_columns($columns) { $new_columns = array( 'cb' => $columns['cb'], 'ticket_id' => __('ID', 'simple-ticket-system'), 'title' => $columns['title'], 'author' => __('Autor', 'simple-ticket-system'), 'ticket_type' => __('Tipo', 'simple-ticket-system'), 'status' => __('Status', 'simple-ticket-system'), 'date' => $columns['date'] ); return $new_columns; } add_filter('manage_ticket_posts_columns', 'sts_custom_ticket_columns'); function sts_custom_ticket_column_data($column, $post_id) { switch ($column) { case 'status': $status = wp_get_object_terms($post_id, 'ticket_status', array('fields' => 'names')); if (!empty($status)) { $status_class = sanitize_title($status[0]); echo '' . esc_html($status[0]) . ''; } else { echo __('Nenhum status definido', 'simple-ticket-system'); } break; case 'ticket_id': $ticket_id = get_post_meta($post_id, '_sts_ticket_id', true); echo $ticket_id ? '' . esc_html($ticket_id) . '' : ''; break; } } add_action('manage_ticket_posts_custom_column', 'sts_custom_ticket_column_data', 10, 2);