Woocommerce删除订单上的银行帐号谢谢页面

时间:2016-06-04 05:56:09

标签: php wordpress woocommerce payment-gateway checkout

我正在使用woocommerce网站,我启用了直接银行转帐付款方式。我想删除订单感谢页面的帐号,但想要在电子邮件中显示。在这两种情况下都会调用相同的函数。

如何区分它以仅在电子邮件中显示帐号..不在感谢页面上。我试过它:

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

但是它不起作用..任何人都可以给我建议......

我也用过这个。

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']);
}

非常适合结帐页面,但也会从电子邮件中隐藏这些详细信息。 :( :(

3 个答案:

答案 0 :(得分:5)

您可以先尝试使用条件is_page('checkout')is_checkout()

然后您可以使用remove_action()从结帐页面中移除您的钩子功能...

这样您就不必编辑模板了。

----更新----

使用CSS:
您还可以使用CSS仅隐藏定位到此selectors / classes之一的帐号。例如,在我的一个电子商务中,这是要定位的css选择器:

  • .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

使用:display:none;

---- update2 ----

使用带有条件的钩子:

1)内部:

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']);
    }
}

1)欧塞德:

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']);
    }
}

答案 1 :(得分:1)

在Woocommerce插件文件夹中查找默认模板:

\wp-content\plugins\woocommerce\templates\

然后创建一个名为' woocommerce'的新文件夹。在你的Wordpress主题下:

\wp-content\themes\(your theme name)\woocommerce\

保持与模板下相同的文件夹结构,复制所有文件/文件夹或仅复制您要修改的文件/文件夹。您现在可以在主题下编辑副本,这些应该由插件自动检测为现在被覆盖。检查Woocommerce>系统状态以确保其正常工作。

感谢页面,它将在:

\woocommerce\checkout\thankyou.php

只需从那里删除付款方式显示。

电子邮件也有自己的文件夹,如果需要可以修改。

了解更多详情: https://docs.woothemes.com/document/template-structure/

答案 2 :(得分:0)

通过定制,附加的CSS添加:

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

如果您通过Customizer中的实时“结帐页面”执行此操作,则会看到效果。