Files
ultimatemember/includes/admin/templates/role/wp-capabilities.php
T

94 lines
2.7 KiB
PHP
Raw Normal View History

<?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
<div class="um-admin-metabox">
<script type="text/javascript">
jQuery(document).ready( function() {
jQuery('#um_wp_capabilities_select_all').click( function() {
if ( jQuery(this).is(':checked') ) {
jQuery('.um-role-wp-capabilities').find('input[type="checkbox"]').prop( 'checked', true );
} else {
jQuery('.um-role-wp-capabilities').find('input[type="checkbox"]').prop( 'checked', false );
}
um_change_check_all_label( jQuery(this) );
});
jQuery('.um-role-wp-capabilities input[type="checkbox"]').click( function() {
um_check_all_trigger();
});
um_check_all_trigger();
});
function um_check_all_trigger() {
var checkbox = jQuery('#um_wp_capabilities_select_all');
if ( jQuery('.um-role-wp-capabilities input[type="checkbox"]:checked').length == jQuery('.um-role-wp-capabilities input[type="checkbox"]').length ) {
checkbox.prop( 'checked', true );
} else {
checkbox.prop( 'checked', false );
}
um_change_check_all_label( checkbox );
}
function um_change_check_all_label( $checkbox ) {
if ( $checkbox.is(':checked') ) {
jQuery('#um_wp_capabilities_select_all_label').html( '<?php _e( 'Uncheck All', 'ultimate-member' ) ?>' );
} else {
jQuery('#um_wp_capabilities_select_all_label').html( '<?php _e( 'Check All', 'ultimate-member' ) ?>' );
}
}
</script>
<span style="padding: 10px 0 0 10px; float:left;">
<label style="float:left;">
<input type="checkbox" id="um_wp_capabilities_select_all" />
<span id="um_wp_capabilities_select_all_label"><?php _e( 'Check All', 'ultimate-member' ) ?></span>
</label>
</span>
<?php
$role = $object['data'];
2018-03-19 16:31:49 +02:00
$role_capabilities = ! empty( $role['wp_capabilities'] ) ? array_keys( $role['wp_capabilities'] ) : array( 'read' );
2018-03-19 16:31:49 +02:00
if ( ! empty( $_GET['id'] ) ) {
2020-02-12 12:36:47 +02:00
$role = get_role( sanitize_key( $_GET['id'] ) );
2018-03-19 16:31:49 +02:00
}
2018-03-19 16:31:49 +02:00
$all_caps = array();
foreach ( get_editable_roles() as $role_info ) {
if ( ! empty( $role_info['capabilities'] ) ) {
$all_caps = array_merge( $all_caps, $role_info['capabilities'] );
}
}
//gravity forms compatibility filter
$all_caps = apply_filters( 'members_get_capabilities', array_keys( $all_caps ) );
2018-03-19 16:31:49 +02:00
$fields = array();
foreach ( $all_caps as $cap ) {
if ( is_numeric( $cap ) ) {
continue;
}
2018-03-19 16:31:49 +02:00
$fields[ $cap ] = $cap;
}
2018-03-19 16:31:49 +02:00
UM()->admin_forms( array(
2020-02-28 15:51:45 +02:00
'class' => 'um-role-wp-capabilities',
'prefix_id' => 'role',
2018-03-19 16:31:49 +02:00
'fields' => array(
array(
2020-02-28 15:51:45 +02:00
'id' => 'wp_capabilities',
'type' => 'multi_checkbox',
2018-03-19 16:31:49 +02:00
'options' => $fields,
'value' => ! empty( $role_capabilities ) ? $role_capabilities : array(),
2020-02-28 15:51:45 +02:00
'columns' => 3,
'without_label' => true,
2018-03-19 16:31:49 +02:00
)
)
) )->render_form(); ?>
</div>