just had a quick look (i’m working on soemthing else at the moment, but found 5 minutes)
maybe
if ( bbp_get_spam_status_id() == get_post_status($reply_id) && !empty (get_post_meta( $reply_id, '_bbp_akismet_user_result', true ))) {
in case you are working on this, basically if we hook to
bbp_new_reply_pre_extras
we can then do a check if it has been spammed by askimet and the if so, just do a reply walker update
so something like (totally untested)
add_action ('bbp_new_reply_pre_extras' , 'rew_askimet_check', 100 , 1 ) ; //might need to be run at a high priority to make sure it is last - not tested
function rew_askimet_check ($reply_id) {
//only execute is this is akismet spam
if ( bbp_get_spam_status_id() == get_post_status($reply_id) && [some check that this has been marked by akismet])) {
//just run the reply update walker as this will do a full refresh of all ancestors to the topic if just the reply ID is sent
bbp_update_reply_walker($reply_id) ;
}
}
The akismet check would be something like
if (get_post_meta( $reply_id, 'some akismet metadata', true )
I’m in the code, and can work out where we might link to a hook, it is really if there is a metadata field I can use to do a check – the name would be useful
thanks, yes this happens in this forum too, but I have limited access to the backend here, as I just help out.
I was asking so I can find a hook to try and fix. your post was helpful, so let me see if I can do some code later today
I have a very strange issue with links on my forum.
If a user posts this, the post will appear on the forum properly:
<a href="https://astrobin.com/okz16b/E/"><img src="https://astrobin.com/okz16b/E/rawthumb/gallery/get.jpg?insecure"/></a>
If they post this instead, it will not allow them to post it:
<a href="https://astrob.in/okz16b/E/"><img src="https://astrob.in/okz16b/E/rawthumb/gallery/get.jpg?insecure"/></a>
If you look, the difference is one link refers to astrobin.com and one to astrob.in. I cannot find anywhere to allow astrob.in links in users posts.
Anyone know where I can set this? 🙂
li.bbp-header {
display : none ;
}
That removes ‘creator’ ‘topic’ above the main topic post but not above the reply box which still shows ‘creator’ ‘topic’
The second css removes the post date which i would like to have.
With regards to the topic title I would like to achieve the same styling in this forum, a minimalistic topic title in bold with no breadcrumbs
Try
li.bbp-header {
display : none ;
}
div.bbp-topic-header div.bbp-meta {
display : none ;
}
So as a slight deviation, I managed to resolve how to add a login link to “You must be logged in to reply to this topic.” and not “You must be logged in to create new topics.”.
I use the login plugin (paid) created by Xootix and I asked them for the necessary code (PHP) to add a link to the “You must be logged in to reply to this topic.” or at least enable the wording to be clickable.
Below is PHP code provided by Xootix and I added it to the Themes functions.php and this works very well
add_action( ‘wp_footer’, function(){
if( is_user_logged_in() ) return;
?>
<style type=”text/css”>
.bbp-no-reply .bbp-template-notice{
cursor: pointer;
}
</style>
<script type=”text/javascript”>
jQuery(document).ready(function($){
$(‘body’).on( ‘click’, ‘.bbp-no-reply .bbp-template-notice’, function(){
$(‘.xoo-el-login-tgr’).trigger(‘click’);
} )
})
</script>
<?php
} );
I think this does what you want
add_filter ('bbp_get_reply_author_avatar', 'rew_avatar', 10 , 3) ;
add_filter ('bbp_get_topic_author_avatar', 'rew_avatar' , 10 , 3) ;
function rew_avatar ( $author_avatar, $id, $size) {
if ( bbp_is_reply( $id ) ) {
$author = bbp_get_reply_author_display_name( $id );
$text = 'alt="icon avatar for '.$author.'"' ;
}
if ( bbp_is_topic( $id ) ) {
$author = bbp_get_topic_author_display_name( $id );
$text = 'alt="icon avatar for '.$author.'"' ;
}
$author_avatar = str_replace('alt=\'\'',$text,$author_avatar);
return $author_avatar ;
}
I just got around to testing the above. I copied the code into themes function.php. Under fish caught it still says array instead of the fish species chosen in the dropdown. Also the image still does not show up.
Any other suggestions? the Fish caught I can change it so that the user has to type in the fish species caught. Just much easier for them to choose the dropdown when entering, especially if on the lake when posting.
It is important for the image to show up in the email because that draws much more interest than no image showing up.
Re: Website: allinop.comI have used the following css to modify the [bbp-topic-index]
.bbp-topic-voice-count,
.bbp-topic-reply-count,
.bbp-topic-freshness { /* Hides elements related to voice count, reply count, and topic freshness */
display: none;
}
.avatar-14 { /* Hides avatars with the class "avatar-14" */
display: none !important;
}
.bbp-search-form { /* Hides the bbPress search form */
display: none;
}
I have 2 issues:
Firstly, the topic titles do not take the entire horizontal space.
It is as if the hidden elements still occupy the space.
I have tried ‘hidden: none’ instead ‘display: none’ to no avail.
Secondly, I’ve been trying to also remove the border around the list of latest topics.
I have unsuccessfully tried:
.bbp-topic {
border: none;
}
and
.bbp-topic {
outline: none;
}
I would be grateful for any ideas.
Main problem, in addition to my non PHP abilities, was me using GPT 3.5. After a paid upgrade things started going way smoother, and the code works. Some parts of the parsed text such as some colouring are blocked by a theme or a plugin, but that is fine.
Anyway, it was nice to visualize the symbols and the hand histories to the forum users.
Hello, I used the shortcode [bbp-forum-index] for my forum page so that I could adjust the sizing and spacing, but when you enter a forum past the index page, I lose those adjustments as it of course loads a different page for the forums after the index page. Is there a way to add a shortcode to the pages that load after index or do I need to do all my styling via CSS?
To anyone stumbling into this thread wondering how the subscriptions are stored in the database, it has been updated.
To find out what users are subscribed to a topic or thread you need to look for the _bbp_subscription
meta_key in the wp_postmeta table. There is one for each user subscribed where meta_value is the ID of the user subscribed.
So for example, to know how many users are subscribed to a forum or topic, just count the number of _bpp_subscription metadata present with post_id of the specific forum or topic
Any guidance on the code I need to add would be most welcomed after the You cannot create new topics.
Thanks
Hi
I am running BBPRESS and am looking to add a login link to Add login link to “You must be logged in to create new topics.” which appears at the bottom of Topics list when you are not logged in.
I have copied out the Forum-Topic.php file and it is located in my Themes BBPRESS folder.
Code in my Forum-Topic.php that I am looking to add to is ….
<div id=”no-topic-<?php bbp_forum_id(); ?>” class=”bbp-no-topic”>
<div class=”bbp-template-notice”>
- <?php is_user_logged_in()
? esc_html_e( ‘You cannot create new topics.’, ‘bbpress’ )
: esc_html_e( ‘You must be logged in to create new topics.’, ‘bbpress’ );
?>
.bbpress .forum h4.author {
display: none;
}
add this to the additional css of your theme
body.forum-archive.bbpress h5.description p {
display: none;
}
Just meant you need to have the that code before the afc_replace array, like below
if( !function_exists('acf_email_bbp_subscription_mail') ){
function acf_email_bbp_subscription_mail( $message, $topic_id, $forum_id, $user_id ) {
if ( function_exists( 'get_field' ) && $topic_id != 0 ) {
// Part for fish caught before the afc_replace
$fish_caught = get_field('fish_caught');
if( is_array( $fish_caught ) && isset( $fish_caught['label'] ) ){
$fish_caught = $fish_caught['label'];
}else{
$fish_caught = '';
}
// Part for image, before the afc_replace
$image = get_field('image');
if( is_array( $image ) && isset( $image['url'] ) && !empty( $image['url'] ) ){
$image = '<img src="'.esc_attr($image['url']).'" alt="'.esc_attr( $image['alt'] ).'">';
}else{
$image = '';
}
$afc_replace = array(
'{catch_date_time}' => get_field( 'catch_date_time', $topic_id),
'{anglers}' => get_field( 'anglers', $topic_id ),
'{fish_caught}' => $fish_caught,
'{image}' => $image
);
$message = strtr( $message , $afc_replace);
}
return $message;
}
add_filter( 'bbp_forum_subscription_mail_message' , 'acf_email_bbp_subscription_mail', 100 , 4 );
}
This is not related to bbpress, but to your youzify plugin
add this to your custom css
.youzify-bbp-topic-head {
display: none;
}
Thank you for your ongoing help we are almost there.
But I am sorry I am not understanding this new information regarding the fish_caught field.
I understand I would replace
`$afc_replace = array(
‘{catch_date_time}’ => get_field( ‘catch_date_time’, $topic_id),
‘{anglers}’ => get_field( ‘anglers’, $topic_id )
);`
with this code
`$afc_replace = array(
‘{catch_date_time}’ => get_field( ‘catch_date_time’, $topic_id),
‘{anglers}’ => get_field( ‘anglers’, $topic_id )
‘{fish_caught}’ => $fish_caught
);`
But not understanding where I would put this code
$fish_caught = get_field('fish_caught');
if( is_array( $fish_caught ) && isset( $fish_caught['label'] ) ){
$fish_caught = $fish_caught['label'];
}else{
$fish_caught = '';
}
in the midst of this code. I am sure I am getting ( ) { } in the wrong places.
if( !function_exists('acf_email_bbp_subscription_mail') ){
function acf_email_bbp_subscription_mail( $message, $topic_id, $forum_id, $user_id ) {
if ( function_exists( 'get_field' ) && $topic_id != 0 ) {
For the fish caught sounds like you want the label name, you’d want the code to check the value before that $acf_replace array. Something like below..
$fish_caught = get_field('fish_caught');
if( is_array( $fish_caught ) && isset( $fish_caught['label'] ) ){
$fish_caught = $fish_caught['label'];
}else{
$fish_caught = '';
}
$afc_replace = array(
'{catch_date_time}' => get_field( 'catch_date_time', $topic_id),
'{anglers}' => get_field( 'anglers', $topic_id ),
'{fish_caught}' => $fish_caught
);
Same thing for the image I imagine, so you’d want the ‘url’ of the array, like above you’d want to check if it exists/uploaded before the replace array.
$image = get_field('image');
if( is_array( $image ) && isset( $image['url'] ) && !empty( $image['url'] ) ){
$image = '<img src="'.esc_attr($image['url']).'" alt="'.esc_attr( $image['alt'] ).'">';
}else{
$image = '';
}
$afc_replace = array(
'{catch_date_time}' => get_field( 'catch_date_time', $topic_id),
'{anglers}' => get_field( 'anglers', $topic_id ),
'{image}' => $image
);
Hope that helps, sorry for the delay back. I’m just a user on here so was trying to help out some while I was logged in. I’d go to ACF documention and check out their field types as they have them listed there on getting the values.
Error-Image field
In the email the image will not display. Most likely it is because of how I have the image field being created. I do not want posters to insert images into the website media gallery. So I have created a custom field for images. Here is the script for the image field. Is there a way to make it so images show up in the email notification? I am assuming the only work around is to allow them to access the media library.
I know there was another way for posting images using custom field but I could never get it to work.
<?php
$image = get_field('image');
if( !empty( $image ) ): ?>
<img src="<?php echo esc_url($image['url']); ?>" alt="<?php echo esc_attr($image['alt']); ?>" />
<?php endif; ?>
I am happy to report that code works great. The two custom fields show up in the email notification.
Here are all the custom fields. I should be able to take what you have done and make all them work. Hopefully not break anything.
<strong>YOU CHOOSE HOW MUCH INFORMATION YOU ENTER</strong><br>
<strong>Catch Date & Time:</strong> <?php the_field( 'catch_date_time' ) ; ?><br>
<strong>Anglers:</strong> <?php the_field( 'anglers' ) ; ?><br>
<strong>Weather:</strong> <?php the_field( 'weather' ) ; ?><br>
<strong>Fish Caught:</strong> <?php the_field( 'fish_caught' ) ; ?><br>
<strong>Kept or Released:</strong> <?php the_field( 'kept_or_released' ) ; ?><br>
<strong>Lake Point Marker:</strong> <?php the_field( 'lake_point_marker' ) ; ?><br>
<strong>Water_Features:</strong> <?php the_field( 'water_features' ) ; ?><br>
<strong>Speed:</strong> <?php the_field( 'speed' ) ; ?><br>
<strong>Fish Depth:</strong> <?php the_field( 'fish_depth' ) ; ?><br>
<strong>Lake Depth:</strong> <?php the_field( 'lake_depth' ) ; ?><br>
<strong>Method Used:</strong> <?php the_field( 'method_used' ) ; ?><br>
<strong>Lure & Color:</strong> <?php the_field( 'lure_color' ) ; ?><br>
BUT there are two custom fields that are done differently, do not know how I would do them. It is the image field and the location field, but maybe they work the same way.
<strong>Image:</strong>
<?php
$image = get_field('image');
if( !empty( $image ) ): ?>
<img src="<?php echo esc_url($image['url']); ?>" alt="<?php echo esc_attr($image['alt']); ?>" />
<?php endif; ?> <br>
<br>
<br>
<strong>Fishing Location: </strong> <?php the_field( 'location' ) ; ?><br>
<?php
$location = get_field('location');
if( $location ): ?>
<div class="acf-map" data-zoom="13">
<div class="marker" data-lat="<?php echo esc_attr($location['lat']); ?>" data-lng="<?php echo esc_attr($location['lng']); ?>"></div>
</div>
<?php endif; ?>