• Страница 1 из 1
  • 1
Php Как построить реферальную программу

Дата: Ср, 04.05.2022, 14:30 | Сообщение 1
Регистр
04.01.2021
Сообщений
455

Репутация
Как дополнить скрипт или при создании своего создать систему реферальную программы с 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 дней.

Думаю подробно все в коде расписано.

Подписывайтесь! Рекомендуйте нашу группу своим знакомым профессионалам в IT WiN-Prog Наша группа ВКонтакте!



  • Страница 1 из 1
  • 1
Поиск: