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 :wink:
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 :wink:
Maybe this helps somebody else, or maybe it find its way into the core files.

I followed your instructions but could not reproduce result

Image

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.