> ## Documentation Index
> Fetch the complete documentation index at: https://memberful.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Install the Memberful WordPress plugin

> The Memberful WordPress plugin makes it easy to integrate Memberful with your WordPress website and protect content server-side, for members only. 

export const RelatedDocs = ({link1, link2, link3, link4, link5, link6, link7, link8, link9, link10, className = ""}) => {
  const links = [link1, link2, link3, link4, link5, link6, link7, link8, link9, link10].filter(Boolean);
  if (!links.length) return null;
  return <section className={`related-docs border dark:border-gray-700 rounded-2xl px-6 py-4 mt-6 ${className}`}>
      <p className="mb-2 font-medium">
        <strong>Related help docs:</strong>
      </p>
      <ul className="space-y-1 mb-1 mt-1">
        {links.map((link, index) => <li key={index}>
            <a href={link.url}>{link.label}</a>
          </li>)}
      </ul>
    </section>;
};

The Memberful WordPress plugin connects your Memberful site to WordPress so you can protect content server-side and give members access based on their subscription status.

In this help article, we'll cover how to install the plugin, review the available WordPress settings, and configure role mapping for members.

## Install the Memberful WordPress plugin

<Steps>
  <Step title="Activate the WordPress service">
    From your Memberful dashboard, go to **Website** → **External website**, then click **Connect my WordPress site**.

    <Frame>
      <img src="https://mintcdn.com/memberful/M_FwlsoTYDRYJ4EU/images/wordpress-plugin/setup/install-the-memberful-plugin/install-plugin-integrate.png?fit=max&auto=format&n=M_FwlsoTYDRYJ4EU&q=85&s=6265501a7af135ed9819b5f0077a30ff" alt="Activate the WordPress service" width="1440" height="935" data-path="images/wordpress-plugin/setup/install-the-memberful-plugin/install-plugin-integrate.png" />
    </Frame>
  </Step>

  <Step title="Copy the registration key">
    Copy the WordPress registration key.

    <Frame>
      <img src="https://mintcdn.com/memberful/M_FwlsoTYDRYJ4EU/images/wordpress-plugin/setup/install-the-memberful-plugin/install-plugin-registration-key.png?fit=max&auto=format&n=M_FwlsoTYDRYJ4EU&q=85&s=9f8da591a320d3672fd67932f7c4ed85" alt="Copy the WordPress registration key" width="1440" height="832" data-path="images/wordpress-plugin/setup/install-the-memberful-plugin/install-plugin-registration-key.png" />
    </Frame>
  </Step>

  <Step title="Install the plugin">
    On your WordPress site, install and activate the Memberful plugin.
  </Step>

  <Step title="Connect WordPress to Memberful">
    Paste your registration key into the field, then click **Connect to Memberful**.

    <Frame>
      <img src="https://mintcdn.com/memberful/M_FwlsoTYDRYJ4EU/images/wordpress-plugin/setup/install-the-memberful-plugin/install-memberful-wp.gif?s=4590bb42a7ddeaca789d29be79f85d77" alt="Connect the WordPress plugin to Memberful" width="1194" height="672" data-path="images/wordpress-plugin/setup/install-the-memberful-plugin/install-memberful-wp.gif" />
    </Frame>
  </Step>
</Steps>

Once connected:

* members are signed in to WordPress when they sign in to Memberful
* members' plans sync automatically so you can [protect WordPress content](/wordpress-plugin/protect-content/restrict-access-to-a-single-post/).

<Frame>
  <img src="https://mintcdn.com/memberful/M_FwlsoTYDRYJ4EU/images/wordpress-plugin/setup/install-the-memberful-plugin/install-plugin-integration-active.png?fit=max&auto=format&n=M_FwlsoTYDRYJ4EU&q=85&s=ba6136f2f29d547d04059ded7f513a3b" alt="Integration active" width="1440" height="768" data-path="images/wordpress-plugin/setup/install-the-memberful-plugin/install-plugin-integration-active.png" />
</Frame>

## Review the plugin settings

Go to **Settings → Memberful** in your WordPress dashboard to customize how the plugin works.

Options include:

* Keep all WordPress users logged in for 1 year
* Hide the WordPress admin toolbar from members
* Block WordPress dashboard access from members
* Conditionally show *Sign in, Sign out,* and *Account* menu items based on members' signed-in status
* Update display names in WordPress when members change their full name in Memberful
* Show protected content in site search
* Show a banner to members whose membership is expiring soon or has expired

<Frame>
  <img src="https://mintcdn.com/memberful/3l8BJWZF_MS-6mLE/images/wordpress-plugin/setup/install-the-memberful-plugin/memberful-wp-plugin-settings.png?fit=max&auto=format&n=3l8BJWZF_MS-6mLE&q=85&s=9a50755ed3e9e1ab2adcec380b20fec5" alt="Memberful WP Plugin Settings" width="1440" height="1440" data-path="images/wordpress-plugin/setup/install-the-memberful-plugin/memberful-wp-plugin-settings.png" />
</Frame>

<Callout icon="triangle-alert" color="#FFE044">
  Conditional menu items only work with classic WordPress menus. They are not supported in block-based WordPress since that system uses a different menu editor.
