📅  最后修改于: 2023-12-03 15:42:05.976000             🧑  作者: Mango
在Woocommerce中,如果您想从自定义按钮或链接重定向到结账页面,则必须使用以下代码片段。
add_action( 'template_redirect', 'custom_checkout_redirect' );
function custom_checkout_redirect() {
global $wp;
if ( is_cart() && !is_wc_endpoint_url( 'checkout' ) ) {
wp_redirect( wc_get_checkout_url() );
exit;
}
}
首先,我们使用add_action()
函数将custom_checkout_redirect()
函数添加到主题的template_redirect
钩子中。这意味着在模板重定向之前,我们将执行此函数。
然后,我们使用global $wp
获取WP全局变量。这是必需的,因为我们将用它来重定向到结账页面。
接下来,我们使用is_cart()
检查用户是否在购物车页面,并且检查UPS上是否不存在结账URL。如果是这种情况,就使用wp_redirect
函数将用户重定向到结账页面。
最后,我们使用exit
函数以确保重定向立即生效。
## PHP代码
```php
add_action( 'template_redirect', 'custom_checkout_redirect' );
function custom_checkout_redirect() {
global $wp;
if ( is_cart() && !is_wc_endpoint_url( 'checkout' ) ) {
wp_redirect( wc_get_checkout_url() );
exit;
}
}
```
## 代码解释
1. 首先,我们使用`add_action()`函数将`custom_checkout_redirect()`函数添加到主题的`template_redirect`钩子中。这意味着在模板重定向之前,我们将执行此函数。
2. 然后,我们使用`global $wp`获取WP全局变量。这是必需的,因为我们将用它来重定向到结账页面。
3. 接下来,我们使用`is_cart()`检查用户是否在购物车页面,并且检查UPS上是否不存在结账URL。如果是这种情况,就使用`wp_redirect`函数将用户重定向到结账页面。
4. 最后,我们使用`exit`函数以确保重定向立即生效。