Ausgabe der PostID mit ProduktID

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

Moderatoren: ThoGoe, maennchen1.de

ishop
Beiträge: 24
Registriert: 05.01.2017, 15:22
Lizenz: wpShopGermany Pro

Ausgabe der PostID mit ProduktID

Beitrag von ishop » 18.07.2017, 02:02

Hallo,
ich würde gerne die PostID in der List Ansicht ausgeben.

Code: Alles auswählen

<?php echo $this->getProductName($this->getProduktID($p['id']), true); ?></a>
ist da bereits enthalten.
Wie kann man nun von der ProduktID, die ja wohl vorhanden ist, die post ID bekommen?
Habe etwas von

Code: Alles auswählen

$post_id = $GLOBALS['wpsg_sc']->callMod('wpsg_mod_produktartikel', 'getPostIdFromProductId', array($product_id));
gelesen. Jetzt muss es nur noch kombiniert werden, wie ist das möglich?
Vielen Dank!

// EDIT:
Habe herausgefunden, dass man auf der Produktseite über folgenden Code die Anfrage erfolgreich starten kann - die Taxonomie wird erfolgreich unter dem Produkt angezeigt:

Code: Alles auswählen

<?php
if( false != get_the_term_list( $mypost_id = url_to_postid( '<?php echo wpsg_url($p);')->ID, 'schlagwort' ) ) {
     echo 'Schlagwörter: ' . get_the_term_list($mypost_id = url_to_postid( '<?php echo wpsg_url($p);')->ID,'schlagwort', ' ', ' ', '' );
}
?>
Jedoch funktioniert das nicht in der list.phtml - wo muss man das einfügen, oder geht das gar nicht?

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

Re: Ausgabe der PostID mit ProduktID

Beitrag von maennchen1.de » 18.07.2017, 11:11

Hallo!
Im Template list.phtml wird ein Array mittels nachflolgendem Befehl ausgelesen:

Code: Alles auswählen

<?php $i = 0; foreach ($this->view['arProducts'] as $p) { $i ++; ?>
Die von dir gesuchten Werte stehen also direkt in $p.
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:
FAQ / häufig gestellte Fragen
wpShopGermany Fehler? Hilfeanleitung!
PHTML-Dateien richtig verwenden (für eigene Anpassungen)

ishop
Beiträge: 24
Registriert: 05.01.2017, 15:22
Lizenz: wpShopGermany Pro

Re: Ausgabe der PostID mit ProduktID

Beitrag von ishop » 18.07.2017, 18:43

Okay!
Aber kann ich in der list.phtml Taxonomien aus den wordpress posts abfragen? Muss ich dafür ne bestimmte Code Zeile einfügen,damit mein Code auch 'beachtet' wird?

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

Re: Ausgabe der PostID mit ProduktID

Beitrag von maennchen1.de » 19.07.2017, 12:22

Probiere es doch mal aus.
"Grau [...] ist alle Theorie..." ;)
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:
FAQ / häufig gestellte Fragen
wpShopGermany Fehler? Hilfeanleitung!
PHTML-Dateien richtig verwenden (für eigene Anpassungen)

ishop
Beiträge: 24
Registriert: 05.01.2017, 15:22
Lizenz: wpShopGermany Pro

Re: Ausgabe der PostID mit ProduktID

Beitrag von ishop » 19.07.2017, 12:36

Aha, ''grau''?
Ja, also im normalen Post funktioniert es bereits, nur nicht in der list.phtml, weil der die ID wohl nicht erkennt im wpshop loop.
Das ist im normalen Template, da gehts:
So:

Code: Alles auswählen

<?php
if( false != get_the_term_list( $post->ID, 'schlagwort' ) ) {
     echo 'Schlagwörter: ' . get_the_term_list($post->ID,'schlagwort', ' ', ' ', '' );
}
?>
und auch so mit Abfrage der PostID:

Code: Alles auswählen

<?php
if( false != get_the_term_list( $mypost_id = url_to_postid( '<?php echo wpsg_url($p);')->ID, 'schlagwort' ) ) {
     echo 'Schlagwörter: ' . get_the_term_list($mypost_id = url_to_postid( '<?php echo wpsg_url($p);')->ID,'schlagwort', ' ', ' ', '' );
}
?>
Fehlt also nur noch irgendeine Funktion, die in der list.phtml den wordpress loop einbaut - aber eigentlich müsste er doch integriert sein?

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

