Play Changelog

Changelog

4.15.4

Activity report dates now in UTC [*]

Fixes

  • post_date and post_modified in the activity report payload now use UTC values (post_date_gmt, post_modified_gmt)

4.15.3

Post created activity now reaches reports when saved during autosave [*]

Fixes

  • Skip the autosave guard in send_website_network_activity() for post_created events so that the creation webhook is sent even when the post is first saved during a heartbeat autosave

4.15.2

Category IDs sent to activity reports in ascending order [*]

Fixes

  • Sort category IDs before building the comma-separated category_id string in both the live event handler and the backfill command

4.15.1

Backfill command uses direct database queries to bypass plugin query filters [*]

Fixes

  • Replace WP_Query with a direct $wpdb query for post ID retrieval in wp play backfill-wna; prevents access-level query filters from interfering with results

4.15.0

Article WNA default fields registration moved to Publishing [*]

Improvements

  • Move add_article_website_reports_default_args() and ARTICLE_WEBSITE_REPORTS_FIELD_IDS to the Publishing plugin; Publishing is active on all sites, ensuring article WNA defaults are always present

4.14.0

WP-CLI command to backfill articles to website activity records [*]

New

  • Add wp play backfill-wna command; queries all articles on the Play blog and sends a backfill event for each to the Website Network Activity Airtable webhook; access level fields included via sia_ariel/website_reports_entity_args; dry-run by default, --letsgo to send

4.13.0

Article access level fields added to website activity records [*]

New

  • Apply sia_ariel/website_reports_entity_args filter in send_website_network_activity() to allow the payload to be extended per post type
  • Add add_article_website_reports_default_args() hooked into sia_ariel/website_reports_default_args to inject empty defaults for has_custom_access_level, permission_types, organization_status, organization, and team
  • Add add_article_website_reports_entity_args() hooked into sia_ariel/website_reports_entity_args to populate access level fields for article posts; array values serialised as comma-separated strings

4.12.2

Team page layout tightened for the new contact detail fields [*]

Improvements

  • Inline label style (u-collapsed) for the Google Group and Slack channel paragraphs; AAP links combined into a single line

4.12.1

Google Group and Slack channel links moved above the website links [*]

Improvements

  • Move the Country Google Group and Digital Support Channel indicators above the website links on team pages

4.12.0

Country team pages now show Google Group and Slack channel links [*]

Improvements

  • Show the country Google Group (as a mailto link) and the Slack channel on team pages when both the name and address for each are available

4.11.0

Enrich Website Network Activity payload with content metadata [*]

Improvements

  • Add op, slug, entityTitle, post_status, post_date, post_modified, and category_id to the payload in SIA_Play_Public::send_website_network_activity()

4.10.1

Article list no longer crashes on PHP 8 [*]

Fixes

  • Cast the comment count to integer via a get_comments_number filter, fixing a PHP 8 / WordPress 5.9 incompatibility that caused a fatal error on the article admin list page

4.10.0

Start sending own entities’ post activity to Website Reports

New

  • Intercept logger activity in SIA_Play_Public::send_website_network_activity() hooked to simple_history/log/inserted and send forward to SIA_Ariel_Activity_Repository::post_event()

4.9.0

Namespace the Slack slash command endpoints

  • Improvement: Rename the directory related root of Slack enpoints from ‘sia’ to ‘slack’ in SIA_Play_REST::$RESTRoutes

4.8.0

Unhook and deprecate the A&AP admin report

  • Comment the admin_menu filter hook of SIA_Play_Admin::register_aap_admin_menu() in SIA_Play::register_admin_hooks()
  • Deprecate SIA_Play_Admin::display_aap_reports() as the data is no longer accurate

4.7.0

Integrate the new Transient Service

  • Replace SIA Team $AAP with AAP() in SIA_Play_Admin::display_aap_reports()
  • Replace SIA Profile $teams with teams() in SIA_Play_REST::search() and SIA_Play_Public::initialize_user()
  • Adapt parameter usage of SIA_Team::get_team_by_slug() in SIA_Play_REST::team()
  • Make use of the new SIA_Ariel_Transient_Service::setTransient() to minimize calls

4.6.3

Fix excluding plays with multiple teams in access level

  • Store allowed posts teams specific posts (get_team_specific_posts()) separately from disallowed and then diff the arrays in SIA_Play_Public::initialize_user()

4.6.2

Fix excluding plays with multiple organizations in access level

  • Store allowed posts organization specific posts (get_organization_specific_posts()) separately from disallowed and then diff the arrays in SIA_Play_Public::initialize_user()

4.6.1

Fix A&AP report calculation of overall metrics

  • Reset the $state variable for each iteration of the $teams loop in SIA_Play_Admin::display_aap_reports()
  • Introduce $brokenCards to A&AP reports to highlight the broken SIA_Team::AAP before showing the correct cards

4.6.0

Store access level specific plays in transients and fix faulty organization based access

  • Implement the SIA_Ariel_Transient_Service API in SIA_Play_Public for methods that store post ids with specific levels (get_organization_specific_posts(), get_team_specific_posts(), and get_organization_status_specific_posts()) that are used to popule the $current_team_member->off_limits_post_ids from filter_articles_by_team_member_access() hooked to pre_get_posts
  • Fix proving too much access caused by a typo leading to incorrect output of SIA_Play_Public::get_organization_specific_posts()

4.4.0

Return pure JSON when requested in the /team route

  • Check for $args['format'] in SIA_Play_REST::team() and default to ‘slack’ when not requested specifically;
  • This file is Markdown.

4.4.0

Check for “bypass” permissions when deciding on off-limit plays

  • Take into account bypass_access_level_[x] when setting $current_team_member->off_limits_post_ids in SIA_Play_Public::initialize_user().

4.3.1

Fix: The :flag-X: Slack icon fails for Headquarter

4.3.0

Show up-to-date AAP API data in the A&AP Report

4.2.0

Unify searches via Slack and introduce the /directory slash command for profiles

4.1.0

Provide a clearer response when the /playbook slash command returns profiles

4.0.0

Show a report of A&AP installations in the new reusable report template class

3.14.0

Start tracking own ACF field groups for import via admin_init

3.12.0

Insert id based links when using the “Add link” modal

3.11.0

Include Pending and Future in display, show label

3.10.0

Check if SIA_Play_Public and functions.php were already loaded while SIA_Play::load_dependencies()

3.9.0

Return the glossary term definitions via REST route (/sia/glossary)

3.8.0

Integrate the /playbook REST route (out of SIA Slack)

3.7.0

Add an “Organization” access level.

3.6.2

Fix slow queries when filtering pre_get_posts

3.6.1

Fix check for Restricted Site Access being enabled.

3.6.0

Rename “Article” into “Play”, refactor post type registration.

3.5.0

Start using custom post type capabilities.

3.4.0

Allow parameter in access_level helpers.

3.3.1

Fix missing private articles in Category query.

3.3.0

Clarify access level label of admin post table filter.

3.2.0

Refactor team access to allow for multiple post types.

3.1.0

Provide post access level via functions.

  • New loop helpers ‘has_custom_access_level’ and ‘access_level’ in functions, with static equivalents in SIA_Play_Public;
  • Use new methods in admin class.

3.0.1

Fix breaking switch return in SIA_Play_Public::cleanup_access_level.

3.0.0

Allow content distribution depending on either a team member’s organization status, or team.

A byproduct of this update is the possibility to unify role permissions across the entire network, since Play users don’t need the custom “Coordinator” role.

  • Include a filter for organization pipeline status in articles (Playbook) admin table;
  • Filter articles (query, popular posts, search results) based on access levels.