BadgeOS™ turns your WordPress site into an achievement, badging and engagement management system. Your users complete steps, demonstrate skills and knowledge, and earn digital badges/points/ranks. Easily define the achievements, organize the badge requirements any way you like, and choose from and combine a range of assessment options to determine whether each task or requirement has been achieved.

Create badges and set up the achievements/points/ranks to earn them. Badges are Mozilla OBI compatible and shareable via BadgeOS Social Share add-on

BadgeOS is extremely powerful and infinitely extensible. Check out some of the out-of-the-box features:

Many ways to define achievements and give badges

  • Reviewed submissions
  • Auto-approving submissions
  • Nominations and review
  • Site activity (triggers based on publising posts and pages, commenting and logging in to your site)
  • Completing specific other achievements one or a specific number of times
  • Completing one, select or all achievements of a specific type
  • Option to Award/Revoke Badges/Points/Ranks in bulk
  • Point/Rank award on completing the required steps/triggers
  • Admin Given Badges/Points/Ranks
  • Option to transfer points to other users via BadgeOS Transfer Points add-on
  • Community Activity (with the powerful BadgeOS Community Add-on)
  • Integration with LearnDash and LifterLMS
  • Integration with EDD and WooCommerce
  • See growing catalog of BadgeOS Add-ons.

Define an Unlimited Number of Achievement Types

  • Create as many types of achievement as you like
  • Name achievement types whatever you wish
  • Easily define how they relate to one another using the ‘Required Steps’ tool
  • Set default images for each achievement type or select unique images for every achievement item

Define an Unlimited Number of Rank Types

  • Create as many types of rank as you like
  • Name rank types whatever you wish
  • Easily define how they relate to one another using the ‘Required Steps’ tool
  • Set default images for each rank type or select unique images for every achievement item

Define an Unlimited Number of Point Types

  • Create as many types of points as you like
  • Name point types whatever you wish
  • Easily define how they relate to one another using the ‘Required Steps’ tool
  • Set default images for each rank type or select unique images for every achievement item

Design Beautiful Badge and Achievement Images from within WordPress

  • Use “BadgeOS Badge Builder” to create professional looking badge/point/rank images right from within WordPress
  • Launch the Badge Builder from any achievement/point/rank types editing screen in WordPress admin
  • Choose from a variety of badge shapes and border styles
  • Select from a library of thousands of Noun Project icons, or upload your own to the center of any badge
  • Add or remove a banner with text to your badge
  • Full color palette selection for border, fill, icon and banner
  • Saves automatically to your WordPress Media Library for easy re-use for other achievements or anywhere else on your site
  • Edit previously created badge and achievement images and save new versions to your Media Library

Sharable Badges

  • Badges are Mozilla Open Badge (OBI) compatible through integration of the “BadgeOS Social Sharing” add-on
  • Share earned OB standard badges to Facebook, Twitter, Linked Inn, and any other platform using embed code
  • Allowed Badges can be automatically baked into OB standard badges

‘Required Steps’ Manager

  • Simple yet powerful admin interface for defining the “Required Steps” for any badge or achievement/Points/Ranks.
  • Easily link together one or more triggers, steps or actions into the conditions needed to earn a badge/Points/Ranks or mark an achievement.
  • Extend the Required Steps options using the free BadgeOS Community Add-on.
  • Also extend Required Steps with other BadgeOS Add-ons.

Reward User Progress

  • Issue badges for any combination of achievements
  • Award points for commenting, logging in, making submissions, completing any combination of tasks
  • Display a congratulatory message, customizable per Achievement, on each achievement page.

Earned Achievements Widget

  • Shows logged in users what badges/points/ranks they have earned.
  • Option to choose which specific achievement/points/ranks types to display in the widget.
  • Set the parameters for the widget to decide how many recent badges/ranks to display.
  • Option to show logged in users total points they have earned (if you are using BadgeOS points mechanism).

Theme Agnostic, Shortcodes and Shortcode Embedder

  • BadgeOS works with just about any standard WordPress theme.
  • No special hooks or theme updates are needed.
  • Turn any page or post into a way to display available achievements/points/ranks and for users to track their progress.
  • Multiple options and parameters for each shortcode for great flexibility.
  • Shortcode WYSIWYG embedder – appears in the toolbar of all WordPress content editor areas, allowing you to transform any page or post into part of your achievement system — without referencing any of the shortcodes.
  • Shortcodes to bring submission and nomination review to the front-end of your site.
  • Shortcode to integrate specific available achievements into any post or page of your site.
  • Shortcode documentation in the plugin menu and on
  • Just activate BadgeOS and place simple shortcodes on any page or post, and you’ve got an engagement management system running on your WordPress site!

