VirtueMart - SMS уведомления о сделаном заказе
Целый день искал решение как прислать на телефон sms сообщение о том, что в магазине сделали заказ. (VirtueMart ver. 1.1.8 )
И в итоге за 30 минут сделал свой хак.
Метод первый:
Для тех, кто не хочет особо ковыряться в коде, то можно воспользоваться сервисом
в gmail сначала нужно оплатить чтобы активировать саму почту, потом оплатить чтобы добавить или сменить номер телефона и после всех оплат, понимаешь. что это не то)
Если у вас немного заказов в магазине, то подойдёт mail .ru *(создаёте новую папку в почте, настраиваете фильтр для этой папки и отправку SMS присваиваете для этой папки)
Достоинства pochta2sms:
- на счету 5руб. для тестов (одна отправка вроде 60 коп.)
- много свободных ящиков для регистрации
- хорошо продуманные фильтры для активации отправки sms
- фильтров можно задать несколько
Недостатки:
- нет пополнения счёта через WebMoney
- заголовок от VM коверкает (но можно написать свой. например "Сделан заказ" - это то. что придёт в качестве сообщения по смс)
Получили ящик *на pochta2sms, далее открываем файл
/administrator/components/com_virtuemart/classes/
ps_checkout.php
Находим строку:
$vendor_email = $from_email;
Меняем на:
$vendor_email = array($from_email,'ваш_ящик@pochta2sms.ru');
Это чтобы отправить два письма, первое на тот email, что указан в
Магазин\Информация о магазине и на второй для получения SMS уведомления.
Всё готово!
Метод второй:
В этом методе намного больше возможностей, можно брать переменные (данные покупателя, товара) и отправлять их в заголовке или в самом SMS.
У меня SMS дошли почти мгновенно ( в первом методе в течение пару минут)
СМС получились дешевле (копеек на 20)
В качестве отправителя можно указывать любой номер или имя (подмена номера, но за это вроде плата дополнительная)
1) Регистрируемся в сервисе
2) В разделе api скачиваем файл для своего сервера, например для php скачиваем *
3) В этом файле прописываете ваш логин и пароль от сервиса smsc
Например:
define("SMSC_LOGIN", "
bork");
define("SMSC_PASSWORD", "
1234");
4) Заливаете этот файл с вашими логином и паролем в папку /administrator/components/com_virtuemart/html
5) В этой же папке находите файл
checkout.index.php
В файле находим (273 строка
Код:
<input type="hidden" name="payment_method_id" value="'. $payment_method_id .'" />
После добавляем (номер телефона вписать свой
Код:
<input type="hidden" name="phone" value="79012345678"/>
<input type="hidden" name="message" value="Поступил новый заказ"/>
В итоге в файле это выглядит так:
Код:
<input type="hidden" name="payment_method_id" value="'. $payment_method_id .'" />
<input type="hidden" name="phone" value="79012345678"/>
<input type="hidden" name="message" value="Поступил новый заказ"/>
<input type="hidden" name="checkout_last_step" value="'. $current_stage .'" />';
6) В этой же папке открываем файл
checkout.thankyou.php - это страница, которую пользователь видит, когда подтвердил свой заказ
В самом начале прописываем
Код:
<?
include_once "smsc_api.php";
$r = send_sms($_POST["phone"], $_POST["message"]);
?>
7) Проверяем работу
Мне нужно было просто на SMS получить *уведомление, что поступил заказ, но вместо value="Поступил новый заказ", можно подсунуть переменные VM
Если вам нужны дополнительные параметры, то смотрите примеры в библиотеке smsc
Пользуйтесь на здоровье!
Если у кого-то есть предложения по доработке, пожалуйста пишите в этой ветке.