Добавление пользовательской переменной в содержимое корзины
Я добавил пользовательскую переменную на странице товара и могу передать значение этой переменной в функцию добавления в корзину.
public function add_to_cart( $product_id, $quantity = 1, $mmCentre, $variation_id = '', $variation = '', $cart_item_data = array() ) {
.........
.........
}
Переменная $mmCentre
является пользовательской переменной. Сейчас я сделал следующее:
$this->cart_contents[$cart_item_key] = apply_filters( 'woocommerce_add_cart_item', array_merge( $cart_item_data, array(
'product_id' => $product_id,
'variation_id' => $variation_id,
'variation' => $variation,
'quantity' => $quantity,
'data' => $product_data,
'mmCentre' => $mmCentre
) ), $cart_item_key );
Проблема в том, что я не могу получить это значение на странице корзины. Я сделал дамп cart_contents, но не вижу переданного значения в массиве.
Не могли бы вы подсказать, что я делаю неправильно?

Мне пришлось делать что-то подобное некоторое время назад, вот что сработало для меня:
В примере пользовательское поле ввода называется "test_field" внутри формы добавления в корзину, и таким образом при дампе cart_contents вы можете увидеть значение где-то в конце
// Сохраняем кастомное поле
add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_custom_data_vase', 10, 2 );
function add_cart_item_custom_data_vase( $cart_item_meta, $product_id ) {
global $woocommerce;
$cart_item_meta['test_field'] = $_POST['test_field'];
return $cart_item_meta;
}
// Получаем из сессии и добавляем в переменную корзины
function get_cart_items_from_session( $item, $values, $key ) {
if ( array_key_exists( 'test_field', $values ) )
$item[ 'mmCentre' ] = $values['test_field'];
return $item;
}
add_filter( 'woocommerce_get_cart_item_from_session', 'get_cart_items_from_session', 1, 3 );

Большое спасибо за ваше предложение. Я попробую его сегодня вечером, так как у меня нет доступа к файлам. Я сообщу вам о результатах. Думаю, это сработает.
