我已经搜索了足够多,但没有找到这个问题的答案,但这可能是一个简单的问题。
在分析中,我想为购买设定目标,我们只有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进行筛选
最合适的回答,由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