bbp_update_reply( int $reply_id, int $topic_id, int $forum_id, array $anonymous_data = array(), int $author_id, bool $is_edit = false, int $reply_to )
Handle all the extra meta stuff from posting a new reply or editing a reply
Description Description
Parameters Parameters
- $reply_id
-
(Optional) Reply id
- $topic_id
-
(Optional) Topic id
- $forum_id
-
(Optional) Forum id
- $anonymous_data
-
(Optional) - if it's an anonymous post. Do not supply if supplying $author_id. Should be sanitized (see bbp_filter_anonymous_post_data()
Default value: array()
- $author_id
-
(Optional) Author id
- $is_edit
-
(Optional) Is the post being edited? Defaults to false.
Default value: false
- $reply_to
-
(Optional) Reply to id
Source Source
File: includes/replies/functions.php
function bbp_update_reply( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = array(), $author_id = 0, $is_edit = false, $reply_to = 0 ) {
// Validate the ID's passed from 'bbp_new_reply' action
$reply_id = bbp_get_reply_id( $reply_id );
$topic_id = bbp_get_topic_id( $topic_id );
$forum_id = bbp_get_forum_id( $forum_id );
$reply_to = bbp_validate_reply_to( $reply_to, $reply_id );
// Bail if there is no reply
if ( empty( $reply_id ) ) {
return;
}
// Check author_id
if ( empty( $author_id ) ) {
$author_id = bbp_get_current_user_id();
}
// Check topic_id
if ( empty( $topic_id ) ) {
$topic_id = bbp_get_reply_topic_id( $reply_id );
}
// Check forum_id
if ( ! empty( $topic_id ) && empty( $forum_id ) ) {
$forum_id = bbp_get_topic_forum_id( $topic_id );
}
// If anonymous post, store name, email, website and ip in post_meta.
if ( ! empty( $anonymous_data ) ) {
// Update anonymous meta data (not cookies)
bbp_update_anonymous_post_author( $reply_id, $anonymous_data, bbp_get_reply_post_type() );
// Set transient for throttle check (only on new, not edit)
if ( empty( $is_edit ) ) {
set_transient( '_bbp_' . bbp_current_author_ip() . '_last_posted', time() );
}
} else {
if ( empty( $is_edit ) && ! current_user_can( 'throttle' ) ) {
bbp_update_user_last_posted( $author_id );
}
}
// Handle Subscription Checkbox
if ( bbp_is_subscriptions_active() && ! empty( $author_id ) && ! empty( $topic_id ) ) {
// Check if subscribed
$subscribed = bbp_is_user_subscribed( $author_id, $topic_id );
// Check for action
$subscheck = ( ! empty( $_POST['bbp_topic_subscription'] ) && ( 'bbp_subscribe' === $_POST['bbp_topic_subscription'] ) )
? true
: false;
// Subscribed and unsubscribing
if ( ( true === $subscribed ) && ( false === $subscheck ) ) {
bbp_remove_user_subscription( $author_id, $topic_id );
// Not subscribed and subscribing
} elseif ( ( false === $subscribed ) && ( true === $subscheck ) ) {
bbp_add_user_subscription( $author_id, $topic_id );
}
}
// Reply meta relating to reply position in tree
bbp_update_reply_forum_id( $reply_id, $forum_id );
bbp_update_reply_topic_id( $reply_id, $topic_id );
bbp_update_reply_to ( $reply_id, $reply_to );
// Update associated topic values if this is a new reply
if ( empty( $is_edit ) ) {
// Update poster IP if not editing
update_post_meta( $reply_id, '_bbp_author_ip', bbp_current_author_ip(), false );
// Last active time
$last_active_time = get_post_field( 'post_date', $reply_id );
// Walk up ancestors and do the dirty work
bbp_update_reply_walker( $reply_id, $last_active_time, $forum_id, $topic_id, false );
}
// Bump the custom query cache
wp_cache_set( 'last_changed', microtime(), 'bbpress_posts' );
}