: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
* Functions for Themes Template
* @copyright Copyright (c) 2023, Code Atlantic LLC
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
function pum_get_rendered_theme_styles( $theme_id ) {
$theme = pum_get_theme( $theme_id );
if ( ! pum_is_theme( $theme ) ) {
$slug = $theme->post_name;
$theme_styles = $theme->get_generated_styles();
if ( empty( $theme_styles ) ) {
foreach ( $theme_styles as $element => $element_rules ) {
$css_selector = ".pum-theme-{$theme_id}";
$css_selector .= ", .pum-theme-{$slug}";
$css_selector = ".pum-theme-{$theme_id} .pum-container";
$css_selector .= ", .pum-theme-{$slug} .pum-container";
$css_selector = ".pum-theme-{$theme_id} .pum-content + .pum-close";
$admin_bar_selector = "body.admin-bar .pum-theme-{$theme_id} .pum-content + .pum-close";
$css_selector .= ", .pum-theme-{$slug} .pum-content + .pum-close";
$admin_bar_selector .= ", body.admin-bar .pum-theme-{$slug} .pum-content + .pum-close";
$css_selector = ".pum-theme-{$theme_id} .pum-{$element}";
$css_selector .= ", .pum-theme-{$slug} .pum-{$element}";
foreach ( $element_rules as $property => $value ) {
if ( ! empty( $value ) ) {
$rule_set .= $sep . $property . ': ' . $value;
$styles .= "$css_selector { $rule_set } \r\n";
if ( 'close' === $element && ! empty( $admin_bar_selector ) && $theme->get_setting( 'close_position_outside' ) && strpos( $theme->get_setting( 'close_location' ), 'top' ) !== false ) {
$top = ! empty( $element_rules['top'] ) ? (int) str_replace( 'px', '', $element_rules['top'] ) : 0;
// Move it down to compensate for admin bar height.
$styles .= "$admin_bar_selector { top: {$top}px }";