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

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

Вроде все просто, нашел, где добавлению товаров мешает исключение в 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?

A9
На сайте с 04.01.2012
Offline
317
#1

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

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

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

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

https://qckl.net - аренда выделенных серверов от 9.99€! Адекватная политика абуз! При оплате от 6 мес. - 3 мес. в подарок! Заказывайте!
J
На сайте с 29.06.2017
Offline
0
#2

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

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