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

워드프레스 플러그인 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://ncube.net
*/

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>

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

카카오톡 플러스친구 채팅 : NCUBE.NET

Leave a 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.