Here are some sample snippets helpful for tweaking the functionality of the WooCommerce Memberships plugin.
If you’re looking for more details on modifying Memberships or “For Developers” samples, please view our developer documentation.
Member Area
↑ Back to topRemove Cancel action from My Memberships table
↑ Back to topThe actions in the “My Memberships” table can be removed if you don’t want to allow your members to manage their own memberships. This snippet removes the “Cancel” action from the “My Memberships” table in the account area.
Note: Memberships automatically does this for you if a membership is tied to a subscription, forcing cancellation via the billing instead.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Only copy the opening php tag if needed | |
*/ | |
function sv_edit_my_memberships_actions( $actions ) { | |
// remove the "Cancel" action for members | |
unset( $actions['cancel'] ); | |
return $actions; | |
} | |
add_filter( 'wc_memberships_members_area_my-memberships_actions', 'sv_edit_my_memberships_actions' ); | |
add_filter( 'wc_memberships_members_area_my-membership-details_actions', 'sv_edit_my_memberships_actions' ); |
Remove End Date Column from My Memberships
↑ Back to topRemoves the “End Date” column from being displayed for all user memberships.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Only copy opening php tag if needed | |
// Remove the "End Date" column from the My Memberships table | |
function sv_remove_membership_end_date_column( $columns ) { | |
unset( $columns['membership-end-date'] ); | |
return $columns; | |
} | |
add_filter( 'wc_memberships_my_memberships_column_names', 'sv_remove_membership_end_date_column' ); |
Remove Type Column from My Content Area
↑ Back to topThe “My Content” section of the Member Area will show the content type (Post, Page, Project, Forum, etc) as this paginated section shows all accessible content (posts, pages, custom post types) on the site. This snippet removes the “Type” column if its display isn’t needed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Only copy opening php tag if needed | |
// Removes the "Type" column from the "My Content" section of the member area | |
function sv_members_area_content_remove_column( $columns ) { | |
// unset the "type" column, which shows post, page, project, etc | |
if ( isset( $columns['membership-content-type'] ) ) { | |
unset( $columns['membership-content-type'] ); | |
} | |
return $columns; | |
} | |
add_filter( 'wc_memberships_members_area_my_membership_content_column_names', 'sv_members_area_content_remove_column' ); |
Remove Description Column from My Products Area
↑ Back to topThe paginated “My Products” section of the Member Area will show all accessible products for the member (those the plan grants viewing / purchasing for). This snippet removes the “Description” / Excerpt column if its display isn’t needed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Only copy opening php if needed | |
// Removes the product short description / excerpt column from "My Products" | |
function sv_members_area_products_table_columns( $columns ) { | |
if ( isset( $columns['membership-product-excerpt'] ) ) { | |
unset( $columns['membership-product-excerpt'] ); | |
} | |
return $columns; | |
} | |
add_filter('wc_memberships_members_area_my_membership_products_column_names', 'sv_members_area_products_table_columns', 10, 1 ); |
Blog & Posts
↑ Back to topShow Lock Icon on Restricted Posts
↑ Back to topThis snippet requires your site to have loaded FontAwesome already, as it uses the FontAwesome lock icon. It will show a lock next to the title of any post the member does not have access to yet, or any restricted posts for non-members.
Shop Pages
↑ Back to topRemove Member Discount Badges
↑ Back to topThe member discount badge’s HTML is filterable, and therefore it can be removed completely using this snippet:
add_filter( 'wc_memberships_member_discount_badge', '__return_empty_string' );
Disable Discount Stacking
↑ Back to topBy default, Memberships will assume that members should always have all benefits of a membership plan. However, this could potentially result in a member receiving 2 discounts or more on a product if the member has multiple plans with discounts.
If you want to disable this behavior, Memberships can instead choose the best discount only instead of stacking discounts — add this snippet to do so:
add_filter( 'wc_memberships_allow_cumulative_member_discounts', '__return_false' );
Integrations
↑ Back to topAdd Social Login Buttons to Restriction Messages
↑ Back to topYou can add WooCommerce Social Login buttons into the “content restricted” notices to make it easier for members with a linked account to log in.
We do have this on our Memberships / Social Login roadmaps to add support for. Until this happens within the plugins themselves, you could add this code snippet to show login buttons in content restriction notices.
Other Snippets
↑ Back to topGrant Access only from Completed Orders
↑ Back to topBy default, Memberships grants access to customers for any processing or completed order on your site since these represent paid orders. If you’d like access to only be granted when an order is ‘completed’, but not while it’s ‘processing’, you can use this snippet:
If you want to add statuses (such as custom statuses) that grant access, our developer documentation can help.
Create My Memberships Shortcode
↑ Back to topIf you want to output the “My Memberships” table outside of the “My Account” area, you can create a shortcode to do so. Please have a look at this snippet.
More Snippets
↑ Back to topWe keep a collection of team snippets for our plugins in this repository. However, the same policy applies — we cannot support these snippets, assist with implementation, or assist with further customizations.
Table of Contents
↑ Back to topAll done here? Return to documentation overview →