source

WooCommerce - 카트에 있는 제품에 대해 선택된 변형을(를)

ittop 2023. 10. 19. 22:44
반응형

WooCommerce - 카트에 있는 제품에 대해 선택된 변형을(를)

안녕하세요.

누구든지 해결책을 찾을 수 있도록 도와주세요.

제 고객은 도매업을 하고 있는데, 이중 상거래 체크아웃 기능이 필요하지 않습니다.그는 카트까지 우커머스 기능이 필요하지만, 체크아웃 대신 "주문하기" 버튼을 원합니다.

이제 모든 것이 정상적으로 작동하여 주문을 올바르게 배치하고, 주문은 데이터베이스에 저장하고 관리자에게 메일을 보내고 있습니다. 하지만 문제는 변형도 저장하고 싶다는 것입니다. 제 질문은 기능 내부에 있는 제품의 선택된 변형(있는 경우)얻는 방법입니다.이미 카트에 실려있는 그 제품에 대한 php?

어떤 힌트라도 주시면 감사하겠습니다.

제가 당신의 질문을 정확하게 이해했기를 바랍니다.

카트에 있는 제품의 변형 정보(가능한 경우)를 확인하고 싶다고 말씀하셨습니다.

카트에는 많은 아이템들이 들어있습니다.품목을 루프오버할 수 있으며 각 품목의 변동내역을 확인할 수 있습니다.

카트 항목은 연관 배열이며 제품 ID는 다음에서 찾을 수 있습니다.$item['product_id']& 변형 ID:$item['variation_id']

변동 상세 정보를 얻으려면 다음 함수 & 패스 변동 ID를 사용하십시오.

function get_variation_data_from_variation_id( $item_id ) {
    $_product = new WC_Product_Variation( $item_id );
    $variation_data = $_product->get_variation_attributes();
    $variation_detail = woocommerce_get_formatted_variation( $variation_data, true );  // this will give all variation detail in one line
    // $variation_detail = woocommerce_get_formatted_variation( $variation_data, false);  // this will give all variation detail one by one
    return $variation_detail; // $variation_detail will return string containing variation detail which can be used to print on website
    // return $variation_data; // $variation_data will return only the data which can be used to store variation data
}

이제 이 기능을 사용하는 방법을 알아보겠습니다.

$item_id = ( !empty( $cart_item['variation_id'] ) ) ? $cart_item['variation_id'] : '';
if ( !empty( $item_id ) ) {
   $variations = get_variation_data_from_variation_id( $item_id );
}

유용하게 쓰이길 바랍니다.

이게 도움이 되기를...

function woocommerce_variable_add_to_carts() {
        global $product, $post;
        $variations = $product->get_available_variations();
        foreach ($variations as $key => $value) {
            ?>
            <form action="<?php echo esc_url($product->add_to_cart_url()); ?>"method="post" enctype='multipart/form-data'>
                <input type="hidden" name="variation_id" value="<?php echo $value['variation_id'] ?>" />
                <input type="hidden" name="product_id" value="<?php echo esc_attr($post->ID); ?>" />
                <?php
                if (!empty($value['attributes'])) {
                    foreach ($value['attributes'] as $attr_key => $attr_value) {
                        ?>
                        <input type="hidden" name="<?php echo $attr_key ?>" value="<?php echo $attr_value ?>">
                        <?php
                    }
                }
                ?>

                <?php echo implode('/', $value['attributes']); ?>

                <?php echo $value['price_html']; ?>
                </
                <button type="submit" class="single_add_to_cart_button button alt"><?php echo apply_filters('single_add_to_cart_text', __('Add to cart', 'woocommerce'), $product->product_type); ?></button>

            </form>
            <?php
        }
    }

언급URL : https://stackoverflow.com/questions/22809342/woocommerce-get-selected-variation-for-a-product-in-cart

반응형