Rate sources
The three built-in providers, what each sends and receives, and how to run the plugin with no outbound requests at all.
A rate source — a provider — is the thing that answers “what is one unit of USD worth in my store currency today”. Price Anchor ships three, and Pro adds more.
Frankfurter (default)
Frankfurter publishes European Central Bank reference rates through a public API that requires no account and no API key. It supports arbitrary base currencies, which is why it is the default: it works for any store currency, not just European ones.
- Service and API information: frankfurter.dev
- Updated once per working day, following the ECB’s own publication schedule
- No key, no registration, no per-request quota to manage
ECB reference rates are a published benchmark, not a tradeable rate. They will not match what your bank actually charges you. That gap is what the markup setting is for.
TCMB
The Central Bank of the Republic of Türkiye publishes a daily exchange-rate XML file. Price Anchor can read it directly.
- Source: tcmb.gov.tr/kurlar/today.xml
- Only valid when your WooCommerce store currency is TRY. The data is published relative to the lira, so it cannot serve a store selling in another currency.
- Published on banking days; there is no new file on weekends and public holidays, which is expected rather than a failure.
Manual
You type the rates. Price Anchor makes no outbound request whatsoever.
Choose this when:
- the site is not permitted to contact external services;
- finance fixes an internal conversion rate for a period and pricing must follow that, not the market;
- you want a hard, predictable price and are willing to update the number yourself.
Manual rates go through the same validation, markup, rounding and sync path as fetched ones. A manual rate that is zero, negative or non-finite is rejected exactly like a bad fetched rate.
Pro providers and failover
Pro adds a keyed commercial provider with wider currency coverage, and a failover chain: when the primary source is unreachable or returns an unusable table, the next configured source is asked instead. Failover is implemented as a provider rather than as a listener on the failure event, so the free plugin’s orchestration, validation and storage are untouched.
The commercial provider’s API key is encrypted at rest with a key derived from the site’s WordPress salts, and is never written to logs, status reports or notification emails.
What leaves your server
When an automatic provider is selected and a scheduled or manual refresh runs, the store server makes an HTTPS request containing the requested base/store currency and the source-currency codes, plus ordinary HTTP connection metadata such as the server’s IP address.
Product prices, product data, orders, customers and WordPress user data are not sent. There is no usage analytics, tracking pixel, advertising request or customer-side third-party script anywhere in the plugin. See Privacy and external services.