Create templates from anywhere.

Luckily there is something called automation. And yes, we support this magical creature as well. Down below you will find everything you need to create plugin templates from anywhere with Pluginplate.

Authentication

By default, you can use your license key (Which can be found within your account dashboard) to check if your authentication works.
Please note: The API is only available within the premium plan.

To only authenticate yourself, you need to perform a POST request to the following URL:

https://pluginplate.com/api/

As the content type, you need to define JSON:

Content-Type: application/json

Within the body of the request, you can simply send a JSON, which contains the plpl_ussauth key, including your license key:

{
  "plpl_ussauth": "YOUR_LICENSE_KEY"
}

IMPORTANT: For the API to work, it is required to set the plugin name and plugin slug. Please take a look at the "Generate plugin template" section down below.

Generate plugin template

To generate a plugin template, you need to extend the payload you have defined for authenticating yourself with the above setup.

To make it work, you need to add the plugin_data argument and add the plugin related settings there. To learn more about them, please see the full example payload down below.
The arguments pluginplate_plugin_name and pluginplate_plugin_slug are required.

Here is an example of how the basic setup look like:

{
    "plpl_ussauth": "MY_API_KEY",
    "plugin_data": {
        "main": {
            "pluginplate_plugin_name": "",
            "pluginplate_plugin_slug": ""
        },
        "modules": {}
    }
}

Full example

Down below you will find a full example on how to create the plugin template including all of the features and modules.

Important: If you wish you only add specific modules, simply remove them from the modules list.

{
    "plpl_ussauth": "MY_API_KEY",
    "plugin_data": {
        "main": {
            "pluginplate_plugin_name": "",
            "pluginplate_plugin_slug": "",
            "pluginplate_plugin_uri": "",
            "pluginplate_plugin_version": "",
            "pluginplate_plugin_prefix": "",
            "pluginplate_plugin_short_description": "",
            "pluginplate_author_name": "",
            "pluginplate_author_email": "",
            "pluginplate_author_uri": ""
        },
        "modules": {
            "pluginplate_add_gpl": [
                {
                    "license_version": "",
                    "support_later_versions": ""
                }
            ],
            "pluginplate_add_readme": [
                {
                    "contributors": "",
                    "tags": "",
                    "requires_at_least": "",
                    "tested_up_to": "",
                    "requires_php": "",
                    "description": "",
                    "faq": "",
                    "donate_link": ""
                }
            ],
            "pluginplate_add_helper_documentation": [
                []
            ],
            "pluginplate_add_plugin_list_link": [
                {
                    "url": "",
                    "title": "",
                    "open_new_tab": ""
                }
            ],
            "pluginplate_add_config_files": [
                {
                    "gitignore": "",
                    "distignore": "",
                    "editorconfig": ""
                }
            ],
            "pluginplate_add_css_support": [
                {
                    "load_admin": ""
                }
            ],
            "pluginplate_add_js_support": [
                {
                    "load_admin": "",
                    "js_in_footer": "",
                    "jquery_dependency": "",
                    "ajax_example": "",
                    "heartbeat_example": ""
                }
            ],
            "pluginplate_add_topbar_menu_item": [
                {
                    "menu_title": "",
                    "sub_menu_title": ""
                }
            ],
            "pluginplate_add_edd_settings_tab": [
                []
            ],
            "pluginplate_add_wp_webhooks": [
                {
                    "add_custom_settings": ""
                }
            ],
            "pluginplate_add_shortcode": [
                {
                    "tag": ""
                }
            ],
            "pluginplate_add_de_activation_hook": [
                {
                    "add_hooks": ""
                }
            ],
            "pluginplate_add_admin_menu_page": [
                {
                    "options_panel": "",
                    "parent_slug": "",
                    "page_title": "",
                    "menu_title": "",
                    "menu_slug": "",
                    "capability": "",
                    "icon_url": "",
                    "menu_position": ""
                }
            ],
            "pluginplate_add_wp_cli_support": [
                []
            ],
            "pluginplate_add_rest_api_support": [
                []
            ],
            "pluginplate_add_dashboard_widget": [
                {
                    "widget_title": "",
                    "widget_content": ""
                }
            ],
            "pluginplate_add_custom_post_type": [
                {
                    "post_type": "",
                    "post_type_name_s": "",
                    "post_type_name_p": ""
                }
            ],
            "pluginplate_add_edd_plugin_updater": [
                {
                    "store_url": "",
                    "store_download_id": "",
                    "license_key": ""
                }
            ],
            "pluginplate_add_wc_settings_page": [
                {
                    "page_name": ""
                }
            ],
            "pluginplate_add_acf_options_page": [
                {
                    "page_title": "",
                    "menu_title": "",
                    "sub_menu": ""
                }
            ]
        }
    }
}

Response

If creating your plugin template was successful, we return success as a response, including the file_url argument which contains the remote URL for downloading your plugin template.

Please note: Your plugin template file will be available for one hour after creating it. After, it will be permanently deleted.

{
    "success": true,
    "msg": "Your plugin template was successfully created. The file will be available for one hour.",
    "file_url": "https://pluginplate.com/the-unique-download-path-of-your-plugin/{plugin-slug}.zip",
}