feat(theme): About, Contact, FAQ, blog list and post pages from new front

- Route pages by address to theme templates (about-us, contact-us, faq, blogs, posts)
- Scoped design CSS (pages.css) + Astra/WordPress fixes (pages-wp.css), page JS
- Contact form emails the new Settings -> Viator Collector -> Contact email
  (fallback: admin email), Reply-To the visitor, honeypot spam trap
- Blog list shows real posts with search, sort and paging; posts use the
  article design with comments as reviews and related articles
- Design images converted to WebP (~15MB PNG -> ~1MB)
- Theme 1.0.10, plugin 1.9.1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-29 16:20:11 +03:30
parent 930b7e0534
commit f58ed49d07
30 changed files with 5932 additions and 14 deletions

View File

@@ -101,6 +101,7 @@ class VC_Settings {
'currency' => 'USD',
'timeout' => 20,
'default_post_status' => 'publish',
'contact_email' => '',
'hero_image' => '',
'hero_image_id' => 0,
'single_hero_figure_id' => 0,
@@ -150,6 +151,7 @@ class VC_Settings {
'currency' => strtoupper( sanitize_text_field( $input['currency'] ?? 'USD' ) ),
'timeout' => max( 5, absint( $input['timeout'] ?? 20 ) ),
'default_post_status' => sanitize_key( $input['default_post_status'] ?? 'publish' ),
'contact_email' => sanitize_email( $input['contact_email'] ?? '' ),
'hero_image' => esc_url_raw( $input['hero_image'] ?? '' ),
'hero_image_id' => absint( $input['hero_image_id'] ?? 0 ),
'single_hero_figure_id' => absint( $input['single_hero_figure_id'] ?? 0 ),
@@ -225,6 +227,13 @@ class VC_Settings {
<p class="description"><?php echo esc_html__( 'Deactivated products are always set to draft regardless of this setting.', 'viator-collector' ); ?></p>
</td>
</tr>
<tr>
<th scope="row"><label for="vc_contact_email"><?php echo esc_html__( 'Contact email', 'viator-collector' ); ?></label></th>
<td>
<input id="vc_contact_email" type="email" class="regular-text" name="vc_settings[contact_email]" value="<?php echo esc_attr( $options['contact_email'] ); ?>" placeholder="<?php echo esc_attr( get_option( 'admin_email' ) ); ?>">
<p class="description"><?php echo esc_html__( 'Where the Contact page form is sent. Leave empty to use the site admin email.', 'viator-collector' ); ?></p>
</td>
</tr>
<tr>
<th scope="row"><label for="vc_hero_image"><?php echo esc_html__( 'Hero image', 'viator-collector' ); ?></label></th>
<td>

View File

@@ -4,13 +4,13 @@ defined('ABSPATH') || exit;
/**
* Plugin Name: Viator Collector
* Description: Import Viator tours using the Viator Partner API and display them with native WordPress post types, templates, and shortcodes.
* Version: 1.9.0
* Version: 1.9.1
* Author: Amir Bagheri
* License: GPL-2.0-or-later
* Text Domain: viator-collector
*/
define('VC_VERSION', '1.9.0');
define('VC_VERSION', '1.9.1');
define('VC_PLUGIN_FILE', __FILE__);
define('VC_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('VC_PLUGIN_URL', plugin_dir_url(__FILE__));