/** * register new payment gateway * @param array $gateways array of registered gateways * @return array */ public static function register($gateways) { // register the gateway class and additional functions $gateways[] = array ( 'name' => 'eWAY payment gateway', 'api_version' => 2.0, 'image' => EwayPaymentsPlugin::getUrlPath() . 'images/eway-tiny.png', 'internalname' => self::WPSC_GATEWAY_NAME, 'class_name' => __CLASS__, 'has_recurring_billing' => false, 'wp_admin_cannot_cancel' => true, 'display_name' => 'eWAY Credit Card Payment', 'form' => 'EwayPaymentsWpsc_configForm', // called as variable function name, wp-e-commerce is _doing_it_wrong(), again! 'submit_function' => array(__CLASS__, 'saveConfig'), 'payment_type' => 'credit_card', 'requirements' => array( 'php_version' => 5.2, ), ); // register extra fields we require on the checkout form self::setCheckoutFields(); // also register admin hooks if required if (is_admin()) { add_action('wpsc_billing_details_bottom', array(__CLASS__, 'actionBillingDetailsBottom')); } return $gateways; }
/** * initialise gateway with custom settings */ public function __construct() { //~ parent::__construct(); // no parent constructor (yet!) $this->id = 'eway_payments'; $this->icon = apply_filters('woocommerce_eway_icon', EwayPaymentsPlugin::getUrlPath() . 'images/eway-tiny.png'); $this->method_title = 'eWAY'; $this->admin_page_heading = 'eWAY payment gateway'; $this->admin_page_description = 'Integration with the eWAY Direct API credit card payment gateway.'; $this->has_fields = true; // load form fields. $this->initFormFields(); // load settings (via WC_Settings_API) $this->init_settings(); // define user set variables $this->enabled = $this->settings['enabled']; $this->title = $this->settings['title']; $this->description = $this->settings['description']; $this->availability = $this->settings['availability']; $this->countries = $this->settings['countries']; $this->eway_customerid = $this->settings['eway_customerid']; $this->eway_sandbox = $this->settings['eway_sandbox']; $this->eway_stored = $this->settings['eway_stored']; $this->eway_beagle = $this->settings['eway_beagle']; $this->eway_card_form = $this->settings['eway_card_form']; $this->eway_card_msg = $this->settings['eway_card_msg']; $this->eway_site_seal = $this->settings['eway_site_seal']; $this->eway_site_seal_code = $this->settings['eway_site_seal_code']; // handle support for standard WooCommerce credit card form instead of our custom template if ($this->eway_card_form == 'yes') { $this->supports[] = 'default_credit_card_form'; add_filter('woocommerce_credit_card_form_fields', array($this, 'wooCcFormFields'), 10, 2); add_action('woocommerce_credit_card_form_start', array($this, 'wooCcFormStart')); add_action('woocommerce_credit_card_form_end', array($this, 'wooCcFormEnd')); } // add email fields add_filter('woocommerce_email_order_meta_keys', array($this, 'wooEmailOrderMetaKeys')); // save admin options, via WC_Settings_API // v1.6.6 and under: add_action('woocommerce_update_options_payment_gateways', array($this, 'process_admin_options')); // v2.0+ add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options')); }
<?php // WooCommerce admin settings page ?> <img style="float:right" src="<?php echo esc_url(EwayPaymentsPlugin::getUrlPath()); ?>images/eway-siteseal.png" /> <h3><?php echo esc_html($this->admin_page_heading); ?></h3> <p><?php echo esc_html($this->admin_page_description); ?></p> <table class="form-table"> <?php $this->generate_settings_html(); ?> </table> <script> (function($) { /** * check whether both the sandbox (test) mode and Stored Payments are selected, * show warning message if they are */ function setVisibility() { var useTest = ($("#woocommerce_eway_payments_eway_sandbox").filter(":checked").val() === "1"), useBeagle = ($("#woocommerce_eway_payments_eway_beagle").filter(":checked").val() === "1"), useStored = ($("#woocommerce_eway_payments_eway_stored").filter(":checked").val() === "1"); function display(element, visible) { if (visible) element.css({display: "none"}).show(750); else element.hide(); } display($("#woocommerce-eway-admin-stored-test"), (useTest && useStored));