NMR Strava activities

plugin banner

NMR Strava activities is a plugin that allows activity data from Strava to reach your website using webhooks.

Author:Mircea N. (profile at wordpress.org)
WordPress version required:5.2
WordPress version tested:6.3.1
Plugin version:1.0.6
Added to WordPress repository:17-09-2021
Last updated:10-10-2023
Rating, %:100
Rated by:1
Plugin URI:https://namir.ro/strava-activities/
Total downloads:1 421
Active installs:20+
plugin download
Click to start download

Import Strava activities to your website. Get notified immediately after an Strava activity is recorded, using webhooks.
Strava webhooks: https://developers.strava.com/docs/webhooks/

You need to setup a Strava API Application: https://www.strava.com/settings/api

Add this shortcode: [strava_nmr] to a user facing page or post.

The address of that page/post must be used on setting: Redirect URI (see below)

Configure NMR Strava activities plugin on your admin interface: Settings: Strava NMR

  • Strava client id – number from Strava API Application
  • Strava client secret – secret from Strava API Application
  • Redirect URI – Address of a page/post on your website where the shortcode: [strava_nmr] is used.
  • Webhook callback url – it’s determined automatically, should be: https://your-website.com/wp-admin/admin-ajax.php?action=nmr-strava-callback&
    Notice the ampersand: & at the end – it should be there.
  • Verify token – a string used in the webhook subscription process

Press Activate Strava Webhook

On success, you’ll see the message on Plugin status:

Strava webhook subscription id = 109463

it means webhook subscription worked.

Strava will push activity data for all Strava users that connected their account on your website with their Strava account.
Received activities are stored locally on your wordpress database, and an event with strava activity data is raised.

do_action('strava_nmr_activity_changed', 'update', $activity_data);

where $activity_data is an array.

A Theme or another Plugin might listen to this action and perform additional actions.

This plugin reacts to new, changed or deleted activities.

Determine what activites are imported by interacting with nmr_strava_save_activity filter

function on_nmr_strava_save_activity($save_nmr_strava_activity, $activity_type){
    // we only want to import running activities
    if(strcasecmp('run', $activity_type) == 0
        || strcasecmp('virtualrun', $activity_type) == 0){
            return true;
    }
    return false;
}
add_filter('nmr_strava_save_activity', 'on_nmr_strava_save_activity', 10, 2);

There’s an additional filter called nmr_strava_save_activity_full that sends the entire data received from Strava as an array that functions like the one above.

List of Strava activities: AlpineSki, BackcountrySki, Canoeing, Crossfit, EBikeRide, Elliptical, Golf, Handcycle, Hike, IceSkate, InlineSkate, Kayaking, Kitesurf, NordicSki, Ride, RockClimbing, RollerSki, Rowing, Run, Sail, Skateboard, Snowboard, Snowshoe, Soccer, StairStepper, StandUpPaddling, Surfing, Swim, Velomobile, VirtualRide, VirtualRun, Walk, WeightTraining, Wheelchair, Windsurf, Workout, Yoga

You may list the first 100 or so activities received from Strava in any page or post by using this shortcode: [strava_nmr_table top="100"]

If you enjoy using NMR Strava activities and find it useful, please consider making a donation. Your donation will help encourage and support the plugin’s continued development and better user support.

Privacy Notices

This plugin stores data collected from Strava, which may include the submitters’ personal information, in the database on the server that hosts the website.


Screenshots
ChangeLog