• Wir verwenden WooCommerce mit Germanized PRO und wollen Grundpreise (unit price, z.B. € / kg) in den Produktkacheln der Mehrproduktansicht anzeigen. Das funktioniert wunderbar auf Seiten, die ein Produktraster als Block eingebaut haben, jedoch nicht auf der von WooCommerce erzeugten “Archivseite”, also der sortierbaren Mehrproduktansicht, bei uns unter /shop, die sich anhand der Body-Klassen als body.archive.post-type-archive.post-type-archive-product.woocommerce-page zu erkennen gibt.

    Der Grundpreis ist auf der Archivseite nicht ausgeblendet, sondern fehlt komplett im Markup. In Product Grids auf anderen Seiten werden die Grundpreise mit folgendem Markup angezeigt:

    <p class="price price-unit smaller wc-gzd-additional-info wc-gzd-additional-info-loop"><span class="woocommerce-Price-amount amount">2,80&nbsp;<span class="woocommerce-Price-currencySymbol">€</span></span> / <span class="unit">kg</span></p>

    Leider finde ich weder in den Einstellungen von Germanized PRO, noch in den Einstellungen von WooCommerce Optionen, um den Grundpreis ja nach Seiten- oder Template-Typ zu steuern. Generell ist die Anzeige der Grundpreise in den WooCommerce-Einstellungen im Reiter Germanized und dort unter Preisauszeichnung > Grundpreise als Format: {price} sowie unter WooCommerce > Germanized > Preisauszeichnung > Produktlisten als “Preisauszeichnung ?Grundpreis“ anzeigen” aktiviert.

    Wir verwenden ein Block Theme mit der inc/woocommerce.php (“WooCommerce Compatibility File”) und erweitern die Anzeige der Produktdetails, haben aber an der Listen-/Archivansicht für Mehrproduktseiten keinerlei Anpassung vorgenommen. Muss m?glicherweise die inc/woocommerce.php unseres Themes aktualisiert werden?

    Im Codekommentar der inc/woocommerce.php ist ein Link zur WooCommerce-Dokumentation genannt, der leider aufgrund zu vieler Redirects nicht funktioniert.

    Leider kann ich aktuell noch nicht erkennen, ob es sich um ein Problem von Germanized oder WooCommerce oder WordPress Block Themes oder der Kombination von allem dreien handelt.

