Skip to content
This repository was archived by the owner on Feb 17, 2022. It is now read-only.

Commit b309200

Browse files
author
Robert Kummer
committed
refs #41
* Additional code changes for having correct interface and implementations * including README changes
1 parent 7831a5c commit b309200

File tree

4 files changed

+116
-89
lines changed

4 files changed

+116
-89
lines changed

README.md

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -468,17 +468,20 @@ Add ecommerce transaction to tracking code.
468468
/**
469469
* ecommerce tracking - add transaction
470470
*
471-
* @param string $id
472-
* @param null|string $affiliation
473-
* @param null|float $revenue
474-
* @param null|float $shipping
475-
* @param null|float $tax
471+
* @param string $id
472+
* @param null|string $affiliation
473+
* @param null|float $revenue
474+
* @param null|float $shipping
475+
* @param null|float $tax
476+
* @param null|string $currency
476477
*
477478
* @return AnalyticsProviderInterface
478479
*/
479-
public function ecommerceAddTransaction($id, $affiliation = null, $revenue = null, $shipping = null, $tax = null);
480+
public function ecommerceAddTransaction($id, $affiliation = null, $revenue = null, $shipping = null, $tax = null, $currency = null);
480481

481-
Available since 1.2.2.
482+
Available since 1.2.2. Parameter `$currency` since 1.3.3.
483+
484+
Since version 1.3.3 the [multi currency](https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce#multicurrency) tracking is supported with currency values defined [here](https://support.google.com/analytics/answer/6205902#supported-currencies).
482485

483486
### Analytics::ecommerceAddItem()
484487

@@ -489,18 +492,21 @@ Add ecommerce item to tracking code.
489492
/**
490493
* ecommerce tracking - add item
491494
*
492-
* @param string $id
493-
* @param string $name
494-
* @param null|string $sku
495-
* @param null|string $category
496-
* @param null|float $price
497-
* @param null|int $quantity
495+
* @param string $id
496+
* @param string $name
497+
* @param null|string $sku
498+
* @param null|string $category
499+
* @param null|float $price
500+
* @param null|int $quantity
501+
* @param null|string $currency
498502
*
499503
* @return AnalyticsProviderInterface
500504
*/
501-
public function ecommerceAddItem($id, $name, $sku = null, $category = null, $price = null, $quantity = null);
505+
public function ecommerceAddItem($id, $name, $sku = null, $category = null, $price = null, $quantity = null, $currency = null);
502506

503-
Available since 1.2.2.
507+
Available since 1.2.2. Parameter `$currency` since 1.3.3.
508+
509+
Since version 1.3.3 the [multi currency](https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce#multicurrency) tracking is supported with currency values defined [here](https://support.google.com/analytics/answer/6205902#supported-currencies).
504510

505511
### Analytics::setCustom()
506512

src/Ipunkt/LaravelAnalytics/Contracts/AnalyticsProviderInterface.php

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -178,29 +178,31 @@ public function disableEcommerceTracking();
178178
/**
179179
* ecommerce tracking - add transaction
180180
*
181-
* @param string $id
182-
* @param null|string $affiliation
183-
* @param null|float $revenue
184-
* @param null|float $shipping
185-
* @param null|float $tax
181+
* @param string $id
182+
* @param null|string $affiliation
183+
* @param null|float $revenue
184+
* @param null|float $shipping
185+
* @param null|float $tax
186+
* @param null|string $currency
186187
*
187188
* @return AnalyticsProviderInterface
188189
*/
189-
public function ecommerceAddTransaction($id, $affiliation = null, $revenue = null, $shipping = null, $tax = null);
190+
public function ecommerceAddTransaction($id, $affiliation = null, $revenue = null, $shipping = null, $tax = null, $currency = null);
190191

191192
/**
192193
* ecommerce tracking - add item
193194
*
194-
* @param string $id
195-
* @param string $name
196-
* @param null|string $sku
197-
* @param null|string $category
198-
* @param null|float $price
199-
* @param null|int $quantity
195+
* @param string $id
196+
* @param string $name
197+
* @param null|string $sku
198+
* @param null|string $category
199+
* @param null|float $price
200+
* @param null|int $quantity
201+
* @param null|string $currency
200202
*
201203
* @return AnalyticsProviderInterface
202204
*/
203-
public function ecommerceAddItem($id, $name, $sku = null, $category = null, $price = null, $quantity = null);
205+
public function ecommerceAddItem($id, $name, $sku = null, $category = null, $price = null, $quantity = null, $currency = null);
204206

205207
/**
206208
* sets custom dimensions

src/Ipunkt/LaravelAnalytics/Providers/GoogleAnalytics.php

Lines changed: 65 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -204,15 +204,23 @@ public function trackEvent($category, $action, $label = null, $value = null)
204204
/**
205205
* ecommerce tracking - add transaction
206206
*
207-
* @param string $id
208-
* @param null|string $affiliation
209-
* @param null|float $revenue
210-
* @param null|float $shipping
211-
* @param null|float $tax
207+
* @param string $id
208+
* @param null|string $affiliation
209+
* @param null|float $revenue
210+
* @param null|float $shipping
211+
* @param null|float $tax
212+
* @param null|string $currency
212213
*
213214
* @return AnalyticsProviderInterface
214215
*/
215-
public function ecommerceAddTransaction($id, $affiliation = null, $revenue = null, $shipping = null, $tax = null, $currency = null)
216+
public function ecommerceAddTransaction(
217+
$id,
218+
$affiliation = null,
219+
$revenue = null,
220+
$shipping = null,
221+
$tax = null,
222+
$currency = null
223+
)
216224
{
217225
// Call to enable ecommerce tracking automatically
218226
$this->enableEcommerceTracking();
@@ -238,7 +246,7 @@ public function ecommerceAddTransaction($id, $affiliation = null, $revenue = nul
238246
if (!is_null($currency)) {
239247
$parameters['currency'] = $currency;
240248
}
241-
249+
242250
$jsonParameters = json_encode($parameters);
243251
$trackingCode = "ga('ecommerce:addTransaction', {$jsonParameters});";
244252

@@ -250,23 +258,32 @@ public function ecommerceAddTransaction($id, $affiliation = null, $revenue = nul
250258
/**
251259
* ecommerce tracking - add item
252260
*
253-
* @param string $id
254-
* @param string $name
255-
* @param null|string $sku
256-
* @param null|string $category
257-
* @param null|float $price
258-
* @param null|int $quantity
261+
* @param string $id
262+
* @param string $name
263+
* @param null|string $sku
264+
* @param null|string $category
265+
* @param null|float $price
266+
* @param null|int $quantity
267+
* @param null|string $currency
259268
*
260269
* @return AnalyticsProviderInterface
261270
*/
262-
public function ecommerceAddItem($id, $name, $sku = null, $category = null, $price = null, $quantity = null, $currency = null)
271+
public function ecommerceAddItem(
272+
$id,
273+
$name,
274+
$sku = null,
275+
$category = null,
276+
$price = null,
277+
$quantity = null,
278+
$currency = null
279+
)
263280
{
264281
// Call to enable ecommerce tracking automatically
265282
$this->enableEcommerceTracking();
266283

267284
$parameters = [
268-
'id' => $id,
269-
'name' => $name,
285+
'id' => $id,
286+
'name' => $name,
270287
];
271288

272289
if (!is_null($sku)) {
@@ -596,7 +613,7 @@ public function setUserId($userId)
596613
}
597614

598615
/**
599-
* unsets a possible given user id
616+
* unset a possible given user id
600617
*
601618
* @return AnalyticsProviderInterface
602619
*/
@@ -640,7 +657,7 @@ public function setCampaign(Campaign $campaign)
640657
}
641658

642659
/**
643-
* unsets a possible given campaign
660+
* unset a possible given campaign
644661
*
645662
* @return AnalyticsProviderInterface
646663
*/
@@ -651,36 +668,6 @@ public function unsetCampaign()
651668
return $this;
652669
}
653670

654-
/**
655-
* returns start block
656-
*
657-
* @return string
658-
*/
659-
protected function _getJavascriptTemplateBlockBegin()
660-
{
661-
$appendix = $this->debug ? '_debug' : '';
662-
663-
$scriptTag = ($this->cspNonce === null)
664-
? '<script>'
665-
: '<script nonce="' . $this->cspNonce . '">';
666-
667-
return ($this->renderScriptBlock)
668-
? $scriptTag . "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics{$appendix}.js','ga');"
669-
: '';
670-
}
671-
672-
/**
673-
* returns end block
674-
*
675-
* @return string
676-
*/
677-
protected function _getJavascriptTemplateBlockEnd()
678-
{
679-
return ($this->renderScriptBlock)
680-
? '</script>'
681-
: '';
682-
}
683-
684671
/**
685672
* enables Content Security Polity and sets nonce
686673
*
@@ -716,4 +703,34 @@ public function cspNonce()
716703
{
717704
return $this->cspNonce;
718705
}
706+
707+
/**
708+
* returns start block
709+
*
710+
* @return string
711+
*/
712+
protected function _getJavascriptTemplateBlockBegin()
713+
{
714+
$appendix = $this->debug ? '_debug' : '';
715+
716+
$scriptTag = ($this->cspNonce === null)
717+
? '<script>'
718+
: '<script nonce="' . $this->cspNonce . '">';
719+
720+
return ($this->renderScriptBlock)
721+
? $scriptTag . "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics{$appendix}.js','ga');"
722+
: '';
723+
}
724+
725+
/**
726+
* returns end block
727+
*
728+
* @return string
729+
*/
730+
protected function _getJavascriptTemplateBlockEnd()
731+
{
732+
return ($this->renderScriptBlock)
733+
? '</script>'
734+
: '';
735+
}
719736
}

src/Ipunkt/LaravelAnalytics/Providers/NoAnalytics.php

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -245,32 +245,34 @@ public function disableEcommerceTracking()
245245
/**
246246
* ecommerce tracking - add transaction
247247
*
248-
* @param string $id
249-
* @param null|string $affiliation
250-
* @param null|float $revenue
251-
* @param null|float $shipping
252-
* @param null|float $tax
248+
* @param string $id
249+
* @param null|string $affiliation
250+
* @param null|float $revenue
251+
* @param null|float $shipping
252+
* @param null|float $tax
253+
* @param null|string $currency
253254
*
254255
* @return AnalyticsProviderInterface
255256
*/
256-
public function ecommerceAddTransaction($id, $affiliation = null, $revenue = null, $shipping = null, $tax = null)
257+
public function ecommerceAddTransaction($id, $affiliation = null, $revenue = null, $shipping = null, $tax = null, $currency = null)
257258
{
258259
return $this;
259260
}
260261

261262
/**
262263
* ecommerce tracking - add item
263264
*
264-
* @param string $id
265-
* @param string $name
266-
* @param null|string $sku
267-
* @param null|string $category
268-
* @param null|float $price
269-
* @param null|int $quantity
265+
* @param string $id
266+
* @param string $name
267+
* @param null|string $sku
268+
* @param null|string $category
269+
* @param null|float $price
270+
* @param null|int $quantity
271+
* @param null|string $currency
270272
*
271273
* @return AnalyticsProviderInterface
272274
*/
273-
public function ecommerceAddItem($id, $name, $sku = null, $category = null, $price = null, $quantity = null)
275+
public function ecommerceAddItem($id, $name, $sku = null, $category = null, $price = null, $quantity = null, $currency = null)
274276
{
275277
return $this;
276278
}

0 commit comments

Comments
 (0)