1. Home
  2. Migrations
  3. Complete Guide: Migrating from MemberPress to AccessAlly

Complete Guide: Migrating from MemberPress to AccessAlly

ARTICLE CONTENT:

Complete Guide: Migrating from MemberPress to AccessAlly

📊 Migration Complexity: MEDIUM-HIGH
⏱️ Estimated Time: 20-30 hours (planning, execution, testing)
🛠️ Technical Level: Intermediate-Advanced
💰 Cost Impact: AccessAlly requires integrated CRM subscription ($79-$497/mo depending on CRM chosen)

Why Migrate from MemberPress to AccessAlly?

Common reasons for migrating from MemberPress to AccessAlly:

  • More Powerful Course Features: AccessAlly offers advanced course templates, completion tracking, and drip content scheduling that goes far beyond MemberPress’s basic content dripping. You can create sophisticated learning paths with sequential content unlocking, quiz integration, and visual progress tracking that keeps students engaged.
  • CRM Integration: Direct integration with marketing automation platforms (ActiveCampaign, Ontraport, Keap, Drip, Kit, AccessAlly Managed) enables sophisticated marketing funnels. Unlike MemberPress which requires separate tools for email marketing, AccessAlly unifies your membership site with your CRM for seamless automation.
  • Advanced Automation: Tag-based automation allows you to trigger complex workflows based on member behavior. You can automatically upsell courses when members complete content, segment members based on engagement, and create conditional content that changes based on what courses they own or how far they’ve progressed.
  • Better Member Experience: AccessAlly’s course navigation, progress tracking, completion certificates, and gamification features create a more engaging learning environment. Members see clear visual progress, unlock badges and achievements, and benefit from intuitive “next lesson” navigation that MemberPress lacks.
  • Unified Member Data: With AccessAlly, your member’s WordPress account and CRM contact record are the same entity. This eliminates data sync issues, ensures your support team has complete member history, and enables better segmentation for marketing campaigns.
  • Advanced Payment Features: AccessAlly supports payment plans, order bumps, one-click upsells, and sophisticated checkout flows that can significantly increase your average order value. You can offer trial periods, setup fees, multi-product bundles, and create entire sales funnels within WordPress.
  • Better Support for Coaching Programs: If you run coaching or group programs, AccessAlly’s cohort management, group enrollment features, and time-based access controls make it much easier to manage group programs compared to MemberPress.
  • Scalability: As your business grows, AccessAlly’s tag-based architecture scales better than MemberPress’s membership levels. You can create unlimited membership tiers, course bundles, and access combinations without creating dozens of membership levels.
⚠️ Important Differences: MemberPress uses “membership levels” for access control. AccessAlly uses “CRM tags”. This fundamental difference means you’ll need to completely recreate your access rules and protection settings. Budget significant time for this conversion.

For example, in MemberPress, a member has “Gold Level” which grants access to a category. In AccessAlly, a member has a “Gold Member” tag in your CRM, and each individual post checks for that tag. This shift from centralized levels to distributed tag-based access requires careful planning but offers much more flexibility long-term.

Understanding the Core Architectural Difference

Before you begin migration, it’s critical to understand how MemberPress and AccessAlly differ fundamentally:

MemberPress Architecture:

  • Uses WordPress-native “membership levels” stored in custom tables
  • Protection rules are centralized (protect entire categories, tags, or custom post types)
  • A member’s access is determined by which levels they have
  • Rules cascade (Level A can access Category X automatically)
  • Email functionality requires separate plugin or service
  • Member data lives entirely in WordPress

AccessAlly Architecture:

  • Uses “CRM tags” as the access control mechanism
  • Protection is per-post/page (each piece of content checks for specific tags)
  • A member’s access is determined by which tags they have in the CRM
  • No automatic cascading (each post must be explicitly protected)
  • Email functionality built into CRM (sophisticated automation available)
  • Member data split between WordPress (user accounts) and CRM (contact records)
  • Contact ID linking is CRITICAL – WordPress stores the CRM Contact ID to check access

What this means for migration:

  1. No One-Click Migration: There’s no automated tool to convert MemberPress levels to AccessAlly tags. You must manually map and recreate access rules.
  2. Every Post Needs Protection: Unlike MemberPress’s category-level protection, you’ll need to protect individual posts in AccessAlly (though you can batch this with Membership Levels).
  3. Tag Strategy Required: You need to carefully design your tag taxonomy before migrating. How many tags? What naming convention? Which tags grant which access?
  4. Contact ID Linking is Make-or-Break: If the link between WordPress users and CRM contacts breaks, members lose access even if they have correct tags. This is the #1 migration issue.
  5. CRM Dependency: AccessAlly cannot function without a CRM. If your CRM goes down or API connection breaks, member access breaks. Plan redundancy accordingly.

What You’ll Need Before Starting

✅ Required Access & Accounts

  • WordPress admin access to your site
  • MemberPress admin access (for data export)
  • AccessAlly license (with appropriate plan tier)
  • CRM account chosen and configured (ActiveCampaign, Ontraport, Keap, Drip, Kit, or AccessAlly Managed)
  • Payment gateway access (Stripe or PayPal – must be properly configured)
  • Full WordPress site backup

