WooCommerce Cart의 특정 제품 속성 및 메타 데이터 에코
업데이트(작성자 의견 관련):
Essential Grid 프리미엄 플러그인을 사용하여 제품 페이지에 정상적으로 동작하는 메타 데이터를 표시하도록 WooCommerce cart.php를 커스터마이즈하고 싶습니다.
Essential Grid 플러그인의 meta field creator로 작성한 제품 속성 필드 및 커스텀 메타 필드를 표시하고 싶습니다.
테스트에는 속성(so)과 커스텀필드 slug를 사용합니다.
현재 다음을 사용해 보고 있습니다.
<?php echo get_post_meta($product_id, 'pa_height', true );?>
또, 다음과 같은 것도 있습니다.
<?php echo get_post_meta($product_id, 'eg-age-cal', true );?>
하지만 이것들은 효과가 없는 것 같다.
다음 방법으로 코드를 사용할 수 있게 되었습니다.
<?php echo get_post_meta($product_id, '_regular_price', true );?>
그래서 코드가 작동한다는 걸 알아
이 커스텀 어트리뷰트와 커스텀필드에서 값을 취득하려면 어떻게 해야 합니까?
감사해요.
업데이트(WC 3+와의 호환성)
아래 코멘트에서 설명하신 후, 고객님이 Essential Grid Premium 플러그인(상용 플러그인)을 사용하여 고객님의 wooCommerce 제품과 관련된 커스텀 필드 및 속성을 만들고 있다는 것을 알게 되었습니다.
이 시점에서는 이 플러그인을 사용한 적이 없기 때문에 도움이 되지 않습니다.또한 이 플러그인의 데이터베이스 내 어디에 데이터가 저장되어 있는지 알 수 없습니다.
WordPress/WooCommerce 함수를 사용하여 데이터를 얻을 수 없기 때문에 평소처럼 데이터를 사용할 수 없다고 생각합니다.
도움을 받는 가장 좋은 방법은 다음과 같습니다.
- 데이터베이스에서 해당 사용자 지정 필드 데이터를 검색/검색합니다.
- Essential Grid 플러그인 작성자가 지원 스레드를 검색/질문합니다.
저의 원래 답변은:
제품에 정의되어 있는 속성의 경우 변수와 함수를 사용하여 원하는 데이터를 얻으려면 다음과 같이 사용해야 합니다(이것은 값의 배열입니다).
// getting the defined product attributes
$product_attr = get_post_meta( $product_id, '_product_attributes' );
// displaying the array of values (just to test and to see output)
echo var_dump( $product_attr );
이 기능을 사용할 수도 있습니다.get_attributes()
(더 권장사항), 다음과 같이 합니다.
// Creating an object instance of the product
$_product = new WC_Product( $product_id );
// getting the defined product attributes
$product_attr = $_product->get_attributes();
// displaying the array of values (just to test and to see output)
echo var_dump( $product_attr );
모든 코드가 테스트되어 동작하고 있다.
카트 데이터가 쿠키와 세션에 설정되었습니다.카트의 데이터와 아이템을 취득하려면 구문을 사용해야 합니다.
따라서 다음과 같은 코드를 사용하여 카트에 있는 아이템(제품)을 가져올 수 있습니다.
foreach ( WC()->cart->get_cart() as $cart_item ) {
$product = $cart_item['data'];
if(!empty($product)){
// getting the defined product attributes
$product_attr = $_product->get_attributes();
// displaying the attributes array of values (just to test and to see output)
echo var_dump( $product_attr ) . '<br>';
}
}
그러면 CART의 각 제품에 대한 속성 배열이 표시됩니다.
이 스레드를 기반으로 한 솔루션. 동일한 코드 스니펫 내에서 속성을 가져옵니다.
foreach ( WC()->cart->get_cart() as $cart_item ) {
$product = $cart_item['data'];
if(!empty($product)){
// compatibility with WC +3
$product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;
// Getting "height" product attribute
$myAttribute = array_shift( wc_get_product_terms( $product_id, 'pa_height', array( 'fields' => 'names' ) ) );
echo $myAttribute . '<br>';
}
}
참고 자료:
- WC_Product Class - get_attributes()
- WooCommerce - 커스텀 제품 속성 가져오기
- 제품 이미지를 표시하려면 WooCommerce 체크아웃 페이지에서 카트 제품 ID 가져오기
- WordPress 코드 참조 - get_post_meta()
언급URL : https://stackoverflow.com/questions/38813247/echo-specific-product-attributes-and-meta-data-in-woocommerce-cart
'programing' 카테고리의 다른 글
Angular.js : 템플릿에서 ng-href를 사용하는 방법 (0) | 2023.04.03 |
---|---|
Jackson JSON: json-tree에서 노드 이름 가져오기 (0) | 2023.04.03 |
react - typescript를 사용하여 컨텍스트를 만들 때 네임스페이스 'ctx'를 찾을 수 없습니다. (0) | 2023.04.03 |
고객 일치 배송 구역 삭제..". woocommerce 카트에 있는 메시지 (0) | 2023.04.03 |
mongo에 인증할 수 없습니다. "auth failures" (0) | 2023.03.05 |