analytics(); } /** * Get google analyticts scripts. * * @since 1.1.0 */ public function analytics() { $google_tracking_id = esc_attr( sellkit_get_option( 'google_analytics_id' ) ); if ( empty( $google_tracking_id ) || empty( sellkit_get_option( 'google_analytics' ) ) ) { return; } // phpcs:disable $google_script = ' '; // phpcs:enable $google_script .= $this->google_analytics_events( self::$post, $google_tracking_id ); echo $google_script; } /** * Get google analyticts events scripts. * * @since 1.1.0 * @param array $post_meta sellkit pages data. * @param string $tracking_id google tracking id. */ private function google_analytics_events( $post_meta, $tracking_id ) { $google_events = sellkit_get_option( 'google_analytics_events' ); if ( empty( $google_events ) ) { return; } $sellkit_page_meta = $post_meta[0]['type']['key']; $google_events_script = ''; foreach ( $google_events as $event ) { $function_name = "google_analytics_{$event}"; $google_events_script .= $this->$function_name( $sellkit_page_meta, $tracking_id ); } return $google_events_script; } /** * Get google analyticts begin_checkout data. * * @since 1.1.0 * @param string $sellkit_page_meta sellkit pages type. * @param string $tracking_id Filter google tracking id. * @SuppressWarnings(PHPMD.UnusedPrivateMethod) */ private function google_analytics_begin_checkout( $sellkit_page_meta, $tracking_id ) { if ( 'checkout' !== $sellkit_page_meta ) { return; } $cart_content = $this->get_cart_data( $tracking_id ); $google_events_script = ""; return $google_events_script; } /** * Get google analyticts add_to_cart data. * * @since 1.1.0 * @param string $sellkit_page_meta sellkit pages type. * @param string $tracking_id Filter google tracking id. * @SuppressWarnings(PHPMD.UnusedPrivateMethod) */ private function google_analytics_add_to_cart( $sellkit_page_meta, $tracking_id ) { if ( 'checkout' !== $sellkit_page_meta ) { return; } $cart_content = $this->get_cart_data( $tracking_id ); $google_events_script = ""; return $google_events_script; } /** * Get google analyticts add_payment_info data. * * @since 1.1.0 * @param string $sellkit_page_meta sellkit pages type. * @param string $tracking_id Filter google tracking id. * @SuppressWarnings(PHPMD.UnusedPrivateMethod) */ private function google_analytics_add_payment_info( $sellkit_page_meta, $tracking_id ) { if ( 'checkout' !== $sellkit_page_meta ) { return; } $cart_content = $this->get_cart_data( $tracking_id ); self::$localized_data['GoogleAddPaymentInfo'] = $cart_content; } /** * Get google analyticts purchase data. * * @since 1.1.0 * @param string $sellkit_page_meta sellkit pages type. * @param string $tracking_id Filter google tracking id. * @SuppressWarnings(PHPMD.UnusedPrivateMethod) */ private function google_analytics_purchase( $sellkit_page_meta, $tracking_id ) { if ( 'thankyou' !== $sellkit_page_meta ) { return; } $cart_content = $this->get_order_data( $tracking_id ); $google_events_script = ""; return $google_events_script; } /** * Get order data. * * @since 1.1.0 * @param string $tracking_id Filter google tracking id. */ private function get_order_data( $tracking_id ) { $order_data = []; $products = []; if ( empty( self::$order_key ) ) { return; } $order_id = wc_get_order_id_by_order_key( self::$order_key ); $order = wc_get_order( $order_id ); $products = $this->get_products_data( $order->get_items(), 'google' ); $order_data = [ 'send_to' => $tracking_id, 'event_category' => 'Enhanced-Ecommerce', 'transaction_id' => $order_id, 'affiliation' => get_bloginfo( 'name' ), 'value' => number_format( $order->get_total(), wc_get_price_decimals(), '.', '' ), 'currency' => $order->get_currency(), 'tax' => number_format( $order->get_total_tax(), wc_get_price_decimals(), '.', '' ), 'shipping' => number_format( $order->get_shipping_total() + $order->get_shipping_tax(), wc_get_price_decimals(), '.', '' ), 'coupon' => $order->get_coupon_codes(), 'non_interaction' => true, 'products' => wp_json_encode( $products ), ]; return wp_json_encode( $order_data ); } /** * Get cart content. * * @since 1.1.0 * @param string $tracking_id Filter google tracking id. */ private function get_cart_data( $tracking_id ) { if ( ! sellkit()->has_valid_dependencies() ) { return wp_json_encode( [] ); } $products_in_cart = WC()->cart->get_cart(); $products = []; $cart_data = []; $products = $this->get_products_data( $products_in_cart, 'google' ); $price = WC()->cart->cart_contents_total + WC()->cart->tax_total; $cart_data = [ 'send_to' => $tracking_id, 'event_category' => 'Enhanced-Ecommerce', 'currency' => get_woocommerce_currency(), 'coupon' => WC()->cart->get_applied_coupons(), 'value' => number_format( floatval( $price ), wc_get_price_decimals(), '.', '' ), 'products' => wp_json_encode( $products ), 'non_interaction' => true, ]; return wp_json_encode( $cart_data ); } } Google::get_instance();