---
title: "How to Migrate Require Purchase Functionality in Your Learndash App"
source: "https://docs.nexcess.com/software/learndash/migrate-require-purchase/"
description: "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…"
vertical: "Software"
area: "LearnDash"
date: "2025-09-22"
last_modified: "2026-07-02"
---

# How to Migrate Require Purchase Functionality in Your Learndash App

## **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 Groups and rules.

**Note:** If you don’t plan to enable Access Controls, your current Require Purchase setup will remain active. No action is required unless you want to migrate.

## **Prerequisite: Note Your Existing Setting**

Before enabling Access Controls:

1. Go to **Learndash App > Settings > In-App Purchases**.
2. Take note of your **Require Purchase** setting.
3. Once Access Controls is enabled, this toggle will disappear, and its logic must be rebuilt manually using Access Groups.

![Screenshot of turning on access controls within the LD App Components](https://docs.nexcess.com/wp-content/uploads/2026/06/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-1.png)## **Activating Access Controls**

To begin the migration:

1. Go to **Learndash App > Components.
2. Check **Activate Access Controls**.
3. Click **Save Changes**.
4. If prompted to migrate Require Purchase, click the migration link to continue.

*Your current paywall logic will now be replicated using Access Groups and rules.*

## **Build Matching Access Groups**

Recreate your previous gating logic:

1. Go to **Learndash App > Access Controls > Access Groups**.

![Screenshot of accessing groups within the Access Controls](https://docs.nexcess.com/wp-content/uploads/2026/06/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-2.png)2. Click **Add Group**.

![Screenshot of how to Add new group in Access Controls](https://docs.nexcess.com/wp-content/uploads/2026/06/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-3.png)3. Select the matching condition:
4. Click **Save Group**.
5. Repeat for each membership or course previously required for access.

## **Restrict App Login via General Access Rule**

Now restrict app access based on your new groups:

1. Go to **Learndash App > Access Controls > General**.
2. Check **Restrict Access** to require login.
3. Under **Access Groups**, select the group(s) you created.
4. Choose a **Restricted Action**:  
    
    - **Show Product Screen
    - **Return to Login
    - **Open App Page** (e.g., a custom “Need Access?” screen)
5. Click **Save Changes**.

![screenshot of how to Add new group in Access Controls](https://docs.nexcess.com/wp-content/uploads/2026/06/How-to-Migrate-Require-Purchase-Functionality-in-Your-Learndash-App-_-4.png)*To lock the entire app to logged-in users, enable* ***Private App*** *under* ***Learndash App > Settings > General > Privacy****. This hides all content until login or registration.*

## **Troubleshooting and FAQs**

**Q: My old paywall isn’t showing after migration.  
 **A:** Double-check that every gated item has a corresponding Access Group and that those groups are selected in the **General** rule.

**Q: I don’t see my membership plugin under Access Groups.  
 **A:** Make sure the plugin (e.g., MemberPress, Restrict Content Pro) is installed and active.

**Q: Can I show a custom page when users are blocked?  
 **A:** Yes. Create an App Page and choose **Open App Page** in your General rule to show it to restricted users.

**Q: Can I now gate specific pages, posts, or courses?  
 **A:** Absolutely. After setting up your general login rule, use additional rules under **App Pages**, **Pages**, **Posts**, or **Courses** to target individual content.
