Restricting comments to paid subscribers

I’m using the Lyra theme on Ghost Pro - and I’m thinking about integrating with Disqus to add a comments section to my posts. I’d like to know if its possible to restrict comments to paying subscribers.

I think this would be useful for a couple of reasons: it may cut down on abusive comments, which I guess are more likely to come from people who don’t wish to pay! And it offers added value to subscribers too.

Andrew

You can restrict who can see comments on your site pretty easily, but Disqus also publishes all comments to its own site - so they won’t be private. This is a Disqus thing, rather than a Ghost thing, and can’t be changed as far as I’m aware.

A better solution for full private members-only comments for Ghost would be https://cove.chat - which is what I use for this exact usecase.

2 Likes

Thanks, I’ll give this a try!

Andrew

I’ve now set up Cove - but it shows and allows comments for any subscribed member, not paid members only. Is there any way of tweaking it so that only paying subscribers can post comments?

Andrew

1 Like

Sure! I do it like this:

{{#if @member.paid}}
        <div id="cove"></div>
        <script>
        const Cove = {
        publication: "yourpublicationIDgoeshere",
        contentId: "{{id}}",
        memberId: "{{@member.uuid}}",
        memberEmail: "{{@member.email}}"
        }
        </script>
        <div></div>
{{/if}}
1 Like

Thanks!

It’s working fine now.

Andrew

Thanks for sharing Cove, John :raised_hands: And for helping Andrew. Glad you got it sorted @aclifton777!

2 Likes

Thanks for sharing this! A related Cove question - is there a way to make comments visible to all but restrict the commenting function to paid members only?

1 Like

Hi Kat. I just added this feature!

Add the following two lines:

requirePaid: true,
isPaid: {{@member.paid}}

for example:

<script>
  const Cove = {
    publication: "your_site_id",
    contentId: "{{id}}",
    memberId: "{{@member.uuid}}",
    memberEmail: "{{@member.email}}",
    requirePaid: true,
    isPaid: {{@member.paid}}
  }
</script>

CC @John @aclifton777

1 Like

Thanks, Dan! Unfortunately what is happening when I add that code is paid and free members can see their login info but the comments and commenting field don’t show up for either.

Of course, there is a high likelihood I have made an error. Below is what I have in comments.hbs (without your additional lines) - note I’ve removed the login form. This shows comments and the commenting field/button to all members. When I add the two lines, they disappear. (Screenshots below as well.)

For reference, there are a couple of goals here: one, offer another incentive for readers to pay for membership; and two, limit spam/abuse (and the need for moderation).

If I use John’s code above, only paid members can even see the existence of comments, which is great except that it doesn’t offer much of an incentive to join as people don’t even know they’re there. If I change line 3 below to {{#if @member.paid}}, only paid members see the comments/can comment and free members and those not logged in see the upsell, which is the best option I can see so far but again, isn’t a huge incentive.

Thanks for any insight you can offer!