Add Tracks event with source data
This commit is contained in:
parent
b787271c86
commit
edfe2896b4
|
@ -14,6 +14,7 @@ use WC_Customer;
|
||||||
use WC_Log_Levels;
|
use WC_Log_Levels;
|
||||||
use WC_Logger_Interface;
|
use WC_Logger_Interface;
|
||||||
use WC_Order;
|
use WC_Order;
|
||||||
|
use WC_Tracks;
|
||||||
use WP_User;
|
use WP_User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -103,6 +104,7 @@ class SourceAttributionController implements RegisterHooksInterface {
|
||||||
'woocommerce_checkout_order_created',
|
'woocommerce_checkout_order_created',
|
||||||
function( $order ) {
|
function( $order ) {
|
||||||
$source_data = $this->get_source_values();
|
$source_data = $this->get_source_values();
|
||||||
|
$this->send_order_tracks( $source_data, $order );
|
||||||
$this->set_order_source_data( $source_data, $order );
|
$this->set_order_source_data( $source_data, $order );
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -344,4 +346,23 @@ class SourceAttributionController implements RegisterHooksInterface {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send order source data to Tracks.
|
||||||
|
*
|
||||||
|
* @param array $source_data The source data.
|
||||||
|
* @param WC_Order $order The order object.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function send_order_tracks( array $source_data, WC_Order $order ) {
|
||||||
|
$tracks_data = array(
|
||||||
|
'origin' => $source_data['origin'] ?? '',
|
||||||
|
'device_type' => $source_data['device_type'] ?? '(unknown)',
|
||||||
|
'session_pages' => $source_data['session_pages'] ?? 0,
|
||||||
|
'order_total' => $order->get_total(),
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->proxy->call_static( WC_Tracks::class, 'record_event', 'order_source_attribution', $tracks_data );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue