The effects of alcohol on sustanon 250 leucine for – real weight loss & bodybuilding benefits?
Disable main form, ...
 
Share:
Notifications
Clear all

Limited Support

Our team is currently on holiday, so support will be limited during this period. Response times may be slower than usual, and some inquiries may be delayed.
We appreciate your patience and understanding, and we’ll resume our usual support by the end of August.

 

[Solved] Disable main form, only allow reply

8 Posts
2 Users
2 Reactions
2,329 Views
Posts: 22
Topic starter
(@zoker)
Eminent Member
Joined: 4 years ago

Hi there,

 

I try to disable the comment field, if the user has already commented on this post. But he should be able to reply to his own comment and other comments.

When I disable the form with this filter ...

function hide_form($output, $commentsCount, $currentUser) {
    return '';
}
add_filter('wpdiscuz_form_render', 'hide_form', 10, 3);

... the form is disabled, but also the reply form. 

Is there any way to do this? 

 

If I have a function to disable the main form, I will surround it with a check if the user has already made a comment. But I first need the form disable filter.

Thanks!

7 Replies
Posts: 22
Topic starter
(@zoker)
Eminent Member
Joined: 4 years ago

For everyone interested, here is the code to get if the current user already posted a level 0 comment:

global $post;
$args = array(
    'post_id'    => $post->ID,
    'author__in' => get_current_user_id(),
    'parent' => 0,
    'count' => true
);
$comments_count = get_comments( $args );
6 Replies
(@zoker)
Joined: 4 years ago

Eminent Member
Posts: 22

This is not the solution, this is only the wrapper I need for getting, if a user already made a level 0 comment on the post. I still need the function, that removes the main comment form, but not the reply form. 

Asti
 Asti
Support
(@asti)
Joined: 8 years ago

Illustrious Member
Posts: 8075

Hi Zoker,

I'm going to ask the developers if there is a simple solution for this and back to you asap. 

Asti
 Asti
Support
(@asti)
Joined: 8 years ago

Illustrious Member
Posts: 8075

@zoker,

Please try this one: 

function hide_form($output, $commentsCount, $currentUser) {
   global $post;
   $args = array(
      'post_id'    => $post->ID,
      'author__in' => get_current_user_id(),
      'parent' => 0,
      'count' => true
   );
   $comments_count = get_comments( $args );
    if ($comments_count) {
        $output = preg_replace('~<div class="wpd-form[^"\']+wpd-main-form-wrapper[^>]+>.*?(<div id="wpdiscuz_hidden_secondary_form")~is', '$1', $output);
    }
   return $output;
}
add_filter('wpdiscuz_form_render', 'hide_form', 10, 3);

It should work fine. 

(@zoker)
Joined: 4 years ago

Eminent Member
Posts: 22

@asti Yes that works, thank you very much! Can you please ask the developers to include a proper filter for that anyway? Would be a cleaner way instead of using a pre_replace with regex (especially if the html changes within a update, then the regex won't work anymore) 🙂

But for now this is perfect, thanks!

Asti
 Asti
Support
(@asti)
Joined: 8 years ago

Illustrious Member
Posts: 8075

Zoker,

I'm really sorry, but this is not planned yet.

We'd really appreciate and be thankful if you leave a good review on plugin page. This is the best way to say thank you to this project and support team.

(@zoker)
Joined: 4 years ago

Eminent Member
Posts: 22

@asti Yes, that's why I asked you to create a feature request for this 🙂

Thanks!

Will do, thanks!

Share: