본문으로 건너뛰기

14세 이상 연령 동의 항목 추가

PHP 8 · GODO25
변경 파일 수: 6개
변경 파일 목록
총 6개
변경 파일 코드
추가삭제
Admin/member/_member_view.php+4
변경 전_member_view.php
</td>
</tr>
<?php endif; ?>
 
 
 
 
<tr>
<th>이메일</th>
<td>
 
변경 후_member_view.php
</td>
</tr>
<?php endif; ?>
<tr>
<th>만 14세 이상 가입동의</th>
<td colspan="3"><?= $data['under14ConsentText'] ?? '-' ?></td>
</tr>
<tr>
<th>이메일</th>
<td>
 
Component/Member/Util/MemberUtil.php+21
변경 전MemberUtil.php
return $items;
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/**
* 회원 약관 동의 표시용 행 데이터 생성. 약관 행 설정 배열을 받아 뷰에서 그대로 출력할 표시용 배열을 반환한다 (HTML 미생성 — 마크업은 뷰가 담당).
* 약관이 늘어도 호출부에서 배열 항목만 추가하면 되고 메서드 시그니처는 불변.
 
변경 후MemberUtil.php
return $items;
}
 
/**
* 회원정보 '만 14세 이상 가입동의' 표시값. 현재 가입연령제한·동의항목 사용 설정과 무관하게 회원 동의값으로 노출하고, 승인제 상점은 승인일·비승인제는 가입일을 동의일로 본다.
*
* @param array $memberData 회원 데이터 (under14ConsentFl 'y'/'n', approvalDt 가입승인일, entryDt 가입일)
* @param array $joinPolicy 회원가입 정책 (appUseFl 가입승인 'y'/'n'/'company')
* @return string '동의 {일시}' / '동의'(일시 없음) / '-'(미노출)
*/
public static function buildUnder14ConsentText(array $memberData, array $joinPolicy): string
{
if (($memberData['under14ConsentFl'] ?? 'n') !== 'y') {
return '-';
}
$useApprovalDt = in_array($joinPolicy['appUseFl'] ?? 'n', ['y', 'company'], true);
$consentDt = $useApprovalDt ? ($memberData['approvalDt'] ?? '') : ($memberData['entryDt'] ?? '');
if (empty($consentDt) || $consentDt === '0000-00-00 00:00:00') {
return '동의';
}
 
return '동의 ' . $consentDt;
}
 
