PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-beta
Jetpack – WP Security, Backup, Speed, & Growth v16.3-beta
16.3-beta 16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 All 507 releases
← All changes | modules/woocommerce-analytics/classes/class-jetpack-woocommerce-analytics-checkout-flow.php +74 -16 13.0.2 → 16.3-beta View file →
@@ -1,8 +1,10 @@
1 1 <?php
2 2 /**
3 3 * Jetpack_WooCommerce_Analytics_Checkout_Flow
4 4 *
5 + * @deprecated 13.3
6 + *
5 7 * @package automattic/jetpack
6 8 * @author Automattic
7 9 */
8 10
@@ -9,14 +11,16 @@
9 11 /**
10 12 * Bail if accessed directly
11 13 */
12 14 if ( ! defined( 'ABSPATH' ) ) {
13 - exit;
15 + exit( 0 );
14 16 }
15 17
16 18 /**
17 19 * Class Jetpack_WooCommerce_Analytics_Checkout_Flow
18 20 * Class that handles all page view events for the checkout flow (from product view to order confirmation view)
21 + *
22 + * @deprecated 13.3
19 23 */
20 24 class Jetpack_WooCommerce_Analytics_Checkout_Flow {
21 25
22 26 use Jetpack_WooCommerce_Analytics_Trait;
@@ -22,8 +26,10 @@
22 26 use Jetpack_WooCommerce_Analytics_Trait;
23 27
24 28 /**
25 29 * Jetpack_WooCommerce_Analytics_Checkout_Flow constructor.
30 + *
31 + * @deprecated 13.3
26 32 */
27 33 public function __construct() {
28 34 $this->find_cart_checkout_content_sources();
29 35 $this->additional_blocks_on_cart_page = $this->get_additional_blocks_on_page( 'cart' );
@@ -43,8 +49,10 @@
43 49 }
44 50
45 51 /**
46 52 * Track a product page view
53 + *
54 + * @deprecated 13.3
47 55 */
48 56 public function capture_product_view() {
49 57 global $product;
50 58 if ( ! $product instanceof WC_Product ) {
@@ -59,8 +67,10 @@
59 67 }
60 68
61 69 /**
62 70 * Track the order confirmation page view
71 + *
72 + * @deprecated 13.3
63 73 */
64 74 public function capture_order_confirmation_view() {
65 75 $order_id = absint( get_query_var( 'order-received' ) );
66 76 if ( ! $order_id ) {
@@ -72,8 +82,18 @@
72 82 }
73 83
74 84 $order = wc_get_order( $order_id );
75 85
86 + $order_source = $order->get_created_via();
87 + $checkout_page_contains_checkout_block = '0';
88 + $checkout_page_contains_checkout_shortcode = '0';
89 +
90 + if ( 'store-api' === $order_source ) {
91 + $checkout_page_contains_checkout_block = '1';
92 + } elseif ( 'checkout' === $order_source ) {
93 + $checkout_page_contains_checkout_shortcode = '1';
94 + }
95 +
76 96 $coupons = $order->get_coupons();
77 97 $coupon_used = 0;
78 98 if ( is_countable( $coupons ) ) {
79 99 $coupon_used = count( $coupons ) ? 1 : 0;
@@ -79,27 +99,32 @@
79 99 $coupon_used = count( $coupons ) ? 1 : 0;
80 100 }
81 101
82 102 if ( is_object( WC()->session ) ) {
83 - $create_account = true === WC()->session->get( 'wc_checkout_createaccount_used' ) ? 'Yes' : 'No';
103 + $create_account = true === WC()->session->get( 'wc_checkout_createaccount_used' ) ? 'Yes' : 'No';
104 + $checkout_page_used = true === WC()->session->get( 'checkout_page_used' ) ? 'Yes' : 'No';
84 105 } else {
85 - $create_account = 'No';
106 + $create_account = 'No';
107 + $checkout_page_used = 'No';
86 108 }
87 109
88 110 $this->record_event(
89 111 'woocommerceanalytics_order_confirmation_view',
90 112 array(
91 - 'coupon_used' => $coupon_used,
92 - 'create_account' => $create_account,
93 - 'express_checkout' => 'null', // TODO: not solved yet.
94 - 'guest_checkout' => $order->get_customer_id() ? 'No' : 'Yes',
95 - 'oi' => $order->get_id(),
96 - 'order_value' => $order->get_total(),
97 - 'payment_option' => $order->get_payment_method(),
98 - 'products_count' => $order->get_item_count(),
99 - 'products' => $this->format_items_to_json( $order->get_items() ),
100 - 'order_note' => $order->get_customer_note(),
101 - 'shipping_option' => $order->get_shipping_method(),
113 + 'coupon_used' => $coupon_used,
114 + 'create_account' => $create_account,
115 + 'express_checkout' => 'null', // TODO: not solved yet.
116 + 'guest_checkout' => $order->get_customer_id() ? 'No' : 'Yes',
117 + 'oi' => $order->get_id(),
118 + 'order_value' => $order->get_total(),
119 + 'payment_option' => $order->get_payment_method(),
120 + 'products_count' => $order->get_item_count(),
121 + 'products' => $this->format_items_to_json( $order->get_items() ),
122 + 'order_note' => $order->get_customer_note(),
123 + 'shipping_option' => $order->get_shipping_method(),
124 + 'from_checkout' => $checkout_page_used,
125 + 'checkout_page_contains_checkout_block' => $checkout_page_contains_checkout_block,
126 + 'checkout_page_contains_checkout_shortcode' => $checkout_page_contains_checkout_shortcode,
102 127 )
103 128 );
104 129 }
105 130
@@ -104,8 +129,10 @@
104 129 }
105 130
106 131 /**
107 132 * Track the cart page view
133 + *
134 + * @deprecated 13.3
108 135 */
109 136 public function capture_cart_view() {
110 137 if ( ! is_cart() ) {
111 138 return;
@@ -121,14 +148,41 @@
121 148 }
122 149
123 150 /**
124 151 * Track the checkout page view
152 + *
153 + * @deprecated 13.3
125 154 */
126 155 public function capture_checkout_view() {
127 - if ( ! is_checkout() ) {
156 + global $post;
157 + $checkout_page_id = wc_get_page_id( 'checkout' );
158 +
159 + $is_checkout = $checkout_page_id && is_page( $checkout_page_id )
160 + || wc_post_content_has_shortcode( 'woocommerce_checkout' )
161 + || has_block( 'woocommerce/checkout', $post )
162 + || has_block( 'woocommerce/classic-shortcode', $post )
163 + || apply_filters( 'woocommerce_is_checkout', false )
164 + || \Automattic\Jetpack\Constants::is_defined( 'WOOCOMMERCE_CHECKOUT' );
165 +
166 + if ( ! $is_checkout ) {
128 167 return;
129 168 }
130 169
170 + $is_in_checkout_page = $checkout_page_id === $post->ID ? 'Yes' : 'No';
171 + $checkout_page_contains_checkout_block = '0';
172 + $checkout_page_contains_checkout_shortcode = '1';
173 +
174 + $session = WC()->session;
175 + if ( is_object( $session ) ) {
176 + $session->set( 'checkout_page_used', true );
177 + $session->save_data();
178 + $draft_order_id = $session->get( 'store_api_draft_order', 0 );
179 + if ( $draft_order_id ) {
180 + $checkout_page_contains_checkout_block = '1';
181 + $checkout_page_contains_checkout_shortcode = '0';
182 + }
183 + }
184 +
131 185 // Order received page is also a checkout page, so we need to bail out if we are on that page.
132 186 if ( is_order_received_page() ) {
133 187 return;
134 188 }
@@ -136,9 +190,13 @@
136 190 $this->record_event(
137 191 'woocommerceanalytics_checkout_view',
138 192 array_merge(
139 193 $this->get_cart_checkout_shared_data(),
140 - array()
194 + array(
195 + 'from_checkout' => $is_in_checkout_page,
196 + 'checkout_page_contains_checkout_block' => $checkout_page_contains_checkout_block,
197 + 'checkout_page_contains_checkout_shortcode' => $checkout_page_contains_checkout_shortcode,
198 + )
141 199 )
142 200 );
143 201 }
144 202 }