Gerenciando Saldo de Usuários no WordPress com Funções Personalizadas
No desenvolvimento de projetos com WordPress, muitas vezes surge a necessidade de criar funcionalidades personalizadas para gerenciar metadados dos usuários. Um caso comum é o controle de saldo associado a cada usuário. Neste artigo, apresentamos duas funções PHP para adicionar e subtrair valores do campo de saldo de um usuário.
Função: adicionar_ao_saldo
Essa função permite adicionar um valor ao saldo atual de um usuário.
Como funciona:
- Obtém o valor atual do campo meta
saldo
do usuário utilizandoget_user_meta
. - Verifica se o saldo atual é numérico, inicializando como zero caso não seja.
- Soma o valor enviado ao saldo atual.
- Atualiza o saldo no banco de dados com
update_user_meta
.
Código:
function adicionar_ao_saldo($user_id, $valor_add) {
// Verifica se o usuário existe
if (get_userdata($user_id)) {
// Obtém o valor atual do campo meta 'saldo'
$saldo_atual = get_user_meta($user_id, 'saldo', true);
// Se o saldo atual não for numérico, inicializa como zero
if (!is_numeric($saldo_atual)) {
$saldo_atual = 0;
}
// Se o valor a adicionar não for numérico, lança um erro
if (!is_numeric($valor_add)) {
error_log("O valor a ser adicionado não é numérico.");
return;
}
// Converte os valores para float para evitar problemas de tipo
$saldo_atual = floatval($saldo_atual);
$valor_add = floatval($valor_add);
// Calcula o novo saldo
$novo_saldo = $saldo_atual + $valor_add;
// Atualiza o campo meta 'saldo' com o novo valor
update_user_meta($user_id, 'saldo', $novo_saldo);
} else {
// Registra um erro caso o usuário não exista
error_log("Usuário com ID {$user_id} não encontrado.");
}
}
Exemplo de uso:
adicionar_ao_saldo(123, 50.00); // Adiciona R$ 50,00 ao saldo do usuário com ID 123.
Função: subtrair_do_saldo
Essa função permite subtrair um valor do saldo atual de um usuário, garantindo que o saldo não fique negativo.
Como funciona:
- Obtém o valor atual do campo meta
saldo
. - Verifica se o saldo atual é numérico, inicializando como zero caso não seja.
- Subtrai o valor enviado do saldo atual.
- Garante que o saldo resultante não seja negativo.
- Atualiza o saldo no banco de dados.
Código:
function subtrair_do_saldo($user_id, $valor_subtrair) {
// Verifica se o usuário existe
if (get_userdata($user_id)) {
// Obtém o valor atual do campo meta 'saldo'
$saldo_atual = get_user_meta($user_id, 'saldo', true);
// Se o saldo atual não for numérico, inicializa como zero
if (!is_numeric($saldo_atual)) {
$saldo_atual = 0;
}
// Se o valor a subtrair não for numérico, lança um erro
if (!is_numeric($valor_subtrair)) {
error_log("O valor a ser subtraído não é numérico.");
return;
}
// Converte os valores para float para evitar problemas de tipo
$saldo_atual = floatval($saldo_atual);
$valor_subtrair = floatval($valor_subtrair);
// Calcula o novo saldo
$novo_saldo = $saldo_atual - $valor_subtrair;
// Garante que o saldo não seja negativo
if ($novo_saldo < 0) {
error_log("Operação inválida: o saldo não pode ser negativo.");
return;
}
// Atualiza o campo meta 'saldo' com o novo valor
update_user_meta($user_id, 'saldo', $novo_saldo);
} else {
// Registra um erro caso o usuário não exista
error_log("Usuário com ID {$user_id} não encontrado.");
}
}
Exemplo de uso:
subtrair_do_saldo(123, 30.00); // Subtrai R$ 30,00 do saldo do usuário com ID 123.
Integração com Plugins como Automator
Se você utiliza plugins de automação, como o Automator, essas funções podem ser chamadas diretamente. Configure o plugin para passar os parâmetros user_id
e o valor a adicionar ou subtrair, conforme o caso.
Por exemplo:
- Para a função
adicionar_ao_saldo
, passe os valoresuser_id
evalor_adicionar
. - Para a função
subtrair_do_saldo
, passe os valoresuser_id
evalor_subtrair
.
Conclusão
As funções adicionar_ao_saldo
e subtrair_do_saldo
são soluções eficientes para gerenciar o saldo dos usuários no WordPress. Elas oferecem flexibilidade e podem ser integradas facilmente com plugins ou chamadas diretamente no código. Aproveite essas funções para aprimorar seu sistema e automatizar processos relacionados ao saldo!