#php #wordpress #woocommerce #gravityforms
Вопрос:
У меня есть 5 продуктов, которые используют аддон Woocommerce и Gravity. Я установил настройку запасов в значение «разрешить покупку только одного из этих товаров в одном заказе». Проблема, с которой я сталкиваюсь, заключается в том, что если пользователь добавил товар в корзину, а затем вернулся и снова добавил тот же товар, в форме отображается сообщение с подтверждением по умолчанию «Спасибо, что связались с нами! Мы свяжемся с вами в ближайшее время». Я попытался изменить это сообщение в настройках формы, но это не имеет значения. Но в любом случае это не то решение, которого я хочу. Я нашел кое-что, что дает мне приемлемое решение (мне нужно снять галочку «разрешить покупку только одного товара в одном заказе», чтобы оно работало), но только для одного идентификатора продукта. Мой вопрос в том, как я могу заставить это работать для нескольких идентификаторов?
add_filter( 'woocommerce_add_to_cart_validation', 'limit_cart_items_from_category', 10, 3 );
function limit_cart_items_from_category ( $passed, $product_id, $quantity ){
// HERE define your product ID
$targeted_product_id = 37;
// Check quantity and display notice
if( $quantity > 1 amp;amp; $targeted_product_id == $product_id ){
wc_add_notice( __('Only one item quantity allowed for this product', 'woocommerce' ), 'error' );
return false;
}
// Loop through cart items checking if the product is already in cart
foreach ( WC()->cart->get_cart() as $cart_item ){
if( $targeted_product_id == $product_id amp;amp; $cart_item['data']->get_id() == $targeted_product_id ) {
wc_add_notice( __('This product is already in cart (only one item is allowed).', 'woocommerce' ), 'error' );
return false;
}
}
return $passed;
}
// Checking and removing quantity field for a specific product
add_filter( 'woocommerce_quantity_input_args', 'custom_quantity_input_args', 10, 2 );
function custom_quantity_input_args( $args, $product ) {
// HERE define your product ID
$targeted_product_id = 37;
if( $targeted_product_id == $product->get_id() )
$args['min_value'] = $args['max_value'] = $args['input_value'] = 1;
return $args;
}
Я попытался изменить оба экземпляра
$targeted_product_id = 37;
Для
$targeted_product_ids = array( 2060, 1996, 2120, 2069, 2094 );
Это не сработало. Кто-нибудь может помочь, пожалуйста? Мне еще многому нужно научиться Спасибо.