WooCommerce 3+에서 디버그하는 방법
저는 이 튜토리얼 https://docs.woocommerce.com/document/shipping-method-api/ 을 사용하여 Woocommerce의 커스텀 배송 방법을 만들고 있지만 디버깅에 문제가 있습니다.배송 방법이 사용자에 의해 업데이트 될 때마다 우커머스 콜은 배송을 계산합니다.저는 다음과 같이 이 기능을 무시했습니다.
public function calculate_shipping( $package ) {
// This is where you'll add your rates
$rate = array(
'idea' => $this->id,
'label' => $this->title,
'cost' => '90.00',
'calc_tax' => 'per_item'
);
echo "<script>console.log('Calculating shipping');</script>";
$this->add_rate($rate);
}
결국 저는 "비용"을 계산하는 상당히 복잡한 방법을 가지고 있지만, 그 에코 라인이 크롬 콘솔에서 출력을 내지 않기 때문에 디버깅할 방법이 없습니다.무슨 일인지 아시겠어요?
어떤 도움이라도 주시면 감사하겠습니다.감사해요.
서버 쪽의 백그라운드 프로세스이므로 자바스크립트를 사용하지 마십시오.
1). WC 로그 및 WoCommerce의 클래스를 통해 디버깅 개선
로그 결과를 대시보드에서 쉽게 액세스하려면 오류 로그가 아닌 WC 로거에 기록할 수 있습니다.
WooCommerce > System Status > Logs로 이동하여 오류 로그에 접근할 수 있습니다.
그러면 필요한 디버깅 정보를 제공하는 오류 로그 파일을 선택하고 "보기"할 수 있습니다.오류 로그는 사이트 설치 내의 /wc-logs 폴더에도 있습니다.
탐지된 예외에 대해 스택 추적 실행(예):
// Log any exceptions to a WC logger
$log = new WC_Logger();
$log_entry = print_r( $e, true );
$log_entry .= 'Exception Trace: ' . print_r( $e->getTraceAsString(), true );
$log->log( 'new-woocommerce-log-name', $log_entry );
주의:
예를 들어,
$logger = wc_get_logger();
$logger->debug( 'debug message', array( 'source' => 'my-extension' ) );
관련:
- WooCommerce 블로그 개발 (2017년 1월):WooCommerce 3의 향상된 로깅
- 사용 가능한 방법에 대한 설명서
2). WordPress Log를 통한 디버깅 (대안으로)
a) 먼저 편집합니다.wp-config.php
파일에 디버그를 활성화하기 위해 다음 행을 추가합니다(이미 정의된 경우 값을 편집하십시오).
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
오류가 기록되면 다음에 표시됩니다.wp-content/debug.log
. 텍스트 편집기에서 이 파일을 열 수 있습니다.
b) 코드:다음을 사용합니다(여기서).$variable
는 에러 로그에 표시될 변수입니다.
error_log( print_r( $variable, true ) );
이제 디버깅을 위한 데이터를 받으실 수 있습니다.
첫번째 Create PHP 도우미 기능
function console_output($data) {
$output = $data;
if (is_array($output))
$output = implode(',', $output);
echo "<script>console.log('Debug Objects: " . $output . "' );</script>";
}
그러면 다음과 같이 사용할 수 있습니다.
public function calculate_shipping( $package ) {
// This is where you'll add your rates
$rate = array(
'idea' => $this->id,
'label' => $this->title,
'cost' => '90.00',
'calc_tax' => 'per_item'
);
console_output("Calculating shipping");
$this->add_rate($rate);
}
이렇게 하면 다음과 같은 출력이 생성됩니다.
Debug Objects: Calculating shipping
언급URL : https://stackoverflow.com/questions/61740111/how-to-debug-in-woocommerce-3
'source' 카테고리의 다른 글
우커머스 체크아웃 페이지에서 결제수단 이동 (0) | 2023.10.22 |
---|---|
열거(typedef enum)의 중요도 (0) | 2023.10.22 |
Object.create(null)로 JS 개체를 생성하는 것이 {}과(와) 같습니까? (0) | 2023.10.22 |
ajax 요청에 crf 토큰을 추가하는 방법 (0) | 2023.10.22 |
Jquery each - 루프를 중지하고 개체를 반환합니다. (0) | 2023.10.22 |