it-swarm-pt.com

Recuperar e exibir dados da tabela de banco de dados personalizada na área administrativa?

Então, eu estou tendo um pouco de um problema com um plugin que estou desenvolvendo, eu me pergunto se alguém pode lançar alguma luz sobre a situação, como muitos, muitas pesquisas voltaram com ajuda zero. : - /

Basicamente, o meu plugin cria várias entidades personalizadas no banco de dados wordpress, que funcionam bem, eu adicionei uma função shortcode para adicionar um formulário a uma página para enviar informações, o que, novamente, funciona bem.

Meu problema é, quando desejo recuperar dados das referidas entidades personalizadas e exibi-los na seção de administração do Wordpress (em um widget de painel ou em uma página de plug-in personalizada), isso não funcionará. Ponto final.

Minha função de amostra para recuperar os dados é a seguinte;

function showApplicants(){
global $wpdb;

$appTable = $wpdb->prefix . "applications";
    $query = $wpdb->prepare("SELECT * FROM $appTable WHERE %d >= '0'", RID);
    $applications = $wpdb->get_results($query);

    foreach ( $applications as $application ) 
{
echo $application->title . " " . $application->app_firstName . " " . $application->app_surName . "<br/>";
}

}

Estranhamente, quando esse código é colocado em uma página fora da área de administração do WordPress (por exemplo, uma página criada pelo WordPress, por meio de uma função shortcode (que simplesmente gera esse código) ou em uma página que crio e adiciono a mim mesmo com esse código no modelo), funciona! Recuperando as informações corretas e exibindo-as conforme o esperado.

Adicione-o a um widget de painel, sem alegria. Adicioná-lo a uma página personalizada na seção de administração, novamente, sem alegria.

Estou perplexo. Algum conselho?

P.S - Para evitar qualquer confusão, o $ wpdb global é declarado mais acima no código, portanto não há necessidade de declará-lo novamente (embora eu tenha tentado declará-lo novamente dentro da função e ele ainda não funcionou).

Qualquer ajuda seria muito bem vinda!

Ta mucho!

1
prettyfly

Código de trabalho para incluir o widget no painel de controle do wp com informações do banco de dados personalizado:

/**
 * Add application widget to the dashboard.
 */
function addApplicationWidget() {
    wp_add_dashboard_widget(
                 'submitted_applications',         
                 'Submitted Applications',        
                 'showApplicants' 
        );  
}
add_action( 'wp_dashboard_setup', 'addApplicationWidget' );

function showApplicants() {
    global $wpdb;

    $appTable = $wpdb->prefix . "applications";
    $query = $wpdb->prepare("SELECT * FROM $appTable WHERE %d >= '0'", RID);
    $applications = $wpdb->get_results($query);

    foreach ( $applications as $application ) {
        echo $application->title . " " . $application->app_firstName . " " . $application->app_surName . "<br/>";
    }
}
7
prettyfly