Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Использование планировщика заданий cron в своем дополнении
1 ответ(ов) в теме
Николай
не в сети 2 дня
На сайте с 03.11.2015
Участник
Тем 16
Сообщения 66
1
17:46
Версия WP-Recall:16.17.15

Здравствуйте!
Нужно в моем дополнении предусмотреть автоматическую отправку необходимых данных раз в неделю или раз в день.
Данные как правило различные выдержки из истории проведенных платежей магазина 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. Может эти классы должны как-то инклудиться по другому, потому что для их использования в админке вообще не понадобились инклуды?

0
Вы не имеете права на публикацию сообщений в этой теме