WooComerce. Разрешить покупать товары, которых нет в наличии.

J
На сайте с 29.06.2017
Offline
0
1424

Вроде все просто, нашел, где добавлению товаров мешает исключение в class-wc-cart.php, а именно:

// Stock check - only check if we're managing stock and backorders are not allowed

if ( ! $product_data->is_in_stock() ) {

throw new Exception( sprintf( __( 'You cannot add "%s" to the cart because the product is out of stock.', 'woocommerce' ), $product_data->get_name() ) );

}

Не могу понять, как отключить данное исключение через функцию (просто удалить не пойдет!). Пришел к этому:

add_filter( 'woocommerce_add_to_cart_validation', 'woocommerce_add_cart_item_data_custom',5,6 );

function woocommerce_add_cart_item_data_custom( $product_id, $quantity, $variation_id = '', $variation = array(), $cart_item_data = array() ) {

$product_data = wc_get_product( $product_id );

$cart_item_data = (array) apply_filters( 'woocommerce_add_cart_item_data', $cart_item_data, $product_id, $variation_id );

$cart_id = WC()->cart->generate_cart_id( $product_id, $variation_id, $variation, $cart_item_data );

$cart_item_key = WC()->cart->find_product_in_cart( $cart_id );

// Stock check - only check if we're managing stock and backorders are not allowed

if ( ! $product_data->is_in_stock() ) {

continue;

}

return false;

}

Но не работает. Все перепробовал. Как отменить выполнение исключения - throw new Exception?

adel92
На сайте с 04.01.2012
Offline
334
#1

Почему бы тогда не пойти другим путем.

Просто разрешить заказывать все товары и не ставить им отметку нет в наличии.

Все равно же минимум людей его закажут.

Можно указать например, предзаказ и все.

NVMe VDS (https://well-web.net/nvme-vps) с поддержкой 24/7 - от 545 руб.! Безлимитный хостинг (https://well-web.net/ssd-hosting) - от 129 руб.! Домен в подарок! Перенос бесплатно! Заказывайте сейчас, и получите скидку 50%! Заходи! (https://well-web.net/limited-offers)
J
На сайте с 29.06.2017
Offline
0
#2

Мне нужно, что бы в запасах можно было вести учет товара который есть в наличии и которого нет. нужно что бы была возможность поставить отметку нет в наличии, но возможен предзаказ. Ставить предзаказ на товар который есть в наличии - глупо. Тем более все упирается в эту единсвенную проверку, при удалении которой напрямую все работает как нужно мне! Но нужно через функцию что бы при обновлении не слетело!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий