99 lines
4.1 KiB
PHP
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;
|
||
|
}
|
||
|
}
|