Woocommerce-在订单接收的页面URL中显示SKU

时间:2018-07-30 17:21:26

标签: php wordpress woocommerce

我进行营销,我需要知道客户是否购买了特定产品,这样我才能对其进行再营销。

因此,“除了向那些已访问订单页面的用户显示此广告之外”对我来说不起作用,因为我需要对几种产品进行再营销以个性化营销活动。

按照本教程,我可以在ADD-TO-CART / CHECKOUT页面中添加SKU:https://www.themelocation.com/how-to-add-sku-to-product-url-in-woocommerce/

但是SKU不会传播到“谢谢”页面(已收到订单),我仅收到以下参数: order-received / 286 /?key = wc_order_5b5f46b2ec536

(286是订单号,而不是SKU)。

这是我需要的结果: order-received / 286 /?key = wc_order_5b5f46b2ec536?SKU = [PRODUCT-SKU]

有什么办法可以做到这一点? 在收到订单的页面中显示SKU?

谢谢!

1 个答案:

答案 0 :(得分:0)

Soooo ...我能够找到方法。这适用于单一产品。

将这段代码添加到functions.php文件中(请记住将其放在您的子主题中,这样在woocommerce升级时就不会被替换)。

这会将SKU添加到收到订单的URL中。

//ADD SKU IN THANK YOU URL
add_filter('woocommerce_get_checkout_order_received_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; 

}

希望有帮助!