[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$frGz5G0bGofVOF3U1lFtmjjhOJgROUr6wYVk-V3rkX1k":3,"$f6rkN4RSPChHb_3O8ozjU4YMEsPWeJG9_qT5XtmAaUt0":284,"$fbWqWzyKwEkFQOk40nTzv63I7YwU5FTHUv59wrz6KUmc":289},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"discovery_status":31,"vulnerabilities":32,"developer":33,"crawl_stats":29,"alternatives":37,"analysis":130,"fingerprints":246},"simply-strava","Simply Strava","1.0.4","junkins","https:\u002F\u002Fprofiles.wordpress.org\u002Fjunkins\u002F","\u003Cp>A widget to display the last several weeks of Strava activity (mileage) in a\u003Cbr \u002F>\nsidebar.\u003C\u002Fp>\n","A simple Strava widget for Wordpress",10,2827,20,1,"2013-04-20T01:32:00.000Z","3.5.2","3.4.2","",[20,21,22,23,24],"cycling","gps","running","strava","widget","http:\u002F\u002Fwww.njcyclist.com\u002Fsimply_strava","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimply-strava.zip",85,0,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":11,"avg_security_score":27,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},30,84,"2026-05-20T04:11:56.630Z",[38,56,77,93,112],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":28,"num_ratings":28,"last_updated":48,"tested_up_to":17,"requires_at_least":49,"requires_php":18,"tags":50,"homepage":54,"download_link":55,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"wp-routes","WP-Routes Plugin","0.4","funkster","https:\u002F\u002Fprofiles.wordpress.org\u002Ffunkster\u002F","\u003Cp>WP-Routes Plugin allows you to embed routes into wordpress posts and pages. It is ideal for WordPress Blogs dedicated to cyclists, mountain bikers, runners, joggers, walkers, hikers, swimmers, canoeists, sailers, motorbikers and anyone else looking for routes, trails or tracks, on roads, paths, trails or even on water.\u003C\u002Fp>\n\u003Cp>WP-Routes\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fwww.gpsies.com\u002F\" rel=\"nofollow ugc\">GPSies\u003C\u002Fa> is an interactive service that lets you view, print or download routes, tracks and trails. These routes are available on-screen for those researching new tracks, printable for those who want to take a paper copy with them or downloadable to a wide variety of devices for those a little more tech savvy.\u003C\u002Fp>\n\u003Cp>Routes are searchable by an interactive map and list details such as distance, elevation, route characteristics etc. It uses the GPSies API [http:\u002F\u002Fwww.gpsies.com\u002Fapi\u002FGPSiesAPI_en.pdf] and allows you to embed GPS maps direct into your wordpress blog.\u003C\u002Fp>\n\u003Cp>Based on an original idea by Flavio Alberti [http:\u002F\u002Fflavio.alicubi.net\u002Fgpsiesembed\u002F] and further developed by \u003Ca href=\"https:\u002F\u002Fplus.google.com\u002F106960773695030875332\u002Fabout\" rel=\"nofollow ugc\">Mark Taylor\u003C\u002Fa> at \u003Ca href=\"http:\u002F\u002Fwww.bikes.org.uk\u002F\" rel=\"nofollow ugc\">Bikes.org.uk\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Map Features\u003C\u002Fp>\n\u003Cp>The WP-Routes plugin feature rich and fully interactive maps. Key features include;\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Interactive Map\u003C\u002Fli>\n\u003Cli>Zoom In & Out\u003C\u002Fli>\n\u003Cli>Highlighted Route\u003C\u002Fli>\n\u003Cli>Route Distances in kilometers & miles\u003C\u002Fli>\n\u003Cli>Altitudes in meters & feet\u003C\u002Fli>\n\u003Cli>Dynamic Altitude Profile\u003C\u002Fli>\n\u003Cli>Altitude Range (min & max altitudes)\u003C\u002Fli>\n\u003Cli>Total Climb & Descents\u003C\u002Fli>\n\u003Cli>Printable Map\u003C\u002Fli>\n\u003Cli>Download to GPS Devices\u003C\u002Fli>\n\u003Cli>Track Types\u003C\u002Fli>\n\u003Cli>Locations (country, city, latitude, longitude)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>One of the things that puts this GPS route finder ahead of other web services is that each route can be downloaded in a wide variety of file types, including downloads to all the leading GPS devices. This is the full range of downloadable options;\u003C\u002Fp>\n\u003Cul>\n\u003Cli>On-Screen via GPSies Website\u003C\u002Fli>\n\u003Cli>Printable Routes\u003C\u002Fli>\n\u003Cli>Google Earth .kml or .kmz file\u003C\u002Fli>\n\u003Cli>GPX Route & Trail\u003C\u002Fli>\n\u003Cli>CSV or MS Excel file\u003C\u002Fli>\n\u003Cli>PCX5 Track\u003C\u002Fli>\n\u003Cli>Garmin Course CRS & TCX\u003C\u002Fli>\n\u003Cli>OVL (ASCII)\u003C\u002Fli>\n\u003Cli>Fugawi\u003C\u002Fli>\n\u003Cli>KOMPASS Verlag\u003C\u002Fli>\n\u003Cli>GeoRSS Track\u003C\u002Fli>\n\u003Cli>OziExplorer\u003C\u002Fli>\n\u003Cli>MagicMaps IKT\u003C\u002Fli>\n\u003Cli>JSON Track\u003C\u002Fli>\n\u003Cli>PathAway\u003C\u002Fli>\n\u003Cli>Navigon RTE 5.x & 6.x\u003C\u002Fli>\n\u003Cli>Navigon Freshroute\u003C\u002Fli>\n\u003Cli>TomTom ITN\u003C\u002Fli>\n\u003Cli>Magellan Track\u003C\u002Fli>\n\u003Cli>CompeGPS Track\u003C\u002Fli>\n\u003Cli>qpeGPS Track\u003C\u002Fli>\n\u003Cli>Garmin Logbook\u003C\u002Fli>\n\u003C\u002Ful>\n","Add Cycle Routes, Mountain Bike Trails, Running Tracks, Walking Routes and much more to your posts and pages.",100,8379,"2012-11-28T21:04:00.000Z","2.5",[20,51,52,21,53],"cycling-routes","google-maps","gpsies","http:\u002F\u002Fwww.bikes.org.uk\u002Froute-finder\u002Fwp-routes-plugin\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-routes.zip",{"slug":57,"name":58,"version":59,"author":60,"author_profile":61,"description":62,"short_description":63,"active_installs":64,"downloaded":65,"rating":46,"num_ratings":14,"last_updated":66,"tested_up_to":67,"requires_at_least":68,"requires_php":18,"tags":69,"homepage":73,"download_link":74,"security_score":75,"vuln_count":14,"unpatched_count":28,"last_vuln_date":76,"fetched_at":30},"run-log","Run Log","1.7.12","izem","https:\u002F\u002Fprofiles.wordpress.org\u002Fizem\u002F","\u003Cp>The plugin add running diary capabilities to WordPress, so you can log and display your running [and other sporting] activities in posts. Share runs, total mileage (or kilometers), total time spent running, etc. Track your shoes usage, and\u002For other sporting gear. Link and group your activities by goals.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Add custom post type for logging a running activity.\u003C\u002Fli>\n\u003Cli>Log distance and duration (elevation gain and calories) for each run in custom fields of run-log posts.\u003C\u002Fli>\n\u003Cli>Calculate pace\u002Fspeed automatically.\u003C\u002Fli>\n\u003Cli>Display the above data in the post automatically.\u003C\u002Fli>\n\u003Cli>Widget and shortcode for displaying totals – distance, time, elevation gain, calories (and average pace\u002Fspeed for shortcode).\u003C\u002Fli>\n\u003Cli>Option to choose light or dark style theme, to blend with your theme.\u003C\u002Fli>\n\u003Cli>Quick embed your STRAVA and\u002For Garmin Connect activity in the post (displaying data and map from your account).\u003C\u002Fli>\n\u003Cli>Add custom taxonomies for gear (like shoes) and goals (like “sub 4 marathon”) that could be connected to run-log posts (and regular posts). You may trak distance run with shoes usage by this (as well as other gear).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Localization\u003C\u002Fh4>\n\u003Cp>Support RTL languages sites.\u003C\u002Fp>\n\u003Cp>The metric system of measurement is used by default – Kilometer (km) for distance, minutes per kilometer (min\u002Fkm) for pace, kilometers per hour (km\u002Fh) for speed [and meters (m) for elevation].\u003Cbr \u002F>\nYou can change these to statute\u002Fimperial by updating plugin’s “Distance unit” option to mi (Mile).\u003C\u002Fp>\n\u003Ch4>Translations\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Hebrew – full translations.\u003C\u002Fli>\n\u003Cli>English – default. Not my mother tongue, so may have some wording and spelling mistakes. Do tell me how to correct them if you find any.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Cp>[After activating the plugin]\u003C\u002Fp>\n\u003Cp>\u003Cstrong>To log a new run you can follow these steps:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>On the admin menu there will be a new sub-menu: “Run Log” – from it’s options, select “Add New” (or click on “Run” from the “New” sub-menu of the top menu).\u003C\u002Fli>\n\u003Cli>Enter a title for this run (as post title), write your run description (e.g. type of run, location, how you fealt, etc.) in the body. You can add media (photos, videos) if you want, as you would do with a normal post.\u003C\u002Fli>\n\u003Cli>Under the main editing area (body) you should see the “Run Log Parameters” box. There you enter the distance and duration of the run.\u003C\u002Fli>\n\u003Cli>[Optional] You may add the elevation gain and\u002For calories for that activety (at “Run Log Parameters” box).\u003C\u002Fli>\n\u003Cli>[Optional] You may add the gear you used in this run on the “Gears” box (like shoes and track shoes mileage by this).\u003C\u002Fli>\n\u003Cli>[Optional] You may add the goal, that this run is part of the road to it, on the “Goals” box (so you’ll be able to see all of them in one page, as well as the total distance\u002Ftime).\u003C\u002Fli>\n\u003Cli>[Optional] You may add your “STRAVA” or “Garmin Connect” activity ID, to embed your activity’s data and map from your account (instead of the regular plugin’s display).\u003C\u002Fli>\n\u003Cli>Publish.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>If you want to configure run log data (distance, duration, pace\u002Fspeed), you can do this on the “Run Log Options”, accessible via the “Run Log” admin sub-menu. There you can select between top\u002Fbottom display position, Kilometer\u002FMiles units, and pace\u002Fspeed.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>To display your totals\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Use \u003Ccode>[oirl_total]\u003C\u002Fcode> Shortcode with (or without) these optional attributes:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>only: distance\u002Ftime\u002Felevation\u002Fcalories;\u003C\u002Fli>\n\u003Cli>year: a 4-digit year – display totals for this year only;\u003C\u002Fli>\n\u003Cli>month: 1 or 2 digits for month (may have leading zero) – display totals for this year only (mast be used in conjunction with ‘year’ attribute);\u003C\u002Fli>\n\u003Cli>hide_pace: yes\u002Fno – if ‘yes’ will not show the average pace\u002Fspeed;\u003C\u002Fli>\n\u003Cli>days_display: true\u002Ffalse – display days in total time if more then 24 hours.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Examples:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>All-time distance + time + average pace\u002Fspeed:\n\u003Cul>\n\u003Cli>\u003Ccode>[oirl_total]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>2015 totals without average pace\u002Fspeed (display distance + time):\n\u003Cul>\n\u003Cli>\u003Ccode>[oirl_total year=\"2015\" hide_pace=\"yes\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>January 2016 totals (distance + time + average pace\u002Fspeed):\n\u003Cul>\n\u003Cli>\u003Ccode>[oirl_total year=\"2016\" month=\"1\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>All-time distance:\n\u003Cul>\n\u003Cli>\u003Ccode>[oirl_total only=\"distance\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>All-time duration (displaying days if more then 24 hours):\n\u003Cul>\n\u003Cli>\u003Ccode>[oirl_total only=\"time\" days_display=\"yes\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Total elevation gain for 2016:\n\u003Cul>\n\u003Cli>\u003Ccode>[oirl_total only=\"elevation\" year=\"2016\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cp>The plugin icon was \u003Ca href=\"http:\u002F\u002Fwww.freepik.com\" rel=\"nofollow ugc\">Designed by Freepik\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>To Do:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Add option to display elevation and calories on run-log posts.\u003C\u002Fli>\n\u003Cli>Add hart rate(?).\u003C\u002Fli>\n\u003Cli>Add how you felt scale(?).\u003C\u002Fli>\n\u003Cli>More quick embed sources (polar, suunto, runkeeper, runtastic, etc).\u003C\u002Fli>\n\u003Cli>Add API support to retrieve data automatically form: Strava, Garmin Connect, Sunto Movescount, Runkeepr, etc.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Uninstall\u003C\u002Fh4>\n\u003Cp>This plugin doesn’t add\u002Fchange the data-base structurer, so no worry about that. Yet, it does store plugin configuration options in the ‘options’ table. These options will be removed if plugin is uninstall (deleted) trough the plugins admin screen.\u003Cbr \u002F>\nData stored by this plugin for posts (in postmeta table) will be kept.\u003C\u002Fp>\n","Add running diary capabilities - log your sport activities, track and display: distance, duration, gear (e.g. shoes), elevation gain, calories, etc.",40,11226,"2026-02-07T20:22:00.000Z","6.9.4","4.0",[70,22,71,23,72],"run-diary","sport","training-log","https:\u002F\u002Fizmirli.org\u002Frun-log\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frun-log.1.7.12.zip",99,"2025-09-10 18:53:02",{"slug":78,"name":79,"version":80,"author":81,"author_profile":82,"description":83,"short_description":84,"active_installs":11,"downloaded":85,"rating":28,"num_ratings":28,"last_updated":86,"tested_up_to":87,"requires_at_least":88,"requires_php":18,"tags":89,"homepage":18,"download_link":92,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"custom-strava-integration","Custom Strava Integration","1.0","floriankimmel","https:\u002F\u002Fprofiles.wordpress.org\u002Ffloriankimmel\u002F","\u003Cp>The “Custom Strava Integration” is a powerful plugin that makes integrating strava activities easy and simple. It gives you the opportunity to create output exactly the way you like it.\u003C\u002Fp>\n\u003Ch4>The Plugin\u003C\u002Fh4>\n\u003Cp>Basically what this plugin does is adding the shortcode [strava id=”[activity id]”] to your post, receiving data via Strava API v3 and filling the preconfigured template with this information.\u003C\u002Fp>\n\u003Ch4>Configuration\u003C\u002Fh4>\n\u003Cp>You want full control of the shortcode’s output ? No Problem. You can specify a template at the settings page and define the positions of strava information. Therefore ‘Custom Strava Integration’ provides these placeholders:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>[distance] – Overall distance of the activity\u003C\u002Fli>\n\u003Cli>[description] – Description of the activity       \u003C\u002Fli>\n\u003Cli>[duration] – Duration of the activity\u003C\u002Fli>\n\u003Cli>[elevation] – Overall elevation of the activity\u003C\u002Fli>\n\u003Cli>[location] – Location of the activity     \u003C\u002Fli>\n\u003Cli>[name] – Name of the activity     \u003C\u002Fli>\n\u003Cli>[speed] – Depending on type (ride or run) – either running pace or riding speed       \u003C\u002Fli>\n\u003Cli>[time] – Local start time of the activity\u003C\u002Fli>\n\u003Cli>[type] – Type of the activity (run – ride – swim)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can not only customize the style by using CSS features, moreover you have full control over the html output.\u003C\u002Fp>\n\u003Cp>Moreover you can choose the type of display unit (mi\u002Fft or km\u002Fm) you want to use.\u003C\u002Fp>\n\u003Ch4>Difference to other solutaions\u003C\u002Fh4>\n\u003Cp>We know that strava also does offer their own embedded widget, but this plugin:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>does not use iframes (if you want to)\u003C\u002Fli>\n\u003Cli>allows you to fully customize the content\u003C\u002Fli>\n\u003Cli>can display more information than the widget\u003C\u002Fli>\n\u003Cli>does not require you to leave the site \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can concentrate on the important things – writing good blog posts!\u003C\u002Fp>\n","This plugin provides an easy way to add your strava activities to your posts without leaving your site.",2385,"2015-09-30T06:29:00.000Z","4.3.34","3.4",[90,22,91,23],"biking","shortcode","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-strava-integration.zip",{"slug":94,"name":95,"version":96,"author":97,"author_profile":98,"description":99,"short_description":100,"active_installs":11,"downloaded":101,"rating":28,"num_ratings":28,"last_updated":102,"tested_up_to":103,"requires_at_least":104,"requires_php":18,"tags":105,"homepage":109,"download_link":110,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":111},"dailymile-widgets","Dailymile Widgets","1.2","Joe Maller","https:\u002F\u002Fprofiles.wordpress.org\u002Fjoemaller\u002F","\u003Cp>Share your latest workout with Dailymile widgets in your WordPress sidebar. This plugin uses native WordPress caching so the widgets won’t slow down your site.\u003C\u002Fp>\n\u003Cp>Seven widgets are available:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Last Workout – \u003Cem>Share your latest workout\u003C\u002Fem> \u003C\u002Fli>\n\u003Cli>Recent Workouts = \u003Cem>Your last few workouts\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>Total Distance – \u003Cem>Show off your total mileage\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>Mini Mileage Counter – \u003Cem>A smaller version of Total Distance\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>Racing Widget – \u003Cem>List upcoming races\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>Donuts – \u003Cem>How many donuts you’ve earned\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>Cheezburgers – \u003Cem>How many cheeseburgers you’ve earned\u003C\u002Fem>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Check \u003Ca href=\"http:\u002F\u002Fwww.dailymile.com\u002Fwidgets\" title=\"dailymile widgets\" rel=\"nofollow ugc\">dailymile\u003C\u002Fa> or click screenshots to see what they look like.\u003C\u002Fp>\n\u003Cp>This plugin specifically addresses display slowdowns related to the JavaScript widgets provided by Dailymile. The WordPress API allows for regularly scheduled widget updates while dramatically improving display time.\u003C\u002Fp>\n","Share your latest workout with Dailymile widgets in your WordPress sidebar. Widgets are cached so your pages load faster.",4681,"2011-12-12T17:39:00.000Z","3.2.1","2.8",[106,107,108,22,24],"dailymile","exercise","fitness","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fdailymile-widgets","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdailymile-widgets.1.2.zip","2026-04-06T09:54:40.288Z",{"slug":113,"name":114,"version":115,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":11,"downloaded":120,"rating":28,"num_ratings":28,"last_updated":121,"tested_up_to":67,"requires_at_least":122,"requires_php":18,"tags":123,"homepage":18,"download_link":129,"security_score":46,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"global-weather-pro","Global Weather Pro: Accurate Local Forecasts","2.2.16","Allen Floyd","https:\u002F\u002Fprofiles.wordpress.org\u002Falfloyd\u002F","\u003Cp>**Global Weather Pro is a powerful and easy-to-use WordPress plugin that delivers true hyper-local weather forecasts and critical weather alerts. Unlike other tools that default to the nearest city, Global Weather Pro uses the precise GPS coordinates of an address, providing a forecast and alerts for that exact location. To offer maximum flexibility, Global Weather Pro includes two distinct widgets optimized for different placements: a comprehensive header widget and a compact sidebar widget. Effortlessly display current conditions, detailed 7-day forecasts, and severe weather alerts to keep your visitors informed and engaged. Perfect for any website, Global Weather Pro offers precision and flexibility to ensure an enhanced user experience, now featuring stunning, AI-generated animated images for all 38 weather conditions in the widget’s header. All weather data and alerts are sourced from Weatherbit, a well-known and trusted weather provider, ensuring reliable and professional-grade forecasts you can count on. Global Weather Pro handles all API communications through our dedicated service, meaning you get reliable data from top providers like Weatherbit without needing to sign up for, manage, or pay for your own API keys.\u003C\u002Fp>\n\u003Cp>Check out the live demos to see both widgets in action: \u003Ca href=\"https:\u002F\u002Fglobalweatherpro.com\u002Fsidebar-demo\u002F\" rel=\"nofollow ugc\">Sidebar Demo\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fglobalweatherpro.com\u002Fheader-demo\u002F\" rel=\"nofollow ugc\">Header Demo\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Critical Weather Alerts:\u003C\u002Fstrong> Keep your audience safe and informed with timely notifications for severe weather events, sourced directly from Weatherbit. Alerts are prominently displayed within the widget to ensure maximum visibility.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>True Hyper-Local Forecasts:\u003C\u002Fstrong> Get weather for your actual address, not just the nearest city center. We use the precise GPS coordinates of your location to deliver a truly accurate forecast, powered by Geoapify geocoding.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No API Keys Needed:\u003C\u002Fstrong> Instantly set up and deliver weather forecasts without any third-party signups or costs. Global Weather Pro handles all API communications through our dedicated service.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dual Widget Design:\u003C\u002Fstrong> Comes with two specialized widgets—one designed for prominent header placement and another optimized for sidebars, ensuring a perfect fit for your theme’s layout.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Professional Dark & Light Themes:\u003C\u002Fstrong> Choose between a rich, innovative Dark Mode featuring a slate-based palette with frosted glass effects and cyan accents, or a clean, polished Light Mode—both designed for a modern weather app aesthetic.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>AI-Generated Animations:\u003C\u002Fstrong> Stunning AI-generated animated images for all 38 weather conditions are displayed in the header of the weather widget, creating a beautiful user experience.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Accessibility Compliant (WCAG):\u003C\u002Fstrong> Built with comprehensive ARIA attributes, semantic HTML, keyboard navigation support, and reduced motion preferences for an inclusive experience for all users.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Detailed Hourly & Daily Forecasts:\u003C\u002Fstrong> Provide a true, 24-hour, hour-by-hour forecast and a 7-day forecast. Display key metrics like temperature, chance of rain, humidity, UV index, and more.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode Support:\u003C\u002Fstrong> Includes separate, reliable shortcodes for both the header and sidebar widgets ([gwpro_header_weather] and [gwpro_sidebar_weather]) for easy embedding anywhere on your site.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flexible Placement (Widgets & Shortcodes):\u003C\u002Fstrong> Seamlessly add widgets to your header, footer, or sidebar. You can also use the simple shortcodes ([gwpro_header_weather] and [gwpro_sidebar_weather]) to embed forecasts anywhere on your posts or pages.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Font Customization:\u003C\u002Fstrong> Personalize the widget’s appearance by choosing from 4 professional fonts, including Roboto, EB Garamond, Lato, and Source Sans Pro.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Whether you run a blog, business website, or community portal, Global Weather Pro makes it easy to share up-to-date weather insights with your audience.\u003C\u002Fp>\n\u003Ch3>Third-Party Services\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Global Weather Pro API\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>Fetches weather data.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>No personal data collected.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Accessed at:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.pointforecaster.com\u002Fapi\u002Fgeocodedata\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.pointforecaster.com\u002Fapi\u002Fgeocodedata\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.pointforecaster.com\u002Fapi\u002Falerts\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.pointforecaster.com\u002Fapi\u002Falerts\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.pointforecaster.com\u002Fapi\u002Fforecastminutely\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.pointforecaster.com\u002Fapi\u002Fforecastminutely\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.pointforecaster.com\u002Fapi\u002Fforecasthourly\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.pointforecaster.com\u002Fapi\u002Fforecasthourly\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.pointforecaster.com\u002Fapi\u002Fforecastdaily\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.pointforecaster.com\u002Fapi\u002Fforecastdaily\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Privacy Policy: \u003Ca href=\"https:\u002F\u002Fglobalweatherpro.com\u002Fgwpro-privacy-policy\" rel=\"nofollow ugc\">https:\u002F\u002Fglobalweatherpro.com\u002Fgwpro-privacy-policy\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Weatherbit API\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Provides weather forecasts.\u003C\u002Fli>\n\u003Cli>Location data (entered by site owner) sent; no personal data collected.\u003C\u002Fli>\n\u003Cli>Accessed at:\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fapi.weatherbit.io\u002Fv2.0\u002Falerts\" rel=\"nofollow ugc\">https:\u002F\u002Fapi.weatherbit.io\u002Fv2.0\u002Falerts\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fapi.weatherbit.io\u002Fv2.0\u002Fforecast\u002Fdaily\" rel=\"nofollow ugc\">https:\u002F\u002Fapi.weatherbit.io\u002Fv2.0\u002Fforecast\u002Fdaily\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fapi.weatherbit.io\u002Fv2.0\u002Fforecast\u002Fhourly\" rel=\"nofollow ugc\">https:\u002F\u002Fapi.weatherbit.io\u002Fv2.0\u002Fforecast\u002Fhourly\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fapi.weatherbit.io\u002Fv2.0\u002Fcurrent\" rel=\"nofollow ugc\">https:\u002F\u002Fapi.weatherbit.io\u002Fv2.0\u002Fcurrent\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Privacy Policy: \u003Ca href=\"https:\u002F\u002Fwww.weatherbit.io\u002Fprivacy\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.weatherbit.io\u002Fprivacy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Geoapify API\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Provides geolocation services.\u003C\u002Fli>\n\u003Cli>No personal data collected.\u003C\u002Fli>\n\u003Cli>Accessed at: \u003Ca href=\"https:\u002F\u002Fapi.geoapify.com\u002Fv1\u002Fgeocode\u002Fsearch\" rel=\"nofollow ugc\">https:\u002F\u002Fapi.geoapify.com\u002Fv1\u002Fgeocode\u002Fsearch\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Privacy Policy: \u003Ca href=\"https:\u002F\u002Fwww.geoapify.com\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.geoapify.com\u002Fprivacy-policy\u002F\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Google Fonts API\u003C\u002Fstrong>\u003Cbr \u002F>\n– This service is used to load and display custom fonts, as selected in the widget settings.\u003Cbr \u002F>\n– \u003Cstrong>Personal Data\u003C\u002Fstrong>: To serve fonts efficiently, Google may collect data such as IP addresses.\u003Cbr \u002F>\n– \u003Cstrong>Access\u003C\u002Fstrong>: The API is accessed at https:\u002F\u002Ffonts.googleapis.com.\u003Cbr \u002F>\n– \u003Cstrong>Privacy Policy\u003C\u002Fstrong>: Refer to Google’s privacy policy here: https:\u002F\u002Fpolicies.google.com\u002Fprivacy.\u003C\u002Fp>\n","Global Weather Pro is a powerful and easy-to-use WordPress plugin that delivers true hyper-local weather forecasts via two distinct weather widgets.",2603,"2026-04-15T02:07:00.000Z","6.6",[124,125,126,127,128],"gps-weather","local-weather","weather-forecast","weather-widget","weather-alerts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fglobal-weather-pro.zip",{"attackSurface":131,"codeSignals":162,"taintFlows":213,"riskAssessment":231,"analyzedAt":245},{"hooks":132,"ajaxHandlers":158,"restRoutes":159,"shortcodes":160,"cronEvents":161,"entryPointCount":28,"unprotectedCount":28},[133,138,143,147,150,154],{"type":134,"name":135,"callback":136,"file":137,"line":13},"action","admin_menu","simplystrava_create_menu","simplystrava.php",{"type":139,"name":140,"callback":141,"priority":11,"file":137,"line":142},"filter","plugin_action_links","simplystrava_settings_link",25,{"type":134,"name":144,"callback":145,"file":137,"line":146},"admin_init","simplystrava_register_settings",27,{"type":134,"name":148,"callback":149,"file":137,"line":35},"admin_head","simplystrava_admin_css",{"type":134,"name":151,"callback":152,"file":137,"line":153},"wp_print_styles","simplystrava_enqueue_styles",226,{"type":134,"name":155,"callback":156,"file":137,"line":157},"widgets_init","simplystrava_register_widget",463,[],[],[],[],{"dangerousFunctions":163,"sqlUsage":164,"outputEscaping":166,"fileOperations":28,"externalRequests":211,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":212},[],{"prepared":28,"raw":28,"locations":165},[],{"escaped":14,"rawEcho":13,"locations":167},[168,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,208],{"file":137,"line":169,"context":170},129,"raw output",{"file":137,"line":172,"context":170},130,{"file":137,"line":174,"context":170},195,{"file":137,"line":176,"context":170},255,{"file":137,"line":178,"context":170},262,{"file":137,"line":180,"context":170},266,{"file":137,"line":182,"context":170},275,{"file":137,"line":184,"context":170},296,{"file":137,"line":186,"context":170},310,{"file":137,"line":188,"context":170},314,{"file":137,"line":190,"context":170},320,{"file":137,"line":192,"context":170},321,{"file":137,"line":194,"context":170},432,{"file":137,"line":196,"context":170},435,{"file":137,"line":198,"context":170},451,{"file":137,"line":200,"context":170},453,{"file":137,"line":202,"context":170},454,{"file":137,"line":204,"context":170},455,{"file":206,"line":207,"context":170},"simplystrava_api.php",37,{"file":209,"line":210,"context":170},"simplystrava_auth.php",34,2,[],[214],{"entryPoint":215,"graph":216,"unsanitizedCount":14,"severity":230},"\u003Csimplystrava_auth> (simplystrava_auth.php:0)",{"nodes":217,"edges":227},[218,222],{"id":219,"type":220,"label":221,"file":209,"line":142},"n0","source","$_GET",{"id":223,"type":224,"label":225,"file":209,"line":210,"wp_function":226},"n1","sink","echo() [XSS]","echo",[228],{"from":219,"to":223,"sanitized":229},false,"low",{"summary":232,"deductions":233},"The overall security posture of the simply-strava plugin v1.0.4 appears to be mixed, showing some good practices but also several concerning areas.  The plugin excels in having a seemingly small attack surface with no discovered AJAX handlers, REST API routes, shortcodes, or cron events that are exposed without authorization.  Furthermore, all SQL queries are correctly implemented using prepared statements, and there are no file operations or bundled libraries that might pose a risk.  However, the plugin exhibits a significant weakness in output escaping, with only 5% of outputs being properly escaped, suggesting a high likelihood of cross-site scripting (XSS) vulnerabilities.  The presence of a flow with unsanitized paths in the taint analysis, even if not classified as critical or high, indicates a potential for path traversal or similar vulnerabilities. The lack of any recorded vulnerability history is a positive sign, suggesting a generally stable past, but it does not negate the risks identified in the static analysis. The plugin's strengths lie in its secure handling of database queries and its limited direct attack vectors, but the pervasive issue with output escaping is a critical concern that needs immediate attention.",[234,237,240,243],{"reason":235,"points":236},"Low percentage of properly escaped output",15,{"reason":238,"points":239},"Flow with unsanitized paths detected",8,{"reason":241,"points":242},"No nonce checks implemented",5,{"reason":244,"points":242},"No capability checks implemented","2026-03-17T00:56:46.536Z",{"wat":247,"direct":255},{"assetPaths":248,"generatorPatterns":250,"scriptPaths":251,"versionParams":253},[249],"\u002Fwp-content\u002Fplugins\u002Fsimply-strava\u002Fsimplystrava.css",[],[252],"\u002Fwp-content\u002Fplugins\u002Fsimply-strava\u002Fsimplystrava_admin.js",[254],"simply-strava\u002Fsimplystrava.css?ver=",{"cssClasses":256,"htmlComments":265,"htmlAttributes":266,"restEndpoints":279,"jsGlobals":280,"shortcodeOutput":283},[257,258,259,260,261,262,263,264],"simplystrava_admin","simplystrava_admin .setting","simplystrava_admin .setting p.label_title","simplystrava_admin .setting label.no_bold","simplystrava_admin .setting span.slim","simplystrava_admin .setting span.mesg","simplystrava_admin .setting p.desc","simplystrava_admin .setting p.mesg",[],[267,268,269,270,271,272,273,274,275,276,277,278],"simply_strava_rider_id","simply_strava_auth","simply_strava_timezone","simply_strava_update_interval","simply_strava_last_update","simply_strava_color_bgrnd","simply_strava_color_bars","simply_strava_color_text","simply_strava_logo","simply_strava_units","simply_strava_user","simply_strava_pwd",[],[281,282],"UpdateAuth","stravaAuth",[],{"error":285,"url":286,"statusCode":287,"statusMessage":288,"message":288},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fsimply-strava\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":28,"versions":290},[]]