programing

WooCommerce Cart의 특정 제품 속성 및 메타 데이터 에코

shortcode 2023. 4. 3. 22:53
반응형

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>';
    }
}

참고 자료:

언급URL : https://stackoverflow.com/questions/38813247/echo-specific-product-attributes-and-meta-data-in-woocommerce-cart

반응형