Zugriff auf nur einen Wert in einem Produkt

Hallo zusammen,

ich habe ein Produkt und will dort auf einen speziellen Wert zugreifen. Wie muss ich das genau machen?
In dem folgenden will ich speziell auf [product_price] => 13 zugreifen.

[1] => stdClass Object 

(
[item_amount_id] => 51
[item_id] => 51
[item_subtotal] => 13.00
[item_tax_total] => 0.00
[item_discount] => 0.00
[item_total] => 13.00
[product_id] => 6
[family_id] => [product_sku] => [product_name] => oepnv
[product_description] => dd.mm.YYYY
[product_price] => 13.00
[purchase_price] => [provider_name] => [tax_rate_id] => [unit_id] => [product_tariff] => 0
[invoice_id] => 13
[item_tax_rate_id] => 0
[item_product_id] => 6
[item_date_added] => 2019-01-27
[item_task_id] => [item_name] => oepnv [item_description] => 27.01.2019
[item_quantity] => 1.00
[item_price] => 13.00
[item_discount_amount] => [item_order] => 2 [item_is_recurring] => [item_product_unit] => [item_product_unit_id] => [item_date] => [item_tax_rate_percent] => [item_tax_rate_name] =>
)

Gruß
Anja

echo $item->product_price;

Vielen Dank.
Aufs einfachste komm ich wieder nicht. :frowning:

Hm, prinzipiell klappt das ja, aber wie muss ich das ganze machen, wenn ich mehrere Produkte habe und nur bei einem den Preis benötige?

Ok, das hat mit

<?php if ($item->oepnv) { echo htmlsc($item->product_price) . ' €'; //ÖPNV/Fahrtkosten } ?>

fast geklappt.

Bekomme jetzt nur noch folgende Meldung:
A PHP Error was encountered
Severity: NoticeMessage:
Undefined variable: item

What variable did you use above?
$item or $product.or …
You must use the same.

Ich verwende $product->product_price.

Ich glaub ich habe hier einen Denkfehler.
Ich prüfe in der if-Abfrage auf $product->oepnv und im echo will ich dann aber $product->product_price ausgeben.
Wie muss ich das machen?

Aktuell schaut mein Code folgendermaßen aus.
<?php if ($product->oepnv)
{
echo ($product->product_price) . ’ €’; //ÖPNV/Fahrtkosten
} ?>

Ich bin nicht sicher, woher du ‘oepnv’ bekommst. Es ist ein Name des Produkts. Wenn ja, meinst du das:

if ($item->product_name == 'oepnv') { 
    echo htmlsc($item->product_price) . ' €';
}

Genau, oepnv ist ein Produkt. Dort steht im Prinzip nur der Preis von der Fahrkarte drin. Und dieser soll statt der Anzahl in der Ausgabe stehen.

<?php if ($item->product_name == 'oepnv')  **<= hier bekomm ich weiterhin einen Fehler**
	{
		echo htmlsc($item->product_price) . ' €';  //ÖPNV/Fahrtkosten
	}  ?>

Bringt mir weiterhin folgende Fehlermeldungen in dem Bereich mit if…:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: item

und

A PHP Error was encountered
Severity: Notice
Message: Trying to get property ‘product_name’ of non-object

Versuchen

`$product->product_name`

Nein geht leider auch nicht. Gleiche Fehlermeldung.
Ich häng mal das Dokument hier an.fehlerhafter Code
In Zeile 233 fängt es an. Das andere funktioniert soweit. Einfach nach suchen.

I am confused.

Which file is this?

You said

In dem folgenden will ich speziell auf [product_price] => 13 zugreifen.
[1] => stdClass Object

… [product_price] => 13.00
… [product_name] => oepnv

Did you get using
print_r($product);

If so, then
echo $product->product_price; // product_price
echo $product->product_name

I feel you are leaving out important information. Without all the information, I cannot assist.

Das ist das Rechnungstemplate, das ich an meine Bedürfnisse angepasst habe.

Ich habe zwei Bereiche, einmal mit dem Auto fahren und einmal mit dem Zug.
Das mit dem Auto klappt.
Normalerweise gibt er ja immer die Anzahl aus und berechnet dann den Preis.
Beim Zug hab ich aber den Ticketpreis und den will ich in der Rechnung anzeigen. Dieser Wert steht in product_price.

So schaut mein Produkt aus, das er aber nicht findet.

print_r gibt mir auch die obere Fehlermeldung (undefined variable: product)

Folgenden Code mal getestet:

<?php if (product_name == 'oepnv') { echo (product_price) . ' €'; //ÖPNV/Fahrtkosten } ?>

Dann bekomm ich als Fehlermeldung folgende:
A PHP Error was encountered
Severity: Warning
Message: Use of undefined constant product_name - assumed ‘product_name’ (this will throw an Error in a future version of PHP)

Ich habe sowohl $item->product_name, als auch $product->product_name getestet. Immer bekomme ich die Fehlermeldung, dass er $product nicht kennt.

Wo habe ich bitte meinen Denkfehler??

PHP verwendet ‘$’, um Variablen zu markieren

if ($product_name == 'oepnv')

Bitte laden Sie Ihre Datei hier hoch.

Die Datei habe ich weiter oben schon verlinkt. (muss nur als .php umbenannt werden):
https://community2.invoiceplane.com/t/topic/7746/11?u=oulif

Den $ habe ich natürlich gesetzt.

Ich versteh halt nicht, warum er Undefined Variable product sagt?

Aha. Es ist in der Rechnung PDF. Ich habe es nicht verstanden.
(Sorry, ich verwende das Übersetzen von Google).

In der Rechnungsvorlage gibt es zwei Hauptvariablen.

print_r($invoice);
print_r($items);

$invoice ist zum Beispiel einfach
<?php echo $invoice->invoice_number; ?>

$item ist eine Liste
‘product_name’ ist ein Teil von $item

foreach($items as $item){
    echo $item->product_name . '</br>';
    echo $item->product_price . '</br>';
}

Hoffe das hilft

1 Like

Ja das hat mir schon mal weitergeholfen.
Habe das ganze gerade so gelöst:

<?php foreach ($items as $item) { if ($item->product_name == 'oepnv') { echo ($item->product_price) . ' €'; //ÖPNV/Fahrtkosten } } ?>