今回も自分メモです。
ホント店のお客様には全く興味無いようなネタばかりでスイマセン。
で、今回はGoogleアナリティクスを使ったEコマーストラッキング。
プラグインなんて必要無し
welcartでGoogleアナリティクスのEコマーストラッキング
デフォルトwelcartではGoogleアナリティクスのEコマース用のトラッキングコードはありません。
公式サイトでは「Google Analytics by MonsterInsights」プラグインによるトラッキングを推奨しています。
ですが、wordpressでECを作ると
どうしてもプラグイン増えますよね?
僕も大体は自分で書くものの、それでも増えます。
何よりも少し前に導入したメルマガプラグインのお陰で、随分データベースが肥大しました…。
「Google Analytics by MonsterInsights」は然程データベースを使わない感じに思いましたが、常にwp_headの中に入ってくるワケですから、ほんの僅かでも動きを軽くしてあげたい気持ちが沸き上がり直接コードを入れる事にしました。
そのメモです。
Eコマース用のトラッキングコードの挿入
通常のページは普通にアナリティクスのコードを入れれば良いのですが、主にカード画面からはphpで分岐が必要。
基本的に必要なのはこの辺。
ga('require', 'displayfeatures');
ga('send', 'pageview', {'page' : '/wc_<?php usces_page_name(); ?>'});
welcartの場合、カートページのURLは変化しないので、’send’, ‘pageview’でページ名を渡してあげる。
そんで完了ページ(wc_completion_page.php)の時は分岐させて下のコードも追加する。
ga('require', 'ecommerce', 'ecommerce.js');
<?php global $usces;
$sesdata = $usces->cart->get_entry();
$order_id = $sesdata['order']['ID'];
$data = $usces->get_order_data($order_id, 'direct');
$cart = unserialize($data['order_cart']);
$usepoint = ( isset($sesdata['order']['usedpoint']) ) ? $sesdata['order']['usedpoint'] : '0';
$total_price = $sesdata['order']['total_items_price'] + $sesdata['order']['discount'] - $usepoint;
if( $total_price < 0 ) $total_price = 0;
$addtrans = "ga('ecommerce:addTransaction', {
id: '". $order_id ."',
affiliation: '". get_option('blogname') ."',
revenue: '". $total_price ."',
shipping: '". $data['order_shipping_charge'] ."',
tax: '". $data['order_tax'] ."' });";
for( $i=0; $i<count($cart); $i++ ){
$cart_row = $cart[$i];
$post_id = $cart_row['post_id'];
$sku = urldecode($cart_row['sku']);
$quantity = $cart_row['quantity'];
$itemName = $usces->getItemName($post_id);
$skuPrice = $cart_row['price'];
$categories = get_the_category($post_id);
$addtrans .= "ga('ecommerce:addItem', {
id: '". $order_id ."',
sku: '". $sku ."',
name: '". $itemName."',
category: '". $categories[0]->cat_name."',
price: '". $skuPrice."',
quantity: '". $quantity."' });";
}
echo $addtrans;
?>
ga('ecommerce:send');
welcartの「Google Analytics by MonsterInsights」へのフック内容とは少し異なりますが、ほぼ同じ結果になります。
多分コルネさん、「Google Analytics by MonsterInsights」との連携状態で最近チェックされていらっしゃらないのか、「Google Analytics by MonsterInsights」へのフック内容そのままだと『Notice』のエラーを吐いてしまいます。
その程度のエラーは然程気にはしてないのですが、毎回エラーが見えるのは嫌なので、その部分は変えてしまいました。
そんでこの設定が終わったらwelcartの公式ページあるようにアナリティクスの設定をしてあげれば良い。
ではでは 完全にメモとして残しただけでした。

はじめまして。
本記事、大変参考になりましたが、上記の記述では値が入りませんでした。
welcartの仕様が変わっているのでしょうか?
もしご存知でしたら教えていただけると幸いです!
初めまして。
現在記載のコード通りで利用していたかは、まだ確認していないのですが、少しだけ調べた所決済ページなどでページ移管してしまうと値が入らない状態になっているのかも知れません。
自分のサイトを確認した所、値が入っている時と無い時がありました。
後日改めてシッカリと確認し、分かりましたら内容を更新します。