oont-contents/plugins/ultimate-member/includes/admin/templates/role/wp-capabilities.php
2025-02-08 15:10:23 +01:00

93 lines
2.7 KiB
PHP

<?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'];
$role_capabilities = ! empty( $role['wp_capabilities'] ) ? array_keys( $role['wp_capabilities'] ) : array( 'read' );
if ( ! empty( $_GET['id'] ) ) {
$role = get_role( sanitize_key( $_GET['id'] ) );
}
$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 ) );
$fields = array();
foreach ( $all_caps as $cap ) {
if ( is_numeric( $cap ) ) {
continue;
}
$fields[ $cap ] = $cap;
}
UM()->admin_forms( array(
'class' => 'um-role-wp-capabilities',
'prefix_id' => 'role',
'fields' => array(
array(
'id' => 'wp_capabilities',
'type' => 'multi_checkbox',
'options' => $fields,
'value' => ! empty( $role_capabilities ) ? $role_capabilities : array(),
'columns' => 3,
'without_label' => true,
)
)
) )->render_form(); ?>
</div>