Как изменить шорткод после того, как пользователь взаимодействует с кнопкой фронтальной кнопки?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как изменить шорткод после того, как пользователь взаимодействует с кнопкой фронтальной кнопки?

Сообщение Anonymous »

Я использую Royal Audio Player в качестве плагина для веб -сайта, который я создаю, и я хочу иметь что -то похожее на то, что этот парень создал для своего сайта голоса. , Я хочу текст над аудиоплеерным игроком с различными категориями, доступными, чтобы щелкнуть, и когда пользователь нажимает на них, он изменит игрока на соответствующий список воспроизведения в зависимости от того, на какую на щелкну.
Пока что у меня есть 2 шорты для аудиоплеера: < /p>
[fwdrap preset_id="VOICEOVER" playlist_id="VoiceOvers" start_playlist_id="Audiobooks" start_track_id="preset"]
[fwdrap preset_id="VOICEOVER" playlist_id="VoiceOvers" start_playlist_id="Narration" start_track_id="preset"]
< /code>
Аудиоплеер действительно раскрывается, который пользователь может использовать, что при нажатии на то, чтобы показать другие категории, и они могут выбрать оттуда. < /p>
Но я хочу, чтобы пользователь мог видеть все категории в определенное время с одним игроком. Насколько мне известно, изменение короткого кода с использованием Ajax-единственный способ, которым я действительно могу достичь своей цели. /em>.
Итак, я получил код, как это: < /p>
add_action(
'wp_ajax_switch_audio_playlist',
'switch_audio_playlist'
);
add_action(
'wp_ajax_nopriv_switch_audio_playlist',
'switch_audio_playlist'
);

function switch_audio_playlist()
{
if (isset($_POST['playlist']))
{
$playlist = sanitize_text_field($_POST['playlist']);

echo do_shortcode('[fwdrap preset_id="VOICEOVER" playlist_id="VoiceOvers" start_playlist_id="' . $playlist . '" start_track_id="preset"]');
$html = ob_get_clean();

wp_send_json_success($html);
}
else
{
wp_send_json_error('No playlist provided.');
}
}
< /code>
function enqueue_custom_ajax_script()
{
wp_enqueue_script(
'custom-ajax-script',
get_template_directory_uri() . '/js/custom-ajax.js',
array('jquery'),
null,
true
);

wp_localize_script(
'custom-ajax-script',
'ajax_object',
array('ajax_url' => admin_url('admin-ajax.php'),
);
}

add_action('wp_enqueue_scripts', 'enqueue_custom_ajax_script');
< /code>
HTML/JS + Shortcode:

Audiobooks
| Narration

[fwdrap preset_id="VOICEOVER" playlist_id="VoiceOvers" start_playlist_id="Audiobooks" start_track_id="preset"]



jQuery(document).ready(function($) {
$('.switch-playlist').on('click', function() {
let playlist = $(this).data('playlist');
console.log('Switching to playlist:', playlist);

$.ajax({
url: ajax_object.ajax_url, // This comes from wp_localize_script
method: "POST",
data: {
action: 'fetch_shortcode',
playlist: playlist
},
success: function(response) {
console.log('AJAX response:', response);
$('#audio-player-container').html(response.data);
}
});
});
});

< /code>
After fixing a localization issue, I've come to this error:
When I load the page, the audio player is loading as intended: My inspector before I click on the Narration Button (Screenshot).
But when I press on the narration button the page shows nothing and the inspector looks like this:
Inspector after I click on the narration button (Screenshot).

Подробнее здесь: https://stackoverflow.com/questions/794 ... end-button
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»