=== CurrencyRate.Today - Currency Blocks and Widgets ===
Contributors: falselight
Tags: currency converter, exchange rates, currency calculator, currency exchange, multi currency
Donate link: https://currencyrate.today/
Requires at least: 6.3
Tested up to: 6.9
Requires PHP: 7.4
Stable Tag: 1.0.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Free: 5 beautiful currency blocks — live rates, converter, ticker, card, price badge. 173 currencies, 15 sources, custom rates. No API key.

== Description ==

Everything runs directly on your site — no pop-ups from other websites, no extra subscriptions. All features are included for free.

Show live exchange rates and let visitors convert between 173 currencies right on your pages. Whether you run a travel blog, exchange office, online store, or business site — the plugin helps visitors quickly understand prices in different currencies.

You get 5 ready-made blocks. Just pick the one you need, add it to any page, and choose which currencies to display.

== 5 Blocks Included ==

= 📊 Exchange Rates =

A table showing rates for one base currency with 24-hour changes and country flags. Add call-to-action buttons if you need them — great for exchange offices, finance pages, and travel sites.

= 💱 Currency Converter =

Visitors pick two currencies, enter an amount, and see the result instantly. Compact design with country flags. Works well with search engines out of the box.

= 📈 Exchange Rate Card =

A small card highlighting one currency pair — its current rate, daily change, and optional mini chart. Works well in sidebars, footers, and headers.

= 🏷 Price Badge =

Shows what a fixed price (e.g. $99) looks like in other currencies. Visitors can expand it to see more. Perfect for product pages, pricing tables, and international catalogs.

= 📢 Exchange Rates Ticker =

A scrolling line with several currency pairs, their rates, and 24-hour changes. Customize speed, direction, and style. Place it in your header or footer to keep exchange info always visible.

== Why Site Owners Choose It ==

* **Choose your rate source** — pick from 15 built-in sources (central banks, market data) or enter your own rates
* **Use different sources on different pages** — show central bank rates on one page, your own exchange rates on another
* **5 blocks for different needs** — rate tables, converters, price badges, pair cards, and scrolling tickers
* **Works in the block editor and classic editors** — use blocks or paste a simple tag into any page or widget area
* **Made for real websites** — exchange offices, travel blogs, online stores, banks, and business sites
* **Accessible (WCAG 2.1 AA)** — keyboard navigation, screen reader support, and high contrast mode tested

== Features ==

= For your visitors =

* 💱 Convert between 173 currencies instantly
* 📊 See live exchange rates with 24-hour changes
* 📈 Quickly spot key currency pairs in cards, badges, or a scrolling ticker

= Flexible placement =

* 🧩 5 blocks you can add to any page, sidebar, or footer
* 🌍 Use different rate sources on different parts of your site
* 💼 Enter your own exchange rates for your business

= Appearance and search engines =

* 🚩 Country flags and optional mini charts where they help
* 🎨 Accent colors, border styles, and gradient presets to match your site
* 🎯 Add buttons linking to your exchange page or other actions
* 🔎 Helps Google and other search engines display your rates in search results

== Perfect For ==

* ✈️ Travel and booking websites showing prices for international visitors
* 💱 Currency exchange services and remittance platforms
* 🏦 Banks and financial portals
* 🛒 Online stores with international customers
* 🌐 Business websites that publish pricing in multiple currencies

== Installation ==

1. In your WordPress dashboard, go to Plugins → Add New, search for "CurrencyRate.Today", and click Install. Or upload the plugin folder to `/wp-content/plugins/`.
2. Activate the plugin.
3. Go to the plugin settings and choose where to get exchange rates from, how often to update them, and how they should look.
4. Open any page in the editor, add one of the five currency blocks, and configure it to show the currencies you need.

Note: charts and 24-hour change data appear after the plugin has collected enough rate history. This usually takes from about 1 hour to 24 hours, depending on the source you choose.

If you're not sure which source to choose and want real mid-market rates, start with [CurrencyRate](http://currencyrate.today/).

== Frequently Asked Questions ==

= Do I need to create an account or get an API key? =

No. The plugin works right away — no accounts, no keys, no setup with external services.

= Does it work in the WordPress block editor? =

Yes. All five blocks — Exchange Rates, Currency Converter, Exchange Rate Card, Price Badge, and Exchange Rates Ticker — are native blocks in the WordPress editor.

= Can I use it without the block editor? =

Yes. Every block also works as a simple tag you can paste into any page, post, or widget area. The settings page includes a generator that creates these tags for you — just pick your options and copy.

= Which rate sources are built in? =

The plugin comes with 15 built-in sources from central banks and markets. You can also enter your own rates manually.

