File: /home/lucendi/www/wp-content/plugins/mesmerize-companion/theme-data/mesmerize/options/overlap.php
<?php
add_action( 'mesmerize_header_background_overlay_settings', 'mesmerize_front_page_header_overlap_options', 5, 5 );
function mesmerize_front_page_header_overlap_options( $section, $prefix, $group, $inner, $priority ) {
if ( $inner ) {
return;
}
$priority = 5;
$prefix = 'header';
$section = 'header_background_chooser';
$group = '';
mesmerize_add_kirki_field(
array(
'type' => 'checkbox',
'settings' => 'header_overlap',
'label' => esc_html__( 'Allow content to overlap header', 'mesmerize-companion' ),
'default' => mesmerize_mod_default( 'header_overlap' ),
'section' => $section,
'priority' => $priority,
'group' => $group,
'transport' => 'postMessage',
'active_callback' => apply_filters( 'mesmerize_header_active_callback_filter', array(), $inner ),
)
);
mesmerize_add_kirki_field(
array(
'type' => 'dimension',
'settings' => 'header_overlap_with',
'label' => esc_html__( 'Overlap with', 'mesmerize-companion' ),
'section' => $section,
'default' => '95px',
'priority' => $priority,
'transport' => 'postMessage',
'active_callback' => apply_filters(
'mesmerize_header_active_callback_filter',
array(
array(
'setting' => 'header_overlap',
'operator' => '==',
'value' => true,
),
),
$inner,
'simple'
),
'group' => $group,
)
);
}
add_filter(
'body_class',
function ( $classes ) {
$header_type = get_theme_mod( 'header_type', 'simple' );
if ( ! in_array( $header_type, array( 'simple', 'slider' ) ) ) {
return $classes;
} else {
// set overlap-first-section class depending on the header type
if ( $header_type == 'simple' ) {
$overlap_mod = get_theme_mod( 'header_overlap', mesmerize_mod_default( 'header_overlap' ) );
}
if ( $header_type == 'slider' ) {
$overlap_mod = get_theme_mod( 'slider_overlap_header', true );
}
if ( 1 == intval( $overlap_mod ) ) {
$classes[] = 'overlap-first-section';
}
return $classes;
}
}
);
// always print overlap properties, to avoid a bug when the customizer is loaded without allow overlap,
// and checking the control will put the 'overlap-first-section' class on body, but the padding/negative margin wont be set
add_action(
'wp_head',
function () {
$inner = mesmerize_is_inner( true );
// only print style for simple header type, slider doesn't need this style
if ( $inner || ( get_theme_mod( 'header_type', 'simple' ) !== 'simple' ) ) {
return;
}
$overlap_with = get_theme_mod( 'header_overlap_with', '95px' );
$selector = '.mesmerize-front-page.overlap-first-section:not(.mesmerize-front-page-with-slider)';
?>
<style data-name="header-overlap-with">
@media screen and (min-width: 768px) {
<?php echo esc_attr( $selector ); ?> .header-homepage {
padding-bottom: <?php echo esc_attr( $overlap_with ); ?>;
}
<?php echo esc_attr( $selector ); ?> .page-content div[data-overlap]:first-of-type > div:not([class*="section-separator"]) {
margin-top: -<?php echo esc_attr( $overlap_with ); ?>;
}
}
</style>
<?php
}
);