Changeset 10457
- Timestamp:
- 01/19/2016 07:55:22 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-activity/bp-activity-functions.php
r10455 r10457 134 134 bp_delete_user_meta( $user_id, 'bp_new_mention_count' ); 135 135 bp_delete_user_meta( $user_id, 'bp_new_mentions' ); 136 137 /** 138 * Fires once mentions has been reset for a given user. 139 * 140 * @since 2.5.0 141 * 142 * @param int $user_id The id of the user whose unread mentions are being reset. 143 */ 144 do_action( 'bp_activity_clear_new_mentions', $user_id ); 136 145 } 137 146 -
trunk/src/bp-activity/bp-activity-notifications.php
r10417 r10457 500 500 * 501 501 * @since 1.5.0 502 * 502 * @since 2.5.0 Add the $user_id parameter 503 * 504 * @param int $user_id The id of the user whose notifications are marked as read. 503 505 * @uses bp_notifications_mark_all_notifications_by_type() 504 506 */ 505 function bp_activity_remove_screen_notifications( ) {507 function bp_activity_remove_screen_notifications( $user_id = 0 ) { 506 508 if ( ! bp_is_active( 'notifications' ) ) { 507 509 return; 508 510 } 509 511 510 // Only mark read if you're looking at yourown mentions.511 if ( ! bp_is_my_profile() ) {512 // Only mark read if the current user is looking at his own mentions. 513 if ( empty( $user_id ) || (int) $user_id !== (int) bp_loggedin_user_id() ) { 512 514 return; 513 515 } 514 516 515 bp_notifications_mark_notifications_by_type( bp_loggedin_user_id(), buddypress()->activity->id, 'new_at_mention' );516 } 517 add_action( 'bp_activity_ screen_mentions', 'bp_activity_remove_screen_notifications');517 bp_notifications_mark_notifications_by_type( $user_id, buddypress()->activity->id, 'new_at_mention' ); 518 } 519 add_action( 'bp_activity_clear_new_mentions', 'bp_activity_remove_screen_notifications', 10, 1 ); 518 520 519 521 /** -
trunk/tests/phpunit/testcases/activity/notifications.php
r9819 r10457 243 243 244 244 /** 245 * @group bp_activity_remove_screen_notifications 246 * @group mentions 247 * @ticket BP6687 248 */ 249 public function test_bp_activity_remove_screen_notifications_on_new_mentions_cleared() { 250 $this->create_notifications(); 251 252 $notifications = BP_Notifications_Notification::get( array( 253 'item_id' => $this->a1, 254 ) ); 255 256 // Double check it's there 257 $this->assertEquals( array( $this->a1 ), wp_list_pluck( $notifications, 'item_id' ) ); 258 $this->assertEquals( 1, bp_get_total_mention_count_for_user( $this->u1 ) ); 259 260 // Clear notifications for $this->u1 261 bp_activity_clear_new_mentions( $this->u1 ); 262 263 $notifications = BP_Notifications_Notification::get( array( 264 'item_id' => $this->a1, 265 ) ); 266 267 $this->assertEmpty( $notifications, 'Notifications should be cleared when new mention metas are removed' ); 268 $this->assertEmpty( bp_get_total_mention_count_for_user( $this->u1 ) ); 269 } 270 271 /** 245 272 * Creates two notifications for $u1, one of which is for mentions 246 273 */
Note: See TracChangeset
for help on using the changeset viewer.