前言
在WooCommerce商店中,支付网关的标题和描述是客户在结账时看到的关键信息。默认的显示方式可能不符合您的品牌或业务需求。本文将详细介绍如何通过代码和过滤器(Filter)自定义这些文本,确保使用官方推荐的方法,避免重复造轮子。
核心方法:使用WooCommerce过滤器
WooCommerce提供了强大的过滤器系统来修改支付网关的显示信息。主要涉及以下两个过滤器:
woocommerce_gateway_title: 用于修改支付网关的标题。woocommerce_gateway_description: 用于修改支付网关的描述。
基本代码示例
将以下代码添加到您子主题的 functions.php 文件中,或使用代码片段插件。
/**
* 自定义支付网关标题和描述
*/
add_filter('woocommerce_gateway_title', 'custom_payment_gateway_title', 10, 2);
add_filter('woocommerce_gateway_description', 'custom_payment_gateway_description', 10, 2);
function custom_payment_gateway_title($title, $gateway_id) {
// 根据网关ID进行条件判断
if ($gateway_id === 'cod') {
$title = '💵 货到付款';
} elseif ($gateway_id === 'bacs') {
$title = '🏦 银行转账';
} elseif ($gateway_id === 'cheque') {
$title = '📄 支票支付';
}
// 可以继续添加其他网关
return $title;
}
function custom_payment_gateway_description($description, $gateway_id) {
// 根据网关ID自定义描述
if ($gateway_id === 'bacs') {
$description = '请使用以下银行账户信息进行转账。转账后请通过邮件或电话通知我们,以便及时处理您的订单。';
} elseif ($gateway_id === 'cod') {
$description = '商品送达时,支付现金给配送员。';
}
return $description;
}
进阶应用与最佳实践
1. 针对特定支付网关(如PayPal)
如果您安装了第三方网关(如PayPal标准版),其ID通常是 paypal。请查看网关设置页面或文档以确认其ID。
// 在之前的函数中添加PayPal的条件判断
if ($gateway_id === 'paypal') {
$title = '🔗 PayPal 安全支付';
// 或者修改描述
// $description = '通过PayPal快速安全地完成支付。';
}
2. 根据条件动态显示
您可以结合购物车金额、用户角色或配送地区来动态改变文本。
function custom_payment_gateway_title_conditional($title, $gateway_id) {
if ($gateway_id === 'cod' && WC()->cart->total > 500) {
// 如果订单金额超过500,则不显示“货到付款”
return '大额订单暂不支持货到付款';
}
return $title;
}
add_filter('woocommerce_gateway_title', 'custom_payment_gateway_title_conditional', 10, 2);
3. 使用多语言支持
如果您的网站是多语言的(使用WPML或Polylang),请确保文本可被翻译插件识别。
if ($gateway_id === 'bacs') {
$title = __('银行转账', 'your-text-domain');
$description = __('请使用以下银行账户信息...', 'your-text-domain');
}
注意事项
- 安全第一:修改主题的
functions.php前,请做好备份。建议使用子主题。 - 网关ID:确保使用的
$gateway_id准确无误。您可以在WooCommerce设置-支付页面找到每个网关的ID。 - 代码优先级:过滤器优先级(第三个参数)默认为10,数字越大执行越晚。通常无需修改。
- 缓存:修改后请清除所有缓存(包括对象缓存、页面缓存)以确保更改生效。
总结
通过使用 woocommerce_gateway_title 和 woocommerce_gateway_description 这两个官方过滤器,您可以轻松、安全地自定义任何支付网关的显示文本。这种方法完全遵循WooCommerce的开发规范,是未来兼容性最佳的选择。建议从简单的条件替换开始,再根据业务需求添加更复杂的逻辑。