Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save kimwhite/70276323ca06538c455adf299ad71e1a to your computer and use it in GitHub Desktop.
Save kimwhite/70276323ca06538c455adf299ad71e1a to your computer and use it in GitHub Desktop.
Add a "Requires Membership" column to the All Pages dashboard page to show what levels are required to view. Raw
<?php
/**
* Add a Requires Membership Column to All Page view
* This is an easy way to see how your content is being restricted for members.
*
* You can add this recipe to your site by creating a custom plugin
* or using the Code Snippets plugin available for free in the WordPress repository.
* Read this companion article for step-by-step directions on either method.
* https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
//add a new column to the all pages view
function requires_membership_pages_columns_head( $defaults ) {
$defaults['requires_membership'] = 'Requires Membership';
return $defaults;
}
//get the column data
function requires_membership_pages_columns_content( $column_name, $post_ID ) {
if ($column_name == 'requires_membership') {
global $membership_levels, $wpdb;
$post_levels = $wpdb->get_col("SELECT membership_id FROM {$wpdb->pmpro_memberships_pages} WHERE page_id = '{$post_ID}'");
$protected_levels = array();
foreach($membership_levels as $level) {
if( in_array( $level->id, $post_levels ) ) {
$protected_levels[] = $level->name;
}
}
echo implode( ', ', $protected_levels);
}
}
add_filter( 'manage_pages_columns', 'requires_membership_pages_columns_head' );
add_action( 'manage_pages_custom_column', 'requires_membership_pages_columns_content', 10, 2 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment