我正在使用此代码将产品添加到购物车。它永久存在,因为如果不在购物车中,此代码会立即添加它。 我想要的是用户可以选择将其从购物车中删除。所以它应该在用户删除它时设置一些cookie。但是如何设置cookie以及如何询问cookie是否存在? cookie可以永久设置。这样,一旦取消选择,用户就不会再在购物车中自动获得产品。
function add_product_to_cart() {
if ( ! is_admin() ) {
$product_id = 123; // Product ID to auto-add
$variation_id = 124; // Set to 0 if no variation
if ( empty( $product_id ) || ) {
return;
}
// Get WC Cart
$cart = WC()->cart;
// Get WC Cart items
$cart_items = $cart->get_cart();
// Check if product is already in cart
if ( 0 < count( $cart_items ) ) {
foreach ( $cart_items as $cart_item_key => $values ) {
$_product = $values['data'];
// Product is already in cart, bail
if ( $_product->get_id() == $product_id ) {
return;
}
}
}
// Add product to cart
$cart->add_to_cart( $product_id, 1, $variation_id );
// Calculate totals
$cart->calculate_totals();
// Save cart to session
$cart->set_session();
// Maybe set cart cookies
$cart->maybe_set_cart_cookies();
}
}
add_action( 'template_redirect', 'add_product_to_cart' );