Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Дополнение вывода розыгрыша купонов в ЛК
7ответ(ов) в теме
Петр Володин
не в сети 2 недели
На сайте с 13.11.2014
Участник
1
16:48

Приветствую всех!
Есть плагин приобретенный на этом сайте по розыгрышу купонов. Пытаюсь написать дополнение выводящее в вкладке ЛК результат по аналогии со статьей _http://codeseller.ru/sozdaem-svoe-dopolnenie-dlya-wp-recall-vyvodim-svoyu-vkladku-v-lichnom-kabinete/.
Код функции рабочий, работает на виджете. Вкладка выводится, функция получения и розыгрыша работает без ошибок в консоле браузера, но при любой активной вкладке отображается только содержимое лотерея. Помогите разобратся где может быть ошибка:
WP-Recall 14 beta
Скрины:

Вы не можете просматривать опубликованные ссылки

Вы не можете просматривать опубликованные ссылки

Вы не можете просматривать опубликованные ссылки

Вы не можете просматривать опубликованные ссылки

//Создадим новую вкладку видимой только хозяину личного кабинета.
add_action('init','add_tab_lottery_coupons');
function add_tab_lottery_coupons(){
    rcl_tab('lotterycoupons','lottery_coupons_recall_block','Лотерея',array('public'=>0,'class'=>'fa-money','order'=>20));
}
function lottery_coupons_recall_block($user_lk){
	global $wpdb;	
	$user = wp_get_current_user();
    $id_user=$user->ID;
    if(!$id_user)$id_user=0;

	$status = array(array('Ожидает','Сгорел','Играет','Приз','Главный приз'),array('away','no','yes','prz','sup_prz'));

	echo '	
	<div class="lotereya">
		<div class="lotereya_header">Лотерея</div>
		<button class="button_wide" type="submit" onClick="newCupon()" tabindex="9">Получить купон</button>
		<table class="list_cupon">
		';
	$list = $wpdb->get_results("SELECT `id`,`date`,`status` FROM `".$wpdb->prefix.loterea."` WHERE `user_id` = ".$id_user."");
		foreach($list as $item) {
			echo '
			<tr>
				<td>'.(($item->id*1714)+111).'</td>
				<td><span class="'.$status[1][$item->status].'">'.$status[0][$item->status].'</span></td>
			</tr>
		   ';	
		}
	echo '
	</table>
	</div>
	';
}
function add_tab_lotterycoupons_rcl($array_tabs){
//lotterycoupons - идентификатор вкладки дополнения
//lottery_coupons_recall_block - название функции формирующей контент вкладки дополнения
$array_tabs['lotterycoupons']='lottery_coupons_recall_block'; 
return $array_tabs; 
} 
add_filter('ajax_tabs_rcl','add_tab_lotterycoupons_rcl');

0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16854
2
18:25

Контент внутри функции lottery_coupons_recall_block должен возвращаться через return а не через echo

этот код в 14-ой версии не нужен

function add_tab_lotterycoupons_rcl($array_tabs){
//lotterycoupons - идентификатор вкладки дополнения
//lottery_coupons_recall_block - название функции формирующей контент вкладки дополнения
$array_tabs['lotterycoupons']='lottery_coupons_recall_block'; 
return $array_tabs; 
} 
add_filter('ajax_tabs_rcl','add_tab_lotterycoupons_rcl');

2
Петр Володин
не в сети 2 недели
На сайте с 13.11.2014
Участник
3
18:27

да я его уже закомментировал, все работает только вкладки отображаются при включении настроек отображения ЛК с Аякс, а как сделать что бы загружались все не пойму!?

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

Иван Иванов сказал(а)

да я его уже закомментировал, все работает только вкладки отображаются при включении настроек отображения ЛК с Аякс, а как сделать что бы загружались все не пойму!?

не понял

0
Петр Володин
не в сети 2 недели
На сайте с 13.11.2014
Участник
5
18:50

тот код который вы написали в 14 версии не нужен, я его закомментировал на работоспособность он не повлиял, так и остался закомментированным. А вот с return тяжко, не пойму заменил echo на return не помогло, ошибка.

function lottery_coupons_recall_block($user_lk){
	global $wpdb;	
	$user = wp_get_current_user();
    $id_user=$user->ID;
    if(!$id_user)$id_user=0;

	$status = array(array('Ожидает','Сгорел','Играет','Приз','Главный приз'),array('away','no','yes','prz','sup_prz'));
	
return	
	<div class="lotereya_lk">
		<div class="lotereya_header">Лотерея</div>
		<button class="button_wide" type="submit" onClick="newCupon()" tabindex="9">Получить купон</button>
		<table class="list_cupon">
		;
	$list = $wpdb->get_results("SELECT `id`,`date`,`status` FROM `".$wpdb->prefix.loterea."` WHERE `user_id` = ".$id_user."");
		foreach($list as $item) {
			return
			<tr>
				<td>'.(($item->id*1714)+111).'</td>
				<td><span class="'.$status[1][$item->status].'">'.$status[0][$item->status].'</span></td>
			</tr>
		;
		}
	return
	</table>
	</div>
	;
}

0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16854
6
18:53

пробуйте так

function lottery_coupons_recall_block($user_lk){
	global $wpdb;	
	$user = wp_get_current_user();
    $id_user=$user->ID;
    if(!$id_user)$id_user=0;

	$status = array(array('Ожидает','Сгорел','Играет','Приз','Главный приз'),array('away','no','yes','prz','sup_prz'));
	
	$content = '<div class="lotereya_lk">
		<div class="lotereya_header">Лотерея</div>
		<button class="button_wide" type="submit" onClick="newCupon()" tabindex="9">Получить купон</button>
		<table class="list_cupon">';
		$list = $wpdb->get_results("SELECT `id`,`date`,`status` FROM `".$wpdb->prefix.loterea."` WHERE `user_id` = ".$id_user."");
		foreach($list as $item) {
			$content .= '<tr>
				<td>'.(($item->id*1714)+111).'</td>
				<td><span class="'.$status[1][$item->status].'">'.$status[0][$item->status].'</span></td>
			</tr>';
		}
	$content .= '</table>
	</div>';
	
	return $content;
}

1
Петр Володин
не в сети 2 недели
На сайте с 13.11.2014
Участник
7
18:57

Спасибо, помогло, заработало. При настройках загружать все, работает, отлично что и хотел получить. 8)

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