public function shortcode($atts, $content = null)
 {
     $atts = shortcode_atts(array('id' => false), $atts);
     $achievement = $atts['id'];
     $user_id = get_current_user_id();
     $user_has_achievement = $user_id && badgeos_has_user_earned_achievement(intval($achievement), $user_id);
     $return = '';
     if (!$achievement) {
         $return = '<div class="error">' . __('You have to specify a valid achievement id in the "id" parameter!', 'achievement-shortcode-for-badgeos') . '</div>';
     } elseif ($user_has_achievement) {
         $return = do_shortcode($content);
     }
     return $return;
 }
/**
 * Returns a message if user has earned the achievement.
 *
 * @since  1.1.0
 *
 * @param  integer $achievement_id Achievement ID.
 * @param  integer $user_id        User ID.
 * @return string                  HTML Markup.
 */
function badgeos_render_earned_achievement_text($achievement_id = 0, $user_id = 0)
{
    $earned_message = '';
    if (badgeos_has_user_earned_achievement($achievement_id, $user_id)) {
        $earned_message .= '<div class="badgeos-achievement-earned"><p>' . __('You have earned this achievement!', 'badgeos') . '</p></div>';
        if ($congrats_text = get_post_meta($achievement_id, '_badgeos_congratulations_text', true)) {
            $earned_message .= '<div class="badgeos-achievement-congratulations">' . wpautop($congrats_text) . '</div>';
        }
    }
    return apply_filters('badgeos_earned_achievement_message', $earned_message, $achievement_id, $user_id);
}
/**
 * Get an array of all users who have earned a given achievement
 *
 * @since  1.1.0
 * @param  integer $achievement_id The given achievement's post ID
 * @return array                   Array of user objects
 */
function badgeos_get_achievement_earners($achievement_id = 0)
{
    // Grab our earners
    $earners = new WP_User_Query(array('meta_key' => '_badgeos_achievements', 'meta_value' => $achievement_id, 'meta_compare' => 'LIKE'));
    $earned_users = array();
    foreach ($earners->results as $earner) {
        if (badgeos_has_user_earned_achievement($achievement_id, $earner->ID)) {
            $earned_users[] = $earner;
        }
    }
    // Send back our query results
    return $earned_users;
}