class myUser extends myUser_parent {
public function inGroup($sGroupID) {
$retValue = parent::inGroup($sGroupID);
if ( $retValue == false && $sGroupID == "oxidpriceb") {
$myconfig = oxRegistry::get("oxConfig");
return $this->inGroup($myconfig->getConfigParam("myGroup"));
}
return $retValue;
}
}
Es kommt der Fehler “Function ‘loadUserPayPalUser’ does not exist”, wenn mein Modul vor PayPal liegt.
Wenn ich es an das Ende der User lege, funktioniert ein anderes Modul nicht.
Was mache ich falsch?
Was muss man beachten, wenn man die Reihenfolge in “Installierte Shop-Module” festlegt bzw. dort ein Fehler auftritt?
Dies lässt sich schwer beantworten, weil dies wahrscheinlich ein projektspezifisches Problem auf Deinen individuellen Shop ist.
Die Reihenfolge der installierten Module spielt für die Vererbungskette eine Rolle.
Die Vererbungskette wird verwendet wenn man mit z.B. mit oxNew(‘oxuser’) das Model User aufruft, dann ist sichergestellt wenn alle Module die Vererbungskette einhalten - das bestimmte Logik ausgeführt wird.
Wenn man jetzt aber eine überladene Klasse außerhalb von oxNew(…) aufruft z.B. new myUser() wird die Vererbungskette unterlaufen und Funktionen aus anderen Modulen wie z.B. von PayPal Modul die Funktion loadUserPayPalUser() kann dann nicht bekannt sein.
Deshalb sollte das User Model mit oxNew(‘oxuser’) aufgerufen werden.
Also könntest die Verwendung Prüfung. Anhand der oxideshop.log Datei erhälst über die Fehlermeldung genauere Infos an welcher Stelle der Aufruf fehlschlägt und kannst ggfs. die Stelle ausfindig machen welche die Vererbungskette nicht einhält.
Tatsächlich wird ein Modul aufgeführt.
Es müsste mystepregister sein. Sehe ich das richtig?
Den Aufruf habe ich aber im ganzen Shop noch nicht gefunden.
[2021-12-22 12:14:55] OXID Logger.ERROR: Function 'loadUserPayPalUser' does not exist or is not accessible! (mystepregister)
["[object] (OxidEsales\\Eshop\\Core\\Exception\\SystemComponentException(code: 0): Function 'loadUserPayPalUser' does not exist or is not accessible! (mystepregister)
at /www/htdocs/shop/vendor/oxid-esales/oxideshop-ce/source/Core/Base.php:84)\n[stacktrace]
#0 /www/htdocs/shop/source/modules/oe/oepaypal/Model/Order.php(236): OxidEsales\\EshopCommunity\\Core\\Base->__call('loadUserPayPalU...', Array)
#1 /www/htdocs/shop/vendor/oxid-esales/oxideshop-ce/source/Application/Model/Order.php(2037): OxidEsales\\PayPalModule\\Model\\Order->validateDelivery(Object(getitemscount))
#2 /www/htdocs/shop/vendor/oxid-esales/oxideshop-ce/source/Application/Model/Order.php(493): OxidEsales\\EshopCommunity\\Application\\Model\\Order->validateOrder(Object(getitemscount), Object(mystepregister))
#3 /www/htdocs/shop/vendor/oxid-esales/oxideshop-ce/source/Application/Controller/OrderController.php(219): OxidEsales\\EshopCommunity\\Application\\Model\\Order->finalizeOrder(Object(getitemscount), Object(mystepregister))
#4 /www/htdocs/shop/source/modules/vermittlung/controllers/myDealerOrder.php(53): OxidEsales\\EshopCommunity\\Application\\Controller\\OrderController->execute()
#5 /www/htdocs/shop/source/modules/oe/oepaypal/Controller/OrderController.php(101): myDealerOrder->execute()
#6 /www/htdocs/shop/vendor/oxid-esales/oxideshop-ce/source/Core/Controller/BaseController.php(534): OxidEsales\\PayPalModule\\Controller\\OrderController->execute()
#7 /www/htdocs/shop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(345): OxidEsales\\EshopCommunity\\Core\\Controller\\BaseController->executeFunction('execute')
#8 /www/htdocs/shop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(279): OxidEsales\\EshopCommunity\\Core\\ShopControl->executeAction(Object(su_order), 'execute')
#9 /www/htdocs/shop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(142): OxidEsales\\EshopCommunity\\Core\\ShopControl->_process('OxidEsales\\\\Esho...', 'execute', NULL, NULL)
#10 /www/htdocs/shop/source/modules/assofort/su_shopcontrol.php(18): OxidEsales\\EshopCommunity\\Core\\ShopControl->start()
#11 /www/htdocs/shop/vendor/oxid-esales/oxideshop-ce/source/Core/Oxid.php(27): su_shopcontrol->start()
#12 /www/htdocs/shop/source/index.php(16): OxidEsales\\EshopCommunity\\Core\\Oxid::run()
#13 {main}\n"] []