Changeset 10479 for trunk/src/bp-messages/bp-messages-notifications.php
- Timestamp:
- 01/27/2016 09:15:07 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-messages/bp-messages-notifications.php
r10417 r10479 27 27 */ 28 28 function messages_notification_new_message( $raw_args = array() ) { 29 30 // Cast possible $message object as an array.31 29 if ( is_object( $raw_args ) ) { 32 30 $args = (array) $raw_args; … … 43 41 extract( $args ); 44 42 45 // Get the sender display name. 43 if ( empty( $recipients ) ) { 44 return; 45 } 46 46 47 $sender_name = bp_core_get_user_displayname( $sender_id ); 47 48 48 // Bail if no recipients. 49 if ( ! empty( $recipients ) ) { 50 51 foreach ( $recipients as $recipient ) { 52 53 if ( $sender_id == $recipient->user_id || 'no' == bp_get_user_meta( $recipient->user_id, 'notification_messages_new_message', true ) ) { 54 continue; 55 } 56 57 // User data and links. 58 $ud = get_userdata( $recipient->user_id ); 59 60 // Bail if user cannot be found. 61 if ( empty( $ud ) ) { 62 continue; 63 } 64 65 $message_link = bp_core_get_user_domain( $recipient->user_id ) . bp_get_messages_slug() .'/'; 66 $settings_slug = function_exists( 'bp_get_settings_slug' ) ? bp_get_settings_slug() : 'settings'; 67 $settings_link = bp_core_get_user_domain( $recipient->user_id ) . $settings_slug . '/notifications/'; 68 69 // Sender info. 70 $sender_name = stripslashes( $sender_name ); 71 $subject = stripslashes( wp_filter_kses( $subject ) ); 72 $content = stripslashes( wp_filter_kses( $message ) ); 73 74 // Set up and send the message. 75 $email_to = $ud->user_email; 76 $email_subject = bp_get_email_subject( array( 'text' => sprintf( __( 'New message from %s', 'buddypress' ), $sender_name ) ) ); 77 78 $email_content = sprintf( __( 79 '%1$s sent you a new message: 80 81 Subject: %2$s 82 83 "%3$s" 84 85 To view and read your messages please log in and visit: %4$s 86 87 --------------------- 88 ', 'buddypress' ), $sender_name, $subject, $content, $message_link ); 89 90 // Only show the disable notifications line if the settings component is enabled. 91 if ( bp_is_active( 'settings' ) ) { 92 $email_content .= sprintf( __( 'To disable these notifications, please log in and go to: %s', 'buddypress' ), $settings_link ); 93 } 94 95 /** 96 * Filters the user email that the message notification will be sent to. 97 * 98 * @since 1.2.0 99 * 100 * @param string $email_to User email the notification is being sent to. 101 * @param WP_User $ud WP_User object of who is receiving the message. 102 */ 103 $email_to = apply_filters( 'messages_notification_new_message_to', $email_to, $ud ); 104 105 /** 106 * Filters the message notification subject that will be sent to user. 107 * 108 * @since 1.2.0 109 * 110 * @param string $email_subject Email notification subject text. 111 * @param string $sender_name Name of the person who sent the message. 112 * @param WP_User $ud WP_User object of who is receiving the message. 113 */ 114 $email_subject = apply_filters( 'messages_notification_new_message_subject', $email_subject, $sender_name, $ud ); 115 116 /** 117 * Filters the message notification message that will be sent to user. 118 * 119 * @since 1.2.0 120 * 121 * @param string $email_content Email notification message text. 122 * @param string $sender_name Name of the person who sent the message. 123 * @param string $subject Email notification subject text. 124 * @param string $content Content of the message. 125 * @param string $message_link URL permalink for the message. 126 * @param string $settings_link URL permalink for the user's notification settings area. 127 * @param WP_User $ud WP_User object of who is receiving the message. 128 */ 129 $email_content = apply_filters( 'messages_notification_new_message_message', $email_content, $sender_name, $subject, $content, $message_link, $settings_link, $ud ); 130 131 wp_mail( $email_to, $email_subject, $email_content ); 132 } 49 // Send an email to each recipient. 50 foreach ( $recipients as $recipient ) { 51 if ( $sender_id == $recipient->user_id || 'no' == bp_get_user_meta( $recipient->user_id, 'notification_messages_new_message', true ) ) { 52 continue; 53 } 54 55 // User data and links. 56 $ud = get_userdata( $recipient->user_id ); 57 if ( empty( $ud ) ) { 58 continue; 59 } 60 61 $args = array( 62 'tokens' => array( 63 'usermessage' => wp_strip_all_tags( $message ), 64 'message.url' => esc_url( bp_core_get_user_domain( $recipient->user_id ) . bp_get_messages_slug() . '/' ), 65 'sender.name' => $sender_name, 66 'usersubject' => sanitize_text_field( $subject ), 67 ), 68 ); 69 bp_send_email( 'messages-unread', $ud, $args ); 133 70 } 134 71 … … 137 74 * 138 75 * @since 1.5.0 76 * @deprecated 2.5.0 Use the filters in BP_Email. 77 * $email_subject and $email_content arguments unset and deprecated. 139 78 * 140 79 * @param array $recipients User IDs of recipients. 141 * @param string $email_subject Email notification subject text.142 * @param string $email_content Email notification message text.143 * @param array $ $argsArray of originally provided arguments.80 * @param string $email_subject Deprecated in 2.5; now an empty string. 81 * @param string $email_content Deprecated in 2.5; now an empty string. 82 * @param array $args Array of originally provided arguments. 144 83 */ 145 do_action( 'bp_messages_sent_notification_email', $recipients, $email_subject, $email_content, $args );84 do_action( 'bp_messages_sent_notification_email', $recipients, '', '', $args ); 146 85 } 147 86 add_action( 'messages_message_sent', 'messages_notification_new_message', 10 );
Note: See TracChangeset
for help on using the changeset viewer.