public function load_gateways()
 {
     $gateways = WC_Payment_Gateways::instance()->payment_gateways;
     $order = $this->get('gateway_order');
     // some poorly written plugins will init WC_Payment_Gateways before WP init
     // check to see if POS Cash Gateway is present, if not: re-init WC_Payment_Gateways
     if (!in_array('WC_POS_Gateways_Cash', array_map('get_class', $gateways))) {
         WC_Payment_Gateways::instance()->init();
         $gateways = WC_Payment_Gateways::instance()->payment_gateways;
     }
     // reorder
     $i = count($gateways);
     foreach ($gateways as $gateway) {
         if (isset($order[$gateway->id])) {
             $ordered_gateways[$order[$gateway->id]] = $gateway;
         } else {
             $ordered_gateways[++$i] = $gateway;
         }
         $settings = new WC_POS_Admin_Settings_Gateways($gateway->id);
         $settings->merge_settings($gateway);
         apply_filters('woocommerce_pos_load_gateway', $gateway);
     }
     ksort($ordered_gateways, SORT_NUMERIC);
     return $ordered_gateways;
 }
 public function load_gateways()
 {
     $gateways = WC_Payment_Gateways::instance()->payment_gateways;
     $order = $this->get_data('gateway_order');
     // reorder
     $i = count($gateways);
     foreach ($gateways as $gateway) {
         if (isset($order[$gateway->id])) {
             $ordered_gateways[$order[$gateway->id]] = $gateway;
         } else {
             $ordered_gateways[++$i] = $gateway;
         }
         $settings = new WC_POS_Admin_Settings_Gateways($gateway->id);
         $settings->merge_settings($gateway);
         apply_filters('woocommerce_pos_load_gateway', $gateway);
     }
     ksort($ordered_gateways, SORT_NUMERIC);
     return $ordered_gateways;
 }