WFY24 Weather Widget
WFY24 Weather Widget lets you embed a free, fully-featured weather widget on any WordPress site — in any post, page, or sidebar — with a single shortcode, Gutenberg block, or built-in sidebar widget.
Zero-friction setup
On activation, a welcome wizard walks you through three clicks:
- Activate — we auto-register your site with wfy24.com using your admin email. No external signup. No copy/paste.
- Create Weather page — optionally publish a “Weather” page with the widget ready to go.
- Add to sidebar — one-click inject a compact weather widget into your first sidebar.
Features
- Free version with a small “Weather by WFY24” attribution link under each widget (disclosed and consented to during activation). No credit card, no hidden fees, no ads. Upgrade to Pro to remove the attribution
- Lightweight — 6.6 KB gzipped
- Real-time data — temperature, conditions, wind, humidity, 7-day forecast
- 50 languages — auto-detected from your site or set manually
- Auto location — GPS (with consent) or IP-based geolocation, or pin a specific city
- Light / Dark / Auto theme — matches your site automatically
- 5 layouts — Classic, Compact, Minimal, Badge, Forecast
- Shadow DOM isolation — zero CSS conflicts with your theme
- Zero dependencies — no jQuery, no React, no bloat
- Multi-source data — ICON-D2/EU/Global NWP + GFS fallback, with ML post-processing
Usage
Shortcode:
[wfy24_weather]
Override per instance:
[wfy24_weather city="paris-fr2988507" theme="dark" variant="forecast" lang="fr"]
Or use the WFY24 Weather Widget block in the Gutenberg editor for a visual interface.
Attribution
The free version of this plugin displays a small “Weather by WFY24” link under each rendered widget. The onboarding wizard shows an explicit disclosure notice and asks for your consent before the “Activate now (free)” button; clicking that button is your explicit permission to enable the link. To remove the attribution, a Pro version is available at wfy24.com/en/widgets/pro.
External service
This plugin connects to the WFY24 weather service at https://www.wfy24.com:
- Plugin activation: POSTs to
/api/widget/register-from-pluginwith the email you confirmed in the onboarding form (pre-filled from Settings → General; editable inline before activation), site name, site domain, WordPress version, and plugin version, in order to automatically provision your free API key. No activation happens without your explicit click on the “Activate now (free)” button. - City search (admin only, when typing in the Default City field): the plugin’s REST endpoint
/wp-json/wfy24/v1/citiesproxies your search query (e.g. “athens”) to/api/places/searchserver-side. Your search query is sent along with a User-Agent identifying the plugin. Results (slug + label + country flag) are cached for 5 minutes per query. The admin’s IP is never exposed cross-origin because the request is server-to-server. - Widget rendering (client-side on visitor browsers): loads
widget.jsand queries/api/widget/data. The widget sends the API key, optional city slug, language/units/theme preferences, and adata-geolocationflag (off by default — visitor location is not detected unless the admin explicitly opts in via the “Auto-detect visitor location” toggle). When the toggle is on AND the visitor grants permission, the visitor’s latitude/longitude is sent; when geolocation is denied, the visitor’s IP address is used for IP-based city detection (still gated by the toggle). No personal data is stored beyond standard anonymized request logs for rate limiting. - Pro upgrade flow (only if the user clicks “Upgrade to Pro” in Settings): GETs
/api/widget/pro/statusand POSTs to/api/widget/pro/checkoutand/api/widget/pro/portalto provision a Stripe Checkout session and a Stripe Billing Portal session. No data is sent unless the admin clicks the relevant button.
Links:
- WFY24 Terms of Service: https://www.wfy24.com/en/terms
- WFY24 Privacy Policy: https://www.wfy24.com/en/privacy-policy
Multisite Support
The plugin is multisite-compatible. All settings (API key, defaults, page) are stored per-subsite using get_option()/add_option(), so each subsite operates independently.
- Network Activation does not contact wfy24.com. It only loads the plugin code on every subsite. No
admin_emailis sent, no API key is created, no automatic phone-home occurs. - Each subsite admin completes onboarding individually. When the admin opens the welcome wizard on a subsite and clicks “Activate now (free)”, the plugin sends that subsite’s domain and
Settings → General → Email Addressto wfy24.com to obtain a domain-bound API key. The admin is shown a dynamic disclosure of the exact values that will be transmitted before clicking — no consent is collected on behalf of admins of other subsites. - New subsites added later remain inactive until their admin runs onboarding manually. The widget will not render on a subsite that has not been activated; no data leaves WordPress until an admin explicitly clicks Activate on that subsite.
- No centralized network admin panel exists in this version — each subsite has its own settings page. A network-level overview is on the roadmap.
- API keys are domain-bound. A key issued for
site-a.example.comwill not function onsite-b.example.com, which means subdomain and domain-mapped multisite installs work correctly out of the box (each subsite gets its own key for its own domain).
