1. 정확한 제품 또는 플러그인 이름
코스모프팜 회원관리 v3.8
2. 상세 내용
알림톡을 발송하는 함수를 아래와같이 만들었습니다.
function client_vertify_alimtalk_send($user_id){
$use_alimtalk = get_user_meta($user_id, 'member_type', true);
$phone_number = get_user_meta($user_id, 'billing_phone', true);
$template = 'mytemplateid';
if($use_alimtalk === 'client_member'){
cosmosfarm_members_alimtalk_send($phone_number, $template);
}
}
그리고, 타사의 플러그인을 활용해 특정조건(예: 역할이 변경될때)이 충족될때, 이 함수를 호출하여 실행되도록 설정했습니다.
그런데, 함수가 실행되는 시간이 9시간 이후로 표시되는 log를 확인했습니다. (참고로, 이 9시간은 UTC와 대한민국의 시간차이와 일치합니다.)
나는 이 문제를 타사플러그인 담당 개발자에게 문의를 하였습니다. 그리고, 아래와 같은 답변을 받았습니다.
Please, check if your custom code is using any AutomatorWP function and modifying the internal hour.
The most common cause of this problem is that you have a custom code that is changing the internal hour that AutomatorWP is using.
I recommend to check your custom code with a developer to ensure you do not have any custom code that is affecting the correct behaviour of AutomatorWP.
즉, 내가 생성한 함수가 실행될때, 알림톡을 발송하는 함수(cosmosfarm_members_alimtalk_send)가 실행되는 시간이, 회원관리 플러그인에서 제공하는 알림톡발송함수의 실행으로 인해 미래의 날짜(9시간 후)로 표시된다는 얘기로 보였고, 그것을 해결하면 되는것으로 보입니다.
그리고, 해당 함수의 실행을 알고 있는 개발자(=회원관리 플러그인 개발자)에게 문의하면 알것이라고 얘기합니다.
내가 추측컨데, 회원관리 플러그인에서, 알림톡을 발송하는 함수(cosmosfarm_members_alimtalk_send)가 실행될때의 기록시간이 date_default_timezone_set의 설정등으로인해, UTC와 현재시간(UTC+9시간)과의 뭔가로 인한것으로 추측됩니다.
결국, 호출된 함수의 실행기록이 9시간 미래의 시간으로 기록되는 것으로 보아, UTC시간과 워드프레스의 설정시간과의 차이만큼 발생하는 것으로 보이는데, 내가 작성한 함수를 호출하여, 알림톡을 발송할려고 할때, 현재의 날짜가 아니라, 왜 미래의 날짜(9시간 후)가 기록되는 것인지 알고 싶습니다.
그리고, 현재의 시간으로 표시되게 할려면 내가 무엇을 해야 하나요? 혹, 함수에 뭔가를 추가해야할 필요성이 있습니까? 있다면, 알려주시면 감사하겠습니다.
또는 만약, 이것이 버그와 관련된 것이라면, 그 부분을 확인해 줄수 있을까요?
감사합니다.
3. 확인 가능한 상세 페이지 주소
4. 수정한 코드 내역 (있다면)
안녕하세요~^^
문의주신 알림톡 발송 시 시간이 9시간 늦게 기록되는 현상은 PHP 기본 시간대가 UTC로 설정되어 있기 때문에
발생한 것으로 보여집니다.
워드프레스는 화면 표시에만 한국시간(KST)을 적용하고, 실제 PHP 실행은 UTC 기준으로 처리되기 때문에 시간 차이가 생깁니다.
이 문제는 코드 오류가 아닌 시스템 시간대 차이로 발생하는 현상이며 아래 처럼 함술르 수정해보시겠어요?
function client_vertify_alimtalk_send($user_id){
date_default_timezone_set('Asia/Seoul'); // 추가
$use_alimtalk = get_user_meta($user_id, 'member_type', true);
$phone_number = get_user_meta($user_id, 'billing_phone', true);
$template = 'mytemplateid';
if($use_alimtalk === 'client_member'){
cosmosfarm_members_alimtalk_send($phone_number, $template);
}
}
고맙습니다.
답변감사합니다.
회신주신, date_default_timezone_set('Asia/Seoul'); 추가를 하여 테스트를 하였지만, 결과는 동일하였습니다. 9시간후로 표시됩니다.
참고로, 언급하신 date_default_timezone_set('Asia/Seoul')추가는 구글링을 통해 문의전에 시도해보았습니다. 하지만, 변화가 없었습니다.
회신하신 내용에 혹시나하여, 다시 진행해보았지만, 역시, 동일한 문제가 발생합니다. (이미지참고)
안녕하세요~^^
댓글에 남겨주신 이미지 화면은 어떤 화면일까요?
AutomatorWP 플러그인 log 화면일까요?
다시 저희쪽 회원관리 플러그인을 확인해봤는데
cosmosfarm_members_alimtalk_send 함수에 따로 시간관련 설정이나 코드는 없습니다.
따로 AutomatorWP 로그에 기록되는 순간에 에러로그를 활용해서 시간이 어떤 형식인지 확인을 해봐야 할 것 같습니다.
만드신 함수가 실행될 때 시간이 어떻게 기록되는지 확인해 보시겠어요?
고맙습니다.
문제의 파일을 찾았습니다.
나는 당신의 얘기에서 힌트를 얻었습니다.
워드프레스는 화면 표시에만 한국시간(KST)을 적용하고, 실제 PHP 실행은 UTC 기준으로 처리되기 때문에 시간 차이가 생깁니다.
php의 실행은 기본적으로 UTC를 기준으로 처리된다는 얘기에, 나의 문제의 상황과 매칭을 시켜보았습니다.
결국, 타사의 플러그인은 UTC를 기준으로 처리하되, 나의 워드프레스 설정에 대한민국으로 설정한 데이트를 참고하여, 기록시간을 +9시간으로 표시한다는 것입니다.
이것은 내가 첨부한 시간이 대한민국 시간으로 표시되는 것이 증명합니다.
그렇다면, 문제의 시간인 추가로 늘어난 +9시간은 무엇일까? 난 고민끝에, 알림톡을 발송하는 함수관련한 파일의 어딘가에 'date_default_timezone_set'을 UTC가 아닌 'Asia/Seoul'로 설정을 한것이 있다면, 자연스럽게 +9시간의 시간기록이 나왔을수도 있다는 추측을 하였습니다.
그래서, 회원관리 플러그인에서, 'date_default_timezone_set'이 'Asia/Seoul'로 되어있는 파일을 검색하였고, 해당파일을 찾았습니다.
그리고, 'date_default_timezone_set'을 'UTC'로 변경하였습니다.
난, 바로 테스트를 진행하였고, 테스트결과 로그의 기록이 정상적으로 표시되는 것을 확인하였습니다. (이미지 참고 https://imgur.com/a/tGjBGfx)
문제의 파일은 솔라피였습니다. 나는 알림톡 발송을 솔라피로 선택했는데, 그것이 관련이 있었습니다. 여기 파일의 경로입니다.
/www/wp-content/plugins/cosmosfarm-members/class/api/solapi/vendor/solapi/sdk/src/Libraries/Authenticator.php
나는 이 파일의 14줄에 있는 date_default_timezone_set("Asia/Seoul"); 을 date_default_timezone_set("UTC"); 로 변경했습니다.
이제, 나의 질문입니다.
나의 문제를 해결하기 위해 위 파일내용중 일부를 UTC로 변경을 하였지만, 이것이 어떤 영향을 미치는지 알수가 없습니다.
즉, 이 파일의 기능이 무엇인지 모르기에, 내용을 바꾸었을때 어떤 문제가 발생할 수 있는지를 예측할 수가 없습니다.
Authenticator의 단어에서 주는 느낌은 뭔가에 대한 인증으로 보이는데....
내가 이 파일의 내용을 임의로 UTC로 변경해도 괜찮은 것입니까?
아니라면, 이 내용을 참고하여 업데이트버젼을 제공해 줄 수 있습니까?
만약, 새로운 버젼이 계획될 수 있다면, 업데이트 되기전까지 내가 임의로 변경한 내용을 계속 유지해도 괜찮은 것입니까?
도움 주셔서 감사드립니다.
감사합니다.
코스모스팜 회원관리 플러그인에서 date_default_timezone_set 값을 바꿔도 안 되는 것이라면 플러그인에서는 해결이 안 될 수 있겠습니다.
코스모스팜 회원관리에서는 임의로 시간대를 강제하지 않고 있습니다.
워드프레스 설정에서 시간대 설정을 확인해보시고 (변경도 해보세요) 서버의 설정도 관련 있는지 체크해보시는 게 좋겠습니다.
AutomatorWP 플러그인에도 도움을 요청해 보시는 게 좋겠습니다.
감사합니다.
참고로 solapi 코드는 저희가 만든 게 아니고 solapi에서 직접 만든 코드입니다.
이점 참고 부탁드립니다.
감사합니다.
이 파일의 경로는 코스모스팜 회원관리 플러그인의 파일인데....그래서, 이해가 잘안되는데요,
그러면, 이 파일과 관련된 문의는 솔라피에 해야하는 것으로 이해하면되나요?
/www/wp-content/plugins/cosmosfarm-members/class/api/solapi/vendor/solapi/sdk/src/Libraries/Authenticator.php
그렇다면, 솔라피에게 이 파일관련 문의를 어떻게 할 수 있는지 알고 싶습니다.
메일이나, 사이트등 제가 솔라피에 이 파일과 관련하여 연락할 수 있는 방법은 어떻게 되나요?
알고 계시다면, 알려주시면 감사하겠습니다.
감사합니다.
솔라피지원팀과 연락할 수 있는 방법을 찾아서 문의중입니다.
도움주셔서 감사드립니다.
AI 상담