programing

WooCommerce 관리 주문 개요에 주문 메타데이터 추가

bestprogram 2023. 2. 26. 16:24

WooCommerce 관리 주문 개요에 주문 메타데이터 추가

여기에 이미지 설명 입력

저는 WooCommerce용 플러그인을 개발 중입니다.admin의 주문 상세 템플릿을 덮어쓰고 싶습니다.https://www.skyverge.com/blog/override-woocommerce-template-file-within-a-plugin/에서 에 대해 읽었는데, admin의 주문 상세 템플릿을 덮어쓰는 방법을 아직 모르겠습니다.다음은 내 코드입니다.

 if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
 if ( ! class_exists( 'Test' ) ) {
   load_plugin_textdomain( 'test', false, dirname( plugin_basename( __FILE__ ) ) . '/' );
}
}
class Test {
public function __construct() {
add_action( 'init', array( $this, 'include_template_functions' ), 20 );
add_action( 'woocommerce_init', array( $this, 'woocommerce_loaded' ) );
add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
do_action( 'woocommerce_admin_order_data_after_order_details', 'hello' );
}

public function hello() {
echo "order detail template has loaded";
}

public function include_template_functions() {
include( 'woocommerce-template.php' );
echo "template has loaded";
 }

  public function woocommerce_loaded() {
  }

public function plugins_loaded() {
 }
 }

$GLOBALS['wc_acme'] = new Test();

훅을 호출하는 것이 아닙니다.woocommerce_admin_order_data_after_order_details.

플러그인을 통한 주문 상세 템플릿 편집의 예를 제안하거나 공유해 주실 수 있습니까?관리자가 목록에서 주문 세부 정보를 볼 수 있는 관리자 내부의 주문 세부 정보 템플릿을 참조하는 것입니다.

WooCommerce 체크아웃 필드 커스터마이즈 튜토리얼에서 주문 상세 메타박스에 추가 주문 메타 데이터를 표시하는 방법은 다음과 같습니다.

// display the extra data in the order admin panel
function kia_display_order_data_in_admin( $order ){  ?>
    <div class="order_data_column">
        <h4><?php _e( 'Extra Details' ); ?></h4>
        <?php 
            echo '<p><strong>' . __( 'Some field' ) . ':</strong>' . get_post_meta( $order->id, '_some_field', true ) . '</p>';
            echo '<p><strong>' . __( 'Another field' ) . ':</strong>' . get_post_meta( $order->id, '_another_field', true ) . '</p>'; ?>
    </div>
<?php }
add_action( 'woocommerce_admin_order_data_after_order_details', 'kia_display_order_data_in_admin' );

이는 체크아웃 시 데이터를 수집하고 데이터를 포스트 메타로 저장한 것을 전제로 합니다.$order문제가 되고 있습니다.

사용할 수 있습니다.woocommerce_admin_order_data_after_billing_address액션:

function order_phone_backend($order){
    echo "<p><strong>Billing phone 2:</strong> " . get_post_meta( $order->id, '_billing_phone_new', true ) . "</p><br>";
} 
add_action( 'woocommerce_admin_order_data_after_billing_address','order_phone_backend', 10, 1 );

언급URL : https://stackoverflow.com/questions/29602269/add-order-metadata-to-woocommerce-admin-order-overview