Changeset 3485891
- Timestamp:
- 03/18/2026 05:04:29 PM (9 days ago)
- Location:
- travelfic-toolkit
- Files:
-
- 124 added
- 3 edited
-
tags/1.4.1 (added)
-
tags/1.4.1/appsero.json (added)
-
tags/1.4.1/assets (added)
-
tags/1.4.1/assets/admin (added)
-
tags/1.4.1/assets/admin/css (added)
-
tags/1.4.1/assets/admin/css/style.css (added)
-
tags/1.4.1/assets/admin/css/template-setup.css (added)
-
tags/1.4.1/assets/admin/img (added)
-
tags/1.4.1/assets/admin/img/demo-importing.gif (added)
-
tags/1.4.1/assets/admin/img/footer-1.png (added)
-
tags/1.4.1/assets/admin/img/footer-2.png (added)
-
tags/1.4.1/assets/admin/img/footer-3.png (added)
-
tags/1.4.1/assets/admin/img/footer-4.png (added)
-
tags/1.4.1/assets/admin/img/header-1.png (added)
-
tags/1.4.1/assets/admin/img/header-2.png (added)
-
tags/1.4.1/assets/admin/img/header-3.png (added)
-
tags/1.4.1/assets/admin/img/importing-bg.png (added)
-
tags/1.4.1/assets/admin/img/template_list_bg.png (added)
-
tags/1.4.1/assets/admin/img/templates (added)
-
tags/1.4.1/assets/admin/img/templates/coming-soon.png (added)
-
tags/1.4.1/assets/admin/img/templates/home-1.png (added)
-
tags/1.4.1/assets/admin/img/templates/home-2.png (added)
-
tags/1.4.1/assets/admin/img/travelfic-toolkit-icon.png (added)
-
tags/1.4.1/assets/admin/js (added)
-
tags/1.4.1/assets/admin/js/customizer.js (added)
-
tags/1.4.1/assets/admin/js/template-setup.js (added)
-
tags/1.4.1/assets/admin/lib (added)
-
tags/1.4.1/assets/admin/lib/select2 (added)
-
tags/1.4.1/assets/admin/lib/select2/select2.min.css (added)
-
tags/1.4.1/assets/admin/lib/select2/select2.min.js (added)
-
tags/1.4.1/assets/app (added)
-
tags/1.4.1/assets/app/css (added)
-
tags/1.4.1/assets/app/css/style.css (added)
-
tags/1.4.1/assets/app/css/style.css.map (added)
-
tags/1.4.1/assets/app/css/style.min.css (added)
-
tags/1.4.1/assets/app/css/style.min.css.map (added)
-
tags/1.4.1/assets/app/img (added)
-
tags/1.4.1/assets/app/img/destination-bg.png (added)
-
tags/1.4.1/assets/app/img/destination-placeholder.png (added)
-
tags/1.4.1/assets/app/img/feature-default.jpg (added)
-
tags/1.4.1/assets/app/img/footer-banner.png (added)
-
tags/1.4.1/assets/app/img/footer-shape.png (added)
-
tags/1.4.1/assets/app/img/hotel-lists-bg.png (added)
-
tags/1.4.1/assets/app/img/location.jpeg (added)
-
tags/1.4.1/assets/app/img/plane-shape.png (added)
-
tags/1.4.1/assets/app/img/team-banner-shape.png (added)
-
tags/1.4.1/assets/app/img/testimonial-bg.png (added)
-
tags/1.4.1/assets/app/img/testimonial-group-1.png (added)
-
tags/1.4.1/assets/app/img/testimonial-group-2.png (added)
-
tags/1.4.1/assets/app/img/work-bg.png (added)
-
tags/1.4.1/assets/app/img/years-experience.png (added)
-
tags/1.4.1/assets/app/js (added)
-
tags/1.4.1/assets/app/js/main.js (added)
-
tags/1.4.1/inc (added)
-
tags/1.4.1/inc/class (added)
-
tags/1.4.1/inc/class/class-importer.php (added)
-
tags/1.4.1/inc/class/class-template-list.php (added)
-
tags/1.4.1/inc/class/class-template-sync.php (added)
-
tags/1.4.1/inc/customizer (added)
-
tags/1.4.1/inc/customizer/customizer-apply.php (added)
-
tags/1.4.1/inc/customizer/customizer-footer-rander.php (added)
-
tags/1.4.1/inc/customizer/customizer-header-rander.php (added)
-
tags/1.4.1/inc/customizer/customizer-migrator.php (added)
-
tags/1.4.1/inc/customizer/customizer-settings.php (added)
-
tags/1.4.1/inc/demo (added)
-
tags/1.4.1/inc/demo/car-data.csv (added)
-
tags/1.4.1/inc/demo/hotel-data.csv (added)
-
tags/1.4.1/inc/demo/single-hotel-data.csv (added)
-
tags/1.4.1/inc/demo/tour-data.csv (added)
-
tags/1.4.1/inc/elementor-widgets (added)
-
tags/1.4.1/inc/elementor-widgets.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-about-us.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-apartment-location.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-car-brand.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-cars.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-cf7-form.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-features.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-gallery.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-hotel-location.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-hotels.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-icon-with-text.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-latest-news.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-popular-tours.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-rooms.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-section-heading.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-slider-hero.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-team.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-testimonials.php (added)
-
tags/1.4.1/inc/elementor-widgets/travelfic-tour-destination.php (added)
-
tags/1.4.1/inc/functions.php (added)
-
tags/1.4.1/lang (added)
-
tags/1.4.1/lang/travelfic-toolkit.pot (added)
-
tags/1.4.1/readme.txt (added)
-
tags/1.4.1/travelfic-toolkit.php (added)
-
tags/1.4.1/vendor (added)
-
tags/1.4.1/vendor/appsero (added)
-
tags/1.4.1/vendor/appsero/client (added)
-
tags/1.4.1/vendor/appsero/client/.editorconfig (added)
-
tags/1.4.1/vendor/appsero/client/.github (added)
-
tags/1.4.1/vendor/appsero/client/.github/workflows (added)
-
tags/1.4.1/vendor/appsero/client/.github/workflows/wpcs.yml (added)
-
tags/1.4.1/vendor/appsero/client/.gitignore (added)
-
tags/1.4.1/vendor/appsero/client/.php-cs-fixer.dist.php (added)
-
tags/1.4.1/vendor/appsero/client/composer.json (added)
-
tags/1.4.1/vendor/appsero/client/composer.lock (added)
-
tags/1.4.1/vendor/appsero/client/phpcs.xml.dist (added)
-
tags/1.4.1/vendor/appsero/client/readme.md (added)
-
tags/1.4.1/vendor/appsero/client/src (added)
-
tags/1.4.1/vendor/appsero/client/src/Client.php (added)
-
tags/1.4.1/vendor/appsero/client/src/Insights.php (added)
-
tags/1.4.1/vendor/appsero/client/src/License.php (added)
-
tags/1.4.1/vendor/autoload.php (added)
-
tags/1.4.1/vendor/composer (added)
-
tags/1.4.1/vendor/composer/ClassLoader.php (added)
-
tags/1.4.1/vendor/composer/InstalledVersions.php (added)
-
tags/1.4.1/vendor/composer/LICENSE (added)
-
tags/1.4.1/vendor/composer/autoload_classmap.php (added)
-
tags/1.4.1/vendor/composer/autoload_namespaces.php (added)
-
tags/1.4.1/vendor/composer/autoload_psr4.php (added)
-
tags/1.4.1/vendor/composer/autoload_real.php (added)
-
tags/1.4.1/vendor/composer/autoload_static.php (added)
-
tags/1.4.1/vendor/composer/installed.json (added)
-
tags/1.4.1/vendor/composer/installed.php (added)
-
tags/1.4.1/vendor/composer/platform_check.php (added)
-
trunk/inc/elementor-widgets/travelfic-hotels.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/travelfic-toolkit.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
travelfic-toolkit/trunk/inc/elementor-widgets/travelfic-hotels.php
r3473432 r3485891 2 2 3 3 use \Tourfic\Classes\Hotel\Pricing as Hotel_Price; 4 use \Tourfic\Classes\Tour\Pricing as Tour_Price; 5 use \Tourfic\Classes\Helper as Tourfic_Helper; 4 6 5 7 class Travelfic_Toolkit_Hotels extends \Elementor\Widget_Base 6 8 { 9 10 /** 11 * Get minimum tour card price from Tourfic pricing engine with legacy fallback. 12 * 13 * @param int $post_id Tour post id. 14 * @param array $option_meta Tour options meta. 15 * @return float 16 */ 17 protected function tft_get_tour_card_price( $post_id, $option_meta = array() ) { 18 $option_meta = is_array( $option_meta ) ? $option_meta : array(); 19 $pricing_rule = ! empty( $option_meta['pricing'] ) ? $option_meta['pricing'] : ''; 20 $minimum_setting = class_exists( '\Tourfic\Classes\Helper' ) && ! empty( Tourfic_Helper::tfopt( 'tour_archive_price_minimum_settings' ) ) ? Tourfic_Helper::tfopt( 'tour_archive_price_minimum_settings' ) : 'adult'; 21 $disable_adult_price = ! empty( $option_meta['disable_adult_price'] ); 22 $disable_child_price = ! empty( $option_meta['disable_child_price'] ); 23 $disable_infant_price = ! empty( $option_meta['disable_infant_price'] ); 24 25 if ( class_exists( '\Tourfic\Classes\Tour\Pricing' ) ) { 26 $avail_prices = Tour_Price::instance( $post_id )->get_avail_price(); 27 $calculated_prices = array(); 28 29 if ( 'group' === $pricing_rule && ! empty( $avail_prices['group_price'] ) ) { 30 $calculated_prices[] = (float) $avail_prices['group_price']; 31 } 32 33 if ( 'person' === $pricing_rule || 'package' === $pricing_rule ) { 34 if ( 'all' === $minimum_setting ) { 35 if ( ! empty( $avail_prices['adult_price'] ) && ! $disable_adult_price ) { 36 $calculated_prices[] = (float) $avail_prices['adult_price']; 37 } 38 if ( ! empty( $avail_prices['child_price'] ) && ! $disable_child_price ) { 39 $calculated_prices[] = (float) $avail_prices['child_price']; 40 } 41 } 42 if ( 'adult' === $minimum_setting && ! empty( $avail_prices['adult_price'] ) && ! $disable_adult_price ) { 43 $calculated_prices[] = (float) $avail_prices['adult_price']; 44 } 45 if ( 'child' === $minimum_setting && ! empty( $avail_prices['child_price'] ) && ! $disable_child_price ) { 46 $calculated_prices[] = (float) $avail_prices['child_price']; 47 } 48 } 49 50 if ( 'package' === $pricing_rule && ! empty( $avail_prices['group_price'] ) ) { 51 $calculated_prices[] = (float) $avail_prices['group_price']; 52 } 53 54 if ( ! empty( $calculated_prices ) ) { 55 return (float) min( $calculated_prices ); 56 } 57 58 $fallback_prices = array(); 59 60 if ( ! empty( $avail_prices['adult_price'] ) && ! $disable_adult_price ) { 61 $fallback_prices[] = (float) $avail_prices['adult_price']; 62 } 63 if ( ! empty( $avail_prices['child_price'] ) && ! $disable_child_price ) { 64 $fallback_prices[] = (float) $avail_prices['child_price']; 65 } 66 if ( ! empty( $avail_prices['infant_price'] ) && ! $disable_infant_price ) { 67 $fallback_prices[] = (float) $avail_prices['infant_price']; 68 } 69 if ( ! empty( $avail_prices['group_price'] ) && ( 'group' === $pricing_rule || 'package' === $pricing_rule ) ) { 70 $fallback_prices[] = (float) $avail_prices['group_price']; 71 } 72 73 if ( ! empty( $fallback_prices ) ) { 74 return (float) min( $fallback_prices ); 75 } 76 } 77 78 if ( 'group' === $pricing_rule ) { 79 return isset( $option_meta['group_price'] ) ? (float) $option_meta['group_price'] : 0; 80 } 81 82 $person_prices = array(); 83 $adult_price = isset( $option_meta['adult_price'] ) ? $option_meta['adult_price'] : ''; 84 if ( ! $disable_adult_price && '' !== $adult_price ) { 85 $person_prices[] = (float) $adult_price; 86 } 87 88 $child_price = isset( $option_meta['child_price'] ) ? $option_meta['child_price'] : ''; 89 if ( ! $disable_child_price && '' !== $child_price ) { 90 $person_prices[] = (float) $child_price; 91 } 92 93 $infant_price = isset( $option_meta['infant_price'] ) ? $option_meta['infant_price'] : ''; 94 if ( ! $disable_infant_price && '' !== $infant_price ) { 95 $person_prices[] = (float) $infant_price; 96 } 97 98 return ! empty( $person_prices ) ? (float) min( $person_prices ) : 0; 99 } 7 100 8 101 /** … … 2656 2749 2657 2750 // pricing 2658 $tf_pricing = !empty($option_meta['pricing']) ? $option_meta['pricing'] : ''; 2659 2660 if ($tf_pricing === 'group') { 2661 $tf_total_price = $option_meta['group_price'] ?? 0; 2662 } else { 2663 $disable_adult_price = !empty($option_meta['disable_adult_price']) ? $option_meta['disable_adult_price'] : false; 2664 $disable_child_price = !empty($option_meta['disable_child_price']) ? $option_meta['disable_child_price'] : false; 2665 $disable_infant_price = !empty($option_meta['disable_infant_price']) ? $option_meta['disable_infant_price'] : false; 2666 2667 $person_prices = []; 2668 2669 $tf_adult_price = isset($option_meta['adult_price']) ? $option_meta['adult_price'] : ''; 2670 if (!$disable_adult_price && '' !== $tf_adult_price) { 2671 $person_prices[] = (float) $tf_adult_price; 2672 } 2673 2674 $tf_child_price = isset($option_meta['child_price']) ? $option_meta['child_price'] : ''; 2675 if (!$disable_child_price && '' !== $tf_child_price) { 2676 $person_prices[] = (float) $tf_child_price; 2677 } 2678 2679 $tf_infant_price = isset($option_meta['infant_price']) ? $option_meta['infant_price'] : ''; 2680 if (!$disable_infant_price && '' !== $tf_infant_price) { 2681 $person_prices[] = (float) $tf_infant_price; 2682 } 2683 2684 $tf_total_price = !empty($person_prices) ? min($person_prices) : 0; 2685 } 2751 $tf_total_price = $this->tft_get_tour_card_price( $post_id, $option_meta ); 2686 2752 2687 2753 // location -
travelfic-toolkit/trunk/readme.txt
r3481112 r3485891 4 4 Requires at least: 5.4 5 5 Tested up to: 6.9 6 Stable tag: 1.4. 06 Stable tag: 1.4.1 7 7 Requires PHP: 7.4 8 8 License: GPLv2 or later … … 149 149 == Changelog == 150 150 151 = 1.4.1 – March 18, 2026 = 152 153 - Fixed: Demo 4 tour card price mismatch with Tourfic pricing engine. 154 151 155 = 1.4.0 – March 12, 2026 = 152 156 -
travelfic-toolkit/trunk/travelfic-toolkit.php
r3481112 r3485891 5 5 * Description: A companion plugin to the Travelfic Theme with which you can easily build your own Hotel, Accommodation, Tour & Travel Booking website on WordPress. 6 6 * Author: Themefic 7 * Version: 1.4. 07 * Version: 1.4.1 8 8 * Tested up to: 6.9 9 9 * Text Domain: travelfic-toolkit … … 25 25 define( 'TRAVELFIC_TOOLKIT_PATH', plugin_dir_path( __FILE__ ) ); 26 26 define( 'TRAVELFIC_TOOLKIT_ASSETS', TRAVELFIC_TOOLKIT_URL . 'assets/' ); 27 define( 'TRAVELFIC_TOOLKIT_VERSION', '1.4. 0' );27 define( 'TRAVELFIC_TOOLKIT_VERSION', '1.4.1' ); 28 28 29 29 if ( file_exists( __DIR__ . '/vendor/autoload.php' ) ) {
Note: See TracChangeset
for help on using the changeset viewer.