Files
ramais/includes/class-ramais-admin.php
2025-08-08 22:13:35 -03:00

99 lines
4.1 KiB
PHP

<?php
if (!defined('ABSPATH')) {
exit;
}
class Ramais_Admin {
private $database;
public function __construct($database) {
$this->database = $database;
$this->init_hooks();
}
private function init_hooks() {
add_action('admin_menu', array($this, 'add_admin_menu'));
add_action('admin_post_add_ramal', array($this, 'handle_add_ramal'));
}
public function add_admin_menu() {
add_menu_page(
__('Ramais Telefônicos', 'ramais-telefonicos'),
__('Ramais', 'ramais-telefonicos'),
'manage_options',
'ramais-telefonicos',
array($this, 'render_admin_page'),
'dashicons-phone',
20
);
}
public function render_admin_page() {
if (!current_user_can('manage_options')) {
wp_die(__('Você não tem permissão para acessar esta página.', 'ramais-telefonicos'));
}
$status = isset($_GET['status']) ? sanitize_text_field($_GET['status']) : '';
?>
<div class="wrap">
<h1><?php _e('Adicionar Novo Ramal', 'ramais-telefonicos'); ?></h1>
<?php if ($status === 'success'): ?>
<div class="notice notice-success"><p><?php _e('Ramal adicionado com sucesso!', 'ramais-telefonicos'); ?></p></div>
<?php elseif ($status === 'error'): ?>
<div class="notice notice-error"><p><?php _e('Erro ao adicionar ramal. Verifique os dados.', 'ramais-telefonicos'); ?></p></div>
<?php endif; ?>
<form method="post" action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
<input type="hidden" name="action" value="add_ramal">
<?php wp_nonce_field('add_ramal_nonce'); ?>
<table class="form-table">
<tr>
<th scope="row"><label for="ramal"><?php _e('Ramal', 'ramais-telefonicos'); ?></label></th>
<td><input type="text" name="ramal" id="ramal" class="regular-text" required></td>
</tr>
<tr>
<th scope="row"><label for="responsavel"><?php _e('Responsável', 'ramais-telefonicos'); ?></label></th>
<td><input type="text" name="responsavel" id="responsavel" class="regular-text" required></td>
</tr>
<tr>
<th scope="row"><label for="secretaria"><?php _e('Secretaria', 'ramais-telefonicos'); ?></label></th>
<td><input type="text" name="secretaria" id="secretaria" class="regular-text" required></td>
</tr>
<tr>
<th scope="row"><label for="setor"><?php _e('Setor', 'ramais-telefonicos'); ?></label></th>
<td><input type="text" name="setor" id="setor" class="regular-text" required></td>
</tr>
<tr>
<th scope="row"><label for="email"><?php _e('Email', 'ramais-telefonicos'); ?></label></th>
<td><input type="email" name="email" id="email" class="regular-text" required></td>
</tr>
</table>
<?php submit_button(__('Adicionar Ramal', 'ramais-telefonicos')); ?>
</form>
</div>
<?php
}
public function handle_add_ramal() {
if (!current_user_can('manage_options') || !wp_verify_nonce($_POST['_wpnonce'], 'add_ramal_nonce')) {
wp_die(__('Ação não autorizada.', 'ramais-telefonicos'));
}
$data = array(
'ramal' => $_POST['ramal'] ?? '',
'responsavel' => $_POST['responsavel'] ?? '',
'secretaria' => $_POST['secretaria'] ?? '',
'setor' => $_POST['setor'] ?? '',
'email' => $_POST['email'] ?? ''
);
$success = $this->database->add_ramal($data);
$status = $success ? 'success' : 'error';
wp_redirect(admin_url('admin.php?page=ramais-telefonicos&status=' . $status));
exit;
}
}