Icons

map-marker-alt-fa
map-marker-alt-fa-light
map-marker-alt-fa-solid
map-marker-alt-ionic
map-marker-alt-old
phone-alt-fa
phone-alt-fa-light
phone-alt-fa-solid
phone-alt-ionic
phone-alt-old
envelope-fa
envelope-fa-light
envelope-fa-solid
envelope-ionic
envelope-old
info-fa
info-fa-light
info-fa-solid
info-ionic
info-old
location-arrow-fa
location-arrow-fa-light
location-arrow-fa-solid
location-arrow-ionic
location-arrow-old
address-card-fa
address-card-fa-light
address-card-fa-solid
address-card-ionic
address-card-old
clock-fa
clock-fa-light
clock-fa-solid
spinner-fa
spinner-fa-light
spinner-fa-solid
spinner-ionic
spinner-old
shopping-cart-fa
shopping-cart-fa-light
shopping-cart-fa-solid
shopping-cart-ionic
shopping-cart-old
shopping-basket-fa
shopping-basket-fa-light
shopping-basket-fa-solid
shopping-basket-ionic
shopping-basket-old
search-fa
search-fa-light
search-fa-solid
search-ionic
search-old
globe-fa
globe-fa-light
globe-fa-solid
globe-ionic
globe-old
user-fa
user-fa-light
user-fa-solid
user-ionic
user-old
check-square-fa
check-square-fa-light
check-square-fa-solid
check-square-ionic
check-square-old
check-circle-fa
check-circle-fa-light
check-circle-fa-solid
check-circle-ionic
check-circle-old
check-fa
check-fa-light
check-fa-solid
check-ionic
check-old
star-fa
star-fa-light
star-fa-solid
star-ionic
star-old
times-fa
times-fa-light
times-fa-solid
times-ionic
times-old
heart-fa
heart-fa-light
heart-fa-solid
angle-up-fa
angle-up-fa-light
angle-up-fa-solid
angle-up-ionic
angle-up-old
angle-right-fa
angle-right-fa-light
angle-right-fa-solid
angle-right-ionic
angle-right-old
angle-down-fa
angle-down-fa-light
angle-down-fa-solid
angle-down-ionic
angle-down-old
angle-left-fa
angle-left-fa-light
angle-left-fa-solid
angle-left-ionic
angle-left-old
chevron-up-fa
chevron-up-fa-light
chevron-up-fa-solid
chevron-up-ionic
chevron-up-old
chevron-right-fa
chevron-right-fa-light
chevron-right-fa-solid
chevron-right-ionic
chevron-right-old
chevron-down-fa
chevron-down-fa-light
chevron-down-fa-solid
chevron-down-ionic
chevron-down-old
chevron-left-fa
chevron-left-fa-light
chevron-left-fa-solid
chevron-left-ionic
chevron-left-old
long-arrow-alt-up-fa
long-arrow-alt-up-fa-light
long-arrow-alt-up-fa-solid
long-arrow-alt-right-fa
long-arrow-alt-right-fa-light
long-arrow-alt-right-fa-solid
long-arrow-alt-down-fa
long-arrow-alt-down-fa-light
long-arrow-alt-down-fa-solid
long-arrow-alt-left-fa
long-arrow-alt-left-fa-light
long-arrow-alt-left-fa-solid
arrow-up-fa
arrow-up-fa-light
arrow-up-fa-solid
arrow-right-fa
arrow-right-fa-light
arrow-right-fa-solid
arrow-down-fa
arrow-down-fa-light
arrow-down-fa-solid
arrow-left-fa
arrow-left-fa-light
arrow-left-fa-solid
facebook-fa
facebook-ionic
facebook-old
facebook-f-fa
facebook-square-fa
facebook-square-ionic
facebook-square-old
facebook-messenger-fa
facebook-messenger-ionic
facebook-messenger-old
instagram-fa
instagram-old
instagram-ionic
instagram-square-fa
instagram-square-ionic
instagram-square-old
linkedin-fa
linkedin-ionic
linkedin-old
twitter-fa
twitter-ionic
twitter-old
twitter-square-fa
twitter-square-ionic
twitter-square-old
youtube-fa
youtube-ionic
youtube-old
youtube-square-fa
youtube-square-old
linkedin-in-fa

