在WooCommerce設定頁面設定我的客戶不被允許下訂單沒有一個帳戶。然后客戶必須登錄才能結帳。我對這個設定沒有任何問題。它作業正常。
現在,如果客戶未登錄,則會顯示此訊息“您必須登錄才能結帳”。我只需要在此訊息的末尾添加一個鏈接。
我使用此代碼允許更改文本并添加鏈接
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(鏈接)是按原樣列印的(不呈現為鏈接)。
看看我的捕獲,看看我的意思。

uj5u.com熱心網友回復:
那是因為過濾器被傳遞給esc_html()
此行是從/templates/checkout/form-checkout.php第 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>';
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/409705.html
標籤:
