public function get_vietqr_bank_list() { $transient_name = 'vietqr_banklist'; $cached_banks = get_transient($transient_name); if ( false !== $cached_banks ) { return json_decode($cached_banks, true); } $response = wp_remote_get("https://api.vietqr.io/v2/banks"); if ( is_wp_error($response) || 200 !== wp_remote_retrieve_response_code($response) ) { // Ghi lại lỗi để debug nếu cần, nhưng không làm sập trang error_log('VietQR Bank List API failed: ' . wp_remote_retrieve_response_message($response)); return array(); // Luôn trả về một mảng để tránh lỗi } $body = wp_remote_retrieve_body($response); set_transient( $transient_name, $body, DAY_IN_SECONDS ); // Cache for 1 day return json_decode($body, true); } public function search_bank_info($bank_short_name) { // Đảm bảo $this->bank_list đã được gọi và có dữ liệu if ( empty($this->bank_list) || !isset($this->bank_list['data']) ) { return null; } foreach ($this->bank_list['data'] as $bank_data) { if ($bank_data['short_name'] === $bank_short_name) { return array( "name" => $bank_data['name'], "logo" => $bank_data['logo'], ); } } return null; } Demo - PhucT Digital
Bỏ khung