render_icon_html( $icon, $attributes, $tag );
}
return $output . ' ';
}
public function render_icon_html( $icon, $attributes = array(), $tag = 'i' ) {
$icon_types = \Elementor\Icons_Manager::get_icon_manager_tabs();
if ( isset( $icon_types[ $icon['library'] ]['render_callback'] ) && is_callable( $icon_types[ $icon['library'] ]['render_callback'] ) ) {
return call_user_func_array( $icon_types[ $icon['library'] ]['render_callback'], array( $icon, $attributes, $tag ) );
}
if ( empty( $attributes['class'] ) ) {
$attributes['class'] = $icon['value'];
} else {
if ( is_array( $attributes['class'] ) ) {
$attributes['class'][] = $icon['value'];
} else {
$attributes['class'] .= ' ' . $icon['value'];
}
}
return '<' . $tag . ' ' . \Elementor\Utils::render_html_attributes( $attributes ) . '>' . $tag . '>';
}
public function before_render( $settings ) {
if ( empty( $settings['show_in_modal'] ) ) {
return;
}
global $hide_modal;
if ( ! $hide_modal ) {
echo '';
wp_enqueue_style( 'fea-modal' );
wp_enqueue_style( 'acf-global' );
wp_enqueue_script( 'fea-modal' );
$hide_modal = true;
}
$show_modal = 'hide';
$modal_num = feadmin_get_random_string();
?>
form_display->maybe_show_success_message( $settings );
?>
start_controls_section(
'modal_section',
array(
'label' => __( 'Modal Window', 'frontend-admin' ),
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
'condition' => array(
'admin_forms_select' => '',
),
)
);
$element->add_control(
'show_in_modal',
array(
'label' => __( 'Show in Modal', 'frontend-admin' ),
'type' => \Elementor\Controls_Manager::SWITCHER,
'label_on' => __( 'Yes', 'frontend-admin' ),
'label_off' => __( 'No', 'frontend-admin' ),
'return_value' => 'true',
)
);
$default_text = __( 'Open Modal', 'frontend-admin' );
$element->add_control(
'modal_button_text',
array(
'label' => __( 'Modal Button Text', 'frontend-admin' ),
'type' => \Elementor\Controls_Manager::TEXT,
'default' => $default_text,
'placeholder' => $default_text,
'condition' => array(
'show_in_modal' => 'true',
),
'dynamic' => array(
'active' => true,
),
)
);
$element->add_control(
'modal_button_icon',
array(
'label' => __( 'Modal Button Icon', 'frontend-admin' ),
'type' => \Elementor\Controls_Manager::ICONS,
'condition' => array(
'show_in_modal' => 'true',
),
'default' => array(
'value' => 'fas fa-edit',
'library' => 'solid',
),
'fa4compatibility' => 'icon',
)
);
$element->end_controls_section();
}
public function __construct() {
add_action( 'frontend_admin/elementor_widget/content_controls', array( $this, 'modal_controls' ), 10 );
add_action( 'frontend_admin/elementor/before_render', array( $this, 'before_render' ), 10 );
add_action( 'frontend_admin/elementor/after_render', array( $this, 'after_render' ), 10 );
}
}
new ModalWindow();