찾다

 >  Q&A  >  본문

WooCommerce에서 결제 확인 이메일 및 관리자 주문 페이지에 주문 세부정보 메타데이터를 표시합니다.

우리는 "키트"로 정의되는 다양한 제품을 보유하고 있습니다. 다른 제품들로 구성된 제품 목록입니다. 제품군을 정의하는 데이터는 메타데이터 배열에 저장됩니다. 제품 페이지와 장바구니에 메타데이터를 표시하는 후크를 만들었습니다. "주문 완료 이메일" 및 "주문 페이지 관리"에서 비슷한 작업을 수행해야 하는데 어떻게 해야 할지 모르겠습니다. 이것은 내가 만든 후크입니다. <pre class="brush:php;toolbar:false;">add_filter( 'bis_show_kit_meta', 'bis_show_kit_meta_contents', 10, 3 ); 함수 bis_show_kit_meta_contents($productID) { 글로벌 $wpdb; $postMeta = get_post_meta($productID,'',true); if ((isset($postMeta['bis_kit_id'])) 및 ($postMeta['bis_kit_id'][0] > 1)) { echo '다음 항목이 포함된 키트입니다:<br>'; echo $postMeta['bis_kit_type'][0].'<br>'; foreach($postMeta를 $kititem으로) { foreach ($kititem을 $value로) { $newvalue = unserialize($value); if ($newvalue) { $newvalue2 = unserialize($newvalue); if($newvalue2['type']=="키아이템"){ echo '<li>' .$newvalue2['수량'] ' -> ' .chr(9) '</li>'; } } } } } }</pre> 현재 기능은 이미 내 하위 테마의 해당 템플릿에 연결되어 있습니다. <code>customer-completed-email.php</code> 파일에 유사한 기능을 적용하는 방법이나 관리자 편집 주문 페이지의 어디에 연결해야 하는지 모르겠습니다. 다른 게시물에서 제가 해야 할 작업과 유사해 보이는 일부 코드를 찾았지만 관리 명령에 대한 수정 사항이 어느 파일에 있는지 알 수 없습니다. 내가 찾은 코드는 다음과 같습니다. <pre class="brush:php;toolbar:false;">add_action('woocommerce_before_order_itemmeta','woocommerce_before_order_itemmeta',10,3); 함수 woocommerce_before_order_itemmeta($item_id, $item, $product){ ... }</pre> 어떤 조언이라도 대단히 감사하겠습니다.
P粉022140576P粉022140576502일 전473

모든 응답(1)나는 대답할 것이다

  • P粉736935587

    P粉7369355872023-08-16 10:40:06

    WooCommerce에는 이미 자체 템플릿을 추가하는 대신 WooCommerce 템플릿에서 사용할 수 있는 다양한 후크가 있습니다...

    좋은 개발 규칙은 기존 후크를 먼저 사용하는 것입니다. 편리하거나 사용 가능한 후크가 없는 경우 하위 테마를 통해 WooCommerce 템플릿을 재정의할 수 있습니다. 왜? 템플릿은 가끔 업데이트되기 때문에 편집된 템플릿을 업데이트해야 하지만 후크는 그렇지 않습니다.

    "고객 주문 완료" 알림의 경우 다음과 같이 woocommerce_order_item_meta_end액션 후크를 사용하세요.

    으아악

    이렇게 하면 "고객 완료 주문" 알림에만 사용자 정의 메타데이터를 표시할 수 있습니다.

    또는 동일한 함수 변수 인수를 사용하여 후크를 하나의 woocommerce_order_item_meta_start로 바꿀 수 있습니다.

    차일드 테마의 function.php 파일이나 플러그인에 코드를 배치하세요.

    회신하다
    0
  • 취소회신하다