Viewing 11 replies - 1 through 11 (of 11 total)
  • Thread Starter Ingo Steinke (openmindculture)

    (@openmindculture)

    As this topic seems to have been “marked as spam” by WordPress, maybe I should better follow-up on GitHub (or tell my customer to use Shopify or Shopware as I am really getting fed up with the WordPress, Gutenberg, WooCommerce, and Germanized ecosystem).

    https://github.com/woocommerce/woocommerce-blocks/issues/2535#issuecomment-1263409020

    Plugin Author vendidero

    (@vendidero)

    Hi,

    wenn der Grundpreis auch mit aktivierter Preisauszeichnung unter Germanized > Preisauszeichnung > Produktlisten im Archive-Template nicht angezeigt wird, liegt das recht sicher an dem von dir verwendeten Theme, d.h. der gew?hlte Ort (das kann ebenfalls über die Preisauszeichnungs-Einstellungen konfiguriert werden), steht in deinem Theme nicht zur Verfügung (technisch bedeutet das, dass der Hook nicht platziert wurde). Wir verwenden dafür die Standard-Hooks, die Woo bereitstellt, d.h. wenn das Theme daran Anpassungen vornimmt, haben wir darauf keinerlei Einfluss. Nutzt ihr denn für die Ausgabe auf den Archiv-Seiten auch WooCommerce Blocks?

    p.s.: Testet das im Zweifel bitte mal mit einem Default-Theme wie Storefront oder TwentyX (kein Child-Theme). Klappt es dann?

    Grü?e

    Thread Starter Ingo Steinke (openmindculture)

    (@openmindculture)

    Danke für die schnelle Antwort! Ich bin gerade dabei, unseren Template-Code zu sichten und unn?tige Abweichungen vom Standard zu entfernen. Tats?chlich gibt es im Theme ein Block-Template block-templates/archive-product.html, dort wird ein <!-- wp:woocommerce/all-products mit Parametern aufgerufen. Diese unterscheiden sich vermutlich (in dieser Hinsicht ungewollterweise) von der funktionierenden Integration auf der Startseite, die im Block Editor als Block “Produkte nach Attribut” eingefügt wurde, das ist offensichtlich wc-block-products von WooCommerce, an dem unser Theme keine ?nderung vornimmt.

    Somit bin ich noch nicht wirklich schlauer, au?er dem Schluss, dass ich das Ticket wohl eher bei WooCommerce anstatt bei Germanized er?ffnen sollte (dann das gleiche auf Englisch), und wir dieses hier als ungel?st, aber offtopic, schlie?en k?nnen. Danke soweit erstmal!

    Plugin Author vendidero

    (@vendidero)

    Also nutzt ihr anstelle des normalen Archive-Templates, das via PHP die Produkte ausgibt den speziellen all-products-Block von WooCommmerce? Die Blocks sind leider sehr speziell und nur über gewisse tweaks mit Germanized kompatibel. Ich denke nicht, dass man dir da bei Woo weiterhelfen kann. Vorerst würde ich dir empfehlen das normale product archive template von Woo zu nutzen. Ich werde die Kompatibilit?t mit den Bl?cken nach meinem Urlaub (bis 10.10.) genauer prüfen. Bislang werden die Bl?cke leider nicht sonderlich h?ufig genutzt, sodass die Kompatibilit?t auch nicht h?chste Priorit?t hatte.

    Grü?e

    Thread Starter Ingo Steinke (openmindculture)

    (@openmindculture)

    Danke schonmal für die Hilfe! Ich habe testweise unsere Seite product_archive gel?scht (sowohl im Theme, als auch im Full-Site-Editor unter “Website bearbeiten”). Daraufhin erscheint unter /shop besagte WooCommerce-Standard-Shop-Seite, und zwar mit Grundpreisen. Die Seite h?tte noch ein bisschen Styling n?tig, allerdings fehlen ihr dann Header und Footer, die unser Theme aus dem Full-Site-Editor bezieht.

    Vor dem Kauf von Germanized hatte ich bereits selbst eine Grundpreisanzeige mit custom fields programmiert und mich der klassischen WordPress-Logik (Preis-Hook in functions.php) bedient, um den anzuzeigen. Eventuell k?nnten wir den erw?hnten fehlenden Hook übergangsweise in unserem eigenen Theme bereitstellen, an den sich wiederum Germanized anh?ngen k?nnte? Was genau wird von Germanized denn erwartet bzw. verwendet?

    Plugin Author vendidero

    (@vendidero)

    Hi,

    mit custom fields programmiert und mich der klassischen WordPress-Logik (Preis-Hook in functions.php) bedient

    Ich gehe davon aus, dass du dafür den Filter woocommerce_get_price_html verwendet hast? Damit ist man natürlich recht unflexibel in der Darstellungsform, au?erdem führt das ggf. zu diversen Kompatibilit?tsproblemen, sodass wir uns gegen die Nutzung dieses Filters zum Anfügen der rechtl. Hinweise entschieden haben.

    Au?erdem funktioniert dieser Filter ebenfalls nicht für den speziellen all-products-Block, da hier der Preis via JS Client-seitig formatiert wird.

    Was genau wird von Germanized denn erwartet bzw. verwendet?

    Via PHP kannst du den Grundpreis einfach über das Product-Object von Germanized abrufen. Beispiel:

    $product = wc_get_product( $product_id );
    $unit_price_html = wc_gzd_get_gzd_product( $product )->get_unit_price_html();

    S.a.: https://github.com/vendidero/woocommerce-germanized/blob/master/includes/abstracts/abstract-wc-gzd-product.php#L1497

    Grü?e

    Thread Starter Ingo Steinke (openmindculture)

    (@openmindculture)

    Kann es sein, dass all-products generell alles per JavaScript l?dt? Gibt es auch Alternativen, die ich in einem Block Theme verwenden kann, die trotzdem mit PHP arbeiten? Eventuell einen Shortcode? Wir haben ohnehin PHP-Code, und für die Ladezeit und Cachef?higkeit w?re es vielleicht auch besser, nicht erst auf JavaScript zu warten.

    Aktuell schreiben wir folgenden Block Code:

    
    <!-- wp:woocommerce/all-products {"columns":5,"rows":5,"alignButtons":true,"contentVisibility":{"orderBy":true},"orderby":"date","layoutConfig":[["woocommerce/product-image",{"imageSizing":"cropped"}],["woocommerce/product-title"],["woocommerce/product-price"],["woocommerce/product-rating"],["woocommerce/product-button"]],"align":"wide"} -->
    

    Auf diesen Aufruf folgt ein <div class="wp-block-woocommerce-all-products als Platzhalter, der sp?ter befüllt bzw. ersetzt wird durch die konkreten Produkte.

    Die Block Template Syntax, erzeugt und exportiert vom Block Editor (Gutenberg), ist formell gesehen HTML Markup mit HTML-Kommentaren. Hier scheinen aber auch Shortcodes interpretiert zu werden (z.B. <a href="[pods]{@partner.permalink}[/pods]">) und es ist m?glich, Template-Fragmente zu inkludieren, die PHP-Code verwenden. Beispielsweise l?dt <!-- wp:template-part {"slug":"breadcrumb-default" eine block-template-parts/breadcrumb-default.html, welche per <!-- wp:pattern {"slug":"foodtogether/breadcrumb-default"} /--> wiederum die PHP-Datei block-patterns/breadcrumb-default.php nachl?dt. Nach dem selben Prinzip k?nnten wir ja grunds?tzlich auch das wp:woocommerce/all-products durch klassischen PHP-Code ersetzen, in dem dann hoffentlich auch die Germanized-Erweiterungen vollst?ndig funktionieren?

    Thread Starter Ingo Steinke (openmindculture)

    (@openmindculture)

    Ich habe parallel selbst recherchiert. Shortcode ist m?glich, und dann sind auch Grundpreise zu sehen! Styling muss ich noch nachziehen, scheinbar ist das Markup nicht identisch oder ein Class Name verloren gegangen.

    Jedenfalls ist der [products] Shortcode grunds?tzlich ein Ersatz für <!-- wp:woocommerce/all-products, der auch in Block Templates (.html) funktioniert.

    Beispiel:

    
    [products columns="5" rows="2" orderby="date" limit="8" class="alignwide wc-block-all-products"]
    

    Da ich ohnehin kein Freund unn?tiger JavaScript-Nutzung bin, ist das konkrete Problem für micht hiermit gel?st. Allerdings ist es eigentlich nur ein Workaround, und wenn ich die WordPress-Community richtig verstehe, soll es ja in Zukunft noch mehr in Richtung Full Site Editing (FSE) mit Gutenberg gehen, daher w?re es langfristig wünschenswert, Germanized entsprechend zu erweitern.

    Thread Starter Ingo Steinke (openmindculture)

    (@openmindculture)

    P.S. Hinweis: [products] produziert leider anderes Markup als <!-- wp:woocommerce/all-products, nicht nur andere Klassennamen sondern auch teilweise fehlende Wrapper etc. Das nachtr?glich umzustellen nervt, daher mein Praxistipp an alle Entwickler:innen 2022 noch auf die altbew?hrte Syntax zu setzen, um doppelte Arbeit zu vermeiden.

    Plugin Author vendidero

    (@vendidero)

    Hi,

    ja, die Blocks sind komplett unabh?ngig vom normalen Template-System in Woo (das bereits seit Start existiert). Die Shortcodes geben also nur dein Template-System wieder, das du natürlich in deinem (Child-) Theme entsprechend erweitern/anpassen kannst. Nachtr?glich umstellen ist natürlich immer nervig, das stimmt.

    Leider sind auch die Woo-Blocks alles andere als konsistent umgesetzt (nur der all-products block arbeitet derzeit ordentlich mit separaten Komponenten/Sub-Blocks für die einzelnen Elemente wie Preis usw.), sodass sich derzeit eine komplette Integration über den Gutenberg-Editor nicht lohnen würde. Das haben wir aber natürlich auf dem Schirm.

    Grü?e

    Thread Starter Ingo Steinke (openmindculture)

    (@openmindculture)

    Ich habe unsere Diskussion übrigens auch hier verlinkt, wo ich den gleichen Rat (weiter)gebe (nicht nur von euch, sondern auch von Jessica neulich am Rande eines Meetups) lieber noch zu warten, anstelle jetzt schon voll auf Block Themes zu setzen:

    https://dev.to/ingosteinke/should-we-use-woocommerce-block-theme-syntax-in-2022-4n61

Viewing 11 replies - 1 through 11 (of 11 total)
  • The topic ‘Grundpreis fehlt auf Produktarchivseite’ is closed to new replies.