Сохранение пользовательских данных в объекте корзины
Для того чтобы добавить дополнительные данные в объект корзины воспользуйтесь следующей функцией, которую нужно разместить в файле functions.php. В данном примере в объект корзины сохраняет данные из массива $_POST ($_POST[‘weight’]) .
add_filter('woocommerce_add_cart_item_data', 'save_custom_product_data', 10, 2);
function save_custom_product_data($cart_item_data, $product_id) {
$bool = false;
if(isset($_POST['weight'])) {
$cart_item_data['custom_data']['weight'] = $_POST['weight'];
$data['weight'] = $_POST['weight'];
$bool = true;
}
if($bool) {
$cart_item_data['custom_data']['unique_key'] = md5(microtime().rand());
WC()->session->set('custom_variations', $data);
}
return $cart_item_data;
}
Данные можно передать для обработки данной функцией с помощью Ajax:
$(document).ready(function(){
$('#button').click(function(){
$.ajax({
type: 'post',
url: '/wp-admin/admin-ajax.php',
data: {action:'save_custom_product_data','weight':500},
success: function (response) {
if(response) {
var json = JSON.parse(response);
}
},
});
});
});