| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- <?php
- namespace MailPoet\Subscribers;
- if (!defined('ABSPATH')) exit;
- use MailPoet\Models\Subscriber;
- class Source {
- const FORM = 'form';
- const IMPORTED = 'imported';
- const ADMINISTRATOR = 'administrator';
- const API = 'api';
- const WORDPRESS_USER = 'wordpress_user';
- const WOOCOMMERCE_USER = 'woocommerce_user';
- const WOOCOMMERCE_CHECKOUT = 'woocommerce_checkout';
- const UNKNOWN = 'unknown';
- private static $allowedSources = [
- Source::FORM,
- Source::IMPORTED,
- Source::ADMINISTRATOR,
- Source::API,
- Source::WORDPRESS_USER,
- Source::WOOCOMMERCE_USER,
- Source::WOOCOMMERCE_CHECKOUT,
- Source::UNKNOWN,
- ];
- public static function setSource(Subscriber $subscriber, $source) {
- if ((isset($subscriber->source)) && ($subscriber->source !== Source::UNKNOWN)) {
- // we don't want to override source
- return $subscriber;
- }
- if (!in_array($source, Source::$allowedSources)) {
- throw new \InvalidArgumentException('Invalid source "' . $source . '""');
- }
- $subscriber->set('source', $source);
- return $subscriber;
- }
- }
|