Ticket #2797: 2797.02.patch
File 2797.02.patch, 24.2 KB (added by , 10 years ago) |
---|
-
includes/common/classes.php
538 538 } 539 539 } 540 540 endif; // class_exists check 541 542 if ( !class_exists( 'BBP_Subscriber_Notification' ) ) : 543 /** 544 * Send subscription notification emails via WP Cron 545 * 546 * @package bbPress 547 * @subpackage Classes 548 * 549 * @since bbPress (r) 550 */ 551 class BBP_Subscriber_Notification { 552 public $subject; 553 public $message; 554 public $headers; 555 public $recipients; 556 557 protected function __construct( $recipients ) { 558 $this->recipients = $recipients; 559 $from = array( 560 'name' => wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ), 561 'address' => get_bloginfo( 'admin_email' ) 562 ); 563 $from = apply_filters( 'bbp_subscription_email_from', $from ); 564 $from_string = empty( $from['name'] ) ? $from['address'] : "{$from['name']} <{$from['address']}>"; 565 $this->headers = "From: $from_string\r\n"; // string version $headers needs proper line ending, see wp codex on wp_mail() 566 } 567 568 /** 569 * WP Cron callback to send notification emails to subscribers 570 */ 571 public static function send( $notification ) { 572 do_action( 'bbp_pre_notify_subscribers' ); 573 574 add_action( 'phpmailer_init', array( 'BBP_Subscriber_Notification', 'set_bounce_address' ), 10, 1 ); 575 576 foreach ( $notification->recipients as $to ) { 577 $to_string = empty( $to['name'] ) ? $to['address'] : "{$to['name']} <{$to['address']}>"; 578 wp_mail( $to_string, $notification->subject, $notification->message, $notification->headers ); 579 } 580 581 remove_action( 'phpmailer_init', array( 'BBP_Subscriber_Notification', 'set_bounce_address' ), 10, 1 ); 582 583 do_action( 'bbp_post_notify_subscribers' ); 584 } 585 586 /** 587 * Sets PHPMailer::Sender to bounce address, configurable via filter 588 * Invoke via 'phpmailer_init' action hook 589 */ 590 public static function set_bounce_address( $phpmailer ) { 591 $bounce_address = apply_filters( 'bbp_bounce_address', false ); 592 if ( $bounce_address ) { 593 $phpmailer->Sender = $bounce_address; 594 } 595 } 596 597 /** 598 * Initializes recipients array from array of recipient user ids 599 */ 600 protected static function get_recipients( $user_ids ) { 601 global $wpdb; 602 603 $ids_substitution = substr( str_repeat( ',%d', count( $user_ids ) ), 1 ); 604 $params = array_merge( array( "select user_email as address, display_name as name from {$wpdb->users} where ID in ($ids_substitution)" ), $user_ids ); 605 $recipients = $wpdb->get_results( call_user_func_array( array( $wpdb, 'prepare' ), $params ), ARRAY_A ); 606 607 return apply_filters( 'bbp_subscription_email_recipients', $recipients ); 608 } 609 610 /** 611 * Schedules a sending event with WP Cron 612 */ 613 protected static function schedule_wp_cron_event( $notification ) { 614 wp_schedule_single_event( time(), 'bbp_subscription_email_cron', array( $notification ) ); 615 } 616 } 617 /** 618 * Forum subscription notification 619 * 620 * @package bbPress 621 * @subpackage Classes 622 * 623 * @since bbPress (r) 624 * 625 * @uses BBP_Subscriber_Notification 626 */ 627 class BBP_Forum_Subscriber_Notification extends BBP_Subscriber_Notification { 628 629 protected function __construct( $recipients, $forum_id, $topic_id ) { 630 parent::__construct( $recipients ); 631 632 // Remove filters from reply content and topic title to prevent content 633 // from being encoded with HTML entities, wrapped in paragraph tags, etc... 634 remove_all_filters( 'bbp_get_topic_content' ); 635 remove_all_filters( 'bbp_get_topic_title' ); 636 637 // collect various pieces of information 638 $blog_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ); 639 $topic_title = strip_tags( bbp_get_topic_title( $topic_id ) ); 640 $topic_author_display_name = bbp_get_topic_author_display_name( $topic_id ); 641 $topic_url = get_permalink( $topic_id ); 642 $topic_content = strip_tags( bbp_get_topic_content( $topic_id ) ); 643 644 // subject 645 $subject = sprintf( __( "[%s Forums] New topic: \"%s\"", 'bbpress' ), $blog_name, $topic_title ); 646 $this->subject = apply_filters( 'bbp_forum_subscription_email_subject', $subject, $forum_id, $topic_id ); 647 648 // message 649 $message = sprintf( __( "%s wrote:\r\n\r\n%s\r\n\r\n\r\n-----------------------------------------\r\nRead this post online: %s\r\n\r\nIf you don't want to receive any more email notifications for this forum, please visit the above link and click \"Unsubscribe\" at the top of the page.", 'bbpress' ), $topic_author_display_name, $topic_content, $topic_url ); 650 $this->message = apply_filters( 'bbp_forum_subscription_email_message', $message, $forum_id, $topic_id ); 651 } 652 653 /** 654 * Factory 655 * 656 * @return object on success, null on failure 657 */ 658 public static function schedule_sending( $forum_id, $topic_id ) { 659 660 // general checks and parameter validation 661 if ( !bbp_is_subscriptions_active() || 662 !bbp_get_forum_id( $forum_id ) || 663 !bbp_is_topic_published( $topic_id ) ) { 664 return null; 665 } 666 667 // recipients 668 $user_ids = bbp_get_forum_subscribers( $forum_id, true ); 669 $user_ids = array_diff( $user_ids, array( bbp_get_topic_author_id( $topic_id ) ) ); 670 $user_ids = apply_filters( 'bbp_forum_subscription_user_ids', $user_ids ); 671 $recipients = parent::get_recipients( $user_ids ); 672 if ( !$recipients ) { 673 return null; 674 } 675 676 $notification = new BBP_Forum_Subscriber_Notification( $recipients, $forum_id, $topic_id ); 677 parent::schedule_wp_cron_event( $notification ); 678 } 679 } 680 /** 681 * Topic subscription notification 682 * 683 * @package bbPress 684 * @subpackage Classes 685 * 686 * @since bbPress (r) 687 * 688 * @uses BBP_Subscriber_Notification 689 */ 690 class BBP_Topic_Subscriber_Notification extends BBP_Subscriber_Notification { 691 692 protected function __construct( $recipients, $forum_id, $topic_id, $reply_id ) { 693 parent::__construct( $recipients ); 694 695 // Remove filters from reply content and topic title to prevent content 696 // from being encoded with HTML entities, wrapped in paragraph tags, etc... 697 remove_all_filters( 'bbp_get_reply_content' ); 698 remove_all_filters( 'bbp_get_topic_title' ); 699 700 // collect various pieces of information 701 $blog_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ); 702 $topic_title = strip_tags( bbp_get_topic_title( $topic_id ) ); 703 $reply_author_display_name = bbp_get_reply_author_display_name( $reply_id ); 704 $reply_url = bbp_get_reply_url( $reply_id ); 705 $reply_content = strip_tags( bbp_get_reply_content( $reply_id ) ); 706 707 // subject 708 $subject = sprintf( __( "[%s Forums] New reply to: \"%s\"", 'bbpress' ), $blog_name, $topic_title ); 709 $this->subject = apply_filters( 'bbp_topic_subscription_email_subject', $subject, $forum_id, $topic_id, $reply_id ); 710 711 // message 712 $message = sprintf( __( "%s replied:\r\n\r\n%s\r\n\r\n\r\n-----------------------------------------\r\nRead this post online: %s\r\n\r\nIf you don't want to receive any more email notifications for this topic, please visit the above link and click \"Unsubscribe\" at the top of the page.", 'bbpress' ), $reply_author_display_name, $reply_content, $reply_url ); 713 $this->message = apply_filters( 'bbp_topic_subscription_email_message', $message, $forum_id, $topic_id, $reply_id ); 714 } 715 716 /** 717 * Factory 718 * 719 * @return object on success, null on failure 720 */ 721 public static function schedule_sending( $forum_id, $topic_id, $reply_id ) { 722 723 // general checks and parameter validation 724 if ( !bbp_is_subscriptions_active() || 725 !bbp_get_forum_id( $forum_id ) || 726 !bbp_is_topic_published( $topic_id ) || 727 !bbp_is_reply_published( $reply_id ) ) { 728 return null; 729 } 730 731 // recipients 732 $user_ids = bbp_get_topic_subscribers( $topic_id, true ); 733 $user_ids = array_diff( $user_ids, array( bbp_get_reply_author_id( $reply_id ) ) ); 734 $user_ids = apply_filters( 'bbp_topic_subscription_user_ids', $user_ids ); 735 $recipients = parent::get_recipients( $user_ids ); 736 if ( !$recipients ) { 737 return null; 738 } 739 740 $notification = new BBP_Topic_Subscriber_Notification( $recipients, $forum_id, $topic_id, $reply_id ); 741 parent::schedule_wp_cron_event( $notification ); 742 } 743 } 744 endif; // class_exists check -
includes/common/functions.php
1000 1000 /** Subscriptions *************************************************************/ 1001 1001 1002 1002 /** 1003 * Get the "Do Not Reply" email address to use when sending subscription emails.1004 *1005 * We make some educated guesses here based on the home URL. Filters are1006 * available to customize this address further. In the future, we may consider1007 * using `admin_email` instead, though this is not normally publicized.1008 *1009 * We use `$_SERVER['SERVER_NAME']` here to mimic similar functionality in1010 * WordPress core. Previously, we used `get_home_url()` to use already validated1011 * user input, but it was causing issues in some installations.1012 *1013 * @since bbPress (r5409)1014 *1015 * @see wp_mail1016 * @see wp_notify_postauthor1017 * @link https://bbpress.trac.wordpress.org/ticket/26181018 *1019 * @return string1020 */1021 function bbp_get_do_not_reply_address() {1022 $sitename = strtolower( $_SERVER['SERVER_NAME'] );1023 if ( substr( $sitename, 0, 4 ) === 'www.' ) {1024 $sitename = substr( $sitename, 4 );1025 }1026 return apply_filters( 'bbp_get_do_not_reply_address', 'noreply@' . $sitename );1027 }1028 1029 /**1030 * Sends notification emails for new replies to subscribed topics1031 *1032 * Gets new post's ID and check if there are subscribed users to that topic, and1033 * if there are, send notifications1034 *1035 * Note: in bbPress 2.6, we've moved away from 1 email per subscriber to 1 email1036 * with everyone BCC'd. This may have negative repercussions for email services1037 * that limit the number of addresses in a BCC field (often to around 500.) In1038 * those cases, we recommend unhooking this function and creating your own1039 * custom emailer script.1040 *1041 * @since bbPress (r5413)1042 *1043 * @param int $reply_id ID of the newly made reply1044 * @param int $topic_id ID of the topic of the reply1045 * @param int $forum_id ID of the forum of the reply1046 * @param mixed $anonymous_data Array of anonymous user data1047 * @param int $reply_author ID of the topic author ID1048 *1049 * @uses bbp_is_subscriptions_active() To check if the subscriptions are active1050 * @uses bbp_get_reply_id() To validate the reply ID1051 * @uses bbp_get_topic_id() To validate the topic ID1052 * @uses bbp_get_forum_id() To validate the forum ID1053 * @uses bbp_get_reply() To get the reply1054 * @uses bbp_is_reply_published() To make sure the reply is published1055 * @uses bbp_get_topic_id() To validate the topic ID1056 * @uses bbp_get_topic() To get the reply's topic1057 * @uses bbp_is_topic_published() To make sure the topic is published1058 * @uses bbp_get_reply_author_display_name() To get the reply author's display name1059 * @uses do_action() Calls 'bbp_pre_notify_subscribers' with the reply id,1060 * topic id and user id1061 * @uses bbp_get_topic_subscribers() To get the topic subscribers1062 * @uses apply_filters() Calls 'bbp_subscription_mail_message' with the1063 * message, reply id, topic id and user id1064 * @uses apply_filters() Calls 'bbp_subscription_mail_title' with the1065 * topic title, reply id, topic id and user id1066 * @uses apply_filters() Calls 'bbp_subscription_mail_headers'1067 * @uses get_userdata() To get the user data1068 * @uses wp_mail() To send the mail1069 * @uses do_action() Calls 'bbp_post_notify_subscribers' with the reply id,1070 * topic id and user id1071 * @return bool True on success, false on failure1072 */1073 function bbp_notify_topic_subscribers( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = false, $reply_author = 0 ) {1074 1075 // Bail if subscriptions are turned off1076 if ( !bbp_is_subscriptions_active() ) {1077 return false;1078 }1079 1080 /** Validation ************************************************************/1081 1082 $reply_id = bbp_get_reply_id( $reply_id );1083 $topic_id = bbp_get_topic_id( $topic_id );1084 $forum_id = bbp_get_forum_id( $forum_id );1085 1086 /** Topic *****************************************************************/1087 1088 // Bail if topic is not published1089 if ( !bbp_is_topic_published( $topic_id ) ) {1090 return false;1091 }1092 1093 /** Reply *****************************************************************/1094 1095 // Bail if reply is not published1096 if ( !bbp_is_reply_published( $reply_id ) ) {1097 return false;1098 }1099 1100 // Poster name1101 $reply_author_name = bbp_get_reply_author_display_name( $reply_id );1102 1103 /** Mail ******************************************************************/1104 1105 // Remove filters from reply content and topic title to prevent content1106 // from being encoded with HTML entities, wrapped in paragraph tags, etc...1107 remove_all_filters( 'bbp_get_reply_content' );1108 remove_all_filters( 'bbp_get_topic_title' );1109 1110 // Strip tags from text and setup mail data1111 $topic_title = strip_tags( bbp_get_topic_title( $topic_id ) );1112 $reply_content = strip_tags( bbp_get_reply_content( $reply_id ) );1113 $reply_url = bbp_get_reply_url( $reply_id );1114 $blog_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );1115 1116 // For plugins to filter messages per reply/topic/user1117 $message = sprintf( __( '%1$s wrote:1118 1119 %2$s1120 1121 Post Link: %3$s1122 1123 -----------1124 1125 You are receiving this email because you subscribed to a forum topic.1126 1127 Login and visit the topic to unsubscribe from these emails.', 'bbpress' ),1128 1129 $reply_author_name,1130 $reply_content,1131 $reply_url1132 );1133 1134 $message = apply_filters( 'bbp_subscription_mail_message', $message, $reply_id, $topic_id );1135 if ( empty( $message ) ) {1136 return;1137 }1138 1139 // For plugins to filter titles per reply/topic/user1140 $subject = apply_filters( 'bbp_subscription_mail_title', '[' . $blog_name . '] ' . $topic_title, $reply_id, $topic_id );1141 if ( empty( $subject ) ) {1142 return;1143 }1144 1145 /** Users *****************************************************************/1146 1147 // Get the noreply@ address1148 $no_reply = bbp_get_do_not_reply_address();1149 1150 // Setup "From" email address1151 $from_email = apply_filters( 'bbp_subscription_from_email', $no_reply );1152 1153 // Setup the From header1154 $headers = array( 'From: ' . get_bloginfo( 'name' ) . ' <' . $from_email . '>' );1155 1156 // Get topic subscribers and bail if empty1157 $user_ids = bbp_get_topic_subscribers( $topic_id, true );1158 1159 // Dedicated filter to manipulate user ID's to send emails to1160 $user_ids = apply_filters( 'bbp_topic_subscription_user_ids', $user_ids );1161 if ( empty( $user_ids ) ) {1162 return false;1163 }1164 1165 // Loop through users1166 foreach ( (array) $user_ids as $user_id ) {1167 1168 // Don't send notifications to the person who made the post1169 if ( !empty( $reply_author ) && (int) $user_id === (int) $reply_author ) {1170 continue;1171 }1172 1173 // Get email address of subscribed user1174 $headers[] = 'Bcc: ' . get_userdata( $user_id )->user_email;1175 }1176 1177 /** Send it ***************************************************************/1178 1179 // Custom headers1180 $headers = apply_filters( 'bbp_subscription_mail_headers', $headers );1181 $to_email = apply_filters( 'bbp_subscription_to_email', $no_reply );1182 1183 do_action( 'bbp_pre_notify_subscribers', $reply_id, $topic_id, $user_ids );1184 1185 // Send notification email1186 wp_mail( $to_email, $subject, $message, $headers );1187 1188 do_action( 'bbp_post_notify_subscribers', $reply_id, $topic_id, $user_ids );1189 1190 return true;1191 }1192 1193 /**1194 1003 * Sends notification emails for new topics to subscribed forums 1195 1004 * 1196 1005 * Gets new post's ID and check if there are subscribed users to that forum, and 1197 1006 * if there are, send notifications 1198 1007 * 1199 * Note: in bbPress 2.6, we've moved away from 1 email per subscriber to 1 email1200 * with everyone BCC'd. This may have negative repercussions for email services1201 * that limit the number of addresses in a BCC field (often to around 500.) In1202 * those cases, we recommend unhooking this function and creating your own1203 * custom emailer script.1204 *1205 1008 * @since bbPress (r5156) 1206 1009 * 1207 1010 * @param int $topic_id ID of the newly made reply … … 1210 1013 * @param int $topic_author ID of the topic author ID 1211 1014 * 1212 1015 * @uses bbp_is_subscriptions_active() To check if the subscriptions are active 1213 * @uses bbp_get_topic_id() To validate the topic ID1214 * @uses bbp_get_forum_id() To validate the forum ID1215 1016 * @uses bbp_is_topic_published() To make sure the topic is published 1216 * @uses bbp_get_forum_subscribers() To get the forum subscribers 1217 * @uses bbp_get_topic_author_display_name() To get the topic author's display name 1218 * @uses do_action() Calls 'bbp_pre_notify_forum_subscribers' with the topic id, 1219 * forum id and user id 1220 * @uses apply_filters() Calls 'bbp_forum_subscription_mail_message' with the 1221 * message, topic id, forum id and user id 1222 * @uses apply_filters() Calls 'bbp_forum_subscription_mail_title' with the 1223 * topic title, topic id, forum id and user id 1224 * @uses apply_filters() Calls 'bbp_forum_subscription_mail_headers' 1225 * @uses get_userdata() To get the user data 1226 * @uses wp_mail() To send the mail 1227 * @uses do_action() Calls 'bbp_post_notify_forum_subscribers' with the topic, 1228 * id, forum id and user id 1017 * @uses BBP_Topic_Subscriber_Notification to notify subscribers 1018 * 1229 1019 * @return bool True on success, false on failure 1230 1020 */ 1231 1021 function bbp_notify_forum_subscribers( $topic_id = 0, $forum_id = 0, $anonymous_data = false, $topic_author = 0 ) { 1232 1233 // Bail if subscriptions are turned off 1234 if ( !bbp_is_subscriptions_active() ) { 1235 return false; 1236 } 1237 1238 /** Validation ************************************************************/ 1239 1240 $topic_id = bbp_get_topic_id( $topic_id ); 1241 $forum_id = bbp_get_forum_id( $forum_id ); 1242 1243 /** 1244 * Necessary for backwards compatibility 1245 * 1246 * @see https://bbpress.trac.wordpress.org/ticket/2620 1247 */ 1248 $user_id = 0; 1249 1250 /** Topic *****************************************************************/ 1251 1252 // Bail if topic is not published 1253 if ( ! bbp_is_topic_published( $topic_id ) ) { 1254 return false; 1255 } 1256 1257 // Poster name 1258 $topic_author_name = bbp_get_topic_author_display_name( $topic_id ); 1259 1260 /** Mail ******************************************************************/ 1261 1262 // Remove filters from reply content and topic title to prevent content 1263 // from being encoded with HTML entities, wrapped in paragraph tags, etc... 1264 remove_all_filters( 'bbp_get_topic_content' ); 1265 remove_all_filters( 'bbp_get_topic_title' ); 1266 1267 // Strip tags from text and setup mail data 1268 $topic_title = strip_tags( bbp_get_topic_title( $topic_id ) ); 1269 $topic_content = strip_tags( bbp_get_topic_content( $topic_id ) ); 1270 $topic_url = get_permalink( $topic_id ); 1271 $blog_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ); 1272 1273 // For plugins to filter messages per reply/topic/user 1274 $message = sprintf( __( '%1$s wrote: 1275 1276 %2$s 1277 1278 Topic Link: %3$s 1279 1280 ----------- 1281 1282 You are receiving this email because you subscribed to a forum. 1283 1284 Login and visit the topic to unsubscribe from these emails.', 'bbpress' ), 1285 1286 $topic_author_name, 1287 $topic_content, 1288 $topic_url 1289 ); 1290 1291 $message = apply_filters( 'bbp_forum_subscription_mail_message', $message, $topic_id, $forum_id, $user_id ); 1292 if ( empty( $message ) ) { 1293 return; 1294 } 1295 1296 // For plugins to filter titles per reply/topic/user 1297 $subject = apply_filters( 'bbp_forum_subscription_mail_title', '[' . $blog_name . '] ' . $topic_title, $topic_id, $forum_id, $user_id ); 1298 if ( empty( $subject ) ) { 1299 return; 1300 } 1301 1302 /** User ******************************************************************/ 1303 1304 // Get the noreply@ address 1305 $no_reply = bbp_get_do_not_reply_address(); 1306 1307 // Setup "From" email address 1308 $from_email = apply_filters( 'bbp_subscription_from_email', $no_reply ); 1309 1310 // Setup the From header 1311 $headers = array( 'From: ' . get_bloginfo( 'name' ) . ' <' . $from_email . '>' ); 1312 1313 // Get topic subscribers and bail if empty 1314 $user_ids = bbp_get_forum_subscribers( $forum_id, true ); 1315 1316 // Dedicated filter to manipulate user ID's to send emails to 1317 $user_ids = apply_filters( 'bbp_forum_subscription_user_ids', $user_ids ); 1318 if ( empty( $user_ids ) ) { 1319 return false; 1320 } 1321 1322 // Loop through users 1323 foreach ( (array) $user_ids as $user_id ) { 1324 1325 // Don't send notifications to the person who made the post 1326 if ( !empty( $topic_author ) && (int) $user_id === (int) $topic_author ) { 1327 continue; 1328 } 1329 1330 // Get email address of subscribed user 1331 $headers[] = 'Bcc: ' . get_userdata( $user_id )->user_email; 1332 } 1333 1334 /** Send it ***************************************************************/ 1335 1336 // Custom headers 1337 $headers = apply_filters( 'bbp_subscription_mail_headers', $headers ); 1338 $to_email = apply_filters( 'bbp_subscription_to_email', $no_reply ); 1339 1340 do_action( 'bbp_pre_notify_forum_subscribers', $topic_id, $forum_id, $user_ids ); 1341 1342 // Send notification email 1343 wp_mail( $to_email, $subject, $message, $headers ); 1344 1345 do_action( 'bbp_post_notify_forum_subscribers', $topic_id, $forum_id, $user_ids ); 1346 1347 return true; 1022 return BBP_Forum_Subscriber_Notification::schedule_sending( $forum_id, $topic_id ); 1348 1023 } 1349 1024 1350 1025 /** … … 1367 1042 return bbp_notify_topic_subscribers( $reply_id, $topic_id, $forum_id, $anonymous_data, $reply_author ); 1368 1043 } 1369 1044 1045 /** 1046 * Sends notification emails for new replies to subscribed topics 1047 * 1048 * Gets new post's ID and check if there are subscribed users to that topic, and 1049 * if there are, send notifications 1050 * 1051 * @since bbPress (r5413) 1052 * 1053 * @param int $reply_id ID of the newly made reply 1054 * @param int $topic_id ID of the topic of the reply 1055 * @param int $forum_id ID of the forum of the reply 1056 * @param mixed $anonymous_data Array of anonymous user data 1057 * @param int $reply_author ID of the topic author ID 1058 * 1059 * @uses bbp_is_subscriptions_active() To check if the subscriptions are active 1060 * @uses bbp_is_reply_published() To make sure the reply is published 1061 * @uses BBP_Topic_Subscriber_Notification to notify subscribers 1062 * 1063 * @return bool True on success, false on failure 1064 */ 1065 function bbp_notify_topic_subscribers( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = false, $reply_author = 0 ) { 1066 return BBP_Topic_Subscriber_Notification::schedule_sending( $forum_id, $topic_id, $reply_id ); 1067 } 1068 1370 1069 /** Login *********************************************************************/ 1371 1070 1372 1071 /** -
includes/core/actions.php
224 224 add_action( 'bbp_delete_topic', 'bbp_remove_topic_from_all_favorites' ); 225 225 226 226 // Subscriptions 227 add_action( 'bbp_spam_topic', 'bbp_remove_topic_from_all_subscriptions' ); 228 add_action( 'bbp_trash_topic', 'bbp_remove_topic_from_all_subscriptions' ); 229 add_action( 'bbp_delete_topic', 'bbp_remove_topic_from_all_subscriptions' ); 230 add_action( 'bbp_trash_forum', 'bbp_remove_forum_from_all_subscriptions' ); 231 add_action( 'bbp_delete_forum', 'bbp_remove_forum_from_all_subscriptions' ); 232 add_action( 'bbp_new_reply', 'bbp_notify_subscribers', 11, 5 ); 233 add_action( 'bbp_new_topic', 'bbp_notify_forum_subscribers', 11, 4 ); 227 add_action( 'bbp_subscription_email_cron', array( 'BBP_Subscriber_Notification', 'send' ), 10, 1 ); 228 add_action( 'bbp_spam_topic', 'bbp_remove_topic_from_all_subscriptions' ); 229 add_action( 'bbp_trash_topic', 'bbp_remove_topic_from_all_subscriptions' ); 230 add_action( 'bbp_delete_topic', 'bbp_remove_topic_from_all_subscriptions' ); 231 add_action( 'bbp_trash_forum', 'bbp_remove_forum_from_all_subscriptions' ); 232 add_action( 'bbp_delete_forum', 'bbp_remove_forum_from_all_subscriptions' ); 233 add_action( 'bbp_new_reply', 'bbp_notify_subscribers', 11, 5 ); 234 add_action( 'bbp_new_topic', 'bbp_notify_forum_subscribers', 11, 4 ); 234 235 235 236 // Sticky 236 237 add_action( 'bbp_spam_topic', 'bbp_unstick_topic' ); … … 338 339 // Maybe convert the users password 339 340 add_action( 'bbp_login_form_login', 'bbp_user_maybe_convert_pass' ); 340 341 341 add_action( 'bbp_activation', 'bbp_add_activation_redirect' ); 342 No newline at end of file 342 add_action( 'bbp_activation', 'bbp_add_activation_redirect' );