WooCommerce Plus- und Minus-Schaltflächen

Lesezeit: 5 Minuten

WooCommerce Plus und Minus Schaltflachen
jörenwouter

Ich bin Webentwickler und möchte mit WooCommerce meinen eigenen Webshop erstellen. Aber ich habe ein Problem, die Plus- und Minus-Schaltflächen auf der Produktseite werden nicht angezeigt. Weiß jemand, wie man diese Schaltflächen erhält (um vielleicht irgendwo Code hinzuzufügen)?

Du musst die „Mengeneingabe“ von woocommerce in deinem Child-Theme überschreiben. Diese befindet sich unter Plugins -> WooCommerce -> Templates -> Global -> Mengeneingabe. Kopieren Sie den Inhalt aus dieser Datei. Erstellen Sie in Ihrem Theme-Ordner ein ‚WooCommerce‘-Verzeichnis. Erstellen Sie in diesem Verzeichnis einen weiteren Ordner mit dem Namen „global“. Fügen Sie den Inhalt hier ein.

Suchen Sie den Code

<input type="number" step="<?php echo esc_attr( $step ); ?>" <?php if ( is_numeric( $min_value ) ) : ?>min="<?php echo esc_attr( $min_value ); ?>"<?php endif; ?> <?php if ( is_numeric( $max_value ) ) : ?>max="<?php echo esc_attr( $max_value ); ?>"<?php endif; ?> name="<?php echo esc_attr( $input_name ); ?>" value="<?php echo esc_attr( $input_value ); ?>" title="<?php _ex( 'Qty', 'Product quantity input tooltip', 'woocommerce' ) ?>" class="input-text qty text" size="4" />

Fügen Sie darüber diesen Codeabschnitt hinzu

<input class="minus" type="button" value="-">

und dieses Stück darunter

<input class="plus" type="button" value="+">

Ihr Gesamtcode würde so aussehen:

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
?>
<div class="quantity">
<input class="minus" type="button" value="-">
<input type="number" step="<?php echo esc_attr( $step ); ?>" <?php if ( is_numeric( $min_value ) ) : ?>min="<?php echo esc_attr( $min_value ); ?>"<?php endif; ?> <?php if ( is_numeric( $max_value ) ) : ?>max="<?php echo esc_attr( $max_value ); ?>"<?php endif; ?> name="<?php echo esc_attr( $input_name ); ?>" value="<?php echo esc_attr( $input_value ); ?>" title="<?php _ex( 'Qty', 'Product quantity input tooltip', 'woocommerce' ) ?>" class="input-text qty text" size="4" />
<input class="plus" type="button" value="+">
</div>

  • Es lohnt sich, das hinzuzufügen irgendein Die im WC-Vorlagenordner gefundene Datei kann auf die gleiche Weise angepasst/überschrieben werden, indem Sie sie in Ihren Themenordner kopieren und nach Bedarf ändern.

    – Dr

    26. September 2014 um 10:49 Uhr

  • Vielen Dank für die Antwort, aber ich habe immer noch ein Problem. Wenn ich auf die Plus- oder Minus-Schaltfläche klicke, passiert nichts mit der Zahleneingabe.

    – Jorenwouter

    12. März 2015 um 14:29 Uhr

  • @jorenwouters, ich weiß, dass dieser Beitrag alt ist, aber ich bekomme auch das gleiche Problem. Hast du die Lösung dazu gefunden? Ich denke, wir müssen das Skript hinzufügen

    – Benutzer9437856

    21. Januar 2021 um 14:25 Uhr


  • Ich habe es irgendwie gelöst, weiß aber nicht mehr wie…

    – Jorenwouter

    26. Januar 2021 um 16:46 Uhr

@RollYourOwnEd Aktualisiertes Javascript, das verhindern kann, dass die Menge in den Minuswert geht:

