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');
 }
Example #4
0
/**
 * 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;
        }
    }
}