|
@@ 418-432 (lines=15) @@
|
| 415 |
|
* |
| 416 |
|
* @throws Exception |
| 417 |
|
*/ |
| 418 |
|
private function validate_product_ids() { |
| 419 |
|
if ( sizeof( $this->product_ids ) > 0 ) { |
| 420 |
|
$valid_for_cart = false; |
| 421 |
|
if ( ! WC()->cart->is_empty() ) { |
| 422 |
|
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { |
| 423 |
|
if ( in_array( $cart_item['product_id'], $this->product_ids ) || in_array( $cart_item['variation_id'], $this->product_ids ) || in_array( $cart_item['data']->get_parent(), $this->product_ids ) ) { |
| 424 |
|
$valid_for_cart = true; |
| 425 |
|
} |
| 426 |
|
} |
| 427 |
|
} |
| 428 |
|
if ( ! $valid_for_cart ) { |
| 429 |
|
throw new Exception( self::E_WC_COUPON_NOT_APPLICABLE ); |
| 430 |
|
} |
| 431 |
|
} |
| 432 |
|
} |
| 433 |
|
|
| 434 |
|
/** |
| 435 |
|
* Ensure coupon is valid for product categories in the cart is valid or throw exception. |
|
@@ 521-536 (lines=16) @@
|
| 518 |
|
* |
| 519 |
|
* @throws Exception |
| 520 |
|
*/ |
| 521 |
|
private function validate_cart_excluded_product_ids() { |
| 522 |
|
// Exclude Products |
| 523 |
|
if ( sizeof( $this->exclude_product_ids ) > 0 ) { |
| 524 |
|
$valid_for_cart = true; |
| 525 |
|
if ( ! WC()->cart->is_empty() ) { |
| 526 |
|
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { |
| 527 |
|
if ( in_array( $cart_item['product_id'], $this->exclude_product_ids ) || in_array( $cart_item['variation_id'], $this->exclude_product_ids ) || in_array( $cart_item['data']->get_parent(), $this->exclude_product_ids ) ) { |
| 528 |
|
$valid_for_cart = false; |
| 529 |
|
} |
| 530 |
|
} |
| 531 |
|
} |
| 532 |
|
if ( ! $valid_for_cart ) { |
| 533 |
|
throw new Exception( self::E_WC_COUPON_EXCLUDED_PRODUCTS ); |
| 534 |
|
} |
| 535 |
|
} |
| 536 |
|
} |
| 537 |
|
|
| 538 |
|
/** |
| 539 |
|
* Exclude categories from cart. |