PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 4.13.3
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v4.13.3
5.12.0 5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / ProfessionalServices / Advertising.php
matomo / app / core / ProfessionalServices Last commit date
Advertising.php 4 years ago
Advertising.php
129 lines
1 <?php
2 /**
3 * Matomo - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 */
8 namespace Piwik\ProfessionalServices;
9
10 use Piwik\Plugin;
11 use Piwik\Config;
12
13 /**
14 * Advertising for providers of Professional Support for Piwik.
15 *
16 * Lets you for example check whether advertising is enabled, generate links for different landing pages etc.
17 *
18 * @since 2.16.0
19 */
20 class Advertising
21 {
22 const CAMPAIGN_NAME_PROFESSIONAL_SERVICES = 'App_ProfessionalServices';
23
24 /**
25 * @var Plugin\Manager
26 */
27 private $pluginManager;
28
29 /**
30 * @var Config
31 */
32 private $config;
33
34 public function __construct(Plugin\Manager $pluginManager, Config $config)
35 {
36 $this->pluginManager = $pluginManager;
37 $this->config = $config;
38 }
39
40 /**
41 * Returns true if it is ok to show some advertising in the Piwik UI.
42 * @return bool
43 */
44 public function areAdsForProfessionalServicesEnabled()
45 {
46 return self::isAdsEnabledInConfig($this->config->General);
47 }
48
49 /**
50 * Get URL for promoting Professional Services for Piwik
51 *
52 * @param string $campaignMedium
53 * @param string $campaignContent
54 * @return string
55 */
56 public function getPromoUrlForProfessionalServices($campaignMedium, $campaignContent = '')
57 {
58 $url = 'https://matomo.org/support-plans/?';
59
60 $campaign = $this->getCampaignParametersForPromoUrl(
61 $name = self::CAMPAIGN_NAME_PROFESSIONAL_SERVICES,
62 $campaignMedium,
63 $campaignContent
64 );
65
66 return $url . $campaign;
67 }
68
69 /**
70 * Appends campaign parameters to the given URL for promoting any Professional Support for Piwik service.
71 *
72 * @param string $url
73 * @param string $campaignName
74 * @param string $campaignMedium
75 * @param string $campaignContent
76 * @return string
77 */
78 public function addPromoCampaignParametersToUrl($url, $campaignName, $campaignMedium, $campaignContent = '')
79 {
80 if (empty($url)) {
81 return '';
82 }
83
84 if (strpos($url, '?') === false) {
85 $url .= '?';
86 } else {
87 $url .= '&';
88 }
89
90 $url .= $this->getCampaignParametersForPromoUrl($campaignName, $campaignMedium, $campaignContent);
91
92 return $url;
93 }
94
95 /**
96 * @deprecated
97 * Generates campaign URL parameters that can be used with promoting Professional Support service.
98 *
99 * @param string $campaignName
100 * @param string $campaignMedium
101 * @param string $campaignContent Optional
102 * @return string URL parameters without a leading ? or &
103 */
104 private function getCampaignParametersForPromoUrl($campaignName, $campaignMedium, $campaignContent = '')
105 {
106 $campaignName = sprintf('pk_campaign=%s&pk_medium=%s&pk_source=Matomo_App', $campaignName, $campaignMedium);
107
108 if (!empty($campaignContent)) {
109 $campaignName .= '&pk_content=' . $campaignContent;
110 }
111
112 return $campaignName;
113 }
114
115 /**
116 * @param $configGeneralSection
117 * @return bool
118 */
119 public static function isAdsEnabledInConfig($configGeneralSection)
120 {
121 $oldSettingValue = false;
122 if (isset($configGeneralSection['piwik_pro_ads_enabled'])) {
123 $oldSettingValue = @$configGeneralSection['piwik_pro_ads_enabled'];
124 }
125 $newSettingValue = @$configGeneralSection['piwik_professional_support_ads_enabled'];
126 return (bool) ($newSettingValue || $oldSettingValue);
127 }
128 }
129