[버그] 코스모스팜 회원관리 5.0 - PHP 8.x에서 주문 취소 시 TypeError 발생

1. 정확한 제품 또는 플러그인 이름

코스모스팜 회원관리 v5.0

 

2. 상세 내용

PHP 8.2 환경에서 주문 취소(order_cancel) 실행 시 아래 에러가 발생합니다.

 

Uncaught TypeError: Unsupported operand types: string * int in Cosmosfarm_Members_Controller.class.php:1729

 

원인: Cosmosfarm_Members_Subscription_Order 클래스의 earn_points() 메서드가 get_post_meta()를 통해 문자열(string)을 반환하는데, order_cancel() 메서드의 1729번 줄에서 단항 마이너스 연산자(-$product->earn_points())를 적용하면서 TypeError가 발생합니다.

 

PHP 7.x에서는 문자열이 암시적으로 숫자로 변환되어 문제가 없었지만, PHP 8.0 이상에서는 엄격한 타입 검사로 인해 에러가 발생합니다.

 

해당 코드 위치:

- Cosmosfarm_Members_Controller.class.php 1729번 줄, 1754번 줄

- -$product->earn_points() 부분

 

수정 제안:

-$product->earn_points()-intval($product->earn_points()) 로 변경하면 해결됩니다.

 

3. 환경 정보

- 워드프레스 6.9.4

- PHP 8.2.30

- 코스모스팜 회원관리 v5.0

 

4. 수정한 코드 내역

임시로 직접 수정하여 사용 중이나, 플러그인 업데이트 시 초기화되므로 공식 패치를 요청드립니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요