=== ShortFreeURL ===
Contributors: shortfreeurl
Tags: url shortener, link shortener, short links, qr code, branded links
Tested up to: 6.6
Requires at least: 6.0
Requires PHP: 7.4
Stable tag: 1.1.0
License: GPLv2 or later
Short description: Automatically create free branded short links for your posts and pages with ShortFreeURL.

== Description ==
ShortFreeURL (https://shortfreeurl.com) is a free URL shortener with branded links, QR codes and click analytics. This plugin creates a short link on your own domain whenever a post or page is published, shows it in the editor, and replaces the WordPress shortlink.

== Installation ==
1. Download shortfreeurl-wordpress.zip from your ShortFreeURL website.
2. WordPress administrator: Plugins > Add New > Upload Plugin > choose ZIP > Install Now > Activate.
3. ShortFreeURL: Integrations & API > API > create a dedicated create-only key. Copy it once.
4. WordPress: Settings > ShortFreeURL. Enter your public HTTPS ShortFreeURL website origin, key and branded domain hostname. Enable automatic publishing.
5. Publish a test post. WP-Cron creates its link in the background. Reopen the editor and inspect the ShortFreeURL box.
6. Add [shortfreeurl] to display the saved short link. Settings are administrator-only; post links are public.

== Behavior ==
Posts and optionally pages are shortened once. Drafts and revisions are skipped. A deterministic per-site/post slug prevents duplicate links after uncertain requests; a retry that finds the post's own link (its slug, or the same permalink on the domain) saves that link instead of failing. Updating an existing permalink does not silently change an already shared short link: edit its destination in ShortFreeURL.
If an error appears, correct the key/domain/limit and update the published post to retry. A quiet site needs a working WP-Cron/system cron runner.

== Privacy ==
When enabled, the configured server receives the public permalink, title, branded domain, deterministic slug and wordpress tag. No drafts or visitor data are sent. The key is stored server-side as a non-autoloaded WordPress option. Restrict database access and revoke the key to disconnect.
This independently distributed plugin is not a WordPress.org marketplace listing.

== Changelog ==
= 1.1.0 =
* A retry after a timed-out request now adopts the link the first attempt created, instead of reporting a slug conflict forever.
= 1.0.0 =
* First release.