$('.plus').on('click',function(e){

var val = parseInt($(this).prev('input').val());

$(this).prev('input').val( val+1 );


});
$('.minus').on('click',function(e){

var val = parseInt($(this).next('input').val());
if(val !== 0){
    $(this).next('input').val( val-1 );
} });

  • Danke, dass jquery perfekt mit den Eingaben von WisdmLabs funktioniert hat. TY

    – Rodrigo Zuluaga

    8. Juli 2016 um 4:25 Uhr

Sie müssen hinzufügen .change();

Besser in deinem yourtheme/woocommerce/global/quantity-input.php
Auf diese Weise funktioniert es auch auf der Warenkorbseite.

<script type="text/javascript">
    jQuery(document).ready(function($){
    $('.quantity').on('click', '.plus', function(e) {
        $input = $(this).prev('input.qty');
        var val = parseInt($input.val());
        $input.val( val+1 ).change();
    });

    $('.quantity').on('click', '.minus', 
        function(e) {
        $input = $(this).next('input.qty');
        var val = parseInt($input.val());
        if (val > 0) {
            $input.val( val-1 ).change();
        } 
    });
});
</script> 

WooCommerce Plus und Minus Schaltflachen
RollYourOwnEd

Sie müssen dies auch zu Ihrem Javascript hinzufügen:

$('.plus').on('click',function(e){

    var val = parseInt($(this).prev('input').val());

    $(this).prev('input').val( val+1 );


});

$('.minus').on('click',function(e){

    var val = parseInt($(this).next('input').val());

    $(this).next('input').val( val-1 );


});

Zeigen Sie auf der linken Seite die Einheiten (Zahl mit “+” und “-“) an, die für jedes Produkt mit der Schaltfläche “In den Warenkorb” auf der rechten Seite hinzugefügt werden sollen. Geben Sie den folgenden Code ein Funktionen.php Datei und CSS-Code hinzufügen style.css Datei.

//1. Show Buttons
add_action( 'woocommerce_before_add_to_cart_quantity', 'display_quantity_plus' );
function display_quantity_plus() {
   echo '<button type="button" class="plus" >+</button>';
}
add_action( 'woocommerce_after_add_to_cart_quantity', 'display_quantity_minus' );
function display_quantity_minus() {
   echo '<button type="button" class="minus" >-</button>';
}
//2. Trigger jQuery script
add_action( 'wp_footer', 'add_cart_quantity_plus_minus' );
function add_cart_quantity_plus_minus() {
   // Only run this on the single product page
   if ( ! is_product() ) return; ?>
      <script type="text/javascript">  
      jQuery(document).ready(function($){   
         $('form.cart').on( 'click', 'button.plus, button.minus', function() {
            // Get current quantity values
            var qty = $( this ).closest( 'form.cart' ).find( '.qty' );
            var val   = parseFloat(qty.val());
            var max = parseFloat(qty.attr( 'max' ));
            var min = parseFloat(qty.attr( 'min' ));
            var step = parseFloat(qty.attr( 'step' ));
            // Change the value if plus or minus
            if ( $( this ).is( '.plus' ) ) {
               if ( max && ( max <= val ) ) {
                  qty.val( max );
               } else {
                  qty.val( val + step );
               }
            } else {
               if ( min && ( min >= val ) ) {
                  qty.val( min );
               } else if ( val > 1 ) {
                  qty.val( val - step );
               }
            } 
         }); 
      });  
      </script>
   <?php
}

CSS-Code

.woocommerce div.product .entry-summary .cart div.quantity{
    float: none;
    margin: 0;
    display: inline-block;
}
.woocommerce div.product form.cart .button {
    vertical-align: middle;
    float: none;
}

  • Das funktioniert großartig, aber was ist damit: stackoverflow.com/questions/67784840/…

    – Trost vor der Morgendämmerung

    14. Juni 2021 um 1:31 Uhr

  • Das funktioniert großartig, aber was ist damit: stackoverflow.com/questions/67784840/…

    – Trost vor der Morgendämmerung

    14. Juni 2021 um 1:31 Uhr

1003750cookie-checkWooCommerce Plus- und Minus-Schaltflächen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy