Changeset 3752549
- Timestamp:
- 10/18/2026 04:53:08 AM (2 weeks ago)
- Location:
- gather-grove-booking/trunk
- Files:
-
- 7 added
- 10 edited
-
gather-grove-booking.php (modified) (3 diffs)
-
languages/gather-grove-booking.pot (modified) (3 diffs)
-
readme.txt (modified) (2 diffs)
-
src/Plugin.php (modified) (1 diff)
-
src/Services/MemberEmailBridge.php (added)
-
vendor/composer/autoload_classmap.php (modified) (1 diff)
-
vendor/composer/autoload_static.php (modified) (1 diff)
-
vendor/composer/installed.php (modified) (3 diffs)
-
vendor/gather-grove-core/bootstrap.php (modified) (1 diff)
-
vendor/gather-grove-core/src/Core.php (modified) (1 diff)
-
vendor/gather-grove-core/src/Identity (added)
-
vendor/gather-grove-core/src/Identity/AccountDirectory.php (added)
-
vendor/gather-grove-core/src/Identity/EmailChange.php (added)
-
vendor/gather-grove-core/src/Identity/EmailChangeLog.php (added)
-
vendor/gather-grove-core/src/Identity/EmailChangeNotice.php (added)
-
vendor/gather-grove-core/src/Identity/WpAccountDirectory.php (added)
-
vendor/gather-grove-core/src/Messages/WordPressMail.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
gather-grove-booking/trunk/gather-grove-booking.php
r3752518 r3752549 4 4 * Plugin URI: https://gathergrove.io/docs/booking 5 5 * Description: Class scheduling and booking for studios, wellness centers, and community programs. 6 * Version: 1.24 6.16 * Version: 1.247.0 7 7 * Author: Rob Hewitt / Gather Grove 8 8 * Author URI: https://gathergrove.io … … 21 21 defined( 'ABSPATH' ) || exit; 22 22 23 define( 'GATHER_GROVE_VERSION', '1.24 6.1' );23 define( 'GATHER_GROVE_VERSION', '1.247.0' ); 24 24 // Bump this whenever any CPT/taxonomy/rewrite registration changes — every 25 25 // install will flush its rule cache on next admin page load. Existing studios … … 54 54 // version it syncs, and CI version-coherence guards the bump. 55 55 GG_Core_Loader::offer( 56 '0.7 8.0',56 '0.79.0', 57 57 GATHER_GROVE_PLUGIN_DIR . 'vendor/gather-grove-core/bootstrap.php' 58 58 ); -
gather-grove-booking/trunk/languages/gather-grove-booking.pot
r3752518 r3752549 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Gather Grove Booking 1.24 6.1\n"5 "Project-Id-Version: Gather Grove Booking 1.247.0\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/gather-grove-booking\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2026-10-18T0 3:55:07+00:00\n"12 "POT-Creation-Date: 2026-10-18T04:52:34+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.12.0\n" … … 26472 26472 msgstr "" 26473 26473 26474 #: src/Services/MemberEmailBridge.php:74 26475 msgid "Another client already uses that email address." 26476 msgstr "" 26477 26474 26478 #. translators: %s: what the account holds, e.g. "3 bookings and a membership". 26475 26479 #: src/Services/MemberMergeFootprint.php:109 -
gather-grove-booking/trunk/readme.txt
r3752518 r3752549 5 5 Tested up to: 7.1 6 6 Requires PHP: 8.2 7 Stable tag: 1.24 6.17 Stable tag: 1.247.0 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 147 147 == Changelog == 148 148 149 = 1.247.0 = 150 * New: another client's record with the same email now counts as "already in use" when an email is changed, even if that person has no login yet. 151 * Developers: carries gather-grove-core 0.79.0 (GatherGrove\Core\Identity\EmailChange and the gather_grove/member/email_changed event). Booking answers core's staff-account, address-in-use, studio-name and email-style questions (Services\MemberEmailBridge). 152 153 = 1.246.2 = 154 149 155 = 1.246.1 = 150 156 -
gather-grove-booking/trunk/src/Plugin.php
r3749190 r3752549 431 431 $this->get( LoginUrlFilters::class )->register_hooks(); 432 432 $this->get( UserSyncService::class )->register_hooks(); 433 // Core 0.79.0 member email change: Booking says who is staff, whether 434 // an address belongs to another client, and how the notices look. 435 \GatherGrove\Booking\Services\MemberEmailBridge::register(); 433 436 // Rule 197 — answers the suite's member-merge footprint contract. 434 437 $this->get( \GatherGrove\Booking\Services\MemberMergeFootprint::class )->register_hooks(); -
gather-grove-booking/trunk/vendor/composer/autoload_classmap.php
r3752505 r3752549 450 450 'GatherGrove\\Booking\\Services\\ManageLink' => $baseDir . '/src/Services/ManageLink.php', 451 451 'GatherGrove\\Booking\\Services\\MarketingConsent' => $baseDir . '/src/Services/MarketingConsent.php', 452 'GatherGrove\\Booking\\Services\\MemberEmailBridge' => $baseDir . '/src/Services/MemberEmailBridge.php', 452 453 'GatherGrove\\Booking\\Services\\MemberMergeFootprint' => $baseDir . '/src/Services/MemberMergeFootprint.php', 453 454 'GatherGrove\\Booking\\Services\\MemberValue' => $baseDir . '/src/Services/MemberValue.php', -
gather-grove-booking/trunk/vendor/composer/autoload_static.php
r3752505 r3752549 477 477 'GatherGrove\\Booking\\Services\\ManageLink' => __DIR__ . '/../..' . '/src/Services/ManageLink.php', 478 478 'GatherGrove\\Booking\\Services\\MarketingConsent' => __DIR__ . '/../..' . '/src/Services/MarketingConsent.php', 479 'GatherGrove\\Booking\\Services\\MemberEmailBridge' => __DIR__ . '/../..' . '/src/Services/MemberEmailBridge.php', 479 480 'GatherGrove\\Booking\\Services\\MemberMergeFootprint' => __DIR__ . '/../..' . '/src/Services/MemberMergeFootprint.php', 480 481 'GatherGrove\\Booking\\Services\\MemberValue' => __DIR__ . '/../..' . '/src/Services/MemberValue.php', -
gather-grove-booking/trunk/vendor/composer/installed.php
r3752518 r3752549 5 5 'pretty_version' => 'dev-main', 6 6 'version' => 'dev-main', 7 'reference' => ' 63e321d92e61a1e143a613507d3fde3d97c0775b',7 'reference' => 'fed78cc156dc94ab4eccdda05b156a0f5302a62e', 8 8 'type' => 'wordpress-plugin', 9 'install_path' => '/private/var/folders/_z/v6yvnpmx5mz91tk62d72jhyc0000gn/T/tmp. 8r9MMaQLgZ/gather-grove-booking/vendor/composer/../../',9 'install_path' => '/private/var/folders/_z/v6yvnpmx5mz91tk62d72jhyc0000gn/T/tmp.y1lQxajlW4/gather-grove-booking/vendor/composer/../../', 10 10 'aliases' => 11 11 array ( … … 19 19 'pretty_version' => 'dev-main', 20 20 'version' => 'dev-main', 21 'reference' => ' 63e321d92e61a1e143a613507d3fde3d97c0775b',21 'reference' => 'fed78cc156dc94ab4eccdda05b156a0f5302a62e', 22 22 'type' => 'wordpress-plugin', 23 'install_path' => '/private/var/folders/_z/v6yvnpmx5mz91tk62d72jhyc0000gn/T/tmp. 8r9MMaQLgZ/gather-grove-booking/vendor/composer/../../',23 'install_path' => '/private/var/folders/_z/v6yvnpmx5mz91tk62d72jhyc0000gn/T/tmp.y1lQxajlW4/gather-grove-booking/vendor/composer/../../', 24 24 'aliases' => 25 25 array ( … … 33 33 'reference' => 'fe99159b9ee0a74be3c12c0305e5338e0b9905c3', 34 34 'type' => 'library', 35 'install_path' => '/private/var/folders/_z/v6yvnpmx5mz91tk62d72jhyc0000gn/T/tmp. 8r9MMaQLgZ/gather-grove-booking/vendor/composer/../stripe/stripe-php',35 'install_path' => '/private/var/folders/_z/v6yvnpmx5mz91tk62d72jhyc0000gn/T/tmp.y1lQxajlW4/gather-grove-booking/vendor/composer/../stripe/stripe-php', 36 36 'aliases' => 37 37 array ( -
gather-grove-booking/trunk/vendor/gather-grove-core/bootstrap.php
r3749190 r3752549 285 285 286 286 /* 287 * Member email change (0.79.0, docs/member-email-change-spec.md): the 288 * bridge that turns ANY login-email change (wp-admin Users, a plugin's 289 * own wp_update_user()) into `gather_grove/member/email_changed`, so 290 * every plugin's copy of the address can follow it. Changes made through 291 * Identity\EmailChange::apply() fire the event themselves. 292 */ 293 \GatherGrove\Core\Identity\EmailChange::register_hooks(); 294 295 /* 287 296 * Interactive widgets (0.72.0, courses-interactive spec Part 1): the 288 297 * registry plugins fill on `gather_grove/interactive/register`, the -
gather-grove-booking/trunk/vendor/gather-grove-core/src/Core.php
r3752505 r3752549 1119 1119 * every valid role, so "Front Desk" can be placed in a menu. 1120 1120 * Additive: nothing scopes a section to `=== member`. 1121 * 0.79.0: `Identity\EmailChange` — ONE path for a member's login-email 1122 * change and ONE event for every plugin 1123 * (docs/member-email-change-spec.md, phase 1). `apply( $user_id, 1124 * $new, [actor_role, source, notify] )` validates (format, taken, 1125 * a staff account is never changed by a member or the desk, 1126 * filter `gather_grove/member/email_change_allowed` for a plugin's 1127 * own records), saves the account WITHOUT WordPress's own notice, 1128 * writes one `gg_core_email_changes` audit row (lazy table), sends 1129 * `Identity\EmailChangeNotice` to the OLD and the NEW address 1130 * (security mail; studio name + styles via the `gather_grove/member/email_change_studio_name` / `_styles` filters; tagged `wordpress.email_changed` / 1131 * `wordpress.email_changed_new`, never registered, so never 1132 * switched off; styles via `gather_grove/member/email_change_styles`), 1133 * (`notify => EmailChange::NOTIFY_NEW_ONLY` skips the old address — a typo fix, where it may be a stranger's), then fires `gather_grove/member/email_changed` ( $user_id, $old, 1134 * $new, $context ) once. A bridge on `profile_update` fires the same 1135 * event for any change made another way (wp-admin, a direct 1136 * wp_update_user()). Before this, nothing told the suite's copies 1137 * of an address that it changed — Stripe receipts went to the old 1138 * address (Booking 1.246.1). Additive. 1121 1139 */ 1122 public const VERSION = '0.7 8.0';1140 public const VERSION = '0.79.0'; 1123 1141 1124 1142 /** -
gather-grove-booking/trunk/vendor/gather-grove-core/src/Messages/WordPressMail.php
r3722069 r3752549 102 102 self::PREFIX . 'password_changed' => __( 'Password changed', 'gather-grove-core' ), 103 103 self::PREFIX . 'email_changed' => __( 'Email address changed', 'gather-grove-core' ), 104 // Sent by Gather Grove's own email change (Identity\EmailChangeNotice, 0.79.0). 105 self::PREFIX . 'email_changed_new' => __( 'Email address changed (to the new address)', 'gather-grove-core' ), 104 106 self::PREFIX . 'new_user_admin' => __( 'New user registered (to staff)', 'gather-grove-core' ), 105 107 self::PREFIX . 'password_changed_admin' => __( 'Password changed (to staff)', 'gather-grove-core' ),
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)