SolarDawn Sunrise & Sunset Widget
SolarDawn Sunrise & Sunset Widget adds a responsive frontend card for sunrise and sunset information. It works in posts, pages, widget areas, Gutenberg shortcode blocks, and page builders through the [solardawn_sunrise_sunset] shortcode.
The widget can use a default country/state/city dropdown selection, manual latitude/longitude, shortcode location attributes, or optional visitor country detection by public IP. Sunrise, sunset, twilight, and daylight details are calculated locally from the selected coordinates and timezone, then cached with WordPress transients.
Features include:
- Sunrise and sunset times
- Solar noon
- Day length
- Golden hour morning and evening
- Blue hour morning and evening
- Civil, nautical, and astronomical twilight
- Light, dark, and sunrise gradient themes
- Country, state, and city dropdowns generated from the bundled location JSON
- Automatic latitude, longitude, and timezone detection from selected locations
- Optional visitor country detection, disabled by default
Shortcode Examples
Default settings:
[solardawn_sunrise_sunset]
Country:
[solardawn_sunrise_sunset country="Sri Lanka"]
Country, state, and city without manual coordinates:
[solardawn_sunrise_sunset country="Sri Lanka" state="Western" city="Colombo"]
City search within a country:
[solardawn_sunrise_sunset country="Japan" city="Tokyo"]
Manual coordinates:
[solardawn_sunrise_sunset lat="6.9271" lon="79.8612" timezone="Asia/Colombo"]
Custom title:
[solardawn_sunrise_sunset country="United States" title="Today's Sun Times"]<h3>Privacy</h3>
This plugin calculates sunrise and sunset data locally from the selected latitude, longitude, timezone, and date.
Visitor country detection is disabled by default. When an administrator enables visitor country detection, the plugin sends the visitor IP address to ipapi.co to estimate the visitor’s country. If visitor country detection is disabled, no request is sent to ipapi.co.
The plugin does not store the full IP address in the database. It stores only a salted hash in the transient key and caches the detected country for 12 hours.
External services
This plugin can use one external service only when an administrator explicitly enables automatic visitor country detection.
Service name: ipapi
Service URL: https://ipapi.co/
Purpose: Used only to estimate the visitor’s country when the admin enables automatic visitor country detection.
Data sent: The visitor IP address is sent to ipapi.co when country auto-detection is used.
When data is sent: Only when the widget/page loads and the auto-detect country feature is enabled.
If auto-detection is disabled, no request is sent to ipapi.co.
Terms of Service: https://ipapi.co/terms/
Privacy Policy: https://ipapi.co/privacy/
Live Demo
You can view a live sunrise and sunset calculator here:
Live Sunrise and Sunset for your location Calculator
Zip Packaging Instructions
- Confirm the plugin folder is named
solardawn-sunrise-sunset-widget. - Confirm the main plugin file is
solardawn-sunrise-sunset-widget.php. - Zip the folder itself, not only the files inside it.
- The final zip should contain
solardawn-sunrise-sunset-widget/solardawn-sunrise-sunset-widget.phpat the top level. - Upload the zip from WordPress Admin > Plugins > Add New > Upload Plugin.
Testing Checklist
- Activate the plugin on WordPress 5.8 or newer.
- Confirm Settings > SolarDawn Sun Widget loads for administrators.
- Save settings in country mode and confirm the shortcode renders.
- Select a country, state, and city and confirm latitude, longitude, and timezone update automatically.
- Test a shortcode with
country,state, andcityattributes and confirm it renders without manual coordinates. - Save settings in manual coordinate mode and confirm latitude, longitude, and timezone are used.
- Confirm visitor country detection is disabled by default.
- Enable visitor country detection and confirm the privacy note is visible in settings before using it.
- Confirm the widget works in default country mode without calling ipapi.co.
- Confirm ipapi.co is contacted only after visitor country detection is enabled.
- Confirm the widget renders in a post, page, Gutenberg shortcode block, and widget area.
- Check mobile layout below 680px width.
- Confirm no hidden footer or header links are added.
WordPress.org Submission Checklist
- GPLv2 or later license is declared in the plugin header and readme.
- No hidden backlinks are present.
- No attribution link is rendered by the plugin.
- Optional IP geolocation behavior is documented.
- Inputs are sanitized and output is escaped.
- Admin settings use the WordPress Settings API and nonces from
settings_fields(). - Remote requests use
wp_remote_get()only for the opt-in ipapi.co country detection feature. - Assets are enqueued with WordPress APIs.
- No external CSS frameworks, font dependencies, or JavaScript libraries are required.
- Plugin files are namespaced/prefixed with
solardawnorSolarDawn.