Automattic\WooCommerce\Blocks\Utils
StyleAttributesUtils::get_border_color_class_and_style
Get class and style for border-color from attributes.
Data passed to this function is not always consistent. It can be: Linked - preset color: $attributes['borderColor'] => 'luminous-vivid-orange'. Linked - custom color: $attributes['style']['border']['color'] => '#681228'. Unlinked - preset color: $attributes['style']['border']['top']['color'] => 'var:preset|color|luminous-vivid-orange' Unlinked - custom color: $attributes['style']['border']['top']['color'] => '#681228'.
Method of the class: StyleAttributesUtils{}
No Hooks.
Returns
Array.
Usage
$result = StyleAttributesUtils::get_border_color_class_and_style( $attributes );
- $attributes(array) (required)
- Block attributes.
StyleAttributesUtils::get_border_color_class_and_style() StyleAttributesUtils::get border color class and style code WC 10.3.6
public static function get_border_color_class_and_style( $attributes ) {
$border_color_linked_preset = $attributes['borderColor'] ?? '';
$border_color_linked_custom = $attributes['style']['border']['color'] ?? '';
$custom_border = $attributes['style']['border'] ?? '';
$class = '';
$style = '';
$value = '';
if ( $border_color_linked_preset ) {
// Linked preset color.
$class = sprintf( 'has-border-color has-%s-border-color', $border_color_linked_preset );
$value = self::get_preset_value( $border_color_linked_preset );
$style = 'border-color:' . $value . ';';
} elseif ( $border_color_linked_custom ) {
// Linked custom color.
$style .= 'border-color:' . $border_color_linked_custom . ';';
$value = $border_color_linked_custom;
} elseif ( is_array( $custom_border ) ) {
// Unlinked.
foreach ( $custom_border as $border_color_key => $border_color_value ) {
if ( is_array( $border_color_value ) && array_key_exists( 'color', ( $border_color_value ) ) ) {
$style .= 'border-' . $border_color_key . '-color:' . self::get_color_value( $border_color_value['color'] ) . ';';
}
}
}
if ( ! $class && ! $style ) {
return self::EMPTY_STYLE;
}
return array(
'class' => $class,
'style' => $style,
'value' => $value,
);
}