web-dev-qa-db-fra.com

Comment modifier ou ajouter le contenu clé de l'URL de la page de remerciement à Woocommerce?

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

4
Dave

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
3
Mohamed Ali