Come eseguire uno shortcode con JavaScript

2 ott 2017, 17:15:50
Visualizzazioni: 28.2K
Voti: 4

Supponiamo di avere questo shortcode:

[spu-close class="" text="" align=""]

Voglio mostrare questo shortcode quando clicco su un pulsante, questo è il mio HTML:

 <input class="button b" onclick="openFile(link);"  type="button" value="download" />

e questo è il mio file JavaScript:

function openFile(link){
//Voglio fare qualcosa del genere
    do_shortcode('[spu-close class="" text="" align=""]', false );
   //  

}

Non so come fare questo, qualcuno può aiutarmi?

1
Commenti

Non sono sicuro che sia possibile, dato che uno shortcode è composto in PHP, e PHP è lato server. Mentre Javascript è lato client. Dovresti comunque essere in grado di eseguire questa funzione in PHP.

Menno van der Krift Menno van der Krift
2 ott 2017 17:19:22
Tutte le risposte alla domanda 1
1

per eseguire uno "ShortCode" che sta lato server (WordPress/PHP) da JavaScript che sta lato client, avrai bisogno di usare AJAX!

Puoi usare qualcosa come:

1-nel tuo file .js enqueued:

jQuery(document).ready(function($) {
    $('.buttonClass').on('click', function() {
        $.ajax({
            url: Param.doShortCode,
            type: 'POST',
            data: {
                action: 'handle_ajax_shortcode',
            },
            success: function() {
                //fai qualcosa in caso di successo
            },
            error: function() {
                //fai qualcosa in caso di errore
            }
        })
    })
});

2- nel file php:

//localizza il tuo script
$Param = array(

  'doShortCode'=>admin_url( 'admin-ajax.php' ),
      
);
wp_localize_script('handle_ajax_shortcode','Param', $Param);

//esegue per utenti non loggati
add_action( 'wp_ajax_nopriv_handle_ajax_shortcode', 'handle_ajax_shortcode' );
//esegue per utenti loggati
add_action( 'wp_ajax_handle_ajax_shortcode', 'handle_ajax_shortcode' );


function handle_ajax_shortcode(){
  //inserisci qui quello che vuoi eseguire quando viene triggerato l'evento JavaScript
  do_shortcode( string $content, bool $ignore_html = false )
  // Non dimenticare di fermare l'esecuzione dopo
  wp_die();

}

per maggiori informazioni puoi controllare Link1 & Link2 & Link3

2 ott 2017 19:40:44
Commenti

Un utente anonimo fa notare che stai impostando l'azione due volte: una nell'URL e una nel corpo del post.

Rup Rup
13 feb 2024 17:46:04