如何更改或添加WooCommerce感谢页面URL关键内容?

时间:2016-12-14 作者:Dave

我已经搜索了足够多,但没有找到这个问题的答案,但这可能是一个简单的问题。

在分析中,我想为购买设定目标,我们只有5种产品,因此每次购买产品都应该是一个单独的目标。

在分析中设置购买目标的简单方法是supply thank you URL. 现在,Woocommerce感谢URL包括以下感谢URL中的重要细节。

exampledomain.com/?key=wc_order_584a9caad78bc&amt=239.00&cc=USD&charset=windows-1252&cm={"order_id":13586,"order_key":"wc_order_584a9caad78bc"}&st=Completed&tx=2AF5736382483492L
这就是贝宝支付感谢页面的显示方式。

但当用户直接在网站上通过2checkout、moneris、stripe等网关进行购买时,我会得到下面的URL类型。

exampledomain.com/?key=wc_order_5849993d6ec72
正如您在上面所看到的,这个URL不包含很多参数供我使用。

The question is, How do I edit these URLs to include product SKU?

这样,我就可以很容易地根据SKU进行筛选

1 个回复
最合适的回答,由SO网友:Mohamed Ali 整理而成

您可以使用过滤器编辑woocommerce提供给网关的返回url

woocommerce_get_return_url
一些网关插件使用不同的方法通过调用$order->get\\u checkout\\u order\\u received\\u url()获取返回url;应用过滤器

woocommerce_get_checkout_order_received_url
例如:

add_filter(\'woocommerce_get_return_url\',\'override_return_url\',10,2);

function override_return_url($return_url,$order){

    //create empty array to store url parameters in 
    $sku_list = array();

    // retrive products in order
    foreach($order->get_items() as $key => $item)
    {
      $product = wc_get_product($item[\'product_id\']);
      //get sku of each product and insert it in array 
      $sku_list[\'product_\'.$item[\'product_id\'] . \'sku\'] = $product->get_sku();
    }
    //build query strings out of the SKU array
    $url_extension = http_build_query($sku_list);
    //append our strings to original url
    $modified_url = $return_url.\'&\'.$url_extension;

    return $modified_url;

  }
结果url如下

http://example.com/index.php/checkout/order-received/161/?key=wc_order_585214b2abb65&product_8=SKU1&product_45=SKU2

相关推荐

PayPal Express在WooCommerce的产品页面上-似乎在产品页面上不起作用?

我想知道为什么PayPal Express Checkout 对我的页面无效。我不得不暂时禁用它(因为它是一个实时站点),但您可以在此处看到该页面:https://steampunkjunkies.com/product/cryptex-original-black-32gb-usb-drive/以下是我在设置中勾选的内容WooCommerce > Settings > Checkout > PayPal Express Checkout:这就是它在产品页面上的外观:我使用的插件是Wo