Filter Uncanny Redemption Codes

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',
			)
		);
	}

Scroll to Top