Я пытаюсь реализовать функциональность do_shortcode для плагина Profile Builder для загрузки формы регистрации, когда она вызывается из формы входа в систему. Поскольку форма будет отображаться в том же модальном окне, которое требует, чтобы форма регистрации загружалась с помощью AJAX.
В функциях. php есть функция для загрузки содержимого шорткода:
add_action( 'wp_ajax_nopriv_do_shortcode', 'do_shortcode' );
add_action( 'wp_ajax_do_shortcode', 'do_shortcode' );
function do_shortcode( ) {
$shortcode = $_REQUEST['shortcode_name'];
ob_start();
echo do_shortcode( $shortcode );
ob_get_contents();
$modal = ob_get_clean();
echo $modal;
die();
}
И в шаблоне модального окна у меня есть:
function load() {
jQuery.ajax({
method: 'POST',
url: '/wp-admin/admin-ajax.php',
data: {
action: 'do_shortcode',
shortcode_name: 'wppb-register'
},
success: function(data)
{
jQuery("#my-modal").replaceWith(data);
}
});
}
В результате я получаю только текст 'wppb_register'. Как я могу получить регистрацию форма, которая является содержанием для этого шорткода?