source

WooCommerce 3+에서 디버그하는 방법

manysource 2023. 10. 22. 20:10

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' ) );

관련:


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