/**
  * @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);
             }
         }
     }
 }