我正在为WooCommerce创建客户定义的产品领域。
我能够创建该字段,并将数据传递到购物车并检出流程。问题是,如果添加另一个没有自定义字段的产品,自定义字段将添加到我的购物车中的所有产品或完全删除。
例如,假设我的系统中有3个产品。产品A& C没有自定义字段,产品B有自定义字段。如果我添加产品A& B到购物车,A& B将附带产品B的自定义字段。如果我然后将产品C添加到购物车,它现在将删除产品A,B和C的所有相关自定义字段。换句话说,即使我只有一个产品具有此自定义字段,如果我有3个产品在我的购物车中,其中所有3个都会在购物车页面上附加自定义字段值。
当我继续检查屏幕时,它正确地向正确的产品显示自定义字段。仅在购物车页面中显示所有产品的自定义字段。
我正在使用woocommerce_get_item_data作为我的参考函数。我的过滤器代码如下所示:
function display_schedule_text_cart( $item_data, $cart_item ) {
//var_dump($cart_item);
$product_id = $cart_item['product_id'];
if ( empty( $cart_item['class-1'] )) {
return $item_data;
}
$class_dates = explode("|", wc_clean( $cart_item['class-1']));
$values = "<ul>";
foreach ($class_dates AS $v){
$values .= "<li>".$v."</li>";
}
$values .= "</ul>";
$item_data[] = array(
'key' => __( 'Class Dates: ', 'class-1' ),
'value' => $values,
'display' => '',
);
return $item_data;
}
add_filter( 'woocommerce_get_item_data', 'display_schedule_text_cart', 10, 2 );
问题似乎是当我在$ cart_item上执行var_dump时,在购物车页面上的购物车商品表上,它总是返回购物车中的最后一项而不是该商品单元格的正确商品。 (并且item_data始终为空)。
非常感谢任何帮助。
谢谢!