2016-12-06 2 views
0

Я добавил код, чтобы разрешить только 1 товар в корзине за один раз. Однако, когда пользователь добавляет какой-либо элемент в свою корзину, он НЕ направляет их на страницу Cart.WooCommerce Перенаправление в корзину После того, как товар добавлен

Вот код, который я использую:

add_filter('woocommerce_add_cart_item_data', 'woo_custom_add_to_cart'); 

function woo_custom_add_to_cart($cart_item_data) { 
global $woocommerce; 
$woocommerce->cart->empty_cart(); 
wc_add_notice('WARNING MESSAGE - You can only have 1 Item in your Cart. Previous Items have been removed.', 'error'); 

return $cart_item_data; 
} 

Так что моя цель состоит в том, чтобы держать эту функцию и сообщение об ошибке, но взять пользователя в корзину. Я уверен, что в этом коде есть что-то, что мешает пользователю идти в корзину и оставаться на странице продукта.

Заранее благодарим за вашу помощь!

+0

Вы можете перенаправить на корзину из опций WC. См. [Этот ответ] (http://stackoverflow.com/a/15593792/383847). – helgatheviking

+0

Спасибо за ответ, но этот флажок уже проверен. Я думаю, что код, упомянутый выше, переопределяет параметры WooCommerce в администраторе WordPress. – Erik

+0

Если вы добавите ошибку, WooCommerce не будет перенаправлять. См. [Источник] (https://github.com/woocommerce/woocommerce/blob/master/includes/class-wc-form-handler.php#L718-L727). Вы можете попытаться настроить тип уведомления на «уведомление». – helgatheviking

ответ

1

Если вы добавите ошибку, то WooCommerce не перенаправит. См. source. Вы можете попытаться настроить тип уведомления на «уведомление».

Очистить корзину при добавлении пункта:

add_filter('woocommerce_add_to_cart_validation', 'so_41002991_empty_cart'); 
function so_41002991_empty_cart($valid){ 
    WC()->cart->empty_cart(); 
    wc_add_notice(__('WARNING MESSAGE - You can only have 1 Item in your Cart. Previous Items have been removed.', 'your-plugin'), 'notice'); 
    return $valid; 
} 

Там есть настройка WooCommerce, что позволит перенаправить в корзину. Но есть также фильтр, который вы можете по желанию использовать:

add_filter('woocommerce_add_to_cart_redirect', 'so_41002991_redirect_to_cart'); 
function so_41002991_redirect_to_cart($url){ 
    return wc_get_cart_url(); 
} 
+0

Верхний вариант, который вы упомянули, работал ОТЛИЧНО !!! Переход к уведомлению вместо ошибки сделал трюк! – Erik

Смежные вопросы