Сегодня целый день искал решение как прислать на телефон sms сообщение о том, что в магазине сделали заказ. (VirtueMart ver. 1.1.8 )
И в итоге за 30 минут сделал свой хак.
Метод первый:Для тех, кто не хочет особо ковыряться в коде, то можно воспользоваться сервисом
pochta2sms.ru (gmail.ru - не советую, сняли денег и не заработало. в 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) Регистрируемся в сервисе по ссылке
http://smsc.ru/?pp259144 (реф. ссылка. если я вам помог, оставьте ссылку, мне будет приятно)
2) В разделе api скачиваем файл для своего сервера, например для php скачиваем http://smsc.ru/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.ru.
Пользуйтесь на здоровье!
Если у кого-то есть предложения по доработке, пожалуйста пишите в этой ветке.Метод третий: (добавлено 22 марта)
На блоге одного сервиса по СМС услугам нашёл ещё один метод.
Особо не разбирался, просто для коллекции выкладываю ссылку
http://blogs.sms-uslugi.ru/?p=143Их тарифы
http://sms-uslugi.ru/price