woocommerce重定向到结帐不起作用

时间:2018-10-09 11:15:40

标签: wordpress woocommerce

我已通过编程方式在购物车中添加了产品,然后希望将用户重定向到结帐页面,并跳过产品页面和购物车页面。产品已成功添加,但没有转到结帐页面,并显示空白页面,没有错误。仅当我清除浏览器现金时才会发生这种情况。第二次工作正常。用户来自到产品页面的自定义链接。我希望当用户位于产品页面上时,产品应自动添加,并且用户应重定向到结帐页面。这是我的代码

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;
}


    }
  }

1 个答案:

答案 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