92 lines
2 KiB
PHP
92 lines
2 KiB
PHP
<?php
|
|
namespace ElementorPro\Modules\Woocommerce\Widgets;
|
|
|
|
use Elementor\Widget_Heading;
|
|
use ElementorPro\Base\Base_Widget_Trait;
|
|
use ElementorPro\Plugin;
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly
|
|
}
|
|
|
|
class Product_Title extends Widget_Heading {
|
|
|
|
use Base_Widget_Trait;
|
|
|
|
public function get_name() {
|
|
return 'woocommerce-product-title';
|
|
}
|
|
|
|
public function get_title() {
|
|
return esc_html__( 'Product Title', 'elementor-pro' );
|
|
}
|
|
|
|
public function get_icon() {
|
|
return 'eicon-product-title';
|
|
}
|
|
|
|
public function get_categories() {
|
|
return [ 'woocommerce-elements-single' ];
|
|
}
|
|
|
|
public function get_keywords() {
|
|
return [ 'woocommerce', 'shop', 'store', 'title', 'heading', 'product' ];
|
|
}
|
|
|
|
public function has_widget_inner_wrapper(): bool {
|
|
return ! Plugin::elementor()->experiments->is_feature_active( 'e_optimized_markup' );
|
|
}
|
|
|
|
protected function register_controls() {
|
|
parent::register_controls();
|
|
|
|
$this->update_control(
|
|
'title',
|
|
[
|
|
'dynamic' => [
|
|
'default' => Plugin::elementor()->dynamic_tags->tag_data_to_tag_text( null, 'woocommerce-product-title-tag' ),
|
|
],
|
|
],
|
|
[
|
|
'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();
|
|
}
|
|
|
|
protected function render() {
|
|
$this->add_render_attribute( 'title', 'class', [ 'product_title', 'entry-title' ] );
|
|
parent::render();
|
|
}
|
|
|
|
/**
|
|
* Render Woocommerce Product Title output in the editor.
|
|
*
|
|
* Written as a Backbone JavaScript template and used to generate the live preview.
|
|
*
|
|
* @since 2.9.0
|
|
* @access protected
|
|
*/
|
|
protected function content_template() {
|
|
?>
|
|
<# view.addRenderAttribute( 'title', 'class', [ 'product_title', 'entry-title' ] ); #>
|
|
<?php
|
|
parent::content_template();
|
|
}
|
|
|
|
public function render_plain_content() {}
|
|
|
|
public function get_group_name() {
|
|
return 'woocommerce';
|
|
}
|
|
}
|