Remove the link "add comment" if the user has already commented on the node I wish that my users can leave only one comment per node (including by using the url). 

Once their posted comment, I wish that the link "add comment" disappears. 

I tried numerous solutions, such as Onecomment or custom code, but all prevent the second comment at the level of the form (form validate), with an error.

I would like for better user experience than it is not upstream possible to click on "add comment".

Do you know a solution ?
If you are OK with custom modules, you can make the module below.
If you have never made a custom module before, just make a folder called single_comment and create 2 files inside called single_comment.info and single_comment.module then add the code below into the respective files.

single_comment.info

name = Single Comment
description = Allow users to only add one comment to a node.
core = 7.x


single_comment.module

function single_comment_node_load($nodes, $types) {
  global $user;
  if (user_is_logged_in()) {
    foreach ($nodes as $node) {
      $comment_arr = comment_load_multiple(comment_get_thread($node, COMMENT_MODE_FLAT, 100));
      foreach ($comment_arr as $comment) {
        if ($comment-&gt;uid == $user-&gt;uid) {
          $node-&gt;comment = COMMENT_NODE_CLOSED;
          break;
        }
      }
    }
  }
}


You can call the module whatever you like but just remember to replace anywhere single_comment occurs. That includes the folder, file names, name in .info and the function name.