WooCommerce 添加到购物车重定向,使用会话 Cookie 作为 URL 变量

问题描述 投票:0回答:1

在 WooCommerce 中,我在“添加到购物车重定向”上使用

woocommerce_add_to_cart_redirect
过滤器挂钩,效果非常好。现在,我尝试添加 WooCommerce 会话 cookie 作为 URL 参数以在重定向平台上使用。

使用下面的方法,我可以重定向并获取会话 cookie 作为 URL 参数,但仅在导航回到主站点并再次添加到购物车(其中生成 cookie)之后:

add_filter( 'woocommerce_add_to_cart_redirect', 'custom_add_to_cart_redirect', 10, 5 );
function custom_add_to_cart_redirect( $redirect_url) {
    $redirect_url = 'https://redirect.here.com';
    
    $wc_cookie = WC()->session->get_session_cookie();
    $wc_cookie = $wc_cookie[0];
    
    wp_safe_redirect( $redirect_url .'?paramname='.$wc_cookie); // Redirecting to the Quotation System
    exit;
}`

这工作正常,但是,我需要导航回来,再次添加到购物车,然后,重定向具有我需要的 cookie 值。我不确定是否需要使用不同的 Woo 过滤器或等待值然后重定向的方法?

php wordpress woocommerce session-cookies urlvariables
1个回答
0
投票

您需要通过以下方式尽快启动客户会话:

add_action( 'woocommerce_init', 'early_enable_woocommerce_session_cookie' );
function early_enable_woocommerce_session_cookie() {
    if( ! is_admin() && isset(WC()->session) && ! WC()->session->has_session() ) {
        WC()->session->set_customer_session_cookie( true ); 
    }
}

代码位于子主题的functions.php 文件中(或插件中)。应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.