当用户点击'继续结帐'在购物车页面,我想将他发送到自定义网址。我在functions.php中使用了这个过滤器
add_filter('woocommerce_get_checkout_url', 'dj_redirect_checkout');
function dj_redirect_checkout($url) {
global $woocommerce;
$checkout_url = 'http://my-custom-url.com';
return $checkout_url;
}
但是,在这种情况下,此过滤器也会在结帐页面上触发,我想在购物车页面上触发它,然后点击“结束”结帐'仅
请建议。
谢谢,
答案 0 :(得分:4)
您可以做的是,在代码中使用conditional tags:
add_filter('woocommerce_get_checkout_url', 'dj_redirect_checkout');
function dj_redirect_checkout($url) {
global $woocommerce;
if(is_cart()){
$checkout_url = 'http://my-custom-url.com';
}
else {
//other url or leave it blank.
}
return $checkout_url;
}
已编辑:
如果您想在点击添加到卡片按钮后将用户重定向到自定义URL,那么您可以使用以下代码:
add_filter ('add_to_cart_redirect', 'redirect_to_checkout');
function redirect_to_checkout() {
global $woocommerce;
$checkout_url = 'http://my-custom-url.com';
return $checkout_url;
}
第二次修改:
您可以为此做的只是在模板上制作结帐页面:
<?php
/**
* Template Name: Custom Template
*
*Custom Template for the woocommerce checkout page
*
*/
get_header();?>
<a href="?page_id=6">Click Me! </a>
<?php
get_footer();
?>
在上面的代码中,我创建了名称为自定义模板的模板,并将其与wtemplate.php
一起保存在主题文件夹中。
下一步是创建新页面。我创建了一个名为简单模板的新页面(您可以根据需要为其命名)。在侧边栏中,可以选择模板(您可以在下面看到图片以供参考),我选择自定义模板作为模板。
现在转到信息中心&gt; WooCommerce&gt;设置&gt;结帐**,并且可以选择结帐页面(您可以在下面的图片中找到)。选择您已制作的页面(我已经制作了**简单模板,如上面的代码所示)并保存。
现在,只要用户点击Proceed to Checkout
,他们就会重定向到该自定义模板。在自定义模板中,您可以链接到woocommerce default checkout page
(在我的情况下,它有page_id = 6)。
希望对您有所帮助。如果您对此有任何疑问,可以发表评论。