Сохранение пользовательских данных в объекте корзины
Для того чтобы добавить дополнительные данные в объект корзины воспользуйтесь следующей функцией, которую нужно разместить в файле functions.php. В данном примере в объект корзины сохраняет данные из массива $_POST ($_POST[‘weight’]) .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<script type='text/javascript'> $(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); } }, }); }); }); </script> |