BEATSTORE

Docs / BeatStore WordPress Plugin

Upgrading from 3.x

4.x replaces 3.x in the same plugin folder (beatstore-wp). Catalog posts stay EDD downloads or Woo products — same IDs. Genre and mood taxonomies were already beatstore_genre / beatstore_mood.

The player reads old preview keys until you import (upload_track, soundcloud_track, dropbox_track_url), old play counts (plays), exclusive price ids (beatstore_is_exclusive_license), hide flags (exclude_from_widget), and ACF playlist builder rows. Default track artwork (beatstore_default_track_artwork) is copied into BeatStore → Settings on Import, and on the next page load if that setting was never saved.

Import

  1. BeatStore → Import
  2. Dry run first (default).
  3. Check Write changes when the report looks right.

CLI: wp beatstore import-legacy --dry-run then wp beatstore import-legacy --commit.

--force overwrites _beatstore_preview and playlist item lists if they already exist.

The importer never deletes downloads, products, files, orders, or old meta. Playlist post IDs are preserved so [beatstore playlist="12"] and /htmlwidget3?playlist=12 keep working. Exclusive is copied from the stored price/variation id, not from the license name.

Drafts that look like the old “unpublish on exclusive sale” behavior are listed so you can restore them. 4.x keeps sold beats published and flags them sold in the player.

BPM already used the bpm meta key. Musical key was not a 3.x field; import copies song_key / musical_key / key onto _beatstore_key when one exists. Duration is detected from the preview audio.

What you should re-do by hand

3.x4.x
[beatstore-3] / [beatstore-2]Still works; prefer [beatstore]
/htmlwidget3 iframeStill works; prefer /beatstore-embed/
Widget 3 colors / light-darkBeatStore → Settings (accent, theme)
Default track artworkBeatStore → Settings. Import copies the old ACF image.
SoundCloud client_id in the old wayBeatStore → Integrations (Client ID + Secret). wp-config constants are not read.
Player Nav CategoriesKind (beat/kit) + playlists
Mailchimp free downloadBeatStore → Integrations (same beatstore_mailchimp option). Player shows Free when the preview is an Upload.
GA play eventsBeatStore → Settings. Same play / engagement / title payload when gtag is on the page.
Woo single-product player snippetRemoved
iframe postMessage cart eventsRemoved. Buy leaves the iframe
ACF playlist builderBeatStore → Playlists. Import copies playlist_builder rows. 4.x does not ship or use ACF.
Featured player-nav categoryNot imported as pins. Check Feature this beat at the top of the player on each beat. Playlists & order.
Simple Page Ordering (EDD)Downloads → Sorting, then drag. Woo already had Products → Sorting.
Licenses & Contracts (EDD or Woo plugin)Separate zip: BeatStore Contracts. Keep the 13660 / 9802 key. Deactivate the old plugin.

Plugins 4.x does not need

3.x bundled ACF and the docs told EDD stores to install Simple Page Ordering. Neither is part of 4.x.

  • ACF / ACF Pro. Playlists, beat fields, and settings are native. After Import, deactivate ACF if nothing else on the site uses it (forms, another plugin, a page builder). Do not delete ACF first if you still need those.
  • Simple Page Ordering. EDD catalog order is Downloads → All Downloads → Sorting. You can deactivate Simple Page Ordering if you only installed it for beats. Leave it on if you use it for pages or other post types. Playlists & order.

If the admin notice says the site looks like 3.x data, open Import before you assume previews are broken.