<?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[0]</span></li>
<li>Última semana (de segunda-feira à domingo) <span class='float-right'>$n_startups_incompletos[1]</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;
$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)];
}