| @@ -2,9 +2,8 @@ | ||
| 2 | 2 | |
| 3 | 3 | namespace AcyMailing\Classes; |
| 4 | 4 | |
| 5 | 5 | use AcyMailing\Core\AcymClass; |
| 6 | -use AcyMailing\Helpers\ScenarioHelper; | |
| 7 | 6 | |
| 8 | 7 | |
| 9 | 8 | class UrlClickClass extends AcymClass |
| 10 | 9 | { |
| @@ -35,13 +34,8 @@ | ||
| 35 | 34 | $onDuplicate = []; |
| 36 | 35 | |
| 37 | 36 | if (!empty($urlClick['click'])) { |
| 38 | 37 | $onDuplicate[] = 'click = click + 1'; |
| 39 | - $automationClass = new AutomationClass(); | |
| 40 | - $automationClass->trigger('user_click', ['userId' => $urlClick['user_id'], 'mailId' => $urlClick['mail_id']]); | |
| 41 | - | |
| 42 | - $scenarioHelper = new ScenarioHelper(); | |
| 43 | - $scenarioHelper->trigger('user_click', ['userId' => $urlClick['user_id'], 'mailId' => $urlClick['mail_id']]); | |
| 44 | 38 | } |
| 45 | 39 | |
| 46 | 40 | if (!empty($onDuplicate)) { |
| 47 | 41 | $query .= ' ON DUPLICATE KEY UPDATE '; |
| @@ -57,9 +51,11 @@ | ||
| 57 | 51 | public function getNumberUsersClicked(array $mailIds = [], bool $isAbTest = false): int |
| 58 | 52 | { |
| 59 | 53 | acym_arrayToInteger($mailIds); |
| 60 | 54 | |
| 61 | - $query = 'SELECT COUNT(DISTINCT user_id) FROM #__acym_url_click AS url_click'; | |
| 55 | + // In anonymous mode clicks are aggregated with user_id = 0, so counting distinct users is meaningless: return the total number of clicks (consistent with the click totals shown in the statistics page) | |
| 56 | + $countSelect = !empty(acym_config()->get('anonymous_stats', 0)) ? 'SUM(`url_click`.`click`)' : 'COUNT(DISTINCT user_id)'; | |
| 57 | + $query = 'SELECT '.$countSelect.' FROM #__acym_url_click AS url_click'; | |
| 62 | 58 | $isMultilingual = acym_isMultilingual(); |
| 63 | 59 | |
| 64 | 60 | if (!empty($mailIds) && ($isMultilingual || $isAbTest)) { |
| 65 | 61 | $query .= ' LEFT JOIN #__acym_mail AS mail ON `mail`.`id` = `url_click`.`mail_id` WHERE `mail`.`id` IN ('.implode( |