WC_Orders_Tracking::track_add_order_from_edit()publicWC 1.0

Track "add order" button on the Edit Order screen.

Метод класса: WC_Orders_Tracking{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

$WC_Orders_Tracking = new WC_Orders_Tracking();
$WC_Orders_Tracking->track_add_order_from_edit();

Код WC_Orders_Tracking::track_add_order_from_edit() WC 8.7.0

public function track_add_order_from_edit() {
	if ( ! OrderUtil::is_new_order_screen() ) {
		return;
	}

	$referer = wp_get_referer();
	if ( ! $referer ) {
		return;
	}

	$referring_page = wp_parse_url( $referer );

	if ( empty( $referring_page['query'] ) ) {
		// Edit Order screen has query args.
		return;
	}
	parse_str( $referring_page['query'], $referring_args );

	if ( OrderUtil::custom_orders_table_usage_is_enabled() ) {
		$post_edit_page = admin_url( 'admin.php?page=wc-orders' );
		$order_id       = $referring_args['id'] ?? 0;
	} else {
		$post_edit_page = admin_url( 'post.php' );
		$order_id       = $referring_args['post'] ?? 0;
	}
	$post_edit_page = wp_parse_url( $post_edit_page );

	if (
		( $post_edit_page['path'] === $referring_page['path'] ) &&
		( ! isset( $post_edit_page['query'] ) || false !== strpos( $referring_page['query'], $post_edit_page['query'] ) ) &&
		( isset( $referring_args['action'] ) && 'edit' === $referring_args['action'] ) &&
		'shop_order' === OrderUtil::get_order_type( $order_id )
	) {
		WC_Tracks::record_event( 'order_edit_add_order' );
	}
}