{"id":337269,"date":"2026-07-12T03:34:17","date_gmt":"2026-07-12T03:34:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ledger-links\/"},"modified":"2026-07-12T03:33:48","modified_gmt":"2026-07-12T03:33:48","slug":"trellink","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/trellink\/","author":23528877,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Trellink","header_author":"ledgerlinks","header_description":"Affiliate link cloaking with a broken-link checker, click analytics, and CSV import\/export.","assets_banners_color":"","last_updated":"2026-07-12 03:33:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/anshrockz91\/trellink","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"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":"ledgerlinks","date":"2026-07-12 03:33:48"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[5362,17210,5375,21157,5353],"plugin_category":[],"plugin_contributors":[271148],"plugin_business_model":[],"class_list":["post-337269","plugin","type-plugin","status-publish","hentry","plugin_tags-affiliate-links","plugin_tags-broken-link-checker","plugin_tags-click-tracking","plugin_tags-csv-import","plugin_tags-link-cloaking","plugin_contributors-ledgerlinks","plugin_committers-ledgerlinks"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/trellink.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Trellink cloaks and tracks affiliate links, with built-in link-health monitoring and click analytics.<\/p>\n\n<p><strong>Free features:<\/strong><\/p>\n\n<ul>\n<li>Unlimited cloaked links with 301\/302\/307 redirect types<\/li>\n<li>Automatic broken-link checker, twice a day, with a manual \"check now\" button<\/li>\n<li>Click analytics with configurable bot-filtering and self-click exclusion<\/li>\n<li>Device targeting: send mobile visitors to a different URL than desktop<\/li>\n<li>CSV import and export, no row limits<\/li>\n<\/ul>\n\n<p><strong>Pro (optional):<\/strong> geo-redirects, an autolinker for keyword-to-link automation, advanced analytics (referrer cohorts, conversion tracking), and multi-site licensing for agencies.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the Lemon Squeezy API to activate and validate Pro license keys. This is only used if you enter a Pro license key in Settings \u2014 the free tier never contacts this service.<\/p>\n\n<ul>\n<li><strong>What the service is and what it's used for:<\/strong> Lemon Squeezy is a payment and licensing provider. When you enter a Pro license key, the plugin sends that key to Lemon Squeezy to confirm it is valid and activate Pro features on your site. The plugin also re-checks the key's validity automatically once a week, so that a cancelled subscription loses Pro access without you needing to do anything manually.<\/li>\n<li><strong>What data is sent and when:<\/strong> the license key you entered, and your site's home URL (<code>home_url()<\/code>), sent when you click \"Activate\" and again during the weekly automatic re-check.<\/li>\n<li><strong>Service links:<\/strong> <a href=\"https:\/\/www.lemonsqueezy.com\/terms\">Terms of Service<\/a>, <a href=\"https:\/\/www.lemonsqueezy.com\/privacy\">Privacy Policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/trellink<\/code>, or install through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to Trellink in your admin menu and create your first link.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20does%20the%20broken-link%20checker%20work%3F\"><h3>How does the broken-link checker work?<\/h3><\/dt>\n<dd><p>A scheduled task checks every link's target URL twice a day and flags anything returning an error or an unreachable response. You can also trigger a check manually at any time.<\/p><\/dd>\n<dt id=\"how%20does%20click%20tracking%20handle%20bots%20and%20my%20own%20clicks%3F\"><h3>How does click tracking handle bots and my own clicks?<\/h3><\/dt>\n<dd><p>Bot filtering and self-click exclusion can be toggled in Settings. When enabled, the dashboard shows a filtered \"clean\" count alongside the raw count.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20track%20visitors%3F\"><h3>Does this plugin track visitors?<\/h3><\/dt>\n<dd><p>The plugin records a click (timestamp, device type, browser, referrer, and a one-way hash of the visitor's IP address) each time someone follows one of your cloaked links, so you can see basic usage stats for your own links. This data stays in your own WordPress database \u2014 it is not sent to any external service. IP addresses are hashed with a secret generated and stored by the plugin itself (not reused from WordPress core) before being stored; the raw IP address is never saved.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: link cloaking, broken-link checker, click analytics, CSV import\/export, device targeting.<\/li>\n<\/ul>","raw_excerpt":"Affiliate link cloaking with a broken-link checker, click analytics, and CSV import\/export.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/337269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=337269"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ledgerlinks"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=337269"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=337269"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=337269"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=337269"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=337269"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=337269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}