6ответ(ов) в теме
Евгений Сосновский
не в сети 7 лет
На сайте с 05.02.2016
Участник
1
09:41

Возник вопрос, может быть уже есть готовое решение о объединению таблиц с prt_partners и prt_incentives.
В какую строчку в бд заносится информация - оплатил партнер или нет?
Пытался сделать так, как указал ниже, но получается почему-то что все статусы активны (хотя некоторые партнеры и не оплатили). По каким полям можно сравнить? так как возможен случай что партнер оплатит несколько раз, значит сравнение по имени не подходит. По id я так понял тоже?

                <table class="referal-list">
                    <tr>
                        <th scope="col">#</td>
                        <th scope="col">Date</td>
						<th scope="col">E-mail</td>
						<th scope="col">Sum</td>
						<th scope="col">%</td>
						<th scope="col">Status</td>
                    </tr>';
				$datas=array();
                foreach($referals as $referal){
                    $n++;
                        $cnt_sec_referals = $wpdb->get_var("SELECT count(ID) FROM ".WP_PREFIX."prt_partners WHERE partner = '$referal->referal' ORDER BY `id` ASC");
                        $datas[$n]=array("num" => $n, "date" => mysql2date('j F Y H:i', $referal->timeaction),"name" => get_the_author_meta('display_name',$referal->referal));
                }

				$kolvo=$n;				

                $stat .= $ref_navi->navi();

                $cnt_inc = $wpdb->get_var("SELECT COUNT(ID) FROM ".WP_PREFIX."prt_incentives WHERE partner = '$user_ID' ORDER BY ID DESC");

                $inc_navi = new RCL_navi(50,$cnt_inc,'&tab=partners',false,'page-inc');
                $limit_us = $inc_navi->limit();

                $incentives = $wpdb->get_results("SELECT * FROM ".WP_PREFIX."prt_incentives WHERE partner = '$user_ID' ORDER BY `id` ASC LIMIT $limit_us");

                $n=0;$money_keep=0;$datas2=array();
                foreach($incentives as $incentive){
					$n++;
                    switch($incentive->type_inc){
                        case 1: $end = ' bonus'; break;
                        default: $end = ' '.rcl_get_primary_currency(1);
                    }
						$money_keep=$money_keep+$incentive->size_inc;
						$datas2[$n]=array("num" => $n, "date" => $incentive->time_start, "name" => $incentive->referal, "per" => $incentive->size_inc, "sum" => $incentive->order_inc);

						
                }
				
				$n=0;
				foreach($datas as $dat ){
					$n++;
					foreach ($datas2 as $dat2){
					$stat.=$n2;
					$n2++;	
						if ($dat["name"]==$dat2["name"]) {$n3=$n2; $status="<img src='../img/nopay.png'";	} else {$status="<img src='../img/pay.png'";}
					}
					$n2=0;
					
					$stat .= '<tr><td>'.$dat["num"].'</td>';
					$stat .= '<td>'.$dat["date"].'</td>';
					$stat .= '<td>'.$dat["name"].'</td>';
					$stat .= '<td>'.$datas2[$n3]["sum"].'</td>';
					$stat .= '<td>'.$datas2[$n3]["per"].'</td>';			
					$stat .= '<td>'.$status.'</td></tr>';			
				} 
				
                $stat .= '</table>';

0
Вова (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18653
2
10:21

Это весь код? Мне кажется это какой-то огрызок.
Что такое prt_incentives.?
Я не вижу где определена $referals
Почему $stat не выводите в конце?

0
Евгений Сосновский
не в сети 7 лет
На сайте с 05.02.2016
Участник
3
10:26

Otshelnik-Fm сказал(а)

Это весь код? Мне кажется это какой-то огрызок.
Что такое prt_incentives.?
Я не вижу где определена $referals
Почему $stat не выводите в конце?

Это не весь код, только часть которую я изменил в index.php в partner system.

0
Андрей CS
не в сети 4 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16918
4
11:12

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

0
Евгений Сосновский
не в сети 7 лет
На сайте с 05.02.2016
Участник
5
11:15

Хочу вывести следующую информацию:
id, дата регистрации, e-mail, сумму которую ввел партнер, процент который получил и статус (оплатил/не оплатил).
То есть если партнер ввёл сумму но заказ еще не активен, то выводится крестик, если оплатил и активен - галочка. Как-то так. Но записи в бд о статусе я не нашел.

Так как partner system интегрирован с woocommerce, то получается так. Партнер привел реферала. Реферал зарегистрировался но не купил ничего. Значит не активен заказ. Значит баланс партнера не пополнен.
Если оплатил и купил - значит активен заказ и сумма упала на счет партнера.
По умолчанию есть две таблички. В первой - выводится весь список рефералов. Во второй на ком партнер заработал. Поэтому пытаюсь объединить их в одну.

0
Андрей CS
не в сети 4 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16918
6
11:34

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

0
Тема закрыта. Публикация новых сообщений запрещена.