This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

WP Experience API


Sends xAPI statements to LRS (tested against LearningLocker and Some features are enabled
ONLY if the dependent plugins have also been installed. The plugin can be used as a MU plugin as well.

It has been partially tested with:

Statements that can be sent are:

  • page views
  • post status changes
  • commenting
  • earning badges(1)
  • voting(2)

(1) requires

(2) currently only works with PulsePress theme ( when voting or starring

This plugin was developed at the UBC Centre for Teaching, Learning and Technology.


  • The network level administration screen for a Multisite WordPress installtion.
  • Site level administration page for users autorized to set the LRS at the site level.


Assumes you are using PHP version >= 5.4 (requirement of TinCanPHP Library that the plugin includes)

  1. plunk folder into plugins
  2. Activate the plugin “WP Experience API” through the “Plugins” menu in WordPress


If you want to install in wp-content/mu-plugins folder, the plugin uses a proxy loader file.

  1. copy wp-experience-api directory to mu-plugins folder
  2. copy wp-experience-api/wp-experience-api-mu-loader.php to directory one level up (same level as wp-experience-api itself AKA just under mu-plugins folder)
  3. it should be installed! Enjoy!


  • now that the plugin uses the TinCanPHP library (, please make sure that it is updated regularly as well! current version is 0.11.4


How can I add more xAPI statements to the plugin?

You can create your own plugin and use the plugin’s hooks!

How come nothing is being sent to the LRS after I activate the plugin?

The settings are defaulted so that nothing is sent by default. Please go to the dashboard and the WP xAPI settings page to configure what statements are sent.

What is the queue for?

The queue is used for when for some reason, LRS can’t be reached, then statements meant to be sent will be added to the queue to be sent later in the admin screen.


এপ্ৰিল 5, 2017
Thank you for the great work! The plugin allows integration with other plugins. We just implemented sending xAPI statements from Namaste! LMS through WP Experience API by adding triggers and it works like a charm. This plugin deserves far more popularity that it has.
ছেপ্টেম্বৰ 3, 2016
Really impressive, as I had about zero expectations that this would even function. What’s unbelievable about this add-in is that it is i) about one of two hits on “tin can” or “xapi” on plugins library (the other being one for the H5P connector); and ii) 20+ downloads in last 6 – 12 months this has been available. Makes me think that Tin Can doesn’t have much of a following (yet), but given SCORM is, or should be, dead or dying, would think only a matter of time. Suggests that there are fewer than 20 sites out there with i) non-PHP programmers managing them; and ii) any interest in sending standard “left a comment on my WP site” statements to an LRS. In any event, the plug-in does exactly what it should. I punched in some user codes for a GrassBlade LRS I have, and it worked just as you’d expect, so you can add that LRS to the list of “somewhat test” set-ups. (I used the API keys, etc. that were derived from spending $49.00 on that plugin — did see if more normal credentials would work or not.) Only reason not 5 stars, is that the plugin is just not that fully developed to allow for the range of interactions one might hope for. For instance, it did recognize the action of leaving a comment on a BBPress forum, but the title, but what showed up in the LRS as a “title” (I guess object of statement), didn’t seem quite connected to the specific page. As well, and in fairness to developer who certainly has not indicated otherwise, I use some random ratings plug-in (not the theme item specifically noted), and I can’t capture the action of “rating a post”, which is on my list of activities I’d like to track. In any event, all good. This plug-in would think deserves some more downloads and a few more reviews.
Read all 2 reviews

Contributors & Developers

“WP Experience API” is open source software. The following people have contributed to this plugin.


Translate “WP Experience API” into your language.

Interested in development?

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



  • tweaked syntax to fit with wordpress better (got codesniffer to work on my ide again!)
  • fixed bug where posts with empty body makes invalid statements.


  • tweaked the queueing system so that you click on a button on the admin pages to run the queue instead of trying to use wp-cron.
  • bug fixes (made timestamp follow iso8601 more strictly and fixed typo)


  • added a queueing system. Also setting timestamp field is done by the plugin.


  • added additional options for whitelisted users access level. Options are whitelisted users have full control or only control LRS info at the site level.


  • changed verb for commented statements from created to commented


  • fixed bug found where statements are invalid if site tagline is left blank. Now it will dispay ‘n/a’ for empty website taglines.
  • updated readme formatting


  • Initial public release