簡體   English   中英

WooCommerce - 在購物車中獲取產品的選定變體

[英]WooCommerce - Get selected variation for a product in cart

你好,

任何人請幫我找到解決方案。

我的客戶有批發業務,他不需要woocommerce結賬功能。 他需要購物車的woocommerce功能,但他不想結賬,他想要一個“下訂單”按鈕。

of a product inside functions.php for that product, which is already in cart? 現在,一切工作正常,訂貨正確,順序存儲到數據庫,並郵寄給管理員,但問題是,我要存儲的變化,以及,我的問題是如何讓選擇的變化 的產品內部的functions.php產品已經在購物車中?

任何提示都將非常感激。

希望我能正確理解您的查詢。

您是說要獲取產品的變化詳細信息(如果有),這些信息位於購物車中。

購物車包含許多物品。 您可以遍歷項目並獲取每個項目的變體詳細信息。

購物車商品是關聯數組,您可以在$item['product_id']找到商品ID,在$item['variation_id']找到變體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
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM