├── screenshot.jpg ├── assets ├── fonts │ ├── FontAwesome.otf │ ├── Linearicons-Free.eot │ ├── Linearicons-Free.ttf │ ├── Linearicons-Free.woff │ ├── Linearicons-Free.woff2 │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 ├── css │ ├── carrentals_admin.css │ ├── common.css │ ├── nice-select.css │ └── elementor-default-element-style.css └── js │ ├── carrentals_admin.js │ ├── carrentals-elementor-notice.js │ ├── jquery.nice-select.min.js │ ├── superfish.min.js │ ├── main.js │ └── jquery.sticky.js ├── inc ├── carrentals-companion │ ├── inc │ │ ├── carrentals-meta │ │ │ ├── assets │ │ │ │ ├── css │ │ │ │ │ └── security-meta.css │ │ │ │ ├── img │ │ │ │ │ ├── thumb_01.png │ │ │ │ │ ├── thumb_02.png │ │ │ │ │ └── thumb_03.png │ │ │ │ └── js │ │ │ │ │ └── carrentals-meta.js │ │ │ └── carrentals-meta-config.php │ │ ├── demo-data │ │ │ ├── screen-image.png │ │ │ ├── css │ │ │ │ └── demo-import.css │ │ │ ├── carrentals-widgets-demo.json │ │ │ ├── carrentals-customizer.dat │ │ │ └── demo-import.php │ │ ├── elementor-widgets │ │ │ ├── assets │ │ │ │ ├── css │ │ │ │ │ ├── elementor-edit.css │ │ │ │ │ ├── justifiedGallery.min.css │ │ │ │ │ └── owl.carousel.css │ │ │ │ ├── fonts │ │ │ │ │ └── themify-icon │ │ │ │ │ │ └── fonts │ │ │ │ │ │ ├── themify.eot │ │ │ │ │ │ ├── themify.ttf │ │ │ │ │ │ └── themify.woff │ │ │ │ └── js │ │ │ │ │ ├── jquery.counterup.min.js │ │ │ │ │ ├── carrentals-companion-main.js │ │ │ │ │ ├── map-custom.js │ │ │ │ │ └── jquery.ajaxchimp.min.js │ │ │ └── widgets │ │ │ │ ├── counter.php │ │ │ │ ├── section-heading.php │ │ │ │ └── blog.php │ │ ├── social-share.php │ │ ├── sidebar-widgets │ │ │ ├── recent-post-thumb.php │ │ │ ├── newsletter-widget.php │ │ │ └── social-widget.php │ │ ├── functions.php │ │ └── instagram-api.php │ ├── js │ │ ├── booking.js │ │ ├── post-likes.js │ │ └── repeater.js │ ├── carrentals-init.php │ ├── carrentals-companion.php │ └── css │ │ └── booking.css ├── class-epsilon-dashboard-autoloader.php ├── widgets-reg.php ├── wp_bootstrap_pagination.php ├── libraries │ └── class-epsilon-init-notify-system.php ├── hooks │ └── hooks.php ├── customizer │ ├── fields │ │ └── sections.php │ ├── js │ │ └── customizer.js │ └── customizer.php ├── classes │ └── Class-Enqueue.php ├── support-functions.php ├── class-epsilon-init-dashboard.php └── breadcrumbs.php ├── .gitmodules ├── template-builder.php ├── templates ├── footer-bottom.php ├── content-page.php ├── biography.php ├── header-nav.php ├── footer-widgets.php ├── pagination.php ├── header-bottom.php ├── 404.php ├── content-none.php ├── content.php ├── content-video.php ├── content-audio.php └── content-single.php ├── sidebar.php ├── 404.php ├── footer.php ├── searchform.php ├── header.php ├── style.css ├── page.php ├── single.php ├── archive.php ├── index.php ├── search.php ├── readme.txt ├── functions.php └── comments.php /screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/screenshot.jpg -------------------------------------------------------------------------------- /assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /assets/fonts/Linearicons-Free.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/assets/fonts/Linearicons-Free.eot -------------------------------------------------------------------------------- /assets/fonts/Linearicons-Free.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/assets/fonts/Linearicons-Free.ttf -------------------------------------------------------------------------------- /assets/fonts/Linearicons-Free.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/assets/fonts/Linearicons-Free.woff -------------------------------------------------------------------------------- /assets/fonts/Linearicons-Free.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/assets/fonts/Linearicons-Free.woff2 -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/carrentals-meta/assets/css/security-meta.css: -------------------------------------------------------------------------------- 1 | .carrentals-admin-selectbox { 2 | width: 100%; 3 | } 4 | -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/demo-data/screen-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/inc/carrentals-companion/inc/demo-data/screen-image.png -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/elementor-widgets/assets/css/elementor-edit.css: -------------------------------------------------------------------------------- 1 | .elementor-choices-label i { 2 | font-size: 18px !important; 3 | padding: 5px 0; 4 | } -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/carrentals-meta/assets/img/thumb_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/inc/carrentals-companion/inc/carrentals-meta/assets/img/thumb_01.png -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/carrentals-meta/assets/img/thumb_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/inc/carrentals-companion/inc/carrentals-meta/assets/img/thumb_02.png -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/carrentals-meta/assets/img/thumb_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/inc/carrentals-companion/inc/carrentals-meta/assets/img/thumb_03.png -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/elementor-widgets/assets/fonts/themify-icon/fonts/themify.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/inc/carrentals-companion/inc/elementor-widgets/assets/fonts/themify-icon/fonts/themify.eot -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/elementor-widgets/assets/fonts/themify-icon/fonts/themify.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/inc/carrentals-companion/inc/elementor-widgets/assets/fonts/themify-icon/fonts/themify.ttf -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/elementor-widgets/assets/fonts/themify-icon/fonts/themify.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/carrentals/master/inc/carrentals-companion/inc/elementor-widgets/assets/fonts/themify-icon/fonts/themify.woff -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "inc/libraries/epsilon-theme-dashboard"] 2 | path = inc/libraries/epsilon-theme-dashboard 3 | url = https://github.com/MachoThemes/epsilon-theme-dashboard 4 | [submodule "inc/libraries/epsilon-framework"] 5 | path = inc/libraries/epsilon-framework 6 | url = https://github.com/MachoThemes/epsilon-framework 7 | -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/demo-data/css/demo-import.css: -------------------------------------------------------------------------------- 1 | .ocdi__demo-import-notice:not(:empty) { 2 | background-color: transparent !important; 3 | border-left: 0px !important; 4 | box-shadow: none !important; 5 | padding: 0px !important; 6 | } 7 | .ocdi__demo-import-notice img { 8 | border: 4px solid #dbe3ea; 9 | } 10 | .epsilon-framework-notice img, 11 | .ocdi__demo-import-notice img { 12 | width: auto; 13 | } -------------------------------------------------------------------------------- /template-builder.php: -------------------------------------------------------------------------------- 1 | ', '', date( 'Y' ) ); 5 | 6 | ?> 7 | -------------------------------------------------------------------------------- /sidebar.php: -------------------------------------------------------------------------------- 1 | '; 18 | dynamic_sidebar( 'carrentals-post-sidebar' ); 19 | echo ''; 20 | } 21 | -------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | 32 | 33 | -------------------------------------------------------------------------------- /templates/content-page.php: -------------------------------------------------------------------------------- 1 | 15 |
> 16 | 29 |
-------------------------------------------------------------------------------- /searchform.php: -------------------------------------------------------------------------------- 1 | 15 | 16 |
17 |
18 | 19 | 20 |
21 |
-------------------------------------------------------------------------------- /inc/carrentals-companion/inc/demo-data/carrentals-widgets-demo.json: -------------------------------------------------------------------------------- 1 | {"carrentals-post-sidebar":{"search-2":{"title":""},"recent-posts-2":{"title":"","number":5},"recent-comments-2":{"title":"","number":5},"archives-2":{"title":"","count":0,"dropdown":0},"categories-2":{"title":"","count":0,"hierarchical":0,"dropdown":0},"meta-2":{"title":""}},"footer-1":{"recent-posts-3":{"title":"Recent Post","number":5,"show_date":false}},"footer-2":{"nav_menu-2":{"title":"Quick Links","nav_menu":8}},"footer-3":{"carrentals_social_widget-2":{"title":"Follow Us","textarea":"Let us be social","fburl":"#","twiturl":"#","dribbbleurl":"#","behanceurl":"#"}},"footer-4":{"carrentals_newsletter_widget-2":{"title":"Newsletter","actionurl":"","desc":"Stay update with our latest"}}} -------------------------------------------------------------------------------- /header.php: -------------------------------------------------------------------------------- 1 | 2 | > 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | > 15 | 16 |
17 | 25 | 26 |
27 | 30 | 31 |

32 |
33 |
-------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | /** 2 | Theme Name: CarRentals 3 | Theme URI: http://colorlib.com/wp/carrentals/ 4 | Author: Colorlib 5 | Author URI: http://colorlib.com/wp/ 6 | Description: CarRentals is a modern event WordPress Theme. Its stylish design and beautiful 7 | typography makes it an ideal theme for event and any kind of site. It is fully responsive so It will always look great and crisp on any devices and screen sizes. It's built with clean 8 | and organized code which makes it very easy to customize. 9 | Version: 1.0 10 | License: GNU General Public License v2 or later 11 | License URI: http://www.gnu.org/licenses/gpl-2.0.html 12 | Tags: custom-header, custom-menu, featured-image-header, featured-images, full-width-template, translation-ready 13 | Text Domain: carrentals 14 | 15 | This theme, like WordPress, is licensed under the GPL. 16 | Use it to make something cool, have fun, and share what you've learned with others. 17 | */ 18 | 19 | -------------------------------------------------------------------------------- /templates/header-nav.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /templates/footer-widgets.php: -------------------------------------------------------------------------------- 1 |
2 |
'; 10 | } 11 | 12 | // Footer widget 2 13 | if( is_active_sidebar( 'footer-2' ) ) { 14 | echo '
'; 17 | } 18 | 19 | // Footer widget 3 20 | if( is_active_sidebar( 'footer-3' ) ) { 21 | echo '
'; 24 | } 25 | 26 | 27 | // Footer widget 4 28 | if( is_active_sidebar( 'footer-4' ) ) { 29 | echo '
'; 32 | } 33 | 34 | ?> 35 | 36 | -------------------------------------------------------------------------------- /assets/js/carrentals_admin.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | /*========================================= 3 | Epsilon Framework Sidebar Responsive Tools 4 | =============================================*/ 5 | $( document ).ready(function() { 6 | var desktop = $( '.preview-desktop' ), 7 | tablet = $( '.preview-tablet' ), 8 | mobile = $( '.preview-mobile' ); 9 | 10 | desktop.on( 'click', function(){ 11 | desktop.addClass('active'); 12 | tablet.removeClass('active'); 13 | mobile.removeClass('active'); 14 | } ); 15 | 16 | tablet.on( 'click', function(){ 17 | desktop.removeClass('active'); 18 | tablet.addClass('active'); 19 | mobile.removeClass('active'); 20 | } ); 21 | 22 | mobile.on( 'click', function(){ 23 | desktop.removeClass('active'); 24 | tablet.removeClass('active'); 25 | mobile.addClass('active'); 26 | } ); 27 | 28 | }); 29 | 30 | 31 | })(jQuery); -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/elementor-widgets/assets/js/jquery.counterup.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jquery.counterup.js 1.0 3 | * 4 | * Copyright 2013, Benjamin Intal http://gambit.ph @bfintal 5 | * Released under the GPL v2 License 6 | * 7 | * Date: Nov 26, 2013 8 | */(function(e){"use strict";e.fn.counterUp=function(t){var n=e.extend({time:400,delay:10},t);return this.each(function(){var t=e(this),r=n,i=function(){var e=[],n=r.time/r.delay,i=t.text(),s=/[0-9]+,[0-9]+/.test(i);i=i.replace(/,/g,"");var o=/^[0-9]+$/.test(i),u=/^[0-9]+\.[0-9]+$/.test(i),a=u?(i.split(".")[1]||[]).length:0;for(var f=n;f>=1;f--){var l=parseInt(i/n*f);u&&(l=parseFloat(i/n*f).toFixed(a));if(s)while(/(\d+)(\d{3})/.test(l.toString()))l=l.toString().replace(/(\d+)(\d{3})/,"$1,$2");e.unshift(l)}t.data("counterup-nums",e);t.text("0");var c=function(){t.text(t.data("counterup-nums").shift());if(t.data("counterup-nums").length)setTimeout(t.data("counterup-func"),r.delay);else{delete t.data("counterup-nums");t.data("counterup-nums",null);t.data("counterup-func",null)}};t.data("counterup-func",c);setTimeout(t.data("counterup-func"),r.delay)};t.waypoint(i,{offset:"100%",triggerOnce:!0})})}})(jQuery); -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/elementor-widgets/assets/js/carrentals-companion-main.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | 'use strict'; 3 | 4 | // Mailchimp ajax 5 | $('#mc_embed_signup').find('form').ajaxChimp(); 6 | 7 | // About widget owlCarousel 8 | $('.active-about-carusel').owlCarousel({ 9 | items:1, 10 | loop:true, 11 | margin:30, 12 | dots: true 13 | }); 14 | 15 | // Exibition widget owlCarousel 16 | $('.active-model-carusel').owlCarousel({ 17 | items:1, 18 | loop:true, 19 | margin:30, 20 | dots: true 21 | }); 22 | // Datepicker 23 | $( function() { 24 | $( "#datepicker" ).datepicker(); 25 | $( "#datepicker2" ).datepicker(); 26 | }); 27 | 28 | // Gallery 29 | $("#grid-container").justifiedGallery({ 30 | rowHeight : 200, 31 | captions : false, 32 | margins : 30 33 | }); 34 | 35 | // Counter Js 36 | if( $('.facts-area').length ) { 37 | $('.counter').counterUp({ 38 | delay: 10, 39 | time: 1000 40 | }); 41 | } 42 | 43 | })(jQuery); -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/demo-data/carrentals-customizer.dat: -------------------------------------------------------------------------------- 1 | a:4:{s:8:"template";s:10:"carrentals";s:4:"mods";a:13:{i:0;b:0;s:18:"nav_menu_locations";a:1:{s:12:"primary-menu";i:8;}s:18:"custom_css_post_id";i:-1;s:33:"carrentals-widget-toggle-settings";b:1;s:40:"carrentals-headeroverlay-toggle-settings";s:1:"1";s:12:"header_image";s:83:"http://spondan.com/carrentals/wp-content/uploads/2018/11/buildings-1851246_1280.jpg";s:17:"header_image_data";O:8:"stdClass":5:{s:13:"attachment_id";i:63;s:3:"url";s:83:"http://spondan.com/carrentals/wp-content/uploads/2018/11/buildings-1851246_1280.jpg";s:13:"thumbnail_url";s:83:"http://spondan.com/carrentals/wp-content/uploads/2018/11/buildings-1851246_1280.jpg";s:6:"height";i:557;s:5:"width";i:1280;}s:26:"carrentals_headertextcolor";s:22:"rgba(255, 255, 255, 1)";s:32:"carrentals-blog-sidebar-settings";s:80:"{"columnsCount":2,"columns":{"1":{"index":1,"span":8},"2":{"index":2,"span":4}}}";s:35:"carrentals-blog-social-share-toggle";s:1:"1";s:27:"carrentals-blog-like-toggle";s:1:"1";s:23:"carrentals_post_excerpt";s:2:"30";s:21:"carrentals_themecolor";s:7:"#fab700";}s:7:"options";a:2:{s:9:"site_icon";s:1:"0";s:23:"nav_menus_created_posts";a:0:{}}s:6:"wp_css";s:0:"";} -------------------------------------------------------------------------------- /templates/pagination.php: -------------------------------------------------------------------------------- 1 | '.esc_html__( 'Newer Post', 'carrentals' ); 21 | $older = esc_html__( 'Older Post', 'carrentals' ).''; 22 | 23 | echo '
'; 41 | } 42 | -------------------------------------------------------------------------------- /inc/carrentals-companion/carrentals-init.php: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/carrentals-meta/assets/js/carrentals-meta.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | 'use strict'; 3 | 4 | // page template change option 5 | 6 | var $template = $( '#page_template' ), 7 | $pagesettingsmeta = $('#pageheader-meta-box'), 8 | $pageheader = $('#page_header_selectbox'), 9 | $headerbg = $( '.header-img' ); 10 | 11 | 12 | 13 | // Page Template Event 14 | 15 | $template.on( 'change', function(){ 16 | var $this = $(this); 17 | if( $this.val() == 'template-builder.php' ){ 18 | $pagesettingsmeta.show(); 19 | }else{ 20 | $pagesettingsmeta.hide(); 21 | } 22 | 23 | }); 24 | // if page template builder selected 25 | if( $template.val() == 'template-builder.php' ){ 26 | $pagesettingsmeta.show(); 27 | }else{ 28 | $pagesettingsmeta.hide(); 29 | } 30 | 31 | // Page header Event 32 | $pageheader.on( 'change', function(){ 33 | var $this = $(this); 34 | if( $this.val() == 'show' ){ 35 | $headerbg.show(); 36 | }else{ 37 | $headerbg.hide(); 38 | } 39 | 40 | }); 41 | 42 | // if page header show selected 43 | if( $pageheader.val() != 'show' ){ 44 | $headerbg.hide(); 45 | } 46 | 47 | })(jQuery); -------------------------------------------------------------------------------- /inc/carrentals-companion/js/post-likes.js: -------------------------------------------------------------------------------- 1 | (function( $ ) { 2 | 'use strict'; 3 | $(document).on('click', '.sl-button', function() { 4 | var button = $(this); 5 | var post_id = button.attr('data-post-id'); 6 | var carrentals = button.attr('data-nonce'); 7 | var iscomment = button.attr('data-iscomment'); 8 | var allbuttons; 9 | if ( iscomment === '1' ) { /* Comments can have same id */ 10 | allbuttons = $('.sl-comment-button-'+post_id); 11 | } else { 12 | allbuttons = $('.sl-button-'+post_id); 13 | } 14 | var loader = allbuttons.next('#sl-loader'); 15 | if (post_id !== '') { 16 | $.ajax({ 17 | type: 'POST', 18 | url: simpleLikes.ajaxurl, 19 | data : { 20 | action : 'carrentals_process_simple_like', 21 | post_id : post_id, 22 | nonce : carrentals, 23 | is_comment : iscomment, 24 | }, 25 | beforeSend:function(){ 26 | loader.html(' 
Loading...
'); 27 | }, 28 | success: function(response){ 29 | var icon = response.icon; 30 | var count = response.count; 31 | allbuttons.html(icon+count); 32 | if(response.status === 'unliked') { 33 | var like_text = simpleLikes.like; 34 | allbuttons.prop('title', like_text); 35 | allbuttons.removeClass('liked'); 36 | } else { 37 | var unlike_text = simpleLikes.unlike; 38 | allbuttons.prop('title', unlike_text); 39 | allbuttons.addClass('liked'); 40 | } 41 | loader.empty(); 42 | } 43 | }); 44 | 45 | } 46 | return false; 47 | }); 48 | })( jQuery ); 49 | -------------------------------------------------------------------------------- /templates/404.php: -------------------------------------------------------------------------------- 1 | 15 | 16 |
17 |
18 |
19 |
20 |
21 |
22 | '.esc_html( carrentals_opt( 'carrentals_fof_text_one', $errorText ) ).''; 26 | 27 | // Wrong text block 28 | $wrongText = esc_html__( 'Either something went wrong or the page dosen\'t exist anymore.', 'carrentals' ); 29 | 30 | $wrongText = carrentals_opt( 'carrentals_fof_text_two', $wrongText ); 31 | 32 | $anchor = carrentals_anchor_tag( 33 | array( 34 | 'url' => esc_url( site_url( '/' ) ), 35 | 'text' => esc_html__( 'Back To Home page', 'carrentals' ), 36 | ) 37 | ); 38 | 39 | echo carrentals_paragraph_tag( 40 | array( 41 | 'text' => sprintf( '%s %s', esc_html( $wrongText ), wp_kses_post( $anchor ) ), 42 | ) 43 | ); 44 | 45 | // Search Form 46 | get_search_form(); 47 | ?> 48 |
49 |
50 |
51 | 52 |
53 |
54 |
-------------------------------------------------------------------------------- /templates/content-none.php: -------------------------------------------------------------------------------- 1 | 15 |
16 |

