Post Post上的自定义Buddypress通知

时间:2015-07-20 18:57:01

标签: php wordpress buddypress

我觉得我觉得这是一种独特的情况,而且几天来一直在倾注如何做到这一点。

首先,我在网上找到了一些非常有用的帖子,比如

How to add a custom notifcation

我有一个名为“协作”的自定义帖子类型,我一直在开发一个前端表单和php类来处理表单。几乎该表单允许注册用户从前端创建帖子并将其保存为草稿或发布。我也在使用Co Authors扩展,因此在前端表单上,用户可以选择要与之协作的各个成员。所有这一切都很好。

我想要做的是点击默认的buddypress行为,这样当有人分享(草稿)帖子进行协作时,它会在其通知标签中通知每个用户。我有一个功能,可以向他们发送电子邮件,但希望在他们的通知下也可以在网站上找到它。

我在这里附上我的课程以供参考:http://pastebin.com/HWNM8dHq

但这是我的问题。我看到如何添加通知但是如何配置要说的内容和后备?我假设我需要一个带有我自己的component_action的函数?

**************************************************
    Buddypress Notifications - Custom
**************************************************/
function add_collaboration_notification($activity, $subject, $message, $content, $user_id) {
    //bp_notifications_add_notification
    if ( bp_is_active( 'notifications' ) ) {
        bp_notifications_add_notification( array(
            'user_id'           => $user_id,
            'item_id'           => $activity->id,
            'secondary_item_id' => $activity->user_id,
            'component_name'    => buddypress()->activity->id,
            'component_action'  => 'new_at_mention',
            'date_notified'     => bp_core_current_time(),
            'is_new'            => 1,
        ) );
    }
}
//Hook into BP action or possibly save_post action?

function function_format_notification() {
    //use $component_action defined above
    //look at friends_format_notifications() in bp-friends.php
}
//Hook in core components notification system

最终结果应该是每次保存帖子并且我的类公共函数publish()或send_message运行时它也会向这些用户显示通知。这是我班上的片段:

public function send_message($subject, $message) {
            if($this->co_authors) {
              //verify post is not a revision
              if( wp_is_post_revision($this->post_id) )
              {
                return;
              }

                $recipients_object = array();

                foreach($this->co_authors as $recipientID){
                  $user_info = get_userdata($recipientID);
                  $email = $user_info->user_email;
                  $recipients_object[] = $email;
                }

                  $to = implode(", ", $recipients_object);

                // Send it!
                wp_mail( $to, $subject, $message );
            }

            //do_action('send_message');  Create action to plug in to add_notifications?

        }

0 个答案:

没有答案