</Callout>

### Expiring membership banner

When enabled, members will see a banner at the top of your site notifying them that their subscription is expiring soon or has expired, with a Renew now link. You can set how many days before expiration the banner appears.

<Frame>
  <img src="https://mintcdn.com/memberful/3l8BJWZF_MS-6mLE/images/wordpress-plugin/setup/install-the-memberful-plugin/expiring-membership-banner.png?fit=max&auto=format&n=3l8BJWZF_MS-6mLE&q=85&s=6c0ebeb6a66b41bcd45a378cb9d2fdd7" alt="Expiring subscription banner" width="2698" height="154" data-path="images/wordpress-plugin/setup/install-the-memberful-plugin/expiring-membership-banner.png" />
</Frame>

To configure the banner:

<Steps>
  <Step title="Enable the banner">
    Check **Show a banner to members whose membership is expiring soon or has expired**.

    <Frame>
      <img src="https://mintcdn.com/memberful/3l8BJWZF_MS-6mLE/images/wordpress-plugin/setup/install-the-memberful-plugin/banner-settings.png?fit=max&auto=format&n=3l8BJWZF_MS-6mLE&q=85&s=5f3e0932f7a58a0417025f4b30e294f0" alt="Expiring subscription banner" width="1440" height="533" data-path="images/wordpress-plugin/setup/install-the-memberful-plugin/banner-settings.png" />
    </Frame>
  </Step>

  <Step title="Set the timing">
    In the *Show the expiry banner this many days before membership expiration* field, enter the number of days before expiration when the banner should appear.
  </Step>

  <Step title="Save the setting">
    Click **Save Changes**.
  </Step>
</Steps>

## Configure role mapping

The Memberful WordPress plugin assigns WordPress roles to members based on their subscription status. It keeps those roles in sync as subscriptions start, change, or end.

Role mapping works best when you use custom WordPress roles provided by other plugins.

### How role mapping works by default

By default, the Memberful WordPress plugin can assign roles using a status-based rule:

* members with any active subscription plan receive one WordPress role
* members with no active subscription plans receive a different WordPress role

To enable status-based rules, go to **Settings** → **Memberful** → **Advanced Role Mapping** in your WordPress dashboard. Assign a role for members with an active subscription and a role for members with no active subscription.

<Frame>
  <img src="https://mintcdn.com/memberful/WfivnbYP0eXvt-IT/images/wordpress-plugin/setup/install-the-memberful-plugin/advanced-role-mapping.png?fit=max&auto=format&n=WfivnbYP0eXvt-IT&q=85&s=1386e8bd61fcfcbcc43daa300d49d125" alt="Memberful WP Plugin Settings" width="1440" height="568" data-path="images/wordpress-plugin/setup/install-the-memberful-plugin/advanced-role-mapping.png" />
</Frame>

### Enable per-plan roles

Per-plan roles let you override the default active or inactive role mapping and assign roles at the individual plan level. Disabling this setting returns your site to the default role mapping behavior.

To enable per-plan roles, go to **Settings** → **Memberful** → **Advanced Role Mapping** in your WordPress dashboard, then check *Enable Per-Plan Roles*.

Once enabled, additional role options appear for each subscription plan.

<Frame>
  <img src="https://mintcdn.com/memberful/utYiDR7dnzKVheWx/images/wordpress-plugin/setup/install-the-memberful-plugin/enable-per-plan-roles.png?fit=max&auto=format&n=utYiDR7dnzKVheWx&q=85&s=d02d474e077c5d4d11c0e19bec1d6c72" alt="Memberful WP Plugin Settings" width="1440" height="416" data-path="images/wordpress-plugin/setup/install-the-memberful-plugin/enable-per-plan-roles.png" />
</Frame>

<Callout icon="info" color="#22E273">
  Adding new prices to existing plans does not require updating your role mapping.
</Callout>

### Assign roles to individual plans

After enabling per-plan roles, you'll see a list of your Memberful plans with a WordPress role selector for each one.

For each subscription plan:

* choose the WordPress role members should receive while they have an active subscription to that plan
* optionally select **No specific role (use default)** to fall back to the default active role mapping

Members with no active subscription receive the role configured for *No active subscription plan*.

<Frame>
  <img src="https://mintcdn.com/memberful/utYiDR7dnzKVheWx/images/wordpress-plugin/setup/install-the-memberful-plugin/assign-role-per-plan.png?fit=max&auto=format&n=utYiDR7dnzKVheWx&q=85&s=d27108391fea5b43c906577accb18849" alt="Memberful WP Plugin Settings" width="1440" height="795" data-path="images/wordpress-plugin/setup/install-the-memberful-plugin/assign-role-per-plan.png" />
</Frame>

<RelatedDocs
  link1={{
url: "/wordpress-plugin/setup/wordpress-hosting-providers/",
label: "Recommended WordPress hosting providers.",
}}
  link2={{
url: "/wordpress-plugin/troubleshooting/theme-and-plugin-compatibility/",
label: "Choosing a great WordPress theme to use with Memberful.",
}}
  link3={{
url: "/wordpress-plugin/setup/enable-ssl/",
label: "How to install an SSL Certificate on your site.",
}}
/>
