Product View
function push_product_view_event() {
global $product;
$product_id = $product->get_id();
$product_name = $product->get_name();
$product_price = $product->get_price();
$product_category = wp_get_post_terms( $product_id, ‘product_cat’ );
?>
<script>
fbq(‘track’, ‘ViewContent’, {
content_name: ‘<?php echo $product_name; ?>’,
content_ids: [‘<?php echo $product_id; ?>’],
content_type: ‘product’,
value: <?php echo $product_price; ?>,
currency: ‘USD’,
category: ‘<?php echo $product_category[0]->name; ?>’
});
</script>
<?php
}
add_action(‘woocommerce_before_single_product’, ‘push_product_view_event’);
Initiate Checkout
add_action( ‘woocommerce_before_checkout_form’, ‘send_facebook_initiate_checkout_event_on_checkout’ );
function send_facebook_initiate_checkout_event_on_checkout() {
global $woocommerce;
// Get the cart object
$cart = $woocommerce->cart;
// Get the cart total
$total = $cart->total;
// Get the currency code
$currency = get_woocommerce_currency();
// Get the products in the cart
$products = array();
foreach ( $cart->get_cart() as $item ) {
$product = wc_get_product( $item[‘product_id’] );
$products[] = array(
‘name’ => $product->get_name(),
‘id’ => $product->get_id(),
‘price’ => $product->get_price(),
‘quantity’ => $item[‘quantity’],
);
}
// Send the Facebook initiateCheckout event
?>
<script>
fbq(‘track’, ‘InitiateCheckout’, {
value: <?php echo $total; ?>,
currency: ‘<?php echo $currency; ?>’,
contents: <?php echo json_encode( $products ); ?>,
});
</script>
<?php
}
Purchase event
add_action( ‘woocommerce_thankyou’, ‘facebook_purchase_event’ );
function facebook_purchase_event( $order_id ) {
if ( ! $order_id ) {
return;
}
// Get the order object
$order = wc_get_order( $order_id );
$total = $order->get_total();
$currency = $order->get_currency();
$content_ids = array();
$content_type = ‘product’;
// Loop through order items
foreach ( $order->get_items() as $item ) {
$product = $item->get_product();
$content_ids[] = $product->get_id();
}
// Prepare the event data
$event_data = array(
‘value’ => $total,
‘currency’ => $currency,
‘content_ids’ => implode( ‘,’, $content_ids ),
‘content_type’ => $content_type,
);
// Trigger the “Purchase” event
?>
<script>
fbq(‘track’, ‘Purchase’, <?php echo json_encode( $event_data ); ?>);
</script>
<?php
}
View Category
function push_categoryview_event() {
if (is_product_category()) {
$term = get_queried_object();
$term_name = $term->name;
?>
<script>
fbq(‘track’, ‘ViewContent’, {
content_name: ‘<?php echo $term_name; ?>’,
content_category: ‘Product Category’
});
</script>
<?php
}
}
add_action(‘wp_footer’, ‘push_categoryview_event’);
Add to cart
function add_to_cart_facebook_pixel_track( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ) {
$product = wc_get_product( $product_id );
$categories = wp_get_post_terms( $product_id, ‘product_cat’ );
$category_name = $categories[0]->name;
?>
<script>
fbq(‘track’, ‘AddToCart’, {
value: <?php echo $product->get_price(); ?>,
currency: ‘<?php echo get_woocommerce_currency(); ?>’,
content_name: ‘<?php echo $product->get_name(); ?>’,
content_ids: [‘<?php echo $product->get_id(); ?>’],
content_type: ‘product’,
category_name: ‘<?php echo $category_name; ?>’
});
</script>
<?php
}
add_action( ‘woocommerce_add_to_cart’, ‘add_to_cart_facebook_pixel_track’, 10, 6 );
if it complains about ton firing the pixel please also that
function add_to_cart_facebook_pixel_track( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ) {
$product = wc_get_product( $product_id );
$categories = wp_get_post_terms( $product_id, ‘product_cat’ );
$category_name = $categories[0]->name;
?>
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘YOURPIXEL‘);
fbq(‘track’, ‘AddToCart’, {
value: <?php echo $product->get_price(); ?>,
currency: ‘<?php echo get_woocommerce_currency(); ?>’,
content_name: ‘<?php echo $product->get_name(); ?>’,
content_ids: [‘<?php echo $product->get_id(); ?>’],
content_type: ‘product’,
category_name: ‘<?php echo $category_name; ?>’
});
</script>
<?php
}
add_action( ‘woocommerce_add_to_cart’, ‘add_to_cart_facebook_pixel_track’, 10, 6 );
add to cart in category view
function add_to_cart_pixel() {
?>
<script>
document.addEventListener(‘DOMContentLoaded’, function(){
var addToCartButtons = document.getElementsByClassName(“single_add_to_cart_button”);
for(var i = 0; i < addToCartButtons.length; i++) {
addToCartButtons[i].addEventListener(“click”, function() {
fbq(‘track’, ‘AddToCart’);
});
}
});
</script>
<?php
}
add_action( ‘wp_head’, ‘add_to_cart_pixel’ );