📋 Complete the Pre-Migration Checklist

Before proceeding, work through the complete Pre-Migration Checklist. Key items include:

  • Full backup of WordPress site and database
  • Export of all MemberPress member data
  • Audit of your current membership levels and access rules
  • Data mapping spreadsheet (members, memberships, subscriptions, transactions)
  • Staging site setup for testing (CRITICAL – don’t test on live site)
  • CRM setup and configuration completed
  • Downtime plan and member communication strategy
🚨 CRITICAL: Test on Staging First
Never install AccessAlly on your live site without thorough testing on staging. The transition from membership levels to tag-based access is complex and requires extensive testing. Plan for at least 2-3 full testing cycles before going live.

Phase 1: Planning & Setup (5-7 hours)

Step 1: Export Your MemberPress Data

MemberPress stores member data in WordPress and separate MemberPress tables. You’ll need to export multiple data sets:

Export 1: Members List

  1. Log into WordPress admin
  2. Go to MemberPress → Members
  3. Click Export (or use a plugin like “Users & Customers Import Export for WP & WooCommerce”)
  4. Export should include:
    • User ID, Username, Email
    • First Name, Last Name
    • Registration Date
    • Active Memberships (list all)
    • Membership Status (active, expired, cancelled)
  5. Save as memberpress-members-export.csv

Export 2: Subscriptions Data

  1. Go to MemberPress → Subscriptions
  2. Export all active subscriptions including:
    • Subscription ID
    • Member Email
    • Membership Level
    • Gateway (Stripe, PayPal, etc.)
    • Gateway Subscription ID
    • Status (active, cancelled, expired)
    • Next Payment Date
  3. Save as memberpress-subscriptions-export.csv

Export 3: Transactions History

  1. Go to MemberPress → Transactions
  2. Export transaction records (especially for lifetime members)
  3. Save as memberpress-transactions-export.csv
💡 Pro Tip: If MemberPress doesn’t have a built-in export for all data you need, use phpMyAdmin to export from the wp_mepr_subscriptions and wp_mepr_transactions tables directly.

Step 2: Choose and Configure Your CRM

AccessAlly requires a CRM integration to function. This is the most important decision in your migration because it affects your ongoing costs, feature capabilities, and workflow. Choose carefully:

CRM Options Comparison:

CRM Price Range Best For Key Strengths
ActiveCampaign $29-$149/mo Email marketers, small to mid-size businesses Excellent email automation, visual campaign builder, affordable
Ontraport $79-$497/mo Businesses needing full CRM features Robust CRM, built-in payment processing, advanced reporting, deals/pipelines
Keap $169-$249/mo Enterprise businesses, complex sales funnels Most powerful automation, detailed segmentation, appointments/scheduling
Drip $39-$999/mo E-commerce businesses, product creators E-commerce focus, visual workflows, revenue tracking
Kit (ConvertKit) $29-$79/mo Creators, bloggers, simple businesses Simple interface, creator-focused, easy to learn
AccessAlly Managed $67/mo flat Anyone wanting simplicity, no CRM experience needed No external CRM to manage, flat fee (unlimited contacts), hosted by AccessAlly

Key CRM Selection Factors:

  1. Contact Count: How many members do you have? Some CRMs charge per contact. AccessAlly Managed is flat-rate unlimited.
  2. Email Volume: How many emails do you send monthly? Some CRMs limit email sends.
  3. Automation Complexity: Do you need sophisticated multi-step workflows, or simple welcome emails?
  4. Existing Tools: Do you already use a CRM for non-membership purposes? Consolidating can save money.
  5. Learning Curve: Some CRMs (Keap, Ontraport) have steep learning curves. Kit and Managed are simpler.
  6. Budget: Keap is powerful but expensive. Kit and ActiveCampaign are more affordable.
  7. Support Quality: Check reviews for support responsiveness. CRM issues directly affect member access.
💡 Recommendation for Most Users: If you’re new to CRM and marketing automation, start with AccessAlly Managed or ActiveCampaign. AccessAlly Managed is simpler (no external CRM to learn), while ActiveCampaign offers more marketing power at affordable pricing. Avoid Keap unless you have CRM experience or complex sales processes.

CRM setup steps (before importing data):

  1. Sign up for chosen CRM account: Use a business email address (not Gmail/Yahoo – affects deliverability)
  2. Complete basic account setup: Company info, timezone (CRITICAL – affects drip schedules), sender email address, company address
  3. Configure email deliverability: Add SPF, DKIM, and DMARC records to your domain’s DNS. This prevents your emails from going to spam. Each CRM provides specific records to add. This step is non-negotiable – skip it and your member emails won’t arrive.
  4. Test email sending: Create a simple broadcast campaign and send it to your personal email. Check if it arrives in inbox (not spam/promotions tabs)
  5. Verify domain ownership: Most CRMs require you to verify you own your domain before allowing bulk email sending
  6. Create your first form and test it: Build a simple opt-in form, embed it on a test page, submit it, verify the contact appears in CRM
  7. DO NOT import any contacts yet: Wait until AccessAlly is connected. Import via AccessAlly Migration Wizard to ensure Contact ID linking works correctly
  8. Review CRM documentation: Spend an hour reading your CRM’s getting started guide. Understanding tags, custom fields, and automation basics will save hours during migration.

