Nadat een eerder probleem in php is opgelost met betrekking tot ons winkelmandje, komt een volgend probleem naar voren.

In de laatste stap van het bestellen moet je je bestelling bevestigen. Als je dit hebt gedaan komt de volgende regel in het scherm te staan:

Notice: Undefined property: ps_payment::$payment_code in /home/hoekst25/domains/kinderspulenzo.nl/public_html/administrator/components/com_virtuemart/classes/ps_checkout.php on line 1220

De bestelling wordt wel geplaatst en kan ik terug vinden in de backend van onze site.

Regel 1220 van ps_checkout.php vermeld:

<?php
if( $enable_processor == "Y" || stristr($_PAYMENT->payment_code, '_API' ) !== false ) {
?>

Kan iemand mij helpen de foutmelding op te lossen?

Met vriendelijke groet,

Rene Hoekstra

Voor de duidelijkheid de regels voor regel 1220:

<?php

// Export the order_id so the checkout complete page can get it
$d["order_id"] = $order_id;

/*
* Let the shipping module know which shipping method
* was selected. This way it can save any information
* it might need later to print a shipping label.
*/
if( is_callable( array($this->_SHIPPING, 'save_rate_info') )) {

}

// Now as everything else has been done, we can update
// the Order Status if the Payment Method is
// "Use Payment Processor", because:
// Payment Processors return false on any error
// Only completed payments return true!
$update_order = false;
if( $order_total == 0.00 ) { // code moved out of $_PAYMENT check as no payment will be needed when $order_total=0.0



} elseif (isset($_PAYMENT)) {
if( $enable_processor == "Y" || stristr($_PAYMENT->payment_code, '_API' ) !== false ) {
}

?>


@Ozzie PHP

Ben ik me van bewust, maar onze klanten zien de fout niet meer en dat is mijn 1e prioriteit.
H
eb jij enig idee hoe ik deze fout kan oplossen?
Deze property is niet gedefinieerd:

ps_payment::$payment_code

Je zult ergens een class ps_payment hebben en daar moet je dan die property definiƫren. Zoiets als dit:

<?php
class ps_payment
{

public $payment code;

// hier de rest van de code

}
?>
@Ozzie,

Dit is een notice, geen fout ;) Hij geeft alleen aan dat er een undefined property is.

@Rene, Draai je een Open Scource winkelwagen? Zoja vervang de ps_checkout.php eens door de originele. Rename de gene die je nu hebt naar ps_checkout_old.php zodqat je hem nog wel hebt.
Chris, dat snap ik. Maar een notice is een melding dat je iets niet hebt gedaan zoals het hoort. Maar PHP, schappelijk als het is, accepteert het.. maar dat wil dus niet zeggen dat het goed is en het is beter om het op te lossen.
@Ozzie,

Ja uiteraard is oplossen beter dan onderdrukken, echter met het beetje code wat hier staat kan ik niets bedenken. Het enige dat ik weet is dat er iets in ps_payment niet juist is.

Of dat in het checkout script staat of in een losse include is mij een raadsel. Daarom heb ik hem ook aangeraden om de originele ps_checkout.php eens terug te zetten en zijn huidige te renamen naar ps_checkout_old.php.

krijgt hij de melding dan nog, weet je dat je verder dan die pagina moet kijken ;)
"krijgt hij de melding dan nog, weet je dat je verder dan die pagina moet kijken ;)"

De fout kan ook gewoon in het origineel zitten natuurlijk. Dat zal niet de eerste keer zijn... en ook zeker niet de laatste keer ;)
Ik neem aan dat dit soort meldingen bij bekende openscource software toch al wel bekend en gefixed is.

Het kan natuurlijk zo zijn dat het in het origineel zit, maarja zonder te weten welk pakket en versie hij gebruikt is dat moeilijk te achterhalen ;-)

@Rene,

Welk pakket + versie gebruik je eigenlijk?
Ik gebruik DirectAdmin waar phpMyadmin inzit de versie van phpMyadmin is 3.4.8
DirectAdmin is een domein/hosting beheerders pakket ;) en phpMyadmin is voor je database.

Wat voor webwinkel software gebruik je? OSCommerce, Magento, etc.
sorry, ik werk met Joomla en virtuemart
joomla versie 1.5.26
virtuemart versie 1.1.9

Reageren