在 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 过滤器或等待值然后重定向的方法?
您需要通过以下方式尽快启动客户会话:
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 文件中(或插件中)。应该可以。