在结帐页面上更改WooCommerce结帐错误文本

时间:2019-07-02 20:49:40

标签: php wordpress woocommerce hook-woocommerce

我想添加我自己的自定义付款错误文本(我们使用帐户资金并希望添加额外的提示)

我该如何更改,以下内容显示了资金不足时的来源:

  

很抱歉,您的付款方式似乎不可用   州。如果您需要帮助或希望提供帮助,请与我们联系   替代安排。

显示具有以下链接的错误消息:

  

您没有足够的资金来处理此订单,请<a href="/my-account">top up</a>或进行升级。谢谢。

该文本似乎存储在template / checkout / payment.php

https://github.com/woocommerce/woocommerce/blob/ef05bfccfc01bb2c621ef1293e61f7c57950670f/templates/checkout/payment.php

如何在不因Woocommerce版本升级而消失的情况下进行更改?

4 个答案:

答案 0 :(得分:3)

在WordPress中,过滤器是可以挂钩到事件的函数(称为挂钩)。在执行过程中,触发事件时,会将过滤器应用于事件挂钩生成的数据输出。重要的是要记住,过滤器会对接收到的数据执行其操作,然后在数据显示在浏览器中之前将其返回。

在您附加的文件(payment.php)中

apply_filters( 'woocommerce_no_available_payment_methods_message' ....

因此,您可以使用过滤器“ woocommerce_no_available_payment_methods_message”来更改文本

创建自定义函数并将其添加到函数文件或小插件中。

首先,我们将自己的功能与woocommerce事件挂钩

add_filter( 'woocommerce_no_available_payment_methods_message', 'your_custom_function_name_here' );

现在,我们定义函数的功能。

function your_custom_function_name_here( $content ) {
    //your changes here
    $content = "bla bla";
    // Returns the content.
    return $content;
}

答案 1 :(得分:0)

add_filter( 'woocommerce_no_available_payment_methods_message', 'change_payment_message', 10, 2);
function change_payment_message( $value, $arg2 ) {
    $message = WC()->customer->get_billing_country()?'You do not have sufficent funds to process this order, please<a
  href="/my-account">top up</a> or upgrade. Thank you':'Please fill in your details above to see available payment methods.';
    return $message;
}

答案 2 :(得分:0)

您只需要添加一个过滤器,然后将更改应用于子主题的functions.php文件即可:

add_filter( 'woocommerce_no_available_payment_methods_message', function( $no_gateways_message ) {
    return 'You do not have sufficent funds to process this order, please <a href="' . home_url( '/my-account/' ) . '">top up</a> or upgrade. Thank you.';
});

让我知道是否可行。

答案 3 :(得分:0)

感谢@cornel,您的代码对我有用。

我还可以如下进行修改:

add_filter( 'woocommerce_no_available_payment_methods_message', function( $no_gateways_message ) {
    return 'Sorry, you do not have sufficent funds to process this order, please <a href="' . home_url( '/my-account/' ) . '">Click here top up</a> or upgrade. Thank you.';
});