【问题标题】:WooCommerce - Get selected variation for a product in cartWooCommerce - 获取购物车中产品的选定变体
【发布时间】:2014-05-13 14:40:52
【问题描述】:

你好,

请哪位大神帮我看看解决办法。

我的客户有一家批发业务,他不需要 woocommerce 结帐功能。他需要将 woocommerce 功能添加到购物车,但他想要一个“下订单”按钮而不是结帐。

现在,一切正常,正确下订单,订单存储到数据库并邮寄给管理员,但问题是我也想存储变化,我的问题是 如何被选中产品的变体(如果有的话) 该产品的functions.php 中的产品已经在购物车中?

任何提示将不胜感激。

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    希望我正确理解了您的查询。

    您是说您想获取购物车中产品的变体详细信息(如果有)。

    购物车包含许多物品。您可以遍历项目并获得每个项目的变化细节。

    购物车项目是一个关联数组,您可以在 $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 );
    }
    

    希望对你有用。

    【讨论】:

    • 谢谢@Ratnakar,您的评论“购物车项目是一个关联数组”帮助了我。
    • 谢谢@Ratnakar,你成就了我的一天 :)
    【解决方案2】:

    希望这篇文章能帮到你……

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

    【讨论】:

      猜你喜欢
      • 2017-04-27
      • 2021-01-26
      • 2019-02-06
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      • 2015-03-31
      相关资源
      最近更新 更多