Codeigniter Получить реферала пользователя и дать бонусное вознаграждение

Я работаю над своим многоуровневым маркетингом.

Теперь я могу успешно отослать пользователей и показать их как показано ниже:

Мои уровни

Уровень 1 = участник, которого я привел
Уровень 2 = участник, рекомендованный моим пользователем уровня 1
Уровень 3 = участник, рекомендованный моим пользователем уровня 2
Leve 4 = участник, рекомендованный моим пользователем уровня 3

Моя проблема, если кто-либо из пользователей в разделе «Уровень 4» передал нового участника

Это будет выглядеть так

::Level 1::  ::Level 2::    ::Level 3::  ::Level 4::
- user_1        - user_2    - user_3     - user_4

И если «user_4» под 4-го уровня ссылается на нового участника ..

Мне нужно дать 100 бонусных бонусов user_3, user_2 и user_1.

Примечание. Единственный пользователь, который получит бонусное вознаграждение, — это пользователи.
который направил пользователя с уровня 4 на уровень 2.

user_1 ссылается user_2, user_2 ссылается user_3 и user_3 ссылается
user_4

так что user_3 вплоть до user_1 получит бонусное вознаграждение …

0

Решение

Вы также можете хранить уровни верхних уровней в своей пользовательской таблице. Во время регистрации вы берете вверх, затем вверх и т.д., чтобы позже вы могли получить их при запросе таблицы пользователя.

Я делаю это на 6 уровнях, так что это еще 6 запросов, но мне все равно, регистрация не происходит миллион раз в день.

введите описание изображения здесь

Вот моя таблица пользователей из моего обмена трафиком … надеюсь, это поможет. Как вы можете видеть, я также использую столбец upline_val для хранения сёрф-кредитов, которые впоследствии могут быть востребованы их вышестоящими пользователями с помощью кнопки «получить кредит от рефералов».

и зарегистрируйте код модели для создания члена:

$data = array(
'username' => $username,
'password' => password_hash($password, PASSWORD_DEFAULT),
'email' => $email,
'first_name' => $first_name,
'last_name' => $last_name,
'active' => $active,
'referred_by_id' => $referred_by_id,
'referral_url' => $this->session->userdata('referral_url'),
'next_subscription_update' => $now->format("Y-m-d H:i:s"),
'email_newsletter' => $newsletter,
'autoassign_pct' => Settings_model::$db_config['autoassign_value']
);
// select upline ids
$this->db->select('referred_by_id')->from(DB_PREFIX .'user')->where('user_id', $data['referred_by_id']); // $data['referred_by_id'] is passed in the url e.g. http://example.com/register/1867
$q = $this->db->get();

if ($q->num_rows() == 1) {
$data['upline_lvl2'] = $q->row()->referred_by_id;
$this->db->select('referred_by_id')->from(DB_PREFIX .'user')->where('user_id', $data['upline_lvl2']);
$q = $this->db->get();

if ($q->num_rows() == 1) {
$data['upline_lvl3'] = $q->row()->referred_by_id;
$this->db->select('referred_by_id')->from(DB_PREFIX .'user')->where('user_id', $data['upline_lvl3']);
$q = $this->db->get();

if ($q->num_rows() == 1) {
$data['upline_lvl4'] = $q->row()->referred_by_id;
$this->db->select('referred_by_id')->from(DB_PREFIX .'user')->where('user_id', $data['upline_lvl4']);
$q = $this->db->get();

if ($q->num_rows() == 1) {
$data['upline_lvl5'] = $q->row()->referred_by_id;
$this->db->select('referred_by_id')->from(DB_PREFIX .'user')->where('user_id', $data['upline_lvl5']);
$q = $this->db->get();

if ($q->num_rows() == 1) {
$data['upline_lvl6'] = $q->row()->referred_by_id;
}
}
}
}
}

// ...etc...

$this->db->insert(DB_PREFIX .'user', $data); // $data is inserted here

Это все, что я могу сделать, я думаю.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]