PluginProbe
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress / 11.1.0
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress v11.1.0
11.1.1 11.1.0 11.0.5 11.0.4 11.0.3 11.0.2 11.0.1 11.0.0 10.11.1 10.11.0 10.10.2 10.10.1 10.10.0 10.9.1 trunk 10.0.0 10.0.1 10.1.0 10.1.1 10.1.2 10.1.3 10.1.4 10.2.0 10.2.1 10.2.2 All 62 releases
← All changes | back/Classes/CampaignClass.php +20 -5 11.0.3 → 11.1.0 View file →
@@ -255,12 +255,19 @@
255 255 $element->open = 0;
256 256 $element->click = 0;
257 257
258 258 if (!empty($element->subscribers)) {
259 - $element->open = number_format($element->open_unique / $element->subscribers * 100, 2);
259 + // In anonymous mode opens/clicks are counted globally (totals, not unique subscribers), so a percentage of recipients is meaningless: expose the average number of opens/clicks per email sent instead (e.g. 3.25), rendered as "3.25×" in the view
260 + $anonymousStats = !empty($this->config->get('anonymous_stats', 0));
261 + $clicksNb = $urlClickClass->getNumberUsersClicked([$element->mail_id], $isAbTest);
260 262
261 - $clicksNb = $urlClickClass->getNumberUsersClicked([$element->mail_id], $isAbTest);
262 - $element->click = number_format($clicksNb / $element->subscribers * 100, 2);
263 + if ($anonymousStats) {
264 + $element->open = number_format($element->open_unique / $element->subscribers, 2);
265 + $element->click = number_format($clicksNb / $element->subscribers, 2);
266 + } else {
267 + $element->open = number_format($element->open_unique / $element->subscribers * 100, 2);
268 + $element->click = number_format($clicksNb / $element->subscribers * 100, 2);
269 + }
263 270 }
264 271 }
265 272
266 273 public function getTrackingSales(object $element): void
@@ -305,10 +312,18 @@
305 312 $element->subscribers += $mailsStat->sent;
306 313 }
307 314
308 315 if (!empty($element->subscribers)) {
309 - $element->open = number_format($element->open / $element->subscribers * 100, 2);
310 - $element->click = number_format($element->click / $element->subscribers * 100, 2);
316 + // In anonymous mode opens/clicks are counted globally (totals, not unique subscribers), so expose the average number of opens/clicks per email sent (e.g. 3.25) instead of a percentage, rendered as "3.25×" in the view
317 + $anonymousStats = !empty($this->config->get('anonymous_stats', 0));
318 +
319 + if ($anonymousStats) {
320 + $element->open = number_format($element->open / $element->subscribers, 2);
321 + $element->click = number_format($element->click / $element->subscribers, 2);
322 + } else {
323 + $element->open = number_format($element->open / $element->subscribers * 100, 2);
324 + $element->click = number_format($element->click / $element->subscribers * 100, 2);
325 + }
311 326 }
312 327
313 328 //Tracking sales
314 329 if (!acym_isTrackingSalesActive()) {