WC_Discounts::validate_coupon_product_categories()
Ensure coupon is valid for product categories in the list is valid or throw exception.
Метод класса: WC_Discounts{}
Хуков нет.
Возвращает
true|false
.
Использование
// protected - в коде основоного (родительского) или дочернего класса $result = $this->validate_coupon_product_categories( $coupon );
- $coupon(WC_Coupon) (обязательный)
- Coupon data.
Список изменений
С версии 3.2.0 | Введена. |
Код WC_Discounts::validate_coupon_product_categories() WC Discounts::validate coupon product categories WC 8.7.0
protected function validate_coupon_product_categories( $coupon ) { if ( count( $coupon->get_product_categories() ) > 0 ) { $valid = false; foreach ( $this->get_items_to_validate() as $item ) { if ( $coupon->get_exclude_sale_items() && $item->product && $item->product->is_on_sale() ) { continue; } $product_cats = wc_get_product_cat_ids( $item->product->get_id() ); if ( $item->product->get_parent_id() ) { $product_cats = array_merge( $product_cats, wc_get_product_cat_ids( $item->product->get_parent_id() ) ); } // If we find an item with a cat in our allowed cat list, the coupon is valid. if ( count( array_intersect( $product_cats, $coupon->get_product_categories() ) ) > 0 ) { $valid = true; break; } } if ( ! $valid ) { throw new Exception( __( 'Sorry, this coupon is not applicable to selected products.', 'woocommerce' ), 109 ); } } return true; }