Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Не удается обратиться к методам глобальной переменной Rcl_History_Orders
11ответ(ов) в теме
Николай
не в сети 1 год
На сайте с 03.11.2015
Участник
Тем 24
Сообщения 83
1
10:30
Версия WP-Recall: 16.17.15

Пишу дополнение для экспорта данных о платежаж и пользователях (включая дополнительные поля). Попробовал получить данные о платежах через:
global $Rcl_History_Orders;

Скажите есть ли рекомендации по использованию этой пеерменной, я просто не нашел.

Решил поступить по аналогии с дополнением Orders:

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

На строке
$Rcl_History_Orders->prepare_items();

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

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

скорее всего, глобальная переменная $Rcl_History_Orders у вас просто не объявлена в том месте где вы хотите ее использовать, думаю, она вам и не нужна.
Для получения данных платежей следует использовать класс Rcl_Payments
Например так:

$payments = new Rcl_Payments();
        
$allPayments = $payments->get_results(array(
     'number' => -1
));

Данный класс работает на основе класса Rcl_Query и с ним можно работать на основе мануала

Вы не можете просматривать опубликованные ссылки
0
Вова (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
3
10:57

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

ну так вы проверили сообщение на почте? И что там?

Простая констатация факта, что возникли проблемы - недостаточно. Надо видеть текст ошибки

0
Николай
не в сети 1 год
На сайте с 03.11.2015
Участник
Тем 24
Сообщения 83
4
20:18

К сожалению нет пока возможности проверить админ-почту, поскольку доступа к ней у меня нету.
Что касается переменной $Rcl_History_Orders удалось заставить работать путем объявления переменной.
Но она больше касается заказов. Смотрю на класс Rcl_Payments, как я понял его тоже надо объявить, поскольку просто добавление в код строки:
$payments = new Rcl_Payments();
Опять вызывает ошибку.

0
Вова (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
5
20:26

Вы разработчик? Смотрите в логах сервера - там вся информация есть. Почта для админа - это вордпресс сделали отсыл ошибок из логов на почту домохозяек. А то логи - этож темный лес...

Значит выше вам надо подключить класс class-rcl-payments.php через include_once. Но это базовые моменты php - ресурс не учит основам синтаксиса php и использование его функций и конструкций.

А подглядеть примеры - вы всегда можете, например, пройтись поиском по фразе new Rcl_Payments по файлам плагина и посмотреть как сделано там.

0
Николай
не в сети 1 год
На сайте с 03.11.2015
Участник
Тем 24
Сообщения 83
6
21:50

Понял, буду пробовать дальше.

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

Николай сказал(а)
Смотрю на класс Rcl_Payments, как я понял его тоже надо объявить

да, файл с классом надо подключить отдельно, но можно использовать функцию
rcl_get_payments($args) - это обертка для конструкции

$payments = new Rcl_Payments();     
$allPayments = $payments->get_results($args);

и класс там уже определен

0
Николай
не в сети 1 год
На сайте с 03.11.2015
Участник
Тем 24
Сообщения 83
8
16:44

Удалось получит ьнеобходимые данные через класс Rcl_Payments_History.
Таким образом:
global $Rcl_Payments_History; $option = 'per_page'; $args = array( 'label' => __( 'Payments', 'wp-recall' ), 'default' => 50, 'option' => 'rcl_payments_per_page' ); add_screen_option( $option, $args ); $Rcl_Payments_History = new Rcl_Payments_History(); $allPayments = $Rcl_Payments_History->get_data();
А дальше распарсил полученную переменную $allPayments.

0
Николай
не в сети 1 год
На сайте с 03.11.2015
Участник
Тем 24
Сообщения 83
9
16:48

Для вывода данных на экран и в файл хочу применить внешние js библиотеки, но не могу понять как их подключить к дополнению.

Пробовал прописать такое:
add_action('admin_head','rcl_admin_user_account_scripts_'); function rcl_admin_user_account_scripts_(){ rcl_enqueue_style('rcl_admin_user_account_scripts',rcl_addon_url('https://cdnjs.cloudflare.com/ajax/libs/jexcel/2.1.0/js/jquery.jexcel.js', __FILE__)); rcl_enqueue_style('rcl_admin_user_account_scripts',rcl_addon_url('https://cdnjs.cloudflare.com/ajax/libs/jexcel/2.1.0/js/jquery.jdropdown.js', __FILE__)); rcl_enqueue_style('rcl_admin_user_account_scripts',rcl_addon_url('https://cdnjs.cloudflare.com/ajax/libs/jexcel/2.1.0/js/jquery.jcalendar.js', __FILE__)); rcl_enqueue_script( 'rcl_admin_user_account_scripts', rcl_addon_url('https://cdnjs.cloudflare.com/ajax/libs/jexcel/2.1.0/js/jquery.jexcel.js', __FILE__)); rcl_enqueue_script( 'rcl_admin_user_account_scripts', rcl_addon_url('https://cdnjs.cloudflare.com/ajax/libs/jexcel/2.1.0/js/jquery.jdropdown.js', __FILE__)); rcl_enqueue_script( 'rcl_admin_user_account_scripts', rcl_addon_url('https://cdnjs.cloudflare.com/ajax/libs/jexcel/2.1.0/js/jquery.jcalendar.js', __FILE__)); }

За образец взял стандартное дополнение user-balance, админскую часть. Но скрипты не работают. Есть ли тут не учет каких-то нюансов работы wp-recall или нужно просто разобраться с этими билиотеками?

Редакции сообщения
14.08.2019 16:50НиколайПричина: не указано
14.08.2019 16:55НиколайПричина: Не закончил мысль
0
Вова (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
10
17:05

Николай сказал(а)
Для вывода данных на экран и в файл хочу применить внешние js библиотеки, но не могу понять как их подключить к дополнению.

это новый вопрос - его стоит задавать в новой теме.

Вопрос по Rcl_History_Orders и классу решен?

p.s. для многострочного кода есть соответствующая кнопка.

0
Николай
не в сети 1 год
На сайте с 03.11.2015
Участник
Тем 24
Сообщения 83
11
17:23

Понал. Вопрос по Rcl_History_Orders и классу решен, тему можно закрывать.

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