v4.3.0 Latest
New
- The profile Blog tab and My Blog Dashboard share one tab set, one post card and one post count.
- Editors review submissions from a Member submissions view in Posts, with Approve as the first row action and a required reason on Reject.
- Every Member Blog email uses one template with a heading, a short message, one button and an unsubscribe link.
- Editing a live post shows a Live label with Update, Unpublish and Preview, and the page reads "Edit post".
- An author box under each post shows the writer's bio, blog link and Follow button.
- Members who cannot write get a reading home with Saved and Following, and can unfollow writers and topics from it.
- Shortcodes with nothing to show render a designed empty state, and admins see how to fix them.
- After a submit the notice names the next step: See it in Pending, Write another, View post or Back to dashboard.
- Signed-out readers see a Log in to clap and save link under each post.
- A post sent back for changes shows the reviewer's reason on the writer's Drafts card and at the top of the composer.
- Approving, sending back and submitting a post for review now email the author and reviewers without Pro; Pro keeps the editable wording.
- Writers can be told by email and on-site notification when someone follows them, from their notification preferences.
- Members can publish a post as Private, readable only by them, editors and administrators; the `bpmb_allow_private_posts` filter turns the option off.
Improve
- On phones the composer has a sticky action bar and a collapsible Post settings section.
- Tab strips that do not fit show an edge fade and a scroll arrow, and the BuddyPress Blog sub-tabs have icons and stay on one row.
- Admin settings navigation becomes a grouped menu below 1024px, and every settings form has a sticky save bar.
- Publish, Unpublish and Delete from a post card return to the list they were clicked in.
- The draft-recovery banner shows its time on the member's own clock, matching the autosave status.
- Frontend CSS and JavaScript load only on pages that use them, including PeepSo profile tabs.
- Browser Back stays in step with the dashboard tabs, and empty Drafts and Pending tabs have their own messages.
- Publishing no longer waits on follower emails, and view counting writes far fewer rows.
- Fresh installs start with submissions reviewed and archive takeover off, with a card to turn them on; existing sites keep their settings.
- The composer's action bar stays on screen on desktop, and the formatting toolbar stays pinned under the site header while writing long posts.
- A pending post offers Update submission and a confirmed Move to drafts, instead of a Save Draft that took it out of review.
- The search preview shows the post's own opening lines and address as the member writes.
- My Blog Dashboard shows one heading on its own page, with Create Post on the tab row.
- Saved posts show excerpts, and the Following feed is three across like Saved and the writer profile.
- The Following button reads Unfollow on hover, and a clapped post is clearly marked.
- Member submissions shows Approve and Reject as buttons on each waiting post, with how many are waiting and for how long.
- Sending a post back is a proper form: the post with its author and length, one-click common reasons, and a character count.
- Saving a post that is already waiting for review says "Submission updated" instead of "Submitted for Review!".
- Unpublish from a post card's menu asks first, like the composer's.
- The reading progress bar takes its highlight from the site's accent colour.
Fix
- Updating a live post never takes it off the site, even when its author is at a posting limit.
- Topic hub and writer profile pages link to a real page 2 and beyond, and writer profiles page through co-authored posts too.
- Several paginated shortcodes on one page now page independently.
- The follower email is no longer sent empty when a post is unpublished before it goes out.
- Restoring a recovered draft brings back its title as well as its body.
- A failed save on an existing post keeps editing that post instead of creating a duplicate.
- The pagination bar no longer renders as one wide button.
- Post lists line up with the toolbar above them on themes that indent lists, such as BuddyX.
- The post form loads when a site serves scripts from a CDN.
- The admin-bar Drafts link opens the Drafts tab on PeepSo.
- Auto Create Page repairs an existing page that is missing its shortcode, and saves the page setting.
- The digest frequency setting is no longer reset to weekly on every save.
- The plugin zip no longer trips web application firewall rules during install.
- Reading-list counts and pages match the saved posts that can be shown.
- Network failures show a readable message instead of the browser's raw error.
- The editor's block handle no longer covers the first letters of each paragraph.
- The category picker's search box no longer shows as a dark block in dark mode.
- A disabled Submit button now looks disabled.
- The composer no longer runs wider than its column on themes such as Twenty Twenty-Five.
- Settings fields are 16px on phones, so iOS no longer zooms in when one is tapped.
- Counting a signed-in reader's views keeps one small record per reader instead of one row per post they read.
- The notice for an approve blocked by credits names the setting as it appears on screen, "Block at Zero Balance".
- Publishing a saved draft for the first time says "Post Published!" instead of "Post Updated!".
- Publishing a post privately shows its own confirmation with next steps.
- Moving a post to Trash keeps its featured image; the image is removed only when the post is deleted permanently and no other post uses it.
- Create Post and Edit links work on BuddyPress when no submission page is set.
- Switching off the reading list also closes its feed and shows a notice in its shortcode.
- Shortcode Areas appear on member blog posts only, as the setting says.
- Auto Create Page repairs the page already set for the site instead of adding a second one.
- The Editor tab describes autosave as it works: drafts save in place, and changes to a live post wait for Update.
- Edit links on PeepSo profiles open the post instead of "Invalid post", and co-authors and editors can edit from there too.
- Follow buttons in the Following tab no longer go blank on hover or keyboard focus.
- The dashboard tab strip no longer shows a stray vertical scrollbar.
- An incomplete copy of the bundled licensing library shows an admin notice instead of stopping the whole site.
Security
- The wp-admin comments screen shows members only comments on their own posts.
- Quick Edit and bulk edit enforce blocked categories.
- Publish, Clap, Save and Delete controls appear only where the server allows the action.
- Members see only WordPress's own fields in the media modal.
- Deleting a post removes its featured image only when the post's author uploaded that image.
- Private is offered only when a post goes live, so a post sent for review can never be approved as public after the member chose Private.
- Cached post feeds are shared only between signed-out visitors, never between members.
Dev
- `bpmb_member_home_tabs` replaces the old dashboard tab filters.
- The per-tab templates `draft-posts.php` and `pending-posts.php`, their PeepSo copies and the `parts/` templates are removed, so theme overrides of them no longer load; see the templates guide.
- Shortcode empty output uses `.bpmb-empty.bpmb-shortcode-empty-state`.
- The draft REST response returns `modified` in UTC, and `modified_display` is removed.
- New `bpmb_hide_peepso_blogposts_tab` filter controls PeepSo's own Blog Posts profile tab.
- New `bpmb_dashboard_show_title` filter decides whether the dashboard prints its own heading.
- New `bpmb_reject_quick_reasons` filter sets the quick reasons offered when sending a post back.
- New `bpmb_post_entered_review` action and `bpmb_review_request_recipients` filter.
- Engagement REST errors use `bookmark_failed` and `unfollow_failed` codes, which were sent with a doubled prefix.
- New `bpmb_can_review` filter decides who may review member submissions.
- New `BP_Member_Blog_Helpers::is_wp_admin_request()` tells a wp-admin save from a front-end one; Pro's word limit uses it.
Compat
- Tested with WordPress 7.1.
- Lockstep with WB Member Blog Pro 4.3.0. Install both updates together; Pro 4.3.0 requires this version.