🏨 Hotel Booking Enhancements: - Implemented Eagle Booking Advanced Pricing add-on - Added Booking.com-style rate management system - Created professional calendar interface for pricing - Integrated deals and discounts functionality 💰 Advanced Pricing Features: - Dynamic pricing models (per room, per person, per adult) - Base rates, adult rates, and child rates management - Length of stay discounts and early bird deals - Mobile rates and secret deals implementation - Seasonal promotions and flash sales 📅 Availability Management: - Real-time availability tracking - Stop sell and restriction controls - Closed to arrival/departure functionality - Minimum/maximum stay requirements - Automatic sold-out management 💳 Payment Integration: - Maintained Redsys payment gateway integration - Seamless integration with existing Eagle Booking - No modifications to core Eagle Booking plugin 🛠️ Technical Implementation: - Custom database tables for advanced pricing - WordPress hooks and filters integration - AJAX-powered admin interface - Data migration from existing Eagle Booking - Professional calendar view for revenue management 📊 Admin Interface: - Booking.com-style management dashboard - Visual rate and availability calendar - Bulk operations for date ranges - Statistics and analytics dashboard - Modal dialogs for quick editing 🔧 Code Quality: - WordPress coding standards compliance - Secure database operations with prepared statements - Proper input validation and sanitization - Error handling and logging - Responsive admin interface 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
80 lines
3.8 KiB
PHP
80 lines
3.8 KiB
PHP
<?php
|
|
/**
|
|
* Title: Services, 3 columns
|
|
* Slug: twentytwentyfive/services-3-col
|
|
* Categories: call-to-action, banner, services
|
|
* Description: Three columns with images and text to showcase services.
|
|
*
|
|
* @package WordPress
|
|
* @subpackage Twenty_Twenty_Five
|
|
* @since Twenty Twenty-Five 1.0
|
|
*/
|
|
|
|
?>
|
|
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"},"blockGap":"var:preset|spacing|50","margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
|
|
<div class="wp-block-group alignfull" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)">
|
|
<!-- wp:heading {"align":"wide"} -->
|
|
<h2 class="wp-block-heading alignwide"><?php esc_html_e( 'Our services', 'twentytwentyfive' ); ?></h2>
|
|
<!-- /wp:heading -->
|
|
|
|
<!-- wp:columns {"align":"wide"} -->
|
|
<div class="wp-block-columns alignwide">
|
|
<!-- wp:column -->
|
|
<div class="wp-block-column">
|
|
|
|
<!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"full","style":{"spacing":{"margin":{"bottom":"24px"}}}} -->
|
|
<figure class="wp-block-image size-full" style="margin-bottom:24px">
|
|
<img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/campanula-alliariifolia-flower.webp" alt="<?php esc_attr_e( 'Image for service', 'twentytwentyfive' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/>
|
|
</figure>
|
|
<!-- /wp:image -->
|
|
|
|
<!-- wp:heading {"level":3} -->
|
|
<h3 class="wp-block-heading"><?php esc_html_e( 'Collect', 'twentytwentyfive' ); ?></h3>
|
|
<!-- /wp:heading -->
|
|
|
|
<!-- wp:paragraph {"fontSize":"medium"} -->
|
|
<p class="has-medium-font-size"><?php esc_html_e( 'Like flowers that bloom in unexpected places, every story unfolds with beauty and resilience', 'twentytwentyfive' ); ?></p>
|
|
<!-- /wp:paragraph -->
|
|
</div>
|
|
<!-- /wp:column -->
|
|
|
|
<!-- wp:column -->
|
|
<div class="wp-block-column">
|
|
<!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"full","style":{"spacing":{"margin":{"bottom":"24px"}}}} -->
|
|
<figure class="wp-block-image size-full" style="margin-bottom:24px">
|
|
<img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/delphinium-flowers.webp" alt="<?php esc_attr_e( 'Image for service', 'twentytwentyfive' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/>
|
|
</figure>
|
|
<!-- /wp:image -->
|
|
|
|
<!-- wp:heading {"level":3} -->
|
|
<h3 class="wp-block-heading"><?php esc_html_e( 'Assemble', 'twentytwentyfive' ); ?></h3>
|
|
<!-- /wp:heading -->
|
|
|
|
<!-- wp:paragraph {"fontSize":"medium"} -->
|
|
<p class="has-medium-font-size"><?php esc_html_e( 'Like flowers that bloom in unexpected places, every story unfolds with beauty and resilience', 'twentytwentyfive' ); ?></p>
|
|
<!-- /wp:paragraph -->
|
|
</div>
|
|
<!-- /wp:column -->
|
|
|
|
<!-- wp:column -->
|
|
<div class="wp-block-column">
|
|
<!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"full","style":{"spacing":{"margin":{"bottom":"24px"}}}} -->
|
|
<figure class="wp-block-image size-full" style="margin-bottom:24px">
|
|
<img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/star-thristle-flower.webp" alt="<?php esc_attr_e( 'Image for service', 'twentytwentyfive' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/>
|
|
</figure>
|
|
<!-- /wp:image -->
|
|
|
|
<!-- wp:heading {"level":3} -->
|
|
<h3 class="wp-block-heading"><?php esc_html_e( 'Deliver', 'twentytwentyfive' ); ?></h3>
|
|
<!-- /wp:heading -->
|
|
|
|
<!-- wp:paragraph {"fontSize":"medium"} -->
|
|
<p class="has-medium-font-size"><?php esc_html_e( 'Like flowers that bloom in unexpected places, every story unfolds with beauty and resilience', 'twentytwentyfive' ); ?></p>
|
|
<!-- /wp:paragraph -->
|
|
</div>
|
|
<!-- /wp:column -->
|
|
</div>
|
|
<!-- /wp:columns -->
|
|
</div>
|
|
<!-- /wp:group -->
|