WordPress Awesome Support过滤器如何传入$ticket_id手动分配工单坐席
问题解决方法
你已经在add_filter的第四个参数指定了接受2个参数,只需要在回调函数的参数列表里按顺序补上第二个$ticket_id参数即可,系统会自动把官方函数传入的工单ID赋值给这个变量。
修改后的正确代码如下:
add_filter('wpas_find_available_agent', 'asignar_agente', 10, 2); function asignar_agente($agent_id, $ticket_id) { // 先判断工单ID是否有效,避免运行异常 if (empty($ticket_id)) { return $agent_id; } $term_list = wp_get_post_terms( $ticket_id, 'department', array( 'fields' => 'ids' ) ); if(isset($term_list[0]) && $term_list[0] == 34){ $agent_id = 2; }else{ $agent_id = 3; } return $agent_id; }
补充说明:
- 官方代码里
apply_filters( 'wpas_find_available_agent', (int) $agent_id, $ticket_id )已经把$ticket_id作为第二个参数传入过滤器,你注册过滤器时设置第四个参数为2,就代表回调可以接收两个入参,只需要在回调函数的参数里按顺序声明就能拿到对应的值。 - 代码中额外增加了非空判断和
$term_list[0]存在性判断,避免分类不存在或者工单ID无效时报PHP警告。
内容的提问来源于stack exchange,提问作者user8265015
相关产品推荐
相关产品推荐

