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