Detailed CRM comparison: Choosing AccessAlly Managed vs. External CRM

CRM comparison by features: CRM Feature Comparison for AccessAlly

Step 3: Map MemberPress Levels to AccessAlly CRM Tags

This is the most critical planning step. MemberPress uses “membership levels” for access. AccessAlly uses “CRM tags” for access.

Create a mapping spreadsheet:

MemberPress Level AccessAlly Tag Name Access Granted Notes
Basic Membership Basic Member Posts in “Basic Content” category Monthly subscription
Premium Membership Premium Member All Basic + Premium Content Quarterly subscription
Course Bundle Course Bundle Access Specific course modules Lifetime access
VIP Level VIP Member All content + private forum Annual subscription
⚠️ Tag Naming Convention: Use clear, descriptive tag names. Avoid special characters. Be consistent (e.g., “Basic Member” not “Member – Basic” or “basic-member”). Tag names are case-sensitive in most CRMs.

Step 4: Audit and Document MemberPress Access Rules

MemberPress protection works differently than AccessAlly. You need to document every access rule:

Document these MemberPress settings:

  • Protected Posts/Pages: List all manually protected content
  • Category Protection: Which categories are protected by which levels?
  • Drip Content: List all drip schedules (content unlocked over time)
  • Custom Rules: Any advanced rules or custom code
  • Downloads/Resources: Protected files or downloads
  • Special Access: Trial periods, grace periods, or conditional access

Use the Data Mapping Reference Guide for complete field mappings.

Step 5: Check Payment Gateway Compatibility

Both MemberPress and AccessAlly integrate with Stripe and PayPal, but the integration methods differ.

Stripe Compatibility Check:

  1. MemberPress uses Stripe Billing (subscriptions managed by Stripe)
  2. AccessAlly also uses Stripe Billing
  3. Your existing Stripe subscriptions CAN be preserved
  4. You’ll need to export subscription IDs from MemberPress
  5. These will be imported into AccessAlly during migration

PayPal Compatibility Check:

  1. MemberPress uses PayPal Standard or PayPal Express
  2. AccessAlly supports PayPal Standard
  3. PayPal subscription IDs must be preserved
  4. Test PayPal IPN (Instant Payment Notification) setup
🚨 CRITICAL: Subscription Preservation
Active subscribers must be carefully migrated. If subscription IDs aren’t properly transferred, failed payments won’t cancel member access (revenue leak) or legitimate members will lose access incorrectly. See Preserving Subscriptions During Migration.

Step 6: Install AccessAlly on Staging Site

On your STAGING site only:

  1. Create a complete staging copy of your live site
  2. Verify staging site is functional and isolated from live site
  3. Download AccessAlly plugin from your account
  4. Upload and activate AccessAlly plugin
  5. Go to AccessAlly → Settings → General
  6. Enter your AccessAlly license key
  7. Select your CRM from the dropdown
  8. Enter CRM API credentials
  9. Click Save and Test Connection
  10. Verify connection is successful
💡 Pro Tip: Keep MemberPress installed on staging during testing. This lets you compare access behavior side-by-side and verify you’ve recreated all protection rules correctly.

Step 7: Create Tags in Your CRM

Before importing members, create all tags in your CRM:

  1. Reference your mapping spreadsheet from Step 3
  2. Log into your CRM
  3. Create each tag you’ll use for access control:
    • Membership level tags (e.g., “Basic Member”, “Premium Member”)
    • Course access tags (e.g., “Course Bundle Access”)
    • Status tags if needed (e.g., “Active Member”, “Cancelled”)
  4. DO NOT assign tags to any contacts yet
  5. Note exact tag names (case-sensitive!)

Phase 2: Content & Access Rules Setup (6-8 hours)

Step 8: Convert MemberPress Category Protection to AccessAlly Tags

MemberPress category protection is straightforward: “Level X can access Category Y”. AccessAlly uses tag-based access on each post/page.

Conversion process:

  1. List all MemberPress protected categories
  2. Note which membership levels can access each category
  3. For each post in a protected category:
    • Edit the post in WordPress
    • Scroll to “AccessAlly Protection” meta box
    • Add the appropriate tag(s) for “Who Can Access This Post”
    • Save the post
  4. Repeat for ALL posts in protected categories
⚠️ Bulk Protection Tip: AccessAlly doesn’t have automatic category-level protection like MemberPress. You’ll need to protect each post individually OR use AccessAlly’s “Membership Levels” feature to batch-apply tag requirements. See Setting Up Membership Levels.

Step 9: Set Up Tag-Based Access on Individual Posts/Pages

