diff --git a/assets/css/theme.css b/assets/css/theme.css index 0c701dd..b0b58ef 100644 --- a/assets/css/theme.css +++ b/assets/css/theme.css @@ -158,13 +158,22 @@ img { text-decoration: none; line-height: 1.2; cursor: pointer; - transition: opacity 180ms ease, background-color 180ms ease, border-color 180ms ease; + transition: + opacity 180ms ease, + color 180ms ease, + background-color 180ms ease, + border-color 180ms ease, + transform 180ms ease; user-select: none; } .btn:hover { opacity: 0.85; - transform: none; + transform: translateY(-2px); +} + +.btn:active { + transform: translateY(0); } .btn:focus-visible { @@ -267,7 +276,16 @@ img { border-bottom: 1px solid var(--b2b-line-light); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); - transition: border-color 180ms ease; + transition: + background-color 240ms ease, + border-color 240ms ease, + box-shadow 240ms ease; +} + +.b2b-header.sticky { + background: rgba(250, 250, 248, 0.98); + border-color: rgba(28, 28, 26, 0.12); + box-shadow: 0 8px 24px rgba(28, 28, 26, 0.06); } .b2b-header .navbar { @@ -339,7 +357,14 @@ img { min-height: 85vh; padding: 8rem 0 5rem; align-items: center; - background: var(--b2b-surface); + background: + linear-gradient( + 90deg, + rgba(250, 250, 248, 0.98) 0%, + rgba(250, 250, 248, 0.92) 42%, + rgba(250, 250, 248, 0.28) 100% + ), + url("../images/hero-car.jpg") center 58% / cover no-repeat; } .b2b-hero h1 { @@ -593,9 +618,22 @@ img { max-width: 520px; } +.cta-section .btn-b2b-primary { + color: var(--b2b-ink); + background: var(--b2b-surface); + border-color: var(--b2b-surface); +} + +.cta-section .btn-b2b-primary:hover, +.cta-section .btn-b2b-primary:focus { + color: var(--b2b-ink); + background: var(--b2b-mist); + border-color: var(--b2b-mist); +} + /* ---- FAQ Section ---- */ .faq-section { - background: var(--b2b-surface); + background: transparent; } .faq-section .accordion, @@ -628,11 +666,26 @@ img { .faq-section .accordion-button::after { filter: none; opacity: 0.4; + transition: opacity 220ms ease, transform 220ms ease; +} + +.faq-section .accordion-button:hover::after, +.faq-section .accordion-button:not(.collapsed)::after { + opacity: 0.75; } .faq-section .accordion-body { padding: 0 0 1.5rem; color: var(--b2b-ink-soft); + opacity: 0; + transform: translateY(-4px); + transition: opacity 220ms ease, transform 220ms ease; +} + +.faq-section .accordion-collapse.collapsing .accordion-body, +.faq-section .accordion-collapse.show .accordion-body { + opacity: 1; + transform: translateY(0); } /* ---- Factory / Store Environment ---- */ @@ -676,10 +729,88 @@ img { grid-row: span 2; } +.factory-gallery-extra { + grid-column: 1 / -1; + height: 220px; +} + .factory-gallery img { width: 100%; height: 100%; object-fit: cover; + transition: transform 500ms ease; +} + +.factory-gallery figure:hover img { + transform: scale(1.03); +} + +/* ---- Store Credentials ---- */ +.credentials-section { + background: var(--b2b-elevated); +} + +.credentials-section .section-lead { + margin-right: auto; + margin-left: auto; +} + +.credentials-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 1px; + background: var(--b2b-line); +} + +.credential-card { + min-width: 0; + background: var(--b2b-surface); +} + +.credential-media { + display: block; + overflow: hidden; + aspect-ratio: 4 / 3; + background: var(--b2b-mist); +} + +.credential-media img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 500ms ease; +} + +.credential-media:hover { + opacity: 1; +} + +.credential-media:hover img { + transform: scale(1.03); +} + +.credential-media.is-contain { + padding: 1rem; + background: #fff; +} + +.credential-media.is-contain img { + object-fit: contain; +} + +.credential-body { + padding: 1.5rem; +} + +.credential-body h3 { + margin-bottom: 0.75rem; + font-size: 1.15rem; +} + +.credential-body p { + margin: 0; + color: var(--b2b-ink-soft); + font-size: 0.9rem; } /* ---- Factory Video ---- */ @@ -914,6 +1045,21 @@ textarea:focus-visible { padding-top: 8.5rem; } +.b2b-section.about-intro { + position: relative; + color: #fff; + background: + linear-gradient(90deg, rgba(16, 17, 15, 0.7), rgba(16, 17, 15, 0.42)), + url("../images/store/storefront.jpg") center 42% / cover no-repeat; +} + +.about-intro .section-heading, +.about-intro .section-eyebrow, +.about-intro h1, +.about-intro .about-content { + color: inherit; +} + .page-content { padding-bottom: 5rem; } @@ -964,101 +1110,200 @@ textarea:focus-visible { } /* ---- Contact Page ---- */ -.contact-info-card { - padding: 2.5rem 2rem; +.contact-section { + padding-top: 0; background: var(--b2b-surface); - border: 1px solid var(--b2b-line); } -.contact-info-item { - display: flex; - align-items: flex-start; - gap: 1rem; - padding: 1.25rem 0; -} - -.contact-info-item + .contact-info-item { - border-top: 1px solid var(--b2b-line-light); -} - -.contact-info-icon { - flex-shrink: 0; - width: 44px; - height: 44px; - display: flex; - align-items: center; - justify-content: center; - background: var(--b2b-mist); -} - -.contact-info-body h3 { - font-size: 0.9rem; - margin-bottom: 0.2rem; - color: var(--b2b-ink-muted); - font-weight: 500; -} - -.contact-info-body p, -.contact-info-body a { - font-size: 1rem; - font-weight: 500; - color: var(--b2b-ink); - text-decoration: none; - margin: 0; -} - -.contact-info-body a:hover { - opacity: 0.7; -} - -.contact-info-body .whatsapp-link { - display: inline-block; - margin-top: 0.25rem; - padding: 0.375rem 1rem; - background: var(--b2b-ink); - color: var(--b2b-surface); - font-size: 0.85rem; - font-weight: 500; - text-decoration: none; - letter-spacing: 0.04em; -} - -.contact-info-body .whatsapp-link:hover { - opacity: 0.85; - color: var(--b2b-surface); -} - -/* Map card */ -.contact-map-card { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - min-height: 320px; - padding: 3rem 2rem; - background: var(--b2b-mist); - border: 1px solid var(--b2b-line); - text-align: center; - text-decoration: none; - transition: background 180ms ease; -} - -.contact-map-card:hover { +.contact-hero-grid { + min-height: 520px; background: var(--b2b-elevated); +} + +.contact-hero-copy { + display: flex; + height: 100%; + min-height: 520px; + padding: clamp(2.5rem, 5vw, 5rem); + flex-direction: column; + justify-content: center; +} + +.contact-hero-copy h1 { + margin-bottom: 1.5rem; + font-family: var(--b2b-font-display); + font-size: clamp(2.7rem, 5vw, 4.8rem); + font-weight: 300; +} + +.contact-hero-lead { + max-width: 440px; + margin-bottom: 0; + color: var(--b2b-ink-soft); + font-size: 1.05rem; + line-height: 1.8; +} + +.contact-hero-actions { + display: flex; + flex-wrap: wrap; + gap: 0.75rem; + margin-top: 2rem; +} + +.contact-store-media { + position: relative; + height: 100%; + min-height: 520px; + margin: 0; + overflow: hidden; + background: var(--b2b-mist); +} + +.contact-store-media img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1); +} + +.contact-store-media:hover img { + transform: scale(1.025); +} + +.contact-store-media figcaption { + position: absolute; + right: 1.25rem; + bottom: 1.25rem; + padding: 0.55rem 0.8rem; + color: #fff; + background: rgba(16, 17, 15, 0.72); + font-size: 0.74rem; + letter-spacing: 0.08em; +} + +.contact-details-section { + background: var(--b2b-mist); +} + +.contact-detail-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 1px; + background: var(--b2b-line); +} + +.contact-detail-grid.has-hours { + grid-template-columns: repeat(4, minmax(0, 1fr)); +} + +.contact-detail-card { + min-width: 0; + padding: 2rem; + background: var(--b2b-surface); +} + +.contact-detail-label { + margin-bottom: 1.5rem; + color: var(--b2b-ink-muted); + font-size: 0.72rem; + font-weight: 500; + letter-spacing: 0.12em; + text-transform: uppercase; +} + +.contact-detail-card h3, +.contact-detail-card h3 a { + margin: 0; + color: var(--b2b-ink); + font-size: clamp(1.05rem, 1.8vw, 1.35rem); + font-weight: 400; text-decoration: none; } -.contact-map-icon { - color: var(--b2b-ink-soft); - margin-bottom: 1rem; +.contact-detail-card h3 a:hover { + opacity: 0.65; } -.contact-map-address { - font-size: 1rem; - font-weight: 500; - color: var(--b2b-ink); +.contact-detail-empty { margin: 0; - max-width: 320px; + color: var(--b2b-ink-muted); +} + +.contact-map-section { + background: var(--b2b-surface); +} + +.contact-map-heading { + display: flex; + align-items: flex-end; + justify-content: space-between; + gap: 2rem; + margin-bottom: 2rem; +} + +.contact-map-heading h2 { + margin-bottom: 0.75rem; +} + +.contact-map-heading p:last-child { + color: var(--b2b-ink-soft); +} + +.contact-map-panel { + position: relative; + min-height: 520px; + overflow: hidden; + background: + linear-gradient(rgba(28, 28, 26, 0.06) 1px, transparent 1px), + linear-gradient(90deg, rgba(28, 28, 26, 0.06) 1px, transparent 1px), + var(--b2b-mist); + background-size: 48px 48px; + border: 1px solid var(--b2b-line); +} + +.contact-map-panel iframe { + display: block; + width: 100%; + min-height: 520px; + border: 0; +} + +.contact-map-placeholder { + display: flex; + min-height: 520px; + padding: 2rem; + align-items: center; + justify-content: center; + flex-direction: column; + text-align: center; +} + +.contact-map-placeholder span { + margin-bottom: 1rem; + font-size: 2rem; +} + +.contact-map-placeholder p { + margin: 0; + color: var(--b2b-ink-soft); +} + +/* ---- Reveal Motion ---- */ +.motion-ready .reveal-item { + opacity: 0; + transform: translateY(var(--reveal-distance, 18px)); + transition: + opacity 550ms cubic-bezier(0.2, 0.7, 0.2, 1), + transform 550ms cubic-bezier(0.2, 0.7, 0.2, 1); + transition-delay: var(--reveal-delay, 0ms); + will-change: opacity, transform; +} + +.motion-ready .reveal-item.is-visible { + opacity: 1; + transform: translateY(0); + will-change: auto; } /* ---- Reduced Motion ---- */ @@ -1070,6 +1315,11 @@ textarea:focus-visible { animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } + + .motion-ready .reveal-item { + opacity: 1 !important; + transform: none !important; + } } /* ============================================================ @@ -1127,6 +1377,29 @@ textarea:focus-visible { .b2b-header .offcanvas .nav-item { border-bottom: 1px solid var(--b2b-line-light); width: 100%; + opacity: 0; + transform: translateX(8px); + transition: + opacity 320ms cubic-bezier(0.2, 0.7, 0.2, 1), + transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1); + } + + .b2b-header .offcanvas.showing .nav-item, + .b2b-header .offcanvas.show .nav-item { + opacity: 1; + transform: translateX(0); + } + + .b2b-header .offcanvas .nav-item:nth-child(2) { transition-delay: 40ms; } + .b2b-header .offcanvas .nav-item:nth-child(3) { transition-delay: 80ms; } + .b2b-header .offcanvas .nav-item:nth-child(4) { transition-delay: 120ms; } + .b2b-header .offcanvas .nav-item:nth-child(5) { transition-delay: 160ms; } + .b2b-header .offcanvas .nav-item:nth-child(6) { transition-delay: 200ms; } + + .b2b-header .offcanvas.hiding .nav-item { + opacity: 0; + transform: translateX(4px); + transition-delay: 0ms; } .b2b-header .offcanvas .nav-link { @@ -1182,13 +1455,29 @@ textarea:focus-visible { margin-top: 1.5rem; } + .credentials-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .factory-video-section { padding-bottom: 5rem; } - .contact-map-card { - min-height: 220px; - padding: 2rem 1.5rem; + .contact-hero-grid, + .contact-hero-copy, + .contact-store-media { + min-height: 420px; + } + + .contact-detail-grid, + .contact-detail-grid.has-hours { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .contact-map-panel, + .contact-map-panel iframe, + .contact-map-placeholder { + min-height: 420px; } } @@ -1209,6 +1498,9 @@ textarea:focus-visible { .b2b-hero { padding-top: 6.5rem; + background: + linear-gradient(rgba(250, 250, 248, 0.84), rgba(250, 250, 248, 0.84)), + url("../images/hero-car.jpg") 62% center / cover no-repeat; } .b2b-hero h1 { @@ -1265,6 +1557,35 @@ textarea:focus-visible { padding-bottom: 4rem; } + .contact-section { + padding-top: 0; + } + + .contact-hero-copy { + min-height: auto; + padding: 3rem 2rem; + } + + .contact-store-media { + min-height: 360px; + } + + .contact-detail-grid, + .contact-detail-grid.has-hours { + grid-template-columns: 1fr; + } + + .contact-map-heading { + align-items: flex-start; + flex-direction: column; + } + + .contact-map-panel, + .contact-map-panel iframe, + .contact-map-placeholder { + min-height: 360px; + } + .about-cta { padding: 4rem 0; } @@ -1279,13 +1600,23 @@ textarea:focus-visible { .factory-gallery { display: grid; grid-template-columns: 1fr; - grid-template-rows: repeat(4, 200px); + grid-template-rows: none; + grid-auto-rows: 200px; } .factory-gallery figure:first-child { grid-row: auto; } + .factory-gallery-extra { + grid-column: auto; + height: auto; + } + + .credentials-grid { + grid-template-columns: 1fr; + } + .capability-body { padding: 1.25rem; } @@ -1294,7 +1625,8 @@ textarea:focus-visible { padding: 1.25rem 1rem; } - .contact-map-card { - min-height: 180px; + .contact-hero-actions .btn, + .contact-map-heading .btn { + width: 100%; } } diff --git a/assets/images/ATTRIBUTION.md b/assets/images/ATTRIBUTION.md new file mode 100644 index 0000000..7ca2694 --- /dev/null +++ b/assets/images/ATTRIBUTION.md @@ -0,0 +1,3 @@ +# Image attribution + +- `hero-car.jpg` — Photo by Quentin Martinez on [Pexels](https://www.pexels.com/photo/sleek-profile-of-a-luxury-sports-car-in-studio-lighting-33345481/), downloaded on 2026-07-25 and used under the [Pexels License](https://www.pexels.com/license/). diff --git a/assets/images/hero-car.jpg b/assets/images/hero-car.jpg new file mode 100644 index 0000000..cc7a55e Binary files /dev/null and b/assets/images/hero-car.jpg differ diff --git a/assets/images/store/authorization.jpg b/assets/images/store/authorization.jpg new file mode 100644 index 0000000..cfa3e55 Binary files /dev/null and b/assets/images/store/authorization.jpg differ diff --git a/assets/images/store/award.jpg b/assets/images/store/award.jpg new file mode 100644 index 0000000..71c8fb8 Binary files /dev/null and b/assets/images/store/award.jpg differ diff --git a/assets/images/store/brand-event.jpg b/assets/images/store/brand-event.jpg new file mode 100644 index 0000000..9771638 Binary files /dev/null and b/assets/images/store/brand-event.jpg differ diff --git a/assets/images/store/kdx-logo.jpg b/assets/images/store/kdx-logo.jpg new file mode 100644 index 0000000..8d850ab Binary files /dev/null and b/assets/images/store/kdx-logo.jpg differ diff --git a/assets/images/store/showroom-consultation.jpg b/assets/images/store/showroom-consultation.jpg new file mode 100644 index 0000000..7c2c4af Binary files /dev/null and b/assets/images/store/showroom-consultation.jpg differ diff --git a/assets/images/store/showroom-main.jpg b/assets/images/store/showroom-main.jpg new file mode 100644 index 0000000..3b7b21e Binary files /dev/null and b/assets/images/store/showroom-main.jpg differ diff --git a/assets/images/store/storefront.jpg b/assets/images/store/storefront.jpg new file mode 100644 index 0000000..bc8b725 Binary files /dev/null and b/assets/images/store/storefront.jpg differ diff --git a/assets/js/theme.js b/assets/js/theme.js index 4055c36..c44949a 100644 --- a/assets/js/theme.js +++ b/assets/js/theme.js @@ -25,9 +25,93 @@ }); } + function initRevealMotion() { + var reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; + var compactMotion = window.matchMedia('(max-width: 768px)').matches; + if (reducedMotion || !('IntersectionObserver' in window)) return; + + var revealItems = []; + + function prepareGroup(containerSelector, itemSelector, delayStep) { + document.querySelectorAll(containerSelector).forEach(function (container) { + container.querySelectorAll(itemSelector).forEach(function (item, index) { + var effectiveStep = compactMotion ? 40 : delayStep; + var maximumDelay = compactMotion ? 200 : 300; + var delay = Math.min(index * effectiveStep, maximumDelay); + item.classList.add('reveal-item'); + item.style.setProperty('--reveal-delay', delay + 'ms'); + revealItems.push(item); + }); + }); + } + + prepareGroup( + '.b2b-hero', + '.section-eyebrow, h1, .b2b-hero-lead, .d-flex.flex-wrap, .hero-proof-list', + 80 + ); + prepareGroup('.trust-strip .row', '.trust-metric', 60); + prepareGroup('.capability-grid', '.capability-card', 60); + prepareGroup('.case-grid', '.case-card', 60); + prepareGroup('.factory-gallery', 'figure', 60); + prepareGroup('.credentials-grid', '.credential-card', 60); + prepareGroup('.document-grid', 'article', 60); + prepareGroup('.contact-detail-grid', '.contact-detail-card', 60); + prepareGroup('.service-content, .case-content', ':scope > *', 40); + + document.querySelectorAll( + [ + '.section-heading', + '.factory-proof .col-lg-5', + '.factory-video-card', + '.faq-section .col-lg-4', + '.faq-section .accordion', + '.contact-hero-copy', + '.contact-store-media', + '.contact-map-heading', + '.contact-map-panel', + '.cta-section .container', + '.about-cta .container', + '.page-header' + ].join(', ') + ).forEach(function (item) { + if (item.classList.contains('reveal-item')) return; + item.classList.add('reveal-item'); + item.style.setProperty('--reveal-delay', '0ms'); + revealItems.push(item); + }); + + if (!revealItems.length) return; + + document.documentElement.classList.add('motion-ready'); + + var observer = new IntersectionObserver( + function (entries) { + entries.forEach(function (entry) { + if (!entry.isIntersecting) return; + entry.target.classList.add('is-visible'); + observer.unobserve(entry.target); + }); + }, + { + threshold: 0.12, + rootMargin: '0px' + } + ); + + window.requestAnimationFrame(function () { + window.requestAnimationFrame(function () { + revealItems.forEach(function (item) { + observer.observe(item); + }); + }); + }); + } + function initTheme() { initStickyHeader(); initNavigation(); + initRevealMotion(); } if (document.readyState === 'loading') { diff --git a/inc/defaults.php b/inc/defaults.php index d679bc7..ff572a5 100644 --- a/inc/defaults.php +++ b/inc/defaults.php @@ -18,8 +18,8 @@ function fragrance_trade_defaults() { $defaults = array( 'b2b_hero_eyebrow' => __( '需求沟通 · 方案确认 · 施工交付', 'fragrance-trade' ), - 'b2b_hero_title' => __( '根据车型与使用场景,选择更合适的汽车贴膜方案', 'fragrance-trade' ), - 'b2b_hero_text' => __( '隐形车衣、改色膜、隔热膜等项目,从需求沟通、膜料确认到施工交付,把选择和注意事项先讲清楚。', 'fragrance-trade' ), + 'b2b_hero_title' => __( 'xxx店铺名字', 'fragrance-trade' ), + 'b2b_hero_text' => __( 'xxx地址', 'fragrance-trade' ), 'b2b_hero_primary_label' => __( '联系门店', 'fragrance-trade' ), 'b2b_hero_primary_url' => '/contact/', 'b2b_hero_secondary_label' => __( '了解服务项目', 'fragrance-trade' ), @@ -86,7 +86,7 @@ function fragrance_trade_defaults() { 'linkedin_url' => '', 'instagram_social_url' => '', 'store_address' => '', - 'store_phone' => '', + 'store_phone' => __( 'xxx电话', 'fragrance-trade' ), 'store_hours' => '', 'store_map_url' => '', 'footer_text' => __( '专注汽车贴膜方案沟通、施工交付与日常护理说明。', 'fragrance-trade' ), diff --git a/languages/fragrance-trade.pot b/languages/fragrance-trade.pot index c1e7a21..fb16635 100644 --- a/languages/fragrance-trade.pot +++ b/languages/fragrance-trade.pot @@ -467,7 +467,7 @@ msgid "查看接车检查、车辆清洁、裁膜施工、复检交付等主要 msgstr "" #: inc/defaults.php:21 -msgid "根据车型与使用场景,选择更合适的汽车贴膜方案" +msgid "xxx店铺名字" msgstr "" #: inc/cpt.php:40 @@ -755,7 +755,7 @@ msgid "陶瓷隔热膜" msgstr "" #: inc/defaults.php:22 -msgid "隐形车衣、改色膜、隔热膜等项目,从需求沟通、膜料确认到施工交付,把选择和注意事项先讲清楚。" +msgid "xxx地址" msgstr "" #: inc/cpt.php:88 @@ -825,3 +825,146 @@ msgstr "" #: archive-case.php:21 archive-service.php:21 inc/cpt.php:285 inc/helpers.php:61 page-about.php:27 page-contact.php:35 page-faq.php:22 single-case.php:22 single-service.php:25 msgid "首页" msgstr "" + +#: template-parts/home/credentials.php:15 +msgid "KDX 品牌服务" +msgstr "" + +#: template-parts/home/credentials.php:24 +msgid "KDX 汽车膜授权服务店证书" +msgstr "" + +#: template-parts/home/credentials.php:40 +msgid "KDX 品牌活动现场" +msgstr "" + +#: template-parts/home/credentials.php:25 +msgid "KDX 汽车膜授权服务店证书,具体有效期以证书原件为准。" +msgstr "" + +#: template-parts/home/credentials.php:41 +msgid "参加 KDX 品牌活动,了解产品与施工服务信息。" +msgstr "" + +#: template-parts/home/credentials.php:57 +msgid "通过门店授权、品牌活动与赛事记录,了解门店的实际经营与服务背景。" +msgstr "" + +#: template-parts/home/credentials.php:32 +msgid "赛事荣誉" +msgstr "" + +#: template-parts/home/credentials.php:17 +msgid "KDX 品牌标识" +msgstr "" + +#: template-parts/home/credentials.php:16 +msgid "门店展示的 KDX 品牌标识与产品服务体系。" +msgstr "" + +#: template-parts/home/factory.php:13 +msgid "门店临街门头" +msgstr "" + +#: template-parts/home/factory.php:14 +msgid "门店接待与施工环境" +msgstr "" + +#: template-parts/home/factory.php:15 +msgid "门店咨询与产品展示区" +msgstr "" + +msgid "门店补充实景" +msgstr "" + +#: template-parts/home/credentials.php:33 +msgid "2026 KDX 全国百强直播 PK 赛第一季“魄界王者”荣誉。" +msgstr "" + +#: template-parts/home/credentials.php:34 +msgid "KDX 全国百强直播 PK 赛魄界王者奖杯" +msgstr "" + +#: template-parts/home/credentials.php:39 +msgid "品牌交流活动" +msgstr "" + +#: template-parts/home/credentials.php:54 +msgid "品牌与门店资料" +msgstr "" + +#: template-parts/home/credentials.php:55 +msgid "资质与荣誉" +msgstr "" + +#: template-parts/home/credentials.php:23 +msgid "授权服务资质" +msgstr "" + +#. translators: %s: credential title. +#: template-parts/home/credentials.php:66 +#, php-format +msgid "查看%s大图" +msgstr "" + +#: page-contact.php +msgid "到店前可先电话确认车型、施工项目和时间,我们会提前做好接待安排。" +msgstr "" + +#: page-contact.php +msgid "拨打门店电话" +msgstr "" + +#: page-contact.php +msgid "查看门店位置" +msgstr "" + +#: page-contact.php +msgid "门店外景" +msgstr "" + +#: page-contact.php +msgid "门店信息" +msgstr "" + +#: page-contact.php +msgid "联系与到店信息" +msgstr "" + +#: page-contact.php +msgid "门店名称" +msgstr "" + +#: page-contact.php +msgid "请在后台填写联系电话" +msgstr "" + +#: page-contact.php +msgid "请在后台填写门店地址" +msgstr "" + +#: page-contact.php +msgid "地图与导航" +msgstr "" + +#: page-contact.php +msgid "找到门店" +msgstr "" + +#: page-contact.php +msgid "打开地图导航" +msgstr "" + +#. translators: %s: store name. +#: page-contact.php +#, php-format +msgid "%s门店地图" +msgstr "" + +#: page-contact.php +msgid "填写门店地址后将在这里显示地图。" +msgstr "" + +#: inc/defaults.php +msgid "xxx电话" +msgstr "" diff --git a/page-about.php b/page-about.php index ef64c95..d6b8821 100644 --- a/page-about.php +++ b/page-about.php @@ -55,13 +55,13 @@ get_header(); ?> = 5; -$map_nav_url = fragrance_trade_get_mod( 'store_map_url', '' ); -if ( ! $map_nav_url && $store_address ) { - $map_nav_url = 'https://api.map.baidu.com/geocoder?address=' +if ( ! $store_address ) { + $store_address = fragrance_trade_get_mod( 'b2b_hero_text' ); +} + +$map_nav_url = fragrance_trade_get_mod( 'store_map_url', '' ); +$baidu_map_url = ''; +if ( $store_address ) { + $baidu_map_url = 'https://api.map.baidu.com/geocoder?address=' . rawurlencode( $store_address ) . '&output=html&src=webapp'; } +if ( ! $map_nav_url ) { + $map_nav_url = $baidu_map_url; +} + +/* translators: %s: store name. */ +$map_title = sprintf( __( '%s门店地图', 'fragrance-trade' ), $store_name ); ?>
@@ -38,85 +52,116 @@ if ( ! $map_nav_url && $store_address ) { ) ); ?> +
+
-
-

-

-

-
- -
-
-
- -
- -
-

- -
-
- - - -
- -
-

WhatsApp

- - ↗ +
+
+ - - - -
- -
-

-

-
-
- - -
- -
-

- -
+ + + + + +
- - +
+
+
+ +
+
+
+

+

+
+
+
+

+

+
+
+

+ +

+ + + + + +

+ +

+ +
+
+

+ +

+ +

+ +
+ +
+

+

+
+ +
+
+
+ +
+
+
+
+

+

+ +

+ +
+ + + ↗ + + +
+ +
+ + + +
+ +

+
-
diff --git a/page-faq.php b/page-faq.php index d3227ab..b77f8ad 100644 --- a/page-faq.php +++ b/page-faq.php @@ -25,9 +25,6 @@ get_header(); ) ); ?> -
diff --git a/template-parts/home/credentials.php b/template-parts/home/credentials.php new file mode 100644 index 0000000..2f63fec --- /dev/null +++ b/template-parts/home/credentials.php @@ -0,0 +1,85 @@ + 'store/kdx-logo.jpg', + 'title' => __( 'KDX 品牌服务', 'fragrance-trade' ), + 'description' => __( '门店展示的 KDX 品牌标识与产品服务体系。', 'fragrance-trade' ), + 'alt' => __( 'KDX 品牌标识', 'fragrance-trade' ), + 'width' => 1600, + 'height' => 1472, + 'contain' => true, + ), + array( + 'image' => 'store/authorization.jpg', + 'title' => __( '授权服务资质', 'fragrance-trade' ), + 'description' => __( 'KDX 汽车膜授权服务店证书,具体有效期以证书原件为准。', 'fragrance-trade' ), + 'alt' => __( 'KDX 汽车膜授权服务店证书', 'fragrance-trade' ), + 'width' => 1600, + 'height' => 1199, + 'contain' => true, + ), + array( + 'image' => 'store/award.jpg', + 'title' => __( '赛事荣誉', 'fragrance-trade' ), + 'description' => __( '2026 KDX 全国百强直播 PK 赛第一季“魄界王者”荣誉。', 'fragrance-trade' ), + 'alt' => __( 'KDX 全国百强直播 PK 赛魄界王者奖杯', 'fragrance-trade' ), + 'width' => 900, + 'height' => 1600, + 'contain' => false, + ), + array( + 'image' => 'store/brand-event.jpg', + 'title' => __( '品牌交流活动', 'fragrance-trade' ), + 'description' => __( '参加 KDX 品牌活动,了解产品与施工服务信息。', 'fragrance-trade' ), + 'alt' => __( 'KDX 品牌活动现场', 'fragrance-trade' ), + 'width' => 1600, + 'height' => 1066, + 'contain' => false, + ), +); +?> +
+
+
+

