Suporte » Plugins » Desenvolvendo Plugin – Listagem de categorias

  • Resolvido juscelinobarao

    (@juscelinobarao)


    Olá pessoal. Preciso de ajuda com um plugin.
    Preciso listar nele todas as categorias do site com checkboxs.
    Consigo facilmente isso com:

    $categories = get_categories();
    foreach($categories as $category) {
      echo '<div>';
      echo '<input type="checkbox" name="lista_categorias[]" value="'.$category->term_id.'">';
      echo '<label for="'.$category->slug.'"> '.$category->name.' ('.$category->term_id.')</label>';
      echo '</div>';
    }

    Possuo também uma tabela chamada “news2social_categories” que vai armazenar as categorias desejadas para ação do meu plugin. Já populei essa tabela com as categorias “2 e 4”.
    Consigo listá-las com o seguinte código:

    $db_table_name = $wpdb->prefix . 'news2social_categories';
    $results = $wpdb->get_results(" SELECT id, chosen_categories FROM $db_table_name; ");
      if(!empty($results)){
        foreach($results as $result){
          echo $result->chosen_categories."<br>";
        }
      }

    Eu gostaria de juntar os dois resultados para poder exibir com “checked” as categorias marcadas pelo usuário que estão na tabela específica do meu banco.
    Alguém me dê uma ajuda?
    Tentei foreach dentro de foreach mas não obtive sucesso. só muito dado repetido.

    Desde já agradeço.

Visualizando 1 resposta (de um total de 1)
  • RESOLVIDO:

    $categories = get_categories();
    $db_table_name = $wpdb->prefix . 'news2social_categories';
    
    foreach($categories as $category) {
    echo '<input type="checkbox" name="lista_categorias[]" style="float:left; margin-right:5px;" value="'.$category->term_id.'"';
    $results = $wpdb->get_results(" SELECT chosen_categories FROM $db_table_name WHERE chosen_categories = $category->term_id ");
        foreach($results as $result) {
    
    if ($category->term_id  ==  $result->chosen_categories) {
    echo " checked ";
    }
    }
    echo '><label for="'.$category->slug.'">'.$category->name.'</label>';
    }
Visualizando 1 resposta (de um total de 1)
  • Você deve estar conectado para responder a este tópico.