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; }