Last active
June 3, 2023 18:11
-
-
Save vanbo/6adcc700c13fa8a746d8 to your computer and use it in GitHub Desktop.
Remove bank details from WC order email. Place in functions.php
This file contains 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
// Add your own action for the bank instructions | |
add_action( 'woocommerce_email_before_order_table', 'prefix_email_instructions', 9, 3 ); | |
function prefix_email_instructions( $order, $sent_to_admin, $plain_text = false ) { | |
// Get the gateway object | |
$gateways = WC_Payment_Gateways::instance(); | |
$available_gateways = $gateways->get_available_payment_gateways(); | |
$gateway = isset( $available_gateways['bacs'] ) ? $available_gateways['bacs'] : false; | |
// We won't do anything if the gateway is not available | |
if ( false == $gateway ) { | |
return; | |
} | |
// Add only the email instructions | |
if ( ! $sent_to_admin && 'bacs' === $order->payment_method && $order->has_status( 'on-hold' ) ) { | |
if ( $gateway->instructions ) { | |
echo wpautop( wptexturize( $gateway->instructions ) ) . PHP_EOL; | |
} | |
} | |
} | |
// Remove the original bank details | |
add_action( 'init', 'prefix_remove_bank_details', 100 ); | |
function prefix_remove_bank_details() { | |
// Do nothing, if WC_Payment_Gateways does not exist | |
if ( ! class_exists( 'WC_Payment_Gateways' ) ) { | |
return; | |
} | |
// Get the gateways instance | |
$gateways = WC_Payment_Gateways::instance(); | |
// Get all available gateways, [id] => Object | |
$available_gateways = $gateways->get_available_payment_gateways(); | |
if ( isset( $available_gateways['bacs'] ) ) { | |
// If the gateway is available, remove the action hook | |
remove_action( 'woocommerce_email_before_order_table', array( $available_gateways['bacs'], 'email_instructions' ), 10, 3 ); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello. My friend, I need to remove the bacs info from the email if the client select credit card option and leave it if they select direct transfer. This code will work for me in that case? I'm sorry, I'm new in this. Thank you :)