use*_*422 2 php wordpress woocommerce
当用户在购物车页面点击“继续结帐”时,我想将他发送到自定义 URL。我在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;
}
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,此过滤器也会在结帐页面上触发,我想在购物车页面上以及单击“继续结帐”后触发它。
请指教。
谢谢你,
您可以做的是,在代码中使用条件标签:
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;
}
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您想在单击“添加到卡片”按钮后将用户重定向到自定义 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;
}
Run Code Online (Sandbox Code Playgroud)
第二次编辑:
您可以做的就是简单地在结账页面模板上制作:
<?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();
?>
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我创建了名为自定义模板的模板,并将其保存wtemplate.php
在主题文件夹中。
下一步是创建新页面。我创建了名为“简单模板”的新页面(您可以将其命名为任何您想要的名称)。在侧边栏中,有模板选项(您可以参见下图以供参考),我选择了“自定义模板”作为模板。
现在转到仪表板 > WooCommerce > 设置 > 结帐 **,其中有选择结帐页面的选项(您可以在下图中找到)。选择您制作的页面(我制作了**简单模板,如您在上面的代码中看到的)并保存。
现在,每当用户单击 时Proceed to Checkout
,他们都会重定向到该自定义模板。在自定义模板中,您可以链接到woocommerce default checkout page
(在我的例子中,它的 page_id=6)。
希望对您有帮助。如果您对此有任何疑问,可以发表评论。