commentluv
  • 0
Новичок

Как установить массив аргументов для запланированного события?

  • 0

У меня есть запланированное событие, которое запускается два раза в день в моем плагине, действие зарегистрировано с помощью

add_action('fhprw_action','fhprw_check_fetch'); 

function fhprw_check_fetch($args){
  $type=$args['type'];

//do stuff according to $type
}

если я вручную вызываю a do_action('fhprw_action',array('type'=>'uk')); при обновлении виджета, тогда функция получает $args в виде массива, и я могу получить $type из $args[‘type’] без проблем

но когда я планирую мероприятие с

wp_schedule_event(time() , 'twicedaily', 'fhprw_action',array('type'=>$instance['type'])); // ($instance['type'] will be 'uk')

затем функция получает $args в виде строки

$args = ‘uk’ вместо array(‘type’=>’uk’);

почему функция не получает массив для $args при вызове cron?

[редактировать]

запланированные события вызывают функцию обратного вызова со списком параметров, а не массивом параметров, поэтому моя функция обратного вызова для действия получит $arg1, $arg2 и т. д. и не сможет принять ассоциативный массив

Share
  1. Это может быть формулировка массива, поэтому попробуйте установить массив вне wp_schedule_event вызова:

    $args = array('type'=>$instance['type']);
    wp_schedule_event(time() , 'twicedaily', 'fhprw_action',$args);
    
    • 0

Оставить ответ

You must login to add an answer.