File "class-wc-orders-tracking.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/woocommerce/includes/tracks/events/class-wc-orders-tracking.php
File
size: 4.12 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?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');
}
}
}
}
}