Untitled
unknown
php
a year ago
43 kB
1
Indexable
Never
<?php add_action( 'admin_enqueue_scripts', 'dw_scripts' ); function dw_scripts( $hook ) { if ( 'index.php' === $hook ) { wp_enqueue_style( 'dw_style', plugin_dir_url( __FILE__ ) . 'dashboard-style.css', array(), '1.0' ); } } // ADICIONA WIDGETS function wpdocs_add_dashboard_widgets() { // Remove Welcome panel and all Dashboard widgets remove_action( 'welcome_panel', 'wp_welcome_panel' ); global $wp_meta_boxes; unset( $wp_meta_boxes['dashboard'] ); wp_add_dashboard_widget( 'dashboard_widget', 'STARTUPS', 'dashboard_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget2', 'CHAMADAS', 'dashboard2_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget3', 'INSCRIÇÕES', 'dashboard3_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget4', 'INSCRIÇÕES - POR FASE DO NEGÓCIO', 'dashboard4_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget5', 'INSCRIÇÕES - POR GÊNERO DOS FUNDADORES', 'dashboard5_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget6', 'INSCRIÇÕES - POR ESTADO', 'dashboard6_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget7', 'INSCRIÇÕES - POR FAIXA ETÁRIA', 'dashboard7_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget8', 'CADASTROS ATUALIZADOS (a partir de 01/05/23)', 'dashboard8_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget9', 'UPDATES - POR FASE DO NEGÓCIO (a partir de 01/05/23)', 'dashboard9_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget10', 'UPDATES - POR GÊNERO DOS FUNDADORES (a partir de 01/05/23)', 'dashboard10_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget11', 'UPDATES - POR ESTADO (a partir de 01/05/23)', 'dashboard11_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget12', 'UPDATES - POR FAIXA ETÁRIA (a partir de 01/05/23)', 'dashboard12_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget13', 'NOVOS CADASTROS (a partir de 01/05/23)', 'dashboard13_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget14', 'NOVOS CADASTROS - POR FASE DO NEGÓCIO (a partir de 01/05/23)', 'dashboard14_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget15', 'NOVOS CADASTROS - POR GÊNERO DOS FUNDADORES (a partir de 01/05/23)', 'dashboard15_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget16', 'NOVOS CADASTROS - POR ESTADO (a partir de 01/05/23)', 'dashboard16_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget17', 'NOVOS CADASTROS - POR FAIXA ETÁRIA (a partir de 01/05/23)', 'dashboard17_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget18', 'CADASTROS PUBLICADOS (a partir de 01/05/23)', 'dashboard18_widget_function' ); wp_add_dashboard_widget( 'dashboard_widget19', 'CADASTROS INCOMPLETOS (a partir de 01/05/23)', 'dashboard19_widget_function' ); } add_action( 'wp_dashboard_setup', 'wpdocs_add_dashboard_widgets' ); // STARTUPS function dashboard_widget_function( $post, $callback_args ) { $n_startups_por_area = get_area_de_impacto_post_count(); $n_startups = total_startups_number(); $n_startups_publicadas = total_startups_publicadas(); $n_startups_cadastradas_ultima_semana = total_startups_cadastradas_ultima_semana(); $arr_n_startups_por_area = array( 'Cidadania / Civic Tech' => $n_startups_por_area[2], 'Cidades / Smart Cities' => $n_startups_por_area[3], 'Educação / Edtech' => $n_startups_por_area[4], 'Saúde / Health Tech' => $n_startups_por_area[5], 'Finanças / Fintech' => $n_startups_por_area[6], 'Tecnologias Verdes / Green Tech' => $n_startups_por_area[7], ); $arr_n_startups_por_classification = array( 'Negócio de Impacto' => get_classification_post_count(9), 'Cadastro mal preenchido' => get_classification_post_count(11) ); echo "<div class='activity-block'> <div class='widget-header'> <h3>Cadastradas</h3> </div> <ul class='widget-list'> <li>Total<span class='float-right'>$n_startups</span></li> <li>Última semana (de segunda-feira à domingo) <span class='float-right'>$n_startups_cadastradas_ultima_semana</span></li> </ul> </div>"; echo "<div class='activity-block'> <div class='widget-header'> <h3>Publicadas</h3> </div> <ul class='widget-list'> <li>Total <span class='float-right'>$n_startups_publicadas</span></li>"; foreach($arr_n_startups_por_area as $k => $v) { echo "<li>$k<span class='float-right'>$v</span></li>"; }; echo "</ul> </div>"; echo "<div class='activity-block'> <div class='widget-header'> <h3>Classificadas</h3> </div> <ul class='widget-list'>"; foreach($arr_n_startups_por_classification as $k => $v) { echo "<li>$k<span class='float-right'>$v</span></li>"; }; echo "</ul> </div>"; } // CHAMADAS function dashboard2_widget_function( $post, $callback_args ) { $n_chamadas_ativas = total_chamadas_ativas(); $n_chamadas = total_chamadas(); $chamadas_ativas = chamadas_ativas(); echo "<div class='activity-block'> <ul class='widget-list'> <li>Total<span class='float-right'>$n_chamadas</span></li> <li>Ativas (em andamento)<span class='float-right'>$n_chamadas_ativas</span></li> </ul> </div>"; } // INSCRICOES function dashboard3_widget_function( $post, $callback_args ) { $chamadas_ativas = chamadas_ativas(); foreach($chamadas_ativas as $chamada) { $info = get_chamada_subscalls_startups_info($chamada->ID); $title = $info["title"]; $n_subscalls = $info["n_subscalls"]; $n_incompletos = $info["cadastro_incompleto"]; echo "<div class='activity-block'> <div class='widget-header'> <div class='wp-menu-image dashicons-before dashicons-megaphone'></div> <h3>$title</h3> </div> <ul class='widget-list'> <li>Total<span class='float-right'>$n_subscalls</span></li> <li>Com cadastros incompletos<span class='float-right'>$n_incompletos</span></li> <li>Na última semana (de segunda-feira à domingo)<span class='float-right'>10</span></li> </ul> </div>"; }; } // INSCRICOES - POR FASE DO NEGÓCIO function dashboard4_widget_function( $post, $callback_args ) { $chamadas_ativas = chamadas_ativas(); foreach($chamadas_ativas as $chamada) { $info = get_chamada_subscalls_startups_info($chamada->ID); $f = $info['fase_do_negocio']; $title = $info["title"]; echo "<div class='activity-block'> <div class='widget-header'> <div class='wp-menu-image dashicons-before dashicons-megaphone'></div> <h3>$title</h3> </div> <ul class='widget-list'> <li>Ideia (pensando e desenvolvendo os detalhes do negócio)<span class='float-right'>".$f['Ideia (pensando e desenvolvendo os detalhes do negócio)']."</span></li> <li>Validação da ideia (pesquisando com potenciais clientes e parceiros se o negócio tem potencial)<span class='float-right'>".$f['Validação da ideia (pesquisando com potenciais clientes e parceiros se o negócio tem potencial)']."</span></li> <li>Protótipo (desenvolvendo a solução)<span class='float-right'>".$f['Protótipo (desenvolvendo a solução)']."</span></li> <li>Piloto (testando a solução)<span class='float-right'>".$f['Piloto (testando a solução)']."</span></li> <li>MVP (temos uma operação mínima em curso)<span class='float-right'>".$f['MVP (temos uma operação mínima em curso)']."</span></li> <li>Organização do negócio (estamos nos preparando para crescer ou repensando o negócio/solução)<span class='float-right'>".$f['Organização do negócio (estamos nos preparando para crescer ou repensando o negócio/solução)']."</span></li> <li>Tração (estamos em forte ritmo de crescimento)<span class='float-right'>".$f['Tração (estamos em forte ritmo de crescimento)']."</span></li> <li>Pré-escala (estamos nos preparando para uma grande expansão)<span class='float-right'>".$f['Pré-escala (estamos nos preparando para uma grande expansão)']."</span></li> <li>Escala (estamos em grande expansão)<span class='float-right'>".$f['Escala (estamos em grande expansão)']."</span></li> <li>Não sei dizer, alguém me explica?<span class='float-right'>".$f['Não sei dizer, alguém me explica?']."</span></li> </ul> </div>"; }; } // INSCRICOES - POR GÊNERO DOS FUNDADORES function dashboard5_widget_function( $post, $callback_args ) { $chamadas_ativas = chamadas_ativas(); foreach($chamadas_ativas as $chamada) { $info = get_chamada_subscalls_startups_info($chamada->ID); $title = $info["title"]; $h = $info["homens"]; $m = $info["mulheres"]; $n = $info["nao_binarios"]; echo "<div class='activity-block'> <div class='widget-header'> <div class='wp-menu-image dashicons-before dashicons-megaphone'></div> <h3>$title</h3> </div> <ul class='widget-list'> <li>Homem<span class='float-right'>$h</span></li> <li>Mulher<span class='float-right'>$m</span></li> <li>Não binário<span class='float-right'>$n</span></li> </ul> </div>"; }; } // INSCRICOES - POR ESTADO function dashboard6_widget_function( $post, $callback_args ) { $chamadas_ativas = chamadas_ativas(); foreach($chamadas_ativas as $chamada) { $info = get_chamada_subscalls_startups_info($chamada->ID); $title = $info["title"]; echo "<div class='activity-block'> <div class='widget-header'> <div class='wp-menu-image dashicons-before dashicons-megaphone'></div> <h3>$title</h3> </div> <ul class='widget-list'>"; foreach($info["estado"] as $k => $v) { echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> </div>"; }; } // INSCRICOES - POR IDADE function dashboard7_widget_function( $post, $callback_args ) { $chamadas_ativas = chamadas_ativas(); foreach($chamadas_ativas as $chamada) { $info = get_chamada_subscalls_startups_info($chamada->ID); $title = $info["title"]; echo "<div class='activity-block'> <div class='widget-header'> <div class='wp-menu-image dashicons-before dashicons-megaphone'></div> <h3>$title</h3> </div> <ul class='widget-list'> <li><strong>Fundador 1</strong></li>"; foreach($info["f1_faixa_etaria"] as $k => $v) { if ($k === "") { $k = "Não preenchido"; } echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> <ul class='widget-list'> <li><strong>Fundador 2</strong></li>"; foreach($info["f2_faixa_etaria"] as $k => $v) { if ($k === "") { $k = "Não preenchido"; } echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> <ul class='widget-list'> <li><strong>Fundador 3</strong></li>"; foreach($info["f3_faixa_etaria"] as $k => $v) { if ($k === "") { $k = "Não preenchido"; } echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> <ul class='widget-list'> <li><strong>Fundador 4</strong></li>"; foreach($info["f4_faixa_etaria"] as $k => $v) { if ($k === "") { $k = "Não preenchido"; } echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> </div>"; }; } // CADASTROS ATUALIZADOS function dashboard8_widget_function( $post, $callback_args ) { $updates_startups = updates_startups(); echo "<div class='activity-block'> <ul class='widget-list'> <li>Total<span class='float-right'>$updates_startups[0]</span></li> <li>Última semana (de segunda-feira à domingo) <span class='float-right'>$updates_startups[1]</span></li> </ul> </div>"; } // UPDATES - POR FASE DO NEGÓCIO function dashboard9_widget_function( $post, $callback_args ) { $info = get_startups_atualizadas_info(); $f = $info['fase_do_negocio']; echo "<div class='activity-block'> <ul class='widget-list'> <li>Ideia (pensando e desenvolvendo os detalhes do negócio)<span class='float-right'>".$f['Ideia (pensando e desenvolvendo os detalhes do negócio)']."</span></li> <li>Validação da ideia (pesquisando com potenciais clientes e parceiros se o negócio tem potencial)<span class='float-right'>".$f['Validação da ideia (pesquisando com potenciais clientes e parceiros se o negócio tem potencial)']."</span></li> <li>Protótipo (desenvolvendo a solução)<span class='float-right'>".$f['Protótipo (desenvolvendo a solução)']."</span></li> <li>Piloto (testando a solução)<span class='float-right'>".$f['Piloto (testando a solução)']."</span></li> <li>MVP (temos uma operação mínima em curso)<span class='float-right'>".$f['MVP (temos uma operação mínima em curso)']."</span></li> <li>Organização do negócio (estamos nos preparando para crescer ou repensando o negócio/solução)<span class='float-right'>".$f['Organização do negócio (estamos nos preparando para crescer ou repensando o negócio/solução)']."</span></li> <li>Tração (estamos em forte ritmo de crescimento)<span class='float-right'>".$f['Tração (estamos em forte ritmo de crescimento)']."</span></li> <li>Pré-escala (estamos nos preparando para uma grande expansão)<span class='float-right'>".$f['Pré-escala (estamos nos preparando para uma grande expansão)']."</span></li> <li>Escala (estamos em grande expansão)<span class='float-right'>".$f['Escala (estamos em grande expansão)']."</span></li> <li>Não sei dizer, alguém me explica?<span class='float-right'>".$f['Não sei dizer, alguém me explica?']."</span></li> </ul> </div>"; } // UPDATES - POR GÊNERO DOS FUNDADORES function dashboard10_widget_function( $post, $callback_args ) { $info = get_startups_atualizadas_info(); $h = $info["homens"]; $m = $info["mulheres"]; $n = $info["nao_binarios"]; echo "<div class='activity-block'> <ul class='widget-list'> <li>Homem<span class='float-right'>$h</span></li> <li>Mulher<span class='float-right'>$m</span></li> <li>Não binário<span class='float-right'>$n</span></li> </ul> </div>"; } // UPDATES - POR ESTADO function dashboard11_widget_function( $post, $callback_args ) { $info = get_startups_atualizadas_info(); $title = $info["title"]; echo "<div class='activity-block'> <ul class='widget-list'>"; foreach($info["estado"] as $k => $v) { echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> </div>"; } // UPDATES - POR IDADE function dashboard12_widget_function( $post, $callback_args ) { $chamadas_ativas = chamadas_ativas(); foreach($chamadas_ativas as $chamada) { $info = get_startups_atualizadas_info(); echo "<div class='activity-block'> <ul class='widget-list'> <li><strong>Fundador 1</strong></li>"; foreach($info["f1_faixa_etaria"] as $k => $v) { if ($k === "") { $k = "Não preenchido"; } echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> <ul class='widget-list'> <li><strong>Fundador 2</strong></li>"; foreach($info["f2_faixa_etaria"] as $k => $v) { if ($k === "") { $k = "Não preenchido"; } echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> <ul class='widget-list'> <li><strong>Fundador 3</strong></li>"; foreach($info["f3_faixa_etaria"] as $k => $v) { if ($k === "") { $k = "Não preenchido"; } echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> <ul class='widget-list'> <li><strong>Fundador 4</strong></li>"; foreach($info["f4_faixa_etaria"] as $k => $v) { if ($k === "") { $k = "Não preenchido"; } echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> </div>"; }; } // NOVOS function dashboard13_widget_function( $post, $callback_args ) { $novas = novas_startups(); echo "<div class='activity-block'> <ul class='widget-list'> <li>Total<span class='float-right'>$novas[0]</span></li> <li>Última semana (de segunda-feira à domingo) <span class='float-right'>$novas[1]</span></li> </ul> </div>"; } // NOVOS - POR FASE DO NEGÓCIO function dashboard14_widget_function( $post, $callback_args ) { $info = get_startups_novas_info(); $f = $info['fase_do_negocio']; echo "<div class='activity-block'> <ul class='widget-list'> <li>Ideia (pensando e desenvolvendo os detalhes do negócio)<span class='float-right'>".$f['Ideia (pensando e desenvolvendo os detalhes do negócio)']."</span></li> <li>Validação da ideia (pesquisando com potenciais clientes e parceiros se o negócio tem potencial)<span class='float-right'>".$f['Validação da ideia (pesquisando com potenciais clientes e parceiros se o negócio tem potencial)']."</span></li> <li>Protótipo (desenvolvendo a solução)<span class='float-right'>".$f['Protótipo (desenvolvendo a solução)']."</span></li> <li>Piloto (testando a solução)<span class='float-right'>".$f['Piloto (testando a solução)']."</span></li> <li>MVP (temos uma operação mínima em curso)<span class='float-right'>".$f['MVP (temos uma operação mínima em curso)']."</span></li> <li>Organização do negócio (estamos nos preparando para crescer ou repensando o negócio/solução)<span class='float-right'>".$f['Organização do negócio (estamos nos preparando para crescer ou repensando o negócio/solução)']."</span></li> <li>Tração (estamos em forte ritmo de crescimento)<span class='float-right'>".$f['Tração (estamos em forte ritmo de crescimento)']."</span></li> <li>Pré-escala (estamos nos preparando para uma grande expansão)<span class='float-right'>".$f['Pré-escala (estamos nos preparando para uma grande expansão)']."</span></li> <li>Escala (estamos em grande expansão)<span class='float-right'>".$f['Escala (estamos em grande expansão)']."</span></li> <li>Não sei dizer, alguém me explica?<span class='float-right'>".$f['Não sei dizer, alguém me explica?']."</span></li> </ul> </div>"; } // NOVOS - POR GÊNERO DOS FUNDADORES function dashboard15_widget_function( $post, $callback_args ) { $info = get_startups_novas_info(); $h = $info["homens"]; $m = $info["mulheres"]; $n = $info["nao_binarios"]; echo "<div class='activity-block'> <ul class='widget-list'> <li>Homem<span class='float-right'>$h</span></li> <li>Mulher<span class='float-right'>$m</span></li> <li>Não binário<span class='float-right'>$n</span></li> </ul> </div>"; } // NOVOS - POR ESTADO function dashboard16_widget_function( $post, $callback_args ) { $info = get_startups_novas_info(); $title = $info["title"]; echo "<div class='activity-block'> <ul class='widget-list'>"; foreach($info["estado"] as $k => $v) { echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> </div>"; } // NOVOS - POR IDADE function dashboard17_widget_function( $post, $callback_args ) { $info = get_startups_novas_info(); echo "<div class='activity-block'> <ul class='widget-list'> <li><strong>Fundador 1</strong></li>"; foreach($info["f1_faixa_etaria"] as $k => $v) { if ($k === "") { $k = "Não preenchido"; } echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> <ul class='widget-list'> <li><strong>Fundador 2</strong></li>"; foreach($info["f2_faixa_etaria"] as $k => $v) { if ($k === "") { $k = "Não preenchido"; } echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> <ul class='widget-list'> <li><strong>Fundador 3</strong></li>"; foreach($info["f3_faixa_etaria"] as $k => $v) { if ($k === "") { $k = "Não preenchido"; } echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> <ul class='widget-list'> <li><strong>Fundador 4</strong></li>"; foreach($info["f4_faixa_etaria"] as $k => $v) { if ($k === "") { $k = "Não preenchido"; } echo " <li>$k<span class='float-right'>$v</span></li>"; } echo " </ul> </div>"; } // CADASTROS PUBLICADOS function dashboard18_widget_function( $post, $callback_args ) { $new_startups_publicadas = startups_publicadas(); echo "<div class='activity-block'> <ul class='widget-list'> <li>Total<span class='float-right'>$new_startups_publicadas[0]</span></li> <li>Última semana (de segunda-feira à domingo) <span class='float-right'>$new_startups_publicadas[1]</span></li> </ul> </div>"; } // CADASTROS INCOMPLETOS function dashboard19_widget_function( $post, $callback_args ) { $n_startups_incompletos = startups_incompletos(); echo "<div class='activity-block'> <ul class='widget-list'> <li>Total<span class='float-right'>$n_startups_incompletos</span></li> <li>Última semana (de segunda-feira à domingo) <span class='float-right'>$n_startups_incompletos</span></li> </ul> </div>"; } // ------------------------- // HELPER FUNCTIONS: function total_startups_number() { return wp_count_posts('startups')->publish; } function total_startups_publicadas() { $args = array( 'post_type' => 'startups', 'post_status' => 'publish', 'meta_key' => 'publicada', 'meta_value' => '1', ); $query = new WP_Query( $args ); $total = $query->found_posts; return $total; } function total_startups_cadastradas_ultima_semana() { $args = array( 'post_type' => 'startups', 'post_status' => 'publish', 'date_query' => array(array('after' => 'last week monday','before' => 'last week sunday')) ); $query = new WP_Query( $args ); $total = $query->found_posts; return $total; } function get_area_de_impacto_post_count() { global $wpdb; $r = $wpdb->get_results( "select areas.meta_value as areas from wp_posts p left join wp_postmeta areas on areas.post_id = p.ID and areas.meta_key = 'areas_de_impacto' left join wp_postmeta publicada on publicada.post_id = p.ID and publicada.meta_key = 'publicada' where p.post_type = 'startups' and publicada.meta_value = '1'", ARRAY_N ); $count = []; $areas = []; foreach($r as $area) { $u = unserialize($area[0]); $areas[] = $u; } return array_count_values(array_merge(...$areas)); } function get_classification_post_count($classification_id) { $args = array( 'post_status' => 'publish', 'post_type' => 'startups', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'classifications', 'value' => $classification_id, 'compare' => 'LIKE' ) ) ); $query = new WP_Query( $args ); $total = $query->found_posts; return $total; } function total_chamadas() { $args = array( 'post_type' => 'chamadas', 'post_status' => 'publish', 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'mostrar_na_chamadas_encerradas', 'value' => '1', ), array( 'key' => 'mostrar_na_home', 'value' => '1', ), ) ); $query = new WP_Query( $args ); $total = $query->found_posts; return $total; } function total_chamadas_ativas() { $args = array( 'post_type' => 'chamadas', 'post_status' => 'publish', 'meta_key' => 'mostrar_na_home', 'meta_value' => '1', ); $query = new WP_Query( $args ); $total = $query->found_posts; return $total; } function chamadas_ativas() { $args = array( 'post_type' => 'chamadas', 'post_status' => 'publish', 'meta_key' => 'mostrar_na_home', 'meta_value' => '1', ); $query = new WP_Query( $args ); $posts = $query->posts; return $posts; } function get_chamada_subscalls($id_chamada) { $args = array( 'post_type' => 'subscription_call', 'nopaging' => true, 'post_status' => 'publish', 'meta_key' => 'chamada', 'meta_value' => sprintf(':"%s";', $id_chamada), 'meta_compare' => 'LIKE', 'fields' => 'startup' ); $query = new WP_Query( $args ); $posts = $query->posts; foreach($posts as $post) { $post->cadastro_incompleto = get_field('cadastro_incompleto', $post->startup->ID); } return $posts; } function get_chamada_subscalls_startups_info($id_chamada) { $args = array( 'post_type' => 'subscription_call', 'nopaging' => true, 'post_status' => 'publish', 'meta_key' => 'chamada', 'meta_value' => sprintf(':"%s";', $id_chamada), 'meta_compare' => 'LIKE', 'fields' => ['startup'] ); $query = new WP_Query( $args ); $posts = $query->posts; $fase_do_negocio = []; $estado = []; $cadastro_incompleto = []; $homens = []; $mulheres = []; $nao_binarios = []; $f1_faixa_etaria = []; $f2_faixa_etaria = []; $f3_faixa_etaria = []; $f4_faixa_etaria = []; foreach($posts as $post) { $fields = get_fields($post->ID); if (!$fields["startup"][0]->ID) { continue; } $uf = (string)get_field('estado', $fields["startup"][0]->ID); $fase = (string)get_field('fase_do_negocio', $fields["startup"][0]->ID)->name; $post->data_cadastro = get_field('data_cadastro', $fields["startup"][0]->ID); $fase_do_negocio[] = $fase ? $fase : "Não preenchido"; $estado[] = $uf ? $uf : "Não preenchido"; $cadastro_incompleto_value = get_field('cadastro_incompleto', $fields["startup"][0]->ID)->name; $cadastro_incompleto[] = $cadastro_incompleto_value == "Sim" ? 1 : 0; $homens[] = (int)get_field('fundadores_quantidade_homens', $fields["startup"][0]->ID); $mulheres[] = (int)get_field('fundadores_quantidade_mulheres', $fields["startup"][0]->ID); $nao_binarios[] = (int)get_field('fundadores_quantidade_outros', $fields["startup"][0]->ID); $f1_faixa_etaria[] = (string)get_field('fundador_1_faixa_etaria', $fields["startup"][0]->ID); $f2_faixa_etaria[] = (string)get_field('fundador_2_faixa_etaria', $fields["startup"][0]->ID); $f3_faixa_etaria[] = (string)get_field('fundador_3_faixa_etaria', $fields["startup"][0]->ID); $f4_faixa_etaria[] = (string)get_field('fundador_4_faixa_etaria', $fields["startup"][0]->ID); } $estado = array_count_values($estado); $fase_do_negocio = array_count_values($fase_do_negocio); $f1_faixa_etaria = array_count_values($f1_faixa_etaria); $f2_faixa_etaria = array_count_values($f2_faixa_etaria); $f3_faixa_etaria = array_count_values($f3_faixa_etaria); $f4_faixa_etaria = array_count_values($f4_faixa_etaria); ksort($f1_faixa_etaria); $f1_faixa_etaria = array_merge(array_splice($f1_faixa_etaria, 1), $f1_faixa_etaria); ksort($f2_faixa_etaria); $f2_faixa_etaria = array_merge(array_splice($f2_faixa_etaria, 1), $f2_faixa_etaria); ksort($f3_faixa_etaria); $f3_faixa_etaria = array_merge(array_splice($f3_faixa_etaria, 1), $f3_faixa_etaria); ksort($f4_faixa_etaria); $f4_faixa_etaria = array_merge(array_splice($f4_faixa_etaria, 1), $f4_faixa_etaria); arsort($estado); $n_ultima_semana = array_filter($posts, function($p) { $data_cadastro = strtotime($p->data_cadastro); if ($data_cadastro > strtotime("last week monday") && $data_cadastro < strtotime("last week sunday")) { return $p; } }); return array( 'title' => get_the_title($id_chamada), 'fase_do_negocio' => $fase_do_negocio, 'estado' => $estado, 'cadastro_incompleto' => array_sum($cadastro_incompleto), 'homens' => array_sum($homens), 'mulheres' => array_sum($mulheres), 'nao_binarios' => array_sum($nao_binarios), 'n_subscalls' => sizeof($posts), 'n_ultima_semana' => sizeof($n_ultima_semana), 'f1_faixa_etaria' => $f1_faixa_etaria, 'f2_faixa_etaria' => $f2_faixa_etaria, 'f3_faixa_etaria' => $f3_faixa_etaria, 'f4_faixa_etaria' => $f4_faixa_etaria ); } function get_startups_atualizadas_info() { global $wpdb; $posts = $wpdb->get_results( "select p.id as id, atualizada.meta_value as atualizada, cadastrada.meta_value as cadastrada from wp_posts p left join wp_postmeta atualizada on atualizada.post_id = p.ID and atualizada.meta_key = 'data_de_atualizacao' left join wp_postmeta cadastrada on cadastrada.post_id = p.ID and cadastrada.meta_key = 'data_de_cadastro' where atualizada.meta_value > '2023-04-00' and cadastrada.meta_value < '2023-04-00' and p.post_type = 'startups'", ARRAY_N ); $fase_do_negocio = []; $estado = []; $cadastro_incompleto = []; $homens = []; $mulheres = []; $nao_binarios = []; $f1_faixa_etaria = []; $f2_faixa_etaria = []; $f3_faixa_etaria = []; $f4_faixa_etaria = []; foreach($posts as $post) { $id = $post[0]; $fields = get_fields($id); $uf = (string)get_field('estado', $id); $fase = (string)get_field('fase_do_negocio', $id)->name; $fase_do_negocio[] = $fase ? $fase : "Não preenchido"; $estado[] = $uf ? $uf : "Não preenchido"; $cadastro_incompleto_value = get_field('cadastro_incompleto', $id)->name; $cadastro_incompleto[] = $cadastro_incompleto_value == "Sim" ? 1 : 0; $homens[] = (int)get_field('fundadores_quantidade_homens', $id); $mulheres[] = (int)get_field('fundadores_quantidade_mulheres', $id); $nao_binarios[] = (int)get_field('fundadores_quantidade_outros', $id); $f1_faixa_etaria[] = (string)get_field('fundador_1_faixa_etaria', $id); $f2_faixa_etaria[] = (string)get_field('fundador_2_faixa_etaria', $id); $f3_faixa_etaria[] = (string)get_field('fundador_3_faixa_etaria', $id); $f4_faixa_etaria[] = (string)get_field('fundador_4_faixa_etaria', $id); } $estado = array_count_values($estado); $fase_do_negocio = array_count_values($fase_do_negocio); $f1_faixa_etaria = array_count_values($f1_faixa_etaria); $f2_faixa_etaria = array_count_values($f2_faixa_etaria); $f3_faixa_etaria = array_count_values($f3_faixa_etaria); $f4_faixa_etaria = array_count_values($f4_faixa_etaria); ksort($f1_faixa_etaria); $f1_faixa_etaria = array_merge(array_splice($f1_faixa_etaria, 1), $f1_faixa_etaria); ksort($f2_faixa_etaria); $f2_faixa_etaria = array_merge(array_splice($f2_faixa_etaria, 1), $f2_faixa_etaria); ksort($f3_faixa_etaria); $f3_faixa_etaria = array_merge(array_splice($f3_faixa_etaria, 1), $f3_faixa_etaria); ksort($f4_faixa_etaria); $f4_faixa_etaria = array_merge(array_splice($f4_faixa_etaria, 1), $f4_faixa_etaria); arsort($estado); return array( 'title' => get_the_title($id_chamada), 'fase_do_negocio' => $fase_do_negocio, 'estado' => $estado, 'cadastro_incompleto' => array_sum($cadastro_incompleto), 'homens' => array_sum($homens), 'mulheres' => array_sum($mulheres), 'nao_binarios' => array_sum($nao_binarios), 'n_subscalls' => sizeof($posts), 'f1_faixa_etaria' => $f1_faixa_etaria, 'f2_faixa_etaria' => $f2_faixa_etaria, 'f3_faixa_etaria' => $f3_faixa_etaria, 'f4_faixa_etaria' => $f4_faixa_etaria ); } function get_startups_novas_info() { global $wpdb; $posts = $wpdb->get_results( "select p.id as id from wp_posts p left join wp_postmeta cadastrada on cadastrada.post_id = p.ID and cadastrada.meta_key = 'data_de_cadastro' where cadastrada.meta_value > '2023-04-00' and p.post_type = 'startups'", ARRAY_N ); $fase_do_negocio = []; $estado = []; $cadastro_incompleto = []; $homens = []; $mulheres = []; $nao_binarios = []; $f1_faixa_etaria = []; $f2_faixa_etaria = []; $f3_faixa_etaria = []; $f4_faixa_etaria = []; foreach($posts as $post) { $id = $post[0]; $fields = get_fields($id); $uf = (string)get_field('estado', $id); $fase = (string)get_field('fase_do_negocio', $id)->name; $fase_do_negocio[] = $fase ? $fase : "Não preenchido"; $estado[] = $uf ? $uf : "Não preenchido"; $cadastro_incompleto_value = get_field('cadastro_incompleto', $id)->name; $cadastro_incompleto[] = $cadastro_incompleto_value == "Sim" ? 1 : 0; $homens[] = (int)get_field('fundadores_quantidade_homens', $id); $mulheres[] = (int)get_field('fundadores_quantidade_mulheres', $id); $nao_binarios[] = (int)get_field('fundadores_quantidade_outros', $id); $f1_faixa_etaria[] = (string)get_field('fundador_1_faixa_etaria', $id); $f2_faixa_etaria[] = (string)get_field('fundador_2_faixa_etaria', $id); $f3_faixa_etaria[] = (string)get_field('fundador_3_faixa_etaria', $id); $f4_faixa_etaria[] = (string)get_field('fundador_4_faixa_etaria', $id); } $estado = array_count_values($estado); $fase_do_negocio = array_count_values($fase_do_negocio); $f1_faixa_etaria = array_count_values($f1_faixa_etaria); $f2_faixa_etaria = array_count_values($f2_faixa_etaria); $f3_faixa_etaria = array_count_values($f3_faixa_etaria); $f4_faixa_etaria = array_count_values($f4_faixa_etaria); ksort($f1_faixa_etaria); $f1_faixa_etaria = array_merge(array_splice($f1_faixa_etaria, 1), $f1_faixa_etaria); ksort($f2_faixa_etaria); $f2_faixa_etaria = array_merge(array_splice($f2_faixa_etaria, 1), $f2_faixa_etaria); ksort($f3_faixa_etaria); $f3_faixa_etaria = array_merge(array_splice($f3_faixa_etaria, 1), $f3_faixa_etaria); ksort($f4_faixa_etaria); $f4_faixa_etaria = array_merge(array_splice($f4_faixa_etaria, 1), $f4_faixa_etaria); arsort($estado); return array( 'title' => get_the_title($id_chamada), 'fase_do_negocio' => $fase_do_negocio, 'estado' => $estado, 'cadastro_incompleto' => array_sum($cadastro_incompleto), 'homens' => array_sum($homens), 'mulheres' => array_sum($mulheres), 'nao_binarios' => array_sum($nao_binarios), 'n_subscalls' => sizeof($posts), 'f1_faixa_etaria' => $f1_faixa_etaria, 'f2_faixa_etaria' => $f2_faixa_etaria, 'f3_faixa_etaria' => $f3_faixa_etaria, 'f4_faixa_etaria' => $f4_faixa_etaria ); } function updates_startups() { global $wpdb; $query = " SELECT atualizada.meta_value AS atualizada, cadastrada.meta_value AS cadastrada FROM {$wpdb->prefix}posts AS p LEFT JOIN {$wpdb->prefix}postmeta AS atualizada ON atualizada.post_id = p.ID AND atualizada.meta_key = 'data_de_atualizacao' LEFT JOIN {$wpdb->prefix}postmeta AS cadastrada ON cadastrada.post_id = p.ID AND cadastrada.meta_key = 'data_de_cadastro' WHERE p.post_type = 'startups' AND atualizada.meta_value > '2023-04-00' "; $r = $wpdb->get_results($query, ARRAY_N); $query2 = " SELECT atualizada.meta_value AS atualizada, cadastrada.meta_value AS cadastrada FROM {$wpdb->prefix}posts AS p LEFT JOIN {$wpdb->prefix}postmeta AS atualizada ON atualizada.post_id = p.ID AND atualizada.meta_key = 'data_de_atualizacao' LEFT JOIN {$wpdb->prefix}postmeta AS cadastrada ON cadastrada.post_id = p.ID AND cadastrada.meta_key = 'data_de_cadastro' WHERE p.post_type = 'startups' AND atualizada.meta_value BETWEEN DATE_SUB(DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) + 1 DAY), INTERVAL 6 DAY) AND DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) + 1 DAY) AND atualizada.meta_value > '2023-04-00' "; $r2 = $wpdb->get_results($query2, ARRAY_N); return [count($r), count($r2)]; } function novas_startups() { global $wpdb; $query_cadastrada = "SELECT cadastrada.meta_value FROM wp_posts p LEFT JOIN wp_postmeta cadastrada ON cadastrada.post_id = p.ID AND cadastrada.meta_key = 'data_de_cadastro' WHERE cadastrada.meta_value > '2023-04-00' AND p.post_type = 'startups'"; $query_atualizada = "SELECT atualizada.meta_value FROM wp_posts p LEFT JOIN wp_postmeta atualizada ON atualizada.post_id = p.ID AND atualizada.meta_key = 'data_de_atualizacao' LEFT JOIN wp_postmeta cadastrada ON cadastrada.post_id = p.ID AND cadastrada.meta_key = 'data_de_cadastro' WHERE atualizada.meta_value BETWEEN DATE_SUB(DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) + 1 DAY), INTERVAL 6 DAY) AND DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) + 1 DAY) AND cadastrada.meta_value > '2023-04-00' AND p.post_type = 'startups'"; $cadastrada_result = $wpdb->get_results($query_cadastrada, ARRAY_N); $atualizada_result = $wpdb->get_results($query_atualizada, ARRAY_N); return [count($cadastrada_result), count($atualizada_result)]; } function startups_publicadas() { global $wpdb; $query = " SELECT atualizada.meta_value AS atualizada, cadastrada.meta_value AS cadastrada, publicada.meta_value AS publicada FROM {$wpdb->prefix}posts AS p LEFT JOIN {$wpdb->prefix}postmeta AS atualizada ON atualizada.post_id = p.ID AND atualizada.meta_key = 'data_de_atualizacao' LEFT JOIN {$wpdb->prefix}postmeta AS cadastrada ON cadastrada.post_id = p.ID AND cadastrada.meta_key = 'data_de_cadastro' LEFT JOIN {$wpdb->prefix}postmeta AS publicada ON publicada.post_id = p.ID AND publicada.meta_key = 'publicada' WHERE p.post_type = 'startups' AND publicada.meta_value = '1' AND atualizada.meta_value > '2023-04-00' "; $r = $wpdb->get_results($query, ARRAY_N); $query2 = " SELECT atualizada.meta_value AS atualizada, cadastrada.meta_value AS cadastrada, publicada.meta_value AS publicada FROM {$wpdb->prefix}posts AS p LEFT JOIN {$wpdb->prefix}postmeta AS atualizada ON atualizada.post_id = p.ID AND atualizada.meta_key = 'data_de_atualizacao' LEFT JOIN {$wpdb->prefix}postmeta AS cadastrada ON cadastrada.post_id = p.ID AND cadastrada.meta_key = 'data_de_cadastro' LEFT JOIN {$wpdb->prefix}postmeta AS publicada ON publicada.post_id = p.ID AND publicada.meta_key = 'publicada' WHERE p.post_type = 'startups' AND publicada.meta_value = '1' AND atualizada.meta_value BETWEEN DATE_SUB(DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) + 1 DAY), INTERVAL 6 DAY) AND DATE_SUB(NOW(), INTERVAL WEEKDAY(NOW()) + 1 DAY) AND atualizada.meta_value > '2023-04-00' "; $r2 = $wpdb->get_results($query2, ARRAY_N); return [count($r), count($r2)]; } function startups_incompletos() { global $wpdb; $posts = $wpdb->get_results( "select p.id as id from wp_posts p left join wp_postmeta cadastrada on cadastrada.post_id = p.ID and cadastrada.meta_key = 'data_de_cadastro' where cadastrada.meta_value BETWEEN DATE_ADD(NOW(), INTERVAL -1 WEEK) AND NOW() and p.post_type = 'startups'", ARRAY_N ); $count_incompletos_semana = 0; foreach($posts as $post) { $id = $post[0]; $cadastro_incompleto_value = get_field('cadastro_incompleto', $id)->name; if ($cadastro_incompleto_value == "Sim") { $count_incompletos_semana += 1; } } $posts = $wpdb->get_results( "select p.id as id from wp_posts p left join wp_postmeta cadastrada on cadastrada.post_id = p.ID and cadastrada.meta_key = 'data_de_cadastro' where cadastrada.meta_value BETWEEN DATE_ADD(NOW(), INTERVAL -1 MONTH) AND NOW() and p.post_type = 'startups'", ARRAY_N ); $count_incompletos_mes = 0; foreach($posts as $post) { $id = $post[0]; $cadastro_incompleto_value = get_field('cadastro_incompleto', $id)->name; if ($cadastro_incompleto_value == "Sim") { $count_incompletos_mes += 1; } } return [$count_incompletos_semana, $count_incompletos_mes]; }