. * * @author Cardpay Solutions, Inc. * @package Authorize.Net CIM for WooCommerce * @since 1.0.0 */ if ( !defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } /** * Main class to set up the Authorize.Net gateway */ class WC_Cardpay_Authnet { /** * Constructor */ public function __construct() { define( 'WC_CARDPAY_AUTHNET_TEMPLATE_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) . '/templates/' ); define( 'WC_CARDPAY_AUTHNET_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) ); add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'plugin_action_links' ) ); add_action( 'plugins_loaded', array( $this, 'init' ), 0 ); add_action( 'woocommerce_order_status_completed', array( $this, 'process_capture' ) ); add_action( 'init', array( $this, 'create_credit_card_post_type' ) ); add_action( 'wp_enqueue_scripts', array( $this, 'load_css' ) ); } /** * Add relevant links to plugins page * @param array $links * @return array */ public function plugin_action_links( $links ) { $addons = ( class_exists( 'WC_Subscriptions_Order' ) || class_exists( 'WC_Pre_Orders_Order' ) ) ? '_addons' : ''; $plugin_links = array( '' . __( 'Settings', 'woocommerce-cardpay-authnet' ) . '', ); return array_merge( $plugin_links, $links ); } /** * Init function */ public function init() { if ( ! class_exists( 'WC_Payment_Gateway' ) ) { return; } // Includes include_once( 'includes/class-wc-cardpay-authnet-gateway.php' ); include_once( 'includes/class-wc-cardpay-authnet-api.php' ); include_once( 'includes/class-wc-cardpay-authnet-credit-cards.php' ); if ( class_exists( 'WC_Subscriptions_Order' ) || class_exists( 'WC_Pre_Orders_Order' ) ) { include_once( 'includes/class-wc-cardpay-authnet-gateway-addons.php' ); // Support Subscriptions 1.x if ( ! function_exists( 'wcs_create_renewal_order' ) ) { include_once( 'includes/deprecated/class-wc-cardpay-authnet-gateway-addons-deprecated.php' ); } } // Localisation load_plugin_textdomain( 'woocommerce-cardpay-authnet', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' ); // Add Authorize.Net Gateway add_filter( 'woocommerce_payment_gateways', array( $this, 'add_gateway' ) ); } /** * Add Authorize.Net gateway to Woocommerce */ public function add_gateway( $methods ) { if ( class_exists( 'WC_Subscriptions_Order' ) || class_exists( 'WC_Pre_Orders_Order' ) ) { if ( class_exists( 'WC_Subscriptions_Order' ) && ! function_exists( 'wcs_create_renewal_order' ) ) { $methods[] = 'WC_Cardpay_Authnet_Gateway_Addons_Deprecated'; } else { $methods[] = 'WC_Cardpay_Authnet_Gateway_Addons'; } } else { $methods[] = 'WC_Cardpay_Authnet_Gateway'; } return $methods; } /** * process_capture function * * @param int $order_id * @return void */ public function process_capture( $order_id ) { $gateway = new WC_Cardpay_Authnet_Gateway(); $gateway->process_capture( $order_id ); } /** * create_credit_card_post_type function */ public function create_credit_card_post_type() { register_post_type( 'authnet_credit_card', array( 'labels' => array( 'name' => __( 'Credit Cards', 'woocommerce-cardpay-authnet' ) ), 'public' => false, 'show_ui' => false, 'map_meta_cap' => false, 'rewrite' => false, 'query_var' => false, 'supports' => false, ) ); } /** * Load style sheet */ public function load_css() { wp_enqueue_style( 'cardpay-authnet', plugins_url( 'assets/css/cardpay-authnet.css', __FILE__ ) ); } } new WC_Cardpay_Authnet();