Woocommerce 3+의 [내 계정 주문(My Account Orders)]테이블에 커스텀 컬럼 추가
Woocommerce 3.5.x에는 사용자 계정(내 계정) 영역에 사용자의 이전 주문을 표시하는 특수 페이지가 있습니다.
이 페이지는 기본 5열로 표시됩니다.
다음은 5컬럼으로 구성된 woocommerce Orders 영역의 스크린샷입니다.
이것을 바꿀 방법을 찾을 수 없다.
기본값으로 새 열을 추가하려면 어떻게 해야 합니까?
여기에는 새 열을 추가하는 두 가지 기능이 필요합니다.
두 번째 기능 후크는 복합 후크입니다.woocommerce_my_account_my_orders_column_{$column_id}
어디에{$column_id}
첫 번째 기능에 설정된 칼럼 키 슬러그로 교체해야 한다.
두 번째 함수는 표시된 행 값을 관리하며, 예를 들어 사용자 정의 필드를 추가하여 사용자 정의 순서 메타 데이터 값을 가져올 수 있습니다.
코드:
add_filter( 'woocommerce_account_orders_columns', 'add_account_orders_column', 10, 1 );
function add_account_orders_column( $columns ){
$columns['custom-column'] = __( 'New Column', 'woocommerce' );
return $columns;
}
add_action( 'woocommerce_my_account_my_orders_column_custom-column', 'add_account_orders_column_rows' );
function add_account_orders_column_rows( $order ) {
// Example with a custom field
if ( $value = $order->get_meta( '_custom_field' ) ) {
echo esc_html( $value );
}
}
코드가 기능합니다.php 파일에는 액티브한 아이 테마(또는 활성 테마).테스트 및 동작.
완료되었으며 내 계정 주문 테이블에 사용자 지정 열을 추가했습니다.
테이블 html 출력에서 변경할 경우 템플릿파일을 덮어쓸 필요가 있습니다.
myaccount/orders.php
내 계정 페이지에서 주문 템플릿을 변경하지 않으려면당신이 해야 할 일은 다음과 같습니다.
첫 번째:
function wc_add_myaccount_order_column( $columns ) {
$columns[ 'custom-column' ] = __( 'Custom Column', 'woocommerce' );
}
add_filter( 'woocommerce_my_account_my_orders_columns', 'wc_add_myaccount_order_column' );
두 번째:
function wc_custom_column_display( $order ) {
// do something here
echo "testing";
}
add_action( 'woocommerce_my_account_my_orders_column_custom-column', 'wc_custom_column_display' );
위의 코드는 "Custom Column(사용자 지정 열)" 아래에 각 순서로 "testing(테스트 중)"으로 표시됩니다.
주의: 실제로 템플릿 전체를 변경하는 경우(예: 설계 등)당신은 위의 첫 번째 답을 따를 수 있습니다.
승인된 답변을 개선하기 위해 행을 추가하여 열의 위치(합계 후)를 선택합니다.
function sv_wc_add_my_account_orders_column( $columns ) {
$new_columns = array();
foreach ( $columns as $key => $name ) {
$new_columns[ $key ] = $name;
// add ship-to after order status column
if ( 'order-total' === $key ) { //this is the line!
$new_columns['custom-column'] = __( 'Custom Column', 'woocommerce' );
}
}
return $new_columns;
}
add_filter( 'woocommerce_my_account_my_orders_columns', 'sv_wc_add_my_account_orders_column' );
function wc_custom_column_display( $order ) {
// do something here
echo "testing";
}
add_action( 'woocommerce_my_account_my_orders_column_custom-column', 'wc_custom_column_display' );
WooCommerce 5.9에서는 Lioc The Aztect의 답변을 얻을 수 없었습니다.나에게 효과가 있었던 것은, 다음과 같습니다.
add_filter( 'woocommerce_account_orders_columns',
'add_customer_email_column');
function add_customer_email_column( $columns ){
$new_columns = [
"order-number" => $columns["order-number"],
// ...
"customer-email" => __( 'Customer Email', '' ),
// ...
"order-actions" => $columns["order-actions"]
];
return $new_columns;
}
add_action( 'woocommerce_my_account_my_orders_column_customer-email',
'add_customer_email_content' );
function add_customer_email_content($order) {
echo esc_html($order->get_billing_email());
}
미포함if ($value = $order->get_meta( '_custom_field' ))
막아요 도움이 됐으면 좋겠네요
언급URL : https://stackoverflow.com/questions/53623789/add-a-custom-column-to-my-account-orders-table-in-woocommerce-3
'programing' 카테고리의 다른 글
Swagger TypeError: '창'에서 'fetch'를 실행하지 못했습니다. GET/HEAD 메서드를 사용하는 요청에는 본문을 사용할 수 없습니다. (0) | 2023.03.10 |
---|---|
포스트백 후 javascript 기능 실행 (0) | 2023.03.10 |
WP/woocommerce에서 사용자가 'shop_manager'인지 알 수 있는 기능이 있나요? (0) | 2023.03.05 |
스파크 시 json 문자열을 데이터 프레임으로 변환하는 방법 (0) | 2023.03.05 |
Sinatra 기본 content_type 설정 (0) | 2023.03.05 |