BBP_Default::ajax_favorite()
AJAX handler to add or remove a topic from a user’s favorites
Description
Source
File: bp-forums/templates/default/bbpress-functions.php
705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 | public function ajax_favorite() { // Bail if favorites are not active if ( ! bbp_is_favorites_active() ) { bbp_ajax_response( false, __( 'Saving discussions is no longer active.' , 'buddyboss' ), 300 ); } // Bail if user is not logged in if ( ! is_user_logged_in() ) { bbp_ajax_response( false, __( 'Please login to make this discussion a favorite.' , 'buddyboss' ), 301 ); } // Get user and topic data $user_id = bbp_get_current_user_id(); $id = ! empty ( $_POST [ 'id' ] ) ? intval ( $_POST [ 'id' ] ) : 0; // Bail if user cannot add favorites for this user if ( ! current_user_can( 'edit_user' , $user_id ) ) { bbp_ajax_response( false, __( 'You do not have permission to do this.' , 'buddyboss' ), 302 ); } // Get the topic $topic = bbp_get_topic( $id ); // Bail if topic cannot be found if ( empty ( $topic ) ) { bbp_ajax_response( false, __( 'The discussion could not be found.' , 'buddyboss' ), 303 ); } // Bail if user did not take this action if ( ! isset( $_POST [ 'nonce' ] ) || ! wp_verify_nonce( $_POST [ 'nonce' ], 'toggle-favorite_' . $topic ->ID ) ) { bbp_ajax_response( false, __( 'Are you sure you meant to do that?' , 'buddyboss' ), 304 ); } // Take action $status = bbp_is_user_favorite( $user_id , $topic ->ID ) ? bbp_remove_user_favorite( $user_id , $topic ->ID ) : bbp_add_user_favorite( $user_id , $topic ->ID ); // Bail if action failed if ( empty ( $status ) ) { bbp_ajax_response( false, __( 'The request was unsuccessful. Please try again.' , 'buddyboss' ), 305 ); } // Put subscription attributes in convenient array $attrs = array ( 'topic_id' => $topic ->ID, 'user_id' => $user_id ); // Action succeeded bbp_ajax_response( true, bbp_get_user_favorites_link( $attrs , $user_id , false ), 200 ); } |
Changelog
Version | Description |
---|---|
bbPress (r3732) | Introduced. |
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.