WooCommerce - Get the selected option for the product in the basket

Hello,

Someone please help me find a solution.

My client has a wholesale business in which he does not need woocommerce validation features. He needs the functionality of woocommerce to the basket, but instead of checking, he wants the "Order Order" button.

Now everything works fine, the placement order is correct, the order is stored in the database and sent by mail to the administrator, but the problem is that I want to save the options, and my question is: how to choose the selected option "> strong> (if any) of the product inside functions. php for this piece that is already in the basket?

Any hints would be much appreciated.

+6
php wordpress woocommerce
source share
2 answers

Hope I understood your request correctly.

You say that you want to receive the details of the change (if any) of the product that is in the basket.

The cart contains many items. You can iterate over the elements and get information about each element.

The cart item is an associative array, and you can find the product identifier in $item['product_id'] and the change identifier in $item['variation_id']

Please use the following function and pass the variation identifier to get the details of the change:

 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 } 

Now let's see how to use this function

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

Hope this will be helpful.

+10
source share

Hope this one helps ...

 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 } } 
+1
source share

All Articles