在 Woocommerce 中,我需要在添加产品时跳过购物车页面,并仅针对订阅产品类型直接重定向到结帐。
我在其他地方找到了以下代码,该代码可用于根据产品 ID 跳过购物车页面,但是我无法正确使用产品类型(有关我尝试的内容,请参见下文)。
function woocommerce_skip_cart() {
global $woocommerce;
$product_id = (int) apply_filters( 'woocommerce_add_to_cart_product_id', $_POST['add-to-cart'] );
if ( $product_id == 31 || $product_id == 31 ) {
$checkout_url = WC()->cart->get_checkout_url();
return $checkout_url;
}
}
add_filter ('woocommerce_add_to_cart_redirect', 'woocommerce_skip_cart');
我尝试过的:(它破坏了整个网站:变成一个空白页面)
function woocommerce_skip_cart() {
global $woocommerce;
$product_id = (int) apply_filters( 'woocommerce_add_to_cart_product_id', $_POST['add-to-cart'] );
$product = wc_get_product( $product_id );
if ( $product->is_type( 'subscription' ) ){
$checkout_url = WC()->cart->get_checkout_url();
return $checkout_url;
}
}
add_filter ('woocommerce_add_to_cart_redirect', 'woocommerce_skip_cart');
知道如何实现这一目标吗?
答案 0 :(得分:1)
我修改了你的代码。试试下面的代码。
function woocommerce_skip_cart( $url ) {
$product_id = (int) apply_filters( 'woocommerce_add_to_cart_product_id', $_POST['add-to-cart'] );
if( $product_id ){
$product = wc_get_product( $product_id );
if ( $product->is_type( 'subscription' ) || $product->is_type( 'variable-subscription' ) ){
$checkout_url = WC()->cart->get_checkout_url();
return $checkout_url;
}
}
return $url;
}
add_filter ('woocommerce_add_to_cart_redirect', 'woocommerce_skip_cart');