Files
medicalalert-web-reloaded/wp/wp-content/plugins/leadin/public/admin/widgets/class-elementormeeting.php
2024-09-25 09:45:47 -04:00

131 lines
2.6 KiB
PHP

<?php
namespace Leadin\admin\widgets;
use Elementor\Plugin;
use Elementor\Widget_Base;
/**
* ElementorMeeting Widget
*/
class ElementorMeeting extends Widget_Base {
/**
* Widget internal name.
*/
public function get_name() {
return 'hubspot-meeting';
}
/**
* Widget title.
*/
public function get_title() {
return esc_html( 'HubSpot Meeting' );
}
/**
* Widget display icon.
*/
public function get_icon() {
return 'eicon-calendar';
}
/**
* Widget help url.
*/
public function get_custom_help_url() {
return 'https://wordpress.org/support/plugin/leadin/';
}
/**
* Widget category.
*/
public function get_categories() {
return array( 'general', 'hubspot' );
}
/**
* Widget keywords.
*/
public function get_keywords() {
return array( 'hubspot', 'meeting', 'leadin' );
}
/**
* Widget style.
*/
public function get_style_depends() {
wp_register_style( 'leadin-elementor', LEADIN_JS_BASE_PATH . '/elementor.css', array(), LEADIN_PLUGIN_VERSION );
wp_register_style( 'leadin-css', LEADIN_ASSETS_PATH . '/style/leadin.css', array(), LEADIN_PLUGIN_VERSION );
return array( 'leadin-elementor', 'leadin-css' );
}
/**
* Widget script.
*/
public function get_script_depends() {
wp_register_script(
'leadin-meeting',
'https://static.hsappstatic.net/MeetingsEmbed/ex/MeetingsEmbedCode.js',
array(),
LEADIN_PLUGIN_VERSION,
true
);
return array( 'leadin-meeting' );
}
/**
* Widget controls.
*/
protected function register_controls() {
$this->start_controls_section(
'content_section',
array(
'label' => esc_html( __( 'Meetings Scheduler', 'leadin' ) ),
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
)
);
$this->add_control(
'content',
array(
'type' => 'leadinmeetingselect',
)
);
$this->end_controls_section();
}
/**
* Render the widget
*/
protected function render() {
$settings = $this->get_settings_for_display();
$content = $settings['content'];
$parsed_parameters = array(
'url' => isset( $content['url'] ) && filter_var( $content['url'], FILTER_VALIDATE_URL ) ? esc_url_raw( $content['url'] ) : '',
);
if ( Plugin::$instance->editor->is_edit_mode() ) {
?>
<div class="hubspot-meeting-edit-mode" data-attributes=<?php echo esc_attr( json_encode( $parsed_parameters ) ); ?>>
&nbsp;
</div>
<?php
if ( empty( $parsed_parameters['url'] ) ) {
?>
<div class="hubspot-widget-empty">
</div>
<?php
}
}
if ( ! empty( $parsed_parameters['url'] ) ) {
echo do_shortcode( '[hubspot url="' . $parsed_parameters['url'] . '" type="meeting"]' );
}
}
}