Lagerbestand - nur den Wert anzeigen lassen

  • Hallo zusammen.

    Man kann sich ja den aktuellen Lagerbestand in Form von z.B. "12 auf Lager" anzeigen lassen.
    Das kommt, wie ich sehe, aus der "woocommerce/tempates/single-product/stock.php".

    Dort wird die Variable "$availability" ausgegeben. In dieser ist aber der gesamte String enthalten. Wie bekomme ich es hin, dass ich nur die entsprechende Zahl des Lagerbesandes bekomme?

    Das heißt, ich möchte statt "12 auf Lager" nur die "12" haben.

    Danke für Eure Hilfe.

    Statler

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Das kann man über den Filter 'woocommerce_get_availability_text' steuern. Der Filter übergibt als zweiten Parameter das Produkt als Objekt. Damit ist es möglich in einer Funktion, die in den Filter eingehängt wird mittels $product->get_stock_quantity() nur den Lagerbestand zurückzugeben. Lösungsansatz (ungetestet):

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Hallo und Danke für die Antwort.

    Meine stock.php sieht nun folgendermaßen aus:

    PHP
    <?php/** * Single Product stock. * * This template can be overridden by copying it to yourtheme/woocommerce/single-product/stock.php. * * HOWEVER, on occasion WooCommerce will need to update template files and you * (the theme developer) will need to copy the new files to your theme to * maintain compatibility. We try to do this as little as possible, but it does * happen. When this occurs the version of the template file will be bumped and * the readme will list any important changes. * * @see     https://docs.woocommerce.com/document/template-structure/ * @author  WooThemes * @package WooCommerce/Templates * @version 3.0.0 */
    if ( ! defined( 'ABSPATH' ) ) {	exit;}
    ?><!-- <p class="stock <?php echo esc_attr( $class ); ?>"><?php echo wp_kses_post( $availability ); ?></p> -->
    <?phpadd_filter( 'woocommerce_get_availability_text', 'mmx_modify_availability_text', 20, 2 );
    function mmx_modify_availability_text( $availability, $product ) {	if ( ! $product->is_in_stock() ) {		$availability = __( 'Out of stock', 'woocommerce' );	} elseif ( $product->managing_stock() && $product->is_on_backorder( 1 ) ) {		$availability = $product->backorders_require_notification() ? __( 'Available on backorder', 'woocommerce' ) : '';	} elseif ( $product->managing_stock() ) {		$availability = $product->get_stock_quantity();	} else {		$availability = '';	}	return $availability;
    }
    if ($product->get_stock_quantity() >= 8) {		echo "noch buchbar";	} elseif ($product->get_stock_quantity() >= 3 and $product->get_stock_quantity() <= 7) {		echo "Durchführung gesichert";	} elseif ($product->get_stock_quantity() >= 0 and $product->get_stock_quantity() <= 2) {		echo "Nur noch wenige Plätze frei!";	}?>

    Das funktioniert leider nur zum Teil. Ich habe Produkte mit Varianten. Wenn das Produkt nur eine hat, klappt alles.

    https://dev.adventureprojekt.com/abenteuertermi…transkarpatien/

    Wenn das Produkt aber 2 oder mehr Varianten hat, dann bekomme ich einen Fehlermeldung:

    https://dev.adventureprojekt.com/abenteuertermi…radies-masuren/

    Woran kann das liegen?

  • Die stock.php wird nicht verändert. Der Code gehört in die functions.php eines Childthemes

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • [COLOR=#333333]Der Code gehört in die functions.php eines [/COLOR]Childthemes

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.


  • Wie kann ich die Position der Ausgabe ändern? (siehe Bild)

    Kann man nicht beantworten ohne zu wissen woher die Ausgabe kommt und wie die Ausgabe generiert wird.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Es geht noch um die vorherigen Fragen.

    Ich habe in der functions.php folgenden Code:

    PHP
    add_filter( 'woocommerce_get_availability_text', 'mmx_modify_availability_text', 20, 2 );
    function mmx_modify_availability_text( $availability, $product ) {	if ( ! $product->is_in_stock() ) {		$availability = __( 'Out of stock', 'woocommerce' );	} elseif ( $product->managing_stock() && $product->is_on_backorder( 1 ) ) {		$availability = $product->backorders_require_notification() ? __( 'Available on backorder', 'woocommerce' ) : '';	} elseif ( $product->managing_stock() ) {		$availability = $product->get_stock_quantity();	} else {		$availability = '';	}	return $availability;
    }

    DAnn hahabe ich in der stock.php folgendes stehen:

    PHP
    if ($product->get_stock_quantity() >= 8) {		echo "<span class='stock-green'><i class='fa fa-check-square-o'></i> noch buchbar</span>";	} elseif ($product->get_stock_quantity() >= 3 and $product->get_stock_quantity() <= 7) {		echo "<span class='stock-green'><i class='fa fa-check-square-o'></i> Durchführung gesichert</span>";	} elseif ($product->get_stock_quantity() >= 0 and $product->get_stock_quantity() <= 2) {		echo "<span class='stock-red'><i class='fa fa-exclamation-triangle'></i> Nur noch wenige Plätze frei!</span>";	}

    Und dies wird zur Zeit dort unten ausgegeben und ich hätte es gerne dort oben...

  • Ich hatte doch bereits geschrieben, "[COLOR=#333333]Kann man nicht beantworten ohne zu wissen woher die Ausgabe kommt und wie die Ausgabe generiert wird."[/COLOR]

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!