我使用以下代码(粘贴在我的主题functions.php 文件中)将未登录的用户从结帐页面重定向到 WooCommerce 我的帐户登录表单:
add_action( 'template_redirect', 'redirect_to_specific_page' );
function redirect_to_specific_page() {
if ( is_page('finalizar-compra') && ! is_user_logged_in() ) {
wp_redirect( 'https:/miweb.pe/login', 301 );
exit;
}
}
用户登录后,如何将其重定向回之前的 URL?
此处,之前的 URL 为:
https://miweb.com/finalizar-compra
。
我尝试过使用
https://miweb.pe/login/?redirect_to=https://miweb.pe/finalizar-compra
,但不起作用。
在 WooCommerce 结帐中,您可以直接登录,无需任何重定向,但需要从 WooCommerce 设置 > 帐户和隐私 > 启用该选项 客人结账:
然后在结帐页面您将看到类似以下内容:
现在,如果您希望进行重定向,请尝试以下模块化且完整的代码,以在用户登录后重定向用户,从我的帐户返回到结帐 URL:
add_action( 'template_redirect', 'redirect_to_specific_page' );
function redirect_to_specific_page() {
$is_checkout_page = is_checkout() && !is_wc_endpoint_url();
if ( !is_user_logged_in() && $is_checkout_page ) {
global $wp;
$redirect_to = '/?redirect_to=' . urlencode( site_url( $wp->request ) );
wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id')) . $redirect_to );
exit();
}
}
代码位于子主题的functions.php文件中(或插件中)。