Skip to content

Commit 1210fb7

Browse files
authored
Merge pull request #7798 from woocommerce/issue/7777-reply-to-reviews-analytics
[Review Replies] Add analytics for replying to product reviews
2 parents ade4848 + b636faf commit 1210fb7

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

WooCommerce/Classes/Analytics/WooAnalyticsStat.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,9 @@ public enum WooAnalyticsStat: String {
385385
case reviewsMarkAllReadFailed = "reviews_mark_all_read_failed"
386386
case reviewsProductsLoaded = "reviews_products_loaded"
387387
case reviewsProductsLoadFailed = "reviews_products_load_failed"
388+
case reviewReplySend = "review_reply_send"
389+
case reviewReplySendSuccess = "review_reply_send_success"
390+
case reviewReplySendFailed = "review_reply_send_failed"
388391

389392
// MARK: Product List Events
390393
//

WooCommerce/Classes/ViewRelated/Reviews/ReviewReplyViewModel.swift

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,18 @@ final class ReviewReplyViewModel: ObservableObject {
3232
///
3333
let presentNoticeSubject = PassthroughSubject<ReviewReplyNotice, Never>()
3434

35+
/// Analytics
36+
///
37+
private let analytics: Analytics
38+
3539
init(siteID: Int64,
3640
reviewID: Int64,
37-
stores: StoresManager = ServiceLocator.stores) {
41+
stores: StoresManager = ServiceLocator.stores,
42+
analytics: Analytics = ServiceLocator.analytics) {
3843
self.siteID = siteID
3944
self.reviewID = reviewID
4045
self.stores = stores
46+
self.analytics = analytics
4147
bindNavigationTrailingItemPublisher()
4248
}
4349

@@ -62,15 +68,18 @@ final class ReviewReplyViewModel: ObservableObject {
6268
DDLogInfo("Reply to product review succeeded with comment status: \(status)")
6369
}
6470

71+
self.analytics.track(.reviewReplySendSuccess)
6572
self.presentNoticeSubject.send(.success)
6673
onCompletion(true)
6774
case .failure(let error):
68-
self.presentNoticeSubject.send(.error)
6975
DDLogError("⛔️ Error replying to product review: \(error)")
76+
self.analytics.track(.reviewReplySendFailed, withError: error)
77+
self.presentNoticeSubject.send(.error)
7078
onCompletion(false)
7179
}
7280
}
7381

82+
analytics.track(.reviewReplySend)
7483
performingNetworkRequest.send(true)
7584
stores.dispatch(action)
7685
}

0 commit comments

Comments
 (0)