更新购物车后自动从购物车重定向到结帐

时间:2020-01-06 05:40:20

标签: php wordpress woocommerce hook-woocommerce

在我的Woocommerce购物车页面上,当update_cart_action()函数执行完毕后,当用户单击“更新购物车”按钮时,我想自动将他们重定向到结帐页面。

WC update_cart_action()函数的最后几行处理重定向:

if ( ! empty( $_POST['proceed'] ) ) {
    wp_safe_redirect( wc_get_checkout_url() );
    exit;
} elseif ( $cart_updated ) {
    wc_add_notice( __( 'Cart updated.', 'woocommerce' ), apply_filters( 'woocommerce_cart_updated_notice_type', 'success' ) );
    $referer = remove_query_arg( array( 'remove_coupon', 'add-to-cart' ), ( wp_get_referer() ? wp_get_referer() : wc_get_cart_url() ) );
    wp_safe_redirect( $referer );
    exit;
}

我尝试为$ _POST ['proceed']分配一个值来调用wc_get_checkout_url(),例如:

function mytheme_trigger_proceed_to_checkout( $cart_updated ) {

    $_POST['proceed'] = true;

    return $cart_updated;
}
add_filter( 'woocommerce_update_cart_action_cart_updated', 'mytheme_trigger_proceed_to_checkout', 10, 1 );

但是,我没有重定向到我的结帐网址,而是重定向到了空白页面的购物车网址。直接编辑WC插件代码可获得相同的结果。

购物车更新完成后,如何重定向到结帐网址?

2 个答案:

答案 0 :(得分:1)

我还没有准备好确切的代码,但是过去我做过类似的事情。

尝试在$ cart_updated上点击以下内容

function my_custom_add_to_cart_redirect( $url ) {
    $url = WC()->cart->get_checkout_url();
    // $url = wc_get_checkout_url(); // since WC 2.5.0
    return $url;
}
add_filter( 'woocommerce_add_to_cart_redirect', 'my_custom_add_to_cart_redirect' );

答案 1 :(得分:1)

在活动主题的functions.php中添加以下代码片段以完成上述操作-

const app = {
  isEnabled: null,
  init: () => {
    app.isEnabled = false;
  },
  toggleEnabled: () => {
    app.isEnabled = !app.isEnabled;
  },
  displayEnabled: () => {
    console.log('isEnabled?:', app.isEnabled);
  }
}

app.displayEnabled(); // null
app.init();
app.displayEnabled(); // false
app.toggleEnabled();
app.displayEnabled(); // true