Здравствуйте!
Нужно в моем дополнении предусмотреть автоматическую отправку необходимых данных раз в неделю или раз в день.
Данные как правило различные выдержки из истории проведенных платежей магазина RCL-Commerce.
Само задание без данных отрабатывает на ура.
Возникла проблема с получением данных, поскольку ни класс Rcl_Payments ни класс Rcl_Payments_History становятся не видны для функции, которая их получает.
Код функции вот:
function create_csv() {
//include_once untrailingslashit( dirname(plugin_dir_path( __FILE__ ))).'/user-profile-pay-export/class-rcl-payments.php';
include_once untrailingslashit(get_site_url().'wp-content/plugins/wp-recall/user-balance/class-rcl-payments.php';
$fd = fopen('php://temp/', 'w');
if($fd === FALSE) {
die('Failed to open temporary file');
}
$headers = '№ п/п, ID платежа, Фамилия, Имя, Отчество, Сумма, Дата платежа, Платежная система, Тип платежа';
$payments = new Rcl_Payments();
$payments->set_query(array(
'offset' => 0,
'number' => 50
));
$tableAs = $payments->query['table']['as'];
$allPayments = $payments->get_data();
error_log("Program it work", 0);
$dataPayments = '';
foreach ($allPayments as $payment) {
$dataPayments .= '' . ($payment -> ID) . ', ';
$dataPayments .= '' . ($payment -> payment_id) . ', ';
$userById = get_userdata($payment -> user_id);
$customFields = rcl_get_custom_fields_profile_to_export( $userById);
$dataPayments .= '' . ($userById->last_name) . ', ';
$dataPayments .= '' . ($userById->first_name) . ', ';
$dataPayments .= '' . ($customFields[0]) . ', ';
$dataPayments .= '' . ($payment -> pay_amount) . ', ';
$dataPayments .= '' . ($payment -> time_action) . ', ';
$dataPayments .= '' . ($payment -> pay_system) . ', ';
$dataPayments .= '' . ($payment -> pay_type) . '';
$dataPayments .= '\n';
}
debug_to_console($dataPayments);
fputcsv($fd, $headers);
//foreach ($dataPayments as $payment) {
// fputcsv($fd, $payment);
//}
fputcsv($fd, $dataPayments);
if("\n" != $eol && 0 === fseek($fp, -1, SEEK_CUR)) {
fwrite($fp, $eol);
}
rewind($fd);
$csv = stream_get_contents($fd);
$myfile = fread($fd, 1024);
fclose($fd);
//return $dataPayments;
return $csv;
}
Вопросы
1. Может для этой функции нужен специальный хук? который позволил бы ей обращаться к классам wp-recall?
Потому что та же сама функция без проблем выводит необходимые данные в админку. А вот при обработке cron-ом не находит вышеуказанные классы.
2. Может эти классы должны как-то инклудиться по другому, потому что для их использования в админке вообще не понадобились инклуды?