Nada encontrado

Extensões do plugin

O que pode acrescentar por si

Os módulos BulkGate permitem duas coisas para além do que a administração oferece. Ambas se destinam a programadores — intervém no código da sua loja online.

Extensão Para que serve
SMS personalizada a partir do seu código Enviar uma mensagem a partir de qualquer ponto do seu código, até de outro plugin
Variáveis personalizadas Acrescentar aos seus modelos dados que o módulo desconhece — um número de seguimento, pontos de fidelização, qualquer dado da sua base de dados

O suporte varia consoante o módulo:

Módulo SMS personalizada Variáveis personalizadas
WooSMS (WooCommerce) Sim Sim
PrestaSMS (PrestaShop) Sim Sim
CartSMS (OpenCart) — Sim
Cuidado

A utilização indevida de SMS informativas para fins promocionais e de marketing é estritamente proibida. Desta forma, só pode enviar SMS transacionais.

SMS personalizada a partir do seu código

A mensagem é enviada como transacional, é cobrada da carteira do módulo e segue a mesma rota que as notificações que o módulo envia por si.

WooSMS

<?php do_action( 'bulkgate_send_sms', // o nome da ação '420777123456', // o número de telefone 'Olá <name>, tem <age> anos', // o texto com variáveis entre parênteses angulares [ // os valores das variáveis 'name' => 'João', 'age' => '29', ], [ // definições opcionais 'unicode' => true, // acentos e emoji 'country' => 'pt', // ISO 3166 para números em formato nacional 'senderType' => 'gText', // o tipo de remetente 'senderValue' => 'BulkGate', // o valor do remetente ] );

PrestaSMS

<?php Hook::exec('actionPrestaSmsSendSms', [ 'number' => '420777123456', 'template' => 'Olá <name>, tem <age> anos', 'variables' => [ 'name' => 'João', 'age' => '29', ], 'settings' => [ 'unicode' => true, 'country' => 'pt', 'senderType' => 'gText', 'senderValue' => 'BulkGate', ], ]);

Definições do remetente

senderType O que significa senderValue
gSystem Um número do sistema BulkGate Não utilizado
gShort Um código curto Não utilizado
gText Um remetente alfanumérico O texto apresentado ao destinatário
gOwn O seu próprio número de telefone O número em formato internacional
Nota

O nome de ação mais antigo woosms_send_sms continua a funcionar, mas utilize bulkgate_send_sms nas novas integrações — é igual em todos os módulos.

Variáveis personalizadas nos modelos

Em cada notificação, o módulo recolhe dados sobre a encomenda e o cliente. Esta extensão acrescenta os seus próprios valores a esse conjunto, que depois utiliza no modelo como <variable_name>.

WooSMS

<?php use BulkGate\Plugin\{Database\Connection, Event\Variables}; add_action('bulkgate_extends_variables', function (Variables $variables, Connection $database): void { $order_id = $variables->get('order_id'); $row = $database->fetch('SELECT tracking_number FROM `order` WHERE order_id = ?', $order_id); if ($row !== null) { $variables->set('tracking_number', $row->tracking_number); } // <tracking_number> funciona agora no modelo }, 20, 2);

PrestaSMS

O módulo chama o hook actionPrestaSmsExtendsVariables e passa-lhe um array com duas chaves — variables e database:

<?php public function hookActionPrestaSmsExtendsVariables(array $params): void { $variables = $params['variables']; $database = $params['database']; $variables->set('tracking_number', '1234567890'); }

CartSMS

O OpenCart não tem um sistema de hooks, por isso a extensão faz-se reescrevendo uma classe preparada no ficheiro system/library/cartsms/cartsms/src/HookExtension.php:

<?php namespace BulkGate\CartSms; use BulkGate\Extensions; class HookExtension extends Extensions\Strict implements Extensions\Hook\IExtension { public function extend(Extensions\Database\IDatabase $database, Extensions\Hook\Variables $variables) { $row = $database->execute($database->prepare( "SELECT `tracking_no` FROM `{$database->table('order')}` WHERE `order_id` = %s LIMIT 1", [$variables->get('order_id')] ))->getRow(); if ($row) { $variables->set('tracking_no', $row->tracking_no); } } }
Aviso

Com o CartSMS reescreve um ficheiro dentro do próprio módulo, pelo que perde a alteração quando o módulo é atualizado. Guarde uma cópia de segurança e reponha-a após cada atualização.

Extensões prontas a usar no GitHub

Para os casos comuns — números de seguimento das transportadoras, pontos de fidelização, referências de pagamento — existem soluções prontas que só precisa de instalar:

A pasta _ready-made-solutions contém extensões para plugins específicos — no caso do WooSMS incluem AfterShip, GLS, Nova Poshta ou o seguimento de envios; no caso do CartSMS, pontos de fidelização e números de seguimento. O WooSMS tem ainda um esqueleto vazio na pasta woosms-variables-extension, um bom ponto de partida para escrever a sua própria extensão.

Dica

Antes de começar a escrever o seu próprio código, consulte as soluções prontas — muitas vezes uma delas basta tal como está, ou só precisa de alterar os nomes da tabela e das colunas.

Esta página foi útil?