[size=8]THIS IS NOW OUTDATED[/size]
http://forum.cs-cart…ng-as-intended/
Information left below for historic purposes only
This is my method for returning CC details for 3.0.2
What this will do is retain CC info for ALL transactions. it also adds a “Clear CC info” button to order details.
BACKUP - BACKUP - BACKUP
If symptoms persist, seek professional advice
/core/fn.cart.php
replace this
$payment_info = fn_cleanup_payment_info(‘’, fn_encrypt_text(serialize($payment_info)), true);
with
$payment_info = fn_encrypt_text(serialize($payment_info));
/skins/basic/admin/views/orders/details.tpl
Find
<br />
<br />
{if $order_info.payment_info}<br />
{foreach from=$order_info.payment_info item=item key=key}<br />
{if $item && ($key != "expiry_year" && $key != "start_year")}<br />
<div class="form-field"><br />
<label>{if $key == "card"}{assign var="cc_exists" value=true}{$lang.credit_card}{elseif $key == "expiry_month"}{$lang.expiry_date}{elseif $key == "start_month"}{$lang.start_date}{else}{$lang.$key}{/if}:</label><br />
{if $key == "order_status"}<br />
{include file="common_templates/status.tpl" status=$item display="view" status_type=""}<br />
{elseif $key == "reason_text"}<br />
{$item|nl2br}<br />
{elseif $key == "expiry_month"}<br />
{$item}/{$order_info.payment_info.expiry_year}<br />
{elseif $key == "start_month"}<br />
{$item}/{$order_info.payment_info.start_year}<br />
{else}<br />
{$item}<br />
{/if}<br />
</div><br />
{/if}<br />
{/foreach}<br />
```<br />
<br />
[b]Insert After[/b]<br />
```php
<br />
<br />
{if $cc_exists}<br />
<p class="center"><br />
<input type="hidden" name="order_ids[]" value="{$order_info.order_id}"><br />
{include file="buttons/button.tpl" but_text="Remove CC info" but_meta="cm-ajax cm-comet" but_name="dispatch[orders.remove_cc_info]"}<br />
</p><br />
{/if}<br />
```<br />
<br />
<br />
<br />
<br />
<br />
<br />
/controllers/admin/orders.php<br />
[b]Find[/b]<br />
```php
<br />
if ($mode == 'packing_slip' && !empty($_REQUEST['order_ids'])) {<br />
<br />
foreach ($_REQUEST['order_ids'] as $k => $v) {<br />
$view_mail->assign('order_info', fn_get_order_info($v, false, true, false, true));<br />
$view_mail->display('orders/print_packing_slip.tpl');<br />
if ($v != end($_REQUEST['order_ids'])) {<br />
echo "<div style="page-break-before: always;"> </div>";<br />
}<br />
}<br />
<br />
exit;<br />
}<br />
```<br />
<br />
[b]Insert After[/b]<br />
```php
<br />
<br />
if ($mode == 'remove_cc_info' && !empty($_REQUEST['order_ids'])) {<br />
<br />
fn_set_progress('total', sizeof($_REQUEST['order_ids']));<br />
<br />
foreach ($_REQUEST['order_ids'] as $v) {<br />
$payment_info = db_get_field("SELECT data FROM ?:order_data WHERE order_id = ?i AND type = 'P'", $v);<br />
fn_cleanup_payment_info($v, $payment_info);<br />
}<br />
<br />
fn_set_notification('N', fn_get_lang_var('notice'), fn_get_lang_var('done'));<br />
<br />
if (count($_REQUEST['order_ids']) == 1) {<br />
$o_id = array_pop($_REQUEST['order_ids']);<br />
$suffix = ".details?order_id=$o_id";<br />
}<br />
}<br />
```<br />
<br />
<br />
V2 . GooRoo Fixed provided by included<br />
<br />
PS clear cache after any all template changes