bbp_update_reply
Handle all the extra meta stuff from posting a new reply or editing a reply.
Description
bbp_update_reply( (int) $reply_id = 0, (int) $topic_id = 0, (int) $forum_id = 0, (constant) $anonymous_data = false, (int) $author_id = 0, (constant) $is_edit = false, (int) $reply_to = 0 );
Parameters (7)
- 0. $reply_id — Optional. (int)
- Reply id
- 1. $topic_id — Optional. (int)
- Topic id
- 2. $forum_id — Optional. (int)
- Forum id
- 3. $anonymous_data — Optional. (constant) =>
false
- Logged-out user data.
- 4. $author_id — Optional. (int)
- The author id.
- 5. $is_edit — Optional. (constant) =>
false
- Is the post being edited? Defaults to false.
- 6. $reply_to — Optional. (int)
- Reply to id
Usage
if ( !function_exists( 'bbp_update_reply' ) ) { require_once ABSPATH . PLUGINDIR . 'bbpress/includes/replies/functions.php'; } // Optional. Reply id $reply_id = -1; // Optional. Topic id $topic_id = -1; // Optional. Forum id $forum_id = -1; // Optional logged-out user data. $anonymous_data = false; // The author id. $author_id = -1; // Optional. Is the post being edited? Defaults to false. $is_edit = false; // Optional. Reply to id $reply_to = -1; // NOTICE! Understand what this does before running. $result = bbp_update_reply($reply_id, $topic_id, $forum_id, $anonymous_data, $author_id, $is_edit, $reply_to);
Defined (1)
The function is defined in the following location(s).
- /includes/replies/functions.php
- function bbp_update_reply( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = false, $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 );
- // 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.
- // It expects anonymous_data to be sanitized.
- // Check bbp_filter_anonymous_post_data() for sanitization.
- if ( !empty( $anonymous_data ) && is_array( $anonymous_data ) ) {
- // Parse arguments against default values
- $r = bbp_parse_args( $anonymous_data, array(
- 'bbp_anonymous_name' => '',
- 'bbp_anonymous_email' => '',
- 'bbp_anonymous_website' => '',
- ), 'update_reply' );
- // Update all anonymous metas
- foreach ( $r as $anon_key => $anon_value ) {
- update_post_meta( $reply_id, '_' . $anon_key, (string) $anon_value, false );
- }
- // 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 ) ) {
- $subscribed = bbp_is_user_subscribed( $author_id, $topic_id );
- $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 );
- // 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 = current_time( 'mysql' );
- // Walk up ancestors and do the dirty work
- bbp_update_reply_walker( $reply_id, $last_active_time, $forum_id, $topic_id, false );
- }
- }