@prefix sioc: <http://rdfs.org/sioc/ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix content: <http://purl.org/rss/1.0/modules/content/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<https://lhero.org/?post_type=lh-portfolio-doc&#038;p=148670>
  a sioc:Post ;
  dc:title "Changelog" ;
  dcterms:identifier 148670 ;
  dc:modified "2026-09-28T15:35:39Z"^^xsd:dateTime ;
  dc:created "2026-09-28T15:18:16Z"^^xsd:dateTime ;
  sioc:link <https://lhero.org/portfolio/lh-buddypress-check-ins/changelog/> ;
  sioc:has_creator <https://lhero.org/author/1/#account> ;
  sioc:has_container <https://lhero.org/#posts> ;
  content:encoded "<ul class=\"lh_portfolio-meta\"><li><strong>Part of:</strong> <a href=\"https://lhero.org/portfolio/lh-buddypress-check-ins/\">LH Buddypress Check Ins</a></li></ul><ul class=\"lh_portfolio-changelog\"><li><strong>3.6.0:</strong> Staff who can promote users now see the check-in table on events that use a block template. The content filter that adds it was set up when the page body opened, but a block template renders the event&#039;s content before that, so the table was missing there. It is now set up before the page renders and still only acts on the page body: after the body opens in classic and PHP templates, as before, or while a block template renders its markup. Content run for the page head, such as excerpts built for meta tags, is left alone and no longer uses up the once-per-page table. Feeds are not filtered. Lh-tasks #149195.</li><li><strong>3.5.0:</strong> Adds check-in blocks. The Check In block holds one Check-in State block per state (open, closed, just checked in, already checked in), each with ordinary editable blocks; only the visitor&#039;s current state renders, and states not shown are skipped before their inner blocks render. The Check-in Form block renders the email check-in form inside the open state. A Check-in field text format puts live values anywhere in normal text: member name, first name or avatar, the event title or date, or the next upcoming event&#039;s title or date (optionally limited to taxonomy terms, e.g. a night), filled in at render. The same values are a Block Bindings source (check-in), used by a new Check in another person button variation. Auto check-in on page load and form submission now recognise a page holding the Check In block as well as the form shortcode; on a block page the result is shown by the block, not by replacing the page content. A lh_bp_check_ins_state_content filter lets plugins add to a state. The shortcodes are unchanged.</li><li><strong>3.4.1:</strong> Fixes the check-in success message not being shown. get_message_from_content() built its pattern with an unescaped / in the closing tag, so preg_match_all() failed with &quot;Unknown modifier &#039;l&#039;&quot; and returned no message; the check-in was recorded but the page showed an empty box. It now uses core&#039;s get_shortcode_regex() for the form shortcode and returns the enclosed content. If the form shortcode encloses nothing, a default &quot;Thank you for checking in.&quot; is shown instead of an empty box.</li><li><strong>3.4.0:</strong> Adds MCP abilities for check-ins. check-in lets a signed-in user check themselves in to an event, under the same gate as the check-in form (event flagged for check-ins, eligible status, running today). record-check-ins lets staff with promote_users check site members in to any event that has started, today or in the past, for taking attendance at a meeting or backfilling an old one; it skips non-members, leaves anyone already checked in alone, accepts an optional past check-in time, and records who recorded each check-in in comment meta. list-check-ins lists an event&#039;s check-ins for staff, without email addresses. The check-in-open rules for a single event are now a shared is_check_in_open() method, and add_check_in() accepts an optional check-in time and recorder.</li><li><strong>3.3.2:</strong> Profile field updates made during a check-in now call LH Profile Page&#039;s field classes directly (LH_Profile_Phone_Field::handle_phone_update and LH_Profile_Birthdate_Field::handle_birthdate_update) instead of the back-compat proxy methods on LH_profile_page_plugin, which LH Profile Page 3.0.0 removes. Each call is guarded by a class_exists check on the field class it uses, so a missing or older LH Profile Page falls back to a plain meta update as before. No change in behaviour.</li><li><strong>3.3.1:</strong> Fixed PHP warnings (&quot;Attempt to read property on null&quot;) from the check-in user, post, number and register shortcodes when a page containing them was viewed without a successful check-in in the same request. The shortcodes now look up the check-in through a guarded helper and return empty output when there is no check-in, instead of reading properties of a missing comment or user.</li></ul>"^^rdf:XMLLiteral ;
  sioc:content "Part of: LH Buddypress Check Ins3.6.0: Staff who can promote users now see the check-in table on events that use a block template. The content filter that adds it was set up when the page body opened, but a block template renders the event&#039;s content before that, so the table was missing there. It is now set up before the page renders and still only acts on the page body: after the body opens in classic and PHP templates, as before, or while a block template renders its markup. Content run for the page head, such as excerpts built for meta tags, is left alone and no longer uses up the once-per-page table. Feeds are not filtered. Lh-tasks #149195.3.5.0: Adds check-in blocks. The Check In block holds one Check-in State block per state (open, closed, just checked in, already checked in), each with ordinary editable blocks; only the visitor&#039;s current state renders, and states not shown are skipped before their inner blocks render. The Check-in Form block renders the email check-in form inside the open state. A Check-in field text format puts live values anywhere in normal text: member name, first name or avatar, the event title or date, or the next upcoming event&#039;s title or date (optionally limited to taxonomy terms, e.g. a night), filled in at render. The same values are a Block Bindings source (check-in), used by a new Check in another person button variation. Auto check-in on page load and form submission now recognise a page holding the Check In block as well as the form shortcode; on a block page the result is shown by the block, not by replacing the page content. A lh_bp_check_ins_state_content filter lets plugins add to a state. The shortcodes are unchanged.3.4.1: Fixes the check-in success message not being shown. get_message_from_content() built its pattern with an unescaped / in the closing tag, so preg_match_all() failed with &quot;Unknown modifier &#039;l&#039;&quot; and returned no message; the check-in was recorded but the page showed an empty box. It now uses core&#039;s get_shortcode_regex() for the form shortcode and returns the enclosed content. If the form shortcode encloses nothing, a default &quot;Thank you for checking in.&quot; is shown instead of an empty box.3.4.0: Adds MCP abilities for check-ins. check-in lets a signed-in user check themselves in to an event, under the same gate as the check-in form (event flagged for check-ins, eligible status, running today). record-check-ins lets staff with promote_users check site members in to any event that has started, today or in the past, for taking attendance at a meeting or backfilling an old one; it skips non-members, leaves anyone already checked in alone, accepts an optional past check-in time, and records who recorded each check-in in comment meta. list-check-ins lists an event&#039;s check-ins for staff, without email addresses. The check-in-open rules for a single event are now a shared is_check_in_open() method, and add_check_in() accepts an optional check-in time and recorder.3.3.2: Profile field updates made during a check-in now call LH Profile Page&#039;s field classes directly (LH_Profile_Phone_Field::handle_phone_update and LH_Profile_Birthdate_Field::handle_birthdate_update) instead of the back-compat proxy methods on LH_profile_page_plugin, which LH Profile Page 3.0.0 removes. Each call is guarded by a class_exists check on the field class it uses, so a missing or older LH Profile Page falls back to a plain meta update as before. No change in behaviour.3.3.1: Fixed PHP warnings (&quot;Attempt to read property on null&quot;) from the check-in user, post, number and register shortcodes when a page containing them was viewed without a successful check-in in the same request. The shortcodes now look up the check-in through a guarded helper and return empty output when there is no check-in, instead of reading properties of a missing comment or user." ;
  sioc:topic <https://lhero.org/?taxonomy=author&term=cap-1> .

<https://lhero.org/author/1/#account> rdfs:seeAlso <https://lhero.org/author/1/?feed=lhrdf&format=turtle> .
<https://lhero.org/?taxonomy=author&term=cap-1> rdfs:seeAlso <https://lhero.org/?taxonomy=author&term=cap-1&feed=lhrdf&format=turtle> .
