{"id":651,"date":"2017-08-31T13:15:24","date_gmt":"2017-08-31T11:15:24","guid":{"rendered":"http:\/\/evileu.de\/zum-schwarzen-pinguin\/?p=651"},"modified":"2017-08-31T13:15:24","modified_gmt":"2017-08-31T11:15:24","slug":"noch-mehr-postmeta-benutzerdefinierte-felder-in-woocommerce","status":"publish","type":"post","link":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/2017\/08\/31\/noch-mehr-postmeta-benutzerdefinierte-felder-in-woocommerce\/","title":{"rendered":"Noch mehr postmeta: benutzerdefinierte Felder in wooCommerce"},"content":{"rendered":"<p>Falls ihnen die 48 vordefinierten Felder in wooCommerce noch nicht reichen, haben sie auch die M\u00f6glichkeit, zus\u00e4tzliche Felder anzulegen. Diese laufen unter dem Stichwort &#8222;benutzerdefinierte Felder&#8220; und k\u00f6nnen im Produkt-Editor angelegt werden.<\/p>\n<h2>Ein Feld f\u00fcr Material<\/h2>\n<p>Zu dem in meinem Online-L\u00e4dchen verkauften Glasperlenschmuck lege ich jetzt mal ein benutzerdefiniertes Feld &#8222;Material&#8220; an. \u00a0Das kriegt dann zum Beispiel den Wert &#8222;B\u00f6hmische Glasperlen&#8220;, das sieht im Editor so aus:<\/p>\n<div id=\"attachment_652\" style=\"width: 1091px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-652\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-652\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/benutzerdefinierte_felder.jpg\" alt=\"benutzerdefinierte_felder\" width=\"1081\" height=\"514\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/benutzerdefinierte_felder.jpg 1081w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/benutzerdefinierte_felder-300x143.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/benutzerdefinierte_felder-768x365.jpg 768w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/benutzerdefinierte_felder-1024x487.jpg 1024w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/benutzerdefinierte_felder-624x297.jpg 624w\" sizes=\"(max-width: 1081px) 100vw, 1081px\" \/><p id=\"caption-attachment-652\" class=\"wp-caption-text\">benutzerdefinierte_felder<\/p><\/div>\n<p>Keine Hexerei, und was auf der Datenbank passiert kann man leicht erraten:<\/p>\n<div id=\"attachment_653\" style=\"width: 977px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-653\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-653\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/material_postmeta.jpg\" alt=\"material_postmeta\" width=\"967\" height=\"252\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/material_postmeta.jpg 967w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/material_postmeta-300x78.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/material_postmeta-768x200.jpg 768w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/material_postmeta-624x163.jpg 624w\" sizes=\"(max-width: 967px) 100vw, 967px\" \/><p id=\"caption-attachment-653\" class=\"wp-caption-text\">material_postmeta<\/p><\/div>\n<p>Es wird ein neuer Datensatz mit dem meta_key &#8222;Material&#8220; angelegt, der kriegt den meta_value &#8222;B\u00f6hnmische Glasschliffperlen&#8220;. Das war&#8217;s schon, mehr ist nicht passiert.<\/p>\n<h2>Wie verwendet man nun diese Felder?<\/h2>\n<p>wooCommerce weist einen da h\u00f6flich auf den Codex zum Thema <a href=\"https:\/\/codex.wordpress.org\/Using_Custom_Fields\">Custom Fields<\/a> hin. Das ist zwar gut gemeint, aber nicht besonders hilfreich. Deswegen gibts bei Tante Google auch jede Menge Eintr\u00e4ge, wenn man nach &#8222;woocommerce show custom fields&#8220; sucht, hier ist <a href=\"https:\/\/www.themelocation.com\/how-to-display-custom-field-value-on-product-page-in-woocommerce\/\">ein besonders netter von Theme Location<\/a><\/p>\n<p>Der Knackpunkt ist: man muss die wooCommerce-Templates editieren, wenn man seine benutzerdefinierten Felder auch beim Produkt angezeigt kriegen will. Wir versuchen uns mal an einem einfachen Beispiel. Da sollen wir eine Zeile im Template content-single-product.php erg\u00e4nzen:<\/p>\n<p>&lt;?php echo get_post_meta( get_the_ID(), \u2018Material\u2019, true ); ?&gt;<\/p>\n<h2>Edit die\u00a0content-single-product.php &#8211; ja, wie?<\/h2>\n<p>Also, erstmal muss man das richtige Template finden, und das ist bei der endlosen Latte von wooCommerce-Templates gar nicht so einfach. Schauen sie mal rein unter Plugins\/wooCommerce\/Bearbeiten, das ist alles andere als \u00fcbersichtlich. Die\u00a0content-single-product.php steht in der langen Liste ziemlich weit unten.<\/p>\n<p>&#8222;At the appropriate place&#8220; soll diese Zeile rein, hei\u00dft es im Tutorial, und das ist eine Runde\u00a0Trial and Error. Ich habs jetzt im ersten Anlauf noch nicht hingekriegt, da muss ich nochmal ne Runde googlen. So richtig Spa\u00df macht das nicht, die wooCommerce-templates sind viel zu schlecht dokumentiert, das ist eine einzige Raterei.<\/p>\n<h2>Anderer Ansatz: wooCommerce Hooks<\/h2>\n<p>Ich hatte jetzt relativ schnell die Schn&#8230; voll von der Rumprobiererei und bin auf einen anderen L\u00f6sungsansatz gestossen, um unser benutzerdefiniertes Feld auch anzeigen zu lassen. WooCommerce bietet eine lange Latte von vordefinierten Hooks, in die man sich einklinken kann, das ist <a href=\"https:\/\/businessbloomer.com\/woocommerce-visual-hook-guide-single-product-page\/\">hier bei BusinessBloomer<\/a> recht ausf\u00fchrlich dokumentiert, man muss sich allerdings anmelden, um das Tutorial anschauen zu k\u00f6nnen, und dazu hatte ich keine Lust. Ein andermal vielleicht&#8230;<\/p>\n<p>Prinzipiell sollte es so funktionieren: man editiert die functions.php und f\u00fcgt den entsprechenden Hook hinzu, in dem ruft man die zugeh\u00f6rige selbstdefinierte Funktion auf, und die Funktion letztendlich sollte unser Custom Field dann auch anzeigen. Ich habs nicht hingekriegt, jedenfalls nicht in unter einer Stunde, und da hatte ich dann einfach keinen Bock mehr. Ist vielleicht nicht mein Tag zum Rumprobieren heute.<\/p>\n<h2>Noch ein Versuch:\u00a0vielleicht mit einem Plugin?<\/h2>\n<p>Das hier sieht ganz gut aus:<\/p>\n<h1 class=\"plugin-title\"><a href=\"https:\/\/de.wordpress.org\/plugins\/woocommerce-custom-product-data-fields\/\">WooCommerce Custom Product Data Fields<\/a><\/h1>\n<p>Das schau ich mir mal an, aber ich glaube, ich brauch erstmal &#8217;ne Pause. Ja kruzit\u00fcrken, kann das denn so schwer sein, so ein lumpiges Custom Field auch anzeigen zu lassen?<\/p>\n<p>Ist echt nicht mein Tag heute, die Doku zu dem Plugin ist gerade nicht erreichbar.<\/p>\n<div id=\"attachment_657\" style=\"width: 597px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-657\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-657\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/acf_nicht_ereichbar.jpg\" alt=\"acf_nicht_ereichbar\" width=\"587\" height=\"405\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/acf_nicht_ereichbar.jpg 587w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/acf_nicht_ereichbar-300x207.jpg 300w\" sizes=\"(max-width: 587px) 100vw, 587px\" \/><p id=\"caption-attachment-657\" class=\"wp-caption-text\">acf_nicht_ereichbar<\/p><\/div>\n<h2>Hab ich noch ein anderes Plugin probiert,\u00a0<a class=\"bbp-breadcrumb-forum\" href=\"https:\/\/wordpress.org\/support\/plugin\/acf-for-woocommerce\/\">ACF for WooCommerce<\/a>.<\/h2>\n<p>ACF \u00a0= Advanced Custom Fields. Aber zu fr\u00fch gefreut: auch kein Gl\u00fcck, da mu\u00df ich mal direkt die Support-Seite zitieren:<\/p>\n<header class=\"page-header\">\n<blockquote>\n<h1 class=\"page-title\">How to show ACF\u2019s on Product Page?<\/h1>\n<\/blockquote>\n<\/header>\n<blockquote>\n<div id=\"bbpress-forums\">\n<ul id=\"bbp-topic-9224064-lead\" class=\"bbp-lead-topic\">\n<li class=\"bbp-body\">\n<div id=\"post-9224064\" class=\"even bbp-parent-forum-21262 user-id-8475612 post-9224064 topic type-topic status-publish hentry\">\n<div class=\"bbp-topic-author\">\n<p><a class=\"bbp-author-avatar\" title=\"View Verdi's profile\" href=\"https:\/\/wordpress.org\/support\/users\/ver3\/\" rel=\"nofollow\"><img decoding=\"async\" loading=\"lazy\" class=\"avatar avatar-100 photo\" src=\"https:\/\/secure.gravatar.com\/avatar\/95f38d0dc869f268e5fedeed67e3bf29?s=100&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/95f38d0dc869f268e5fedeed67e3bf29?s=200&amp;d=retro&amp;r=g 2x\" alt=\"\" width=\"100\" height=\"100\" \/><\/a><a class=\"bbp-author-name\" title=\"View Verdi's profile\" href=\"https:\/\/wordpress.org\/support\/users\/ver3\/\" rel=\"nofollow\">Verdi<\/a><\/p>\n<p class=\"bbp-user-nicename\">(@ver3)<\/p>\n<p class=\"bbp-topic-post-date\"><a class=\"bbp-topic-permalink\" title=\"#9224064\" href=\"https:\/\/wordpress.org\/support\/topic\/how-to-show-acfs-on-product-page\/\">2 months, 2 weeks ago<\/a><\/p>\n<\/div>\n<div class=\"bbp-topic-content\">\n<p><strong>It seems only to work on Checkout Page. How do I show field on the Product Page?<\/strong><\/p>\n<p>Any answer is most welcome, thank you.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<div class=\"bbp-pagination\">\n<div class=\"bbp-pagination-count\">Viewing 6 replies &#8211; 1 through 6 (of 6 total)<\/div>\n<\/div>\n<\/div>\n<\/blockquote>\n<div id=\"bbpress-forums\">\n<blockquote>\n<ul id=\"topic-9224064-replies\" class=\"forums bbp-replies\">\n<li class=\"bbp-body\">\n<div id=\"post-9224069\" class=\"odd bbp-parent-forum-21262 bbp-parent-topic-9224064 bbp-reply-position-1 user-id-15273688 post-9224069 reply type-reply status-publish hentry by-plugin-author author-has-badge\">\n<div class=\"bbp-reply-author\">\n<p><span class=\"author-badge author-badge-plugin\" title=\"This person is the author of this plugin\">Plugin Author<\/span><a class=\"bbp-author-avatar\" title=\"View Cat\u2019s Plugins's profile\" href=\"https:\/\/wordpress.org\/support\/users\/catsplugins\/\" rel=\"nofollow\"><img decoding=\"async\" loading=\"lazy\" class=\"avatar avatar-100 photo\" src=\"https:\/\/secure.gravatar.com\/avatar\/9650bfbee24d8d2b860d2ee25d26bdf3?s=100&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/9650bfbee24d8d2b860d2ee25d26bdf3?s=200&amp;d=retro&amp;r=g 2x\" alt=\"\" width=\"100\" height=\"100\" \/><\/a><a class=\"bbp-author-name\" title=\"View Cat\u2019s Plugins's profile\" href=\"https:\/\/wordpress.org\/support\/users\/catsplugins\/\" rel=\"nofollow\">Cat\u2019s Plugins<\/a><\/p>\n<p class=\"bbp-user-nicename\">(@catsplugins)<\/p>\n<div class=\"bbp-reply-meta\">\n<p class=\"bbp-reply-post-date\"><a class=\"bbp-reply-permalink\" title=\"#9224069\" href=\"https:\/\/wordpress.org\/support\/topic\/how-to-show-acfs-on-product-page\/#post-9224069\">2 months, 2 weeks ago<\/a><\/p>\n<\/div>\n<\/div>\n<div class=\"bbp-reply-content\">\n<p>Hello,<\/p>\n<p>The<strong> free version you\u2019re using is only working on checkout<\/strong>, to make it work on the single product page, please use the PRO version!<\/p>\n<p>It\u2019s here\u00a0<a href=\"https:\/\/www.wpwiseguys.com\/recommends\/acf-for-woocommerce-pro\/\" rel=\"nofollow\">https:\/\/www.wpwiseguys.com\/recommends\/acf-for-woocommerce-pro\/<\/a><\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<\/blockquote>\n<\/div>\n<p>Tscha, Pech gehabt. Die Anzeige der Custom Fields in der Single Product Ansicht geht hier nur mit der kostenpflichtigen Pro-Version des Plugins, und die kostet 29 $. No way, Jos\u00e9.<\/p>\n<h2>Jetzt reichts mit der Probiererei &#8211; noch einmal mit System.<\/h2>\n<p>Also, wir\u00a0<span style=\"font-size: 1rem;\">fangen nochmal sauber von vorne an. Wo soll unser benutzerdefiniertes Feld &#8222;Material&#8220; erscheinen? In der Startseite des Shops, jedenfalls reicht mir das f\u00fcr&#8217;s erste. Direkt nach dem Titel, vor dem Warenkorb-Button.<\/span><\/p>\n<p>Daf\u00fcr editieren wir die\u00a0<strong>woocommerce\/templates\/content-product.php.<\/strong><\/p>\n<p>Durch schlichtes Ausprobieren und Raten habe ich schlie\u00dflich die richtige Position gefunden: nach der Zeile:<\/p>\n<p>do_action( &#8218;woocommerce_shop_loop_item_title&#8216; );<\/p>\n<p>Das hat nicht auf Anhieb funktioniert, da WordPress im Template anscheinend die get_post_meta()-Funktion nur mit ein bi\u00dfchen \u00dcberredungskunst akzeptiert. Ich habe dann folgendes Snippet gefunden, damit kriegen wir endlich den meta_value unseres Custom Fields &#8222;Material&#8220; angezeigt :<\/p>\n<p>global $wp_query;<br \/>\n$postid = $wp_query-&gt;post-&gt;ID;<br \/>\necho get_post_meta($postid, &#8218;<strong>Material<\/strong>&#8218;, true);<br \/>\nwp_reset_query();<\/p>\n<p>Ergebnis- meine benutzerdefinierten Felder werden jetzt direkt unter dem Titel jedes Produkts angezeigt:<\/p>\n<div id=\"attachment_660\" style=\"width: 869px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-660\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-660\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/shop_mit_cf.jpg\" alt=\"shop_mit_cf\" width=\"859\" height=\"615\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/shop_mit_cf.jpg 859w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/shop_mit_cf-300x215.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/shop_mit_cf-768x550.jpg 768w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/08\/shop_mit_cf-624x447.jpg 624w\" sizes=\"(max-width: 859px) 100vw, 859px\" \/><p id=\"caption-attachment-660\" class=\"wp-caption-text\">shop_mit_cf<\/p><\/div>\n<p>Na bitte, geht doch. Aber ein Gfrett war das jetzt schon!<\/p>\n<h2>Wie gehts jetzt weiter?<\/h2>\n<p>Wenn man das benutzerdefinierte Feld noch woanders anzeigen m\u00f6chte: tscha, das wird jetzt ein Exempel in Trial&amp;Error. F\u00fcr jede Seite im Shop herausfinden, welches Template f\u00fcr die Anzeige verwendet wird, dort die Stelle suchen an welcher das Custom Field erscheinen soll, da das obige Code Snippet einf\u00fcgen und hoffen dass es funkioniert. Viel Spa\u00df mit Tante Google und der wooCommerce-Doku&#8230;<\/p>\n<p>Ich finde das Thema Custom Fields in wooCommerce insgesamt wahnsinnig un\u00fcbersichtlich und lausig schlecht dokumentiert. Anscheinend gibt es einige Plugins, die einem da das Leben leichter machen sollen, aber ich hab bislang nur kostenpflichtige Exemplare gefunden, die das auch k\u00f6nnen was wir brauchen. Und ich zahle nicht f\u00fcr Plugins, Punktum. OpenSource, sie wissen schon. So, und das ist ein sch\u00f6ner Schlu\u00dfsatz f\u00fcr diesen Beitrag, lassen wir es mal gut sein.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Falls ihnen die 48 vordefinierten Felder in wooCommerce noch nicht reichen, haben sie auch die M\u00f6glichkeit, zus\u00e4tzliche Felder anzulegen. Diese laufen unter dem Stichwort &#8222;benutzerdefinierte Felder&#8220; und k\u00f6nnen im Produkt-Editor angelegt werden. Ein Feld f\u00fcr Material Zu dem in meinem Online-L\u00e4dchen verkauften Glasperlenschmuck lege ich jetzt mal ein benutzerdefiniertes Feld &#8222;Material&#8220; an. \u00a0Das kriegt dann [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[18,4,8,24,2],"tags":[],"_links":{"self":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/651"}],"collection":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/comments?post=651"}],"version-history":[{"count":7,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/651\/revisions"}],"predecessor-version":[{"id":662,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/651\/revisions\/662"}],"wp:attachment":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/media?parent=651"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/categories?post=651"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/tags?post=651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}