No se ha encontrado nada

Extensiones del plugin

Qué puede añadir usted mismo

Los módulos de BulkGate pueden hacer dos cosas más allá de lo que ofrece la administración. Ambas están pensadas para desarrolladores: tendrá que intervenir en el código de su tienda online.

Extensión Para qué sirve
SMS personalizado desde su código Enviar un mensaje desde cualquier punto de su código, incluso desde otro plugin
Variables personalizadas Añadir a sus plantillas datos que el módulo no conoce: un número de seguimiento, puntos de fidelidad, cualquier dato de su base de datos

La compatibilidad varía según el módulo:

Módulo SMS personalizado Variables personalizadas
WooSMS (WooCommerce) Sí Sí
PrestaSMS (PrestaShop) Sí Sí
CartSMS (OpenCart) — Sí
Precaución

Está terminantemente prohibido utilizar indebidamente los SMS informativos con fines promocionales y de marketing. Por esta vía solo puede enviar SMS transaccionales.

SMS personalizado desde su código

El mensaje se envía como transaccional, se factura desde el monedero del módulo y sigue la misma ruta que las notificaciones que el módulo envía por sí mismo.

WooSMS

<?php do_action( 'bulkgate_send_sms', // el nombre de la acción '420777123456', // el número de teléfono 'Hola <name>, tienes <age>', // el texto con variables entre corchetes angulares [ // los valores de las variables 'name' => 'Pedro', 'age' => '29', ], [ // ajustes opcionales 'unicode' => true, // diacríticos y emoji 'country' => 'es', // ISO 3166 para números en formato nacional 'senderType' => 'gText', // el tipo de remitente 'senderValue' => 'BulkGate', // el valor del remitente ] );

PrestaSMS

<?php Hook::exec('actionPrestaSmsSendSms', [ 'number' => '420777123456', 'template' => 'Hola <name>, tienes <age>', 'variables' => [ 'name' => 'Pedro', 'age' => '29', ], 'settings' => [ 'unicode' => true, 'country' => 'es', 'senderType' => 'gText', 'senderValue' => 'BulkGate', ], ]);

Ajustes del remitente

senderType Qué significa senderValue
gSystem Un número de sistema de BulkGate No se utiliza
gShort Un código corto No se utiliza
gText Un remitente alfanumérico El texto que ve el destinatario
gOwn Su propio número de teléfono El número en formato internacional
Nota

El nombre de acción anterior woosms_send_sms sigue funcionando, pero para las nuevas integraciones utilice bulkgate_send_sms: es el mismo en todos los módulos.

Variables personalizadas en las plantillas

Con cada notificación, el módulo recopila datos sobre el pedido y el cliente. Esta extensión añade sus propios valores a ese conjunto, y después los utiliza en la plantilla 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> ahora funciona en la plantilla }, 20, 2);

PrestaSMS

El módulo llama al hook actionPrestaSmsExtendsVariables y le pasa un array con dos claves, variables y database:

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

CartSMS

OpenCart no tiene un sistema de hooks, así que la extensión se hace reescribiendo una clase preparada en el archivo 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); } } }
Advertencia

Con CartSMS reescribe un archivo dentro del propio módulo, por lo que perderá el cambio cuando se actualice. Guarde una copia de seguridad y vuelva a colocarla después de cada actualización.

Extensiones listas para usar en GitHub

Para los casos habituales (números de seguimiento de los transportistas, puntos de fidelidad, referencias de pago) existen soluciones listas para usar que solo tiene que instalar:

La carpeta _ready-made-solutions contiene extensiones para plugins concretos: para WooSMS incluyen AfterShip, GLS, Nova Poshta o el seguimiento de envíos; para CartSMS, puntos de fidelidad y números de seguimiento. WooSMS tiene además un esqueleto vacío en la carpeta woosms-variables-extension, un buen punto de partida para escribir su propia extensión.

Consejo

Antes de empezar a escribir su propio código, revise las soluciones listas para usar: a menudo una de ellas basta tal cual o solo requiere cambiar los nombres de la tabla y de las columnas.

¿Le ha resultado útil esta página?