Creating a basic WordPress Podio REST plugin

Podio is one popular cloud based project management system under Citrix. It is a web based platform that can be used in team collaboration, online forms, report generator, contact list and project management to name a few.

You can integrate your web application to it using its open Podio API so you can automatically send your data from your website like visitor count, sales, form submission, etc.

Since the introduction of WordPress version 4.4, it is now possible to to create a RESTful backend without using a 3rd party plugin, that gives our favorite blogging platform to be more of a Web Application framework.


These are my notes in create a basic WP Podio App Plugin:

  1. Make sure Curl and OpenSSL is enabled, you can use this PHP code:

    echo 'Curl: ', function_exists('curl_version') ? 'Enabled' : 'Disabled';
    echo 'OpenSSL: ', extension_loaded('openssl') ? 'Enabled' : 'Disabled';

  2. Generate your Podio APP keys from here: then take note your Client ID and Client Secret. You will need them later
  3. In your Podio App, go to your developer settings which you can find here: podio_app_developer_settings
  4. Take note of your App ID and Token from the developer settings: App_ID_And_Token_Id
  5. Create your basic plugin by including the Podio PHP library:
  6. Use the CLIENTID, CLIENT SECRET, APPID and TOKEN that you got from the previous steps then add this to you plugin code :

    * Plugin Name: Podio API
    * Version: 1.0
    * Plugin URI:
    * Description: This will connect your WP site to Podio
    * Author: Carl Alberto
    * Author URI:
    * Requires at least: 4.0
    * Tested up to: 4.5.2
    * Text Domain: podio-api
    * Domain Path: /lang/
    * @package WordPress
    * @author Carl Alberto
    * @since 1.0.0
    require_once( 'includes/podio/PodioAPI.php' );
    function podiorestapi() {
    define("CLIENTID","putyour clientID here");
    define("CLIENTSECRET","putyour CLIENTSECRET here");
    define("APPID","putyour APPID here");
    define("APPTOKEN","putyour APPTOKEN here");
    Podio::authenticate_with_app(APPID, APPTOKEN);
    add_action( 'rest_api_init', function () {
    'podio-api/v1', '/connect', array(
    'methods' => 'POST',
    'callback' => 'podio_connect'
    function podio_connect($data) {
    switch ($_POST['type']) {
    case 'hook.verify':
    PodioHook::validate($_POST['hook_id'], array('code' => $_POST['code']));
    case 'item.update':
    //reserved for update procedures
    case 'item.create':
    //reserved for create procedures
    case 'item.delete':
    //reserved for delete procedures

  7. Verify your connection by going back to the Podio Developer setting, in our code, we have generated the rest endpoint under this url so you have to add a hook on that endpoint from here:podio
  8. If you see that your hook became active, it means your REST api creation is successful

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.