web-dev-qa-db-fra.com

comment définir un tableau d'arguments pour un événement planifié?

J'ai un événement planifié qui se déroule deux fois par jour dans mon plugin, l'action est enregistrée avec

add_action('fhprw_action','fhprw_check_fetch'); 

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

//do stuff according to $type
}

si j'appelle manuellement un do_action('fhprw_action',array('type'=>'uk')); lorsqu'un widget est mis à jour, la fonction reçoit $ args sous forme de tableau et je peux obtenir $ type à partir de $ args ['type'] sans problème

mais quand je programme un événement avec

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

alors la fonction reçoit $ args sous forme de chaîne

$ args = 'uk' au lieu de array ('type' => 'uk');

pourquoi la fonction ne reçoit pas de tableau pour $ args quand elle est appelée par le cron?

[modifier]

les événements planifiés appellent la fonction de rappel avec une liste de paramètres, et non un tableau de paramètres, afin que ma fonction de rappel pour l'action reçoive $ arg1, $ arg2, etc. et ne puisse accepter un tableau associatif.

1
CommentLuv

Ce pourrait être le phrasé du tableau, alors essayez de le définir en dehors de l'appel wp_schedule_event:

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