* 🌍 **CurrencyRate (USD)** — 173 currencies, mid-market rates
* 🇺🇦 **PrivatBank (UAH)** — cash and transfer deals
* 🇪🇺 **ECB (EUR)** — ~30 currencies, European Central Bank reference rates
* 🇦🇺 **RBA (AUD)** — Reserve Bank of Australia reference rates
* 🇺🇦 **NBU (UAH)** — National Bank of Ukraine reference rates
* 🇦🇷 **Dolar Blue (ARS)** — Argentine parallel-market rates
* 🇦🇷 **BCRA (ARS)** — Banco Central de la República Argentina reference rates
* 🇳🇬 **CBN (NGN)** — Central Bank of Nigeria reference rates
* 🇧🇷 **BCB (BRL)** — Banco Central do Brasil reference rates
* 🇨🇿 **CNB (CZK)** — Czech National Bank reference rates
* 🇵🇱 **NBP (PLN)** — National Bank of Poland reference rates
* 🇷🇴 **NBR (RON)** — National Bank of Romania reference rates
* 🇬🇧 **BoE (GBP)** — Bank of England reference rates
* 🇮🇱 **BoI (ILS)** — Bank of Israel reference rates
* 🇹🇭 **BoT (THB)** — Bank of Thailand reference rates
* ✏️ **Custom rates** — enter your own rates for any pair

= Can I show rates from different sources on different pages? =

Yes. Each block can use its own rate source independently.

= Can I use my own exchange rates? =

Yes. Enter custom rates for your exchange service, bank, or internal pricing.

= How often are rates updated? =

You choose how often the plugin checks for new rates — as often as every 15 minutes. The rate data itself is usually refreshed about every 5 minutes at the source.

= Who is behind this plugin? =

CurrencyRate.Today has been building currency tools since 2014. Learn more at http://currencyrate.today/. Support typically responds within 24 hours.

= Does this plugin connect to external services? =

Yes. The plugin downloads exchange-rate data from remote services when you enable a rate source.

= Does the plugin track my visitors? =

No. It does not include any analytics or visitor tracking.

= Which external services may be used? =

When a source is enabled, the plugin connects to one of these services to get rate data:

CRToday Currency Proxy: https://crtoday.fex.to/

CurrencyRate.Today: https://currencyrate.today/

= When does the plugin contact external services? =

The plugin requests new rate data when:

a page with a currency block is viewed and the stored rates have expired;

you manually refresh rates in the plugin settings.

= What data is sent and received? =

When checking for new rates, the plugin sends a standard web request containing the selected source and the currencies you chose. It receives rate numbers and timestamps in return. No visitor data is sent. As with any web request, your server's IP address is visible to the service.

