JezK
Edit File: class-cartflows-pro-gateway-bacs.php
<?php /** * Bacs Gateway. * * @package cartflows */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Class Cartflows_Pro_Gateway_Bacs. */ class Cartflows_Pro_Gateway_Bacs { /** * Member Variable * * @var instance */ private static $instance; /** * Key name variable. * * @var key */ public $key = 'bacs'; /** * Refund supported * * @var is_api_refund */ public $is_api_refund = false; /** * Initiator */ public static function get_instance() { if ( ! isset( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } /** * Constructor */ public function __construct() { add_filter( 'woocommerce_bacs_process_payment_order_status', array( $this, 'maybe_setup_upsell_bacs' ), 999, 2 ); add_action( 'woocommerce_email_before_order_table', array( $this, 'add_bank_details_in_email' ), 10, 3 ); } /** * Add Bank Detail content to the WC emails as it received from the order. * * @param WC_Order $order Order object. * @param bool $sent_to_admin Sent to admin. * @param bool $plain_text Email format: plain text or HTML. */ public function add_bank_details_in_email( $order, $sent_to_admin, $plain_text = false ) { if ( ! is_object( $order ) || ! $sent_to_admin ) { return false; } $gateway = $order->get_payment_method(); if ( $this->key !== $gateway ) { return false; } if ( $order->has_status( 'on-hold' ) ) { if ( $this->get_wc_gateway()->instructions ) { echo wp_kses_post( wpautop( wptexturize( $this->get_wc_gateway()->instructions ) ) . PHP_EOL ); } add_action( 'woocommerce_bacs_accounts', array( $this, 'modify_bank_details' ) ); } } /** * Pass Bank Details to the WC emails as it received from the order. * * @param array $bank_details Bank Details. * @return array Bank Details. */ public function modify_bank_details( $bank_details ) { return $bank_details; } /** * Setup upsell bacs. * * @since 1.0.0 * @param string $order_status order status. * @param array $order order data. * @return string */ public function maybe_setup_upsell_bacs( $order_status, $order ) { wcf()->logger->log( 'BACS Process payment order status called woocommerce_cod_process_payment_order_status' ); // Set upsell and get new status based on condition. $order_status = wcf_pro()->front->set_upsell_return_new_order_status( $order_status, $order ); return $order_status; } /** * Process offer payment * * @since 1.0.0 * @param array $order order data. * @param array $product product data. * @return bool */ public function process_offer_payment( $order, $product ) { return true; } /** * Is gateway support offer refund * * @return bool */ public function is_api_refund() { return $this->is_api_refund; } /** * Get WooCommerce payment geteways. * * @return array */ public function get_wc_gateway() { global $woocommerce; $gateways = $woocommerce->payment_gateways->payment_gateways(); return $gateways[ $this->key ]; } } /** * Prepare if class 'Cartflows_Pro_Gateway_Bacs' exist. * Kicking this off by calling 'get_instance()' method */ Cartflows_Pro_Gateway_Bacs::get_instance();