<?php foreach ($addon['options'] as $key => $option) { $addon_key = 'addon-' . sanitize_title($addon['field-name']); $option_key = empty($option['label']) ? $key : sanitize_title($option['label']); $current_value = isset($_POST[$addon_key]) && isset($_POST[$addon_key][$option_key]) ? wc_clean($_POST[$addon_key][$option_key]) : ''; $price = $option['price'] > 0 ? '(' . wc_price(get_product_addon_price_for_display($option['price'])) . ')' : ''; ?> <p class="form-row form-row-wide addon-wrap-<?php echo sanitize_title($addon['field-name']); ?> "> <?php if (!empty($option['label'])) { ?> <label><?php echo wptexturize($option['label']) . ' ' . $price; ?> </label> <?php } ?> <input type="number" step="any" class="input-text addon addon-custom-price" name="<?php echo $addon_key; ?> [<?php echo $option_key; ?> ]" value="<?php echo esc_attr($current_value);
$price = $option['price'] > 0 ? '(' . woocommerce_price(get_product_addon_price_for_display($option['price'])) . ')' : ''; $current_value = 0; if (isset($_POST['addon-' . sanitize_title($addon['field-name'])])) { $current_value = isset($_POST['addon-' . sanitize_title($addon['field-name'])]) && in_array(sanitize_title($option['label']), $_POST['addon-' . sanitize_title($addon['field-name'])]) ? 1 : 0; } ?> <p class="form-row form-row-wide addon-wrap-<?php echo sanitize_title($addon['field-name']) . '-' . $i; ?> "> <label><input type="radio" class="addon addon-radio" name="addon-<?php echo sanitize_title($addon['field-name']); ?> []" data-price="<?php echo get_product_addon_price_for_display($option['price']); ?> " value="<?php echo sanitize_title($option['label']); ?> " <?php checked($current_value, 1); ?> /> <?php echo wptexturize($option['label'] . ' ' . $price); ?> </label> </p> <?php }
/** * Add meta to orders * * @access public * @param mixed $item_id * @param mixed $values * @return void */ public function order_item_meta($item_id, $values) { if (!empty($values['addons'])) { foreach ($values['addons'] as $addon) { $name = $addon['name']; if ($addon['price'] > 0 && apply_filters('woocommerce_addons_add_price_to_name', true)) { $name .= ' (' . strip_tags(woocommerce_price(get_product_addon_price_for_display($addon['price'], $values['data'], true))) . ')'; } woocommerce_add_order_item_meta($item_id, $name, $addon['value']); } } }