【问题标题】:Pass query parameter into WooCommerce checkout upon redirect重定向时将查询参数传递到 WooCommerce 结帐
【发布时间】:2021-07-01 23:21:58
【问题描述】:

感觉我一定遗漏了一些很明显的东西——寻找你能提供的任何帮助。

有用的背景:

  • WordPress:5.7.2
  • WooCommerce:5.4.1
  • 标准商店页面
  • 标准结帐页面

场景:

我的商店页面在 url 中有一个自定义查询参数(例如?model=macbook)。我也希望将该查询参数和值传递给重定向的结帐 url。这样它就可以读取 - example.com/checkout/?model=macbook

我目前在我的子主题的functions.php 中使用以下代码。这可以处理重定向到结帐添加到购物车的操作没有问题,但我的 php noobie-ness 无法弄清楚如何正确使用 add_query_arg 来完成结帐 url。

    // Checkout Redirect
    add_filter('woocommerce_add_to_cart_redirect', 'this_add_to_cart_redirect');
    function this_add_to_cart_redirect() {
     global $woocommerce;
     $checkout_url = wc_get_checkout_url();
     return $checkout_url;
    }

任何和所有帮助表示赞赏。

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    你去吧:

    // Checkout Redirect
    add_filter( 'woocommerce_add_to_cart_redirect', 'this_add_to_cart_redirect' );
    function this_add_to_cart_redirect() {
        global $woocommerce;
    
        $checkout_url = add_query_arg( [
            'model' => 'macbook',
        ], wc_get_checkout_url() );
    
        return $checkout_url;
    }
    

    【讨论】:

    • 你先生,真棒。有没有办法让这个值是动态的?因此,例如,用户“A”可能有 model=XYZ,用户“B”可能有 model=ABC @Mr.Jo 商店页面 url 将包含用户会话的正确动态值——我只需要获取该值并通过将其放入结帐重定向的模型参数中。
    • @Josh 确保您可以根据某些值使其动态化。我在您的问题中没有看到任何给定的值,所以我无法在这里提供帮助。
    • 感谢@Mr.Jo – 'model' 参数实际上是一个动态字段,最初由提交表单的用户填充。提交表单时,该值已传递到商店页面。我想在结帐重定向时再次通过它。因此,理想情况下,add_to_cart_redirect 查看当前 url 字符串中参数键“model”(例如 model=XYZ)的自定义值,并将其附加到结帐时的添加到购物车重定向 url(例如 .../checkout?型号=XYZ)
    • 在这种情况下,您可以在 PHP 中使用 $_POST$_GET 获取它,并将其作为值传递给查询函数而不是 macbook:w3schools.com/php/php_superglobals_post.asp w3schools.com/php/php_superglobals_get.asp
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2022-07-12
    • 2018-07-18
    • 2018-12-23
    相关资源
    最近更新 更多