| 开发者 | creativenginecorp |
|---|---|
| 更新时间 | 2026年7月28日 02:05 |
| 捐献地址: | 去捐款 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.0 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
meeting) - Main meeting post typemeeting_participant) - Witnesses and nomineesmeeting_member) - Committee membersmeeting_file) - Files associated with meetingsmeeting_status)meeting_type)committee_type)privacy_type)congress)subcommittee)participant_type)wp_capigacr_meetingmeta - Meeting metadatawp_capigacr_participantmeta - Participant metadatawp_capigacr_membermeta - Member metadatawp_capigacr_filemeta - File metadata/wp-json/meetings/v1/
External Services
This plugin may fetch data from external services in the following scenarios:
/wp-content/plugins/creativengine-congressional-utilities/This plugin requires WordPress 5.0 or higher, PHP 7.4 or higher, and Advanced Custom Fields Pro. Elementor is optional but recommended for frontend display.
Meetings can be created via:
/wp-json/creativengine-meetings/v1/write endpointYes, the plugin supports CSV imports for meetings, panels, panel members, participants, members, and files. Access the import interface via Meetings → Import in the WordPress admin.
Frontend endpoints use /wp-json/creativengine-capitol-gains/v1/. Proforma/admin endpoints use /wp-json/creativengine-meetings/v1/. See the plugin documentation for complete API endpoint details.
capigacr_congress) instead of the hardcoded literal congress, and no longer hardcodes an exclusion list for meeting-only taxonomies/post types — both bugs silently broke Congress filtering depending on which modules were enabled or how the taxonomy slug was configured.meeting_file record for files attached to panel participants — the meeting-snapshot ingestion path had no equivalent of the live API's separate "Write/Upload File" step, so a panel member's referenced files (visible in the pasted JSON) never got their own WordPress file post created. A metadata-only file record is now created for each panel-member file reference during import, matching how every other file location (meeting files, transcripts, meeting members, nominee panels) already behaves.meeting_start database column) for meetings with a title longer than 255 characters — most commonly nomination hearings that list every nominee's full name and position, but also long Executive Session titles. The plugin's internal capigacr_meetingmeta.title column was a varchar(255), and the title was written in the same database statement as meeting_start; under strict SQL mode (the modern MySQL/MariaDB default), a too-long title caused that entire statement — including the start date — to fail, with no error surfaced anywhere in the import results. The title column is now TEXT (matching the already-unbounded agenda column), removing the failure entirely. Existing sites are updated automatically via a database migration on the next admin page load.btn btn-sm btn-primary (and sibling variant) classes from meeting-files and meeting-links card action buttons — buttons now carry only the design-system Button class. The now-obsolete "File Button Style" (meeting-files) and "Link Button Style" (meeting-links) Elementor controls, and all their wiring, were removed.adjust_field_editability() caused all taxonomy fields to be hidden regardless of the enabled taxonomies setting..capigacr-widget-card li elements. The render_agenda_item closure was emitting its own <li> wrapper, which when nested inside the template's <li class="capigacr-widget-card"> caused browsers to auto-close the outer li, producing empty card wrappers followed by bare li elements with the actual content.<p> tags) as formatted HTML instead of escaping it to literal text, in both card and row layout styles.selectors_dictionary mechanism directly on the driver control.{{VALUE}} with no leading CSS property, which produced no output; reshaped to lead with position: matching the plugin's other working selectors_dictionary controls (e.g. Icon Alignment).GET /meetings-calendar returns published meetings as a FullCalendar-shaped events feed (id/title/start/end/url), plus a new Meeting Calendar Elementor widget that renders a self-hosted FullCalendar month grid fed by that endpoint — no CDN dependency, clicking an event navigates to the meeting page.elementor-frontend as a script dependency, and relied solely on Elementor's frontend/element_ready hook, which is not reliably dispatched at a consistent point relative to widget script execution across Elementor versions/setups. The widget now initializes any .capigacr-meeting-calendar element already in the DOM via a direct scan on page load, with the Elementor hook kept as a best-effort addition so the calendar also initializes correctly if added to the page later (editor live preview, popups, AJAX-loaded content).GET /meeting/{id}/file-url/{file_id} returns a file's download URL after server-side embargo verification.filesEmbargoDateTime is now sent as UTC ISO 8601 (with Z suffix) from the embargo-status API, eliminating browser-timezone misinterpretation when the visitor's timezone differs from the WordPress site timezone.meeting_start embargo fallback now correctly treats the stored value as UTC rather than source timezone, fixing incorrect embargo lift times when filesEmbargoDateTime is absent.Date response header plus half-RTT latency, replacing current_time/current_timestamp body fields that go stale on CDN-cached responses.Cache-Control on the embargo-status endpoint is now conditional — uses api_cache_interval from Live Video settings when configured, otherwise sends no-store headers (replaces hardcoded 5-minute cache).scheduleEmbargoRecheck no longer triggers an infinite polling loop when the embargo is already lifted — returns early instead of immediately rechecking.style="display:none" set by PHP block templates in addition to removing the CSS class, so elements become visible after lift.filesEmbargoDateTime gracefully — treats it as immediately lifted and reveals any elements hidden on load._t cache-bucket parameter aligned to the configured CDN interval, matching the live-meetings pattern.cacheInterval and cacheBucket are injected into capigacrEmbargoSettings when a CDN cache interval is configured, enabling JS to compute matching cache-bucket values client-side.get_meeting_file_type_label() now resolves the label via wp_get_object_terms() when a post ID is provided, giving more reliable results than slug-based term lookup.local_overrides.files[] so they appear in the hydrated snapshot on the front-end.proforma-file-type parameter before falling back to type.role="button" aria-disabled="true" without href during embargo; preview-render mode continues to expose the real URL.{"meeting":{...}} export snapshot into a textarea on the Meetings Import page to create or update a meeting and all related participants, panels, and file references in one action, at the same fidelity as the REST API.details.amend_type object values in snapshot format are now correctly normalized to scalar before taxonomy assignment, preventing a fatal sanitize_title(array) error on real-world snapshot imports.?search=term URL param now filters the meeting table correctly regardless of whether the Loop Filters widget has a search field configured._wpnonce to the URL) no longer returns zero results — duplicate title/content WHERE conditions from the native s= search are no longer generated.meeting_start from being excluded when a year filter is active.search_field_type) are no longer treated as custom meta fields, allowing the early-return guard to fire correctly and preventing over-restrictive WHERE clauses.search param as a hidden input on submission, preventing the search term from being dropped when a filter is changed.get_search_config_from_widgets() are normalized to title so options sub-queries are not over-restricted.archive_stream_enabled is YES — meeting_id is resolved via get_the_ID() so get_field() correctly reads the value from the meeting snapshot via intercept_acf_load.archive_stream_enabled and live_stream_enabled admin saves via API update and proforma overwrite paths now write to local_overrides so the ACF load path sees the admin-set value instead of the snapshot value.public array onto snapshot root and promote formatted HTML/text fields.creativengine-congressional-utilities and aligned folder/handles for consistent localization.