{"id":283819,"date":"2026-03-01T12:51:48","date_gmt":"2026-03-01T12:51:48","guid":{"rendered":"https:\/\/en-gb.wordpress.org\/plugins\/kitgenix-affiliate-link-manager\/"},"modified":"2026-03-19T10:08:57","modified_gmt":"2026-03-19T10:08:57","slug":"kitgenix-affiliate-link-manager","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/kitgenix-affiliate-link-manager\/","author":23310025,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.1","stable_tag":"1.0.1","tested":"7.0","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Kitgenix Affiliate Link Manager","header_author":"Kitgenix","header_description":"Manage affiliate short links in one place and redirect visitors via \/go\/{slug}.","assets_banners_color":"b9aad7","last_updated":"2026-03-19 10:08:57","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/donate.stripe.com\/9B65kDgG3fTQ2Kzcmwf7i00","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/kitgenix-affiliate-link-manager\/","header_author_uri":"https:\/\/kitgenix.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":257,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"kitgenix","date":"2026-03-01 12:53:04"},"1.0.1":{"tag":"1.0.1","author":"kitgenix","date":"2026-03-19 10:08:57"}},"upgrade_notice":{"1.0.1":"<p>Improves admin link management with pagination + server-side search + sorting + bulk actions, adds links-per-page setting and quick duplicate\/reset actions, and makes click tracking more reliable under concurrent traffic.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3486320,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3486320,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3486320,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3486320,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Affiliate Links list view.","2":"Add\/Edit Affiliate Link screen.","3":"Settings: redirect prefix and status."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[369,175,456,727,11104],"plugin_category":[35,55],"plugin_contributors":[246171],"plugin_business_model":[],"class_list":["post-283819","plugin","type-plugin","status-publish","hentry","plugin_tags-affiliate","plugin_tags-links","plugin_tags-marketing","plugin_tags-redirect","plugin_tags-shortlinks","plugin_category-advertising","plugin_category-seo-and-marketing","plugin_contributors-kitgenix","plugin_committers-kitgenix"],"banners":{"banner":"https:\/\/ps.w.org\/kitgenix-affiliate-link-manager\/assets\/banner-772x250.png?rev=3486320","banner_2x":"https:\/\/ps.w.org\/kitgenix-affiliate-link-manager\/assets\/banner-1544x500.png?rev=3486320","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kitgenix-affiliate-link-manager\/assets\/icon-128x128.png?rev=3486320","icon_2x":"https:\/\/ps.w.org\/kitgenix-affiliate-link-manager\/assets\/icon-256x256.png?rev=3486320","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Affiliate URLs can get long, messy, and hard to manage \u2014 especially once they\u2019re embedded across pages, posts, emails, and ads.<\/p>\n\n<p><strong>Kitgenix Affiliate Link Manager<\/strong> gives you a simple, central place to create and manage short affiliate links, and redirect visitors using a clean URL format:<\/p>\n\n<pre><code>\/go\/{slug} (prefix configurable)\n<\/code><\/pre>\n\n<p>It\u2019s designed to be lightweight and practical:\n- Create links with a Name, Slug and Destination URL\n- Configure the redirect prefix (default: <code>go<\/code>)\n- Choose redirect status: 307, 302 or 301\n- Track click counts per link\n- No third-party redirect\/short-link service (redirects happen on your site)<\/p>\n\n<p>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.<\/p>\n\n<h4>Notes<\/h4>\n\n<ul>\n<li>This plugin stores links in a private custom post type and performs redirects via WordPress rewrite rules.<\/li>\n<li>After changing the redirect prefix, you may need to re-save Permalinks (Settings \u2192 Permalinks) to ensure rewrite rules are refreshed.<\/li>\n<\/ul>\n\n<h3>Quick Start<\/h3>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to Kitgenix \u2192 Affiliate Links.<\/li>\n<li>Add a link (Name + Destination URL + optional custom slug).<\/li>\n<li>Copy the generated short URL and use it anywhere.<\/li>\n<\/ol>\n\n<h3>Developers<\/h3>\n\n<p>Text domain:\nkitgenix-affiliate-link-manager<\/p>\n\n<p>Custom post type:\n- <code>kitgenix_aff_link<\/code><\/p>\n\n<p>Post meta:\n- Destination URL: <code>_kitgenix_affiliate_destination_url<\/code>\n- Click count: <code>_kitgenix_affiliate_clicks<\/code>\n- Rel value: <code>_kitgenix_affiliate_rel<\/code> (allowed: <code>nofollow<\/code>, <code>sponsored<\/code>, <code>nofollow sponsored<\/code>)\n- Enabled flag: <code>_kitgenix_affiliate_enabled<\/code> (1\/0; defaults to enabled)<\/p>\n\n<p>Settings option:\n- <code>kitgenix_affiliate_link_manager_settings<\/code><\/p>\n\n<p>Settings group (Settings API):\n- <code>kitgenix_affiliate_link_manager_settings_group<\/code><\/p>\n\n<p>Redirect query var:\n- <code>kitgenix_affiliate_slug<\/code><\/p>\n\n<p>Admin actions \/ nonces:\n- Admin-post action (save): <code>admin_post_kitgenix_affiliate_link_save<\/code>\n- Admin-post action (delete): <code>admin_post_kitgenix_affiliate_link_delete<\/code>\n- Admin-post action (duplicate): <code>admin_post_kitgenix_affiliate_link_duplicate<\/code>\n- Admin-post action (reset clicks): <code>admin_post_kitgenix_affiliate_link_reset_clicks<\/code>\n- Admin-post action (bulk actions): <code>admin_post_kitgenix_affiliate_link_bulk<\/code>\n- Link save nonce action: <code>kitgenix_affiliate_link_save<\/code>\n- Link save nonce field name: <code>kitgenix_affiliate_link_nonce<\/code>\n- Link delete nonce action: <code>kitgenix_affiliate_link_delete<\/code>\n- Link delete nonce query arg: <code>nonce<\/code>\n- Link duplicate nonce action: <code>kitgenix_affiliate_link_duplicate<\/code>\n- Link reset clicks nonce action: <code>kitgenix_affiliate_link_reset_clicks<\/code>\n- Bulk actions nonce action: <code>kitgenix_affiliate_link_bulk<\/code>\n- Bulk actions nonce field name: <code>kitgenix_affiliate_link_bulk_nonce<\/code>\n- Settings save nonce action: <code>kitgenix_affiliate_link_manager_settings_save<\/code>\n- Settings save nonce field name: <code>kitgenix_affiliate_link_manager_settings_nonce<\/code><\/p>\n\n<p>Settings UI field identifiers:\n- Redirect status  id: <code>kitgenix_affiliate_redirect_status<\/code>\n- Links per page  id: <code>kitgenix_affiliate_links_per_page<\/code><\/p>\n\n<p>Developer filters:\n- <code>kitgenix_affiliate_slug_cache_ttl<\/code> (int $ttl, int $post_id, string $slug) \u2014 adjust redirect slug lookup cache TTL (seconds).<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin includes a shared \u201cKitgenix hub\u201d component in wp-admin which may fetch publicly available plugin metadata from WordPress.org using WordPress core\u2019s <code>plugins_api()<\/code> function.<\/p>\n\n<p>Caching:\n- Transient: <code>kitgenix_hub_wporg_active_installs_v1<\/code>\n- Transient: <code>kitgenix_hub_wporg_ratings_v1<\/code><\/p>\n\n<p>Redirect destinations:\n- When a visitor uses a short URL like <code>\/go\/{slug}<\/code>, the plugin redirects them to the destination URL you configured for that link. Destination URLs are commonly on third-party domains (affiliate programs).<\/p>\n\n<h3>Security &amp; Privacy<\/h3>\n\n<ul>\n<li>No tracking cookies are added.<\/li>\n<li>Admin actions are protected with capability checks and nonces.<\/li>\n<li>Redirect destinations are validated before redirect.<\/li>\n<\/ul>\n\n<h3>Uninstall<\/h3>\n\n<p>By default, uninstall removes only plugin settings and plugin-only transients (it does not delete stored affiliate link posts or click data).<\/p>\n\n<p>Optional: enable the \u201cDelete all affiliate links and click data when the plugin is uninstalled\u201d setting if you want a clean uninstall.<\/p>\n\n<p>Deleted:\n- Option: <code>kitgenix_affiliate_link_manager_settings<\/code>\n- Transient: <code>kitgenix_affiliate_link_manager_do_activation_redirect<\/code>\n- Transient (short-lived): <code>kitgenix_affiliate_link_manager_do_rewrite_flush<\/code><\/p>\n\n<h3>Support Development<\/h3>\n\n<p>If this plugin saves you time managing affiliate URLs, you can support ongoing development here:\nhttps:\/\/donate.stripe.com\/9B65kDgG3fTQ2Kzcmwf7i00<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Built with \u2764\ufe0e by @kitgenix - https:\/\/kitgenix.com<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install via Plugins \u2192 Add New and search for \u201cKitgenix Affiliate Link Manager\u201d, or upload the ZIP to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Open Kitgenix \u2192 Affiliate Links.<\/li>\n<li>(Optional) Update Settings \u2192 Prefix and Redirect Status.<\/li>\n<li>If you changed the prefix, re-save Settings \u2192 Permalinks.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20url%20format%20does%20it%20use%3F\"><h3>What URL format does it use?<\/h3><\/dt>\n<dd><p>By default it redirects from <code>\/go\/{slug}<\/code>. You can change the prefix in settings.<\/p><\/dd>\n<dt id=\"does%20it%20track%20clicks%3F\"><h3>Does it track clicks?<\/h3><\/dt>\n<dd><p>Yes. Each redirect increments a click counter stored against the link.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20301%20redirect%3F\"><h3>Can I use a 301 redirect?<\/h3><\/dt>\n<dd><p>Yes, but it is generally better to use a temporary redirect for affiliate links. Use 307 (recommended) or 302 unless you have a specific reason to make the redirect permanent.<\/p><\/dd>\n<dt id=\"should%20i%20add%20nofollow%2Fsponsored%3F\"><h3>Should I add nofollow\/sponsored?<\/h3><\/dt>\n<dd><p>Yes. When you add the short URL to a post\/page, tag the link with <code>rel=\"nofollow\"<\/code> or <code>rel=\"sponsored\"<\/code> (ideally both) to comply with search engine guidelines.<\/p><\/dd>\n<dt id=\"does%20it%20require%20woocommerce%3F\"><h3>Does it require WooCommerce?<\/h3><\/dt>\n<dd><p>No.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1 (19 March 2026)<\/h4>\n\n<p>Fix: Added missing translators comments for pluralized admin notices.\nFix: Hardened admin table escaping, pagination rendering, CSV export output, uninstall cleanup, and click-count bookkeeping to satisfy WordPress coding standards.\nUpdate: Improved the Kitgenix admin header layout for better alignment and less clutter.\nUpdate: Social links in admin headers now render as compact icon buttons (with accessible labels).\nUpdate: Added responsive header helpers so titles\/description and actions\/links lay out consistently.\nFix: Admin notices now display above the Kitgenix header using the WordPress standard notice area.\nFix: Added defensive notice normalization to prevent notices being relocated into the header by other scripts.\nUpdate: Admin tables inside Kitgenix pages now use Kitgenix styling for a more consistent branded look.\nFix: Added spacing between adjacent action links\/buttons (e.g., Edit\/Delete).\nUpdate: Links list now supports pagination.\nUpdate: Links list now supports server-side search (name, slug, destination).\nUpdate: Links list now supports server-side sorting by Name, Slug, and Clicks.\nUpdate: Added bulk actions for deleting links, resetting click counts, and exporting selected links to CSV.\nUpdate: Added per-link actions to duplicate a link and reset its click count.\nUpdate: Added a \u201cLinks per page\u201d setting (10\u2013200) to control list pagination size.\nUpdate: Added an \u201cEnabled\u201d toggle per link to temporarily disable redirects without deleting the link.\nUpdate: Added a developer filter to tune redirect slug lookup cache TTL.\nUpdate: Improved keyboard accessibility for the Edit Link modal (focus trap + restore focus).\nUpdate: Added inline validation for slug and destination URL fields in the admin UI.\nUpdate: Support tab click totals are calculated more efficiently on large sites.\nUpdate: Redirect handling now supports object-cache-friendly slug lookups for better performance on high-traffic links.\nUpdate: Added developer hooks around redirects (destination URL\/status filters and a redirect action).\nUpdate: Settings now warn when the redirect prefix may conflict with WordPress\/core URLs or an existing Page slug.\nUpdate: Added an optional \u201cdelete data on uninstall\u201d setting for clean uninstalls.\nFix: Click counting is now atomic to avoid missed increments under concurrent traffic.\nFix: Admin link actions now permit WooCommerce managers (when WooCommerce is installed).\nUpdate: Capability required to manage links is now filterable for developers.\nFix: Escaped shared Kitgenix hub card media output for WordPress coding standards compliance.\nMaintenance: Updated the plugin Author URI to the public Kitgenix WordPress.org profile and replaced the old custom admin-menu icon CSS with the native Dashicons icon.<\/p>\n\n<h4>1.0.0 (01 March 2026)<\/h4>\n\n<ul>\n<li>New: Initial release.<\/li>\n<li>New: Create and manage affiliate links with Name, Slug, and Destination URL.<\/li>\n<li>New: Redirect visitors via clean short URLs using <code>\/go\/{slug}<\/code> (prefix configurable).<\/li>\n<li>New: Settings to configure the redirect prefix and redirect status (307\/302\/301).<\/li>\n<li>New: Click tracking per link.<\/li>\n<li>New: Optional per-link rel guidance (nofollow \/ sponsored \/ both) for SEO compliance.<\/li>\n<li>New: Admin UI for listing, adding, and editing affiliate links.<\/li>\n<li>New: Links stored in a private custom post type.<\/li>\n<li>New: Redirect handling via WordPress rewrite rules.<\/li>\n<li>New: Security hardening with capability checks and nonces for admin actions.<\/li>\n<li>New: Destination URL validation prior to redirect.<\/li>\n<li>New: No external services and no tracking cookies.<\/li>\n<\/ul>","raw_excerpt":"Manage affiliate short links, branded redirects, and click tracking from one WordPress dashboard.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/283819","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=283819"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kitgenix"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=283819"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=283819"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=283819"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=283819"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=283819"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=283819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}