task=orderdone problems: 5 arguments are required, 4 given

Started by jelly, November 22, 2023, 15:33:22 PM

Previous topic - Next topic

jelly

Joomla! 4.4.0.
Virtuemart 4.2.0.


Last week everything worked ok, paymentprovider plugin worked neatly, etc. I did not launch my new webshop yet because of some language overrides I wanted to make / because of finetuning / testing some more.

Today... after finetuning, testing shows problems at placing an order!

  • Today I do not receive the orders by mail (Configuration of email order status seems ok).
  • Test Modus Plugin payment provider seems to work properly
  • At first succesful today: test choosing payment method: Wire Transfer (payment class name used is VM Payment - Standard) I received mail etc everything ok.
  • Then I thought oke, some more language overrides are necessary which I did.
  • Second test choosing payment method Wire Transfer: now also gives PROBLEMS!!!???.

I no longer receive order-emails and all orders say THANK YOU FOR YOUR ORDER, plus... warnings and errors.


Can this be because of language overrides I made? (Like taking out the brackets in the subject line of the order email: [])


The problem occurs at URL ending at:   cart?task=orderdone

Quote
The requested page cannot be found.

An error occurred while processing the request.

This page may not be accessible because:

an outdated bookmark/favorite
an incorrectly typed address
a search engine has an outdated list of this website
there is no access to this page

Quote
5 arguments are required, 4 given


I activated DEBUG which shows:


Call stack
# Function Location
1 () JROOT/administrator/components/com_virtuemart/helpers/vmtext.php:149
2 sprintf()               JROOT/administrator/components/com_virtuemart/helpers/vmtext.php:149
3 vmText::sprintf() JROOT/components/com_virtuemart/views/invoice/view.html.php:304
4 VirtuemartViewInvoice->display()               JROOT/components/com_virtuemart/views/invoice/view.html.php:346
5 VirtuemartViewInvoice->renderMailLayout() JROOT/components/com_virtuemart/helpers/shopfunctionsf.php:877
6 shopFunctionsF::sendVmMail() JROOT/administrator/components/com_virtuemart/models/orders.php:2485
7 VirtueMartModelOrders->notifyCustomer()               JROOT/administrator/components/com_virtuemart/models/orders.php:1566
8 VirtueMartModelOrders->updateStatusForOneOrder() JROOT/plugins/vmpayment/standard/standard.php:162
9 plgVmPaymentStandard->plgVmConfirmedOrder() JROOT/libraries/src/Plugin/CMSPlugin.php:289
10 Joomla\CMS\Plugin\CMSPlugin->Joomla\CMS\Plugin\{closure}() JROOT/libraries/vendor/joomla/event/src/Dispatcher.php:486
11 Joomla\Event\Dispatcher->dispatch()                           JROOT/libraries/src/Application/EventAware.php:111
12 Joomla\CMS\Application\WebApplication->triggerEvent() JROOT/administrator/components/com_virtuemart/helpers/vdispatcher.php:41
13 vDispatcher::trigger()                                   JROOT/components/com_virtuemart/helpers/cart.php:1896
14 VirtueMartCart->confirmedOrder()                JROOT/components/com_virtuemart/helpers/cart.php:1575
15 VirtueMartCart->confirmDone()                     JROOT/components/com_virtuemart/controllers/cart.php:95
16 VirtueMartControllerCart->display()                 JROOT/components/com_virtuemart/controllers/cart.php:205
17 VirtueMartControllerCart->updatecart()                JROOT/libraries/src/MVC/Controller/BaseController.php:693
18 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT/components/com_virtuemart/virtuemart.php:129
19 require_once() JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:71
20 Joomla\CMS\Dispatcher\LegacyComponentDispatcher::Joomla\CMS\Dispatcher\{closure}() JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:73
21 Joomla\CMS\Dispatcher\LegacyComponentDispatcher->dispatch() JROOT/libraries/src/Component/ComponentHelper.php:361
22 Joomla\CMS\Component\ComponentHelper::renderComponent() JROOT/libraries/src/Application/SiteApplication.php:208
23 Joomla\CMS\Application\SiteApplication->dispatch() JROOT/libraries/src/Application/SiteApplication.php:249
24 Joomla\CMS\Application\SiteApplication->doExecute() JROOT/libraries/src/Application/CMSApplication.php:293
25 Joomla\CMS\Application\CMSApplication->execute() JROOT/includes/app.php:61
26 require_once() JROOT/index.php:32


I am really with my hands in my hair: what is suddenly wrong? What can I do???

I hope someone can help me out.

Roderic

I had the same error message with one of my sites, the problem turned out to be an older plug-in for sequential order numbers that wasn't PHP 8.x compatible.

After I deactivated this plug-in, the problem was solved. Perhaps you have the same or a similar outdated plug-in that comes into play when placing the order. Try disabling all 3rd party plug-ins and try again.

GJC Web Design

certainly looks like your lang over rides are causing a problem.. the text substitutions must be the same as the original

1   ()   JROOT/administrator/components/com_virtuemart/helpers/vmtext.php:149
2   sprintf()                 JROOT/administrator/components/com_virtuemart/helpers/vmtext.php:149
3   vmText::sprintf()   JROOT/components/com_virtuemart/views/invoice/view.html.php:304
GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

jelly

@Roderic, thanks for your reply. I have turned off my payment provider plugin (that is the only 3rd party plugin I use), but the problem was still present.

@GJC, thanks for your reaction. I think the language overrides are a problem too. Strange since I never had that problem before.

I checked administrator/components/com_virtuemart/helpers/vmtext.php:149

This line says:
return call_user_func_array('sprintf', $args);

But it gives me no clue which language override string is the problem, does it tell you something?

I took a look at /components/com_virtuemart/views/invoice/view.html.php:304

Here it says:
$this->subject = vmText::sprintf('COM_VIRTUEMART_MAIL_SUBJ_VENDOR_'.$orderDetails['details']['BT']->order_status, $this->shopperName, strip_tags($this->currencyV->

At both I see sprintf mentioned... but that is as far as I can tell something about it  ::) :D


jelly

Hmmm, I deleted ALL my language overrides (since it was too timeconsuming to find out which one I added lastly) and... all works again.

I thought the language overrides were harmless? That seems not the case.

Still I do not know which one was / were the one(s) that caused the problem.

Next week I will add them again, one by one, and will mention the error inducing ones here, I hope that will help developers in some way?