用户在购物车页面点击“继续结帐”后重定向到自定义 URL (wordpress)

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)

但是,在这种情况下,此过滤器也会在结帐页面上触发,我想在购物车页面上以及单击“继续结帐”后触发它。

请指教。

谢谢你,

Roh*_*ner 5

您可以做的是,在代码中使用条件标签:

    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)。

希望对您有帮助。如果您对此有任何疑问,可以发表评论。