NMR Strava activities

Descrición

NMR Strava activities imports athlete activities into your WordPress site as soon as Strava records them—no slow polling. Data is stored locally; developers can react with actions and filters for custom workflows, leaderboards, or integrations.

Why webhooks? Strava can notify your site when an activity is created or deleted. This plugin subscribes to those events, then fetches full activity details with OAuth and saves them to custom database tables.

You will need:

  • A Strava API application (Client ID and Client Secret)
  • A page or post containing the [strava_nmr] shortcode; its URL must match Redirect URI in both Strava and this plugin’s settings

Configure the plugin: WordPress admin Settings Strava NMR

  • Strava client id — from your Strava API application
  • Strava client secret — from your Strava API application
  • Redirect URI — full URL of the page/post where [strava_nmr] appears (must match Strava’s Authorization Callback Domain / redirect settings)
  • Webhook callback url — filled automatically; should look like https://yoursite.com/wp-admin/admin-ajax.php?action=nmr-strava-callback& (keep the trailing & if your copy includes it)
  • Verify token — a secret string you choose; used when Strava validates your webhook subscription

After saving, use Activate Strava Webhook. On success, Plugin status shows something like: Strava webhook subscription id = 109463.

Data and privacy

Activities and tokens are stored in your WordPress database. See Privacy Notices below. For GDPR or similar obligations, ensure your site policy explains this processing.

Developer hooks

When an activity is saved or removed, other code can listen:

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

do_action('strava_nmr_activity_changed', 'delete', $payload);

Filter which activities are saved using the activity type (single string, e.g. Run):

`php

function nmr_example_save_only_runs( $activity_type ) {
if ( strcasecmp( ‘Run’, $activity_type ) === 0 || strcasecmp( ‘VirtualRun’, $activity_type ) === 0 ) {
return $activity_type;
}
return false;
}
add_filter( ‘nmr_strava_save_activity’, ‘nmr_example_save_only_runs’ );
`

Filter using the full Strava activity array (return false to skip import):

`php

add_filter( ‘nmr_strava_save_activity_full’, function ( $activity ) {
if ( ! empty( $activity[‘manual’] ) ) {
return false;
}
return $activity;
} );
`

Supported Strava activity types include: 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.

Shortcodes

  • [strava_nmr] — OAuth connect flow (optional attributes for labels and require_login)
  • [strava_nmr_connect] / [strava_nmr_disconnect] — logged-in connect/disconnect UI
  • [strava_nmr_table top="100"] — simple HTML table of stored activities (default limit 100)

Official listing

Install from WordPress.org/plugins/nmr-strava-activities. More info: Plugin URI.

If this plugin saves you time, consider making a donation.

Privacy Notices

This plugin stores data received from Strava—which may include personal information—in your site’s database. You are responsible for describing this in your privacy policy and for any consent or legal basis required in your jurisdiction.

Capturas

  • Placeholder: Settings Strava NMR (replace with a real screenshot in the WordPress.org assets folder when publishing).
  • Placeholder: Example of activity data / [strava_nmr_table] output (replace with a real screenshot on WordPress.org).

Instalación

  1. Install from the plugin directory or upload the nmr-strava-activities folder to /wp-content/plugins/.
  2. Activate the plugin through the Plugins screen in WordPress.
  3. Create a Strava API application and configure Settings Strava NMR.
  4. Add [strava_nmr] to a public page; set that page’s URL as Redirect URI in Strava and in the plugin.
  5. Save settings, then click Activate Strava Webhook and confirm Plugin status shows a subscription id.

Preguntas frecuentes

Do I need a Strava API application?

Yes. Create one at strava.com/settings/api. You need the Client ID, Client Secret, and the Redirect URI must match the page where you use the shortcode.

Why must the Redirect URI match exactly?

OAuth requires the same redirect URL during authorization that you registered with Strava. A mismatch causes “invalid redirect” or similar errors when users connect.

What is the webhook callback URL for?

Strava sends HTTP notifications to that URL (your site’s admin-ajax.php with action=nmr-strava-callback). You normally leave the default value. It must be reachable over HTTPS in production.

What is the verify token?

A shared secret between your site and Strava during webhook subscription. It can be any string you choose; use the same value in the plugin and when Strava validates the subscription (GET challenge).

Webhooks vs polling

This plugin uses webhooks so new activities are processed when Strava pushes an event. You are not required to run a cron job to poll Strava for new data.

Does this work on multisite?

The plugin can be activated per site. Options and tables are per-site ($wpdb prefix). If you use get_site_option / update_option inconsistently for version checks, consult a developer for multisite edge cases.

Activities not appearing

Check that the webhook is active (subscription id in Plugin status), the athlete has connected via your site, Strava sent a create event, and your filters (nmr_strava_save_activity / nmr_strava_save_activity_full) do not return false for that activity.

GDPR and privacy

You store Strava-derived data locally. Disclose this to users and athletes; obtain consent where required. See Privacy Notices above.

Where do I get support?

Use the WordPress.org support forum for this plugin. See docs/SUPPORT.md in the plugin package for maintainer notes (response rhythm, reviews).

Comentarios

30 de Outubro, 2022
Cool plugin for runners to link Strava activities and wordpress. Impress with the features. 👍🙌 Noted: Please put the Strava Token correctly. (Double check) so you can proceed with activated the hook.
Ler todas as 0 opinións

Colaboradores e desenvolvedores

“NMR Strava activities” é un software de código aberto. As seguintes persoas colaboraron con este plugin.

Colaboradores

Traduce “NMR Strava activities” ao teu idioma.

Interesado no desenvolvemento?

Revisa o código, bota unha ollada aorepositorio SVN, ou subscríbete ao log de desenvolvemento por RSS.

Rexistro de cambios

1.0.12

  • Readme: stronger short description, tags, FAQ, installation path, developer examples aligned with code
  • Documentation: WordPress.org listing notes, support and landing-page guides (docs/)
  • WordPress.org visual assets: banners, icons, screenshot placeholders in .wordpress-org/

1.0.11

  • Update column activities.external_id from not null to null – looks like a strava manual entry will generate null external_id
  • Update SQL string to use string interpolation for table name

1.0.10

  • Update column activities.name to text

1.0.9

  • Update column activities.raw_activity to mediumtext

1.0.8

  • Fixed XSS in [strava_nmr_connect]

1.0.7

  • Updated code according to wordpress code review.

1.0.6

  • Added nmr_strava_save_activity_full filter that sends the entire Strava data as array. One can use it to filter out manual activities, for instance.
  • Remove dangling options by the name nmr-strava-%
  • Save subscription_id once we read it from Strava

1.0.5

  • Added top property to shortcode [strava_nmr_table top=10]. Default value if 100.
  • [strava_nmr_table top=10] shows km and minutes instead of meters and seconds.
  • Activate Strava will also save the settings.

1.0.4

  • Added simple shortcode to list activities received from Strava: [strava_nmr_table]

1.0.3

  • Store Strava username, firstname, lastname and profile link
  • Delete duplicate rows

1.0.2

  • Fixed strava activity import when there is no associated wordpress user.
  • Add filter nmr_strava_save_activity

1.0.1

  • Fixed option save
  • Add button to deactivate Strava subscription
  • Removed use of PHP session
  • Allow Strava activities from anonymous visitors (un-registered users)

1.0.0

  • Initial version.