Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用户单击后重定向到自定义URL';继续结帐';在购物车页面(wordpress)_Php_Wordpress_Woocommerce - Fatal编程技术网

Php 用户单击后重定向到自定义URL';继续结帐';在购物车页面(wordpress)

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

当用户在购物车页面单击“继续结帐”时,我想将他发送到自定义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; 
}
但是,在这种情况下,这个过滤器也会在结帐页面上触发,我想在购物车页面上触发它,然后单击“继续结帐”

请告诉我

谢谢,

您可以做的是,在代码中使用:

    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添加了过滤器,它在所有页面上都进行了处理(例如,对于购物车页面和带有账单和发货详细信息的下订单页面)。我只需要将此过滤器应用于购物车页面上的“继续结帐”按钮。请告知。