将多个自定义数据数组添加到 WooCommerce 自定义的购物车项目 Ajax 添加到购物车
Add multiple custom data arrays to cart item on WooCommerce custom Ajax add to cart
所以目前在 WooCommerce 中启用了自定义 Ajax 通过管理员添加到购物车,允许我添加自定义附加数据,如下所示:
$cart->add_to_cart($product_id , 1, 0, $variation, array('tmcartepo'=>$extra_options_data ) );
而且效果很好。
但问题是,我需要在 add_to_cart()
上设置 2(两个)自定义附加数据数组。
非常感谢任何帮助。
基本上,这个网站有产品设计师和额外的产品自定义字段,所有这些都由单独的插件管理。我的任务是在我的帐户中创建单个产品重新订购。所以,我想将新产品添加到购物车,并为该产品设置两个包含元数据的不同数组。
假设 $extra_options_data
变量是一个数组,您可以将它嵌入另一个数组,这将允许添加第二个 $extra_options_data_2
变量数组,例如:
$custom_data = array( 'tmcartepo'=> array(
'option1' => $extra_options_data,
'option2' => $extra_options_data_2,
) );
$cart->add_to_cart( $product_id , 1, 0, array(), $custom_data );
然后在购物车项目上,您将按如下方式访问这两个项目:
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ) {
// Access first custom data array
if( isset($cart_item['tmcartepo']['option1']) && ! empty($cart_item['tmcartepo']['option1']) ) {
$extra_options_data = $cart_item['tmcartepo']['option1'];
}
// Access Second custom data array
if( isset($cart_item['tmcartepo']['option1']) && ! empty($cart_item['tmcartepo']['option1']) ) {
$extra_options_data_2 = $cart_item['tmcartepo']['option2'];
}
}
或者你也可以这样使用:
$custom_data = array(
'tmcartepo' => $extra_options_data,
'tmcartepo2' => $extra_options_data_2,
);
然后在购物车项目上,您将按如下方式访问这两个项目:
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ) {
// Access first custom data array
if( isset($cart_item['tmcartepo']) && ! empty($cart_item['tmcartepo']) ) {
$extra_options_data = $cart_item['tmcartepo'];
}
// Access Second custom data array
if( isset($cart_item['tmcartepo2']) && ! empty($cart_item['tmcartepo2']) ) {
$extra_options_data_2 = $cart_item['tmcartepo2'];
}
}
所以目前在 WooCommerce 中启用了自定义 Ajax 通过管理员添加到购物车,允许我添加自定义附加数据,如下所示:
$cart->add_to_cart($product_id , 1, 0, $variation, array('tmcartepo'=>$extra_options_data ) );
而且效果很好。
但问题是,我需要在 add_to_cart()
上设置 2(两个)自定义附加数据数组。
非常感谢任何帮助。
基本上,这个网站有产品设计师和额外的产品自定义字段,所有这些都由单独的插件管理。我的任务是在我的帐户中创建单个产品重新订购。所以,我想将新产品添加到购物车,并为该产品设置两个包含元数据的不同数组。
假设 $extra_options_data
变量是一个数组,您可以将它嵌入另一个数组,这将允许添加第二个 $extra_options_data_2
变量数组,例如:
$custom_data = array( 'tmcartepo'=> array(
'option1' => $extra_options_data,
'option2' => $extra_options_data_2,
) );
$cart->add_to_cart( $product_id , 1, 0, array(), $custom_data );
然后在购物车项目上,您将按如下方式访问这两个项目:
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ) {
// Access first custom data array
if( isset($cart_item['tmcartepo']['option1']) && ! empty($cart_item['tmcartepo']['option1']) ) {
$extra_options_data = $cart_item['tmcartepo']['option1'];
}
// Access Second custom data array
if( isset($cart_item['tmcartepo']['option1']) && ! empty($cart_item['tmcartepo']['option1']) ) {
$extra_options_data_2 = $cart_item['tmcartepo']['option2'];
}
}
或者你也可以这样使用:
$custom_data = array(
'tmcartepo' => $extra_options_data,
'tmcartepo2' => $extra_options_data_2,
);
然后在购物车项目上,您将按如下方式访问这两个项目:
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ) {
// Access first custom data array
if( isset($cart_item['tmcartepo']) && ! empty($cart_item['tmcartepo']) ) {
$extra_options_data = $cart_item['tmcartepo'];
}
// Access Second custom data array
if( isset($cart_item['tmcartepo2']) && ! empty($cart_item['tmcartepo2']) ) {
$extra_options_data_2 = $cart_item['tmcartepo2'];
}
}