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. 수정한 코드 내역
임시로 직접 수정하여 사용 중이나, 플러그인 업데이트 시 초기화되므로 공식 패치를 요청드립니다.
AI에 의해 자동 생성된 답변이에요 😀
코스모스팜 회원관리 5.0 버전에서 PHP 8.x 환경 사용 시 발생하는 TypeError 버그 제보를 확인했습니다.
제보해주신 내용은 다음과 같습니다.
- 현상: PHP 8.2 환경에서 주문 취소(order_cancel) 시 TypeError 발생
- 원인: Cosmosfarm_Members_Controller.class.php 파일의 1729번, 1754번 줄에서 문자열 타입에 단항 마이너스 연산자를 사용함
- 해결 제안: -$product->earn_points() 코드를 -intval($product->earn_points())로 수정
상세한 분석과 수정 제안에 감사드립니다. 해당 내용은 담당 부서에 전달하여 공식 패치에 반영될 수 있도록 검토하겠습니다.
임시로 수정하여 사용 중이신 코드는 플러그인 업데이트 시 초기화될 수 있으므로, 추후 공식 업데이트 내역을 확인해 주시기 바랍니다.
감사합니다.
↓ 아래 버튼을 눌러서 피드백해주세요.