Я пытаюсь ограничить клиентов в моем магазине Woocommerce, чтобы они могли заказывать продукты только у 1 поставщика за раз. Я определяю поставщика с помощью специальной таксономии, называемой поставщиком. Код, который я пытаюсь сделать, по какой-то причине ограничивает все.
function filter_woocommerce_add_to_cart_validation( $passed, $product_id, $quantity, $variation_id = null, $variations = null ) {
// If passed
if ( $passed ) {
// If cart is NOT empty when a product is added
if ( !WC()->cart->is_empty() ) {
// Set vars
$current_product_tag_ids = array();
$in_cart_product_tag_ids = array();
// Get current product categories via product_id
$current_product_tag_ids = wc_get_product_term_ids( $product_id, 'supplier' );
// Loop through cart items checking for product categories
foreach ( WC()->cart->get_cart() as $cart_item ) {
// Get product categories from product in cart via cart item product id
$in_cart_product_tag_ids = array_merge( $in_cart_product_tag_ids, wc_get_product_term_ids( $cart_item['product_id'], 'product_cat' ) );
}
// Removes duplicate values
$in_cart_product_tag_ids = array_unique( $in_cart_product_tag_ids, SORT_NUMERIC );
// Compare
$compare = array_diff( $current_product_tag_ids, $in_cart_product_tag_ids );
// Result is NOT empty
if ( !empty ( $compare ) ) {
wc_add_notice( 'This product is with a different supplier. Please only order from 1 supplier at a time.', 'error' );
$passed = false;
}
}
}
return $passed;
}
add_filter( 'woocommerce_add_to_cart_validation', 'filter_woocommerce_add_to_cart_validation', 10, 5 );
Я не пытаюсь ограничить его одним продуктом на поставщика, я пытаюсь ограничить их, чтобы они могли заказывать продукты только у 1 поставщика на заказ. После того, как они добавили продукт в свою корзину, например, Поставщик 1, они не смогут добавить продукт от любого другого поставщика, кроме Поставщика 1.
В предыдущем посте я пытался использовать категории вместо настраиваемой таксономии, но мне нужно, чтобы они были отдельными, чтобы мы не ограничивались категориями. Это сообщение можно найти здесь: Woocomerce по одной категории на заказ