start_controls_section(
'general',
[
'label' => __( 'General', 'wts-eae' ),
]
);
$map_key = get_option( 'wts_eae_gmap_key' );
if ( ! isset( $map_key ) || $map_key === '' ) {
$this->add_control(
'notice',
[
'type' => Controls_Manager::RAW_HTML,
'raw' => '
',
]
);
}
$repeater = new Repeater();
$repeater->add_control(
'lat',
[
'label' => __( 'Latitude', 'wts-eae' ),
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter latitude value here', 'wts-eae' ),
]
);
$repeater->add_control(
'long',
[
'label' => __( 'Longitude', 'wts-eae' ),
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter latitude value here', 'wts-eae' ),
]
);
$repeater->add_control(
'address',
[
'label' => __( 'Address', 'wts-eae' ),
'type' => Controls_Manager::WYSIWYG,
'dynamic' => [
'active' => true,
],
'placeholder' => __( 'Enter address', 'wts-eae' ),
]
);
$repeater->add_control(
'icon',
[
'label' => __( 'Icon', 'wts-eae' ),
'type' => Controls_Manager::MEDIA,
]
);
$repeater->add_control(
'icon_size',
[
'label' => __( 'Icon Size', 'wts-eae' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 20,
'max' => 200,
],
],
'default' => [
'size' => 50,
'unit' => 'px',
],
]
);
$repeater->add_control(
'info_window_onload',
[
'label' => __( 'Info Window On Load', 'wts-eae' ),
'type' => Controls_Manager::SWITCHER,
'default' => 'no',
'label_on' => __( 'Open', 'wts-eae' ),
'label_off' => __( 'Close', 'wts-eae' ),
'return_value' => 'yes',
]
);
$this->add_control(
'markers',
[
'label' => __( 'Markers', 'wts-eae' ),
'type' => Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'default' => [
[
'lat' => '28.612912',
'long' => '77.229510',
'address' => __( 'Put Address Here', 'wts-eae' ),
],
],
]
);
$this->add_responsive_control(
'height',
[
'label' => __( 'Height', 'wts-eae' ),
'type' => Controls_Manager::NUMBER,
'default' => 200,
'selectors' => [
'{{WRAPPER}} .eae-markers' => 'height:{{VALUE}}px',
],
]
);
$this->add_control(
'zoom',
[
'label' => __( 'Zoom', 'wts-eae' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 6,
'max' => 20,
],
],
'default' => [
'unit' => 'px',
'size' => 10,
],
]
);
$this->add_control(
'animate',
[
'label' => __( 'Animate Marker', 'wts-eae' ),
'type' => Controls_Manager::SWITCHER,
'default' => '',
'label_on' => __( 'Yes', 'wts-eae' ),
'label_off' => __( 'No', 'wts-eae' ),
'return_value' => 'yes',
]
);
$this->add_control(
'snazzy_style',
[
'label' => __( 'Snazzy Style', 'wts-eae' ),
'type' => Controls_Manager::TEXTAREA,
'description' => __( 'Add style from Snazzy Maps. Copy and Paste style array from here -> Snazzy Maps', 'wts-eae' ),
]
);
$this->end_controls_section();
}
protected function render() {
$settings = $this->get_settings_for_display();
$map_key = get_option( 'wts_eae_gmap_key' );
if( ! isset( $map_key ) || $map_key === '' ) {
if(\Elementor\Plugin::$instance->editor->is_edit_mode()){
echo "Please add Google Map api key in Dashboard > Elementor Addons Elements > Configuration
";
}
return;
}
$markers = $settings['markers'];
$this->add_render_attribute( 'wrapper', 'data-zoom', $settings['zoom']['size'] );
$this->add_render_attribute( 'wrapper', 'data-style', $settings['snazzy_style'] );
$this->add_render_attribute( 'wrapper', 'data-animate', 'animate-' . $settings['animate'] );
if ( count( $markers ) ) {
?>
get_render_attribute_string( 'wrapper' ); ?>>