static function get_subscriptions($untyped_array_of_products)
 {
     $typed_array_of_products = array();
     foreach ($untyped_array_of_products as $untyped_product) {
         $wc_product = wc_get_product($untyped_product->ID);
         if ($wc_product->is_type('subscription')) {
             $typed_product = new Matrix42_Subscription();
             $typed_product = Matrix42_Product::assign_product_details($wc_product, $typed_product);
             /*
              * Subscription
              */
             $typed_product->signup_fee = WC_Subscriptions_Product::get_sign_up_fee($wc_product->id);
             $typed_product->recurring_fee = WC_Subscriptions_Product::get_price($wc_product->id);
             $typed_product->recurring_interval = WC_Subscriptions_Product::get_interval($wc_product->id);
             $typed_product->recurring_period = WC_Subscriptions_Product::get_period($wc_product->id);
             array_push($typed_array_of_products, $typed_product);
         }
     }
     return $typed_array_of_products;
 }
 function get_product($slim)
 {
     $context = $this;
     $slim->get('/slim/api/v1/products/:product_id', function ($product_id) use($context) {
         /*
          * Get one specific posts of type product
          */
         $result = Matrix42_Product::get_product($product_id);
         /*
          * return the result as json
          */
         echo json_encode($result);
     });
 }