Shortcodes

[logo] option="" [jumbotron-title] [jumbotron-desc] [footer-copy] title="" [counter] numb="" delay="10" time="2000" [svg] icon="" size="0" fill="" style="0" [blog-posts] post_type="post" orderby="date" order="DESC" post_status="publish" posts_per_page="3" cat="" offset="0" post__in="0" post__not_in="0" ignore_sticky_posts="1" [accordion][/accordion] class="" [accordion-item][/accordion-item] title="" tag="h3" open="0" [menu] name="" class=""

Fix

background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.15) 20%,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%);

Square

.square { position: relative; &:before { display: block; padding-bottom: 100%; content: ''; } } .site__bg { position: relative; z-index: 1; &:before { background: repeating-linear-gradient(-45deg, #d5fcfc 0px, #d5fcfc 1px, transparent 2px, transparent 7px); position: absolute; width: 150px; height: 150px; content: ''; z-index: -1; } }

Admin Bar

#wrapper { padding-bottom: 86px; position: relative; min-height: 100vh; .admin-bar & { min-height: calc(100vh - 32px); @include media-max(782px) { min-height: calc(100vh - 46px); } @include media-max(600px) { min-height: calc(100vh - 46px); } } }

Array

@each $item in (1 2 3 4) { &.img-#{$item} { @include background-image('XXXXX-#{$item}.png'); } } @each $item, $color in (1 $secondary-color, 2 $primary-color) { &.icon-#{$item} { @include background-image('XXXXX-#{$item}.png'); background-color: #{$color}; } }

Counter

.parent { counter-reset: item-count; .child { counter-increment: item-count; content: counter(item-count, decimal-leading-zero); } }

Scroll To

/* * Scroll To */ function dotspiceScrollTo( target = '' ) { var onLoad = false; if ( ! target ) { target = window.location.hash; onLoad = true; } if ( target.length && $( target ).length ) { target = target.replace('#', ''); // Scroll Fix if ( onLoad ) window.location.hash = ''; // Bootstrap Accordion if ( $( 'button[data-target="#' + target + '"]' ).length ) { setTimeout( function() { $( 'body, html' ).animate( { scrollTop: $( $( 'button[data-target="#' + target + '"]' ) ).closest( '.card' ).offset().top }, 750, function() { $( 'button[data-target="#' + target + '"]' ).click(); // Scroll Fix if ( onLoad ) { $( '#' + target ).attr( 'id', target + '-tmp' ); window.location.hash = '#' + target; $( '#' + target + '-tmp' ).attr( 'id', target ); } } ); }, 500 ); } // Other Block else if ( $( '#' + target ).length ) { $( 'html,body' ).animate( { scrollTop: $( '#' + target ).offset().top }, 750, function() { // Scroll Fix if ( onLoad ) { $( '#' + target ).attr( 'id', target + '-tmp' ); window.location.hash = '#' + target; $( '#' + target + '-tmp' ).attr( 'id', target ); } } ); } return false; } } dotspiceScrollTo(); /** * Scroll To on Page Load */ $( window ).on( 'load', function() { $( function() { var target = window.location.hash; if ( target.length && $( target ).length ) { target = target.replace('#', ''); window.location.hash = ''; if ( $( 'button[data-target="#' + target + '"]' ).length ) { $( 'button[data-target="#' + target + '"]' ).click(); setTimeout( function() { $( 'body, html' ).animate( { scrollTop: $( $( 'button[data-target="#' + target + '"]' ) ).closest( '.card' ).offset().top }, 750, function() { $( '#' + target ).attr( 'id', target + '-tmp' ); // Scroll Fix window.location.hash = '#' + target; $( '#' + target + '-tmp' ).attr( 'id', target ); // Scroll Fix } ); }, 500 ); } else if ( $( '#' + target ).length ) { $( 'html,body' ).animate( { scrollTop: $( '#' + target ).offset().top }, 750, function() { $( '#' + target ).attr( 'id', target + '-tmp' ); // Scroll Fix window.location.hash = '#' + target; $( '#' + target + '-tmp' ).attr( 'id', target ); // Scroll Fix } ); } return false; } } ); } );
/* * Scroll To */ $( 'body:not(.woocommerce) *:not([role="tab"]) > a[href*=\\#]:not([href=\\#]):not([role="tab"])' ).on( 'click', function() { if ( location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname ) { dotspiceScrollTo( this.hash ); } } ); /** * Scroll To */ $( 'body:not(.woocommerce) *:not([role="tab"]) > a[href*=\\#]:not([href=\\#]):not([role="tab"])' ).on( 'click', function() { if ( location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname ) { var target = $( this.hash ); target = this.hash.slice(1); if ( $( 'button[data-target="#' + target + '"]' ).length ) { $( 'button[data-target="#' + target + '"]' ).click(); $( 'body, html' ).animate( { scrollTop: $( $( 'button[data-target="#' + target + '"]' ) ).closest( '.card' ).offset().top }, 750 ); } else if ( $( '#' + target ).length ) { $( 'html,body' ).animate( { scrollTop: $( '#' + target ).offset().top }, 750 ); } return false; } } );

Header

/** * Shadow Header */ if ( $( '.site-header.sticky' ).length > 0 ) { function shadowHeader() { var header = $( '.site-header.sticky' ), scrollTop = $( window ).scrollTop(); if ( scrollTop > 0 ) { if ( ! header.is( '.shadow' ) ) { header.addClass( 'shadow' ); } } else { if ( header.is( '.shadow' ) ) { header.removeClass( 'shadow' ); } } } shadowHeader(); $( window ).resize(function(){ clearTimeout( window.resized ); window.resized = setTimeout( function() { shadowHeader(); }, 100 ); } ); $( window ).scroll(function(){ clearTimeout( window.scrolled ); window.scrolled = setTimeout( function() { shadowHeader(); }, 100 ); } ); }

Back To Top

<div class="back-to-top">[svg icon="arrow-up-fa"]</div> /** * Back To Top */ if ( $( '.back-to-top' ).length > 0 ) { $( function() { $( '.back-to-top' ).on( 'click', function() { $( 'body, html' ).animate( { scrollTop: 0 }, 1000 ); return false; } ); $( window ).scroll(function(){ clearTimeout( window.scrolled ); window.scrolled = setTimeout( function(){ if ( $( window ).scrollTop() > 150) { $( '.back-to-top' ).fadeIn(); } else { $( '.back-to-top' ).fadeOut(); } }, 50 ); } ); } ); }

Magnific Popup Zoom

/** * Gallery Shortcode */ $( '.gallery' ).each( function() { $( this ).magnificPopup( { delegate: 'a[href*=".jpg"], a[href*=".jpeg"], a[href*=".png"], a[href*=".gif"], a[href*=".webp"]', type: 'image', closeOnContentClick: false, closeBtnInside: false, mainClass: 'mfp-with-zoom mfp-img-mobile', removalDelay: 500, image: { verticalFit: true, }, gallery: { enabled: true, navigateByImgClick: false, // FIX ZOOM tCounter: '<span class="mfp-counter">%curr% z %total%</span>' }, zoom: { enabled: true, duration: 250, opener: function(element) { return element.find('img'); } }, callbacks: { open: function() { var maxHeight = $( '.mfp-figure figure' ).find( 'img' ).css( 'max-height' ); $( '.mfp-figure figure' ).css( 'cursor', 'zoom-in' ); $( '.mfp-figure figure' ).click( function() { if ( $( this ).is( '.zoomed' ) ) { $( this ).removeClass( 'zoomed' ); $( this ).find( 'img' ).css( 'max-height', maxHeight ); $( this ).find( 'img' ).css( 'max-width', '100%' ); $( '.mfp-wrap' ).css( 'overflow', 'hidden auto' ); $( '.mfp-figure figure' ).css( 'cursor', 'zoom-in' ); $( '.mfp-arrow, .mfp-close' ).show(); } else { $( this ).addClass( 'zoomed' ); $( this ).find( 'img' ).css( 'max-height', 'unset' ); $( this ).find( 'img' ).css( 'max-width', 'unset' ); $( '.mfp-wrap' ).css( 'overflow', 'auto' ); $( '.mfp-figure figure' ).css( 'cursor', 'zoom-out' ); $( '.mfp-arrow, .mfp-close' ).hide(); } } ); $( '.mfp-arrow, .mfp-close' ).click( function() { maxHeight = $( '.mfp-figure figure' ).find( 'img' ).css( 'max-height' ); $( '.mfp-figure figure' ).removeClass( 'zoomed' ); $( '.mfp-figure figure' ).find( 'img' ).css( 'max-width', '100%' ); $( '.mfp-wrap' ).css( 'overflow', 'hidden auto' ); $( '.mfp-figure figure' ).css( 'cursor', 'zoom-in' ); } ); } } } ); } );

Last Wpseo Breadcrumb

/** * Last Wpseo Breadcrumb Shortcode */ function last_wpseo_breadcrumb_shortcode(){ $output = calmcode_title(); if ( function_exists( 'yoast_breadcrumb' ) ) { $breadcrumbs = yoast_breadcrumb( '', '', false ); preg_match_all('/<span[^>]+class="breadcrumb_last"[^>]*>(.*)<\/span>/', $breadcrumbs, $title ); if ( is_array( $title[1] ) && count( $title[1] ) > 0 ) { $output = $title[1][0]; } } return '<span class="breadcrumb-last">' . $output . '</span>'; } add_shortcode( 'last-wpseo-breadcrumb', 'last_wpseo_breadcrumb_shortcode' );

Child Pages

$query = new WP_Query( array( 'post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => get_the_ID(), 'order' => 'ASC', 'orderby' => 'menu_order' ) ); if ( $query->have_posts() && ! is_front_page() ) : ?><div class="container"><div class="row blog-post__list nc-3"><?php while( $query->have_posts() ) : $query->the_post(); get_template_part( 'templates/content' ); endwhile; ?></div></div><?php wp_reset_postdata(); endif;

Contact Form

<div class="row"> <div class="col-md-6"> [text* contact-name class:form-control placeholder "Imię *"] </div> <div class="col-md-6"> [email* contact-email class:form-control placeholder "E-mail *"] </div> <div class="col-md-6"> [tel contact-phone class:form-control placeholder "Telefon"] </div> <div class="col-md-6"> [text contact-subject class:form-control placeholder "Temat wiadomości"] </div> <div class="col-md-12"> [textarea contact-message class:form-control placeholder "Treść wiadomości"] </div> <div class="col-md-12"> [file contact-file class:form-control] </div> <div class="col-md-12"> [select contact-select class:form-select include_blank "Select 1" "Select 2" "Select 3"] </div> <div class="col-md-6"> [checkbox contact-checkbox use_label_element "Default checkbox " "Default checkbox 2"] </div> <div class="col-md-6"> [radio contact-radio use_label_element default:1 "Default radio " "Default radio 2"] </div> <div class="col-md-12"> [acceptance contact-acceptance] Wyrazam zgode na przetwarzanie danych [/acceptance] </div> <div class="col-md-12"> [response] [submit class:button "Wyślij"] </div> </div>

Tabs

* v4.0 <ul class="nav nav-tabs" role="tablist"> <li class="nav-item"> <a id="11111-tab" href="#11111" aria-controls="11111" class="nav-link active" data-toggle="tab" role="tab" aria-selected="true">11111</a> </li> <li class="nav-item"> <a id="22222-tab" href="#22222" aria-controls="22222" class="nav-link" data-toggle="tab" role="tab" aria-selected="false">22222</a> </li> </ul> <div class="tab-content"> <div class="tab-pane fade show active" id="11111" role="tabpanel" aria-labelledby="11111-tab"> </div> <div class="tab-pane fade" id="22222" role="tabpanel" aria-labelledby="22222-tab"> </div> </div> * v5.0 <ul class="nav nav-tabs" role="tablist"> <li class="nav-item" role="presentation"> <a class="nav-link active" data-bs-toggle="tab" href="#tab-11111" role="tab" aria-selected="true">11111</a> </li> <li class="nav-item" role="presentation"> <a class="nav-link" data-bs-toggle="tab" href="#tab-22222" role="tab" aria-selected="false">22222</a> </li> </ul> <div class="tab-content"> <div class="tab-pane fade show active" id="tab-11111" role="tabpanel"> </div> <div class="tab-pane fade" id="tab-22222" role="tabpanel"> </div> </div>

Accordion

* v4.0 <div id="XXXXX-accordion" class="accordion"> <div class="card"> <h3 class="card-header"> <button data-target="#XXXXX-11111" aria-controls="XXXXX-11111" type="button" data-toggle="collapse" aria-expanded="false"></button> </h3> <div id="XXXXX-11111" class="collapse" data-parent="#XXXXX-accordion"> <div class="card-body"></div> </div> </div> <div class="card"> <h3 class="card-header"> <button data-target="#XXXXX-22222" aria-controls="XXXXX-22222" type="button" data-toggle="collapse" aria-expanded="false"></button> </h3> <div id="XXXXX-22222" class="collapse" data-parent="#XXXXX-accordion"> <div class="card-body"></div> </div> </div> </div> * v5.0 <div class="accordion" id="XXXXX-accordion"> <div class="accordion-item"> <h3 class="accordion-header"> <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#XXXXX-11111" aria-expanded="true" aria-controls="XXXXX-11111"></button> </h3> <div id="XXXXX-11111" class="accordion-collapse collapse show" data-bs-parent="#XXXXX-accordion"> <div class="accordion-body"></div> </div> </div> <div class="accordion-item"> <h3 class="accordion-header"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#XXXXX-22222" aria-expanded="false" aria-controls="XXXXX-22222"></button> </h3> <div id="XXXXX-22222" class="accordion-collapse collapse" data-bs-parent="#XXXXX-accordion"> <div class="accordion-body"></div> </div> </div> </div>

Modal

* v4.0 <button class="button" data-toggle="modal" data-target="#XXXXX"></button> <div class="modal fade" id="XXXXX" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <h3 class="modal-title"></h3> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> </div> <div class="modal-body"> </div> </div> </div> </div> * v5.0 <button class="button" data-bs-target="#XXXXX" data-bs-toggle="modal" type="button"></button> <div class="modal fade" id="XXXXX" tabindex="-1" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h3 class="modal-title"></h3> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> </div> </div> </div> </div>

Rotate Text

<div class="row"> <div class="col-md-6" data-aos="fade-right"> <h2></h2> <p></p> <a href="#" class="button"></a> </div> <div class="col-md-5" data-aos="fade-left"> <img src="" alt=""> </div> <div class="col-md-1" data-aos="fade-up"> <div class="site__text"></div> </div> </div> .col-md-1 { display: flex; align-self: stretch; justify-content: flex-end; align-items: flex-start; overflow: hidden; } .site { &__text { position: relative; color: #333333; text-transform: uppercase; white-space: nowrap; transform-origin: center right 0; position: relative; top: -15px; right: 50%; @include font(25px,1.2,100); @include css3(transform, rotate(-90deg) ); &:before { position: absolute; content: ''; background: $primary-color; height: 2px; width: 500%; top: 50%; margin-top: -3px; left: calc(-500% - 20px); } } }

Languages Shortcode

/** * WPML Languages Shortcode */ function wpml_languages_shortcode() { $output = ''; if ( function_exists( 'icl_object_id' ) ) { $languages = icl_get_languages( 'skip_missing=0' ); if ( is_array( $languages ) && count( $languages ) > 1 ) { $output .= '<ul class="languages">'; foreach( $languages as $language ) { $img_src = $language['country_flag_url']; // get_template_directory_uri() . '/images/lang/' . $language['code'] . '.png'; if ( isset( $language['active'] ) && $language['active'] ) { $output .= '<li class="item current"><img src="' . $img_src . '" alt="' . $language['code'] . '" /></li> '; } else { $output .= '<li class="item"><a href="' . $language['url'] . '"><img src="' . $img_src . '" alt="' . $language['code'] . '" /> </a></li> '; } } $output .= '</ul>'; } } return $output; } add_shortcode( 'wpml_languages', 'wpml_languages_shortcode' );

Package Rates

/** * Package Rates */ function woo_package_rates( $package_rates, $package ) { if ( ! is_admin() ) { $free_rates = array(); foreach ( $package_rates as $package_rate_ID => $package_rate ) { if ( $package_rate->method_id === 'free_shipping' ) { $free_rates[$package_rate_ID] = $package_rate; } } if ( ! empty( $free_rates ) ) { $package_rates = $free_rates; } } return $package_rates; } add_filter( 'woocommerce_package_rates', 'woo_package_rates', 10, 2 ); /** * Trigger Ajax checkout refresh | On shipping method change */ $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() { $( 'body' ).trigger( 'update_checkout' ); }); /** * Enabling, disabling and refreshing session shipping methods data */ function woo_refresh_shipping_methods( $post_data ){ $bool = true; if ( WC()->session->get( 'chosen_payment_method' ) ) { $bool = false; } foreach ( WC()->cart->get_shipping_packages() as $package_key => $package ){ WC()->session->set( 'shipping_for_package_' . $package_key, $bool ); } WC()->cart->calculate_shipping(); } add_action( 'woocommerce_checkout_update_order_review', 'woo_refresh_shipping_methods', 10, 1 ); /** * Woo Package Rates * * bacs | Przelew bankowy * cod | Za pobraniem * transferuj | Tpay * payu | PayU */ function woo_package_rates( $package_rates, $package ) { if ( ! is_admin() ) { /** * Remove: Pocztex Kurier 48 (Paczka ekonomiczna) | 9.90 * Remove: Kurier InPos | 14.00 * * If Payment Method == "Za pobraniem" */ if ( WC()->session->get( 'chosen_payment_method' ) == 'cod' ) { unset( $package_rates['flat_rate:2'] ); unset( $package_rates['flat_rate:4'] ); } /** * Remove: Pocztex Kurier 48 (Paczka ekonomiczna) | 12.36 * Remove: Kurier InPos | 17.00 * * If Payment Method != "Za pobraniem" */ else { unset( $package_rates['flat_rate:3'] ); unset( $package_rates['flat_rate:5'] ); } } return $package_rates; } add_filter( 'woocommerce_package_rates', 'woo_package_rates', 10, 2 ); /** * Woo Package Rates */ function woo_package_rates( $package_rates, $package ) { if ( ! is_admin() ) { global $woocommerce; $subtotal = $woocommerce->cart->subtotal; /** * Remove: Przesyłka "za pobraniem": Paczka Mini | 11.60 * Remove: Przesyłka "za pobraniem": Paczka Standard | 13.50 * * If Cart Total < 492 zl */ if ( $subtotal < 492 ) { unset( $package_rates['flat_rate:10'] ); // Przesyłka "za pobraniem": Paczka Mini | 11.60 unset( $package_rates['flat_rate:11'] ); // Przesyłka "za pobraniem": Paczka Standard | 13.50 } /** * Remove: Przesyłka "za pobraniem": Paczka Mini | 9.20 * Remove: Przesyłka "za pobraniem": Paczka Standard | 11.10 * * If Cart Total >= 492 zl */ else { unset( $package_rates['flat_rate:6'] ); // Przesyłka "za pobraniem": Paczka Mini | 9.20 unset( $package_rates['flat_rate:7'] ); // Przesyłka "za pobraniem": Paczka Standard | 11.10 } /** * Remove: Płatność z góry: Paczka Mini | 6,70 * If exist: Płatność z góry: Paczka Standard | 8,60 */ if ( array_key_exists( 'flat_rate:1', $package_rates ) && array_key_exists( 'flat_rate:3', $package_rates ) ) { unset( $package_rates['flat_rate:1'] ); } } return $package_rates; } add_filter( 'woocommerce_package_rates', 'woo_package_rates', 10, 2 );

Payment Gateways

/** * Woo Available Payment Gateways * * bacs | Przelew bankowy * cod | Za pobraniem * transferuj | Tpay * payu | PayU */ function woo_available_payment_gateways( $gateways ) { if ( ! is_admin() ) { $package_rates = WC()->session->get( 'chosen_shipping_methods' ); /** * Remove: PayU Gateway * * If exist: */ if ( in_array( 'flat_rate:10', $package_rates ) || // Przesyłka "za pobraniem": Paczka Mini | 11.60 in_array( 'flat_rate:11', $package_rates ) // Przesyłka "za pobraniem": Paczka Standard | 13.50 ) : unset( $gateways['payu'] ); endif; } return $gateways; } add_filter( 'woocommerce_available_payment_gateways', 'woo_available_payment_gateways' );

Cart Shipping

/** * Remove Shipping From Cart */ function dotspice_woocommerce_cart_needs_shipping( $needs_shipping ) { if ( ! is_cart() ) { return true; } } add_filter( 'woocommerce_cart_needs_shipping', 'dotspice_woocommerce_cart_needs_shipping' );

Product Ask

Contact Form 7 Dynamic Text Extension Title: Zapytaj o produkt [dynamichidden product-title "CF7_get_post_var key='title'"] [dynamichidden product-url "CF7_URL"] [text* contact-name class:form-control placeholder "Imię*"] [email* contact-email class:form-control placeholder "E-mail*"] [tel* contact-phone class:form-control placeholder "Telefon*"] [textarea* contact-message class:form-control placeholder "Wiadomość*"] [response] [submit class:button "Wyślij"] Temat [product-title] Additional headers Reply-To: [contact-email] Message body Nadawca: [contact-name] <[contact-email]> Produkt: [product-title] Url: [product-url] Telefon: [contact-phone] Treść wiadomości: [contact-message]
/** * Add Button "Zapytaj o produkt" */ function woo_add_custom_button() { global $product; if ( empty( $product->get_price_html() ) ) { $ask_title = __( 'Zapytaj o produkt', 'dotspice' ); $ask_form = '[contact-form-7 id="305" title="Zapytaj o produkt"]'; ?> <button class="button button--reverse button--border button--ask" data-bs-target="#zapytaj-o-produkt" data-bs-toggle="modal" type="button"><?php echo esc_html( $ask_title ); ?></button> <div class="modal fade" id="zapytaj-o-produkt" tabindex="-1" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <div class="modal-header"> <h3 class="modal-title"><?php echo esc_html( $ask_title ); ?></h3> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <?php echo do_shortcode( $ask_form ); ?> </div> </div> </div> </div> <?php } } add_action( 'woocommerce_single_product_summary', 'woo_add_custom_button', 30 );

Password Protected

/** * Change Password Protected Text */ function dotspice_password_protected_text( $output ) { $text = 'XXXXX'; $output = str_replace( 'Ta treść jest chroniona hasłem. Aby ją zobaczyć, podaj hasło poniżej:', $text, $output ); return $output; } add_filter( 'the_password_form', 'dotspice_password_protected_text', 999); /** * Remove Pass from Title */ function dotspice_remove_pass_from_title( $title ) { $title = str_replace( 'Zabezpieczony: ', '', $title ); return $title; } add_filter( 'the_title', 'dotspice_remove_pass_from_title' );

Custom Post Types

/** * Add custom post types */ function dotspice_add_custom_post_types() { // Product register_post_type( 'produkt', array( 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => 5, 'menu_icon' => 'dashicons-admin-post', 'supports' => array( 'title','editor','thumbnail', 'excerpt' ), 'labels' => array( 'name' => 'Produkty', 'singular_name' => 'Produkt', 'menu_name' => 'Produkty' ), ) ); // Producty register_taxonomy( 'producty', array( 'produkt' ), array( 'show_ui' => true, 'public' => true, 'hierarchical' => true, 'labels' => array( 'name' => 'Kategorie', 'singular_name' => 'Kategoria', 'menu_name' => 'Kategorie', ), ) ); } add_action( 'init', 'dotspice_add_custom_post_types' );