在结账页面更改WooCommerce结账错误文本

6
我想添加自己的定制付款错误文本(我们使用账户资金并想添加额外提示)。
如何更改以下内容,当没有足够的资金时显示:
抱歉,似乎您的州没有可用的付款方式。如果您需要帮助或希望进行替代安排,请与我们联系。
更改为以下带有链接的错误消息:
您没有足够的资金来处理此订单,请充值或升级。谢谢。
该文本似乎存储在templates/checkout/payment.php中。
如何更改而不会被Woocommerce版本升级清除?
3个回答

7
在WordPress中,过滤器是可以挂接到事件(称为钩子)的函数。在执行期间,当事件被触发时,过滤器被应用于由事件钩子生成的数据输出。需要记住的是,过滤器对其接收的数据执行操作,并在显示在浏览器中之前将该数据返回。
在您附加的文件(payment.php)中,您有
apply_filters( 'woocommerce_no_available_payment_methods_message' ....

您可以使用过滤器“woocommerce_no_available_payment_methods_message”更改文本。

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

首先,我们将自己的函数与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;
}

嗨Mo,谢谢你。这个问题有赏金。请发布一个完整的经过测试的代码解决方案来获得奖励。谢谢Gracie。 - Gracie

3

您只需添加一个过滤器并在子主题的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.';
});

如果有效,请告诉我。


2
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;
}

cPanel文件管理器显示“Syntax Error Unexpected T_FUNCTION”。 - sigur7
这段代码破坏了结账页面,导致出现“网站遇到技术困难”的消息。 - Gracie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接