For plugin authors

One function call. Pro handles the rest.

You're already running Replify Pro on your support site. Adding Troubleshooter to your paid plugin is a single registration call. OAuth handles auth, no endpoints to build, no schemas to learn, no UI to maintain.

The integration

Register your support site as a provider.

Inside your paid plugin, gate this on whatever check you already use to confirm the customer has an active licence. Then call the registration function on plugins_loaded or init:

add_action('plugins_loaded', function () {
    if (! my_plugin_has_active_license()) {
        return;
    }

    if (! function_exists('replify_troubleshooter_register_provider')) {
        return;
    }

    replify_troubleshooter_register_provider(
        'acme-support',                // provider id (same for all your plugins)
        'Acme Support',                // label shown to the customer (same for all your plugins)
        'https://support.acme.com',    // your Replify Pro site (same for all your plugins)
        'awesome-gallery',             // plugin slug (unique per plugin)
        'Awesome Gallery Pro'          // plugin display name (unique per plugin)
    );
});

Five things to change: a unique provider id, the label the customer sees in the picker, the site_url of the Replify Pro site you run support from, and your plugin's slug + display name. OAuth endpoints are auto-derived from your site URL. No shared secret to manage, no API keys to rotate.

Don't call this at the top level of your plugin file. WordPress loads plugins in activation order, so the function may not exist yet. Always wrap in plugins_loaded or init.

Got multiple paid plugins under the same brand? Call the function once per plugin with the same provider id and site_url. The Troubleshooter groups them under one provider and shares a single OAuth token.

What happens automatically

Replify Pro does everything else.

  • Customer installs Replify Troubleshooter from WordPress.org. Your label appears in their provider picker.
  • Customer authenticates against your Replify Pro site via the OAuth popup, picks the relevant plugin, hits "Send". The system report (WP version, PHP, active plugins, themes, hosting) POSTs to your Replify Pro site with their bearer token.
  • Replify Pro receives the report, opens a ticket on your support site, and attaches the diagnostic data. No code from you.
  • You reply from your Replify Pro dashboard. The customer reads and replies from their own WordPress admin via the Troubleshooter's Support Tickets page. Replify Pro round-trips comments both ways.

Security

What the Troubleshooter does and doesn't do.

  • Every UI surface and AJAX endpoint requires manage_options. Site editors and below never see it.
  • Reports are only sent after the user clicks "Send to Selected." No background telemetry, no auto-share.
  • Reports collect environment data only. No secrets, no usernames-other-than-the-current-admin, no customer PII.
  • The customer's site authenticates against your Replify Pro site via OAuth. No shared secrets to rotate, no API keys to leak.
  • All AJAX endpoints validate the replify_troubleshooter nonce.

Questions about integrating?

If anything in here is unclear or you want to talk through your specific setup, get in touch.