Uma função auxiliar para avisos administrativos
Se você está no negócio de construir plugins, ou mesmo temas, e está incorporando práticas orientadas a objetos em seu trabalho, então você provavelmente se depara com algum tipo de serialização. E um dos aspectos da serialização é que requer algum tipo de feedback para o usuário.
Esta pode ser uma mensagem de sucesso, uma mensagem de falha ou uma mensagem simplesmente avisando o usuário de que algo deu errado ou talvez algo deva ser atualizado.
Seja qual for o caso, o WordPress oferece todas as facilidades que precisamos; no entanto, podemos facilitar ainda mais para nós mesmos escrevendo uma função auxiliar para avisos de administração. É simples também.
Avisos administrativos: uma função auxiliar
Quando se trata de escrever avisos de administração, é importante familiarizar-se com o gancho apropriado.
A partir daí, você também precisa saber os seguintes nomes de classe:
- aviso-erro
- aviso-sucesso
- aviso-aviso
- aviso-informações
Com isso, é possível escrever uma função auxiliar que use o gancho acima e uma função anônima (ou um closure) para conseguir exatamente o que você precisa. Mas primeiro observe o seguinte:
Funções anônimas, também conhecidas como closures, permitem a criação de funções que não possuem nome especificado. Eles são mais úteis como o valor dos parâmetros de retorno de chamada, mas têm muitos outros usos.
Com isso dito, você deve ter tudo o que precisa para escrever seu ajudante e ter uma ideia de quando esvaziá-lo.
Primeiro, a função auxiliar:
<?php
/**
* Provides an easy eay to display an administration notice based on the incoming
* class and message.
*
* @param string $class the class to add to the notice (warning, error, success)
* @param string $message the message to display in the administration notice area
*/
protected function displayAdminNotice($class, $message)
{
add_action(
'admin_notices',
function() use ($class, $message) {
printf(
'<div class="%1$s"><p>%2$s</p></div>',
esc_attr($class),
esc_html($message)
);
}
);
}
Em seguida, digamos que a solicitação que está sendo feita contém dados inválidos. Para lidar com isso, você usaria o auxiliar acima como o seguinte:
<?php
if (!$this->hasValidInput()) {
$this->displayAdminNotice(
'notice notice-error',
'You must specify a valid email address and license key.'
);
}
Por outro lado, digamos que tudo funcione bem:
<?php
if (update_option('acme-option', $values)) {
$this->displayAdminNotice(
'notice notice-success',
'The options were updated successfully!'
);
}
Como você pode ver, essa função usa ganchos nativos do WordPress, recursos do PHP e também cria um método que pode ser testado por unidade, o que importa se você deseja escrever aplicativos da Web testáveis no WordPress.
E mesmo que não, você tem uma maneira mais fácil de manter seu código um pouco mais DRY do que antes.