{"id":10410,"date":"2025-09-22T19:51:52","date_gmt":"2025-09-22T23:51:52","guid":{"rendered":"https:\/\/learndash.com\/support\/?post_type=docs&#038;p=10410"},"modified":"2025-09-23T11:14:21","modified_gmt":"2025-09-23T15:14:21","password":"","slug":"how-to-migrate-require-purchase-functionality-in-your-learndash-app","status":"publish","type":"docs","link":"https:\/\/learndash.com\/support\/kb\/learndash-app\/advanced-learndash-app\/how-to-migrate-require-purchase-functionality-in-your-learndash-app\/","title":{"rendered":"How to Migrate Require Purchase Functionality in Your Learndash App"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-introduction\"><strong>Introduction<\/strong><\/h2>\n\n\n\n<p>The <strong>Require Purchase<\/strong> setting allows you to restrict your entire app behind a single paywall. With <strong>Access Controls<\/strong>, you now gain the flexibility to set up granular, rule-based restrictions using memberships, courses, or custom logic.<\/p>\n\n\n\n<p>This guide shows you how to migrate your Require Purchase setup to the new Access Controls system using Access Groups and rules.<\/p>\n\n\n\n<p><strong>Note:<\/strong> If you don\u2019t plan to enable Access Controls, your current Require Purchase setup will remain active. No action is required unless you want to migrate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-prerequisite-note-your-existing-setting\"><strong>Prerequisite: Note Your Existing Setting<\/strong><\/h2>\n\n\n\n<p>Before enabling Access Controls:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>Learndash App &gt; Settings &gt; In-App Purchases<\/strong>.<br><\/li>\n\n\n\n<li>Take note of your <strong>Require Purchase<\/strong> setting.<br><\/li>\n\n\n\n<li>Once Access Controls is enabled, this toggle will disappear, and its logic must be rebuilt manually using Access Groups.<br><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1206\" height=\"420\" src=\"https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-1.png\" alt=\"Screenshot of turning on access controls within the LD App Components\" class=\"wp-image-10680\" srcset=\"https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-1.png 1206w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-1-400x139.png 400w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-1-800x279.png 800w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-1-768x267.png 768w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-1-360x125.png 360w\" sizes=\"auto, (max-width: 1206px) 100vw, 1206px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-activating-access-controls\"><strong>Activating Access Controls<\/strong><\/h2>\n\n\n\n<p>To begin the migration:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>Learndash App &gt; Components.<\/strong><strong><br><\/strong><\/li>\n\n\n\n<li>Check <strong>Activate Access Controls<\/strong>.<br><\/li>\n\n\n\n<li>Click <strong>Save Changes<\/strong>.<br><\/li>\n\n\n\n<li>If prompted to migrate Require Purchase, click the migration link to continue.<br><\/li>\n<\/ol>\n\n\n\n<p><em>Your current paywall logic will now be replicated using Access Groups and rules.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-build-matching-access-groups\"><strong>Build Matching Access Groups<\/strong><\/h2>\n\n\n\n<p>Recreate your previous gating logic:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>Learndash App &gt; Access Controls &gt; Access Groups<\/strong>.<br><\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"120\" src=\"https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-2.png\" alt=\"Screenshot of accessing groups within the Access Controls\" class=\"wp-image-10682\" srcset=\"https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-2.png 720w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-2-400x67.png 400w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-2-360x60.png 360w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/figure><\/div>\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Click <strong>Add Group<\/strong>.<br><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1032\" height=\"131\" src=\"https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-3.png\" alt=\"Screenshot of how to Add new group in Access Controls\" class=\"wp-image-10683\" srcset=\"https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-3.png 1032w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-3-400x51.png 400w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-3-800x102.png 800w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-3-768x97.png 768w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-3-360x46.png 360w\" sizes=\"auto, (max-width: 1032px) 100vw, 1032px\" \/><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Select the matching condition:<br><\/li>\n\n\n\n<li>Click <strong>Save Group<\/strong>.<br><\/li>\n\n\n\n<li>Repeat for each membership or course previously required for access.<br><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-restrict-app-login-via-general-access-rule\"><strong>Restrict App Login via General Access Rule<\/strong><\/h2>\n\n\n\n<p>Now restrict app access based on your new groups:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>Learndash App &gt; Access Controls &gt; General<\/strong>.<br><\/li>\n\n\n\n<li>Check <strong>Restrict Access<\/strong> to require login.<br><\/li>\n\n\n\n<li>Under <strong>Access Groups<\/strong>, select the group(s) you created.<br><\/li>\n\n\n\n<li>Choose a <strong>Restricted Action<\/strong>:<br>\n<ul class=\"wp-block-list\">\n<li><strong>Show Product Screen<\/strong><strong><br><\/strong><\/li>\n\n\n\n<li><strong>Return to Login<\/strong><strong><br><\/strong><\/li>\n\n\n\n<li><strong>Open App Page<\/strong> (e.g., a custom \u201cNeed Access?\u201d screen)<br><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Click <strong>Save Changes<\/strong>.<br><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1458\" height=\"339\" src=\"https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-4.png\" alt=\"screenshot of how to Add new group in Access Controls\" class=\"wp-image-10684\" srcset=\"https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-4.png 1458w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-4-400x93.png 400w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-4-800x186.png 800w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-4-768x179.png 768w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/09\/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-4-360x84.png 360w\" sizes=\"auto, (max-width: 1458px) 100vw, 1458px\" \/><\/figure>\n\n\n\n<p><em>To lock the entire app to logged-in users, enable <\/em><strong><em>Private App<\/em><\/strong><em> under <\/em><strong><em>Learndash App &gt; Settings &gt; General &gt; Privacy<\/em><\/strong><em>. This hides all content until login or registration.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-troubleshooting-and-faqs\"><strong>Troubleshooting and FAQs<\/strong><\/h2>\n\n\n\n<p><strong>Q: My old paywall isn\u2019t showing after migration.<\/strong><strong><br><\/strong> <strong>A:<\/strong> Double-check that every gated item has a corresponding Access Group and that those groups are selected in the <strong>General<\/strong> rule.<\/p>\n\n\n\n<p><strong>Q: I don\u2019t see my membership plugin under Access Groups.<\/strong><strong><br><\/strong> <strong>A:<\/strong> Make sure the plugin (e.g., MemberPress, Restrict Content Pro) is installed and active.<\/p>\n\n\n\n<p><strong>Q: Can I show a custom page when users are blocked?<\/strong><strong><br><\/strong> <strong>A:<\/strong> Yes. Create an App Page and choose <strong>Open App Page<\/strong> in your General rule to show it to restricted users.<\/p>\n\n\n\n<p><strong>Q: Can I now gate specific pages, posts, or courses?<\/strong><strong><br><\/strong> <strong>A:<\/strong> Absolutely. After setting up your general login rule, use additional rules under <strong>App Pages<\/strong>, <strong>Pages<\/strong>, <strong>Posts<\/strong>, or <strong>Courses<\/strong> to target individual content.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction The Require Purchase setting allows you to restrict your entire app behind a single paywall. With Access Controls, you now gain the flexibility to set up granular, rule-based restrictions using memberships, courses, or custom logic. This guide shows you how to migrate your Require Purchase setup to the new Access Controls system using Access&#8230;<\/p>\n","protected":false},"author":58,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_helpful_status":1,"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_swpsp_post_exclude":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"doc_category":[287],"doc_tag":[],"knowledge_base":[283],"class_list":["post-10410","docs","type-docs","status-publish","hentry","doc_category-advanced-learndash-app","knowledge_base-learndash-app"],"year_month":"2026-04","word_count":428,"total_views":"883","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"display_name":"Stephanie Liy","author_link":"https:\/\/learndash.com\/support\/author\/stephaniei\/"},"doc_category_info":[{"term_name":"Advanced for the Learndash App","term_url":"https:\/\/learndash.com\/support\/kb\/learndash-app\/advanced-learndash-app\/"}],"doc_tag_info":[],"taxonomy_info":{"doc_category":[{"value":287,"label":"Advanced for the Learndash App"}],"knowledge_base":[{"value":283,"label":"LearnDash App"}]},"featured_image_src_large":false,"comment_info":0,"knowledge_base_info":[{"term_name":"LearnDash App","term_url":"https:\/\/learndash.com\/support\/kb\/learndash-app\/","term_slug":"learndash-app"}],"knowledge_base_slug":["learndash-app"],"_links":{"self":[{"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/docs\/10410","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/comments?post=10410"}],"version-history":[{"count":3,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/docs\/10410\/revisions"}],"predecessor-version":[{"id":10685,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/docs\/10410\/revisions\/10685"}],"wp:attachment":[{"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/media?parent=10410"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/doc_category?post=10410"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/doc_tag?post=10410"},{"taxonomy":"knowledge_base","embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/knowledge_base?post=10410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}