/** * Checks if $this promotion applies based on $userId 's existing subscriptions and CB fields conditions 1 and 2. * * @param object $obj * @param int $userId * @param array $resultTexts (returned appended) * @param cbpaidPaymentBasket|null $paymentBasket * @return boolean */ public static function checkConditionsOfObject( $obj, $userId, &$resultTexts, $paymentBasket ) { if ( $obj->cond_1_operator ) { $cond1 = new cbpaidCondition(); $cond1->plans_required = $obj->cond_1_plans_required; $cond1->plans_status = $obj->cond_1_plans_status; $cond1->purchase_ok = $obj->cond_1_purchase_ok; $cond1->date_1 = $obj->cond_1_date_1; $cond1->date_cbfield_1 = $obj->cond_1_date_cbfield_1; $cond1->value_1 = $obj->cond_1_value_1; $cond1->dates_diff_a = $obj->cond_1_dates_diff_a; $cond1->dates_diff_b = $obj->cond_1_dates_diff_b; $cond1->date_2 = $obj->cond_1_date_2; $cond1->date_cbfield_2 = $obj->cond_1_date_cbfield_2; $cond1->value_2 = $obj->cond_1_value_2; $c1result = $cond1->checkCondition( $userId, $paymentBasket ); if ( $obj->cond_1_operator == 'not' ) { $c1result = ! $c1result; } $combination = $obj->cond_2_operator; if ( $combination ) { $cond2 = new cbpaidCondition(); $cond2->plans_required = $obj->cond_2_plans_required; $cond2->plans_status = $obj->cond_2_plans_status; $cond2->purchase_ok = $obj->cond_2_purchase_ok; $cond2->date_1 = $obj->cond_2_date_1; $cond2->date_cbfield_1 = $obj->cond_2_date_cbfield_1; $cond2->value_1 = $obj->cond_2_value_1; $cond2->dates_diff_a = $obj->cond_2_dates_diff_a; $cond2->dates_diff_b = $obj->cond_2_dates_diff_b; $cond2->date_2 = $obj->cond_2_date_2; $cond2->date_cbfield_2 = $obj->cond_2_date_cbfield_2; $cond2->value_2 = $obj->cond_2_value_2; $c2result = $cond2->checkCondition( $userId, $paymentBasket ); switch ( $combination ) { case 'and': $r = $c1result && $c2result; break; case 'or': $r = $c1result || $c2result; break; case 'xor': $r = ( $c1result xor $c2result ); break; case 'andnot': $r = $c1result && ! $c2result; break; default: $r = $c1result; break; } } else { $r = $c1result; } } else { $r = true; } if ( ! $r ) { $resultTexts[] = CBPTXT::T("Promotion applies depending on other subscriptions or conditions."); } return $r; }
/** * Checks if $this plan applies based on $userId 's existing subscriptions and CB fields conditions 1 and 2. * * @param int $userId User id * @param array $resultTexts (returned appended) * @return boolean */ protected function checkActiveConditions( $userId, &$resultTexts ) { $resultTexts = array(); if ( $this->cond_1_operator ) { $r = cbpaidCondition::checkConditionsOfObject( $this, $userId, $resultTexts, null ); } else { $r = true; } return $r; }