For individually protected posts/pages in MemberPress:

  1. Make a list of all posts/pages with MemberPress protection
  2. For each post/page:
    • Edit in WordPress
    • Find “AccessAlly Protection” meta box
    • Add required tags under “Who Can Access”
    • Set redirect URL for unauthorized access
    • Configure “partial access” if needed (preview for non-members)
    • Save
  3. Test access as logged-out user (should redirect)

AccessAlly protection options:

  • Full Protection: Entire post/page hidden from non-members
  • Partial Protection: Preview visible, full content requires tag
  • Multiple Tags: Require multiple tags (AND logic) or any tag (OR logic)
  • Conditional Content: Show different content based on tags using shortcodes

Step 10: Recreate Drip Content Schedules

MemberPress drip content works by “X days after registration” or “on specific date”. AccessAlly has similar features with more flexibility.

MemberPress → AccessAlly drip conversion:

MemberPress Drip Type AccessAlly Equivalent
X days after registration AccessAlly Drip Schedule (days after tag applied)
Specific calendar date AccessAlly Specific Date Release
After previous lesson completed AccessAlly Sequential Release (completion-based)
Immediate access No drip schedule – tag grants immediate access

Setting up AccessAlly drip schedules:

  1. Go to AccessAlly → Course Wizard (or Modules)
  2. Create a new Module for each course/membership area
  3. Add posts/pages to the Module
  4. Configure drip schedule:
    • Sequential: Unlock after previous item completed
    • Scheduled: Unlock X days after tag applied
    • Fixed Date: Unlock on specific calendar date
  5. Set “Tag to Track Progress” (required for completion-based drip)
  6. Save Module

AccessAlly offers advanced course features that MemberPress doesn’t have. Consider setting these up:

Course Navigation:

  • Previous/Next lesson buttons
  • Progress bars showing % completion
  • Course sidebar with all lessons
  • Locked/unlocked icons for dripped content

Completion Tracking:

  • Mark lessons as “complete”
  • Trigger automations when course completed
  • Issue completion certificates
  • Track student progress in CRM

To set up course templates:

  1. Go to AccessAlly → Course Wizard
  2. Follow the wizard to create course structure
  3. AccessAlly will auto-generate navigation and tracking
  4. Customize templates to match your branding

Guide: Using the AccessAlly Course Wizard

Step 12: Set Up Payment Forms (Order Forms)

MemberPress uses its own checkout flow. AccessAlly uses “Order Forms” that integrate with Stripe/PayPal and your CRM.

For each MemberPress membership level, create an AccessAlly Order Form:

  1. Go to AccessAlly → Order Forms
  2. Click Add New Order Form
  3. Configure form settings:
    • Product Name: Match your membership level
    • Price: Set one-time or recurring price
    • Payment Gateway: Select Stripe or PayPal
    • Tags to Apply: Select membership tag(s) to apply on purchase
    • Redirect After Purchase: Welcome page or first lesson
    • Auto-Login: Enable so new members auto-login after purchase
  4. Customize form fields (name, email, address if needed)
  5. Set up payment plans if offering installments
  6. Configure order bumps or upsells (optional)
  7. Save and embed form shortcode on your sales page
💡 Pro Tip: Test your order forms THOROUGHLY on staging with test Stripe/PayPal accounts before going live. Verify tags apply correctly and members get immediate access.

Step 13: Configure Payment Gateway Webhooks

Both MemberPress and AccessAlly rely on webhooks from Stripe/PayPal to handle failed payments, cancellations, etc.

Stripe Webhook Setup:

  1. Log into your Stripe Dashboard
  2. Go to Developers → Webhooks
  3. Add a new webhook endpoint: https://yoursite.com/?accessally-listener=stripe
  4. Select events to listen for:
    • invoice.payment_succeeded
    • invoice.payment_failed
    • customer.subscription.deleted
    • customer.subscription.updated
  5. Copy the webhook signing secret
  6. In AccessAlly → Settings → Integrations, paste the signing secret

PayPal IPN Setup:

  1. Log into PayPal
  2. Go to Account Settings → Notifications → IPN Settings
  3. Enter IPN URL: https://yoursite.com/?accessally-listener=paypal
  4. Enable IPN
  5. Test IPN to verify it’s working
🚨 CRITICAL: Webhook Testing
If webhooks don’t work correctly, failed payments won’t cancel member access (major revenue leak). After setting up webhooks, test with a real payment in test mode, then simulate a failed payment to verify access revocation works.

Phase 3: Member Migration (5-7 hours)

Step 14: Prepare Member Data CSV for Import

Transform your MemberPress exports into a format compatible with AccessAlly Migration Wizard.

Required CSV format:

  • Email – Email address (required, must be unique)
  • First Name – First name
  • Last Name – Last name
  • Tags – Comma-separated list of tags to apply
  • Password – Optional (will auto-generate if blank)
  • Subscription ID – Stripe/PayPal subscription ID (for active subscribers)
  • Gateway – “stripe” or “paypal”
  • Any custom fields your CRM uses

