Как дополнить скрипт или при создании своего создать систему реферальную программы с 0 на PHP.
Будем работать через куки. Итак представим, что у нас есть база с названием users и структурой (id, username, ref).
Задача скрипта:
Считывать реф. систему в ссылках и не путать с пользователями которые ранее до приглашения знали о сайте и посещали его.
Создадим файл index.php:
Код
// подключаем соединение с БД
require_once("wallet/Db.php");
// создаем объект соединения
$db = new Db();
//Проверяем есть ли в ссылке GET запрос (ref)
if (isset($_GET['ref'])) {
//Проверяем существует ли в куках уже ref (переходил ли пользователь ранее по ссылке приглашения или просто заходил на сайт)
if(isset($_COOKIE['ref']) && isset($_COOKIE['ref_timestamp'])) {
//если приглашение уже храниться в кукках оставлем его
$ref = $_COOKIE['ref'];
echo 'Ранее вы уже заходили по приглашению '.$ref. ' Дата: '.$_COOKIE['ref_timestamp'];
}else{
//если пользователь первый раз на сайте
//Записываем в переменную GET запрос (ref)
$ref= $_GET['ref'];
//Проверяем существует ли пользователь с id (действительна ли реферальная ссылка)
$detectRef = $db->connect()->prepare("SELECT * FROM users WHERE id = :ref");
$detectRef->execute(['ref' => $ref]);
//Если пользователь с таким айди (ref) существует продолжаем
if ($detectRef->rowCount() > 0) {
//Записываем переменую время хранения 8 дней
$expire = 8*24*60*60;
//Записываем в куки код приглашения и время хранения
setcookie('ref', $ref, time() + $expire);
//Записываем в куки когда пользователь зашел и время хранения
setcookie('ref_timestamp', time(), time() + $expire);
//Отображаем
echo 'Вы зашли по реферальной ссылке впервые в запросе, ref='.$ref;
}else{
//Если не найден в базе пользователь, чтобы его id ровнялось к ref
//Записываем переменую время хранения 8 дней
$expire = 8*24*60*60;
//Записываем в переменую ref id сайта (пользователи будут считаться в пользу сайта, а не реферальной программы)
$ref_admin = '0';
//Записываем в куки код приглашения и время хранения
setcookie('ref', $ref_admin, time() + $expire);
//Записываем в куки когда пользователь зашел и время хранения
setcookie('ref_timestamp', time(), time() + $expire);
//Отображаем
echo 'Мы не обнаружили код приглашения и записали вас как ref='.$ref_admin;
}
}
}else{
//Если пользователь зашел на сайт без кода приглашения
//Записываем переменую время хранения 8 дней
$expire = 8*24*60*60;
//Записываем в переменую ref id сайта (пользователи будут считаться в пользу сайта, а не реферальной программы)
$ref_admin = '0';
//Записываем в куки код приглашения и время хранения
setcookie('ref', $ref_admin, time() + $expire);
//Записываем в куки когда пользователь зашел и время хранения
setcookie('ref_timestamp', time(), time() + $expire);
//Отображаем
echo 'Мы не обнаружили код приглашения и записали вас как ref='.$ref_admin;
}
Далее вы можете использовать данные которые находятся в куки на совершенно любых страницах своего сайта.
Создаем файл signup.php
Код
//И отображаем данные из куки
$ref = $_COOKIE['ref'];
$datetime = $_COOKIE['ref_timestamp'];
echo 'Пользователь зашел через код приглашения ref= '.$ref.' В такое время: '.$datetime ;
Дальше работайте с этими данными записывая их при регистрации и тд они будут храниться в куках браузера 8 дней.
Думаю подробно все в коде расписано.