在将添加到购物车中的产品存储并在清空购物车时恢复它们时,下面的这些代码对我不起作用。我之所以将现有产品保存在购物车中,是因为有些情况下用户只结帐购物车中的特定产品,所以我需要它们在结帐后存储/保存和恢复。
有人可以帮我改正吗?
这里的代码应该保存:
function save_cart_details()
{
if (is_user_logged_in())
{
global $current_user;
wp_get_current_user();
$user_id = $current_user->ID;
$cart_contents = WC()->cart->get_cart();
$meta_key = 'cart-'.date('l dS F');
$meta_value = $cart_contents;
update_user_meta( $user_id, $meta_key, $meta_value);
}
die();
}
add_action( 'wp_ajax_nopriv_save_cart_details', 'save_cart_details' );
add_action('wp_ajax_save_cart_details', 'save_cart_details');
下面据说可以恢复购物车上保存的产品:
add_action( 'wp_ajax_nopriv_restore_cart_details', 'restore_cart_details' );
add_action('wp_ajax_restore_cart_details', 'restore_cart_details');
function restore_cart_details($wdm_selected_cart_key)
{
$cart_content = get_user_meta($user_id, $wdm_selected_cart_key, true);
// add cart contents
foreach ( $cart_content as $cart_item_key => $values )
{
$id =$values['product_id'];
$quant=$values['quantity'];
WC()->cart->add_to_cart( $id, $quant);
}
die();
}