{"id":296228,"date":"2026-04-17T19:40:01","date_gmt":"2026-04-17T19:40:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/contentvault-smart-content-restriction\/"},"modified":"2026-04-17T19:53:47","modified_gmt":"2026-04-17T19:53:47","slug":"paygate-content-restriction","status":"publish","type":"plugin","link":"https:\/\/ru.wordpress.org\/plugins\/paygate-content-restriction\/","author":23474639,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"PayGate Content Restriction","header_author":"Josh's Web Services","header_description":"Professional content restriction and membership management for WordPress. Restrict access to posts, pages, and custom content with beautiful paywalls and Stripe integration.","assets_banners_color":"696969","last_updated":"2026-04-17 19:53:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/joshswebservices.design\/paygate-content-restriction","header_author_uri":"https:\/\/joshswebservices.design","rating":0,"author_block_rating":0,"active_installs":0,"downloads":110,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"joshswebservices","date":"2026-04-17 19:53:47"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3509240,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3509240,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3509240,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3509240,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Modern paywall template","2":"Minimal paywall template","3":"Classic paywall template","4":"Admin Members dashboard","5":"Admin Analytics dashboard","6":"Bulk restrict interface","7":"Post restriction metabox","8":"Settings page (Stripe configuration)"}},"plugin_section":[],"plugin_tags":[16114,1932,12688,5349,4079],"plugin_category":[41,45,58],"plugin_contributors":[260485],"plugin_business_model":[],"class_list":["post-296228","plugin","type-plugin","status-publish","hentry","plugin_tags-content-restriction","plugin_tags-membership","plugin_tags-paywall","plugin_tags-stripe","plugin_tags-subscriptions","plugin_category-communication","plugin_category-ecommerce","plugin_category-user-management","plugin_contributors-joshswebservices","plugin_committers-joshswebservices"],"banners":{"banner":"https:\/\/ps.w.org\/paygate-content-restriction\/assets\/banner-772x250.png?rev=3509240","banner_2x":"https:\/\/ps.w.org\/paygate-content-restriction\/assets\/banner-1544x500.png?rev=3509240","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/paygate-content-restriction\/assets\/icon-128x128.png?rev=3509240","icon_2x":"https:\/\/ps.w.org\/paygate-content-restriction\/assets\/icon-256x256.png?rev=3509240","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>PayGate Content Restriction lets you create membership tiers, restrict any post or page to specific tiers, and process payments via Stripe Checkout \u2014 all from within WordPress without any external middleware.<\/p>\n\n<p><strong>Key Features:<\/strong><\/p>\n\n<ul>\n<li>Create unlimited membership tiers with custom pricing and features<\/li>\n<li>Restrict individual posts, pages, or custom post types<\/li>\n<li>Three paywall designs: Modern, Minimal, and Classic<\/li>\n<li>Stripe-native payments (Checkout Sessions + Subscriptions)<\/li>\n<li>Real Stripe webhook handling with signature verification<\/li>\n<li>Admin member management dashboard<\/li>\n<li>Analytics dashboard with conversion charts<\/li>\n<li>Bulk content restriction tools<\/li>\n<li>Member self-service dashboard (view\/cancel subscription)<\/li>\n<li>Transactional email notifications (welcome, cancellation, payment failed)<\/li>\n<li>Theme template override support<\/li>\n<li>WP-CLI demo seeder for testing<\/li>\n<\/ul>\n\n<p><strong>Paywall Templates:<\/strong><\/p>\n\n<ul>\n<li><strong>Modern<\/strong> \u2014 Card with blur fade-in effect and tier grid<\/li>\n<li><strong>Minimal<\/strong> \u2014 Clean HR divider with stacked full-width CTA buttons<\/li>\n<li><strong>Classic<\/strong> \u2014 Badge icon, tier cards in flex row, \"Most Popular\" label<\/li>\n<\/ul>\n\n<p><strong>No dependencies on page builders, shortcode soup, or external services<\/strong> beyond Stripe.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external services:<\/p>\n\n<h4>Stripe<\/h4>\n\n<p>PayGate Content Restriction uses Stripe to process payments and manage subscriptions.<\/p>\n\n<ul>\n<li><strong>What data is sent:<\/strong> When a user subscribes, their WordPress user ID, email address, and selected membership tier are used to create a Stripe Customer and initiate a Checkout Session. Stripe receives whatever billing information the user enters during checkout.<\/li>\n<li><strong>When it is sent:<\/strong> Only when a logged-in user clicks a \"Get Access\" or \"Subscribe\" button to initiate checkout, or when a Stripe webhook event is received and verified.<\/li>\n<li><strong>Stripe's terms of service:<\/strong> https:\/\/stripe.com\/legal<\/li>\n<li><strong>Stripe's privacy policy:<\/strong> https:\/\/stripe.com\/privacy<\/li>\n<\/ul>\n\n<h4>Freemius (Pro version only)<\/h4>\n\n<p>The Pro version of this plugin uses Freemius for license management and automatic updates.<\/p>\n\n<ul>\n<li><strong>What data is sent:<\/strong> WordPress site URL, plugin version, and (with user consent) basic site and admin contact information for license activation.<\/li>\n<li><strong>When it is sent:<\/strong> Only when the Pro version is active and a license is being activated or checked.<\/li>\n<li><strong>Freemius terms of service:<\/strong> https:\/\/freemius.com\/terms\/<\/li>\n<li><strong>Freemius privacy policy:<\/strong> https:\/\/freemius.com\/privacy\/<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>paygate-content-restriction<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress<\/li>\n<li>Go to <strong>PayGate &gt; Settings<\/strong> and enter your Stripe API keys<\/li>\n<li>Create your membership tiers under <strong>PayGate &gt; Membership Tiers<\/strong><\/li>\n<li>Edit any post or page and use the <strong>Content Restriction<\/strong> metabox to restrict it<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20any%20theme%3F\"><h3>Does this work with any theme?<\/h3><\/dt>\n<dd><p>Yes. PayGate Content Restriction has no theme dependencies. Paywall styles are scoped CSS that work alongside any WordPress theme.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20paywall%20appearance%3F\"><h3>Can I customize the paywall appearance?<\/h3><\/dt>\n<dd><p>Yes. Place a file at <code>{your-theme}\/paygate-content-restriction\/paywall-{modern|minimal|classic}.php<\/code> and the plugin will use it automatically.<\/p><\/dd>\n<dt id=\"what%20stripe%20events%20are%20handled%3F\"><h3>What Stripe events are handled?<\/h3><\/dt>\n<dd><p>checkout.session.completed, <code>invoice.payment_succeeded<\/code>, <code>customer.subscription.updated<\/code>, <code>customer.subscription.deleted<\/code><\/p><\/dd>\n<dt id=\"is%20this%20compatible%20with%20woocommerce%3F\"><h3>Is this compatible with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. PayGate Content Restriction uses its own custom tables and does not conflict with WooCommerce.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20send%20data%20to%20any%20external%20services%3F\"><h3>Does this plugin send data to any external services?<\/h3><\/dt>\n<dd><p>Yes \u2014 see the External Services section below. The plugin connects to Stripe for payment processing and optionally to Freemius for Pro license management.<\/p><\/dd>\n<dt id=\"where%20is%20the%20webhook%20url%20for%20stripe%3F\"><h3>Where is the webhook URL for Stripe?<\/h3><\/dt>\n<dd><p>After activating the plugin, go to <strong>PayGate &gt; Settings &gt; Stripe<\/strong> tab. The webhook URL is displayed there. Add it to your Stripe Dashboard under Developers &gt; Webhooks.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens to my data if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Uninstalling the plugin removes all plugin data including membership tiers, member records, content restrictions, and analytics events. WordPress options with the <code>pgcr_<\/code> prefix are also deleted.<\/p><\/dd>\n<dt id=\"can%20members%20cancel%20their%20own%20subscription%3F\"><h3>Can members cancel their own subscription?<\/h3><\/dt>\n<dd><p>Yes. Members can view their membership status and cancel their subscription from the member dashboard shortcode <code>[pgcr_member_dashboard]<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Core content restriction engine with paywall templates (Modern, Minimal, Classic)<\/li>\n<li>Stripe-native checkout sessions and subscription management<\/li>\n<li>Webhook handlers for full subscription lifecycle<\/li>\n<li>Admin member management dashboard<\/li>\n<li>Analytics dashboard with Chart.js charts<\/li>\n<li>Bulk content restriction tools<\/li>\n<li>Member self-service dashboard<\/li>\n<li>Transactional email notifications<\/li>\n<\/ul>","raw_excerpt":"Restrict post and page content behind membership tiers with Stripe-native payments. No page builders needed.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=296228"}],"author":[{"embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/joshswebservices"}],"wp:attachment":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296228"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296228"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296228"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296228"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296228"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}