Приветствую всех!
Есть плагин приобретенный на этом сайте по розыгрышу купонов. Пытаюсь написать дополнение выводящее в вкладке ЛК результат по аналогии со статьей _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');
Контент внутри функции 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');
тот код который вы написали в 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> ; }
пробуйте так
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; }