PluginProbe ʕ •ᴥ•ʔ
Essential Addons for Elementor – Popular Elementor Templates & Widgets / 6.6.9
Essential Addons for Elementor – Popular Elementor Templates & Widgets v6.6.9
6.6.9 6.6.8 6.6.7 6.6.6 6.6.5 6.6.4 6.6.3 5.7.3 5.7.4 5.8.0 5.8.1 5.8.10 5.8.11 5.8.12 5.8.13 5.8.14 5.8.15 5.8.16 5.8.18 5.8.2 5.8.3 5.8.4 5.8.5 5.8.6 5.8.7 5.8.8 5.8.9 5.9.0 5.9.1 5.9.10 5.9.11 5.9.12 5.9.13 5.9.14 5.9.15 5.9.16 5.9.17 5.9.18 5.9.19 5.9.2 5.9.20 5.9.21 5.9.22 5.9.23 5.9.24 5.9.25 5.9.26 5.9.27 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9 6.0.0 6.0.1 6.0.10 6.0.11 6.0.12 6.0.13 6.0.14 6.0.15 6.0.2 6.0.3 6.0.4 6.0.5 6.0.6 6.0.7 6.0.8 6.0.9 6.1.0 6.1.1 6.1.10 6.1.11 trunk 6.1.12 1.0.0 6.1.13 1.0.1 6.1.14 1.1.0 6.1.15 2.0 6.1.17 2.1 6.1.18 2.10.0 6.1.19 2.10.1 6.1.2 2.10.2 6.1.20 2.10.3 6.1.3 2.10.4 6.1.4 2.10.5 6.1.5 2.2.0 6.1.6 2.2.1 6.1.7 2.2.2 6.1.8 2.2.3 6.1.9 2.2.4 6.2.0 2.2.5 6.2.1 2.3.0 6.2.2 2.3.1 6.2.3 2.4.0 6.2.4 2.4.1 6.3.0 2.4.2 6.3.1 2.4.3 6.3.2 2.5.0 6.3.3 2.6.0 6.4.0 2.7.0 6.5.0 2.7.1 6.5.1 2.7.10 6.5.10 2.7.11 6.5.11 2.7.2 6.5.12 2.7.3 6.5.13 2.7.4 6.5.2 2.7.5 6.5.3 2.7.6 6.5.4 2.7.7 6.5.5 2.7.8 6.5.6 2.7.9 6.5.7 2.8.0 6.5.8 2.8.1 6.5.9 2.8.2 6.6.0 2.8.3 6.6.1 2.8.4 6.6.2 2.8.5 2.8.6 2.8.7 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8 2.9.9 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.4.1 3.1.5 3.2.0 3.3.0 3.3.1 3.3.2 3.3.3 3.4.0 3.5.0 3.5.1 3.5.2 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.3.0 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.8 4.3.9 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.9.0 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.6 4.9.7 5.0.0 5.0.1 5.0.10 5.0.11 5.0.12 5.0.13 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.0.9 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 5.2.0 5.2.1 5.2.2 5.2.3 5.2.4 5.3.0 5.3.1 5.3.2 5.4.6 5.5.5 5.6.5 5.7.2
essential-addons-for-elementor-lite / includes / Extensions / Wrapper_Link.php
essential-addons-for-elementor-lite / includes / Extensions Last commit date
Custom_JS.php 1 year ago Hover_Effect.php 1 year ago Image_Masking.php 2 months ago Liquid_Glass_Effect.php 5 months ago Post_Duplicator.php 2 months ago Promotion.php 9 months ago Reading_Progress.php 5 months ago Scroll_to_Top.php 5 months ago Table_of_Content.php 2 weeks ago Vertical_Text_Orientation.php 7 months ago Wrapper_Link.php 2 months ago index.php 3 years ago
Wrapper_Link.php
136 lines
1 <?php
2
3 namespace Essential_Addons_Elementor\Extensions;
4
5 use Elementor\Controls_Manager;
6
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit;
10 }
11
12 class Wrapper_Link {
13
14 /**
15 * Initialize hooks
16 */
17 public function __construct() {
18 add_action( 'elementor/element/common/_section_style/after_section_end', [ $this, 'register_controls' ] );
19 add_action( 'elementor/element/column/section_advanced/after_section_end', [ $this, 'register_controls' ] );
20 add_action( 'elementor/element/section/section_advanced/after_section_end', [ $this, 'register_controls' ] );
21 add_action( 'elementor/element/container/section_layout/after_section_end', [ $this, 'register_controls' ] );
22 add_action( 'elementor/frontend/before_render', [ $this, 'before_render' ], 100 );
23 //WPML Support
24 add_filter( 'elementor/frontend/before_render', [ $this, 'eael_container_before_wrapper_link_wpml' ] );
25 }
26
27 /**
28 * WPML Support for container's wrapper link
29 */
30 public function eael_container_before_wrapper_link_wpml( $element ) {
31 if ( 'container' !== $element->get_data( 'elType' ) ) {
32 return;
33 }
34
35 $settings = $element->get_settings();
36
37 if ( empty( $settings['eael_wrapper_link']['url'] ) ) {
38 return;
39 }
40
41 $lang = apply_filters( 'wpml_current_language', null );
42 $url = apply_filters( 'wpml_permalink', $settings['eael_wrapper_link']['url'], $lang, true );
43
44 $settings['eael_wrapper_link']['url'] = $url;
45 $element->set_settings( 'eael_wrapper_link', $settings['eael_wrapper_link'] );
46 }
47
48 public function register_controls( $element ) {
49 $element->start_controls_section(
50 'eael_wrapper_link_section',
51 [
52 'label' => __( '<i class="eaicon-logo"></i> Wrapper Link', 'essential-addons-for-elementor-lite' ),
53 'tab' => Controls_Manager::TAB_ADVANCED
54 ]
55 );
56
57 $element->add_control(
58 'eael_wrapper_link_switch',
59 [
60 'label' => __( 'Enable Wrapper Link', 'essential-addons-for-elementor-lite' ),
61 'type' => Controls_Manager::SWITCHER
62 ]
63 );
64
65 $element->add_control(
66 'eael_wrapper_link',
67 [
68 'label' => __( 'Link', 'essential-addons-for-elementor-lite' ),
69 'type' => Controls_Manager::URL,
70 'dynamic' => [
71 'active' => true,
72 ],
73 'condition' => [
74 'eael_wrapper_link_switch!' => ''
75 ]
76 ]
77 );
78
79 $element->add_control(
80 'eael_wrapper_link_disable_traditional',
81 [
82 'label' => __( 'Disable Traditional Link', 'essential-addons-for-elementor-lite' ),
83 'type' => Controls_Manager::SWITCHER,
84 'label_on' => esc_html__( 'Yes', 'essential-addons-for-elementor-lite' ),
85 'label_off' => esc_html__( 'Off', 'essential-addons-for-elementor-lite' ),
86 'return_value' => 'yes',
87 'condition' => [
88 'eael_wrapper_link_switch!' => ''
89 ]
90 ]
91 );
92
93 $element->add_control(
94 'ael_wrapper_link_warning_text',
95 [
96 'type' => Controls_Manager::RAW_HTML,
97 'raw' => __('By Disabling <strong>Traditional Link</strong> some features (ex: dynamic tags, custom atrributes etc.) may not work.', 'essential-addons-for-elementor-lite'),
98 'content_classes' => 'eael-warning',
99 'condition' => [
100 'eael_wrapper_link_switch!' => '',
101 'eael_wrapper_link_disable_traditional' => 'yes'
102 ]
103 ]
104 );
105
106 $element->end_controls_section();
107 }
108
109 public function before_render( $element ) {
110 $wrapper_link_settings = $element->get_settings_for_display( 'eael_wrapper_link' );
111
112 if ( "yes" === $element->get_settings_for_display( 'eael_wrapper_link_switch' ) && ! empty( $wrapper_link_settings['url'] ) ) {
113 $disable_traditional = $element->get_settings_for_display( 'eael_wrapper_link_disable_traditional' );
114 if( 'yes' === $disable_traditional ){
115 $element->add_render_attribute( '_wrapper',
116 'data-eael-wrapper-link',
117 wp_json_encode( [
118 'url' => esc_url( $wrapper_link_settings['url'] ),
119 'is_external' => esc_attr( $wrapper_link_settings['is_external'] ),
120 'nofollow' => esc_attr( $wrapper_link_settings['nofollow'] )
121 ] )
122 );
123
124 $element->add_render_attribute( '_wrapper', 'class', 'eael-non-traditional-link' );
125 } else {
126 $link_id = 'eael-wrapper-link-' . $element->get_id();
127 $element->add_render_attribute( 'eael_wrapper_link', 'class', $link_id . ' --eael-wrapper-link-tag' );
128 $element->add_link_attributes( 'eael_wrapper_link', $wrapper_link_settings );
129 echo "<a "; $element->print_render_attribute_string( 'eael_wrapper_link' ); echo "></a>";
130
131 $element->add_render_attribute( '_wrapper', 'data-eael-wrapper-link', $link_id );
132 }
133 }
134 }
135 }
136