【发布时间】:2022-04-22 10:48:59
【问题描述】:
如果有人未选中“条款”复选框(在结帐页面中),我看到 WooCommerce 会给出错误消息(您必须接受我们的条款和条件。)。
如何更改/编辑错误消息?
【问题讨论】:
标签: wordpress woocommerce
如果有人未选中“条款”复选框(在结帐页面中),我看到 WooCommerce 会给出错误消息(您必须接受我们的条款和条件。)。
如何更改/编辑错误消息?
【问题讨论】:
标签: wordpress woocommerce
您可以使用 woocommerce_add_error 过滤器执行此操作。将以下内容添加到您的 functions.php 文件中。
// alter the subscriptions error
function my_woocommerce_add_error( $error ) {
if( 'The generic error message' == $error ) {
$error = 'The shiny brand new error message';
}
return $error;
}
add_filter( 'woocommerce_add_error', 'my_woocommerce_add_error' );
【讨论】:
function my_woocommerce_add_error( $error ) { if( 'You must accept our Terms & Conditions.' == $error ) { $error = 'My new message.'; } return $error; }
我今天试过了,不幸的是这不起作用。
这是来自:woocommerce > classes > class-wc-checkout.php 的代码
// Terms
if ( ! isset( $_POST['woocommerce_checkout_update_totals'] ) && empty( $this->posted['terms'] ) && woocommerce_get_page_id( 'terms' ) > 0 )
$woocommerce->add_error( __( 'You must accept our Terms & Conditions.', 'woocommerce' ) );
很高兴看到您必须接受我们的条款和条件的编辑方式。 原始消息显示:您必须接受我们的条款和条件 我想说:请确认您的年龄
我总是可以破解核心,但我更喜欢看看你是否有发布的方法。
【讨论】:
您必须找到 woocommerce 为特定错误设置的密钥,然后像这样编辑它,在下面的示例中,我正在编辑默认文本,该文本显示何时没有可用的运输方式并且客户尝试结帐:
function prefix_edit_error_message( $fields, $errors ) {
$errors->remove( 'shipping' ); // remove default error message
$errors->add( 'shipping', 'My custom text' ); // add our custom error message
}
add_action('woocommerce_after_checkout_validation', 'prefix_edit_error_message', 10, 2);
您可以输出errors 的内容以查看您必须删除哪个错误,然后重新添加以获得所需的效果。在您的情况下,您需要将 shipping 替换为 terms。
在撰写此答案时,钩子位于此处:https://github.com/woocommerce/woocommerce/blob/6.4.1/plugins/woocommerce/includes/class-wc-checkout.php#L889
在未来版本的 WooCommerce 中,它很可能被称为相同的东西,即使它的文件位置可能会改变
【讨论】:
您可以随时编辑翻译文件。在这种情况下,您必须在 PO 编辑器中打开 .pot 文件并使用更改后的字符串创建一个新的 en_US 翻译文件:
wp-content/plugins/woocommerce/i18n/languages/woocommerce.pot
【讨论】: