bbp_update_reply( int $reply_id, int $topic_id, int $forum_id, bool|array $anonymous_data = false, 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
Parameters
- $reply_id
-
(Optional) Reply id
- $topic_id
-
(Optional) Topic id
- $forum_id
-
(Optional) Forum id
- $anonymous_data
-
(Optional) logged-out user data.
Default value: false
- $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
File: bp-forums/replies/functions.php
838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 | 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 ); } } |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.