Приведенный ниже код отлично работает, когда в вашем магазине только один товар. Но как мне применить это к каждому продукту в моем магазине и к вновь созданным продуктам без необходимости go кодировать каждый раз, когда создается новый продукт (назначить переменную $ product_id с идентификатором вновь созданного продукта) .
Предположим, у меня в магазине есть продукты A, B, C. Когда я захожу на страницу продукта A, продукт A необходимо автоматически добавить в корзину, а когда я захожу на страницу продукта B корзина должна быть опорожнена / сброшена / необходимо удалить A, и только продукт B должен быть добавлен в корзину и так далее. Я использую Woocommerce на одной странице оформления заказа, поэтому все это происходит на странице одного продукта.
/*
* Add item to cart on visit
*/
function add_product_to_cart() {
if ( ! is_admin() ) {
global $woocommerce;
$product_id = 64;
$found = false;
//check if product already in cart
if ( sizeof( $woocommerce->cart->get_cart() ) > 0 ) {
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if ( $_product->id == $product_id )
$found = true;
}
// if product not found, add it
if ( ! $found )
$woocommerce->cart->add_to_cart( $product_id );
} else {
// if no products in cart, add it
$woocommerce->cart->add_to_cart( $product_id );
}
}
}
add_action( 'init', 'add_product_to_cart' );
Например, ссылка