Как выполнить шорткод с помощью JavaScript

2 окт. 2017 г., 17:15:50
Просмотры: 28.2K
Голосов: 4

Предположим, у нас есть следующий шорткод:

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

Я хочу показать этот шорткод при клике на кнопку. Вот мой HTML:

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

А это мой JavaScript файл:

function openFile(link){
//Я хочу сделать что-то вроде этого
    do_shortcode('[spu-close class="" text="" align=""]', false );
   //  

}

Я не знаю, как это можно реализовать. Кто-нибудь может помочь?

1
Комментарии

Не уверен, возможно ли это, так как шорткод создается в PHP, а PHP работает на стороне сервера. А Javascript работает на стороне клиента. Однако вы должны иметь возможность выполнить эту функцию в PHP.

Menno van der Krift Menno van der Krift
2 окт. 2017 г. 17:19:22
Все ответы на вопрос 1
1

Для выполнения "ShortCode" на стороне сервера (WordPress/PHP) из JavaScript (клиентская сторона), вам понадобится использовать AJAX!

Вы можете использовать что-то вроде:

1- В подключенном .js файле:

jQuery(document).ready(function($) {
    $('.buttonClass').on('click', function() {
        $.ajax({
            url: Param.doShortCode,
            type: 'POST',
            data: {
                action: 'handle_ajax_shortcode',
            },
            success: function() {
                //действия при успешном выполнении 
            },
            error: function() {
                //действия при ошибке
            }
        })
    })
});

2- В php файле:

//локализация скрипта
$Param = array(

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

//выполняется для пользователей, которые не авторизованы
add_action( 'wp_ajax_nopriv_handle_ajax_shortcode', 'handle_ajax_shortcode' );
//выполняется для авторизованных пользователей
add_action( 'wp_ajax_handle_ajax_shortcode', 'handle_ajax_shortcode' );


function handle_ajax_shortcode(){
  //здесь размещайте код, который должен выполняться при срабатывании JavaScript события
  do_shortcode( string $content, bool $ignore_html = false )
  // Не забудьте остановить выполнение
  wp_die();

}

Для получения дополнительной информации вы можете проверить Ссылка1 & Ссылка2 & Ссылка3

2 окт. 2017 г. 19:40:44
Комментарии

Анонимный пользователь отмечает, что вы дважды устанавливаете действие: один раз в URL и один раз в теле запроса.

Rup Rup
13 февр. 2024 г. 17:46:04