Automattic\WooCommerce\Vendor\Pelago\Emogrifier\HtmlProcessor
HtmlPruner::removeClassesFromElements
Removes classes from the class attribute of each element in $elements, except any in $classesToKeep, removing the class attribute itself if the resultant list is empty.
Метод класса: HtmlPruner{}
Хуков нет.
Возвращает
null. Ничего (null).
Использование
// private - только в коде основоного (родительского) класса $result = $this->removeClassesFromElements( $elements, $classesToKeep ): void;
- $elements(DOMNodeList) (обязательный)
- .
- $classesToKeep(массив) (обязательный)
- .
Код HtmlPruner::removeClassesFromElements() HtmlPruner::removeClassesFromElements WC 10.4.3
private function removeClassesFromElements(\DOMNodeList $elements, array $classesToKeep): void
{
$classesToKeepIntersector = new ArrayIntersector($classesToKeep);
$preg = new Preg();
/** @var \DOMElement $element */
foreach ($elements as $element) {
$elementClasses = $preg->split('/\\s++/', \trim($element->getAttribute('class')));
$elementClassesToKeep = $classesToKeepIntersector->intersectWith($elementClasses);
if ($elementClassesToKeep !== []) {
$element->setAttribute('class', \implode(' ', $elementClassesToKeep));
} else {
$element->removeAttribute('class');
}
}
}