J'ai assez cherché et je n'ai pas trouvé de réponse à cette question, mais celle-ci peut être simple.
En analytique, je souhaite définir des objectifs d’achat. Nous n’avons que 5 produits. Chaque achat de produit doit donc être un objectif distinct.
Le moyen le plus simple de définir un objectif d’achat dans Analytics consiste à fournir un URL de remerciement . Maintenant, l’URL de remerciement de Woocommerce inclut des détails importants dans l’URL de remerciement comme ci-dessous.
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
C'est ainsi que les pages de remerciement de paiement Paypal sont affichées.
Mais lorsqu'un utilisateur effectue un achat directement sur le site avec des passerelles telles que 2checkout, moneris, stripe, j'obtiens le type d'URL ci-dessous.
exampledomain.com/?key=wc_order_5849993d6ec72
Comme vous pouvez le voir ci-dessus, cette URL ne contient pas beaucoup de paramètres à utiliser.
La question est, comment puis-je modifier ces URL pour inclure SKU de produit?
De cette façon, il sera facile pour moi de filtrer en fonction du SKU
vous pouvez modifier l'URL de retour que woocommerce fournit aux passerelles à l'aide du filtre
woocommerce_get_return_url
certains plug-ins de passerelle utilisent une méthode différente pour obtenir l'url de retour en appelant $ order-> get_checkout_order_received_url (); qui applique le filtre
woocommerce_get_checkout_order_received_url
un exemple serait comme:
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;
}
l'URL de résultat sera comme
http://example.com/index.php/checkout/order-received/161/?key=wc_order_585214b2abb65&product_8=SKU1&product_45=SKU2