Woocommerce 관리 주문 세부 정보 - 주문 세부 정보 페이지에 사용자 지정 데이터 표시
이틀 동안 찾아보고 있는데 잘 안 되네요, 도와주세요.
제품 속성에 따라 db에서 주문 상세 페이지로 추가 상세 정보를 추가하기 위해 woocommerce 주문을 필터링하고 싶지만 이 작업에 적합한 woocommerce 액션/필터 후크를 찾을 수 없습니다.여기 내가 변한다고 가정해봐$is_customized = false
;
한다면$is_customized == true
그러면 데이터베이스의 커스텀 데이터를 주문 상세 페이지에 추가해야 합니다.
메모: 메타박스를 추가하지 않고 주문 상세 테이블을 변경합니다.
- 기본 제품 이미지를 데이터베이스에 저장된 이미지로 대체하고,
- 제품 이름 아래에 사용자 지정 특성을 포함하는 div를 추가합니다.
변수에는 이러한 값이 모두 포함되어 있지만 어떤 액션 훅을 사용해야 하는지 알 수 없습니다.
명확히 하기 위해 이미지를 첨부했습니다.
이 주문 결과를 변경/필터링할 수 있는지 여부와 방법만 알려주시면 됩니다.
당신의 시간과 도움에 감사드립니다.감사해요.
후크에 추가 데이터를 표시하는 방법은 다음과 같습니다.
add_action( 'woocommerce_before_order_itemmeta', 'so_32457241_before_order_itemmeta', 10, 3 );
function so_32457241_before_order_itemmeta( $item_id, $item, $_product ){
echo '<p>bacon</p>';
}
데이터를 어떻게 저장하고 있는지 모르기 때문에 더 정확한 제안은 할 수 없습니다.이 후크 바로 뒤에 주문 항목 메타로 저장한 항목이 자동으로 표시됩니다.
이미지 필터링이 더 어렵습니다.처음에 이 요점을 찾았는데, 썸네일을 필터링하는 것이 아니라 주문에 따라 필터링하는 것이 좋기 때문에 커스텀 조건부 로직이 필요합니다.
편집: 현재 항목 미리 보기를 필터링할 수 있는 최선의 방법입니다.
add_filter( 'get_post_metadata', 'so_32457241_order_thumbnail', 10, 4 );
function so_32457241_order_thumbnail( $value, $post_id, $meta_key, $single ) {
// We want to pass the actual _thumbnail_id into the filter, so requires recursion
static $is_recursing = false;
// Only filter if we're not recursing and if it is a post thumbnail ID
if ( ! $is_recursing && $meta_key === '_thumbnail_id' ) {
$is_recursing = true; // prevent this conditional when get_post_thumbnail_id() is called
$value = get_post_thumbnail_id( $post_id );
$is_recursing = false;
$value = apply_filters( 'post_thumbnail_id', $value, $post_id ); // yay!
if ( ! $single ) {
$value = array( $value );
}
}
return $value;
}
add_filter( 'post_thumbnail_id', 'so_custom_order_item_thumbnail', 10, 2 );
function so_custom_order_item_thumbnail( $id, $post_id ){
if( is_admin() ){
$screen = get_current_screen();
if( $screen->base == 'post' && $screen->post_type == 'shop_order' ){
// this gets you the shop_order $post object
global $post;
// no really *good* way to check post item, but could possibly save
// some kind of array in the order meta
$id = 68;
}
}
return $id;
}
언급URL : https://stackoverflow.com/questions/32457241/woocommerce-admin-order-details-show-custom-data-on-order-details-page
'programing' 카테고리의 다른 글
JSON 응답 요소가 배열인지 확인하는 방법 (0) | 2023.03.31 |
---|---|
각도 UI 그리드가 그리드의 높이를 동적으로 계산합니다. (0) | 2023.03.31 |
양식이 Angular로 비활성화되면 제출 버튼 사용 안 함JS (0) | 2023.03.31 |
서버 응답이 중간에 끊어지다 (0) | 2023.03.26 |
TypeScript: 유형/감축 유형에서 키를 제거합니다. (0) | 2023.03.26 |