Platzhalter für Produkt-ID im Produkt Template Shortcode

Du hast Probleme mit der Formatierung der Anzeige und weißt nicht woher der Fehler kommt und wie du ihn beheben kannst?

Moderator: maennchen1.de

Antworten
Benutzeravatar
lenja-arts
Beiträge: 377
Registriert: 14.10.2012, 21:28
Lizenz: wpShopGermany Enterprise
Wohnort: Leipzig, Sachsen

Platzhalter für Produkt-ID im Produkt Template Shortcode

Beitrag von lenja-arts »

Hallo,
ich habe mal eine (für mich) kniffelige Aufgabe:

Ist es möglich, ein durch Advanced Custom Fields pro belegtes Feld automatisch als Produkt ID in das Produkt-Template einzulesen?

Hier ein Beispiel:
Ich habe ein Produkt-Template, was lediglich den Preis ausgibt. Das definiere ich im Post so:

Code: Alles auswählen

[wpshopgermany product="99" template="preis.phtml"]
Das klappt sehr gut und ich nutze das schon länger für die Anzeige im Gridsystem (Visual Composer).

Um es für den Kunden jedoch einfacher und weniger fehleranfällig zu machen, möchte ich die Produkt-ID (hier die 99) automatisch durch den Inhalt eines extra definierten Custom Field ersetzen, so dass der Kunde nicht den WPSG Shortcode selbst ändern muss.
Den Inhalt des Feldes bekommt man durch einen Shortcode oder durch die Funktion get_field().

Bis dahin ist alles ok.

Nur: Wie kann ich die Produkt-ID (z.B. "99") durch den Inahlt des Custom Field im Shortcode ersetzen?

Code: Alles auswählen

[wpshopgermany product="[acf field="field_name"]" template="preis.phtml"]
funktioniert nicht. Shortcode im Shortcode ist so nicht möglich, obwohl

Code: Alles auswählen

[acf field="field_name"]
allein die Produkt-ID als Zahl richtig ausgibt.

Die andere Möglichkeit wäre, den Inhalt durch

Code: Alles auswählen

<?php $field = get_field($field_name); ?>
auszulesen.

Hat jemand eine Idee, wo ich das einbauen kann? Sicher muss hierfür der Code des Produkt-Shortcodes selbst geändert werden und die get_field() funktion dort einbauen, wo normalerweise die ID aus dem eingegebenen Shortcode eingefügt wird.
Oder kann ich das woanders entsprechend ändern, dass immer auf der Wert des Feldes als Produkt-ID eingesetzt wird?

Ich hoffe, ich habe mich ausreichend klar ausgedrückt, was ich erreichen will damit. Warum und weshalb sollte da keine Rolle spielen. Das Modul "Produktartikel" ist mir (noch) viel zu unflexibel.

Danke an alle für mögliche Lösungsvorschläge!
Benutzeravatar
daschmi
m1.Mitarbeiter
Beiträge: 2595
Registriert: 04.12.2007, 17:23
Lizenz: keine
Kontaktdaten:

Re: Platzhalter für Produkt-ID im Produkt Template Shortcode

Beitrag von daschmi »

Hi,

mittels folgendem "Hilfsshortcode" könnte es gehen:

Code: Alles auswählen

function my_wpsg_sc($atts) 
{
	
	$strWPSG_SC = '[wpshopgermany';
	
	if (wpsg_isSizedString($atts['product_code']))
	{
		
		$strWPSG_SC .= ' product="'.do_shortcode(urldecode($atts['product_code'])).'" ';
		
	}
	
	if (wpsg_isSizedString($atts['template'])) $strWPSG_SC .= ' template="'.$atts['template'].'" ';
	
	$strWPSG_SC .= ']';
	
	return do_shortcode($strWPSG_SC);
	
}

add_shortcode('my_wpsg_sc', 'my_wpsg_sc'); 
Aufruf:

Code: Alles auswählen

[my_wpsg_sc product_code="%5Bacf+field%3D%22field_name%22%5D" template="preis.phtml"]
Der Shortcode bei product_code sollte URL Kodiert sein.

https://daschmi.de/tools-2/urlencode-urldecode/

Viel Erfolg

Daschmi
Benutzeravatar
lenja-arts
Beiträge: 377
Registriert: 14.10.2012, 21:28
Lizenz: wpShopGermany Enterprise
Wohnort: Leipzig, Sachsen

Re: Platzhalter für Produkt-ID im Produkt Template Shortcode

Beitrag von lenja-arts »

Großen Dank!
Das werde ich mal probieren, wenn wieder Zeit ist.

Das wäre eine echt große Erleichterung bei Produkt-Artikel-Templates, die mehrere angepasste Produkttemplates enthalten, z.B. für die Preisanzeige mit Visual Composer. Die müssen sonst immer einzeln editiert werden.

Die Produkt-Templates lassen da ja einiges zu, um auch mal einen großen Vorteil von WPSG zu nennen.

Ich gebe Bescheid, wenn das passt! Vermutlich im Januar! ;-)
Benutzeravatar
daschmi
m1.Mitarbeiter
Beiträge: 2595
Registriert: 04.12.2007, 17:23
Lizenz: keine
Kontaktdaten:

Re: Platzhalter für Produkt-ID im Produkt Template Shortcode

Beitrag von daschmi »

Hi,

mir ist noch eingefallen das du die wpsg Shortcode Funktion ja auch von PHP aufrufen könntest:

Code: Alles auswählen

echo $GLOBALS['wpsg_sc']->shortcode_basket(array(
  'product' => '%ID%',
  'template' => 'standard.phtml'
));
Grüße

Daschmi
Benutzeravatar
lenja-arts
Beiträge: 377
Registriert: 14.10.2012, 21:28
Lizenz: wpShopGermany Enterprise
Wohnort: Leipzig, Sachsen

Re: Platzhalter für Produkt-ID im Produkt Template Shortcode

Beitrag von lenja-arts »

Alles könnte helfen, das zu lösen!
Letztlich gehts ja um eine Vereinfachung, im Artikel statt des ganzen Shortcodes in einem Feld nur noch die Produkt-ID eingeben zu müssen. Hier würde sich ACF sehr eigenen. Den über den "Artikel einfügen" Button macht das ab eine bestimmten Anzahl wahrlich keinen Spaß mehr.

Besteht den generell Hoffnung, dass WPSG sich nochmal an die Möglichkeiten von Wordpress anpasst?
Das betrifft ja auch Kategorien, die nicht verschachtelt werden können oder deren Mehrfachzuweisungen, zeitgemäße Custom Post Types, editierbare Gutscheine etc.

Produktartikel sind ja so auch nicht wirklich verwendbar ...

Aber das wisst ihr sicher alles selber!

Ich danke Dir für die Hilfe!
Benutzeravatar
daschmi
m1.Mitarbeiter
Beiträge: 2595
Registriert: 04.12.2007, 17:23
Lizenz: keine
Kontaktdaten:

Re: Platzhalter für Produkt-ID im Produkt Template Shortcode

Beitrag von daschmi »

Hi,

also eigentlich musst du bei Verwendung von Produktartikel nichts mehr machen. Auch die Kategoriesierung funktioniert.

z.B. hier: http://steellounge.de/produkte/eh_kette ... it_kugeln/

Die Produktansicht geht auch ganz normal: http://steellounge.de/category/produktk ... n/schmuck/

Du legst nur die Produkte an und die "Wordpress Beiträge" werden nur im Hintergrund angelegt.

Grüße

Daschmi
Benutzeravatar
lenja-arts
Beiträge: 377
Registriert: 14.10.2012, 21:28
Lizenz: wpShopGermany Enterprise
Wohnort: Leipzig, Sachsen

Re: Platzhalter für Produkt-ID im Produkt Template Shortcode

Beitrag von lenja-arts »

Klar.
Ich habe Produktartikel ausprobiert und da gings schon damit los, dass der Artikel gleich veröffentlicht wurde.

Kann man für diesen Custom Post Type auch ein Template anlegen? Also WPSG "mitteilen", welche Produkttemplates wohin geschrieben werden sollen?

Hintergrund ist ja der, dass Templates und Grid Builder wie VC mit Templatera alle nur WC unterstützen und man dann eben mit WPSG außen vor bleibt und sich selbst was einfallen lassen muss, wenn man zB schon mal den Preis im Grid-System abbilden will. Das hatte sich halt so entwickelt!

Schöner Shop! Echt! Nur leider nicht responsive für Mobile. Deshalb ja der Ausweich über das VC System. ;-)

Grüße aus Leipzig

Andreas
Benutzeravatar
maennchen1.de
Administrator
Beiträge: 17869
Registriert: 14.08.2003, 16:55
Lizenz: wpShopGermany Enterprise
Wohnort: Thüringen, Ellersleben
Kontaktdaten:

Re: Platzhalter für Produkt-ID im Produkt Template Shortcode

Beitrag von maennchen1.de »

lenja-arts hat geschrieben:Kann man für diesen Custom Post Type auch ein Template anlegen? Also WPSG "mitteilen", welche Produkttemplates wohin geschrieben werden sollen?
Das hängt von deinem Theme ab, sollte aber möglich sein:
https://codex.wordpress.org/Post_Type_Templates
https://developer.wordpress.org/themes/ ... ate-files/
lenja-arts hat geschrieben:Nur leider nicht responsive für Mobile. Deshalb ja der Ausweich über das VC System. ;-)
Das hängt auch von deinem Theme ab. ;) wpShopGermany ist grundlegend responsiv aufgebaut.
siehe: http://testshopgermany.maennchen1.de
Kein Support per PN! Alle Fragen beantworten wir hier im Forum. Per PN bitte nur Passwörter, Namen und URLs - sofern notwendig.
Bitte vor dem posten lesen:
Wie poste ich eine Frage zu einem Problem?
FAQ / häufig gestellte Fragen
Anzeige-Fehler / Funktionsfehler in wpShopGermany erkennen und selbst beheben
PHTML-Dateien richtig verwenden (für eigene Anpassungen)
Benutzeravatar
lenja-arts
Beiträge: 377
Registriert: 14.10.2012, 21:28
Lizenz: wpShopGermany Enterprise
Wohnort: Leipzig, Sachsen

Re: Platzhalter für Produkt-ID im Produkt Template Shortcode

Beitrag von lenja-arts »

Danke!

Meine Themes sind alle responsiv, ich meinte den schönen Shop, den Daschmi verlinkt hat. ;-)
Antworten