

Affiliate Links list view with search, campaign views, analytics snapshots, group/tag filters, destination health alerts, sorting, pagination, and quick actions.
Affiliate URLs can get long, messy, and hard to manage — especially once they’re embedded across pages, posts, emails, and ads.
Kitgenix Affiliate Link Manager gives you a simple, central place to create and manage short affiliate links, and redirect visitors using a clean URL format:
/go/{slug} (prefix configurable)
It’s designed to be lightweight and practical:
– Create links with a Name, Slug and Destination URL
– Organise larger libraries with link groups, tags, campaign views, and campaign notes
– Schedule start and expiry windows, send inactive traffic to a fallback URL, and rotate between multiple live destinations
– Run automated destination health checks that flag broken offers, merchant-side 404s, and redirecting destinations inside the dashboard
– Track daily click timelines plus source, referrer, and placement attribution so reports show which links and placements perform best
– Manage links through a REST API and WP-CLI commands for create, update, disable, import, and export workflows
– Configure the redirect prefix (default: go)
– Choose redirect status: 307, 302 or 301
– Track click counts per link
– No third-party redirect/short-link service (redirects happen on your site)
nofollow, sponsored, or nofollow sponsored.SEO note: you can choose a per-link rel value (nofollow / sponsored / both). When placing your short URL into content, use sponsored/nofollow to follow search engine guidelines for affiliate links.
Automation tip: use the REST API or WP-CLI when you want to manage affiliate links in deployment scripts, migrations, or headless workflows.
Text domain:
kitgenix-affiliate-link-manager
Custom post type:
– kitgenix_aff_link
Taxonomies:
– Link groups: kitgenix_aff_group
– Link tags: kitgenix_aff_tag
Post meta:
– Destination URL: _kitgenix_affiliate_destination_url
– Click count: _kitgenix_affiliate_clicks
– Rel value: _kitgenix_affiliate_rel (allowed: nofollow, sponsored, nofollow sponsored)
– Enabled flag: _kitgenix_affiliate_enabled (1/0; defaults to enabled)
– Campaign note: _kitgenix_affiliate_campaign_note
– Starts at: _kitgenix_affiliate_starts_at (UTC timestamp)
– Expires at: _kitgenix_affiliate_expires_at (UTC timestamp)
– Fallback URL: _kitgenix_affiliate_fallback_url
– Rotation mode: _kitgenix_affiliate_rotation_mode (none, sequential, random)
– Rotation destinations: _kitgenix_affiliate_rotation_destinations (stored as an array)
– Health status: _kitgenix_affiliate_health_status
– Health message: _kitgenix_affiliate_health_message
– Health checked at: _kitgenix_affiliate_health_checked_at (UTC timestamp)
– Health HTTP code: _kitgenix_affiliate_health_http_code
– Health final URL: _kitgenix_affiliate_health_final_url
– Health redirect hops: _kitgenix_affiliate_health_redirect_hops
Analytics table:
– {prefix}kitgenix_aff_click_stats — stores daily aggregated click counts by link, source, placement, and referrer host.
Settings option:
– kitgenix_affiliate_link_manager_settings
Settings group (Settings API):
– kitgenix_affiliate_link_manager_settings_group
Redirect query var:
– kitgenix_affiliate_slug
Admin actions / nonces:
– Admin-post action (save): admin_post_kitgenix_affiliate_link_save
– Admin-post action (delete): admin_post_kitgenix_affiliate_link_delete
– Admin-post action (duplicate): admin_post_kitgenix_affiliate_link_duplicate
– Admin-post action (reset clicks): admin_post_kitgenix_affiliate_link_reset_clicks
– Admin-post action (bulk actions): admin_post_kitgenix_affiliate_link_bulk
– Link save nonce action: kitgenix_affiliate_link_save
– Link save nonce field name: kitgenix_affiliate_link_nonce
– Link delete nonce action: kitgenix_affiliate_link_delete
– Link delete nonce query arg: nonce
– Link duplicate nonce action: kitgenix_affiliate_link_duplicate
– Link reset clicks nonce action: kitgenix_affiliate_link_reset_clicks
– Bulk actions nonce action: kitgenix_affiliate_link_bulk
– Bulk actions nonce field name: kitgenix_affiliate_link_bulk_nonce
– Settings save nonce action: kitgenix_affiliate_link_manager_settings_save
– Settings save nonce field name: kitgenix_affiliate_link_manager_settings_nonce
Settings UI field identifiers:
– Redirect status id: kitgenix_affiliate_redirect_status
– Links per page id: kitgenix_affiliate_links_per_page
Developer filters:
– kitgenix_affiliate_slug_cache_ttl (int $ttl, int $post_id, string $slug) — adjust redirect slug lookup cache TTL (seconds).
– kitgenix_affiliate_destination_url (string $destination_url, int $post_id) — filter the final redirect destination before redirecting.
– kitgenix_affiliate_redirect_status (int $status, int $post_id) — filter the HTTP redirect status per request.
– kitgenix_affiliate_manage_capability (string $capability) — override the capability required to manage links.
– kitgenix_affiliate_health_check_timeout (int $timeout, string $url) — adjust the outbound timeout used by destination health checks.
REST API:
– Namespace: kitgenix-affiliate-link-manager/v1
– GET /wp-json/kitgenix-affiliate-link-manager/v1/links — list links with optional search, group, tag, enabled, orderby, order, page, and per_page parameters.
– POST /wp-json/kitgenix-affiliate-link-manager/v1/links — create a link, including optional starts_at, expires_at, fallback_url, rotation_mode, and rotation_destinations fields.
– GET /wp-json/kitgenix-affiliate-link-manager/v1/links/{id} — fetch one link.
– PUT|PATCH /wp-json/kitgenix-affiliate-link-manager/v1/links/{id} — update a link, including schedule and rotation settings.
– DELETE /wp-json/kitgenix-affiliate-link-manager/v1/links/{id} — move a link to the Trash.
– POST /wp-json/kitgenix-affiliate-link-manager/v1/links/{id}/disable — disable a link.
– POST /wp-json/kitgenix-affiliate-link-manager/v1/links/{id}/enable — re-enable a link.
– GET /wp-json/kitgenix-affiliate-link-manager/v1/links/export — export filtered links as structured rows.
– POST /wp-json/kitgenix-affiliate-link-manager/v1/links/import — import links with match_existing=slug|id|none and a links array payload.
– Link responses and exports now include health fields such as health_status, health_message, health_checked_at, health_http_code, and health_redirect_hops.
– Link responses and exports now also include analytics fields such as clicks_last_7_days, clicks_last_30_days, timeline_14_days, top_sources_30_days, top_referrers_30_days, and top_placements_30_days.
WP-CLI:
– Base command: wp kitgenix-affiliate link
– Subcommands: get, create, update, disable, enable, delete, export, import
– create / update accept --starts-at, --expires-at, --fallback-url, --rotation-mode, and --rotation-destinations.
– export supports JSON or CSV output.
– import supports JSON or CSV input and can match existing links by slug or ID.
– get and export output the stored destination health summary fields alongside the rest of the link record.
– get and export also output analytics summary fields, including recent timelines and top attribution breakdowns.
Scheduled events:
– Hourly health-check event: kitgenix_affiliate_run_health_checks
– Initial catch-up event: kitgenix_affiliate_run_health_checks_once
Developer actions:
– kitgenix_affiliate_redirected (int $post_id, string $destination_url, int $status) — fires after the click is counted and before the redirect exits.
This plugin includes a shared “Kitgenix hub” component in wp-admin which may fetch publicly available plugin metadata from WordPress.org using WordPress core’s plugins_api() function.
Caching:
– Transient: kitgenix_hub_wporg_active_installs_v1
– Transient: kitgenix_hub_wporg_ratings_v1
– Transient: kitgenix_hub_wporg_media_v1
Redirect destinations:
– When a visitor uses a short URL like /go/{slug}, the plugin redirects them to the destination URL you configured for that link. Destination URLs are commonly on third-party domains (affiliate programs).
By default, uninstall removes only plugin settings and plugin-only transients (it does not delete stored affiliate link posts or click data).
Optional: enable the “Delete all affiliate links and click data when the plugin is uninstalled” setting if you want a clean uninstall.
Deleted:
– Option: kitgenix_affiliate_link_manager_settings
– Transient: kitgenix_affiliate_link_manager_do_activation_redirect
– Transient (short-lived): kitgenix_affiliate_link_manager_do_rewrite_flush
If this plugin saves you time managing affiliate URLs, you can support ongoing development here:
https://buymeacoffee.com/kitgenix
Built with ❤︎ by @kitgenix – https://kitgenix.com