From b1eee629a24d1e827214a61ef52517f3a05c4b13 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 12 Oct 2022 23:56:32 +0900 Subject: [PATCH] Fix unnecessary phone number verification when phone number is optional and user leaves it blank --- modules/member/member.controller.php | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 5f87d7b98..bd1eeca23 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -3742,9 +3742,20 @@ class memberController extends member * @param object $original * @return object */ - protected function _checkPhoneNumber($config, $args, $mode = 'insert', $original = null) + protected function _checkPhoneNumber($config, &$args, $mode = 'insert', $original = null) { - if ($config->phone_number_verify_by_sms === 'Y') + $required = false; + $verify = $config->phone_number_verify_by_sms === 'Y'; + foreach ($config->signupForm as $formInfo) + { + if ($formInfo->name === 'phone_number' && $formInfo->isUse && $formInfo->required) + { + $required = true; + break; + } + } + + if ($verify) { // Attempt to fill in the country code. if ($config->phone_number_default_country && (!$args->phone_country || $config->phone_number_hide_country === 'Y')) @@ -3757,7 +3768,15 @@ class memberController extends member } if ($args->phone_country === 'KOR' && !Rhymix\Framework\Korea::isValidPhoneNumber($args->phone_number)) { - return new BaseObject(-1, 'msg_invalid_phone_number'); + if ($required) + { + return new BaseObject(-1, 'msg_invalid_phone_number'); + } + else + { + $args->phone_number = ''; + return new BaseObject; + } } // If updating, check if the new info is the same as the old info.