У меня возникают проблемы при добавлении пользовательского выпадающего списка в мета-корзину и его отображении в корзине.Приведенный ниже код работает для числового поля, которое также находится на странице отдельного продукта, но не для раскрывающегося списка по некоторым причинам.Кто-нибудь знает почему?Код выглядит следующим образом:
// Dropdowns-in-ends starts here
add_action( 'woocommerce_before_add_to_cart_button', 'func_dropdown_in_ends');
function func_dropdown_in_ends() {
printf(
'<div class="class_dropdown_ends"><label for="id_dropdown_one_end">I andre enden av tauet</label><id = id_dropdown_one_end name=dropdown_one_end>
<select>
<option value="0">Ingenting</option>
<option value="250">Øye 250,-</option>
<option value="350">Sjakkel 350,-</option>
<option value="400">Spleis 400,-</option>
</select></div>'
);
}
//Add dropdown_one_end to cart meta when user clicks add to cart
add_filter( 'woocommerce_add_cart_item_data', 'func_add_dropdown_ene_enden', 10, 4 );
function func_add_dropdown_ene_enden( $cart_item_data, $product_id, $variation_id) {
if( ! empty( $_POST['dropdown_ene_one_end'] ) ) {
// Add the item data
$cart_item_data['one_end'] = $_POST['dropdown_one_end'];
}
return $cart_item_data;
}
// Show dropdown_one_end in cart
add_filter( 'woocommerce_cart_item_name', 'func_cart_item_name_ene_enden', 10, 3 );
function func_cart_item_name_ene_enden( $name, $cart_item, $cart_item_key ) {
if( isset( $cart_item['one_end'] ) ) {
$name .= sprintf(
'<p>I ene enden: %s</p>',
esc_html( $cart_item['one_end'])
);
}
return $name;
}
РЕДАКТИРОВАТЬ: Как я вижу, в раскрывающемся списке есть «опция», но также и значение опции.Нужно ли ссылаться на них по отдельности, чтобы заставить вещи работать?