diff --git a/projects/packages/woocommerce-analytics/changelog/fix-wc-analytics-undefined-methods b/projects/packages/woocommerce-analytics/changelog/fix-wc-analytics-undefined-methods new file mode 100644 index 0000000000000..ee044028071ab --- /dev/null +++ b/projects/packages/woocommerce-analytics/changelog/fix-wc-analytics-undefined-methods @@ -0,0 +1,4 @@ +Significance: patch +Type: fixed + +Fix call to undefined method WC_Tracks::get_server_details() diff --git a/projects/packages/woocommerce-analytics/src/class-wc-analytics-tracking.php b/projects/packages/woocommerce-analytics/src/class-wc-analytics-tracking.php index 079fdb93b4208..c20c7d973e3de 100644 --- a/projects/packages/woocommerce-analytics/src/class-wc-analytics-tracking.php +++ b/projects/packages/woocommerce-analytics/src/class-wc-analytics-tracking.php @@ -8,6 +8,7 @@ namespace Automattic\Woocommerce_Analytics; use Automattic\Jetpack\Connection\Manager as Jetpack_Connection; +use WC_Site_Tracking; use WC_Tracks; use WC_Tracks_Client; use WC_Tracks_Event; @@ -244,7 +245,15 @@ private static function get_blog_user_id() { * @return array Server details. */ public static function get_server_details() { - $data = parent::get_server_details(); + $data = array(); + + if ( method_exists( parent::class, 'get_server_details' ) ) { + $data = parent::get_server_details(); + } elseif ( method_exists( WC_Site_Tracking::class, 'get_server_details' ) ) { + // WC < 6.8 + $data = WC_Site_Tracking::get_server_details(); // @phan-suppress-current-line PhanUndeclaredStaticMethod -- method is available in WC < 6.8 + } + return array_merge( $data, array( @@ -257,6 +266,22 @@ public static function get_server_details() { ); } + /** + * Get the blog details. + * + * @param int $blog_id The blog ID. + * @return array The blog details. + */ + public static function get_blog_details( $blog_id ) { + if ( method_exists( parent::class, 'get_blog_details' ) ) { + return parent::get_blog_details( $blog_id ); + } elseif ( method_exists( WC_Site_Tracking::class, 'get_blog_details' ) ) { + // WC < 6.8 + return WC_Site_Tracking::get_blog_details( $blog_id ); // @phan-suppress-current-line PhanUndeclaredStaticMethod -- method is available in WC < 6.8 + } + return array(); + } + /** * Get the session details as an array *