63 lines
1.3 KiB
PHP
63 lines
1.3 KiB
PHP
<?php
|
|
namespace ElementorPro\Modules\ThemeBuilder\Widgets;
|
|
|
|
use Elementor\Widget_Heading;
|
|
use Elementor\Plugin;
|
|
use ElementorPro\Base\Base_Widget_Trait;
|
|
use ElementorPro\Plugin as ProPlugin;
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly.
|
|
}
|
|
|
|
abstract class Title_Widget_Base extends Widget_Heading {
|
|
|
|
use Base_Widget_Trait;
|
|
|
|
abstract protected function get_dynamic_tag_name();
|
|
|
|
protected function should_show_page_title() {
|
|
$current_doc = Plugin::instance()->documents->get( get_the_ID() );
|
|
if ( $current_doc && 'yes' === $current_doc->get_settings( 'hide_title' ) ) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
protected function register_controls() {
|
|
parent::register_controls();
|
|
|
|
$dynamic_tag_name = $this->get_dynamic_tag_name();
|
|
|
|
$this->update_control(
|
|
'title',
|
|
[
|
|
'dynamic' => [
|
|
'default' => ProPlugin::elementor()->dynamic_tags->tag_data_to_tag_text( null, $dynamic_tag_name ),
|
|
],
|
|
],
|
|
[
|
|
'recursive' => true,
|
|
]
|
|
);
|
|
|
|
$this->update_control(
|
|
'header_size',
|
|
[
|
|
'default' => 'h1',
|
|
]
|
|
);
|
|
}
|
|
|
|
protected function get_html_wrapper_class() {
|
|
return parent::get_html_wrapper_class() . ' elementor-page-title elementor-widget-' . parent::get_name();
|
|
}
|
|
|
|
public function render() {
|
|
if ( $this->should_show_page_title() ) {
|
|
return parent::render();
|
|
}
|
|
}
|
|
}
|