131 lines
2.6 KiB
PHP
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 ) ); ?>>
|
|
|
|
</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"]' );
|
|
}
|
|
}
|
|
}
|