Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: ANLEITUNG: Nur günstigste Versandart einblenden

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.973
    • Geschlecht:
    Hier als alleinstehende Anleitung was sich im Thread Nur günstigste Versandart einblenden aus Karstas Wunsch und meiner Idee für eine Lösung entwickelt hat:

    Damit kann man lediglich die günstigste Versandart anzeigen lassen und alle anderen ausblenden, sowohl im Warenkorb als auch auf der checkout_shipping.php .

    In /templates/YOUR_TEMPLATE/module/order_detals.html  das
    Code: XML  [Auswählen]
    {foreach name=aussen item=shipping_data from=$shipping_content}
          <li class="otl_row3 cf">

    hiermit ersetzen
    Code: XML  [Auswählen]
    {foreach name=aussen item=shipping_data from=$shipping_content}
          <li class="otl_row3 cf" data-shipp-module="{$shipping_data.QUOTE.id}">

    und in einer PHP-Datei in /includes/extra/application_bottom/, welche ich show_only_cheapest_shipping.php  genannt habe (siehe Kopf der Datei) das anlegen
    Code: PHP  [Auswählen]
    <?php
    /******************************************************
    * file: show_only_cheapest_shipping.php
    * path: /includes/extra/application_bottom/
    * use: show only cheapest shipping module
    *      in shopping cart and checkout
    *
    * © copyright noRiddle, 03-2023
                 ____
                |    |       |     | |
      __   ___  |____/ °  ___|  ___| |  ___
    |/  | |   | |   \  | |   | |   | | |___|
    |   n |___o |    R i |___d |__ d l |__e

    ******************************************************/


    if(basename($PHP_SELF, '.php') == 'shopping_cart') {
      if(!isset($shipping) || !is_object($shipping)) {
        if(!class_exists('shipping')) {
          require_once (DIR_WS_CLASSES.'shipping.php');
        }
        $shipping = new shipping;
      }
      $chpst = $shipping->cheapest();
      $data_module = explode('_', $chpst['id'])[0];
    ?>
    <script>
    $(function() {
      let $desired_lis = $('.ord_total_list li.otl_row3');
      $desired_lis.each(function() {
        //if($(this).data('shipp-module') != '<?php echo $data_module; ?>') {
        if($(this).data('shipp-module') != '<?php echo $data_module; ?>' && $(this).data('shipp-module') != 'selfpickup') {
          $(this).hide();
        }
      });
    });
    </script>
    <?php
    } else if(basename($PHP_SELF, '.php') == 'checkout_shipping') {
      if(!isset($shipping_modules) || !is_object($shipping_modules)) {
        $shipping_modules = new shipping;
      }
      $chpst = $shipping_modules->cheapest();
      $data_module = $chpst['id'];
    ?>
    <script>
    $(function() {
      let $desired_lis = $('.resp-tabs-container').find('input[name="shipping"]');
      $desired_lis.each(function() {
        //if($(this).val() != '<?php echo $data_module; ?>') {
        if($(this).val() != '<?php echo $data_module; ?>' && $(this).val() != 'selfpickup_selfpickup') {
          $(this).parent().parent('h2').hide();
        }
      });
    });
    </script>
    <?php
    }
    ?>

    Gruß,
    noRiddle

    [EDIT Tomcraft 13.04.2023: Anleitung aktualisiert.]

    Linkback: https://www.modified-shop.org/forum/index.php?topic=42855.0

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.366
    • Geschlecht:
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #1 am: 07. März 2023, 10:33:32
    Danke dir. :thumbs:

    Grüße

    Torsten

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.973
    • Geschlecht:
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #2 am: 07. März 2023, 19:58:56
    *NACHTRAG*
    Karstas Wunsch "Selbstabholung" vom Ausblenden auszuschließen ist natürlich begründet.
    (Ab hier kommentiert: Nur günstigste Versandart einblenden | Antwort #8)
    Dafür sollte es dann so aussehen (alte Zeilen jeweils auskommentiert):
    Code: PHP  [Auswählen]
    <?php
    /******************************************************
    * file: show_only_cheapest_shipping.php
    * path: /includes/extra/application_bottom/
    * use: show only cheapest shipping module
    *      in shopping cart and checkout
    *
    * © copyright noRiddle, 03-2023
                 ____
                |    |       |     | |
      __   ___  |____/ °  ___|  ___| |  ___
    |/  | |   | |   \  | |   | |   | | |___|
    |   n |___o |    R i |___d |__ d l |__e

    ******************************************************/


    if(basename($PHP_SELF, '.php') == 'shopping_cart') {
      if(!isset($shipping) || !is_object($shipping)) {
        if(!class_exists('shipping')) {
          require_once (DIR_WS_CLASSES.'shipping.php');
        }
        $shipping = new shipping;
      }
      $chpst = $shipping->cheapest();
      $data_module = explode('_', $chpst['id'])[0];
    ?>
    <script>
    $(function() {
      let $desired_lis = $('.ord_total_list li.otl_row3');
      $desired_lis.each(function() {
        //if($(this).data('shipp-module') != '<?php echo $data_module; ?>') {
        if($(this).data('shipp-module') != '<?php echo $data_module; ?>' && $(this).data('shipp-module') != 'selfpickup') {
          $(this).hide();
        }
      });
    });
    </script>
    <?php
    } else if(basename($PHP_SELF, '.php') == 'checkout_shipping') {
      if(!isset($shipping_modules) || !is_object($shipping_modules)) {
        $shipping_modules = new shipping;
      }
      $chpst = $shipping_modules->cheapest();
      $data_module = $chpst['id'];
    ?>
    <script>
    $(function() {
      let $desired_lis = $('.resp-tabs-container').find('input[name="shipping"]');
      $desired_lis.each(function() {
        //if($(this).val() != '<?php echo $data_module; ?>') {
        if($(this).val() != '<?php echo $data_module; ?>' && $(this).val() != 'selfpickup_selfpickup') {
          $(this).parent().parent('h2').hide();
        }
      });
    });
    </script>
    <?php
    }
    ?>

    Gruß,
    noRiddle

    [EDIT Tomcraft 13.04.2023: Code in Beitrag 1 übernommen.]

    drahtbiegeteil

    • Neu im Forum
    • Beiträge: 25
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #3 am: 30. März 2023, 19:50:49
    Vielen Dank an noRiddle.

    Funktioniert im Warenkorb einwandfrei.

    Jedoch werden bei mir in der checkout_shipping.php immer noch beide Versandarten angezeigt. Habe ich etwas falsch gemacht?

    Viele Grüße
    Manfred

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.973
    • Geschlecht:
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #4 am: 30. März 2023, 21:00:44
    Shop-Version ?
    Ich kenne deinen Shop und dein Template nicht.
    Das funktioniert nur dann wenn auf der checkout_shipping.php  das Akkordeon für die Versandarten angezeigt wird.
    Wenn du ein nicht standard-gemäßes Template hast, d.h. eines, welches nicht auf tpl_modified_responsive  aufbaut, muß man sich das anschauen und das Javascript evtl. angepasst werden.

    Gruß,
    noRiddle

    drahtbiegeteil

    • Neu im Forum
    • Beiträge: 25
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #5 am: 01. April 2023, 10:57:46
    Hallo noRiddle,

    mein Shop läuft in der Version 2.0.7.2 rev14622 und das Template heißt Summer von templatix, ehemals bannershop24.

    Ich poste mal die checkout_shipping_block.html. Habe dazwar  irgendwas von accordion gelesen, aber scheint wohl nicht zu funktionieren. Welche Javascript müsste denn angepasst werden?

    VG
    Manfred

    Code: PHP  [Auswählen]
        {if $FREE_SHIPPING}
                            <div class="panel-heading">
                                            <p class="panel-title">
                                    <div class="radio" style="margin:0;"><label>
                                                    {$FREE_SHIPPING_TITLE|onlytext}
                                    </label>
                                    </div>
                                            </p>
                            </div>
                                    <div class="panel-body">
                                            <div>{$FREE_SHIPPING_DESCRIPTION}</div>
                                    </div>
        {else}
                    <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="false">
                    {foreach name=outer item=module_data from=$module_content}
                    {if $module_data.error != ''}
                            <div class="panel panel-default">
                                    <div class="panel-heading" role="tab" id="acc{$smarty.foreach.outer.iteration}" style="padding:0;">
                                            <p class="panel-title">
                                                    <span role="button" data-toggle="collapsex" data-parent="#accordion" data-target="#acc_{$smarty.foreach.outer.iteration}" aria-expanded="true" aria-controls="acc_{$smarty.foreach.outer.iteration}" >
                                                            <span class="radio" style="margin:0;">
                                                                    <label style="width:100%;">
                                                                            {$module_data.module|onlytext}
                                                                            <span class="more-less fa fa-angle-down text-muted pull-right"></span>
                                                                    </label>
                                                            </span>
                                                    </span>
                                            </p>
                                    </div>
                                    <div id="acc_{$smarty.foreach.outer.iteration}" class="panel-collapse" role="tabpanel" aria-labelledby="acc{$smarty.foreach.outer.iteration}">
                                            <div class="panel-body">
                                                    <div>{$module_data.error}</div>
                                            </div>
                                    </div>
                            </div>
                    {else}
                                    {foreach name=inner item=method_data from=$module_data.methods}
                                    <div class="panel panel-default">
                                            <div class="panel-heading" role="tab" id="acc{$smarty.foreach.outer.iteration}" style="padding:0;">
                                                    <p class="panel-title">
                                                            <span role="button" data-toggle="collapsex" data-parent="#accordion" data-target="#acc_{$smarty.foreach.outer.iteration}" aria-expanded="true" aria-controls="acc_{$smarty.foreach.outer.iteration}" >
                                                                    <span class="radio" style="margin:0;">
                                                                            <label style="width:100%;">
                                                            {$method_data.radio_field}
                                                                                    {$module_data.module}
                                                                                    <span class="more-less fa fa-angle-down text-muted pull-right"></span>
                                                                                    <span class="pull-right">{$method_data.price}&nbsp;&nbsp;</span>
                                                                            </label>
                                                                    </span>
                                                            </span>
                                                    </p>
                                            </div>
                                            <div id="acc_{$smarty.foreach.outer.iteration}" class="panel-collapse" role="tabpanel" aria-labelledby="acc{$smarty.foreach.outer.iteration}">
                                                    <div class="panel-body">
                                                            <div>{$module_data.icon} {$method_data.title}</div>
                                                    </div>
                                            </div>
                                    </div>
                            {/foreach}
                    {/if}
                    {/foreach}
                    </div>
        {/if}

     

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.973
    • Geschlecht:
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #6 am: 01. April 2023, 22:22:15
    Mit diesem Code allein kann ich nichts anfangen (und weigere mich auch solch chaotisch formatierten Code überhaupt anzuschauen). Im Original-Template werden eine Reihe HTML-Elemente per Javascript generiert, was bei deinem Template wahrscheinlich ebenso ist.
    Ohne Link zur Webseite, oder besser, damit ich mir kein Konto erstellen muß, den generierten  HTML-Code, kann ich nicht weiterhelfen.
    Gehe einfach mit dem Browser-Tool (rechte Maustaste => Untersuchen) an die entsprechende Stelle und kopiere den HTML-Code daraus und poste ihn hier (in Code-tags !).

    Gruß,
    noRiddle

    drahtbiegeteil

    • Neu im Forum
    • Beiträge: 25
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #7 am: 02. April 2023, 10:47:54
    Hallo noRiddle,

    sorry. Ich kann leider nicht beurteilen, dass der Code chaotisch ist, dafür fehlen mir weiterreichende Programmierkenntnisse.

    Ich poste mal den generierten HTML-Code von dem Checkout-Shipping-Block. Vielleicht hilft das Dir ja weiter.

    VG

    Code: PHP  [Auswählen]
    <div class="span6 shipping">
         
    <h2>Versandart wählen</h2>
    <div class="well well-small checkout">
    <p>Bitte wählen Sie die gewünschte Versandart für Ihre Bestellung aus.</p>
    <div>                   <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="false">
                                                                                                    <div class="panel panel-default">
                                            <div class="panel-heading" role="tab" id="acc1" style="padding:0;">
                                                    <p class="panel-title">
                                                            <span role="button" data-toggle="collapsex" data-parent="#accordion" data-target="#acc_1" aria-expanded="true" aria-controls="acc_1">
                                                                    <span class="radio" style="margin:0;">
                                                                            <label style="width:100%;">
                                                            <input type="radio" name="shipping" value="table_table" id="rd-0">
                                                                                    Versand per Spedition
                                                                                    <span class="more-less fa fa-angle-down text-muted pull-right"></span>
                                                                                    <span class="pull-right">199,00 EUR&nbsp;&nbsp;</span>
                                                                            </label>
                                                                    </span>
                                                            </span>
                                                    </p>
                                            </div>
                                            <div id="acc_1" class="panel-collapse" role="tabpanel" aria-labelledby="acc1">
                                                    <div class="panel-body">
                                                            <div> Palette DE:  (5.03 kg)</div>
                                                    </div>
                                            </div>
                                    </div>
                                                                                                                                            <div class="panel panel-default">
                                            <div class="panel-heading" role="tab" id="acc2" style="padding:0;">
                                                    <p class="panel-title">
                                                            <span role="button" data-toggle="collapsex" data-parent="#accordion" data-target="#acc_2" aria-expanded="true" aria-controls="acc_2">
                                                                    <span class="radio" style="margin:0;">
                                                                            <label style="width:100%;">
                                                            <input type="radio" name="shipping" value="flat_flat" id="rd-1">
                                                                                    Sperrgutversand
                                                                                    <span class="more-less fa fa-angle-down text-muted pull-right"></span>
                                                                                    <span class="pull-right">299,00 EUR&nbsp;&nbsp;</span>
                                                                            </label>
                                                                    </span>
                                                            </span>
                                                    </p>
                                            </div>
                                            <div id="acc_2" class="panel-collapse" role="tabpanel" aria-labelledby="acc2">
                                                    <div class="panel-body">
                                                            <div> Palette</div>
                                                    </div>
                                            </div>
                                    </div>
                                                                            </div>
       
    </div>
    </div>
    </div>

    drahtbiegeteil

    • Neu im Forum
    • Beiträge: 25
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #8 am: 02. April 2023, 10:51:01
    Nachtrag

    Ich vermute mal, dass es über nachfolgendes Script vom Template gesteuert wird.

    Code: PHP  [Auswählen]
    <?php
      /* --------------------------------------------------------------
       $Id: bs24_script.js.php 12483 2020-01-03 13:23:36Z swolfram $
       Copyright (c) 2009 - 2020 [www.bannershop24.de]
       --------------------------------------------------------------*/

    ?>
    <script type="text/javascript">
        $(document).ready(function(){$("#bs24slider").owlCarousel({items:1,loop:true,center:true,autoplay:true,autoplayHoverPause:true,animateOut: 'fadeOut',
        smartSpeed:450,
        autoplayTimeout: 6500,
        nav:true
    });
        $("#my-menu").mmenu({extensions: ["theme-dark", "effect-slide-menu", "effect-slide-listitems","fx-menu-slide","fx-panels-slide-0", "pagedim-black"],offCanvas: { position: "right", zposition : "front"},classNames: {fixedElements: {fixed: "phonenav" }},backButton: {close:true },counters: false,header: {add:true,update:true},backButton:true,slidingSubmenus: true}, {clone:true});
    });
        $(function() {
        $('.thickbox').click(function(e){e.preventDefault();var imgPath = $(this).attr("href");$('#modal #modalLabel').html(this.title);$('#modal .modal-body').html('<img src="' +imgPath+ '" alt="" class="center-block" />');$('#modal').on('show', function () { $('.modal-body img').css('max-height',$(window).innerHeight()/100*80-30); });$("#modal").modal('show');$('#modal').on('hidden', function() {$(this).removeData('modal');});});
        $('.contentbox').click(function(ev){ev.preventDefault();var target = $(this).attr("href");$('#modal #modalLabel').html(this.title);$('#modal').modal({remote: target});$("#modal").modal('show');$('#modal').on('hidden', function() {$(this).removeData('modal');});}); var c = document.cookie;
        $('.collapsebox').each(function () {if (this.id) { var pos = c.indexOf(this.id + "_collapse_in="); if (pos > -1) { c.substr(pos).split('=')[1].indexOf('false') ? $(this).addClass('in') : $(this).removeClass('in');}}}).on('hidden shown', function () {if (this.id) { document.cookie = this.id + "_collapse_in=" + $(this).hasClass('in');}});
        $('div.accordion-body').on('shown', function () { $(this).parent("div").find(".icon-chevron-down").removeClass("icon-chevron-down").addClass("icon-chevron-up");});
        $('div.accordion-body').on('hidden', function () { $(this).parent("div").find(".icon-chevron-up").removeClass("icon-chevron-up").addClass("icon-chevron-down");});
        $('div.accordion-body').on('shown', function (a) {
        var panelHeadingHeight = $('.accordion-heading').height() + $('.mobnav').height() + 90;
        var animationSpeed = 350; // animation speed in milliseconds
        var currentScrollbarPosition = $(document).scrollTop();
        var topOfPanelContent = $(a.target).offset().top;
        if ( currentScrollbarPosition >  topOfPanelContent - panelHeadingHeight) {
        $("html, body").animate({ scrollTop: topOfPanelContent - panelHeadingHeight }, animationSpeed);
    }});
        if (document.documentElement.clientWidth > 767) {$('.collapsebox').addClass('in')};
        if (document.documentElement.clientWidth > 767) {$('.accordion-body').addClass('in')};
    });
        lightGallery(document.getElementById('lightgallery'), {
        plugins: [lgZoom, lgThumbnail],
        mode: 'lg-tube',
        speed: 500,
        download:false,
        licenseKey: '3E7CCC36-1F1D4308-9AE9885C-CD620DF4'
    });
    </script>
    <?php
    if (strpos($PHP_SELF, FILENAME_SHOPPING_CART)) {
    ?>
    <script type="text/javascript">
        /* <![CDATA[ */
        $(document).ready(function() {$("input[name='cart_quantity[]']").on("change", function(){$("#cart_quantity").submit();});});
    /*]]>*/
    </script>
    <?php
    }
    ?>
    <script type="text/javascript">

    $(document).ready(function() {


        $(".unveil").show();
        $(".unveil").unveil(200);

        var navpos = $('nav').offset();
        console.log(navpos.top);
        $(window).bind('scroll', function () {
        if ($(window).scrollTop() > '222') {
        $('nav').addClass('sticky');
    } else {
        $('nav').removeClass('sticky');
    }
    });
    });
        $(window).on('load', function () {
        var update = function(){
        $.fn.matchHeight._update();
    };
        $(".box2 .bild").matchHeight();
        $(".box2 .pricing").matchHeight();
        $("h2.artikelbox").matchHeight();
        $(".box2").matchHeight();
        $(".highlightbox2").matchHeight();
        $(".same-height").matchHeight();
        $("#checkoutnavigation li").matchHeight();
        $(".logintext").matchHeight();
        $("#checkoutnavigation li").matchHeight();
    /*    this.addEventListener('lazyloaded', update, true);*/

    });
    $('.show_rating input').change(function () {
        var $radio = $(this);
        $('.show_rating .selected').removeClass('selected');
        $radio.closest('label').addClass('selected');
    });



    $(document).ready(function(){

        $("#catmenu").sticky({
            topSpacing: 0
        });
        $(window).scroll(function(){
            if ($(this).scrollTop() > 100) {
                $('.scrollToTop').fadeIn();
            } else {
                $('.scrollToTop').fadeOut();
            }
        });

        //Click event to scroll to top
        $('.scrollToTop').click(function(){
        $('html, body').animate({scrollTop : 0},800);
        return false;
    });
    });

    </script>
    <a href="#" class="scrollToTop"></a>

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.973
    • Geschlecht:
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #9 am: 02. April 2023, 11:11:55
    Für formatierten Code benötigt man keine Programmierkenntnisse.
    So sieht formatierter Code aus, am Beispiel deines zuletzt geposteten HTML-Codes.
    Code: XML  [Auswählen]
    <div class="span6 shipping">
      <h2>Versandart wählen</h2>
      <div class="well well-small checkout">
        <p>Bitte wählen Sie die gewünschte Versandart für Ihre Bestellung aus.</p>
        <div>
          <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="false">
            <div class="panel panel-default">
              <div class="panel-heading" role="tab" id="acc1" style="padding:0;">
                <p class="panel-title">
                  <span role="button" data-toggle="collapsex" data-parent="#accordion" data-target="#acc_1" aria-expanded="true" aria-controls="acc_1">
                    <span class="radio" style="margin:0;">
                      <label style="width:100%;">
                        <input type="radio" name="shipping" value="table_table" id="rd-0">
                        Versand per Spedition
                        <span class="more-less fa fa-angle-down text-muted pull-right"></span>
                        <span class="pull-right">199,00 EUR&nbsp;&nbsp;</span>
                      </label>
                    </span>
                  </span>
                </p>
              </div>
              <div id="acc_1" class="panel-collapse" role="tabpanel" aria-labelledby="acc1">
                <div class="panel-body">
                    <div> Palette DE:  (5.03 kg)</div>
                </div>
              </div>
            </div>
            <div class="panel panel-default">
              <div class="panel-heading" role="tab" id="acc2" style="padding:0;">
                <p class="panel-title">
                  <span role="button" data-toggle="collapsex" data-parent="#accordion" data-target="#acc_2" aria-expanded="true" aria-controls="acc_2">
                    <span class="radio" style="margin:0;">
                      <label style="width:100%;">
                        <input type="radio" name="shipping" value="flat_flat" id="rd-1">
                        Sperrgutversand
                        <span class="more-less fa fa-angle-down text-muted pull-right"></span>
                        <span class="pull-right">299,00 EUR&nbsp;&nbsp;</span>
                      </label>
                    </span>
                  </span>
                </p>
              </div>
              <div id="acc_2" class="panel-collapse" role="tabpanel" aria-labelledby="acc2">
                <div class="panel-body">
                  <div> Palette</div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>

    Wer soll das sonst lesen ?
    Man macht es wenn man Hilfe möchte den Helfenden möglichst einfach.
    Wenn die erst Aufwand betreiben müssen um zu helfen dürfte die Bereitschaft dazu bei den allermeisten gering bis Null sein.

    Versuche es mal so, was das Javascript betrifft:
    Anstatt diesem
    Code: PHP  [Auswählen]
    <script>
    $(function() {
      let $desired_lis = $('.resp-tabs-container').find('input[name="shipping"]');
      $desired_lis.each(function() {
        //if($(this).val() != '<?php echo $data_module; ?>') {
        if($(this).val() != '<?php echo $data_module; ?>' && $(this).val() != 'selfpickup_selfpickup') {
          $(this).parent().parent('h2').hide();
        }
      });
    });
    </script>

    das
    Code: PHP  [Auswählen]
    <script>
    $(function() {
      let $desired_lis = $('.panel-group').find('input[name="shipping"]');
      $desired_lis.each(function() {
        //if($(this).val() != '<?php echo $data_module; ?>') {
        if($(this).val() != '<?php echo $data_module; ?>' && $(this).val() != 'selfpickup_selfpickup') {
          $(this).parents('.panel-default').hide();
        }
      });
    });
    </script>

    Gruß,
    noRiddle

    *NACHTRAG*
    Evtl. ist
    Code: Javascript  [Auswählen]
    $(this).closest('.panel-default').hide();

    schneller als
    Code: Javascript  [Auswählen]
    $(this).parents('.panel-default').hide();

    drahtbiegeteil

    • Neu im Forum
    • Beiträge: 25
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #10 am: 02. April 2023, 11:59:16
    Hallo noRiddle,

    funktioniert jetzt einwandfrei. Vielen, vielen Dank für die schnelle Hilfe und nochmals Sorry für meine Unbedarftheit.

    VG

    drahtbiegeteil

    • Neu im Forum
    • Beiträge: 25
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #11 am: 17. Januar 2024, 18:31:22
    Hallo noRiddle, hallo an die Community,

    gibt es zu diesem Thread schon eine Lösung für die Shopversion 3.0.0 bzw. 3.0.2, speziell für das super gelungene Nova-Template? Im Warenkorb werden leider alle Versandmöglichkeiten angezeigt. Auf der Checkout_Shipping wird dann wieder nur die günstigste Versandart angezeigt.

    Ist für den Kunden etwas verwirrend, wenn wie bei mir dann 5 verschiedene Versandarten aufgelistet werden.

    Danke im Voraus für Eure Hilfe.

    VG
    Manfred

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.973
    • Geschlecht:
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #12 am: 19. Januar 2024, 09:14:35
    Für die 3.0.X Shop-Versionen und Nutzung des tpl_modified_nova  oder Ableger davon:

    In /templates/YOUR_TEMPLATE/module/shopping_cart.html  das suchen
    Code: PHP  [Auswählen]
    <div class="ordertotal_row ot_shipping">

    und hiermit ersetzen
    Code: PHP  [Auswählen]
    <div class="ordertotal_row ot_shipping" data-shipp-module="{$shipping_data.QUOTE.id}"> {*added QUOTE.id for method recognition, noRiddle, 01-2024*}

    Das Skript für die /includes/extra/application_bottom/:
    Code: PHP  [Auswählen]
    <?php
    /******************************************************
    * file: show_only_cheapest_shipping.php
    * path: /includes/extra/application_bottom/
    * use: show only cheapest shipping module
    *      in shopping cart and checkout
    +      !! for shop versions 3.0.X !!
    *
    * © copyright, noRiddle, 01-2024
                 ____
                |    |       |     | |
      __   ___  |____/ °  ___|  ___| |  ___
    |/  | |   | |   \  | |   | |   | | |___|
    |   n |___o |    R i |___d |__ d l |__e

    ******************************************************/


    if(basename($PHP_SELF, '.php') == 'shopping_cart') {
      if(!isset($shipping) || !is_object($shipping)) {
        if(!class_exists('shipping')) {
          require_once (DIR_WS_CLASSES.'shipping.php');
        }
        if(!isset($shipping_modules) || !is_object($shipping_modules)) {
          $shipping = new shipping;
        }
      }
      $chpst = $shipping->cheapest();
      $data_module = explode('_', $chpst['id'])[0];
    ?>
    <script>
    $(function() {
      let $desired_cont = $('.ordertotal_row.ot_shipping');
      $desired_cont.each(function() {
        if($(this).data('shipp-module') != '<?php echo $data_module; ?>' && $(this).data('shipp-module') != 'selfpickup') {
          $(this).hide();
        }
      });
    });
    </script>
    <?php
    } else if(basename($PHP_SELF, '.php') == 'checkout_shipping') {
      if(!isset($shipping_modules) || !is_object($shipping_modules)) {
        $shipping_modules = new shipping;
      }
      $chpst = $shipping_modules->cheapest();
      $data_module = $chpst['id'];
    ?>
    <script>
    $(function() {
      let $desired_cont = $('.resp-tabs-container').find('input[name="shipping"]');
      $desired_cont.each(function() {
        if($(this).val() != '<?php echo $data_module; ?>' && $(this).val() != 'selfpickup_selfpickup') {
          $(this).parents('.resp-tab-contents').hide();
        }
      });
    });
    </script>
    <?php
    }
    ?>

    Gruß,
    noRiddle

    drahtbiegeteil

    • Neu im Forum
    • Beiträge: 25
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #13 am: 19. Januar 2024, 12:17:04
    Hallo noRiddle,

    funktioniert Prima. Herzlichen Dank.

    VG
    Manfred

    bumerang24

    • Fördermitglied
    • Beiträge: 189
    • Geschlecht:
    Re: ANLEITUNG: Nur günstigste Versandart einblenden
    Antwort #14 am: 19. Januar 2024, 15:52:09
    :thx:

    Funkt perfekt, und sieht optisch besser aus Danke für die Idee, und auch das umsetzen

    Grüße

    Guido
    13 Antworten
    2837 Aufrufe
    07. März 2023, 10:32:17 von Tomcraft
    1 Antworten
    2421 Aufrufe
    20. Oktober 2015, 22:34:46 von ARS
    16 Antworten
    9968 Aufrufe
    07. November 2017, 09:57:11 von Karfunkel