Usando wp_send_json para retornar HTML

4

Eu não entendo como retornar HTML corretamente via AJAX.

Eu tenho essa rotina

function DisplayEventInfoBox()
{    ?>
    <div id="eventInfo">
    <div class="avail-from cart-right">

    <?php   
    and so on...
}

Se eu incluí isso em uma chamada AJAX e o final da rotina é um dado (), o objeto de resposta contém o HTML, que eu posso usar como eu gosto.

function myAJAXFn() {
    DisplayEventInfoBox($my_page, $shipHelper);
    die();
}

Eu quero enviar informações adicionais, por exemplo, usando wp_send_json_success ou outra variável.

Esse código retorna o HTML com o array JSON preso ao final. Eu gostaria de criar um objeto JSON onde eu possa acessar minha propriedade de página e o html. Qual é a melhor maneira de fazer isso?

function myAJAXFn() {
    DisplayEventInfoBox($my_page, $shipHelper);
    wp_send_json_success( array('page'=>$myPage) );
}
    
por strattonn 18.03.2015 / 00:40

1 resposta

3

Não sei dizer o que as variáveis $ my_page, $ my_page ou $ shipHelper devem fazer, mas você pode usar um buffer de saída para capturar a saída da função DisplayEventInfoBox. Você pode tentar o seguinte:

function myAJAXFn() {
    ob_start();
    DisplayEventInfoBox($my_page, $shipHelper);
    $my_html = ob_get_contents();
    ob_end_clean();
    wp_send_json_success( array('page'=>$my_html) );
}
    
por czerspalace 18.03.2015 / 01:10

Tags