Woocommerce – AJAX添加到购物车不存储产品元数据

我已成功在WooCommerce上实现了AJAX添加到购物车function,适用于单一和可变产品。

尝试将自定义产品数据添加到购物车时出现问题,例如“产品交付日期”插件,该插件将日期选择器框添加到产品单页,允许用户选择产品的交货日期。 此数据未添加到购物车。

我已经使用Storefront主题进行了测试,并且产品元数据存储在购物车中,所以我确定它与我传递给AJAX函数的变量有关。

我的AJAX知识是基本的,所以如果我遗漏了一些明显的东西,请原谅我。

JS用于添加到购物车:

jQuery(document).ready(function() { jQuery('.single_add_to_cart_button').click(function(e) { e.preventDefault(); jQuery(this).addClass('adding-cart'); var product_id = jQuery(this).val(); var variation_id = jQuery('input[name="variation_id"]').val(); var quantity = jQuery('select[name="quantity"]').val(); console.log(quantity); jQuery('.cart-dropdown-inner').empty(); if (variation_id != '') { jQuery.ajax ({ url: crispshop_ajax_object.ajax_url, type:'POST', data:'action=crispshop_add_cart_single&product_id=' + product_id + '&variation_id=' + variation_id + '&quantity=' + quantity, success:function(results) { jQuery('.cart-dropdown-inner').append(results); var cartcount = jQuery('.item-count').html(); jQuery('.cart-totals').html(cartcount); jQuery('.single_add_to_cart_button').removeClass('adding-cart'); // jQuery('html, body').animate({ scrollTop: 0 }, 'slow'); jQuery('body').addClass('cart-active'); } }); } else { jQuery.ajax ({ url: crispshop_ajax_object.ajax_url, type:'POST', data:'action=crispshop_add_cart_single&product_id=' + product_id + '&quantity=' + quantity, success:function(data) { console.log(results); jQuery('.cart-dropdown-inner').append(results); var cartcount = jQuery('.item-count').html(); jQuery('.cart-totals').html(cartcount); jQuery('.single_add_to_cart_button').removeClass('adding-cart'); // jQuery('html, body').animate({ scrollTop: 0 }, 'slow'); jQuery('body').addClass('cart-active'); } }); } }); }); 

PHP用于添加到购物车:

 function crispshop_add_cart_single_ajax() { $product_id = $_POST['product_id']; $variation_id = $_POST['variation_id']; $variation = $_POST['variation']; $quantity = $_POST['quantity']; if ($variation_id) { WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, $variation); } else { WC()->cart->add_to_cart( $product_id, $quantity); } $items = WC()->cart->get_cart(); $item_count = count($items); ?>  

Bag

×
Item Quantity Price
$values) { $_product = $values['data']->post; ?>
Subtotal
cart->get_cart_total(); ?>
cart->get_cart_url(); $checkout_url = $woocommerce->cart->get_checkout_url(); ?>
<?php die(); }

任何帮助都将受到大力赞赏,提前感谢!