{"id":235513,"date":"2025-06-03T11:07:32","date_gmt":"2025-06-03T11:07:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/custom-link-shortener\/"},"modified":"2026-05-31T17:25:58","modified_gmt":"2026-05-31T17:25:58","slug":"custom-link-shortener","status":"publish","type":"plugin","link":"https:\/\/fuc.wordpress.org\/plugins\/custom-link-shortener\/","author":23298525,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.2.0","stable_tag":"2.2.0","tested":"7.0","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Custom Link Shortener","header_author":"Lukastech","header_description":"A custom URL shortener with analytics, rotating links, location tracking, and password protection.","assets_banners_color":"72879a","last_updated":"2026-05-31 17:25:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":10,"downloads":586,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation"],"tags":{"1.4.3":{"tag":"1.4.3","author":"lukastech","date":"2025-06-07 17:02:29"},"2.2.0":{"tag":"2.2.0","author":"lukastech","date":"2026-05-31 17:25:58"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3305711,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3305711,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon-512x512.png":{"filename":"icon-512x512.png","revision":3305711,"resolution":"512x512","location":"assets","locale":"","width":512,"height":512}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3305711,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.3","2.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3555745,"resolution":"1","location":"assets","locale":"","width":1014,"height":558},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3555745,"resolution":"2","location":"assets","locale":"","width":1012,"height":330},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3555745,"resolution":"3","location":"assets","locale":"","width":1014,"height":524},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3555745,"resolution":"4","location":"assets","locale":"","width":966,"height":406},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3555745,"resolution":"5","location":"assets","locale":"","width":1009,"height":597}},"screenshots":{"1":"Link creation screen showing configuration fields and inline base URL slug row.","2":"Dashboard overview displaying month-over-month traffic trends and active links.","3":"Comprehensive global device, browser, and hardware environment breakdowns.","4":"Detailed active link dashboard with controls.","5":"In-depth UTM traffic logging display and alert notification settings."}},"plugin_section":[],"plugin_tags":[5375,18996,2953,5530,25969],"plugin_category":[59],"plugin_contributors":[243327],"plugin_business_model":[],"class_list":["post-235513","plugin","type-plugin","status-publish","hentry","plugin_tags-click-tracking","plugin_tags-custom-links","plugin_tags-deep-linking","plugin_tags-url-shortener","plugin_tags-utm-tracking","plugin_category-utilities-and-tools","plugin_contributors-lukastech","plugin_committers-lukastech"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/custom-link-shortener\/assets\/icon-128x128.png?rev=3305711","icon_2x":"https:\/\/ps.w.org\/custom-link-shortener\/assets\/icon-256x256.png?rev=3305711","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/custom-link-shortener\/assets\/screenshot-1.png?rev=3555745","caption":"Link creation screen showing configuration fields and inline base URL slug row."},{"src":"https:\/\/ps.w.org\/custom-link-shortener\/assets\/screenshot-2.png?rev=3555745","caption":"Dashboard overview displaying month-over-month traffic trends and active links."},{"src":"https:\/\/ps.w.org\/custom-link-shortener\/assets\/screenshot-3.png?rev=3555745","caption":"Comprehensive global device, browser, and hardware environment breakdowns."},{"src":"https:\/\/ps.w.org\/custom-link-shortener\/assets\/screenshot-4.png?rev=3555745","caption":"Detailed active link dashboard with controls."},{"src":"https:\/\/ps.w.org\/custom-link-shortener\/assets\/screenshot-5.png?rev=3555745","caption":"In-depth UTM traffic logging display and alert notification settings."}],"raw_content":"<!--section=description-->\n<p>Advanced URL shortener for WordPress with deep-dive analytics, UTM tracking, native app deep linking, link expiration, QR codes, click goals, and a REST API.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>\ud83d\ude80 Create custom short URLs (e.g., <code>yoursite.com\/go\/product<\/code>)<\/li>\n<li>\ud83d\udcf1 <strong>NEW:<\/strong> Device &amp; Browser Tracking (Desktop, Mobile, Tablet, Chrome, Safari, etc.)<\/li>\n<li>\ud83d\udd32 <strong>NEW:<\/strong> Instant QR Code Generation for offline marketing<\/li>\n<li>\ud83c\udfaf <strong>NEW:<\/strong> Click Goals with automated admin email alerts<\/li>\n<li>\u23f8\ufe0f <strong>NEW:<\/strong> Pause\/Activate links instantly via AJAX toggle<\/li>\n<li>\ud83d\uddd1\ufe0f <strong>NEW:<\/strong> Bulk delete functionality in the analytics dashboard<\/li>\n<li>\ud83d\udd17 <strong>NEW:<\/strong> REST API endpoints for remote link creation<\/li>\n<li>\ud83d\udcc8 Native App Deep Linking (break out of TikTok\/Instagram in-app browsers)<\/li>\n<li>\ud83c\udff7\ufe0f UTM Parameter Pass-Through &amp; Local DB Tracking<\/li>\n<li>\u23f3 Link Expiration with Fallback URLs<\/li>\n<li>\u2699\ufe0f Global Base Slug customization (change <code>\/go\/<\/code> to anything, or remove it)<\/li>\n<li>\ud83d\udcca Detailed click analytics with:\n\n<ul>\n<li>UTM Source, Medium, and Campaign data<\/li>\n<li>Visitor IP addresses and Location data (country\/city)<\/li>\n<li>User agents, devices, and browsers<\/li>\n<\/ul><\/li>\n<li>\ud83d\udd04 URL rotation (randomize destinations)<\/li>\n<li>\ud83d\udd12 Password protection for private links<\/li>\n<li>\ud83d\udcc1 CSV export for all analytics data (Overview &amp; Detailed Daily)<\/li>\n<li>\ud83c\udfa8 Modern Indigo Admin UI with stat cards and status badges<\/li>\n<li>\ud83d\udd04 Create one URL that redirects to a random published post on your website<\/li>\n<\/ul>\n\n<h3>Usage<\/h3>\n\n<h3>Global Settings<\/h3>\n\n<ol>\n<li>Go to Custom Link Shortener \u2192 Settings<\/li>\n<li>Customize your Global Base Slug (e.g., <code>link<\/code>, <code>out<\/code>, or leave blank)<\/li>\n<li>Set your Alert Email for Click Goals<\/li>\n<li>Toggle default behaviors for Native App Deep Linking and UTM tracking<\/li>\n<\/ol>\n\n<h3>Creating Short Links<\/h3>\n\n<ol>\n<li>Go to Custom Link Shortener in your admin menu<\/li>\n<li>Enter your preferred alias and Destination URL(s)<\/li>\n<li>Optional: Set Click Goals, Expiration Dates, Fallback URLs, or Passwords<\/li>\n<li>Click \"Create Short Link\"<\/li>\n<\/ol>\n\n<h3>Viewing Analytics &amp; Dashboard<\/h3>\n\n<ol>\n<li>Go to Custom Link Shortener \u2192 Analytics<\/li>\n<li>View the master Dashboard for month-over-month trends and device breakdowns<\/li>\n<li>Click \"Report\" on any link to see detailed daily stats, UTM traffic sources, and devices<\/li>\n<li>Generate QR codes, Pause active links, or Export data as CSV directly from the table<\/li>\n<\/ol>\n\n<h3>Advanced Features<\/h3>\n\n<h3>Instant QR Codes<\/h3>\n\n<p>Click the \"QR Code\" button next to any link in your dashboard to instantly generate a scannable, downloadable QR code. Perfect for bridging offline marketing (flyers, business cards, presentations) directly to your tracked short links.<\/p>\n\n<h3>Click Goals &amp; Alerts<\/h3>\n\n<p>Set a target number of clicks for any link. Once that threshold is reached, the plugin will automatically dispatch a notification email to your designated admin address.<\/p>\n\n<h3>Native App Deep Linking<\/h3>\n\n<p>When enabled in Settings, the plugin attempts to force links opened inside social media platforms (like TikTok, Instagram, or Pinterest) to break out of the restrictive in-app browser and open in the user's native browser or native destination app.<\/p>\n\n<h3>UTM Tracking &amp; Pass-Through<\/h3>\n\n<p>The plugin automatically catches incoming UTM parameters (<code>utm_source<\/code>, <code>utm_medium<\/code>, <code>utm_campaign<\/code>), logs them into your local WordPress database for easy viewing alongside device data, and seamlessly forwards them to your final destination URL so external tools like Google Analytics (GA4) can still track them.<\/p>\n\n<h3>REST API Integration<\/h3>\n\n<p>Manage links headlessly via the WordPress REST API:\n- <code>GET \/wp-json\/wpcs\/v1\/links<\/code>: Retrieve all links\n- <code>GET \/wp-json\/wpcs\/v1\/links\/{id}<\/code>: Retrieve a specific link\n- <code>POST \/wp-json\/wpcs\/v1\/links<\/code>: Create a new link (requires authentication)<\/p>\n\n<h3>URL Rotation &amp; Random Posts<\/h3>\n\n<ul>\n<li>Enter multiple URLs to randomize destinations on every click (A\/B Testing)<\/li>\n<li>Use the Random Post feature to route visitors to a random published article on your site<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin uses external services for enhanced functionality:<\/p>\n\n<ol>\n<li><strong>ipapi.co<\/strong> (Location Tracking)<\/li>\n<\/ol>\n\n<p>- Sends: Visitor's IP address (only when a link is clicked)\n- Terms: https:\/\/ipapi.co\/terms\/\n- Privacy: https:\/\/ipapi.co\/privacy\/<\/p>\n\n<ol>\n<li><strong>goqr.me \/ qrserver.com<\/strong> (QR Generation)<\/li>\n<\/ol>\n\n<p>- Sends: The short URL string to generate the image\n- Terms: https:\/\/goqr.me\/api\/<\/p>\n\n<h3>Can I use custom slugs?<\/h3>\n\n<p>Yes! You can choose any alphanumeric slug. You can also customize the base slug (e.g., change <code>\/go\/<\/code> to something else) in the Settings tab.<\/p>\n\n<h3>Does UTM tracking conflict with Google Analytics?<\/h3>\n\n<p>No! The UTM Pass-Through feature ensures that GA4 receives the exact same tracking data, while giving you a resilient, server-side backup inside your WordPress dashboard that defeats ad-blockers.<\/p>\n\n<h3>How do I pause a link?<\/h3>\n\n<p>Simply toggle the switch in the Analytics overview table. Paused links will immediately stop redirecting traffic and display an inactive message to visitors.<\/p>\n\n<h3>2.2.0 (May 2026)<\/h3>\n\n<ul>\n<li>Added Dashboard stat trends (Month-over-Month percentage &amp; Last Click time diff)<\/li>\n<li>Added Device\/Browser parsing from raw User Agents<\/li>\n<li>Added Click Goals (Email alert when target is hit)<\/li>\n<li>Added Link Pausing\/Deactivation (AJAX Toggle)<\/li>\n<li>Added Bulk Delete checkboxes to Analytics<\/li>\n<li>Added REST API endpoints for remote link generation<\/li>\n<li>Added Instant QR Code generation via interactive modals<\/li>\n<li>Redesigned admin UI with modern indigo design system, stat cards, and status badges<\/li>\n<li>Improved clipboard feedback with toast notifications<\/li>\n<\/ul>\n\n<h3>2.0.1 (May 2026)<\/h3>\n\n<ul>\n<li>Fixed analytics layout constraints<\/li>\n<li>Upgraded UTM feature to log parameters locally to the database<\/li>\n<li>Added Traffic Source (UTMs) to CSV exports<\/li>\n<li>Added auto-migration for database upgrades<\/li>\n<\/ul>\n\n<h3>2.0.0 (May 2026)<\/h3>\n\n<ul>\n<li>WordPress 7.0 Compatibility<\/li>\n<li>Added Native App Deep Linking breakout<\/li>\n<li>Added Link Expiration and Fallback URLs<\/li>\n<li>Added Global Base Slug configuration via new Settings Tab<\/li>\n<\/ul>\n\n<h3>1.4.3 (June 2025)<\/h3>\n\n<ul>\n<li>Redirect users to random posts on the website via a shortlink<\/li>\n<li>Added Total Redirects tracking<\/li>\n<\/ul>\n\n<h3>1.4.0 (May 2025)<\/h3>\n\n<ul>\n<li>Complete UI redesign and CSV export addition<\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<p>For support, please email support@lukastechs.com.<\/p>\n\n\n\n<p>Pro Tip: For maximum compatibility, always test new short links before sharing them widely!<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/custom-link-shortener<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Navigate to WP Shortener in your admin menu to configure your Global Settings<\/li>\n<li>Create your first short link<\/li>\n<\/ol>","raw_excerpt":"Advanced URL shortener for WordPress with deep-dive analytics, UTM tracking, native app deep linking, link expiration, QR codes, click goals, and a RE &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/235513","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=235513"}],"author":[{"embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lukastech"}],"wp:attachment":[{"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=235513"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=235513"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=235513"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=235513"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=235513"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fuc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=235513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}