• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

RocketGeek

Home of WP-Members, The Original WordPress Membership Plugin

  • WordPress Plugins
    • WP-Members
      • FAQs
      • Quick Start
      • Documentation
      • Extensions
    • Advanced Options
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Download Protect
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Invite Codes
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • MailChimp Integration
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • PayPal Subscriptions
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Salesforce Web-to-Lead
    • Security
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Text Editor
      • Purchase the Plugin
      • Get the Pro Bundle
    • User List
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • User Tracking
      • Documentation
      • Purchase the Plugin
      • Get the Pro Bundle
    • Memberships for WooCommerce
    • WordPass
  • Blog
    • Basics
    • Tips and Tricks
    • Filters
    • Actions
    • Code Snippets
    • Shortcodes
    • Design
    • Release Announcements
  • Store
    • Cart
    • Checkout
  • Contact
  • Log In
  • Show Search
Hide Search
Home » Plugins » WP-Members » Documentation » Filter Hooks » wpmem_product_restricted_msg

wpmem_product_restricted_msg

Description

Filters the message when a user does not have the membership product
required to access content.

Parameters

$msg
(string)(required) The product restricted message.

$post_products
(array)(optional) an array of membership products the content is restricted to.

Usage

Basic custom filter:

add_filter( 'wpmem_product_restricted_msg', 'my_product_restricted_msg', 10, 2 );
function my_product_restricted_msg( $msg, $post_products ) {
    
    $msg = "This is post is restricted.";

    return $msg;
}

This more complex example shows how to use the $post_products array to build a custom message where the post may be restricted to one or more memberships. This is a good example of how to use a PHP array loop to build a custom text string where the last value may need to be handled different from the previous values.  In this example, the last value has an “or ” added to the beginning instead of a “, ” like the others so that a logical sentence is constructed as a result.

/**
 * This example checks the products array in the filter
 * to see if there is more than one product. If it is
 * just one, it creates a simple message string of:
 * "Sorry, you must have a {name of product}" message by
 * getting the product title from the membership products
 * object in the main $wpmem object class.
 *
 * But if there are multiple products assigned, it loops
 * through and builds a string so that the product names
 * are separated by commas, with the last one adding
 * an ", or". This is a good example of how to work with
 * arrays in PHP.
 *
 * Follow the comments to get a handle on what the snippet
 * is doing at each logical step.
 */
add_filter( 'wpmem_product_restricted_msg', 'my_custom_product_restricted_msg', 10, 2 );
function my_custom_product_restricted_msg( $msg, $post_products ) {
    
    // You will need the global $wpmem object.
    global $wpmem;
    
    // Assemble a string with the product titles.
    // If $post_products array is more than one product:
    if ( count( $post_products ) > 1 ) {
        
        // Start with an empty container:
        $products = '';
        
        // Loop through the products to get their titles:
        foreach ( $post_products as $key => $post_product ) {
            
            // If this is the end of the product array, add ", or".
            // Note .= adds to the whatever is in the existing string $products
            end( $post_products );
            if ( $key === key( $post_products ) ) {
                $products .= "or " . $wpmem->membership->products[ $post_product ]['title'];
            } else {    
                // Otherwise, if this is not the end, add a comma/space:
                $products .= $wpmem->membership->products[ $post_product ]['title'] . ", ";
            }
        }

    } else {
        // OR... if $post_products array is just one product:
        $products = $wpmem->membership->products[ $post_products[0] ]['title'];
    }

    // Put the assembled $products string into your custom message:
    $msg = "Sorry, you must have a " . $products . " membership to access this content.";
    
    // Return the custom message.
    return $msg;
}

Notes

The $post_products array contains an array of membership product slugs the post content is restricted to. This can be used to write more specific error messages based on the specific membership.

Changelog

  • Introduced in 3.2.3

Source

wpmem_login_redirect is located in includes/class-wp-members-products.php

Not sure what to do with this code?

You're not a "coder" and don't know what to do? Don't worry! Code Snippets are the basic building blocks of WordPress customization, and once you know the basics, they are simple to use.

Here are some free articles to get you started:

  • Using Code Snippets from the Site
  • Using a code snippets plugin
  • The functions.php File
  • Create a plugin file for custom functions
  • Create a child theme
  • Do not modify plugin files!

For "hands on" help, consider a plugin support subscription or the Pro Bundle.

  • Getting Started
  • Recommended WordPress® Settings
  • Plugin Settings
    • Options
    • Fields
    • Dialogs
    • Emails
    • New Feature Settings
  • Managing Content
    • Restricting Posts
    • Restricting Pages
    • Show Excerpts
    • Custom Post Types
  • Managing Users
    • Import Users
    • Export Users
    • Edit Users
    • Search Users
  • Login
  • Registration
    • Choosing Fields
    • Create a Registration Page
    • Moderating Registration
    • Using CAPTCHA
    • Removing Registration Options
  • User Profile
  • Memberships
    • Membership Properties
    • Membership Levels
  • Menus
    • Individual Menu Items
    • Logged In Menus
    • Login/Logout Menu Link
  • Customizing Emails
    • Email Address
    • Email Content
    • Email Format
    • Email Shortcodes
    • Email Troubleshooting
  • Customizing Forms
    • Create a Custom Stylesheet
    • Using the WordPress Customizer
    • Login Form HTML
    • Registration Form HTML
    • Widget Login Form HTML
  • Translation and Localization
    • Maintain a custom translation file
    • Filter untranslated strings
    • Multi-language Considerations
  • Shortcodes
    • Pages and Forms
    • Login Status
    • User Fields
    • Memberships
    • Email
    • Other Shortcodes
  • WP-CLI Commands
  • API Functions
  • Filter Hooks
  • Action Hooks
  • FAQs
    • Email troubleshooting
    • Passwords are not being included in Emails
    • The plugin isn’t blocking my content
    • Are files protected?
    • How can I prevent registration spam?
    • How to add a shortcode
    • How to apply login redirects
    • Why can’t users log in?
    • Why does reCAPTCHA v3 fail?
    • Troubleshooting Really Simple Captcha
    • Why do I get a 403 error?
    • How do I use code snippets?
    • My changes aren’t showing up
    • How to hide the “Admin Bar”
    • How to add a forgot password link
    • Password reset doesn’t show any fields
    • Domain not included in the password reset link
    • There was an error processing the form
    • Hidden vs. Restricted
  • Demo Videos
  • How to Request Support
  • Copy Settings for Support
  • Hosting Recommendations

Ready to get started?

Join Today!

© 2025 · butlerblog.com · RocketGeek is built using WordPress, WP-Members, and the Genesis Framework

  • butlerblog.com
  • WP-Members Support Subscription
  • Terms of Service
  • Privacy Policy
  • Refund Policy