CSV transformation steps:

  1. Open your MemberPress members export in Excel/Google Sheets
  2. Create a new column “Tags”
  3. Use a formula to convert membership levels to tags (based on your mapping from Step 3)
  4. For members with multiple active memberships, list all tags comma-separated
  5. Cross-reference with subscriptions export to add Subscription ID and Gateway columns
  6. Remove expired/cancelled members (or handle separately with different tags)
  7. Verify email addresses are valid and unique
  8. Save as new CSV: memberpress-to-accessally-import.csv
💡 Pro Tip: Import a small test batch first (10-20 members) to verify your CSV format, tag mapping, and subscription linking are all correct before importing your full member list.

Step 15: Import Members via AccessAlly Migration Wizard

  1. On your STAGING site, go to AccessAlly → Migration Wizard
  2. If you don’t see Migration Wizard, download and activate the plugin (instructions)
  3. Click “Import from CSV”
  4. Upload your prepared CSV file
  5. Map CSV columns to AccessAlly fields:
    • Email → Email
    • First Name → First Name
    • Last Name → Last Name
    • Tags → Tags
    • Subscription ID → Subscription ID
    • Gateway → Payment Gateway
  6. Choose import options:
    • Create users in WordPress: Check (creates WP user accounts)
    • Create contacts in CRM: Check (creates CRM contact records)
    • Add tags: Check (applies membership tags)
    • Link subscriptions: Check (connects Stripe/PayPal subs)
    • Send welcome email: Uncheck for migration (don’t spam existing members)
  7. Click “Start Import”
  8. Monitor the import progress
  9. Review import log for errors

What happens during import:

  • WordPress user accounts created (if they don’t already exist)
  • Contacts created in your CRM
  • Tags applied in CRM
  • Contact ID from CRM stored in WordPress user meta (CRITICAL for access control)
  • Subscription IDs linked to WordPress users (preserves active subscriptions)
⏱️ Time Estimate: Import processes ~100-200 members per minute. Larger member bases may take 30+ minutes. Monitor for errors and verify a sample of imported members.

Step 16: Verify Subscription Linking

For active subscribers, verify their subscription IDs are properly linked:

  1. Pick 5-10 active subscribers from your import
  2. In WordPress, go to Users and edit their profile
  3. Scroll to “AccessAlly Subscription Data” section
  4. Verify Subscription ID matches what’s in Stripe/PayPal
  5. Check Gateway is correct (stripe or paypal)
  6. Verify Status shows “active”
  7. Test access to protected content

Detailed guide: Preserving Subscriptions During Migration

🚨 CRITICAL TEST: Failed Payment Handling
The #1 revenue leak after migration is failed payments not canceling member access. Test this:

  1. Use Stripe/PayPal test mode
  2. Create a test subscription
  3. Import the test member via Migration Wizard
  4. Simulate a failed payment in Stripe/PayPal
  5. Verify webhook fires
  6. Verify member’s tags are removed in CRM
  7. Verify member loses access to protected content in WordPress

If this doesn’t work, DO NOT go live until it’s fixed.

With AccessAlly + CRM, you can set up automated workflows that MemberPress couldn’t do:

Recommended automations:

  • Welcome Sequence: When “Basic Member” tag applied, send welcome email series
  • Onboarding: Drip educational emails over first 7 days
  • Engagement: Trigger emails based on course progress
  • Upsells: When member completes Course 1, offer Course 2
  • Retention: If no login in 30 days, send re-engagement email
  • Cancellation: When subscription cancelled, send exit survey

Each CRM has different automation capabilities. Refer to your CRM’s documentation for setup instructions.


Phase 4: Testing & Verification (4-5 hours)

Step 18: Test Access Rules for Each Membership Level

Create test accounts for each membership level and verify access:

  1. Create test user accounts in WordPress
  2. Add appropriate tags in your CRM
  3. Log in as each test user
  4. Verify access to content they SHOULD see
  5. Verify they CANNOT access content they shouldn’t
  6. Test drip content schedules
  7. Test course navigation (if using AccessAlly course templates)
  8. Test completion tracking

Testing checklist per membership level:

  • ✅ Login works
  • ✅ Dashboard/member area displays correctly
  • ✅ Protected content accessible
  • ✅ Non-member content properly hidden
  • ✅ Drip content locked appropriately
  • ✅ Course navigation functional
  • ✅ Completion tracking working
  • ✅ Next lesson unlocking correctly

Step 19: Test Purchase Flows End-to-End

Test the complete purchase experience for each membership offer:

  1. Visit sales page as logged-out visitor
  2. Fill out AccessAlly order form
  3. Complete test purchase (use Stripe/PayPal test mode)
  4. Verify redirect to thank-you page
  5. Verify auto-login works
  6. Check that purchase tags applied in CRM
  7. Verify WordPress user account created
  8. Test immediate access to purchased content
  9. Check subscription created in Stripe/PayPal
  10. Verify subscription linked to WordPress user
💡 Pro Tip: Have someone who ISN’T familiar with your site test the purchase flow. They’ll catch confusing UX issues you’ll miss.

