WooCommerce에서 변수로 제품 사용자 지정 필드 값을 가져옵니다.
클래스 등록에 Woocommerce를 사용하고 있습니다.클래스/제품마다 최대 20개의 커스텀 필드가 있으며 체크아웃 및 주문 상세 페이지와 고객 이메일 템플릿을 고도로 커스터마이즈하기 위해 이 필드를 변수로 반환해야 합니다.
출력을 매우 엄격하게 제어해야 하기 때문에 모든 커스텀 메타 데이터를 후크로 추가하는 것 만은 아닙니다.예를 들어 다음 답변은 카트 페이지에 커스텀필드를 포함하면 정상적으로 동작합니다.Woocommerce 카트 및 체크아웃 항목에 커스텀 필드 값 표시
다만, 체크 아웃, 주문의 상세, 이메일 등, HTML 에 대한 완전한 제어가 필요합니다(예를 들면, Unix 타임스탬프를 사람이 읽을 수 있는 시간으로 변환할 필요가 있는 경우도 있습니다).
인order-item-details.php템플릿은 다음을 시도했습니다.
$room = get_post_meta( $product->ID, 'room', true );
$room_number = get_post_meta( $product->ID, 'room_number', true );
$instructor = get_post_meta( $product->ID, 'instructor', true );
echo 'Your instructor is ' . $instructor . '.';
echo 'Your class is in ' . $room . '.';
하지만 효과가 없었어요...
특정 제품과 관련된 커스텀필드 값에 액세스하여 사용하려면 어떻게 해야 합니까?
첫번째는 어떤 식으로도 작동하지 않을 것이다.그래서 당신의 문제는 제품 ID를 어떻게 얻느냐 하는 것입니다.
복수 케이스
1) 상점 등의 아카이브 페이지 또는 단일 제품 페이지에서 다음을 수행합니다.
사용.
get_the_id()대부분의 경우 제품 ID(게시 ID)를 제공합니다.$room = get_post_meta( get_the_id(), 'room', true );를 사용할 수도 있습니다.
global $product;와 함께$product->get_id()한다면$product정의되어 있지 않습니다.global $product; $room = get_post_meta( $product->get_id(), 'room', true );를 사용할 수도 있습니다.
global $post;와 함께$post->ID(만일 경우)$post정의되어 있지 않습니다).global $post; $room = get_post_meta( $post->ID, 'room', true );
2) 카트 항목의 경우(카트 개체에서):
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ){
// Get the WC_Product object (instance)
$product = $cart_item['data'];
$product_id = $product->get_id(); // get the product ID
$room = get_post_meta( $product->get_id(), 'room', true );
## … / …
}
이제 제품 종류에서 상위 변수 제품 ID를 얻어야 하는 경우 다음을 사용합니다.
// Get the parent product ID (the parent variable product) $parent_id = $cart_item['product_id']; $room = get_post_meta( $parent_id, 'room', true ); ## … / …
3) 주문 항목(정의된 객체에서):
// Loop through cart items
foreach( $order->get_items() as $item ){
// Get the Product ID
$product_id = $item->get_product_id();
$room = get_post_meta( $product_id, 'room', true );
## … / …
}
이제 제품 종류에서 상위 변수 제품 ID를 얻어야 하는 경우 다음을 사용합니다.
// Loop through cart items foreach( $order->get_items() as $item ){ // Get the parent Product ID $product = $item->get_product(); $parent_id = $product->get_parent_id(); // The parent product ID $room = get_post_meta( $parent_id, 'room', true ); ## … / … }
이제 너한테 달렸어
언급URL : https://stackoverflow.com/questions/48725057/get-product-custom-field-values-as-variables-in-woocommerce
'source' 카테고리의 다른 글
| 경우에 따라 어레이 또는 객체에 따라서는 JSON의 시리얼화를 해제한다. (0) | 2023.03.01 |
|---|---|
| 제품 유형에 따라 WooCommerce의 "ADD TO CART" 버튼 옆에 있는 커스텀 버튼 (0) | 2023.03.01 |
| 반응: 이벤트 핸들러에서 null입니다. (0) | 2023.03.01 |
| IntelliJ IDEA는 Spring의 @Autowired 주석을 사용할 때 오류를 표시합니다. (0) | 2023.03.01 |
| 암호 또는 window.msCrypto를 사용하여 함수를 테스트하는 방법 (0) | 2023.03.01 |