Dynamické query parametre URL tlačidla v Elementore

V tomto návode sa dozviete, ako rozšíriť funkcionalitu tlačidiel v Elementore pridaním dynamických query parametrov do URL. Tento krok za krokom návod vám ukáže, ako pridať vlastné nastavenia v Elementore pomocou PHP a JavaScriptu, čo vám umožní pridať a upraviť dynamické query parametre priamo v rozhraní Elementoru. Tento prístup je užitočný pre každého, kto potrebuje prispôsobiť URL tlačidiel na základe dynamicky generovaných údajov, čo môže byť užitočné napríklad pre sledovanie kampaní alebo prenos špecifických údajov medzi stránkami.

				
					// PHP kód na pridanie vlastnej textovej oblasti v Elementore a pridať dataset atribút
function add_custom_query_controls($widget) {
    $widget->start_controls_section(
        'custom_query_section',
        [
            'label' => __('Custom Query Arguments', 'plugin-domain'),
            'tab' => ElementorControls_Manager::TAB_CONTENT,
        ]
    );

    $widget->add_control(
        'query_args',
        [
            'label' => __('Query Arguments', 'plugin-domain'),
            'type' => ElementorControls_Manager::TEXTAREA,
            'placeholder' => __('Enter query parameters (e.g., key1=value1&key2=value2)', 'plugin-domain'),
        ]
    );

    $widget->end_controls_section();
}

add_action('elementor/element/button/section_button/after_section_end', function($widget) {
    add_custom_query_controls($widget);
}, 10, 1);

function add_query_args_dataset($widget) {
    $settings = $widget->get_settings_for_display();
    if (!empty($settings['query_args'])) {
        $widget->add_render_attribute('_wrapper', 'data-query-args', $settings['query_args']);
    }
}

add_action('elementor/widget/before_render_content', 'add_query_args_dataset');

// JavaScript kód na pridanie query parametra do URL bez zakódovania
function custom_script() {
    ?>
    
    document.addEventListener('DOMContentLoaded', function() {
        document.querySelectorAll('.elementor-button').forEach(function(button) {
            button.addEventListener('click', function(event) {
                const widget = button.closest('.elementor-element');
                const queryParam = widget ? widget.getAttribute('data-query-args') : null;
                if (queryParam) {
                    // Vytvorenie URL objektu s aktuálnou URL
                    let url = button.href;
                    if (!url) {
                        url = button.getAttribute('href');
                    }

                    if (url) {
                        let separator = url.includes('?') ? '&' : '?';
                        // Pridanie query parametra bez zakódovania
                        const finalUrl = url + separator + queryParam;
                        button.setAttribute('href', finalUrl);
                    }
                }
            });
        });
    });
    
    <?php
}
add_action('wp_footer', 'custom_script');

				
			
Autor: Ladislav Dubravský
Cena: Zadarmo
Dátum publikácie: 26 júna, 2024

Potrebujete kód na mieru?

Neváhajte ma kontaktovať. Som tu pre vás, aby som odpovedal na vaše otázky a začal spolupracovať na vašom projekte.