Page 1 of 2
Placeholder in infoscreen
Posted: 15 Apr 2024, 17:31
by Cliffdiver
Hy,
is it possible to use placeholder values e.g. {iban} in the infoscreen at the end of a place order.
In the backend you can set a custom text in the payment options.
Thanks for any hint.
Re: Placeholder in infoscreen
Posted: 15 Apr 2024, 18:17
by Jan
Hi, there is no option to translate the variables in info view, but there is option to run own plugin code which will get information about the data (order id, user id, etc).
The event which sends the data to plugin and get modified information is called: onPCVonInfoViewDisplayContent
Jan
Re: Placeholder in infoscreen
Posted: 15 Apr 2024, 19:31
by Cliffdiver
HY Jan,
thanks for the Info.
Re: Placeholder in infoscreen
Posted: 15 Apr 2024, 20:57
by Cliffdiver
I did it now in a very simple way.
Created an override of view->info->default.php
NEar the the call of the paymentInfo
Code: Select all
$paymentDescription = PhocacartPayment::getInfoDescriptionById((int)$this->t['infodata']['payment_id']);
I added the following lines
Code: Select all
$order = new PhocacartOrderView();
$common = $order->getItemCommon($this->t['infodata']['order_id']);
$orderNumber= PhocacartOrder::getOrderNumber($this->t['infodata']['order_id'], $common->date, $common->order_number);
$bas = $order->getItemBaS($this->t['infodata']['order_id'], 1);
//$totalBrutto= $order->getItemTotal($orderId, 0, 'brutto');
$r = PhocacartText::prepareReplaceText($order, $this->t['infodata']['order_id'], $common, $bas);
$paymentDescription = PhocacartText::completeText($paymentDescription,$r);
After that lines the original code continues
Code: Select all
if ($paymentDescription != '') {
echo '<div class="ph-info-payment-description">'.HTMLHelper::_('content.prepare', $paymentDescription).'</div>';
}
Now you can use every placeholder like in the email contents.
For me it was very important to show some paymentinformations,
because sometimes my infomails got filtered by the SPAM-System and my customers don't always know where to find the SPAM-Folder
Maybe this helps somebody else, or maybe it find its way into the core files.
Re: Placeholder in infoscreen
Posted: 22 Apr 2024, 20:09
by Jan
Hi, thank you for this guide.
Jan
Re: Placeholder in infoscreen
Posted: 16 May 2024, 18:24
by Nidzo
Cliffdiver wrote: ↑15 Apr 2024, 20:57
I did it now in a very simple way.
Created an override of view->info->default.php
NEar the the call of the paymentInfo
Code: Select all
$paymentDescription = PhocacartPayment::getInfoDescriptionById((int)$this->t['infodata']['payment_id']);
I added the following lines
Code: Select all
$order = new PhocacartOrderView();
$common = $order->getItemCommon($this->t['infodata']['order_id']);
$orderNumber= PhocacartOrder::getOrderNumber($this->t['infodata']['order_id'], $common->date, $common->order_number);
$bas = $order->getItemBaS($this->t['infodata']['order_id'], 1);
//$totalBrutto= $order->getItemTotal($orderId, 0, 'brutto');
$r = PhocacartText::prepareReplaceText($order, $this->t['infodata']['order_id'], $common, $bas);
$paymentDescription = PhocacartText::completeText($paymentDescription,$r);
After that lines the original code continues
Code: Select all
if ($paymentDescription != '') {
echo '<div class="ph-info-payment-description">'.HTMLHelper::_('content.prepare', $paymentDescription).'</div>';
}
Now you can use every placeholder like in the email contents.
For me it was very important to show some paymentinformations,
because sometimes my infomails got filtered by the SPAM-System and my customers don't always know where to find the SPAM-Folder
Maybe this helps somebody else, or maybe it find its way into the core files.
I followed your instructions but could not reproduce result
Re: Placeholder in infoscreen
Posted: 18 May 2024, 18:35
by Cliffdiver
which phoca version do you use?I use phoca 4.0.10 with the customized child template of casiopeia which is called phoca food.
Re: Placeholder in infoscreen
Posted: 18 May 2024, 19:09
by Nidzo
Cliffdiver wrote: ↑18 May 2024, 18:35
which phoca version do you use?I use phoca 4.0.10 with the customized child template of casiopeia which is called phoca food.
I use Phoca 5.0.0.Beta52 and Joomla 5.1.0. That could be the reason for not working.
Re: Placeholder in infoscreen
Posted: 18 May 2024, 20:47
by Cliffdiver
It took me some time, to get a clue, which classes i need and how it works.
I get some idea in the file administrator/libraries/phocacart/order/status.php
There I found the code for the replacement (search for PhocaCartText::prepareReplaceText) and checked, which variables have to be passed over to the class / method.
Re: Placeholder in infoscreen
Posted: 18 May 2024, 21:03
by Cliffdiver
I just had a look at the code of Phoca 5 and downloaded the BEta 53 which is online since yesterday.
I found a code in the file components/phoca_cart/views/info/tmpl/default.php which looks like the replacement routine (around line 96).
This code is new
Code: Select all
if ($this->t['preparereplace']) {
$paymentDescription = PhocacartText::completeText($paymentDescription, $this->t['preparereplace'], 1);
}
Maybe an update from BEta52 to 53 will solve the problem.