Php 用户单击后重定向到自定义URL';继续结帐';在购物车页面(wordpress)
当用户在购物车页面单击“继续结帐”时,我想将他发送到自定义URL。我在functions.php中使用了这个过滤器Php 用户单击后重定向到自定义URL';继续结帐';在购物车页面(wordpress),php,wordpress,woocommerce,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'; retur
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;
}
但是,在这种情况下,这个过滤器也会在结帐页面上触发,我想在购物车页面上触发它,然后单击“继续结帐”
请告诉我
谢谢,您可以做的是,在代码中使用:
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();
?>
在上面的代码中,我创建了名为custom template的模板,并将其保存在主题文件夹中的wtemplate.php
下一步是创建新页面。我创建了一个名为简单模板的新页面(您可以随意命名)。在侧边栏中,有一个模板选项(您可以看到下图以供参考),我选择了自定义模板作为模板
现在转到仪表板>WooCommerce>设置>签出**,在其中,有选择签出页面的选项(您可以在下图中找到)。选择您制作的页面(我制作了**简单模板,您可以在上面的代码中看到),然后保存它
现在,每当用户单击“继续签出”,他们都会重定向到该自定义模板。在自定义模板中,您可以链接到默认签出页面“”(在我的示例中,该页面的id=6)
希望对您有所帮助。如果您对此有任何疑问,可以发表评论。对不起!但是我很困惑。。以上代码是否有效?如果是的话,它会把你带到两页吗?它是什么意思-但是,在这种情况下,此筛选器也会在签出页面上触发,我希望在购物车页面上以及单击“继续签出”后触发它。上面的代码可以工作,但它可以在两个页面上工作(购物车和签出)。我想让它只在用户点击“继续结帐”后在购物车页面上工作,谢谢,但它只会将我发送到空页面(条件不工作),它会将你发送到某个地方,这意味着它正在工作。您需要调试它才能使其正常工作。只需从echo开始:)不,这意味着它没有看到is_cart()条件,并将我发送到带有购物车URL的空页面,因为存在空的else{}条件,那么为什么不将woocommerce的默认URL放在那里呢。我不知道你想要实现什么,但是你可以把woocommerce的结账页面放在那里,比如:
else{$checkout\u url='woocommercesdefaultpage.com'}
谢谢你的回复。我的想法是在用户单击“继续结帐”后将用户发送到自定义页面(在那里他将能够进入标准的woocommerce结帐页面)。据我所见,我为woocommerce\u get\u checkout\u url添加了过滤器,它在所有页面上都进行了处理(例如,对于购物车页面和带有账单和发货详细信息的下订单页面)。我只需要将此过滤器应用于购物车页面上的“继续结帐”按钮。请告知。