Если вы считаете, что регистрация на вашем сайте в чьих то глазах может стоить немного монет, или просто хотите ограничить это дело, сделав плату символической, но до сих пор не знали как это оформить...
В основе решения, имеющаяся в первой ветке система инвайтов.
================
Первое что нужно сделать в настройках сайта, регистрации установить "регистрация по инвайтам".
Далее, я предлагаю, в шаблоне либо полностью убрать блок показывающий по чьему приглашению зарегистрировался участник
Код PHP:
:
либо сделать его видимым только админу.
Код PHP:
:
В меню пользователя на странице профиля так же есть есть ссылка с количеством доступных инвайтов.
В принципе, она показывается только тем пользователям, у которых есть доступные инвайты, можно её не трогать. Нет инвайтов - нет ссылки.
Далее, для удобства, предлагаю сократить количество символов в инвайте до 7 (что бы код приглашения было проще ввести из полученной смс в окно) и сделать весь код в верхнем регистре.
Я для этого использую notepad и опции "генератор столбца", "числа для вставки", "текст для вставки", запись, автозамены и редактор столбца, что бы в конце лишние символы, если в каких строках получилось больше 7 знаков. В прицнипе не сложно. В прикрепленном архиве есть файл примером. 1000 кодов были сгенерированы минут за 5.
здесь: инвайт выдан на админа сайта пользователь (ид 1), и единица в конце говорит о том, что инвайт был активирован, то есть как бы отправлен кому то на почту и теперь ждет когда его используют.
Итак, продублировать эту строку 1000 раз, для тех кто не работал с базами данных, напоминаю, в конце последней строке в самом конце вместо запятой, должен стоять замыкающий символ ";"
Теперь с помощью редактора столбцов и генератора столбцов нужно проставить инвайтам в списке уникальные id (номер инвайта) которые бы не пересекались с уже имеющимися в базе, если они там есть (посмотрите что у вас в базе в таблице cms_user_invites какой номер крайнего инвайта и начинайте от следующей цифры), и с помощью редактора столбцов заменить "код_инвайта" на те коды, которые вы сгенерировали пять минут назад.
Теперь нужно в php Admin выполнить запрос и таким образом внести инвайты в базу данных.
Пример запроса с готовыми инвайтами в прикрепленном архиве.
==============================================
Осталось подключиться к какому нибудь смс биллингу и настроить раздачу приглашений по смс.
За основу скрипта, который будет отправлять смски с инвайтами использовал скрипт "магазина уинов" (когда то была такая индустрия уины для аськи были предметом торговли) имеющийся в документации биллинга smsbill.ru и скрипт отправляющий уведомления на email при покупке через смс взятый с биллинга x-bill.ru
Откройте в прикрепленном архиве файл registrator.php выполните настройки в строках 6, 81, 83
Один момент. На других смс биллингах входящие GET параметры могут иметь другие названия, в таком случае придется править блок "Получение данных", что бы этот обработчик правильно работал с вашим смс биллингом.
Последний этап
Из прикрепленного архива папку /smsrega вместе с содержимым залейте в корень сайта
в ней:
registrator.php - скрипт который будет принимать запрос, брать из текстового файла инвайт и отправлять его в ответ. /data/codes.txt - текстовый файл, в который вы должны сложить ваши инвайты, сейчас там те инвайты что создал я /data/base.txt - сюда будет записываться статистика по работе скрипта, /logs - здесь будут создаваться логи работы скрипта обработчика
СМС биллинг
В панели смс биллинга создайте новый проект, в настройках проекта в качестве скрипта обработчика укажите путь до вашего файла registrator.php Обычно биллинг предоставляет возможность тестировать обработчик, используйте возможность. В ответ на тестовую смс вам должен быть выдан код инвайта, откройте на своем сайте страницу /registration в качестве не авторизованного пользователя и введите код в окно, для продолжения регистрации.
В принципе это решение можно использовать и с Робокасса, Яндекс Деньги и т. п.
Ничто не мешает в дальнейшем, рядом с файлом registration.php положить похожий скрипт, который будет брать инвайты из того же текстового файла и таким образом настроить раздачу инвайтов при оплате через другие платежные системы. Но в таком случае, понадобится зарегистрироваться еще на каком нибудь сервисе предоставляющем услуги смс рассылок, а сам скрипт дополнить кодом, который будет отправлять ответные смс через этот сервис, тем кто оплатил регистрацию другим способом.
Может быть в будущем опишу подобный пример с другим платежным сервисом. Может быть это сделает кто то другой)
Приведенный вариант смс регистрации опробован и является рабочим, однако пост писался по памяти без дополнительных тестов. Я мог что то упустить, вы также можете что то напутать.
Перед началом работы делайте резервные копии изменяемых файлов и таблиц в базе данных, если что то пошло не так... я не виноват)))