Реферальная программа Baza Booking Calendar
Реферальная программа позволяет участникам приглашать новых клиентов по личной ссылке и получать бонусы за подходящие бронирования. Функция доступна на плане Pro и открывается ключом referral-programme.
Что это и для кого
Участник делится ссылкой вида https://site.com/?bbc_ref=<code>. Если посетитель переходит по ней и оформляет подходящее бронирование, бонус начисляется участнику программы, а не приглашённому клиенту.
- Процент от заказа. Размер бонуса зависит от учитываемой суммы бронирования.
- Фиксированная сумма. За подходящее бронирование начисляется заданное значение.
- Один раз. Бонус начисляется только за первый заказ каждого привлечённого клиента.
- За каждый заказ. Бонус начисляется за каждое подходящее бронирование привлечённого клиента.
Пример: при бонусе 5% и учитываемой сумме заказа 200 участник получит 10.
[скриншот: описание программы в личном кабинете участника]
Включение и настройки
Перейдите в Baza Booking → General Settings → Referral → Settings.
Enable the referral programme
Включает программу. По умолчанию: выключено. После отключения сохранённые строки и метаданные остаются, но ссылки, cookie, бонусы и вкладка в кабинете перестают работать.
Пример: включите программу после настройки бонуса, минимального заказа и условий выплаты.
Bonus type и Bonus value
Выберите процент от заказа или фиксированную сумму. По умолчанию: процент и значение 5%.
Пример: значение 5 с типом percent даёт бонус 5% от учитываемой суммы.
When the bonus is paid
Выберите начисление один раз за первый заказ привлечённого клиента или за каждый его заказ. По умолчанию: один раз.
Пример: режим once подходит для вознаграждения за нового клиента, а each для повторных заказов этого клиента.
Minimum order for a bonus
Укажите минимальную сумму заказа для начисления. По умолчанию: 100.
Пример: при минимуме 100 заказ на 80 не участвует в программе.
Count only the slots of the order
Когда настройка включена, учитывается только стоимость слотов заказа, то есть booking_price. Дополнительные услуги и доплаты не входят в расчёт. Когда настройка выключена, используется полная стоимость из baza_bc_get_booking_total(). По умолчанию: включено.
Пример: если слоты стоят 100, а дополнительные услуги и доплаты 50, включённая настройка использует сумму 100, выключенная сумму 150.
Minimum payout
Минимальный доступный размер выплаты. По умолчанию: 100.
Пример: при доступном бонусе 90 запрос выплаты ещё недоступен.
Bonus lifetime
Срок действия начисленного бонуса в днях. Значение 0 означает, что бонус не сгорает. По умолчанию: 0.
Пример: значение 30 ограничивает срок действия бонуса тридцатью днями.
Fields of the application
Настройте поля заявки участника: email, телефон и имя. Эти три поля перечислены в настройках программы по умолчанию.
Пример: оставьте email и имя, если телефон не требуется для рассмотрения заявки.
Автоодобрение заявок и выплат
Approve applications automatically автоматически принимает заявки участников. По умолчанию: выключено. Approve payout requests automatically автоматически одобряет запросы выплат. По умолчанию: выключено.
Пример: оставьте обе настройки выключенными, если заявки и выплаты должны проверяться администратором.
Tell members about every bonus
Отправляет участнику письмо после начисления бонуса. По умолчанию: включено. Участник может отключить эти письма в своём кабинете.
Пример: после успешного начисления участник получает письмо с уведомлением о бонусе.
[скриншот: вкладка Settings со всеми настройками реферальной программы]
Путь участника
- Пользователь открывает вкладку Membership в личном кабинете.
- Если пользователь ещё не участвует в программе, он видит описание и форму заявки.
- После одобрения участник получает личную ссылку и кнопку Copy.
- Переход по действительной ссылке устанавливает cookie
bbc_refна 30 дней. - При создании бронирования идентификатор участника сохраняется в метаполе
bbc_referrer_id. - После перехода бронирования в статус
bookedилиcompletedплагин проверяет условия и начисляет бонус. - Если срок действия бонуса ограничен, ежедневное задание списывает его после окончания срока.
Cookie не устанавливается для администратора, менеджера, действующего участника, в административной части, при AJAX-запросе или по ссылке неактивного участника. Участник не получает бонус за собственное бронирование.
Пример: клиент переходит по ссылке, бронирует в течение 30 дней, а после подтверждения заказа участник получает бонус.
[скриншот: Membership с заявкой, личной ссылкой, балансом и историей]
Генератор кнопки
Участник может настроить кнопку для своего сайта. Нажмите “Generate a button”, задайте текст, цвета, границу, радиус и размер, затем скопируйте готовый код и вставьте его в нужное место сайта.
Пример: укажите текст “Book here”, настройте оформление и вставьте сгенерированный код в HTML-блок страницы.
[скриншот: генератор кнопки и поле с готовым кодом]
Вывод бонуса
Участник видит доступный бонус, форму выплаты и историю операций. Запрос можно отправить после достижения значения Minimum payout.
pending: запрос ожидает решения;approved: запрос одобрен;rejected: запрос отклонён.
При выплате сумма списывается с доступного баланса. Сначала используются самые старые начисления.
Пример: при минимальной выплате 100 и доступном бонусе 120 участник может отправить запрос.
[скриншот: форма запроса выплаты и история операций]
Управление программой
Members
Во вкладке находятся участники и заявки. Администратор может одобрить или отклонить заявку, заблокировать или разблокировать участника, а также удалить его из программы. Заблокированный пользователь продолжает оформлять обычные бронирования, но не получает новые бонусы.
Payouts
Во вкладке находятся запросы на выплату. Администратор может одобрить или отклонить запрос. После действия списки участников и выплат обновляются через AJAX.
Пример: откройте Members, проверьте заявку и нажмите “Approve” или “Reject”.
[скриншот: вкладки Members и Payouts с доступными действиями]
Частые вопросы
Почему бонус не начислился?
Для начисления должны выполняться все условия:
- программа включена и доступна в текущем плане;
- реферер является активным и незаблокированным участником;
- бронирование связано с реферером и не принадлежит самому участнику;
- бронирование подтверждено и получило статус
bookedилиcompleted; - за это бронирование бонус ещё не начислялся;
- условие режима
onceилиeachвыполнено; - заказ достиг минимальной суммы;
- учитываемая сумма и итоговый бонус после фильтра больше нуля.
Пример: при режиме once второй заказ того же привлечённого клиента не создаёт новый бонус.
[скриншот: пример начисления в истории участника]
Что происходит при блокировке?
Участник перестаёт получать новые бонусы, но может продолжать бронировать как обычный клиент. Это не блокировка клиента.
Пример: используйте “Block”, чтобы остановить участие без блокировки учётной записи.
[скриншот: заблокированный участник в Members]
Что происходит после отключения программы?
Настройки, строки таблиц и метаданные сохраняются. Реферальные ссылки, cookie, бонусы, вкладка кабинета и остальные действия модуля перестают работать. При удалении плагина данные программы, настройка и ежедневное задание удаляются.
Пример: программу можно временно выключить без удаления накопленной истории.
[скриншот: выключенная настройка Enable the referral programme]
Что видят администраторы и менеджеры?
Администратор управляет настройками, участниками, заявками и выплатами. Для администратора и менеджера реферальный cookie не устанавливается.
Пример: переход администратора или менеджера по реферальной ссылке не создаёт cookie bbc_ref.
[скриншот: административные вкладки Referral]
Для разработчиков
Хуки и фильтры
baza_bc_referral_calculate: запускает расчёт бонуса;baza_bc_referral_accrue: добавляет рассчитанную сумму на баланс и создаёт строку журнала;baza_bc_referral_deduct: списывает сумму при истечении срока или выплате;baza_bc_referral_amount: изменяет итоговый размер бонуса перед начислением;baza_bc_referral_cookie_days: изменяет стандартный срок cookie, равный 30 дням.
Списание вызывается как baza_bc_referral_deduct( $user, $amount, 'expire'|'payout', $ref ).
Таблицы базы данных
{prefix}bbc_referral_ledger: журнал начислений, сгораний и выплат;{prefix}bbc_referral_balance: текущий баланс участника;{prefix}bbc_referral_payouts: запросы на выплату со статусамиpending,approvedиrejected.
Метаданные
bbc_is_member,bbc_member_url,bbc_member_blocked,bbc_member_applicationиbbc_member_notify_offдля пользователя;bbc_referrer_idдля бронирования.
Ключ плана
Внутренний ключ функции: referral_programme. Ключ лицензии: referral-programme. Модуль modules/referral не входит в бесплатную и WordPress.org сборки.
Пример: фильтр baza_bc_referral_cookie_days позволяет изменить стандартный срок cookie.
[скриншот: пример подключения фильтра в собственном плагине]
