Реферал регистрация
Подскажите как лучше сделать реферал систему.
Когда пользователей переходит по ссылки (/pf.php/ref=' . $author->ID .) и регистрируется,
пользователь у которого использовалась ссылка ему добавлялся реферал +1 в мета поле ($user_info->refuser).
Как определить по какой ссылки регистрация была?
Как добавлять в мета поле эти денные.
// Hook into user registration add_action( 'user_register', 'update_refuser_field' ); function update_refuser_field( $user_id ) { // Get the ref parameter from the URL $ref = $_GET['ref']; // Check if ref parameter is set and not empty if ( isset( $ref ) && ! empty( $ref ) ) { // Get the user info based on the ref parameter $author = get_user_by( 'ID', $ref ); // Check if user info exists if ( $author ) { // Get the refuser value from user meta $refuser = get_user_meta( $author->ID, 'refuser', true ); // Increment the refuser value by 1 $refuser++; // Update the refuser value in user meta update_user_meta( $author->ID, 'refuser', $refuser ); } } } // Генерируем ссылку на страницу регистрации с параметром ref $registration_link = home_url( '/pf.php?action=register&ref=' . get_current_user_id() ); echo '<a href="' . $registration_link . '">Ссылка на страницу регистрации</a>';
но не добавляет в $user_info->refuser + 1
1) Юзверг заходит на сайт по реферальной ссылке с ?ref={author_id}
2) На хуке(например - init) цепляем на него куку myref={author_id} и сразу редиректим(!) его на страницу регистрации
3) после регистрации на хуке проверяем нет ли у него этой куки myref={author_id}, если она есть то добавляем(обновляем) в некое метаполе автора 'ref_user_ids' массив с id юзвергов которые регистрировались по этой рефералке, гасим куку myref у этого юзверга.
На выхлопе у автора в метаполе 'ref_user_ids' будет массив айдишек которые зарегались по его рефералу.
Вообще по хорошему {author_id} лучше не использовать, а юзать некий MD5 ключ {author_key} и хранить его в еще одном поле автора и по нему искать автора в системе.
4) еще IP прикрутить можно.
кого интересует зачем ?
Я иногда по рефералке хожу в режиме инкогнито, чтоб меня отловить:
смотрим есть ли у юзера ?ref, если есть пишем кукисы и (на 20мин к примеру) запоминаем IP к этим кукисам на стороне сайта.
а вот когда уже регистрация будет, тогда уже и сравниваем из кукисов author_key, а если нет можно и IP список проверить, был ли с такого переход и какому author_key присвоен этот IP
--
Если юзверг заходит по рефералке в режиме инкогнито, то он 100% регаться не собирается ни с рефом ни без него.
А по айпи это как-то ослеживать - самый дырявый вариант, те же ципсошные тролли сидят под одними и теми же IP впн-ок.