Bestelbevestiging
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:
Code (php)
Kan iemand mij helpen de foutmelding op te lossen?
Met vriendelijke groet,
Rene Hoekstra
Voor de duidelijkheid de regels voor regel 1220:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?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 ) {
}
?>
// 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 ) {
}
?>
Rene, ik heb dit topic even naar de juiste categorie verplaatst. Daarnaast heb ik de code tags toegevoegd zodat de code beter te lezen is. Kan je dit voortaan zelf doen? Alvast bedankt!
[/modedit]
Gewijzigd op 19/05/2012 13:29:30 door Niels K
De melding die je krijgt is een 'notice' dus alleen een melding maar laat de code wel werken. Je kunt error_reporting gewoon uit zetten en zul je die melding niet meer krijgen.
Aangezien je aangeeft dat alles wel gewoon werkt, zal het goed moeten zijn. Echter maak uiteraard wel een test zodat je dat ook zeker weet.
Zal ik de volgende keer doen, sorry.
@Rene, is je probleem nu opgelost?
Enig idee waar ik de error_reporting moet uitzetten?
Kan ik deze code op de 1e regel van het script neerzetten? Of moet deze elders geplaatst worden.
Dat kan ook maar dan wordt error reporting alleen voor die pagina uit gezet, en niet voor je hele site.
Ik heb de code toegevoegd en de foutmelding wordt nu niet meer weergegeven.
Mijn dank is groot.
Graag gedaan.
Let wel, de fout (notice) is niet meer zichtbaar, maar is nog steeds aanwezig.
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?
ps_payment::$payment_code
Je zult ergens een class ps_payment hebben en daar moet je dan die property definiëren. Zoiets als dit:
Gewijzigd op 21/05/2012 11:21:03 door Ozzie PHP
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.
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 ;)
De fout kan ook gewoon in het origineel zitten natuurlijk. Dat zal niet de eerste keer zijn... en ook zeker niet de laatste keer ;)
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
Wat voor webwinkel software gebruik je? OSCommerce, Magento, etc.
joomla versie 1.5.26
virtuemart versie 1.1.9