Automattic\WooCommerce\Vendor\Pelago\Emogrifier\Utilities

CssConcatenator::appendpublicWC 1.0

Appends a declaration block to the CSS.

Метод класса: CssConcatenator{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

$CssConcatenator = new CssConcatenator();
$CssConcatenator->append( $selectors, $declarationsBlock, $media ): void;
$selectors(массив) (обязательный)
.
$declarationsBlock(строка) (обязательный)
the property declarations, e.g. "margin-top: 0.5em; padding: 0".
$media(строка)
the media query for the rule, e.g. "@media screen and (max-width:639px)", or an empty string if none.
По умолчанию: ''

Код CssConcatenator::append() WC 10.4.3

public function append(array $selectors, string $declarationsBlock, string $media = ''): void
{
    $selectorsAsKeys = \array_flip($selectors);

    $mediaRule = $this->getOrCreateMediaRuleToAppendTo($media);
    $ruleBlocks = $mediaRule->ruleBlocks;
    $lastRuleBlock = \end($ruleBlocks);

    $hasSameDeclarationsAsLastRule = \is_object($lastRuleBlock)
        && $declarationsBlock === $lastRuleBlock->declarationsBlock;
    if ($hasSameDeclarationsAsLastRule) {
        $lastRuleBlock->selectorsAsKeys += $selectorsAsKeys;
    } else {
        $lastRuleBlockSelectors = \is_object($lastRuleBlock) ? $lastRuleBlock->selectorsAsKeys : [];
        $hasSameSelectorsAsLastRule = \is_object($lastRuleBlock)
            && self::hasEquivalentSelectors($selectorsAsKeys, $lastRuleBlockSelectors);
        if ($hasSameSelectorsAsLastRule) {
            $lastDeclarationsBlockWithoutSemicolon = \rtrim(\rtrim($lastRuleBlock->declarationsBlock), ';');
            $lastRuleBlock->declarationsBlock = $lastDeclarationsBlockWithoutSemicolon . ';' . $declarationsBlock;
        } else {
            $mediaRule->ruleBlocks[] = (object) \compact('selectorsAsKeys', 'declarationsBlock');
        }
    }
}