Last active
August 29, 2015 14:07
-
-
Save dendeffe/a37a772f55793f478230 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class WC_Gateway_BACS_custom extends WC_Gateway_BACS { | |
function __construct() { | |
parent::__construct(); | |
} | |
/** | |
* Process the payment and return the result | |
* | |
* @access public | |
* @param int $order_id | |
* @return array | |
*/ | |
function process_payment( $order_id ) { | |
global $woocommerce; | |
$order = new WC_Order( $order_id ); | |
// Mark as processing (that's what we want to change!) | |
$order->update_status('processing', __( 'Awaiting BACS payment', 'woocommerce' )); | |
// Reduce stock levels | |
$order->reduce_order_stock(); | |
// Remove cart | |
$woocommerce->cart->empty_cart(); | |
// Return thankyou redirect | |
return array( | |
'result' => 'success', | |
'redirect' => add_query_arg('key', $order->order_key, add_query_arg('order', $order->id, get_permalink(woocommerce_get_page_id('thanks')))) | |
); | |
} | |
/** | |
* Add content to the WC emails. | |
* | |
* @access public | |
* @param WC_Order $order | |
* @param bool $sent_to_admin | |
* @param bool $plain_text | |
* @return void | |
*/ | |
public function email_instructions( $order, $sent_to_admin, $plain_text = false ) { | |
if ( ! $sent_to_admin && 'bacs' === $order->payment_method) { | |
if ( $this->instructions ) { | |
echo wpautop( wptexturize( $this->instructions ) ) . PHP_EOL; | |
} | |
$this->bank_details( $order->id ); | |
} | |
} | |
/** | |
* Get bank details and place into a list format | |
*/ | |
private function bank_details( $order_id = '' ) { | |
if ( empty( $this->account_details ) ) { | |
return; | |
} | |
echo '<h2>' . __( 'Our Bank Details', 'woocommerce' ) . '</h2>' . PHP_EOL; | |
$bacs_accounts = apply_filters( 'woocommerce_bacs_accounts', $this->account_details ); | |
if ( ! empty( $bacs_accounts ) ) { | |
foreach ( $bacs_accounts as $bacs_account ) { | |
$bacs_account = (object) $bacs_account; | |
if ( $bacs_account->account_name || $bacs_account->bank_name ) { | |
echo '<h3>' . implode( ' - ', array_filter( array( $bacs_account->account_name, $bacs_account->bank_name ) ) ) . '</h3>' . PHP_EOL; | |
} | |
echo '<ul class="order_details bacs_details">' . PHP_EOL; | |
// BACS account fields shown on the thanks page and in emails | |
$account_fields = apply_filters( 'woocommerce_bacs_account_fields', array( | |
'account_number'=> array( | |
'label' => __( 'Account Number', 'woocommerce' ), | |
'value' => $bacs_account->account_number | |
), | |
'sort_code' => array( | |
'label' => __( 'Sort Code', 'woocommerce' ), | |
'value' => $bacs_account->sort_code | |
), | |
'iban' => array( | |
'label' => __( 'IBAN', 'woocommerce' ), | |
'value' => $bacs_account->iban | |
), | |
'bic' => array( | |
'label' => __( 'BIC', 'woocommerce' ), | |
'value' => $bacs_account->bic | |
) | |
), $order_id ); | |
foreach ( $account_fields as $field_key => $field ) { | |
if ( ! empty( $field['value'] ) ) { | |
echo '<li class="' . esc_attr( $field_key ) . '">' . esc_attr( $field['label'] ) . ': <strong>' . wptexturize( $field['value'] ) . '</strong></li>' . PHP_EOL; | |
} | |
} | |
echo '</ul>'; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment