public function getUserMIs() { if (empty($this->focusSubscription->id)) { return array(); } $focus = $this->focusSubscription->id; $return = array(); if (!empty($this->objSubscription->plan)) { $selected_plan = new SubscriptionPlan(); $selected_plan->load($this->objSubscription->plan); $mis = $selected_plan->getMicroIntegrations(); if (empty($mis)) { $mis = array(); } $sec = $this->getSecondarySubscriptions(true); if (!empty($sec)) { foreach ($sec as $pid) { if ($this->moveFocus($pid)) { $selected_plan = new SubscriptionPlan(); $selected_plan->load($this->focusSubscription->plan); $miis = $selected_plan->getMicroIntegrations(); if (!empty($miis)) { $mis = array_merge($mis, $miis); } } } } if (count($mis)) { $mis = array_unique($mis); foreach ($mis as $mi_id) { if ($mi_id) { $mi = new MicroIntegration(); $mi->load($mi_id); if (!$mi->callIntegration()) { continue; } $return[] = $mi; } } } } // Go back to initial focus, if it has been changed if ($this->focusSubscription->id != $focus) { $this->moveFocus($focus); } return $return; }
/** * @param metaUser $metaUser * @param SubscriptionPlan $subscription_plan */ public function userPlanExpireActions($metaUser, $subscription_plan, $special = null) { $mi_autointegrations = $this->getAutoIntegrations(); if (empty($mi_autointegrations) && empty($subscription_plan)) { return null; } $mis = $subscription_plan->getMicroIntegrations(); if (is_array($mis)) { $user_auto_integrations = array_intersect($mis, $mi_autointegrations); } if (empty($user_auto_integrations)) { return null; } foreach ($user_auto_integrations as $mi_id) { $mi = new microIntegration(); $mi->load($mi_id); if ($mi->callIntegration()) { $invoice = null; if (!empty($metaUser->focusSubscription->id)) { $invoice = new Invoice(); $invoice->loadbySubscriptionId($metaUser->focusSubscription->id); if (empty($invoice->id)) { $invoice = null; } } $mi->expiration_action($metaUser, $subscription_plan, $invoice); if (!empty($special)) { $mi->relayAction($metaUser, null, $invoice, $subscription_plan, $special); } } } }