Nic nenalezeno

Rozšíření pluginu

Co si můžete doprogramovat

Moduly BulkGate umí dvě věci navíc oproti tomu, co nabízí administrace. Obojí je pro vývojáře — sáhnete do kódu svého e-shopu.

Rozšíření K čemu je
Vlastní SMS z kódu Odešlete zprávu odkudkoli ze svého kódu, i z jiného pluginu
Vlastní proměnné Doplníte do šablon údaje, které modul sám nezná — číslo zásilky, věrnostní body, cokoli z vaší databáze

Podpora se liší podle modulu:

Modul Vlastní SMS Vlastní proměnné
WooSMS (WooCommerce) Ano Ano
PrestaSMS (PrestaShop) Ano Ano
CartSMS (OpenCart) — Ano
Pozor

Zneužití informační SMS pro propagační a marketingové účely je přísně zakázáno. Takto smíte posílat jen transakční SMS.

Vlastní SMS z vašeho kódu

Zpráva se odesílá jako transakční, účtuje se z peněženky modulu a projde stejnou cestou jako oznámení, která modul posílá sám.

WooSMS

<?php do_action( 'bulkgate_send_sms', // název akce '420777123456', // telefonní číslo 'Ahoj <name>, je ti <age>',// text s proměnnými v lomených závorkách [ // hodnoty proměnných 'name' => 'Honza', 'age' => '29', ], [ // volitelné nastavení 'unicode' => true, // diakritika a emoji 'country' => 'cz', // ISO 3166 pro čísla v národním tvaru 'senderType' => 'gText', // typ odesílatele 'senderValue' => 'BulkGate', // hodnota odesílatele ] );

PrestaSMS

<?php Hook::exec('actionPrestaSmsSendSms', [ 'number' => '420777123456', 'template' => 'Ahoj <name>, je ti <age>', 'variables' => [ 'name' => 'Honza', 'age' => '29', ], 'settings' => [ 'unicode' => true, 'country' => 'cz', 'senderType' => 'gText', 'senderValue' => 'BulkGate', ], ]);

Nastavení odesílatele

senderType Co znamená senderValue
gSystem Systémové číslo BulkGate Nepoužívá se
gShort Short code Nepoužívá se
gText Alfanumerický odesílatel Text, který se zobrazí příjemci
gOwn Vlastní telefonní číslo Číslo v mezinárodním tvaru
Poznámka

Starší název akce woosms_send_sms funguje dál, ale u nových integrací použijte bulkgate_send_sms — je stejný napříč moduly.

Vlastní proměnné v šablonách

Modul při každém oznámení posbírá údaje o objednávce a zákazníkovi. Tímhle rozšířením do té sady přidáte vlastní hodnoty a pak je použijete v šabloně jako <nazev_promenne>.

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); } // v šabloně teď funguje <tracking_number> }, 20, 2);

PrestaSMS

Modul volá hook actionPrestaSmsExtendsVariables a předává mu pole se dvěma klíči — variables a database:

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

CartSMS

OpenCart nemá systém hooků, proto se rozšíření dělá přepsáním připravené třídy v souboru 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); } } }
Upozornění

U CartSMS soubor přepisujete přímo v modulu, takže o změnu přijdete při jeho aktualizaci. Zálohujte si ho a po aktualizaci vraťte zpět.

Hotová rozšíření na GitHubu

Na běžné případy — čísla zásilek od dopravců, věrnostní body, platební reference — jsou hotová řešení, která stačí nainstalovat:

Ve složce _ready-made-solutions najdete rozšíření pro konkrétní pluginy — u WooSMS například AfterShip, GLS, Nova Poshta nebo sledování zásilek, u CartSMS věrnostní body a čísla zásilek. Ve WooSMS je navíc ve složce woosms-variables-extension prázdná kostra, ze které se dobře vychází při psaní vlastního rozšíření.

Tip

Než začnete psát vlastní kód, projděte si hotová řešení — často stačí jedno z nich nainstalovat nebo jen upravit název tabulky a sloupce.

Byla tato stránka užitečná?