在 WooCommerce 中添加 link 到 "You must be logged in to checkout" 消息
Add link to "You must be logged in to checkout" message in WooCommerce
在 WooCommerce 设置页面中,我将客户设置为 不允许 允许在没有帐户的情况下下订单。然后必须登录客户才能结帐。我对这个设置没有问题。它工作正常。
现在,如果客户未登录,则会显示此消息“您必须登录才能结帐。”我只需要在这条消息的末尾添加一个link。
我使用此代码可以更改文本并添加link
function filter_woocommerce_checkout_must_be_logged_in_message( $message ) {
$message = 'You must be logged in to checkout. <a href="#" id="login-register">login / Register</a>';
return $message;
}
add_filter( 'woocommerce_checkout_must_be_logged_in_message', 'filter_woocommerce_checkout_must_be_logged_in_message', 10, 1 );
但问题是 html(link)按原样打印(未呈现为 link)。
看看我的截图,看看我的意思。
那是因为过滤器传递给 esc_html()
这一行是从/templates/checkout/form-checkout.php line 26 @version 3.5.0
复制过来的
echo esc_html( apply_filters( 'woocommerce_checkout_must_be_logged_in_message', __( 'You must be logged in to checkout.', 'woocommerce' ) ) );
所以如果你真的想添加 HTML 你将不得不覆盖模板文件。这
可以通过将模板文件复制到 yourtheme/woocommerce/checkout/form-checkout.php
.
来覆盖模板文件
替换
echo esc_html( apply_filters( 'woocommerce_checkout_must_be_logged_in_message', __( 'You must be logged in to checkout.', 'woocommerce' ) ) );
有
echo esc_html( apply_filters( 'woocommerce_checkout_must_be_logged_in_message', __( 'You must be logged in to checkout.', 'woocommerce' ) ) ) . ' <a href="#" id="login-register">login / Register</a>';
在 WooCommerce 设置页面中,我将客户设置为 不允许 允许在没有帐户的情况下下订单。然后必须登录客户才能结帐。我对这个设置没有问题。它工作正常。
现在,如果客户未登录,则会显示此消息“您必须登录才能结帐。”我只需要在这条消息的末尾添加一个link。
我使用此代码可以更改文本并添加link
function filter_woocommerce_checkout_must_be_logged_in_message( $message ) {
$message = 'You must be logged in to checkout. <a href="#" id="login-register">login / Register</a>';
return $message;
}
add_filter( 'woocommerce_checkout_must_be_logged_in_message', 'filter_woocommerce_checkout_must_be_logged_in_message', 10, 1 );
但问题是 html(link)按原样打印(未呈现为 link)。
看看我的截图,看看我的意思。
那是因为过滤器传递给 esc_html()
这一行是从/templates/checkout/form-checkout.php line 26 @version 3.5.0
复制过来的echo esc_html( apply_filters( 'woocommerce_checkout_must_be_logged_in_message', __( 'You must be logged in to checkout.', 'woocommerce' ) ) );
所以如果你真的想添加 HTML 你将不得不覆盖模板文件。这
可以通过将模板文件复制到 yourtheme/woocommerce/checkout/form-checkout.php
.
替换
echo esc_html( apply_filters( 'woocommerce_checkout_must_be_logged_in_message', __( 'You must be logged in to checkout.', 'woocommerce' ) ) );
有
echo esc_html( apply_filters( 'woocommerce_checkout_must_be_logged_in_message', __( 'You must be logged in to checkout.', 'woocommerce' ) ) ) . ' <a href="#" id="login-register">login / Register</a>';