Submission and Nomination Review

  • Easily review submissions and nominations from members.
  • Approve or deny submissions with one click.
  • Shortcodes with multiple options for review of submissions on any page or post on your site.
  • Powerful shortcodes to add an achievement submission or nomination form to any post or page.
  • Add comments to engage the member and elaborate on your decisions.
  • Optional notification emails inform you when people on your site have made submissions or nominated peers.
  • Submission Notification Settings: Specify an unlimited number of email addresses for submission admin notifications.
  • Notifications for: new submissions, new comments, and submission status changes
  • Filter Submissions to only show those from members of specific BuddyPress Groups (requires plugins: BuddyPress and BadgeOS Community Add-on)

Extensibility and BadgeOS Add-ons

  • BadgeOS is designed to be a true operating system for turning any WordPress site into an engagement management application.
  • BadgeOS offers a growing catalog of Add-ons to the plugin that enhance core functionality with specialized functions.
  • Built with expandability in mind to allow virtually anything to trigger and recognize achievement.
  • Check out some of the BadgeOS customizations we’ve already implemented to get a sense for what is possible with BadgeOS.
  • Developer Documentation and APIs are freely available. Share your own BadgeOS add-ons with the community today.

Stay Connected / Helpful Links

BadgeOS is made available by LearningTimes, LLC. Here are some ways to stay connected and to see what else we are up to:

Developer Documentation:

BadgeOS is built with expandability in mind to allow virtually anything to trigger and recognize achievement. The Developer Resources area of the BadgeOS site provides links to documentation, APIs and guides to extending BadgeOS and integrating it with other plugins and systems. Share your BadgeOS Add-Ons and BadgeOS-compatible plugins.

Want to contribute to BadgeOS core? That’s great! Visit our GitHub site for the project at.

License Info

LearningTimes, LLC licenses BadgeOS to you under the terms of the GNU Affero General Public License, version 3, as published by the Free Software Foundation.

There is NO WARRANTY for this software, express or implied, including the implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License, version 3, at for more details.


  • Example of multiple methods for awarding and defining achievements

  • Use BadgeOS to create an unlimited number of achievement types, and easily define how they relate to one another.

  • Earned badges on your BadgeOS site are "Open Badges" that are sharable via Credly to virtually any social network, site, blog or the Mozilla Backpack.

  • Use the integrated Credly Badge Builder to easily create beautiful badge images right from within WordPress. Launch the Badge Builder from any achievement or achievement type editing screen.

  • Choose from a variety of badge shapes and border styles, and adjust the colors of each element.

  • Select from a library of thousands of Noun Project icons, or upload your own to the center of any badge.

  • BadgeOS gives you a simple yet powerful admin interface for defining the "Required Steps" for any badge or achievement.

  • BadgeOS shortcodes make it easy to turn any WordPress page into an achievements page, regardless of the theme you are using.

  • Use the "BadgeOS Shortcode" button available in any WordPress content area to easily configure and insert a shortcode for any BadgeOS component. With just a click or two, you can add custom, dynamic achievement elements (such as lists of badges or other achievements, submission review pages, submission forms, or individual achievements) anywhere on your site.

  • Daily visit Trigger

  • Register to the website trigger

  • Point types on achievements

  • Earned point types on Profile

  • Rank requirement

  • Ranks data


This plugin provides 9 blocks.

  • BadgeOS
  • BadgeOS
  • BadgeOS
  • BadgeOS
  • BadgeOS
  • BadgeOS
  • BadgeOS
  • BadgeOS
  • BadgeOS


  1. Upload ‘badgeos’ to the ‘/wp-content/plugins/’ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Visit the BadgeOS menu to add Badges/ranks and set up new Achievement/Point/Rank types.
  4. Use the BadgeOS Shortcode button available from any content editor in our site to turn any page or post into a part of your achievement or engagement system. For example, add lists of badges or other achievements, submission lists, a single badge and much more. Visit the Help/Support section of the BadgeOS menu for more information on available shortcodes.
  5. See video tutorials about BadgeOS at:


How many point types can be created?

Unlimited point types can be created

How many rank types can be created?

Unlimited rank types can be created

What is the default rank?

Default rank is the one with the “0” priority. It will automatically be rewarded to all the users. If you don’t want to create a default rank then set its priority more than “0” like 1,2 etc.

What is the difference between rank and achievement?

An achievement can be earned multiple times but the rank will only be earned once. Achievement is like a step while rank is like a level.

Any ideas for making badge images?

Yes! After installing BadgeOS, enable Credly Integration in the BadgeOS menu. That will seamlessly integrate the Credly “Badge Builder” into your WordPress site so you can design your own professional-looking badge images. (First get a free account at if you do not have one.)

Can you help us design custom badge images?

Yes, our designers are available to create custom badges that represent your brand, the kind of achievements you recognize, and the audience you are reaching. From a single badge to a complete constellation, our team of professional badge designers get to know your needs through a tested Badge Design Process which consistently produces successful and delightful results.

See examples and learn more at:

Do you offer services to help us design, build or customize our BadgeOS site?

Yes, we do. We especially enjoy working on innovative projects with forward-thinking teams extending achievement recognition into new environments and surfacing achievement in new ways. See examples and learn more at:

Where should I report issues or bugs?

The ideal place for bug and issue reporting is on the GitHub site for the BadgeOS project.

Where should I contribute code back to the project?

Thanks for asking! Please do share back code modifications or enhancements you make for inclusion in BadgeOS core or as add-ons. (Functions that are specialized for just some users are likely best as add-on plugins to BadgeOS. We can help figure that out with you.) Visit us on GitHub to share your code with the BadgeOS community.

Credly is really cool. How can I learn more about it?

Credly is the universal way to recognize, store and share life’s achievements. We’ve integrated Credly into BadgeOS because it’s downright the easiest, most fun way to collect evidence of all your achievements in one place and then share them out when and where it matters most. There are a rapidly growing number of platforms and apps that are using the Credly “Open Credit” API to enable sharable badges; the BadgeOS WordPress integration is just one great example! Visit us to learn more or contact us for guidance with using the free Open Credit API in your own projects or applications.


September 17, 2021
One thing about the BadgeOS Team is their dedication to promoting their super plugin and its equally super family of add-ons. Our team discovered a bug and informed them, and we were amazed at their dedication in dissecting and correcting the issue. That shows that the plugin and its users are in safe, dependable hands. Up BadgeOS!
December 17, 2020
It seems to roam throughout the backend even when you aren't logged in and just goes ham on everything. It kept requesting server data like what type of headers; if xmlrpc was disabled. The information the plugin kept requesting as if it was attacking my site: HTTP_SEC_FETCH_DEST HTTP_X_FB_HOST SERVER_PROTOCOL SCRIPT_FILENAME REQUEST_METHOD HTTP_DNT ADMIN-AJAX.PHP XMLRPC.PHP CLASS-WP-HOOK.PHP PLUGIN.PHP WP-LOGIN.PHP USERS.PHP I know it was the plugin because I logged over 20 requests a second, and when I disabled the plugin, they stopped. They also came from my server IP, and as an admin user. I re-enabled, and boom, they started adding up again. They also sent over 25000 LIST operations to my AWS S3 bucket in 6 hours.
Read all 70 reviews

Contributors & Developers

“BadgeOS” is open source software. The following people have contributed to this plugin.


“BadgeOS” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “BadgeOS” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • New: Option added in achievements to get revoked on point deduct
  • New: Added login for x days trigger in achievement
  • Fix: Not earned image saving issue
  • Fix: Duplicate achievement/rank email issues
  • Fix: Minor CSS issues


  • Fix: Debug option issue
  • Fix: Widgets warning issues
  • Fix: Achievement list shortcode issue
  • Fix: Trigger step title visibility issue in achievments/ranks/points
  • Fix: Appearence of not earned image metabox on every post/page


  • New: Added not login for x days trigger in point deduct
  • New: Added not earned image feature for ranks
  • New: Added preheader text field tools/emails for badgeos emails
  • New: Added settings for enable/disable not earned image feature for badges/ranks
  • Fix: Customizer disabled items with astra theme
  • Fix: Points not awarding issue in bulk achievement award


Fix: Fixed single site license activation issue on multiple sites.
New: Added bulk achievement emails support for bulk rewarding achievements.
Fix: Fixed select box css issue related to tools page bulk achievement.
Fix: Database installation script will only run when there are new database updates or user is activating the badgeos.
Fix: Added minified badgeos css and js files with support of SCRIPT_DEBUG constant for debugging.
Fix: Removed Credly code from the system.


