Здравствуйте,
Любой, пожалуйста, помогите мне найти решение.
У моего клиента есть оптовый бизнес, в котором он не нуждается в функциональности проверки woocommerce. Ему нужна функциональность woocommerce до тележки, но вместо проверки он хочет кнопку «Заказ места».
Теперь все работает нормально, порядок размещения правильно, заказ хранится в базе данных и отправляется по почте администратору, но проблема в том, что я хочу сохранить варианты, а также вопрос о том, как получить выбранный вариант (если есть) продукт внутри functions.php для этого продукта, который уже находится в корзине?
Любой намек будет высоко оценен.
Надеюсь, что я правильно понял ваш запрос.
Вы говорите, что хотите получить подробные детали (если есть) продукта, который есть в корзине.
Корзина содержит много элементов. Вы можете перебирать элементы и получать детали вариаций по каждому элементу.
Элемент корзины является ассоциативным массивом, и вы можете найти идентификатор продукта в $item['product_id']
и идентификатор отклонения в $item['variation_id']
Пожалуйста, используйте следующую функцию & pass variant 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 } }