На днях обратился за помощью клиент, который хотел интегрировать СМС-оповещения в свой интернет-магазин, работающий на бесплатной связке Joomla + VirtueMart. Задача была такова – чтобы сразу после заказа клиенту приходила ободряющая СМСка, что его заказ принят и скоро будет обработан, а администратору магазина сигнализировать о новом заказе.
Итак, что для этого нужно сделать
require_once("smsapi/transport.php"); $api = new Transport(); //Отправляем СМС администрации ресурса $administrationPhone = "89231113344"; //Ваш номер телефона! $params = array("text" => "Поступил новый заказ."); $phones = array($administrationPhone); $send = $api->send($params,$phones); //Отправляем СМС клиенту $dbu = new ps_DB; $q = "SELECT * FROM #__{vm}_order_user_info WHERE order_id='$order_id'"; $dbu->query($q); $dbu->next_record(); $params_shopper = array("text" => "Ваш заказ поступил в обработку. В скором времени наши менеджеры с вами свяжутся!"); $phones_shopper = array($dbu->f("phone_1")); $send_shopper = $api->send($params_shopper,$phones_shopper);
Справедливости ради замечу, что этот код верен для случая, когда клиент делает заказ, не регистрируясь на сайте. В случае, если клиент уже зарегистрирован, и повторно свои данные не вводит (в том числе и искомое поле phone_1) вам нужно самостоятельно написать код, который бы получал номер телефона клиента в массив $phones_shopper. Думаю, это не составит огромного труда для вас)
Если что – обращайтесь за помощью!
P.S. В комментах человек попросил разобраться как вставить оповещение при смене статуса заказа.
Для этого вставьте вот такой код в файлик /administrator/components/com_virtuemart/classes/ps_order.php , в функцию order_status_update
if ($d['order_status'] == 'R'){
$path = "путь/до/transport.php";
if (file_exists($path)) {
require_once($path);
$api = new Transport();
$dbu = new ps_DB;
$q = "SELECT * FROM #__{vm}_order_user_info WHERE order_id='".$d['order_id']."'";
$dbu->query($q);
$dbu->next_record();
$params_send = array("text" => "Заказ #".$d['order_id']." оплачен!");
$adminPhone = "Номер админа";
$phones = array($adminPhone, $dbu->f("phone_1"));
$send = $api->send($params_send,$phones);
}
}