{"id":296612,"date":"2026-06-06T15:08:46","date_gmt":"2026-06-06T15:08:46","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fastlinkit-url-shortener-integration\/"},"modified":"2026-06-06T15:13:33","modified_gmt":"2026-06-06T15:13:33","slug":"fastlinkit-url-shortener-integration","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/fastlinkit-url-shortener-integration\/","author":18028134,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.7.5","stable_tag":"1.7.5","tested":"7.0","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"FastLinkIt \u2013 URL Shortener Integration","header_author":"FastLinkIt","header_description":"Shorten URLs, generate QR codes, accept payments &amp; donations, embed forms, booking pages and contact forms, and manage fundraising campaigns via the FastLinkIt API. Includes Gutenberg blocks.","assets_banners_color":"","last_updated":"2026-06-06 15:13:33","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/flnk.it\/features\/integrations","header_author_uri":"https:\/\/flnk.it","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.7.5":{"tag":"1.7.5","author":"erossini","date":"2026-06-06 15:13:33"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128.png":{"filename":"icon-128.png","revision":3563207,"resolution":"128","location":"assets","locale":"","width":128,"height":128},"icon.svg":{"filename":"icon.svg","revision":3563206,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.7.5"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[269,601,1887,1373,5530],"plugin_category":[40,42,45],"plugin_contributors":[266042],"plugin_business_model":[],"class_list":["post-296612","plugin","type-plugin","status-publish","hentry","plugin_tags-booking","plugin_tags-forms","plugin_tags-payments","plugin_tags-qr-code","plugin_tags-url-shortener","plugin_category-calendar-and-events","plugin_category-contact-forms","plugin_category-ecommerce","plugin_contributors-erossini","plugin_committers-erossini"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/fastlinkit-url-shortener-integration\/assets\/icon.svg?rev=3563206","icon":"https:\/\/ps.w.org\/fastlinkit-url-shortener-integration\/assets\/icon.svg?rev=3563206","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>FastLinkIt<\/strong> integrates your WordPress site with the <a href=\"https:\/\/flnk.it\">FastLinkIt<\/a> platform. Shorten any URL with one click from the post\/page editor, auto-shorten external links on save, generate tracked QR codes, and drop in shortcodes (or native Gutenberg blocks) for payments, donations, fundraising, newsletter signups, contact forms, embeddable forms, and booking pages.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>Manual URL Shortener<\/strong> \u2014 A sidebar meta box on every post and page lets you paste a URL, shorten it, and copy or insert the short link into your content.<\/li>\n<li><strong>Auto-Shorten on Save<\/strong> \u2014 Enable the option to automatically find and replace all external links in your post content with FastLinkIt short links when you publish or update.<\/li>\n<li><strong>QR Codes<\/strong> \u2014 <code>[flnkit_qr]<\/code> renders a QR code for any URL (or the current page). In tracked mode it mints a FastLinkIt short link so scans are counted, with custom colours and a one-click PNG download.<\/li>\n<li><strong>Native Gutenberg Blocks<\/strong> \u2014 Every widget is also a block: search the inserter for \"FastLinkIt\" to add Form, Booking, QR, Payment, Donation, Fundraiser, Subscribe and Contact blocks with a live preview and sidebar settings.<\/li>\n<li><strong>Payments &amp; Donations<\/strong> \u2014 <code>[flnkit_pay]<\/code> and <code>[flnkit_donate]<\/code> shortcodes render Stripe\/PayPal checkout buttons; <code>[flnkit_fundraise]<\/code> embeds a fundraising campaign with a progress bar.<\/li>\n<li><strong>Forms<\/strong> \u2014 <code>[flnkit_form]<\/code> embeds a hosted FastLinkIt form (every field type, validation, auto-resize) on any page or post.<\/li>\n<li><strong>Booking Pages<\/strong> \u2014 <code>[flnkit_booking]<\/code> embeds a planner so visitors can book appointments without leaving your site.<\/li>\n<li><strong>Newsletter &amp; Contact<\/strong> \u2014 <code>[flnkit_subscribe]<\/code> adds a mailing-list signup; <code>[flnkit_contact]<\/code> adds a support\/ticket form.<\/li>\n<li><strong>Bulk Contact Sync<\/strong> \u2014 Push your WordPress users (including WooCommerce customers) into your FastLinkIt contacts from the Contacts settings tab, matched by email and tagged for segmentation.<\/li>\n<li><strong>Webhooks<\/strong> \u2014 A signed webhook receiver fires WordPress actions for payment, contact, mailing, and form events so you can hook your own automations.<\/li>\n<li><strong>Plan-Aware<\/strong> \u2014 The plugin checks your FastLinkIt plan limits before creating each short link. If you run out of links, the remaining URLs are left unchanged and the post saves normally.<\/li>\n<li><strong>Short Code Prefix<\/strong> \u2014 Optionally prefix auto-generated short codes (e.g. <code>wp-a1b2c3<\/code>) to identify WordPress-generated links.<\/li>\n<li><strong>Connection Test<\/strong> \u2014 Verify your API key and connection from the settings page.<\/li>\n<li><strong>Works with Classic &amp; Block Editor<\/strong> \u2014 The \"Insert into content\" button works with both Gutenberg and the classic TinyMCE editor.<\/li>\n<\/ul>\n\n<h3>Shortcodes<\/h3>\n\n<ul>\n<li><code>[flnkit_pay amount=\"9.99\" currency=\"gbp\" description=\"...\"]<\/code> or <code>[flnkit_pay product_id=\"...\"]<\/code> \u2014 payment button.<\/li>\n<li><code>[flnkit_donate]<\/code> \u2014 donation button with custom amount.<\/li>\n<li><code>[flnkit_fundraise]<\/code> \u2014 fundraising campaign widget with progress bar.<\/li>\n<li><code>[flnkit_form shortcode=\"my-form\"]<\/code> \u2014 embed a hosted form (optional <code>height<\/code>, <code>width<\/code>, <code>max_width<\/code>).<\/li>\n<li><code>[flnkit_booking shortcode=\"my-planner\"]<\/code> \u2014 embed a booking page (optional <code>height<\/code>, <code>width<\/code>, <code>max_width<\/code>).<\/li>\n<li><code>[flnkit_qr url=\"https:\/\/example.com\"]<\/code> \u2014 tracked QR code; blank <code>url<\/code> uses the current page (optional <code>track<\/code>, <code>size<\/code>, <code>color<\/code>, <code>background<\/code>, <code>ec<\/code>).<\/li>\n<li><code>[flnkit_subscribe groups=\"all\"]<\/code> \u2014 newsletter signup form.<\/li>\n<li><code>[flnkit_contact]<\/code> \u2014 support\/ticket submission form.<\/li>\n<\/ul>\n\n<p>All of the above are also available as native Gutenberg blocks (search the inserter for \"FastLinkIt\").<\/p>\n\n<h3>How It Works<\/h3>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to <strong>Settings \u2192 FastLinkIt<\/strong> and enter your API key.<\/li>\n<li>When editing a post or page, use the <strong>FastLinkIt<\/strong> meta box in the sidebar to shorten any URL.<\/li>\n<li>Optionally enable <strong>Auto-Shorten Links<\/strong> to replace all external links on save.<\/li>\n<\/ol>\n\n<h3>Getting an API Key<\/h3>\n\n<ol>\n<li>Sign up at <a href=\"https:\/\/flnk.it\/Account\/Register\">flnk.it<\/a>.<\/li>\n<li>Go to <strong>Account \u2192 API Keys<\/strong>.<\/li>\n<li>Click <strong>Generate<\/strong> and copy the key.<\/li>\n<li>Paste it into the plugin settings.<\/li>\n<\/ol>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the FastLinkIt API to provide its functionality. By default it talks to <strong>https:\/\/flnk.it<\/strong>, but you can point it at a different FastLinkIt instance from the plugin settings (API URL field). FastLinkIt is the service this plugin is built to integrate with, so a connection is required for the plugin to work \u2014 URL shortening, QR codes, the Forms\/Products\/Contacts\/Fundraising lists, the embedded payment, donation, booking, form, subscribe and contact widgets, contact syncing and support tickets all rely on it.<\/p>\n\n<p>What data is sent, and when:<\/p>\n\n<ul>\n<li><strong>Shortening a URL<\/strong> (manually, automatically on save, or for a tracked QR code) \u2014 the destination URL, a generated short code and an optional title are sent so a short link can be created. Your API key, your site URL and a \"wordpress\" source identifier are included in the request.<\/li>\n<li><strong>Loading the Forms, Products, Contact Groups or Fundraising lists<\/strong> in the plugin admin \u2014 a request is made to list those items on your account.<\/li>\n<li><strong>A visitor submitting an embedded widget<\/strong> (contact\/ticket form, newsletter subscribe, donation, payment or fundraising widget) \u2014 the information they enter (such as name, email, message or amount) is sent so the action can be processed.<\/li>\n<li><strong>Syncing WordPress users<\/strong> from the Contacts tab \u2014 the selected users' email addresses and names are sent to create or update contacts on your account.<\/li>\n<li><strong>Creating an account, logging in or generating an API key<\/strong> from the setup wizard \u2014 the details you enter are sent to authenticate you.<\/li>\n<li><strong>Embedded Form and Booking widgets<\/strong> load the hosted page from flnk.it inside an iframe, so a visitor's browser requests that page directly from flnk.it when they view it.<\/li>\n<\/ul>\n\n<p>The bundled QR code library runs entirely in the browser; generating a QR image does not by itself contact any external service (though a <em>tracked<\/em> QR code creates a short link via the API as described above, and scanning one resolves through flnk.it).<\/p>\n\n<p>This service is provided by FastLinkIt. Please review their terms and privacy policy:<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/flnk.it\/terms<\/li>\n<li>Privacy Policy: https:\/\/flnk.it\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>fastlinkit<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu.<\/li>\n<li>Go to <strong>Settings \u2192 FastLinkIt<\/strong> and enter your API key.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20fastlinkit%20account%3F\"><h3>Do I need a FastLinkIt account?<\/h3><\/dt>\n<dd><p>Yes. Sign up for free at <a href=\"https:\/\/flnk.it\/Account\/Register\">flnk.it<\/a>. The free plan includes 5 links per month.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20reach%20my%20link%20limit%3F\"><h3>What happens if I reach my link limit?<\/h3><\/dt>\n<dd><p>The plugin stops shortening links for the current save operation. Your post is saved normally with the remaining links unchanged. You'll see a warning notice in the editor.<\/p><\/dd>\n<dt id=\"does%20auto-shorten%20replace%20internal%20links%3F\"><h3>Does auto-shorten replace internal links?<\/h3><\/dt>\n<dd><p>No. Only external links (different domain) are shortened. Links to your own site, anchors, mailto, tel, and links already pointing to FastLinkIt are skipped.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20the%20block%20editor%20%28gutenberg%29%3F\"><h3>Does this work with the block editor (Gutenberg)?<\/h3><\/dt>\n<dd><p>Yes. The manual shortener meta box appears in the sidebar and the \"Insert into content\" button inserts a paragraph block with the short link.<\/p><\/dd>\n<dt id=\"how%20do%20i%20embed%20a%20form%20or%20a%20booking%20page%3F\"><h3>How do I embed a form or a booking page?<\/h3><\/dt>\n<dd><p>Open <strong>FastLinkIt \u2192 Forms<\/strong>, pick a form from the list and copy its shortcode, then paste it onto any post or page. For booking pages, add <code>[flnkit_booking shortcode=\"your-code\"]<\/code> (find the planner's short code in your FastLinkIt dashboard). Both render in a self-contained iframe; the form embed auto-resizes to fit its content. You can set <code>height<\/code>, <code>width<\/code>, and <code>max_width<\/code> attributes. The Forms tab needs a Professional plan or higher and an API key with the <code>forms<\/code> scope.<\/p><\/dd>\n<dt id=\"which%20webhook%20events%20can%20i%20hook%20into%3F\"><h3>Which webhook events can I hook into?<\/h3><\/dt>\n<dd><p>The webhook receiver fires WordPress actions for <code>payment.completed\/failed\/refunded<\/code>, <code>contact.created\/updated\/unsubscribed\/bounced<\/code>, <code>mailing.sent\/opened\/clicked<\/code>, and <code>form.submitted<\/code>. Add an <code>add_action( 'flnkit_form_submitted', ... )<\/code> (etc.) in your theme or a custom plugin to run your own code when these events arrive.<\/p><\/dd>\n<dt id=\"are%20my%20qr%20codes%20tracked%3F\"><h3>Are my QR codes tracked?<\/h3><\/dt>\n<dd><p>Yes, by default. <code>[flnkit_qr]<\/code> creates a FastLinkIt short link for the target URL and encodes that short link in the QR, so every scan is counted in your dashboard. Set <code>track=\"false\"<\/code> to encode the raw URL directly (no tracking, no short link created). QR codes are rendered in the browser, so no scan data leaves your site until someone actually scans the code.<\/p><\/dd>\n<dt id=\"do%20i%20have%20to%20use%20shortcodes%2C%20or%20are%20there%20blocks%3F\"><h3>Do I have to use shortcodes, or are there blocks?<\/h3><\/dt>\n<dd><p>Both. Every shortcode has a matching native Gutenberg block \u2014 open the block inserter and search for \"FastLinkIt\". The Form, Booking, Payment, Donation, Fundraiser, Subscribe and Contact blocks show a live preview in the editor; the QR block renders on the published page.<\/p><\/dd>\n<dt id=\"how%20do%20i%20sync%20my%20wordpress%20users%20to%20fastlinkit%3F\"><h3>How do I sync my WordPress users to FastLinkIt?<\/h3><\/dt>\n<dd><p>Go to <strong>FastLinkIt \u2192 Contacts<\/strong>, optionally pick a user role and a tag, then click <strong>Sync Now<\/strong>. Users are matched to FastLinkIt contacts by email (existing contacts are updated, new ones created \u2014 nothing is deleted) and pushed in batches. This needs a Starter plan or higher and an API key with the <code>contacts<\/code> scope.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.7.5<\/h4>\n\n<ul>\n<li>Compliance: moved the remaining nine inline admin settings-page <code>&lt;script&gt;<\/code> blocks (connect-status, products\/campaigns\/groups\/forms loaders, contact sync, support message, tab switcher) into a single enqueued <code>assets\/admin-settings.js<\/code>, registered with <code>wp_enqueue_script<\/code> and fed nonces\/options via <code>wp_localize_script<\/code>. No JavaScript is printed inline anywhere in the plugin now.<\/li>\n<li>Compliance: renamed the admin menu\/submenu page slug <code>fastlinkit<\/code> to <code>flnkit<\/code> (and the wizard slug to <code>flnkit-wizard<\/code>), and the six localized JS data objects (<code>fastlinkitData<\/code>, <code>fastlinkitPayment<\/code>, <code>fastlinkitContact<\/code>, <code>fastlinkitWizard<\/code>, <code>fastlinkitFundraise<\/code>, <code>fastlinkitSubscribe<\/code>) to the <code>flnkit<\/code> prefix, so every plugin-defined name uses the unique <code>flnkit<\/code> prefix.<\/li>\n<\/ul>\n\n<h4>1.7.4<\/h4>\n\n<ul>\n<li>Compliance hardening: renamed the short <code>fli-<\/code> CSS prefix to <code>flnkit-<\/code> throughout, and moved all inline <code>&lt;style&gt;<\/code> blocks (front-end widgets + setup wizard) into enqueued stylesheets.<\/li>\n<li>Moved every front-end shortcode script (form, payment, donation, subscribe, fundraising) into enqueued JavaScript assets \u2014 no JavaScript is printed inline on the front end.<\/li>\n<li>Fixed a latent double-submit on payment\/donation\/fundraising widgets placed in post content (the inline handler and the enqueued handler both fired).<\/li>\n<\/ul>\n\n<h4>1.7.3<\/h4>\n\n<ul>\n<li>Compliance: the \"Powered by flnk.it\" credit on public widgets is now <strong>off by default<\/strong> and only shown when the administrator opts in (General settings tab).<\/li>\n<li>Documented the FastLinkIt external service (what data is sent and when) with Terms of Service and Privacy Policy links, per WordPress.org guidelines.<\/li>\n<li>Hardened the ticket attachment upload \u2014 the uploaded filename, temp path and MIME type are now fully sanitized and validated.<\/li>\n<\/ul>\n\n<h4>1.7.2<\/h4>\n\n<ul>\n<li>Added a <strong>Forms<\/strong> capability pill to the Your Account tab (shown for Professional+\/Unlimited plans), alongside Links, QR Codes, Donations, etc.<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>New <strong>Forms<\/strong> settings tab \u2014 lists your FastLinkIt forms with status and submission counts, click a form's shortcode to copy it, and preview the live form. Needs a Professional plan or higher and an API key with the <code>forms<\/code> scope.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>New <code>[flnkit_qr]<\/code> shortcode \u2014 tracked QR codes with custom colours and PNG download (bundles the MIT-licensed qrcode-generator library).<\/li>\n<li>Native Gutenberg blocks for all widgets (Form, Booking, QR, Payment, Donation, Fundraiser, Subscribe, Contact) with live previews and sidebar settings.<\/li>\n<li>Bulk contact sync \u2014 push WordPress users \/ WooCommerce customers into FastLinkIt contacts from the new Contacts settings tab (uses the <code>\/api\/contacts\/bulk<\/code> endpoint).<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>New <code>[flnkit_form]<\/code> shortcode \u2014 embed a hosted FastLinkIt form with auto-resize.<\/li>\n<li>New <code>[flnkit_booking]<\/code> shortcode \u2014 embed a planner \/ booking page.<\/li>\n<li>Webhook receiver now fires WordPress actions for contact (<code>contact.created\/updated\/unsubscribed\/bounced<\/code>), mailing (<code>mailing.sent\/opened\/clicked<\/code>), and form (<code>form.submitted<\/code>) events.<\/li>\n<li>Tested up to WordPress 7.0.<\/li>\n<li>Reconciled plugin version across the header, version constant, and stable tag.<\/li>\n<\/ul>\n\n<h4>1.1.0 \u2013 1.5.0<\/h4>\n\n<ul>\n<li>Payment and donation buttons (<code>[flnkit_pay]<\/code>, <code>[flnkit_donate]<\/code>).<\/li>\n<li>Fundraising campaign widget (<code>[flnkit_fundraise]<\/code>).<\/li>\n<li>Newsletter signup form (<code>[flnkit_subscribe]<\/code>).<\/li>\n<li>Support\/ticket contact form (<code>[flnkit_contact]<\/code>).<\/li>\n<li>Signed webhook receiver for payment events.<\/li>\n<li>Setup wizard and tabbed settings page.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Manual URL shortening from the editor sidebar.<\/li>\n<li>Auto-shorten all external links on save.<\/li>\n<li>Plan limit awareness with graceful degradation.<\/li>\n<li>Connection test in settings.<\/li>\n<li>Support for Classic and Block editors.<\/li>\n<\/ul>","raw_excerpt":"Shorten URLs, generate QR codes, accept payments &amp; donations, and embed forms, booking pages and contact forms from FastLinkIt \u2014 with native blocks.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296612","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=296612"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/erossini"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296612"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296612"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296612"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296612"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296612"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}