Step 20: Test Subscription Handling

Test ongoing subscription management:

  1. Successful Renewal: Simulate successful payment (test mode), verify access continues
  2. Failed Payment: Simulate failed payment, verify tags removed and access revoked
  3. Subscription Cancelled: Cancel subscription in Stripe/PayPal, verify tags removed
  4. Subscription Reactivated: Reactivate cancelled subscription, verify tags reapplied
  5. Refund Issued: Issue refund in Stripe/PayPal, verify access revoked

Step 21: Complete Post-Migration Verification Checklist

Work through the complete Post-Migration Verification Checklist. Key items for MemberPress → AccessAlly:

✅ Member Data Integrity
  • Total member count matches MemberPress export
  • Random sample of 10 members have correct tags in CRM
  • Contact IDs properly stored in WordPress user meta
  • No duplicate WordPress users or CRM contacts
✅ Access & Permissions
  • Test login as multiple membership levels
  • Verify tag-based access works for all protected content
  • Test access to posts, pages, categories
  • Verify non-members redirected appropriately
  • Check that expired/cancelled members don’t have access
✅ Subscriptions & Payments
  • Active subscriptions properly linked (sample 10 members)
  • Test new purchase flow works end-to-end
  • Verify webhook handling for Stripe and PayPal
  • 🚨 CRITICAL: Test failed payment access revocation
  • Test subscription cancellation handling
✅ Content & Courses
  • All protected posts/pages have correct tag requirements
  • Drip schedules work as expected
  • Course navigation displays correctly
  • Completion tracking functional
  • Sequential unlocking works (if used)
✅ Forms & Automation
  • All order forms functional and properly configured
  • Purchase tags apply correctly
  • Auto-login after purchase works
  • CRM automations trigger appropriately

Step 22: Plan Go-Live Strategy

Plan your cutover from MemberPress to AccessAlly:

Go-Live Checklist:

  1. Schedule downtime: 2-4 hour maintenance window (low-traffic time)
  2. Member communication: Email members 48 hours in advance about brief downtime
  3. Final MemberPress export: Capture any new signups since staging import
  4. Backup live site: Complete WordPress backup immediately before changes
  5. Disable MemberPress: Deactivate (don’t delete yet)
  6. Activate AccessAlly: Install and configure on live site
  7. Import final members: Import any new members from final export
  8. Update payment links: Replace MemberPress checkout links with AccessAlly order forms
  9. Test sample members: Verify 5-10 members can login and access content
  10. Go live: Remove maintenance mode
  11. Monitor closely: Watch for login/access issues for first 2 hours
⏱️ Downtime Window: Plan for 2-4 hours of downtime during the switch. This includes deactivating MemberPress, activating AccessAlly, importing final members, and testing. Don’t rush this – better to have scheduled downtime than unexpected issues.

Troubleshooting Common Issues

Issue 1: Members Can’t Access Content After Migration

Symptoms: Members have correct tags in CRM but get “You don’t have permission” errors

Causes:

  • Contact ID not stored in WordPress user meta during import
  • Post/page protection not set up correctly
  • Tag names in AccessAlly don’t match CRM exactly (case-sensitive)
  • AccessAlly → CRM connection broken

Solution:

  1. Check AccessAlly → Settings → General to verify CRM connection is active
  2. Pick one member with the issue
  3. Edit their WordPress user profile
  4. Check user meta for “[crm]_contact_id” (e.g., “activecampaign_contact_id”)
  5. If missing, re-import that user via Migration Wizard with “Update existing users” checked
  6. Verify the Contact ID matches their CRM contact ID
  7. Edit the post/page they can’t access
  8. Check “AccessAlly Protection” settings – verify tag name matches CRM exactly
  9. Test access again

Issue 2: Access Rules Don’t Match MemberPress Behavior

Symptoms: Content that was protected in MemberPress is accessible to everyone, or vice versa

Causes:

  • Forgot to add AccessAlly protection to some posts/pages
  • Category protection from MemberPress not converted to individual post protection
  • Multiple membership levels in MemberPress not properly mapped to multiple tags

Solution:

  1. Use MemberPress → Rules to list all protected content
  2. Cross-reference with AccessAlly protection settings
  3. For posts missing protection:
    • Edit post in WordPress
    • Add AccessAlly Protection meta box
    • Set required tags
    • Save
  4. For posts with wrong protection, update tag requirements to match your mapping

Issue 3: Drip Content Not Unlocking

Symptoms: Dripped lessons stay locked even after the scheduled unlock time

Causes:

  • AccessAlly Module drip schedule not configured correctly
  • Member doesn’t have the “progress tracking tag” required for drip schedules
  • WordPress cron jobs not running (required for scheduled unlocks)

Solution:

  1. Go to AccessAlly → Modules
  2. Edit the Module with drip schedule
  3. Verify “Tag to Track Progress” is set
  4. Check drip schedule type (sequential, scheduled, fixed date)
  5. Verify schedule settings (e.g., “7 days after tag applied”)
  6. Check that members have the progress tracking tag in CRM
  7. Test with a member account
  8. If still not working, check WordPress cron:
    • Install “WP Crontrol” plugin
    • Check if AccessAlly cron jobs are scheduled and running

Issue 4: Payment Forms Not Working

Symptoms: Order form submissions fail, payment not processed, or tags not applied

Causes:

  • Stripe/PayPal not properly connected to AccessAlly
  • Stripe webhook not configured or failing
  • Order form missing required fields
  • JavaScript errors on checkout page

Solution:

  1. Go to AccessAlly → Settings → Integrations
  2. Verify Stripe/PayPal API keys are correct
  3. Test connection (AccessAlly has a “Test Connection” button)
  4. Check Stripe Dashboard → Webhooks – verify webhook is active and not failing
  5. Edit the Order Form having issues:
    • Verify product price is set correctly
    • Check payment gateway selected
    • Verify tags to apply are set
    • Ensure redirect URL is valid
  6. Open browser console (F12) and try submitting form
  7. Check for JavaScript errors
  8. Test with browser caching/plugins disabled

Issue 5: Subscription Not Linked to Member Account

Symptoms: Active subscriber showing as “no subscription” in AccessAlly, or failed payment doesn’t cancel access

Causes:

  • Subscription ID not imported correctly during migration
  • Subscription ID in CSV doesn’t match Stripe/PayPal actual ID
  • Gateway field set wrong (“stripe” vs “paypal”)
  • Subscription existed in MemberPress but not found in Stripe/PayPal

Solution:

  1. Export active subscriptions from Stripe/PayPal
  2. Match subscription IDs to member email addresses
  3. In WordPress, edit the member’s user profile
  4. Scroll to “AccessAlly Subscription Data”
  5. Manually enter:
    • Subscription ID (from Stripe/PayPal)
    • Gateway (“stripe” or “paypal”)
    • Status (“active”)
  6. Save user profile
  7. Test failed payment handling for this subscription

Detailed guide: Preserving Subscriptions During Migration

Issue 6: Content Not Protecting Properly

Symptoms: Protected content visible to logged-out users or members without correct tags

Causes:

  • AccessAlly Protection meta box not added to post/page
  • WordPress caching showing protected content to non-members
  • AccessAlly not active or license expired
  • Theme/plugin conflict overriding protection

Solution:

  1. Edit the post/page that’s not protecting correctly
  2. Verify “AccessAlly Protection” meta box exists and is configured
  3. Check that required tags are listed
  4. Save post/page
  5. Clear all WordPress caching:
    • Clear page cache (WP Rocket, W3 Total Cache, etc.)
    • Clear object cache if using Redis/Memcached
    • Clear CDN cache (Cloudflare, etc.)
  6. Test in incognito/private browser window
  7. If still not working, check AccessAlly license status
  8. Deactivate other plugins temporarily to check for conflicts
⚠️ Caching Configuration Required: AccessAlly requires proper cache exclusion rules. Protected pages MUST NOT be cached. See Caching Exclusion Guide for AccessAlly.

Member Communication Strategy

Your members need to know about the migration, especially if there will be any changes to their login process, access, or member dashboard. Poor communication causes support ticket spikes and member churn.

Pre-Migration Communication (48-72 hours before):

Send an email to all active members with:

  • What’s happening: “We’re upgrading to a new membership system with better course features”
  • When: Specific date and time of downtime window
  • How long: Expected downtime (e.g., “Site will be in maintenance mode for 2-4 hours”)
  • What they need to do: Usually nothing, but prepare them for any login changes
  • What’s improving: Highlight new features they’ll benefit from (course navigation, progress tracking, etc.)
  • Support contact: How to reach you if they have issues after migration

Sample Pre-Migration Email Template:

Subject: Important: Membership Site Upgrade This Weekend

Hi [First Name],

We’re excited to announce that we’re upgrading our membership platform this weekend to provide you with a better learning experience!

📅 When: Saturday, [DATE] from [START TIME] to [END TIME] [TIMEZONE] ⏱️ Expected Downtime: 2-4 hours
✨ What’s New: Enhanced course navigation, progress tracking, mobile-friendly interface, and faster page loads

What You Need To Do: Nothing! Your login credentials remain the same. All your course progress and access will be preserved.

After the upgrade: You may need to clear your browser cache or use an incognito/private window for your first login. Your course dashboard will look slightly different but all your content will be exactly where you left it.

If you experience any issues after the migration, please reply to this email or contact us at [SUPPORT EMAIL].

Thank you for your patience as we make these improvements for you!

[Your Name]

During Migration:

  • Enable WordPress maintenance mode immediately when starting
  • Use a clear maintenance page: “We’re upgrading! Back in 2-4 hours.”
  • Include your support email on the maintenance page
  • If migration takes longer than expected, post updates on social media

Post-Migration Communication (within 2 hours of going live):

Send an email confirming the migration is complete:

  • “We’re back online!” with link to login page
  • Highlight one or two new features they’ll notice immediately
  • Remind them to clear cache if they have any issues
  • Provide support contact for any issues
  • Thank them for their patience

