=== SunnyTracker Widgets ===
Contributors: andrelyonberg
Tags: sunrise, sunset, moon phase, golden hour, eclipse
Requires at least: 6.3
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Sunrise, sunset, twilight, golden hour, moon phase and eclipse countdowns for 175,000 cities – as blocks, shortcodes and sidebar widgets.

== Description ==

Show your visitors when the sun rises and sets – on a campsite, hotel, wedding venue, sailing club, fishing or photography blog. Everything updates itself every day.

**Two blocks for the block editor**

* **SunnyTracker widget** – a small card: sunrise & sunset with day length, moon phase with moonrise and moonset, golden hour for photographers, or a countdown to the next solar or lunar eclipse. Light, dark or following the visitor's mode, three sizes, ten languages, your accent colour. Try them all on [sunnytracker.com/widgets](https://www.sunnytracker.com/widgets).
* **Sun & moon times** – the day's times as plain text in your theme's fonts and colours: sunrise, sunset, solar noon, sun height at noon, civil, nautical and astronomical twilight, blue and golden hour, day length, moonrise, moonset and moon phase. Pick the fields, list or table, today or tomorrow. Search engines read it like the rest of your page.

Both blocks have a city search built in. For a place outside town – a campsite, a beach, a venue – use coordinates instead.

**Shortcodes** for the classic editor, page builders and text widgets, including a single time inside a sentence: “Sunset tonight: `[sunnytracker_time city="hamburg" field="sunset"]`”.

**Sidebar widget** for classic themes under Appearance → Widgets.

**Settings → SunnyTracker** sets the default city, language and colours for the whole site.

Times are calculated by [SunnyTracker](https://www.sunnytracker.com) with the NOAA solar algorithm (refraction included) and Meeus lunar theory. Polar night and midnight sun are handled. No account and no API key needed.

== Installation ==

1. Install the plugin under Plugins → Add New and activate it.
2. Optional: set your city and language under Settings → SunnyTracker.
3. Add the block "SunnyTracker widget" or "Sun & moon times" to a post or page – or use a shortcode.

== Shortcodes ==

Card:

`[sunnytracker city="berlin" type="golden-hour" theme="dark" size="large" lang="de" accent="3b82f6"]`

* `city` – the city's slug as in its SunnyTracker address (sunnytracker.com/new-york → `new-york`)
* `type` – `sunrise` (default), `moon`, `golden-hour`, `solar-eclipse`, `lunar-eclipse`
* `theme` – `light`, `dark`, `auto`
* `size` – `compact`, `default`, `large`
* `lang` – `en`, `de`, `fr`, `es`, `it`, `pl`, `nl`, `pt`, `ja`, `zh`
* `accent` – colour as hex without #

Times as text:

`[sunnytracker_times city="berlin" show="sunrise,sunset,day_length,moon_phase" layout="table" date="tomorrow"]`

`[sunnytracker_times lat="54.18" lon="7.89" tz="Europe/Berlin" name="Heligoland harbour"]`

* `show` – any of `astronomical_dawn`, `nautical_dawn`, `civil_dawn`, `blue_hour_morning`, `golden_hour_morning`, `sunrise`, `solar_noon`, `noon_altitude`, `sunset`, `golden_hour_evening`, `blue_hour_evening`, `civil_dusk`, `nautical_dusk`, `astronomical_dusk`, `day_length`, `moonrise`, `moonset`, `moon_phase`
* `layout` – `list` (default) or `table`
* `date` – `today` (default), `tomorrow` or `YYYY-MM-DD`
* `title` – `yes` (default) or `no` for the heading with place and date
* `lat`, `lon`, `tz` – coordinates and time zone instead of a city; `name` – the place name for the heading

A single value:

`[sunnytracker_time city="berlin" field="sunset" date="tomorrow"]`

All shortcodes and blocks take `credit="yes"` or `credit="no"` for the source link; without it the site-wide setting applies.

== Frequently Asked Questions ==

= How do I find the slug of my city? =

The blocks have a city search. For shortcodes, search for your city on [sunnytracker.com](https://www.sunnytracker.com) and take the last part of the address, e.g. `new-york` from sunnytracker.com/new-york.

= Does the plugin add a link to my site? =

Only if you want it: a small "SunnyTracker" source link can be switched on under Settings → SunnyTracker or per block and shortcode. It is off by default.

= Does it set cookies or slow down my pages? =

No cookies. The text times are fetched on your server once per place and day and then cached, so your pages do not wait for SunnyTracker. The cards load lazily as iframes. Details under "External services".

= The card is cut off in a narrow column =

The cards have a fixed width: 280 px (compact), 320 px (default) or 380 px (large). In a narrow column or sidebar choose "Compact", or use the "Sun & moon times" block, which fits any width.

= What if SunnyTracker cannot be reached? =

Visitors see nothing where the times would be; logged-in editors see a short note. The plugin tries again after ten minutes.

== External services ==

This plugin relies on SunnyTracker ([www.sunnytracker.com](https://www.sunnytracker.com)), which computes the sun and moon times. Without it the plugin shows nothing.

* **Cards** (block "SunnyTracker widget", shortcode `[sunnytracker]`, sidebar card): the visitor's browser loads the card as an iframe from www.sunnytracker.com each time a page with it is viewed. Like any web request this sends the visitor's IP address, browser user agent and the address of the page it is embedded in, plus the chosen city and display options. SunnyTracker counts these views anonymously; it sets no cookies and stores nothing on the visitor's device.
* **Text times** (block "Sun & moon times", shortcodes `[sunnytracker_times]` and `[sunnytracker_time]`): your web server requests https://www.sunnytracker.com/api/v2/sun with the chosen city or coordinates, time zone and date, at most once per place and day (answers are cached). Nothing about your visitors is sent. The request carries your site's address in the user agent.
* **City search** in the block editor: your web server sends the typed search text to https://www.sunnytracker.com/api/v2/cities. Only logged-in editors can use it.

SunnyTracker: [privacy policy](https://www.sunnytracker.com/privacy) – [legal notice](https://www.sunnytracker.com/imprint) – [API documentation](https://www.sunnytracker.com/developers)

== Screenshots ==

1. A campsite page with the "Sun & moon times" block for its coordinates and two cards: golden hour and moon phase.
2. The "Sun & moon times" block in the editor: place, day and the fields to show.
3. The "SunnyTracker widget" block with city search, widget type, size, colours and language.
4. Settings → SunnyTracker: defaults for the whole site, the optional source link and a preview of the times.

== Changelog ==

= 1.1.0 =
* New block "Sun & moon times" and shortcodes `[sunnytracker_times]` / `[sunnytracker_time]`: the day's times as text – sunrise, sunset, twilight, golden and blue hour, day length, moonrise, moonset, moon phase – for a city or coordinates.
* New block "SunnyTracker widget" with city search and live preview.
* New sidebar widget for classic themes.
* New settings page for site-wide defaults; the language follows the site language.
* The source link is now opt-in, site-wide or per widget.

= 1.0.0 =
* First release.

== Upgrade Notice ==

= 1.1.0 =
Blocks, text times, a sidebar widget and a settings page.
