For the complete documentation index, see llms.txt. This page is also available as Markdown.

Валідація customerData

Загальний опис логіки валідації

Перед відправкою даних, плагін формує масив у методі prepareCustomerData(), використовуючи платіжну адресу платника (об'єкт BT — BillTo) з VirtueMart. Після цього дані передаються в сервіс ValidateCustomerData.

Назва поля

Тип даних

Обов'язкове

Макс. довжина

Джерело даних у VirtueMart (BT / Моделі)

Особливі правила валідації та фільтрації

senderCustomerId

string

Так

255

$bt->customer_number

Якщо порожнє, весь запис поля ігнорується.

senderFirstName

string

Ні

30

$bt->first_name

  1. Регулярний вираз: Дозволені літери, цифри, дефіси, апострофи. Без спецсимволів по краях.

  1. Не лише цифри: Блокується, якщо складається тільки з цифр.

  1. Стоп-слова (частковий збіг): NULL, 3D SECURE, SURNAME, CARDHOLDER, UNKNOWN. Якщо знайдено, поле видаляється.

senderLastName

string

Ні

30

$bt->last_name

Аналогічно до senderFirstName (крім перевірки стоп-слів).

senderMiddleName

string

Ні

30

$bt->middle_name

Нове поле. Проходить аналогічну валідацію, як і senderLastName.

senderEmail

string

Ні

256

$bt->email

Стандартне обрізання до 256 символів.

senderCountry

string

Ні

3

$country->country_num_code

Завантажується через VmModel::getModel('country') на основі ID країни платника. Передає числовий код ISO.

senderRegion

string

Ні

255

$state->state_name

Завантажується через VmModel::getModel('state') на основі ID регіону платника.

senderCity

string

Ні

25

$bt->city

Обрізається до 25 символів, якщо довше.

senderStreet

string

Ні

35

$bt->address_1

Обрізається до 35 символів, якщо довше.

senderAdditionalAddress

string

Ні

255

$bt->address_2

Обрізається до 255 символів, якщо довше.

senderIp

ip

Ні

$bt->ip_address

Нова логіка: Перевіряється через PHP FILTER_VALIDATE_IP. Якщо IP невалідний — поле повністю видаляється із фінального масиву.

senderPhone

numeric_string

Ні

20

$bt->phone_1 або $bt->phone_2

Фолбек: якщо phone_1 порожній, береться phone_2. Фільтрація: Видаляються абсолютно всі нецифрові символи.

senderZipCode

string

Ні

50

$bt->zip

Обрізається до 50 символів, якщо довше.

Останнє оновлення