Post-Migration Monitoring (Week 1):

  • Monitor support tickets closely for migration-related issues
  • Create a FAQ document for common post-migration questions
  • Consider a quick video walkthrough of the new member dashboard
  • Be proactive: reach out to members who haven’t logged in within 3 days
⚠️ Password Reset Consideration: Some businesses force a password reset after migration for security. If you do this, clearly communicate it in advance and make the reset process as simple as possible. However, forcing resets often causes support ticket spikes – only do this if you have a specific security reason.

Rollback Plan

Despite careful planning, migrations can fail. You need a rollback plan before you start.

Pre-Migration Rollback Preparation:

  1. Full site backup: WordPress files + database backup taken immediately before starting
  2. Backup location: Store backup off-server (local computer or separate cloud storage)
  3. Test restore: Before migration day, verify you can successfully restore from backup on staging
  4. Document current MemberPress settings: Screenshot all MemberPress → Settings pages
  5. Keep MemberPress plugin files: Don’t delete MemberPress plugin, just deactivate it

Rollback Triggers (when to abort and rollback):

  • More than 10% of members can’t login after migration
  • Payment forms failing repeatedly (can’t process test transactions)
  • Contact ID linking fails for majority of members
  • Critical content protection issues (paid content accessible to non-members)
  • CRM connection repeatedly failing
  • Downtime exceeds planned window by more than 2 hours

Rollback Procedure:

  1. Stay calm: Rollbacks are normal in complex migrations. Don’t panic.
  2. Put site in maintenance mode (if not already)
  3. Deactivate AccessAlly plugin
  4. Restore WordPress database from pre-migration backup
  5. Restore WordPress files if any theme/plugin changes were made
  6. Reactivate MemberPress
  7. Test member login and access (verify restoration worked)
  8. Remove maintenance mode
  9. Send email to members: “We encountered technical issues with the upgrade and have rolled back to the previous system. We’ll reschedule the upgrade once we resolve the issues. Your access and data are completely safe.”
  10. Post-mortem: Identify what went wrong, fix it on staging, schedule new migration date
🚨 Don’t Rush Through Issues: If you’re encountering problems during migration, it’s better to roll back and try again than to force through and leave your site broken. Your members will be more forgiving of a delayed upgrade than they will be of a broken membership site.

Migration Timeline & Downtime

Total Time Estimate: 20-30 hours (planning, execution, testing)

Phase Time Downtime Required?
Planning & Data Export 3-4 hours ❌ No
CRM Setup & Tag Mapping 2-3 hours ❌ No
AccessAlly Installation (Staging) 1 hour ❌ No (staging only)
Content Protection Conversion 4-6 hours ❌ No
Drip Content Recreation 2-3 hours ❌ No
Payment Forms Setup 2-3 hours ❌ No
Member Data Import 2-3 hours ❌ No (staging)
Subscription Verification 1-2 hours ❌ No
Testing & Verification 4-5 hours ❌ No (staging)
Live Site Cutover 2-4 hours ✅ Yes (REQUIRED)
Post-Launch Monitoring 2-3 hours (first 24 hours) ❌ No

Recommended Downtime Window: 2-4 hours on a weekend or low-traffic period for the live site cutover (disabling MemberPress, activating AccessAlly, final import)


Need Help?

Migration Support:

Related Guides:

🎯 Migration Success Checklist:

  • ✅ All members imported with correct tags in CRM
  • ✅ Contact IDs properly linked in WordPress user meta
  • ✅ All protected content has tag-based protection configured
  • ✅ Drip content schedules recreated and functional
  • ✅ Payment forms working end-to-end (test purchases successful)
  • ✅ Active subscriptions linked to member accounts
  • ✅ Payment gateway webhooks configured and tested
  • ✅ Failed payment access revocation tested and working
  • ✅ Member login working for all membership levels
  • ✅ Tag-based access rules verified for each level
  • ✅ Course navigation and tracking functional (if used)
  • ✅ Caching properly configured to exclude protected content
  • ✅ No critical support tickets after 7 days
📝 Post-Migration Cleanup (After 30 Days):

  • Verify all members can access content correctly
  • Confirm no subscription/payment issues
  • Monitor for access-related support tickets
  • Once stable, deactivate and delete MemberPress plugin
  • Clean up old MemberPress database tables (optional – backup first!)
  • Update all documentation and member help resources
  • Remove old MemberPress checkout links from marketing materials
Updated on January 16, 2026
Was this article helpful?

Related Articles

NO QUESTION GOES UNANSWERED

Live Weekly Q&A

Join us for live Q&A. Learn the basics, discover what's possible, and connect with AccessAlly users.

Need Support?

Have questions? Get in touch. Our inbox support hours are 9am-5pm EST, Monday - Friday.

Laptop with the AccessAlly demo site

AccessAlly is the most flexible way to sell and elegantly deliver digital offerings. All in one place.

WATCH THE DEMO

You'll get follow-up emails about AccessAlly and new features. Opt out anytime. Full privacy policy here.