All Users table.
*
* @package Restrict Content Pro
* @subpackage User Page Columns
* @copyright Copyright (c) 2017, Restrict Content Pro
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
*/
/**
* Add user column to display membership status.
*
* @param array $columns
*
* @return array
*/
function rcp_add_user_columns( $columns ) {
$columns['rcp_subscription'] = rcp_multiple_memberships_enabled() ? __( 'Membership(s)', 'rcp' ) : __( 'Membership', 'rcp' );
return $columns;
}
add_filter( 'manage_users_columns', 'rcp_add_user_columns' );
/**
* Display user column value
*
* @param string $value Column value.
* @param string $column_name Name of the current column.
* @param int $user_id ID of the user.
*
* @return string
*/
function rcp_show_user_columns( $value, $column_name, $user_id ) {
if ( 'rcp_subscription' !== $column_name ) {
return $value;
}
$customer = rcp_get_customer_by_user_id( $user_id );
$memberships = is_object( $customer ) ? $customer->get_memberships() : array();
$admin_page = rcp_get_memberships_admin_page();
$user = get_userdata( $user_id );
$memberships_html = array();
if ( ! empty( $memberships ) ) {
foreach ( $memberships as $membership ) {
/**
* @var RCP_Membership $membership
*/
$edit_page = add_query_arg( array(
'membership_id' => urlencode( $membership->get_id() ),
'view' => 'edit'
), $admin_page );
$memberships_html[] = sprintf( '%s (%s) - %s', esc_html( $membership->get_membership_level_name() ), esc_html( $membership->get_status() ), esc_url( $edit_page ), __( 'Edit', 'rcp' ) );
}
}
if ( empty( $memberships ) || rcp_multiple_memberships_enabled() ) {
$add_membership_page = add_query_arg( array(
'view' => 'add',
'email' => urlencode( $user->user_email )
), $admin_page );
$memberships_html[] = '' . __( 'Add Membership', 'rcp' ) . '';
}
$value = implode( '
', $memberships_html );
return $value;
}
add_filter( 'manage_users_custom_column', 'rcp_show_user_columns', 100, 3 );
/**
* Add bulk "Add RCP Membership" button to Users > All Users table.
*
* @since 3.1
* @return void
*/
function rcp_bulk_add_membership_select() {
// Bail if current user cannot manage members.
if ( ! current_user_can( 'rcp_manage_members' ) ) {
return;
}
$levels = rcp_get_membership_levels( array( 'number' => 999 ) );
if ( empty( $levels ) ) {
return;
}
?>