[ Index ] |
PHP Cross Reference of BBPress |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * bbPress Actions 5 * 6 * This file contains the actions that are used through-out bbPress. They are 7 * consolidated here to make searching for them easier, and to help developers 8 * understand at a glance the order in which things occur. 9 * 10 * There are a few common places that additional actions can currently be found 11 * 12 * - bbPress: In {@link bbPress::setup_actions()} in bbpress.php 13 * - Admin: More in {@link BBP_Admin::setup_actions()} in admin.php 14 * 15 * @package bbPress 16 * @subpackage Core 17 * 18 * @see /core/filters.php 19 */ 20 21 // Exit if accessed directly 22 defined( 'ABSPATH' ) || exit; 23 24 /** 25 * Attach bbPress to WordPress 26 * 27 * bbPress uses its own internal actions to help aid in third-party plugin 28 * development, and to limit the amount of potential future code changes when 29 * updates to WordPress core occur. 30 * 31 * These actions exist to create the concept of 'plugin dependencies'. They 32 * provide a safe way for plugins to execute code *only* when bbPress is 33 * installed and activated, without needing to do complicated guesswork. 34 * 35 * For more information on how this works, see the 'Plugin Dependency' section 36 * near the bottom of this file. 37 * 38 * v--WordPress Actions v--bbPress Sub-actions 39 */ 40 add_action( 'plugins_loaded', 'bbp_loaded', 10 ); 41 add_action( 'init', 'bbp_init', 0 ); // Early for bbp_register 42 add_action( 'parse_query', 'bbp_parse_query', 2 ); // Early for overrides 43 add_action( 'generate_rewrite_rules', 'bbp_generate_rewrite_rules', 10 ); 44 add_action( 'after_setup_theme', 'bbp_after_setup_theme', 10 ); 45 add_action( 'setup_theme', 'bbp_setup_theme', 10 ); 46 add_action( 'set_current_user', 'bbp_setup_current_user', 10 ); 47 add_action( 'profile_update', 'bbp_profile_update', 10, 2 ); // user_id and old_user_data 48 add_action( 'user_register', 'bbp_user_register', 10 ); 49 add_action( 'login_form_login', 'bbp_login_form_login', 10 ); 50 add_action( 'template_redirect', 'bbp_template_redirect', 8 ); // Before BuddyPress's 10 [BB2225] 51 add_action( 'widgets_init', 'bbp_widgets_init', 10 ); 52 add_action( 'wp_roles_init', 'bbp_roles_init', 10 ); 53 add_action( 'wp_enqueue_scripts', 'bbp_enqueue_scripts', 10 ); 54 add_action( 'wp_head', 'bbp_head', 10 ); 55 add_action( 'wp_footer', 'bbp_footer', 10 ); 56 add_action( 'transition_post_status', 'bbp_transition_post_status', 10, 3 ); 57 58 /** 59 * bbp_loaded - Attached to 'plugins_loaded' above 60 * 61 * Attach various loader actions to the bbp_loaded action. 62 * The load order helps to execute code at the correct time. 63 * v---Load order 64 */ 65 add_action( 'bbp_loaded', 'bbp_constants', 2 ); 66 add_action( 'bbp_loaded', 'bbp_boot_strap_globals', 4 ); 67 add_action( 'bbp_loaded', 'bbp_includes', 6 ); 68 add_action( 'bbp_loaded', 'bbp_setup_globals', 8 ); 69 add_action( 'bbp_loaded', 'bbp_setup_option_filters', 10 ); 70 add_action( 'bbp_loaded', 'bbp_setup_user_option_filters', 12 ); 71 add_action( 'bbp_loaded', 'bbp_pre_load_options', 14 ); 72 73 /** 74 * bbp_init - Attached to 'init' above 75 * 76 * Attach various initialization actions to the init action. 77 * The load order helps to execute code at the correct time. 78 * v---Load order 79 */ 80 add_action( 'bbp_init', 'bbp_load_textdomain', 0 ); 81 add_action( 'bbp_init', 'bbp_register', 10 ); 82 add_action( 'bbp_init', 'bbp_add_rewrite_tags', 20 ); 83 add_action( 'bbp_init', 'bbp_add_rewrite_rules', 30 ); 84 add_action( 'bbp_init', 'bbp_add_permastructs', 40 ); 85 add_action( 'bbp_init', 'bbp_setup_engagements', 50 ); 86 add_action( 'bbp_init', 'bbp_ready', 999 ); 87 88 /** 89 * bbp_setup_theme - Attached to 'setup_theme' above 90 * 91 * Attach various theme related actions to the setup_theme action. 92 * The load order helps to execute code at the correct time. 93 * v---Load order 94 */ 95 add_action( 'bbp_setup_theme', 'bbp_register_theme_packages', 2 ); // Lower than 5 96 97 /** 98 * bbp_roles_init - Attached to 'wp_roles_init' above 99 * 100 * Attach various role related actions to the wp_roles_init action. 101 * The load order helps to execute code at the correct time. 102 * v---Load order 103 */ 104 add_action( 'bbp_roles_init', 'bbp_add_forums_roles', 8 ); 105 106 /** 107 * When setting up the current user, make sure they have a role for the forums. 108 * 109 * This is multisite aware, thanks to bbp_filter_user_roles_option(), hooked to 110 * the 'bbp_loaded' action above. 111 */ 112 add_action( 'bbp_setup_current_user', 'bbp_set_current_user_default_role' ); 113 114 /** 115 * bbp_register - Attached to 'init' above on 0 priority 116 * 117 * Attach various initialization actions early to the init action. 118 * The load order helps to execute code at the correct time. 119 * v---Load order 120 */ 121 add_action( 'bbp_register', 'bbp_register_post_types', 2 ); 122 add_action( 'bbp_register', 'bbp_register_post_statuses', 4 ); 123 add_action( 'bbp_register', 'bbp_register_taxonomies', 6 ); 124 add_action( 'bbp_register', 'bbp_register_views', 8 ); 125 add_action( 'bbp_register', 'bbp_register_shortcodes', 10 ); 126 add_action( 'bbp_register', 'bbp_register_meta', 12 ); 127 128 // Autoembeds 129 add_action( 'bbp_init', 'bbp_reply_content_autoembed', 8 ); 130 add_action( 'bbp_init', 'bbp_topic_content_autoembed', 8 ); 131 132 // <body> class swap from "bbp-no-js" to "bbp-js" 133 add_action( 'wp_body_open', 'bbp_swap_no_js_body_class' ); 134 add_action( 'bbp_footer', 'bbp_swap_no_js_body_class' ); 135 136 /** 137 * bbp_ready - attached to end 'bbp_init' above 138 * 139 * Attach actions to the ready action after bbPress has fully initialized. 140 * The load order helps to execute code at the correct time. 141 * v---Load order 142 */ 143 add_action( 'bbp_ready', 'bbp_setup_akismet', 2 ); // Spam prevention for topics and replies 144 145 // Setup BuddyPress using its own hook 146 add_action( 'bp_include', 'bbp_setup_buddypress', 10 ); // Social network integration 147 148 // Try to load the bbpress-functions.php file from the active themes 149 add_action( 'bbp_after_setup_theme', 'bbp_load_theme_functions', 10 ); 150 151 // Widgets 152 add_action( 'bbp_widgets_init', array( 'BBP_Login_Widget', 'register_widget' ), 10 ); 153 add_action( 'bbp_widgets_init', array( 'BBP_Views_Widget', 'register_widget' ), 10 ); 154 add_action( 'bbp_widgets_init', array( 'BBP_Search_Widget', 'register_widget' ), 10 ); 155 add_action( 'bbp_widgets_init', array( 'BBP_Forums_Widget', 'register_widget' ), 10 ); 156 add_action( 'bbp_widgets_init', array( 'BBP_Topics_Widget', 'register_widget' ), 10 ); 157 add_action( 'bbp_widgets_init', array( 'BBP_Replies_Widget', 'register_widget' ), 10 ); 158 add_action( 'bbp_widgets_init', array( 'BBP_Stats_Widget', 'register_widget' ), 10 ); 159 160 // Notices 161 add_action( 'bbp_template_notices', 'bbp_template_notices', 20 ); 162 add_action( 'bbp_template_notices', 'bbp_login_notices' ); 163 add_action( 'bbp_template_notices', 'bbp_topic_notices' ); 164 add_action( 'bbp_template_notices', 'bbp_notice_edit_user_success' ); 165 add_action( 'bbp_template_notices', 'bbp_notice_edit_user_pending_email' ); 166 add_action( 'bbp_template_notices', 'bbp_notice_edit_user_is_super_admin', 2 ); 167 168 // Always exclude private/hidden forums if needed 169 add_action( 'pre_get_posts', 'bbp_pre_get_posts_normalize_forum_visibility', 4 ); 170 171 // Before Delete/Trash/Untrash Forum 172 add_action( 'wp_trash_post', 'bbp_trash_forum' ); 173 add_action( 'trash_post', 'bbp_trash_forum' ); 174 add_action( 'untrash_post', 'bbp_untrash_forum' ); 175 add_action( 'before_delete_post', 'bbp_delete_forum' ); 176 177 // After Deleted/Trashed/Untrashed Forum 178 add_action( 'trashed_post', 'bbp_trashed_forum' ); 179 add_action( 'untrashed_post', 'bbp_untrashed_forum' ); 180 add_action( 'deleted_post', 'bbp_deleted_forum' ); 181 182 // Auto trash/untrash/delete a forums topics 183 add_action( 'bbp_delete_forum', 'bbp_delete_forum_topics', 10 ); 184 add_action( 'bbp_trash_forum', 'bbp_trash_forum_topics', 10 ); 185 add_action( 'bbp_untrash_forum', 'bbp_untrash_forum_topics', 10 ); 186 187 // New/Edit Forum 188 add_action( 'bbp_new_forum', 'bbp_update_forum', 10 ); 189 add_action( 'bbp_edit_forum', 'bbp_update_forum', 10 ); 190 191 // Save forum extra metadata 192 add_action( 'bbp_new_forum_post_extras', 'bbp_save_forum_extras', 2 ); 193 add_action( 'bbp_edit_forum_post_extras', 'bbp_save_forum_extras', 2 ); 194 add_action( 'bbp_forum_attributes_metabox_save', 'bbp_save_forum_extras', 2 ); 195 196 // New/Edit Reply 197 add_action( 'bbp_new_reply', 'bbp_update_reply', 10, 7 ); 198 add_action( 'bbp_edit_reply', 'bbp_update_reply', 10, 7 ); 199 200 // Before Delete/Trash/Untrash Reply 201 add_action( 'wp_trash_post', 'bbp_trash_reply' ); 202 add_action( 'trash_post', 'bbp_trash_reply' ); 203 add_action( 'untrash_post', 'bbp_untrash_reply' ); 204 add_action( 'before_delete_post', 'bbp_delete_reply' ); 205 206 // After Deleted/Trashed/Untrashed Reply 207 add_action( 'trashed_post', 'bbp_trashed_reply' ); 208 add_action( 'untrashed_post', 'bbp_untrashed_reply' ); 209 add_action( 'deleted_post', 'bbp_deleted_reply' ); 210 211 // New/Edit Topic 212 add_action( 'bbp_new_topic', 'bbp_update_topic', 10, 5 ); 213 add_action( 'bbp_edit_topic', 'bbp_update_topic', 10, 5 ); 214 215 // Split/Merge Topic 216 add_action( 'bbp_merged_topic', 'bbp_merge_topic_count', 1, 3 ); 217 add_action( 'bbp_post_split_topic', 'bbp_split_topic_count', 1, 3 ); 218 219 // Move Reply 220 add_action( 'bbp_post_move_reply', 'bbp_move_reply_count', 1, 3 ); 221 222 // Before Delete/Trash/Untrash Topic 223 add_action( 'wp_trash_post', 'bbp_trash_topic' ); 224 add_action( 'trash_post', 'bbp_trash_topic' ); 225 add_action( 'untrash_post', 'bbp_untrash_topic' ); 226 add_action( 'before_delete_post', 'bbp_delete_topic' ); 227 228 // After Deleted/Trashed/Untrashed Topic 229 add_action( 'trashed_post', 'bbp_trashed_topic' ); 230 add_action( 'untrashed_post', 'bbp_untrashed_topic' ); 231 add_action( 'deleted_post', 'bbp_deleted_topic' ); 232 233 // Favorites 234 add_action( 'bbp_spam_topic', 'bbp_remove_topic_from_all_favorites' ); 235 add_action( 'bbp_trash_topic', 'bbp_remove_topic_from_all_favorites' ); 236 add_action( 'bbp_delete_topic', 'bbp_remove_topic_from_all_favorites' ); 237 238 // Subscriptions 239 add_action( 'bbp_spam_topic', 'bbp_remove_topic_from_all_subscriptions' ); 240 add_action( 'bbp_trash_topic', 'bbp_remove_topic_from_all_subscriptions' ); 241 add_action( 'bbp_delete_topic', 'bbp_remove_topic_from_all_subscriptions' ); 242 add_action( 'bbp_trash_forum', 'bbp_remove_forum_from_all_subscriptions' ); 243 add_action( 'bbp_delete_forum', 'bbp_remove_forum_from_all_subscriptions' ); 244 245 // Subscription notifications 246 add_action( 'bbp_new_reply', 'bbp_notify_topic_subscribers', 11, 5 ); 247 add_action( 'bbp_new_topic', 'bbp_notify_forum_subscribers', 11, 4 ); 248 249 // Sticky 250 add_action( 'bbp_stick_topic', 'bbp_unstick_topic' ); 251 add_action( 'bbp_unapprove_topic', 'bbp_unstick_topic' ); 252 add_action( 'bbp_spam_topic', 'bbp_unstick_topic' ); 253 add_action( 'bbp_trash_topic', 'bbp_unstick_topic' ); 254 add_action( 'bbp_delete_topic', 'bbp_unstick_topic' ); 255 256 // Update topic branch 257 add_action( 'bbp_trashed_topic', 'bbp_update_topic_walker' ); 258 add_action( 'bbp_untrashed_topic', 'bbp_update_topic_walker' ); 259 add_action( 'bbp_deleted_topic', 'bbp_update_topic_walker' ); 260 add_action( 'bbp_spammed_topic', 'bbp_update_topic_walker' ); 261 add_action( 'bbp_unspammed_topic', 'bbp_update_topic_walker' ); 262 add_action( 'bbp_approved_topic', 'bbp_update_topic_walker' ); 263 add_action( 'bbp_unapproved_topic', 'bbp_update_topic_walker' ); 264 265 // Update reply branch 266 add_action( 'bbp_trashed_reply', 'bbp_update_reply_walker' ); 267 add_action( 'bbp_untrashed_reply', 'bbp_update_reply_walker' ); 268 add_action( 'bbp_deleted_reply', 'bbp_update_reply_walker' ); 269 add_action( 'bbp_spammed_reply', 'bbp_update_reply_walker' ); 270 add_action( 'bbp_unspammed_reply', 'bbp_update_reply_walker' ); 271 add_action( 'bbp_approved_reply', 'bbp_update_reply_walker' ); 272 add_action( 'bbp_unapproved_reply', 'bbp_update_reply_walker' ); 273 274 // Update forum reply counts 275 add_action( 'bbp_new_reply', 'bbp_increase_forum_reply_count' ); 276 add_action( 'bbp_untrashed_reply', 'bbp_increase_forum_reply_count' ); 277 add_action( 'bbp_unspammed_reply', 'bbp_increase_forum_reply_count' ); 278 add_action( 'bbp_approved_reply', 'bbp_increase_forum_reply_count' ); 279 add_action( 'bbp_trash_reply', 'bbp_decrease_forum_reply_count' ); 280 add_action( 'bbp_spam_reply', 'bbp_decrease_forum_reply_count' ); 281 add_action( 'bbp_unapprove_reply', 'bbp_decrease_forum_reply_count' ); 282 283 // Update forum hidden reply counts 284 add_action( 'bbp_trashed_reply', 'bbp_increase_forum_reply_count_hidden' ); 285 add_action( 'bbp_spammed_reply', 'bbp_increase_forum_reply_count_hidden' ); 286 add_action( 'bbp_unapproved_reply', 'bbp_increase_forum_reply_count_hidden' ); 287 add_action( 'bbp_untrash_reply', 'bbp_decrease_forum_reply_count_hidden' ); 288 add_action( 'bbp_unspam_reply', 'bbp_decrease_forum_reply_count_hidden' ); 289 add_action( 'bbp_approve_reply', 'bbp_decrease_forum_reply_count_hidden' ); 290 add_action( 'bbp_delete_reply', 'bbp_decrease_forum_reply_count_hidden' ); 291 292 // Update forum topic counts 293 add_action( 'bbp_new_topic', 'bbp_increase_forum_topic_count' ); 294 add_action( 'bbp_untrashed_topic', 'bbp_increase_forum_topic_count' ); 295 add_action( 'bbp_unspammed_topic', 'bbp_increase_forum_topic_count' ); 296 add_action( 'bbp_approved_topic', 'bbp_increase_forum_topic_count' ); 297 add_action( 'bbp_trash_topic', 'bbp_decrease_forum_topic_count' ); 298 add_action( 'bbp_spam_topic', 'bbp_decrease_forum_topic_count' ); 299 add_action( 'bbp_unapprove_topic', 'bbp_decrease_forum_topic_count' ); 300 301 // Update forum hidden topic counts 302 add_action( 'bbp_trashed_topic', 'bbp_increase_forum_topic_count_hidden' ); 303 add_action( 'bbp_spammed_topic', 'bbp_increase_forum_topic_count_hidden' ); 304 add_action( 'bbp_unapproved_topic', 'bbp_increase_forum_topic_count_hidden' ); 305 add_action( 'bbp_untrash_topic', 'bbp_decrease_forum_topic_count_hidden' ); 306 add_action( 'bbp_unspam_topic', 'bbp_decrease_forum_topic_count_hidden' ); 307 add_action( 'bbp_approve_topic', 'bbp_decrease_forum_topic_count_hidden' ); 308 add_action( 'bbp_delete_topic', 'bbp_decrease_forum_topic_count_hidden' ); 309 310 // Update topic reply counts 311 add_action( 'bbp_new_reply', 'bbp_increase_topic_reply_count' ); 312 add_action( 'bbp_untrashed_reply', 'bbp_increase_topic_reply_count' ); 313 add_action( 'bbp_unspammed_reply', 'bbp_increase_topic_reply_count' ); 314 add_action( 'bbp_approved_reply', 'bbp_increase_topic_reply_count' ); 315 add_action( 'bbp_trash_reply', 'bbp_decrease_topic_reply_count' ); 316 add_action( 'bbp_spam_reply', 'bbp_decrease_topic_reply_count' ); 317 add_action( 'bbp_unapprove_reply', 'bbp_decrease_topic_reply_count' ); 318 319 // Update topic hidden reply counts 320 add_action( 'bbp_trashed_reply', 'bbp_increase_topic_reply_count_hidden' ); 321 add_action( 'bbp_unapproved_reply', 'bbp_increase_topic_reply_count_hidden' ); 322 add_action( 'bbp_spammed_reply', 'bbp_increase_topic_reply_count_hidden' ); 323 add_action( 'bbp_untrash_reply', 'bbp_decrease_topic_reply_count_hidden' ); 324 add_action( 'bbp_unspam_reply', 'bbp_decrease_topic_reply_count_hidden' ); 325 add_action( 'bbp_approve_reply', 'bbp_decrease_topic_reply_count_hidden' ); 326 add_action( 'bbp_delete_reply', 'bbp_decrease_topic_reply_count_hidden' ); 327 328 // Update forum reply counts for approved/unapproved topics 329 add_action( 'bbp_approved_topic', 'bbp_approved_unapproved_topic_update_forum_reply_count' ); 330 add_action( 'bbp_unapproved_topic', 'bbp_approved_unapproved_topic_update_forum_reply_count' ); 331 332 // Users topic & reply counts 333 add_action( 'bbp_new_topic', 'bbp_increase_user_topic_count' ); 334 add_action( 'bbp_new_reply', 'bbp_increase_user_reply_count' ); 335 add_action( 'bbp_untrash_topic', 'bbp_increase_user_topic_count' ); 336 add_action( 'bbp_untrash_reply', 'bbp_increase_user_reply_count' ); 337 add_action( 'bbp_unspam_topic', 'bbp_increase_user_topic_count' ); 338 add_action( 'bbp_unspam_reply', 'bbp_increase_user_reply_count' ); 339 add_action( 'bbp_trash_topic', 'bbp_decrease_user_topic_count' ); 340 add_action( 'bbp_trash_reply', 'bbp_decrease_user_reply_count' ); 341 add_action( 'bbp_spam_topic', 'bbp_decrease_user_topic_count' ); 342 add_action( 'bbp_spam_reply', 'bbp_decrease_user_reply_count' ); 343 344 // Topic status transition helpers for replies 345 add_action( 'bbp_trash_topic', 'bbp_trash_topic_replies' ); 346 add_action( 'bbp_untrash_topic', 'bbp_untrash_topic_replies' ); 347 add_action( 'bbp_delete_topic', 'bbp_delete_topic_replies' ); 348 add_action( 'bbp_spam_topic', 'bbp_spam_topic_replies' ); 349 add_action( 'bbp_unspam_topic', 'bbp_unspam_topic_replies' ); 350 351 // Topic engagements on user creation 352 add_action( 'bbp_new_topic', 'bbp_update_topic_engagements', 20 ); 353 add_action( 'bbp_new_reply', 'bbp_update_topic_engagements', 20 ); 354 355 add_action( 'bbp_new_reply', 'bbp_update_topic_voice_count', 30 ); 356 add_action( 'bbp_new_topic', 'bbp_update_topic_voice_count', 30 ); 357 358 // Topic/reply counts on code insert (unit tests) 359 add_action( 'bbp_insert_topic', 'bbp_insert_topic_update_counts', 10, 2 ); 360 add_action( 'bbp_insert_reply', 'bbp_insert_reply_update_counts', 10, 3 ); 361 362 // Topic engagements on code insert (unit tests) 363 add_action( 'bbp_insert_topic', 'bbp_update_topic_engagements', 20 ); 364 add_action( 'bbp_insert_reply', 'bbp_update_topic_engagements', 20 ); 365 366 // Topic engagement counts on code insert (unit tests) 367 add_action( 'bbp_insert_topic', 'bbp_update_topic_voice_count', 30 ); 368 add_action( 'bbp_insert_reply', 'bbp_update_topic_voice_count', 30 ); 369 370 // Recalculate engagements 371 add_action( 'bbp_trashed_reply', 'bbp_recalculate_topic_engagements' ); 372 add_action( 'bbp_untrashed_reply', 'bbp_recalculate_topic_engagements' ); 373 add_action( 'bbp_spammed_reply', 'bbp_recalculate_topic_engagements' ); 374 add_action( 'bbp_unspammed_reply', 'bbp_recalculate_topic_engagements' ); 375 add_action( 'bbp_approved_reply', 'bbp_recalculate_topic_engagements' ); 376 add_action( 'bbp_unapproved_reply', 'bbp_recalculate_topic_engagements' ); 377 add_action( 'bbp_deleted_reply', 'bbp_recalculate_topic_engagements' ); 378 add_action( 'bbp_trashed_topic', 'bbp_recalculate_topic_engagements' ); 379 add_action( 'bbp_untrashed_topic', 'bbp_recalculate_topic_engagements' ); 380 add_action( 'bbp_spammed_topic', 'bbp_recalculate_topic_engagements' ); 381 add_action( 'bbp_unspammed_topic', 'bbp_recalculate_topic_engagements' ); 382 add_action( 'bbp_approved_topic', 'bbp_recalculate_topic_engagements' ); 383 add_action( 'bbp_unapproved_topic', 'bbp_recalculate_topic_engagements' ); 384 add_action( 'bbp_deleted_topic', 'bbp_recalculate_topic_engagements' ); 385 386 // Update engagement counts 387 add_action( 'bbp_trashed_reply', 'bbp_update_topic_voice_count', 30 ); 388 add_action( 'bbp_untrashed_reply', 'bbp_update_topic_voice_count', 30 ); 389 add_action( 'bbp_spammed_reply', 'bbp_update_topic_voice_count', 30 ); 390 add_action( 'bbp_unspammed_reply', 'bbp_update_topic_voice_count', 30 ); 391 add_action( 'bbp_approved_reply', 'bbp_update_topic_voice_count', 30 ); 392 add_action( 'bbp_unapproved_reply', 'bbp_update_topic_voice_count', 30 ); 393 add_action( 'bbp_deleted_reply', 'bbp_update_topic_voice_count', 30 ); 394 add_action( 'bbp_trashed_topic', 'bbp_update_topic_voice_count', 30 ); 395 add_action( 'bbp_untrashed_topic', 'bbp_update_topic_voice_count', 30 ); 396 add_action( 'bbp_spammed_topic', 'bbp_update_topic_voice_count', 30 ); 397 add_action( 'bbp_unspammed_topic', 'bbp_update_topic_voice_count', 30 ); 398 add_action( 'bbp_approved_topic', 'bbp_update_topic_voice_count', 30 ); 399 add_action( 'bbp_unapproved_topic', 'bbp_update_topic_voice_count', 30 ); 400 add_action( 'bbp_deleted_topic', 'bbp_update_topic_voice_count', 30 ); 401 402 // User status 403 // @todo make these sub-actions 404 add_action( 'make_ham_user', 'bbp_make_ham_user' ); 405 add_action( 'make_spam_user', 'bbp_make_spam_user' ); 406 407 // User role 408 add_action( 'bbp_profile_update', 'bbp_profile_update_role' ); 409 410 // Hook WordPress admin actions to bbPress profiles on save 411 add_action( 'bbp_user_edit_after', 'bbp_user_edit_after' ); 412 413 // Clean bbPress post caches when WordPress's is cleaned 414 add_action( 'clean_post_cache', 'bbp_clean_post_cache', 10, 2 ); 415 416 // User Registration 417 add_action( 'added_existing_user', 'bbp_user_add_role_on_register', 10, 1 ); 418 add_action( 'bbp_user_register', 'bbp_user_add_role_on_register', 10, 1 ); 419 420 // Invite a New User 421 add_action( 'invite_user', 'bbp_user_add_role_on_invite', 10, 3 ); 422 423 // Multisite Activation (does not work in wp-activate.php) 424 add_action( 'wpmu_activate_user', 'bbp_user_add_role_on_activate', 10, 3 ); 425 426 /** 427 * bbPress needs to redirect the user around in a few different circumstances: 428 * 429 * 1. POST and GET requests 430 * 2. Accessing private or hidden content (forums/topics/replies) 431 * 3. Editing forums, topics, replies, users, and tags 432 * 4. bbPress specific AJAX requests 433 */ 434 add_action( 'bbp_template_redirect', 'bbp_forum_enforce_blocked', 1 ); 435 add_action( 'bbp_template_redirect', 'bbp_forum_enforce_hidden', 1 ); 436 add_action( 'bbp_template_redirect', 'bbp_forum_enforce_private', 1 ); 437 add_action( 'bbp_template_redirect', 'bbp_post_request', 10 ); 438 add_action( 'bbp_template_redirect', 'bbp_get_request', 10 ); 439 add_action( 'bbp_template_redirect', 'bbp_check_user_edit', 10 ); 440 add_action( 'bbp_template_redirect', 'bbp_check_forum_edit', 10 ); 441 add_action( 'bbp_template_redirect', 'bbp_check_topic_edit', 10 ); 442 add_action( 'bbp_template_redirect', 'bbp_check_reply_edit', 10 ); 443 add_action( 'bbp_template_redirect', 'bbp_check_topic_tag_edit', 10 ); 444 445 // Must be after bbp_template_include_theme_compat 446 add_action( 'bbp_template_redirect', 'bbp_remove_adjacent_posts', 10 ); 447 448 // Theme-side POST requests 449 add_action( 'bbp_post_request', 'bbp_do_ajax', 1 ); 450 add_action( 'bbp_post_request', 'bbp_edit_topic_tag_handler', 1 ); 451 add_action( 'bbp_post_request', 'bbp_edit_user_handler', 1 ); 452 add_action( 'bbp_post_request', 'bbp_edit_forum_handler', 1 ); 453 add_action( 'bbp_post_request', 'bbp_edit_reply_handler', 1 ); 454 add_action( 'bbp_post_request', 'bbp_edit_topic_handler', 1 ); 455 add_action( 'bbp_post_request', 'bbp_merge_topic_handler', 1 ); 456 add_action( 'bbp_post_request', 'bbp_split_topic_handler', 1 ); 457 add_action( 'bbp_post_request', 'bbp_move_reply_handler', 1 ); 458 add_action( 'bbp_post_request', 'bbp_new_forum_handler', 10 ); 459 add_action( 'bbp_post_request', 'bbp_new_reply_handler', 10 ); 460 add_action( 'bbp_post_request', 'bbp_new_topic_handler', 10 ); 461 462 // Theme-side GET requests 463 add_action( 'bbp_get_request', 'bbp_toggle_topic_handler', 1 ); 464 add_action( 'bbp_get_request', 'bbp_toggle_reply_handler', 1 ); 465 add_action( 'bbp_get_request', 'bbp_favorites_handler', 1 ); 466 add_action( 'bbp_get_request', 'bbp_subscriptions_handler', 1 ); 467 add_action( 'bbp_get_request', 'bbp_user_email_change_handler', 1 ); 468 add_action( 'bbp_get_request', 'bbp_search_results_redirect', 10 ); 469 470 // Maybe convert the users password 471 add_action( 'bbp_login_form_login', 'bbp_user_maybe_convert_pass' );
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sat Dec 21 01:00:52 2024 | Cross-referenced by PHPXref 0.7.1 |