我正在尝试在结帐页面上创建自定义注册链接。这是我使用的片段:
add_action('woocommerce_checkout_fields', 'add_registration_custom_link');
function add_registration_custom_link(){
if(is_checkout()){
if (!is_user_logged_in()){
$info_message = apply_filters( 'woocommerce_checkout_login_message', __( 'New customer?', 'woocommerce' ) );
$info_message .= ‘<a href="http://www.mysite.co.uk?redirect_to=http://www.mysite.co.uk/checkout">’ . __( ‘Click here to Register’, ‘woocommerce’ ) . ‘</a>’;
wc_print_notice( $info_message, 'notice' );
}
}
}
想法是打印一条消息+链接,提示用户注册/登录(如果尚未注册/登录)。它将替换结帐页面顶部的默认登录表单。我想点击“点击此处注册”链接,将用户重定向到“我的帐户”页面,这样他们就可以登录/注册,然后在成功后将其重定向回结帐。
到目前为止,上述代码无法正常工作,并在页面上产生其他问题(即运费和结算表单中的无效参数)。有任何想法如何使其正常工作?
更新:我找到了这个方便的代码段,并将其添加到我的functions.php文件中:
function woocommerce_custom_redirects() {
// Case1: Non logged user on checkout page (cart empty or not empty)
if ( !is_user_logged_in() && is_checkout() )
wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id') ) );
}
add_action('template_redirect', 'woocommerce_custom_redirects');
如果没有登录,则会将用户重定向到“我的帐户”页面。登录/注册后,我需要额外的参数将其重定向回结帐页面。有什么想法吗?
谢谢!