CommentGate helps site owners turn comment access into a paid engagement flow. Visitors enter one email address, complete payment through Stripe or PayPal, and unlock the comment form for protected content.
Use CommentGate for paid communities, expert Q&A posts, premium discussion areas, gated announcements, niche publications, and any site where comment access should have value.
CommentGate lives under Comments > CommentGate and includes one tabbed dashboard:
General Settings also includes a quick link to WordPress Website Discussion Settings so comment moderation, notifications, avatars, and default discussion rules stay easy to reach.
CommentGate can enable one or both payment gateways:
If both gateways are enabled, visitors can choose Stripe or PayPal on the payment wall.
CommentGate connects to third-party payment services only when an administrator configures a gateway and a visitor starts checkout, returns from checkout, when an administrator starts a refund, or when the payment service sends a configured webhook.
Stripe requests are sent to https://api.stripe.com to create Checkout Sessions, create refunds, verify webhook events, and update payment status. Data sent to Stripe may include the selected post title, payment amount, currency, plugin payment ID, access type, comment quantity, Stripe payment intent ID, and customer email when entered by a guest. Stripe terms: https://stripe.com/legal/ssa. Stripe privacy policy: https://stripe.com/privacy.
PayPal requests are sent to https://api-m.sandbox.paypal.com in sandbox mode or https://api-m.paypal.com in live mode to create orders, capture approved orders, create refunds, obtain API access tokens, verify webhook signatures, and update payment status. Data sent to PayPal may include the selected post title, payment amount, currency, plugin payment ID, PayPal order or capture ID, and configured API credentials. PayPal user agreement: https://www.paypal.com/us/legalhub/useragreement-full. PayPal privacy statement: https://www.paypal.com/us/legalhub/privacy-full.
Administrators can refund paid transactions from Transaction History when access has not been used. For comment quantity access, unused means all purchased comment credits are still available. For duration access, unused means CommentGate has not attached the payment to a submitted comment. Refund actions call the configured Stripe or PayPal API, then mark the payment as refunded in CommentGate with refund ID, reason, and refund date fields when available.
Use these official guides when creating payment credentials:
CommentGate registers the wp commentgate command when WP-CLI is available.
wp commentgate status – Show gateway, access, and webhook setup status.wp commentgate settings – Show plugin settings with API secrets masked by default.wp commentgate settings --show-secrets – Show plugin settings including API secrets.wp commentgate payments --status=paid – List payment records.wp commentgate payment 123 – Show one payment record.wp commentgate refund 123 --yes – Refund unused paid access.For Stripe, configure the webhook URL shown in CommentGate and send these events:
checkout.session.completedcharge.refundedcheckout.session.async_payment_failedStripe webhook secret is required so CommentGate can verify Stripe-signed webhook requests.
For PayPal, configure the webhook URL shown in CommentGate and send this event:
PAYMENT.CAPTURE.REFUNDEDCopy the PayPal webhook ID into CommentGate settings so webhook signatures can be verified.