Wie ihr wisst hat man in WooCommerce die Möglichkeit bei den Produkte eine Lagerverwaltung zu aktivieren. Sobald man diese Aktiviert hat, kann man WooCommerce sagen, dass von diesem Produkt noch x im Lager sind.
Ich kann dann auch einen Schwellenwert definieren, wird die Anzahl Produkt da unterschritten, dann bekommt der Admin des Shops eine eMail und weiss nun, dass bei diesem Produkt zu wenig Produkte an Lager sind und er nachbestellen oder nachproduzieren muss.
Unter ≪Produkte≫ -> ≪Lagerverwaltung≫ kann man dann eine Funktion aktivieren und die Anzahl Produkte werden dann bei allen Produkten angezeigt. Eine sehr nützliche Funktion.
Das Problem
Heute wurde ich gefragt, ob ich eine Möglichkeit kenne, wo man diese Anzeige für einzelne Produkte aktivieren kann und wo man auch den Text anpassen kann. In diesem Fall verkauft einer für ein Konzern Sitzplätze und möchte das ganze über einen WooCommerce Shop organisieren.
Code
Wenn ihr diesen Code nehmen wollt, dann kopiert ihn raus und setzt ihn dann in die functions.php Datei in eurem Child-Theme ein und dann könnt ihr ihn noch anpassen.
1 2 3 4 5 6 7 8 9 10 11 | /* Sitzplatz anzeige */ add_filter( 'woocommerce_get_availability_text', 'cb_custome_sitzplatzanzeige', 99, 2 ); function cb_custome_sitzplatzanzeige( $availability, $product ) { if ( $product->get_id() == 18 ) { $stock = $product->get_stock_quantity(); if ( $product->is_in_stock() && $product->managing_stock() ) $availability = 'Noch freie Sitzplätze: ' . $stock; return $availability; } } |
Anpassen
Nachdem ihr diesen Code rauskopiert habt, dann müsst ihr ihn noch anpassen. Zuerst einmal seht ihr da in der 3. Zeile die Zahl 18 stehen. Diese Zahl ist die Produkt-ID des Produkts wo ihr es angezeigt haben möchtet. Also sucht eure ID raus und ersetzt diese dann da wo die 18 steht.
Ebenfalls könnt ihr den Text noch ersetzen der bei diesem Produkt erscheinen wird. “Noch freie Sitzplätze: ” könnt ihr so anpassen wie ihr es wollt. Schaut einfach das ihr die ‘ Zeichen in ruhe lässt und kein ` oder ” so daraus macht, dann gibts eine Fehlermeldung.
Wenn ihr nach der Zahl wieder einen Text wollt dann müsst ihr alles nach dem = Zeichen anpassen mit zb
1 | 'Noch ' . $stock . ' Sitzplätze frei'; |
Das heisst dann “Noch 12 Sitzplätze frei”….
Ihr könnt natürlich auch mehrere Produkte damit ausrüsten, dann müsst ihr einfach den Code duplizieren und aus cb_custome_sitzplatzanzeige eine cb_custome_sitzplatzanzeige1 und dann cb_custome_sitzplatzanzeige2 machen. Denkt aber daran dieses Wort bei add_filter und bei function anzupassen 🙂
Ich denke ihr könnt nun selbständig das Ganze anpassen und damit rumspielen.
Vielen Dank, genau danach habe ich gesucht 🙂
Viele Grüße
Wolfgang
ich freue mich immer wenn ich helfen konnte 🙂
Danke für deinen tollen Beitrag Eric, hat mir geholfen 🙂 Mach bitte weiter so mit deiner Arbeit hier. <3