Automattic\WooCommerce\Vendor\Pelago\Emogrifier\HtmlProcessor

HtmlPruner::removeClassesFromElementsprivateWC 1.0

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() 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');
        }
    }
}