Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
powerpack-elements
/
modules
/
woocommerce
/
widgets
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * PowerPack WooCommerce Product Title widget. * * @package PowerPack */ namespace PowerpackElements\Modules\Woocommerce\Widgets; use PowerpackElements\Base\Powerpack_Widget; use PowerpackElements\Classes\PP_Woo_Helper; use Elementor\Controls_Manager; use Elementor\Group_Control_Typography; use Elementor\Group_Control_Background; use Elementor\Group_Control_Border; use Elementor\Group_Control_Box_Shadow; use Elementor\Group_Control_Text_Shadow; use Elementor\Core\Schemes\Typography as Scheme_Typography; use Elementor\Core\Schemes; use Elementor\Plugin; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Class Woo_Product_Title. */ class Woo_Product_Title extends Powerpack_Widget { public function get_categories() { return parent::get_woo_categories(); } /** * Retrieve toggle widget name. * * @access public * * @return string Widget name. */ public function get_name() { return parent::get_widget_name( 'Woo_Product_Title' ); } /** * Retrieve toggle widget title. * * @access public * * @return string Widget title. */ public function get_title() { return parent::get_widget_title( 'Woo_Product_Title' ); } /** * Retrieve toggle widget icon. * * @access public * * @return string Widget icon. */ public function get_icon() { return parent::get_widget_icon( 'Woo_Product_Title' ); } /** * Get widget keywords. * * Retrieve the list of keywords the widget belongs to. * * @since 1.4.13.4 * @access public * * @return array Widget keywords. */ public function get_keywords() { return parent::get_widget_keywords( 'Woo_Product_Title' ); } /** * Retrieve the list of styles the Woo - My Account depended on. * * Used to set style dependencies required to run the widget. * * @access public * * @return array Widget scripts dependencies. */ public function get_style_depends() { return array( 'pp-woocommerce', ); } /** * Register controls. * * @since 1.3.3 * @access protected */ protected function _register_controls() { // phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore $this->start_controls_section( 'section_title', [ 'label' => __( 'Title', 'powerpack' ), ] ); $this->add_control( 'link', [ 'label' => __( 'Link', 'powerpack' ), 'type' => Controls_Manager::URL, 'dynamic' => [ 'active' => true, ], 'default' => [ 'url' => '', ], ] ); $this->add_control( 'size', [ 'label' => __( 'Size', 'powerpack' ), 'type' => Controls_Manager::SELECT, 'default' => 'default', 'options' => [ 'default' => __( 'Default', 'powerpack' ), 'small' => __( 'Small', 'powerpack' ), 'medium' => __( 'Medium', 'powerpack' ), 'large' => __( 'Large', 'powerpack' ), 'xl' => __( 'XL', 'powerpack' ), 'xxl' => __( 'XXL', 'powerpack' ), ], ] ); $this->add_control( 'header_size', [ 'label' => __( 'HTML Tag', 'powerpack' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'h1' => 'H1', 'h2' => 'H2', 'h3' => 'H3', 'h4' => 'H4', 'h5' => 'H5', 'h6' => 'H6', 'div' => 'div', 'span' => 'span', 'p' => 'p', ], 'default' => 'h1', ] ); $this->add_responsive_control( 'align', [ 'label' => __( 'Alignment', 'powerpack' ), 'type' => Controls_Manager::CHOOSE, 'options' => [ 'left' => [ 'title' => __( 'Left', 'powerpack' ), 'icon' => 'eicon-text-align-left', ], 'center' => [ 'title' => __( 'Center', 'powerpack' ), 'icon' => 'eicon-text-align-center', ], 'right' => [ 'title' => __( 'Right', 'powerpack' ), 'icon' => 'eicon-text-align-right', ], 'justify' => [ 'title' => __( 'Justified', 'powerpack' ), 'icon' => 'eicon-text-align-justify', ], ], 'default' => '', 'selectors' => [ '{{WRAPPER}}' => 'text-align: {{VALUE}};', ], ] ); $this->add_control( 'view', [ 'label' => __( 'View', 'powerpack' ), 'type' => Controls_Manager::HIDDEN, 'default' => 'traditional', ] ); $this->end_controls_section(); $this->start_controls_section( 'section_title_style', [ 'label' => __( 'Title', 'powerpack' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'title_color', [ 'label' => __( 'Text Color', 'powerpack' ), 'type' => Controls_Manager::COLOR, 'scheme' => [ 'type' => Schemes\Color::get_type(), 'value' => Schemes\Color::COLOR_1, ], 'selectors' => [ '{{WRAPPER}} .pp-product-title' => 'color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'typography', 'scheme' => Schemes\Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .pp-product-title', ] ); $this->add_group_control( Group_Control_Text_Shadow::get_type(), [ 'name' => 'text_shadow', 'selector' => '{{WRAPPER}} .pp-product-title', ] ); $this->add_control( 'blend_mode', [ 'label' => __( 'Blend Mode', 'powerpack' ), 'type' => Controls_Manager::SELECT, 'options' => [ '' => __( 'Normal', 'powerpack' ), 'multiply' => 'Multiply', 'screen' => 'Screen', 'overlay' => 'Overlay', 'darken' => 'Darken', 'lighten' => 'Lighten', 'color-dodge' => 'Color Dodge', 'saturation' => 'Saturation', 'color' => 'Color', 'difference' => 'Difference', 'exclusion' => 'Exclusion', 'hue' => 'Hue', 'luminosity' => 'Luminosity', ], 'selectors' => [ '{{WRAPPER}} .pp-product-title' => 'mix-blend-mode: {{VALUE}}', ], 'separator' => 'none', ] ); $this->end_controls_section(); } // protected function get_html_wrapper_class() { // return parent::get_html_wrapper_class() . ' pp-page-title pp-widget-' . parent::get_name(); // } protected function render() { $settings = $this->get_settings_for_display(); do_action( 'pp_woo_builder_widget_before_render', $this ); if ( ! empty( $settings['link']['url'] ) ) { echo sprintf( the_title( '<a %2$s><%1$s class="product_title entry-title pp-product-title">', '</%1s></a>', false ), $settings['header_size'], $this->get_render_attribute_string( 'url' ) ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } else { echo sprintf( the_title( '<%1$s class="product_title entry-title pp-product-title">', '</%1s>', false ), $settings['header_size'] ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } do_action( 'pp_woo_builder_widget_after_render', $this ); } }