$orderDetails['orderLink'] = $link;
}
- $deliveryLabel = $main->findOne('p:contains("Доставить")');
- $pickupLabel = $main->findOne('p:contains("Самовывоз")');
+ // Ищем метку доставки/самовывоза с более гибкими селекторами
+ // Используем findOneOrFalse для корректной обработки отсутствия элемента
+ $deliveryLabel = $main->findOneOrFalse('p:contains("Доставить")');
+ $pickupLabel = $main->findOneOrFalse('p:contains("Самовывоз")');
+
+ // Если не нашли через p, пробуем искать в других распространенных элементах (для невалидного HTML)
+ // Используем конкретные селекторы вместо *, чтобы избежать deprecation warning в PHP 8.1+
+ if ($deliveryLabel === false) {
+ $deliveryLabel = $main->findOneOrFalse('div:contains("Доставить")');
+ if ($deliveryLabel === false) {
+ $deliveryLabel = $main->findOneOrFalse('span:contains("Доставить")');
+ }
+ if ($deliveryLabel === false) {
+ $deliveryLabel = $main->findOneOrFalse('td:contains("Доставить")');
+ }
+ }
+
+ if ($pickupLabel === false) {
+ $pickupLabel = $main->findOneOrFalse('div:contains("Самовывоз")');
+ if ($pickupLabel === false) {
+ $pickupLabel = $main->findOneOrFalse('span:contains("Самовывоз")');
+ }
+ if ($pickupLabel === false) {
+ $pickupLabel = $main->findOneOrFalse('td:contains("Самовывоз")');
+ }
+ }
- $targetLabel = $deliveryLabel ?? $pickupLabel;
- $labelPrefix = $deliveryLabel ? 'Доставка:' : ($pickupLabel ? 'Самовывоз:' : null);
+ $targetLabel = $deliveryLabel !== false ? $deliveryLabel : ($pickupLabel !== false ? $pickupLabel : null);
+ $labelPrefix = $deliveryLabel !== false ? 'Доставка:' : ($pickupLabel !== false ? 'Самовывоз:' : null);
+
+ // Логируем для отладки, если не найдено ни одного варианта
+ if ($targetLabel === null) {
+ Yii::warning('Не найдена метка доставки или самовывоза в HTML письма', __METHOD__);
+ }
- if ($targetLabel && $targetLabel->nextNonWhitespaceSibling()) {
+ if ($targetLabel !== null && $targetLabel->nextNonWhitespaceSibling()) {
$infoBlock = $targetLabel->nextNonWhitespaceSibling();
$textParts = [];