<?php
/**
* Footer Widgets Customizer Options
*
* @package OceanWP WordPress theme
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( ! class_exists( 'OceanWP_Footer_Widgets_Customizer' ) ) :
/**
* Settings for footer widgets
*/
class OceanWP_Footer_Widgets_Customizer {
/**
* Setup class.
*
* @since 1.0
*/
public function __construct() {
add_action( 'customize_register', array( $this, 'customizer_options' ) );
add_filter( 'ocean_head_css', array( $this, 'head_css' ) );
}
/**
* Customizer options
*
* @param WP_Customize_Manager $wp_customize Reference to WP_Customize_Manager.
* @since 1.0.0
*/
public function customizer_options( $wp_customize ) {
/**
* Section
*/
$section = 'ocean_footer_widgets_section';
$wp_customize->add_section(
$section,
array(
'title' => esc_html__( 'Footer Widgets', 'oceanwp' ),
'priority' => 210,
)
);
/**
* Enable Footer Widgets
*/
$wp_customize->add_setting(
'ocean_footer_widgets',
array(
'default' => true,
'sanitize_callback' => 'oceanwp_sanitize_checkbox',
)
);
$wp_customize->add_control(
new WP_Customize_Control(
$wp_customize,
'ocean_footer_widgets',
array(
'label' => esc_html__( 'Enable Footer Widgets', 'oceanwp' ),
'type' => 'checkbox',
'section' => $section,
'settings' => 'ocean_footer_widgets',
'priority' => 10,
)
)
);
/**
* Footer Widgets Visibility
*/
$wp_customize->add_setting(
'ocean_footer_widgets_visibility',
array(
'transport' => 'postMessage',
'default' => 'all-devices',
'sanitize_callback' => 'oceanwp_sanitize_select',
)
);
$wp_customize->add_control(
new WP_Customize_Control(
$wp_customize,
'ocean_footer_widgets_visibility',
array(
'label' => esc_html__( 'Visibility', 'oceanwp' ),
'type' => 'select',
'section' => $section,
'settings' => 'ocean_footer_widgets_visibility',
'priority' => 10,
'active_callback' => 'oceanwp_cac_has_footer_widgets',
'choices' => array(
'all-devices' => esc_html__( 'Show On All Devices', 'oceanwp' ),
'hide-tablet' => esc_html__( 'Hide On Tablet', 'oceanwp' ),
'hide-mobile' => esc_html__( 'Hide On Mobile', 'oceanwp' ),
'hide-tablet-mobile' => esc_html__( 'Hide On Tablet & Mobile', 'oceanwp' ),
),
)
)
);
/**
* Fixed Footer
*/
$wp_customize->add_setting(
'ocean_fixed_footer',
array(
'default' => 'off',
'sanitize_callback' => 'oceanwp_sanitize_select',
)
);
$wp_customize->add_control(
new OceanWP_Customizer_Buttonset_Control(
$wp_customize,
'ocean_fixed_footer',
array(
'label' => esc_html__( 'Fixed Footer', 'oceanwp' ),
'description' => esc_html__( 'This option add a height to your content to keep your footer at the bottom of your page.', 'oceanwp' ),
'section' => $section,
'settings' => 'ocean_fixed_footer',
'priority' => 10,
'choices' => array(
'on' => esc_html__( 'On', 'oceanwp' ),
'off' => esc_html__( 'Off', 'oceanwp' ),
),
'active_callback' => 'oceanwp_cac_has_footer_widgets',
)
)
);
/**
* Parallax Footer Effect
*/
$wp_customize->add_setting(
'ocean_parallax_footer',
array(
'default' => 'off',
'sanitize_callback' => 'oceanwp_sanitize_select',
)
);
$wp_customize->add_control(
new OceanWP_Customizer_Buttonset_Control(
$wp_customize,
'ocean_parallax_footer',
array(
'label' => esc_html__( 'Parallax Footer Effect', 'oceanwp' ),
'description' => esc_html__( 'Add a parallax effect to your footer.', 'oceanwp' ),
'section' => $section,
'settings' => 'ocean_parallax_footer',
'priority' => 10,
'choices' => array(
'on' => esc_html__( 'On', 'oceanwp' ),
'off' => esc_html__( 'Off', 'oceanwp' ),
),
'active_callback' => 'oceanwp_cac_has_footer_widgets',
)
)
);
/**
* Footer Widgets Template
*/
$wp_customize->add_setting(
'ocean_footer_widgets_template',
array(
'default' => '0',
'sanitize_callback' => 'oceanwp_sanitize_select',
)
);
$wp_customize->add_control(
new WP_Customize_Control(
$wp_customize,
'ocean_footer_widgets_template',
array(
'label' => esc_html__( 'Select Template', 'oceanwp' ),
'description' => esc_html__( 'Choose a template created in Theme Panel > My Library.', 'oceanwp' ),
'type' => 'select',
'section' => $section,
'settings' => 'ocean_footer_widgets_template',
'priority' => 10,
'active_callback' => 'oceanwp_cac_has_footer_widgets',
'choices' => oceanwp_customizer_helpers( 'library' ),
)
)
);
/**
* Footer Widgets Columns
*/
$wp_customize->add_setting(
'ocean_footer_widgets_columns',
array(
'default' => '4',
'sanitize_callback' => 'oceanwp_sanitize_number',
)
);
$wp_customize->add_setting(
'ocean_footer_widgets_tablet_columns',
array(
'transport' => 'postMessage',
'sanitize_callback' => 'oceanwp_sanitize_number_blank',
)
);
$wp_customize->add_setting(
'ocean_footer_widgets_mobile_columns',
array(
'transport' => 'postMessage',
'sanitize_callback' => 'oceanwp_sanitize_number_blank',
)
);
$wp_customize->add_control(
new OceanWP_Customizer_Slider_Control(
$wp_customize,
'ocean_footer_widgets_columns',
array(
'label' => esc_html__( 'Columns', 'oceanwp' ),
'section' => $section,
'settings' => array(
'desktop' => 'ocean_footer_widgets_columns',
'tablet' => 'ocean_footer_widgets_tablet_columns',
'mobile' => 'ocean_footer_widgets_mobile_columns',
),
'priority' => 10,
'active_callback' => 'oceanwp_cac_has_footer_widgets_and_no_page_id',
'input_attrs' => array(
'min' => 1,
'max' => 4,
'step' => 1,
),
)
)
);
/**
* Sidebar widget Title Heading Tag
*/
$wp_customize->add_setting(
'ocean_footer_widget_heading_tag',
array(
'default' => 'h4',
'sanitize_callback' => 'oceanwp_sanitize_select',
)
);
$wp_customize->add_control(
new WP_Customize_Control(
$wp_customize,
'ocean_footer_widget_heading_tag',
array(
'label' => esc_html__( 'Heading Tag', 'oceanwp' ),
'type' => 'select',
'section' => $section,
'settings' => 'ocean_footer_widget_heading_tag',
'priority' => 10,
'choices' => array(
'h1' => esc_html__( 'H1', 'oceanwp' ),
'h2' => esc_html__( 'H2', 'oceanwp' ),
'h3' => esc_html__( 'H3', 'oceanwp' ),
'h4' => esc_html__( 'H4', 'oceanwp' ),
'h5' => esc_html__( 'H5', 'oceanwp' ),
'h6' => esc_html__( 'H6', 'oceanwp' ),
'div' => esc_html__( 'div', 'oceanwp' ),
'span' => esc_html__( 'span', 'oceanwp' ),
'p' => esc_html__( 'p', 'oceanwp' ),
),
)
)
);
/**
* Footer Widgets Add Container
*/
$wp_customize->add_setting(
'ocean_add_footer_container',
array(
'transport' => 'postMessage',
'default' => true,
'sanitize_callback' => 'oceanwp_sanitize_checkbox',
)
);
$wp_customize->add_control(
new WP_Customize_Control(
$wp_customize,
'ocean_add_footer_container',
array(
'label' => esc_html__( 'Add Container', 'oceanwp' ),
'type' => 'checkbox',
'section' => $section,
'settings' => 'ocean_add_footer_container',
'priority' => 10,
'active_callback' => 'oceanwp_cac_has_footer_widgets',
)
)
);
/**
* Footer Widgets Padding
*/
$wp_customize->add_setting(
'ocean_footer_top_padding',
array(
'transport' => 'postMessage',
'default' => '30',
'sanitize_callback' => 'oceanwp_sanitize_number',
)
);
$wp_customize->add_setting(
'ocean_footer_right_padding',
array(
'transport' => 'postMessage',
'default' => '0',
'sanitize_callback' => 'oceanwp_sanitize_number',
)
);
$wp_customize->add_setting(
'ocean_footer_bottom_padding',
array(
'transport' => 'postMessage',
'default' => '30',
'sanitize_callback' => 'oceanwp_sanitize_number',
)
);
$wp_customize->add_setting(
'ocean_footer_left_padding',
array(
'transport' => 'postMessage',
'default' => '0',
'sanitize_callback' => 'oceanwp_sanitize_number',
)
);
$wp_customize->add_setting(
'ocean_footer_tablet_top_padding',
array(
'transport' => 'postMessage',
'sanitize_callback' => 'oceanwp_sanitize_number_blank',
)
);
$wp_customize->add_setting(
'ocean_footer_tablet_right_padding',
array(
'transport' => 'postMessage',
'sanitize_callback' => 'oceanwp_sanitize_number_blank',
)
);
$wp_customize->add_setting(
'ocean_footer_tablet_bottom_padding',
array(
'transport' => 'postMessage',
'sanitize_callback' => 'oceanwp_sanitize_number_blank',
)
);
$wp_customize->add_setting(
'ocean_footer_tablet_left_padding',
array(
'transport' => 'postMessage',
'sanitize_callback' => 'oceanwp_sanitize_number_blank',
)
);
$wp_customize->add_setting(
'ocean_footer_mobile_top_padding',
array(
'transport' => 'postMessage',
'sanitize_callback' => 'oceanwp_sanitize_number_blank',
)
);
$wp_customize->add_setting(
'ocean_footer_mobile_right_padding',
array(
'transport' => 'postMessage',
'sanitize_callback' => 'oceanwp_sanitize_number_blank',
)
);
$wp_customize->add_setting(
'ocean_footer_mobile_bottom_padding',
array(
'transport' => 'postMessage',
'sanitize_callback' => 'oceanwp_sanitize_number_blank',
)
);
$wp_customize->add_setting(
'ocean_footer_mobile_left_padding',
array(
'transport' => 'postMessage',
'sanitize_callback' => 'oceanwp_sanitize_number_blank',
)
);
$wp_customize->add_control(
new OceanWP_Customizer_Dimensions_Control(
$wp_customize,
'ocean_footer_padding_dimensions',
array(
'label' => esc_html__( 'Padding (px)', 'oceanwp' ),
'section' => $section,
'settings' => array(
'desktop_top' => 'ocean_footer_top_padding',
'desktop_right' => 'ocean_footer_right_padding',
'desktop_bottom' => 'ocean_footer_bottom_padding',
'desktop_left' => 'ocean_footer_left_padding',
'tablet_top' => 'ocean_footer_tablet_top_padding',
'tablet_right' => 'ocean_footer_tablet_right_padding',
'tablet_bottom' => 'ocean_footer_tablet_bottom_padding',
'tablet_left' => 'ocean_footer_tablet_left_padding',
'mobile_top' => 'ocean_footer_mobile_top_padding',
'mobile_right' => 'ocean_footer_mobile_right_padding',
'mobile_bottom' => 'ocean_footer_mobile_bottom_padding',
'mobile_left' => 'ocean_footer_mobile_left_padding',
),
'priority' => 10,
'active_callback' => 'oceanwp_cac_has_footer_widgets',
'input_attrs' => array(
'min' => 0,
'max' => 500,
'step' => 1,
),
)
)
);
/**
* Footer Widgets Background
*/
$wp_customize->add_setting(
'ocean_footer_background',
array(
'transport' => 'postMessage',
'default' => '#222222',
'sanitize_callback' => 'oceanwp_sanitize_color',
)
);
$wp_customize->add_control(
new OceanWP_Customizer_Color_Control(
$wp_customize,
'ocean_footer_background',
array(
'label' => esc_html__( 'Background Color', 'oceanwp' ),
'section' => $section,
'settings' => 'ocean_footer_background',
'priority' => 10,
'active_callback' => 'oceanwp_cac_has_footer_widgets',
)
)
);
/**
* Footer Widgets Color
*/
$wp_customize->add_setting(
'ocean_footer_color',
array(
'transport' => 'postMessage',
'default' => '#929292',
'sanitize_callback' => 'oceanwp_sanitize_color',
)
);
$wp_customize->add_control(
new OceanWP_Customizer_Color_Control(
$wp_customize,
'ocean_footer_color',
array(
'label' => esc_html__( 'Text Color', 'oceanwp' ),
'section' => $section,
'settings' => 'ocean_footer_color',
'priority' => 10,
'active_callback' => 'oceanwp_cac_has_footer_widgets',
)
)
);
/**
* Footer Widgets Borders Color
*/
$wp_customize->add_setting(
'ocean_footer_borders',
array(
'transport' => 'postMessage',
'default' => '#555555',
'sanitize_callback' => 'oceanwp_sanitize_color',
)
);
$wp_customize->add_control(
new OceanWP_Customizer_Color_Control(
$wp_customize,
'ocean_footer_borders',
array(
'label' => esc_html__( 'Borders Color', 'oceanwp' ),
'section' => $section,
'settings' => 'ocean_footer_borders',
'priority' => 10,
'active_callback' => 'oceanwp_cac_has_footer_widgets',
)
)
);
/**
* Footer Widgets Links Color
*/
$wp_customize->add_setting(
'ocean_footer_link_color',
array(
'transport' => 'postMessage',
'default' => '#ffffff',
'sanitize_callback' => 'oceanwp_sanitize_color',
)
);
$wp_customize->add_control(
new OceanWP_Customizer_Color_Control(
$wp_customize,
'ocean_footer_link_color',
array(
'label' => esc_html__( 'Links Color', 'oceanwp' ),
'section' => $section,
'settings' => 'ocean_footer_link_color',
'priority' => 10,
'active_callback' => 'oceanwp_cac_has_footer_widgets',
)
)
);
/**
* Footer Widgets Links Hover Color
*/
$wp_customize->add_setting(
'ocean_footer_link_color_hover',
array(
'transport' => 'postMessage',
'default' => '#13aff0',
'sanitize_callback' => 'oceanwp_sanitize_color',
)
);
$wp_customize->add_control(
new OceanWP_Customizer_Color_Control(
$wp_customize,
'ocean_footer_link_color_hover',
array(
'label' => esc_html__( 'Links Color: Hover', 'oceanwp' ),
'section' => $section,
'settings' => 'ocean_footer_link_color_hover',
'priority' => 10,
'active_callback' => 'oceanwp_cac_has_footer_widgets',
)
)
);
}
/**
* Get CSS
*
* @param obj $output css output.
* @since 1.0.0
*/
public static function head_css( $output ) {
// Global vars.
$footer_top_padding = get_theme_mod( 'ocean_footer_top_padding', '30' );
$footer_right_padding = get_theme_mod( 'ocean_footer_right_padding', '0' );
$footer_bottom_padding = get_theme_mod( 'ocean_footer_bottom_padding', '30' );
$footer_left_padding = get_theme_mod( 'ocean_footer_left_padding', '0' );
$tablet_footer_top_padding = get_theme_mod( 'ocean_footer_tablet_top_padding' );
$tablet_footer_right_padding = get_theme_mod( 'ocean_footer_tablet_right_padding' );
$tablet_footer_bottom_padding = get_theme_mod( 'ocean_footer_tablet_bottom_padding' );
$tablet_footer_left_padding = get_theme_mod( 'ocean_footer_tablet_left_padding' );
$mobile_footer_top_padding = get_theme_mod( 'ocean_footer_mobile_top_padding' );
$mobile_footer_right_padding = get_theme_mod( 'ocean_footer_mobile_right_padding' );
$mobile_footer_bottom_padding = get_theme_mod( 'ocean_footer_mobile_bottom_padding' );
$mobile_footer_left_padding = get_theme_mod( 'ocean_footer_mobile_left_padding' );
$footer_background = get_theme_mod( 'ocean_footer_background', '#222222' );
$footer_color = get_theme_mod( 'ocean_footer_color', '#929292' );
$footer_borders = get_theme_mod( 'ocean_footer_borders', '#555555' );
$footer_link_color = get_theme_mod( 'ocean_footer_link_color', '#ffffff' );
$footer_link_color_hover = get_theme_mod( 'ocean_footer_link_color_hover', '#13aff0' );
// Define css var.
$css = '';
// Footer padding.
if ( isset( $footer_top_padding ) && '30' != $footer_top_padding && '' != $footer_top_padding
|| isset( $footer_right_padding ) && '0' != $footer_right_padding && '' != $footer_right_padding
|| isset( $footer_bottom_padding ) && '30' != $footer_bottom_padding && '' != $footer_bottom_padding
|| isset( $footer_left_padding ) && '0' != $footer_left_padding && '' != $footer_left_padding ) {
$css .= '#footer-widgets{padding:' . oceanwp_spacing_css( $footer_top_padding, $footer_right_padding, $footer_bottom_padding, $footer_left_padding ) . '}';
}
// Tablet footer padding.
if ( isset( $tablet_footer_top_padding ) && '' != $tablet_footer_top_padding
|| isset( $tablet_footer_right_padding ) && '' != $tablet_footer_right_padding
|| isset( $tablet_footer_bottom_padding ) && '' != $tablet_footer_bottom_padding
|| isset( $tablet_footer_left_padding ) && '' != $tablet_footer_left_padding ) {
$css .= '@media (max-width: 768px){#footer-widgets{padding:' . oceanwp_spacing_css( $tablet_footer_top_padding, $tablet_footer_right_padding, $tablet_footer_bottom_padding, $tablet_footer_left_padding ) . '}}';
}
// Mobile footer padding.
if ( isset( $mobile_footer_top_padding ) && '' != $mobile_footer_top_padding
|| isset( $mobile_footer_right_padding ) && '' != $mobile_footer_right_padding
|| isset( $mobile_footer_bottom_padding ) && '' != $mobile_footer_bottom_padding
|| isset( $mobile_footer_left_padding ) && '' != $mobile_footer_left_padding ) {
$css .= '@media (max-width: 480px){#footer-widgets{padding:' . oceanwp_spacing_css( $mobile_footer_top_padding, $mobile_footer_right_padding, $mobile_footer_bottom_padding, $mobile_footer_left_padding ) . '}}';
}
// Footer background.
if ( ! empty( $footer_background ) && '#222222' != $footer_background ) {
$css .= '#footer-widgets{background-color:' . $footer_background . ';}';
}
// Footer color.
if ( ! empty( $footer_color ) && '#929292' != $footer_color ) {
$css .= '#footer-widgets,#footer-widgets p,#footer-widgets li a:before,#footer-widgets .contact-info-widget span.oceanwp-contact-title,#footer-widgets .recent-posts-date,#footer-widgets .recent-posts-comments,#footer-widgets .widget-recent-posts-icons li .fa{color:' . $footer_color . ';}';
}
// Footer borders color.
if ( ! empty( $footer_borders ) && '#555555' != $footer_borders ) {
$css .= '#footer-widgets li,#footer-widgets #wp-calendar caption,#footer-widgets #wp-calendar th,#footer-widgets #wp-calendar tbody,#footer-widgets .contact-info-widget i,#footer-widgets .oceanwp-newsletter-form-wrap input[type="email"],#footer-widgets .posts-thumbnails-widget li,#footer-widgets .social-widget li a{border-color:' . $footer_borders . ';}';
$css .= '#footer-widgets .contact-info-widget .owp-icon{border-color:' . $footer_borders . ';}';
}
// Footer link color.
if ( ! empty( $footer_link_color ) && '#ffffff' != $footer_link_color ) {
$css .= '#footer-widgets .footer-box a,#footer-widgets a{color:' . $footer_link_color . ';}';
}
// Footer link hover color.
if ( ! empty( $footer_link_color_hover ) && '#13aff0' != $footer_link_color_hover ) {
$css .= '#footer-widgets .footer-box a:hover,#footer-widgets a:hover{color:' . $footer_link_color_hover . ';}';
}
// Return CSS.
if ( ! empty( $css ) ) {
$output .= '/* Footer Widgets CSS */' . $css;
}
// Return output css.
return $output;
}
}
endif;
return new OceanWP_Footer_Widgets_Customizer();
|