PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.36.0
MailPoet – Newsletters, Email Marketing, and Automation v5.36.0
5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / symfony / validator / Constraints / CardSchemeValidator.php
mailpoet / vendor-prefixed / symfony / validator / Constraints Last commit date
AbstractComparison.php 1 year ago AbstractComparisonValidator.php 1 year ago All.php 1 year ago AllValidator.php 4 years ago AtLeastOneOf.php 1 year ago AtLeastOneOfValidator.php 1 year ago Bic.php 1 year ago BicValidator.php 1 year ago Blank.php 1 year ago BlankValidator.php 4 years ago Callback.php 1 year ago CallbackValidator.php 4 years ago CardScheme.php 1 year ago CardSchemeValidator.php 1 year ago Cascade.php 1 year ago Choice.php 1 year ago ChoiceValidator.php 1 year ago Cidr.php 1 year ago CidrValidator.php 4 years ago Collection.php 1 year ago CollectionValidator.php 4 years ago Composite.php 1 year ago Compound.php 4 years ago CompoundValidator.php 4 years ago Count.php 1 year ago CountValidator.php 4 years ago Country.php 1 year ago CountryValidator.php 4 years ago CssColor.php 1 year ago CssColorValidator.php 1 year ago Currency.php 1 year ago CurrencyValidator.php 4 years ago Date.php 1 year ago DateTime.php 1 year ago DateTimeValidator.php 2 years ago DateValidator.php 1 year ago DisableAutoMapping.php 1 year ago DivisibleBy.php 4 years ago DivisibleByValidator.php 4 years ago Email.php 1 year ago EmailValidator.php 1 year ago EnableAutoMapping.php 1 year ago EqualTo.php 4 years ago EqualToValidator.php 4 years ago Existence.php 4 years ago Expression.php 1 year ago ExpressionLanguageSyntax.php 1 year ago ExpressionLanguageSyntaxValidator.php 1 year ago ExpressionValidator.php 1 year ago File.php 1 year ago FileValidator.php 4 years ago GreaterThan.php 4 years ago GreaterThanOrEqual.php 4 years ago GreaterThanOrEqualValidator.php 4 years ago GreaterThanValidator.php 4 years ago GroupSequence.php 4 years ago GroupSequenceProvider.php 4 years ago Hostname.php 1 year ago HostnameValidator.php 4 years ago Iban.php 1 year ago IbanValidator.php 1 year ago IdenticalTo.php 4 years ago IdenticalToValidator.php 4 years ago Image.php 1 year ago ImageValidator.php 4 years ago Ip.php 1 year ago IpValidator.php 4 years ago IsFalse.php 1 year ago IsFalseValidator.php 4 years ago IsNull.php 1 year ago IsNullValidator.php 4 years ago IsTrue.php 1 year ago IsTrueValidator.php 4 years ago Isbn.php 1 year ago IsbnValidator.php 1 year ago Isin.php 1 year ago IsinValidator.php 4 years ago Issn.php 1 year ago IssnValidator.php 4 years ago Json.php 1 year ago JsonValidator.php 1 year ago Language.php 1 year ago LanguageValidator.php 4 years ago Length.php 1 year ago LengthValidator.php 4 years ago LessThan.php 4 years ago LessThanOrEqual.php 4 years ago LessThanOrEqualValidator.php 4 years ago LessThanValidator.php 4 years ago Locale.php 1 year ago LocaleValidator.php 4 years ago Luhn.php 1 year ago LuhnValidator.php 4 years ago Negative.php 4 years ago NegativeOrZero.php 4 years ago NotBlank.php 1 year ago NotBlankValidator.php 4 years ago NotCompromisedPassword.php 1 year ago NotCompromisedPasswordValidator.php 1 year ago NotEqualTo.php 4 years ago NotEqualToValidator.php 4 years ago NotIdenticalTo.php 4 years ago NotIdenticalToValidator.php 4 years ago NotNull.php 1 year ago NotNullValidator.php 4 years ago NumberConstraintTrait.php 4 years ago Optional.php 4 years ago Positive.php 4 years ago PositiveOrZero.php 4 years ago Range.php 1 year ago RangeValidator.php 1 year ago Regex.php 1 year ago RegexValidator.php 4 years ago Required.php 4 years ago Sequentially.php 1 year ago SequentiallyValidator.php 4 years ago Time.php 1 year ago TimeValidator.php 1 year ago Timezone.php 1 year ago TimezoneValidator.php 1 year ago Traverse.php 4 years ago Type.php 1 year ago TypeValidator.php 4 years ago Ulid.php 1 year ago UlidValidator.php 2 years ago Unique.php 1 year ago UniqueValidator.php 1 year ago Url.php 1 year ago UrlValidator.php 1 year ago Uuid.php 1 year ago UuidValidator.php 4 years ago Valid.php 1 year ago ValidValidator.php 4 years ago ZeroComparisonConstraintTrait.php 1 year ago index.php 3 years ago
CardSchemeValidator.php
66 lines
1 <?php
2 namespace MailPoetVendor\Symfony\Component\Validator\Constraints;
3 if (!defined('ABSPATH')) exit;
4 use MailPoetVendor\Symfony\Component\Validator\Constraint;
5 use MailPoetVendor\Symfony\Component\Validator\ConstraintValidator;
6 use MailPoetVendor\Symfony\Component\Validator\Exception\UnexpectedTypeException;
7 class CardSchemeValidator extends ConstraintValidator
8 {
9 protected $schemes = [
10 // American Express card numbers start with 34 or 37 and have 15 digits.
11 CardScheme::AMEX => ['/^3[47][0-9]{13}$/D'],
12 // China UnionPay cards start with 62 and have between 16 and 19 digits.
13 // Please note that these cards do not follow Luhn Algorithm as a checksum.
14 CardScheme::CHINA_UNIONPAY => ['/^62[0-9]{14,17}$/D'],
15 // Diners Club card numbers begin with 300 through 305, 36 or 38. All have 14 digits.
16 // There are Diners Club cards that begin with 5 and have 16 digits.
17 // These are a joint venture between Diners Club and MasterCard, and should be processed like a MasterCard.
18 CardScheme::DINERS => ['/^3(?:0[0-5]|[68][0-9])[0-9]{11}$/D'],
19 // Discover card numbers begin with 6011, 622126 through 622925, 644 through 649 or 65.
20 // All have 16 digits.
21 CardScheme::DISCOVER => ['/^6011[0-9]{12}$/D', '/^64[4-9][0-9]{13}$/D', '/^65[0-9]{14}$/D', '/^622(12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|91[0-9]|92[0-5])[0-9]{10}$/D'],
22 // InstaPayment cards begin with 637 through 639 and have 16 digits.
23 CardScheme::INSTAPAYMENT => ['/^63[7-9][0-9]{13}$/D'],
24 // JCB cards beginning with 2131 or 1800 have 15 digits.
25 // JCB cards beginning with 35 have 16 digits.
26 CardScheme::JCB => ['/^(?:2131|1800|35[0-9]{3})[0-9]{11}$/D'],
27 // Laser cards begin with either 6304, 6706, 6709 or 6771 and have between 16 and 19 digits.
28 CardScheme::LASER => ['/^(6304|670[69]|6771)[0-9]{12,15}$/D'],
29 // Maestro international cards begin with 675900..675999 and have between 12 and 19 digits.
30 // Maestro UK cards begin with either 500000..509999 or 560000..699999 and have between 12 and 19 digits.
31 CardScheme::MAESTRO => ['/^(6759[0-9]{2})[0-9]{6,13}$/D', '/^(50[0-9]{4})[0-9]{6,13}$/D', '/^5[6-9][0-9]{10,17}$/D', '/^6[0-9]{11,18}$/D'],
32 // All MasterCard numbers start with the numbers 51 through 55. All have 16 digits.
33 // October 2016 MasterCard numbers can also start with 222100 through 272099.
34 CardScheme::MASTERCARD => ['/^5[1-5][0-9]{14}$/D', '/^2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12})$/D'],
35 // Payment system MIR numbers start with 220, then 1 digit from 0 to 4, then between 12 and 15 digits
36 CardScheme::MIR => ['/^220[0-4][0-9]{12,15}$/D'],
37 // All UATP card numbers start with a 1 and have a length of 15 digits.
38 CardScheme::UATP => ['/^1[0-9]{14}$/D'],
39 // All Visa card numbers start with a 4 and have a length of 13, 16, or 19 digits.
40 CardScheme::VISA => ['/^4([0-9]{12}|[0-9]{15}|[0-9]{18})$/D'],
41 ];
42 public function validate($value, Constraint $constraint)
43 {
44 if (!$constraint instanceof CardScheme) {
45 throw new UnexpectedTypeException($constraint, CardScheme::class);
46 }
47 if (null === $value || '' === $value) {
48 return;
49 }
50 if (!\is_numeric($value)) {
51 $this->context->buildViolation($constraint->message)->setParameter('{{ value }}', $this->formatValue($value))->setCode(CardScheme::NOT_NUMERIC_ERROR)->addViolation();
52 return;
53 }
54 $schemes = \array_flip((array) $constraint->schemes);
55 $schemeRegexes = \array_intersect_key($this->schemes, $schemes);
56 foreach ($schemeRegexes as $regexes) {
57 foreach ($regexes as $regex) {
58 if (\preg_match($regex, $value)) {
59 return;
60 }
61 }
62 }
63 $this->context->buildViolation($constraint->message)->setParameter('{{ value }}', $this->formatValue($value))->setCode(CardScheme::INVALID_FORMAT_ERROR)->addViolation();
64 }
65 }
66