├── assets ├── css │ ├── common.css │ ├── bakery_admin.css │ ├── nice-select.css │ └── owl.carousel.css ├── 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 └── js │ ├── bakery_admin.js │ ├── mail-script.js │ ├── easing.min.js │ ├── jquery.nice-select.min.js │ ├── jquery.circlechart.js │ ├── superfish.min.js │ ├── jquery.ajaxchimp.min.js │ └── hoverIntent.js ├── screenshot.png ├── languages └── .DS_Store ├── templates ├── .DS_Store ├── footer-bottom.php ├── content-page.php ├── pagination.php ├── footer-widgets.php ├── biography.php ├── header-bottom.php ├── content-none.php ├── 404.php ├── content-audio.php ├── content-video.php ├── content.php ├── header-nav.php └── content-single.php ├── inc ├── customizer │ ├── .DS_Store │ ├── js │ │ ├── .DS_Store │ │ └── customizer.js │ ├── fields │ │ └── sections.php │ └── customizer.php ├── bakery-companion │ ├── .DS_Store │ ├── inc │ │ ├── bakery-meta │ │ │ ├── assets │ │ │ │ ├── css │ │ │ │ │ └── bakery-meta.css │ │ │ │ ├── img │ │ │ │ │ ├── thumb_01.png │ │ │ │ │ ├── thumb_02.png │ │ │ │ │ └── thumb_03.png │ │ │ │ └── js │ │ │ │ │ └── bakery-meta.js │ │ │ └── bakery-meta-config.php │ │ ├── demo-data │ │ │ ├── screen-image.png │ │ │ ├── css │ │ │ │ └── demo-import.css │ │ │ ├── bakery-widgets-demo.json │ │ │ ├── bakery-customizer.dat │ │ │ └── demo-import.php │ │ ├── elementor-widgets │ │ │ ├── assets │ │ │ │ ├── css │ │ │ │ │ ├── elementor-edit.css │ │ │ │ │ ├── .DS_Store │ │ │ │ │ └── owl.carousel.css │ │ │ │ ├── .DS_Store │ │ │ │ ├── img │ │ │ │ │ ├── .DS_Store │ │ │ │ │ └── play-btn.png │ │ │ │ └── js │ │ │ │ │ ├── .DS_Store │ │ │ │ │ ├── bakery-companion-main.js │ │ │ │ │ ├── jquery.counterup.min.js │ │ │ │ │ ├── map-custom.js │ │ │ │ │ ├── jquery.ajaxchimp.min.js │ │ │ │ │ └── waypoints.min.js │ │ │ └── widgets │ │ │ │ ├── section-heading.php │ │ │ │ └── blog.php │ │ ├── social-share.php │ │ ├── sidebar-widgets │ │ │ ├── recent-post-thumb.php │ │ │ ├── newsletter-widget.php │ │ │ └── social-links.php │ │ └── functions.php │ ├── languages │ │ └── .DS_Store │ ├── bakery-init.php │ ├── js │ │ └── post-likes.js │ ├── css │ │ └── booking.css │ ├── readme.txt │ └── bakery-companion.php ├── class-epsilon-dashboard-autoloader.php ├── widgets-reg.php ├── libraries │ └── class-epsilon-init-notify-system.php ├── hooks │ └── hooks.php ├── classes │ └── Class-Enqueue.php ├── support-functions.php ├── class-epsilon-init-dashboard.php ├── category-meta.php └── breadcrumbs.php ├── .gitmodules ├── template-builder.php ├── 404.php ├── sidebar.php ├── footer.php ├── searchform.php ├── header.php ├── style.css ├── page.php ├── index.php ├── archive.php ├── single.php ├── search.php ├── readme.txt ├── functions.php └── comments.php /assets/css/common.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/screenshot.png -------------------------------------------------------------------------------- /languages/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/languages/.DS_Store -------------------------------------------------------------------------------- /templates/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/templates/.DS_Store -------------------------------------------------------------------------------- /inc/customizer/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/customizer/.DS_Store -------------------------------------------------------------------------------- /assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /inc/customizer/js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/customizer/js/.DS_Store -------------------------------------------------------------------------------- /inc/bakery-companion/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/bakery-companion/.DS_Store -------------------------------------------------------------------------------- /assets/fonts/Linearicons-Free.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/assets/fonts/Linearicons-Free.eot -------------------------------------------------------------------------------- /assets/fonts/Linearicons-Free.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/assets/fonts/Linearicons-Free.ttf -------------------------------------------------------------------------------- /assets/fonts/Linearicons-Free.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/assets/fonts/Linearicons-Free.woff -------------------------------------------------------------------------------- /inc/bakery-companion/inc/bakery-meta/assets/css/bakery-meta.css: -------------------------------------------------------------------------------- 1 | .bakery-admin-selectbox { 2 | width: 100%; 3 | } 4 | -------------------------------------------------------------------------------- /assets/fonts/Linearicons-Free.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/assets/fonts/Linearicons-Free.woff2 -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /inc/bakery-companion/languages/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/bakery-companion/languages/.DS_Store -------------------------------------------------------------------------------- /inc/bakery-companion/inc/demo-data/screen-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/bakery-companion/inc/demo-data/screen-image.png -------------------------------------------------------------------------------- /inc/bakery-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/bakery-companion/inc/elementor-widgets/assets/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/bakery-companion/inc/elementor-widgets/assets/.DS_Store -------------------------------------------------------------------------------- /inc/bakery-companion/inc/bakery-meta/assets/img/thumb_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/bakery-companion/inc/bakery-meta/assets/img/thumb_01.png -------------------------------------------------------------------------------- /inc/bakery-companion/inc/bakery-meta/assets/img/thumb_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/bakery-companion/inc/bakery-meta/assets/img/thumb_02.png -------------------------------------------------------------------------------- /inc/bakery-companion/inc/bakery-meta/assets/img/thumb_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/bakery-companion/inc/bakery-meta/assets/img/thumb_03.png -------------------------------------------------------------------------------- /inc/bakery-companion/inc/elementor-widgets/assets/css/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/bakery-companion/inc/elementor-widgets/assets/css/.DS_Store -------------------------------------------------------------------------------- /inc/bakery-companion/inc/elementor-widgets/assets/img/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/bakery-companion/inc/elementor-widgets/assets/img/.DS_Store -------------------------------------------------------------------------------- /inc/bakery-companion/inc/elementor-widgets/assets/js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/bakery-companion/inc/elementor-widgets/assets/js/.DS_Store -------------------------------------------------------------------------------- /inc/bakery-companion/inc/elementor-widgets/assets/img/play-btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ColorlibHQ/Bakery/master/inc/bakery-companion/inc/elementor-widgets/assets/img/play-btn.png -------------------------------------------------------------------------------- /inc/bakery-companion/inc/elementor-widgets/assets/js/bakery-companion-main.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | 'use strict'; 3 | 4 | // Mailchimp ajax 5 | $('#mc_embed_signup').find('form').ajaxChimp(); 6 | 7 | 8 | })(jQuery); -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /template-builder.php: -------------------------------------------------------------------------------- 1 |
'; 18 | dynamic_sidebar( 'bakery-post-sidebar' ); 19 | echo '
'; 20 | } -------------------------------------------------------------------------------- /footer.php: -------------------------------------------------------------------------------- 1 | 32 | 33 | -------------------------------------------------------------------------------- /templates/footer-bottom.php: -------------------------------------------------------------------------------- 1 | ', '', date( 'Y' ) ); 5 | 6 | ?> 7 | 8 | -------------------------------------------------------------------------------- /templates/content-page.php: -------------------------------------------------------------------------------- 1 | 15 |
> 16 | 29 |
-------------------------------------------------------------------------------- /searchform.php: -------------------------------------------------------------------------------- 1 | 15 |
16 |
17 | 18 | 19 |
20 |
-------------------------------------------------------------------------------- /header.php: -------------------------------------------------------------------------------- 1 | 2 | > 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | > 15 | 14 |
15 | 2, 20 | 'prev_text' => __( '', 'bakery' ), 21 | 'next_text' => __( '', 'bakery' ), 22 | 'screen_reader_text' => ' ' 23 | ) 24 | ); ?> 25 |
-------------------------------------------------------------------------------- /assets/css/bakery_admin.css: -------------------------------------------------------------------------------- 1 | .epsilon-dashboard-tab .row .col { 2 | background-color: #fff; 3 | min-width: 29% !important; 4 | margin-left: 6px; 5 | margin-right: 6px; 6 | padding: 12px; 7 | } 8 | .epsilon-dashboard-tab .standout { 9 | padding: 40px !important; 10 | } 11 | #epsilon-demo.epsilon-dashboard-tab .row .epsilon-demo-box.col, 12 | #epsilon-demos .row .epsilon-demo-box.col { 13 | background-color: transparent; 14 | min-width: 159px !important; 15 | width: 155px !important; 16 | } 17 | .epsilon-dashboard-container--tabs nav a.active { 18 | border-bottom-color: #0073aa; 19 | background-color: #222; 20 | color: #fff !important; 21 | } 22 | .epsilon-dashboard-container--tabs nav a { 23 | background-color: #fff; 24 | } 25 | .dashicons-admin-tools:before{ 26 | content: "\f102"; 27 | } -------------------------------------------------------------------------------- /templates/footer-widgets.php: -------------------------------------------------------------------------------- 1 |
2 |
3 |
'; 11 | } 12 | 13 | // Footer widget 2 14 | if( is_active_sidebar( 'footer-2' ) ) { 15 | echo '
'; 18 | } 19 | 20 | // Footer widget 3 21 | if( is_active_sidebar( 'footer-3' ) ) { 22 | echo '
'; 25 | } 26 | 27 | 28 | ?> 29 |
30 | -------------------------------------------------------------------------------- /templates/biography.php: -------------------------------------------------------------------------------- 1 | 16 |
17 | 25 | 26 |
27 | 30 | 31 |

32 |
33 |
-------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | /** 2 | Theme Name: Bakery 3 | Theme URI: http://colorlib.com/wp/bakery/ 4 | Author: Colorlib 5 | Author URI: http://colorlib.com/wp/ 6 | Description: Bakery 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: bakery 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 | -------------------------------------------------------------------------------- /inc/bakery-companion/bakery-init.php: -------------------------------------------------------------------------------- 1 | =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); -------------------------------------------------------------------------------- /templates/header-bottom.php: -------------------------------------------------------------------------------- 1 | 13 | 40 | -------------------------------------------------------------------------------- /inc/bakery-companion/inc/bakery-meta/assets/js/bakery-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); -------------------------------------------------------------------------------- /assets/js/mail-script.js: -------------------------------------------------------------------------------- 1 | // ------- Mail Send ajax 2 | 3 | $(document).ready(function() { 4 | var form = $('#myForm'); // contact form 5 | var submit = $('.submit-btn'); // submit button 6 | var alert = $('.alert-msg'); // alert div for show alert message 7 | 8 | // form submit event 9 | form.on('submit', function(e) { 10 | e.preventDefault(); // prevent default form submit 11 | 12 | $.ajax({ 13 | url: 'mail.php', // form action url 14 | type: 'POST', // form submit method get/post 15 | dataType: 'html', // request type html/json/xml 16 | data: form.serialize(), // serialize form data 17 | beforeSend: function() { 18 | alert.fadeOut(); 19 | submit.html('Sending....'); // change submit button text 20 | }, 21 | success: function(data) { 22 | alert.html(data).fadeIn(); // fade in response data 23 | form.trigger('reset'); // reset form 24 | submit.attr("style", "display: none !important");; // reset submit button text 25 | }, 26 | error: function(e) { 27 | console.log(e) 28 | } 29 | }); 30 | }); 31 | }); -------------------------------------------------------------------------------- /inc/bakery-companion/inc/demo-data/bakery-widgets-demo.json: -------------------------------------------------------------------------------- 1 | {"bakery-post-sidebar":{"search-2":{"title":""},"bakery_author_widget-2":{"title":"Charlie Barber","designation":"Senior blog writer","textarea":"Boot camps have its supporters andit sdetractors. Some people do not understand why you should have to spend money on boot camp when you can get. Boot camps have itssuppor ters andits detractors.","fburl":"#","twiturl":"#","dribbbleurl":"#","behanceurl":"#","image":"http:\/\/spondan.com\/bakery\/wp-content\/uploads\/2019\/01\/user-info.png"},"bakery_recent_widget-2":{"title":"Recent Post","post_number":"3"},"bakery_newsletter_widget-3":{"title":"Newsletter","actionurl":"#","desc":"Here, I focus on a range of items and features that we use in life without giving them a second thought."},"archives-2":{"title":"","count":0,"dropdown":0},"categories-2":{"title":"","count":0,"hierarchical":0,"dropdown":0},"tag_cloud-2":{"title":"Tag Clouds","count":0,"taxonomy":"post_tag"}},"footer-1":{"text-2":{"title":"About Us","text":"If you own an Iphone, you\u2019ve probably already worked out how much fun it is to use it to watch movies-it has that.","filter":true,"visual":true}},"footer-2":{"bakery_newsletter_widget-2":{"title":"Newsletter","actionurl":"#","desc":"Stay update with our latest"}},"footer-3":{"bakery_social_links_widget-2":{"title":"Social Links","desc":"Let us be social","facebook":"#","twitter":"#","dribbble":"#","behance":"#","linkedin":"#"}}} -------------------------------------------------------------------------------- /inc/bakery-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 bakery = 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 : 'bakery_process_simple_like', 21 | post_id : post_id, 22 | nonce : bakery, 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/content-none.php: -------------------------------------------------------------------------------- 1 | 15 |
16 |

17 | 18 | 19 | 20 |

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

21 | 22 | 23 | 24 |

25 | 39 | 40 | 41 | 42 |

43 | 44 | 45 | 46 |
47 | -------------------------------------------------------------------------------- /templates/404.php: -------------------------------------------------------------------------------- 1 | 15 | 16 |
17 |
18 |
19 |
20 |
21 |
22 | '.esc_html( bakery_opt( 'bakery_fof_text_one', $errorText ) ).''; 26 | 27 | // Wrong text block 28 | $wrongText = esc_html__( 'Either something went wrong or the page dosen\'t exist anymore.', 'bakery' ); 29 | 30 | $wrongText = bakery_opt( 'bakery_fof_text_two', $wrongText ); 31 | 32 | echo bakery_paragraph_tag( 33 | array( 34 | 'text' => sprintf( '%s', esc_html( $wrongText ) ), 35 | ) 36 | ); 37 | 38 | ?> 39 |
40 |
41 | 45 |
46 | 47 |
48 | esc_url( site_url( '/' ) ), 52 | 'text' => esc_html__( 'Back To Home page', 'bakery' ), 53 | 'class' => 'primary-btn mt-20' 54 | ) 55 | ); 56 | ?> 57 |
58 |
59 |
60 | 61 |
62 |
63 |
-------------------------------------------------------------------------------- /templates/content-audio.php: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 |
> 20 | 21 |
22 | 44 |
45 |
46 |
47 | 58 |
59 | 80 |
81 | 82 |
-------------------------------------------------------------------------------- /templates/content-video.php: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 |
> 20 | 21 |
22 | 44 |
45 |
46 |
47 | 58 |
59 | 80 |
81 | 82 |
-------------------------------------------------------------------------------- /inc/bakery-companion/inc/social-share.php: -------------------------------------------------------------------------------- 1 | '; 35 | $content .= $tagLine; 36 | $content .= '
  • '; 37 | $content .= '
  • '; 38 | $content .= '
  • '; 39 | $content .= '
  • '; 40 | $content .= ''; 41 | 42 | return $content; 43 | 44 | } 45 | -------------------------------------------------------------------------------- /inc/class-epsilon-dashboard-autoloader.php: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 |
    > 20 | 21 |
    22 | 32 | 33 |
    34 | 44 |
    45 |
    46 |
    47 |
    48 | 57 |
    58 | 79 |
    80 | 81 |
    -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | esc_html__( 'Sidebar', 'bakery' ), 20 | 'id' => 'bakery-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', 'bakery' ), 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', 'bakery' ), 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', 'bakery' ), 52 | 'id' => 'footer-3', 53 | 'before_widget' => '', 55 | 'before_title' => '
    ', 56 | 'after_title' => '
    ', 57 | ) 58 | ); 59 | 60 | 61 | } 62 | add_action( 'widgets_init', 'bakery_widgets_init' ); 63 | -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | === Bakery === 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 | Bakery 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. Bakery 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 | Bakery WordPress theme, Copyright (C) 2018 Colorlib.com 13 | Bakery 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 | 20 | Licenses: CCO Public Domain 21 | 22 | * Bootstrap v4.0.0 (http://getbootstrap.com) 23 | Copyright 2011-2018 Twitter, Inc. 24 | Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 25 | 26 | * Ionicons v2.0.0 ( http://ionicons.com/ ) 27 | Copyright (c) 2015-present 28 | Licensed under MIT ( https://github.com/ionic-team/ionicons/blob/master/LICENSE ) 29 | 30 | * Font Awesome 31 | License: SIL OFL 1.1 32 | URL: http://scripts.sil.org/OFL 33 | 34 | * Google Fonts: 35 | License: SIL OFL 1.1 36 | URL: http://scripts.sil.org/OFL 37 | 38 | * PopperJS ( https://github.com/FezVrasta/popper.js ) 39 | Copyright © 2016-2018 Federico Zivolo 40 | License: MIT 41 | URL: https://github.com/FezVrasta/popper.js/blob/master/LICENSE.md 42 | 43 | * Superfish jQuery Superfish Menu Plugin 44 | Copyright (c) 2016 Joel Birch 45 | License: MIT 46 | URL: http://www.opensource.org/licenses/mit-license.php 47 | 48 | 49 | * jQuery Nice Select - v1.0 50 | url: https://github.com/hernansartorio/jquery-nice-select 51 | License: MIT 52 | 53 | * Sticky js plugin 54 | License: MIT 55 | URL: https://github.com/garand/sticky/blob/master/LICENSE.md 56 | -------------------------------------------------------------------------------- /assets/js/easing.min.js: -------------------------------------------------------------------------------- 1 | !function(n){"function"==typeof define&&define.amd?define(["jquery"],function(e){return n(e)}):"object"==typeof module&&"object"==typeof module.exports?exports=n(require("jquery")):n(jQuery)}(function(n){function e(n){var e=7.5625,t=2.75;return n<1/t?e*n*n:n<2/t?e*(n-=1.5/t)*n+.75:n<2.5/t?e*(n-=2.25/t)*n+.9375:e*(n-=2.625/t)*n+.984375}void 0!==n.easing&&(n.easing.jswing=n.easing.swing);var t=Math.pow,u=Math.sqrt,r=Math.sin,i=Math.cos,a=Math.PI,c=1.70158,o=1.525*c,s=2*a/3,f=2*a/4.5;n.extend(n.easing,{def:"easeOutQuad",swing:function(e){return n.easing[n.easing.def](e)},easeInQuad:function(n){return n*n},easeOutQuad:function(n){return 1-(1-n)*(1-n)},easeInOutQuad:function(n){return n<.5?2*n*n:1-t(-2*n+2,2)/2},easeInCubic:function(n){return n*n*n},easeOutCubic:function(n){return 1-t(1-n,3)},easeInOutCubic:function(n){return n<.5?4*n*n*n:1-t(-2*n+2,3)/2},easeInQuart:function(n){return n*n*n*n},easeOutQuart:function(n){return 1-t(1-n,4)},easeInOutQuart:function(n){return n<.5?8*n*n*n*n:1-t(-2*n+2,4)/2},easeInQuint:function(n){return n*n*n*n*n},easeOutQuint:function(n){return 1-t(1-n,5)},easeInOutQuint:function(n){return n<.5?16*n*n*n*n*n:1-t(-2*n+2,5)/2},easeInSine:function(n){return 1-i(n*a/2)},easeOutSine:function(n){return r(n*a/2)},easeInOutSine:function(n){return-(i(a*n)-1)/2},easeInExpo:function(n){return 0===n?0:t(2,10*n-10)},easeOutExpo:function(n){return 1===n?1:1-t(2,-10*n)},easeInOutExpo:function(n){return 0===n?0:1===n?1:n<.5?t(2,20*n-10)/2:(2-t(2,-20*n+10))/2},easeInCirc:function(n){return 1-u(1-t(n,2))},easeOutCirc:function(n){return u(1-t(n-1,2))},easeInOutCirc:function(n){return n<.5?(1-u(1-t(2*n,2)))/2:(u(1-t(-2*n+2,2))+1)/2},easeInElastic:function(n){return 0===n?0:1===n?1:-t(2,10*n-10)*r((10*n-10.75)*s)},easeOutElastic:function(n){return 0===n?0:1===n?1:t(2,-10*n)*r((10*n-.75)*s)+1},easeInOutElastic:function(n){return 0===n?0:1===n?1:n<.5?-(t(2,20*n-10)*r((20*n-11.125)*f))/2:t(2,-20*n+10)*r((20*n-11.125)*f)/2+1},easeInBack:function(n){return(c+1)*n*n*n-c*n*n},easeOutBack:function(n){return 1+(c+1)*t(n-1,3)+c*t(n-1,2)},easeInOutBack:function(n){return n<.5?t(2*n,2)*(7.189819*n-o)/2:(t(2*n-2,2)*((o+1)*(2*n-2)+o)+2)/2},easeInBounce:function(n){return 1-e(1-n)},easeOutBounce:e,easeInOutBounce:function(n){return n<.5?(1-e(1-2*n))/2:(1+e(2*n-1))/2}})}); 2 | -------------------------------------------------------------------------------- /inc/bakery-companion/css/booking.css: -------------------------------------------------------------------------------- 1 | 2 | .voltbl-heading { 3 | 4 | } 5 | .voltbl-rows span, 6 | .voltbl-heading span { 7 | width: 33.3%; 8 | display: inline-block; 9 | } 10 | 11 | .text-center { 12 | text-align: center; 13 | } 14 | .booking-settings-nav { 15 | text-align: center; 16 | margin-top: 30px; 17 | } 18 | .tablist, 19 | .tabsettings { 20 | display: inline-block; 21 | border: 1px solid #1f1e1e; 22 | margin: 0px 6px; 23 | padding: 4px 12px; 24 | cursor: pointer; 25 | } 26 | .tablist:hover, 27 | .tabsettings:hover { 28 | background-color: #1f1e1e; 29 | color: #fff; 30 | } 31 | .tablist { 32 | 33 | } 34 | .tabsettings { 35 | 36 | } 37 | .booking-area { 38 | width: 50%; 39 | padding: 16px; 40 | background-color: #e9eff3; 41 | margin-left: 10px; 42 | margin-top: 20px; 43 | border: 8px solid #fff; 44 | margin: 26px auto 0; 45 | } 46 | .items { 47 | padding: 15px 0px; 48 | border-bottom: 1px solid #d6d1d1; 49 | } 50 | .item-content .control-label { 51 | margin-bottom: 11px; 52 | display: block; 53 | } 54 | .item-content, 55 | .repeater-remove-btn { 56 | display: inline-block; 57 | } 58 | .repeater-remove-btn { 59 | cursor: pointer; 60 | } 61 | .repeater-remove-btn .disabled { 62 | display: none; 63 | } 64 | .repeater-heading h5 { 65 | font-size: 18px; 66 | background-color: #0d7dbf; 67 | color: #fff; 68 | padding: 8px; 69 | border-radius: 2px; 70 | } 71 | .view-booking, 72 | .deletebooking, 73 | .booking-submit, 74 | .repeater-add-btn { 75 | background-color: #1291ea; 76 | padding: 8px 20px; 77 | color: #fff; 78 | border-radius: 2px; 79 | margin-bottom: 18px; 80 | display: inline-block; 81 | cursor: pointer; 82 | border: 0px; 83 | } 84 | .view-booking { 85 | padding: 2px 6px; 86 | border: 0px; 87 | } 88 | .deletebooking { 89 | margin-top: 20px; 90 | } 91 | .booking-submit { 92 | margin-top: 26px; 93 | } 94 | .modal-list li { 95 | padding: 10px; 96 | border-bottom: 1px solid #eee; 97 | margin: 0; 98 | text-align: right; 99 | } 100 | .modal-list li strong { 101 | float: left; 102 | } 103 | .close-btn { 104 | background-color: #e81515; 105 | display: inline-block; 106 | padding: 8px 8px; 107 | cursor: pointer; 108 | position: absolute; 109 | right: 23px; 110 | top: 20px; 111 | color: #fff; 112 | border-radius: 3px; 113 | } -------------------------------------------------------------------------------- /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', 'bakery' ), $plugin_name ); 56 | // Translators: %s is the plugin name. 57 | $arr['description'] = sprintf( __( 'Please install %s in order to create the demo content.', 'bakery' ), $plugin_name ); 58 | 59 | if ( $arr['installed'] ) { 60 | // Translators: %s is the plugin name 61 | $arr['title'] = sprintf( __( 'Activate: %s', 'bakery' ), $plugin_name ); 62 | // Translators: %s is the plugin name 63 | $arr['description'] = sprintf( __( 'Please activate %s in order to create the demo content.', 'bakery' ), $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 | -------------------------------------------------------------------------------- /templates/header-nav.php: -------------------------------------------------------------------------------- 1 | 2 | 62 | -------------------------------------------------------------------------------- /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); -------------------------------------------------------------------------------- /templates/content-single.php: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 |
    > 18 |
    19 | 20 |
    21 | 32 |
    33 | 34 | 36 | 37 |
    38 | 39 |
    40 | 51 | 52 |
    53 | 65 |
    66 |
    67 | 68 | '; 71 | 72 | /** 73 | * Blog post title 74 | * @Hook bakery_blog_posts_content 75 | * 76 | * @Hooked bakery_blog_posts_title_cb 77 | * 78 | * 79 | */ 80 | do_action( 'bakery_blog_posts_title' ); 81 | 82 | /** 83 | * Blog single page content 84 | * Post social share 85 | * @Hook bakery_blog_posts_content 86 | * 87 | * @Hooked bakery_blog_posts_content_cb 88 | * 89 | * 90 | */ 91 | do_action( 'bakery_blog_posts_content' ); 92 | 93 | 94 | echo '
    '; 95 | 96 | 97 | ?> 98 | 99 | -------------------------------------------------------------------------------- /inc/bakery-companion/inc/demo-data/demo-import.php: -------------------------------------------------------------------------------- 1 | '; 18 | 19 | return array( 20 | array( 21 | 'import_file_name' => 'Bakery Demo', 22 | 'local_import_file' => BAKERY_COMPANION_DEMO_DIR_PATH .'bakery-demo.xml', 23 | 'local_import_widget_file' => BAKERY_COMPANION_DEMO_DIR_PATH .'bakery-widgets-demo.json', 24 | 'import_customizer_file_url' => BAKERY_COMPANION_DEMO_DIR_URL .'bakery-customizer.dat', 25 | 'import_notice' => $demoImg, 26 | ), 27 | ); 28 | } 29 | add_filter( 'pt-ocdi/import_files', 'bakery_import_files' ); 30 | 31 | // demo import setup 32 | function bakery_after_import_setup() { 33 | // Assign menus to their locations. 34 | $main_menu = get_term_by( 'name', 'Primary Menu', 'nav_menu' ); 35 | $social_menu = get_term_by( 'name', 'Social Menu', 'nav_menu' ); 36 | 37 | set_theme_mod( 'nav_menu_locations', array( 38 | 'primary-menu' => $main_menu->term_id, 39 | 'social-menu' => $social_menu->term_id 40 | ) 41 | ); 42 | 43 | // Assign front page and posts page (blog page). 44 | $front_page_id = get_page_by_title( 'Home' ); 45 | $blog_page_id = get_page_by_title( 'Blog' ); 46 | 47 | update_option( 'show_on_front', 'page' ); 48 | update_option( 'page_on_front', $front_page_id->ID ); 49 | update_option( 'page_for_posts', $blog_page_id->ID ); 50 | update_option( 'bakery_demodata_import', 'yes' ); 51 | 52 | } 53 | add_action( 'pt-ocdi/after_import', 'bakery_after_import_setup' ); 54 | 55 | //disable the branding notice after successful demo import 56 | add_filter( 'pt-ocdi/disable_pt_branding', '__return_true' ); 57 | 58 | //change the location, title and other parameters of the plugin page 59 | function bakery_import_plugin_page_setup( $default_settings ) { 60 | $default_settings['parent_slug'] = 'themes.php'; 61 | $default_settings['page_title'] = esc_html__( 'One Click Demo Import' , 'bakery' ); 62 | $default_settings['menu_title'] = esc_html__( 'Import Demo Data' , 'bakery' ); 63 | $default_settings['capability'] = 'import'; 64 | $default_settings['menu_slug'] = 'bakery-demo-import'; 65 | 66 | return $default_settings; 67 | } 68 | add_filter( 'pt-ocdi/plugin_page_setup', 'bakery_import_plugin_page_setup' ); 69 | 70 | // Enqueue scripts 71 | function bakery_demo_import_custom_scripts(){ 72 | 73 | 74 | if( isset( $_GET['page'] ) && $_GET['page'] == 'bakery-demo-import' ){ 75 | // style 76 | wp_enqueue_style( 'bakery-demo-import', BAKERY_COMPANION_DEMO_DIR_URL .'css/demo-import.css', array(), '1.0', false ); 77 | } 78 | 79 | 80 | } 81 | add_action( 'admin_enqueue_scripts', 'bakery_demo_import_custom_scripts' ); 82 | 83 | 84 | 85 | ?> -------------------------------------------------------------------------------- /inc/bakery-companion/readme.txt: -------------------------------------------------------------------------------- 1 | === Bakery Companion === 2 | Contributors: colorlibplugins, silkalns 3 | Tags: widgets, plugin, demo, companion, home page, social, elementor, custom meta, Car Booking 4 | Requires at least: 3.8 5 | Tested up to: 4.9 6 | Stable tag: 1.0 7 | License: GPLv3 or later 8 | License URI: http://www.gnu.org/licenses/gpl-3.0.html 9 | 10 | Bakery Companion is a companion plugin for Bakery WordPress theme by Colorlib.com. 11 | 12 | == Description == 13 | 14 | Bakery Companion is a companion for Bakery WordPress theme by Colorlib.com. This plugin won't do anything for other free or premium WordPress themes and you need to download and install Bakery. If you are having problems with Bakery theme or its companion plugin the fastest way to receive help is via our theme support forum. 15 | 16 | This plugin will add necessary WordPress widgets, elementor widgets and allow to import demo content which will help you to with website setup. 17 | 18 | While Bakery is a great WordPress theme it might not be for everyone therefore you might want to check other free WordPress themes that are created by Colorlib. 19 | 20 | = Plugin Options = 21 | 22 | * Creates required WordPress widgets to be used in theme 23 | * Creates required Elementor widgets to be used in theme 24 | * Creates demo(dummy) content for widgets to make them easier to use and understand how they work 25 | * Provides an option to import demo(dummy) content. 26 | 27 | = About Colorlib = 28 | 29 | Colorlib is the best and by far the most popular source for free and premium WordPress themes. Our themes has been downloaded over 1,5 million times and are used by developers, webmasters and regular users all over the world. We believe in open source and that's why we have made our themes free to use for private and commercial use. 30 | 31 | = Further Reading = 32 | 33 | If you are new to WordPress but are dedicated to make a website on your own Colorlib is the right place to start. Usually the trickiest part is to choose the right hosting because all hosting providers are not equal. We have outlined the best WordPress hosting providers and we hope you'll find them useful. 34 | 35 | 36 | == Installation == 37 | 38 | This section describes how to install the plugin and get it working. 39 | 40 | 1. Upload the whole contents of the folder `bakery-companion` to the `/wp-content/plugins/` directory 41 | 2. Activate the plugin through the 'Plugins' menu in WordPress dashboard 42 | 3. Enjoy using it :) 43 | 44 | 45 | == Frequently Asked Questions == 46 | 47 | = What themes this plugin supports? = 48 | 49 | Currently it works only with Bakery theme. 50 | 51 | = Am I obligated to use it? = 52 | 53 | You can still use Bakery theme without this plugin but you won't be able to import demo content and use theme specific widgets that you see on front page of theme demo. 54 | -------------------------------------------------------------------------------- /inc/customizer/fields/sections.php: -------------------------------------------------------------------------------- 1 | 'bakery_options_panel', 25 | 'args' => array( 26 | 'priority' => 0, 27 | 'capability' => 'edit_theme_options', 28 | 'theme_supports' => '', 29 | 'title' => esc_html__( 'Theme Options', 'bakery' ), 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' => 'bakery_general_options_section', 46 | 'args' => array( 47 | 'title' => esc_html__( 'General', 'bakery' ), 48 | 'panel' => 'bakery_options_panel', 49 | 'priority' => 1, 50 | ), 51 | ), 52 | /** 53 | * Header Section 54 | */ 55 | array( 56 | 'id' => 'bakery_headertop_options_section', 57 | 'args' => array( 58 | 'title' => esc_html__( 'Header Top', 'bakery' ), 59 | 'panel' => 'bakery_options_panel', 60 | 'priority' => 2, 61 | ), 62 | ), 63 | /** 64 | * Blog Section 65 | */ 66 | array( 67 | 'id' => 'bakery_blog_options_section', 68 | 'args' => array( 69 | 'title' => esc_html__( 'Blog', 'bakery' ), 70 | 'panel' => 'bakery_options_panel', 71 | 'priority' => 3, 72 | ), 73 | ), 74 | 75 | /** 76 | * Page Section 77 | */ 78 | array( 79 | 'id' => 'bakery_page_options_section', 80 | 'args' => array( 81 | 'title' => esc_html__( 'page', 'bakery' ), 82 | 'panel' => 'bakery_options_panel', 83 | 'priority' => 4, 84 | ), 85 | ), 86 | 87 | 88 | /** 89 | * 404 Page Section 90 | */ 91 | array( 92 | 'id' => 'bakery_fof_options_section', 93 | 'args' => array( 94 | 'title' => esc_html__( '404 Page', 'bakery' ), 95 | 'panel' => 'bakery_options_panel', 96 | 'priority' => 6, 97 | ), 98 | ), 99 | /** 100 | * Footer Section 101 | */ 102 | array( 103 | 'id' => 'bakery_footer_options_section', 104 | 'args' => array( 105 | 'title' => esc_html__( 'Footer', 'bakery' ), 106 | 'panel' => 'bakery_options_panel', 107 | 'priority' => 7, 108 | ), 109 | ), 110 | 111 | ); 112 | 113 | 114 | /*********************************** 115 | * Add customizer elements 116 | ***********************************/ 117 | $collection = array( 118 | 'panel' => $panels, 119 | 'section' => $sections, 120 | ); 121 | 122 | Epsilon_Customizer::add_multiple( $collection ); 123 | -------------------------------------------------------------------------------- /inc/customizer/js/customizer.js: -------------------------------------------------------------------------------- 1 | (function( $ , api) { 2 | 3 | // Customizer about page redirect 4 | api.section( 'bakery_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( 'bakery_blog_options_section' , function( section ) { 20 | 21 | section.expanded.bind( function( isExpanded ) { 22 | 23 | if( isExpanded ) { 24 | api.previewer.previewUrl.set( bakeryCustomizerdata.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( 'bakery_footer_options_section' , function( section ) { 38 | 39 | section.expanded.bind( function( isExpanded ) { 40 | 41 | 42 | // Footer Widget option show/hide 43 | var $widget_toggle = $('#bakery-widget-toggle-settings'), 44 | $widgettitle = $('#customize-control-bakery_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 = $('#bakery-headeroverlay-toggle-settings'), 88 | $overlaytitle = $('#customize-control-bakery_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 ); -------------------------------------------------------------------------------- /inc/bakery-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/hooks/hooks.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 | -------------------------------------------------------------------------------- /assets/js/jquery.circlechart.js: -------------------------------------------------------------------------------- 1 | (function($){ 2 | $.fn.extend({ 3 | //pass the options variable to the function 4 | percentcircle: function(options) { 5 | //Set the default values, use comma to separate the settings, example: 6 | var defaults = { 7 | animate : true, 8 | diameter : 150, 9 | guage: 2, 10 | coverBg: '#fff', 11 | bgColor: '#efefef', 12 | fillColor: '#5c93c8', 13 | percentSize: '25px', 14 | percentWeight: 'normal' 15 | }, 16 | styles = { 17 | cirContainer : { 18 | 'width':defaults.diameter, 19 | 'height':defaults.diameter 20 | }, 21 | cir : { 22 | 'position': 'relative', 23 | 'text-align': 'center', 24 | 'width': defaults.diameter, 25 | 'height': defaults.diameter, 26 | 'border-radius': '100%', 27 | 'background-color': defaults.bgColor, 28 | 'background-image' : 'linear-gradient(91deg, transparent 50%, '+defaults.bgColor+' 50%), linear-gradient(90deg, '+defaults.bgColor+' 50%, transparent 50%)' 29 | }, 30 | cirCover: { 31 | 'position': 'relative', 32 | 'top': defaults.guage, 33 | 'left': defaults.guage, 34 | 'text-align': 'center', 35 | 'width': defaults.diameter - (defaults.guage * 2), 36 | 'height': defaults.diameter - (defaults.guage * 2), 37 | 'border-radius': '100%', 38 | 'background-color': defaults.coverBg 39 | }, 40 | percent: { 41 | 'display':'block', 42 | 'width': defaults.diameter, 43 | 'height': defaults.diameter, 44 | 'line-height': defaults.diameter + 'px', 45 | 'vertical-align': 'middle', 46 | 'font-size': defaults.percentSize, 47 | 'font-weight': defaults.percentWeight, 48 | 'color': defaults.fillColor 49 | } 50 | }; 51 | 52 | var that = this, 53 | template = '
    {{percentage}}
    ', 54 | options = $.extend(defaults, options) 55 | 56 | function init(){ 57 | that.each(function(){ 58 | var $this = $(this), 59 | //we need to check for a percent otherwise set to 0; 60 | perc = Math.round($this.data('percent')), //get the percentage from the element 61 | deg = perc * 3.6, 62 | stop = options.animate ? 0 : deg, 63 | $chart = $(template.replace('{{percentage}}',perc+'%')); 64 | //set all of the css properties forthe chart 65 | $chart.css(styles.cirContainer).find('.ab').css(styles.cir).find('.cir').css(styles.cirCover).find('.perc').css(styles.percent); 66 | 67 | $this.append($chart); //add the chart back to the target element 68 | setTimeout(function(){ 69 | animateChart(deg,parseInt(stop),$chart.find('.ab')); //both values set to the same value to keep the function from looping and animating 70 | },250) 71 | }); 72 | } 73 | 74 | var animateChart = function (stop,curr,$elm){ 75 | var deg = curr; 76 | if(curr <= stop){ 77 | if (deg>=180){ 78 | $elm.css('background-image','linear-gradient(' + (90+deg) + 'deg, transparent 50%, '+options.fillColor+' 50%),linear-gradient(90deg, '+options.fillColor+' 50%, transparent 50%)'); 79 | }else{ 80 | $elm.css('background-image','linear-gradient(' + (deg-90) + 'deg, transparent 50%, '+options.bgColor+' 50%),linear-gradient(90deg, '+options.fillColor+' 50%, transparent 50%)'); 81 | } 82 | curr ++; 83 | setTimeout(function(){ 84 | animateChart(stop,curr,$elm); 85 | },1); 86 | } 87 | }; 88 | 89 | init(); //kick off the goodness 90 | } 91 | }); 92 | 93 | })(jQuery); -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | parent(); 87 | 88 | if( ( 'Bakery' == $current_theme->get( 'Name' ) ) || ( $is_parent && 'Bakery' == $is_parent->get( 'Name' ) ) ) { 89 | require_once BAKERY_COMPANION_DIR_PATH . 'bakery-init.php'; 90 | } else { 91 | 92 | add_action( 'admin_notices', 'bakery_companion_admin_notice', 99 ); 93 | function bakery_companion_admin_notice() { 94 | $url = 'https://wordpress.org/themes/bakery/'; 95 | ?> 96 |
    97 |

    Bakery Companion plugin you have to also install the %1$sBakery Theme%2$s', 'bakery' ), '', '' ); ?>

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

    70 | 71 |

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

    103 | 104 | 105 |

    106 |

    107 | 108 | 109 |

    110 | 19 | 20 | 21 |
    22 |

    23 | 24 | 25 |
    26 | 'div', 29 | 'short_ping' => true, 30 | 'avatar_size' => 70, 31 | 'callback' => 'bakery_comment_callback' 32 | ) ); 33 | ?> 34 |
    35 | 36 |
    37 | 38 | 39 | 43 |

    44 | 45 | 46 | '
    ', 54 | 'email' =>'', 55 | 'url' =>'
    ', 56 | 'cookies_consent' =>'', 57 | ); 58 | 59 | 60 | $args=array( 61 | 'comment_field' => '
    ', 62 | 'id_form' =>'contactForm', 63 | 'class_form' =>'', 64 | 'title_reply' =>esc_html__( 'Leave a Reply', 'bakery' ), 65 | 'title_reply_before' =>'
    ', 66 | 'title_reply_after' =>'
    ', 67 | 'label_submit' => esc_html__( 'Post Comment', 'bakery' ), 68 | 'class_submit' => 'primary-btn mt-20', 69 | 'submit_button' => '', 70 | 'fields' =>$fields, 71 | 72 | ); 73 | 74 | if( comments_open() ){ 75 | echo '
    '; 76 | } 77 | comment_form( $args ); 78 | if( comments_open() ){ 79 | echo '
    '; 80 | } 81 | -------------------------------------------------------------------------------- /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/bakery-companion/inc/bakery-meta/bakery-meta-config.php: -------------------------------------------------------------------------------- 1 | 34 |
    35 |

    36 | 37 |

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

    49 | 50 |

    51 | ID ,'_bakery_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 ), "_bakery_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 ), "_bakery_builderpage_headerimg", sanitize_text_field( $meta_headerimg ) ); 91 | 92 | } 93 | 94 | add_action( "save_post", "bakery_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/support-functions.php: -------------------------------------------------------------------------------- 1 | '; 24 | 25 | foreach( $cats as $cat ) { 26 | $categories .= '
  • ' .esc_html( $cat->name ) . '
  • '; 27 | } 28 | 29 | $categories .= ''; 30 | } 31 | 32 | return $categories; 33 | 34 | } 35 | 36 | // Post Tags 37 | function bakery_post_tags() { 38 | 39 | $tags = get_the_tags(); 40 | 41 | $getTags = ''; 42 | 43 | if( $tags ) { 44 | foreach( $tags as $tag ){ 45 | $getTags .= '
  • ' . esc_html( $tag->name ) . '
  • '; 46 | } 47 | 48 | } 49 | 50 | return $getTags; 51 | 52 | } 53 | 54 | // bakery comment template callback 55 | function bakery_comment_callback( $comment, $args, $depth ) { 56 | 57 | if ( 'div' === $args['style'] ) { 58 | $tag = 'div'; 59 | $add_below = 'comment'; 60 | } else { 61 | $tag = 'li'; 62 | $add_below = 'div-comment'; 63 | } 64 | ?> 65 | < id="comment-"> 66 | 67 |
    68 | 69 |
    70 |
    71 |
    72 |
    73 | 74 |
    75 |
    76 |
    77 |
    %s ', 'bakery' ), get_comment_author_link() ); ?>
    78 |

    79 | comment_approved == '0' ) : ?> 80 | 81 |
    82 | 83 |
    84 |
    85 | $add_below, 'depth' => 1, 'max_depth' => 5, 'reply_text' => 'Reply' ) ) ); ?> 86 |
    87 |
    88 | 89 |
    90 |
    91 | 92 |
    93 |
    94 | 95 |
    96 |
    97 |
    98 |
    99 |
    100 | 101 | 102 | 103 |
    104 | 105 | esc_html__( 'Add footer newsletter signup form.', 'bakery' ), ) 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 | ?> 49 | 50 |
    51 | 52 | '.esc_html( $desc ).'

    '; 55 | } 56 | ?> 57 | 58 | 59 | 60 | 61 |
    62 | 63 |
    64 |
    65 |
    66 |
    67 | 68 |
    69 |
    70 | 71 |
    72 |
    73 | 74 | 77 | 78 |
    79 | 80 |
    81 | 82 |
    83 | 84 | 85 | 116 |

    117 | 118 | 119 |

    120 | 121 |

    122 | 123 |

    124 | 125 | 126 |

    127 |

    128 | 129 | 130 |

    131 | 132 | start_controls_section( 48 | 'sh_content', 49 | [ 50 | 'label' => __( 'Section Heading', 'bakery' ), 51 | ] 52 | ); 53 | $this->add_control( 54 | 'sh_sectiontitle', 55 | [ 56 | 'label' => esc_html__( 'Title', 'bakery' ), 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', 'bakery' ), 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', 'bakery' ), 78 | 'tab' => Controls_Manager::TAB_STYLE, 79 | ] 80 | ); 81 | $this->add_control( 82 | 'color_secttitle', [ 83 | 'label' => __( 'Section Title Color', 'bakery' ), 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', 'bakery' ), 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 bakery_paragraph_tag( 156 | array( 157 | 'text' => esc_html( $settings['sh_sectionsubtitle'] ), 158 | ) 159 | ); 160 | } 161 | ?> 162 |
    163 |
    164 | 31 |
    32 | 'post', 37 | 'posts_per_page' => esc_html( $postnumber ), 38 | ); 39 | 40 | $query = new WP_Query( $args ); 41 | 42 | if( $query->have_posts() ): 43 | while( $query->have_posts() ): 44 | $query->the_post(); 45 | ?> 46 |
    47 | '; 51 | the_post_thumbnail( 'bakery_260x180', array( 'class' => 'f-img img-fluid mx-auto' ) ); 52 | echo '
    '; 53 | } 54 | ?> 55 |
    56 |
    57 | 'img-fluid') ); ?> 58 | 59 |
    60 |
    61 | 62 | 67 | 68 | 69 |
    70 |
    71 | 72 |

    73 |
    74 | 78 |
    79 | 84 |
    85 | 92 |
    93 | 117 |
    118 |
    [text* text-299 class:common-input class:mb-20 class:form-control placeholder "Enter your name"][email* email-836 class:common-input class:mb-20 class:form-control placeholder "Enter email address"][text* text-299 class:common-input class:mb-20 class:form-control placeholder "Enter your subject"]
    [textarea* textarea-697 class:common-textarea class:form-control placeholder "Message"]
    [submit class:cp-btn class:genric-btn class:primary class:circle "Send Message"]
    '; 129 | 130 | return $template; 131 | 132 | } else { 133 | return $template; 134 | } 135 | } 136 | add_filter( 'wpcf7_default_template', 'bakery_contact7_form_content', 10, 2 ); 137 | 138 | 139 | function return_tab_data( $getTags, $menu_tabs ) { 140 | 141 | 142 | $y = []; 143 | foreach ( $getTags as $val ) { 144 | 145 | $t = []; 146 | 147 | foreach( $menu_tabs as $data ) { 148 | if( $data['label'] == $val ) { 149 | $t[] = $data; 150 | } 151 | } 152 | 153 | $y[$val] = $t; 154 | 155 | } 156 | 157 | return $y; 158 | } -------------------------------------------------------------------------------- /inc/bakery-companion/inc/elementor-widgets/widgets/blog.php: -------------------------------------------------------------------------------- 1 | start_controls_section( 50 | 'blog_content', 51 | [ 52 | 'label' => __( 'Blgo', 'bakery' ), 53 | ] 54 | ); 55 | $this->add_control( 56 | 'blog_sectiontitle', 57 | [ 58 | 'label' => esc_html__( 'Section Title', 'bakery' ), 59 | 'label_block' => true, 60 | 'type' => Controls_Manager::TEXT, 61 | ] 62 | ); 63 | $this->add_control( 64 | 'blog_sectionsubtitle', 65 | [ 66 | 'label' => esc_html__( 'Section Sub Title', 'bakery' ), 67 | 'label_block' => true, 68 | 'type' => Controls_Manager::TEXTAREA, 69 | ] 70 | ); 71 | $this->add_control( 72 | 'blog_limit', 73 | [ 74 | 'label' => esc_html__( 'Post Limit', 'bakery' ), 75 | 'type' => Controls_Manager::TEXT, 76 | 'default' => 4 77 | ] 78 | ); 79 | 80 | $this->end_controls_section(); // End few words content 81 | 82 | //------------------------------ Style Section ------------------------------ 83 | $this->start_controls_section( 84 | 'style_section', [ 85 | 'label' => __( 'Style Section Heading', 'bakery' ), 86 | 'tab' => Controls_Manager::TAB_STYLE, 87 | ] 88 | ); 89 | $this->add_control( 90 | 'color_secttitle', [ 91 | 'label' => __( 'Section Title Color', 'bakery' ), 92 | 'type' => Controls_Manager::COLOR, 93 | 'default' => '#222', 94 | 'selectors' => [ 95 | '{{WRAPPER}} .title h1' => 'color: {{VALUE}};', 96 | ], 97 | ] 98 | ); 99 | 100 | $this->add_control( 101 | 'color_sectsubtitle', [ 102 | 'label' => __( 'Section Sub Title Color', 'bakery' ), 103 | 'type' => Controls_Manager::COLOR, 104 | 'default' => '#777', 105 | 'selectors' => [ 106 | '{{WRAPPER}} .title p' => 'color: {{VALUE}};', 107 | ], 108 | ] 109 | ); 110 | 111 | $this->end_controls_section(); 112 | 113 | //------------------------------ Style text ------------------------------ 114 | $this->start_controls_section( 115 | 'style_content', [ 116 | 'label' => __( 'Style Content', 'bakery' ), 117 | 'tab' => Controls_Manager::TAB_STYLE, 118 | ] 119 | ); 120 | $this->add_control( 121 | 'color_blogtitle', [ 122 | 'label' => __( 'Blog Title Color', 'bakery' ), 123 | 'type' => Controls_Manager::COLOR, 124 | 'default' => '#222', 125 | 'selectors' => [ 126 | '{{WRAPPER}} .single-blog h4' => 'color: {{VALUE}};', 127 | ], 128 | ] 129 | ); 130 | $this->add_control( 131 | 'color_blogtitlehov', [ 132 | 'label' => __( 'Blog Title Hover Color', 'bakery' ), 133 | 'type' => Controls_Manager::COLOR, 134 | 'default' => '', 135 | 'selectors' => [ 136 | '{{WRAPPER}} .single-blog:hover h4' => 'color: {{VALUE}};', 137 | ], 138 | ] 139 | ); 140 | $this->add_control( 141 | 'color_blog_date', [ 142 | 'label' => __( 'Blog Meta Color', 'bakery' ), 143 | 'type' => Controls_Manager::COLOR, 144 | 'default' => '#777', 145 | 'selectors' => [ 146 | '{{WRAPPER}} .single-blog .meta' => 'color: {{VALUE}};', 147 | ], 148 | ] 149 | ); 150 | $this->add_control( 151 | 'color_blogtext', [ 152 | 'label' => __( 'Blog Text Color', 'bakery' ), 153 | 'type' => Controls_Manager::COLOR, 154 | 'default' => '#777', 155 | 'selectors' => [ 156 | '{{WRAPPER}} .single-blog p' => 'color: {{VALUE}};', 157 | ], 158 | ] 159 | ); 160 | 161 | $this->end_controls_section(); 162 | 163 | } 164 | 165 | protected function render() { 166 | 167 | $settings = $this->get_settings(); 168 | 169 | ?> 170 | 171 |
    172 |
    173 | 181 | 182 |
    183 |
    184 | 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.', 'bakery' ), 144 | array( 145 | 'bakery', 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/category-meta.php: -------------------------------------------------------------------------------- 1 | 44 |

    45 | 46 | 47 |
    48 |

    49 | 50 | 51 |

    52 |
    53 | 72 | 73 | 74 | 75 | 76 | 77 | term_id, 'category-image-id', true ); ?> 78 | 79 |
    80 | 81 | 82 | 83 |
    84 |

    85 | 86 | 87 |

    88 | 89 | 90 | 111 | 157 | init(); 163 | 164 | } -------------------------------------------------------------------------------- /inc/breadcrumbs.php: -------------------------------------------------------------------------------- 1 | '', 27 | 'breadcrumbs_classes' => esc_html( 'breadcrumb' ), 28 | 'home_title' => esc_html__( 'Home', 'bakery' ) 29 | ); 30 | $args = apply_filters( 'bakery_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( 'bakery_breadcrumbs_filter', $html ); 116 | 117 | echo wp_kses_post( $html ); 118 | 119 | 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /assets/js/hoverIntent.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * hoverIntent v1.8.1 // 2014.08.11 // jQuery v1.9.1+ 3 | * http://briancherne.github.io/jquery-hoverIntent/ 4 | * 5 | * You may use hoverIntent under the terms of the MIT license. Basically that 6 | * means you are free to use hoverIntent as long as this header is left intact. 7 | * Copyright 2007, 2014 Brian Cherne 8 | */ 9 | 10 | /* hoverIntent is similar to jQuery's built-in "hover" method except that 11 | * instead of firing the handlerIn function immediately, hoverIntent checks 12 | * to see if the user's mouse has slowed down (beneath the sensitivity 13 | * threshold) before firing the event. The handlerOut function is only 14 | * called after a matching handlerIn. 15 | * 16 | * // basic usage ... just like .hover() 17 | * .hoverIntent( handlerIn, handlerOut ) 18 | * .hoverIntent( handlerInOut ) 19 | * 20 | * // basic usage ... with event delegation! 21 | * .hoverIntent( handlerIn, handlerOut, selector ) 22 | * .hoverIntent( handlerInOut, selector ) 23 | * 24 | * // using a basic configuration object 25 | * .hoverIntent( config ) 26 | * 27 | * @param handlerIn function OR configuration object 28 | * @param handlerOut function OR selector for delegation OR undefined 29 | * @param selector selector OR undefined 30 | * @author Brian Cherne 31 | */ 32 | 33 | ;(function(factory) { 34 | 'use strict'; 35 | if (typeof define === 'function' && define.amd) { 36 | define(['jquery'], factory); 37 | } else if (jQuery && !jQuery.fn.hoverIntent) { 38 | factory(jQuery); 39 | } 40 | })(function($) { 41 | 'use strict'; 42 | 43 | // default configuration values 44 | var _cfg = { 45 | interval: 100, 46 | sensitivity: 6, 47 | timeout: 0 48 | }; 49 | 50 | // counter used to generate an ID for each instance 51 | var INSTANCE_COUNT = 0; 52 | 53 | // current X and Y position of mouse, updated during mousemove tracking (shared across instances) 54 | var cX, cY; 55 | 56 | // saves the current pointer position coordinates based on the given mousemove event 57 | var track = function(ev) { 58 | cX = ev.pageX; 59 | cY = ev.pageY; 60 | }; 61 | 62 | // compares current and previous mouse positions 63 | var compare = function(ev,$el,s,cfg) { 64 | // compare mouse positions to see if pointer has slowed enough to trigger `over` function 65 | if ( Math.sqrt( (s.pX-cX)*(s.pX-cX) + (s.pY-cY)*(s.pY-cY) ) < cfg.sensitivity ) { 66 | $el.off(s.event,track); 67 | delete s.timeoutId; 68 | // set hoverIntent state as active for this element (permits `out` handler to trigger) 69 | s.isActive = true; 70 | // overwrite old mouseenter event coordinates with most recent pointer position 71 | ev.pageX = cX; ev.pageY = cY; 72 | // clear coordinate data from state object 73 | delete s.pX; delete s.pY; 74 | return cfg.over.apply($el[0],[ev]); 75 | } else { 76 | // set previous coordinates for next comparison 77 | s.pX = cX; s.pY = cY; 78 | // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs) 79 | s.timeoutId = setTimeout( function(){compare(ev, $el, s, cfg);} , cfg.interval ); 80 | } 81 | }; 82 | 83 | // triggers given `out` function at configured `timeout` after a mouseleave and clears state 84 | var delay = function(ev,$el,s,out) { 85 | delete $el.data('hoverIntent')[s.id]; 86 | return out.apply($el[0],[ev]); 87 | }; 88 | 89 | $.fn.hoverIntent = function(handlerIn,handlerOut,selector) { 90 | // instance ID, used as a key to store and retrieve state information on an element 91 | var instanceId = INSTANCE_COUNT++; 92 | 93 | // extend the default configuration and parse parameters 94 | var cfg = $.extend({}, _cfg); 95 | if ( $.isPlainObject(handlerIn) ) { 96 | cfg = $.extend(cfg, handlerIn); 97 | if ( !$.isFunction(cfg.out) ) { 98 | cfg.out = cfg.over; 99 | } 100 | } else if ( $.isFunction(handlerOut) ) { 101 | cfg = $.extend(cfg, { over: handlerIn, out: handlerOut, selector: selector } ); 102 | } else { 103 | cfg = $.extend(cfg, { over: handlerIn, out: handlerIn, selector: handlerOut } ); 104 | } 105 | 106 | // A private function for handling mouse 'hovering' 107 | var handleHover = function(e) { 108 | // cloned event to pass to handlers (copy required for event object to be passed in IE) 109 | var ev = $.extend({},e); 110 | 111 | // the current target of the mouse event, wrapped in a jQuery object 112 | var $el = $(this); 113 | 114 | // read hoverIntent data from element (or initialize if not present) 115 | var hoverIntentData = $el.data('hoverIntent'); 116 | if (!hoverIntentData) { $el.data('hoverIntent', (hoverIntentData = {})); } 117 | 118 | // read per-instance state from element (or initialize if not present) 119 | var state = hoverIntentData[instanceId]; 120 | if (!state) { hoverIntentData[instanceId] = state = { id: instanceId }; } 121 | 122 | // state properties: 123 | // id = instance ID, used to clean up data 124 | // timeoutId = timeout ID, reused for tracking mouse position and delaying "out" handler 125 | // isActive = plugin state, true after `over` is called just until `out` is called 126 | // pX, pY = previously-measured pointer coordinates, updated at each polling interval 127 | // event = string representing the namespaced event used for mouse tracking 128 | 129 | // clear any existing timeout 130 | if (state.timeoutId) { state.timeoutId = clearTimeout(state.timeoutId); } 131 | 132 | // namespaced event used to register and unregister mousemove tracking 133 | var mousemove = state.event = 'mousemove.hoverIntent.hoverIntent'+instanceId; 134 | 135 | // handle the event, based on its type 136 | if (e.type === 'mouseenter') { 137 | // do nothing if already active 138 | if (state.isActive) { return; } 139 | // set "previous" X and Y position based on initial entry point 140 | state.pX = ev.pageX; state.pY = ev.pageY; 141 | // update "current" X and Y position based on mousemove 142 | $el.off(mousemove,track).on(mousemove,track); 143 | // start polling interval (self-calling timeout) to compare mouse coordinates over time 144 | state.timeoutId = setTimeout( function(){compare(ev,$el,state,cfg);} , cfg.interval ); 145 | } else { // "mouseleave" 146 | // do nothing if not already active 147 | if (!state.isActive) { return; } 148 | // unbind expensive mousemove event 149 | $el.off(mousemove,track); 150 | // if hoverIntent state is true, then call the mouseOut function after the specified delay 151 | state.timeoutId = setTimeout( function(){delay(ev,$el,state,cfg.out);} , cfg.timeout ); 152 | } 153 | }; 154 | 155 | // listen for mouseenter and mouseleave 156 | return this.on({'mouseenter.hoverIntent':handleHover,'mouseleave.hoverIntent':handleHover}, cfg.selector); 157 | }; 158 | }); 159 | -------------------------------------------------------------------------------- /inc/bakery-companion/inc/elementor-widgets/assets/js/waypoints.min.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.6.2 2 | /* 3 | jQuery Waypoints - v2.0.3 4 | Copyright (c) 2011-2013 Caleb Troughton 5 | Dual licensed under the MIT license and GPL license. 6 | https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt 7 | */ 8 | (function(){var t=[].indexOf||function(t){for(var e=0,n=this.length;e=0;s={horizontal:{},vertical:{}};f=1;a={};u="waypoints-context-id";p="resize.waypoints";y="scroll.waypoints";v=1;w="waypoints-waypoint-ids";g="waypoint";m="waypoints";o=function(){function t(t){var e=this;this.$element=t;this.element=t[0];this.didResize=false;this.didScroll=false;this.id="context"+f++;this.oldScroll={x:t.scrollLeft(),y:t.scrollTop()};this.waypoints={horizontal:{},vertical:{}};t.data(u,this.id);a[this.id]=this;t.bind(y,function(){var t;if(!(e.didScroll||c)){e.didScroll=true;t=function(){e.doScroll();return e.didScroll=false};return r.setTimeout(t,n[m].settings.scrollThrottle)}});t.bind(p,function(){var t;if(!e.didResize){e.didResize=true;t=function(){n[m]("refresh");return e.didResize=false};return r.setTimeout(t,n[m].settings.resizeThrottle)}})}t.prototype.doScroll=function(){var t,e=this;t={horizontal:{newScroll:this.$element.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.$element.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};if(c&&(!t.vertical.oldScroll||!t.vertical.newScroll)){n[m]("refresh")}n.each(t,function(t,r){var i,o,l;l=[];o=r.newScroll>r.oldScroll;i=o?r.forward:r.backward;n.each(e.waypoints[t],function(t,e){var n,i;if(r.oldScroll<(n=e.offset)&&n<=r.newScroll){return l.push(e)}else if(r.newScroll<(i=e.offset)&&i<=r.oldScroll){return l.push(e)}});l.sort(function(t,e){return t.offset-e.offset});if(!o){l.reverse()}return n.each(l,function(t,e){if(e.options.continuous||t===l.length-1){return e.trigger([i])}})});return this.oldScroll={x:t.horizontal.newScroll,y:t.vertical.newScroll}};t.prototype.refresh=function(){var t,e,r,i=this;r=n.isWindow(this.element);e=this.$element.offset();this.doScroll();t={horizontal:{contextOffset:r?0:e.left,contextScroll:r?0:this.oldScroll.x,contextDimension:this.$element.width(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:r?0:e.top,contextScroll:r?0:this.oldScroll.y,contextDimension:r?n[m]("viewportHeight"):this.$element.height(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};return n.each(t,function(t,e){return n.each(i.waypoints[t],function(t,r){var i,o,l,s,f;i=r.options.offset;l=r.offset;o=n.isWindow(r.element)?0:r.$element.offset()[e.offsetProp];if(n.isFunction(i)){i=i.apply(r.element)}else if(typeof i==="string"){i=parseFloat(i);if(r.options.offset.indexOf("%")>-1){i=Math.ceil(e.contextDimension*i/100)}}r.offset=o-e.contextOffset+e.contextScroll-i;if(r.options.onlyOnScroll&&l!=null||!r.enabled){return}if(l!==null&&l<(s=e.oldScroll)&&s<=r.offset){return r.trigger([e.backward])}else if(l!==null&&l>(f=e.oldScroll)&&f>=r.offset){return r.trigger([e.forward])}else if(l===null&&e.oldScroll>=r.offset){return r.trigger([e.forward])}})})};t.prototype.checkEmpty=function(){if(n.isEmptyObject(this.waypoints.horizontal)&&n.isEmptyObject(this.waypoints.vertical)){this.$element.unbind([p,y].join(" "));return delete a[this.id]}};return t}();l=function(){function t(t,e,r){var i,o;r=n.extend({},n.fn[g].defaults,r);if(r.offset==="bottom-in-view"){r.offset=function(){var t;t=n[m]("viewportHeight");if(!n.isWindow(e.element)){t=e.$element.height()}return t-n(this).outerHeight()}}this.$element=t;this.element=t[0];this.axis=r.horizontal?"horizontal":"vertical";this.callback=r.handler;this.context=e;this.enabled=r.enabled;this.id="waypoints"+v++;this.offset=null;this.options=r;e.waypoints[this.axis][this.id]=this;s[this.axis][this.id]=this;i=(o=t.data(w))!=null?o:[];i.push(this.id);t.data(w,i)}t.prototype.trigger=function(t){if(!this.enabled){return}if(this.callback!=null){this.callback.apply(this.element,t)}if(this.options.triggerOnce){return this.destroy()}};t.prototype.disable=function(){return this.enabled=false};t.prototype.enable=function(){this.context.refresh();return this.enabled=true};t.prototype.destroy=function(){delete s[this.axis][this.id];delete this.context.waypoints[this.axis][this.id];return this.context.checkEmpty()};t.getWaypointsByElement=function(t){var e,r;r=n(t).data(w);if(!r){return[]}e=n.extend({},s.horizontal,s.vertical);return n.map(r,function(t){return e[t]})};return t}();d={init:function(t,e){var r;if(e==null){e={}}if((r=e.handler)==null){e.handler=t}this.each(function(){var t,r,i,s;t=n(this);i=(s=e.context)!=null?s:n.fn[g].defaults.context;if(!n.isWindow(i)){i=t.closest(i)}i=n(i);r=a[i.data(u)];if(!r){r=new o(i)}return new l(t,r,e)});n[m]("refresh");return this},disable:function(){return d._invoke(this,"disable")},enable:function(){return d._invoke(this,"enable")},destroy:function(){return d._invoke(this,"destroy")},prev:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(e>0){return t.push(n[e-1])}})},next:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(et.oldScroll.y})},left:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset<=t.oldScroll.x})},right:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset>t.oldScroll.x})},enable:function(){return h._invoke("enable")},disable:function(){return h._invoke("disable")},destroy:function(){return h._invoke("destroy")},extendFn:function(t,e){return d[t]=e},_invoke:function(t){var e;e=n.extend({},s.vertical,s.horizontal);return n.each(e,function(e,n){n[t]();return true})},_filter:function(t,e,r){var i,o;i=a[n(t).data(u)];if(!i){return[]}o=[];n.each(i.waypoints[e],function(t,e){if(r(i,e)){return o.push(e)}});o.sort(function(t,e){return t.offset-e.offset});return n.map(o,function(t){return t.element})}};n[m]=function(){var t,n;n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[];if(h[n]){return h[n].apply(null,t)}else{return h.aggregate.call(null,n)}};n[m].settings={resizeThrottle:100,scrollThrottle:30};return i.load(function(){return n[m]("refresh")})})}).call(this); -------------------------------------------------------------------------------- /inc/bakery-companion/inc/sidebar-widgets/social-links.php: -------------------------------------------------------------------------------- 1 | esc_html__( 'Add footer social links.', 'bakery' ), ) 27 | ); 28 | 29 | } 30 | 31 | // This is where the action happens 32 | public function widget( $args, $instance ) { 33 | 34 | $title = apply_filters( 'widget_title', $instance['title'] ); 35 | $desc = apply_filters( 'widget_desc', $instance['desc'] ); 36 | $facebook = apply_filters( 'widget_text', $instance['facebook'] ); 37 | $twitter = apply_filters( 'widget_text', $instance['twitter'] ); 38 | $dribbble = apply_filters( 'widget_text', $instance['dribbble'] ); 39 | $behance = apply_filters( 'widget_text', $instance['behance'] ); 40 | $linkedin = apply_filters( 'widget_text', $instance['linkedin'] ); 41 | 42 | 43 | // before and after widget arguments are defined by themes 44 | echo wp_kses_post( $args['before_widget'] ); 45 | if ( ! empty( $title ) ) 46 | echo wp_kses_post( $args['before_title'] . $title . $args['after_title'] ); 47 | 48 | if( $desc ){ 49 | echo '

    '.esc_html( $desc ).'

    '; 50 | } 51 | ?> 52 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 96 |

    97 | 98 | 99 |

    100 | 101 |

    102 | 103 | 104 |

    105 | 106 |

    107 | 108 | 109 |

    110 | 111 |

    112 | 113 | 114 |

    115 | 116 |

    117 | 118 | 119 |

    120 | 121 |

    122 | 123 | 124 |

    125 | 126 |

    127 | 128 | 129 |

    130 |