Tagged: user testimonials
Hi again.
1.
Is it possible to extend a hook that makes it possible only to leave 1 testimonial on a profile in buddypress. So that if you have already done it once, you can’t do it again unless the testimonial is deleted.2.
Also could you please advise on the exact code in order to make the settings so that:
only admin and editor role can delete a testimonial.
User & admin can approve a testimonialThanx so much in advance
JanHi Jan,
Can you please put this code in your bp-custom.php and see if it works as expected//// //For Testimonials add_filter( 'bp_testimonial_user_can_delete', 'bp_testimonial_custom_delete_permission' ); function bp_testimonial_custom_delete_permission( $can_delete ) { if ( ! current_user_can( 'publish_pages' ) ) { $can_delete = false; } return $can_delete; } add_filter( 'bp_testimonial_user_can_write', 'bp_testimonial_custom_write_permission' ); function bp_testimonial_custom_write_permission( $can_write ) { if ( ! is_user_logged_in() || bp_is_my_profile() ) { return $can_write; } $displayed_user_id = bp_displayed_user_id(); $user_id = get_current_user_id(); if ( ! $displayed_user_id || ! $user_id ) { return $can_write; } if( bpt_has_user_already_written( $user_id, $displayed_user_id ) ) { $can_write = false; } return $can_write; //all good, get post id } function bpt_has_user_already_written( $user_id , $other_id ) { $post_id = get_user_meta( $other_id, 'associated_testimonial_page', true ); if ( ! $post_id ) { return false;//should never happen } //Now check if the user has a comment on this post global $wpdb; $has_comment = $wpdb->get_var( $wpdb->prepare( "SELECT comment_ID FROM {$wpdb->comments} WHERE comment_post_ID = %d AND user_id = %d", $post_id, $user_id ) ); if( $has_comment ) { return true; } return false; }
Thank you
BrajeshDear Brajesh once again thank you for quick reply.
I put the bp-custom.php file in the root of the testimonial plugin folder, is that correct or should it be in the root folder for all plugins?
It can still write several testimonials on a profile even though there is already one from the same user. Only difference is that the receiving user has to approve every testimonial, before shown public. That could work since the user then just deny to approve more testimonials from the same user, but would be luxury if they didn’t have to admin that and needed to remember who already did write earlier, so it automatic denied the option to post if you already had an approved testimonial on that profile.
The writer of a testimonial can’t delete after approved – OK
The receiver can still delete after approved – Could that be so only ADMIN can delete testimonials. (to prevent honest criticism to be deleted by receiver)once again thank you for great support and feedback.
/Jan
Hi Jan,
I am sorry for the delayed reply.Please create a file in wp-content/plugins directory(If the file does not exist) and name it bp-custom.php. This file is loaded by BuddyPress before anything.
Please give it a try then and let me know how it goes.
Thank you
BrajeshThank you, worked like a charm!
Very nice Brajesh!
Merry Christmas and thank you for great work!
Cheers
JanThank you Jan.
Glad it worked.
Merry Christmas and happy holiday 🙂Cheers
Brajesh
The topic ‘ [Resolved] Testimonials one time only’ is closed to new replies.