File: /var/www/html/wp-content/mu-plugins/ethnic-industry-pages.php
<?php
/**
* Plugin Name: Ethnic Industry Pages
* Description: Adds reusable industry landing pages with industry-specific content, proof, and conversion sections.
* Version: 1.0.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( ! defined( 'ETHNIC_INDUSTRY_PAGES_VERSION' ) ) {
define( 'ETHNIC_INDUSTRY_PAGES_VERSION', '20260416.5' );
}
if ( ! function_exists( 'ethnic_industry_pages_base_slug' ) ) {
function ethnic_industry_pages_base_slug() {
return 'industries';
}
}
if ( ! function_exists( 'ethnic_industry_pages_archive_url' ) ) {
function ethnic_industry_pages_archive_url() {
return home_url( '/' . trim( ethnic_industry_pages_base_slug(), '/' ) . '/' );
}
}
if ( ! function_exists( 'ethnic_industry_pages_url' ) ) {
function ethnic_industry_pages_url( $slug = '' ) {
$slug = trim( sanitize_title( (string) $slug ), '/' );
if ( '' === $slug ) {
return ethnic_industry_pages_archive_url();
}
return home_url( '/' . trim( ethnic_industry_pages_base_slug(), '/' ) . '/' . $slug . '/' );
}
}
if ( ! function_exists( 'ethnic_industry_pages_contact_url' ) ) {
function ethnic_industry_pages_contact_url( $args = array() ) {
return ethnic_consultation_route_contact_url( $args, home_url( '/contact-us/' ) );
}
}
if ( ! function_exists( 'ethnic_industry_pages_case_studies_url' ) ) {
function ethnic_industry_pages_case_studies_url( $industry_slug = '' ) {
$industry_slug = sanitize_title( (string) $industry_slug );
if ( '' !== $industry_slug && function_exists( 'ethnic_case_studies_archive_url' ) ) {
return ethnic_case_studies_archive_url(
array(
'industry' => array( $industry_slug ),
)
);
}
if ( function_exists( 'ethnic_case_studies_archive_url' ) ) {
return ethnic_case_studies_archive_url();
}
return home_url( '/case-studies/' );
}
}
if ( ! function_exists( 'ethnic_industry_pages_placeholder_image_url' ) ) {
function ethnic_industry_pages_placeholder_image_url() {
if ( function_exists( 'ethnic_case_studies_placeholder_image_url' ) ) {
return ethnic_case_studies_placeholder_image_url();
}
return content_url( 'uploads/2026/03/placeholder-1-768x512.png' );
}
}
if ( ! function_exists( 'ethnic_industry_pages_text' ) ) {
function ethnic_industry_pages_text( $value, $fallback = '' ) {
$value = is_scalar( $value ) ? trim( wp_strip_all_tags( (string) $value ) ) : '';
return '' !== $value ? $value : $fallback;
}
}
if ( ! function_exists( 'ethnic_industry_pages_trim' ) ) {
function ethnic_industry_pages_trim( $text, $words = 24, $fallback = '' ) {
$text = ethnic_industry_pages_text( $text, $fallback );
if ( '' === $text ) {
return '';
}
return wp_trim_words( $text, max( 10, (int) $words ), '…' );
}
}
if ( ! function_exists( 'ethnic_industry_pages_content_meta_key' ) ) {
function ethnic_industry_pages_content_meta_key( $field ) {
return 'ethnic_industry_page_' . sanitize_key( (string) $field );
}
}
if ( ! function_exists( 'ethnic_industry_pages_split_list' ) ) {
function ethnic_industry_pages_split_list( $value ) {
$value = is_scalar( $value ) ? trim( (string) $value ) : '';
if ( '' === $value ) {
return array();
}
return array_values(
array_filter(
array_map(
static function ( $item ) {
return ethnic_industry_pages_text( $item );
},
explode( ',', $value )
)
)
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_parse_lines' ) ) {
function ethnic_industry_pages_parse_lines( $value ) {
$value = is_scalar( $value ) ? trim( (string) $value ) : '';
if ( '' === $value ) {
return array();
}
$lines = preg_split( '/\r\n|\r|\n/', $value );
$lines = is_array( $lines ) ? $lines : array();
return array_values(
array_filter(
array_map(
static function ( $line ) {
return ethnic_industry_pages_text( $line );
},
$lines
)
)
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_parse_paragraphs' ) ) {
function ethnic_industry_pages_parse_paragraphs( $value ) {
$value = is_scalar( $value ) ? trim( (string) $value ) : '';
if ( '' === $value ) {
return array();
}
$paragraphs = preg_split( "/(?:\r\n|\r|\n){2,}/", $value );
$paragraphs = is_array( $paragraphs ) ? $paragraphs : array();
return array_values(
array_filter(
array_map(
static function ( $paragraph ) {
return ethnic_industry_pages_text( preg_replace( "/(?:\r\n|\r|\n)+/", ' ', (string) $paragraph ) );
},
$paragraphs
)
)
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_parse_structured_rows' ) ) {
function ethnic_industry_pages_parse_structured_rows( $value, $keys ) {
$keys = array_values( array_filter( array_map( 'sanitize_key', (array) $keys ) ) );
if ( empty( $keys ) ) {
return array();
}
$rows = array();
foreach ( ethnic_industry_pages_parse_lines( $value ) as $line ) {
$parts = explode( '|', $line, count( $keys ) );
$parts = array_map( 'trim', $parts );
$parts = array_pad( $parts, count( $keys ), '' );
$row = array();
foreach ( $keys as $index => $key ) {
$row[ $key ] = ethnic_industry_pages_text( $parts[ $index ] );
}
if ( array_filter( $row ) ) {
$rows[] = $row;
}
}
return $rows;
}
}
if ( ! function_exists( 'ethnic_industry_pages_page_meta_text' ) ) {
function ethnic_industry_pages_page_meta_text( $post_id, $field, $fallback = '' ) {
return ethnic_industry_pages_text( get_post_meta( (int) $post_id, ethnic_industry_pages_content_meta_key( $field ), true ), $fallback );
}
}
if ( ! function_exists( 'ethnic_industry_pages_page_meta_rows' ) ) {
function ethnic_industry_pages_page_meta_rows( $post_id, $field, $keys ) {
return ethnic_industry_pages_parse_structured_rows(
get_post_meta( (int) $post_id, ethnic_industry_pages_content_meta_key( $field ), true ),
$keys
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_archive_source_page' ) ) {
function ethnic_industry_pages_archive_source_page() {
$page = get_page_by_path( ethnic_industry_pages_base_slug(), OBJECT, 'page' );
return $page instanceof WP_Post ? $page : null;
}
}
if ( ! function_exists( 'ethnic_industry_pages_source_page' ) ) {
function ethnic_industry_pages_source_page( $slug = '' ) {
$slug = sanitize_title( (string) $slug );
if ( '' === $slug ) {
return ethnic_industry_pages_archive_source_page();
}
$page = get_page_by_path( ethnic_industry_pages_base_slug() . '/' . $slug, OBJECT, 'page' );
return $page instanceof WP_Post ? $page : null;
}
}
if ( ! function_exists( 'ethnic_industry_pages_source_page_editor_content' ) ) {
function ethnic_industry_pages_source_page_editor_content( $post ) {
$post = get_post( $post );
if ( ! ( $post instanceof WP_Post ) ) {
return '';
}
$content = trim( (string) $post->post_content );
if ( '' === $content ) {
return '';
}
return apply_filters( 'the_content', $content );
}
}
if ( ! function_exists( 'ethnic_industry_pages_source_page_image' ) ) {
function ethnic_industry_pages_source_page_image( $post, $fallback_url, $fallback_alt ) {
$post = get_post( $post );
if ( ! ( $post instanceof WP_Post ) ) {
return array(
'url' => $fallback_url,
'alt' => $fallback_alt,
);
}
$image_id = get_post_thumbnail_id( $post );
$image_url = $image_id ? wp_get_attachment_image_url( $image_id, 'full' ) : '';
$image_alt = $image_id ? get_post_meta( $image_id, '_wp_attachment_image_alt', true ) : '';
return array(
'url' => $image_url ? $image_url : $fallback_url,
'alt' => ethnic_industry_pages_text( $image_alt, $fallback_alt ),
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_service_catalog' ) ) {
function ethnic_industry_pages_service_catalog() {
return array(
'ecommerce-development' => array(
'title' => 'eCommerce Development',
'candidates' => array( 'services/ecommerce-development', 'services' ),
),
'app-development' => array(
'title' => 'App Development',
'candidates' => array( 'services/app-development', 'services/mobile-app-development', 'services' ),
),
'web-development' => array(
'title' => 'Web Development',
'candidates' => array( 'services/web-app-development', 'services', 'services/app-development/web-app-development' ),
),
'ui-ux-design' => array(
'title' => 'UI/UX Design',
'candidates' => array( 'services/ui-ux-design', 'services' ),
),
'integrations' => array(
'title' => 'Integrations',
'candidates' => array( 'services', 'contact-us' ),
),
'support-maintenance' => array(
'title' => 'Support & Maintenance',
'candidates' => array( 'services/app-development/app-maintenance-support', 'services', 'contact-us' ),
),
'custom-software-development' => array(
'title' => 'Custom Software Development',
'candidates' => array( 'services/web-app-development', 'services/app-development', 'services' ),
),
'performance-optimization' => array(
'title' => 'Performance Optimization',
'candidates' => array( 'services', 'contact-us' ),
),
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_service_url' ) ) {
function ethnic_industry_pages_service_url( $service_key, $industry_slug = '' ) {
$catalog = ethnic_industry_pages_service_catalog();
if ( empty( $catalog[ $service_key ] ) ) {
return ethnic_industry_pages_contact_url(
array(
'industry' => sanitize_title( (string) $industry_slug ),
)
);
}
$candidates = isset( $catalog[ $service_key ]['candidates'] ) ? (array) $catalog[ $service_key ]['candidates'] : array();
if ( function_exists( 'ethnic_services_page_pillar_url' ) ) {
return ethnic_services_page_pillar_url(
$candidates,
array(
'industry' => sanitize_title( (string) $industry_slug ),
'service' => sanitize_title( (string) $service_key ),
)
);
}
foreach ( $candidates as $candidate ) {
$candidate = trim( (string) $candidate, '/' );
if ( '' === $candidate ) {
continue;
}
$page = get_page_by_path( $candidate );
if ( $page instanceof WP_Post && 'publish' === get_post_status( $page ) ) {
return get_permalink( $page );
}
}
return ethnic_industry_pages_contact_url(
array(
'industry' => sanitize_title( (string) $industry_slug ),
'service' => sanitize_title( (string) $service_key ),
)
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_supported_data' ) ) {
function ethnic_industry_pages_supported_data() {
return array(
'retail-ecommerce-solutions' => array(
'name' => 'Retail & eCommerce',
'page_title' => 'Retail & eCommerce Solutions',
'accent' => '#ff7d74',
'index_copy' => 'Commerce platforms, omnichannel journeys, retail apps, AI-enhanced experiences, and integrations designed for modern retail growth.',
'eyebrow_label' => 'Retail & eCommerce Industry Solutions',
'hero_title' => 'Retail & eCommerce Solutions',
'hero_subtitle' => 'We help retail and eCommerce businesses build scalable digital commerce experiences, modernize operations, improve customer journeys, and support long-term growth through connected platforms, mobile products, integrations, and ongoing optimization.',
'hero_points' => array(
'Commerce platforms built for growth',
'Omnichannel customer experiences',
'Integrations, support, and optimization',
),
'hero_visual_note' => 'Commerce growth stack',
'hero_visual_caption' => 'Storefront, analytics, mobile',
'overview_section_title' => 'Digital retail delivery built around customer expectations, catalog complexity, and operational scale.',
'overview' => array(
'Retail businesses need seamless experiences across online and offline touchpoints. Customers expect product discovery, promotions, checkout, support, and post-purchase journeys to feel connected whether they are shopping on desktop, mobile, or through broader omnichannel experiences.',
'eCommerce brands also need strong platform performance, integrations, and customer-focused UX to support acquisition, conversion, repeat purchase, and campaign execution. The stack has to handle products, inventory, orders, pricing, promotions, and customer data without adding friction for internal teams.',
'That is why retail and eCommerce growth depends on more than just launching a storefront. It requires digital infrastructure that can support scale, merchandising agility, personalization, mobile convenience, and the operational systems behind the commerce experience.',
),
'highlights' => array(
array(
'title' => 'Customer Experience Expectations',
'copy' => 'Shoppers expect convenience, speed, personalization, and a consistent experience across every touchpoint.',
),
array(
'title' => 'Commerce Operations Complexity',
'copy' => 'Products, orders, inventory, promotions, and fulfillment all depend on better-connected digital systems.',
),
array(
'title' => 'Growth & Scalability Needs',
'copy' => 'Campaigns, seasonal peaks, and catalog growth require platforms that can scale without fragile workarounds.',
),
array(
'title' => 'Omnichannel Opportunity',
'copy' => 'Connected storefronts, mobile apps, marketplaces, and retail operations create stronger customer journeys.',
),
),
'challenges_section_title' => 'Retail digitization challenges that slow growth, conversions, and operational clarity.',
'challenges' => array(
array(
'badge' => 'LEG',
'title' => 'Legacy commerce systems',
'copy' => 'Older platforms make it harder to launch faster storefront improvements, introduce new journeys, or modernize the underlying commerce stack.',
),
array(
'badge' => 'INV',
'title' => 'Inventory and order complexity',
'copy' => 'Retail teams struggle when stock, orders, fulfillment, and customer updates are not clearly synchronized across systems.',
),
array(
'badge' => 'UX',
'title' => 'Fragmented customer journeys',
'copy' => 'Discovery, checkout, account, loyalty, and post-purchase experiences often feel disconnected across channels and devices.',
),
array(
'badge' => 'MOB',
'title' => 'Poor mobile shopping experience',
'copy' => 'Mobile users expect effortless browsing and checkout, but weak mobile UX quickly affects engagement and conversion.',
),
array(
'badge' => 'PERF',
'title' => 'Slow site performance',
'copy' => 'Performance issues reduce campaign efficiency, hurt customer confidence, and make high-traffic trading periods harder to manage.',
),
array(
'badge' => 'INT',
'title' => 'Disconnected business tools',
'copy' => 'Commerce platforms lose value when ERP, CRM, PIM, shipping, analytics, and support systems do not share data cleanly.',
),
array(
'badge' => 'MRCH',
'title' => 'Manual merchandising workflows',
'copy' => 'Campaign launches, promotions, and catalog updates become slower when internal tools are hard to use or too dependent on manual processes.',
),
array(
'badge' => 'SCL',
'title' => 'Scaling issues during growth',
'copy' => 'As product ranges, teams, and channels expand, weak architecture and limited automation create delivery bottlenecks.',
),
),
'services_section_kicker' => 'Commerce Platform Builds',
'services_section_title' => 'Commerce platform builds and modernization work shaped around merchandising, checkout, and scalable growth.',
'services' => array(
array(
'title' => 'Adobe Commerce / Magento',
'copy' => 'Support large catalogs, complex pricing, promotions, and deeper integrations with commerce experiences built for scale and flexibility.',
'url' => ethnic_industry_pages_service_url( 'ecommerce-development', 'retail-ecommerce-solutions' ),
'tags' => array( 'New store builds', 'Replatforming', 'Scalable commerce architecture' ),
),
array(
'title' => 'Shopify',
'copy' => 'Build and optimize storefronts that balance speed to market, conversion-focused UX, and the integrations needed for growing commerce operations.',
'url' => ethnic_industry_pages_service_url( 'ecommerce-development', 'retail-ecommerce-solutions' ),
'tags' => array( 'Growth storefronts', 'Theme and UX refinement', 'Operational integrations' ),
),
array(
'title' => 'WooCommerce',
'copy' => 'Create flexible commerce experiences for content-rich brands that need cleaner merchandising, smoother checkout, and easier publishing control.',
'url' => ethnic_industry_pages_service_url( 'ecommerce-development', 'retail-ecommerce-solutions' ),
'tags' => array( 'Content-driven commerce', 'Checkout improvement', 'Store optimization' ),
),
array(
'title' => 'Custom Commerce Builds',
'copy' => 'Design bespoke commerce experiences where standard platforms need stronger product logic, workflow support, or differentiated customer journeys.',
'url' => ethnic_industry_pages_service_url( 'custom-software-development', 'retail-ecommerce-solutions' ),
'tags' => array( 'Custom UX', 'Connected workflows', 'Tailored architecture' ),
),
),
'omnichannel_section_kicker' => 'Omnichannel Commerce',
'omnichannel_section_title' => 'Connected commerce experiences across website, mobile, marketplace, and retail operations.',
'omnichannel_intro' => array(
'Omnichannel commerce works when products, inventory, customer data, promotions, and support journeys stay consistent across touchpoints. That means connecting storefront, mobile, marketplace activity, campaigns, and operational systems into a more unified model.',
'We help retail businesses reduce friction across channels so customers get a cleaner experience and internal teams work with better visibility, coordination, and data confidence.',
),
'omnichannel_points' => array(
array(
'title' => 'Unified product and inventory visibility',
'copy' => 'Keep product, stock, and availability information more consistent across storefronts, apps, marketplaces, and internal systems.',
),
array(
'title' => 'Connected customer experience',
'copy' => 'Support smoother journeys across browsing, buying, loyalty, support, and repeat purchase activity.',
),
array(
'title' => 'Cross-channel engagement',
'copy' => 'Coordinate promotions, campaigns, and merchandising actions across the channels customers actually use.',
),
array(
'title' => 'Better operational coordination',
'copy' => 'Improve the handoff between commerce, fulfillment, support, and customer-facing teams with stronger systems alignment.',
),
),
'apps_section_kicker' => 'Mobile Apps For Retail',
'apps_section_title' => 'Mobile products that support shopping, loyalty, convenience, and operational efficiency for growing retail brands.',
'app_use_cases' => array(
array(
'title' => 'Shopping apps',
'copy' => 'Deliver faster product discovery, browsing, checkout, and account experiences for customers who prefer mobile-first journeys.',
),
array(
'title' => 'Loyalty apps',
'copy' => 'Create retention-focused experiences around rewards, points, offers, and repeat engagement across the customer lifecycle.',
),
array(
'title' => 'Order tracking apps',
'copy' => 'Improve convenience and post-purchase confidence with clearer status visibility, notifications, and support touchpoints.',
),
array(
'title' => 'Store operations apps',
'copy' => 'Support internal retail teams with mobile tools for inventory checks, store assistance, and day-to-day operational workflows.',
),
array(
'title' => 'Customer engagement apps',
'copy' => 'Use mobile as a stronger engagement channel for promotions, recommendations, and personalized brand interaction.',
),
array(
'title' => 'B2B ordering apps',
'copy' => 'Provide wholesale, distributor, or partner buyers with mobile-friendly ordering and account workflows where speed matters.',
),
),
'ai_section_kicker' => 'AI Use Cases In Retail',
'ai_section_title' => 'Practical AI capabilities that support better shopping experiences, operational efficiency, and smarter decision-making.',
'ai_intro' => array(
'AI is most valuable in retail when it helps teams improve customer experience, reduce manual effort, and make better merchandising or operational decisions. The focus should stay practical, measurable, and aligned with real commerce workflows.',
),
'ai_use_cases' => array(
array(
'title' => 'Product recommendations',
'copy' => 'Surface more relevant products to increase conversion potential, average order value, and repeat engagement.',
),
array(
'title' => 'Personalized shopping experiences',
'copy' => 'Adapt content, offers, and journeys based on user behavior, context, and customer lifecycle signals.',
),
array(
'title' => 'Search enhancement',
'copy' => 'Improve on-site search with better relevance, intent handling, and product discovery support.',
),
array(
'title' => 'Customer support automation',
'copy' => 'Handle common support questions faster while giving teams better tools for triage and escalation.',
),
array(
'title' => 'Merchandising insights',
'copy' => 'Support category, campaign, and product decisions with stronger visibility into patterns and performance.',
),
array(
'title' => 'Demand or trend analysis',
'copy' => 'Use data signals to identify product trends, demand shifts, and planning opportunities earlier.',
),
array(
'title' => 'Content generation assistance',
'copy' => 'Help teams accelerate product copy, campaign drafts, and enrichment workflows without replacing editorial control.',
),
array(
'title' => 'Smart reporting',
'copy' => 'Make dashboards easier to interpret and turn raw performance data into clearer decision support.',
),
),
'support_section_kicker' => 'DevOps And Integration Support',
'support_section_title' => 'Backend support, API connectivity, and technical operations that keep commerce systems stable and scalable.',
'support_intro' => array(
'Retail and eCommerce platforms rely on more than the storefront. They need dependable integrations, deployment care, environment management, monitoring, and ongoing technical support to handle campaign pressure, platform changes, and operational complexity.',
),
'support_services' => array(
array(
'title' => 'ERP / CRM / PIM integration',
'copy' => 'Connect commerce platforms with critical business systems so products, customers, orders, and workflows stay aligned.',
),
array(
'title' => 'Payments & shipping',
'copy' => 'Support reliable payment, fulfillment, and shipping integrations that fit the commercial model and customer promise.',
),
array(
'title' => 'API connectivity',
'copy' => 'Extend storefronts and operational tools with API-driven integrations that keep the ecosystem more flexible.',
),
array(
'title' => 'Hosting & deployment support',
'copy' => 'Improve release quality, environment control, and delivery confidence with structured deployment workflows.',
),
array(
'title' => 'Monitoring & performance',
'copy' => 'Track uptime, detect issues earlier, and improve responsiveness where traffic, campaigns, and conversion matter.',
),
array(
'title' => 'Ongoing technical maintenance',
'copy' => 'Support day-to-day platform health, patching, optimization, and roadmap execution after launch.',
),
),
'technology_groups' => array(),
'faqs' => array(),
'case_studies_section_title' => 'Relevant retail and eCommerce case studies that show delivery depth across platforms, channels, and connected operations.',
'case_study_placeholders' => array(
array(
'title' => 'Adobe Commerce Transformation For Multi-Channel Retail',
'summary' => 'Challenge: a fragmented commerce stack limited merchandising speed and customer experience. Solution: a modernized Adobe Commerce delivery model with clearer journeys and stronger integrations. Outcome: better platform readiness for growth.',
'services' => array( 'eCommerce Development', 'Integrations' ),
'platforms' => array( 'Adobe Commerce' ),
),
array(
'title' => 'Shopify Growth Experience For A Retail Brand',
'summary' => 'Challenge: storefront UX and campaign performance were not supporting conversion goals. Solution: a refined Shopify experience with stronger merchandising and mobile usability. Outcome: a cleaner growth foundation.',
'services' => array( 'UI/UX Design', 'eCommerce Development' ),
'platforms' => array( 'Shopify' ),
),
array(
'title' => 'Retail Mobile App And Omnichannel Integration',
'summary' => 'Challenge: mobile engagement and cross-channel coordination were disconnected. Solution: a retail app tied to product, order, and customer flows. Outcome: stronger convenience and operational alignment.',
'services' => array( 'App Development', 'Integrations' ),
'platforms' => array( 'Mobile App' ),
),
),
'case_study_filter_slug' => 'retail',
'industry_aliases' => array( 'retail', 'ecommerce', 'retail-ecommerce' ),
'cta_title' => 'Looking for a Digital Partner for Retail & eCommerce Growth?',
'cta_text' => 'Let’s talk about your platform build, omnichannel strategy, mobile app requirements, AI opportunities, integrations, or long-term support needs and shape the right commerce delivery roadmap together.',
'cta_primary_label' => 'Talk to Our Team',
'cta_secondary_label' => 'Get a Free Quote',
'meta_title' => 'Retail & eCommerce Solutions | Commerce Development, Omnichannel & Integrations',
'meta_description' => 'Explore retail and eCommerce solutions including commerce platform builds, omnichannel experiences, mobile apps, AI use cases, integrations, and ongoing technical support.',
),
'retail' => array(
'name' => 'Retail',
'accent' => '#ff7d74',
'index_copy' => 'Omnichannel commerce, merchandising workflows, retention journeys, and inventory-connected experiences built for modern retail operations.',
'hero_title' => 'eCommerce Solutions for Retail Brands',
'hero_subtitle' => 'We help retail businesses improve storefront experience, mobile engagement, merchandising agility, and operational visibility through scalable digital platforms and connected commerce delivery.',
'hero_points' => array(
'Industry-focused digital solutions',
'Scalable technology and integrations',
'Strategy, development, and long-term support',
),
'hero_visual_note' => 'Retail experience stack',
'hero_visual_caption' => 'Storefront, loyalty, operations',
'overview' => array(
'Retail businesses need digital systems that connect customer experience with merchandising, inventory, fulfillment, and campaign execution. Every improvement on the front end has to work with the pace and complexity of retail operations behind the scenes.',
'We support retail teams with commerce strategy, mobile experiences, customer-facing platforms, and integrations that reduce friction across discovery, purchase, retention, and internal workflows.',
),
'highlights' => array(
array(
'title' => 'Omnichannel expectations',
'copy' => 'Customers expect a smooth experience across storefront, mobile, support, and post-purchase journeys.',
),
array(
'title' => 'Commerce operations',
'copy' => 'Promotions, catalog changes, fulfillment, and content updates need faster and clearer internal workflows.',
),
array(
'title' => 'Growth opportunities',
'copy' => 'Retention, repeat purchase, and conversion improvements depend on clean UX and reliable platform performance.',
),
array(
'title' => 'Digital modernization',
'copy' => 'Legacy commerce setups often block new experiences, faster launches, and connected data flows.',
),
),
'challenges' => array(
array(
'badge' => 'CX',
'title' => 'Disconnected customer journeys',
'copy' => 'Product discovery, offers, checkout, and post-purchase flows often feel fragmented across channels and devices.',
),
array(
'badge' => 'OPS',
'title' => 'Manual merchandising overhead',
'copy' => 'Marketing and content teams lose time updating promotions, catalogs, and campaigns across hard-to-manage systems.',
),
array(
'badge' => 'INV',
'title' => 'Inventory and order visibility gaps',
'copy' => 'Operations struggle when storefront data, fulfillment logic, and internal systems are not clearly connected.',
),
array(
'badge' => 'MOB',
'title' => 'Weak mobile conversion performance',
'copy' => 'Retail users expect fast, intuitive mobile flows, but older commerce experiences often fail at critical moments.',
),
array(
'badge' => 'PERF',
'title' => 'Performance under campaign pressure',
'copy' => 'Traffic spikes, promotions, and product launches expose the limits of slow or fragile commerce platforms.',
),
array(
'badge' => 'RET',
'title' => 'Limited retention tooling',
'copy' => 'Loyalty, reordering, account journeys, and personalized engagement can be hard to scale on disconnected stacks.',
),
),
'services' => array(
array(
'key' => 'ecommerce-development',
'copy' => 'Build commerce experiences that support merchandising, conversion, retention, and omnichannel growth.',
),
array(
'key' => 'app-development',
'copy' => 'Create mobile shopping and loyalty experiences that connect customers with product, order, and support journeys.',
),
array(
'key' => 'ui-ux-design',
'copy' => 'Refine navigation, product discovery, checkout, and account flows so the shopping experience feels faster and clearer.',
),
array(
'key' => 'integrations',
'copy' => 'Connect commerce platforms with POS, ERP, PIM, OMS, payment, and fulfillment systems.',
),
array(
'key' => 'performance-optimization',
'copy' => 'Improve storefront speed, campaign readiness, and mobile usability where conversion impact matters most.',
),
array(
'key' => 'support-maintenance',
'copy' => 'Keep launches, seasonal campaigns, and platform improvements moving with dependable long-term support.',
),
),
'technologies_intro' => 'Retail technology decisions depend on product complexity, catalog size, inventory workflows, campaign velocity, and the systems that support fulfillment and customer retention.',
'technology_groups' => array(
array(
'label' => 'Platforms',
'items' => array( 'Adobe Commerce', 'Shopify Plus', 'WooCommerce' ),
),
array(
'label' => 'Frontend',
'items' => array( 'React', 'Next.js', 'Composable storefronts' ),
),
array(
'label' => 'Backend',
'items' => array( 'PHP', 'Laravel', 'Node.js' ),
),
array(
'label' => 'Integrations',
'items' => array( 'ERP', 'PIM', 'OMS', 'Payment gateways' ),
),
array(
'label' => 'Analytics',
'items' => array( 'GA4', 'GTM', 'Commerce reporting dashboards' ),
),
array(
'label' => 'Cloud / Infrastructure',
'items' => array( 'AWS', 'CDN strategy', 'CI/CD' ),
),
),
'case_study_placeholders' => array(
array(
'title' => 'Omnichannel Commerce Experience Refresh',
'summary' => 'Challenge: disconnected retail touchpoints. Solution: a clearer commerce journey with connected operations and stronger mobile usability. Outcome: better readiness for growth and retention.',
'services' => array( 'eCommerce Development', 'UI/UX Design' ),
'platforms' => array( 'Adobe Commerce' ),
),
array(
'title' => 'Inventory-Connected Shopping App',
'summary' => 'Challenge: slow mobile experience and limited visibility. Solution: a retail app tied to product and order flows. Outcome: stronger customer engagement and cleaner operations.',
'services' => array( 'App Development', 'Integrations' ),
'platforms' => array( 'Mobile App' ),
),
array(
'title' => 'Loyalty And Reordering Portal',
'summary' => 'Challenge: retention journeys lacked structure. Solution: a customer account experience with repeat-purchase and loyalty flows. Outcome: better lifecycle engagement.',
'services' => array( 'Custom Software Development', 'Support & Maintenance' ),
'platforms' => array( 'Web App' ),
),
),
'faq_focus' => 'commerce platforms, mobile shopping flows, merchandising tooling, and retail-focused integrations',
'faq_integrations' => 'POS, ERP, PIM, OMS, payment, and fulfillment systems',
'workflow_context' => 'merchandising, campaign launches, order visibility, and customer experience',
'growth_focus' => 'seasonal traffic, omnichannel growth, and long-term retention',
'technology_selection_note' => 'catalog complexity, campaign cadence, mobile expectations, and the retail systems that need to stay connected',
),
'healthcare-solutions' => array(
'name' => 'Healthcare',
'page_title' => 'Healthcare Solutions',
'accent' => '#56c2c5',
'index_copy' => 'Patient-facing applications, secure workflows, healthcare operations tools, and infrastructure-aware software delivery for modern healthcare organizations.',
'eyebrow_label' => 'Healthcare Technology Solutions',
'hero_title' => 'Healthcare Solutions',
'hero_subtitle' => 'We help healthcare organizations build secure, scalable, user-friendly digital solutions for patient engagement, internal operations, and service delivery through modern applications, workflow tools, and infrastructure-aware software development.',
'hero_points' => array(
'Patient-facing and internal healthcare platforms',
'Secure workflow-oriented development',
'Scalable infrastructure and long-term support',
),
'hero_primary_label' => 'Book a Free Consultation',
'hero_primary_url' => ethnic_industry_pages_contact_url(
array(
'industry' => 'healthcare-solutions',
'intent' => 'consultation',
)
),
'hero_secondary_label' => 'Talk to Our Team',
'hero_secondary_url' => ethnic_industry_pages_contact_url(
array(
'industry' => 'healthcare-solutions',
'intent' => 'team-conversation',
)
),
'hero_visual_note' => 'Healthcare delivery layer',
'hero_visual_caption' => 'Portal, dashboard, mobile',
'overview_section_title' => 'Healthcare software delivery built around trust, usability, and operational reliability.',
'overview' => array(
'Healthcare organizations often need to balance patient experience, operational efficiency, and the reality that digital systems may support sensitive processes, multiple stakeholders, and time-critical workflows. That makes usability, reliability, and system coordination especially important.',
'Digital platforms in healthcare need to work for both end users and internal teams. Patient-facing journeys, staff operations, reporting, communication, and service delivery processes all benefit from stronger design, clearer workflows, and better-connected technology.',
'We help healthcare businesses modernize platforms, improve digital experiences, and support operational processes with software shaped around practical service delivery needs rather than generic product assumptions.',
),
'highlights' => array(
array(
'title' => 'Patient Experience Expectations',
'copy' => 'Patients expect clear portals, intuitive scheduling, accessible mobile journeys, and straightforward communication touchpoints.',
),
array(
'title' => 'Operational Complexity',
'copy' => 'Care delivery, coordination, administration, and reporting often depend on several systems and workflows working together cleanly.',
),
array(
'title' => 'Secure Digital Workflows',
'copy' => 'Healthcare software needs structured access, dependable process flows, and thoughtful handling of operational requirements.',
),
array(
'title' => 'Scalable Healthcare Platforms',
'copy' => 'Organizations need digital foundations that can grow across services, teams, locations, and evolving platform needs.',
),
),
'challenges_section_title' => 'Healthcare software challenges that affect service delivery, team efficiency, and user trust.',
'challenges' => array(
array(
'badge' => 'LEG',
'title' => 'Legacy systems and outdated software',
'copy' => 'Older platforms can make modernization harder, reduce usability, and limit the ability to support new workflows or digital services.',
),
array(
'badge' => 'UX',
'title' => 'Fragmented patient and staff experiences',
'copy' => 'When journeys are unclear across portals, admin tools, and communication flows, users lose time and confidence.',
),
array(
'badge' => 'OPS',
'title' => 'Manual workflows and operational inefficiencies',
'copy' => 'Teams can become too dependent on manual coordination, repetitive administration, and disconnected tools.',
),
array(
'badge' => 'INT',
'title' => 'Limited system integrations',
'copy' => 'Scheduling, CRM, reporting, portal, and internal systems often need better integration to support smoother delivery.',
),
array(
'badge' => 'MOB',
'title' => 'Poor mobile usability',
'copy' => 'Users increasingly expect critical actions to work cleanly across mobile devices, not just desktop workflows.',
),
array(
'badge' => 'DATA',
'title' => 'Data visibility and reporting gaps',
'copy' => 'Operations teams need clearer dashboards and better reporting support to manage service performance and process visibility.',
),
array(
'badge' => 'SCL',
'title' => 'Scaling digital services across teams or locations',
'copy' => 'Expanding workflows, users, or services becomes harder when the platform foundation is too rigid or fragmented.',
),
array(
'badge' => 'TR',
'title' => 'High reliability and trust expectations',
'copy' => 'Healthcare organizations need software experiences that feel dependable, stable, and clear for both patients and internal teams.',
),
),
'services_section_kicker' => 'Patient Apps And Portals',
'services_section_title' => 'Patient-facing digital experiences designed for accessibility, trust, and day-to-day convenience.',
'services' => array(
array(
'title' => 'Patient portal experiences',
'copy' => 'Design portals that make information, updates, account access, and service journeys easier to understand and use.',
'url' => ethnic_industry_pages_service_url( 'web-development', 'healthcare-solutions' ),
'tags' => array( 'Portal UX', 'Accessible journeys', 'Patient clarity' ),
),
array(
'title' => 'Appointment management interfaces',
'copy' => 'Create scheduling and appointment flows that reduce friction for both patients and operational teams.',
'url' => ethnic_industry_pages_service_url( 'custom-software-development', 'healthcare-solutions' ),
'tags' => array( 'Scheduling', 'Workflow clarity', 'Self-service access' ),
),
array(
'title' => 'Mobile health engagement apps',
'copy' => 'Build mobile-first experiences for engagement, service access, reminders, and healthcare communication touchpoints.',
'url' => ethnic_industry_pages_service_url( 'app-development', 'healthcare-solutions' ),
'tags' => array( 'Mobile health', 'Engagement', 'Convenience' ),
),
array(
'title' => 'Notifications and communication tools',
'copy' => 'Support communication-focused journeys that make updates, reminders, and service messaging easier to manage.',
'url' => ethnic_industry_pages_service_url( 'integrations', 'healthcare-solutions' ),
'tags' => array( 'Notifications', 'Communication flows', 'Connected systems' ),
),
array(
'title' => 'Self-service access features',
'copy' => 'Enable structured self-service actions that reduce operational overhead while keeping journeys clearer for users.',
'url' => ethnic_industry_pages_service_url( 'web-development', 'healthcare-solutions' ),
'tags' => array( 'Self-service', 'Usability', 'Operational support' ),
),
array(
'title' => 'Support-oriented digital journeys',
'copy' => 'Shape support flows that help patients and internal users move through tasks with more confidence and less friction.',
'url' => ethnic_industry_pages_service_url( 'ui-ux-design', 'healthcare-solutions' ),
'tags' => array( 'Support UX', 'Clear navigation', 'Trust-building design' ),
),
),
'workflow_section_kicker' => 'Secure Workflows',
'workflow_section_title' => 'Internal operational workflows built with structured access, visibility, and reliability in mind.',
'workflow_intro' => array(
'Healthcare organizations often need digital systems that support internal coordination as much as patient-facing interaction. That includes staff-facing tools, operational dashboards, documentation journeys, approvals, and workflow visibility designed around real service delivery processes.',
'We approach these systems with careful, professional language and architecture choices focused on structured access, dependable workflow handling, and practical day-to-day usability.',
),
'workflow_points' => array(
array(
'title' => 'Staff-facing operational tools',
'copy' => 'Support internal teams with clearer tools for coordination, status tracking, and process management.',
),
array(
'title' => 'Role-based access patterns',
'copy' => 'Shape systems so the right users can access the right workflows and information in a more structured way.',
),
array(
'title' => 'Internal approval flows',
'copy' => 'Digitize approvals, handoffs, and review stages that are often slowed down by fragmented manual processes.',
),
array(
'title' => 'Secure data handling practices',
'copy' => 'Design software around business needs that call for clear permissions, careful process control, and dependable user experiences.',
),
array(
'title' => 'Process visibility and coordination',
'copy' => 'Use dashboards and workflow tooling to improve visibility into operational activity and status across teams.',
),
array(
'title' => 'Workflow automation support',
'copy' => 'Reduce repetitive operational work by automating handoffs, notifications, and process steps where appropriate.',
),
),
'ai_section_kicker' => 'AI Use Cases',
'ai_section_title' => 'Careful, practical AI use cases that support efficiency, experience, and day-to-day healthcare operations.',
'ai_intro' => array(
'AI in healthcare-related products should be applied carefully and practically. The goal is to support better experiences, stronger internal workflows, and faster access to information without overpromising what the technology should do.',
),
'ai_use_cases' => array(
array(
'title' => 'Patient support automation',
'copy' => 'Assist with routine questions and guidance so support teams can respond faster and more consistently.',
),
array(
'title' => 'Triage or inquiry assistance',
'copy' => 'Help route inquiries and surface relevant next steps more efficiently within structured workflows.',
),
array(
'title' => 'Appointment and communication workflows',
'copy' => 'Improve reminder handling, follow-up communication, and scheduling support with smarter automation.',
),
array(
'title' => 'Document or workflow summarization',
'copy' => 'Support internal teams with concise summaries that make process-heavy work easier to review and act on.',
),
array(
'title' => 'Reporting and operational insights',
'copy' => 'Turn platform data into clearer patterns and operational visibility for decision support.',
),
array(
'title' => 'Internal knowledge assistance',
'copy' => 'Help teams surface relevant internal knowledge more quickly when handling operational or support tasks.',
),
array(
'title' => 'Content assistance for portals or support systems',
'copy' => 'Support content drafting and workflow documentation where teams need faster content iteration.',
),
array(
'title' => 'Intelligent search and information retrieval',
'copy' => 'Make large information sets easier to navigate with better search relevance and retrieval support.',
),
),
'support_section_kicker' => 'Infrastructure And Compliance-Aware Development',
'support_section_title' => 'Technical foundations designed around security, reliability, integrations, and operational requirements.',
'support_intro' => array(
'Healthcare software often needs infrastructure planning, secure deployment practices, access-aware architecture, monitoring, and performance support that reflect the sensitivity and reliability expectations of the environment.',
'Solutions are designed with security, reliability, and operational requirements in mind, while project-specific compliance needs should always be evaluated based on the business context, delivery scope, and systems involved.',
),
'support_services' => array(
array(
'title' => 'Secure architecture planning',
'copy' => 'Design system architecture with structured access, clear service boundaries, and dependable operational foundations.',
),
array(
'title' => 'Integration-ready systems',
'copy' => 'Build backend services and application layers that can support portal, workflow, reporting, and operational integrations.',
),
array(
'title' => 'Hosting and deployment support',
'copy' => 'Support environments, releases, and deployment workflows in a way that improves stability and release confidence.',
),
array(
'title' => 'Monitoring and performance',
'copy' => 'Improve visibility into uptime, responsiveness, and operational system health so teams can act earlier on issues.',
),
array(
'title' => 'Environment management',
'copy' => 'Keep development, staging, and production environments better aligned for safer iteration and delivery.',
),
array(
'title' => 'Long-term maintenance and support',
'copy' => 'Support ongoing platform improvements, issue response, optimization, and roadmap execution after launch.',
),
),
'technology_groups' => array(),
'case_study_placeholders' => array(),
'faqs' => array(),
'cta_title' => 'Looking for a Trusted Technology Partner for Healthcare Solutions?',
'cta_text' => 'Let’s talk about patient portals, healthcare apps, workflow digitization, AI opportunities, secure infrastructure, or modernization goals and shape the right delivery path together.',
'cta_primary_label' => 'Talk to Our Team',
'cta_secondary_label' => 'Get a Free Quote',
'meta_title' => 'Healthcare Solutions | Patient Portals, Secure Workflows & Custom Software Development',
'meta_description' => 'Explore healthcare solutions including patient apps, portals, secure workflows, AI-assisted use cases, and infrastructure-aware software development tailored to healthcare organizations.',
),
'fintech-solutions' => array(
'name' => 'Fintech',
'page_title' => 'Fintech Solutions',
'accent' => '#3e6cff',
'index_copy' => 'Payment platforms, secure apps, analytics-led product experiences, and scalable technical foundations for modern fintech teams.',
'eyebrow_label' => 'Fintech Product Solutions',
'hero_title' => 'Fintech Solutions',
'hero_subtitle' => 'We help fintech businesses build secure, scalable, and user-friendly digital products for payments, financial workflows, customer experience, and operational growth through connected platforms, modern apps, and dependable technical foundations.',
'hero_points' => array(
'Secure mobile and web fintech platforms',
'Payment-focused product development',
'Scalable infrastructure and long-term support',
),
'hero_primary_label' => 'Book a Free Consultation',
'hero_primary_url' => ethnic_industry_pages_contact_url(
array(
'industry' => 'fintech-solutions',
'intent' => 'consultation',
)
),
'hero_secondary_label' => 'Talk to Our Team',
'hero_secondary_url' => ethnic_industry_pages_contact_url(
array(
'industry' => 'fintech-solutions',
'intent' => 'team-conversation',
)
),
'hero_visual_note' => 'Fintech product layer',
'hero_visual_caption' => 'Payments, analytics, mobile',
'overview_section_title' => 'Fintech product delivery built around trust, reliability, speed, and scalable digital operations.',
'overview' => array(
'Fintech businesses often need to balance usability, reliability, security-aware architecture, and product speed at the same time. Customer trust can be shaped by everything from onboarding and transaction clarity to reporting visibility, account access, and overall product performance.',
'Digital financial platforms frequently depend on seamless transactions, strong customer journeys, integration-ready systems, and technical foundations that can support growth without adding unnecessary friction to the product experience.',
'We help fintech teams shape digital products that support payments, data visibility, user experience, and long-term scale with practical delivery choices grounded in product goals and operational realities.',
),
'highlights' => array(
array(
'title' => 'Trust-Focused User Experience',
'copy' => 'Financial products need clear interfaces, confident flows, and thoughtful interaction design that helps users move forward with less friction.',
),
array(
'title' => 'Secure Product Architecture',
'copy' => 'Fintech systems often depend on stronger architecture, controlled workflows, and dependable technical structure from the start.',
),
array(
'title' => 'Payment And Platform Scalability',
'copy' => 'As transaction volume, users, and product complexity grow, the platform needs to scale without losing clarity or stability.',
),
array(
'title' => 'Data-Driven Product Growth',
'copy' => 'Analytics, product visibility, and reporting support better iteration, operational insight, and long-term roadmap decisions.',
),
),
'challenges_section_kicker' => 'Payment Systems',
'challenges_section_title' => 'Payment-focused platform components that support transaction clarity, financial workflows, and product operations.',
'challenges' => array(
array(
'badge' => 'PAY',
'title' => 'Payment platform interfaces',
'copy' => 'Build product experiences that make payment actions, account visibility, and financial workflows easier to understand and use.',
),
array(
'badge' => 'CHK',
'title' => 'Checkout and transaction workflows',
'copy' => 'Design transaction journeys that reduce friction, communicate status clearly, and support dependable task completion.',
),
array(
'badge' => 'GW',
'title' => 'Gateway integrations',
'copy' => 'Connect payment gateways and related services in ways that support product continuity and stronger operational visibility.',
),
array(
'badge' => 'SUB',
'title' => 'Subscription and recurring billing flows',
'copy' => 'Support recurring payment models, plan handling, renewals, and billing-related customer journeys with clearer logic.',
),
array(
'badge' => 'OPS',
'title' => 'Operational payment dashboards',
'copy' => 'Give teams better access to transaction status, reporting context, and operational insights around payment activity.',
),
array(
'badge' => 'AUT',
'title' => 'Financial workflow automation support',
'copy' => 'Reduce manual handoffs by connecting product workflows, notifications, and operational actions where appropriate.',
),
),
'services_section_kicker' => 'Secure Mobile/Web Platforms',
'services_section_title' => 'Customer-facing and internal fintech platforms designed for trust, clarity, and dependable connected delivery.',
'services' => array(
array(
'title' => 'Mobile fintech apps',
'copy' => 'Build mobile experiences for onboarding, payments, account access, and financial actions with user confidence in mind.',
'url' => ethnic_industry_pages_service_url( 'app-development', 'fintech-solutions' ),
'tags' => array( 'Mobile-first', 'Payment journeys', 'Account access' ),
),
array(
'title' => 'Secure customer portals',
'copy' => 'Create customer-facing portals that support visibility into accounts, transactions, product details, and next-step actions.',
'url' => ethnic_industry_pages_service_url( 'web-development', 'fintech-solutions' ),
'tags' => array( 'Portal UX', 'Trust signals', 'Self-service clarity' ),
),
array(
'title' => 'Internal operations platforms',
'copy' => 'Support internal teams with platforms for reviews, reporting, workflow handling, and operational coordination.',
'url' => ethnic_industry_pages_service_url( 'custom-software-development', 'fintech-solutions' ),
'tags' => array( 'Ops tooling', 'Workflow control', 'Admin systems' ),
),
array(
'title' => 'Account and transaction visibility tools',
'copy' => 'Design interfaces that help users and teams understand financial status, histories, and product activity more clearly.',
'url' => ethnic_industry_pages_service_url( 'ui-ux-design', 'fintech-solutions' ),
'tags' => array( 'Visibility', 'Information hierarchy', 'Clarity' ),
),
array(
'title' => 'API-connected web systems',
'copy' => 'Build reliable web applications connected to APIs, payment systems, analytics tools, and operational services.',
'url' => ethnic_industry_pages_service_url( 'integrations', 'fintech-solutions' ),
'tags' => array( 'API-ready', 'Connected systems', 'Operational fit' ),
),
array(
'title' => 'Responsive user-first interfaces',
'copy' => 'Shape fintech journeys that feel usable across mobile and desktop without losing structure or trust.',
'url' => ethnic_industry_pages_service_url( 'ui-ux-design', 'fintech-solutions' ),
'tags' => array( 'Responsive UX', 'Confidence-building', 'Product clarity' ),
),
),
'ai_section_kicker' => 'Analytics And AI Use Cases',
'ai_section_title' => 'Practical analytics and AI support for product visibility, decision-making, and better fintech operations.',
'ai_intro' => array(
'Analytics and AI should support fintech teams in practical ways, helping improve visibility, operational efficiency, customer experience, and product decision-making without adding unnecessary complexity or overpromising outcomes.',
),
'ai_use_cases' => array(
array(
'title' => 'Transaction analytics dashboards',
'copy' => 'Turn payment and platform activity into clearer dashboards that support product and operational decision-making.',
),
array(
'title' => 'Fraud or anomaly support workflows',
'copy' => 'Highlight unusual patterns and route operational attention more efficiently through structured review flows.',
),
array(
'title' => 'Customer behavior insights',
'copy' => 'Use product interaction data to better understand journey friction, conversion gaps, and usage patterns.',
),
array(
'title' => 'Reporting automation',
'copy' => 'Reduce manual reporting effort with smarter summaries, workflow visibility, and repeatable data outputs.',
),
array(
'title' => 'Support automation and inquiry assistance',
'copy' => 'Help support teams respond faster to common product and transaction questions with better knowledge support.',
),
array(
'title' => 'Risk or operational pattern visibility',
'copy' => 'Support internal teams with better views into product activity, operational bottlenecks, and recurring issues.',
),
array(
'title' => 'Personalized financial product experiences',
'copy' => 'Improve relevance in product messaging, next-step guidance, and feature presentation where it adds practical value.',
),
array(
'title' => 'Internal knowledge and workflow assistance',
'copy' => 'Make internal process information easier to retrieve and use during support, review, and operational handling.',
),
),
'omnichannel_section_kicker' => 'Blockchain Relevance',
'omnichannel_section_title' => 'A balanced view of when blockchain-enabled capabilities may help and when traditional architecture may be the stronger fit.',
'omnichannel_intro' => array(
'Blockchain is not required for every fintech product. In many cases, traditional platform architecture is the more practical option for delivering clear user journeys, operational speed, and maintainable product systems.',
'Where transparency, traceability, tokenized systems, or decentralized workflows are genuinely part of the business model, blockchain-based capabilities may be relevant. The right choice depends on product goals, technical architecture, user expectations, and operational requirements rather than hype.',
),
'omnichannel_points' => array(
array(
'title' => 'When blockchain may be useful',
'copy' => 'It can be relevant when the business model depends on traceability, tokenized interactions, transparent records, or decentralized product behavior.',
),
array(
'title' => 'When traditional architecture may be more practical',
'copy' => 'Many fintech products benefit more from dependable centralized systems that are faster to operate, iterate, and support.',
),
array(
'title' => 'Product strategy and technical evaluation',
'copy' => 'We evaluate suitability by looking at business goals, system complexity, user trust expectations, and operational cost.',
),
array(
'title' => 'Integration with broader fintech systems',
'copy' => 'If blockchain is part of the product, it still needs to fit with the broader platform, workflows, and support model.',
),
),
'support_section_kicker' => 'Scale And Security',
'support_section_title' => 'Technical foundations built for reliable fintech growth, stable operations, and security-aware delivery.',
'support_intro' => array(
'Fintech products often need scalable backend architecture, secure deployment practices, strong monitoring, dependable API connectivity, and operational processes that support reliability as the product grows.',
'Project-specific security, infrastructure, and compliance requirements should always be evaluated based on the business model, delivery scope, and operational needs of the product.',
),
'support_services' => array(
array(
'title' => 'Scalable architecture planning',
'copy' => 'Shape backend services and product layers so the platform can support new features, users, and transaction volume more cleanly.',
),
array(
'title' => 'Secure deployment workflows',
'copy' => 'Support releases and environment handling with delivery practices that improve reliability and operational confidence.',
),
array(
'title' => 'Monitoring and performance',
'copy' => 'Use monitoring and performance visibility to catch issues earlier and keep product experiences more dependable.',
),
array(
'title' => 'API reliability',
'copy' => 'Design API-connected systems with stronger consistency, operational resilience, and integration-aware thinking.',
),
array(
'title' => 'Environment and release management',
'copy' => 'Keep development, staging, and production flows better aligned for safer iteration and change management.',
),
array(
'title' => 'Ongoing maintenance and support',
'copy' => 'Support long-term optimization, release care, issue response, and platform evolution after launch.',
),
),
'technology_groups' => array(),
'case_study_placeholders' => array(),
'faqs' => array(),
'cta_title' => 'Looking for a Technology Partner for Fintech Product Development?',
'cta_text' => 'Let’s talk about payment systems, fintech apps, secure web platforms, analytics opportunities, blockchain-related ideas, or scalable architecture needs and shape the right delivery path together.',
'cta_primary_label' => 'Talk to Our Team',
'cta_secondary_label' => 'Get a Free Quote',
'meta_title' => 'Fintech Solutions | Payment Systems, Secure Platforms & Scalable Product Development',
'meta_description' => 'Explore fintech solutions including payment systems, secure mobile and web platforms, analytics and AI use cases, blockchain relevance, and scalable security-aware development.',
),
'logistics-supply-chain-solutions' => array(
'name' => 'Logistics & Supply Chain',
'page_title' => 'Logistics & Supply Chain Solutions',
'accent' => '#3f78ff',
'index_copy' => 'Operations platforms, dashboards, tracking apps, workflow automation, and dependable technical support for time-sensitive logistics environments.',
'eyebrow_label' => 'Logistics Technology Solutions',
'hero_title' => 'Logistics & Supply Chain Solutions',
'hero_subtitle' => 'We help logistics and supply chain businesses improve operational visibility, streamline workflows, support tracking, and build scalable digital systems through modern platforms, connected tools, and long-term technical support.',
'hero_points' => array(
'Operations-focused digital platforms',
'Tracking and workflow visibility',
'Scalable systems with long-term support',
),
'hero_primary_label' => 'Book a Free Consultation',
'hero_primary_url' => ethnic_industry_pages_contact_url(
array(
'industry' => 'logistics-supply-chain-solutions',
'intent' => 'consultation',
)
),
'hero_secondary_label' => 'Talk to Our Team',
'hero_secondary_url' => ethnic_industry_pages_contact_url(
array(
'industry' => 'logistics-supply-chain-solutions',
'intent' => 'team-conversation',
)
),
'hero_visual_note' => 'Operations delivery layer',
'hero_visual_caption' => 'Tracking, dashboards, workflows',
'overview_section_title' => 'Digital logistics delivery built around visibility, coordination, and operational responsiveness.',
'overview' => array(
'Logistics and supply chain businesses rely on visibility, coordination, speed, and process efficiency across multiple teams, systems, and moving operational parts. When that digital foundation is fragmented, day-to-day execution becomes harder to manage and scale.',
'Supply chain teams often work across planning, tracking, warehouse activity, dispatch, reporting, and communication workflows that depend on several systems staying connected. Digital platforms can bring those activities into clearer operational control.',
'We help logistics businesses modernize systems and build software that supports daily operations, improves reporting visibility, and creates stronger foundations for long-term operational growth.',
),
'highlights' => array(
array(
'title' => 'Operational Visibility',
'copy' => 'Teams need clearer access to shipment status, task progress, exceptions, and business-critical activity across operations.',
),
array(
'title' => 'Process Coordination',
'copy' => 'Routing, warehouse handling, dispatch, and internal communication often depend on better-connected systems and workflows.',
),
array(
'title' => 'Workflow Efficiency',
'copy' => 'Manual coordination slows delivery, adds duplicate effort, and makes operational handoffs harder to manage at scale.',
),
array(
'title' => 'Scalable Platform Support',
'copy' => 'As teams, locations, and delivery complexity grow, the software foundation needs to stay stable and easier to extend.',
),
),
'challenges_section_kicker' => 'Operations Platforms',
'challenges_section_title' => 'Operational platform components that support planning, coordination, shipment handling, and cross-team execution.',
'challenges' => array(
array(
'badge' => 'OPS',
'title' => 'Internal operations portals',
'copy' => 'Build staff-facing portals that help teams manage tasks, updates, planning activity, and operational coordination more clearly.',
),
array(
'badge' => 'WH',
'title' => 'Warehouse workflow systems',
'copy' => 'Support warehouse-related processes with systems that improve handoffs, status visibility, and day-to-day execution.',
),
array(
'badge' => 'RTC',
'title' => 'Routing and coordination tools',
'copy' => 'Create tools that help operational teams organize movement, scheduling, and route-related workflows with less friction.',
),
array(
'badge' => 'SHP',
'title' => 'Shipment management interfaces',
'copy' => 'Design interfaces that make shipment-related actions, updates, and coordination easier to track and handle.',
),
array(
'badge' => 'STF',
'title' => 'Staff-facing workflow platforms',
'copy' => 'Support internal users with platforms built around real operational tasks, approvals, and process control.',
),
array(
'badge' => 'MTM',
'title' => 'Multi-team operational systems',
'copy' => 'Connect cross-functional teams through shared systems that support cleaner communication and execution at scale.',
),
),
'services_section_kicker' => 'Dashboards',
'services_section_title' => 'Operational dashboard experiences that give teams and leaders clearer insight into logistics performance and workflow health.',
'services' => array(
array(
'title' => 'Operational KPI dashboards',
'copy' => 'Give teams live views into activity, performance, and the operational metrics that matter most day to day.',
'url' => ethnic_industry_pages_service_url( 'custom-software-development', 'logistics-supply-chain-solutions' ),
'tags' => array( 'KPI visibility', 'Operations insight', 'Decision support' ),
),
array(
'title' => 'Shipment status reporting',
'copy' => 'Make delivery and shipment progress easier to understand through clearer status reporting and operational context.',
'url' => ethnic_industry_pages_service_url( 'integrations', 'logistics-supply-chain-solutions' ),
'tags' => array( 'Status reporting', 'Delivery tracking', 'Connected data' ),
),
array(
'title' => 'Workflow performance views',
'copy' => 'Show teams where work is slowing down, where bottlenecks exist, and how processes are performing over time.',
'url' => ethnic_industry_pages_service_url( 'custom-software-development', 'logistics-supply-chain-solutions' ),
'tags' => array( 'Workflow analysis', 'Bottlenecks', 'Process insight' ),
),
array(
'title' => 'Team and process visibility',
'copy' => 'Support better internal coordination with dashboards that show workload, process status, and execution clarity.',
'url' => ethnic_industry_pages_service_url( 'web-development', 'logistics-supply-chain-solutions' ),
'tags' => array( 'Team visibility', 'Coordination', 'Ops control' ),
),
array(
'title' => 'Exception or issue tracking',
'copy' => 'Surface issues earlier so teams can respond faster when shipments, workflows, or operational processes need attention.',
'url' => ethnic_industry_pages_service_url( 'integrations', 'logistics-supply-chain-solutions' ),
'tags' => array( 'Exception handling', 'Issue visibility', 'Operational response' ),
),
array(
'title' => 'Executive reporting interfaces',
'copy' => 'Provide leadership teams with cleaner reporting views into operations, efficiency, and overall business health.',
'url' => ethnic_industry_pages_service_url( 'ui-ux-design', 'logistics-supply-chain-solutions' ),
'tags' => array( 'Executive reporting', 'Visibility', 'Business context' ),
),
),
'apps_section_kicker' => 'Tracking Apps',
'apps_section_title' => 'Mobile and web tracking tools that support shipment visibility, field coordination, and real-time operational updates.',
'apps_before_workflow' => true,
'app_use_cases' => array(
array(
'title' => 'Shipment tracking apps',
'copy' => 'Build tracking experiences that help teams and stakeholders stay informed about movement, status, and next steps.',
),
array(
'title' => 'Driver / field apps',
'copy' => 'Support field-based users with mobile tools for updates, coordination, and operational task handling.',
),
array(
'title' => 'Delivery status tools',
'copy' => 'Provide cleaner visibility into delivery progress so operations can react faster and communicate more clearly.',
),
array(
'title' => 'Internal coordination apps',
'copy' => 'Help internal teams share updates, track activity, and handle logistics workflows from mobile or web interfaces.',
),
array(
'title' => 'Customer tracking portals',
'copy' => 'Create customer-facing tracking experiences where service visibility and communication matter to the journey.',
),
array(
'title' => 'Notifications and update workflows',
'copy' => 'Support real-time updates, alerts, and communication flows that keep users and teams better aligned.',
),
),
'workflow_section_kicker' => 'Process Automation',
'workflow_section_title' => 'Automation opportunities that reduce repetitive work, improve consistency, and support scale across logistics operations.',
'workflow_intro' => array(
'Logistics systems often carry too much manual coordination. Repetitive status handling, internal handoffs, alerts, and multi-system updates can slow operations and make consistency harder to maintain as the business grows.',
'We look for automation opportunities that help teams reduce duplicate work, route tasks more cleanly, and connect systems so process execution becomes easier to manage at scale.',
),
'workflow_points' => array(
array(
'title' => 'Workflow automation',
'copy' => 'Automate common process steps so operational teams spend less time on repetitive manual handling.',
),
array(
'title' => 'Status-triggered notifications',
'copy' => 'Use event-based updates to keep teams and stakeholders informed when important operational changes happen.',
),
array(
'title' => 'Process handoff improvements',
'copy' => 'Reduce coordination gaps by making handoffs between teams and systems more structured and predictable.',
),
array(
'title' => 'Internal task routing',
'copy' => 'Direct tasks to the right teams or users more efficiently based on operational rules and workflow status.',
),
array(
'title' => 'Integration-based automation',
'copy' => 'Connect systems so data updates and process triggers move automatically between the tools operations depend on.',
),
array(
'title' => 'Repetitive task reduction',
'copy' => 'Identify recurring operational effort that can be simplified through better systems and automation support.',
),
),
'support_section_kicker' => 'DevOps And Monitoring Relevance',
'support_section_title' => 'Reliable technical operations that support uptime, observability, release stability, and long-term logistics platform performance.',
'support_intro' => array(
'Logistics systems often support time-sensitive operations, which makes reliability, observability, and stable releases especially important. Teams need infrastructure and delivery practices they can depend on while platforms continue to evolve.',
'We support DevOps and monitoring needs that improve system health visibility, release confidence, and ongoing platform performance for business-critical operations.',
),
'support_services' => array(
array(
'title' => 'Infrastructure reliability',
'copy' => 'Shape hosting and platform foundations so critical logistics operations can run more dependably under day-to-day demand.',
),
array(
'title' => 'Monitoring and alerting',
'copy' => 'Use system monitoring and alerting to surface issues earlier and improve operational awareness before problems escalate.',
),
array(
'title' => 'Deployment workflows',
'copy' => 'Support safer release workflows so updates can move with more control and less disruption to active operations.',
),
array(
'title' => 'Environment management',
'copy' => 'Keep development, staging, and production environments better aligned for cleaner testing and rollout stability.',
),
array(
'title' => 'Performance tracking',
'copy' => 'Track platform responsiveness and system health so operational software remains usable when timing matters most.',
),
array(
'title' => 'Ongoing support and optimization',
'copy' => 'Support continuous improvement, issue response, and platform optimization as logistics systems evolve over time.',
),
),
'technology_groups' => array(),
'case_study_placeholders' => array(),
'faqs' => array(),
'cta_title' => 'Looking for Digital Solutions for Logistics & Supply Chain Operations?',
'cta_text' => 'Let’s talk about operations platforms, dashboards, tracking apps, automation opportunities, DevOps support, or modernization needs and shape the right delivery path together.',
'cta_primary_label' => 'Talk to Our Team',
'cta_secondary_label' => 'Get a Free Quote',
'meta_title' => 'Logistics & Supply Chain Solutions | Operations Platforms, Tracking Apps & Automation',
'meta_description' => 'Explore logistics and supply chain solutions including operations platforms, dashboards, tracking apps, process automation, and DevOps support for scalable digital operations.',
),
'gaming-entertainment-solutions' => array(
'name' => 'Gaming & Entertainment',
'page_title' => 'Gaming & Entertainment Solutions',
'accent' => '#7a5cff',
'index_copy' => 'Production support systems, backend services, live ops tooling, player experience improvements, and analytics-led product support for modern gaming and entertainment teams.',
'eyebrow_label' => 'Gaming Product Solutions',
'hero_title' => 'Gaming & Entertainment Solutions',
'hero_subtitle' => 'We help gaming and entertainment businesses build scalable digital systems, player-facing experiences, backend tools, and analytics-driven product ecosystems through connected platforms, live operations support, and long-term technical delivery.',
'hero_points' => array(
'Backend and platform support for digital products',
'Player-focused experience design',
'Scalable systems, analytics, and live operations support',
),
'hero_primary_label' => 'Book a Free Consultation',
'hero_primary_url' => ethnic_industry_pages_contact_url(
array(
'industry' => 'gaming-entertainment-solutions',
'intent' => 'consultation',
)
),
'hero_secondary_label' => 'Talk to Our Team',
'hero_secondary_url' => ethnic_industry_pages_contact_url(
array(
'industry' => 'gaming-entertainment-solutions',
'intent' => 'team-conversation',
)
),
'hero_visual_note' => 'Live product layer',
'hero_visual_caption' => 'Player, ops, analytics',
'overview_section_title' => 'Gaming platform delivery built around engagement, retention, operational support, and scalable product iteration.',
'overview' => array(
'Gaming and entertainment products rely on engagement, performance, retention, and seamless user experiences across player-facing journeys and the systems that support them behind the scenes. Product teams often need more than just front-end polish. They also need dependable backend services, live operations tooling, and better product visibility.',
'Teams in this space frequently work across player-facing systems, backend tools, content support workflows, event-driven product operations, and analytics layers that help shape ongoing iteration. As products grow, those systems need to stay connected, responsive, and easier to extend.',
'We help businesses in gaming and entertainment build operational platforms, connected digital experiences, and long-term support systems that improve product execution before launch and through ongoing live operations.',
),
'highlights' => array(
array(
'title' => 'Player Engagement Expectations',
'copy' => 'Players and users expect clear onboarding, responsive interactions, and digital experiences that feel polished across connected touchpoints.',
),
array(
'title' => 'Live Product Operations',
'copy' => 'Live content, campaigns, updates, and active product management rely on better tooling and operational visibility.',
),
array(
'title' => 'Scalable Backend Systems',
'copy' => 'As features, users, and product complexity grow, the technical foundation needs to support expansion without adding avoidable friction.',
),
array(
'title' => 'Data-Driven Product Growth',
'copy' => 'Analytics visibility helps teams understand engagement, retention, and product behavior so decisions can be made with more clarity.',
),
),
'challenges_section_kicker' => 'Game Production Support',
'challenges_section_title' => 'Production support systems that help gaming and entertainment teams coordinate execution before launch and during active product delivery.',
'challenges' => array(
array(
'badge' => 'PRD',
'title' => 'Internal production tools',
'copy' => 'Build tools that help teams manage product workflows, status visibility, and production-related coordination more effectively.',
),
array(
'badge' => 'CMS',
'title' => 'Content management interfaces',
'copy' => 'Support content and asset workflows with interfaces that make updates, organization, and publishing easier to control.',
),
array(
'badge' => 'WFL',
'title' => 'Team workflow systems',
'copy' => 'Create systems that support handoffs, reviews, and multi-team coordination around digital product delivery.',
),
array(
'badge' => 'ADM',
'title' => 'Admin and operations panels',
'copy' => 'Give internal teams cleaner control over settings, operational actions, and day-to-day product management tasks.',
),
array(
'badge' => 'LCH',
'title' => 'Launch support systems',
'copy' => 'Support pre-launch readiness and rollout activity with systems that help teams stay aligned and execution-ready.',
),
array(
'badge' => 'SUP',
'title' => 'Product support tooling',
'copy' => 'Improve how teams handle support-related workflows, product updates, and operational issue response over time.',
),
),
'services_section_kicker' => 'Backend Systems',
'services_section_title' => 'Backend and platform systems that support account flows, product operations, integrations, and scalable digital delivery.',
'services' => array(
array(
'title' => 'API and service architecture',
'copy' => 'Design backend services that support product logic, connected systems, and cleaner long-term technical growth.',
'url' => ethnic_industry_pages_service_url( 'custom-software-development', 'gaming-entertainment-solutions' ),
'tags' => array( 'API-first', 'Service design', 'Scalable foundations' ),
),
array(
'title' => 'Admin and account systems',
'copy' => 'Build account and admin flows that support user visibility, operational control, and day-to-day product needs.',
'url' => ethnic_industry_pages_service_url( 'web-development', 'gaming-entertainment-solutions' ),
'tags' => array( 'Account flows', 'Admin tooling', 'User systems' ),
),
array(
'title' => 'Content and asset support systems',
'copy' => 'Support digital content operations with systems that help teams manage structure, assets, and updates more cleanly.',
'url' => ethnic_industry_pages_service_url( 'custom-software-development', 'gaming-entertainment-solutions' ),
'tags' => array( 'Content ops', 'Asset workflows', 'Support systems' ),
),
array(
'title' => 'Event-driven backend workflows',
'copy' => 'Build workflows that react to product events, status changes, and operational triggers in a more structured way.',
'url' => ethnic_industry_pages_service_url( 'integrations', 'gaming-entertainment-solutions' ),
'tags' => array( 'Event-driven', 'Workflow triggers', 'Operational fit' ),
),
array(
'title' => 'Integration-ready platform services',
'copy' => 'Prepare the platform for broader ecosystem connections, reporting needs, and supporting services across the product.',
'url' => ethnic_industry_pages_service_url( 'integrations', 'gaming-entertainment-solutions' ),
'tags' => array( 'Integration-ready', 'Connected systems', 'Platform support' ),
),
array(
'title' => 'Scalable digital product foundations',
'copy' => 'Shape the technical base so products can support new features, more users, and ongoing iteration with less friction.',
'url' => ethnic_industry_pages_service_url( 'custom-software-development', 'gaming-entertainment-solutions' ),
'tags' => array( 'Growth-ready', 'Technical foundation', 'Feature expansion' ),
),
),
'workflow_section_kicker' => 'Live Ops',
'workflow_section_title' => 'Live operations tooling that helps teams manage events, updates, engagement activity, and ongoing product support.',
'workflow_intro' => array(
'Gaming and entertainment products often depend on continuous iteration after launch. Teams need tools that support events, campaigns, offers, updates, and operational visibility without making live product management harder than it needs to be.',
'We build live operations support systems that help teams manage ongoing product activity, coordinate releases, and make active digital products easier to operate over time.',
),
'workflow_points' => array(
array(
'title' => 'Event management interfaces',
'copy' => 'Support internal teams with tooling for managing events, timing, and product activity more clearly.',
),
array(
'title' => 'Promotion and offer tools',
'copy' => 'Create systems that help teams manage promotions, campaign logic, and player-facing offers more efficiently.',
),
array(
'title' => 'Live content support panels',
'copy' => 'Provide better control over content updates, operational changes, and product adjustments during active service.',
),
array(
'title' => 'Operational monitoring views',
'copy' => 'Use dashboards and views that help teams understand live product activity and spot issues earlier.',
),
array(
'title' => 'Release coordination tools',
'copy' => 'Support the planning and execution of launches, updates, and active release cycles with clearer coordination systems.',
),
array(
'title' => 'Engagement support systems',
'copy' => 'Help teams manage the workflows behind retention, content cadence, and active player engagement initiatives.',
),
),
'apps_section_kicker' => 'Player Experience',
'apps_section_title' => 'Player-facing experience improvements that support usability, retention, and stronger connected journeys across touchpoints.',
'app_use_cases' => array(
array(
'title' => 'Onboarding and account journeys',
'copy' => 'Design clearer entry points so users can understand setup, accounts, and early product steps with less friction.',
),
array(
'title' => 'UI/UX improvements',
'copy' => 'Refine interfaces so important product actions feel easier to navigate, understand, and complete.',
),
array(
'title' => 'Performance-focused interfaces',
'copy' => 'Support more responsive digital interactions that improve perceived quality and day-to-day usability.',
),
array(
'title' => 'Retention-oriented experience design',
'copy' => 'Shape product experiences that support convenience, continuity, and long-term engagement over time.',
),
array(
'title' => 'Cross-platform consistency',
'copy' => 'Keep connected web, mobile, and product touchpoints more aligned so users encounter a clearer overall experience.',
),
array(
'title' => 'User engagement support',
'copy' => 'Design experience layers that help product teams reinforce participation, understanding, and repeat interaction.',
),
),
'ai_section_kicker' => 'Multiplayer And Analytics',
'ai_section_title' => 'Commercially useful support systems for multiplayer-related operations, engagement visibility, and smarter product decisions.',
'ai_intro' => array(
'Gaming and entertainment products often need supporting systems around sessions, account visibility, event tracking, retention analysis, and product intelligence. The goal is to help teams understand product behavior and improve decisions with clearer operational insight.',
),
'ai_use_cases' => array(
array(
'title' => 'Multiplayer support systems',
'copy' => 'Support coordination and operational workflows around multiplayer or session-based product experiences where relevant.',
),
array(
'title' => 'Session and account visibility tools',
'copy' => 'Give teams clearer views into user status, account activity, and interaction support across the product.',
),
array(
'title' => 'Engagement analytics dashboards',
'copy' => 'Turn product usage data into dashboards that help teams monitor engagement and product momentum more clearly.',
),
array(
'title' => 'Retention and usage reporting',
'copy' => 'Support better decisions with reporting that shows how users return, interact, and move through product journeys.',
),
array(
'title' => 'Event tracking and insights',
'copy' => 'Track important interactions and events so product teams can learn from live behavior with more confidence.',
),
array(
'title' => 'Operational product intelligence',
'copy' => 'Use reporting and product visibility to support ongoing planning, issue response, and next-step prioritization.',
),
),
'technology_groups' => array(),
'case_study_placeholders' => array(),
'faqs' => array(),
'cta_title' => 'Looking for a Technology Partner for Gaming & Entertainment Products?',
'cta_text' => 'Let’s talk about game production support, backend systems, live ops tooling, player experience improvements, analytics visibility, or scalable platform needs and shape the right delivery path together.',
'cta_primary_label' => 'Talk to Our Team',
'cta_secondary_label' => 'Get a Free Quote',
'meta_title' => 'Gaming & Entertainment Solutions | Backend Systems, Live Ops & Player Experience Platforms',
'meta_description' => 'Explore gaming and entertainment solutions including game production support, backend systems, live ops tooling, player experience improvements, multiplayer-supporting platforms, and analytics visibility.',
),
'healthcare' => array(
'name' => 'Healthcare',
'accent' => '#56c2c5',
'index_copy' => 'Patient-facing platforms, secure workflows, internal tools, and integrations designed around service delivery, clarity, and operational trust.',
'hero_title' => 'Digital Solutions for Healthcare Businesses',
'hero_subtitle' => 'We help healthcare organizations modernize patient journeys, streamline operational workflows, and connect digital systems that improve visibility, reliability, and service quality.',
'hero_points' => array(
'Industry-focused digital solutions',
'Scalable technology and integrations',
'Strategy, development, and long-term support',
),
'hero_visual_note' => 'Healthcare operations layer',
'hero_visual_caption' => 'Portals, scheduling, reporting',
'overview' => array(
'Healthcare businesses need digital systems that support trust, clarity, and operational consistency. Patient-facing experiences, internal workflows, reporting, and connected systems all play a role in how efficiently care and service delivery can operate.',
'We work with healthcare teams on patient portals, scheduling experiences, operational dashboards, integrations, and modernization initiatives that reduce friction for both users and internal staff.',
),
'highlights' => array(
array(
'title' => 'Patient experience needs',
'copy' => 'Users expect clear digital journeys for information, scheduling, updates, and communication.',
),
array(
'title' => 'Operational complexity',
'copy' => 'Care delivery, scheduling, administration, and reporting often span multiple tools and teams.',
),
array(
'title' => 'Workflow reliability',
'copy' => 'Internal systems need better visibility and fewer manual handoffs to keep service levels consistent.',
),
array(
'title' => 'Modernization priorities',
'copy' => 'Legacy portals and disconnected software can create friction for both staff and patients.',
),
),
'challenges' => array(
array(
'badge' => 'PT',
'title' => 'Patient journeys that lack clarity',
'copy' => 'Scheduling, account setup, follow-up communication, and service visibility often feel more complex than they should.',
),
array(
'badge' => 'OPS',
'title' => 'Disconnected internal systems',
'copy' => 'Operations teams can struggle when intake, scheduling, reporting, and communication live across separate tools.',
),
array(
'badge' => 'DATA',
'title' => 'Limited real-time visibility',
'copy' => 'Without clearer dashboards and connected workflows, service teams lose time chasing updates and status details.',
),
array(
'badge' => 'UX',
'title' => 'Outdated interfaces',
'copy' => 'Older portals and admin tools make important tasks slower, harder to understand, and less dependable.',
),
array(
'badge' => 'MOB',
'title' => 'Weak mobile usability',
'copy' => 'Healthcare users increasingly expect critical actions to work cleanly across phone, tablet, and desktop environments.',
),
array(
'badge' => 'SCL',
'title' => 'Hard-to-scale digital foundations',
'copy' => 'Future workflow improvements and integrations become harder when the core platform is difficult to evolve.',
),
),
'services' => array(
array(
'key' => 'web-development',
'copy' => 'Design patient-facing portals and internal healthcare tools with clearer journeys and stronger usability.',
),
array(
'key' => 'custom-software-development',
'copy' => 'Build scheduling systems, workflow dashboards, and operational platforms around the needs of care delivery teams.',
),
array(
'key' => 'ui-ux-design',
'copy' => 'Simplify patient, staff, and admin experiences so critical actions are easier to understand and complete.',
),
array(
'key' => 'integrations',
'copy' => 'Connect portals and internal systems with CRM, scheduling, reporting, and line-of-business software.',
),
array(
'key' => 'app-development',
'copy' => 'Support mobile-first service experiences for patients, staff, and field-based healthcare workflows.',
),
array(
'key' => 'support-maintenance',
'copy' => 'Maintain release confidence, issue response, and long-term improvement planning after launch.',
),
),
'technologies_intro' => 'Healthcare technology choices should reflect workflow sensitivity, user trust, reporting needs, integrations, and the reality that both patient-facing and internal experiences need to stay dependable.',
'technology_groups' => array(
array(
'label' => 'Platforms',
'items' => array( 'Custom portals', 'Scheduling systems', 'Secure web applications' ),
),
array(
'label' => 'Frontend',
'items' => array( 'React', 'Next.js', 'Responsive patient interfaces' ),
),
array(
'label' => 'Backend',
'items' => array( 'PHP', 'Laravel', 'Node.js APIs' ),
),
array(
'label' => 'Integrations',
'items' => array( 'Scheduling tools', 'CRM', 'Reporting systems', 'API middleware' ),
),
array(
'label' => 'Analytics',
'items' => array( 'GA4', 'Dashboard reporting', 'Operational analytics' ),
),
array(
'label' => 'Cloud / Infrastructure',
'items' => array( 'AWS', 'Monitoring', 'Backup and deployment pipelines' ),
),
),
'case_study_placeholders' => array(
array(
'title' => 'Patient Engagement Portal Refresh',
'summary' => 'Challenge: patient journeys lacked clarity. Solution: a cleaner portal experience with structured scheduling and communication flows. Outcome: easier digital access and stronger service confidence.',
'services' => array( 'Web Development', 'UI/UX Design' ),
'platforms' => array( 'Custom Portal' ),
),
array(
'title' => 'Care Coordination Dashboard',
'summary' => 'Challenge: operational visibility was fragmented. Solution: a dashboard for status tracking, reporting, and internal coordination. Outcome: better day-to-day workflow control.',
'services' => array( 'Custom Software Development', 'Integrations' ),
'platforms' => array( 'Web App' ),
),
array(
'title' => 'Appointment Workflow Modernization',
'summary' => 'Challenge: scheduling and follow-up depended on manual handoffs. Solution: a connected digital workflow. Outcome: smoother operations and a clearer user journey.',
'services' => array( 'App Development', 'Support & Maintenance' ),
'platforms' => array( 'Mobile App' ),
),
),
'faq_focus' => 'patient portals, internal workflow systems, healthcare dashboards, and operational modernization',
'faq_integrations' => 'scheduling tools, CRM systems, reporting layers, and healthcare operations software',
'workflow_context' => 'patient communication, internal coordination, scheduling, and service visibility',
'growth_focus' => 'service quality, operational efficiency, and future-ready digital foundations',
'technology_selection_note' => 'workflow sensitivity, reporting needs, internal system dependencies, and the user trust required in healthcare experiences',
),
'manufacturing' => array(
'name' => 'Manufacturing',
'accent' => '#4e74ff',
'index_copy' => 'Operational dashboards, dealer portals, ERP-connected tools, and custom software that reduce manual work and improve manufacturing visibility.',
'hero_title' => 'Technology Services for Manufacturing Companies',
'hero_subtitle' => 'We help manufacturing businesses modernize customer-facing and internal systems with connected platforms, workflow tools, integrations, and delivery models built for operational complexity.',
'hero_points' => array(
'Industry-focused digital solutions',
'Scalable technology and integrations',
'Strategy, development, and long-term support',
),
'hero_visual_note' => 'Manufacturing visibility layer',
'hero_visual_caption' => 'Portals, dashboards, ERP workflows',
'overview' => array(
'Manufacturing teams depend on digital systems that support quoting, inventory, production visibility, dealer or distributor access, and operational reporting. When those tools are outdated or disconnected, growth becomes harder to manage.',
'We support manufacturers with portals, internal applications, dashboards, integrations, and modernization work that make operations easier to run and customer-facing workflows easier to support.',
),
'highlights' => array(
array(
'title' => 'Operational complexity',
'copy' => 'Production, inventory, dealer workflows, and internal reporting often depend on several disconnected systems.',
),
array(
'title' => 'Customer expectations',
'copy' => 'B2B buyers and distributors expect clearer product access, account visibility, and self-service interactions.',
),
array(
'title' => 'Workflow efficiency',
'copy' => 'Teams need dashboards, automation, and cleaner handoffs to reduce manual overhead.',
),
array(
'title' => 'Modernization needs',
'copy' => 'Legacy portals and operational tools can limit visibility, scale, and release speed.',
),
),
'challenges' => array(
array(
'badge' => 'ERP',
'title' => 'Disconnected production and business tools',
'copy' => 'Inventory, quoting, production updates, and customer information often live across multiple systems without clear visibility.',
),
array(
'badge' => 'B2B',
'title' => 'Weak self-service experiences',
'copy' => 'Dealers, distributors, and buyers may not have modern digital workflows for orders, account access, and product information.',
),
array(
'badge' => 'OPS',
'title' => 'Manual operational reporting',
'copy' => 'Teams lose time pulling status updates and metrics from fragmented sources instead of working from live data.',
),
array(
'badge' => 'UX',
'title' => 'Legacy internal interfaces',
'copy' => 'Older systems make critical production and admin tasks harder to complete, train, and optimize.',
),
array(
'badge' => 'SCL',
'title' => 'Hard-to-extend platforms',
'copy' => 'Adding new workflows, accounts, integrations, or dashboards becomes more expensive on rigid foundations.',
),
array(
'badge' => 'DATA',
'title' => 'Limited real-time visibility',
'copy' => 'Without better reporting and connected systems, decision-making becomes slower and less reliable.',
),
),
'services' => array(
array(
'key' => 'custom-software-development',
'copy' => 'Create portals, dashboards, and workflow tools shaped around production, account, and operational needs.',
),
array(
'key' => 'web-development',
'copy' => 'Build manufacturing-facing web experiences for dealers, distributors, buyers, and internal teams.',
),
array(
'key' => 'integrations',
'copy' => 'Connect ERP, CRM, reporting, inventory, and order systems so digital workflows reflect real operational data.',
),
array(
'key' => 'ui-ux-design',
'copy' => 'Simplify complex internal workflows so users can move faster through quoting, tracking, and reporting tasks.',
),
array(
'key' => 'performance-optimization',
'copy' => 'Improve reliability and speed where operational tools need to support day-to-day execution without friction.',
),
array(
'key' => 'support-maintenance',
'copy' => 'Support continuous platform improvements, issue handling, and roadmap delivery after launch.',
),
),
'technologies_intro' => 'Manufacturing technology choices should be shaped by operational visibility, ERP connections, account structures, reporting needs, and the pace of internal process change.',
'technology_groups' => array(
array(
'label' => 'Platforms',
'items' => array( 'Dealer portals', 'Operational dashboards', 'Custom B2B platforms' ),
),
array(
'label' => 'Frontend',
'items' => array( 'React', 'Next.js', 'Responsive admin interfaces' ),
),
array(
'label' => 'Backend',
'items' => array( 'Laravel', 'PHP services', 'Node.js APIs' ),
),
array(
'label' => 'Integrations',
'items' => array( 'ERP', 'CRM', 'Inventory systems', 'Reporting connectors' ),
),
array(
'label' => 'Analytics',
'items' => array( 'Operational reporting', 'GA4', 'Custom dashboards' ),
),
array(
'label' => 'Cloud / Infrastructure',
'items' => array( 'AWS', 'Docker', 'CI/CD pipelines' ),
),
),
'case_study_placeholders' => array(
array(
'title' => 'Dealer Ordering Portal Modernization',
'summary' => 'Challenge: account workflows were fragmented. Solution: a connected portal for product access and ordering. Outcome: cleaner self-service and stronger operational visibility.',
'services' => array( 'Custom Software Development', 'Web Development' ),
'platforms' => array( 'B2B Portal' ),
),
array(
'title' => 'Production Visibility Dashboard',
'summary' => 'Challenge: reporting was manual and delayed. Solution: a live dashboard tied to operations data. Outcome: faster decisions and reduced coordination overhead.',
'services' => array( 'Integrations', 'Performance Optimization' ),
'platforms' => array( 'Dashboard' ),
),
array(
'title' => 'ERP-Connected Quote Workflow',
'summary' => 'Challenge: quoting and order status moved slowly. Solution: a connected workflow with cleaner interfaces and system handoffs. Outcome: better team efficiency.',
'services' => array( 'UI/UX Design', 'Support & Maintenance' ),
'platforms' => array( 'Web App' ),
),
),
'faq_focus' => 'operational dashboards, portals, internal tools, ERP-connected workflows, and manufacturing software modernization',
'faq_integrations' => 'ERP, CRM, inventory, reporting, and order management systems',
'workflow_context' => 'dealer access, quoting, production visibility, and internal operations',
'growth_focus' => 'scale, operational clarity, and future-ready digital processes',
'technology_selection_note' => 'workflow complexity, ERP dependency, visibility needs, and the pace of manufacturing operations',
),
'b2b' => array(
'name' => 'B2B',
'accent' => '#5f6fff',
'index_copy' => 'B2B portals, quoting flows, account experiences, and custom tools designed around longer buying cycles and complex operational workflows.',
'hero_title' => 'B2B Digital Platforms and Workflow Solutions',
'hero_subtitle' => 'We help B2B businesses improve account journeys, self-service workflows, internal operations, and connected digital systems through tailored product delivery and platform development.',
'hero_points' => array(
'Industry-focused digital solutions',
'Scalable technology and integrations',
'Strategy, development, and long-term support',
),
'hero_visual_note' => 'B2B self-service stack',
'hero_visual_caption' => 'Portals, quoting, account workflows',
'overview' => array(
'B2B organizations often need digital systems that support account complexity, multi-step buying journeys, quotes, approvals, support workflows, and internal coordination. Generic user flows rarely match how real B2B operations work.',
'We build B2B platforms, portals, internal tools, integrations, and workflow products that help commercial teams, operations teams, and customers move through complex processes with less friction.',
),
'highlights' => array(
array(
'title' => 'Account complexity',
'copy' => 'B2B users often manage approvals, multiple stakeholders, and repeat workflows that need deeper self-service support.',
),
array(
'title' => 'Operational coordination',
'copy' => 'Sales, delivery, customer success, and operations all depend on clearer digital handoffs.',
),
array(
'title' => 'Growth readiness',
'copy' => 'Modern B2B journeys need stronger portals, better reporting, and scalable integrations.',
),
array(
'title' => 'Modernization needs',
'copy' => 'Older B2B tools can slow quoting, account management, and internal execution.',
),
),
'challenges' => array(
array(
'badge' => 'AC',
'title' => 'Weak account self-service',
'copy' => 'Customers often need clearer portals for account access, reordering, support, and documentation.',
),
array(
'badge' => 'QTE',
'title' => 'Slow quote and approval flows',
'copy' => 'B2B sales and delivery cycles become harder to manage when requests move through manual processes.',
),
array(
'badge' => 'OPS',
'title' => 'Disconnected internal systems',
'copy' => 'Sales, operations, and customer teams lose time when workflows are split across legacy tools and spreadsheets.',
),
array(
'badge' => 'UX',
'title' => 'Outdated user experiences',
'copy' => 'B2B buyers still expect clean digital journeys, even when the process is more complex than direct-to-consumer commerce.',
),
array(
'badge' => 'DATA',
'title' => 'Limited reporting and visibility',
'copy' => 'Without clearer dashboards, account and workflow decisions become more reactive than they need to be.',
),
array(
'badge' => 'SCL',
'title' => 'Difficult platform scaling',
'copy' => 'Adding new account structures, workflows, or integrations becomes slower on inflexible foundations.',
),
),
'services' => array(
array(
'key' => 'custom-software-development',
'copy' => 'Build B2B portals, quoting tools, dashboards, and workflow software that reflect real account complexity.',
),
array(
'key' => 'web-development',
'copy' => 'Create customer and partner experiences for account management, documentation, reordering, and support.',
),
array(
'key' => 'integrations',
'copy' => 'Connect CRM, ERP, quoting, support, and reporting systems into cleaner digital workflows.',
),
array(
'key' => 'ui-ux-design',
'copy' => 'Simplify complex buying and account journeys so users can complete key tasks with more confidence.',
),
array(
'key' => 'app-development',
'copy' => 'Support mobile-friendly workflows for field teams, customer access, and operational visibility where needed.',
),
array(
'key' => 'support-maintenance',
'copy' => 'Support long-term B2B platform improvements as account needs, integrations, and workflows evolve.',
),
),
'technologies_intro' => 'B2B platforms need technology choices that support permissions, workflow depth, integrations, account structures, and long-term maintainability.',
'technology_groups' => array(
array(
'label' => 'Platforms',
'items' => array( 'B2B portals', 'Partner dashboards', 'Account management tools' ),
),
array(
'label' => 'Frontend',
'items' => array( 'React', 'Next.js', 'Responsive account interfaces' ),
),
array(
'label' => 'Backend',
'items' => array( 'Laravel', 'PHP', 'Node.js services' ),
),
array(
'label' => 'Integrations',
'items' => array( 'CRM', 'ERP', 'Support systems', 'Document workflows' ),
),
array(
'label' => 'Analytics',
'items' => array( 'GA4', 'Sales reporting', 'Operational dashboards' ),
),
array(
'label' => 'Cloud / Infrastructure',
'items' => array( 'AWS', 'Docker', 'CI/CD' ),
),
),
'case_study_placeholders' => array(
array(
'title' => 'Customer Account Portal Upgrade',
'summary' => 'Challenge: account workflows were fragmented. Solution: a self-service portal with cleaner structure and clearer actions. Outcome: stronger B2B usability and support efficiency.',
'services' => array( 'Web Development', 'UI/UX Design' ),
'platforms' => array( 'B2B Portal' ),
),
array(
'title' => 'Quote And Approval Workflow Platform',
'summary' => 'Challenge: quote handling was manual and slow. Solution: a workflow platform connected to internal systems. Outcome: faster execution and clearer visibility.',
'services' => array( 'Custom Software Development', 'Integrations' ),
'platforms' => array( 'Workflow Platform' ),
),
array(
'title' => 'Partner Reporting Dashboard',
'summary' => 'Challenge: teams lacked live account insights. Solution: a dashboard for operational and account reporting. Outcome: better coordination and stronger decision-making.',
'services' => array( 'App Development', 'Support & Maintenance' ),
'platforms' => array( 'Dashboard' ),
),
),
'faq_focus' => 'B2B portals, account journeys, quoting workflows, internal tools, and connected digital operations',
'faq_integrations' => 'CRM, ERP, quoting systems, support tools, and reporting platforms',
'workflow_context' => 'account management, approvals, quoting, reordering, and internal coordination',
'growth_focus' => 'longer sales cycles, account complexity, and scalable digital operations',
'technology_selection_note' => 'permissions, workflow depth, integrations, and the complexity of B2B buying and service models',
),
'education' => array(
'name' => 'Education',
'accent' => '#ffb546',
'index_copy' => 'Learning platforms, portals, mobile experiences, and internal systems that improve access, engagement, and operational efficiency in education.',
'hero_title' => 'Digital Solutions for Education and Learning Platforms',
'hero_subtitle' => 'We help education businesses and learning teams improve learner experience, internal workflows, reporting, and digital delivery through scalable platforms, apps, and modern web products.',
'hero_points' => array(
'Industry-focused digital solutions',
'Scalable technology and integrations',
'Strategy, development, and long-term support',
),
'hero_visual_note' => 'Learning platform ecosystem',
'hero_visual_caption' => 'Portals, dashboards, mobile learning',
'overview' => array(
'Education and learning businesses need digital experiences that support discovery, enrollment, learner engagement, content access, reporting, and operational coordination. Those journeys often involve multiple user types and evolving delivery models.',
'We build education-focused web platforms, portals, apps, dashboards, and workflow systems that make learning experiences easier to access and internal teams easier to support.',
),
'highlights' => array(
array(
'title' => 'Learner experience',
'copy' => 'Students and users expect clear digital access to content, progress, and communication across devices.',
),
array(
'title' => 'Operational complexity',
'copy' => 'Enrollment, content management, reporting, and support often rely on too many disconnected tools.',
),
array(
'title' => 'Growth opportunities',
'copy' => 'Scalable learning products need modern platforms that support new content and audiences over time.',
),
array(
'title' => 'Modernization needs',
'copy' => 'Outdated education systems can limit usability, visibility, and the pace of change.',
),
),
'challenges' => array(
array(
'badge' => 'UX',
'title' => 'Inconsistent learning journeys',
'copy' => 'Enrollment, course access, progress tracking, and support can feel fragmented across the platform.',
),
array(
'badge' => 'CMS',
'title' => 'Content management friction',
'copy' => 'Teams can struggle to update learning content, resources, and communications quickly or consistently.',
),
array(
'badge' => 'RPT',
'title' => 'Weak learner reporting',
'copy' => 'Without better dashboards and analytics, it is harder to understand usage, engagement, and operational issues.',
),
array(
'badge' => 'MOB',
'title' => 'Poor mobile access',
'copy' => 'Learners increasingly depend on mobile-friendly journeys for content, updates, and account activity.',
),
array(
'badge' => 'OPS',
'title' => 'Manual admin workflows',
'copy' => 'Support, enrollment, and operational handling can become too reliant on spreadsheets and disconnected tools.',
),
array(
'badge' => 'SCL',
'title' => 'Scaling challenges',
'copy' => 'Growing education products need better architecture and connected systems to support new audiences and programs.',
),
),
'services' => array(
array(
'key' => 'web-development',
'copy' => 'Build education platforms and learner-facing websites with clearer journeys and better access to content.',
),
array(
'key' => 'app-development',
'copy' => 'Create mobile learning and account experiences that improve engagement and on-the-go usability.',
),
array(
'key' => 'custom-software-development',
'copy' => 'Develop portals, admin tools, and dashboards for enrollment, learner progress, and internal workflows.',
),
array(
'key' => 'ui-ux-design',
'copy' => 'Refine learner journeys, onboarding, navigation, and content discovery so the experience feels simpler and more useful.',
),
array(
'key' => 'integrations',
'copy' => 'Connect LMS, CRM, payment, reporting, and communication systems into a cleaner operating model.',
),
array(
'key' => 'support-maintenance',
'copy' => 'Support content updates, platform changes, and long-term delivery needs after launch.',
),
),
'technologies_intro' => 'Education technology should be chosen around learner access, content management, reporting, user roles, and the need to support both learner-facing and internal teams with the same platform foundation.',
'technology_groups' => array(
array(
'label' => 'Platforms',
'items' => array( 'Learning portals', 'Content platforms', 'Web apps' ),
),
array(
'label' => 'Frontend',
'items' => array( 'React', 'Next.js', 'Responsive learning interfaces' ),
),
array(
'label' => 'Backend',
'items' => array( 'PHP', 'Laravel', 'Node.js' ),
),
array(
'label' => 'Integrations',
'items' => array( 'LMS connectors', 'CRM', 'Payments', 'Communication tools' ),
),
array(
'label' => 'Analytics',
'items' => array( 'GA4', 'Learning analytics', 'Custom reporting' ),
),
array(
'label' => 'Cloud / Infrastructure',
'items' => array( 'AWS', 'CDN', 'Deployment pipelines' ),
),
),
'case_study_placeholders' => array(
array(
'title' => 'Learner Portal Experience Refresh',
'summary' => 'Challenge: course access and progress tracking felt fragmented. Solution: a more coherent learner portal. Outcome: clearer journeys and stronger engagement.',
'services' => array( 'Web Development', 'UI/UX Design' ),
'platforms' => array( 'Learning Portal' ),
),
array(
'title' => 'Enrollment Workflow Dashboard',
'summary' => 'Challenge: enrollment handling was too manual. Solution: a dashboard connected to key workflows and updates. Outcome: better admin efficiency and visibility.',
'services' => array( 'Custom Software Development', 'Integrations' ),
'platforms' => array( 'Dashboard' ),
),
array(
'title' => 'Mobile Learning Companion App',
'summary' => 'Challenge: mobile engagement was limited. Solution: a mobile-first learning experience for access and notifications. Outcome: better learner continuity.',
'services' => array( 'App Development', 'Support & Maintenance' ),
'platforms' => array( 'Mobile App' ),
),
),
'faq_focus' => 'learning platforms, learner portals, mobile experiences, dashboards, and education workflow systems',
'faq_integrations' => 'LMS, CRM, payment systems, reporting tools, and communication platforms',
'workflow_context' => 'enrollment, content access, learner progress, and operational coordination',
'growth_focus' => 'new audiences, scalable learning delivery, and better operational efficiency',
'technology_selection_note' => 'learner experience, content workflows, reporting needs, and the roles different education users play in the product',
),
'automotive' => array(
'name' => 'Automotive',
'accent' => '#1a8d7b',
'index_copy' => 'Dealer tools, customer experience platforms, portals, and connected workflows built around service, catalog, and operational visibility in automotive.',
'hero_title' => 'Technology Solutions for Automotive Businesses',
'hero_subtitle' => 'We help automotive businesses modernize customer journeys, dealer workflows, internal systems, and connected digital platforms through tailored product, integration, and workflow delivery.',
'hero_points' => array(
'Industry-focused digital solutions',
'Scalable technology and integrations',
'Strategy, development, and long-term support',
),
'hero_visual_note' => 'Automotive digital workflow',
'hero_visual_caption' => 'Portals, catalogs, service workflows',
'overview' => array(
'Automotive businesses often manage digital experiences across product catalogs, parts workflows, dealer or distributor access, service journeys, and internal operations. Those systems need to work together to support both customer-facing and operational goals.',
'We support automotive businesses with portals, workflow platforms, apps, dashboards, and integrations that make digital journeys clearer and daily operations easier to manage.',
),
'highlights' => array(
array(
'title' => 'Customer and dealer experience',
'copy' => 'Automotive users expect faster access to product, account, and service information across channels.',
),
array(
'title' => 'Operational workflows',
'copy' => 'Service teams, catalogs, logistics, and account handling often depend on disconnected tools.',
),
array(
'title' => 'Modernization potential',
'copy' => 'Dealer portals, service workflows, and internal tools often need cleaner UX and system visibility.',
),
array(
'title' => 'Scalable integrations',
'copy' => 'Connected parts, service, and account systems become more important as operations grow.',
),
),
'challenges' => array(
array(
'badge' => 'CAT',
'title' => 'Complex catalog and parts workflows',
'copy' => 'Users need better access to product, parts, and account information without navigating fragmented systems.',
),
array(
'badge' => 'DLR',
'title' => 'Weak dealer or partner portals',
'copy' => 'Dealer networks often lack modern self-service experiences for ordering, support, and account management.',
),
array(
'badge' => 'SRV',
'title' => 'Service workflow friction',
'copy' => 'Appointment, support, and service-related journeys can become harder to manage when tools are disconnected.',
),
array(
'badge' => 'OPS',
'title' => 'Manual coordination',
'copy' => 'Operations teams can lose time on updates, reporting, and handoffs that should be supported by better workflows.',
),
array(
'badge' => 'MOB',
'title' => 'Mobile usability gaps',
'copy' => 'Field and customer-facing users need responsive digital flows that support quick action and visibility.',
),
array(
'badge' => 'SCL',
'title' => 'Hard-to-evolve systems',
'copy' => 'Legacy automotive platforms can slow launches, integrations, and future digital improvements.',
),
),
'services' => array(
array(
'key' => 'web-development',
'copy' => 'Build automotive portals, catalog experiences, and customer-facing web products with clearer journeys.',
),
array(
'key' => 'custom-software-development',
'copy' => 'Create workflow software for dealer, service, account, and internal operational use cases.',
),
array(
'key' => 'integrations',
'copy' => 'Connect catalogs, CRM, ERP, parts systems, and service workflows into a cleaner digital stack.',
),
array(
'key' => 'ui-ux-design',
'copy' => 'Improve product discovery, dealer experiences, service steps, and internal interfaces for faster task completion.',
),
array(
'key' => 'app-development',
'copy' => 'Support mobile workflows for field teams, customers, and operational visibility where speed matters.',
),
array(
'key' => 'support-maintenance',
'copy' => 'Keep platforms stable, iterative, and ready for ongoing business changes after launch.',
),
),
'technologies_intro' => 'Automotive digital delivery should be shaped around catalog complexity, service processes, dealer or partner access, integrations, and the need for dependable operational visibility.',
'technology_groups' => array(
array(
'label' => 'Platforms',
'items' => array( 'Dealer portals', 'Catalog platforms', 'Service web apps' ),
),
array(
'label' => 'Frontend',
'items' => array( 'React', 'Next.js', 'Responsive account interfaces' ),
),
array(
'label' => 'Backend',
'items' => array( 'Laravel', 'PHP services', 'Node.js APIs' ),
),
array(
'label' => 'Integrations',
'items' => array( 'CRM', 'ERP', 'Catalog systems', 'Service workflow APIs' ),
),
array(
'label' => 'Analytics',
'items' => array( 'GA4', 'Service reporting', 'Operational dashboards' ),
),
array(
'label' => 'Cloud / Infrastructure',
'items' => array( 'AWS', 'Docker', 'Monitoring' ),
),
),
'case_study_placeholders' => array(
array(
'title' => 'Dealer Self-Service Portal',
'summary' => 'Challenge: dealer workflows were slow and fragmented. Solution: a cleaner portal with connected account actions. Outcome: faster service and better visibility.',
'services' => array( 'Web Development', 'UI/UX Design' ),
'platforms' => array( 'Dealer Portal' ),
),
array(
'title' => 'Service Workflow Dashboard',
'summary' => 'Challenge: operational updates were manual. Solution: a dashboard tied to service and account data. Outcome: better coordination and faster decisions.',
'services' => array( 'Custom Software Development', 'Integrations' ),
'platforms' => array( 'Dashboard' ),
),
array(
'title' => 'Parts Catalog Experience Upgrade',
'summary' => 'Challenge: users struggled with product discovery. Solution: a modernized digital catalog with clearer flows. Outcome: easier access and stronger experience quality.',
'services' => array( 'App Development', 'Support & Maintenance' ),
'platforms' => array( 'Catalog Platform' ),
),
),
'faq_focus' => 'dealer portals, service workflows, catalog experiences, automotive dashboards, and connected digital operations',
'faq_integrations' => 'CRM, ERP, catalog systems, parts databases, and service workflow tools',
'workflow_context' => 'dealer operations, service journeys, account workflows, and catalog visibility',
'growth_focus' => 'better customer and dealer experience, clearer operations, and scalable digital improvements',
'technology_selection_note' => 'catalog complexity, service workflow depth, dealer access needs, and the systems that power automotive operations',
),
'fashion' => array(
'name' => 'Fashion',
'accent' => '#d76bb2',
'index_copy' => 'Commerce, editorial experiences, mobile journeys, and brand systems built for fast-moving fashion and lifestyle businesses.',
'hero_title' => 'eCommerce and Experience Solutions for Fashion Brands',
'hero_subtitle' => 'We help fashion and lifestyle brands improve digital storytelling, product discovery, mobile commerce, and campaign agility through connected platforms and premium user experiences.',
'hero_points' => array(
'Industry-focused digital solutions',
'Scalable technology and integrations',
'Strategy, development, and long-term support',
),
'hero_visual_note' => 'Fashion commerce stack',
'hero_visual_caption' => 'Editorial, mobile, retention',
'overview' => array(
'Fashion businesses rely on strong digital presentation, mobile-first shopping, launch readiness, and campaign agility. The digital platform needs to support both premium brand storytelling and operational speed behind the scenes.',
'We support fashion brands with commerce development, mobile experiences, editorial UX, integrations, and optimization work that improves both customer-facing quality and team execution.',
),
'highlights' => array(
array(
'title' => 'Brand-led customer experience',
'copy' => 'Fashion customers expect strong visuals, smooth discovery, and premium product storytelling across devices.',
),
array(
'title' => 'Campaign velocity',
'copy' => 'Teams need to move quickly on launches, lookbooks, merchandising, and seasonal updates without platform friction.',
),
array(
'title' => 'Retention opportunities',
'copy' => 'Account, loyalty, and repeat-purchase journeys matter just as much as first-visit presentation.',
),
array(
'title' => 'Digital modernization',
'copy' => 'Legacy commerce systems can block performance, flexibility, and premium experience execution.',
),
),
'challenges' => array(
array(
'badge' => 'BRD',
'title' => 'Weak brand presentation online',
'copy' => 'Product storytelling, campaign landing pages, and editorial journeys often need more flexibility and polish.',
),
array(
'badge' => 'MOB',
'title' => 'Mobile experience friction',
'copy' => 'Fashion users often browse and buy on mobile, where slow or cluttered flows quickly hurt engagement.',
),
array(
'badge' => 'MRCH',
'title' => 'Slow merchandising updates',
'copy' => 'Campaigns, seasonal drops, and collection updates can take too much effort on rigid platforms.',
),
array(
'badge' => 'OPS',
'title' => 'Disconnected catalog and operations data',
'copy' => 'Customer-facing presentation and internal execution need better coordination across the stack.',
),
array(
'badge' => 'PERF',
'title' => 'Performance issues during launches',
'copy' => 'Traffic spikes and high-visibility campaigns reveal the limits of slow or unstable storefronts.',
),
array(
'badge' => 'RET',
'title' => 'Limited repeat-purchase journeys',
'copy' => 'Retention and account experiences often need stronger structure to support long-term brand growth.',
),
),
'services' => array(
array(
'key' => 'ecommerce-development',
'copy' => 'Create premium commerce experiences that balance brand storytelling, conversion, and merchandising agility.',
),
array(
'key' => 'ui-ux-design',
'copy' => 'Refine mobile-first fashion journeys, editorial layouts, and customer flows for a stronger brand impression.',
),
array(
'key' => 'app-development',
'copy' => 'Support mobile shopping, loyalty, and customer engagement with polished app experiences.',
),
array(
'key' => 'integrations',
'copy' => 'Connect catalog, inventory, campaign, and customer data into a cleaner operating model.',
),
array(
'key' => 'performance-optimization',
'copy' => 'Improve speed and release confidence for campaigns, launches, and high-traffic periods.',
),
array(
'key' => 'support-maintenance',
'copy' => 'Support continuous brand, campaign, and platform iteration after launch.',
),
),
'technologies_intro' => 'Fashion and lifestyle stacks should be shaped around visual storytelling, mobile commerce, merchandising speed, catalog structure, and campaign performance requirements.',
'technology_groups' => array(
array(
'label' => 'Platforms',
'items' => array( 'Shopify Plus', 'Adobe Commerce', 'WooCommerce' ),
),
array(
'label' => 'Frontend',
'items' => array( 'React', 'Next.js', 'Editorial storefront patterns' ),
),
array(
'label' => 'Backend',
'items' => array( 'PHP', 'Laravel', 'Node.js' ),
),
array(
'label' => 'Integrations',
'items' => array( 'PIM', 'ERP', 'Campaign tooling', 'Customer data connectors' ),
),
array(
'label' => 'Analytics',
'items' => array( 'GA4', 'Conversion reporting', 'Campaign analytics' ),
),
array(
'label' => 'Cloud / Infrastructure',
'items' => array( 'AWS', 'CDN', 'CI/CD' ),
),
),
'case_study_placeholders' => array(
array(
'title' => 'Fashion Commerce Replatform',
'summary' => 'Challenge: brand presentation and commerce agility were limited. Solution: a modernized storefront with cleaner editorial and shopping flows. Outcome: better launch readiness and customer experience.',
'services' => array( 'eCommerce Development', 'UI/UX Design' ),
'platforms' => array( 'Shopify Plus' ),
),
array(
'title' => 'Mobile Loyalty And Shopping App',
'summary' => 'Challenge: mobile retention journeys were weak. Solution: an app focused on account, loyalty, and product engagement. Outcome: better continuity across customer touchpoints.',
'services' => array( 'App Development', 'Integrations' ),
'platforms' => array( 'Mobile App' ),
),
array(
'title' => 'Campaign Performance Optimization',
'summary' => 'Challenge: launches exposed performance issues. Solution: a focused optimization and release-readiness program. Outcome: stronger experience quality during key campaigns.',
'services' => array( 'Performance Optimization', 'Support & Maintenance' ),
'platforms' => array( 'Web Platform' ),
),
),
'faq_focus' => 'fashion commerce, mobile shopping, editorial experiences, integrations, and brand-led digital delivery',
'faq_integrations' => 'PIM, ERP, campaign tooling, payment systems, and customer data platforms',
'workflow_context' => 'merchandising, seasonal launches, customer engagement, and premium digital presentation',
'growth_focus' => 'brand-led conversion, campaign readiness, and long-term retention',
'technology_selection_note' => 'visual storytelling, mobile expectations, catalog management, and the pace of campaign and merchandising changes',
),
'logistics' => array(
'name' => 'Logistics',
'accent' => '#34b0de',
'index_copy' => 'Workflow platforms, dashboards, mobile tools, and operational systems built to improve visibility, coordination, and execution for logistics teams.',
'hero_title' => 'Operational Platforms for Logistics and Supply Chain Teams',
'hero_subtitle' => 'We help logistics businesses improve field workflows, status visibility, internal coordination, and platform scalability through custom software, integrations, and delivery-focused digital products.',
'hero_points' => array(
'Industry-focused digital solutions',
'Scalable technology and integrations',
'Strategy, development, and long-term support',
),
'hero_visual_note' => 'Logistics workflow hub',
'hero_visual_caption' => 'Dispatch, tracking, operations',
'overview' => array(
'Logistics and supply chain teams need systems that support dispatch, coordination, reporting, field visibility, and internal decision-making in real time. Manual updates and disconnected tools create operational drag very quickly.',
'We build workflow platforms, dashboards, portals, integrations, and mobile tools that help logistics organizations reduce friction and improve operational clarity across the work they manage every day.',
),
'highlights' => array(
array(
'title' => 'Real-time visibility',
'copy' => 'Teams need live access to status, updates, and workflow signals to manage logistics activity with confidence.',
),
array(
'title' => 'Operational coordination',
'copy' => 'Dispatch, field activity, support teams, and reporting all depend on better-connected workflows.',
),
array(
'title' => 'Workflow efficiency',
'copy' => 'Reducing manual overhead and fragmented tools has a direct impact on service quality and team speed.',
),
array(
'title' => 'Scale readiness',
'copy' => 'As routes, teams, and process complexity grow, the platform foundation has to stay manageable.',
),
),
'challenges' => array(
array(
'badge' => 'VIS',
'title' => 'Workflow visibility gaps',
'copy' => 'Dispatch, field activity, and updates are harder to manage when data is spread across disconnected tools.',
),
array(
'badge' => 'OPS',
'title' => 'Manual coordination overhead',
'copy' => 'Teams lose time on updates, follow-up work, and status handling that should be supported by better product logic.',
),
array(
'badge' => 'RPT',
'title' => 'Reporting friction',
'copy' => 'Operational insight is slower and less dependable when teams rely on fragmented reporting workflows.',
),
array(
'badge' => 'MOB',
'title' => 'Field tool usability issues',
'copy' => 'Operational platforms need clean, mobile-friendly flows for teams working outside a desk-based environment.',
),
array(
'badge' => 'INT',
'title' => 'Difficult system handoffs',
'copy' => 'Integrations between routing, updates, alerts, and internal systems often need cleaner structure.',
),
array(
'badge' => 'SCL',
'title' => 'Scaling process complexity',
'copy' => 'As operations grow, rigid tools become harder to adapt to new routes, teams, and service requirements.',
),
),
'services' => array(
array(
'key' => 'custom-software-development',
'copy' => 'Build workflow platforms, dashboards, and internal tools shaped around dispatch, visibility, and operational control.',
),
array(
'key' => 'app-development',
'copy' => 'Create mobile-ready experiences for field teams, status updates, and operational access on the move.',
),
array(
'key' => 'integrations',
'copy' => 'Connect logistics systems, notifications, reporting, and internal platforms into cleaner workflows.',
),
array(
'key' => 'web-development',
'copy' => 'Design operational dashboards, portals, and support interfaces for logistics and supply chain teams.',
),
array(
'key' => 'ui-ux-design',
'copy' => 'Simplify complex workflow states so teams can act faster with less confusion and rework.',
),
array(
'key' => 'support-maintenance',
'copy' => 'Support rollout quality, issue response, and continuous optimization after launch.',
),
),
'technologies_intro' => 'Logistics platforms need technology choices that reflect operational visibility, workflow responsiveness, field usability, reporting, and the systems that keep data moving across the organization.',
'technology_groups' => array(
array(
'label' => 'Platforms',
'items' => array( 'Workflow platforms', 'Dashboards', 'Operational web apps' ),
),
array(
'label' => 'Frontend',
'items' => array( 'React', 'Next.js', 'Mobile-first interface patterns' ),
),
array(
'label' => 'Backend',
'items' => array( 'PHP', 'Laravel', 'Node.js APIs' ),
),
array(
'label' => 'Integrations',
'items' => array( 'Routing tools', 'CRM', 'Notification services', 'Reporting connectors' ),
),
array(
'label' => 'Analytics',
'items' => array( 'Operational dashboards', 'GA4', 'Custom reporting' ),
),
array(
'label' => 'Cloud / Infrastructure',
'items' => array( 'AWS', 'Docker', 'Monitoring' ),
),
),
'case_study_placeholders' => array(
array(
'title' => 'Dispatch And Status Workflow Platform',
'summary' => 'Challenge: field coordination relied on fragmented updates. Solution: a connected workflow platform for dispatch and visibility. Outcome: better day-to-day operations and stronger reporting.',
'services' => array( 'Custom Software Development', 'Integrations' ),
'platforms' => array( 'Workflow Platform' ),
),
array(
'title' => 'Mobile Operations Companion App',
'summary' => 'Challenge: field teams lacked cleaner mobile workflows. Solution: a mobile-first operational experience. Outcome: faster updates and more dependable visibility.',
'services' => array( 'App Development', 'UI/UX Design' ),
'platforms' => array( 'Mobile App' ),
),
array(
'title' => 'Logistics Reporting Dashboard',
'summary' => 'Challenge: reporting required too much manual work. Solution: a dashboard tied to live workflow data. Outcome: stronger operational decision-making.',
'services' => array( 'Web Development', 'Support & Maintenance' ),
'platforms' => array( 'Dashboard' ),
),
),
'faq_focus' => 'workflow platforms, dispatch tools, dashboards, field-ready experiences, and connected logistics systems',
'faq_integrations' => 'routing tools, CRM, reporting systems, notifications, and operational software',
'workflow_context' => 'dispatch, updates, field coordination, reporting, and internal logistics execution',
'growth_focus' => 'better visibility, lower manual overhead, and stronger scale readiness',
'technology_selection_note' => 'workflow responsiveness, field usability, reporting visibility, and the systems that shape logistics operations',
),
'fintech' => array(
'name' => 'Fintech',
'accent' => '#3e6cff',
'index_copy' => 'Client portals, onboarding flows, workflow systems, and digital products designed for clarity, trust, and scalable fintech delivery.',
'hero_title' => 'Product and Platform Solutions for Fintech Teams',
'hero_subtitle' => 'We help fintech businesses improve onboarding, customer trust, product clarity, and internal workflows through digital product design, platform delivery, and connected systems.',
'hero_points' => array(
'Industry-focused digital solutions',
'Scalable technology and integrations',
'Strategy, development, and long-term support',
),
'hero_visual_note' => 'Fintech delivery stack',
'hero_visual_caption' => 'Onboarding, portals, product clarity',
'overview' => array(
'Fintech teams need digital products that communicate trust, simplify complex user flows, and support evolving internal operations. Onboarding, account visibility, and product comprehension are especially important in customer-facing journeys.',
'We support fintech businesses with portals, onboarding flows, internal workflow tooling, interfaces, and product delivery models that make the digital experience easier to understand and easier to scale.',
),
'highlights' => array(
array(
'title' => 'Trust-led user experience',
'copy' => 'Fintech journeys need stronger clarity, hierarchy, and confidence at every important step.',
),
array(
'title' => 'Workflow complexity',
'copy' => 'Customer onboarding and internal handling often depend on multiple systems and repeated review steps.',
),
array(
'title' => 'Product evolution',
'copy' => 'New features and services depend on a cleaner product foundation that is easier to extend.',
),
array(
'title' => 'Platform modernization',
'copy' => 'Legacy journeys can limit speed, clarity, and the ability to scale product operations over time.',
),
),
'challenges' => array(
array(
'badge' => 'TR',
'title' => 'Low onboarding clarity',
'copy' => 'Users lose confidence quickly when setup steps, product messaging, and required actions are not easy to follow.',
),
array(
'badge' => 'UX',
'title' => 'Fragmented product journeys',
'copy' => 'Customer-facing experiences can feel disjointed when information and actions lack a clear structure.',
),
array(
'badge' => 'OPS',
'title' => 'Manual internal handling',
'copy' => 'Review and onboarding workflows often depend on too many disconnected operational steps.',
),
array(
'badge' => 'VIS',
'title' => 'Limited account visibility',
'copy' => 'Customers and internal teams need better portal experiences to understand key product information and status.',
),
array(
'badge' => 'MOB',
'title' => 'Mobile product friction',
'copy' => 'Important user actions increasingly happen on mobile, where clarity and speed are even more critical.',
),
array(
'badge' => 'SCL',
'title' => 'Weak scale readiness',
'copy' => 'Future features and product growth become harder to deliver when the platform base is too rigid.',
),
),
'services' => array(
array(
'key' => 'custom-software-development',
'copy' => 'Build onboarding workflows, client portals, and internal products around trust, clarity, and operational efficiency.',
),
array(
'key' => 'web-development',
'copy' => 'Create fintech product experiences that communicate value clearly and support better customer confidence.',
),
array(
'key' => 'ui-ux-design',
'copy' => 'Improve journey structure, messaging hierarchy, and product usability so important actions feel more manageable.',
),
array(
'key' => 'integrations',
'copy' => 'Connect internal product workflows, reporting, and external systems into cleaner fintech operations.',
),
array(
'key' => 'app-development',
'copy' => 'Support mobile fintech experiences where onboarding and account actions need better clarity and speed.',
),
array(
'key' => 'support-maintenance',
'copy' => 'Support roadmap delivery, release quality, and product evolution as new needs emerge.',
),
),
'technologies_intro' => 'Fintech stacks need to balance product clarity, integration depth, workflow control, and a platform foundation that can evolve as services and user expectations grow.',
'technology_groups' => array(
array(
'label' => 'Platforms',
'items' => array( 'Client portals', 'Onboarding flows', 'Web applications' ),
),
array(
'label' => 'Frontend',
'items' => array( 'React', 'Next.js', 'Mobile-first fintech interfaces' ),
),
array(
'label' => 'Backend',
'items' => array( 'PHP', 'Laravel', 'Node.js APIs' ),
),
array(
'label' => 'Integrations',
'items' => array( 'CRM', 'Workflow APIs', 'Analytics connectors', 'Notification services' ),
),
array(
'label' => 'Analytics',
'items' => array( 'GA4', 'Custom event tracking', 'Product reporting' ),
),
array(
'label' => 'Cloud / Infrastructure',
'items' => array( 'AWS', 'CI/CD', 'Monitoring' ),
),
),
'case_study_placeholders' => array(
array(
'title' => 'Client Onboarding Flow Redesign',
'summary' => 'Challenge: onboarding lacked clarity. Solution: a more structured product journey for setup and account activation. Outcome: better user confidence and operational handoffs.',
'services' => array( 'UI/UX Design', 'Web Development' ),
'platforms' => array( 'Client Portal' ),
),
array(
'title' => 'Customer Account Visibility Platform',
'summary' => 'Challenge: product information and account actions felt fragmented. Solution: a cleaner portal workspace. Outcome: stronger trust and easier self-service.',
'services' => array( 'Custom Software Development', 'Integrations' ),
'platforms' => array( 'Web App' ),
),
array(
'title' => 'Mobile Financial Product Companion',
'summary' => 'Challenge: mobile journeys created friction. Solution: a mobile-first fintech experience with clearer product flows. Outcome: smoother task completion and stronger continuity.',
'services' => array( 'App Development', 'Support & Maintenance' ),
'platforms' => array( 'Mobile App' ),
),
),
'faq_focus' => 'client portals, onboarding journeys, product workflows, fintech interfaces, and digital product delivery',
'faq_integrations' => 'CRM, workflow APIs, reporting tools, notifications, and connected product systems',
'workflow_context' => 'onboarding, account visibility, internal handling, and customer confidence',
'growth_focus' => 'product readiness, clarity, and scalable fintech delivery',
'technology_selection_note' => 'journey clarity, integration needs, operational workflows, and the pace of fintech product evolution',
),
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_sync_source_pages' ) ) {
function ethnic_industry_pages_cleanup_duplicate_source_pages( $slug, $archive_id, $keep_id ) {
global $wpdb;
$slug = sanitize_title( (string) $slug );
$archive_id = (int) $archive_id;
$keep_id = (int) $keep_id;
if ( '' === $slug || $archive_id < 1 || $keep_id < 1 || ! isset( $wpdb->posts ) ) {
return;
}
$duplicates = $wpdb->get_col(
$wpdb->prepare(
"SELECT ID
FROM {$wpdb->posts}
WHERE post_type = 'page'
AND post_parent = %d
AND post_name = %s
AND post_status NOT IN ('trash', 'auto-draft', 'inherit')
ORDER BY ID DESC",
$archive_id,
$slug
)
);
foreach ( $duplicates as $duplicate_id ) {
$duplicate_id = (int) $duplicate_id;
if ( $duplicate_id === $keep_id ) {
continue;
}
wp_trash_post( $duplicate_id );
}
}
}
if ( ! function_exists( 'ethnic_industry_pages_sync_source_pages' ) ) {
function ethnic_industry_pages_sync_source_pages() {
if ( get_option( 'ethnic_industry_pages_version' ) === ETHNIC_INDUSTRY_PAGES_VERSION ) {
return;
}
$lock_key = 'ethnic_industry_pages_sync_lock';
$locked = add_option( $lock_key, time(), '', false );
if ( ! $locked ) {
$lock_time = (int) get_option( $lock_key, 0 );
if ( $lock_time > 0 && ( time() - $lock_time ) < 30 ) {
return;
}
delete_option( $lock_key );
$locked = add_option( $lock_key, time(), '', false );
if ( ! $locked ) {
return;
}
}
try {
$archive_page = ethnic_industry_pages_archive_source_page();
$archive_id = $archive_page instanceof WP_Post ? (int) $archive_page->ID : 0;
if ( $archive_id < 1 ) {
$archive_insert = wp_insert_post(
array(
'post_type' => 'page',
'post_status' => 'publish',
'post_title' => 'Industries',
'post_name' => ethnic_industry_pages_base_slug(),
'post_content' => '',
),
true
);
$archive_id = ! is_wp_error( $archive_insert ) ? (int) $archive_insert : 0;
}
if ( $archive_id > 0 && ! is_wp_error( $archive_id ) ) {
update_post_meta( $archive_id, '_wp_page_template', 'template-industry-page.php' );
}
foreach ( ethnic_industry_pages_supported_data() as $slug => $definition ) {
$page = ethnic_industry_pages_source_page( $slug );
$page_id = $page instanceof WP_Post ? (int) $page->ID : 0;
$page_args = array();
$page_title = ! empty( $definition['page_title'] ) ? $definition['page_title'] : ( isset( $definition['name'] ) ? $definition['name'] : ucfirst( $slug ) );
if ( $page_id < 1 ) {
$page_insert = wp_insert_post(
array(
'post_type' => 'page',
'post_status' => 'publish',
'post_title' => $page_title,
'post_name' => $slug,
'post_parent' => $archive_id,
'post_content' => '',
),
true
);
$page_id = ! is_wp_error( $page_insert ) ? (int) $page_insert : 0;
} else {
if ( $archive_id > 0 && (int) $page->post_parent !== $archive_id ) {
$page_args['post_parent'] = $archive_id;
}
if ( '' !== $page_title && $page->post_title !== $page_title ) {
$page_args['post_title'] = $page_title;
}
if ( ! empty( $page_args ) ) {
$page_args['ID'] = $page_id;
wp_update_post( $page_args );
}
}
if ( $page_id > 0 && ! is_wp_error( $page_id ) ) {
update_post_meta( $page_id, '_wp_page_template', 'template-industry-page.php' );
ethnic_industry_pages_cleanup_duplicate_source_pages( $slug, $archive_id, $page_id );
}
}
update_option( 'ethnic_industry_pages_version', ETHNIC_INDUSTRY_PAGES_VERSION );
flush_rewrite_rules( false );
} finally {
delete_option( $lock_key );
}
}
add_action( 'init', 'ethnic_industry_pages_sync_source_pages', 60 );
}
if ( ! function_exists( 'ethnic_industry_pages_is_editable_page' ) ) {
function ethnic_industry_pages_is_editable_page( $post ) {
$post = get_post( $post );
if ( ! ( $post instanceof WP_Post ) || 'page' !== $post->post_type ) {
return false;
}
$archive_page = ethnic_industry_pages_archive_source_page();
$archive_id = $archive_page instanceof WP_Post ? (int) $archive_page->ID : 0;
if ( $archive_id < 1 ) {
return false;
}
return (int) $post->ID === $archive_id || (int) $post->post_parent === $archive_id;
}
}
if ( ! function_exists( 'ethnic_industry_pages_is_archive_page_post' ) ) {
function ethnic_industry_pages_is_archive_page_post( $post ) {
$post = get_post( $post );
if ( ! ethnic_industry_pages_is_editable_page( $post ) ) {
return false;
}
$archive_page = ethnic_industry_pages_archive_source_page();
return $archive_page instanceof WP_Post && (int) $archive_page->ID === (int) $post->ID;
}
}
if ( ! function_exists( 'ethnic_industry_pages_content_meta_sections' ) ) {
function ethnic_industry_pages_content_meta_sections( $is_archive = false ) {
if ( $is_archive ) {
return array(
array(
'title' => 'Archive Hero',
'description' => 'These fields control the main /industries/ hub page. Leave anything empty to keep the current fallback copy.',
'fields' => array(
array(
'key' => 'hero_title',
'label' => 'Hero Title',
'type' => 'text',
),
array(
'key' => 'hero_subtitle',
'label' => 'Hero Subtitle',
'type' => 'textarea',
'rows' => 4,
),
array(
'key' => 'hero_points',
'label' => 'Hero Micro Points',
'type' => 'textarea',
'rows' => 4,
'description' => 'One point per line.',
),
array(
'key' => 'hero_primary_label',
'label' => 'Primary Button Label',
'type' => 'text',
),
array(
'key' => 'hero_primary_url',
'label' => 'Primary Button URL',
'type' => 'text',
),
array(
'key' => 'hero_secondary_label',
'label' => 'Secondary Button Label',
'type' => 'text',
),
array(
'key' => 'hero_secondary_url',
'label' => 'Secondary Button URL',
'type' => 'text',
),
),
),
array(
'title' => 'Overview And Challenges',
'description' => 'Control the overview copy, industry challenge cards, and the industry card summaries shown on the hub.',
'fields' => array(
array(
'key' => 'overview_paragraphs',
'label' => 'Overview Paragraphs',
'type' => 'textarea',
'rows' => 6,
'description' => 'Separate paragraphs with a blank line.',
),
array(
'key' => 'challenges',
'label' => 'Challenge Cards',
'type' => 'textarea',
'rows' => 8,
'description' => 'Format: Badge | Title | Description',
),
array(
'key' => 'industry_cards',
'label' => 'Industry Cards',
'type' => 'textarea',
'rows' => 8,
'description' => 'Format: Title | Description | URL | Accent color',
),
),
),
array(
'title' => 'Services And Technologies',
'description' => 'Build the service section and the technology stack section for the hub page.',
'fields' => array(
array(
'key' => 'services',
'label' => 'Service Cards',
'type' => 'textarea',
'rows' => 8,
'description' => 'Format: Title | Description | URL',
),
array(
'key' => 'technologies_intro',
'label' => 'Technologies Intro',
'type' => 'textarea',
'rows' => 4,
),
array(
'key' => 'technology_groups',
'label' => 'Technology Groups',
'type' => 'textarea',
'rows' => 6,
'description' => 'Format: Group Label | Item 1, Item 2, Item 3',
),
),
),
array(
'title' => 'Case Studies And FAQs',
'description' => 'Select real case studies to feature on the main industries page, then manage the FAQ accordion below.',
'fields' => array(
array(
'key' => 'case_study_post_ids',
'label' => 'Selected Case Studies',
'type' => 'case_study_slots',
'description' => 'Choose up to 3 actual case studies. The selected order controls the display order on the page.',
),
array(
'key' => 'faqs',
'label' => 'FAQs',
'type' => 'textarea',
'rows' => 8,
'description' => 'Format: Question | Answer',
),
),
),
array(
'title' => 'CTA And SEO',
'description' => 'Optional CTA and SEO overrides for the industries hub page.',
'fields' => array(
array(
'key' => 'cta_title',
'label' => 'CTA Title',
'type' => 'text',
),
array(
'key' => 'cta_text',
'label' => 'CTA Text',
'type' => 'textarea',
'rows' => 4,
),
array(
'key' => 'cta_primary_label',
'label' => 'CTA Primary Button Label',
'type' => 'text',
),
array(
'key' => 'cta_primary_url',
'label' => 'CTA Primary Button URL',
'type' => 'text',
),
array(
'key' => 'cta_secondary_label',
'label' => 'CTA Secondary Button Label',
'type' => 'text',
),
array(
'key' => 'cta_secondary_url',
'label' => 'CTA Secondary Button URL',
'type' => 'text',
),
array(
'key' => 'meta_title',
'label' => 'Meta Title',
'type' => 'text',
),
array(
'key' => 'meta_description',
'label' => 'Meta Description',
'type' => 'textarea',
'rows' => 3,
),
),
),
);
}
return array(
array(
'title' => 'Hero',
'description' => 'Controls the hero content, CTA labels, and the top visual notes. Use the page featured image for the main hero visual.',
'fields' => array(
array(
'key' => 'hero_title',
'label' => 'Hero Title',
'type' => 'text',
),
array(
'key' => 'hero_subtitle',
'label' => 'Hero Subtitle',
'type' => 'textarea',
'rows' => 4,
),
array(
'key' => 'hero_points',
'label' => 'Hero Micro Points',
'type' => 'textarea',
'rows' => 4,
'description' => 'One point per line.',
),
array(
'key' => 'hero_visual_note',
'label' => 'Hero Visual Note',
'type' => 'text',
),
array(
'key' => 'hero_visual_caption',
'label' => 'Hero Visual Caption',
'type' => 'text',
),
array(
'key' => 'hero_primary_label',
'label' => 'Hero Primary Button Label',
'type' => 'text',
),
array(
'key' => 'hero_primary_url',
'label' => 'Hero Primary Button URL',
'type' => 'text',
),
array(
'key' => 'hero_secondary_label',
'label' => 'Hero Secondary Button Label',
'type' => 'text',
),
array(
'key' => 'hero_secondary_url',
'label' => 'Hero Secondary Button URL',
'type' => 'text',
),
array(
'key' => 'cta_primary_label',
'label' => 'Primary Button Label',
'type' => 'text',
),
array(
'key' => 'cta_primary_url',
'label' => 'Primary Button URL',
'type' => 'text',
),
array(
'key' => 'cta_secondary_label',
'label' => 'Secondary Button Label',
'type' => 'text',
),
array(
'key' => 'cta_secondary_url',
'label' => 'Secondary Button URL',
'type' => 'text',
),
array(
'key' => 'accent',
'label' => 'Accent Color',
'type' => 'text',
'description' => 'Example: #4e74ff',
),
array(
'key' => 'index_copy',
'label' => 'Archive Card Copy',
'type' => 'textarea',
'rows' => 3,
'description' => 'Used on the /industries/ listing card for this industry.',
),
),
),
array(
'title' => 'Overview And Challenges',
'description' => 'Structure the industry story and challenge framing with reusable rows.',
'fields' => array(
array(
'key' => 'overview_paragraphs',
'label' => 'Overview Paragraphs',
'type' => 'textarea',
'rows' => 6,
'description' => 'Separate paragraphs with a blank line.',
),
array(
'key' => 'highlights',
'label' => 'Highlight Cards',
'type' => 'textarea',
'rows' => 5,
'description' => 'Format: Title | Description',
),
array(
'key' => 'challenges',
'label' => 'Challenge Cards',
'type' => 'textarea',
'rows' => 6,
'description' => 'Format: Badge | Title | Description',
),
),
),
array(
'title' => 'Services And Technologies',
'description' => 'Build service cards and technology groups. Leave empty to use the default service mapping.',
'fields' => array(
array(
'key' => 'services',
'label' => 'Service Cards',
'type' => 'textarea',
'rows' => 6,
'description' => 'Format: Title | Description | URL',
),
array(
'key' => 'technologies_intro',
'label' => 'Technologies Intro',
'type' => 'textarea',
'rows' => 4,
),
array(
'key' => 'technology_groups',
'label' => 'Technology Groups',
'type' => 'textarea',
'rows' => 6,
'description' => 'Format: Group Label | Item 1, Item 2, Item 3',
),
),
),
array(
'title' => 'Case Studies And FAQs',
'description' => 'Choose real case studies to feature for this industry page, then manage the FAQ accordion below.',
'fields' => array(
array(
'key' => 'case_study_post_ids',
'label' => 'Selected Case Studies',
'type' => 'case_study_slots',
'description' => 'Choose up to 3 actual case studies. The selected order controls the display order on the page.',
),
array(
'key' => 'faqs',
'label' => 'FAQs',
'type' => 'textarea',
'rows' => 7,
'description' => 'Format: Question | Answer',
),
),
),
array(
'title' => 'CTA And SEO',
'description' => 'Control the closing CTA and optional SEO overrides.',
'fields' => array(
array(
'key' => 'cta_title',
'label' => 'CTA Title',
'type' => 'text',
),
array(
'key' => 'cta_text',
'label' => 'CTA Text',
'type' => 'textarea',
'rows' => 4,
),
array(
'key' => 'meta_title',
'label' => 'Meta Title',
'type' => 'text',
),
array(
'key' => 'meta_description',
'label' => 'Meta Description',
'type' => 'textarea',
'rows' => 3,
),
),
),
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_add_meta_boxes' ) ) {
function ethnic_industry_pages_add_meta_boxes( $post_type, $post ) {
if ( 'page' !== $post_type || ! ethnic_industry_pages_is_editable_page( $post ) ) {
return;
}
add_meta_box(
'ethnic-industry-page-content',
ethnic_industry_pages_is_archive_page_post( $post ) ? 'Industries Hub Content' : 'Industry Page Content',
'ethnic_industry_pages_render_content_meta_box',
'page',
'normal',
'high'
);
}
add_action( 'add_meta_boxes', 'ethnic_industry_pages_add_meta_boxes', 10, 2 );
}
if ( ! function_exists( 'ethnic_industry_pages_case_study_choices' ) ) {
function ethnic_industry_pages_case_study_choices() {
static $choices = null;
if ( null !== $choices ) {
return $choices;
}
$choices = array();
if ( ! defined( 'ETHNIC_CASE_STUDIES_POST_TYPE' ) ) {
return $choices;
}
$posts = get_posts(
array(
'post_type' => ETHNIC_CASE_STUDIES_POST_TYPE,
'post_status' => 'publish',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
'ignore_sticky_posts' => true,
'update_post_meta_cache' => false,
'update_post_term_cache' => false,
'no_found_rows' => true,
)
);
foreach ( $posts as $post ) {
$payload = function_exists( 'ethnic_case_studies_build_post_payload' ) ? ethnic_case_studies_build_post_payload( $post ) : array();
if ( empty( $payload ) ) {
continue;
}
$parts = array( $payload['title'] );
if ( ! empty( $payload['industries'][0] ) ) {
$parts[] = $payload['industries'][0];
}
if ( ! empty( $payload['platforms'][0] ) ) {
$parts[] = $payload['platforms'][0];
}
$choices[ (int) $payload['id'] ] = implode( ' | ', $parts );
}
return $choices;
}
}
if ( ! function_exists( 'ethnic_industry_pages_selected_case_study_ids' ) ) {
function ethnic_industry_pages_selected_case_study_ids( $post_id ) {
$value = get_post_meta( (int) $post_id, ethnic_industry_pages_content_meta_key( 'case_study_post_ids' ), true );
$ids = is_array( $value ) ? $value : explode( ',', (string) $value );
$ids = array_values(
array_unique(
array_filter(
array_map( 'intval', $ids )
)
)
);
return array_slice( $ids, 0, 3 );
}
}
if ( ! function_exists( 'ethnic_industry_pages_render_content_meta_box' ) ) {
function ethnic_industry_pages_render_content_meta_box( $post ) {
$is_archive = ethnic_industry_pages_is_archive_page_post( $post );
$sections = ethnic_industry_pages_content_meta_sections( $is_archive );
wp_nonce_field( 'ethnic_industry_pages_content_meta_box', 'ethnic_industry_pages_content_meta_box_nonce' );
?>
<div class="ethnic-industry-page-admin">
<style>
.ethnic-industry-page-admin__intro {
margin: 0 0 18px;
padding: 12px 14px;
border: 1px solid #dbe4ff;
border-radius: 12px;
background: #f7f9ff;
}
.ethnic-industry-page-admin__section {
margin: 0 0 14px;
border: 1px solid #d9dee8;
border-radius: 14px;
background: #fff;
}
.ethnic-industry-page-admin__section summary {
cursor: pointer;
padding: 14px 16px;
font-weight: 600;
}
.ethnic-industry-page-admin__section-body {
padding: 0 16px 16px;
}
.ethnic-industry-page-admin__grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 14px 18px;
}
.ethnic-industry-page-admin__field {
margin: 0;
}
.ethnic-industry-page-admin__field--full {
grid-column: 1 / -1;
}
.ethnic-industry-page-admin__field label {
display: block;
margin-bottom: 6px;
font-weight: 600;
}
.ethnic-industry-page-admin__slot-grid {
display: grid;
gap: 12px;
}
.ethnic-industry-page-admin__slot-row {
display: grid;
grid-template-columns: 120px minmax(0, 1fr);
align-items: center;
gap: 12px;
}
.ethnic-industry-page-admin__slot-row span {
font-weight: 600;
}
.ethnic-industry-page-admin__slot-row select {
max-width: 100%;
}
</style>
<div class="ethnic-industry-page-admin__intro">
<p><strong>Use this box to control the reusable industry template.</strong> The normal page title, featured image, and main content editor stay available. The fields below manage the structured sections like hero, challenges, services, technologies, case studies, FAQs, and CTA.</p>
<p class="description">Leave any field empty to keep the current fallback content from the reusable template.</p>
</div>
<?php
$section_index = 0;
foreach ( $sections as $section ) :
$section_index++;
?>
<details class="ethnic-industry-page-admin__section" <?php echo 1 === $section_index ? 'open' : ''; ?>>
<summary><?php echo esc_html( $section['title'] ); ?></summary>
<div class="ethnic-industry-page-admin__section-body">
<?php if ( ! empty( $section['description'] ) ) : ?>
<p class="description"><?php echo esc_html( $section['description'] ); ?></p>
<?php endif; ?>
<div class="ethnic-industry-page-admin__grid">
<?php foreach ( $section['fields'] as $field ) : ?>
<?php
$key = sanitize_key( $field['key'] );
$meta_key = ethnic_industry_pages_content_meta_key( $key );
$value = get_post_meta( $post->ID, $meta_key, true );
$type = isset( $field['type'] ) ? $field['type'] : 'text';
$field_id = 'ethnic-industry-page-field-' . $key;
$field_class = 'ethnic-industry-page-admin__field';
if ( 'textarea' === $type || 'case_study_slots' === $type ) {
$field_class .= ' ethnic-industry-page-admin__field--full';
}
?>
<div class="<?php echo esc_attr( $field_class ); ?>">
<label for="<?php echo esc_attr( $field_id ); ?>"><?php echo esc_html( $field['label'] ); ?></label>
<?php if ( 'textarea' === $type ) : ?>
<textarea class="widefat" id="<?php echo esc_attr( $field_id ); ?>" name="<?php echo esc_attr( $meta_key ); ?>" rows="<?php echo esc_attr( isset( $field['rows'] ) ? (int) $field['rows'] : 5 ); ?>"><?php echo esc_textarea( (string) $value ); ?></textarea>
<?php elseif ( 'case_study_slots' === $type ) : ?>
<?php
$selected_ids = ethnic_industry_pages_selected_case_study_ids( $post->ID );
$choices = ethnic_industry_pages_case_study_choices();
?>
<div class="ethnic-industry-page-admin__slot-grid">
<?php for ( $slot = 0; $slot < 3; $slot++ ) : ?>
<?php $selected_id = isset( $selected_ids[ $slot ] ) ? (int) $selected_ids[ $slot ] : 0; ?>
<div class="ethnic-industry-page-admin__slot-row">
<span><?php echo esc_html( 'Slot ' . ( $slot + 1 ) ); ?></span>
<select class="widefat" id="<?php echo esc_attr( $field_id . '-' . $slot ); ?>" name="<?php echo esc_attr( $meta_key ); ?>[]">
<option value=""><?php esc_html_e( 'Select a case study', 'thegem' ); ?></option>
<?php foreach ( $choices as $choice_id => $choice_label ) : ?>
<option value="<?php echo esc_attr( $choice_id ); ?>" <?php selected( $selected_id, (int) $choice_id ); ?>><?php echo esc_html( $choice_label ); ?></option>
<?php endforeach; ?>
</select>
</div>
<?php endfor; ?>
</div>
<?php else : ?>
<input class="widefat" id="<?php echo esc_attr( $field_id ); ?>" name="<?php echo esc_attr( $meta_key ); ?>" type="text" value="<?php echo esc_attr( (string) $value ); ?>" />
<?php endif; ?>
<?php if ( ! empty( $field['description'] ) ) : ?>
<p class="description"><?php echo esc_html( $field['description'] ); ?></p>
<?php endif; ?>
</div>
<?php endforeach; ?>
</div>
</div>
</details>
<?php endforeach; ?>
</div>
<?php
}
}
if ( ! function_exists( 'ethnic_industry_pages_save_meta_box' ) ) {
function ethnic_industry_pages_save_meta_box( $post_id ) {
$nonce_valid = ! empty( $_POST['ethnic_industry_pages_content_meta_box_nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['ethnic_industry_pages_content_meta_box_nonce'] ) ), 'ethnic_industry_pages_content_meta_box' );
if ( ! $nonce_valid ) {
return;
}
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return;
}
if ( ! current_user_can( 'edit_post', $post_id ) || ! ethnic_industry_pages_is_editable_page( $post_id ) ) {
return;
}
$is_archive = ethnic_industry_pages_is_archive_page_post( $post_id );
foreach ( ethnic_industry_pages_content_meta_sections( $is_archive ) as $section ) {
foreach ( $section['fields'] as $field ) {
$key = isset( $field['key'] ) ? sanitize_key( $field['key'] ) : '';
if ( '' === $key ) {
continue;
}
$meta_key = ethnic_industry_pages_content_meta_key( $key );
$type = isset( $field['type'] ) ? $field['type'] : 'text';
if ( ! isset( $_POST[ $meta_key ] ) ) {
delete_post_meta( $post_id, $meta_key );
continue;
}
$raw_value = wp_unslash( $_POST[ $meta_key ] );
if ( 'case_study_slots' === $type ) {
$ids = is_array( $raw_value ) ? $raw_value : array( $raw_value );
$ids = array_values(
array_unique(
array_filter(
array_map( 'intval', $ids )
)
)
);
if ( empty( $ids ) ) {
delete_post_meta( $post_id, $meta_key );
} else {
update_post_meta( $post_id, $meta_key, array_slice( $ids, 0, 3 ) );
}
continue;
}
$value = 'textarea' === $type ? sanitize_textarea_field( $raw_value ) : sanitize_text_field( $raw_value );
if ( '' === trim( (string) $value ) ) {
delete_post_meta( $post_id, $meta_key );
} else {
update_post_meta( $post_id, $meta_key, $value );
}
}
}
}
add_action( 'save_post_page', 'ethnic_industry_pages_save_meta_box' );
}
if ( ! function_exists( 'ethnic_industry_pages_custom_services' ) ) {
function ethnic_industry_pages_custom_services( $post_id ) {
$rows = ethnic_industry_pages_page_meta_rows( $post_id, 'services', array( 'title', 'copy', 'url', 'tags' ) );
$services = array();
foreach ( $rows as $row ) {
$title = isset( $row['title'] ) ? $row['title'] : '';
$copy = isset( $row['copy'] ) ? $row['copy'] : '';
$url = isset( $row['url'] ) ? esc_url_raw( $row['url'] ) : '';
if ( '' === $title || '' === $url ) {
continue;
}
$services[] = array(
'title' => $title,
'copy' => $copy,
'cta_label' => 'Explore Service',
'url' => $url,
'tags' => ethnic_industry_pages_split_list( isset( $row['tags'] ) ? $row['tags'] : '' ),
);
}
return $services;
}
}
if ( ! function_exists( 'ethnic_industry_pages_custom_technology_groups' ) ) {
function ethnic_industry_pages_custom_technology_groups( $post_id ) {
$rows = ethnic_industry_pages_page_meta_rows( $post_id, 'technology_groups', array( 'label', 'items' ) );
$groups = array();
foreach ( $rows as $row ) {
$label = isset( $row['label'] ) ? $row['label'] : '';
$items = ethnic_industry_pages_split_list( isset( $row['items'] ) ? $row['items'] : '' );
if ( '' === $label || empty( $items ) ) {
continue;
}
$groups[] = array(
'label' => $label,
'items' => $items,
);
}
return $groups;
}
}
if ( ! function_exists( 'ethnic_industry_pages_custom_case_studies' ) ) {
function ethnic_industry_pages_custom_case_studies( $post_id, $definition ) {
$selected_ids = ethnic_industry_pages_selected_case_study_ids( $post_id );
$cards = array();
if ( ! empty( $selected_ids ) && function_exists( 'ethnic_case_studies_build_post_payload' ) ) {
foreach ( $selected_ids as $selected_id ) {
$payload = ethnic_case_studies_build_post_payload( $selected_id );
if ( empty( $payload ) ) {
continue;
}
$cards[] = array(
'title' => $payload['title'],
'summary' => ethnic_industry_pages_trim( $payload['summary'], 34 ),
'services' => array_slice( array_values( (array) $payload['services'] ), 0, 2 ),
'platforms' => array_slice( array_values( (array) $payload['platforms'] ), 0, 2 ),
'industry' => ethnic_industry_pages_text( isset( $payload['industries'][0] ) ? $payload['industries'][0] : '', $definition['name'] ),
'url' => $payload['url'],
'cta_label' => 'View Case Study',
'image_url' => ! empty( $payload['image_url'] ) ? $payload['image_url'] : $definition['visual_image_url'],
'image_alt' => ! empty( $payload['image_alt'] ) ? $payload['image_alt'] : $payload['title'] . ' case study visual',
'is_real' => true,
);
}
}
if ( ! empty( $cards ) ) {
return array_slice( $cards, 0, 3 );
}
$rows = ethnic_industry_pages_page_meta_rows( $post_id, 'case_studies', array( 'title', 'summary', 'services', 'platforms', 'industry', 'url', 'image_url' ) );
$cards = array();
foreach ( $rows as $row ) {
$title = isset( $row['title'] ) ? $row['title'] : '';
$url = isset( $row['url'] ) ? esc_url_raw( $row['url'] ) : '';
if ( '' === $title || '' === $url ) {
continue;
}
$image_url = isset( $row['image_url'] ) ? esc_url_raw( $row['image_url'] ) : '';
$cards[] = array(
'title' => $title,
'summary' => isset( $row['summary'] ) ? ethnic_industry_pages_text( $row['summary'] ) : '',
'services' => ethnic_industry_pages_split_list( isset( $row['services'] ) ? $row['services'] : '' ),
'platforms' => ethnic_industry_pages_split_list( isset( $row['platforms'] ) ? $row['platforms'] : '' ),
'industry' => ethnic_industry_pages_text( isset( $row['industry'] ) ? $row['industry'] : '', $definition['name'] ),
'url' => $url,
'cta_label' => 'View Case Study',
'image_url' => $image_url ? $image_url : $definition['visual_image_url'],
'image_alt' => $title . ' case study visual',
'is_real' => false,
);
}
return $cards;
}
}
if ( ! function_exists( 'ethnic_industry_pages_custom_faqs' ) ) {
function ethnic_industry_pages_custom_faqs( $post_id ) {
return ethnic_industry_pages_page_meta_rows( $post_id, 'faqs', array( 'question', 'answer' ) );
}
}
if ( ! function_exists( 'ethnic_industry_pages_apply_archive_page_overrides' ) ) {
function ethnic_industry_pages_apply_archive_page_overrides( $context ) {
$page = ethnic_industry_pages_archive_source_page();
if ( ! ( $page instanceof WP_Post ) ) {
$context['editor_content'] = '';
return $context;
}
$context['source_page_id'] = (int) $page->ID;
$context['url'] = get_permalink( $page );
$context['hero_title'] = ethnic_industry_pages_page_meta_text( $page->ID, 'hero_title', $context['hero_title'] );
$context['hero_subtitle'] = ethnic_industry_pages_page_meta_text( $page->ID, 'hero_subtitle', $context['hero_subtitle'] );
$context['hero_points'] = ethnic_industry_pages_parse_lines( get_post_meta( $page->ID, ethnic_industry_pages_content_meta_key( 'hero_points' ), true ) );
$context['hero_points'] = ! empty( $context['hero_points'] ) ? $context['hero_points'] : (array) $context['hero_points'];
$context['hero_primary_label'] = ethnic_industry_pages_page_meta_text( $page->ID, 'hero_primary_label', $context['hero_primary_label'] );
$context['hero_primary_url'] = esc_url_raw( ethnic_industry_pages_page_meta_text( $page->ID, 'hero_primary_url', $context['hero_primary_url'] ) );
$context['hero_secondary_label'] = ethnic_industry_pages_page_meta_text( $page->ID, 'hero_secondary_label', $context['hero_secondary_label'] );
$context['hero_secondary_url'] = esc_url_raw( ethnic_industry_pages_page_meta_text( $page->ID, 'hero_secondary_url', $context['hero_secondary_url'] ) );
$context['cta_title'] = ethnic_industry_pages_page_meta_text( $page->ID, 'cta_title', $context['cta_title'] );
$context['cta_text'] = ethnic_industry_pages_page_meta_text( $page->ID, 'cta_text', $context['cta_text'] );
$context['cta_primary_label'] = ethnic_industry_pages_page_meta_text( $page->ID, 'cta_primary_label', $context['cta_primary_label'] );
$context['cta_primary_url'] = esc_url_raw( ethnic_industry_pages_page_meta_text( $page->ID, 'cta_primary_url', $context['cta_primary_url'] ) );
$context['cta_secondary_label'] = ethnic_industry_pages_page_meta_text( $page->ID, 'cta_secondary_label', $context['cta_secondary_label'] );
$context['cta_secondary_url'] = esc_url_raw( ethnic_industry_pages_page_meta_text( $page->ID, 'cta_secondary_url', $context['cta_secondary_url'] ) );
$context['technologies_intro'] = ethnic_industry_pages_page_meta_text( $page->ID, 'technologies_intro', $context['technologies_intro'] );
$context['meta_title'] = ethnic_industry_pages_page_meta_text( $page->ID, 'meta_title', $context['meta_title'] );
$context['meta_description'] = ethnic_industry_pages_page_meta_text( $page->ID, 'meta_description', $context['meta_description'] );
$context['editor_content'] = ethnic_industry_pages_source_page_editor_content( $page );
$overview = ethnic_industry_pages_parse_paragraphs( get_post_meta( $page->ID, ethnic_industry_pages_content_meta_key( 'overview_paragraphs' ), true ) );
$challenges = ethnic_industry_pages_page_meta_rows( $page->ID, 'challenges', array( 'badge', 'title', 'copy' ) );
$services = ethnic_industry_pages_custom_services( $page->ID );
$tech_groups = ethnic_industry_pages_custom_technology_groups( $page->ID );
$case_studies = ethnic_industry_pages_custom_case_studies( $page->ID, array( 'name' => 'Case Study', 'visual_image_url' => ethnic_industry_pages_placeholder_image_url() ) );
$faqs = ethnic_industry_pages_custom_faqs( $page->ID );
$industry_cards = ethnic_industry_pages_page_meta_rows( $page->ID, 'industry_cards', array( 'name', 'copy', 'url', 'accent' ) );
if ( ! empty( $overview ) ) {
$context['overview'] = $overview;
}
if ( ! empty( $challenges ) ) {
$context['challenges'] = $challenges;
}
if ( ! empty( $services ) ) {
$context['services'] = $services;
}
if ( ! empty( $tech_groups ) ) {
$context['technology_groups'] = $tech_groups;
}
if ( ! empty( $case_studies ) ) {
$context['case_studies'] = array_slice( $case_studies, 0, 3 );
}
if ( ! empty( $faqs ) ) {
$context['faqs'] = $faqs;
}
if ( ! empty( $industry_cards ) ) {
$cards = array();
foreach ( $industry_cards as $row ) {
$name = isset( $row['name'] ) ? $row['name'] : '';
$url = isset( $row['url'] ) ? esc_url_raw( $row['url'] ) : '';
if ( '' === $name || '' === $url ) {
continue;
}
$cards[] = array(
'name' => $name,
'title' => $name,
'copy' => ethnic_industry_pages_text( isset( $row['copy'] ) ? $row['copy'] : '' ),
'url' => $url,
'accent' => ethnic_industry_pages_text( isset( $row['accent'] ) ? $row['accent'] : '', '#4e74ff' ),
'cta_label' => 'Explore Industry',
);
}
if ( ! empty( $cards ) ) {
$context['cards'] = $cards;
}
} else {
foreach ( $context['cards'] as $index => $card ) {
$slug = isset( $card['url'] ) ? basename( untrailingslashit( (string) wp_parse_url( $card['url'], PHP_URL_PATH ) ) ) : '';
$child = ethnic_industry_pages_source_page( $slug );
if ( ! ( $child instanceof WP_Post ) ) {
continue;
}
$context['cards'][ $index ]['name'] = ethnic_industry_pages_text( $child->post_title, $card['name'] );
$context['cards'][ $index ]['title'] = ethnic_industry_pages_page_meta_text( $child->ID, 'hero_title', $card['title'] );
$context['cards'][ $index ]['copy'] = ethnic_industry_pages_page_meta_text( $child->ID, 'index_copy', $card['copy'] );
$context['cards'][ $index ]['accent'] = ethnic_industry_pages_page_meta_text( $child->ID, 'accent', $card['accent'] );
$context['cards'][ $index ]['url'] = get_permalink( $child );
}
}
$context['json_ld'] = array(
array(
'@context' => 'https://schema.org',
'@type' => 'CollectionPage',
'name' => $context['hero_title'],
'url' => $context['url'],
'description' => $context['meta_description'],
'publisher' => array(
'@type' => 'Organization',
'name' => get_bloginfo( 'name' ),
),
),
array(
'@context' => 'https://schema.org',
'@type' => 'FAQPage',
'mainEntity' => array(),
),
);
foreach ( (array) $context['faqs'] as $faq ) {
$context['json_ld'][1]['mainEntity'][] = array(
'@type' => 'Question',
'name' => isset( $faq['question'] ) ? $faq['question'] : '',
'acceptedAnswer' => array(
'@type' => 'Answer',
'text' => isset( $faq['answer'] ) ? $faq['answer'] : '',
),
);
}
return $context;
}
}
if ( ! function_exists( 'ethnic_industry_pages_apply_single_page_overrides' ) ) {
function ethnic_industry_pages_apply_single_page_overrides( $definition, $page ) {
$page = get_post( $page );
if ( ! ( $page instanceof WP_Post ) ) {
$definition['editor_content'] = '';
return $definition;
}
$image = ethnic_industry_pages_source_page_image( $page, $definition['visual_image_url'], $definition['visual_image_alt'] );
$definition['source_page_id'] = (int) $page->ID;
$definition['name'] = ethnic_industry_pages_text( $page->post_title, $definition['name'] );
$definition['url'] = get_permalink( $page );
$definition['hero_title'] = ethnic_industry_pages_page_meta_text( $page->ID, 'hero_title', $definition['hero_title'] );
$definition['hero_subtitle'] = ethnic_industry_pages_page_meta_text( $page->ID, 'hero_subtitle', $definition['hero_subtitle'] );
$definition['hero_points'] = ethnic_industry_pages_parse_lines( get_post_meta( $page->ID, ethnic_industry_pages_content_meta_key( 'hero_points' ), true ) );
$definition['hero_points'] = ! empty( $definition['hero_points'] ) ? $definition['hero_points'] : (array) $definition['hero_points'];
$definition['hero_visual_note'] = ethnic_industry_pages_page_meta_text( $page->ID, 'hero_visual_note', $definition['hero_visual_note'] );
$definition['hero_visual_caption'] = ethnic_industry_pages_page_meta_text( $page->ID, 'hero_visual_caption', $definition['hero_visual_caption'] );
$definition['hero_primary_label'] = ethnic_industry_pages_page_meta_text( $page->ID, 'hero_primary_label', $definition['hero_primary_label'] );
$definition['hero_primary_url'] = esc_url_raw( ethnic_industry_pages_page_meta_text( $page->ID, 'hero_primary_url', $definition['hero_primary_url'] ) );
$definition['hero_secondary_label'] = ethnic_industry_pages_page_meta_text( $page->ID, 'hero_secondary_label', $definition['hero_secondary_label'] );
$definition['hero_secondary_url'] = esc_url_raw( ethnic_industry_pages_page_meta_text( $page->ID, 'hero_secondary_url', $definition['hero_secondary_url'] ) );
$definition['accent'] = ethnic_industry_pages_page_meta_text( $page->ID, 'accent', $definition['accent'] );
$definition['index_copy'] = ethnic_industry_pages_page_meta_text( $page->ID, 'index_copy', $definition['index_copy'] );
$definition['visual_image_url'] = $image['url'];
$definition['visual_image_alt'] = $image['alt'];
$definition['meta_title'] = ethnic_industry_pages_page_meta_text( $page->ID, 'meta_title', $definition['meta_title'] );
$definition['meta_description'] = ethnic_industry_pages_page_meta_text( $page->ID, 'meta_description', $definition['meta_description'] );
$definition['cta_title'] = ethnic_industry_pages_page_meta_text( $page->ID, 'cta_title', $definition['cta_title'] );
$definition['cta_text'] = ethnic_industry_pages_page_meta_text( $page->ID, 'cta_text', $definition['cta_text'] );
$definition['cta_primary_label'] = ethnic_industry_pages_page_meta_text( $page->ID, 'cta_primary_label', $definition['cta_primary_label'] );
$definition['cta_primary_url'] = esc_url_raw( ethnic_industry_pages_page_meta_text( $page->ID, 'cta_primary_url', $definition['cta_primary_url'] ) );
$definition['cta_secondary_label'] = ethnic_industry_pages_page_meta_text( $page->ID, 'cta_secondary_label', $definition['cta_secondary_label'] );
$definition['cta_secondary_url'] = esc_url_raw( ethnic_industry_pages_page_meta_text( $page->ID, 'cta_secondary_url', $definition['cta_secondary_url'] ) );
$definition['technologies_intro'] = ethnic_industry_pages_page_meta_text( $page->ID, 'technologies_intro', $definition['technologies_intro'] );
$definition['editor_content'] = ethnic_industry_pages_source_page_editor_content( $page );
$overview = ethnic_industry_pages_parse_paragraphs( get_post_meta( $page->ID, ethnic_industry_pages_content_meta_key( 'overview_paragraphs' ), true ) );
$highlights = ethnic_industry_pages_page_meta_rows( $page->ID, 'highlights', array( 'title', 'copy' ) );
$challenges = ethnic_industry_pages_page_meta_rows( $page->ID, 'challenges', array( 'badge', 'title', 'copy' ) );
$services = ethnic_industry_pages_custom_services( $page->ID );
$tech_groups = ethnic_industry_pages_custom_technology_groups( $page->ID );
$case_studies = ethnic_industry_pages_custom_case_studies( $page->ID, $definition );
$faqs = ethnic_industry_pages_custom_faqs( $page->ID );
if ( ! empty( $overview ) ) {
$definition['overview'] = $overview;
}
if ( ! empty( $highlights ) ) {
$definition['highlights'] = $highlights;
}
if ( ! empty( $challenges ) ) {
$definition['challenges'] = $challenges;
}
if ( ! empty( $services ) ) {
$definition['services'] = $services;
}
if ( ! empty( $tech_groups ) ) {
$definition['technology_groups'] = $tech_groups;
}
if ( ! empty( $case_studies ) ) {
$definition['case_studies'] = array_slice( $case_studies, 0, 3 );
}
if ( ! empty( $faqs ) ) {
$definition['faqs'] = $faqs;
}
$definition['json_ld'] = ethnic_industry_pages_json_ld( $definition );
return $definition;
}
}
if ( ! function_exists( 'ethnic_industry_pages_supported_slugs' ) ) {
function ethnic_industry_pages_supported_slugs() {
return array_keys( ethnic_industry_pages_supported_data() );
}
}
if ( ! function_exists( 'ethnic_industry_pages_alias_map' ) ) {
function ethnic_industry_pages_alias_map() {
return array(
'retail-ecommerce' => 'retail',
'retail-and-ecommerce' => 'retail',
'fashion-lifestyle' => 'fashion',
'logistics-supply-chain' => 'logistics',
'supply-chain' => 'logistics',
'health-care' => 'healthcare',
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_resolve_slug' ) ) {
function ethnic_industry_pages_resolve_slug( $slug ) {
$slug = sanitize_title( (string) $slug );
if ( '' === $slug ) {
return '';
}
$aliases = ethnic_industry_pages_alias_map();
if ( isset( $aliases[ $slug ] ) ) {
$slug = $aliases[ $slug ];
}
return in_array( $slug, ethnic_industry_pages_supported_slugs(), true ) ? $slug : '';
}
}
if ( ! function_exists( 'ethnic_industry_pages_definition' ) ) {
function ethnic_industry_pages_definition( $slug ) {
static $cache = array();
$slug = ethnic_industry_pages_resolve_slug( $slug );
if ( '' === $slug ) {
return array();
}
if ( isset( $cache[ $slug ] ) ) {
return $cache[ $slug ];
}
$data = ethnic_industry_pages_supported_data();
if ( empty( $data[ $slug ] ) ) {
return array();
}
$definition = wp_parse_args(
$data[ $slug ],
array(
'overview' => array(),
'highlights' => array(),
'challenges' => array(),
'services' => array(),
'technology_groups' => array(),
'technologies_intro' => '',
'case_study_placeholders' => array(),
'faqs' => null,
'services_section_kicker' => 'Solutions And Services',
'services_section_title' => 'Services adapted to industry-specific workflows, customer needs, and growth plans.',
'workflow_section_kicker' => 'Workflow Systems',
'workflow_section_title' => '',
'workflow_intro' => array(),
'workflow_points' => array(),
'omnichannel_intro' => array(),
'omnichannel_points' => array(),
'app_use_cases' => array(),
'ai_section_kicker' => 'AI Use Cases',
'ai_section_title' => '',
'ai_intro' => array(),
'ai_use_cases' => array(),
'support_section_kicker' => 'Support Services',
'support_section_title' => '',
'support_intro' => array(),
'support_services' => array(),
'meta_title' => '',
'meta_description' => '',
'cta_title' => '',
'cta_text' => '',
'cta_primary_label' => '',
'cta_primary_url' => '',
'cta_secondary_label' => '',
'cta_secondary_url' => '',
'hero_primary_label' => '',
'hero_primary_url' => '',
'hero_secondary_label' => '',
'hero_secondary_url' => '',
)
);
$definition['slug'] = $slug;
$definition['url'] = ethnic_industry_pages_url( $slug );
$definition['contact_url'] = ethnic_industry_pages_contact_url(
array(
'industry' => $slug,
'from' => 'industry-page',
)
);
$definition['case_studies_url'] = ethnic_industry_pages_case_studies_url( ! empty( $definition['case_study_filter_slug'] ) ? $definition['case_study_filter_slug'] : $slug );
$definition['visual_image_url'] = ethnic_industry_pages_placeholder_image_url();
$definition['visual_image_alt'] = sprintf( '%s industry digital solution placeholder visual', $definition['name'] );
$definition['faqs'] = isset( $definition['faqs'] ) ? (array) $definition['faqs'] : ethnic_industry_pages_default_faqs( $definition );
$definition['hero_primary_label'] = ! empty( $definition['hero_primary_label'] ) ? $definition['hero_primary_label'] : 'Book a Free Consultation';
$definition['hero_primary_url'] = ! empty( $definition['hero_primary_url'] ) ? esc_url_raw( $definition['hero_primary_url'] ) : $definition['contact_url'];
$definition['hero_secondary_label'] = ! empty( $definition['hero_secondary_label'] ) ? $definition['hero_secondary_label'] : 'View Case Studies';
$definition['hero_secondary_url'] = ! empty( $definition['hero_secondary_url'] ) ? esc_url_raw( $definition['hero_secondary_url'] ) : $definition['case_studies_url'];
$definition['services'] = ethnic_industry_pages_prepare_services( $definition );
$definition['case_studies'] = ethnic_industry_pages_prepare_case_studies( $definition );
$definition['meta_title'] = ! empty( $definition['meta_title'] ) ? $definition['meta_title'] : sprintf( '%s Solutions | Custom Development, Integrations & Digital Services', $definition['name'] );
$definition['meta_description'] = ! empty( $definition['meta_description'] ) ? $definition['meta_description'] : sprintf( 'Explore digital solutions for the %s sector, including custom development, app solutions, integrations, UX improvements, and long-term support tailored to business needs.', strtolower( $definition['name'] ) );
$definition['cta_title'] = ! empty( $definition['cta_title'] ) ? $definition['cta_title'] : 'Looking for a Technology Partner for Your Industry?';
$definition['cta_text'] = ! empty( $definition['cta_text'] ) ? $definition['cta_text'] : sprintf( 'Let’s talk about your %s business goals, operational challenges, platform limitations, app requirements, integrations, or modernization plans and shape the right delivery path together.', strtolower( $definition['name'] ) );
$definition['cta_primary_label'] = ! empty( $definition['cta_primary_label'] ) ? $definition['cta_primary_label'] : 'Talk to Our Team';
$definition['cta_secondary_label'] = ! empty( $definition['cta_secondary_label'] ) ? $definition['cta_secondary_label'] : 'Get a Free Quote';
$definition['cta_primary_url'] = ! empty( $definition['cta_primary_url'] ) ? esc_url_raw( $definition['cta_primary_url'] ) : ethnic_industry_pages_contact_url(
array(
'industry' => $slug,
'intent' => 'team-conversation',
)
);
$definition['cta_secondary_url'] = ! empty( $definition['cta_secondary_url'] ) ? esc_url_raw( $definition['cta_secondary_url'] ) : ethnic_industry_pages_contact_url(
array(
'industry' => $slug,
'intent' => 'quote',
)
);
$definition['editor_content'] = '';
$definition['json_ld'] = ethnic_industry_pages_json_ld( $definition );
$source_page = ethnic_industry_pages_source_page( $slug );
if ( $source_page instanceof WP_Post ) {
$definition = ethnic_industry_pages_apply_single_page_overrides( $definition, $source_page );
}
$cache[ $slug ] = $definition;
return $definition;
}
}
if ( ! function_exists( 'ethnic_industry_pages_prepare_services' ) ) {
function ethnic_industry_pages_prepare_services( $definition ) {
$services = array();
$catalog = ethnic_industry_pages_service_catalog();
foreach ( (array) $definition['services'] as $service ) {
$key = isset( $service['key'] ) ? sanitize_title( (string) $service['key'] ) : '';
if ( '' !== $key && ! empty( $catalog[ $key ] ) ) {
$services[] = array(
'key' => $key,
'title' => $catalog[ $key ]['title'],
'copy' => isset( $service['copy'] ) ? ethnic_industry_pages_text( $service['copy'] ) : '',
'cta_label' => 'Explore Service',
'url' => ethnic_industry_pages_service_url( $key, $definition['slug'] ),
'tags' => isset( $service['tags'] ) ? array_values( array_filter( array_map( 'ethnic_industry_pages_text', (array) $service['tags'] ) ) ) : array(),
);
continue;
}
$title = isset( $service['title'] ) ? ethnic_industry_pages_text( $service['title'] ) : '';
$url = isset( $service['url'] ) ? esc_url_raw( $service['url'] ) : '';
if ( '' === $title || '' === $url ) {
continue;
}
$services[] = array(
'title' => $title,
'copy' => isset( $service['copy'] ) ? ethnic_industry_pages_text( $service['copy'] ) : '',
'cta_label' => isset( $service['cta_label'] ) ? ethnic_industry_pages_text( $service['cta_label'], 'Explore Service' ) : 'Explore Service',
'url' => $url,
'tags' => isset( $service['tags'] ) ? array_values( array_filter( array_map( 'ethnic_industry_pages_text', (array) $service['tags'] ) ) ) : array(),
);
}
return $services;
}
}
if ( ! function_exists( 'ethnic_industry_pages_default_faqs' ) ) {
function ethnic_industry_pages_default_faqs( $definition ) {
$name = isset( $definition['name'] ) ? $definition['name'] : 'industry';
$focus = isset( $definition['faq_focus'] ) ? $definition['faq_focus'] : 'digital platforms and custom workflows';
$integrations = isset( $definition['faq_integrations'] ) ? $definition['faq_integrations'] : 'existing business systems and operational tools';
$workflow_context = isset( $definition['workflow_context'] ) ? $definition['workflow_context'] : 'day-to-day operations and customer-facing journeys';
$growth_focus = isset( $definition['growth_focus'] ) ? $definition['growth_focus'] : 'future growth and platform scalability';
$technology_selection_note = isset( $definition['technology_selection_note'] ) ? $definition['technology_selection_note'] : 'business workflows, integrations, and long-term maintainability';
return array(
array(
'question' => sprintf( 'What digital solutions do you offer for the %s sector?', $name ),
'answer' => sprintf( 'We deliver %s for %s businesses, shaping the solution around the workflows, user expectations, and delivery priorities that matter most in that space.', $focus, strtolower( $name ) ),
),
array(
'question' => 'Can you integrate with existing business systems?',
'answer' => sprintf( 'Yes. We regularly plan integrations around %s so the digital experience fits the systems your team already depends on.', $integrations ),
),
array(
'question' => 'Do you provide custom development based on operational workflows?',
'answer' => sprintf( 'Yes. We design and build around %s instead of forcing your team into a generic product structure.', $workflow_context ),
),
array(
'question' => 'Can you modernize our current platform or software?',
'answer' => sprintf( 'Yes. We can modernize older %s systems, improve UX, clean up workflows, and create a stronger foundation for future delivery.', strtolower( $name ) ),
),
array(
'question' => 'Do you provide long-term support and maintenance?',
'answer' => 'Yes. We support post-launch optimization, issue handling, roadmap work, and ongoing delivery so the platform keeps improving after release.',
),
array(
'question' => 'How do you approach scalability and future growth?',
'answer' => sprintf( 'We shape the delivery around %s, making sure the platform is easier to extend as your workflows, team needs, and customer expectations evolve.', $growth_focus ),
),
array(
'question' => 'Can you help improve user experience and conversions?',
'answer' => sprintf( 'Yes. We look at customer journeys, internal workflows, information hierarchy, and performance so the %s experience is easier to use and more commercially effective.', strtolower( $name ) ),
),
array(
'question' => sprintf( 'What technologies do you recommend for %s solutions?', $name ),
'answer' => sprintf( 'That depends on %s. We recommend the stack after reviewing your workflows, integrations, growth plans, and the level of flexibility your business needs.', $technology_selection_note ),
),
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_archive_featured_slugs' ) ) {
function ethnic_industry_pages_archive_featured_slugs() {
return array(
'retail',
'healthcare',
'manufacturing',
'b2b',
'education',
'automotive',
'fashion',
'logistics',
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_archive_cards' ) ) {
function ethnic_industry_pages_archive_cards() {
$cards = array();
$data = ethnic_industry_pages_supported_data();
foreach ( ethnic_industry_pages_archive_featured_slugs() as $slug ) {
if ( empty( $data[ $slug ] ) ) {
continue;
}
$item = $data[ $slug ];
$context = ethnic_industry_pages_definition( $slug );
$cards[] = array(
'name' => $context['name'],
'title' => $context['hero_title'],
'copy' => $context['index_copy'],
'url' => $context['url'],
'accent' => $context['accent'],
'cta_label' => 'Explore Industry',
);
}
return $cards;
}
}
if ( ! function_exists( 'ethnic_industry_pages_archive_challenges' ) ) {
function ethnic_industry_pages_archive_challenges() {
return array(
array(
'badge' => 'LEG',
'title' => 'Outdated legacy systems',
'copy' => 'Older platforms make it harder to improve customer journeys, modernize workflows, and launch new digital initiatives with confidence.',
),
array(
'badge' => 'INT',
'title' => 'Disconnected tools and workflows',
'copy' => 'Teams lose time when operations, reporting, commerce, and internal systems do not share data cleanly across the business.',
),
array(
'badge' => 'UX',
'title' => 'Poor customer experience',
'copy' => 'Fragmented journeys, unclear navigation, and weak mobile usability reduce trust, engagement, and conversion potential.',
),
array(
'badge' => 'OPS',
'title' => 'Manual operational processes',
'copy' => 'Too much work still depends on spreadsheets, repetitive admin handling, and workflows that should be supported by better software.',
),
array(
'badge' => 'SCL',
'title' => 'Limited scalability',
'copy' => 'Growth becomes harder when the platform foundation is rigid, hard to extend, or too dependent on fragile workarounds.',
),
array(
'badge' => 'RPT',
'title' => 'Weak reporting and visibility',
'copy' => 'Leaders and operators need clearer dashboards, faster decision support, and real-time visibility into key activities and outcomes.',
),
array(
'badge' => 'CVR',
'title' => 'Low conversion or engagement',
'copy' => 'Whether the goal is selling, onboarding, educating, or supporting, performance drops when the digital experience lacks clarity and momentum.',
),
array(
'badge' => 'API',
'title' => 'Integration complexity',
'copy' => 'As businesses evolve, integrating CRM, ERP, PIM, analytics, or internal systems becomes critical to smoother delivery and scalability.',
),
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_archive_services' ) ) {
function ethnic_industry_pages_archive_services() {
$services = array(
'ecommerce-development' => 'Build commerce experiences that support conversion, merchandising, connected operations, and long-term growth across sectors.',
'app-development' => 'Create mobile products and companion apps that improve customer journeys, field workflows, and service continuity.',
'web-development' => 'Develop scalable websites, portals, and web platforms designed around industry workflows and business goals.',
'ui-ux-design' => 'Improve clarity, usability, and conversion with interface systems and journeys shaped around the needs of real users.',
'custom-software-development'=> 'Design and build custom platforms, dashboards, and workflow software where off-the-shelf tools do not fit the business.',
'integrations' => 'Connect CRM, ERP, PIM, analytics, and operational systems so digital products work with the rest of the organization.',
'support-maintenance' => 'Keep platforms stable, iterative, and future-ready with ongoing support, release care, and roadmap execution.',
'performance-optimization' => 'Improve site speed, reliability, and platform efficiency where growth, retention, and campaign performance matter most.',
);
$cards = array();
foreach ( $services as $key => $copy ) {
$catalog = ethnic_industry_pages_service_catalog();
if ( empty( $catalog[ $key ] ) ) {
continue;
}
$cards[] = array(
'title' => $catalog[ $key ]['title'],
'copy' => $copy,
'cta_label' => 'Explore Service',
'url' => ethnic_industry_pages_service_url( $key ),
);
}
return $cards;
}
}
if ( ! function_exists( 'ethnic_industry_pages_archive_technology_groups' ) ) {
function ethnic_industry_pages_archive_technology_groups() {
return array(
array(
'label' => 'Platforms',
'items' => array( 'Magento / Adobe Commerce', 'Shopify', 'WooCommerce' ),
),
array(
'label' => 'Frontend',
'items' => array( 'React', 'Next.js', 'Tailwind' ),
),
array(
'label' => 'Backend',
'items' => array( 'PHP', 'Laravel', 'Node.js', '.NET' ),
),
array(
'label' => 'APIs & Integrations',
'items' => array( 'REST API', 'GraphQL', 'CRM', 'ERP', 'PIM' ),
),
array(
'label' => 'Data & Analytics',
'items' => array( 'GA4', 'GTM', 'Dashboards', 'Reporting' ),
),
array(
'label' => 'Cloud / DevOps',
'items' => array( 'AWS', 'Docker', 'CI/CD' ),
),
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_archive_case_studies' ) ) {
function ethnic_industry_pages_archive_case_studies() {
$cards = array();
if ( function_exists( 'ethnic_case_studies_build_post_payload' ) && defined( 'ETHNIC_CASE_STUDIES_POST_TYPE' ) ) {
$post_ids = array();
$featured_ids = get_posts(
array(
'post_type' => ETHNIC_CASE_STUDIES_POST_TYPE,
'post_status' => 'publish',
'posts_per_page' => 3,
'fields' => 'ids',
'meta_query' => array(
array(
'key' => function_exists( 'ethnic_case_studies_featured_meta_key' ) ? ethnic_case_studies_featured_meta_key() : 'ethnic_case_study_featured',
'value' => '1',
'compare' => '=',
),
),
'ignore_sticky_posts' => true,
'update_post_meta_cache' => false,
'update_post_term_cache' => false,
'no_found_rows' => true,
)
);
$recent_ids = get_posts(
array(
'post_type' => ETHNIC_CASE_STUDIES_POST_TYPE,
'post_status' => 'publish',
'posts_per_page' => 6,
'fields' => 'ids',
'orderby' => 'date',
'order' => 'DESC',
'ignore_sticky_posts' => true,
'update_post_meta_cache' => false,
'update_post_term_cache' => false,
'no_found_rows' => true,
)
);
$post_ids = array_values( array_unique( array_merge( array_map( 'intval', $featured_ids ), array_map( 'intval', $recent_ids ) ) ) );
foreach ( $post_ids as $post_id ) {
if ( count( $cards ) >= 3 ) {
break;
}
$payload = ethnic_case_studies_build_post_payload( $post_id );
if ( empty( $payload ) ) {
continue;
}
$cards[] = array(
'title' => $payload['title'],
'summary' => ethnic_industry_pages_trim( $payload['summary'], 34 ),
'services' => array_slice( array_values( (array) $payload['services'] ), 0, 2 ),
'platforms' => array_slice( array_values( (array) $payload['platforms'] ), 0, 2 ),
'industry' => ethnic_industry_pages_text( isset( $payload['industries'][0] ) ? $payload['industries'][0] : '', 'Case Study' ),
'url' => $payload['url'],
'cta_label' => 'View Case Study',
'image_url' => ! empty( $payload['image_url'] ) ? $payload['image_url'] : ethnic_industry_pages_placeholder_image_url(),
'image_alt' => ! empty( $payload['image_alt'] ) ? $payload['image_alt'] : $payload['title'] . ' case study visual',
'is_real' => true,
);
}
}
if ( count( $cards ) < 3 ) {
$fallbacks = array(
array(
'title' => 'Omnichannel Retail App Modernization',
'summary' => 'Challenge: fragmented commerce and mobile journeys. Solution: a connected app and platform delivery model. Outcome: stronger customer experience and better operational readiness.',
'services' => array( 'App Development', 'UI/UX Design' ),
'platforms' => array( 'Mobile App', 'Web App' ),
'industry' => 'Retail',
'url' => ethnic_industry_pages_case_studies_url( 'retail' ),
'cta_label' => 'View Case Study',
'image_url' => ethnic_industry_pages_placeholder_image_url(),
'image_alt' => 'Retail case study placeholder visual',
),
array(
'title' => 'Field Operations Workflow Platform',
'summary' => 'Challenge: dispatch and reporting were too manual. Solution: a workflow platform with clearer operational visibility. Outcome: smoother coordination and stronger day-to-day control.',
'services' => array( 'Custom Software Development', 'Integrations' ),
'platforms' => array( 'Workflow Platform' ),
'industry' => 'Logistics',
'url' => ethnic_industry_pages_case_studies_url( 'logistics' ),
'cta_label' => 'View Case Study',
'image_url' => ethnic_industry_pages_placeholder_image_url(),
'image_alt' => 'Logistics case study placeholder visual',
),
array(
'title' => 'Digital Onboarding And Client Portal',
'summary' => 'Challenge: product journeys lacked clarity. Solution: a cleaner onboarding and portal experience. Outcome: better confidence, usability, and future-ready platform structure.',
'services' => array( 'Web Development', 'UI/UX Design' ),
'platforms' => array( 'Client Portal' ),
'industry' => 'Fintech',
'url' => ethnic_industry_pages_case_studies_url( 'fintech' ),
'cta_label' => 'View Case Study',
'image_url' => ethnic_industry_pages_placeholder_image_url(),
'image_alt' => 'Fintech case study placeholder visual',
),
);
foreach ( $fallbacks as $fallback ) {
if ( count( $cards ) >= 3 ) {
break;
}
$cards[] = $fallback;
}
}
return array_slice( $cards, 0, 3 );
}
}
if ( ! function_exists( 'ethnic_industry_pages_archive_faqs' ) ) {
function ethnic_industry_pages_archive_faqs() {
return array(
array(
'question' => 'Which industries do you work with?',
'answer' => 'We work with a range of sectors including retail, healthcare, manufacturing, B2B, education, automotive, fashion, logistics, and related operational or customer-facing business models.',
),
array(
'question' => 'Do you tailor your services to each industry?',
'answer' => 'Yes. We adapt the delivery approach, workflows, integrations, and user experience strategy around the realities of each sector instead of using a one-size-fits-all process.',
),
array(
'question' => 'Can you integrate with our existing business systems?',
'answer' => 'Yes. We regularly work with CRM, ERP, PIM, analytics, payment, and operational systems so the platform fits the tools your business already depends on.',
),
array(
'question' => 'Do you support both customer-facing and internal platforms?',
'answer' => 'Yes. We build and improve both external experiences like storefronts, portals, and apps, and internal products like dashboards, workflow tools, and admin systems.',
),
array(
'question' => 'Can you modernize our current website or software?',
'answer' => 'Yes. We can assess the current platform, identify the right modernization path, and improve UX, architecture, integrations, and maintainability over time.',
),
array(
'question' => 'Do you offer long-term support after launch?',
'answer' => 'Yes. We support ongoing platform improvement, issue handling, release quality, roadmap execution, and long-term performance after launch.',
),
array(
'question' => 'How do you choose the right technology for an industry project?',
'answer' => 'We recommend the stack after reviewing your workflows, customer expectations, growth plans, integration needs, and the level of flexibility the business needs long term.',
),
array(
'question' => 'Can you handle custom workflows and integrations?',
'answer' => 'Yes. That is often where the real value sits. We design and build around custom workflows, operational complexity, and the integrations needed to support them properly.',
),
);
}
}
if ( ! function_exists( 'ethnic_industry_pages_prepare_case_studies' ) ) {
function ethnic_industry_pages_prepare_case_studies( $definition ) {
$cards = ethnic_industry_pages_real_case_studies( $definition, 3 );
if ( count( $cards ) >= 3 ) {
return array_slice( $cards, 0, 3 );
}
foreach ( (array) $definition['case_study_placeholders'] as $placeholder ) {
if ( count( $cards ) >= 3 ) {
break;
}
$cards[] = array(
'title' => isset( $placeholder['title'] ) ? ethnic_industry_pages_text( $placeholder['title'] ) : 'Selected case study',
'summary' => isset( $placeholder['summary'] ) ? ethnic_industry_pages_text( $placeholder['summary'] ) : '',
'services' => isset( $placeholder['services'] ) ? array_values( array_filter( array_map( 'ethnic_industry_pages_text', (array) $placeholder['services'] ) ) ) : array(),
'platforms' => isset( $placeholder['platforms'] ) ? array_values( array_filter( array_map( 'ethnic_industry_pages_text', (array) $placeholder['platforms'] ) ) ) : array(),
'industry' => $definition['name'],
'url' => $definition['case_studies_url'],
'cta_label' => 'View Case Study',
'image_url' => $definition['visual_image_url'],
'image_alt' => $definition['visual_image_alt'],
'is_real' => false,
);
}
return array_slice( $cards, 0, 3 );
}
}
if ( ! function_exists( 'ethnic_industry_pages_real_case_studies' ) ) {
function ethnic_industry_pages_real_case_studies( $definition, $limit = 3 ) {
$cards = array();
if ( ! function_exists( 'ethnic_case_studies_build_post_payload' ) || ! defined( 'ETHNIC_CASE_STUDIES_POST_TYPE' ) ) {
return $cards;
}
$aliases = array_merge( array( $definition['slug'] ), isset( $definition['industry_aliases'] ) ? (array) $definition['industry_aliases'] : array() );
$aliases = array_values( array_unique( array_filter( array_map( 'sanitize_title', $aliases ) ) ) );
$posts = get_posts(
array(
'post_type' => ETHNIC_CASE_STUDIES_POST_TYPE,
'post_status' => 'publish',
'posts_per_page' => 12,
'orderby' => 'date',
'order' => 'DESC',
)
);
foreach ( $posts as $post ) {
if ( count( $cards ) >= $limit ) {
break;
}
$payload = ethnic_case_studies_build_post_payload( $post );
if ( empty( $payload ) ) {
continue;
}
$industry_slugs = array_map( 'sanitize_title', (array) $payload['industries'] );
if ( empty( array_intersect( $aliases, $industry_slugs ) ) ) {
continue;
}
$cards[] = array(
'title' => isset( $payload['title'] ) ? $payload['title'] : get_the_title( $post ),
'summary' => isset( $payload['summary'] ) ? ethnic_industry_pages_trim( $payload['summary'], 34 ) : '',
'services' => isset( $payload['services'] ) ? array_slice( array_values( (array) $payload['services'] ), 0, 2 ) : array(),
'platforms' => isset( $payload['platforms'] ) ? array_slice( array_values( (array) $payload['platforms'] ), 0, 1 ) : array(),
'industry' => isset( $payload['industries'][0] ) ? ethnic_industry_pages_text( $payload['industries'][0], $definition['name'] ) : $definition['name'],
'url' => isset( $payload['url'] ) ? $payload['url'] : get_permalink( $post ),
'cta_label' => 'View Case Study',
'image_url' => ! empty( $payload['image_url'] ) ? $payload['image_url'] : $definition['visual_image_url'],
'image_alt' => ! empty( $payload['image_alt'] ) ? $payload['image_alt'] : $definition['visual_image_alt'],
'is_real' => true,
);
}
return $cards;
}
}
if ( ! function_exists( 'ethnic_industry_pages_json_ld' ) ) {
function ethnic_industry_pages_json_ld( $definition ) {
$items = array(
array(
'@context' => 'https://schema.org',
'@type' => 'WebPage',
'name' => $definition['hero_title'],
'url' => $definition['url'],
'description' => $definition['meta_description'],
'about' => array(
'@type' => 'Thing',
'name' => $definition['name'],
),
'publisher' => array(
'@type' => 'Organization',
'name' => get_bloginfo( 'name' ),
),
),
);
if ( ! empty( $definition['faqs'] ) ) {
$faq_page = array(
'@context' => 'https://schema.org',
'@type' => 'FAQPage',
'mainEntity' => array(),
);
foreach ( (array) $definition['faqs'] as $faq ) {
$faq_page['mainEntity'][] = array(
'@type' => 'Question',
'name' => $faq['question'],
'acceptedAnswer' => array(
'@type' => 'Answer',
'text' => $faq['answer'],
),
);
}
if ( ! empty( $faq_page['mainEntity'] ) ) {
$items[] = $faq_page;
}
}
return $items;
}
}
if ( ! function_exists( 'ethnic_industry_pages_archive_context' ) ) {
function ethnic_industry_pages_archive_context() {
$cards = ethnic_industry_pages_archive_cards();
$faqs = ethnic_industry_pages_archive_faqs();
$context = array(
'is_archive' => true,
'url' => ethnic_industry_pages_archive_url(),
'meta_title' => 'Industries We Serve | Sector-Focused Digital Solutions & Development Services',
'meta_description' => 'Explore the industries we serve and discover custom digital solutions including eCommerce development, app development, integrations, UX improvements, and long-term support.',
'hero_title' => 'Industries We Serve',
'hero_subtitle' => 'We help businesses across multiple sectors with custom digital solutions, eCommerce development, app development, web platforms, integrations, and long-term support shaped around real operational and customer-facing needs.',
'hero_points' => array(
'Industry-focused digital solutions',
'Scalable development and integrations',
'Strategy, delivery, and long-term support',
),
'hero_primary_label'=> 'Book a Free Consultation',
'hero_primary_url' => ethnic_industry_pages_contact_url(
array(
'from' => 'industry-archive',
)
),
'hero_secondary_label' => 'View Case Studies',
'hero_secondary_url' => ethnic_industry_pages_case_studies_url(),
'overview' => array(
'We work with multiple industries because each sector brings its own workflows, customer expectations, compliance realities, and operational constraints. That is why the right digital strategy is never just about features or frameworks in isolation.',
'Our approach combines business understanding with the right technology model, whether the need is customer-facing commerce, internal workflow software, mobile applications, connected integrations, or long-term platform modernization.',
'The goal is to shape sector-specific digital services that make platforms easier to use, teams easier to support, and growth initiatives easier to execute.',
),
'challenges' => ethnic_industry_pages_archive_challenges(),
'services' => ethnic_industry_pages_archive_services(),
'technologies_intro' => 'Technology selection depends on the industry, operational workflows, customer expectations, scalability goals, and the integrations required to support the business properly over time.',
'technology_groups'=> ethnic_industry_pages_archive_technology_groups(),
'case_studies' => ethnic_industry_pages_archive_case_studies(),
'faqs' => $faqs,
'cta_title' => 'Looking for a Technology Partner That Understands Your Industry?',
'cta_text' => 'Let’s talk about your industry challenges, digital transformation goals, platform limitations, app requirements, integration needs, or modernization plans and shape the right delivery approach together.',
'cta_primary_label'=> 'Talk to Our Team',
'cta_primary_url' => ethnic_industry_pages_contact_url(
array(
'from' => 'industry-archive',
'intent' => 'team-conversation',
)
),
'cta_secondary_label' => 'Get a Free Quote',
'cta_secondary_url' => ethnic_industry_pages_contact_url(
array(
'from' => 'industry-archive',
'intent' => 'quote',
)
),
'cards' => $cards,
'editor_content' => '',
'json_ld' => array(
array(
'@context' => 'https://schema.org',
'@type' => 'CollectionPage',
'name' => 'Industries We Serve',
'url' => ethnic_industry_pages_archive_url(),
'description' => 'Explore the industries we serve and discover custom digital solutions including eCommerce development, app development, integrations, UX improvements, and long-term support.',
'publisher' => array(
'@type' => 'Organization',
'name' => get_bloginfo( 'name' ),
),
),
array(
'@context' => 'https://schema.org',
'@type' => 'FAQPage',
'mainEntity' => array_map(
static function ( $faq ) {
return array(
'@type' => 'Question',
'name' => $faq['question'],
'acceptedAnswer' => array(
'@type' => 'Answer',
'text' => $faq['answer'],
),
);
},
$faqs
),
),
),
);
return ethnic_industry_pages_apply_archive_page_overrides( $context );
}
}
if ( ! function_exists( 'ethnic_industry_pages_query_vars' ) ) {
function ethnic_industry_pages_query_vars( $vars ) {
$vars[] = 'ethnic_industry_slug';
$vars[] = 'ethnic_industry_archive';
return $vars;
}
add_filter( 'query_vars', 'ethnic_industry_pages_query_vars' );
}
if ( ! function_exists( 'ethnic_industry_pages_register_rewrites' ) ) {
function ethnic_industry_pages_register_rewrites() {
add_rewrite_rule( '^' . preg_quote( ethnic_industry_pages_base_slug(), '/' ) . '/?$', 'index.php?ethnic_industry_archive=1', 'top' );
add_rewrite_rule( '^' . preg_quote( ethnic_industry_pages_base_slug(), '/' ) . '/([^/]+)/?$', 'index.php?ethnic_industry_slug=$matches[1]', 'top' );
}
add_action( 'init', 'ethnic_industry_pages_register_rewrites', 30 );
}
if ( ! function_exists( 'ethnic_industry_pages_maybe_flush_rewrites' ) ) {
function ethnic_industry_pages_maybe_flush_rewrites() {
if ( get_option( 'ethnic_industry_pages_version' ) === ETHNIC_INDUSTRY_PAGES_VERSION ) {
return;
}
update_option( 'ethnic_industry_pages_version', ETHNIC_INDUSTRY_PAGES_VERSION );
flush_rewrite_rules( false );
}
add_action( 'init', 'ethnic_industry_pages_maybe_flush_rewrites', 60 );
}
if ( ! function_exists( 'ethnic_industry_pages_current_slug' ) ) {
function ethnic_industry_pages_current_slug() {
static $slug = null;
if ( null !== $slug ) {
return $slug;
}
$slug = ethnic_industry_pages_resolve_slug( get_query_var( 'ethnic_industry_slug' ) );
if ( '' === $slug && is_page() ) {
$page = get_queried_object();
$archive_page = ethnic_industry_pages_archive_source_page();
$archive_id = $archive_page instanceof WP_Post ? (int) $archive_page->ID : 0;
if ( $page instanceof WP_Post && 'page' === $page->post_type && $archive_id > 0 && (int) $page->post_parent === $archive_id ) {
$slug = ethnic_industry_pages_resolve_slug( $page->post_name );
}
}
return $slug;
}
}
if ( ! function_exists( 'ethnic_industry_pages_is_archive_request' ) ) {
function ethnic_industry_pages_is_archive_request() {
if ( is_admin() ) {
return false;
}
if ( (bool) get_query_var( 'ethnic_industry_archive' ) ) {
return true;
}
$archive_page = ethnic_industry_pages_archive_source_page();
return $archive_page instanceof WP_Post && is_page( $archive_page->ID );
}
}
if ( ! function_exists( 'ethnic_industry_pages_is_single_request' ) ) {
function ethnic_industry_pages_is_single_request() {
return ! is_admin() && '' !== ethnic_industry_pages_current_slug();
}
}
if ( ! function_exists( 'ethnic_industry_pages_is_request' ) ) {
function ethnic_industry_pages_is_request() {
return ethnic_industry_pages_is_archive_request() || ethnic_industry_pages_is_single_request();
}
}
if ( ! function_exists( 'ethnic_industry_pages_current_context' ) ) {
function ethnic_industry_pages_current_context() {
static $context = null;
if ( null !== $context ) {
return $context;
}
if ( ethnic_industry_pages_is_archive_request() ) {
$context = ethnic_industry_pages_archive_context();
return $context;
}
if ( ethnic_industry_pages_is_single_request() ) {
$context = ethnic_industry_pages_definition( ethnic_industry_pages_current_slug() );
return $context;
}
$context = array();
return $context;
}
}
if ( ! function_exists( 'ethnic_industry_pages_pre_handle_404' ) ) {
function ethnic_industry_pages_pre_handle_404( $preempt, $query ) {
if ( is_admin() || ! ( $query instanceof WP_Query ) || ! $query->is_main_query() ) {
return $preempt;
}
$slug = ethnic_industry_pages_resolve_slug( $query->get( 'ethnic_industry_slug' ) );
$archive = (bool) $query->get( 'ethnic_industry_archive' );
if ( ! $archive && '' === $slug ) {
return $preempt;
}
if ( ! $archive && '' === $slug ) {
return $preempt;
}
$query->is_404 = false;
$query->is_home = false;
$query->is_page = true;
$query->is_singular = true;
$query->is_archive = false;
$query->found_posts = 1;
$query->post_count = 1;
status_header( 200 );
return true;
}
add_filter( 'pre_handle_404', 'ethnic_industry_pages_pre_handle_404', 10, 2 );
}
if ( ! function_exists( 'ethnic_industry_pages_disable_canonical_redirect' ) ) {
function ethnic_industry_pages_disable_canonical_redirect( $redirect ) {
if ( ethnic_industry_pages_is_request() ) {
return false;
}
return $redirect;
}
add_filter( 'redirect_canonical', 'ethnic_industry_pages_disable_canonical_redirect' );
}
if ( ! function_exists( 'ethnic_industry_pages_template_include' ) ) {
function ethnic_industry_pages_template_include( $template ) {
if ( ! ethnic_industry_pages_is_request() ) {
return $template;
}
$candidates = array(
trailingslashit( get_stylesheet_directory() ) . 'template-industry-page.php',
trailingslashit( get_template_directory() ) . 'template-industry-page.php',
);
foreach ( $candidates as $candidate ) {
if ( file_exists( $candidate ) ) {
return $candidate;
}
}
$custom_template = locate_template( array( 'template-industry-page.php' ) );
return '' !== $custom_template ? $custom_template : $template;
}
add_filter( 'template_include', 'ethnic_industry_pages_template_include', 999 );
}
if ( ! function_exists( 'ethnic_industry_pages_body_class' ) ) {
function ethnic_industry_pages_body_class( $classes ) {
if ( ! ethnic_industry_pages_is_request() ) {
return $classes;
}
$classes = array_values(
array_filter(
(array) $classes,
static function ( $class ) {
$class = (string) $class;
if ( 'single-post' === $class || 'ethnic-single-post-active' === $class ) {
return false;
}
foreach ( array( 'post-template', 'postid-', 'page-id-' ) as $prefix ) {
if ( 0 === strpos( $class, $prefix ) ) {
return false;
}
}
return true;
}
)
);
$classes[] = 'ethnic-industry-page-target';
if ( ethnic_industry_pages_is_archive_request() ) {
$classes[] = 'ethnic-industry-page-target--archive';
}
if ( ethnic_industry_pages_is_single_request() ) {
$classes[] = 'ethnic-industry-page-target--single';
$classes[] = 'ethnic-industry-page-target--' . sanitize_html_class( ethnic_industry_pages_current_slug() );
}
return $classes;
}
add_filter( 'body_class', 'ethnic_industry_pages_body_class', 999 );
}
if ( ! function_exists( 'ethnic_industry_pages_cleanup_wp_head' ) ) {
function ethnic_industry_pages_cleanup_wp_head() {
if ( ! ethnic_industry_pages_is_request() ) {
return;
}
remove_action( 'wp_head', 'rel_canonical' );
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10 );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10 );
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );
}
add_action( 'wp', 'ethnic_industry_pages_cleanup_wp_head', 5 );
}
if ( ! function_exists( 'ethnic_industry_pages_enqueue_assets' ) ) {
function ethnic_industry_pages_enqueue_assets() {
if ( ! ethnic_industry_pages_is_request() || ! defined( 'THEGEM_THEME_URI' ) || ! defined( 'THEGEM_THEME_PATH' ) ) {
return;
}
$css_relative = '/css/ethnic-industry-page.css';
$css_path = THEGEM_THEME_PATH . $css_relative;
wp_enqueue_style(
'ethnic-industry-page',
THEGEM_THEME_URI . $css_relative,
array(),
file_exists( $css_path ) ? filemtime( $css_path ) : null
);
}
add_action( 'wp_enqueue_scripts', 'ethnic_industry_pages_enqueue_assets', 45 );
}
if ( ! function_exists( 'ethnic_industry_pages_document_title' ) ) {
function ethnic_industry_pages_document_title( $title ) {
if ( ! ethnic_industry_pages_is_request() ) {
return $title;
}
$context = ethnic_industry_pages_current_context();
return ! empty( $context['meta_title'] ) ? $context['meta_title'] : $title;
}
add_filter( 'pre_get_document_title', 'ethnic_industry_pages_document_title', 50 );
}
if ( ! function_exists( 'ethnic_industry_pages_output_head_meta' ) ) {
function ethnic_industry_pages_output_head_meta() {
if ( ! ethnic_industry_pages_is_request() ) {
return;
}
$context = ethnic_industry_pages_current_context();
if ( empty( $context ) ) {
return;
}
?>
<meta name="description" content="<?php echo esc_attr( $context['meta_description'] ); ?>" />
<link rel="canonical" href="<?php echo esc_url( $context['url'] ); ?>" />
<?php foreach ( (array) $context['json_ld'] as $graph ) : ?>
<script type="application/ld+json"><?php echo wp_json_encode( $graph, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE ); ?></script>
<?php endforeach; ?>
<?php
}
add_action( 'wp_head', 'ethnic_industry_pages_output_head_meta', 8 );
}