Plugin Directory

Changeset 3752549


Ignore:
Timestamp:
10/18/2026 04:53:08 AM (2 weeks ago)
Author:
gturtle108
Message:

Release 1.247.0: email changes go through gather-grove-core's one path (core 0.79.0); MemberEmailBridge

Location:
gather-grove-booking/trunk
Files:
7 added
10 edited

Legend:

Unmodified
Added
Removed
  • gather-grove-booking/trunk/gather-grove-booking.php

    r3752518 r3752549  
    44 * Plugin URI:  https://gathergrove.io/docs/booking
    55 * Description: Class scheduling and booking for studios, wellness centers, and community programs.
    6  * Version:     1.246.1
     6 * Version:     1.247.0
    77 * Author:      Rob Hewitt / Gather Grove
    88 * Author URI:  https://gathergrove.io
    … …  
    2121defined( 'ABSPATH' ) || exit;
    2222
    23 define( 'GATHER_GROVE_VERSION',          '1.246.1' );
     23define( 'GATHER_GROVE_VERSION',          '1.247.0' );
    2424// Bump this whenever any CPT/taxonomy/rewrite registration changes — every
    2525// install will flush its rule cache on next admin page load. Existing studios
    … …  
    5454// version it syncs, and CI version-coherence guards the bump.
    5555GG_Core_Loader::offer(
    56         '0.78.0',
     56        '0.79.0',
    5757        GATHER_GROVE_PLUGIN_DIR . 'vendor/gather-grove-core/bootstrap.php'
    5858);
  • gather-grove-booking/trunk/languages/gather-grove-booking.pot

    r3752518 r3752549  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Gather Grove Booking 1.246.1\n"
     5"Project-Id-Version: Gather Grove Booking 1.247.0\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/gather-grove-booking\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    … …  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-10-18T03:55:07+00:00\n"
     12"POT-Creation-Date: 2026-10-18T04:52:34+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
    … …  
    2647226472msgstr ""
    2647326473
     26474#: src/Services/MemberEmailBridge.php:74
     26475msgid "Another client already uses that email address."
     26476msgstr ""
     26477
    2647426478#. translators: %s: what the account holds, e.g. "3 bookings and a membership".
    2647526479#: src/Services/MemberMergeFootprint.php:109
  • gather-grove-booking/trunk/readme.txt

    r3752518 r3752549  
    55Tested up to: 7.1
    66Requires PHP: 8.2
    7 Stable tag: 1.246.1
     7Stable tag: 1.247.0
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    147147== Changelog ==
    148148
     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
    149155= 1.246.1 =
    150156
  • gather-grove-booking/trunk/src/Plugin.php

    r3749190 r3752549  
    431431                $this->get( LoginUrlFilters::class )->register_hooks();
    432432                $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();
    433436                // Rule 197 — answers the suite's member-merge footprint contract.
    434437                $this->get( \GatherGrove\Booking\Services\MemberMergeFootprint::class )->register_hooks();
  • gather-grove-booking/trunk/vendor/composer/autoload_classmap.php

    r3752505 r3752549  
    450450    'GatherGrove\\Booking\\Services\\ManageLink' => $baseDir . '/src/Services/ManageLink.php',
    451451    'GatherGrove\\Booking\\Services\\MarketingConsent' => $baseDir . '/src/Services/MarketingConsent.php',
     452    'GatherGrove\\Booking\\Services\\MemberEmailBridge' => $baseDir . '/src/Services/MemberEmailBridge.php',
    452453    'GatherGrove\\Booking\\Services\\MemberMergeFootprint' => $baseDir . '/src/Services/MemberMergeFootprint.php',
    453454    'GatherGrove\\Booking\\Services\\MemberValue' => $baseDir . '/src/Services/MemberValue.php',
  • gather-grove-booking/trunk/vendor/composer/autoload_static.php

    r3752505 r3752549  
    477477        'GatherGrove\\Booking\\Services\\ManageLink' => __DIR__ . '/../..' . '/src/Services/ManageLink.php',
    478478        'GatherGrove\\Booking\\Services\\MarketingConsent' => __DIR__ . '/../..' . '/src/Services/MarketingConsent.php',
     479        'GatherGrove\\Booking\\Services\\MemberEmailBridge' => __DIR__ . '/../..' . '/src/Services/MemberEmailBridge.php',
    479480        'GatherGrove\\Booking\\Services\\MemberMergeFootprint' => __DIR__ . '/../..' . '/src/Services/MemberMergeFootprint.php',
    480481        'GatherGrove\\Booking\\Services\\MemberValue' => __DIR__ . '/../..' . '/src/Services/MemberValue.php',
  • gather-grove-booking/trunk/vendor/composer/installed.php

    r3752518 r3752549  
    55    'pretty_version' => 'dev-main',
    66    'version' => 'dev-main',
    7     'reference' => '63e321d92e61a1e143a613507d3fde3d97c0775b',
     7    'reference' => 'fed78cc156dc94ab4eccdda05b156a0f5302a62e',
    88    '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/../../',
    1010    'aliases' =>
    1111    array (
    … …  
    1919      'pretty_version' => 'dev-main',
    2020      'version' => 'dev-main',
    21       'reference' => '63e321d92e61a1e143a613507d3fde3d97c0775b',
     21      'reference' => 'fed78cc156dc94ab4eccdda05b156a0f5302a62e',
    2222      '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/../../',
    2424      'aliases' =>
    2525      array (
    … …  
    3333      'reference' => 'fe99159b9ee0a74be3c12c0305e5338e0b9905c3',
    3434      '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',
    3636      'aliases' =>
    3737      array (
  • gather-grove-booking/trunk/vendor/gather-grove-core/bootstrap.php

    r3749190 r3752549  
    285285
    286286        /*
     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        /*
    287296         * Interactive widgets (0.72.0, courses-interactive spec Part 1): the
    288297         * registry plugins fill on `gather_grove/interactive/register`, the
  • gather-grove-booking/trunk/vendor/gather-grove-core/src/Core.php

    r3752505 r3752549  
    11191119         *         every valid role, so "Front Desk" can be placed in a menu.
    11201120         *         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.
    11211139         */
    1122         public const VERSION = '0.78.0';
     1140        public const VERSION = '0.79.0';
    11231141
    11241142        /**
  • gather-grove-booking/trunk/vendor/gather-grove-core/src/Messages/WordPressMail.php

    r3722069 r3752549  
    102102                        self::PREFIX . 'password_changed'          => __( 'Password changed', 'gather-grove-core' ),
    103103                        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' ),
    104106                        self::PREFIX . 'new_user_admin'            => __( 'New user registered (to staff)', 'gather-grove-core' ),
    105107                        self::PREFIX . 'password_changed_admin'    => __( 'Password changed (to staff)', 'gather-grove-core' ),
Note: See TracChangeset for help on using the changeset viewer.