web-dev-qa-db-ja.com

どのようにWoocommerce感謝ページURLキーコンテンツを変更または追加しますか?

私は十分に検索しましたが、この質問に対する答えが見つかりませんでしたが、これは単純なものかもしれません。

分析では、購入の目標を設定したいと考えています。商品は5つしかないため、商品を購入するたびに個別の目標を設定します。

Analyticsで購入目標を設定する簡単な方法は、 支給ありがとうございますURL です。さて、Woocommerceのthank you URLには、thank you 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

PayPalのお支払いありがとうページが表示されます。

しかし、ユーザーが2checkout、moneris、stripeなどのゲートウェイを使用してサイトで直接購入すると、以下のURLタイプが表示されます。

exampledomain.com/?key=wc_order_5849993d6ec72

あなたが上で見ることができるように、このURLは私が使うべき多くのパラメータを含んでいません。

問題は、これらのURLを編集して商品SKUを含める方法を教えてください。

このように、私はSKUに基づいてフィルタリングすることは簡単になります

4
Dave

フィルタを使用して、woocommerceがゲートウェイに提供するリターンURLを編集できます。

woocommerce_get_return_url

いくつかのゲートウェイプラグインは$ order-> get_checkout_order_received_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
3
Mohamed Ali