+

+

+
+
+ + + +
+
+
diff --git a/template-parts/home/factory.php b/template-parts/home/factory.php index cbcd4ab..4efb0bf 100644 --- a/template-parts/home/factory.php +++ b/template-parts/home/factory.php @@ -4,13 +4,46 @@ if ( ! defined( 'ABSPATH' ) ) { exit; } -$factory_fallbacks = array( 'placeholder-factory-01.svg', 'placeholder-factory-02.svg', 'placeholder-factory-03.svg', 'placeholder-factory-04.svg' ); +$factory_fallbacks = array( + 'store/storefront.jpg', + 'store/showroom-main.jpg', + 'store/showroom-consultation.jpg', +); +$factory_alts = array( + __( '门店临街门头', 'fragrance-trade' ), + __( '门店接待与施工环境', 'fragrance-trade' ), + __( '门店咨询与产品展示区', 'fragrance-trade' ), +); +$factory_extra_image = fragrance_trade_get_mod( 'b2b_factory_image_4', '' ); ?>
-

-
+
+

+

+

+
    + +
  • + +
+
+
+ +
diff --git a/template-parts/home/faq.php b/template-parts/home/faq.php index 57636ef..c2dfccf 100644 --- a/template-parts/home/faq.php +++ b/template-parts/home/faq.php @@ -8,4 +8,4 @@ if ( ! fragrance_trade_show_section( 'b2b_show_faq' ) ) { return; } ?> -

+