Skip to content

CHICPRO

  • Life Log
  • Cycling Log
  • Photo Log
    • Portrait
    • Landscape
    • Flower
    • Etc
  • Coding Log
  • Information

[WP] Easy Digital Downloads 전자상거래 추적코드 플러그인

2018-01-11 by 편리

워드프레스 플러그인 Easy Digital Downloads 에서 Google Analytics 전자상거래 전환추적 코드를 Easy Digital Downloads 구매완료 페이지에 출력해주는 플러그인이다. gtag.js 추적코드를 사용하는 환경에 맞게 개발됐다. 다음의 첨부 파일을 다운로드 후 워드프레스 플러그인 디렉토리에 업로드 후 플러그인을 활성해 주면 된다. 다양한 환경에서 테스트 한 것이 아니기 때문에 오류가 있을 수 있다. 테스트는 워드프레스 4.9.1, Easy Digital Downloads 2.8.17 환경에서 진행됐다.

플러그인 다운로드 : ga-ecommerce-tracking.zip

아래는 ga-ecommerce-tracking 플러그인의 코드이다.

<?php
/*
Plugin Name: Easy Digital Downloads GA Ecommerce Tracking
Description: Track GA e-Commerce data from Easy Digital Downloads
Version: 1.0.0
Author: chicpro
Author URI: https://chicpro.dev
*/

function ga_ecommerce_tracking_script() {
	
	if( ! class_exists( 'Easy_Digital_Downloads' ) )
		return;
	
	if ( ! edd_is_success_page() )
		return;
	
	global $edd_receipt_args;
	
	$payment = get_post( $edd_receipt_args['id'] );
	$meta = edd_get_payment_meta( $payment->ID );	

	// Get Transaction ID
	if ( isset( $_GET['payment_key'] ) ) {
		$payment_key = trim($_GET['payment_key']);
	} else if ( isset( $edd_receipt_args['id'] ) ) {
		$payment_key = $edd_receipt_args['id'];
	} else if ( isset( $meta['key'] ) ) {
		$payment_key = $meta['key'];
	}

	if ( ! isset( $payment_key ) )
		return;
	
	// Payment Info
	$cart_items = array();
	$payment_obj = new EDD_Payment( $payment->ID );
	$total = $payment_obj->total;
	$tax = $payment_obj->tax;
	
	if( isset( $meta['cart_details'] ) )
		$cart_items = $meta['cart_details'];

	//echo '<div style="display:none;">';
	//print_r($payment_key);
	//echo '</div>';

	if(!empty($cart_items)) {
	?>
	<script>
	gtag('event', 'purchase', {
		"transaction_id": "<?php echo $payment_key; ?>",
		"affiliation": "<?php bloginfo( "name" ); ?>",
		"value": <?php echo esc_js( $total ); ?>,
		"currency": "KRW",
		"tax": <?php echo esc_js( $tax ); ?>,
		"shipping": 0,	
		"items": [
			<?php
			$i = 0;
			foreach( $cart_items as $key => $product ) {
				if($i > 0)
					echo ','.PHP_EOL;
			?>
			{
				"id": "<?php echo esc_js( $product["id"] ); ?>",
				"name": "<?php echo esc_js( $product["name"] ); ?>",
				"quantity": <?php echo esc_js( $product["quantity"] ); ?>,
				"price": '<?php echo esc_js( $product["item_price"] ); ?>'
			}
			<?php
				$i++;
			}
			?>
		]
	});
	</script>	
	<?php
	}
}

add_action( 'wp_footer', 'ga_ecommerce_tracking_script', 20 );

플러그인을 사용하기 전에 아래와 같은 Google Analytics 추적코드가 삽입되어 있어야 한다.

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-1631115-6"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
 
  gtag('config', 'UA-1631115-6');
</script>

Post navigation

Previous Post:

아이폰 거치대? 스탠드?

Next Post:

휴대폰 무선충전 거치대

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts

  • php 배열 연산에서 + 와 array_merge 의 차이
  • pcntl_fork 를 이용한 다중 프로세스 실행
  • 아이폰 단축어를 이용하여 주중 공휴일엔 알람 울리지 않게 하기
  • 구글 캘린더 전체일정 재동기화
  • OpenLiteSpeed 웹서버에 HTTP 인증 적용
  • OpenLiteSpeed 웹어드민 도메인 연결
  • WireGuard를 이용한 VPN 환경 구축
  • Ubuntu 22.04 서버에 OpenLiteSpeed 웹서버 세팅
  • 맥 vim 세팅
  • 우분투 시스템 터미널쉘 zsh 로 변경

Recent Comments

  • 편리 on 업무관리용 그누보드 게시판 스킨
  • 임종섭 on 업무관리용 그누보드 게시판 스킨
  • 캐논 5D 펌웨어 | Dslr 펌웨어 업그레이드 방법 82 개의 베스트 답변 on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • Top 5 캐논 5D 펌웨어 Top 89 Best Answers on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • 편리 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 임팀장 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 편리 on Notepad++ NppFTP 플러그인 수동 설치
  • paul-j on Notepad++ NppFTP 플러그인 수동 설치
  • YS on Windows 10 iCloud 사진 저장 폴더 변경
  • 편리 on Docker를 이용한 Centos7 + httpd + php 5.4 개발환경 구축

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
© 2025 CHICPRO | Built using WordPress and SuperbThemes