17 | 18 | 19 | 20 |

Get started here.', 'carrentals' ), esc_url( admin_url( 'post-new.php' ) ) ); ?>

21 | 22 | 23 | 24 |

25 | 39 | 40 | 41 | 42 |

43 | 44 | 45 | 46 |
47 | -------------------------------------------------------------------------------- /templates/content.php: -------------------------------------------------------------------------------- 1 | 17 | 18 |
> 19 | 71 |
-------------------------------------------------------------------------------- /templates/content-video.php: -------------------------------------------------------------------------------- 1 | 18 | 19 |
> 20 | 72 |
-------------------------------------------------------------------------------- /templates/content-audio.php: -------------------------------------------------------------------------------- 1 | 18 | 19 |
> 20 | 73 |
-------------------------------------------------------------------------------- /inc/carrentals-companion/carrentals-companion.php: -------------------------------------------------------------------------------- 1 | '; 35 | $content .= $tagLine; 36 | $content .= '
  • '; 37 | $content .= '
  • '; 38 | $content .= '
  • '; 39 | $content .= '
  • '; 40 | $content .= ''; 41 | 42 | return $content; 43 | 44 | } 45 | -------------------------------------------------------------------------------- /templates/content-single.php: -------------------------------------------------------------------------------- 1 | 15 | 16 |
    > 17 | 18 | '; 50 | /** 51 | * Blog single page content 52 | * Post social share 53 | * @Hook carrentals_blog_posts_content 54 | * 55 | * @Hooked carrentals_blog_posts_content_cb 56 | * 57 | * 58 | */ 59 | do_action( 'carrentals_blog_posts_content' ); 60 | 61 | echo '
    '; 62 | 63 | /** 64 | * Blog single post meta category, tag, next - previous link, comments form 65 | * and biography 66 | * @Hook carrentals_blog_single_meta 67 | * 68 | * @Hooked carrentals_blog_single_meta_cb 69 | * 70 | * 71 | */ 72 | do_action( 'carrentals_blog_single_meta' ); 73 | 74 | ?> 75 | 76 | -------------------------------------------------------------------------------- /inc/class-epsilon-dashboard-autoloader.php: -------------------------------------------------------------------------------- 1 | esc_html__( 'Sidebar', 'carrentals' ), 20 | 'id' => 'carrentals-post-sidebar', 21 | 'before_widget' => '
    ', 22 | 'after_widget' => '
    ', 23 | 'before_title' => '

    ', 24 | 'after_title' => '

    ', 25 | ) 26 | ); 27 | 28 | // footer widgets register 29 | register_sidebar( 30 | array( 31 | 'name' => esc_html__( 'Footer One', 'carrentals' ), 32 | 'id' => 'footer-1', 33 | 'before_widget' => '', 35 | 'before_title' => '
    ', 36 | 'after_title' => '
    ', 37 | ) 38 | ); 39 | register_sidebar( 40 | array( 41 | 'name' => esc_html__( 'Footer Two', 'carrentals' ), 42 | 'id' => 'footer-2', 43 | 'before_widget' => '', 45 | 'before_title' => '
    ', 46 | 'after_title' => '
    ', 47 | ) 48 | ); 49 | register_sidebar( 50 | array( 51 | 'name' => esc_html__( 'Footer Three', 'carrentals' ), 52 | 'id' => 'footer-3', 53 | 'before_widget' => '', 55 | 'before_title' => '
    ', 56 | 'after_title' => '
    ', 57 | ) 58 | ); 59 | register_sidebar( 60 | array( 61 | 'name' => esc_html__( 'Footer Four', 'carrentals' ), 62 | 'id' => 'footer-4', 63 | 'before_widget' => '', 65 | 'before_title' => '
    ', 66 | 'after_title' => '
    ', 67 | ) 68 | ); 69 | 70 | } 71 | add_action( 'widgets_init', 'carrentals_widgets_init' ); 72 | -------------------------------------------------------------------------------- /inc/wp_bootstrap_pagination.php: -------------------------------------------------------------------------------- 1 | 4, 20 | 'custom_query' => FALSE, 21 | 'previous_string' => esc_html__( '«', 'carrentals' ), 22 | 'next_string' => esc_html__( '»', 'carrentals' ), 23 | 'before_output' => '
    ' 25 | ); 26 | 27 | $args = wp_parse_args( 28 | $args, 29 | apply_filters( 'carrentals_pagination_defaults', $defaults ) 30 | ); 31 | 32 | $args['range'] = (int) $args['range'] - 1; 33 | if ( !$args['custom_query'] ) 34 | $args['custom_query'] = isset( $GLOBALS['wp_query'] ) ? $GLOBALS['wp_query'] : ''; 35 | $count = (int) $args['custom_query']->max_num_pages; 36 | $page = intval( get_query_var( 'paged' ) ); 37 | $ceil = ceil( $args['range'] / 2 ); 38 | 39 | if ( $count <= 1 ) 40 | return FALSE; 41 | 42 | if ( !$page ) 43 | $page = 1; 44 | 45 | if ( $count > $args['range'] ) { 46 | if ( $page <= $args['range'] ) { 47 | $min = 1; 48 | $max = $args['range'] + 1; 49 | } elseif ( $page >= ($count - $ceil) ) { 50 | $min = $count - $args['range']; 51 | $max = $count; 52 | } elseif ( $page >= $args['range'] && $page < ($count - $ceil) ) { 53 | $min = $page - $ceil; 54 | $max = $page + $ceil; 55 | } 56 | } else { 57 | $min = 1; 58 | $max = $count; 59 | } 60 | 61 | $echo = ''; 62 | 63 | 64 | if ( !empty($min) && !empty($max) ) { 65 | for( $i = $min; $i <= $max; $i++ ) { 66 | if ( $page == $i ) { 67 | $echo .= '' . str_pad( (int)$i, 2, '0', STR_PAD_LEFT ) . ''; 68 | } else { 69 | $echo .= sprintf( '%002d', esc_attr( get_pagenum_link($i) ), $i ); 70 | } 71 | } 72 | } 73 | 74 | 75 | if ( isset($echo) ) 76 | echo wp_kses_post( $args['before_output'] . $echo . $args['after_output'] ); 77 | } 78 | -------------------------------------------------------------------------------- /inc/carrentals-companion/js/repeater.js: -------------------------------------------------------------------------------- 1 | ( function($) { 2 | 3 | 4 | jQuery.fn.extend({ 5 | createRepeater: function (options = {}) { 6 | var hasOption = function (optionKey) { 7 | return options.hasOwnProperty(optionKey); 8 | }; 9 | var option = function (optionKey) { 10 | return options[optionKey]; 11 | }; 12 | var addItem = function (items, key, fresh = true) { 13 | var itemContent = items; 14 | var group = itemContent.data("group"); 15 | var item = itemContent; 16 | var input = item.find('input,select'); 17 | input.each(function (index, el) { 18 | var attrName = $(el).data('name'); 19 | var skipName = $(el).data('skip-name'); 20 | if (skipName != true) { 21 | $(el).attr("name", group + "[" + key + "]" + attrName); 22 | } else { 23 | if (attrName != 'undefined') { 24 | $(el).attr("name", attrName); 25 | } 26 | } 27 | if (fresh == true) { 28 | //$(el).attr('value', ''); 29 | } 30 | }) 31 | var itemClone = items; 32 | 33 | /* Handling remove btn */ 34 | var removeButton = itemClone.find('.remove-btn'); 35 | 36 | console.log( key ); 37 | 38 | if (key == 0) { 39 | removeButton.addClass( 'disabled' ); 40 | } else { 41 | removeButton.removeClass( 'disabled' ); 42 | } 43 | 44 | 45 | removeButton.attr('onclick', 'jQuery(this).parents(\'.items\').remove()'); 46 | 47 | $("
    " + itemClone.html() + "
    ").appendTo(repeater); 48 | }; 49 | /* find elements */ 50 | var repeater = this; 51 | var items = repeater.find(".items"); 52 | var key = 0; 53 | var addButton = repeater.find('.repeater-add-btn'); 54 | 55 | items.each(function (index, item) { 56 | items.remove(); 57 | if (hasOption('showFirstItemToDefault') && option('showFirstItemToDefault') == true) { 58 | addItem($(item), key); 59 | key++; 60 | } else { 61 | if (items.length > 1) { 62 | addItem($(item), key); 63 | key++; 64 | } 65 | } 66 | }); 67 | 68 | /* handle click and add items */ 69 | addButton.on("click", function () { 70 | addItem($(items[0]), key); 71 | key++; 72 | }); 73 | } 74 | }); 75 | 76 | } )( jQuery ); -------------------------------------------------------------------------------- /inc/libraries/class-epsilon-init-notify-system.php: -------------------------------------------------------------------------------- 1 | Epsilon_Notify_System::check_plugin_is_installed( $slug ), 44 | 'active' => Epsilon_Notify_System::check_plugin_is_active( $slug ), 45 | ); 46 | 47 | if ( empty( $get ) ) { 48 | $arr = array_filter( $arr ); 49 | 50 | return 2 === count( $arr ); 51 | } 52 | } 53 | 54 | // Translators: %s is the plugin name. 55 | $arr['title'] = sprintf( __( 'Install: %s', 'carrentals' ), $plugin_name ); 56 | // Translators: %s is the plugin name. 57 | $arr['description'] = sprintf( __( 'Please install %s in order to create the demo content.', 'carrentals' ), $plugin_name ); 58 | 59 | if ( $arr['installed'] ) { 60 | // Translators: %s is the plugin name 61 | $arr['title'] = sprintf( __( 'Activate: %s', 'carrentals' ), $plugin_name ); 62 | // Translators: %s is the plugin name 63 | $arr['description'] = sprintf( __( 'Please activate %s in order to create the demo content.', 'carrentals' ), $plugin_name ); 64 | } 65 | 66 | return $arr[ $get ]; 67 | } 68 | 69 | /** 70 | * @return array 71 | */ 72 | public static function verify_cf7() { 73 | $arr = array( 74 | 'installed' => false, 75 | 'active' => false, 76 | ); 77 | 78 | if ( file_exists( ABSPATH . 'wp-content/plugins/contact-form-7' ) ) { 79 | $arr['installed'] = true; 80 | $arr['active'] = defined( 'WPCF7_VERSION' ); 81 | } 82 | 83 | return $arr; 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /assets/js/carrentals-elementor-notice.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Notice for Elementor 3 | * 4 | * @package CarRentals 5 | */ 6 | 7 | /* global carrentalsElementorNotice */ 8 | 9 | jQuery( document ).ready( 10 | function () { 11 | 12 | var style = ''; 13 | 14 | var dialog = style + '
    ' + 15 | '
    ' + 16 | '
    CarRentals supports default styling for Elementor widgets
    ' + 17 | '
    Do you want to disable Elementors\' default styles and use the theme defaults?
    ' + 18 | '
    ' + 19 | 'No' + 20 | 'Yes' + 21 | '
    ' + 22 | '
    ' + 23 | '
    '; 24 | 25 | jQuery( 'body' ).prepend( dialog ); 26 | jQuery( '.carrentals-elementor-notice-buttons > a' ).on( 27 | 'click', function() { 28 | 29 | var reply = jQuery( this ).data( 'reply' ); 30 | 31 | jQuery.ajax( 32 | { 33 | url: carrentalsElementorNotice.ajaxurl, 34 | data: { 35 | reply: reply, 36 | nonce: carrentalsElementorNotice.nonce, 37 | action: 'elementor_desiable_default_style' 38 | }, 39 | type: 'post', 40 | success: function () { 41 | 42 | if ( reply === 'yes' ) { 43 | parent.location.reload(); 44 | } else { 45 | jQuery( '.carrentals-disable-elementor-styling' ).fadeOut( 500, function() { jQuery( this ).remove(); } ); 46 | } 47 | } 48 | } 49 | ); 50 | } 51 | ); 52 | } 53 | ); 54 | -------------------------------------------------------------------------------- /assets/js/jquery.nice-select.min.js: -------------------------------------------------------------------------------- 1 | /* jQuery Nice Select - v1.0 2 | https://github.com/hernansartorio/jquery-nice-select 3 | Made by Hernán Sartorio */ 4 | !function(e){e.fn.niceSelect=function(t){function s(t){t.after(e("
    ").addClass("nice-select").addClass(t.attr("class")||"").addClass(t.attr("disabled")?"disabled":"").attr("tabindex",t.attr("disabled")?null:"0").html(''));var s=t.next(),n=t.find("option"),i=t.find("option:selected");s.find(".current").html(i.data("display")||i.text()),n.each(function(t){var n=e(this),i=n.data("display");s.find("ul").append(e("
  • ").attr("data-value",n.val()).attr("data-display",i||null).addClass("option"+(n.is(":selected")?" selected":"")+(n.is(":disabled")?" disabled":"")).html(n.text()))})}if("string"==typeof t)return"update"==t?this.each(function(){var t=e(this),n=e(this).next(".nice-select"),i=n.hasClass("open");n.length&&(n.remove(),s(t),i&&t.next().trigger("click"))}):"destroy"==t?(this.each(function(){var t=e(this),s=e(this).next(".nice-select");s.length&&(s.remove(),t.css("display",""))}),0==e(".nice-select").length&&e(document).off(".nice_select")):console.log('Method "'+t+'" does not exist.'),this;this.hide(),this.each(function(){var t=e(this);t.next().hasClass("nice-select")||s(t)}),e(document).off(".nice_select"),e(document).on("click.nice_select",".nice-select",function(t){var s=e(this);e(".nice-select").not(s).removeClass("open"),s.toggleClass("open"),s.hasClass("open")?(s.find(".option"),s.find(".focus").removeClass("focus"),s.find(".selected").addClass("focus")):s.focus()}),e(document).on("click.nice_select",function(t){0===e(t.target).closest(".nice-select").length&&e(".nice-select").removeClass("open").find(".option")}),e(document).on("click.nice_select",".nice-select .option:not(.disabled)",function(t){var s=e(this),n=s.closest(".nice-select");n.find(".selected").removeClass("selected"),s.addClass("selected");var i=s.data("display")||s.text();n.find(".current").text(i),n.prev("select").val(s.data("value")).trigger("change")}),e(document).on("keydown.nice_select",".nice-select",function(t){var s=e(this),n=e(s.find(".focus")||s.find(".list .option.selected"));if(32==t.keyCode||13==t.keyCode)return s.hasClass("open")?n.trigger("click"):s.trigger("click"),!1;if(40==t.keyCode){if(s.hasClass("open")){var i=n.nextAll(".option:not(.disabled)").first();i.length>0&&(s.find(".focus").removeClass("focus"),i.addClass("focus"))}else s.trigger("click");return!1}if(38==t.keyCode){if(s.hasClass("open")){var l=n.prevAll(".option:not(.disabled)").first();l.length>0&&(s.find(".focus").removeClass("focus"),l.addClass("focus"))}else s.trigger("click");return!1}if(27==t.keyCode)s.hasClass("open")&&s.trigger("click");else if(9==t.keyCode&&s.hasClass("open"))return!1});var n=document.createElement("a").style;return n.cssText="pointer-events:auto","auto"!==n.pointerEvents&&e("html").addClass("no-csspointerevents"),this}}(jQuery); -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/elementor-widgets/assets/css/justifiedGallery.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * justifiedGallery - v3.7.0 3 | * http://miromannino.github.io/Justified-Gallery/ 4 | * Copyright (c) 2018 Miro Mannino 5 | * Licensed under the MIT license. 6 | */ 7 | .justified-gallery { 8 | width: 100%; 9 | position: relative; 10 | overflow: hidden; 11 | } 12 | .justified-gallery > a, 13 | .justified-gallery > div, 14 | .justified-gallery > figure { 15 | position: absolute; 16 | display: inline-block; 17 | overflow: hidden; 18 | /* background: #888888; To have gray placeholders while the gallery is loading with waitThumbnailsLoad = false */ 19 | filter: "alpha(opacity=10)"; 20 | opacity: 0.1; 21 | margin: 0; 22 | padding: 0; 23 | } 24 | .justified-gallery > a > img, 25 | .justified-gallery > div > img, 26 | .justified-gallery > figure > img, 27 | .justified-gallery > a > a > img, 28 | .justified-gallery > div > a > img, 29 | .justified-gallery > figure > a > img { 30 | position: absolute; 31 | top: 50%; 32 | left: 50%; 33 | margin: 0; 34 | padding: 0; 35 | border: none; 36 | filter: "alpha(opacity=0)"; 37 | opacity: 0; 38 | } 39 | .justified-gallery > a > .caption, 40 | .justified-gallery > div > .caption, 41 | .justified-gallery > figure > .caption { 42 | display: none; 43 | position: absolute; 44 | bottom: 0; 45 | padding: 5px; 46 | background-color: #000000; 47 | left: 0; 48 | right: 0; 49 | margin: 0; 50 | color: white; 51 | font-size: 12px; 52 | font-weight: 300; 53 | font-family: sans-serif; 54 | } 55 | .justified-gallery > a > .caption.caption-visible, 56 | .justified-gallery > div > .caption.caption-visible, 57 | .justified-gallery > figure > .caption.caption-visible { 58 | display: initial; 59 | filter: "alpha(opacity=70)"; 60 | opacity: 0.7; 61 | -webkit-transition: opacity 500ms ease-in; 62 | -moz-transition: opacity 500ms ease-in; 63 | -o-transition: opacity 500ms ease-in; 64 | transition: opacity 500ms ease-in; 65 | } 66 | .justified-gallery > .entry-visible { 67 | filter: "alpha(opacity=100)"; 68 | opacity: 1; 69 | background: none; 70 | } 71 | .justified-gallery > .entry-visible > img, 72 | .justified-gallery > .entry-visible > a > img { 73 | filter: "alpha(opacity=100)"; 74 | opacity: 1; 75 | -webkit-transition: opacity 500ms ease-in; 76 | -moz-transition: opacity 500ms ease-in; 77 | -o-transition: opacity 500ms ease-in; 78 | transition: opacity 500ms ease-in; 79 | } 80 | .justified-gallery > .jg-filtered { 81 | display: none; 82 | } 83 | .justified-gallery > .spinner { 84 | position: absolute; 85 | bottom: 0; 86 | margin-left: -24px; 87 | padding: 10px 0 10px 0; 88 | left: 50%; 89 | filter: "alpha(opacity=100)"; 90 | opacity: 1; 91 | overflow: initial; 92 | } 93 | .justified-gallery > .spinner > span { 94 | display: inline-block; 95 | filter: "alpha(opacity=0)"; 96 | opacity: 0; 97 | width: 8px; 98 | height: 8px; 99 | margin: 0 4px 0 4px; 100 | background-color: #000; 101 | border-radius: 6px; 102 | } 103 | -------------------------------------------------------------------------------- /inc/hooks/hooks.php: -------------------------------------------------------------------------------- 1 | 'carrentals_options_panel', 25 | 'args' => array( 26 | 'priority' => 0, 27 | 'capability' => 'edit_theme_options', 28 | 'theme_supports' => '', 29 | 'title' => esc_html__( 'Theme Options', 'carrentals' ), 30 | ), 31 | ) 32 | ); 33 | 34 | 35 | /*********************************** 36 | * Register customizer sections 37 | ***********************************/ 38 | 39 | 40 | $sections = array( 41 | /** 42 | * General Section 43 | */ 44 | array( 45 | 'id' => 'carrentals_general_options_section', 46 | 'args' => array( 47 | 'title' => esc_html__( 'General', 'carrentals' ), 48 | 'panel' => 'carrentals_options_panel', 49 | 'priority' => 1, 50 | ), 51 | ), 52 | /** 53 | * Header Section 54 | */ 55 | array( 56 | 'id' => 'carrentals_headertop_options_section', 57 | 'args' => array( 58 | 'title' => esc_html__( 'Header Top', 'carrentals' ), 59 | 'panel' => 'carrentals_options_panel', 60 | 'priority' => 2, 61 | ), 62 | ), 63 | /** 64 | * Blog Section 65 | */ 66 | array( 67 | 'id' => 'carrentals_blog_options_section', 68 | 'args' => array( 69 | 'title' => esc_html__( 'Blog', 'carrentals' ), 70 | 'panel' => 'carrentals_options_panel', 71 | 'priority' => 3, 72 | ), 73 | ), 74 | 75 | /** 76 | * 404 Page Section 77 | */ 78 | array( 79 | 'id' => 'carrentals_fof_options_section', 80 | 'args' => array( 81 | 'title' => esc_html__( '404 Page', 'carrentals' ), 82 | 'panel' => 'carrentals_options_panel', 83 | 'priority' => 6, 84 | ), 85 | ), 86 | /** 87 | * Footer Section 88 | */ 89 | array( 90 | 'id' => 'carrentals_footer_options_section', 91 | 'args' => array( 92 | 'title' => esc_html__( 'Footer', 'carrentals' ), 93 | 'panel' => 'carrentals_options_panel', 94 | 'priority' => 7, 95 | ), 96 | ), 97 | 98 | ); 99 | 100 | 101 | /*********************************** 102 | * Add customizer elements 103 | ***********************************/ 104 | $collection = array( 105 | 'panel' => $panels, 106 | 'section' => $sections, 107 | ); 108 | 109 | Epsilon_Customizer::add_multiple( $collection ); 110 | -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/demo-data/demo-import.php: -------------------------------------------------------------------------------- 1 | '; 18 | 19 | return array( 20 | array( 21 | 'import_file_name' => 'CarRentals Demo', 22 | 'local_import_file' => CARRENTALS_COMPANION_DEMO_DIR_PATH .'carrentals-demo.xml', 23 | 'local_import_widget_file' => CARRENTALS_COMPANION_DEMO_DIR_PATH .'carrentals-widgets-demo.json', 24 | 'import_customizer_file_url' => CARRENTALS_COMPANION_URL . 'inc/demo-data/carrentals-customizer.dat', 25 | 'import_notice' => $demoImg, 26 | ), 27 | ); 28 | } 29 | add_filter( 'pt-ocdi/import_files', 'carrentals_import_files' ); 30 | 31 | // demo import setup 32 | function carrentals_after_import_setup() { 33 | // Assign menus to their locations. 34 | $main_menu = get_term_by( 'name', 'Primary Menu', 'nav_menu' ); 35 | 36 | set_theme_mod( 'nav_menu_locations', array( 37 | 'primary-menu' => $main_menu->term_id 38 | ) 39 | ); 40 | 41 | // Assign front page and posts page (blog page). 42 | $front_page_id = get_page_by_title( 'Home' ); 43 | $blog_page_id = get_page_by_title( 'Blog' ); 44 | 45 | update_option( 'show_on_front', 'page' ); 46 | update_option( 'page_on_front', $front_page_id->ID ); 47 | update_option( 'page_for_posts', $blog_page_id->ID ); 48 | update_option( 'carrentals_demodata_import', 'yes' ); 49 | 50 | } 51 | add_action( 'pt-ocdi/after_import', 'carrentals_after_import_setup' ); 52 | 53 | //disable the branding notice after successful demo import 54 | add_filter( 'pt-ocdi/disable_pt_branding', '__return_true' ); 55 | 56 | //change the location, title and other parameters of the plugin page 57 | function carrentals_import_plugin_page_setup( $default_settings ) { 58 | $default_settings['parent_slug'] = 'themes.php'; 59 | $default_settings['page_title'] = esc_html__( 'One Click Demo Import' , 'carrentals' ); 60 | $default_settings['menu_title'] = esc_html__( 'Import Demo Data' , 'carrentals' ); 61 | $default_settings['capability'] = 'import'; 62 | $default_settings['menu_slug'] = 'carrentals-demo-import'; 63 | 64 | return $default_settings; 65 | } 66 | add_filter( 'pt-ocdi/plugin_page_setup', 'carrentals_import_plugin_page_setup' ); 67 | 68 | // Enqueue scripts 69 | function carrentals_demo_import_custom_scripts(){ 70 | 71 | 72 | if( isset( $_GET['page'] ) && $_GET['page'] == 'carrentals-demo-import' ){ 73 | // style 74 | wp_enqueue_style( 'carrentals-demo-import', CARRENTALS_COMPANION_URL . 'inc/demo-data/css/demo-import.css', array(), '1.0', false ); 75 | } 76 | 77 | 78 | } 79 | add_action( 'admin_enqueue_scripts', 'carrentals_demo_import_custom_scripts' ); 80 | 81 | 82 | 83 | ?> -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | === CarRentals === 2 | Contributors: colorlib 3 | Tags: custom-header, custom-menu, featured-image-header, featured-images, full-width-template, translation-ready 4 | Requires at least: 4.0 5 | Tested up to: 4.4.2 6 | 7 | == Description == 8 | CarRentals is a clean, simple, responsive and customizable WordPress theme that looks awesome on any device. For a quick launch of a page to showcases your works, your talents and your services, apredefined theme is a wise decision to make. CarRentals has it all in store for you to easily and effortlessly engineer an appealing page to attract new clients and seal new business deals. 9 | 10 | 11 | = License = 12 | CarRentals WordPress theme, Copyright (C) 2018 Colorlib.com 13 | CarRentals WordPress theme is licensed under the GPL2. 14 | 15 | Unless otherwise specified, all the theme files, scripts and images are licensed under GNU General Public License. 16 | The exceptions to this license are as follows: 17 | 18 | Images: 19 | Licenses: CCO Public Domain 20 | 21 | # Banner image source 22 | https://pixabay.com/en/ford-mustang-auto-vehicle-muscle-63930/ 23 | 24 | # Page Header image source 25 | https://pixabay.com/en/buildings-car-city-porsche-rainy-1851246/ 26 | 27 | # About image source 28 | https://pixabay.com/en/autostadt-wolfsburg-wolfsburg-1104133/ 29 | 30 | # Car Model image source 31 | https://pixabay.com/en/autostadt-wolfsburg-wolfsburg-1104124/ 32 | https://pixabay.com/en/autostadt-wolfsburg-wolfsburg-1104129/ 33 | 34 | # call to action image source 35 | https://pixabay.com/en/auto-vehicle-hyundai-hyundai-i35-300163/ 36 | 37 | #Team image source 38 | https://pixabay.com/en/business-woman-person-young-female-2180509/ 39 | https://pixabay.com/en/man-portrait-adult-people-person-3122063/ 40 | https://pixabay.com/en/male-beard-man-bearded-person-guy-3407942/ 41 | 42 | # Blog image source 43 | https://pixabay.com/en/autostadt-wolfsburg-wolfsburg-1104120/ 44 | https://pixabay.com/en/autostadt-wolfsburg-wolfsburg-1104122/ 45 | 46 | * Bootstrap v4.0.0 (http://getbootstrap.com) 47 | Copyright 2011-2018 Twitter, Inc. 48 | Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 49 | 50 | * Ionicons v2.0.0 ( http://ionicons.com/ ) 51 | Copyright (c) 2015-present 52 | Licensed under MIT ( https://github.com/ionic-team/ionicons/blob/master/LICENSE ) 53 | 54 | * Font Awesome 55 | License: SIL OFL 1.1 56 | URL: http://scripts.sil.org/OFL 57 | 58 | * Google Fonts: 59 | License: SIL OFL 1.1 60 | URL: http://scripts.sil.org/OFL 61 | 62 | * PopperJS ( https://github.com/FezVrasta/popper.js ) 63 | Copyright © 2016-2018 Federico Zivolo 64 | License: MIT 65 | URL: https://github.com/FezVrasta/popper.js/blob/master/LICENSE.md 66 | 67 | * Superfish jQuery Superfish Menu Plugin 68 | Copyright (c) 2016 Joel Birch 69 | License: MIT 70 | URL: http://www.opensource.org/licenses/mit-license.php 71 | 72 | 73 | * Select2 v4.0.3 ( https://github.com/select2/select2/blob/master/LICENSE.md ) 74 | Copyright (c) 2012-2017 75 | License: MIT 76 | 77 | * Sticky js plugin 78 | License: MIT 79 | URL: https://github.com/garand/sticky/blob/master/LICENSE.md 80 | -------------------------------------------------------------------------------- /inc/customizer/js/customizer.js: -------------------------------------------------------------------------------- 1 | (function( $ , api) { 2 | 3 | // Customizer about page redirect 4 | api.section( 'carrentals_fof_options_section' , function( section ) { 5 | 6 | section.expanded.bind( function( isExpanded ) { 7 | 8 | if( isExpanded ) { 9 | api.previewer.previewUrl.set( api.settings.url.home+'/maybe404page' ); 10 | } else { 11 | api.previewer.previewUrl.set( api.settings.url.home ); 12 | } 13 | 14 | } ) 15 | 16 | } ); 17 | 18 | // Customizer blog page redirect 19 | api.section( 'carrentals_blog_options_section' , function( section ) { 20 | 21 | section.expanded.bind( function( isExpanded ) { 22 | 23 | if( isExpanded ) { 24 | api.previewer.previewUrl.set( carrentalsCustomizerdata.blog_page ); 25 | } else { 26 | api.previewer.previewUrl.set( api.settings.url.home ); 27 | } 28 | 29 | 30 | 31 | } ) 32 | 33 | } ); 34 | 35 | 36 | // Footer section 37 | api.section( 'carrentals_footer_options_section' , function( section ) { 38 | 39 | section.expanded.bind( function( isExpanded ) { 40 | 41 | 42 | // Footer Widget option show/hide 43 | var $widget_toggle = $('#carrentals-widget-toggle-settings'), 44 | $widgettitle = $('#customize-control-carrentals_footer_widgettitlecolor_settings'); 45 | 46 | // Default 47 | 48 | if( $widget_toggle.is( ':checked' ) ) { 49 | 50 | $widgettitle.show('slow'); 51 | 52 | } else { 53 | 54 | $widgettitle.hide('slow'); 55 | 56 | } 57 | 58 | // on click 59 | $widget_toggle.on( 'click', function() { 60 | 61 | var $this = $( this ); 62 | 63 | if( $this.is(':checked') ) { 64 | 65 | $widgettitle.show('slow'); 66 | 67 | } else { 68 | 69 | $widgettitle.hide('slow'); 70 | 71 | } 72 | 73 | 74 | } ); 75 | 76 | } ); 77 | 78 | } ); 79 | 80 | // colors section 81 | api.section( 'colors' , function( section ) { 82 | 83 | section.expanded.bind( function( isExpanded ) { 84 | 85 | 86 | // Page header overlay option show/hide 87 | var $overlay_toggle = $('#carrentals-headeroverlay-toggle-settings'), 88 | $overlaytitle = $('#customize-control-carrentals_headeroverlaycolor'); 89 | 90 | // Default 91 | 92 | if( $overlay_toggle.is( ':checked' ) ) { 93 | 94 | $overlaytitle.show('slow'); 95 | 96 | } else { 97 | 98 | $overlaytitle.hide('slow'); 99 | 100 | } 101 | 102 | // on click 103 | $overlay_toggle.on( 'click', function() { 104 | 105 | var $this = $( this ); 106 | 107 | if( $this.is(':checked') ) { 108 | 109 | $overlaytitle.show('slow'); 110 | 111 | } else { 112 | 113 | $overlaytitle.hide('slow'); 114 | 115 | } 116 | 117 | } ); 118 | 119 | } ); 120 | 121 | } ); 122 | 123 | 124 | })( jQuery, wp.customize ); -------------------------------------------------------------------------------- /assets/css/common.css: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Common background color 4 | */ 5 | 6 | 7 | .genric-btn.primary, 8 | .genric-btn.primary-border:hover, 9 | .default-switch input + label, 10 | .primary-switch input:checked + label:before, 11 | .primary-btn, 12 | .exibition-area .owl-dot.active, 13 | .single-exibition .tags li:hover, 14 | .single-footer-widget .click-btn, 15 | .generic-banner, 16 | .tags-widget ul li:hover, 17 | .commentform-area .primary-btn, 18 | .single-service:hover, 19 | .team-area .thumb div, 20 | .single-price:hover .price-bottom, 21 | .single-price .price-bottom .primary-btn, 22 | .home-about-area .home-about-right .primary-btn, 23 | .model-area .owl-dot.active, 24 | .callaction-btn, 25 | .facts-area { 26 | background-color: #fab700; 27 | } 28 | 29 | /** 30 | * Common text color 31 | */ 32 | 33 | b, 34 | sup, 35 | sub, 36 | u, 37 | del, 38 | a:hover, 39 | .genric-btn.primary-border, 40 | .genric-btn.primary:hover, 41 | .ordered-list li, 42 | .ordered-list-alpha li, 43 | .ordered-list-roman li, 44 | .default-select .nice-select .list .option.selected, 45 | .default-select .nice-select .list .option:hover, 46 | .form-select .nice-select .list .option.selected, 47 | .form-select .nice-select .list .option:hover, 48 | .top-head-right ul li:hover a, 49 | .nav-menu ul li:hover > a, 50 | #mobile-nav ul .menu-has-children i.fa-chevron-up, 51 | #mobile-nav ul .menu-item-active, 52 | .single-model .title h2, 53 | .primary-btn:hover, 54 | .primary-btn.white:hover, 55 | .primary-btn.white:hover span, 56 | .single-service .fa, 57 | .single-service .lnr, 58 | .single-service h4, 59 | .single-blog:hover h4, 60 | .copy-right-text i, .copy-right-text a, 61 | .footer-social a:hover i, 62 | .single-footer-widget .bb-btn, 63 | .footer-text a, .footer-text i, 64 | .single-exhibition .price, 65 | .contact-page-area .form-area .primary-btn:hover, 66 | .contact-page-area .single-contact-address .fa, 67 | .contact-page-area .single-contact-address .lnr, 68 | .single-blog-post .tags li:hover a, 69 | .search-widget i, 70 | .protfolio-widget ul li a i:hover, 71 | .single-widget ul li:hover a, 72 | .single-widget ul li:hover, 73 | .category-widget ul li:hover h6, 74 | .category-widget ul li:hover span, 75 | .recent-posts-widget .single-recent-post:hover h4, 76 | .home-about-area .home-about-right .primary-btn:hover, 77 | .single-blog-post .tags li:first-child:after, 78 | .contact-page-area .form-area .primary-btn:hover, 79 | .single-feature:hover h4, 80 | .single-blog-post a, 81 | .single-blog-post a h1, 82 | .sl-wrapper .fa-heart, 83 | .single-review .star .checked, 84 | .ui-datepicker-next span, 85 | .ui-datepicker-prev span, 86 | .tags li .fa, 87 | #logo a { 88 | color: #fab700; 89 | } 90 | 91 | /** 92 | * Common border color 93 | */ 94 | 95 | .genric-btn.primary-border, 96 | .genric-btn.primary:hover, 97 | .generic-blockquote, 98 | .unordered-list li:before, 99 | .single-input-primary:focus, 100 | #header #logo h1 a, #header #logo h1 a:hover, 101 | .primary-btn:hover, 102 | .contact-page-area .form-area .primary-btn:hover, 103 | .single-widget ul li:hover, 104 | .category-widget ul li:hover, 105 | .commentform-area .primary-btn:hover, 106 | .home-about-area .home-about-right .primary-btn:hover, 107 | .callaction-btn:hover, 108 | blockquote, 109 | .generic-blockquote { 110 | border-color: #fab700; 111 | } -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/elementor-widgets/assets/js/map-custom.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | // USE STRICT 3 | "use strict"; 4 | 5 | // Start Google map 6 | 7 | // When the window has finished loading create our google map below 8 | 9 | 10 | if(document.getElementById("map")){ 11 | 12 | var $dataSelector = $( '[data-map]' ), 13 | $getData = $dataSelector.data( 'map' ); 14 | 15 | google.maps.event.addDomListener(window, 'load', init); 16 | 17 | function init() { 18 | // Basic options for a simple Google Map 19 | // For more options see: https://developers.google.com/maps/documentation/javascript/reference#MapOptions 20 | var mapOptions = { 21 | // How zoomed in you want the map to start at (always required) 22 | zoom: 11, 23 | 24 | // The latitude and longitude to center the map (always required) 25 | center: new google.maps.LatLng( $getData.lat, $getData.lng ), // New York 26 | 27 | // How you would like to style the map. 28 | // This is where you would paste any style found on Snazzy Maps. 29 | styles: [{"featureType":"water","elementType":"geometry","stylers":[{"color":"#e9e9e9"},{"lightness":17}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#f5f5f5"},{"lightness":20}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffffff"},{"lightness":17}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#ffffff"},{"lightness":29},{"weight":0.2}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#ffffff"},{"lightness":18}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#ffffff"},{"lightness":16}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#f5f5f5"},{"lightness":21}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#dedede"},{"lightness":21}]},{"elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#ffffff"},{"lightness":16}]},{"elementType":"labels.text.fill","stylers":[{"saturation":36},{"color":"#333333"},{"lightness":40}]},{"elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#f2f2f2"},{"lightness":19}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#fefefe"},{"lightness":20}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#fefefe"},{"lightness":17},{"weight":1.2}]}] 30 | }; 31 | 32 | // Get the HTML DOM element that will contain your map 33 | // We are using a div with id="map" seen below in the 34 | var mapElement = document.getElementById('map'); 35 | 36 | // Create the Google Map using our element and options defined above 37 | var map = new google.maps.Map(mapElement, mapOptions); 38 | 39 | // Let's also add a marker while we're at it 40 | var marker = new google.maps.Marker({ 41 | position: new google.maps.LatLng( $getData.lat, $getData.lng ), 42 | map: map, 43 | title: $getData.address 44 | }); 45 | } 46 | } 47 | 48 | })(jQuery); -------------------------------------------------------------------------------- /inc/classes/Class-Enqueue.php: -------------------------------------------------------------------------------- 1 | scripts; 27 | 28 | // variable type check 29 | if( is_array( $scripts ) && count( $scripts ) > 0 ) { 30 | 31 | // Style Enqueue 32 | if( is_array( $scripts['style'] ) && count( $scripts['style'] ) > 0 ) { 33 | 34 | foreach( $scripts['style'] as $style ) { 35 | 36 | // Check handler 37 | $handler = ''; 38 | if( ! empty( $style['handler'] ) ) { 39 | $handler = $style['handler']; 40 | } 41 | 42 | // Check file 43 | $file = ''; 44 | if( ! empty( $style['file'] ) ) { 45 | $file = $style['file']; 46 | } 47 | // Check dependency 48 | $dependency = ''; 49 | if( ! empty( $style['dependency'] ) ) { 50 | $dependency = $style['dependency']; 51 | } 52 | // Check version 53 | $version = ''; 54 | if( ! empty( $style['version'] ) ) { 55 | $version = $style['version']; 56 | } 57 | 58 | // wp_enqueue_style 59 | wp_enqueue_style( esc_html( $handler ), esc_url( $file ), $dependency, esc_html( $version ) ); 60 | 61 | } 62 | 63 | } // End Style Enqueue 64 | 65 | // Scripts Enqueue 66 | if( is_array( $scripts['scripts'] ) && count( $scripts['scripts'] ) > 0 ) { 67 | 68 | foreach( $scripts['scripts'] as $script ) { 69 | 70 | // Check handler 71 | $handler = ''; 72 | if( ! empty( $script['handler'] ) ) { 73 | $handler = $script['handler']; 74 | } 75 | 76 | // Check file 77 | $file = ''; 78 | if( ! empty( $script['file'] ) ) { 79 | $file = $script['file']; 80 | } 81 | // Check dependency 82 | $dependency = array('jquery'); 83 | if( ! empty( $script['dependency'] ) ) { 84 | $dependency = $script['dependency']; 85 | } 86 | // Check version 87 | $version = ''; 88 | if( ! empty( $script['version'] ) ) { 89 | $version = $script['version']; 90 | } 91 | // Check in_footer 92 | $in_footer = ''; 93 | if( ! empty( $script['in_footer'] ) ) { 94 | $in_footer = $script['in_footer']; 95 | } 96 | 97 | // wp enqueue script 98 | if( ! empty( $script['register'] ) ) { 99 | wp_register_script( esc_html( $handler ), esc_url( $file ), $dependency, esc_html( $version ), esc_html( $in_footer ) ); 100 | } else { 101 | wp_enqueue_script( esc_html( $handler ), esc_url( $file ), $dependency, esc_html( $version ), esc_html( $in_footer ) ); 102 | } 103 | 104 | // Condational Script 105 | if( ! empty( $script['condation'] ) ) { 106 | wp_script_add_data( esc_html( $handler ), 'conditional', esc_html( $script['condation'] ) ); 107 | } 108 | 109 | } 110 | 111 | // Comment replay 112 | if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { 113 | wp_enqueue_script( 'comment-reply' ); 114 | } 115 | 116 | } // End Scripts Enqueue 117 | 118 | 119 | } // End variable type check 120 | 121 | } 122 | 123 | } 124 | 125 | -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/sidebar-widgets/recent-post-thumb.php: -------------------------------------------------------------------------------- 1 | esc_html__( 'Add recent post with thumbnail', 'carrentals' ), ) 28 | ); 29 | 30 | } 31 | 32 | // This is where the action happens 33 | public function widget( $args, $instance ) { 34 | $title = apply_filters( 'widget_title', $instance['title'] ); 35 | $post_number = apply_filters( 'widget_post_number', $instance['post_number'] ); 36 | 37 | // before and after widget arguments are defined by themes 38 | echo $args['before_widget']; 39 | if ( ! empty( $title ) ) 40 | echo $args['before_title'] . $title . $args['after_title']; 41 | 42 | // 43 | $arrya = array( 44 | 'post_type' => 'post', 45 | 'posts_per_page' => esc_html( $post_number ), 46 | ); 47 | 48 | $loop = new WP_Query( $arrya ); 49 | 50 | if( $loop->have_posts() ){ 51 | echo '
    '; 52 | 53 | while( $loop->have_posts() ){ 54 | $loop->the_post(); 55 | 56 | if( has_post_thumbnail() ): 57 | ?> 58 | 59 | 60 |
    61 |
    62 | 'img-fluid' ) ); 64 | ?> 65 |
    66 |
    67 | 68 |

    69 |
    70 |

    71 | 72 |

    73 |
    74 |
    75 | 76 |
    '; 81 | } 82 | 83 | echo $args['after_widget']; 84 | } 85 | 86 | // Widget Backend 87 | public function form( $instance ) { 88 | 89 | if ( isset( $instance[ 'title' ] ) ) { 90 | $title = $instance[ 'title' ]; 91 | }else { 92 | $title = esc_html__( 'Recent Post', 'carrentals' ); 93 | } 94 | // 95 | if ( isset( $instance[ 'post_number' ] ) ) { 96 | $post_number = $instance[ 'post_number' ]; 97 | }else { 98 | $post_number = esc_html__( 3 ); 99 | } 100 | 101 | // Widget admin form 102 | ?> 103 |

    104 | 105 | 106 |

    107 |

    108 | 109 | 110 |

    111 | get_section( 'title_tagline' )->panel = 'carrentals_options_panel'; 33 | // Change colors panel to theme option 34 | $wp_customize->get_section( 'colors' )->panel = 'carrentals_options_panel'; 35 | // change priorities 36 | $wp_customize->get_section( 'title_tagline' )->priority = 0; 37 | // change priorities 38 | $wp_customize->get_section( 'colors' )->priority = 3; 39 | 40 | // Change background control section 41 | $wp_customize->get_control( 'background_color' )->section = 'background_image'; 42 | // Change header image control section 43 | $wp_customize->get_control( 'header_image' )->section = 'colors'; 44 | // Rename customizer color section 45 | $wp_customize->get_section('colors')->title = esc_html__( 'Page Header', 'carrentals' ); 46 | // Rename customizer background image section 47 | $wp_customize->get_section('background_image')->title = esc_html__( 'Background', 'carrentals' ); 48 | 49 | // Copyright text selective refresh 50 | $wp_customize->selective_refresh->add_partial( 'carrentals-copyright-text-settings', 51 | array( 'selector' => '.copyright-text' ) ); 52 | // Post Like button selective refresh 53 | $wp_customize->selective_refresh->add_partial( 'carrentals-blog-like-toggle', 54 | array( 'selector' => '.sl-wrapper' ) ); 55 | // Post Share button selective refresh 56 | $wp_customize->selective_refresh->add_partial( 'carrentals-blog-social-share-toggle', 57 | array( 'selector' => '.social-wrap ul li:first-child' ) ); 58 | 59 | } 60 | 61 | 62 | // Customizer js enqueue 63 | 64 | public function carrentals_customizer_js() { 65 | 66 | wp_enqueue_script( 'carrentals-customizer', CARRENTALS_DIR_URI.'inc/customizer/js/customizer.js', array('customize-controls'), '1.0', true ); 67 | 68 | wp_localize_script( 'carrentals-customizer', 'carrentalsCustomizerdata', array( 69 | 'site_url' => site_url('/'), 70 | 'blog_page' => get_post_type_archive_link( 'post' ), 71 | 72 | ) ); 73 | 74 | } 75 | 76 | // Image sanitization callback. 77 | 78 | public static function carrentals_sanitize_image( $image, $setting ) { 79 | 80 | /* 81 | * Array of valid image file types. 82 | * 83 | * The array includes image mime types that are included in wp_get_mime_types() 84 | */ 85 | $mimes = array( 86 | 'jpg|jpeg|jpe' => 'image/jpeg', 87 | 'gif' => 'image/gif', 88 | 'png' => 'image/png', 89 | 'bmp' => 'image/bmp', 90 | 'tif|tiff' => 'image/tiff', 91 | 'ico' => 'image/x-icon' 92 | ); 93 | 94 | // Return an array with file extension and mime_type. 95 | $file = wp_check_filetype( $image, $mimes ); 96 | 97 | // If $image has a valid mime_type, return it; otherwise, return the default. 98 | return ( $file['ext'] ? $image : $setting->default ); 99 | } 100 | 101 | } 102 | -------------------------------------------------------------------------------- /comments.php: -------------------------------------------------------------------------------- 1 | 19 | 20 | 21 |
    22 |
    23 | 24 | 25 |
    26 | 'div', 29 | 'short_ping' => true, 30 | 'avatar_size' => 70, 31 | 'callback' => 'carrentals_comment_callback' 32 | ) ); 33 | ?> 34 |
    35 | 36 |
    37 | 38 | 39 | 43 |

    44 | 45 | 46 | '; 52 | }else{ 53 | $row = '
    '; 54 | $col8 = 'col-lg-8 col-md-6'; 55 | $tarow = ''; 56 | } 57 | 58 | // 59 | $commenter = wp_get_current_commenter(); 60 | $req = get_option( 'require_name_email' ); 61 | $aria_req = ( $req ? "required='required'" : '' ); 62 | $fields = array( 63 | 'author' => wp_kses_post( $row ).'
    ', 64 | 'email' =>'', 65 | 'url' =>'', 66 | 'cookies_consent' =>'
    ', 67 | ); 68 | 69 | 70 | $args=array( 71 | 'comment_field' =>wp_kses_post( $tarow ).'
    ', 72 | 'id_form' =>'contactForm', 73 | 'class_form' =>'', 74 | 'title_reply' =>esc_html__( 'Leave a Reply', 'carrentals' ), 75 | 'title_reply_before' =>'
    ', 76 | 'title_reply_after' =>'
    ', 77 | 'label_submit' => esc_html__( 'Post Comment', 'carrentals' ), 78 | 'class_submit' => 'primary-btn mt-20', 79 | 'submit_button' => '', 80 | 'fields' =>$fields, 81 | 82 | ); 83 | 84 | echo '
    '; 85 | comment_form( $args ); 86 | echo '
    '; 87 | 88 | -------------------------------------------------------------------------------- /assets/js/superfish.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery Superfish Menu Plugin - v1.7.9 3 | * Copyright (c) 2016 Joel Birch 4 | * 5 | * Dual licensed under the MIT and GPL licenses: 6 | * http://www.opensource.org/licenses/mit-license.php 7 | * http://www.gnu.org/licenses/gpl.html 8 | */ 9 | 10 | ;!function(a,b){"use strict";var c=function(){var c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",menuArrowClass:"sf-arrows"},d=function(){var b=/^(?![\w\W]*Windows Phone)[\w\W]*(iPhone|iPad|iPod)/i.test(navigator.userAgent);return b&&a("html").css("cursor","pointer").on("click",a.noop),b}(),e=function(){var a=document.documentElement.style;return"behavior"in a&&"fill"in a&&/iemobile/i.test(navigator.userAgent)}(),f=function(){return!!b.PointerEvent}(),g=function(a,b,d){var e,f=c.menuClass;b.cssArrows&&(f+=" "+c.menuArrowClass),e=d?"addClass":"removeClass",a[e](f)},h=function(b,d){return b.find("li."+d.pathClass).slice(0,d.pathLevels).addClass(d.hoverClass+" "+c.bcClass).filter(function(){return a(this).children(d.popUpSelector).hide().show().length}).removeClass(d.pathClass)},i=function(a,b){var d=b?"addClass":"removeClass";a.children("a")[d](c.anchorClass)},j=function(a){var b=a.css("ms-touch-action"),c=a.css("touch-action");c=c||b,c="pan-y"===c?"auto":"pan-y",a.css({"ms-touch-action":c,"touch-action":c})},k=function(a){return a.closest("."+c.menuClass)},l=function(a){return k(a).data("sfOptions")},m=function(){var b=a(this),c=l(b);clearTimeout(c.sfTimer),b.siblings().superfish("hide").end().superfish("show")},n=function(b){b.retainPath=a.inArray(this[0],b.$path)>-1,this.superfish("hide"),this.parents("."+b.hoverClass).length||(b.onIdle.call(k(this)),b.$path.length&&a.proxy(m,b.$path)())},o=function(){var b=a(this),c=l(b);d?a.proxy(n,b,c)():(clearTimeout(c.sfTimer),c.sfTimer=setTimeout(a.proxy(n,b,c),c.delay))},p=function(b){var c=a(this),d=l(c),e=c.siblings(b.data.popUpSelector);return d.onHandleTouch.call(e)===!1?this:void(e.length>0&&e.is(":hidden")&&(c.one("click.superfish",!1),"MSPointerDown"===b.type||"pointerdown"===b.type?c.trigger("focus"):a.proxy(m,c.parent("li"))()))},q=function(b,c){var g="li:has("+c.popUpSelector+")";a.fn.hoverIntent&&!c.disableHI?b.hoverIntent(m,o,g):b.on("mouseenter.superfish",g,m).on("mouseleave.superfish",g,o);var h="MSPointerDown.superfish";f&&(h="pointerdown.superfish"),d||(h+=" touchend.superfish"),e&&(h+=" mousedown.superfish"),b.on("focusin.superfish","li",m).on("focusout.superfish","li",o).on(h,"a",c,p)};return{hide:function(b){if(this.length){var c=this,d=l(c);if(!d)return this;var e=d.retainPath===!0?d.$path:"",f=c.find("li."+d.hoverClass).add(this).not(e).removeClass(d.hoverClass).children(d.popUpSelector),g=d.speedOut;if(b&&(f.show(),g=0),d.retainPath=!1,d.onBeforeHide.call(f)===!1)return this;f.stop(!0,!0).animate(d.animationOut,g,function(){var b=a(this);d.onHide.call(b)})}return this},show:function(){var a=l(this);if(!a)return this;var b=this.addClass(a.hoverClass),c=b.children(a.popUpSelector);return a.onBeforeShow.call(c)===!1?this:(c.stop(!0,!0).animate(a.animation,a.speed,function(){a.onShow.call(c)}),this)},destroy:function(){return this.each(function(){var b,d=a(this),e=d.data("sfOptions");return e?(b=d.find(e.popUpSelector).parent("li"),clearTimeout(e.sfTimer),g(d,e),i(b),j(d),d.off(".superfish").off(".hoverIntent"),b.children(e.popUpSelector).attr("style",function(a,b){return b.replace(/display[^;]+;?/g,"")}),e.$path.removeClass(e.hoverClass+" "+c.bcClass).addClass(e.pathClass),d.find("."+e.hoverClass).removeClass(e.hoverClass),e.onDestroy.call(d),void d.removeData("sfOptions")):!1})},init:function(b){return this.each(function(){var d=a(this);if(d.data("sfOptions"))return!1;var e=a.extend({},a.fn.superfish.defaults,b),f=d.find(e.popUpSelector).parent("li");e.$path=h(d,e),d.data("sfOptions",e),g(d,e,!0),i(f,!0),j(d),q(d,e),f.not("."+c.bcClass).superfish("hide",!0),e.onInit.call(this)})}}}();a.fn.superfish=function(b,d){return c[b]?c[b].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof b&&b?a.error("Method "+b+" does not exist on jQuery.fn.superfish"):c.init.apply(this,arguments)},a.fn.superfish.defaults={popUpSelector:"ul,.sf-mega",hoverClass:"sfHover",pathClass:"overrideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},animationOut:{opacity:"hide"},speed:"normal",speedOut:"fast",cssArrows:!0,disableHI:!1,onInit:a.noop,onBeforeShow:a.noop,onShow:a.noop,onBeforeHide:a.noop,onHide:a.noop,onIdle:a.noop,onDestroy:a.noop,onHandleTouch:a.noop}}(jQuery,window); -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/carrentals-meta/carrentals-meta-config.php: -------------------------------------------------------------------------------- 1 | 34 |
    35 |

    36 | 37 |

    38 | ID ,'_carrentals_builderpage_header_show', true ); 40 | ?> 41 | 45 | 46 |
    47 |
    48 |

    49 | 50 |

    51 | ID ,'_carrentals_builderpage_headerimg', true ); 53 | ?> 54 | 58 | 59 |
    60 | post_type ) 76 | return $post_id; 77 | 78 | $meta_headershow = "show"; 79 | 80 | if( isset( $_POST["bpheadershow"] ) ) { 81 | $meta_headershow = $_POST["bpheadershow"]; 82 | } 83 | update_post_meta( absint( $post_id ), "_carrentals_builderpage_header_show", sanitize_text_field( $meta_headershow ) ); 84 | 85 | $meta_headerimg = ""; 86 | 87 | if( isset( $_POST["bpheaderimg"] ) ) { 88 | $meta_headerimg = $_POST["bpheaderimg"]; 89 | } 90 | update_post_meta( absint( $post_id ), "_carrentals_builderpage_headerimg", sanitize_text_field( $meta_headerimg ) ); 91 | 92 | } 93 | 94 | add_action( "save_post", "carrentals_save_builder_page_header_settings_meta", 10, 3 ); 95 | ?> -------------------------------------------------------------------------------- /assets/css/nice-select.css: -------------------------------------------------------------------------------- 1 | .nice-select { 2 | -webkit-tap-highlight-color: transparent; 3 | background-color: #fff; 4 | border-radius: 5px; 5 | border: solid 1px #e8e8e8; 6 | box-sizing: border-box; 7 | clear: both; 8 | cursor: pointer; 9 | display: block; 10 | float: left; 11 | font-family: inherit; 12 | font-size: 14px; 13 | font-weight: normal; 14 | height: 42px; 15 | line-height: 40px; 16 | outline: none; 17 | padding-left: 18px; 18 | padding-right: 30px; 19 | position: relative; 20 | text-align: left !important; 21 | -webkit-transition: all 0.2s ease-in-out; 22 | transition: all 0.2s ease-in-out; 23 | -webkit-user-select: none; 24 | -moz-user-select: none; 25 | -ms-user-select: none; 26 | user-select: none; 27 | white-space: nowrap; 28 | width: auto; } 29 | .nice-select:hover { 30 | border-color: #dbdbdb; } 31 | .nice-select:active, .nice-select.open, .nice-select:focus { 32 | border-color: #999; } 33 | .nice-select:after { 34 | border-bottom: 2px solid #999; 35 | border-right: 2px solid #999; 36 | content: ''; 37 | display: block; 38 | height: 5px; 39 | margin-top: -4px; 40 | pointer-events: none; 41 | position: absolute; 42 | right: 12px; 43 | top: 50%; 44 | -webkit-transform-origin: 66% 66%; 45 | -ms-transform-origin: 66% 66%; 46 | transform-origin: 66% 66%; 47 | -webkit-transform: rotate(45deg); 48 | -ms-transform: rotate(45deg); 49 | transform: rotate(45deg); 50 | -webkit-transition: all 0.15s ease-in-out; 51 | transition: all 0.15s ease-in-out; 52 | width: 5px; } 53 | .nice-select.open:after { 54 | -webkit-transform: rotate(-135deg); 55 | -ms-transform: rotate(-135deg); 56 | transform: rotate(-135deg); } 57 | .nice-select.open .list { 58 | opacity: 1; 59 | pointer-events: auto; 60 | -webkit-transform: scale(1) translateY(0); 61 | -ms-transform: scale(1) translateY(0); 62 | transform: scale(1) translateY(0); } 63 | .nice-select.disabled { 64 | border-color: #ededed; 65 | color: #999; 66 | pointer-events: none; } 67 | .nice-select.disabled:after { 68 | border-color: #cccccc; } 69 | .nice-select.wide { 70 | width: 100%; } 71 | .nice-select.wide .list { 72 | left: 0 !important; 73 | right: 0 !important; } 74 | .nice-select.right { 75 | float: right; } 76 | .nice-select.right .list { 77 | left: auto; 78 | right: 0; } 79 | .nice-select.small { 80 | font-size: 12px; 81 | height: 36px; 82 | line-height: 34px; } 83 | .nice-select.small:after { 84 | height: 4px; 85 | width: 4px; } 86 | .nice-select.small .option { 87 | line-height: 34px; 88 | min-height: 34px; } 89 | .nice-select .list { 90 | background-color: #fff; 91 | border-radius: 5px; 92 | box-shadow: 0 0 0 1px rgba(68, 68, 68, 0.11); 93 | box-sizing: border-box; 94 | margin-top: 4px; 95 | opacity: 0; 96 | overflow: hidden; 97 | padding: 0; 98 | pointer-events: none; 99 | position: absolute; 100 | top: 100%; 101 | left: 0; 102 | -webkit-transform-origin: 50% 0; 103 | -ms-transform-origin: 50% 0; 104 | transform-origin: 50% 0; 105 | -webkit-transform: scale(0.75) translateY(-21px); 106 | -ms-transform: scale(0.75) translateY(-21px); 107 | transform: scale(0.75) translateY(-21px); 108 | -webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out; 109 | transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out; 110 | z-index: 9; } 111 | .nice-select .list:hover .option:not(:hover) { 112 | background-color: transparent !important; } 113 | .nice-select .option { 114 | cursor: pointer; 115 | font-weight: 400; 116 | line-height: 40px; 117 | list-style: none; 118 | min-height: 40px; 119 | outline: none; 120 | padding-left: 18px; 121 | padding-right: 29px; 122 | text-align: left; 123 | -webkit-transition: all 0.2s; 124 | transition: all 0.2s; } 125 | .nice-select .option:hover, .nice-select .option.focus, .nice-select .option.selected.focus { 126 | background-color: #f6f6f6; } 127 | .nice-select .option.selected { 128 | font-weight: bold; } 129 | .nice-select .option.disabled { 130 | background-color: transparent; 131 | color: #999; 132 | cursor: default; } 133 | 134 | .no-csspointerevents .nice-select .list { 135 | display: none; } 136 | 137 | .no-csspointerevents .nice-select.open .list { 138 | display: block; } 139 | -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/functions.php: -------------------------------------------------------------------------------- 1 | 26 |
    27 | 'post', 32 | 'posts_per_page' => esc_html( $postnumber ), 33 | ); 34 | 35 | $query = new WP_Query( $args ); 36 | 37 | if( $query->have_posts() ): 38 | while( $query->have_posts() ): 39 | $query->the_post(); 40 | ?> 41 |
    42 | 45 |
    46 | 'img-fluid' ) ); 48 | ?> 49 |
    50 | 53 |

    54 |

    55 | 56 |
    57 | 65 |
    66 |
    67 | 72 |
    73 | 80 |
    81 | 105 |
    106 | 117 |
    118 |
    119 | [text* am-name class:common-input class:mb-20 class:form-control placeholder "Enter your name"][email* am-email class:common-input class:mb-20 class:form-control placeholder "Enter email address"][text* am-subject class:common-input class:mb-20 class:form-control placeholder "Enter your subject"] 120 |
    121 |
    122 | [textarea* am-message class:common-textarea class:form-control placeholder "Messege"] 123 | 124 |
    125 |
    126 |
    '; 127 | 128 | return $template; 129 | 130 | } else { 131 | return $template; 132 | } 133 | } 134 | add_filter( 'wpcf7_default_template', 'carrentals_contact7_form_content', 10, 2 ); 135 | -------------------------------------------------------------------------------- /assets/js/main.js: -------------------------------------------------------------------------------- 1 | 2 | (function( $ ){ 3 | "use strict"; 4 | 5 | var window_width = $(window).width(), 6 | window_height = window.innerHeight, 7 | header_height = $(".default-header").height(), 8 | header_height_static = $(".site-header.static").outerHeight(), 9 | fitscreen = window_height - header_height; 10 | 11 | 12 | $(".fullscreen").css("height", window_height) 13 | $(".fitscreen").css("height", fitscreen); 14 | 15 | if(document.getElementById("default-select")){ 16 | $('select').niceSelect(); 17 | }; 18 | 19 | // Counter Js 20 | if(document.getElementById("facts-area")){ 21 | $('.counter').counterUp({ 22 | delay: 10, 23 | time: 1000 24 | }); 25 | }; 26 | 27 | 28 | 29 | 30 | // Initiate superfish on nav menu 31 | $('.nav-menu').superfish({ 32 | animation: { 33 | opacity: 'show' 34 | }, 35 | speed: 400 36 | }); 37 | 38 | 39 | // Mobile Navigation 40 | if ($('#nav-menu-container').length) { 41 | var $mobile_nav = $('#nav-menu-container').clone().prop({ 42 | id: 'mobile-nav' 43 | }); 44 | $mobile_nav.find('> ul').attr({ 45 | 'class': '', 46 | 'id': '' 47 | }); 48 | $('body').append($mobile_nav); 49 | $('body').prepend(''); 50 | $('body').append('
    '); 51 | $('#mobile-nav').find('.menu-has-children').prepend(''); 52 | 53 | $(document).on('click', '.menu-has-children i', function(e) { 54 | $(this).next().toggleClass('menu-item-active'); 55 | $(this).nextAll('ul').eq(0).slideToggle(); 56 | $(this).toggleClass("lnr-chevron-up lnr-chevron-down"); 57 | }); 58 | 59 | $(document).on('click', '#mobile-nav-toggle', function(e) { 60 | $('body').toggleClass('mobile-nav-active'); 61 | $('#mobile-nav-toggle i').toggleClass('lnr-cross lnr-menu'); 62 | $('#mobile-body-overly').toggle(); 63 | }); 64 | 65 | $(document).click(function(e) { 66 | var container = $("#mobile-nav, #mobile-nav-toggle"); 67 | if (!container.is(e.target) && container.has(e.target).length === 0) { 68 | if ($('body').hasClass('mobile-nav-active')) { 69 | $('body').removeClass('mobile-nav-active'); 70 | $('#mobile-nav-toggle i').toggleClass('lnr-cross lnr-menu'); 71 | $('#mobile-body-overly').fadeOut(); 72 | } 73 | } 74 | }); 75 | } else if ($("#mobile-nav, #mobile-nav-toggle").length) { 76 | $("#mobile-nav, #mobile-nav-toggle").hide(); 77 | } 78 | 79 | // Smooth scroll for the menu and links with .scrollto classes 80 | $('.nav-menu a, #mobile-nav a, .scrollto').on('click', function() { 81 | if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) { 82 | var target = $(this.hash); 83 | if (target.length) { 84 | var top_space = 0; 85 | 86 | if ($('#header').length) { 87 | top_space = $('#header').outerHeight(); 88 | 89 | if( ! $('#header').hasClass('header-fixed') ) { 90 | top_space = top_space; 91 | } 92 | } 93 | 94 | $('html, body').animate({ 95 | scrollTop: target.offset().top - top_space 96 | }, 1500, 'easeInOutExpo'); 97 | 98 | if ($(this).parents('.nav-menu').length) { 99 | $('.nav-menu .menu-active').removeClass('menu-active'); 100 | $(this).closest('li').addClass('menu-active'); 101 | } 102 | 103 | if ($('body').hasClass('mobile-nav-active')) { 104 | $('body').removeClass('mobile-nav-active'); 105 | $('#mobile-nav-toggle i').toggleClass('lnr-times lnr-bars'); 106 | $('#mobile-body-overly').fadeOut(); 107 | } 108 | return false; 109 | } 110 | } 111 | }); 112 | 113 | 114 | $(document).ready(function() { 115 | 116 | $('html, body').hide(); 117 | 118 | if (window.location.hash) { 119 | 120 | setTimeout(function() { 121 | 122 | $('html, body').scrollTop(0).show(); 123 | 124 | $('html, body').animate({ 125 | 126 | scrollTop: $(window.location.hash).offset().top-62 127 | 128 | }, 1000) 129 | 130 | }, 0); 131 | 132 | } 133 | 134 | else { 135 | 136 | $('html, body').show(); 137 | 138 | } 139 | 140 | }); 141 | 142 | 143 | // Header scroll class 144 | $(window).scroll(function() { 145 | if ($(this).scrollTop() > 100) { 146 | $('#header').addClass('header-scrolled'); 147 | } else { 148 | $('#header').removeClass('header-scrolled'); 149 | } 150 | }) 151 | 152 | })(jQuery); 153 | -------------------------------------------------------------------------------- /inc/support-functions.php: -------------------------------------------------------------------------------- 1 | '; 24 | $categories .= '
  • '; 25 | 26 | foreach( $cats as $cat ) { 27 | $categories .= '
  • ' .esc_html( $cat->name ) . '
  • '; 28 | } 29 | 30 | $categories .= ''; 31 | } 32 | 33 | return $categories; 34 | 35 | } 36 | 37 | // Post Tags 38 | function carrentals_post_tags() { 39 | 40 | $tags = get_the_tags(); 41 | 42 | $getTags = ''; 43 | 44 | if( $tags ) { 45 | $getTags .= '
  • '; 46 | foreach( $tags as $tag ){ 47 | $getTags .= '
  • ' . esc_html( $tag->name ) . '
  • '; 48 | } 49 | 50 | } 51 | 52 | return $getTags; 53 | 54 | } 55 | 56 | // carrentals comment template callback 57 | function carrentals_comment_callback( $comment, $args, $depth ) { 58 | 59 | if ( 'div' === $args['style'] ) { 60 | $tag = 'div'; 61 | $add_below = 'comment'; 62 | } else { 63 | $tag = 'li'; 64 | $add_below = 'div-comment'; 65 | } 66 | ?> 67 | < id="comment-"> 68 | 69 |
    70 | 71 |
    72 |
    73 |
    74 |
    75 | 76 |
    77 |
    78 |
    79 |
    %s ', 'carrentals' ), get_comment_author_link() ); ?>
    80 |

    81 | comment_approved == '0' ) : ?> 82 | 83 |
    84 | 85 |
    86 |
    87 | $add_below, 'depth' => 1, 'max_depth' => 5, 'reply_text' => 'Reply' ) ) ); ?> 88 |
    89 |
    90 | 91 |
    92 |
    93 | 94 |
    95 |
    96 | 97 |
    98 |
    99 |
    100 |
    101 |
    102 | 103 | 104 | 105 |
    106 | 107 | esc_html__( 'Add footer newsletter signup form.', 'carrentals' ), ) 28 | ); 29 | 30 | } 31 | 32 | // This is where the action happens 33 | public function widget( $args, $instance ) { 34 | 35 | $title = apply_filters( 'widget_title', $instance['title'] ); 36 | $actionurl = apply_filters( 'widget_actionurl', $instance['actionurl'] ); 37 | $desc = apply_filters( 'widget_desc', $instance['desc'] ); 38 | 39 | // mc validation 40 | wp_enqueue_script( 'mc-validate'); 41 | 42 | // before and after widget arguments are defined by themes 43 | echo wp_kses_post( $args['before_widget'] ); 44 | if ( ! empty( $title ) ) 45 | echo wp_kses_post( $args['before_title'] . $title . $args['after_title'] ); 46 | 47 | 48 | if( $desc ){ 49 | echo '

    '.esc_html( $desc ).'

    '; 50 | } 51 | ?> 52 |
    53 |
    54 | 55 | 56 |
    57 | 58 |
    59 |
    60 |
    61 |
    62 | 63 | 94 |

    95 | 96 | 97 |

    98 | 99 |

    100 | 101 |

    Enter here your MailChimp action URL. How to

    102 | 103 | 104 |

    105 |

    106 | 107 | 108 |

    109 | 110 | start_controls_section( 52 | 'counter_content', 53 | [ 54 | 'label' => __( 'Counter', 'carrentals' ), 55 | ] 56 | ); 57 | $this->add_control( 58 | 'counter', [ 59 | 'label' => __( 'Create Counter', 'carrentals' ), 60 | 'type' => Controls_Manager::REPEATER, 61 | 'title_field' => '{{{ label }}}', 62 | 'fields' => [ 63 | [ 64 | 'name' => 'label', 65 | 'label' => __( 'Title', 'carrentals' ), 66 | 'type' => Controls_Manager::TEXT, 67 | 'label_block' => true, 68 | 'default' => 'Projects Completed' 69 | ], 70 | [ 71 | 'name' => 'number', 72 | 'label' => __( 'Number', 'carrentals' ), 73 | 'type' => Controls_Manager::TEXT, 74 | 'default' => '2536' 75 | ] 76 | ], 77 | ] 78 | ); 79 | 80 | $this->end_controls_section(); // End content 81 | 82 | //------------------------------ Style counter ------------------------------ 83 | $this->start_controls_section( 84 | 'style_counter', [ 85 | 'label' => __( 'Style Counter', 'carrentals' ), 86 | 'tab' => Controls_Manager::TAB_STYLE, 87 | ] 88 | ); 89 | $this->add_control( 90 | 'color_countertitle', [ 91 | 'label' => __( 'Title Color', 'carrentals' ), 92 | 'type' => Controls_Manager::COLOR, 93 | 'selectors' => [ 94 | '{{WRAPPER}} .single-fact h1' => 'color: {{VALUE}};', 95 | ], 96 | ] 97 | ); 98 | $this->add_control( 99 | 'color_number', [ 100 | 'label' => __( 'Number Color', 'carrentals' ), 101 | 'type' => Controls_Manager::COLOR, 102 | 'selectors' => [ 103 | '{{WRAPPER}} .single-fact p' => 'color: {{VALUE}};', 104 | ], 105 | ] 106 | ); 107 | $this->add_control( 108 | 'color_bg', [ 109 | 'label' => __( 'Background Color', 'carrentals' ), 110 | 'type' => Controls_Manager::COLOR, 111 | 'default' => '#fab700', 112 | 'selectors' => [ 113 | '{{WRAPPER}} .facts-area' => 'background-color: {{VALUE}};', 114 | ], 115 | ] 116 | ); 117 | 118 | $this->end_controls_section(); 119 | } 120 | 121 | protected function render() { 122 | 123 | $settings = $this->get_settings(); 124 | 125 | 126 | ?> 127 |
    128 |
    129 |
    130 | 0 ): 132 | foreach( $settings['counter'] as $val ): 133 | ?> 134 |
    135 | 'h1', 140 | 'class' => 'counter', 141 | 'text' => absint( $val['number'] ) 142 | ) 143 | ); 144 | } 145 | // 146 | if( ! empty( $val['label'] ) ) { 147 | echo carrentals_paragraph_tag( 148 | array( 149 | 'text' => esc_html( $val['label'] ) 150 | ) 151 | ); 152 | } 153 | ?> 154 |
    155 | 159 |
    160 |
    161 |
    162 | 163 | 164 | start_controls_section( 48 | 'sh_content', 49 | [ 50 | 'label' => __( 'Section Heading', 'carrentals' ), 51 | ] 52 | ); 53 | $this->add_control( 54 | 'sh_sectiontitle', 55 | [ 56 | 'label' => esc_html__( 'Title', 'carrentals' ), 57 | 'label_block' => true, 58 | 'type' => Controls_Manager::TEXT, 59 | ] 60 | ); 61 | $this->add_control( 62 | 'sh_sectionsubtitle', 63 | [ 64 | 'label' => esc_html__( 'Sub Title', 'carrentals' ), 65 | 'label_block' => true, 66 | 'type' => Controls_Manager::TEXT, 67 | ] 68 | ); 69 | 70 | 71 | $this->end_controls_section(); // End few words content 72 | 73 | 74 | //------------------------------ Style Section ------------------------------ 75 | $this->start_controls_section( 76 | 'style_section', [ 77 | 'label' => __( 'Style Section', 'carrentals' ), 78 | 'tab' => Controls_Manager::TAB_STYLE, 79 | ] 80 | ); 81 | $this->add_control( 82 | 'color_secttitle', [ 83 | 'label' => __( 'Section Title Color', 'carrentals' ), 84 | 'type' => Controls_Manager::COLOR, 85 | 'default' => '#333333', 86 | 'selectors' => [ 87 | '{{WRAPPER}} .product-area-title .h1' => 'color: {{VALUE}};', 88 | ], 89 | ] 90 | ); 91 | $this->add_group_control( 92 | Group_Control_Typography::get_type(), [ 93 | 'name' => 'typography_secttitle', 94 | 'selector' => '{{WRAPPER}} .product-area-title .h1', 95 | ] 96 | ); 97 | $this->add_group_control( 98 | Group_Control_Text_Shadow::get_type(), [ 99 | 'name' => 'text_shadow_secttitle', 100 | 'selector' => '{{WRAPPER}} .product-area-title .h1', 101 | ] 102 | ); 103 | 104 | $this->add_control( 105 | 'color_sectsubtitle', [ 106 | 'label' => __( 'Section Sub Title Color', 'carrentals' ), 107 | 'type' => Controls_Manager::COLOR, 108 | 'default' => '#777', 109 | 'selectors' => [ 110 | '{{WRAPPER}} .product-area-title p' => 'color: {{VALUE}};', 111 | ], 112 | ] 113 | ); 114 | $this->add_group_control( 115 | Group_Control_Typography::get_type(), [ 116 | 'name' => 'typography_sectsubtitle', 117 | 'selector' => '{{WRAPPER}} .product-area-title p', 118 | ] 119 | ); 120 | $this->add_group_control( 121 | Group_Control_Text_Shadow::get_type(), [ 122 | 'name' => 'text_shadow_sectsubtitle', 123 | 'selector' => '{{WRAPPER}} .product-area-title p', 124 | ] 125 | ); 126 | $this->end_controls_section(); 127 | 128 | 129 | 130 | 131 | } 132 | 133 | protected function render() { 134 | 135 | $settings = $this->get_settings(); 136 | 137 | if( !empty( $settings['sh_sectiontitle'] ) || !empty( $settings['sh_sectionsubtitle'] ) ): 138 | ?> 139 | 140 |
    141 |
    142 | 'h1', 148 | 'text' => esc_html( $settings['sh_sectiontitle'] ), 149 | 'class' => 'mb-10' 150 | ) 151 | ); 152 | } 153 | // Sub Title 154 | if( !empty( $settings['sh_sectionsubtitle'] ) ){ 155 | echo carrentals_paragraph_tag( 156 | array( 157 | 'text' => esc_html( $settings['sh_sectionsubtitle'] ), 158 | ) 159 | ); 160 | } 161 | ?> 162 |
    163 |
    164 | access_token = carrentals_opt( 'carrentals_igaccess_token' ); 43 | } 44 | 45 | /** 46 | * @param $screen_name string Instagram username 47 | * @param $image_limit int Number of images to retrieve 48 | * @param $image_width int Desired image width to retrieve 49 | * 50 | * @return array|bool Array of tweets or false if method fails 51 | */ 52 | public function get_items( $image_limit, $image_width ) { 53 | 54 | $transient = 'zoom_instagram_is_configured'; 55 | 56 | $response = wp_remote_get( sprintf( 'https://api.instagram.com/v1/users/self/media/recent/?access_token=%s&count=%s', $this->access_token, $image_limit ) ); 57 | 58 | 59 | if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) { 60 | set_transient( $transient, false, MINUTE_IN_SECONDS ); 61 | 62 | return false; 63 | } 64 | 65 | $data = json_decode( wp_remote_retrieve_body( $response ) ); 66 | 67 | $result = array(); 68 | $username = ''; 69 | 70 | foreach ( $data->data as $item ) { 71 | 72 | if(empty($username)){ 73 | $username = $item->user->username; 74 | } 75 | 76 | $result[] = array( 77 | 'link' => $item->link, 78 | 'image-url' => $item->images->{ $this->get_best_size( $image_width ) }->url, 79 | 'likes' => $item->likes->count, 80 | 'comments' => $item->comments->count, 81 | 'location' => !empty( $item->location->name ) ? $item->location->name : '' 82 | ); 83 | } 84 | 85 | $result = array('items' => $result, 'username'=> $username ); 86 | set_transient( $transient, $result, 30 * MINUTE_IN_SECONDS ); 87 | 88 | return $result; 89 | } 90 | 91 | /** 92 | * @param $screen_name string Instagram username 93 | * 94 | * @return bool|int Instagram user id or false on error 95 | */ 96 | protected function get_user_id( $screen_name ) { 97 | $user_id_option = 'zoom_instagram_uid_' . $screen_name; 98 | 99 | if ( false !== ( $user_id = get_option( $user_id_option ) ) ) { 100 | return $user_id; 101 | } 102 | 103 | $response = wp_remote_get( sprintf( 'https://api.instagram.com/v1/users/search?q=%s&access_token=%s', $screen_name, $this->access_token ) ); 104 | 105 | if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) { 106 | return false; 107 | } 108 | 109 | $result = json_decode( wp_remote_retrieve_body( $response ) ); 110 | 111 | if ( ! isset( $result->data ) ) { 112 | return false; 113 | } 114 | 115 | $user_id = false; 116 | 117 | foreach ( $result->data as $user ) { 118 | if ( $user->username === $screen_name ) { 119 | $user_id = $user->id; 120 | 121 | break; 122 | } 123 | } 124 | 125 | update_option( $user_id_option, $user_id ); 126 | 127 | return $user_id; 128 | } 129 | 130 | /** 131 | * @param $desired_width int Desired image width in pixels 132 | * 133 | * @return string Image size for Instagram API 134 | */ 135 | protected function get_best_size( $desired_width ) { 136 | $size = 'thumbnail'; 137 | $sizes = array( 138 | 'thumbnail' => 137, 139 | 'low_resolution' => 150, 140 | 'standard_resolution' => 640 141 | ); 142 | 143 | $diff = PHP_INT_MAX; 144 | 145 | foreach ( $sizes as $key => $value ) { 146 | if ( abs( $desired_width - $value ) < $diff ) { 147 | $size = $key; 148 | $diff = abs( $desired_width - $value ); 149 | } 150 | } 151 | 152 | return $size; 153 | } 154 | 155 | /** 156 | * Check if given access token is valid for Instagram Api. 157 | */ 158 | public static function is_access_token_valid( $access_token ) { 159 | $response = wp_remote_get( sprintf( 'https://api.instagram.com/v1/users/self/?access_token=%s', $access_token ) ); 160 | 161 | if ( is_wp_error( $response ) ) { 162 | return $response; 163 | } 164 | 165 | if ( 200 != wp_remote_retrieve_response_code( $response ) ) { 166 | return false; 167 | } 168 | 169 | return true; 170 | } 171 | 172 | public function is_configured() { 173 | $transient = 'zoom_instagram_is_configured'; 174 | 175 | if ( false !== ( $result = get_transient( $transient ) ) ) { 176 | if ( 'yes' === $result ) { 177 | return true; 178 | } 179 | 180 | if ( 'no' === $result ) { 181 | return false; 182 | } 183 | } 184 | 185 | $condition = $this->is_access_token_valid( $this->access_token ); 186 | 187 | if ( true === $condition ) { 188 | set_transient( $transient, 'yes', DAY_IN_SECONDS ); 189 | 190 | return true; 191 | } 192 | 193 | set_transient( $transient, 'no', DAY_IN_SECONDS ); 194 | 195 | return false; 196 | } 197 | 198 | public static function reset_cache() { 199 | delete_transient( 'zoom_instagram_is_configured' ); 200 | } 201 | 202 | public function get_access_token() { 203 | return $this->access_token; 204 | } 205 | 206 | public function set_access_token( $access_token ) { 207 | $this->access_token = $access_token; 208 | } 209 | } 210 | -------------------------------------------------------------------------------- /assets/js/jquery.sticky.js: -------------------------------------------------------------------------------- 1 | // Sticky Plugin v1.0.0 for jQuery 2 | // ============= 3 | // Author: Anthony Garand 4 | // Improvements by German M. Bravo (Kronuz) and Ruud Kamphuis (ruudk) 5 | // Improvements by Leonardo C. Daronco (daronco) 6 | // Created: 2/14/2011 7 | // Date: 2/12/2012 8 | // Website: http://labs.anthonygarand.com/sticky 9 | // Description: Makes an element on the page stick on the screen as you scroll 10 | // It will only set the 'top' and 'position' of your element, you 11 | // might need to adjust the width in some cases. 12 | 13 | (function($) { 14 | var defaults = { 15 | topSpacing: 0, 16 | bottomSpacing: 0, 17 | className: 'is-sticky', 18 | wrapperClassName: 'sticky-wrapper', 19 | center: false, 20 | getWidthFrom: '', 21 | responsiveWidth: false 22 | }, 23 | $window = $(window), 24 | $document = $(document), 25 | sticked = [], 26 | windowHeight = $window.height(), 27 | scroller = function() { 28 | var scrollTop = $window.scrollTop(), 29 | documentHeight = $document.height(), 30 | dwh = documentHeight - windowHeight, 31 | extra = (scrollTop > dwh) ? dwh - scrollTop : 0; 32 | 33 | for (var i = 0; i < sticked.length; i++) { 34 | var s = sticked[i], 35 | elementTop = s.stickyWrapper.offset().top, 36 | etse = elementTop - s.topSpacing - extra; 37 | 38 | if (scrollTop <= etse) { 39 | if (s.currentTop !== null) { 40 | s.stickyElement 41 | .css('width', '') 42 | .css('position', '') 43 | .css('top', ''); 44 | s.stickyElement.trigger('sticky-end', [s]).parent().removeClass(s.className); 45 | s.currentTop = null; 46 | } 47 | } 48 | else { 49 | var newTop = documentHeight - s.stickyElement.outerHeight() 50 | - s.topSpacing - s.bottomSpacing - scrollTop - extra; 51 | if (newTop < 0) { 52 | newTop = newTop + s.topSpacing; 53 | } else { 54 | newTop = s.topSpacing; 55 | } 56 | if (s.currentTop != newTop) { 57 | s.stickyElement 58 | .css('width', s.stickyElement.width()) 59 | .css('position', 'fixed') 60 | .css('top', newTop); 61 | 62 | if (typeof s.getWidthFrom !== 'undefined') { 63 | s.stickyElement.css('width', $(s.getWidthFrom).width()); 64 | } 65 | 66 | s.stickyElement.trigger('sticky-start', [s]).parent().addClass(s.className); 67 | s.currentTop = newTop; 68 | } 69 | } 70 | } 71 | }, 72 | resizer = function() { 73 | windowHeight = $window.height(); 74 | 75 | for (var i = 0; i < sticked.length; i++) { 76 | var s = sticked[i]; 77 | if (typeof s.getWidthFrom !== 'undefined' && s.responsiveWidth === true) { 78 | s.stickyElement.css('width', $(s.getWidthFrom).width()); 79 | } 80 | } 81 | }, 82 | methods = { 83 | init: function(options) { 84 | var o = $.extend({}, defaults, options); 85 | return this.each(function() { 86 | var stickyElement = $(this); 87 | 88 | var stickyId = stickyElement.attr('id'); 89 | var wrapperId = stickyId ? stickyId + '-' + defaults.wrapperClassName : defaults.wrapperClassName 90 | var wrapper = $('
    ') 91 | .attr('id', stickyId + '-sticky-wrapper') 92 | .addClass(o.wrapperClassName); 93 | stickyElement.wrapAll(wrapper); 94 | 95 | if (o.center) { 96 | stickyElement.parent().css({width:stickyElement.outerWidth(),marginLeft:"auto",marginRight:"auto"}); 97 | } 98 | 99 | if (stickyElement.css("float") == "right") { 100 | stickyElement.css({"float":"none"}).parent().css({"float":"right"}); 101 | } 102 | 103 | var stickyWrapper = stickyElement.parent(); 104 | stickyWrapper.css('height', stickyElement.outerHeight()); 105 | sticked.push({ 106 | topSpacing: o.topSpacing, 107 | bottomSpacing: o.bottomSpacing, 108 | stickyElement: stickyElement, 109 | currentTop: null, 110 | stickyWrapper: stickyWrapper, 111 | className: o.className, 112 | getWidthFrom: o.getWidthFrom, 113 | responsiveWidth: o.responsiveWidth 114 | }); 115 | }); 116 | }, 117 | update: scroller, 118 | unstick: function(options) { 119 | return this.each(function() { 120 | var unstickyElement = $(this); 121 | 122 | var removeIdx = -1; 123 | for (var i = 0; i < sticked.length; i++) 124 | { 125 | if (sticked[i].stickyElement.get(0) == unstickyElement.get(0)) 126 | { 127 | removeIdx = i; 128 | } 129 | } 130 | if(removeIdx != -1) 131 | { 132 | sticked.splice(removeIdx,1); 133 | unstickyElement.unwrap(); 134 | unstickyElement.removeAttr('style'); 135 | } 136 | }); 137 | } 138 | }; 139 | 140 | // should be more efficient than using $window.scroll(scroller) and $window.resize(resizer): 141 | if (window.addEventListener) { 142 | window.addEventListener('scroll', scroller, false); 143 | window.addEventListener('resize', resizer, false); 144 | } else if (window.attachEvent) { 145 | window.attachEvent('onscroll', scroller); 146 | window.attachEvent('onresize', resizer); 147 | } 148 | 149 | $.fn.sticky = function(method) { 150 | if (methods[method]) { 151 | return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); 152 | } else if (typeof method === 'object' || !method ) { 153 | return methods.init.apply( this, arguments ); 154 | } else { 155 | $.error('Method ' + method + ' does not exist on jQuery.sticky'); 156 | } 157 | }; 158 | 159 | $.fn.unstick = function(method) { 160 | if (methods[method]) { 161 | return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); 162 | } else if (typeof method === 'object' || !method ) { 163 | return methods.unstick.apply( this, arguments ); 164 | } else { 165 | $.error('Method ' + method + ' does not exist on jQuery.sticky'); 166 | } 167 | 168 | }; 169 | $(function() { 170 | setTimeout(scroller, 0); 171 | }); 172 | })(jQuery); 173 | -------------------------------------------------------------------------------- /inc/class-epsilon-init-dashboard.php: -------------------------------------------------------------------------------- 1 | theme = $theme; 33 | 34 | $theme = wp_get_theme(); 35 | $arr = array( 36 | 'theme-name' => $theme->get( 'Name' ), 37 | 'theme-slug' => $theme->get( 'TextDomain' ), 38 | 'theme-version' => $theme->get( 'Version' ), 39 | ); 40 | 41 | $this->theme = wp_parse_args( $this->theme, $arr ); 42 | /** 43 | * If PHP Version is older than 5.3, we switch back to default theme 44 | */ 45 | add_action( 'admin_init', array( $this, 'php_version_check' ) ); 46 | 47 | /** 48 | * Add a notice for the MachoThemes feedback 49 | */ 50 | add_action( 'admin_init', array( $this, 'add_feedback_notice' ) ); 51 | 52 | /** 53 | * Init epsilon dashboard 54 | */ 55 | add_filter( 'epsilon-dashboard-setup', array( $this, 'epsilon_dashboard' ) ); 56 | 57 | add_filter( 'epsilon-onboarding-setup', array( $this, 'epsilon_onboarding' ) ); 58 | 59 | /** 60 | * Grab all class methods and initiate automatically 61 | */ 62 | $methods = get_class_methods( 'Epsilon_init_Dashboard' ); 63 | foreach ( $methods as $method ) { 64 | 65 | 66 | if ( false !== strpos( $method, 'init_' ) ) { 67 | $this->$method(); 68 | } 69 | } 70 | } 71 | 72 | /** 73 | * instance 74 | * 75 | * @param array $theme 76 | * 77 | * @return object 78 | */ 79 | public static function get_instance( $theme = array() ) { 80 | static $inst; 81 | if ( ! $inst ) { 82 | $inst = new Epsilon_init_Dashboard( $theme ); 83 | } 84 | 85 | return $inst; 86 | } 87 | 88 | /** 89 | * Check PHP Version and switch theme 90 | */ 91 | public function php_version_check() { 92 | if ( version_compare( PHP_VERSION, '5.3.0' ) >= 0 ) { 93 | return true; 94 | } 95 | 96 | switch_theme( WP_DEFAULT_THEME ); 97 | 98 | return false; 99 | } 100 | 101 | /** 102 | * Adds a feedback notice if conditions are met 103 | */ 104 | public function add_feedback_notice() { 105 | if ( get_user_meta( get_current_user_id(), 'notification_feedback', true ) ) { 106 | return; 107 | } 108 | 109 | $page_on_front = 'page' == get_option( 'show_on_front' ) ? true : false; 110 | $id = absint( get_option( 'page_on_front', 0 ) ); 111 | 112 | if ( $page_on_front && 0 !== $id ) { 113 | $revisions = wp_get_post_revisions( $id ); 114 | 115 | if ( count( $revisions ) > 3 ) { 116 | /** 117 | * Revision keys are ID's, and it's not incremental 118 | */ 119 | $first = end( $revisions ); 120 | 121 | $revision_time = new DateTime( $first->post_modified ); 122 | $today = new DateTime( 'today' ); 123 | $interval = $today->diff( $revision_time )->format( '%d' ); 124 | 125 | if ( 2 <= absint( $interval ) ) { 126 | $this->_notify_feedback(); 127 | } 128 | } 129 | } 130 | } 131 | 132 | /** 133 | * Notify of feedback 134 | */ 135 | private function _notify_feedback() { 136 | if ( ! class_exists( 'Epsilon_Notifications' ) ) { 137 | return; 138 | } 139 | $html = '

    '; 140 | $html .= 141 | vsprintf( 142 | // Translators: 1 is Theme Name, 2 is opening Anchor, 3 is closing. 143 | __( 'We\'ve been working hard on making %1$s the best one out there. We\'re interested in hearing your thoughts about %1$s and what we could do to make it even better. %2$sSend your feedback our way%3$s.', 'carrentals' ), 144 | array( 145 | 'carrentals', 146 | '', 147 | '', 148 | ) 149 | ); 150 | 151 | $notifications = Epsilon_Notifications::get_instance(); 152 | $notifications->add_notice( 153 | array( 154 | 'id' => 'mosh_notification_feedback', 155 | 'type' => 'notice epsilon-big', 156 | 'message' => $html, 157 | ) 158 | ); 159 | } 160 | 161 | /** 162 | * 163 | */ 164 | public function init_nav_menus() { 165 | new Epsilon_Section_Navigation_Menu( 'mosh_frontpage_sections_' ); 166 | } 167 | 168 | /** 169 | * Initiate the welcome screen 170 | */ 171 | public function init_dashboard() { 172 | Epsilon_Dashboard::get_instance( 173 | array( 174 | 'theme' => array( 175 | 'download-id' => '212499' 176 | ), 177 | 'tracking' => $this->theme['theme-slug'] . '_tracking_enable', 178 | ) 179 | ); 180 | 181 | $dashboard = Epsilon_Dashboard_Setup::get_instance(); 182 | $dashboard->add_admin_notice(); 183 | 184 | $upsells = get_option( $this->theme['theme-slug'] . '_theme_upsells', false ); 185 | if ( $upsells ) { 186 | add_filter( 'epsilon_upsell_control_display', '__return_false' ); 187 | } 188 | } 189 | 190 | /** 191 | * Separate setup from init 192 | * 193 | * @param array $setup 194 | * 195 | * @return array 196 | */ 197 | public function epsilon_dashboard( $setup = array() ) { 198 | $dashboard = new Epsilon_Dashboard_Setup(); 199 | 200 | $setup['actions'] = $dashboard->get_actions(); 201 | $setup['tabs'] = $dashboard->get_tabs( $setup ); 202 | $setup['plugins'] = $dashboard->get_plugins(); 203 | $setup['privacy'] = $dashboard->get_privacy_options(); 204 | 205 | $setup['edd'] = $dashboard->get_edd( $setup ); 206 | 207 | $tab = get_user_meta( get_current_user_id(), 'epsilon_active_tab', true ); 208 | 209 | $setup['activeTab'] = ! empty( $tab ) ? absint( $tab ) : 0; 210 | 211 | return $setup; 212 | } 213 | 214 | /** 215 | * Add steps to onboarding 216 | * 217 | * @param array $setup 218 | * 219 | * @return array 220 | */ 221 | public function epsilon_onboarding( $setup = array() ) { 222 | $dashboard = new Epsilon_Dashboard_Setup(); 223 | 224 | $setup['steps'] = $dashboard->get_steps(); 225 | $setup['plugins'] = $dashboard->get_plugins( true ); 226 | $setup['privacy'] = $dashboard->get_privacy_options(); 227 | 228 | return $setup; 229 | } 230 | 231 | 232 | } 233 | -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/sidebar-widgets/social-widget.php: -------------------------------------------------------------------------------- 1 | esc_html__( 'Add social content', 'carrentals' ), ) 31 | ); 32 | 33 | } 34 | 35 | // This is where the action happens 36 | public function widget( $args, $instance ) { 37 | 38 | $title = apply_filters( 'widget_title', $instance['title'] ); 39 | $textarea = apply_filters( 'widget_textarea', $instance['textarea'] ); 40 | $fburl = apply_filters( 'widget_fburl', $instance['fburl'] ); 41 | $twiturl = apply_filters( 'widget_twiturl', $instance['twiturl'] ); 42 | $dribbbleurl = apply_filters( 'widget_dribbbleurl', $instance['dribbbleurl'] ); 43 | $behanceurl = apply_filters( 'widget_behanceurl', $instance['behanceurl'] ); 44 | 45 | // before and after widget arguments are defined by themes 46 | echo wp_kses_post( $args['before_widget'] ); 47 | 48 | if ( ! empty( $title ) ) 49 | echo wp_kses_post( $args['before_title'] . $title . $args['after_title'] ); 50 | ?> 51 | 52 | '.wp_kses_post( $textarea).'

    '; 55 | } 56 | ?> 57 | 77 | 78 | 129 |

    130 | 131 | 132 |

    133 | 134 |

    135 | 136 | 137 |

    138 | 139 |

    140 | 141 | 142 |

    143 | 144 |

    145 | 146 | 147 |

    148 | 149 |

    150 | 151 | 152 |

    153 | 154 |

    155 | 156 | 157 |

    158 | 159 | '', 27 | 'breadcrumbs_classes' => esc_html( 'breadcrumb' ), 28 | 'home_title' => esc_html__( 'Home', 'carrentals' ) 29 | ); 30 | $args = apply_filters( 'carrentals_breadcrumbs_args', wp_parse_args( $args, $defaults ) ); 31 | 32 | $args_el = array(); 33 | 34 | if( $args['breadcrumbs_id'] ) { 35 | 36 | $args_el[] = 'id="'.esc_attr( $args['breadcrumbs_id'] ).'"'; 37 | } 38 | 39 | if( $args['breadcrumbs_classes'] ) { 40 | 41 | $args_el[] = 'class="'.esc_attr( $args['breadcrumbs_classes'] ).'"'; 42 | 43 | } 44 | 45 | /* 46 | * Begin Markup 47 | */ 48 | 49 | // Open the breadcrumbs 50 | $html = ''; 115 | $html = apply_filters( 'carrentals_breadcrumbs_filter', $html ); 116 | 117 | echo wp_kses_post( $html ); 118 | 119 | 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /inc/carrentals-companion/inc/elementor-widgets/widgets/blog.php: -------------------------------------------------------------------------------- 1 | start_controls_section( 49 | 'blog_content', 50 | [ 51 | 'label' => __( 'Blgo', 'carrentals' ), 52 | ] 53 | ); 54 | $this->add_control( 55 | 'blog_sectiontitle', 56 | [ 57 | 'label' => esc_html__( 'Section Title', 'carrentals' ), 58 | 'label_block' => true, 59 | 'type' => Controls_Manager::TEXT, 60 | ] 61 | ); 62 | $this->add_control( 63 | 'blog_sectionsubtitle', 64 | [ 65 | 'label' => esc_html__( 'Section Sub Title', 'carrentals' ), 66 | 'label_block' => true, 67 | 'type' => Controls_Manager::TEXT, 68 | ] 69 | ); 70 | $this->add_control( 71 | 'blog_limit', 72 | [ 73 | 'label' => esc_html__( 'Post Limit', 'carrentals' ), 74 | 'type' => Controls_Manager::TEXT, 75 | 'default' => 3 76 | ] 77 | ); 78 | 79 | $this->end_controls_section(); // End few words content 80 | 81 | //------------------------------ Style Section ------------------------------ 82 | $this->start_controls_section( 83 | 'style_section', [ 84 | 'label' => __( 'Style Section Heading', 'carrentals' ), 85 | 'tab' => Controls_Manager::TAB_STYLE, 86 | ] 87 | ); 88 | $this->add_control( 89 | 'color_secttitle', [ 90 | 'label' => __( 'Section Title Color', 'carrentals' ), 91 | 'type' => Controls_Manager::COLOR, 92 | 'default' => '#333333', 93 | 'selectors' => [ 94 | '{{WRAPPER}} .title h1' => 'color: {{VALUE}};', 95 | ], 96 | ] 97 | ); 98 | 99 | $this->add_control( 100 | 'color_sectsubtitle', [ 101 | 'label' => __( 'Section Sub Title Color', 'carrentals' ), 102 | 'type' => Controls_Manager::COLOR, 103 | 'default' => '#777', 104 | 'selectors' => [ 105 | '{{WRAPPER}} .title p' => 'color: {{VALUE}};', 106 | ], 107 | ] 108 | ); 109 | 110 | $this->end_controls_section(); 111 | 112 | //------------------------------ Style text ------------------------------ 113 | $this->start_controls_section( 114 | 'style_content', [ 115 | 'label' => __( 'Style Content', 'carrentals' ), 116 | 'tab' => Controls_Manager::TAB_STYLE, 117 | ] 118 | ); 119 | $this->add_control( 120 | 'color_blogtitle', [ 121 | 'label' => __( 'Blog Title Color', 'carrentals' ), 122 | 'type' => Controls_Manager::COLOR, 123 | 'default' => '#222', 124 | 'selectors' => [ 125 | '{{WRAPPER}} .single-blog h4' => 'color: {{VALUE}};', 126 | ], 127 | ] 128 | ); 129 | $this->add_control( 130 | 'color_blogtitlehov', [ 131 | 'label' => __( 'Blog Title Hover Color', 'carrentals' ), 132 | 'type' => Controls_Manager::COLOR, 133 | 'default' => '#222', 134 | 'selectors' => [ 135 | '{{WRAPPER}} .single-blog:hover h4' => 'color: {{VALUE}};', 136 | ], 137 | ] 138 | ); 139 | $this->add_control( 140 | 'color_blogtext', [ 141 | 'label' => __( 'Blog Text Color', 'carrentals' ), 142 | 'type' => Controls_Manager::COLOR, 143 | 'default' => '#777', 144 | 'selectors' => [ 145 | '{{WRAPPER}} .single-blog p' => 'color: {{VALUE}};', 146 | '{{WRAPPER}} .single-blog .meta-bottom p' => 'color: {{VALUE}};', 147 | ], 148 | ] 149 | ); 150 | $this->add_control( 151 | 'color_date', [ 152 | 'label' => __( 'Date Color', 'carrentals' ), 153 | 'type' => Controls_Manager::COLOR, 154 | 'default' => '#fff', 155 | 'selectors' => [ 156 | '{{WRAPPER}} .single-blog .date' => 'color: {{VALUE}};', 157 | ], 158 | ] 159 | ); 160 | $this->add_control( 161 | 'color_datebg', [ 162 | 'label' => __( 'Date Background Color', 'carrentals' ), 163 | 'type' => Controls_Manager::COLOR, 164 | 'default' => '#222', 165 | 'selectors' => [ 166 | '{{WRAPPER}} .single-blog .date' => 'background-color: {{VALUE}};', 167 | ], 168 | ] 169 | ); 170 | 171 | $this->end_controls_section(); 172 | 173 | } 174 | 175 | protected function render() { 176 | 177 | $settings = $this->get_settings(); 178 | 179 | ?> 180 |
    181 |
    182 | 189 |
    190 |
    191 | 192 |