Current File : /home/mdkeenpw/shafqattraders.com/wp-content/themes/transmax/templates/section-footer.php |
<?php
defined('ABSPATH') || exit;
use Elementor\Plugin as Plugin;
if (!class_exists('Transmax_Footer_Area')) {
/**
* Footer Area
*
*
* @package transmax\templates
* @author WebGeniusLab <webgeniuslab@gmail.com>
* @since 1.0.0
*/
class Transmax_Footer_Area
{
private $id;
private $building_tool;
private $footer_full_width;
private $mb_footer_switch;
private $mb_copyright_switch;
function __construct()
{
$footer_options = apply_filters('wgl_theme/footer/enable', true);
extract($footer_options);
$footer_bg_color = WGL_Framework::get_option('footer_bg_color');
$style = '';
$this->id = get_queried_object_id();
$this->building_tool = WGL_Framework::get_mb_option('footer_building_tool', 'mb_footer_switch', 'on');
$this->footer_full_width = WGL_Framework::get_option('footer_full_width');
if (
class_exists('RWMB_Loader')
&& 0 !== $this->id
) {
$this->mb_footer_switch = $mb_footer_switch;
if ('on' == $this->mb_footer_switch) {
$footer_bg_color = rwmb_meta('mb_footer_bg');
$footer_bg_color = !empty($footer_bg_color['color']) ? $footer_bg_color['color'] : "";
}
$this->mb_copyright_switch = $mb_copyright_switch;
}
// Container style
if (
'widgets' === $this->building_tool
&& ($footer_switch || $copyright_switch)
) {
$style = !empty($footer_bg_color) ? ' background-color :' . esc_attr($footer_bg_color) . ';' : '';
$style .= WGL_Framework::bg_render('footer', 'mb_footer_switch');
$style = $style ? ' style="' . esc_attr($style) . '"' : '';
}
// Render
echo '<footer class="footer clearfix"', $style, ' id="footer">';
if ($footer_switch) {
switch ($this->building_tool) {
default:
case 'widgets':
$this->render_widgets_html();
break;
case 'elementor':
$this->render_elementor_html();
break;
}
}
if (
$copyright_switch
&& 'widgets' === $this->building_tool
) {
$this->render_copyright_html();
}
echo '</footer>';
}
private function render_widgets_html()
{
// Get footer vars
$footer_vars = $this->get_footer_vars();
extract($footer_vars);
echo "<div class='footer_top-area widgets_area column_" . (int) $widget_columns . $footer_class . "' " . $footer_border_style . ">";
if (!$this->footer_full_width) echo "<div class='wgl-container'>";
$sidebar_exists = false;
$i = 1;
while ($i < (int) $widget_columns + 1) {
if (is_active_sidebar('footer_column_' . $i)) {
$sidebar_exists = true;
}
$i++;
}
if ($sidebar_exists) {
echo "<div class='row'" . $footer_style . ">";
$i = 1;
while ($i < (int) $widget_columns + 1) {
$columns_number = $i - 1; ?>
<div class='wgl_col-<?php echo esc_attr($layout[$columns_number]); ?>'>
<?php
if (is_active_sidebar('footer_column_' . $i)) dynamic_sidebar('footer_column_' . $i);
?>
</div>
<?php
$i++;
}
echo "</div>";
}
if (!$this->footer_full_width) echo '</div>';
echo '</div>';
}
private function get_footer_vars()
{
// Get options
$footer_spacing = WGL_Framework::get_mb_option('footer_spacing', 'mb_footer_switch', 'on');
$footer_border = WGL_Framework::get_mb_option('footer_add_border', 'mb_footer_switch', 'on');
$footer_border_color = WGL_Framework::get_mb_option('footer_border_color', 'mb_footer_switch', 'on');
$footer_options = [];
$footer_options['widget_columns'] = WGL_Framework::get_option('widget_columns');
$footer_options['widget_columns_2'] = WGL_Framework::get_option('widget_columns_2');
$footer_options['widget_columns_3'] = WGL_Framework::get_option('widget_columns_3');
$footer_align = WGL_Framework::get_option('footer_align');
//footer container class
$footer_options['footer_class'] = ' align-' . esc_attr($footer_align);
// Footer paddings
$footer_options['footer_style'] = $footer_options['footer_border_style'] = '';
$footer_options['footer_style'] .= !empty($footer_spacing['padding-top']) ? ' padding-top:' . (int) $footer_spacing['padding-top'] . 'px;' : '';
$footer_options['footer_style'] .= !empty($footer_spacing['padding-bottom']) ? ' padding-bottom:' . (int) $footer_spacing['padding-bottom'] . 'px;' : '';
$footer_options['footer_style'] .= !empty($footer_spacing['padding-left']) ? ' padding-left:' . (int) $footer_spacing['padding-left'] . 'px;' : '';
$footer_options['footer_style'] .= !empty($footer_spacing['padding-right']) ? ' padding-right:' . (int) $footer_spacing['padding-right'] . 'px;' : '';
$footer_options['footer_style'] = !empty($footer_options['footer_style']) ? ' style="' . esc_attr($footer_options['footer_style']) . '"' : '';
$footer_options['footer_border_style'] .= $footer_border ? ' style="border-top-color: ' . esc_attr($footer_border_color) . ';"' : '';
$footer_options['layout'] = [];
switch ((int) $footer_options['widget_columns']) {
case 1:
$footer_options['layout'] = ['12'];
break;
case 2:
$footer_options['layout'] = explode('-', $footer_options['widget_columns_2']);
break;
case 3:
$footer_options['layout'] = explode('-', $footer_options['widget_columns_3']);
break;
default:
case 4:
$footer_options['layout'] = ['3', '3', '3', '3'];
break;
}
return $footer_options;
}
private function render_elementor_html()
{
$selected_page_id = WGL_Framework::get_mb_option('footer_page_select', 'mb_footer_switch', 'on');
$selected_page_id = wgl_dynamic_styles()->multi_language_support($selected_page_id, 'footer');
if (
!$selected_page_id
|| !did_action('elementor/loaded')
) {
// Bailout.
return;
}
echo '<div class="footer_top-area">',
'<div class="wgl-container">',
'<div class="row-footer">',
Plugin::$instance->frontend->get_builder_content($selected_page_id),
'</div>',
'</div>',
'</div>';
}
private function render_copyright_html()
{
if ('on' === $this->mb_copyright_switch) {
$editor = rwmb_meta('mb_copyright_editor');
}
$editor = !empty($editor) ? $editor : WGL_Framework::get_option('copyright_editor');
echo '<div class="copyright"', $this->get_copyright_style(), '>',
$this->footer_full_width ? '' : '<div class="wgl-container">',
'<div class="row"', $this->get_copyright_row_styles(), '>',
'<div class="wgl_col-12">',
do_shortcode($editor),
'</div>',
'</div>',
$this->footer_full_width ? '' : '</div>',
'</div>';
}
private function get_copyright_style()
{
if ('widgets' === $this->building_tool) {
$bg_color = WGL_Framework::get_mb_option('copyright_bg_color', 'mb_copyright_switch', 'on');
$style = !empty($bg_color) ? 'background-color: ' . esc_attr($bg_color) . ';' : '';
$style = $style ? ' style="' . $style . '"' : '';
}
return $style ?? '';
}
private function get_copyright_row_styles()
{
$copyright_spacing = WGL_Framework::get_mb_option('copyright_spacing', 'mb_copyright_switch', 'on');
$style = !empty($copyright_spacing['padding-top']) ? 'padding-top:' . esc_attr((int) $copyright_spacing['padding-top']) . 'px;' : '';
$style .= !empty($copyright_spacing['padding-bottom']) ? 'padding-bottom:' . esc_attr((int) $copyright_spacing['padding-bottom']) . 'px;' : '';
return $style ? ' style="' . $style . '"' : '';
}
}
new Transmax_Footer_Area();
}