174 lines
7.9 KiB
PHP
174 lines
7.9 KiB
PHP
<?php
|
|
/**
|
|
* Theme setting defaults and reusable portfolio content.
|
|
*
|
|
* @package Gustavo_Portfolio
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
/**
|
|
* Return default settings without writing options to the database.
|
|
*
|
|
* @return array<string, mixed>
|
|
*/
|
|
function gustavoo_portfolio_get_defaults() {
|
|
$defaults = array(
|
|
'hero_eyebrow' => __( 'Desenvolvimento de ponta a ponta', 'gustavoo-portfolio' ),
|
|
'hero_title' => __( 'Transformo ideias em produtos digitais sólidos.', 'gustavoo-portfolio' ),
|
|
'hero_description' => __( 'Gustavo, Desenvolvedor Full Stack Sênior. Web, mobile, infraestrutura e automação para tirar projetos do papel e fazê-los crescer.', 'gustavoo-portfolio' ),
|
|
'hero_primary_label' => __( 'Ver projetos', 'gustavoo-portfolio' ),
|
|
'hero_primary_url' => '#projetos',
|
|
'hero_secondary_label' => __( 'Fale comigo', 'gustavoo-portfolio' ),
|
|
'hero_secondary_url' => '#contato',
|
|
'about_eyebrow' => __( 'Sobre mim', 'gustavoo-portfolio' ),
|
|
'about_title' => __( 'Responsabilidade técnica do planejamento à produção.', 'gustavoo-portfolio' ),
|
|
'about_text' => __( 'Mais do que escrever código, meu objetivo é garantir que seu projeto saia do papel e funcione exatamente como planejado. Assumo a responsabilidade técnica de ponta a ponta para que você foque no que importa: crescer.', 'gustavoo-portfolio' ),
|
|
'about_secondary_text' => __( 'Já participei do desenvolvimento e lançamento de múltiplos projetos digitais, atuando da arquitetura técnica à divulgação e ao crescimento das plataformas. Essa combinação de visão técnica e entendimento de mercado orienta cada entrega.', 'gustavoo-portfolio' ),
|
|
'services_eyebrow' => __( 'Como posso ajudar', 'gustavoo-portfolio' ),
|
|
'services_title' => __( 'Soluções completas para produtos digitais.', 'gustavoo-portfolio' ),
|
|
'services_description' => __( 'Estratégia, código e infraestrutura trabalhando juntos para criar experiências rápidas, seguras e preparadas para evoluir.', 'gustavoo-portfolio' ),
|
|
'projects_eyebrow' => __( 'Portfólio', 'gustavoo-portfolio' ),
|
|
'projects_title' => __( 'Projetos selecionados', 'gustavoo-portfolio' ),
|
|
'projects_text' => __( 'Uma seleção de produtos, experiências e soluções que ajudei a colocar no mundo.', 'gustavoo-portfolio' ),
|
|
'projects_limit' => 6,
|
|
'blog_eyebrow' => __( 'Blog', 'gustavoo-portfolio' ),
|
|
'blog_title' => __( 'Código, produto e bastidores', 'gustavoo-portfolio' ),
|
|
'blog_text' => __( 'Análises práticas sobre desenvolvimento, infraestrutura, automação e crescimento de produtos digitais.', 'gustavoo-portfolio' ),
|
|
'blog_limit' => 4,
|
|
'contact_eyebrow' => __( 'Vamos conversar', 'gustavoo-portfolio' ),
|
|
'contact_heading' => __( 'Tem um projeto em mente?', 'gustavoo-portfolio' ),
|
|
'contact_text' => __( 'Conte o que você precisa construir ou melhorar. Responderei com os próximos passos para transformar a ideia em uma entrega concreta.', 'gustavoo-portfolio' ),
|
|
'contact_form_id' => 0,
|
|
'newsletter_eyebrow' => __( 'Newsletter', 'gustavoo-portfolio' ),
|
|
'newsletter_heading' => __( 'Ideias úteis, direto na sua caixa de entrada.', 'gustavoo-portfolio' ),
|
|
'newsletter_text' => __( 'Receba conteúdos sobre desenvolvimento, produto, infraestrutura e automação. Sem ruído e sem spam.', 'gustavoo-portfolio' ),
|
|
'newsletter_form_id' => 0,
|
|
'email' => (string) get_option( 'admin_email', '' ),
|
|
'whatsapp' => '',
|
|
'whatsapp_message' => __( 'Olá! Gostaria de falar sobre um projeto.', 'gustavoo-portfolio' ),
|
|
'github_url' => '',
|
|
'linkedin_url' => '',
|
|
'instagram_url' => '',
|
|
'projects_archive_url' => '',
|
|
'availability_label' => __( 'Disponível para novos projetos', 'gustavoo-portfolio' ),
|
|
);
|
|
|
|
/**
|
|
* Filter theme defaults before saved settings are merged.
|
|
*
|
|
* @param array<string, mixed> $defaults Default settings.
|
|
*/
|
|
return apply_filters( 'gustavoo_portfolio_defaults', $defaults );
|
|
}
|
|
|
|
/**
|
|
* Return the saved theme settings merged with safe local defaults.
|
|
*
|
|
* @return array<string, mixed>
|
|
*/
|
|
function gustavoo_portfolio_get_settings() {
|
|
$settings = get_option( 'gustavoo_portfolio_settings', array() );
|
|
|
|
if ( ! is_array( $settings ) ) {
|
|
$settings = array();
|
|
}
|
|
|
|
return wp_parse_args( $settings, gustavoo_portfolio_get_defaults() );
|
|
}
|
|
|
|
/**
|
|
* Read one theme setting. A few aliases preserve compatibility with early builds.
|
|
*
|
|
* @param string $key Setting key.
|
|
* @param mixed $fallback Optional fallback.
|
|
* @return mixed
|
|
*/
|
|
function gustavoo_portfolio_get_setting( $key, $fallback = null ) {
|
|
$customizer_key = 'gustavoo_portfolio_' . $key;
|
|
$customizer_values = get_theme_mods();
|
|
|
|
if ( is_array( $customizer_values ) && array_key_exists( $customizer_key, $customizer_values ) ) {
|
|
return $customizer_values[ $customizer_key ];
|
|
}
|
|
|
|
$settings = gustavoo_portfolio_get_settings();
|
|
$aliases = array(
|
|
'hero_eyebrow' => array( 'hero_kicker' ),
|
|
'hero_description' => array( 'hero_text' ),
|
|
'contact_form_id' => array( 'fluent_contact_form_id', 'lead_form_id' ),
|
|
'newsletter_form_id' => array( 'fluent_newsletter_form_id', 'fluentcrm_form_id' ),
|
|
'contact_heading' => array( 'contact_title' ),
|
|
'newsletter_heading' => array( 'newsletter_title' ),
|
|
);
|
|
|
|
if ( array_key_exists( $key, $settings ) && '' !== $settings[ $key ] && null !== $settings[ $key ] ) {
|
|
return $settings[ $key ];
|
|
}
|
|
|
|
if ( isset( $aliases[ $key ] ) ) {
|
|
foreach ( $aliases[ $key ] as $alias ) {
|
|
if ( array_key_exists( $alias, $settings ) && '' !== $settings[ $alias ] && null !== $settings[ $alias ] ) {
|
|
return $settings[ $alias ];
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( null !== $fallback ) {
|
|
return $fallback;
|
|
}
|
|
|
|
$defaults = gustavoo_portfolio_get_defaults();
|
|
|
|
return $defaults[ $key ] ?? '';
|
|
}
|
|
|
|
/**
|
|
* Return the service cards used by the front page.
|
|
*
|
|
* @return array<int, array<string, string>>
|
|
*/
|
|
function gustavoo_portfolio_get_services() {
|
|
$services = array(
|
|
array(
|
|
'number' => '01',
|
|
'title' => __( 'Web, Mobile e E-commerce', 'gustavoo-portfolio' ),
|
|
'description' => __( 'Sites institucionais, aplicações para iOS e Android, softwares desktop, lojas e marketplaces personalizados com foco em experiência e conversão.', 'gustavoo-portfolio' ),
|
|
),
|
|
array(
|
|
'number' => '02',
|
|
'title' => __( 'WordPress avançado', 'gustavoo-portfolio' ),
|
|
'description' => __( 'Temas e plugins sob medida, integrações específicas, recuperação de sites e otimização para Core Web Vitals.', 'gustavoo-portfolio' ),
|
|
),
|
|
array(
|
|
'number' => '03',
|
|
'title' => __( 'Infraestrutura e servidores', 'gustavoo-portfolio' ),
|
|
'description' => __( 'Ambientes Linux, VPS e servidores dedicados configurados para manter aplicações estáveis, rápidas, seguras e escaláveis.', 'gustavoo-portfolio' ),
|
|
),
|
|
array(
|
|
'number' => '04',
|
|
'title' => __( 'Automação e integrações', 'gustavoo-portfolio' ),
|
|
'description' => __( 'APIs e fluxos com n8n para conectar sistemas, organizar dados e eliminar tarefas operacionais repetitivas.', 'gustavoo-portfolio' ),
|
|
),
|
|
array(
|
|
'number' => '05',
|
|
'title' => __( 'Games e experiências interativas', 'gustavoo-portfolio' ),
|
|
'description' => __( 'Jogos 2D e 3D para celulares, computadores e navegadores, incluindo ranking, multiplayer e compras dentro do jogo.', 'gustavoo-portfolio' ),
|
|
),
|
|
array(
|
|
'number' => '06',
|
|
'title' => __( 'Divulgação e crescimento', 'gustavoo-portfolio' ),
|
|
'description' => __( 'Estratégias de conteúdo, comunidades, parcerias e mídia paga para aproximar produtos digitais do público certo.', 'gustavoo-portfolio' ),
|
|
),
|
|
);
|
|
|
|
/**
|
|
* Filter the service cards shown on the front page.
|
|
*
|
|
* @param array<int, array<string, string>> $services Service cards.
|
|
*/
|
|
return apply_filters( 'gustavoo_portfolio_services', $services );
|
|
}
|