function badgeos_obi_issuer_settings() { if (!current_user_can(badgeos_get_manager_capability())) { wp_die("You do not have sufficient permissions to access this page."); } ?> <div class="wrap"> <?php settings_errors(); ?> <?php $this->json_api_controller_status(); ?> <h2>Open Badges Issuer Add-on Settings</h2> <form method="post" action="options.php"> <?php @settings_fields('badgeos_obi_issuer_settings'); ?> <?php @do_settings_fields('badgeos_obi_issuer_settings'); ?> <?php do_settings_sections('badgeos_obi_issuer_template'); ?> <?php @submit_button(); ?> </form> </div> <?php }
/** * Register each of our Achivement Types as CPTs * * @since 1.0.0 * @return void */ function badgeos_register_achievement_type_cpt() { // Grab all of our achievement type posts $achievement_types = get_posts(array('post_type' => 'achievement-type', 'posts_per_page' => -1)); // Loop through each achievement type post and register it as a CPT foreach ($achievement_types as $achievement_type) { // Grab our achievement name $achievement_name = $achievement_type->post_title; // Update our post meta to use the achievement name, if it's empty if ($achievement_name != get_post_meta($achievement_type->ID, '_badgeos_singular_name', true)) { update_post_meta($achievement_type->ID, '_badgeos_singular_name', $achievement_name); } if (!get_post_meta($achievement_type->ID, '_badgeos_plural_name', true)) { update_post_meta($achievement_type->ID, '_badgeos_plural_name', $achievement_name); } // Setup our singular and plural versions to use the corresponding meta $achievement_name_singular = get_post_meta($achievement_type->ID, '_badgeos_singular_name', true); $achievement_name_plural = get_post_meta($achievement_type->ID, '_badgeos_plural_name', true); // Determine whether this achievement type should be visible in the menu $show_in_menu = get_post_meta($achievement_type->ID, '_badgeos_show_in_menu', true) ? 'badgeos_badgeos' : false; // Register the post type register_post_type(sanitize_title(substr(strtolower($achievement_name_singular), 0, 20)), array('labels' => array('name' => $achievement_name_plural, 'singular_name' => $achievement_name_singular, 'add_new' => __('Add New', 'badgeos'), 'add_new_item' => sprintf(__('Add New %s', 'badgeos'), $achievement_name_singular), 'edit_item' => sprintf(__('Edit %s', 'badgeos'), $achievement_name_singular), 'new_item' => sprintf(__('New %s', 'badgeos'), $achievement_name_singular), 'all_items' => $achievement_name_plural, 'view_item' => sprintf(__('View %s', 'badgeos'), $achievement_name_singular), 'search_items' => sprintf(__('Search %s', 'badgeos'), $achievement_name_plural), 'not_found' => sprintf(__('No %s found', 'badgeos'), strtolower($achievement_name_plural)), 'not_found_in_trash' => sprintf(__('No %s found in Trash', 'badgeos'), strtolower($achievement_name_plural)), 'parent_item_colon' => '', 'menu_name' => $achievement_name_plural), 'public' => true, 'publicly_queryable' => true, 'show_ui' => current_user_can(badgeos_get_manager_capability()), 'show_in_menu' => $show_in_menu, 'query_var' => true, 'rewrite' => array('slug' => sanitize_title(strtolower($achievement_name_singular))), 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => true, 'menu_position' => null, 'supports' => array('title', 'editor', 'excerpt', 'author', 'thumbnail', 'page-attributes'))); // Register the Achievement type badgeos_register_achievement_type(strtolower($achievement_name_singular), strtolower($achievement_name_plural)); } }
/** * Create BadgeOS Settings menus */ function plugin_menu() { // Set minimum role setting for menus $minimum_role = badgeos_get_manager_capability(); // Create main menu add_menu_page('BadgeOS', 'BadgeOS', $minimum_role, 'badgeos_badgeos', 'badgeos_settings', $this->directory_url . 'images/badgeos_icon.png', 110); // Create submenu items add_submenu_page('badgeos_badgeos', __('BadgeOS Settings', 'badgeos'), __('Settings', 'badgeos'), $minimum_role, 'badgeos_settings', 'badgeos_settings_page'); add_submenu_page('badgeos_badgeos', __('Credly Integration', 'badgeos'), __('Credly Integration', 'badgeos'), $minimum_role, 'badgeos_sub_credly_integration', 'badgeos_credly_options_page'); add_submenu_page('badgeos_badgeos', __('Add-Ons', 'badgeos'), __('Add-Ons', 'badgeos'), $minimum_role, 'badgeos_sub_add_ons', 'badgeos_add_ons_page'); add_submenu_page('badgeos_badgeos', __('Help / Support', 'badgeos'), __('Help / Support', 'badgeos'), $minimum_role, 'badgeos_sub_help_support', 'badgeos_help_support_page'); }
/** * Check if a user can manage submissions. * * @since 1.4.0 * * @param integer $user_id User ID. * @return bool True if user can manaage submissions, otherwise false. */ function badgeos_user_can_manage_submissions($user_id = 0) { if (empty($user_id)) { $user_id = get_current_user_id(); } return user_can($user_id, badgeos_get_submission_manager_capability()) || user_can($user_id, badgeos_get_manager_capability()); }
/** * Process the adding/revoking of achievements on the user profile page * * @since 1.0.0 * @return void */ function badgeos_process_user_data() { //verify uesr meets minimum role to view earned badges if (current_user_can(badgeos_get_manager_capability())) { // Process awarding achievement to user if (isset($_GET['action']) && 'award' == $_GET['action'] && isset($_GET['user_id']) && isset($_GET['achievement_id'])) { // Verify our nonce check_admin_referer('badgeos_award_achievement'); // Award the achievement badgeos_award_achievement_to_user(absint($_GET['achievement_id']), absint($_GET['user_id'])); // Redirect back to the user editor wp_redirect(add_query_arg('user_id', absint($_GET['user_id']), admin_url('user-edit.php'))); exit; } // Process revoking achievement from a user if (isset($_GET['action']) && 'revoke' == $_GET['action'] && isset($_GET['user_id']) && isset($_GET['achievement_id'])) { // Verify our nonce check_admin_referer('badgeos_revoke_achievement'); // Revoke the achievement badgeos_revoke_achievement_from_user(absint($_GET['achievement_id']), absint($_GET['user_id'])); // Redirect back to the user editor wp_redirect(add_query_arg('user_id', absint($_GET['user_id']), admin_url('user-edit.php'))); exit; } } }