Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
woocommerce
/
includes
/
tracks
/
events
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php defined('ABSPATH') || exit; class WC_Orders_Tracking { public function init() { add_action('woocommerce_order_status_changed', array($this, 'track_order_status_change'), 10, 3); add_action('load-edit.php', array($this, 'track_orders_view'), 10); add_action('pre_post_update', array($this, 'track_created_date_change'), 10); add_action('woocommerce_process_shop_order_meta', array($this, 'track_order_action'), 51); add_action('load-post-new.php', array($this, 'track_add_order_from_edit'), 10); add_filter('woocommerce_shop_order_search_results', array($this, 'track_order_search'), 10, 3); } public function track_order_search($order_ids, $term, $search_fields) { if (!function_exists('get_current_screen')) { return $order_ids; } $screen = get_current_screen(); if ('edit-shop_order' === $screen->id) { WC_Tracks::record_event('orders_view_search'); } return $order_ids; } public function track_orders_view() { if (isset($_GET['post_type']) && 'shop_order' === wp_unslash($_GET['post_type'])) { $properties = array('status' => isset($_GET['post_status']) ? sanitize_text_field($_GET['post_status']) : 'all'); WC_Tracks::record_event('orders_view', $properties); } } public function track_order_status_change($id, $previous_status, $next_status) { $order = wc_get_order($id); $properties = array('order_id' => $id, 'next_status' => $next_status, 'previous_status' => $previous_status, 'date_created' => $order->get_date_created() ? $order->get_date_created()->date('Y-m-d') : '', 'payment_method' => $order->get_payment_method(), 'order_total' => $order->get_total()); WC_Tracks::record_event('orders_edit_status_change', $properties); } public function track_created_date_change($id) { $post_type = get_post_type($id); if ('shop_order' !== $post_type) { return; } if ('auto-draft' === get_post_status($id)) { return; } $order = wc_get_order($id); $date_created = $order->get_date_created() ? $order->get_date_created()->date('Y-m-d H:i:s') : ''; $new_date = sprintf('%s %2d:%2d:%2d', isset($_POST['order_date']) ? wc_clean(wp_unslash($_POST['order_date'])) : '', isset($_POST['order_date_hour']) ? wc_clean(wp_unslash($_POST['order_date_hour'])) : '', isset($_POST['order_date_minute']) ? wc_clean(wp_unslash($_POST['order_date_minute'])) : '', isset($_POST['order_date_second']) ? wc_clean(wp_unslash($_POST['order_date_second'])) : ''); if ($new_date !== $date_created) { $properties = array('order_id' => $id, 'status' => $order->get_status()); WC_Tracks::record_event('order_edit_date_created', $properties); } } public function track_order_action($order_id) { if (!empty($_POST['wc_order_action'])) { $order = wc_get_order($order_id); $action = wc_clean(wp_unslash($_POST['wc_order_action'])); $properties = array('order_id' => $order_id, 'status' => $order->get_status(), 'action' => $action); WC_Tracks::record_event('order_edit_order_action', $properties); } } public function track_add_order_from_edit() { if (isset($_GET['post_type']) && 'shop_order' === wp_unslash($_GET['post_type'])) { $referer = wp_get_referer(); if ($referer) { $referring_page = wp_parse_url($referer); $referring_args = array(); $post_edit_page = wp_parse_url(admin_url('post.php')); if (!empty($referring_page['query'])) { parse_str($referring_page['query'], $referring_args); } if ($post_edit_page['path'] === $referring_page['path'] && isset($referring_args['action']) && 'edit' === $referring_args['action'] && isset($referring_args['post']) && 'shop_order' === get_post_type($referring_args['post'])) { WC_Tracks::record_event('order_edit_add_order'); } } } } }