comment once per post but reply to existing comments

Hello to all,

I am using wordpress and i want to restrict my users to be able to comment only once per post but be able to reply to existing comments. How can i do that?

I found this code which checks if a user has already comment and hide the form. but with this code users cant reply. how can i do that?
[php]

<?php global $current_user; $args = array('user_id' => $current_user->ID); $usercomment = get_comments($args); if(count($usercomment) >= 1){ echo 'disabled'; } else { comment_form(); } ?>[/php]

The other thought is to always show the form but hide it with css.
this means that i have to add new css class to the comment form but i dont know how.
i came up to here
[php]

<?php global $current_user,$post; $args = array('user_id' => $current_user->ID,'post_id' => $post->ID); $usercomment = get_comments($args); if(count($usercomment) >= 1){ comment_form(); } else { comment_form(); ; } ?>[/php]

and i get this error Parse error: syntax error, unexpected ‘<’ in…

Thank you

This is a solution with css trick .

[php]<?php
global $current_user,$post;
$args = array(‘user_id’ => $current_user->ID,‘post_id’ => $post->ID);
$usercomment = get_comments($args);
if(count($usercomment) >= 1){?>

<?php comment_form(); ?>
<?php } else { ?>
<?php comment_form(); ?>
<?php } ?>[/php]

and add this to your css

[php].withcomment {
display: none;
}[/php]

if someone else know something better, please post!

So after some time i done exactly what i wanted and i thought it would be nice to share.

So in Functions.php add

function c_parent_comment_counter($pid,$uid){ global $wpdb; $query = "SELECT COUNT(comment_post_id) AS count FROM $wpdb->comments WHERE <code>comment_approved</code> = 1 AND <code>comment_post_ID</code> = $pid AND <code>user_id</code> = $uid AND <code>comment_parent</code> = 0"; $parents = $wpdb->get_row($query); return $parents->count; }

and in comments.php

[php]global $current_user, $post;
$number_of_parents = c_parent_comment_counter($post->ID,$current_user->ID);
echo "parents: ".$number_of_parents;
if ( $number_of_parents >= 1 ) {
echo ‘’;
comment_form( array( ‘title_reply’ => __( ‘Reply’ ) ) );
echo ‘’;
} else {
echo ‘’ . comment_form( array( ‘title_reply’ => __( ‘Your opinion’ ) ) ) . ‘’;
}
?>[/php]

in style.css

.withcomment { display: none; }

This will count how many parent comments a user added and if its one or more it will hide the form. if its 0 it will show the form. but when you click the reply button the form will show and you will be able to reply to any comment.
THIS IS NOT HACK PROOF!!!

Sponsor our Newsletter | Privacy Policy | Terms of Service