diff options
Diffstat (limited to 'Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TrackingSettings.php')
-rw-r--r-- | Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TrackingSettings.php | 252 |
1 files changed, 252 insertions, 0 deletions
diff --git a/Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TrackingSettings.php b/Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TrackingSettings.php new file mode 100644 index 0000000..271ec06 --- /dev/null +++ b/Postman/Postman-Mail/sendgrid/vendor/sendgrid/sendgrid/lib/mail/TrackingSettings.php @@ -0,0 +1,252 @@ +<?php +/** + * This helper builds the TrackingSettings object for a /mail/send API call + * + * PHP Version - 5.6, 7.0, 7.1, 7.2 + * + * @package SendGrid\Mail + * @author Elmer Thomas <dx@sendgrid.com> + * @copyright 2018-19 Twilio SendGrid + * @license https://opensource.org/licenses/MIT The MIT License + * @version GIT: <git_id> + * @link http://packagist.org/packages/sendgrid/sendgrid + */ + +namespace SendGrid\Mail; + +/** + * This class is used to construct a TrackingSettings object for the + * /mail/send API call + * + * @package SendGrid\Mail + */ +class TrackingSettings implements \JsonSerializable +{ + /** @var $click_tracking ClickTracking object */ + private $click_tracking; + /** @var $open_tracking OpenTracking object */ + private $open_tracking; + /** @var $subscription_tracking SubscriptionTracking object */ + private $subscription_tracking; + /** @var $ganalytics Ganalytics object */ + private $ganalytics; + + /** + * Optional constructor + * + * @param ClickTracking|null $click_tracking ClickTracking object + * @param OpenTracking|null $open_tracking OpenTracking object + * @param SubscriptionTracking|null $subscription_tracking SubscriptionTracking + * object + * @param Ganalytics|null $ganalytics Ganalytics object + */ + public function __construct( + $click_tracking = null, + $open_tracking = null, + $subscription_tracking = null, + $ganalytics = null + ) + { + if (isset($click_tracking)) { + $this->setClickTracking($click_tracking); + } + if (isset($open_tracking)) { + $this->setOpenTracking($open_tracking); + } + if (isset($subscription_tracking)) { + $this->setSubscriptionTracking($subscription_tracking); + } + if (isset($ganalytics)) { + $this->setGanalytics($ganalytics); + } + } + + /** + * Set the click tracking settings on a TrackingSettings object + * + * @param ClickTracking|bool $enable The ClickTracking object or an + * indication if the setting is enabled + * @param bool|null $enable_text Indicates if this setting should be + * included in the text/plain portion of + * your email + */ + public function setClickTracking($enable, $enable_text = null) + { + if ($enable instanceof ClickTracking) { + $click_tracking = $enable; + $this->click_tracking = $click_tracking; + return; + } + $this->click_tracking = new ClickTracking($enable, $enable_text); + } + + /** + * Retrieve the click tracking settings from a TrackingSettings object + * + * @return ClickTracking + */ + public function getClickTracking() + { + return $this->click_tracking; + } + + /** + * Set the open tracking settings on a TrackingSettings object + * + * @param OpenTracking|bool $enable The ClickTracking object or an + * indication if the setting is + * enabled + * @param string|null $substitution_tag Allows you to specify a + * substitution tag that you can + * insert in the body of your email + * at a location that you desire. + * This tag will be replaced by + * the open tracking pixelail + * + * @return null + */ + public function setOpenTracking($enable, $substitution_tag = null) + { + if ($enable instanceof OpenTracking) { + $open_tracking = $enable; + $this->open_tracking = $open_tracking; + return; + } + $this->open_tracking = new OpenTracking($enable, $substitution_tag); + return; + } + + /** + * Retrieve the open tracking settings on a TrackingSettings object + * + * @return OpenTracking + */ + public function getOpenTracking() + { + return $this->open_tracking; + } + + /** + * Set the subscription tracking settings on a TrackingSettings object + * + * @param SubscriptionTracking|bool $enable The SubscriptionTracking + * object or an indication + * if the setting is enabled + * @param string|null $text Text to be appended to the + * email, with the + * subscription tracking + * link. You may control + * where the link is by using + * the tag <% %> + * @param string|null $html HTML to be appended to the + * email, with the + * subscription tracking + * link. You may control + * where the link is by using + * the tag <% %> + * @param string|null $substitution_tag A tag that will be + * replaced with the + * unsubscribe URL. For + * example: + * [unsubscribe_url]. If this + * parameter is used, it will + * override both the text + * and html parameters. The + * URL of the link will be + * placed at the substitution + * tag’s location, with no + * additional formatting + */ + public function setSubscriptionTracking( + $enable, + $text = null, + $html = null, + $substitution_tag = null + ) { + if ($enable instanceof SubscriptionTracking) { + $subscription_tracking = $enable; + $this->subscription_tracking = $subscription_tracking; + return; + } + $this->subscription_tracking + = new SubscriptionTracking($enable, $text, $html, $substitution_tag); + } + + /** + * Retrieve the subscription tracking settings from a TrackingSettings object + * + * @return SubscriptionTracking + */ + public function getSubscriptionTracking() + { + return $this->subscription_tracking; + } + + /** + * Set the Google analytics settings on a TrackingSettings object + * + * @param Ganalytics|bool $enable The Ganalytics object or an indication + * if the setting is enabled + * @param string|null $utm_source Name of the referrer source. (e.g. + * Google, SomeDomain.com, or + * Marketing Email) + * @param string|null $utm_medium Name of the marketing medium. (e.g. + * Email) + * @param string|null $utm_term Used to identify any paid keywords + * @param string|null $utm_content Used to differentiate your campaign from + * advertisements + * @param string|null $utm_campaign The name of the campaign + */ + public function setGanalytics( + $enable, + $utm_source = null, + $utm_medium = null, + $utm_term = null, + $utm_content = null, + $utm_campaign = null + ) { + if ($enable instanceof Ganalytics) { + $ganalytics = $enable; + $this->ganalytics = $ganalytics; + return; + } + $this->ganalytics = new Ganalytics( + $enable, + $utm_source, + $utm_medium, + $utm_term, + $utm_content, + $utm_campaign + ); + } + + /** + * Retrieve the Google analytics settings from a TrackingSettings object + * + * @return Ganalytics + */ + public function getGanalytics() + { + return $this->ganalytics; + } + + /** + * Return an array representing a TrackingSettings object for the Twilio SendGrid API + * + * @return null|array + */ + public function jsonSerialize() + { + return array_filter( + [ + 'click_tracking' => $this->getClickTracking(), + 'open_tracking' => $this->getOpenTracking(), + 'subscription_tracking' => $this->getSubscriptionTracking(), + 'ganalytics' => $this->getGanalytics() + ], + function ($value) { + return $value !== null; + } + ) ?: null; + } +} |