Ejemplo n.º 1
0
 /**
  * @param bool        $test_mode (default: false)
  * @param string|null $method
  * @return array|Mollie_API_Object_Issuer[]|Mollie_API_Object_List
  */
 public function getIssuers($test_mode = false, $method = NULL)
 {
     $locale = $this->getCurrentLocale();
     try {
         $transient_id = $this->getTransientId('api_issuers_' . ($test_mode ? 'test' : 'live') . "_{$locale}");
         if (empty(self::$api_issuers)) {
             $cached = @unserialize(get_transient($transient_id));
             if ($cached && $cached instanceof Mollie_API_Object_List) {
                 self::$api_issuers = $cached;
             } else {
                 self::$api_issuers = $this->api_helper->getApiClient($test_mode)->issuers->all();
                 set_transient($transient_id, self::$api_issuers, MINUTE_IN_SECONDS * 5);
             }
         }
         // Filter issuers by method
         if ($method !== NULL) {
             $method_issuers = array();
             foreach (self::$api_issuers as $issuer) {
                 if ($issuer->method === $method) {
                     $method_issuers[] = $issuer;
                 }
             }
             return $method_issuers;
         }
         return self::$api_issuers;
     } catch (Mollie_API_Exception $e) {
         Mollie_WC_Plugin::debug(__FUNCTION__ . ": Could not load Mollie issuers (" . ($test_mode ? 'test' : 'live') . "): " . $e->getMessage() . ' (' . get_class($e) . ')');
     }
     return array();
 }