Woocommerce remove bank account number on order thank you page

I am using woocommerce site and I have enabled the direct bank transfer payment method. I want to remove the account number of order thank you page but want to show in emails. Same function is called in both cases.

How can I differentiate it to show the account number only in email.. not on thank you page. I have tried it like:

Read More
global $pagename;
if($pagename == "checkout"){
//remove bank account number
}else{
//show bank account number
}

But its Not working.. can anyone give me suggestions…

Also i used this.

add_action('woocommerce_before_template_part', 'thankyou_bacs');

function thankyou_bacs() {
    /* get bacs payment gateway class */
    $methods = WC()->payment_gateways->payment_gateways();
    $bacs_class = $methods['bacs'];
    unset($bacs_class->account_details[0]['account_name']);
    unset($bacs_class->account_details[0]['account_number']);
}

working great for checkout page, but hiding these details from email too. ๐Ÿ™ ๐Ÿ™

Related posts

Leave a Reply

3 comments

  1. You could try to use conditional is_page('checkout') or is_checkout(), first.

    Then you can use remove_action() for removing your hooked function from checkout page onlyโ€ฆ

    This way you don’t have to edit templates.

    —- Update —-

    USING CSS:
    You can also use CSS to hide just account number targeting one of this selectors/classes. For example, in one of my e-commerce, this are the css selectors to target:

    • .woocommerce-checkout ul.order_details.bacs_details
    • .woocommerce-checkout ul.order_details.bacs_details > li.iban
    • .woocommerce-checkout ul.order_details.bacs_details > li.bic

    With: display:none;

    —- update2 —-

    Using your hook with a conditional:

    1). Inside:

    add_action('woocommerce_before_template_part', 'thankyou_bacs');
    function thankyou_bacs() {
        if(is_checkout()){
            /* get bacs payment gateway class */
            $methods = WC()->payment_gateways->payment_gateways();
            $bacs_class = $methods['bacs'];
            unset($bacs_class->account_details[0]['account_name']);
            unset($bacs_class->account_details[0]['account_number']);
        }
    }
    

    2). Outside:

    if(is_checkout()){
        add_action('woocommerce_before_template_part', 'thankyou_bacs');
        function thankyou_bacs() {
            /* get bacs payment gateway class */
            $methods = WC()->payment_gateways->payment_gateways();
            $bacs_class = $methods['bacs'];
            unset($bacs_class->account_details[0]['account_name']);
            unset($bacs_class->account_details[0]['account_number']);
        }
    }
    
  2. Look in your Woocommerce plugin folder for the default templates:

    wp-contentpluginswoocommercetemplates
    

    Then create a new folder called ‘woocommerce’ under your WordPress theme:

    wp-contentthemes(your theme name)woocommerce
    

    Keeping the same folder structure as under templates, copy all the files/folders across or just the ones you wish to modify. You can now edit the copy under your theme, these should be automatically detected by the plugin as overwritten now. Check under Woocommerce > System Status to ensure it’s working.

    For the thank you page, it would be under:

    woocommercecheckoutthankyou.php
    

    Just remove the payment method display from there.

    The emails have their own folder too, modify if desired.

    For more details:
    https://docs.woothemes.com/document/template-structure/

  3. Via Customise, Additional CSS add:

    .woocommerce-bacs-bank-details {
        display: none;
    }
    

    If you do this with a live Checkout Page in Customizer you can see the effect.