Releases: RingierIMU/mkt-plugin-wordpress-bus
Releases · RingierIMU/mkt-plugin-wordpress-bus
v3.5.2
[3.5.2] - 2026-02-04
Changed
- (code) Refactored
getOgArticlePublishedDateandgetOgArticleModifiedDateto use nativeWP_Postproperties instead of Yoast SEO Indexables. This ensures the API uses the database "Source of Truth" and avoids data cross-contamination when posts share slugs with historical attachments. - (code) Hardened
Utils::formatDateto handle null or "zeroed" database timestamps (0000-00-00 00:00:00), ensuring strict RFC3339 compliance.
v3.5.1
[3.5.1] - 2026-01-29
Added
- (UI) Added Resume from ID functionality to the Batch Article Sync tool, allowing users to continue interrupted syncs from a specific Article ID.
Changed
- (UI) Updated the sync status message to clarify when a sync is resuming versus starting fresh.
v3.5.0
[3.5.0] - 2026-01-21
Added
- (UI) Batch Article Sync tool added to the "BUS Tooling Page".
- Features a "Recent First" sync strategy to prioritize the newest content.
- Includes a Post Type selector (Radio button) to allow syncing specific custom post types.
- Displays real-time progress logs in the admin dashboard.
- (code) Implemented a Reverse ID Cursor strategy for the Article Sync logic.
- Ensures O(1) constant performance regardless of database size (efficiently handles 10k+ posts).
- Replaces standard
OFFSETpagination to prevent timeout issues on deep database queries.
Changed
- (code) Major refactor of the
ArticleEventclass to remove 3rd-party dependencies in favor of 100% native WP code:- Removed
GuzzleHttp\Clientin favor of nativewp_remote_post(). - Removed
AuthenticationInterfacedependency; now usesBusTokenManagerdirectly.
- Removed
v3.4.1
[3.4.1] - 2025-12-02
Added
- (code) Added a check to see if the Ringier Author plugin is enabled
- If yes, only send events for authors that have their public profile set to ENABLED
- If that plugin is not present or disabled, it's business as usual
Fixed
- (payload) TopicEvents: title, slug and url should be array of objects
v3.4.0
This release addresses:
[3.4.0] - 2025-07-02
Added
- (payload) Added
canonicalto the Article payload
[3.3.1] - 2025-07-01
Fixed
- (payload) parent_category should be one TranslationObject and not a list of TranslationObjects
v3.3.0
[3.3.0] - 2025-06-24
Added
- (payload) Custom Taxonomy support for category related properties within the Article payload
- (payload) Author Events:
- AuthorCreated
- AuthorUpdated
- AuthorDeleted
- (payload) Topic Events:
- TopicCreated
- TopicUpdated
- TopicDeleted
- (UI) Introduced checkboxes (Settings page) to toggle ON/OFF event sending for Authors Events
- (UI) Introduced checkboxes (Settings page) to toggle ON/OFF event sending for Topic Events (categories and tags).
- (UI) Tooling Menu for batch syncing and flushing transients
- (UI) Batch Syncing Mechanism with real-time progression updates during sync operations
- batch syncing Topics events
- batch syncing Author events
- (code) Used WordPress-native features like wp_remote_*() with the above new events in place of Guzzle/Symfony dependencies
- (code) Introduced new Enums for writer type, hook priorities, and author roles to improve clarity and reuse
Changed
- Improved error reporting with contextual messages and consistent formatting
- (dependency) Replaced Monolog logging logic with native PHP for better control and performance
- (dependency) Used WordPress-native features like wp_remote_*() and transient in place of Guzzle/Symfony dependencies
- (code) Reduced transient expiry for recently created authors from 10s to 5s for more accurate event filtering
- (code) Adopted a pure WordPress templating approach for better separation of logic and templates
- (code) refactored logging message + removed redundant log inputs
v3.2.0
3.2.0 (May 15, 2024)
- [NEW] UI + Logic: Added a checkbox (in settings page) to allow users to enable/disable the Quick Edit button
- [NEW] UI + Logic: Added a checkbox to let users select which custom post_type should be sent as Events
- By default, only the default
postpost_type is sent as Events, unless custom types are explicitly enabled
- By default, only the default
- [UPDATE] Logic: Improved the event logging mechanism
v3.1.0
3.1.0 (Oct 9, 2024)
- [NEW] Added Youtube videos to the event payload if there's any as part of the article
- see PR #8 for more details
- [UPDATE] When description is not set by author, it defaulted to the excerpt. As a consequence hellip was being added to the description. This has been fixed to remove the hellip, as well as any other html entities/tags that might be present in the excerpt.
v3.0.0
3.0.0 (Jul 15, 2024)
- [BREAKING] PHP Version | The code base now requires a minimum version of PHP 8.1+
- [NEW] Added three new custom filters to allow for more flexibility in the plugin's behavior (see readme file):
ringier_bus_get_publication_reason- allows you to filter the publication reason before it is sent to the BUS APIringier_bus_get_article_lifetime- allows you to filter the article lifetime before it is sent to the BUS APIringier_build_article_payload- allows you to filter the entire article payload before it is sent to the BUS API
- [UPDATE]: Changed the way events are sent:
- on new article creation, an event will now be immediately sent (this is a requirement for internal CIET)
- the event will still be queued to run or re-run (in the case of an article update) after the default 1 minute
- [UPDATE]: Harmonised page title and menu
- [UPDATE]: Updated composer dependencies
- [UPDATE]: Cache nonce now defaults to the plugin version number for consistency
- [UPDATE]: Add more intuitive prompts to guide user, for e.g provide the STAGING and PROD endpoints right there in the UI to be handy for them
v2.3.0
2.3.0 (Oct 9, 2023)
- [UPDATE]: Transitioned from relying on the rest_after_insert_post hook to the more universally available transition_post_status hook.
Reason: We identified that some blogs were disabling the Gutenberg editor and as a result, not utilizing the new WordPress REST API. This meant that the rest_after_insert_post hook wasn't being triggered for those instances. To ensure consistent and robust post update handling across all blogs, regardless of their editor choice, we've shifted to the transition_post_status hook.
Impact: This change ensures that our logic remains consistent even in environments where Gutenberg is disabled or the REST API isn't being leveraged.
- [UPDATE]: Improved JSON handling and compression for Slack logging
- Ensured safe JSON encoding with error checks