WC_Discounts::validate_coupon_excluded_product_categories() protected WC 3.2.0
Exclude categories from product list.
{} Это метод класса: WC_Discounts{}
Хуков нет.
Возвращает
true/false.
Использование
// protected - в коде основоного (родительского) или дочернего класса $result = $this->validate_coupon_excluded_product_categories( $coupon );
- $coupon(WC_Coupon) (обязательный)
- Coupon data.
Список изменений
С версии 3.2.0 | Введена. |
Код WC_Discounts::validate_coupon_excluded_product_categories() WC Discounts::validate coupon excluded product categories WC 5.0.0
protected function validate_coupon_excluded_product_categories( $coupon ) {
if ( count( $coupon->get_excluded_product_categories() ) > 0 ) {
$categories = array();
foreach ( $this->get_items_to_validate() as $item ) {
if ( ! $item->product ) {
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() ) );
}
$cat_id_list = array_intersect( $product_cats, $coupon->get_excluded_product_categories() );
if ( count( $cat_id_list ) > 0 ) {
foreach ( $cat_id_list as $cat_id ) {
$cat = get_term( $cat_id, 'product_cat' );
$categories[] = $cat->name;
}
}
}
if ( ! empty( $categories ) ) {
/* translators: %s: categories list */
throw new Exception( sprintf( __( 'Sorry, this coupon is not applicable to the categories: %s.', 'woocommerce' ), implode( ', ', array_unique( $categories ) ) ), 114 );
}
}
return true;
}