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

Posted

技术标签:

【中文标题】Woocommerce 删除订单感谢页面上的银行帐号【英文标题】:Woocommerce remove bank account number on order thank you page 【发布时间】:2016-10-04 06:12:47 【问题描述】:

我正在使用 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']);

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

【问题讨论】:

@LoicTheAztec 感谢您的指点,但这不是问题。 :) 更新了我的答案:你的钩子里面有一个条件...... 【参考方案1】:

您可以先尝试使用有条件的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;

---- 更新2 ----

使用带有条件的钩子:

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

2)。外面:

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

【讨论】:

结帐页面和电子邮件模板都使用支付网关的相同功能。我应该在支付网关文件中使用is_page('checkout')is_checkout() 来区分两者吗?? @MahaDev 两者都是一样的。你可以用它们代替$pagename == "checkout"...我已经更新了我的问题 我不想隐藏整个银行详细信息,只想隐藏帐号。所有其他信息将显示给用户。 remove_action 会正确隐藏它,我想。 这不会也从电子邮件中隐藏它吗?因为无论我在结帐页面上做什么,在电子邮件中都会发生同样的事情。 更新了我的问题。尝试另一种方法,但也面临内部问题【参考方案2】:

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

\wp-content\plugins\woocommerce\templates\

然后在您的 Wordpress 主题下创建一个名为“woocommerce”的新文件夹:

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

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

感谢页面位于:

\woocommerce\checkout\thankyou.php

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

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

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

【讨论】:

我不想隐藏整个付款方式描述,而是隐藏帐号。【参考方案3】:

通过自定义,附加 CSS 添加:

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

如果您使用定制器中的实时结帐页面执行此操作,您可以看到效果。

【讨论】:

以上是关于Woocommerce 删除订单感谢页面上的银行帐号的主要内容,如果未能解决你的问题,请参考以下文章

如果在Woocommerce上的URL中手动更改订单键,则显示错误

选择 BACS 帐户以显示在 WooCommerce 的感谢页面中

php 在WooCommerce上添加PostAffTracker脚本在订单完成后感谢您的页面

php 在WooCommerce上添加自定义javascripts感谢David客户端订单完成后的页面

php 在WooCommerce上添加自定义javascripts或php操作感谢您在订单完成后的页面

在后端删除付款详细信息 Woocommerce 订单页面