New: Added an option to define a Not Earned Badge Icon for display on Badge Page
New: Added new shortcode to display badge evidence information on achievement earned email.
Fix: Fixed evidence shortcode output.
Fix: Fixed multiple badge award issue on editing same comments.
Fix: Fixed license key issue for badgeos-addons.


New: Added User Ranks Widget
New: Added User Points Widget
Fix: Disables Credly Integration


New: Award users for completing the number of years
New: Award points to users for user’s birthday
New: Award author when a user visits post/page
New: Award points when a certain rank is achieved
Fix: Updated Congratulations message note
Fix: Daily Visit Website trigger is not working
Fix: Fix UI issues in Welcome screen


New: Added a Welcome page
New: Added Global and individual BCC and CC options on badgeos emails
New: Added multi-site support


New: Open Badge Verification pop-up enhancements to add issuer, issued by, expire date and issue date
New: Add option for users to unsubscribe from Earned Achievement and other configurable emails
New: Add a new trigger visit Any/specific post/page
New: Added two new action hooks for tools/email page i.e. badgeos_email_tools_settings_tab_header and badgeos_email_tools_settings_tab_content
Fix: Fixed a notice on api end-points due to new updates on wordpress 5.5
Fix: Fixed the user earned ranks shortcode design.
Fix: Added Save Settings message on the admin side of badgeos emails


