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 and All Post dashboard page to show what levels are required to view. Raw
<?php
/**
* Add a Requires Membership Column to All Page and Post Views.
* This is an easy way to see how your content is being restricted for members.
*/
// Add a new column to the all pages and posts views
function requires_membership_columns_head( $defaults ) {
$defaults['requires_membership'] = 'Requires Membership';
return $defaults;
}
// Get the column data for pages and posts
function requires_membership_columns_content( $column_name, $post_ID ) {
if ( $column_name == 'requires_membership' ) {
global $membership_levels, $wpdb;
// Retrieve membership levels protecting the content
$post_levels = $wpdb->get_col(
$wpdb->prepare(
"SELECT membership_id FROM {$wpdb->pmpro_memberships_pages} WHERE page_id = %d",
$post_ID
)
);
$protected_levels = array();
if ( ! empty( $post_levels ) ) {
foreach ( $membership_levels as $level ) {
if ( in_array( $level->id, $post_levels ) ) {
$protected_levels[] = $level->name;
}
}
}
// Display the membership levels or 'None'
echo ! empty( $protected_levels ) ? implode( ', ', $protected_levels ) : 'None';
}
}
// Add column for pages
add_filter( 'manage_pages_columns', 'requires_membership_columns_head' );
add_action( 'manage_pages_custom_column', 'requires_membership_columns_content', 10, 2 );
// Add column for posts
add_filter( 'manage_posts_columns', 'requires_membership_columns_head' );
add_action( 'manage_posts_custom_column', 'requires_membership_columns_content', 10, 2 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment