如何向活动添加错误或通知?

时间:2016-04-01 作者:Xtremefaith

我在BuddyPress组上有一个功能,当组活动发布为公告时,我会向所有成员发送自定义通知。当然,有可能出现一些错误,因此如果通知无法发送,我希望能够向活动添加错误消息。

因为我的通知连接到bp_activity_after_save 操作更新将已发布,因此我仍希望该帖子显示在活动提要上,但只需让用户知道由于特定原因没有发送通知即可。

add_action( \'bp_activity_after_save\', array( $this, \'send_team_notification\'), 10, 1 );

在发布活动之前,我曾试图寻找一个过滤器或一些可以用来修改活动内容的东西,但遗憾的是,到目前为止,我找不到任何有用的东西。

1 个回复
最合适的回答,由SO网友:Xtremefaith 整理而成

经过足够的挖掘,我终于找到了答案。首先,您必须将错误消息保存为活动元数据,如下所示:

public function send_team_notification($activity) {
    $message = $this->send_custom_notification($activity->content);
    if(is_wp_error($message)){
        bp_activity_update_meta( $activity->id, \'custom_error\', $message );
    }
}
这将出现在数据库中的wp_bp_activity_meta 类似于so的表格:

enter image description here

从那里,您可以手动更新主题模板文件,buddypress\\activity\\entry.php 否则我会选择bp_activity_entry_meta 这样做:

add_action(\'bp_activity_entry_meta\', array( $this, \'add_activity_error\') );
function add_activity_error(){
    $error = bp_activity_get_meta(bp_get_activity_id(), \'custom_error\');
    _e(\'<div><p class="error">\'.$error->get_error_message(\'error-code\').\'</p></div>\');
}
希望有帮助!

相关推荐

BuddyPress返回错误的xprofile日期

一切正常,但突然间BuddyPress xprofiledate 字段之前给出一个日期。然而,我已经检查了数据库,输入是正确的。它只是返回了错误的日期。这意味着,如果我将日期设置为1920-12-12,它将存储正确的(相同),但返回1920-12-11。我使用以下BuddyPress函数获取日期。// tried by field id bp_get_profile_field_data([ \'field\' => 5, \'user_id\' =>