New: Adds Assets section to get stock images for badges/ranks/points
New: Adds thumbnail support in user earned points
New: Adds Color configuration for making Branded Email templates
New: Adds Pagination support for User earned Ranks and User earned achievements functions


  • New: Removed the nomination and submission from BadgeOS Core
  • New: Added two new hooks to add new main tabs on settings page i.e. badgeos_settings_main_tab_header and badgeos_settings_main_tab_content
  • New: Added Unique Classes on front end on shortcodes to help hide content/apply styles
  • New: Provide a possibility to access Badge Evidence Page from User’s Dashboard through User Earned Achievement Shortcode and BadgeOS Earned Achievements Widget
  • New: Added a possibility to add Badge Evidence Page with a shortcode and Gutenberg block
  • New: Added 2 new action hooks on evidence page badgeos_evidence_after_left_column and badgeos_evidence_after_right_column
  • New: Added Ranks list Shortcode and Gutenberg block.
  • New: Added Single Rank Shortcode and Gutenberg block.
  • Fix: The bug of timezone not allowing automatic badge award on completing steps
  • Fix: The bug of Gutenberg due to which double points are awarded
  • Fix: Fixed the Download Link in user profile page
  • Fix: Fixed the undefined error on expire message when clicking verify button in open badge portion
  • Fix: No records found issue is fixed in shortcodes


  • New: Updated the BadgeOS Settings page layout
  • New: Added a link in OB Integration to recreate OB pages if someone missed it for the first time.
  • Fix: Fixed The error “TypeError: progressbar.progressbar is not a function” in console.
  • Fix: Added a dismiss button which will dismiss the Credly disconnection message forever
  • Fix: Fixed the achievement and rank images width/height issue in achievement and rank based shortcodes and widget
  • Fix: Fixed the error “badgeos_shortcode_embed_message not defined” in console


  • New: Added option to make the earned badges compatible with OB standards
  • New: Added option to set achievements/ranks image sizes globally
  • New: Added option to update image size from earned achievements/ranks shortcodes
  • New: Added option to update users points through ajax
  • New: Added user id parameter for earned achievements/ranks shortcodes
  • New: Removed Credly integration for new installations
  • Fix: Disable the BadgeOS emails by default
  • Fix: Fixed multiple required steps badge issue
  • Fix: Fixed conflict with theme the7
  • Fix: Replaced deprecated functions


  • New: Added default (list/grid) view option for achievement list and user earned achievements/ranks shortcodes
  • New: Added option to send email on earning achievements/points/ranks
  • New: Added option to edit/update the header/footer and content of the email
  • Fix: Revamped achievement list shortcode
  • Fix: Revamped users earned points shortcode
  • Fix: Fixed WordPress version ( below 5.0) compatibility issue
  • Fix: Enqueued CKEditor js code only on submission page to avoid conflicts
  • Fix: Revamped DB update script
  • Fix: Fixed WP deprecated function issue
  • Fix: Fixed Elementor plugin conflict
  • Fix: Revamped user achievement widgets


  • New: Added support for Gutenburg
  • New: Added option to display earned points/achievement/ranks with list/grid view
  • New: Added option to disable credly email
  • New: Added option to display titles from earned achievement widgets
  • New: Added new filters
  • Fix: Fixed Woocommerce and screen options CSS conflict
  • Fix: Fixed multiselect script conflict
  • Fix: UI Tweaks


  • New: Added option to update achievement post type and steps slugs
  • New: Added option to approve/deny nominations/submissions in bulk
  • New: Added new shortcode to display earned achievements for logged in user
  • New: Added new shortcode to display earned points for logged in user
  • New: Added new shortcode to display earned ranks for logged in user
  • New: Added new filters
  • Fix: Fixed site loading issue
  • Fix: Displayed approved/denied submissions/nominations on front-end
  • Fix: Fixed duplicate submission/nomination awarding issue
  • Fix: Fixed email notification issue


  • New: Set default point type as point type id parameter in badgeos_get_points_by_type()
  • New: Added post attributes for BadgeOS Rank Type posts
  • New: Added option to award/revoke achievements in bulk
  • New: Added option to award/delete points in bulk
  • New: Added option to award/revoke ranks in bulk
  • New: Added option to display the system information on tools page
  • New: Deleted user data on uninstall
  • Fix: Revamp rank award process
  • Fix: Updated rank count for users on revoking their earned rank
  • Fix: Updated labels for BadgeOS point types
  • Fix: Removed select2 js dependency from badgeos-shortcode-embed-js
  • Fix: Renamed BadgeOS get_parent_id function to avoid conflicts
  • Fix: Removed steps post type from metabox achievement array
  • Fix: Revamp function badgeos_user_deserves_rank_step_count_callback()
  • Fix: Removed slug fields from Points and Rank types
  • Fix: Fixed add-ons licensing issues
  • Fix: Hide earned achievements on front-end if show to users is not allowed
  • Fix: Revamp BadgeOS shortcode embeder code to avoid select2 version conflicts
  • Fix: Fixed widget notification issues for deleted ranks and achievements
  • Fix: Fixed deduct point trigger issue
  • Fix: Altered ranks and achievements table structure


  • New: Added option to update the existing achievements with regards the point types
  • New: Added default thumbnail for the rank post
  • Fix: Fixed conflict with scormcloud plugin
  • Fix: Fixed the point and rank type pages 404 issue


  • New: Added option to upgrade db from plugin setting page
  • New: An email will be sent to admin on completing the db upgrade
  • Fix: Changed db upgrade query to work as background process
  • Fix: Fixed the BadgeOS shortcodes popup layout issues


  • New: Added option to create multiple point types
  • New: Added option to award/deduct points on completing steps
  • New: Display users’ earned points with types on user profile page
  • New: Added option to create multiple rank types
  • New: Displayed users’ earned ranks on user profile page
  • New: Added option to select point type when awarding points with achievements/ranks
  • New: Saved users’ earned achievement to custom db table rather than saving in meta data
  • New: Added option to transfer users’ earned badges meta data to custom db table by clicking on a button
  • New: Added new actions hooks to extend the user achievement section
  • New: Added two new triggers. “Daily Visit” and “Register to the website”
  • Fix: Fixed conflict of BadgeOS with WooCommerce Membership add-on
  • Fix: Improved log entry message texts


  • New: Added action hook to run when revoking badges
  • Fix: Fixed any/all achievement trigger count issue
  • Fix: Improved logic for displaying load more button
  • Fix: Fixed the select2 js conflict
  • Fix: Sanitized nomination and submission posts action fields
  • Fix: Removed approved/denied submissions/nominations from frontend
  • Fix: Removed steps from user profile page


  • Fix: Fixed BadgeOS user capabilities issues
  • Fix: Improved meta box field value sanitization


  • Fix: Fixed CMB2 notification issue on plugin activation


  • Major Release: This is the major release of BadgeOS in which we have upgraded the Custom Meta boxes script in the plugin along with other new features and bug fixes. Please visit plugin’s page first for guidance.
  • New: Multiple achievement listing shortcode on same page
  • New: Upgraded cmb script
  • New: Added trigger info in user achievement meta
  • New: Added option to delete earned badges in bulk from user profile page.
  • New: Added new trigger to delete/revoke user points when user is not logged to the site since X days.
  • New: Added option to add negative value to the points so that user points can be deducted too on completing the selected events.
  • Fix: Specific post comment trigger issue
  • Fix: Deleted related step post type on deleting badges
  • Fix: Dependant achievement loop issue
  • Fix: All achievement trigger badges is awarding as any achievement
  • Fix: Infinite loop issue for any achievement of type
  • Fix: Permalink issue on the user profile page when actual badge is deleted
  • Fix: Upgraded sequential step logic


  • Fix: Attachment on post Submissions
  • Fix: Display notification on setting page
  • Fix: Nomination admin email notification


  • New: Option to toggle badgeos log entries. See the option at Settings page.
  • New: Option to “Delete All Log Entries” from database. See the option at Log Entries page.
  • Fix: Uploaded attachment not being saved
  • Fix: Compatibility with PHP 7.x (Tested upto PHP v7.2)
  • Fix: Retrieve uploaded attachment regardless of post type
  • Tweak: Defensive code checks (Thanks @jonmoore)

  • Typo: Updated version in the class property


  • Fix: Compatibility with PHP 7.x (Tested upto PHP v7.1)
  • Fix: Frontend submission html formatting
  • Fix: PHP warnings on frontend submission
  • Fix: Added Sanity check for $comment_data variable which prevents PHP notices and warnings
  • New: Configurable option to delete plugin data on uninstall
  • New: 50% Portuguese (Brazilian) translation

  • Fixed: Woocommerce compatibility issue fixed by upgrading to Select2 Version 4.
  • Updated: Upgraded Select2 from Version 2 to Version 4, modified Shortcode implementation accordingly.

  • Fixed: Hidden Badges issue where hidden badges were getting displayed though they are set hidden
  • Fixed: Disabled filter button to fix the issue where multiple search results displayed when the filter submit button is clicked repeatedly
  • Fixed: Maximum earnings for Achievement earned through completing steps did not earn points more than once
  • Updated: Increased Max-length to 3 for the number of times an achievement step needs to be performed to earn an achievement by completing steps

  • Fixed: BadgeOS 1.4.8 CKEDItor script blocked other scripts in queue from executing
  • Updated: Set CKEditor to Standard version
  • Updated: CKEditor CDN URL for SSL


  • Added: Save Draft feature for achievement submission and comments
  • Added: CK Editor – Rich Text Editor for all front end text area
  • Added: Meta Box added for attachment on a specific submission
  • Added: Meta Box added for attachment in comments
  • Fixed: All Achievement Type auto submission success message not getting displayed properly
  • Fixed: Completion steps – All Achievement of Type Badges not getting updated as Achieved when the dependent achievements are completed
  • Fixed: Maximum Earned Achievment bug for unlimited earning
  • Fixed: Removed confirm submission popup on refresh while re-submitting achievement


  • Fixed: Remove empty() check that prevented point updates from being logged.
  • Fixed: Corrected incorrect usage of PHP time() function.


  • Fixed: PHP variable typo introduced in 1.4.5.
  • Fixed: + marks introduced in Earned User Achievement Widget form output.
  • Fixed: Amended query statement preparation for multisite-based functionality.
  • Fixed: Minor code cleanup in Earned User Achievement Widget.


  • Fixed: Prevent false positives on “users who have earned achievement” listings.
  • Fixed: Prevent potential empty array of achievements.
  • Fixed: Added unique ID to single achievement shortcode output.
  • Fixed: esc_attr() on some attributes.
  • Fixed: Prevent submission and nomination columns from showing outside of submission and nomination pages.
  • Fixed: Pass user ID to badgeos_maybe_award_achievement_to_user call inside badgeos_update_user_points().
  • Fixed: Prevent steps from being listed in achievement type list in Steps UI.
  • Fixed: Prevent media library “litter” with default thumbs up graphic being added multiple times. Now will check for existing copy of graphic before downloading new.
  • Updated: Provided PHP5 compatible widget constructors in preparation of WordPress 4.3 changes.


  • Improved checks to prevent achievement type switching when editing achievement types.
  • Added a check to ensure multisite is active before calling multisite functions.
  • Added internationalization strings and updated pot file.
  • Inline documentation improvements.


  • Fix issue with user scores being zero’d out when they save their profile in WP Admin.
  • Added French translation files. Credit:
  • Made it possible for admins to award achievements, that can be earned multiple times, to users via the User’s admin profile
  • Misc code tweaks.


  • Updated: Achievement Types now support menu ordering.
  • Fixed: Eliminated a fatal error in the nomination saving process.
  • Fixed: Updated submission manager role setting to correctly show the selected value.
  • Fixed: Additional hardening for achievement-type migration so that it doesn’t happen prematurely due to autosave.


  • Fixed: Eliminated a critical bug that could cause all posts to be migrated to a brand new achievement type on publish.


  • Added: BadgeOS Shortcode Embedder – Easily add any shortcode to any content area with a few clicks.
  • Added: BadgeOS Shortcode registration API – Easily add support for new BadgeOS-related shortcodes and modify existing shortcodes with automatic support for the BOS Shortcode Embedder and help page.
  • Added: Submission Manager Role selector – allow users to moderate submissions without granting them full access to BadgeOS administration.
  • Added: Submission Notification Admin Settings – Specify an unlimited number of email addresses in a comma-separated list for submission admin notifications.
  • Added: Submission Notifications to users who have made a submission.
  • Added: Several new submission notification types – new submission, new comment, and submission status change
  • Added: User Email Notification Setting – Users can opt-out of email notifications in the profile editor.
  • Added: Trigger for commenting on specific posts.
  • Added: Many hooks for modifying shortcodes, submission lists, and more.
  • Added: Baseline support for renaming achievement types, including the auto-migrating all achievements (and user earnings) from original achievement type to the new.
  • Added: Helper functions for checking if user meets BOS management roles.
  • Updated: Revised trigger for commenting on posts to only award when comment is approved.
  • Updated: Submission status can now be altered on the front-end from approved to denied or back again.
  • Updated: Admin area for editing a submission now uses the same approve/deny buttons as the rest of the site.
  • Updated: Submission Lists are now highly customizable via WP hooks. The search input, filter inputs, and even the results can be altered programatically.
  • Updated: Many, many internationalization enhancements. Help us release BadgeOS in your language!
  • Updated: BadgeOS management role selector is hidden on the settings page to non-admins.
  • Updated: Badgeos management role selector now excludes contributor and subscriber roles.
  • Fixed: Rewrite rules automatically flush when a new achievement type is added (or an existing is renamed).
  • Fixed: BadgeOS settings can now be modified by the minimum selected management role.
  • Fixed: Prevent users from repeatedly earning auto-approved submissions.
  • Fixed: Submissions List status filter now indicates the displayed status on page load.
  • Fixed: Lots of other minor bugs.


  • Fixed: Eliminated an error when attempting to use Credly Badge Builder over SSL
  • Fixed: Eliminated some PHP warnings


  • Updated: Upgraded bundled CMB library to 1.0.8.
  • Updated: Upgraded bundled posts-to-posts library to 1.6.3-alpha.
  • Updated: Corrected several outdated PHPDoc comments.
  • Updated: Added quotes to all shortcode examples for clarity.
  • Fixed: Properly award “all achievements of type” step trigger when triggered.
  • Fixed: Prevent awarding a user’s triggered triggers to current admin.
  • Fixed: Prevent awarding a user’s triggered triggers on the incorrect site (in multisite).
  • Fixed: Prevent users from incorrectly resubmitting earned achievements to Credly.
  • Fixed: Pass explicit user ID on “send to credly” AJAX calls.
  • Fixed: Minor CSS tweaks to BadgeOS user profile fields.


  • Added: Spanish language translation.
  • Fixed: Eliminated a recursion issue with the badgeos_award_achievement action hook.
  • Fixed: Users can send new submissions if previous submisson was denied or approved (until they’ve reached the maximum earnings for the achievement).
  • Fixed: Corrected sort order on front-end step output.
  • Fixed: Updated Earned Achievements Widget handling for achievements with spaces and special characters.


  • Fixed: Small issue with Credly Badge Builder API headers.


  • Fixed: Achievement step stort order (in admin).
  • Fixed: Prevent duplicate stock achievement thumbnails per achievement type.
  • Fixed: Bug with Credly Badge Builder API connection.


  • Added: Credly Badge Builder – Build your own unique badges directly from the post editor (requires Credly account).
  • Added: badgeos_is_achievement() to check if a given $post or $post_id is a BadgeOS achievement.
  • Added: New [credly_assertion_page] shortcode for Credly Pro users.
  • Added: Specify a custom message to include with Credly notification emails
  • Updated: badgeos_award_achievement_to_user() now checks that the passed $acheivement_id is a real achievement.
  • Updated: New achievements now have a default max earning of 1 (blank for infinite).
  • Updated: BadgeOS Help page now links to Github, instead of just mentioning it.
  • Updated: Detailed “Credly Sharing” options are only visible on the achievement editor when achievement is set to “send to credly”.
  • Updated: “Featured Image” text now says “Achievement Image” when working with an achievement post.
  • Fixed: Added variable type check to badgeos_get_user_achievements() to prevent PHP warning.
  • Fixed: Earned achievements will no longer show “Send to Credly” when setting is disabled.


  • Added: “Add-ons” menu now has a catalog of new plugins to extend BadgeOS in exciting ways.
  • Added: Introduced a suite of “user activity” functions for tracking a user’s active achievements.
  • Updated: Add-Ons admin page now dynamically pulls all available add-ons directly from
  • Updated: Improved support for WP Multisite installations
  • Updated: Earned Achievements widget now sorts achievements with newest-earned first.
  • Updated: Earned Achievements widget now supports displaying all OR specific achievement types.
  • Updated: [badgeos_achievements_list] shortcode now supports multiple achievement types, using either type=”all” or by separating the achievement names with a comma, like: type=”badge,quest,level”.
  • Updated: [badgeos_achievements_list] shortcode now supports “orderby” and “order” parameters so you can control how achievements are sorted.
  • Updated: BadgeOS Log Entry functions are now filterable and can be overridden (more on this in 1.3).
  • Updated: Added hooks to Help/Support page so add-ons can include their own content.
  • Updated: We now set a default thumbnail for new achievements and achievement types.
  • Updated: We now display a warning on the Achievement Type editor if a title exceeds 20 characters.
  • Updated: Removed some redundant checks in the rules-engine to make process more performant.
  • Updated: Relocated a few functions to make codebase easier to navigate.
  • Fixed: We now hide the container for an earned achievement’s congratulations text if there is no congratulations text.
  • Fixed: The Earned Achievements widget and the Send to Credly functionality sanely fall-back to the parent achievement’s thumbnail if the given achievement doesn’t have one set.
  • Fixed: Eliminated a bug with the “Add Media” functionality due to a conflict with the Canvas theme by WooThemes.
  • Fixed: Cleared out many minor, but annoying, PHP warnings


  • Added: New triggers for publishing new posts and pages
  • Added: [badgeos_achievement] shortcode to display a single achievement on any post/page, see BadgeOS Help/Support for parameter details
  • Added: [badgeos_submissions] shortcode to show a filterable/searchable list of submissions, see BadgeOS Help/Support for parameter details
  • Added: [badgeos_nominations] shortcode to show a filterable/searchable list of nominations, see BadgeOS Help/Support for parameter details
  • Added: New meta box showing attachments for a Submission in the admin dashboard
  • Added: Earned achievement message on an achievement single page which shows if a user has earned the achievement
  • Added: New widget to display the Credly Credit Issuer badge
  • Updated: Achievements widget with option to display user’s total points
  • Updated: [badgeos_submission] shortcode to accept achievement_id parameter
  • Updated: [badgeos_nomination] shortcode to accept achievement_id parameter
  • Updated: New filter for controlling whether or not a user is allowed to spring a trigger
  • Fixed: Nomination user select field from displaying twice on the page
  • Fixed: Nomination listing page from displaying the wrong status for the nomination
  • Fixed: Nomination form/listing now displays a user’s submitted nomination and limits them to submitting a single nomination


  • Updated: Only show “People Who Have Earned This” when there is at least one earner
  • Updated: Localization strings have been updated throughout for easier translating
  • Updated: Submissions and Nominations were originally publicly searchable, they are now private
  • Fixed: Prevent earning an achievement more times than “max earnings” allows
  • Fixed: Prevent earning steps with no parents
  • Fixed: Prevent earning unpublished, private or trashed achievements
  • Fixed: Inability to earn “any [achievement type]” steps
  • Fixed: Inability to earn “all [achievement type]” steps
  • Fixed: Filter for “Completed Achievements” (would sometimes show ALL achievements if user had earned none)
  • Fixed: A PHP warning that would sometimes appear when manually awarding an achievement via user profile editor
  • Fixed: A number of minor behind-the-scenes bugs that annoyed our PHP developers


  • New: Added “Display users who have earned achievement” option to achievements
  • Updated: BadgeOS Add-Ons admin page now shows current BadgeOS add-ons
  • Updated: [badgeos_achievements_list] shortcode now shows send to Credly link on earned achievements.


  • Fix: The “Award an Achievement” section on the User Profile page now grabs the appropriate custom post type slugs.
  • Fix: Updated an incorrectly named function.
  • Fix: Stop completed filter from showing all achievements if no achievements have been completed
  • Updated: Achievement display and awarding UI improvement.
  • Updated: [badgeos_achievements_list] shortcode now supports show_filter and show_search attributes


  • BadgeOS says “hello world”, earns “Hello World” badge.