【发布时间】:2018-01-05 08:23:37
【问题描述】:
我正在尝试向分配给项目的每个用户发送通知。 我可以通过这样做获得所有用户ID
$ids = array_column($users, 'id');
$userid = implode(', ', $ids);
echo $userid;
但是当我试图把它放在我的函数中时,什么也没发生。它只是空白。 我也尝试在我的函数中移动“获取用户脚本”,但仍然没有运气。
编辑
我也尝试手动编写$ids = array("14","1"); 但我得到了同样的错误。但是,如果我将它移到函数内部,它就可以工作!如果我对$ids = array_column($users, 'id'); 做同样的事情,错误又回来了
如果我这样做,它会起作用。但我想自动获得用户。
$ids = array(
array(
'id' => 1,
'first_name' => 'Peter',
'last_name' => 'Griffin',
),
array(
'id' => 14,
'first_name' => 'Ben',
'last_name' => 'Smith',
),
array(
'id' => 3,
'first_name' => 'Joe',
'last_name' => 'Doe',
)
);
foreach ($ids as $key => $user) {
$um_notifications->api->store_notification( $user['id'], 'new_action', $vars );
}
这是完整的脚本,希望我已经解释清楚了。
<?php
/* #### TEST OUTSIDE THE FUNCTION 'trigger_new_notification' ####
THIS WORKS AND PRINTING EX: '1, 8, 13'
*/
$ids = array_column($users, 'id');
$userid = implode(', ', $ids);
echo $userid;
/* #### NOTIFICATION 'trigger_new_notification' START #### */
add_action('um_before_profile_fields', 'trigger_new_notification', 100);
function trigger_new_notification( $args ) {
global $um_notifications;
/* Get information about the project */
$vars = array(
"post_title" => get_post_field( 'post_title', $project_id ),
"photo" => um_get_avatar_url( get_avatar( get_current_user_id(), 40 ) ),
"member" => um_user('display_name'),
"notification_uri" => cpm_url_project_details( $project_id )
);
/* Send notification to every assaigned user */
foreach($ids as $row)
{
$um_notifications->api->store_notification( $row, 'new_action', $vars );
}
/* How it should print, where '14' is the user id */
/* $um_notifications->api->store_notification( 14, 'new_action', $vars ); */
}
do_action( 'um_before_profile_fields');
?>
【问题讨论】:
-
试试
foreach($ids as $row) -
做到了,同样的结果.. :-(
-
$userid是一个字符串,你不能foreach一个字符串。 -
但我也试过 foreach($ids as $row)
-
您现在拥有的代码应该可以工作。它应该打印一行类似于您的循环注释下方的行。只是为了确定,你可以 var_dump $ids 并将其粘贴到这里吗?