From 6c6831f6963cf2be3e90e6fb11578e50d1a5d362 Mon Sep 17 00:00:00 2001 From: Angela Blake <35241639+angelablake@users.noreply.github.com> Date: Mon, 27 Nov 2023 14:41:12 -0600 Subject: [PATCH] chore: prepare for 3.1.2 release --- .../js/frontend/paypal-commerce/AdvancedCardFields.js | 4 ++-- give.php | 4 ++-- readme.txt | 6 +++++- src/DonationForms/Actions/GetOrCreateDonor.php | 4 ++-- .../Controllers/BlockRenderController.php | 2 +- .../resources/app/Components/ModalForm.tsx | 2 +- .../Blocks/DonationFormBlock/resources/app/index.tsx | 2 +- .../Blocks/DonationFormBlock/resources/editor/Edit.tsx | 2 +- .../editor/components/DonationFormBlockControls.tsx | 2 +- .../editor/components/DonationFormBlockPreview.tsx | 2 +- .../editor/components/DonationFormSelector.tsx | 2 +- .../resources/editor/components/ModalPreview.tsx | 2 +- src/DonationForms/Controllers/DonateController.php | 6 +++--- .../Migrations/CleanMultipleSlashesOnDB.php | 6 +++--- src/DonationForms/Properties/FormSettings.php | 8 ++++---- src/DonationForms/Shortcodes/GiveFormShortcode.php | 2 +- src/Donors/Actions/CreateUserFromDonor.php | 2 +- .../Actions/SendDonorUserRegistrationNotification.php | 2 +- .../Exceptions/FailedDonorUserCreationException.php | 2 +- src/Donors/ServiceProvider.php | 2 +- .../form-builder/src/components/ClassicEditor/index.js | 2 +- .../Adapters/LegacyPaymentGatewayAdapter.php | 4 ++-- .../Actions/RegisterPaymentGateways.php | 2 +- .../Gateways/PayPalCommerce/payPalCommerceGateway.tsx | 2 +- .../PayPalCommerce/AjaxRequestHandler.php | 4 ++-- .../PayPalCheckoutSdk/ProcessorResponseError.php | 10 +++++----- src/PaymentGateways/PayPalCommerce/ScriptLoader.php | 2 +- .../DonationForms/Actions/TestGetOrCreateDonor.php | 10 +++++----- 28 files changed, 52 insertions(+), 48 deletions(-) diff --git a/assets/src/js/frontend/paypal-commerce/AdvancedCardFields.js b/assets/src/js/frontend/paypal-commerce/AdvancedCardFields.js index 6b4c1d31cd..e318233fd6 100644 --- a/assets/src/js/frontend/paypal-commerce/AdvancedCardFields.js +++ b/assets/src/js/frontend/paypal-commerce/AdvancedCardFields.js @@ -243,7 +243,7 @@ class AdvancedCardFields extends PaymentMethod { /** * Handle PayPal payment on approve event. * - * @unreleased Hide processing state upon error. + * @since 3.1.2 Hide processing state upon error. * @since 2.9.0 * * @param {object} payload PayPal response object after payment completion. @@ -413,7 +413,7 @@ class AdvancedCardFields extends PaymentMethod { /** * Handle hosted fields on submit errors. * - * @unreleased Handle custom error. + * @since 3.1.2 Handle custom error. * @since 2.9.0 * * @param {object} error Collection of hosted field on submit error diff --git a/give.php b/give.php index 8ea076fbab..4f3773a4d0 100644 --- a/give.php +++ b/give.php @@ -6,7 +6,7 @@ * Description: The most robust, flexible, and intuitive way to accept donations on WordPress. * Author: GiveWP * Author URI: https://givewp.com/ - * Version: 3.1.1 + * Version: 3.1.2 * Requires at least: 6.0 * Requires PHP: 7.2 * Text Domain: give @@ -391,7 +391,7 @@ private function setup_constants() { // Plugin version. if (!defined('GIVE_VERSION')) { - define('GIVE_VERSION', '3.1.1'); + define('GIVE_VERSION', '3.1.2'); } // Plugin Root File. diff --git a/readme.txt b/readme.txt index 14b18f46ab..82991b5b12 100644 --- a/readme.txt +++ b/readme.txt @@ -5,7 +5,7 @@ Tags: donation, donate, recurring donations, fundraising, crowdfunding Requires at least: 6.0 Tested up to: 6.4 Requires PHP: 7.2 -Stable tag: 3.1.1 +Stable tag: 3.1.2 License: GPLv3 License URI: http://www.gnu.org/licenses/gpl-3.0.html @@ -262,6 +262,10 @@ The 2% fee on Stripe donations only applies to donations taken via our free Stri 10. Use almost any payment gateway integration with GiveWP through our add-ons or by creating your own add-on. == Changelog == += 3.1.1: November 27th, 2023 = +* Fix: PayPal Donations displays a helpful error message when incorrect credit card information is entered +* Fix: Visual Donation Form Builder loading is improved by preventing the formBuilderSettings meta from becoming too large + = 3.1.1: November 3rd, 2023 = * Fix: Embedded forms created with the Visual Builder now redirect to the confirmation page after a completed donation. * Fix: Donor title prefixes are now formatted as strings (like Mr or Ms) instead of numbers. diff --git a/src/DonationForms/Actions/GetOrCreateDonor.php b/src/DonationForms/Actions/GetOrCreateDonor.php index b2ae0b1bc8..cb775fbcf5 100644 --- a/src/DonationForms/Actions/GetOrCreateDonor.php +++ b/src/DonationForms/Actions/GetOrCreateDonor.php @@ -6,14 +6,14 @@ use Give\Donors\Models\Donor; /** - * @unreleased + * @since 3.1.2 */ class GetOrCreateDonor { public $donorCreated = false; /** - * @unreleased + * @since 3.1.2 * * @throws Exception */ diff --git a/src/DonationForms/Blocks/DonationFormBlock/Controllers/BlockRenderController.php b/src/DonationForms/Blocks/DonationFormBlock/Controllers/BlockRenderController.php index 88533b767d..85b810c9ff 100644 --- a/src/DonationForms/Blocks/DonationFormBlock/Controllers/BlockRenderController.php +++ b/src/DonationForms/Blocks/DonationFormBlock/Controllers/BlockRenderController.php @@ -13,7 +13,7 @@ class BlockRenderController { /** - * @unreleased include form url for new tab format. + * @since 3.1.2 include form url for new tab format. * @since 3.0.0 * * @return string|null diff --git a/src/DonationForms/Blocks/DonationFormBlock/resources/app/Components/ModalForm.tsx b/src/DonationForms/Blocks/DonationFormBlock/resources/app/Components/ModalForm.tsx index 29f6a125ac..7475028a37 100644 --- a/src/DonationForms/Blocks/DonationFormBlock/resources/app/Components/ModalForm.tsx +++ b/src/DonationForms/Blocks/DonationFormBlock/resources/app/Components/ModalForm.tsx @@ -11,7 +11,7 @@ type ModalFormProps = { }; /** - * @unreleased include types. update BEM classnames. + * @since 3.1.2 include types. update BEM classnames. * @since 3.0.0 */ export default function ModalForm({dataSrc, embedId, openFormButton}: ModalFormProps) { diff --git a/src/DonationForms/Blocks/DonationFormBlock/resources/app/index.tsx b/src/DonationForms/Blocks/DonationFormBlock/resources/app/index.tsx index 91d093b2b0..318f78a75a 100644 --- a/src/DonationForms/Blocks/DonationFormBlock/resources/app/index.tsx +++ b/src/DonationForms/Blocks/DonationFormBlock/resources/app/index.tsx @@ -13,7 +13,7 @@ type DonationFormBlockAppProps = { }; /** - * @unreleased replace form format reveal with new tab. + * @since 3.1.2 replace form format reveal with new tab. * @since 3.0.0 */ function DonationFormBlockApp({formFormat, dataSrc, embedId, openFormButton, formUrl}: DonationFormBlockAppProps) { diff --git a/src/DonationForms/Blocks/DonationFormBlock/resources/editor/Edit.tsx b/src/DonationForms/Blocks/DonationFormBlock/resources/editor/Edit.tsx index cbffaec581..6f35b3d711 100644 --- a/src/DonationForms/Blocks/DonationFormBlock/resources/editor/Edit.tsx +++ b/src/DonationForms/Blocks/DonationFormBlock/resources/editor/Edit.tsx @@ -10,7 +10,7 @@ import DonationFormBlockPreview from './components/DonationFormBlockPreview'; import './styles/index.scss'; /** - * @unreleased updated to handle v2 forms. + * @since 3.1.2 updated to handle v2 forms. * @since 3.0.0 */ export default function Edit({attributes, isSelected, setAttributes, className, clientId}: BlockEditProps) { diff --git a/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/DonationFormBlockControls.tsx b/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/DonationFormBlockControls.tsx index 5d8bc05e53..5779a94299 100644 --- a/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/DonationFormBlockControls.tsx +++ b/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/DonationFormBlockControls.tsx @@ -13,7 +13,7 @@ interface DonationFormBlockControls { } /** - * @unreleased + * @since 3.1.2 */ export default function DonationFormBlockControls({ attributes, diff --git a/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/DonationFormBlockPreview.tsx b/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/DonationFormBlockPreview.tsx index 41c501d516..fa621fb5e3 100644 --- a/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/DonationFormBlockPreview.tsx +++ b/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/DonationFormBlockPreview.tsx @@ -13,7 +13,7 @@ interface BlockPreviewProps { } /** - * @unreleased replace reveal for newTab display. + * @since 3.1.2 replace reveal for newTab display. * @since 3.0.0 */ export default function DonationFormBlockPreview({ diff --git a/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/DonationFormSelector.tsx b/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/DonationFormSelector.tsx index f9fd3211d2..912f91e39c 100644 --- a/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/DonationFormSelector.tsx +++ b/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/DonationFormSelector.tsx @@ -12,7 +12,7 @@ import '../styles/index.scss'; const savePost = () => dispatch('core/editor').savePost(); /** - * @unreleased + * @since 3.1.2 */ export default function DonationFormSelector({formOptions, isResolving, handleSelect}) { const [selectedForm, setSelectedForm] = useState(null); diff --git a/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/ModalPreview.tsx b/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/ModalPreview.tsx index 44550085d8..aed6953bfb 100644 --- a/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/ModalPreview.tsx +++ b/src/DonationForms/Blocks/DonationFormBlock/resources/editor/components/ModalPreview.tsx @@ -11,7 +11,7 @@ type ModalPreviewProps = { }; /** - * @unreleased updated BEM classnames and included button component. + * @since 3.1.2 updated BEM classnames and included button component. * @since 3.0.0 */ export default function ModalPreview({enableIframe, formId, openFormButton}: ModalPreviewProps) { diff --git a/src/DonationForms/Controllers/DonateController.php b/src/DonationForms/Controllers/DonateController.php index 48c1044a09..b69166df50 100644 --- a/src/DonationForms/Controllers/DonateController.php +++ b/src/DonationForms/Controllers/DonateController.php @@ -20,7 +20,7 @@ class DonateController /** * First we create a donation and/or subscription, then move on to the gateway processing * - * @unreleased Pass the form ID to match updated signature for getOrCreateDonor(). + * @since 3.1.2 Pass the form ID to match updated signature for getOrCreateDonor(). * @since 3.0.0 * * @return void @@ -79,7 +79,7 @@ public function donate(DonateControllerData $formData, PaymentGateway $gateway) } /** - * @unreleased Added $formId to the signature for passing to do_action hooks. Added honorific and use GetOrCreateDonor action + * @since 3.1.2 Added $formId to the signature for passing to do_action hooks. Added honorific and use GetOrCreateDonor action * @since 3.0.0 * * @throws Exception @@ -104,7 +104,7 @@ private function getOrCreateDonor( if ($getOrCreateDonorAction->donorCreated) { /** - * @unreleased Add a new do_action hook to differentiate when a v3 form creates a new donor. + * @since 3.1.2 Add a new do_action hook to differentiate when a v3 form creates a new donor. * @param Donor $donor * @param int $formId */ diff --git a/src/DonationForms/Migrations/CleanMultipleSlashesOnDB.php b/src/DonationForms/Migrations/CleanMultipleSlashesOnDB.php index 9e017f8f2a..9e6e01404d 100644 --- a/src/DonationForms/Migrations/CleanMultipleSlashesOnDB.php +++ b/src/DonationForms/Migrations/CleanMultipleSlashesOnDB.php @@ -7,12 +7,12 @@ use Give\Framework\Migrations\Contracts\Migration; /** - * @unreleased + * @since 3.1.2 */ class CleanMultipleSlashesOnDB extends Migration { /** - * @unreleased + * @since 3.1.2 */ public function run() { @@ -65,7 +65,7 @@ public static function timestamp() } /** - * @unreleased + * @since 3.1.2 */ public function cleanMultipleSlashes($var) { diff --git a/src/DonationForms/Properties/FormSettings.php b/src/DonationForms/Properties/FormSettings.php index d85720c18e..0a701471bf 100644 --- a/src/DonationForms/Properties/FormSettings.php +++ b/src/DonationForms/Properties/FormSettings.php @@ -8,7 +8,7 @@ use Give\Framework\Support\Contracts\Jsonable; /** - * @unreleased Remove addSlashesRecursive method + * @since 3.1.2 Remove addSlashesRecursive method * @since 3.0.0 */ class FormSettings implements Arrayable, Jsonable @@ -66,7 +66,7 @@ class FormSettings implements Arrayable, Jsonable */ public $goalAmount; /** - * @unreleased Added registrationNotification property. + * @since 3.1.2 Added registrationNotification property. * @var string */ public $registrationNotification; @@ -179,7 +179,7 @@ class FormSettings implements Arrayable, Jsonable public $pdfSettings; /** - * @unreleased Added registrationNotification + * @since 3.1.2 Added registrationNotification * @since 3.0.0 */ public static function fromArray(array $array): self @@ -275,7 +275,7 @@ public function toArray(): array } /** - * @unreleased Remove call to addSlashesRecursive method for emailTemplateOptions in favor of SanitizeDonationFormPreviewRequest class + * @since 3.1.2 Remove call to addSlashesRecursive method for emailTemplateOptions in favor of SanitizeDonationFormPreviewRequest class * @since 3.0.0 */ public function toJson($options = 0): string diff --git a/src/DonationForms/Shortcodes/GiveFormShortcode.php b/src/DonationForms/Shortcodes/GiveFormShortcode.php index e76e54871d..f369952ba1 100644 --- a/src/DonationForms/Shortcodes/GiveFormShortcode.php +++ b/src/DonationForms/Shortcodes/GiveFormShortcode.php @@ -13,7 +13,7 @@ class GiveFormShortcode public static $instance = 0; /** - * @unreleased include v3 block attributes for shortcode. + * @since 3.1.2 include v3 block attributes for shortcode. * @since 3.1.1 use static instance ID to simulate blockId attribute * @since 3.0.0 */ diff --git a/src/Donors/Actions/CreateUserFromDonor.php b/src/Donors/Actions/CreateUserFromDonor.php index 52a198afee..46ffac2cda 100644 --- a/src/Donors/Actions/CreateUserFromDonor.php +++ b/src/Donors/Actions/CreateUserFromDonor.php @@ -6,7 +6,7 @@ use Give\Donors\Models\Donor; /** - * @unreleased + * @since 3.1.2 */ class CreateUserFromDonor { diff --git a/src/Donors/Actions/SendDonorUserRegistrationNotification.php b/src/Donors/Actions/SendDonorUserRegistrationNotification.php index 4ab8ba552e..6eb6e0d8d9 100644 --- a/src/Donors/Actions/SendDonorUserRegistrationNotification.php +++ b/src/Donors/Actions/SendDonorUserRegistrationNotification.php @@ -6,7 +6,7 @@ use Give_Donor_Register_Email; /** - * @unreleased + * @since 3.1.2 */ class SendDonorUserRegistrationNotification { diff --git a/src/Donors/Exceptions/FailedDonorUserCreationException.php b/src/Donors/Exceptions/FailedDonorUserCreationException.php index 3665c64fea..ce4714b908 100644 --- a/src/Donors/Exceptions/FailedDonorUserCreationException.php +++ b/src/Donors/Exceptions/FailedDonorUserCreationException.php @@ -8,7 +8,7 @@ use Give\Framework\Exceptions\Primitives\Exception; /** - * @unreleased + * @since 3.1.2 */ class FailedDonorUserCreationException extends Exception { diff --git a/src/Donors/ServiceProvider.php b/src/Donors/ServiceProvider.php index 6d1ec658ec..d84b4d0894 100644 --- a/src/Donors/ServiceProvider.php +++ b/src/Donors/ServiceProvider.php @@ -72,7 +72,7 @@ private function addCustomFieldsToDonorDetails() /** * Hook into the donor creation process to ensure that donors are also users. - * @unreleased + * @since 3.1.2 */ protected function enforceDonorsAsUsers() { diff --git a/src/FormBuilder/resources/js/form-builder/src/components/ClassicEditor/index.js b/src/FormBuilder/resources/js/form-builder/src/components/ClassicEditor/index.js index 1e8255cbaa..878f2f800d 100644 --- a/src/FormBuilder/resources/js/form-builder/src/components/ClassicEditor/index.js +++ b/src/FormBuilder/resources/js/form-builder/src/components/ClassicEditor/index.js @@ -35,7 +35,7 @@ function isTmceEmpty(editor) { } /** - * @unreleased + * @since 3.1.2 */ export default function ClassicEditor({id, label, content, setContent, rows = 20}) { const didMount = useRef(false); diff --git a/src/LegacyPaymentGateways/Adapters/LegacyPaymentGatewayAdapter.php b/src/LegacyPaymentGateways/Adapters/LegacyPaymentGatewayAdapter.php index e2da040168..7c5f476ca8 100644 --- a/src/LegacyPaymentGateways/Adapters/LegacyPaymentGatewayAdapter.php +++ b/src/LegacyPaymentGateways/Adapters/LegacyPaymentGatewayAdapter.php @@ -49,7 +49,7 @@ public function getLegacyFormFieldMarkup( /** * First we create a payment, then move on to the gateway processing * - * @unreleased Capture exceptions when get gateway data. + * @since 3.1.2 Capture exceptions when get gateway data. * @since 3.0.0 Catch and handle errors from the gateway here * @since 2.30.0 Add success, cancel and failed URLs to gateway data. This will be used in both v2 and v3 forms so gateways can just refer to the gateway data. * @since 2.24.0 add support for payment mode @@ -283,7 +283,7 @@ private function setSession($donationId) } /** - * @unreleased add honorific and use GetOrCreateDonor action + * @since 3.1.2 add honorific and use GetOrCreateDonor action * @since 2.21.0 * * @throws Exception diff --git a/src/PaymentGateways/Actions/RegisterPaymentGateways.php b/src/PaymentGateways/Actions/RegisterPaymentGateways.php index 42843b9c86..9f4dbb2a1d 100644 --- a/src/PaymentGateways/Actions/RegisterPaymentGateways.php +++ b/src/PaymentGateways/Actions/RegisterPaymentGateways.php @@ -132,7 +132,7 @@ function ($gatewayData, Donation $donation) { } /** - * @unreleased Prevent undefined index notice when getting payPalOrderId from gateway data. + * @since 3.1.2 Prevent undefined index notice when getting payPalOrderId from gateway data. * @since 2.26.0 Add support for the updated PayPal Commerce gateway data. * @since 2.21.2 * diff --git a/src/PaymentGateways/Gateways/PayPalCommerce/payPalCommerceGateway.tsx b/src/PaymentGateways/Gateways/PayPalCommerce/payPalCommerceGateway.tsx index bc100fce35..63f7b9cea1 100644 --- a/src/PaymentGateways/Gateways/PayPalCommerce/payPalCommerceGateway.tsx +++ b/src/PaymentGateways/Gateways/PayPalCommerce/payPalCommerceGateway.tsx @@ -427,7 +427,7 @@ import {PayPalSubscriber} from "./types"; }, /** * Before create payment. - * @unreleased Handle error response in approveOrderCallback. + * @since 3.1.2 Handle error response in approveOrderCallback. * @param {Object} values */ beforeCreatePayment: async function (values): Promise { diff --git a/src/PaymentGateways/PayPalCommerce/AjaxRequestHandler.php b/src/PaymentGateways/PayPalCommerce/AjaxRequestHandler.php index 130bf4115d..217d1e83c5 100644 --- a/src/PaymentGateways/PayPalCommerce/AjaxRequestHandler.php +++ b/src/PaymentGateways/PayPalCommerce/AjaxRequestHandler.php @@ -279,7 +279,7 @@ public function createOrder() * * @todo: handle payment capture error on frontend. * - * @unreleased Discover error by checking capture status. + * @since 3.1.2 Discover error by checking capture status. * @since 2.9.0 */ public function approveOrder() @@ -389,7 +389,7 @@ private function getDonorAddressFromPostedDataForPaypalOrder(array $postedData): /** * This function should validate PayPal ApproveOrder response and respond to ajax request on error. * - * @unreleased + * @since 3.1.2 */ private function returnErrorOnFailedApproveOrderResponse(\stdClass $response) { diff --git a/src/PaymentGateways/PayPalCommerce/PayPalCheckoutSdk/ProcessorResponseError.php b/src/PaymentGateways/PayPalCommerce/PayPalCheckoutSdk/ProcessorResponseError.php index 777c09a8f3..9fd9c0cd9b 100644 --- a/src/PaymentGateways/PayPalCommerce/PayPalCheckoutSdk/ProcessorResponseError.php +++ b/src/PaymentGateways/PayPalCommerce/PayPalCheckoutSdk/ProcessorResponseError.php @@ -8,13 +8,13 @@ * Source of errors * - https://developer.paypal.com/docs/api/orders/v2/#definition-processor_response * - * @unreleased + * @since 3.1.2 */ class ProcessorResponseError { /** * This function decode the error code from PayPal. - * @unreleased + * @since 3.1.2 * @param \stdClass $processorResponse */ public static function getError(\stdClass $processorResponse): string @@ -66,7 +66,7 @@ public static function getError(\stdClass $processorResponse): string } /** - * @unreleased + * @since 3.1.2 */ private function avsCode(): array { @@ -193,7 +193,7 @@ private function cvvCode(): array } /** - * @unreleased + * @since 3.1.2 */ private function responseCode(): array { @@ -368,7 +368,7 @@ private function responseCode(): array } /** - * @unreleased + * @since 3.1.2 */ private function paymentAdviceCode(): array { diff --git a/src/PaymentGateways/PayPalCommerce/ScriptLoader.php b/src/PaymentGateways/PayPalCommerce/ScriptLoader.php index 5969e16852..e73f21f869 100644 --- a/src/PaymentGateways/PayPalCommerce/ScriptLoader.php +++ b/src/PaymentGateways/PayPalCommerce/ScriptLoader.php @@ -188,7 +188,7 @@ function givePayPalOnBoardedCallback(mode, authCode, sharedId) { /** * Load public assets. * - * @unreleased Use EnqueueScript to register and enqueue script. + * @since 3.1.2 Use EnqueueScript to register and enqueue script. * @since 2.32.0 Handle exception if client token is not generated. * @since 2.9.0 */ diff --git a/tests/Unit/DonationForms/Actions/TestGetOrCreateDonor.php b/tests/Unit/DonationForms/Actions/TestGetOrCreateDonor.php index 026fbfe945..cf40b24ecc 100644 --- a/tests/Unit/DonationForms/Actions/TestGetOrCreateDonor.php +++ b/tests/Unit/DonationForms/Actions/TestGetOrCreateDonor.php @@ -13,7 +13,7 @@ class TestGetOrCreateDonor extends TestCase use RefreshDatabase; /** - * @unreleased + * @since 3.1.2 * * @throws Exception */ @@ -28,7 +28,7 @@ public function testShouldReturnExistingDonorWithMatchingEmail(): void } /** - * @unreleased + * @since 3.1.2 * * @throws Exception */ @@ -43,7 +43,7 @@ public function testShouldReturnExistingDonorWithMatchingUserId(): void } /** - * @unreleased + * @since 3.1.2 * @throws Exception */ public function testShouldReturnExistingDonorWithUserIdAndUpdateAdditionalEmails(): void @@ -59,7 +59,7 @@ public function testShouldReturnExistingDonorWithUserIdAndUpdateAdditionalEmails } /** - * @unreleased + * @since 3.1.2 * * @throws Exception */ @@ -75,7 +75,7 @@ public function testShouldReturnExistingDonorWithUserIdAndNotUpdateAdditionalEma } /** - * @unreleased + * @since 3.1.2 * * @throws Exception */