File: /var/www/sites/30291/public_html/wp-content/themes/fernanda-menezes/functions.php
<?php
if (!defined('ABSPATH')) {
exit;
}
function fm_setup() {
add_theme_support('title-tag');
add_theme_support('post-thumbnails');
add_theme_support('html5', array('search-form', 'comment-form', 'comment-list', 'gallery', 'caption', 'style', 'script'));
add_theme_support('custom-logo');
register_nav_menus(array(
'primary' => __('Menu principal', 'fernanda-menezes'),
'pulsar' => __('Menu Pulsar', 'fernanda-menezes'),
));
}
add_action('after_setup_theme', 'fm_setup');
function fm_assets() {
wp_enqueue_style(
'fm-playfair-display',
'https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&display=swap',
array(),
null
);
wp_enqueue_style('fm-style', get_stylesheet_uri(), array(), wp_get_theme()->get('Version'));
}
add_action('wp_enqueue_scripts', 'fm_assets');
function fm_sanitize_textarea($value) {
return wp_kses_post($value);
}
function fm_sanitize_url($value) {
return esc_url_raw($value);
}
function fm_defaults() {
return array(
'fm_quiz_url' => '#',
'fm_whatsapp_url' => '#',
'fm_community_url' => '#',
'fm_instagram_url' => '#',
'fm_contact_email' => 'contato@seudominio.com.br',
'fm_header_cta_label' => 'Fazer Diagnóstico',
'fm_header_cta_url' => '',
'fm_hero_title' => 'Toda marca tem potencial para brilhar. Mas brilho sem direção se perde no espaço.',
'fm_hero_text' => 'Ajudo profissionais e empreendedoras a fortalecerem sua presença, comunicarem seu valor e construírem uma trajetória de crescimento com mais estratégia e movimento.',
'fm_hero_primary_label' => 'Descobrir meu próximo passo',
'fm_hero_primary_url' => '',
'fm_hero_secondary_label' => 'Conhecer as soluções',
'fm_hero_secondary_url' => '#solucoes',
'fm_hero_badge_title' => 'Presença com direção',
'fm_hero_badge_text' => 'Imagem, estratégia e movimento para marcas pessoais.',
'fm_study_title' => 'Você não precisa estudar mais.<br>Precisa saber qual é o próximo passo.',
'fm_study_text' => 'Talvez você já tenha aprendido o suficiente para chegar mais longe do que imagina.<br>O desafio não é encontrar mais informação.<br>É parar de caminhar em círculos e começar a seguir uma direção.',
'fm_study_statement' => 'O problema não é falta de potencial.<br>É gastar energia demais sem conseguir transformá-la em movimento.',
'fm_star_title' => 'Toda marca tem uma estrela.<br>Mas nem toda estrela consegue ser vista.',
'fm_star_text' => 'Muitas profissionais carregam conhecimento, experiência e potencial. Ainda assim, continuam se sentindo invisíveis. Não porque lhes falte capacidade. Mas porque tentam seguir caminhos que não combinam com quem são.<br><br>Eu acredito que marcas fortes não nascem da comparação. Nascem quando você reconhece seu valor, encontra sua voz e constrói uma trajetória alinhada ao que deseja alcançar.<br><br><strong>É assim que o potencial deixa de ser apenas uma possibilidade. E começa a se transformar em movimento.</strong>',
'fm_solutions_title' => 'Onde sua marca precisa de mais impulso agora?',
'fm_solutions_text' => 'Cada marca está em um momento diferente da sua trajetória. Por isso, mais importante do que fazer tudo é saber qual é o próximo passo para continuar avançando.',
'fm_solutions_footer' => 'Não importa em qual etapa da jornada você esteja.<br>Sempre existe um próximo passo capaz de fortalecer sua marca.',
'fm_solution_gf_kicker' => 'GF Studio',
'fm_solution_gf_stage' => 'PRESENÇA',
'fm_solution_gf_title' => 'Mostre ao mundo o valor do seu trabalho',
'fm_solution_gf_service' => 'Fotografia profissional, vídeos e produção de conteúdo',
'fm_solution_gf_text' => 'Sua imagem comunica antes mesmo das suas palavras. Crie uma presença que transmita confiança, credibilidade e autenticidade.',
'fm_solution_gf_button' => 'Conhecer o GF Studio',
'fm_solution_gf_url' => '#contato',
'fm_solution_pulsar_kicker' => 'Pulsar',
'fm_solution_pulsar_stage' => 'ESTRUTURA',
'fm_solution_pulsar_title' => 'Transforme intenção em crescimento',
'fm_solution_pulsar_service' => 'Posicionamento, marketing, IA, CRM e estratégias de crescimento',
'fm_solution_pulsar_text' => 'Organize suas ideias, fortaleça sua comunicação e construa uma estrutura que apoie o crescimento da sua marca.',
'fm_solution_pulsar_button' => 'Conhecer a Pulsar',
'fm_solution_pulsar_url' => '#contato',
'fm_solution_club_kicker' => 'Clube',
'fm_solution_club_stage' => 'EVOLUÇÃO',
'fm_solution_club_title' => 'Continue evoluindo com direção',
'fm_solution_club_service' => 'Acompanhamento, desenvolvimento e comunidade',
'fm_solution_club_text' => 'Para quem deseja manter a consistência, colocar projetos em prática e continuar fortalecendo sua marca ao longo do tempo.',
'fm_solution_club_button' => 'Conhecer o Clube',
'fm_solution_club_url' => '#clube',
'fm_diagnostic_title' => 'Sua marca precisa de foto, estratégia, acompanhamento ou direção?',
'fm_diagnostic_text' => 'Nem sempre a solução certa é a mais óbvia. Responda algumas perguntas e descubra qual é o próximo passo para transformar potencial em resultado.',
'fm_diagnostic_button' => 'Fazer Diagnóstico',
'fm_diagnostic_url' => '',
'fm_home_diagnostic_quiz_url' => '',
'fm_about_title' => 'Mais do que serviços, acredito em direção.',
'fm_about_text' => 'Ao longo dos anos, percebi algo que se repetia em quase todas as histórias.<br><br>O problema não era falta de potencial. Era gastar energia demais sem conseguir transformá-la em movimento.<br><br>Foi dessa percepção que nasceu um ecossistema que une presença visual, estratégia, tecnologia e acompanhamento contínuo.<br><br>Porque acredito que marcas fortes não surgem por acaso. Elas são construídas quando existe direção, ação e continuidade.',
'fm_about_statement' => 'Toda trajetória começa com potencial.<br>Mas é a direção que transforma potencial em resultado.',
'fm_club_title' => 'Muitas profissionais conseguem começar.<br>O desafio é continuar.',
'fm_club_text' => 'Construir uma marca forte não acontece em uma única ação.<br><br>Acontece quando existe direção, prática e continuidade.<br><br>O Clube Imagem em Movimento foi criado para profissionais que desejam fortalecer sua presença, desenvolver sua marca e continuar avançando com mais consistência ao longo da trajetória.',
'fm_club_button' => 'Conhecer o Clube',
'fm_club_url' => '#contato',
'fm_club_benefit_1' => 'Direcionamento estratégico',
'fm_club_benefit_2' => 'Produção de conteúdo e presença visual',
'fm_club_benefit_3' => 'Conteúdos e treinamentos',
'fm_club_benefit_4' => 'Comunidade e networking',
'fm_community_title' => 'Você não precisa fazer essa trajetória sozinha.',
'fm_community_text' => 'Às vezes, tudo o que precisamos é de um espaço para trocar ideias, encontrar novas perspectivas e continuar avançando.<br><br>O Marcas que Brilham nasceu para reunir profissionais e empreendedoras que desejam fortalecer suas marcas, desenvolver sua presença e seguir em movimento.<br><br>Um lugar para aprender, compartilhar experiências e perceber que existem outras pessoas vivendo desafios parecidos com os seus.',
'fm_community_button' => 'Entrar no grupo gratuito',
'fm_blog_title' => 'Continue sua trajetória.',
'fm_blog_text' => 'Artigos, reflexões e conteúdos para ajudar você a fortalecer sua presença, desenvolver sua marca e continuar avançando com mais direção e movimento.',
'fm_blog_button' => 'Acessar o Blog',
'fm_blog_url' => '',
'fm_final_title' => 'Direção transforma potencial em resultado.',
'fm_final_text' => 'Você já entendeu que existe um próximo passo. Agora é hora de descobrir qual direção faz mais sentido para a sua marca.',
'fm_final_button' => 'Fazer Diagnóstico',
'fm_final_url' => '',
'fm_pulsar_ai_url' => '/pulsar-assistentes-estrategicas-com-ia/',
'fm_pulsar_crm_url' => '/pulsar-organizacao-digital-e-crm/',
'fm_pulsar_positioning_url' => '/pulsar-posicionamento-e-perfil-vitrine/',
'fm_pulsar_funnels_url' => '/pulsar-operacao-cometa/',
'fm_pulsar_consulting_url' => '/pulsar/consultoria-estrategica/',
'fm_agents_primary_url' => '',
'fm_agents_secondary_url' => '',
'fm_agents_bia_url' => '',
'fm_agents_eva_url' => '',
'fm_agents_clara_url' => '',
'fm_agents_sofia_url' => '',
'fm_agents_essential_price' => 'A partir de R$ XXX/mês',
'fm_agents_communication_price' => 'A partir de R$ XXX/mês',
'fm_agents_strategic_price' => 'A partir de R$ XXX/mês',
'fm_agents_essential_url' => '',
'fm_agents_communication_url' => '',
'fm_agents_strategic_url' => '',
'fm_agents_faq_shortcode' => '',
'fm_crm_primary_url' => '',
'fm_crm_secondary_url' => '',
'fm_crm_gallery_url' => '',
'fm_crm_transform_title' => 'Quando a operação cresce sem estrutura',
'fm_crm_transform_subtitle' => 'O problema não é crescer. É crescer sem estrutura.',
'fm_crm_transform_text_1' => 'Quando processos, informações e atendimentos não seguem uma lógica clara, cada novo cliente aumenta a complexidade da operação.',
'fm_crm_transform_text_2' => 'A consequência não é apenas desorganização. É mais retrabalho, mais sobrecarga e menos previsibilidade.',
'fm_positioning_primary_url' => '',
'fm_positioning_secondary_url' => '',
'fm_positioning_portfolio_url' => '#portfolio-posicionamento',
'fm_positioning_brilho_url' => '',
'fm_positioning_instagram_url' => '',
'fm_positioning_linkedin_url' => '',
'fm_positioning_toca_url' => '',
'fm_positioning_presence_url' => '',
'fm_positioning_library_url' => 'https://pulsarmarcas.gfstudiosalvador.com.br/inicio',
'fm_positioning_brilho_price' => 'A partir de R$ XXX',
'fm_positioning_instagram_price' => 'A partir de R$ XXX/mês',
'fm_positioning_linkedin_price' => 'A partir de R$ XXX',
'fm_positioning_toca_price' => 'A partir de R$ XXX',
'fm_positioning_presence_price' => 'A partir de R$ XXX/mês',
'fm_cometa_primary_url' => '',
'fm_cometa_secondary_url' => '',
'fm_cometa_portfolio_url' => '#portfolio-cometa',
'fm_cometa_base_url' => '',
'fm_cometa_landing_url' => '',
'fm_cometa_interactive_url' => '',
'fm_cometa_commercial_url' => '',
);
}
function fm_customizer_text($wp_customize, $section, $id, $label, $default = '', $type = 'text') {
$sanitize = $type === 'textarea' ? 'fm_sanitize_textarea' : 'sanitize_text_field';
$wp_customize->add_setting($id, array(
'default' => $default,
'sanitize_callback' => $sanitize,
'transport' => 'refresh',
));
$wp_customize->add_control($id, array(
'label' => $label,
'section' => $section,
'type' => $type,
));
}
function fm_customizer_url($wp_customize, $section, $id, $label, $default = '#') {
$wp_customize->add_setting($id, array(
'default' => $default,
'sanitize_callback' => 'fm_sanitize_url',
'transport' => 'refresh',
));
$wp_customize->add_control($id, array(
'label' => $label,
'section' => $section,
'type' => 'url',
));
}
function fm_customizer_image($wp_customize, $section, $id, $label) {
$wp_customize->add_setting($id, array(
'default' => '',
'sanitize_callback' => 'absint',
'transport' => 'refresh',
));
$wp_customize->add_control(new WP_Customize_Media_Control($wp_customize, $id, array(
'label' => $label,
'section' => $section,
'mime_type' => 'image',
)));
}
function fm_image_css_value($key, $fallback = '') {
$id = absint(get_theme_mod($key));
if ($id) {
$src = wp_get_attachment_image_url($id, 'full');
if ($src) {
return 'url(' . esc_url($src) . ')';
}
}
if ($fallback) {
return 'url(' . esc_url(get_template_directory_uri() . $fallback) . ')';
}
return '';
}
function fm_customize_register($wp_customize) {
$wp_customize->add_panel('fm_content', array(
'title' => __('Conteúdo da Home', 'fernanda-menezes'),
'priority' => 30,
));
$sections = array(
'fm_links' => 'Links principais',
'fm_hero' => '01 Hero',
'fm_study' => '02 Proximo passo',
'fm_star' => '03 Filosofia da marca',
'fm_solutions' => '04 Soluções',
'fm_diagnostic' => '05 Diagnóstico',
'fm_about' => '06 Sobre Fernanda',
'fm_club' => '07 Clube Imagem em Movimento',
'fm_community' => '08 Marcas que Brilham',
'fm_blog' => '09 Blog',
'fm_final' => '10 CTA final',
'fm_pulsar' => 'Pulsar',
'fm_pulsar_agents' => 'Pulsar - Assistentes Estratégicas',
'fm_pulsar_crm' => 'Pulsar - Organização e CRM',
'fm_pulsar_positioning' => 'Pulsar - Posicionamento e Perfil',
'fm_pulsar_cometa' => 'Pulsar - Operacao Cometa',
);
foreach ($sections as $id => $title) {
$wp_customize->add_section($id, array(
'title' => $title,
'panel' => 'fm_content',
));
}
fm_customizer_url($wp_customize, 'fm_links', 'fm_quiz_url', 'Link do quiz/diagnóstico');
fm_customizer_url($wp_customize, 'fm_links', 'fm_whatsapp_url', 'Link do WhatsApp comercial');
fm_customizer_url($wp_customize, 'fm_links', 'fm_community_url', 'Link do grupo Marcas que Brilham');
fm_customizer_url($wp_customize, 'fm_links', 'fm_instagram_url', 'Link do Instagram');
fm_customizer_text($wp_customize, 'fm_links', 'fm_contact_email', 'E-mail de contato', 'contato@seudominio.com.br');
fm_customizer_text($wp_customize, 'fm_links', 'fm_header_cta_label', 'Menu - texto do botão', 'Fazer Diagnóstico');
fm_customizer_url($wp_customize, 'fm_links', 'fm_header_cta_url', 'Menu - link do botão', '');
fm_customizer_text($wp_customize, 'fm_hero', 'fm_hero_title', 'Título', 'Toda marca tem potencial para brilhar. Mas brilho sem direção se perde no espaço.', 'textarea');
fm_customizer_text($wp_customize, 'fm_hero', 'fm_hero_text', 'Texto', 'Ajudo profissionais e empreendedoras a fortalecerem sua presença, comunicarem seu valor e construírem uma trajetória de crescimento com mais estratégia e movimento.', 'textarea');
fm_customizer_text($wp_customize, 'fm_hero', 'fm_hero_primary_label', 'Botão principal', 'Descobrir meu próximo passo');
fm_customizer_url($wp_customize, 'fm_hero', 'fm_hero_primary_url', 'Link do botão principal', '');
fm_customizer_text($wp_customize, 'fm_hero', 'fm_hero_secondary_label', 'Botão secundário', 'Conhecer as soluções');
fm_customizer_url($wp_customize, 'fm_hero', 'fm_hero_secondary_url', 'Link do botão secundário', '#solucoes');
fm_customizer_text($wp_customize, 'fm_hero', 'fm_hero_badge_title', 'Card sobreposto - título', 'Presença com direção');
fm_customizer_text($wp_customize, 'fm_hero', 'fm_hero_badge_text', 'Card sobreposto - texto', 'Imagem, estratégia e movimento para marcas pessoais.');
fm_customizer_image($wp_customize, 'fm_hero', 'fm_hero_image', 'Foto principal da Fernanda - desktop');
fm_customizer_image($wp_customize, 'fm_hero', 'fm_hero_mobile_image', 'Foto principal da Fernanda - mobile');
fm_customizer_text($wp_customize, 'fm_study', 'fm_study_title', 'Título', 'Você não precisa estudar mais. Precisa saber qual é o próximo passo.', 'textarea');
fm_customizer_text($wp_customize, 'fm_study', 'fm_study_text', 'Texto', 'Talvez você já tenha aprendido o suficiente para chegar mais longe do que imagina. O desafio não é encontrar mais informação. É parar de caminhar em círculos e começar a seguir uma direção.', 'textarea');
fm_customizer_text($wp_customize, 'fm_study', 'fm_study_statement', 'Frase destaque', 'O problema não é falta de potencial. É gastar energia demais sem conseguir transformá-la em movimento.', 'textarea');
fm_customizer_text($wp_customize, 'fm_star', 'fm_star_title', 'Título', 'Toda marca tem uma estrela. Mas nem toda estrela consegue ser vista.', 'textarea');
fm_customizer_text($wp_customize, 'fm_star', 'fm_star_text', 'Texto', 'Muitas profissionais carregam conhecimento, experiência e potencial. Ainda assim, continuam se sentindo invisíveis. Não porque lhes falte capacidade. Mas porque tentam seguir caminhos que não combinam com quem são.<br><br>Eu acredito que marcas fortes não nascem da comparação. Nascem quando você reconhece seu valor, encontra sua voz e constrói uma trajetória alinhada ao que deseja alcançar.<br><br><strong>É assim que o potencial deixa de ser apenas uma possibilidade. E começa a se transformar em movimento.</strong>', 'textarea');
fm_customizer_image($wp_customize, 'fm_star', 'fm_star_bg', 'Imagem de fundo');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solutions_title', 'Título', 'Onde sua marca precisa de mais impulso agora?', 'textarea');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solutions_text', 'Subtítulo', 'Cada marca está em um momento diferente da sua trajetória. Por isso, mais importante do que fazer tudo é saber qual é o próximo passo para continuar avançando.', 'textarea');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solutions_footer', 'Frase final', 'Não importa em qual etapa da jornada você esteja. Sempre existe um próximo passo capaz de fortalecer sua marca.', 'textarea');
fm_customizer_image($wp_customize, 'fm_solutions', 'fm_solution_gf_image', 'Imagem do card GF Studio');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_gf_kicker', 'GF Studio - etiqueta', 'GF Studio');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_gf_stage', 'GF Studio - etapa', 'PRESENÇA');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_gf_title', 'GF Studio - título', 'Mostre ao mundo o valor do seu trabalho', 'textarea');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_gf_service', 'GF Studio - serviço', 'Fotografia profissional, vídeos e produção de conteúdo', 'textarea');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_gf_text', 'GF Studio - texto', 'Sua imagem comunica antes mesmo das suas palavras. Crie uma presença que transmita confiança, credibilidade e autenticidade.', 'textarea');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_gf_button', 'GF Studio - botão', 'Conhecer o GF Studio');
fm_customizer_url($wp_customize, 'fm_solutions', 'fm_solution_gf_url', 'GF Studio - link do botão', '#contato');
fm_customizer_image($wp_customize, 'fm_solutions', 'fm_solution_pulsar_image', 'Imagem do card Pulsar');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_pulsar_kicker', 'Pulsar - etiqueta', 'Pulsar');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_pulsar_stage', 'Pulsar - etapa', 'ESTRUTURA');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_pulsar_title', 'Pulsar - título', 'Transforme intenção em crescimento', 'textarea');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_pulsar_service', 'Pulsar - serviço', 'Posicionamento, marketing, IA, CRM e estratégias de crescimento', 'textarea');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_pulsar_text', 'Pulsar - texto', 'Organize suas ideias, fortaleça sua comunicação e construa uma estrutura que apoie o crescimento da sua marca.', 'textarea');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_pulsar_button', 'Pulsar - botão', 'Conhecer a Pulsar');
fm_customizer_url($wp_customize, 'fm_solutions', 'fm_solution_pulsar_url', 'Pulsar - link do botão', '#contato');
fm_customizer_image($wp_customize, 'fm_solutions', 'fm_solution_club_image', 'Imagem do card Clube');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_club_kicker', 'Clube - etiqueta', 'Clube');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_club_stage', 'Clube - etapa', 'EVOLUÇÃO');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_club_title', 'Clube - título', 'Continue evoluindo com direção', 'textarea');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_club_service', 'Clube - serviço', 'Acompanhamento, desenvolvimento e comunidade', 'textarea');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_club_text', 'Clube - texto', 'Para quem deseja manter a consistência, colocar projetos em prática e continuar fortalecendo sua marca ao longo do tempo.', 'textarea');
fm_customizer_text($wp_customize, 'fm_solutions', 'fm_solution_club_button', 'Clube - botão', 'Conhecer o Clube');
fm_customizer_url($wp_customize, 'fm_solutions', 'fm_solution_club_url', 'Clube - link do botão', '#clube');
fm_customizer_text($wp_customize, 'fm_diagnostic', 'fm_diagnostic_title', 'Título', 'Sua marca precisa de foto, estratégia, acompanhamento ou direção?', 'textarea');
fm_customizer_text($wp_customize, 'fm_diagnostic', 'fm_diagnostic_text', 'Texto', 'Nem sempre a solução certa é a mais óbvia. Responda algumas perguntas e descubra qual é o próximo passo para transformar potencial em resultado.', 'textarea');
fm_customizer_text($wp_customize, 'fm_diagnostic', 'fm_diagnostic_button', 'Texto do botão', 'Fazer Diagnóstico');
fm_customizer_url($wp_customize, 'fm_diagnostic', 'fm_home_diagnostic_quiz_url', 'Link desta faixa na Home - quiz/recompensa', '');
fm_customizer_url($wp_customize, 'fm_diagnostic', 'fm_diagnostic_url', 'Link do diagnóstico estratégico', '');
fm_customizer_image($wp_customize, 'fm_diagnostic', 'fm_diagnostic_bg', 'Imagem de fundo da seção Diagnóstico');
fm_customizer_text($wp_customize, 'fm_about', 'fm_about_title', 'Título', 'Mais do que serviços, acredito em direção.', 'textarea');
fm_customizer_text($wp_customize, 'fm_about', 'fm_about_text', 'Texto', 'Ao longo dos anos, percebi algo que se repetia em quase todas as histórias. O problema não era falta de potencial. Era gastar energia demais sem conseguir transformá-la em movimento.', 'textarea');
fm_customizer_text($wp_customize, 'fm_about', 'fm_about_statement', 'Frase destaque', 'Toda trajetória começa com potencial. Mas é a direção que transforma potencial em resultado.', 'textarea');
fm_customizer_image($wp_customize, 'fm_about', 'fm_about_image_1', 'Foto Sobre - principal');
fm_customizer_image($wp_customize, 'fm_about', 'fm_about_image_2', 'Foto Sobre - apoio');
fm_customizer_image($wp_customize, 'fm_about', 'fm_about_image_3', 'Foto Sobre - apoio 2');
fm_customizer_image($wp_customize, 'fm_about', 'fm_about_image_4', 'Foto Sobre - destaque');
fm_customizer_text($wp_customize, 'fm_club', 'fm_club_title', 'Título', 'Muitas profissionais conseguem começar. O desafio é continuar.', 'textarea');
fm_customizer_text($wp_customize, 'fm_club', 'fm_club_text', 'Texto', 'O Clube Imagem em Movimento foi criado para profissionais que desejam fortalecer sua presença, desenvolver sua marca e continuar avançando com mais consistência ao longo da trajetória.', 'textarea');
fm_customizer_text($wp_customize, 'fm_club', 'fm_club_button', 'Texto do botão', 'Conhecer o Clube');
fm_customizer_url($wp_customize, 'fm_club', 'fm_club_url', 'Link do botão', '#contato');
fm_customizer_image($wp_customize, 'fm_club', 'fm_club_image', 'Imagem principal do Clube');
fm_customizer_text($wp_customize, 'fm_club', 'fm_club_benefit_1', 'Benefício 1', 'Direcionamento estratégico');
fm_customizer_text($wp_customize, 'fm_club', 'fm_club_benefit_2', 'Benefício 2', 'Produção de conteúdo e presença visual');
fm_customizer_text($wp_customize, 'fm_club', 'fm_club_benefit_3', 'Benefício 3', 'Conteúdos e treinamentos');
fm_customizer_text($wp_customize, 'fm_club', 'fm_club_benefit_4', 'Benefício 4', 'Comunidade e networking');
fm_customizer_text($wp_customize, 'fm_community', 'fm_community_title', 'Título', 'Você não precisa fazer essa trajetória sozinha.', 'textarea');
fm_customizer_text($wp_customize, 'fm_community', 'fm_community_text', 'Texto', 'O Marcas que Brilham nasceu para reunir profissionais e empreendedoras que desejam fortalecer suas marcas, desenvolver sua presença e seguir em movimento.', 'textarea');
fm_customizer_text($wp_customize, 'fm_community', 'fm_community_button', 'Texto do botão', 'Entrar no grupo gratuito');
fm_customizer_image($wp_customize, 'fm_community', 'fm_community_bg', 'Imagem de fundo - desktop');
fm_customizer_image($wp_customize, 'fm_community', 'fm_community_mobile_bg', 'Imagem de fundo - mobile');
fm_customizer_text($wp_customize, 'fm_blog', 'fm_blog_title', 'Título', 'Continue sua trajetória.', 'textarea');
fm_customizer_text($wp_customize, 'fm_blog', 'fm_blog_text', 'Texto', 'Artigos, reflexões e conteúdos para ajudar você a fortalecer sua presença, desenvolver sua marca e continuar avançando com mais direção e movimento.', 'textarea');
fm_customizer_text($wp_customize, 'fm_blog', 'fm_blog_button', 'Texto do botão', 'Acessar o Blog');
fm_customizer_url($wp_customize, 'fm_blog', 'fm_blog_url', 'Link do botão', '');
fm_customizer_text($wp_customize, 'fm_final', 'fm_final_title', 'Título', 'Direção transforma potencial em resultado.', 'textarea');
fm_customizer_text($wp_customize, 'fm_final', 'fm_final_text', 'Texto', 'Você já entendeu que existe um próximo passo. Agora é hora de descobrir qual direção faz mais sentido para a sua marca.', 'textarea');
fm_customizer_text($wp_customize, 'fm_final', 'fm_final_button', 'Texto do botão', 'Fazer Diagnóstico');
fm_customizer_url($wp_customize, 'fm_final', 'fm_final_url', 'Link do botão', '');
fm_customizer_image($wp_customize, 'fm_pulsar', 'fm_pulsar_hero_bg', 'Pulsar - imagem de fundo da hero');
fm_customizer_image($wp_customize, 'fm_pulsar', 'fm_pulsar_connect_image', 'Pulsar - imagem da seção Como ajuda');
fm_customizer_image($wp_customize, 'fm_pulsar', 'fm_pulsar_ai_image', 'Pulsar - imagem Assistentes com IA');
fm_customizer_image($wp_customize, 'fm_pulsar', 'fm_pulsar_crm_image', 'Pulsar - imagem Organização Digital e CRM');
fm_customizer_image($wp_customize, 'fm_pulsar', 'fm_pulsar_positioning_image', 'Pulsar - imagem Posicionamento e Perfil Vitrine');
fm_customizer_image($wp_customize, 'fm_pulsar', 'fm_pulsar_cometa_image', 'Pulsar - imagem Operação Cometa');
fm_customizer_image($wp_customize, 'fm_pulsar', 'fm_pulsar_method_bg', 'Pulsar - imagem de fundo da metodologia');
fm_customizer_image($wp_customize, 'fm_pulsar', 'fm_pulsar_consulting_image', 'Pulsar - foto da Consultoria Estratégica');
fm_customizer_url($wp_customize, 'fm_pulsar', 'fm_pulsar_ai_url', 'Pulsar - link Assistentes com IA', '/pulsar-assistentes-estrategicas-com-ia/');
fm_customizer_url($wp_customize, 'fm_pulsar', 'fm_pulsar_crm_url', 'Pulsar - link Organização Digital e CRM', '/pulsar-organizacao-digital-e-crm/');
fm_customizer_url($wp_customize, 'fm_pulsar', 'fm_pulsar_positioning_url', 'Pulsar - link Posicionamento e Perfil Vitrine', '/pulsar-posicionamento-e-perfil-vitrine/');
fm_customizer_url($wp_customize, 'fm_pulsar', 'fm_pulsar_funnels_url', 'Pulsar - link Operacao Cometa', '/pulsar-operacao-cometa/');
fm_customizer_url($wp_customize, 'fm_pulsar', 'fm_pulsar_consulting_url', 'Pulsar - link Consultoria Estratégica', '/pulsar/consultoria-estrategica/');
fm_customizer_image($wp_customize, 'fm_pulsar_agents', 'fm_agents_hero_image', 'Assistentes - imagem da hero');
fm_customizer_image($wp_customize, 'fm_pulsar_agents', 'fm_agents_bia_image', 'Assistentes - imagem BIA');
fm_customizer_image($wp_customize, 'fm_pulsar_agents', 'fm_agents_eva_image', 'Assistentes - imagem EVA');
fm_customizer_image($wp_customize, 'fm_pulsar_agents', 'fm_agents_clara_image', 'Assistentes - imagem CLARA');
fm_customizer_image($wp_customize, 'fm_pulsar_agents', 'fm_agents_sofia_image', 'Assistentes - imagem SOFIA');
fm_customizer_image($wp_customize, 'fm_pulsar_agents', 'fm_agents_process_image', 'Assistentes - imagem do processo');
fm_customizer_url($wp_customize, 'fm_pulsar_agents', 'fm_agents_primary_url', 'Assistentes - link do botão principal', '');
fm_customizer_url($wp_customize, 'fm_pulsar_agents', 'fm_agents_secondary_url', 'Assistentes - link Falar com a Pulsar', '');
fm_customizer_url($wp_customize, 'fm_pulsar_agents', 'fm_agents_bia_url', 'Assistentes - link BIA', '');
fm_customizer_url($wp_customize, 'fm_pulsar_agents', 'fm_agents_eva_url', 'Assistentes - link EVA', '');
fm_customizer_url($wp_customize, 'fm_pulsar_agents', 'fm_agents_clara_url', 'Assistentes - link CLARA', '');
fm_customizer_url($wp_customize, 'fm_pulsar_agents', 'fm_agents_sofia_url', 'Assistentes - link SOFIA', '');
fm_customizer_text($wp_customize, 'fm_pulsar_agents', 'fm_agents_essential_price', 'Apoio Essencial - valor', 'A partir de R$ XXX/mês');
fm_customizer_text($wp_customize, 'fm_pulsar_agents', 'fm_agents_communication_price', 'Apoio Comunicação - valor', 'A partir de R$ XXX/mês');
fm_customizer_text($wp_customize, 'fm_pulsar_agents', 'fm_agents_strategic_price', 'Apoio Estratégico - valor', 'A partir de R$ XXX/mês');
fm_customizer_url($wp_customize, 'fm_pulsar_agents', 'fm_agents_essential_url', 'Apoio Essencial - link', '');
fm_customizer_url($wp_customize, 'fm_pulsar_agents', 'fm_agents_communication_url', 'Apoio Comunicação - link', '');
fm_customizer_url($wp_customize, 'fm_pulsar_agents', 'fm_agents_strategic_url', 'Apoio Estratégico - link', '');
fm_customizer_text($wp_customize, 'fm_pulsar_agents', 'fm_agents_faq_shortcode', 'Assistentes - shortcode do FAQ salvo', '', 'textarea');
fm_customizer_image($wp_customize, 'fm_pulsar_crm', 'fm_crm_hero_image', 'CRM - imagem da hero');
fm_customizer_image($wp_customize, 'fm_pulsar_crm', 'fm_crm_proof_image_1', 'CRM - operação real 1');
fm_customizer_image($wp_customize, 'fm_pulsar_crm', 'fm_crm_proof_image_2', 'CRM - operação real 2');
fm_customizer_image($wp_customize, 'fm_pulsar_crm', 'fm_crm_proof_image_3', 'CRM - operação real 3');
fm_customizer_image($wp_customize, 'fm_pulsar_crm', 'fm_crm_flow_image', 'CRM - imagem de fluxo/processo');
fm_customizer_url($wp_customize, 'fm_pulsar_crm', 'fm_crm_primary_url', 'CRM - link Agendar Diagnóstico', '');
fm_customizer_url($wp_customize, 'fm_pulsar_crm', 'fm_crm_secondary_url', 'CRM - link Falar com a Pulsar', '');
fm_customizer_url($wp_customize, 'fm_pulsar_crm', 'fm_crm_gallery_url', 'CRM - link Ver operações reais', '#operacoes-reais');
fm_customizer_text($wp_customize, 'fm_pulsar_crm', 'fm_crm_transform_title', 'CRM - Antes x Depois: título', 'Quando a operação cresce sem estrutura', 'textarea');
fm_customizer_text($wp_customize, 'fm_pulsar_crm', 'fm_crm_transform_subtitle', 'CRM - Antes x Depois: subtítulo', 'O problema não é crescer. É crescer sem estrutura.', 'textarea');
fm_customizer_text($wp_customize, 'fm_pulsar_crm', 'fm_crm_transform_text_1', 'CRM - Antes x Depois: texto 1', 'Quando processos, informações e atendimentos não seguem uma lógica clara, cada novo cliente aumenta a complexidade da operação.', 'textarea');
fm_customizer_text($wp_customize, 'fm_pulsar_crm', 'fm_crm_transform_text_2', 'CRM - Antes x Depois: texto 2', 'A consequência não é apenas desorganização. É mais retrabalho, mais sobrecarga e menos previsibilidade.', 'textarea');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_hero_image', 'Posicionamento - imagem da hero');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_route_image', 'Posicionamento - imagem rota/GPS');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_brilho_image', 'Posicionamento - imagem O Brilho Certo');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_instagram_image', 'Posicionamento - imagem Assessoria Instagram');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_linkedin_image', 'Posicionamento - imagem LinkedIn');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_toca_image', 'Posicionamento - imagem Saia da Toca');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_presence_image', 'Posicionamento - imagem Gestao de Presenca Digital');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_library_image', 'Posicionamento - imagem Biblioteca de Desenvolvimento');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_portfolio_1', 'Posicionamento - portfolio 1');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_portfolio_2', 'Posicionamento - portfolio 2');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_portfolio_3', 'Posicionamento - portfolio 3');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_portfolio_4', 'Posicionamento - portfolio 4');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_portfolio_5', 'Posicionamento - portfolio 5');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_portfolio_6', 'Posicionamento - portfolio 6');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_portfolio_7', 'Posicionamento - portfolio 7');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_portfolio_8', 'Posicionamento - portfolio 8');
fm_customizer_image($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_portfolio_9', 'Posicionamento - portfolio 9');
fm_customizer_url($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_primary_url', 'Posicionamento - link Agendar Diagnostico', '');
fm_customizer_url($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_secondary_url', 'Posicionamento - link Falar com a Pulsar', '');
fm_customizer_url($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_portfolio_url', 'Posicionamento - link Ver portfolio', '#portfolio-posicionamento');
fm_customizer_url($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_brilho_url', 'O Brilho Certo - link', '');
fm_customizer_url($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_instagram_url', 'Assessoria Instagram - link', '');
fm_customizer_url($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_linkedin_url', 'LinkedIn Estrategico - link', '');
fm_customizer_url($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_toca_url', 'Saia da Toca - link', '');
fm_customizer_url($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_presence_url', 'Gestao de Presenca Digital - link', '');
fm_customizer_url($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_library_url', 'Biblioteca de desenvolvimento - link', 'https://pulsarmarcas.gfstudiosalvador.com.br/inicio');
fm_customizer_text($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_brilho_price', 'O Brilho Certo - valor', 'A partir de R$ XXX');
fm_customizer_text($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_instagram_price', 'Assessoria Instagram - valor', 'A partir de R$ XXX/mes');
fm_customizer_text($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_linkedin_price', 'LinkedIn Estrategico - valor', 'A partir de R$ XXX');
fm_customizer_text($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_toca_price', 'Saia da Toca - valor', 'A partir de R$ XXX');
fm_customizer_text($wp_customize, 'fm_pulsar_positioning', 'fm_positioning_presence_price', 'Gestao de Presenca Digital - valor', 'A partir de R$ XXX/mes');
fm_customizer_image($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_hero_image', 'Cometa - imagem da hero');
fm_customizer_image($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_ecosystem_image', 'Cometa - imagem ecossistema');
fm_customizer_image($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_case_1_image', 'Cometa - case 1');
fm_customizer_image($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_case_2_image', 'Cometa - case 2');
fm_customizer_image($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_case_3_image', 'Cometa - case 3');
fm_customizer_image($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_case_4_image', 'Cometa - case 4');
fm_customizer_image($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_case_5_image', 'Cometa - case mobile');
fm_customizer_url($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_primary_url', 'Cometa - link Agendar Diagnostico', '');
fm_customizer_url($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_secondary_url', 'Cometa - link Falar com a Pulsar', '');
fm_customizer_url($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_portfolio_url', 'Cometa - link Ver portfolio', '#portfolio-cometa');
fm_customizer_url($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_base_url', 'Cometa - link Base Digital', '');
fm_customizer_url($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_landing_url', 'Cometa - link Landing Pages', '');
fm_customizer_url($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_interactive_url', 'Cometa - link Experiencias Interativas', '');
fm_customizer_url($wp_customize, 'fm_pulsar_cometa', 'fm_cometa_commercial_url', 'Cometa - link Estruturas Comerciais', '');
}
add_action('customize_register', 'fm_customize_register');
function fm_open_graph_tags() {
if (!is_singular()) {
return;
}
$post_id = get_queried_object_id();
if (!$post_id) {
return;
}
$title = wp_strip_all_tags(get_the_title($post_id));
$description = has_excerpt($post_id)
? get_the_excerpt($post_id)
: wp_trim_words(wp_strip_all_tags(get_post_field('post_content', $post_id)), 32);
$description = wp_strip_all_tags($description);
$url = get_permalink($post_id);
$type = is_singular('post') ? 'article' : 'website';
$image_id = get_post_thumbnail_id($post_id);
$image = $image_id ? wp_get_attachment_image_src($image_id, 'full') : false;
echo "\n<!-- Fernanda Menezes Open Graph -->\n";
printf("<meta property=\"og:type\" content=\"%s\">\n", esc_attr($type));
printf("<meta property=\"og:title\" content=\"%s\">\n", esc_attr($title));
printf("<meta property=\"og:description\" content=\"%s\">\n", esc_attr($description));
printf("<meta property=\"og:url\" content=\"%s\">\n", esc_url($url));
printf("<meta property=\"og:site_name\" content=\"%s\">\n", esc_attr(get_bloginfo('name')));
if ($image) {
printf("<meta property=\"og:image\" content=\"%s\">\n", esc_url($image[0]));
printf("<meta property=\"og:image:secure_url\" content=\"%s\">\n", esc_url($image[0]));
printf("<meta property=\"og:image:width\" content=\"%d\">\n", absint($image[1]));
printf("<meta property=\"og:image:height\" content=\"%d\">\n", absint($image[2]));
}
printf("<meta name=\"twitter:card\" content=\"%s\">\n", $image ? 'summary_large_image' : 'summary');
printf("<meta name=\"twitter:title\" content=\"%s\">\n", esc_attr($title));
printf("<meta name=\"twitter:description\" content=\"%s\">\n", esc_attr($description));
if ($image) {
printf("<meta name=\"twitter:image\" content=\"%s\">\n", esc_url($image[0]));
}
echo "<!-- /Fernanda Menezes Open Graph -->\n";
}
add_action('wp_head', 'fm_open_graph_tags', 1);
function fm_mod($key) {
$defaults = fm_defaults();
return get_theme_mod($key, $defaults[$key] ?? '');
}
function fm_text($key) {
return wp_kses_post(fm_mod($key));
}
function fm_split_title($key) {
$value = fm_text($key);
$parts = preg_split('/<br\s*\/?>/i', $value, 2);
if (count($parts) < 2) {
return $value;
}
return $parts[0] . '<br><span class="accent">' . $parts[1] . '</span>';
}
function fm_link($key, $fallback = '#') {
$defaults = fm_defaults();
$url = get_theme_mod($key, $defaults[$key] ?? $fallback);
return esc_url($url ?: $fallback);
}
function fm_button_link($key, $fallback_key = '', $fallback = '#') {
$url = fm_mod($key);
if ($url) {
return esc_url($url);
}
if ($fallback_key) {
return fm_link($fallback_key, $fallback);
}
return esc_url($fallback);
}
function fm_image_style($key, $css_var) {
$id = absint(get_theme_mod($key));
if (!$id) {
return '';
}
$src = wp_get_attachment_image_url($id, 'full');
if (!$src) {
return '';
}
return sprintf(' style="%s: url(%s);"', esc_attr($css_var), esc_url($src));
}
function fm_image_vars_style($vars) {
$styles = array();
foreach ($vars as $css_var => $image) {
$value = is_array($image)
? fm_image_css_value($image[0], $image[1] ?? '')
: fm_image_css_value($image);
if ($value) {
$styles[] = esc_attr($css_var) . ': ' . $value;
}
}
if (!$styles) {
return '';
}
return ' style="' . implode('; ', $styles) . ';"';
}
function fm_image_url($key, $fallback = '') {
$id = absint(get_theme_mod($key));
if ($id) {
$src = wp_get_attachment_image_url($id, 'full');
if ($src) {
return esc_url($src);
}
}
if ($fallback) {
return esc_url(get_template_directory_uri() . $fallback);
}
return '';
}