Skip to:
Content
Pages
Categories
Search
Top
Bottom

Search Results for 'notification user id'

Viewing 25 results - 376 through 400 (of 633 total)
  • Author
    Search Results
  • danbpfr
    Participant

    here’re the 3 counter. Their names are explicit enough i guess to see the right place where to use 😉

    echo bp_friend_get_total_requests_count( $user_id );

    echo bp_get_total_unread_messages_count($name );

    echo count($notifications);

    #154863
    Slava Abakumov
    Moderator

    Use a plugin Welcome Pack by Paul Gibbs and enable there emails editing. You will be able to edit all email that are sent to users.

    #154713
    funmi omoba
    Participant

    @naijaping, what a good job. Please can you share some of your code with us.

    1 how to have a notification menu like urs friend request, message etc.

    Or better still if you can give me ur child theme. I dont mind to pay some quid.

    Awaiting ur reply.
    Thanks

    2 how did you get auto loadmore working.

    3 also online / offline user icon.

    bp-help
    Participant

    @medemlooper It just does not work, is there an error in the syntax, did you forget the add action below the function? Just curious because I can not get it to work. I wish there was an easier way to do this because It would be awesome. Please help I am stuck and I have done just about everything I know to do to get this going!

    bp-help
    Participant

    @modemlooper I used the code you supplied on gethub and I put it in my child themes functions.php between opening and closing php tags. Then I placed bp_notification_badge() within opening and closing php tags in the header.php just under the div id=”header” and nothing shows up at all. What have I done wrong?

    bp-help
    Participant

    @modemlooper I am interested in using this too! Just for clarification would you place the function in the link you provided https://gist.github.com/modemlooper/5042788 in functions.php in my child theme then edit the header.php and then add as a li item in the menu or somewhere else in the header.php? Then style it in the style.css. Thank you!

    Andres Felipe
    Participant

    Hi, that is just what I (and think a lot of us) need. Nothing yet about the widget code?

    P.S: In this moment I’m using BuddyBar widget (https://wordpress.org/extend/plugins/buddybar-widget/) plugin is not as good as @naijaping code but do its job. A god thing about this plugin is than give You a Log in form and after log in, it changes to something like @naijaping widget.

    #153546
    David Hunt
    Participant

    Okay, phew, it wasn’t as serious as I first thought. This now won’t send an email if the content is empty (which is, apparently, the case when a user is being deleted):

    `function pa_send_notification_email( $args ) {
    // If current user deletes his/her own activity, do nothing
    if (($args[‘user_id’] != bp_loggedin_user_id())) {
    $ud = get_userdata($args[‘user_id’]);
    $to = $ud->user_email;
    // Build the message
    if (($to) && ($to != ”)) {
    global $wpdb;
    $content = $wpdb->get_var( $wpdb->prepare( “SELECT content FROM “.$wpdb->prefix.”bp_activity WHERE id = %d;”, $args[‘id’] ) );
    if ($content != ”) {
    $subject = ‘Your post has been removed’;
    $message = ‘A moderator has removed your post. If you want to know why, please forward this message to the moderation team.
    ‘;
    $message .= ‘Removed content:
    ‘;

    $message .= wpautop( $content );
    $message .= ”;

    //Send email
    wp_mail($to, $subject, $message, ‘content-type: text/html’ );
    }
    }
    }
    }
    add_action( ‘bp_before_activity_delete’, ‘pa_send_notification_email’);`

    #153544
    David Hunt
    Participant

    Hmm, the situation is not as dire as I thought. I did more testing and it appears that, when I delete a user who as posted multiple times, my function only sends one notification email to the user — but the SQL query is empty (as we might expect). So I think all I need to do is put a check in to see whether the deleted “content” is empty or not, and if it is, don’t send the email.

    I’ll keep updating this thread with my findings in case it’s useful to anyone!

    #153540
    David Hunt
    Participant

    Revisiting this thread with a new issue!

    My function has been working well, except I’ve recently discovered a small flaw: if an administrator deletes a user, then the user receives an email informing him or her that his activity has been removed for each and every thing he or she has ever posted! For a prolific user, that could be hundreds or thousands of emails. Not good!

    This is by virtue of the user-delete process — it appears as though BuddyPress deletes each activity individually, and then WordPress deletes the user account.

    For reference, my function is:

    `function pa_send_notification_email( $args ) {
    // If current user deletes his/her own activity, do nothing
    // otherwise construct and send email
    if ($args[‘user_id’] != bp_loggedin_user_id()) {
    $ud = get_userdata($args[‘user_id’]);
    $to = $ud->user_email;
    // Build the message
    if (($to) && ($to != ”)) {
    $subject = ‘Your post has been removed’;
    $message = ‘A moderator has removed your post. If you want to know why, please forward this message to the moderation team.
    ‘;
    $message .= ‘Removed content:
    ‘;
    global $wpdb;
    $message .= wpautop( $wpdb->get_var( $wpdb->prepare( “SELECT content FROM “.$wpdb->prefix.”bp_activity WHERE id = %d;”, $args[‘id’] ) ) );
    $message .= ”;

    //Send email
    wp_mail($to, $subject, $message, ‘content-type: text/html’ );
    }
    }
    }
    add_action( ‘bp_before_activity_delete’, ‘pa_send_notification_email’);`

    So what I think I need is an extra check in my function, to make sure we are not about to delete the user. I’ve thought about a secondary function to hook into the `delete_user` action to set a global variable, and then checking for this variable in my `pa_send_notification_email()` function.

    But I am not sure how to go about this. Does anyone have any thoughts?

    #153451
    philipt18
    Participant

    I’m using Buddypress Social from WPMU.

    I switched to BP Default and:

    – didn’t see the double avatar in the Activity list
    – same problem with updating my profile
    – same problem trying to create a Group

    For the first issue, of confirming a friend, it was a little more complicated. I used Safari which was logged into antoher user account to accept friendship. It worked normally. I then went to the Friends list, and cancelled the friendship. I’m not sure why the friend was still listed there, but I took advantage of that and clicked on the Add Friend button. It loaded a new page that said:

    Are you sure you want to do this?

    and then a link that said:

    Please try again.

    which links back to my Friends page, which this time was blank. In any case, the combination of ‘Are you sure…’ and ‘Please try again.’ seems out of place.

    I then went to the Members page, and clicked Add Friend again. I then went to the Members page using my admin account (the account I requested friendship of) and it listed the members including the account I requested from – and next to that name it had a button labeled ‘Cancel Friend Request’ which seems backwards. However, I noticed two notifications in the top menu, one which said the user had accepted my friendship request, and another saying the user had requested my friendship. I selected the second one and was taken to the Requests page. I clicked Accept and it seemed to work normally.

    Hope that’s all clear…

    #153369
    Keith Kelly
    Participant

    I did check out some of the “like” plugins, but most of them hadn’t been maintained or didn’t work properly. I was hoping to tailor a core feature to work in a similar, simple way. So far I think what I have done works great, but just need to incorporate notifications.

    I still think that it wold be useful if a user was notified when someone favorited their activity.

    Paul Wong-Gibbs
    Keymaster

    Set your users to the Contributor role, not Editor. Contributors can write drafts, but can’t publish.

    I also want these people to receive notifications every time a new post is published.

    If you specifically mean notifications inside BuddyPress, I’m not aware of any plugins that do this. You’ll have to write something yourself. If you mean notifications more generally, consider using the Jetpack plugin — users can subscribe to your site, and receive email updates when a post is published.

    Regardless of what type of notification you meant, you’ll probably have to write some custom code to get it to send a message to your users when e.g. you promote them to Editor.

    omgbud
    Participant

    Hi,

    this is a code I use personally, but requires you to edit the bp-groups-actions.php, sorry i do not know how to write function.

    open buddypress/bp-groups/bp-groups-actions.php

    around line 150

    After this line:
    `do_action( ‘groups_group_create_complete’, $bp->groups->new_group_id );`

    Add this code:
    ` $to = “YOUREMAILADDRESS”;
    $name= bp_core_get_username(bp_loggedin_user_id());
    $groupname = bp_get_new_group_name(bp_get_new_group_id());
    $groupurl = bp_get_group_permalink( $bp->groups->current_group );
    $subject = “$name created new group $groupname”;
    $body = “$name created new group $groupname, visit $groupurl”;
    mail($to, $subject, $body);
    `

    That’s it, when a user hit the Finish create group button this code will send to the email stated address with the newly created group link. use at your own risk. Hope someone better can create a theme function or a plugin for this.

    This is needed to keep track of newly created groups to alert you if spammers are creating groups to spam.

    Hope it helps.

    #151573
    myladeybugg
    Participant

    I did find this one: Tagged User Notification It seems to be working so far.

    #149470
    black key
    Participant

    // the problem with your code:
    $bp->bp_like->slug = ‘bp_like’;
    ——————————————————
    function bp_like_setup_globals() {
    global $bp, $current_blog;
    $bp->bp_like=new stdClass();
    $bp->bp_like->id = ‘bp-like’;
    $bp->bp_like->slug = ‘bp_like’;
    $bp->bp_like->notification_callback = ‘bp_like_format_notifications’;
    $bp->active_components[$bp->bp_like->slug] = $bp->bp_like->id;
    do_action( ‘bp_like_setup_globals’ );
    }
    add_action( ‘bp_setup_globals’, ‘bp_like_setup_globals’ );

    function bp_like_format_notifications( $action, $item_id, $secondary_item_id, $total_items,$format=’string’) {
    global $bp;
    $glue=”;
    $user_names=array();
    $activity = new BP_Activity_Activity( $activity_id );
    $link=ac_notifier_activity_get_permalink2( $activity_id );

    //si c’est le posteur d’origine, dites que vous êtes, d’autre dire de% s après
    if($activity->user_id==$bp->loggedin_user->id){
    $text=__(“your”);
    $also=””;
    }
    else{
    $text=sprintf(__(“%s’s”), bp_core_get_user_displayname ($activity->user_id));//quelqu’un
    $also=” also”;
    }
    $ac_action=’new_bp_like_’.$item_id;

    if($action==$ac_action){
    //if ( (int)$total_items > 1 ) {
    // $users=ac_notifier_find_involved_persons($activity_id);
    $total_user= $count=count($users);//montrent de nombreux utilisateurs uniques ont commenté
    if($count>2){
    $users=array_slice($users, $count-2);//simplement indiquer le nom de deux affiches, le repos doit être aussi et ‘n’ autre a également commenté
    $count=$count-2;
    $glue=”, “;
    }
    else if($total_user==2)
    $glue=” xxxxxxxxx “;//si il ya 2 utilisateurs uniques, disons x et y commenté

    foreach((array)$users as $user_id)
    $user_names[]=bp_core_get_user_displayname ($user_id);

    if(!empty($user_names))
    $commenting_users=join ($glue, $user_names);

    if($total_user>2)
    $text=$commenting_users.” xxxxxxxxxxxxxxxx “.$count.” xxxxxxxxx”.$also.” xxxxxxxxxxxxxxxx on “.$text. ” post”;//peut-on changer la poste à quelque chose de significatif en fonction de l’élément d’activité?
    else
    $text=$commenting_users.$also .” xxxxxxxxxxxx on “.$text. ” post”;

    if($format==’string’)
    return apply_filters( ‘bp_activity_multiple_new_likes_notification’, ‘‘ . $text . ‘‘);
    else{
    return array(‘link’=>$link,
    ‘text’=>$text);
    }
    return false;
    }

    }

    #149338

    In reply to: Notification Alert

    Tammie Lister
    Moderator

    Whilst I’ve not used it http://buddydev.com/buddypress/buddypress-user-notifications-widget-plugin/ may be useful for this – not sure if updated. I’d say you want to show as a number on top of a png background right? Writing to a png is a whole another story 🙂

    #147032
    shanebp
    Moderator

    Too bad about the release timing, but good work David.

    #147028
    David Hunt
    Participant

    Well, after being driven almost bonkers, I have solved this — and found what I think is a bug in BuddyPress 1.6.1.

    I went with @shanebpx’s great suggestion of using a get_var query:


    $content_id = $args['id'];
    global $wpdb;
    $content = $wpdb->get_var( $wpdb->prepare("SELECT content FROM ".$wpdb->prefix."bp_activity WHERE id = %d;", $content_id ) );
    $message .= wpautop($content);

    However, I was baffled by the fact that $content kept coming up empty. Until I finally took a look at how BuddyPress was calling do_action( 'bp_before_activity_delete', $args ); in /bp-activity/bp-activity-functions.php:


    if ( !$activity_ids_deleted = BP_Activity_Activity::delete( $args ) )
    return false;

    // Check if the user's latest update has been deleted
    if ( empty( $args['user_id'] ) )
    $user_id = $bp->loggedin_user->id;
    else
    $user_id = $args['user_id'];

    do_action( 'bp_before_activity_delete', $args );

    Yup, it’s apparently doing the bp_before_activity_delete action after BP_Activity_Activity::delete!

    I have edited my copy of /bp-activity/bp-activity-functions.php to put the do_action before the deletion.


    do_action( 'bp_before_activity_delete', $args );
    if ( !$activity_ids_deleted = BP_Activity_Activity::delete( $args ) )
    return false;

    // Check if the user's latest update has been deleted
    if ( empty( $args['user_id'] ) )
    $user_id = bp_loggedin_user_id();
    else
    $user_id = $args['user_id'];

    and at last, my email function works!

    Now, how do I go about submitting this as a bug…?

    #147006
    shanebp
    Moderator

    Yeah, those fields will be empty unless the values are passed by whatever is calling the function that has the do_action ‘bp_before_activity_delete’

    Iffy, but try adding this to the top of your function:
    global $activities_template;

    and then revert to:
    $message .= bp_get_activity_content_body();

    There is definitely some BP way to get the activity content… sometimes it takes some real searching.

    And since the activity id is being passed, there is always the custom query approach.
    If you don’t know how to do that, take a look at $wpdb and get_var
    https://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Variable

    The query will something like this:
    $content_id = $args[‘id’];
    $content = $wpdb->get_var( “SELECT content FROM wp_bp_activity WHERE id = $content_id” );

    #147001
    David Hunt
    Participant

    I guess the delete button only passes user_id and id to $args…

    #147000
    David Hunt
    Participant

    @shanebpx: Thanks for that suggestion — it’s beautifully simple. Unfortunately, it appear as though $args['content'] is empty? (But there’s definitely content in the test activity I am deleting!)

    For debugging, I tried $message .= print_r($args, true);, which gave:

    Array
    (
    [id] => 31
    [action] =>
    [content] =>
    [component] =>
    [type] =>
    [primary_link] =>
    [user_id] => 52
    [item_id] =>
    [secondary_item_id] =>
    [date_recorded] =>
    [hide_sitewide] =>
    )

    I admit I’m a little bewildered as to why all those values appear empty.

    #146773
    Andrew Tibbetts
    Participant

    Okaaay, the plugin IS working. Does anyone know why an entry in wp_bp_notifications would not be showing up in notifications?

    entry in wp_bp_notifications:

    id user_id item_id secondary_item_id component_name component_action date_notified is_new

    196 4 209 0 pc_notifier new_post_comment_209 2012-12-07 17:08:16 1

    User id#3 is creating the comment and user id#4 is not receiving the notification in the top bar. Anyone know why?

    #146765
    Andrew Tibbetts
    Participant

    Ok, I think I’ve narrowed it down to this function in the plugin. I know that the function that it is hooking into works. Anyone know why this would fail?

    function pc_notifier_notify($activity_id) {
    global $bp;

    $activity = new BP_Activity_Activity($activity_id);
    $comment = get_comment($activity->secondary_item_id);
    $users = pc_notifier_find_involved_persons($comment->comment_post_ID);
    $link = get_permalink($comment->comment_post_ID);

    if($activity->hide_sitewide) return;

    if(!in_array($activity->user_id, $users)&&($bp->loggedin_user->id!=$activity->user_id)) array_push ($users, $activity->user_id);

    foreach((array)$users as $user_id){
    bp_core_add_notification( $activity_id, $user_id, $bp->pc_notifier->id, 'new_post_comment_'.$activity_id );
    }

    }
    add_action("bp_blogs_comment_recorded","pc_notifier_notify",10,1); // hook to bp_blogs_comment_recorded for adding notification

    #146721
    Andrew Tibbetts
    Participant

    Actually, this function is working—it is creating activity items based on blog posts and comments. I found out that it’s my custom plugin that is supposed to hook into this custom post or comment action to create a notification. Here is the plugin. I know no one will even try to tackle this but I have to post this because it’s my only option and I one for due diligence…

    /**
    * Plugin Name:BuddyPress Post Comment Notifier
    * Description: Mod of Brajesh Singh's BuddyPress Activity Comment Notifier to work for Blog Post Comments
    *
    */

    // we are not much concerned with the slug, it is not visible
    define("BP_COMMENT_NOTIFIER_SLUG","pc_notification");

    //register a dummy notifier component, I don't want to do it, but bp has no other mechanism for passing the notification data to function, so we need the format_notification_function
    function pc_notifier_setup_globals() {
    global $bp, $current_blog;
    $bp->pc_notifier=new stdClass();
    $bp->pc_notifier->id = 'pc_notifier';//I asume others are not going to use this is
    $bp->pc_notifier->slug = BP_COMMENT_NOTIFIER_SLUG;
    $bp->pc_notifier->notification_callback = 'pc_notifier_format_notifications';//show the notification
    /* Register this in the active components array */
    $bp->active_components[$bp->pc_notifier->slug] = $bp->pc_notifier->id;

    do_action( 'pc_notifier_setup_globals' );
    }
    add_action( 'bp_setup_globals', 'pc_notifier_setup_globals' );

    /**
    * storing notification for users
    * notify all the users who have commented, or who was the original poster of the update, when someone comments
    * hook to bp_blogs_comment_recorded action
    */
    function pc_notifier_notify($activity_id) {
    global $bp;

    $activity = new BP_Activity_Activity($activity_id);
    $comment = get_comment($activity->secondary_item_id);
    $users = pc_notifier_find_involved_persons($comment->comment_post_ID);
    $link = get_permalink($comment->comment_post_ID);

    if($activity->hide_sitewide) return;

    if(!in_array($activity->user_id, $users)&&($bp->loggedin_user->id!=$activity->user_id)) array_push ($users, $activity->user_id);

    foreach((array)$users as $user_id){
    bp_core_add_notification( $activity_id, $user_id, $bp->pc_notifier->id, 'new_post_comment_'.$activity_id );
    }

    }
    add_action("bp_blogs_comment_recorded","pc_notifier_notify",10,1); // hook to bp_blogs_comment_recorded for adding notification

    /** our notification format function which shows notification to user
    *
    * @global $bp
    * @param $action
    * @param $activity_id
    * @param $secondary_item_id
    * @param $total_items
    * @return
    * @since 1.0.2
    * @desc format and show the notification to the user
    */
    function pc_notifier_format_notifications( $action, $activity_id, $secondary_item_id, $total_items, $format='string' ) {

    global $bp;
    $glue = '';
    $user_names = array();
    $activity = new BP_Activity_Activity( $activity_id );
    $comment = get_comment($activity->secondary_item_id);
    $link = get_permalink($comment->comment_post_ID);
    $comment_post = get_post($comment->comment_post_ID);

    if ( $activity->user_id == $bp->loggedin_user->id ) $text = __("your post");
    else $text = sprintf(__("%s"), $comment_post->post_title);

    $pc_action = 'new_post_comment_'.$activity_id;

    if ( $action == $pc_action ) {

    $users = pc_notifier_find_involved_persons($comment->comment_post_ID);

    $total_user = $count = count($users);//how many unique users have commented

    if ( $count > 2 ) {
    $users = array_slice($users, $count-2);//just show name of two poster, rest should be as and 'n' other also commeted
    $count = $count-2;
    $glue=", ";
    }
    else if ( $total_user == 2 ) $glue = " and ";//if there are 2 unique users , say x and y commented

    foreach ( (array)$users as $user_id )
    $user_names[] = bp_core_get_user_displayname($user_id);

    if ( !empty($user_names) )
    $commenting_users = join($glue,$user_names);

    if ( $total_user > 2 )
    $text = $commenting_users." and ".$count." others commented on ".$comment_post->post_title;
    else
    $text = $commenting_users." commented on ".$comment_post->post_title;

    if ( $format == 'string' )
    return apply_filters('bp_activity_multiple_new_comment_notification','comment_ID.'">'.$text.'');
    else {
    $link .= '#comment-'.$comment->comment_ID;
    return array('link'=>$link,'text'=>$text);
    }

    }

    return false;

    }

    /*
    * Remove activity for the comments on new_blog_post & new_blog_comment activity item.
    * Since these items do not have a single activity view and are linked to the single post screen, we will do the needed on single post view
    */

    function pc_notifier_remove_notification_for_blog_posts(){
    if( !( is_user_logged_in() && is_singular() ) )
    return;

    global $bp,$wpdb;
    $blog_id = (int)$wpdb->blogid;
    $post = wp_get_single_post();
    $activity_id = bp_activity_get_activity_id(
    array(
    'user_id' => $post->post_author,
    'component' => $bp->blogs->id,
    'type' => "new_blog_post",
    'item_id' => $blog_id,
    'secondary_item_id' => $post->ID
    )
    );
    //delete the notification for activity comment on new_blog_post
    if( !empty($activity_id) )
    bp_core_delete_notifications_by_item_id( $bp->loggedin_user->id, $activity_id, $bp->pc_notifier->id, 'new_post_comment_'.$activity_id );

    //for replies on blog comments in activity stream
    $comments = pc_notifier_get_all_blog_post_comment_ids($post->ID);//get all the comment ids as array

    //added in v 1.0.3 for better database performance, no more looping to get individual activity ids
    $activities = pc_notifier_get_activity_ids(
    array(
    "type"=>"new_blog_comment",
    "component" => $bp->blogs->id,
    "item_id"=>$blog_id,
    "secondary_ids"=>$comments
    )
    );

    foreach( (array)$activities as $pc_id )
    bp_core_delete_notifications_by_item_id( $bp->loggedin_user->id, $pc_id, $bp->pc_notifier->id, 'new_post_comment_'.$pc_id );

    }
    add_action("wp_head","pc_notifier_remove_notification_for_blog_posts");

    /**
    * @since v 1.0.2
    * @desc delete notification when an activity is deleted, thanks to @kat_uk for pointing the issue
    * @param pc_ids:we get an arry of activity ids
    */
    function bp_pc_clear_notification_on_activity_delete($pc_ids){
    global $bp;

    foreach ( (array)$pc_ids as $activity_id )
    bp_core_delete_all_notifications_by_type( $activity_id, $bp->pc_notifier->id, 'new_post_comment_'.$activity_id, $secondary_item_id = false );
    }
    add_action("bp_activity_deleted_activities","bp_pc_clear_notification_on_activity_delete");

    /************************************ HELPER FUNCTIONS ********************************************************/

    // find all users who commented on the post
    function pc_notifier_find_involved_persons($comment_post_ID){
    global $bp,$wpdb;

    return $wpdb->get_col($wpdb->prepare("SELECT DISTINCT(user_id) from {$wpdb->comments} where comment_post_ID=%d and user_id!=%d",$comment_post_ID,$bp->loggedin_user->id));
    }

    // return an array of comment ids for the post
    function pc_notifier_get_all_blog_post_comment_ids($post_id) {
    global $wpdb;

    return $wpdb->get_col($wpdb->prepare("SELECT comment_ID as id FROM {$wpdb->comments} WHERE comment_post_ID = %d AND comment_approved = '1' ORDER BY comment_date", $post_id));
    }

    // get activity ids when type, component, secondary_ids, item_id is specified
    function pc_notifier_get_activity_ids($params){
    global $bp,$wpdb;
    extract($params);
    $list="(".join(",", $secondary_ids).")";//create a set to use in the query;

    return $wpdb->get_col($wpdb->prepare("SELECT id from {$bp->activity->table_name} where type=%s and component=%s and item_id=%d and secondary_item_id in {$list}",$type,$component,$item_id));
    }

Viewing 25 results - 376 through 400 (of 633 total)
Skip to toolbar