ulc_capability
Filters the capability required for managing options within the plugin, allowing customization of access levels.
add_filter( 'ulc_capability', $callback, 10, 1 );
Description
Filters the capability required to access the Uncanny Redemption Codes admin menu. Developers can use this hook to set a custom capability for menu access, overriding the default 'manage_options'. This allows for more granular control over who can manage redemption codes within WordPress.
Usage
add_filter( 'ulc_capability', 'your_function_name', 10, 1 );
Return Value
The filtered value.
Examples
/**
* Filter the capability required to access the Uncanny Redemption Codes admin menu.
*
* This example demonstrates how to change the required capability from 'manage_options'
* to 'edit_posts' for users who can edit posts, effectively making the menu
* accessible to editors and administrators.
*
* @param string $capability The current capability required. Defaults to 'manage_options'.
* @return string The modified capability.
*/
add_filter( 'ulc_capability', 'my_custom_ulc_capability', 10, 1 );
function my_custom_ulc_capability( $capability ) {
// Change the required capability to 'edit_posts' to allow editors to access the menu.
return 'edit_posts';
}
Placement
This code should be placed in the functions.php file of your active theme, a custom plugin, or using a code snippets plugin.
Source Code
src/classes/admin/admin-menu.php:56
public static function register_options_menu_page() {
$page_title = 'Uncanny Redemption Codes';
$menu_title = 'Uncanny Codes';
$capability = apply_filters( 'ulc_capability', 'manage_options' );
$menu_slug = 'uncanny-learndash-codes';
$function = array( __CLASS__, 'options_menu_view_codes' );
$icon_url = SharedFunctionality::get_svg_data_uri();
// 42 - Above Settings Menu.
$position = 42;
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
if ( is_numeric( SharedFunctionality::ulc_filter_input( 'group_id' ) ) && 'true' === SharedFunctionality::ulc_filter_input( 'edit' ) ) {
$sub_menu_title = esc_html__( 'Modify Codes', 'uncanny-learndash-codes' );
} else {
$sub_menu_title = esc_html__( 'Generate Codes', 'uncanny-learndash-codes' );
}
add_submenu_page(
$menu_slug,
esc_html__( 'View Codes', 'uncanny-learndash-codes' ),
esc_html__( 'View Codes', 'uncanny-learndash-codes' ),
$capability,
'uncanny-learndash-codes',
array(
__CLASS__,
'options_menu_view_codes',
)
);
add_submenu_page(
$menu_slug,
$sub_menu_title,
$sub_menu_title,
$capability,
'uncanny-learndash-codes-create',
array(
__CLASS__,
'options_menu_page_output',
)
);
add_submenu_page(
$menu_slug,
esc_html__( 'Cancel Codes', 'uncanny-learndash-codes' ),
esc_html__( 'Cancel Codes', 'uncanny-learndash-codes' ),
$capability,
'uncanny-learndash-codes-cancel',
array(
__CLASS__,
'options_menu_cancel_codes_page',
)
);
add_submenu_page(
$menu_slug,
esc_html__( 'Settings', 'uncanny-learndash-codes' ),
esc_html__( 'Settings', 'uncanny-learndash-codes' ),
$capability,
'uncanny-learndash-codes-settings',
array(
__CLASS__,
'options_menu_settings_page',
)
);
}