diff --git a/src/Integrations/WooCommerce.php b/src/Integrations/WooCommerce.php index 7cf537a8..58f3a023 100644 --- a/src/Integrations/WooCommerce.php +++ b/src/Integrations/WooCommerce.php @@ -28,7 +28,7 @@ class WooCommerce { * @codeCoverageIgnore */ public function __construct( $init = true ) { - $uri = wc_get_permalink_structure()['product_base']; + $uri = trim( wc_get_permalink_structure()['product_base'], '/' ); if ( is_multisite() ) { $uri = get_blog_details()->path . $uri; @@ -142,25 +142,6 @@ public function track_ajax_add_to_cart( $product_id ) { $this->track_add_to_cart( $product, $add_to_cart_data ); } - /** - * Track add to cart actions by direct link, e.g. ?product_type=download&add-to-cart=1&quantity=1 - * - * @return void - * - * @codeCoverageIgnore Because we can't test XHR here. - */ - public function track_direct_add_to_cart() { - if ( ! isset( $_REQUEST['add-to-cart'] ) || ! is_numeric( wp_unslash( $_REQUEST['add-to-cart'] ) ) ) { - return; - } - - $product_id = absint( wp_unslash( $_REQUEST['add-to-cart'] ) ); - $product = wc_get_product( $product_id ); - $quantity = isset( $_REQUEST['quantity'] ) ? absint( wp_unslash( $_REQUEST['quantity'] ) ) : 1; - - $this->track_add_to_cart( $product, [ 'id' => $product_id, 'quantity' => $quantity ] ); - } - /** * Track regular (i.e., interactivity API) add to cart events. * @@ -226,6 +207,25 @@ protected function get_wc_cart() { return WC()->cart; } + /** + * Track add to cart actions by direct link, e.g. ?product_type=download&add-to-cart=1&quantity=1 + * + * @return void + * + * @codeCoverageIgnore Because we can't test XHR here. + */ + public function track_direct_add_to_cart() { + if ( ! isset( $_REQUEST['add-to-cart'] ) || ! is_numeric( wp_unslash( $_REQUEST['add-to-cart'] ) ) ) { + return; + } + + $product_id = absint( wp_unslash( $_REQUEST['add-to-cart'] ) ); + $product = wc_get_product( $product_id ); + $quantity = isset( $_REQUEST['quantity'] ) ? absint( wp_unslash( $_REQUEST['quantity'] ) ) : 1; + + $this->track_add_to_cart( $product, [ 'id' => $product_id, 'quantity' => $quantity ] ); + } + /** * Tracks when a user enters the checkout process and sends event data to Plausible Analytics. *