Re: Ausgabe der PostID mit ProduktID

Beitrag von maennchen1.de » 19.07.2017, 18:30

$p ist ein Array, kein String. Du müsstest schon mit dem Array-Schlüssel deine ID abfragen. Ich denke $p['id'] müsste gehen.
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:
FAQ / häufig gestellte Fragen
wpShopGermany Fehler? Hilfeanleitung!
PHTML-Dateien richtig verwenden (für eigene Anpassungen)

ishop
Beiträge: 24
Registriert: 05.01.2017, 15:22
Lizenz: wpShopGermany Pro

Re: Ausgabe der PostID mit ProduktID

Beitrag von ishop » 20.07.2017, 02:12

Ich möchte nicht die ProduktID, sondern die PostID von wordpress.hab es hinbekommen:

Code: Alles auswählen

<?php 
if( false != get_the_term_list( $mypost_id = url_to_postid( '<?php echo wpsg_url($p[url])?>')->ID, 'Personen' ) ) {?>"><?php 
     echo 'Person: ' . get_the_term_list($mypost_id = url_to_postid( '<?php echo wpsg_url($p[url])?>')->ID,'Personen', ' ', ' ', '' );
}
?>
Jedoch zeigt es mir jetzt Catchable fatal error: Object of class WP_Error could not be converted to string an...oder gar nichts.

ishop
Beiträge: 24
Registriert: 05.01.2017, 15:22
Lizenz: wpShopGermany Pro

Re: Ausgabe der PostID mit ProduktID

Beitrag von ishop » 20.07.2017, 02:13

Ich möchte nicht die ProduktID, sondern die PostID von wordpress. Hab das hinbekommen:

Code: Alles auswählen

<?php echo wpsg_url($p[url])?>
liest das aus.

Code: Alles auswählen

<?php 
if( false != get_the_term_list( $mypost_id = url_to_postid( '<?php echo wpsg_url($p[url])?>')->ID, 'Personen' ) ) {?>"><?php 
     echo 'Person: ' . get_the_term_list($mypost_id = url_to_postid( '<?php echo wpsg_url($p[url])?>')->ID,'Personen', ' ', ' ', '' );
}
?>
Jedoch zeigt es mir jetzt Catchable fatal error: Object of class WP_Error could not be converted to string an...oder gar nichts.

Benutzeravatar
daschmi
m1.Mitarbeiter
Beiträge: 2377
Registriert: 04.12.2007, 18:23
Lizenz: keine
Kontaktdaten:

Re: Ausgabe der PostID mit ProduktID

Beitrag von daschmi » 20.07.2017, 11:59

Hi,

versuch mal folgendes:

Code: Alles auswählen

<?php echo $GLOBALS['wpsg_sc']->callMod('wpsg_mod_produktartikel', 'getPostIdFromProductId', array($product_id)); ?>
$product_id musst du ersetzen.

Grüße

Daschmi

ishop
Beiträge: 24
Registriert: 05.01.2017, 15:22
Lizenz: wpShopGermany Pro

Re: Ausgabe der PostID mit ProduktID

Beitrag von ishop » 20.07.2017, 12:38

daschmi hat geschrieben:
$product_id musst du ersetzen.
Womit denn? Mit $p['id']?
Vielen Dank!

Benutzeravatar
daschmi
m1.Mitarbeiter
Beiträge: 2377
Registriert: 04.12.2007, 18:23
Lizenz: keine
Kontaktdaten:

Re: Ausgabe der PostID mit ProduktID

Beitrag von daschmi » 20.07.2017, 14:41

Oder besser:

Code: Alles auswählen