/**
* 회원 약관 동의 표시용 행 데이터 생성. 약관 행 설정 배열을 받아 뷰에서 그대로 출력할 표시용 배열을 반환한다 (HTML 미생성 — 마크업은 뷰가 담당).
* 약관이 늘어도 호출부에서 배열 항목만 추가하면 되고 메서드 시그니처는 불변.
 
Controller/Admin/Member/MemberModifyController.php+1
변경 전MemberModifyController.php
$memberData = gd_array_merge($memberData, $historyService->getLastReceiveAgreementByMember($memNo));
// 마케팅 목적 개인정보 수집 및 이용 동의/거부일 (없으면 '-')
$memberData['privateMktAgreementDt'] = $memberData['lastReceiveAgreementDt']['privateMkt'] ?? '-';
 
$memberHistory = $historyService->getMemberHistory($memNo, $request->get()->get('page', 1), $request->get()->get('pageNum', 10));
$memberData['recommendCnt'] = $memberService->getRecommendCount($memberData['memId']);
if ($memberData['rncheck'] == 'realname') {
 
변경 후MemberModifyController.php
$memberData = gd_array_merge($memberData, $historyService->getLastReceiveAgreementByMember($memNo));
// 마케팅 목적 개인정보 수집 및 이용 동의/거부일 (없으면 '-')
$memberData['privateMktAgreementDt'] = $memberData['lastReceiveAgreementDt']['privateMkt'] ?? '-';
$memberData['under14ConsentText'] = \Component\Member\Util\MemberUtil::buildUnder14ConsentText($memberData, gd_policy('member.join'));
$memberHistory = $historyService->getMemberHistory($memNo, $request->get()->get('page', 1), $request->get()->get('pageNum', 10));
$memberData['recommendCnt'] = $memberService->getRecommendCount($memberData['memId']);
if ($memberData['rncheck'] == 'realname') {
 
Controller/Admin/Member/MemberPsController.php+13-12
변경 전MemberPsController.php
throw new LayerException(__('재가입 불가 기간은 1~365일 사이에서 설정해야 합니다.'));
}
 
if ($policy->saveMemberJoin($request->post()->all())) {
if ($joinPolicyService->isRejoinEnabled($requestAllParams['rejoinFl']) === false) {
$this->json([
'messages' => [
__('탈퇴/재가입 설정 사용안함 시 탈퇴회원의 재가입이 허용됩니다.'),
__('저장이 완료되었습니다.')
]
]);
} else {
$this->json(__('저장이 완료되었습니다.'));
}
} else {
throw new Exception(__('처리중에 오류가 발생하여 실패되었습니다.'));
}
 
 
 
 
 
 
 
 
 
 
 
 
} catch (Exception $e) {
if ($request->isAjax()) {
throw $e;
 
변경 후MemberPsController.php
throw new LayerException(__('재가입 불가 기간은 1~365일 사이에서 설정해야 합니다.'));
}
 
if (!$policy->saveMemberJoin($request->post()->all())) {
 
 
 
 
 
 
 
 
 
 
 
throw new Exception(__('처리중에 오류가 발생하여 실패되었습니다.'));
}
$kakaoSyncSettingService = \App::getInstance(KakaoSyncSettingService::class);
$kakaoSyncSettingService->syncSettingWhenSaveMemberJoinPolicy();
if (!$joinPolicyService->isRejoinEnabled($requestAllParams['rejoinFl'])) {
$this->json([
'messages' => [
__('탈퇴/재가입 설정 사용안함 시 탈퇴회원의 재가입이 허용됩니다.'),
__('저장이 완료되었습니다.')
]
]);
} else {
$this->json(__('저장이 완료되었습니다.'));
}
} catch (Exception $e) {
if ($request->isAjax()) {
throw $e;
 
Controller/Admin/Member/MemberRegisterController.php+1
변경 전MemberRegisterController.php
$member = $vo->toArray();
$member['cellPhoneCountryCode'] = 'kr';
$member['phoneCountryCode'] = 'kr';
 
 
// 사업자 등록증 조회
$companyCertification = \App::getInstance(\Component\Member\Company\CompanyCertification::class);
 
변경 후MemberRegisterController.php
$member = $vo->toArray();
$member['cellPhoneCountryCode'] = 'kr';
$member['phoneCountryCode'] = 'kr';
$member['under14ConsentText'] = MemberUtil::buildUnder14ConsentText($member, gd_policy('member.join'));
 
// 사업자 등록증 조회
$companyCertification = \App::getInstance(\Component\Member\Company\CompanyCertification::class);
 
Controller/Admin/Share/MemberCrmDetailController.php+1
변경 전MemberCrmDetailController.php
];
// 마케팅 목적 개인정보 수집 및 이용 동의/거부일 (없으면 '-')
$memberData['privateMktAgreementDt'] = $memberData['lastReceiveAgreementDt']['privateMkt'] ?? '-';
 
 
// 하이픈 제거
$memberData['fax'] = str_replace("-", "", $memberData['fax']);
 
변경 후MemberCrmDetailController.php
];
// 마케팅 목적 개인정보 수집 및 이용 동의/거부일 (없으면 '-')
$memberData['privateMktAgreementDt'] = $memberData['lastReceiveAgreementDt']['privateMkt'] ?? '-';
$memberData['under14ConsentText'] = MemberUtil::buildUnder14ConsentText($memberData, gd_policy('member.join'));
 
// 하이픈 제거
$memberData['fax'] = str_replace("-", "", $memberData['fax']);