我已通过编程方式在购物车中添加了产品,然后希望将用户重定向到结帐页面,并跳过产品页面和购物车页面。产品已成功添加,但没有转到结帐页面,并显示空白页面,没有错误。仅当我清除浏览器现金时才会发生这种情况。第二次工作正常。用户来自到产品页面的自定义链接。我希望当用户位于产品页面上时,产品应自动添加,并且用户应重定向到结帐页面。这是我的代码
add_action('template_redirect','redirect_if_cart_loaded', 10, 2);
function redirect_if_cart_loaded(){
global $woocommerce;
if(is_product() && sizeof( $woocommerce->cart->cart_contents ) == 0){
echo $pooduct_id = get_the_ID();
//check if product already in cart
if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
$woocommerce->cart->empty_cart();
}
// if product not found, add it
WC()->cart->add_to_cart( $pooduct_id );
echo sizeof( WC()->cart->get_cart() ); // this gives 1. means product is added
if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
wp_redirect( WC()->cart->get_checkout_url() );
exit;
}
}
}
答案 0 :(得分:1)
使用
if ( !function_exists( 'wc_get_checkout_url' ) ) {
require_once '/includes/wc-core-functions.php';
}
$result = wc_get_checkout_url();
使用wc_get_checkout_url而不是get_checkout_url,因为已弃用get_checkout_url