Файловый менеджер - Редактировать - /home/harasnat/www/horse/wp-content/plugins/header-footer-elementor/inc/class-hfe-promotion.php
Назад
<?php /** * HFE Promotion Class * * Promotes Ultimate Elementor extensions within Header Footer Elementor * * @package header-footer-elementor */ namespace HFE\Extensions; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } use Elementor\Controls_Manager; /** * Class HFE_Promotion */ class HFE_Promotion { /** * Constructor */ public function __construct() { // Only show promotions if Ultimate Elementor Pro is not active if ( ! $this->is_ultimate_elementor_active() ) { $this->init_hooks(); } } /** * Initialize hooks */ private function init_hooks() { // Particles Extension - Add to section/column/container background sections add_action( 'elementor/element/section/section_background/after_section_end', [ $this, 'add_particles_promotion' ], 10 ); add_action( 'elementor/element/column/section_style/after_section_end', [ $this, 'add_particles_promotion' ], 10 ); add_action( 'elementor/element/container/section_background/after_section_end', [ $this, 'add_particles_promotion' ], 10 ); // Display Conditions - Add to section/column/container advanced sections and common widgets add_action( 'elementor/element/section/section_advanced/after_section_end', [ $this, 'add_display_conditions_promotion' ], 10 ); add_action( 'elementor/element/column/section_advanced/after_section_end', [ $this, 'add_display_conditions_promotion' ], 10 ); add_action( 'elementor/element/container/section_layout/after_section_end', [ $this, 'add_display_conditions_promotion' ], 10 ); add_action( 'elementor/element/common/_section_style/after_section_end', [ $this, 'add_display_conditions_promotion' ], 10 ); // Party Propz Extension - Add to section/column/container advanced sections and common widgets add_action( 'elementor/element/section/section_advanced/after_section_end', [ $this, 'add_party_propz_promotion' ], 10 ); add_action( 'elementor/element/column/section_advanced/after_section_end', [ $this, 'add_party_propz_promotion' ], 10 ); add_action( 'elementor/element/container/section_layout/after_section_end', [ $this, 'add_party_propz_promotion' ], 10 ); add_action( 'elementor/element/common/_section_style/after_section_end', [ $this, 'add_party_propz_promotion' ], 10 ); // Sticky Header - Only for header templates (check if we're in header context) add_action( 'elementor/element/section/section_advanced/after_section_end', [ $this, 'add_sticky_header_promotion' ], 10 ); add_action( 'elementor/element/container/section_layout/after_section_end', [ $this, 'add_sticky_header_promotion' ], 10 ); } /** * Check if Ultimate Elementor Pro is active */ private function is_ultimate_elementor_active() { return defined( 'UAEL_PRO' ) && UAEL_PRO; } /** * Check if we're editing a header template */ private function is_header_template() { global $post; // Validate $post is an object and has ID property if ( ! is_object( $post ) || ! isset( $post->ID ) || ! is_numeric( $post->ID ) ) { return false; } // Sanitize post ID $post_id = absint( $post->ID ); if ( ! $post_id ) { return false; } $post_type = get_post_type( $post_id ); $template_type = get_post_meta( $post_id, 'ehf_template_type', true ); // Sanitize template type $template_type = sanitize_text_field( $template_type ); return ( 'elementor-hf' === $post_type && 'type_header' === $template_type ); } /** * Generate promotional teaser template */ private function get_teaser_template( $args ) { // Validate input is array if ( ! is_array( $args ) ) { $args = []; } $defaults = [ 'description' => '', 'upgrade_text' => __( 'Upgrade Now', 'header-footer-elementor' ), 'upgrade_url' => '', ]; $args = wp_parse_args( $args, $defaults ); // Additional sanitization $description = sanitize_text_field( $args['description'] ); $upgrade_text = sanitize_text_field( $args['upgrade_text'] ); $upgrade_url = esc_url_raw( $args['upgrade_url'] ); // Validate URL if ( ! filter_var( $upgrade_url, FILTER_VALIDATE_URL ) ) { $upgrade_url = '#'; } $html = ' <div class="hfe-promotion-box"> <div class="hfe-promo-content"> <div class="hfe-promo-description">' . esc_html( $description ) . '</div> <a href="' . esc_url( $upgrade_url ) . '" target="_blank" rel="noopener noreferrer" class="hfe-promo-button elementor-button e-accent dialog-button"> ' . esc_html( $upgrade_text ) . ' </a> </div> </div> <style> .hfe-promo-description{ line-height: 19.5px; font-size: 13px; } .hfe-promo-button{ margin-top:10px; } .hfe-lock.eicon-lock:hover{ color: #93003f; } </style> '; return $html; } /** * Get sanitized promotion label */ private function get_promotion_label( $feature_name ) { $feature_name = sanitize_text_field( $feature_name ); $lock_icon = '<i class="hfe-lock eicon-lock"></i>'; // Using sprintf for better string formatting return sprintf( /* translators: %1$s: Feature name, %2$s: Lock icon */ __( 'UAE - %1$s %2$s', 'header-footer-elementor' ), esc_html( $feature_name ), $lock_icon // This is safe as it's hardcoded HTML ); } /** * Add Particles extension promotion */ public function add_particles_promotion( $element ) { $element->start_controls_section( 'hfe_particles_promo', [ 'label' => $this->get_promotion_label( __( 'Particle Backgrounds', 'header-footer-elementor' ) ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $element->add_control( 'hfe_particles_promo_content', [ 'type' => Controls_Manager::RAW_HTML, 'raw' => $this->get_teaser_template([ 'description' => __( 'Use Particle Backgrounds and other Pro features to extend your toolbox with more control and flexibility.', 'header-footer-elementor' ), 'upgrade_url' => 'https://ultimateelementor.com/pricing/?utm_source=plugin-editor&utm_medium=particle-background-promo&utm_campaign=uae-upgrade', ]), ] ); $element->end_controls_section(); } /** * Add Display Conditions extension promotion */ public function add_display_conditions_promotion( $element ) { $element->start_controls_section( 'hfe_display_conditions_promo', [ 'label' => $this->get_promotion_label( __( 'Display Conditions', 'header-footer-elementor' ) ), 'tab' => Controls_Manager::TAB_ADVANCED, ] ); $element->add_control( 'hfe_display_conditions_promo_content', [ 'type' => Controls_Manager::RAW_HTML, 'raw' => $this->get_teaser_template([ 'description' => __( 'Use Advanced Display Condition and other Pro features to extend your toolbox with more control and flexibility.', 'header-footer-elementor' ), 'upgrade_url' => 'https://ultimateelementor.com/pricing/?utm_source=plugin-editor&utm_medium=display-conditions-promo&utm_campaign=uae-upgrade', ]), ] ); $element->end_controls_section(); } /** * Add Party Propz extension promotion */ public function add_party_propz_promotion( $element ) { $element->start_controls_section( 'hfe_party_propz_promo', [ 'label' => $this->get_promotion_label( __( 'Party Propz', 'header-footer-elementor' ) ), 'tab' => Controls_Manager::TAB_ADVANCED, ] ); $element->add_control( 'hfe_party_propz_promo_content', [ 'type' => Controls_Manager::RAW_HTML, 'raw' => $this->get_teaser_template([ 'description' => __( 'Use Party Propz and other Pro features to extend your toolbox with more control and flexibility.', 'header-footer-elementor' ), 'upgrade_url' => 'https://ultimateelementor.com/pricing/?utm_source=plugin-editor&utm_medium=party-propz-promo&utm_campaign=uae-upgrade', ]), ] ); $element->end_controls_section(); } /** * Add Sticky Header extension promotion (only for header templates) */ public function add_sticky_header_promotion( $element ) { // Only show for header templates if ( ! $this->is_header_template() ) { return; } $element->start_controls_section( 'hfe_sticky_header_promo', [ 'label' => $this->get_promotion_label( __( 'Sticky Header', 'header-footer-elementor' ) ), 'tab' => Controls_Manager::TAB_ADVANCED, ] ); $element->add_control( 'hfe_sticky_header_promo_content', [ 'type' => Controls_Manager::RAW_HTML, 'raw' => $this->get_teaser_template([ 'description' => __( 'Use Sticky Header and other Pro features to extend your toolbox with more control and flexibility.', 'header-footer-elementor' ), 'upgrade_url' => 'https://ultimateelementor.com/pricing/?utm_source=plugin-editor&utm_medium=sticky-header-promo&utm_campaign=uae-upgrade', ]), ] ); $element->end_controls_section(); } } // Initialize the promotion class new HFE_Promotion();
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка