Avisos de encomendas do WooCommerce por SMS: chamar a nossa API quando o estado muda

Lojas Online·· 10 visualizações· 3 min de leitura

A resposta curta: o WooCommerce avisa o seu código sempre que uma encomenda muda de estado, com a acção woocommerce_order_status_changed. Basta ligar a essa acção uma função que chama a nossa API de SMS com o telefone de facturação do cliente e um texto para cada estado.

Que estados avisar

Estado no WooCommerce Quando acontece Exemplo de SMS
processing Pagamento recebido, encomenda em preparação Recebemos a sua encomenda 4521. Avisamos quando sair.
completed Encomenda concluída ou entregue A sua encomenda 4521 foi enviada. Obrigado!
on-hold À espera de pagamento por transferência ou referência A encomenda 4521 aguarda o pagamento. Os dados estão no e-mail que enviamos.

O que quer dizer cada estado está em estados das encomendas no WooCommerce. Não avise todos: dois ou três momentos chegam.

O código

Defina a chave no wp-config.php, fora do código do tema, com define('RLX_SMS_CHAVE', 'prod_...'); e acrescente:

// num plugin seu ou no functions.php do tema filho
add_action('woocommerce_order_status_changed', function ($id, $de, $para, $order) {
$textos = [
'processing' => 'Recebemos a sua encomenda %s. Avisamos quando sair.',
'completed' => 'A sua encomenda %s foi enviada. Obrigado!',
];
if (empty($textos[$para]) || !$order->get_billing_phone()) { return; }
wp_remote_post('https://api.mozout.com/v1/sms/messages', [
'timeout' => 10,
'headers' => [
'Authorization' => 'Bearer ' . RLX_SMS_CHAVE,
'Content-Type' => 'application/json',
'Idempotency-Key' => 'encomenda-' . $id . '-' . $para,
],
'body' => wp_json_encode([
'number' => $order->get_billing_phone(),
'text' => sprintf($textos[$para], $order->get_order_number()),
]),
]);
}, 10, 4);

1 A chave é criada na página API do My MozOut, só com sms:write.
2 O telefone é o de facturação da encomenda. Peça-o no checkout com o formato certo: a nossa API aceita os números com ou sem o indicativo, porque o sistema reconhece o país pelo primeiro algarismo: 841234567 vai para Moçambique e 923456789 para Angola. Assim, +258 84 123 4567 e 258841234567 são o mesmo número que 841234567.
3 A Idempotency-Key junta o id da encomenda e o estado: a mesma mudança nunca dá dois SMS.
4 O timeout de 10 segundos evita que um problema de rede atrase a página do cliente ou do administrador.
Os textos do exemplo não têm acentos de propósito: letras como «ã» ou «ç» passam a mensagem a Unicode e cada parte leva menos caracteres. Se quiser acentos, confira o custo em quantos créditos gasta um SMS.
Teste com uma chave sandbox_ e uma encomenda de teste: o pedido é conferido mas não sai nem é cobrado. Mude para a chave prod_ quando tudo estiver certo.

Quer avisar os seus clientes do WooCommerce por SMS? Veja a página da API e crie a chave.

Ver a página da API

VEJA TAMBÉM

Estados das encomendas do WooCommerce: o que cada um quer dizer

SMS transaccional: avisos de encomenda, confirmações e alertas que os clientes esperam

Enviar SMS pela API: chave, permissões, Sandbox e o primeiro pedido

Quantos créditos gasta um SMS: 160, 153, 70 e 67 caracteres explicados

Ligar um ERP, CRM ou sistema próprio aos avisos por SMS: o que o programador precisa

Uma chave de API ou um token ficou exposto: o que fazer, pela ordem certa

PRODUTO RECOMENDADO

Hospedagem WordPress

Instalação num clique, actualizações tratadas e velocidade a sério. desde 396,00 MT/mês (plano de 3 anos, com cupão)

Ver planos
Esta resposta foi útil? A sua resposta ajuda-nos a melhorar este artigo.