For the default service, review the Terms of Service (https://crtoday.fex.to/terms.html) and Data Disclaimer (https://crtoday.fex.to/disclaimer.html).

= Can’t find your exchange rate source? =

Reach out to us via our support page. We’re happy to review new sources and will do our best to make them available in the plugin whenever possible.

== Screenshots ==

1. Compare multiple currencies for exchange offices or travel sites using the Exchange Rates block.
2. Let visitors calculate conversions instantly on any page with the Currency Converter.
3. Highlight a key currency pair and its 24-hour trend in your sidebar or footer with the Exchange Rate Card.
4. Show international shoppers what a product costs in their currency with the Price Badge.
5. Keep live market rates continuously visible across your site with the scrolling Exchange Rates Ticker.
6. Clean plugin dashboard with key stats, active currencies, storage overview, and quick control settings.
7. Storage analytics dashboard showing rate history volume, tracked sources, and database distribution.
8. Flexible source manager for built-in and local exchange rate providers with update tracking and deal types.
9. Exchange Rates shortcode builder with real-time preview and instant shortcode generation.
10. Currency Converter builder with live preview and simple controls for source, amount, and currencies.
11. Ticker builder for creating scrolling exchange rate tickers with custom currency pairs.
12. Rate Card builder with chart preview, display settings, theme controls, and compact layout options.
13. Price Badge builder for showing converted prices in multiple currencies with a clean visual preview.
14. Currency manager with a large searchable list of currencies, symbols, flags, and usage status.
15. Style.
16. Gutenberg blocks.
17. Manage built-in and local data sources from one place, with freshness status, pricing mode, supported pairs, and quick edit actions.
18. Create or edit a local exchange office source with custom bid/ask pricing, base currency selection, and manual exchange rate management.
19. Preview local exchange office rates directly inside the WordPress block editor and configure the block output with source and currency controls.

== Changelog ==

= 1.0.3 =

* Exchange Rates block: rate lookup keys normalised to uppercase — fixes missing rows when an API source returns lowercase currency codes
* Editor amount input: European number format (e.g. 1.234,56) now parsed correctly instead of being truncated
* Editor amount input: multiple commas (e.g. 1,234,567) treated as thousand separators instead of decimal
* CTA links include rel="noopener noreferrer" for safer external navigation
* Currency Converter: added DOM guard — throws a descriptive error instead of a silent null-reference crash when markup is incomplete
* Currency name cache is now locale-aware, preventing stale translations on multilingual sites (WPML, Polylang)

= 1.0.2 =

* Accessibility audit (WCAG 2.1/2.2 Level AA) — full checklist, findings report, and remediation backlog
* Currency Converter announces results to screen readers via aria-live region with debounced updates
* Exchange Rate Card chart tabs follow WAI-ARIA Tabs pattern with keyboard arrow navigation
* Chart loading state announced to assistive technology through live region
* Sparkline SVG elements include role="img" and aria-label for screen readers
* Focus indicators remain visible in Windows High Contrast Mode (transparent outline fallback)
* Screen-reader-only utility class (.crtoday-sr-only) added to shared styles
* Local Storage: currency codes validated against ISO 4217 pattern and normalised to uppercase
* Local Storage: duplicate recent-currency entries eliminated via Set-based deduplication
* Local Sources refresh button no longer causes a full page reload (uses AJAX)
* Frontend chart and loading labels are now translatable via i18n instead of hardcoded English

= 1.0.1 =

* Redesigned review banner with premium styling matching the admin panel design system
* Review banner now appears immediately after plugin activation instead of a 7-day delay
* "Remind me later" and dismiss (×) postpone the banner for 14 days instead of 7
* Fixed "Rate the plugin" button — review page now opens reliably without popup blocking
* Fixed debug "Trigger banner" — injected banner is now fully interactive
* Unified i18n translator comments for "Remove %s" string across all admin panels

= 1.0.0 =

* First stable public release with all five blocks production-ready
* Full-width mode for Price Badge — stretches to fill the container width
* Compact and normal display modes with proportionally scaled typography, padding, and flags across all blocks
* Edge-to-edge sparkline charts in Exchange Rate Card (no horizontal padding)
* Fixed Rate Card rendering error when chart data is unavailable
* Fixed Price Badge primary value binding and shortcode attribute handling
* Fixed admin preview rendering for flags and always-expanded panels
* Improved dark-theme consistency for source links, labels, and footer chrome
* Reduced WordPress editor deprecation warnings for block controls
* Shortcode generator covers every block option including compact mode and full width
* Release packaging and metadata aligned for WordPress.org distribution

= 0.10.0 =

* Added 12 new built-in central bank sources: ECB (EUCB), RBA, NBU, Dolar Blue, BCRA, CBN, BCB, CNB, NBP, NBR, BoE, BoI
* WP-Cron background fetch — exchange rates refresh automatically without blocking page loads
* Source selection limited to 3 active sources (MAX_SOURCES = 3)
* Sub-tab navigation for Sources (Built-in / Local) and Storage (Database / Cache) settings
* Renamed ECB source identifier to EUCB for consistency
* Emoji flags next to source labels in admin UI
* Renamed internal "DEFAULT" deal type to "STANDARD" across the codebase
* Shortcode generator updated for all five blocks

= 0.9.0 =

* Added 3 new blocks: Exchange Rate Card, Price Badge, and Exchange Rates Ticker
* Exchange Rate Card — single currency pair with current rate, 24-hour change, and optional sparkline chart
* Price Badge — collapsible badge converting a fixed amount into multiple target currencies
* Exchange Rates Ticker — horizontally scrolling marquee with multiple currency pairs, configurable speed, direction, and separators
* Accent stripes and color-border styling with gradient theme presets for all card-style blocks
* Compact mode and source label support across all blocks
* Built-in shortcode generator now covers all five blocks
* Unified default handling: shortcode generator produces clean shortcodes with no redundant attributes
* Improved internal code consistency and reduced code duplication

= 0.2.0 =

* Minor bug fixes in Currency Converter behavior
* Improved keyboard focus handling in converter currency dropdown search
* Small visual polish update for converter fields and currency selector button

= 0.1.1 =

* Shortcode generator fixes and UI improvements

= 0.1.0 =

* Initial public release
* Exchange Rates and Currency Converter Gutenberg blocks
* Shortcode support and built-in shortcode generator
* Multiple source support
* Custom rate support
* Optional CTA buttons
* ExchangeRateSpecification JSON-LD output

== Upgrade Notice ==

= 1.0.1 =

Redesigned review banner, immediate display after activation, fixed popup blocking on rate action.

= 1.0.0 =

First stable release — five blocks, full-width and compact modes, unified styling, bug fixes, and WordPress.org packaging.

= 0.9.0 =

Major update: 3 new blocks (Exchange Rate Card, Price Badge, Exchange Rates Ticker), accent styling, compact mode, and a generator for easy setup.

= 0.2.0 =

Recommended update with minor converter fixes and style polish.