Заставить продавать конкретный продукт WooCommerce в отдельном заказе.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Заставить продавать конкретный продукт WooCommerce в отдельном заказе.

Сообщение Anonymous »

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

Код: Выделить всё

function filter_woocommerce_add_to_cart_validation( $passed, $product_id, $quantity, $variation_id = null, $variations = null ) {
// Product id to bought alone
$product_id_alone = 666;

// Set variable
$alone = true;

// If passed
if ( $passed ) {
// If cart is NOT empty when a product is added
if ( !WC()->cart->is_empty() ) {

// If product id added = product id alone
if ( $product_id_alone == $product_id ) {
$alone = false;
} else {
// Generate a unique ID for the cart item
$product_cart_id = WC()->cart->generate_cart_id( $product_id_alone );

// Check if product is in the cart
$in_cart = WC()->cart->find_product_in_cart( $product_cart_id );

// If product is already in cart
if ( $in_cart ) {
$alone = false;
}
}
} else {

if ( $product_id_alone == $product_id) {
$alone = true;
}
}
}

if ( $alone == false ) {
// Set error message
$message = 'Product 666 must be bought separately.';
wc_add_notice( __( $message, 'woocommerce' ), 'error' );
$passed = false;
}

return $passed;
}
add_filter( 'woocommerce_add_to_cart_validation', 'filter_woocommerce_add_to_cart_validation', 10, 5 );
Если корзина пуста, я могу добавить товар с идентификатором 666 в произвольном количестве.
Как только товар появится ID 666 добавлен в корзину, я не могу добавить в корзину еще один товар.
И если я начну с добавления еще одного товара в пустую корзину, я не смогу добавить товар ID 666 в корзину.
Проблема в том, что если я добавлю товар с ID 666 в пустую корзину, я не смогу увеличить количество товара 666, добавив в корзину больше этого товара.

Подробнее здесь: https://stackoverflow.com/questions/671 ... rate-order
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»