$this->getProduktID($p['id']
dann klappts auch mit Variantenprodukten.

ishop
Beiträge: 24
Registriert: 05.01.2017, 15:22
Lizenz: wpShopGermany Pro

Re: Ausgabe der PostID mit ProduktID

Beitrag von ishop » 21.07.2017, 15:18

Okay, hab jetzt folgendes gebastelt, obwohl ich kein PHP Kenner bin. Wie gesagt, ich möchte eine Taxonomie für ein Produkt aus dem CPT abrufen und in der list.phtml anzeigen lassen.:

Code: Alles auswählen

<?php 	
if( false != get_the_term_list(<?php echo $GLOBALS['wpsg_sc']->callMod('wpsg_mod_produktartikel', 'getPostIdFromProductId', array($this->getProduktID($p['id']))->ID, 'Personen' ) );
     echo 'Person: ' . get_the_term_list(<?php echo $GLOBALS['wpsg_sc']->callMod('wpsg_mod_produktartikel', 'getPostIdFromProductId', array($this->getProduktID($p['id']))->ID,'Personen', ' ', ' ', '' );
}
?>
Dabei kommt dann aber immer ein "unexpexted <", "unexpexted ?" oder unexpected echo. (je nachdem wenn ich das </? lösche)(bezogen also auf das <?php in der ersten Reihe.
Was kann ich tun? Das hier funktioniert bereits auf der standard.phtml. Wenn ich diesen code aber in die iist.phtml einfüge, erscheint einfach nichts,:

Code: Alles auswählen

<?php
if( false != get_the_term_list( $mypost_id = url_to_postid( '<?php echo wpsg_url($p)')->ID, 'Personen' ) ) {
     echo 'Schlagwörter: ' . get_the_term_list($mypost_id = url_to_postid( '<?php echo wpsg_url($p)')->ID,'Personen', ' ', ' ', '' );
}
?>
Aber wie bekomme ich es in der list.pthml zum laufen? Habe es versucht, in den div bei description einzufügen, aber immer der gleiche Fehler
Vielen Dank für eure HIlfe!

Benutzeravatar
daschmi
m1.Mitarbeiter
Beiträge: 2377
Registriert: 04.12.2007, 18:23
Lizenz: keine
Kontaktdaten:

Re: Ausgabe der PostID mit ProduktID

Beitrag von daschmi » 21.07.2017, 15:59

Hi,

ich glaube nicht das der Code so funktioniert ...

Wenn du im PHP Bereich bis, darfst du nicht noch einmal <?php schreiben.

Ich denke du benötigst folgendes:

Code: Alles auswählen

<?php echo get_the_term_list($GLOBALS['wpsg_sc']->callMod('wpsg_mod_produktartikel', 'getPostIdFromProductId', array($p['id'])); ?>
Das funktioniert nur außerhalb von <?php ... ?> sonst musst du die Tags entsprechend weglassen. Du musst nur sicherstellen, dass du innerhalb der Schleife bist wo $p['id'] auch definiert ist.

Grüße

Daschmi

ishop
Beiträge: 24
Registriert: 05.01.2017, 15:22
Lizenz: wpShopGermany Pro

Re: Ausgabe der PostID mit ProduktID

Beitrag von ishop » 21.07.2017, 18:44

Vielen Dank!
So hab ich es in Zeile 140 in der list.phtml geschrieben:

Code: Alles auswählen

<div class="wpsg_mod_productindex_description"><?php echo $p['beschreibung']; ?>
				<?php echo get_the_term_list($GLOBALS['wpsg_sc']->callMod('wpsg_mod_produktartikel', 'getPostIdFromProductId', array($p['id'])) ?>
</div>
Denn kommt folgender Fehler:
Parse error: syntax error, unexpected ';', expecting ',' or ')' in ...wpsg/user_views/mods/mod_productindex/layouts/list.phtml on line 140
Auch wenn ich das eingebe

Code: Alles auswählen

<div class="wpsg_mod_productindex_description"><?php echo $p['beschreibung']; ?><?php
if( false != get_the_term_list( $GLOBALS['wpsg_sc']->callMod('wpsg_mod_produktartikel', 'getPostIdFromProductId', array($p['id'])))->ID, 'Personen') ) {
     echo 'Personen: ' . get_the_term_list( $GLOBALS['wpsg_sc']->callMod('wpsg_mod_produktartikel', 'getPostIdFromProductId', array($p['id'])))->)->ID,'Personen', ' ', ' ', '' );
}
?>
kommt
Parse error: syntax error, unexpected ',' in ...wpsg/user_views/mods/mod_productindex/layouts/list.phtml on line 141
Ich habe ja nicht ?php in einem ?php Bereich geschrieben, was ist da bloß los?

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

Re: Ausgabe der PostID mit ProduktID

Beitrag von maennchen1.de » 21.07.2017, 21:15

Dir fehlt ein Semikolon. Vergleiche einfach mal deinen Code mit dem von Daschmi.
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:
FAQ / häufig gestellte Fragen
wpShopGermany Fehler? Hilfeanleitung!
PHTML-Dateien richtig verwenden (für eigene Anpassungen)

Antworten