Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

W3 osCommerce WIP


Recommended Posts

  • 3 months later...

I wrote something useful for users of this version. Saving the emails from the file contact_us.php in the database and the possibility to answer them from the admin area.

contact_us.php

find:

  require('includes/application_top.php');
  require('includes/languages/' . $language . '/contact_us.php');

add after:

  $account = array();$name = '';$email = '';$phone = '';
   if (isset($_SESSION['customer_id'])) {
    $account_query = tep_db_query("select c.customers_id" .
     " FROM " . TABLE_CUSTOMERS . " c, " . TABLE_ADDRESS_BOOK . " ab " .
     " WHERE c.customers_id = '" . (int)$customer_id . "'" .
     " AND ab.address_book_id = c.customers_default_address_id");
    $account = tep_db_fetch_array($account_query);
    $customer_id = $account['customers_id'];
  }

find:

      tep_redirect(tep_href_link('contact_us.php', 'action=success'));

add bevore:

      if (!empty($customer_id)){$cus_id = $customer_id;}else{$cus_id = '0';}
      tep_db_query("insert into contact_us ( customers_id, name, email, enquiry, date) VALUES ( '" . $cus_id . "', '" . tep_db_input($name) . "', '" . $email_address . "', '" . tep_db_input($enquiry) . "', Now())");

 

********************

SQL - contact_us
 

CREATE TABLE `contact_us` (
  `email_id` int NOT NULL,
  `customers_id` text NOT NULL,
  `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_turkish_ci NOT NULL,
  `email` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_unicode_ci NOT NULL,
  `enquiry` longtext CHARACTER SET utf8mb3 COLLATE utf8_unicode_ci NOT NULL,
  `date` datetime DEFAULT NULL,
  `status` int NOT NULL,
  `adminenquiry` longtext NOT NULL,
  `senddate` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

ALTER TABLE `contact_us`
  ADD PRIMARY KEY (`email_id`);

ALTER TABLE `contact_us`
  MODIFY `email_id` int NOT NULL AUTO_INCREMENT;
COMMIT;

add to:

catalog/admin/includes/languages/german.php

define('BOX_CUSTOMERS_EMAILS_HEADING', 'Kundenanfragen');

############################

catalog/admin/includes/boxes/customers.php

       array(
        'code' => 'customers_email.php',
        'title' => BOX_CUSTOMERS_EMAILS_HEADING,
        'link' => tep_href_link('customers_email.php')
      ),      

############################

New files:

catalog/admin/includes/languages/german/customers_email.php

<?php

define('CUSTOMERS_EMAIL_HEADING_TITLE', 'Kundenemails');
define('CUSTOMERS_EMAIL_CUSTOMER_NAME', 'Kundenname');
define('CUSTOMERS_EMAIL_CUSTOMER_GUEST', 'Gast');
define('CUSTOMERS_EMAIL_CUSTOMER_MAIL_ID', 'E-Mail ID');
define('CUSTOMERS_EMAIL_CUSTOMER_ID', 'Kundennummer');
define('CUSTOMERS_EMAIL_CUSTOMER_EMAIL', 'E-Mail');
define('CUSTOMERS_EMAIL_CUSTOMER_PHONE', 'Telefonnummer');
define('CUSTOMERS_EMAIL_CUSTOMER_SUBJECT', 'Betreff');
define('CUSTOMERS_EMAIL_CUSTOMER_ENQUIRY', 'Kundenanfrage');
define('CUSTOMERS_EMAIL_CUSTOMER_ADMIN_ENQUIRY', 'Gesendete Antwort');
define('CUSTOMERS_EMAIL_CUSTOMER_DATE', 'Anfragedatum');
define('CUSTOMERS_EMAIL_CUSTOMER_STATUS', 'Status');
define('CUSTOMERS_EMAIL_TEXT_DISPLAY_NUMBER_OF_STOCKLABEL', 'Kunden und Besucheremails');
define('CUSTOMERS_EMAIL_SEND_MAIL', 'Kundenanfrage beantworten');
define('CUSTOMERS_EMAIL_SEND_STATUS_EDIT', 'Antwort umwiderruflich senden');
define('CUSTOMERS_EMAIL_SEND_STATUS_SEND', 'Status aktualisieren');
define('CUSTOMERS_EMAIL_SEND_STATUS_SEND_OK', 'Gesendet an');
define('CUSTOMERS_EMAIL_STATUS_ON', 'Aktiv');
define('CUSTOMERS_EMAIL_STATUS_OFF', 'Gelesen');
define('CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER', 'E-Mail gesendet');
define('CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER_OVER', 'E-Mail wurde bereits gesendet');
define('CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER_CLOSE', 'Schliessen');
define('CUSTOMERS_EMAIL_STATUS_BUTTON_SHOW_EDIT', 'Details ansehen');
define('CUSTOMERS_EMAIL_STATUS_TEXT_DELETE_INTRO', 'Löschen');
define('CUSTOMERS_EMAIL_STATUS_TEXT_EDIT_INTRO', 'Bearbeiten');
define('CUSTOMERS_EMAIL_BUTTON_RETURN_TO_CUSTOMER', 'Auf E-Mail antworten');
define('CUSTOMERS_EMAIL_BUTTON_INDEX', 'Weiter zu Startseite');
define('CUSTOMERS_EMAIL_SENT_EMAIL_SUBJECT', 'Antwort auf Ihre Anfrage');
define('CUSTOMERS_EMAIL_SENT_EMAIL_TO_CUSTOMER_HEADING', 'Antwort auf Ihre Anfrage mit dem Betreff');
define('CUSTOMERS_EMAIL_TEXT_EMAIL_SEPARATOR', '<span class="small"><br>---------------------------<br></span>');
define('CUSTOMERS_EMAIL_TEXT_EMAIL_SIGNATURE_CR', '<br><span class="small"><a href="'. tep_href_link('../' . 'index.php') . '">' . STORE_NAME . '</a>' . '<br>' . STORE_ADDRESS . '<br>E-Mail: ' . STORE_OWNER_EMAIL_ADDRESS . '<br></span>');
?>

catalog/admin/customers_email.php

<?php

  require('includes/application_top.php');

  $action = (isset($_GET['action']) ? $_GET['action'] : '');

  $status_array = array(array('id'=>'0', 'text'=>CUSTOMERS_EMAIL_STATUS_ON), array('id'=>'1', 'text'=>CUSTOMERS_EMAIL_STATUS_OFF), array('id'=>'2', 'text'=>CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER));

  if (tep_not_null($action)) {
    switch ($action) {
      case 'insert':
      case 'save':
        if (isset($_GET['emID'])) $email_id = tep_db_prepare_input($_GET['emID']);
		$status = tep_db_prepare_input($_POST['status']);
		$adminenquiry = tep_db_prepare_input($_POST['adminenquiry']);

        $sql_data_array = array(
			'status' => $status, 
			'adminenquiry' => $adminenquiry
		);

        
        if ($action == 'insert') {

          $sql_data_array = array_merge($sql_data_array);

          tep_db_perform('contact_us', $sql_data_array);
          tep_db_query("update contact_us set status = '1' where email_id = '" . (int)$email_id . "'");
          $email_id = tep_db_insert_id();
        } elseif ($action == 'save') {
          $sql_data_array = $sql_data_array;

          tep_db_perform('contact_us', $sql_data_array, 'update', "email_id = '" . (int)$email_id . "'");
          tep_db_query("update contact_us set status = '1' where email_id = '" . (int)$email_id . "'");
        }

        if (USE_CACHE == 'true') {
          tep_reset_cache_block('email_labels');
        }

        tep_redirect(tep_href_link('customers_email.php', (isset($_GET['page']) ? 'page=' . $_GET['page'] . '&' : '') . 'emID=' . $email_id));
        break;
      case 'sendmail':
        if (isset($_GET['emID'])) $email_id = tep_db_prepare_input($_GET['emID']);

          tep_db_query("update contact_us set senddate = now() where email_id = '" . (int)$email_id . "'");
          tep_db_query("update contact_us set status = '2' where email_id = '" . (int)$email_id . "'");

        if (USE_CACHE == 'true') {
          tep_reset_cache_block('email_labels');
        }
       
        tep_redirect(tep_href_link('customers_email.php', (isset($_GET['page']) ? 'page=' . $_GET['page'] . '&' : '') . 'emID=' . $email_id));
        break;
      case 'deleteconfirm':
        $email_id = tep_db_prepare_input($_GET['emID']);
        tep_db_query("delete from contact_us where email_id = '" . (int)$email_id . "'");

        $auto_increment_query = tep_db_query("select email_id from contact_us where email_id");
        if (tep_db_num_rows($auto_increment_query) < '1'){
        tep_db_query("ALTER TABLE contact_us AUTO_INCREMENT =1");
        }

        if (USE_CACHE == 'true') {
          tep_reset_cache_block('email_labels');
        }
       
        tep_redirect(tep_href_link('customers_email.php', 'page=' . $_GET['page']));
        break;
    }
  }

  require('includes/template_top.php');
?>

<div class="w3-padding">
<h1 class="pageHeading"><?php echo CUSTOMERS_EMAIL_HEADING_TITLE; ?></h1>
            
<div class="d-flex flex-column flex-sm-row mb-3">
	<div class="flex-grow-1">				
		<table class="w3-table w3-border w3-bordered w3-hoverable">
			<thead class="w3-hover-none">
				<tr class="w3-theme">
					<th scope="col"><?php echo CUSTOMERS_EMAIL_CUSTOMER_NAME; ?></th>
					<th scope="col" class="w3-center"><?php echo CUSTOMERS_EMAIL_CUSTOMER_MAIL_ID; ?></th>
					<th scope="col" class="w3-center"><?php echo CUSTOMERS_EMAIL_CUSTOMER_ID; ?></th>
					<th scope="col" class="w3-center"><?php echo CUSTOMERS_EMAIL_CUSTOMER_EMAIL; ?></th>
					<th scope="col" class="w3-center"><?php echo CUSTOMERS_EMAIL_CUSTOMER_DATE; ?></th>															
					<th scope="col" class="w3-center"><?php echo CUSTOMERS_EMAIL_CUSTOMER_STATUS; ?></th>															
					<th scope="col" class="w3-center"><?php echo ''; ?>&nbsp;</th>															
				</tr>
            </thead>
            <tbody>	

<?php
  $email_query_raw = "select email_id, customers_id, name, email, phone, subject, enquiry, date, status, adminenquiry, senddate from contact_us order by email_id";
  $email_split = new splitPageResults($_GET['page'], MAX_DISPLAY_SEARCH_RESULTS, $email_query_raw, $email_query_numrows);
  $email_query = tep_db_query($email_query_raw);
  while ($email = tep_db_fetch_array($email_query)) {
  $email_id = $email['email_id'];
  if ($email['customers_id'] > '0'){$cus_id = $email['customers_id'];}else{$cus_id = CUSTOMERS_EMAIL_CUSTOMER_GUEST;}

    if ((!isset($_GET['emID']) || (isset($_GET['emID']) && ($_GET['emID'] == $email['email_id']))) && !isset($emInfo) && (substr($action, 0, 3) != 'new')) {
      $emInfo = new objectInfo($email);
    }


    if (isset($emInfo) && is_object($emInfo) && ($email['email_id'] == $emInfo->email_id)) {
      echo '              <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $email['email_id'] . '&action=edit') . '\'">' . "\n";
    } else {
      echo '              <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $email['email_id']) . '\'">' . "\n";
    }
?>
                <td class="dataTableContent">&nbsp;<?php echo $email['name']; ?></td>
                <td class="dataTableContent w3-center">&nbsp;<?php echo $email['email_id']; ?></td>
                <td class="dataTableContent w3-center">&nbsp;<?php echo $cus_id; ?></td>
				<td class="dataTableContent w3-center"><?php echo $email['email']; ?></td>
                <td class="dataTableContent w3-center">&nbsp;<?php echo tep_date_short($email['date']);?></td>
				<td class="dataTableContent w3-center"><?php if ($email['status'] == '0'){ echo CUSTOMERS_EMAIL_STATUS_ON;} if ($email['status'] == '1'){ echo CUSTOMERS_EMAIL_STATUS_OFF;} if ($email['status'] == '2'){ echo CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER;}?></td>
                <td class="dataTableContent w3-right-align"><?php if (isset($emInfo) && is_object($emInfo) && ($email['email_id'] == $emInfo->email_id)) { echo '<span class="fas fa-angle-right" style="font-size:20px;"></span>'; } else { echo '<a href="' . tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id) . '"><span title="' . IMAGE_ICON_INFO . '" class="fas fa-info-circle" style="font-size:20px;"></span></a>'; } ?>&nbsp;</td>
              </tr>
<?php
  }
?>
			</tbody>
        </table>
		<div class="d-flex flex-column flex-sm-row justify-content-sm-between mb-3">
                    <div class="w3-small"><?php echo $email_split->display_count($email_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $_GET['page'], CUSTOMERS_EMAIL_TEXT_DISPLAY_NUMBER_OF_STOCKLABEL); ?></div>
                    <div class="w3-small"><?php echo $email_split->display_links($email_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $_GET['page']); ?></div>
		</div>	
		<div class="d-flex flex-column flex-sm-row justify-content-sm-end mb-3">
		</div>
    </div>				

<?php
  $heading = '';
  $contents = '';
  switch ($action) {
    case 'edit':
      $heading = $emInfo->name . '&nbsp;' . $emInfo->email;
      $contents = tep_draw_form('email_labels', 'customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=save', 'post', 'enctype="multipart/form-data"');
if ($emInfo->status == '2'){
	  $contents .= '<tr><td><div class="w3-border w3-border-red w3-black w3-padding mb-3">' . CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER_OVER . '</div>';
}else{
if ($emInfo->status == '0'){
	  $contents .= '<tr><td><div class="mb-3">' . CUSTOMERS_EMAIL_CUSTOMER_STATUS . '<br />' . tep_draw_pull_down_menu('status', $status_array, $emInfo->status, 'class="w3-select w3-border w3-teal"') . '</div>';
}else{
	  $contents .= '<tr><td><div class="mb-3">' . CUSTOMERS_EMAIL_CUSTOMER_STATUS . '<br />' . tep_draw_pull_down_menu('status', $status_array, $emInfo->status, 'class="w3-select w3-border w3-red"') . '</div>';
}
}
	  $contents .= '<div class="mb-3">' . CUSTOMERS_EMAIL_CUSTOMER_ENQUIRY . '<br /><div class="w3-border w3-sand w3-padding mb-2">' . CUSTOMERS_EMAIL_CUSTOMER_SUBJECT . ': ' . $emInfo->subject . '<hr class="hr-gr mt-2 mb-2">' . $emInfo->enquiry . '</div></div>';
if ($emInfo->status == '2'){
	  $contents .= '<div class="mb-3">' . CUSTOMERS_EMAIL_CUSTOMER_ADMIN_ENQUIRY . '<br /><div class="w3-border w3-sand w3-padding mb-2">' . $emInfo->adminenquiry . '</div></div>';
}else{
	  $contents .= '<div class="mb-3">' . CUSTOMERS_EMAIL_SEND_MAIL . '<br>' . tep_draw_textarea_field('adminenquiry', 'soft', '60', '5', $emInfo->adminenquiry, 'class="w3-input w3-border"') . '</div></div>';
}

if ($emInfo->status == '2'){
      $contents .= '<hr class="hr-gr mt-2 mb-2"><div class="mb-3">' . tep_draw_w3_button(CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER_CLOSE, 'fa fa-lock', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id), null, null, 'class="w3-button w3-large w3-block w3-black"') . '</div>';
}else{
if ($emInfo->status == '0'){
      $contents .= '<hr class="hr-gr mt-2 mb-2"><div class="mb-3 mt-3">' . tep_draw_w3_button(IMAGE_SAVE, 'fa fa-save', null, 'primary', null, 'class="w3-button w3-large w3-block w3-teal"') . '</div>';
}else{
      $contents .= '<hr class="hr-gr mt-2 mb-2"><div class="mb-3 mt-3">' . tep_draw_w3_button(IMAGE_SAVE, 'fa fa-save', null, 'primary', null, 'class="w3-button w3-large w3-block w3-red"') . '</div>';
}
      $contents .= '<hr class="hr-gr mt-2 mb-2"><div class="mb-3">' . tep_draw_w3_button(IMAGE_CANCEL, 'fa fa-times', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id), null, null, 'class="w3-button w3-large w3-block w3-theme-light"') . '</div>';
}
      $contents .= '</td></tr>';        
      $contents .= '</form>';        
      break;

    case 'send':
      $heading = CUSTOMERS_EMAIL_SEND_STATUS_SEND_OK . '&nbsp;' . $emInfo->email;
      $contents = '<tr><td>' . tep_draw_form('email_labels', 'customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=sendmail', 'post', 'enctype="multipart/form-data"');
	  $contents .= '<div class="mb-3">' . CUSTOMERS_EMAIL_CUSTOMER_ENQUIRY . '<br /><div class="w3-border w3-sand w3-padding mb-2">' . CUSTOMERS_EMAIL_CUSTOMER_SUBJECT . ': ' . $emInfo->subject . '<hr class="hr-gr mt-2 mb-2">' . $emInfo->enquiry . '</div></div>';
	  $contents .= '<div class="mb-3">' . CUSTOMERS_EMAIL_CUSTOMER_ADMIN_ENQUIRY . '<br /><div class="w3-border w3-sand w3-padding mb-2">' . $emInfo->adminenquiry . '</div></div>';
      if (!empty($emInfo->adminenquiry)){
      tep_mail($emInfo->name, $emInfo->email, CUSTOMERS_EMAIL_SENT_EMAIL_SUBJECT, CUSTOMERS_EMAIL_SENT_EMAIL_TO_CUSTOMER_HEADING . ': ' . $emInfo->subject . CUSTOMERS_EMAIL_TEXT_EMAIL_SEPARATOR . $emInfo->adminenquiry . '<br>' . CUSTOMERS_EMAIL_TEXT_EMAIL_SEPARATOR . CUSTOMERS_EMAIL_CUSTOMER_ENQUIRY . ':<br>' . CUSTOMERS_EMAIL_CUSTOMER_SUBJECT . ': ' . $emInfo->subject . '<br>' . $emInfo->enquiry . CUSTOMERS_EMAIL_TEXT_EMAIL_SEPARATOR . CUSTOMERS_EMAIL_TEXT_EMAIL_SIGNATURE_CR, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
      }          
      $contents .= '<div class="mb-3">' . tep_draw_w3_button(CUSTOMERS_EMAIL_SEND_STATUS_SEND, 'fa fa-sync-alt', null, 'primary', null, 'class="w3-button w3-large w3-block w3-teal"') . '</div>';
      $contents .= '</td></tr>';        
      $contents .= '</form>';        
      break;

    case 'delete':
      $heading .= CUSTOMERS_EMAIL_CUSTOMER_NAME . '&nbsp;' . $emInfo->name . '&nbsp;' . CUSTOMERS_EMAIL_STATUS_TEXT_DELETE_INTRO;

      $contents = tep_draw_form('email_labels', 'customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=deleteconfirm');
      $contents .= '<tr><td>' . CUSTOMERS_EMAIL_STATUS_TEXT_DELETE_INTRO;
      $contents .= '<div class="w3-border w3-border-teal w3-pale-green w3-padding-small mb-3"><strong>' . $emInfo->name . '</strong></div>';

      $contents .= '<div class="mb-3">' . tep_draw_w3_button(IMAGE_DELETE, 'fa fa-trash-alt', null, 'primary', null, 'class="w3-button w3-large w3-block w3-red"') . '</div>';
      $contents .= '<div class="mb-3">' . tep_draw_w3_button(IMAGE_CANCEL, 'fa fa-times', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $_GET['emID']), null, null, 'class="w3-button w3-large w3-block w3-theme-light"') . '</div>';
      $contents .= '</td></tr>';        
      $contents .= '</form>';        
      break;
    default:
      if (isset($emInfo) && is_object($emInfo)) {
      $heading = $emInfo->name;
if ($emInfo->status == '2'){
      $contents .= '<tr><td>' . tep_draw_w3_button(CUSTOMERS_EMAIL_STATUS_BUTTON_SHOW_EDIT, 'fa fa-envelope-square', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=edit'), null, null, 'class="w3-button w3-large w3-block w3-black mb-3"');
}else{
      $contents .= '<tr><td>' . tep_draw_w3_button(IMAGE_EDIT, 'fa fa-cog', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=edit'), null, null, 'class="w3-button w3-large w3-block w3-teal mb-3"');
}
      if ((!empty($emInfo->adminenquiry) && ($emInfo->status != '2'))){
      $contents .= '<tr><td>' . tep_draw_w3_button(CUSTOMERS_EMAIL_SEND_STATUS_EDIT, 'fab fa-telegram-plane', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=send'), null, null, 'class="w3-button w3-large w3-block w3-black mb-3"');
      }
      $contents .= tep_draw_w3_button(IMAGE_DELETE, 'fa fa-trash-alt', tep_href_link('customers_email.php', 'page=' . $_GET['page'] . '&emID=' . $emInfo->email_id . '&action=delete'), null, null, 'class="w3-button w3-large w3-block w3-red mb-3"');

if ($emInfo->status == '0'){
$statusname = '<div class="w3-leftbar w3-border-top w3-border-green"><div class="w3-padding-small">' . CUSTOMERS_EMAIL_CUSTOMER_STATUS . ' ' . CUSTOMERS_EMAIL_STATUS_ON . '</div></div>';
}if ($emInfo->status == '1'){
$statusname = '<div class="w3-leftbar w3-border-top w3-border-red"><div class="w3-padding-small">' . CUSTOMERS_EMAIL_CUSTOMER_STATUS . ' ' . CUSTOMERS_EMAIL_STATUS_OFF . '</div></div>';
}if ($emInfo->status == '2'){
$statusname = '<div class="w3-leftbar w3-border-top w3-border-black"><div class="w3-padding-small">' . CUSTOMERS_EMAIL_CUSTOMER_STATUS . ' ' . CUSTOMERS_EMAIL_STATUS_SEND_TO_CUSTOMER . '</div></div>';
}
     
		$contents .= '<div class="clearfix"></div>' . $statusname;
        $contents .= '</td></tr>';        
      }
      break;
  }

  if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) {
                echo '<div class="w3-quarter ms-sm-2">' . "\n" .
				     '	<table class="w3-table w3-border w3-border-black w3-light-gray">' .
					 '  	<thead>' .      
                     '  		<tr class="w3-theme">' .
                     '          	<th scope="col">'. $heading . '</th>' .
                     '        	</tr>' .
                     '      </thead>' .       
                     '      <tbody>' . $contents . '</tbody>' .
                     '  </table>' .
                     '</div>' . "\n";
  }
?>

</div>
</div>

<?php
  require('includes/template_bottom.php');
  require('includes/application_bottom.php');
?>

FINISH

 

I hope it will be useful to you. Sorry is only in german.

Link to comment
Share on other sites

find in catalog/admin/customers_email.php

  $email_query_raw = "select email_id, customers_id, name, email, phone, subject, enquiry, date, status, adminenquiry, senddate from contact_us order by email_id";

change to:

  $email_query_raw = "select email_id, customers_id, name, email, enquiry, date, status, adminenquiry, senddate from contact_us order by email_id";

 

Link to comment
Share on other sites

New file for inactive customer.
Only compatible wit this version !!

German language

***************************************************

catalog/admin/inactive_user.php

<?php

 require('includes/application_top.php');
 
// for Inactive User removal
function get_year_list($name) {
  $years = array();
  $years_query = tep_db_query("select distinct YEAR(customers_info_date_account_created) as y from " . TABLE_CUSTOMERS_INFO . " order by year(customers_info_date_account_created)");
  while ($year = tep_db_fetch_array($years_query)) {
  $years[] = array('id' => $year['y'], 'text' => $year['y']);
  }
  return tep_draw_pull_down_menu($name, $years);
}

function get_monthname_list($name) {
  $months = array();
  for ($i=1; $i<13; $i++) {
  $months[] = array('id' => $i, 'text' => date('F', mktime(0,0,0,$i,1,2011)));
  }
  return tep_draw_pull_down_menu($name, $months);
}

function get_day_list($name) {
  $days = array();
  for ($i=1; $i<32; $i++) {
  $days[] = array('id' => $i, 'text' => $i);
  }
  return tep_draw_pull_down_menu($name, $days);
}

 function delete_customer($customers_id) {
   tep_db_query("update " . TABLE_REVIEWS . " set customers_id = null where customers_id = '" . (int)$customers_id . "'");
   tep_db_query("delete from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customers_id . "'");
   tep_db_query("delete from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$customers_id . "'");
   tep_db_query("delete from " . TABLE_CUSTOMERS_INFO . " where customers_info_id = '" . (int)$customers_id . "'");
   tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . (int)$customers_id . "'");
   tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where customers_id = '" . (int)$customers_id . "'");
   tep_db_query("delete from " . TABLE_WHOS_ONLINE . " where customer_id = '" . (int)$customers_id . "'");
 }

 function count_orders($customers_id) {
   $query = tep_db_query("select count(*) as total from "  . TABLE_ORDERS . " where customers_id = " . (int)$customers_id);
   $num = tep_db_fetch_array($query);
   return $num['total'];
 }

 function last_order($customers_id) {
   $query = tep_db_query("select date_purchased from "  . TABLE_ORDERS . " where customers_id = " . (int)$customers_id . ' order by date_purchased desc limit 1');
   $d = tep_db_fetch_array($query);
   return tep_date_short($d['date_purchased']);
 }
 function list_customers($raw_query, $inc_with_orders = false) {
   global $_GET;

	$cid = isset($_GET['id']) ? $_GET['id'] : 0;
	$page = isset($_GET['page']) ? $_GET['page'] : 1;
?>

<?php /*****************************/ ?>
<?php
  $rows = 0;
	  $siu_query = tep_db_query($raw_query);
	  while ($customers = tep_db_fetch_array($siu_query)) {
    $rows++;
	    $customers['num_orders'] = count_orders($customers['customers_id']);
	    if ($inc_with_orders || ($customers['num_orders'] == 0)) {
  	    if ($customers['customers_newsletter'] == '1') {
     	    $customers['customers_newsletter'] = NEWSLETTER_YES;
	      } else {
    	    $customers['customers_newsletter'] = '<span class="w3-text-red">' . NEWSLETTER_NO . '</span>' ;
	      }
    if (strlen($rows) < 1) {
      $rows = '0' . $rows;
    }
	?>
     
      <div class="col-sm-12 w3-padding w3-border w3-bottombar w3-border-theme mb-3 w3-hover-border-blue w3-hover-shadow">
      <div class="col-sm-2 mb-2"><div class="w3-col s1 mt-2"><?php echo '<a href="' . tep_href_link('inactive_user.php', 'go=delete&id=' . $customers['customers_id'] . '&page=' . $page) .'"><i class="fa fa-trash-alt"></i></a>'; ?></div><div class="w3-col s10 mt-2"><?php echo $customers['customers_id'];?> <?php echo $customers['customers_firstname'] . ' ' . $customers['customers_lastname'];?></div></div>
      <div class="col-sm-2 mb-2"><div class="w3-col s12 mt-2"><?php echo TABLE_HEADING_CREATED . ': ' . tep_date_short($customers['customers_info_date_account_created']); ?></div></div>
      <div class="col-sm-2 mb-2"><div class="w3-col s12 mt-2"><?php echo '<a href="mail.php?selected_box=tools&customer=' . $customers['customers_email_address'] . '">' . $customers['customers_email_address'] . '</a>' ; ?></div></div>
      <div class="col-sm-2 mb-2"><div class="w3-col s12 mt-2"><?php echo TABLE_HEADING_NEWS . ': ' . $customers['customers_newsletter']; ?></div></div>
      <div class="col-sm-2 mb-2"><div class="w3-col s12 mt-2"><?php if (!empty($customers['customers_info_date_of_last_logon'])){ echo TABLE_HEADING_LAST_LOGON . ': ' . tep_date_short($customers['customers_info_date_of_last_logon']);}else{echo TABLE_HEADING_LAST_LOGON . ': <span class="w3-text-red"><b>' . TABLE_HEADING_CUSTOMER_INACTIVE . '</b></span>';} ?></div></div>
      <div class="col-sm-2 mb-2"><div class="w3-col s12 mt-2"><?php if (!empty($customers['num_orders'])){ echo TABLE_HEADING_ORDERS . ': ' . $customers['num_orders'];}else{ echo TABLE_HEADING_ORDERS . ': ' . '<span class="w3-text-red"><b>' . TABLE_HEADING_ORDERS_EMPTY . '</b></span>';} ?> <?php if (!empty(last_order($customers['customers_id']))) echo TABLE_HEADING_LAST_ORDER . ': ' . last_order($customers['customers_id']); ?></div></div>
      <div class="clearfix"></div></div>
	<?php
	  } //end if
  } // end while
 ?>
<?php /*****************************/ ?>

	<?php } // end function list_customers
	$action = isset($_GET['go']) ? $_GET['go'] : '';
	if (!isset($_SESSION['minage']) || !is_integer($_SESSION['minage'])) $_SESSION['minage'] = 12;
	if ($action == 'setage') { // change minimum age of information to work with
	if (is_numeric($_POST['age'])) $_SESSION['minage'] = (int)$_POST['age'];
	unset($_GET['go']);
	}
	if ($_SESSION['minage'] < 1) $_SESSION['minage'] = 12;
	$yearsold = intval($_SESSION['minage'] / 12);
	$monthsold = $_SESSION['minage'] % 12;
	$maxyear = date('Y') - $yearsold;
	$maxmonth = date('n') - $monthsold;
	if ($maxmonth < 1) {
	$maxyear--;
	$maxmonth = 12 + $maxmonth;
	}
	if (strlen($maxmonth) < 2) $maxmonth = '0' . $maxmonth;
	$maxday = date('d');
	if ($maxday > 28) $maxday = 28; // all months have at least 28 days
	$maxdate = $maxyear . '-' . $maxmonth . '-' . $maxday; // customer records must come before this date
	$maxdate_e = $maxday . '.' . $maxmonth . '.' . $maxyear; 

	require('includes/template_top.php');
?>

<div class="w3-padding">
		
<?php
$cust_query = tep_db_query("select customers_firstname, customers_lastname from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$cid . "'");
$cust = tep_db_fetch_array($cust_query);
	
	if ($action == 'delete')	{ // confirm deletion of single customer
	echo '<p class="main"><br />' . sprintf(SURE_TO_DELETE, $cust[customers_firstname] . ' ' . $cust[customers_lastname]) . '<br /><br />' . tep_draw_button(IMAGE_DELETE, 'trash', tep_href_link('inactive_user.php',  'page=' . $page . '&go=deleteyes&id=' . $cid)) . '&nbsp;&nbsp;' . tep_draw_button(IMAGE_CANCEL, 'cancel', tep_href_link('inactive_user.php',  'page=' . $page), 'primary') . '<br /><br /></p>';
    } elseif ($action == 'deleteyes') { // single customer deletion has been confirmed
	delete_customer($cid);
	echo '<p class="main"><br />' . sprintf(SIU_CUSTOMER_DELETED, $cust[customers_firstname] . ' ' . $cust[customers_lastname]) . '<br /><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php',  'page=' . $page), 'primary') . '<br /><br /></p>';
	} elseif ($action == 'deletenull')	{ // confirm deletion of no log in customers
	$yy = (int)$_POST['yy'];
	$mm = (int)$_POST['mm'];
	if (strlen($mm) < 2) $mm = '0' . $mm;
	$dd = (int)$_POST['dd'];
	if (strlen($dd) < 2) $dd = '0' . $dd;
	$beforedate = $yy . '-' . $mm . '-' . $dd;
	$withorders = ($_POST['with_orders'] == 'yes');
	$nonews = ($_POST['no_news_only'] == 'yes');
	if ($withorders && ($yy == date('Y'))) {
	echo '<p class="main"><br /><strong>' . TEXT_ERROR . '</strong><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php',  'page=' . $page), 'primary') . '<br /><br /></p>';

	} else {

	echo '<p class="main"><br />' . SURE_TO_DELETE_NULL . '<br />' . SIU_DELETE_NULL . tep_date_short($beforedate) . '<br />' . ENTRY_WITH_ORDERS . ($withorders ? NEWSLETTER_YES : NEWSLETTER_NO) . '<br />' . ENTRY_NO_NEWSLETTER . ($nonews ? NEWSLETTER_YES : NEWSLETTER_NO) .  '<br /><br />' . tep_draw_form('deletenullconfirm', 'inactive_user.php'. '?go=deletenullyes') . tep_draw_hidden_field('with_orders', $_POST['with_orders']) . tep_draw_hidden_field('no_news_only', $_POST['no_news_only']) . tep_draw_hidden_field('beforedate', $beforedate) . tep_draw_button(IMAGE_DELETE, 'trash', null, 'secondary') . '</form>&nbsp;&nbsp;' . tep_draw_button(IMAGE_CANCEL, 'cancel', tep_href_link('inactive_user.php',  'page=' . $page), 'primary') . '<br /><br /></p>';
	echo SIU_AFFECTED_CUSTOMERS . "<br /><br /></p>\n";
	if ($nonews) {
	$siu_query_raw = "select ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created, c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address, c.customers_newsletter from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and c.customers_newsletter = 0 and ci.customers_info_date_account_created < '" . tep_db_input($beforedate) . " 00:00:00' and (ci.customers_info_date_of_last_logon='0000-00-00 00:00:00' or ci.customers_info_date_of_last_logon is NULL) and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	} else {
	$siu_query_raw = "select ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created, c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address, c.customers_newsletter from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and ci.customers_info_date_account_created < '" . tep_db_input($beforedate) . " 00:00:00' and (ci.customers_info_date_of_last_logon='0000-00-00 00:00:00' or ci.customers_info_date_of_last_logon is NULL) and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	}
	list_customers($siu_query_raw, $withorders);
	}
	} elseif ($action == 'deletenullyes') { // deletion of no log in customers has been confirmed
	$withorders = ($_POST['with_orders'] == 'yes');
	$nonews = ($_POST['no_news_only'] == 'yes');
	$beforedate = tep_db_prepare_input($_POST['beforedate']);
	if ($withorders && (substr($beforedate, 0, 4) == date('Y'))) {
	echo '<p class="main"><strong>' . TEXT_ERROR . '</strong><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php',  'page=' . $page), 'primary') . '<br /><br /></p>';
	} else {
	if ($nonews) {
	$siu_query_raw = "select c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and c.customers_newsletter = 0 and ci.customers_info_date_account_created < '" . tep_db_input($beforedate) . " 00:00:00' and (ci.customers_info_date_of_last_logon='0000-00-00 00:00:00' or ci.customers_info_date_of_last_logon is NULL) and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	} else {
	$siu_query_raw = "select c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and ci.customers_info_date_account_created < '" . tep_db_input($beforedate) . " 00:00:00' and (ci.customers_info_date_of_last_logon='0000-00-00 00:00:00' or ci.customers_info_date_of_last_logon is NULL) and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	}
	$siu_query = tep_db_query($siu_query_raw);
	echo '<p class="main"><strong>' . TEXT_DELETED_CUSTOMERS . "</strong><br />\n";
	while ($customers = tep_db_fetch_array($siu_query)) {
	$customers['num_orders'] = count_orders($customers['customers_id']);
	if ($withorders || ($customers['num_orders'] == 0)) {
	echo TABLE_HEADING_ID . ' ' . $customers['customers_id'] . ' ' . $customers['customers_firstname'] . ' ' . $customers['customers_lastname'] . ' ' . $customers['customers_email_address'] . "<br />\n";
	delete_customer($customers['customers_id']);
	}
	}
	echo '<br />' . SIU_CUSTOMER_DELETED_NULL . '<br /><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php'), 'primary') . '<br /><br /></p>';
	}
	} elseif ($action == 'deleterange') { // confirm date range deletion
	$yy1 = (int)$_POST['yy1'];
	$mm1 = (int)$_POST['mm1'];
	if (strlen($mm1) < 2) $mm1 = '0' . $mm1;
	$dd1 = (int)$_POST['dd1'];
	if (strlen($dd1) < 2) $dd1 = '0' . $dd1;
	$yy2 = (int)$_POST['yy2'];
	$mm2 = (int)$_POST['mm2'];
	if (strlen($mm2) < 2) $mm2 = '0' . $mm2;
	$dd2 = (int)$_POST['dd2'];
	if (strlen($dd2) < 2) $dd2 = '0' . $dd2;
	$fromdate = $yy1 . '-' . $mm1 . '-' . $dd1;
	$todate = $yy2 . '-' . $mm2 . '-' . $dd2;
	$withorders = ($_POST['with_orders'] == 'yes');
	$nonews = ($_POST['no_news_only'] == 'yes');
	if ($withorders && (($yy1 == date('Y')) || ($yy2 == date('Y')))) {
	echo '<p class="main"><strong>' . TEXT_ERROR . '</strong><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php'), 'primary') . '<br /><br /></p>';
	} else {
	echo '<p class="main"><br />' . sprintf(SURE_TO_DELETE_RANGE, tep_date_short($fromdate), tep_date_short($todate)) . '<br />' . ENTRY_WITH_ORDERS . ($withorders ? NEWSLETTER_YES : NEWSLETTER_NO) . '<br />' . ENTRY_NO_NEWSLETTER . ($nonews ? NEWSLETTER_YES : NEWSLETTER_NO) . '<br /><br />' . tep_draw_form('deleterangeconfirm', 'inactive_user.php'. '?go=deleterangeyes') . tep_draw_hidden_field('with_orders', $_POST['with_orders']) . tep_draw_hidden_field('no_news_only', $_POST['no_news_only']) . tep_draw_hidden_field('fromdate', $fromdate) . tep_draw_hidden_field('todate', $todate) . tep_draw_button(IMAGE_DELETE, 'trash', null, 'secondary') . '</form>&nbsp;&nbsp;' . tep_draw_button(IMAGE_CANCEL, 'cancel', tep_href_link('inactive_user.php',  'page=' . $page), 'primary') . "<br /><br />\n";
	if ($nonews) {
	$siu_query_raw = "select ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created, c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address, c.customers_newsletter from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and c.customers_newsletter = 0 and ci.customers_info_date_of_last_logon>='" . tep_db_input($fromdate) . " 00:00:00' and ci.customers_info_date_of_last_logon<='" . tep_db_input($todate) . " 23:59:59' and ci.customers_info_date_of_last_logon < '" . tep_db_input($maxdate) . "' and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	} else {
	$siu_query_raw = "select ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created, c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address, c.customers_newsletter from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and ci.customers_info_date_of_last_logon>='" . tep_db_input($fromdate) . " 00:00:00' and ci.customers_info_date_of_last_logon<='" . tep_db_input($todate) . " 23:59:59' and ci.customers_info_date_of_last_logon < '" . tep_db_input($maxdate) . "' and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	}
	echo SIU_AFFECTED_CUSTOMERS . "<br /><br /><p/>\n";
	list_customers($siu_query_raw, $withorders);
	}
	} elseif ($action == 'deleterangeyes') { // date range deletion has been confirmed
	$withorders = ($_POST['with_orders'] == 'yes');
	$nonews = ($_POST['no_news_only'] == 'yes');
	$fromdate = tep_db_prepare_input($_POST['fromdate']);
	$todate = tep_db_prepare_input($_POST['todate']);
	if ($withorders && ((substr($fromdate, 0, 4) == date('Y')) || (substr($fromdate, 0, 4) == date('Y')))) {
	echo '<p class="main"><strong>' . TEXT_ERROR . '</strong><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php'), 'primary') . '<br /><br /></p>';
	} else {
	if ($nonews) {
	$siu_query_raw = "select c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and c.customers_newsletter = 0 and ci.customers_info_date_of_last_logon>='" . tep_db_input($fromdate) . " 00:00:00' and ci.customers_info_date_of_last_logon<='" . tep_db_input($todate) . " 23:59:59' and ci.customers_info_date_of_last_logon < '" . tep_db_input($maxdate) . "' and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	} else {
	$siu_query_raw = "select c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and ci.customers_info_date_of_last_logon>='" . tep_db_input($fromdate) . " 00:00:00' and ci.customers_info_date_of_last_logon<='" . tep_db_input($todate) . " 23:59:59' and ci.customers_info_date_of_last_logon < '" . tep_db_input($maxdate) . "' and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	}
	$siu_query = tep_db_query($siu_query_raw);
	echo '<p class="main">' . TEXT_DELETED_CUSTOMERS . "<br />\n";
	while ($customers = tep_db_fetch_array($siu_query)) {
	$customers['num_orders'] = count_orders($customers['customers_id']);
	if ($withorders || ($customers['num_orders'] == 0)) {
	echo TABLE_HEADING_ID . ' ' . $customers['customers_id'] . ' ' . $customers['customers_firstname'] . ' ' . $customers['customers_lastname'] . ' ' . $customers['customers_email_address'] . "<br />\n";
	delete_customer($customers['customers_id']);
	}
	}
	echo '<br />' . sprintf(SIU_CUSTOMER_DELETED_RANGE, tep_date_short($fromdate), tep_date_short($todate)) . '<br /><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php'), 'primary') . '<br /><br /></p>';
	}
	} else { // display main page
		  

	echo '<div class="main"><p class="main">' .tep_draw_form('set_months', 'inactive_user.php'. '?go=setage');

	$mpd = array();
    for ($i=1; $i<61; $i++) {
  	$mpd[] = array('id' => $i, 'text' => $i);
    }
?>	

<div class="row">
<div class="col-sm-7">
<div class="w3-padding mb-2"><div class="w3-large mb-1"><?php echo HEADING_TITLE; ?></div>
<?php echo TEXT_INFO_MAXDATE . $maxdate_e; ?></div>
</div>
<div class="col-sm-5"><div class="w3-padding mb-2">
<?php echo sprintf(ENTRY_OLDER_THAN, tep_draw_pull_down_menu('age', $mpd, $_SESSION['minage'], 'onchange="this.form.submit()"')) . '</form>';?>
</div></div>
</div>
<div class="clearfix"></div><hr class="hr-gr mt-2 mb-4">

<div class="row">
<div class="col-sm-6">
<?php

		  echo '<header class="w3-red w3-padding"><b>';
		  echo TEXT_DELETE . '</b></header>';
		  echo '<div class="w3-border w3-padding mb-3">' . tep_draw_form('delrange', 'inactive_user.php'. '?go=deleterange');
		  echo '<div class="mt-3 mb-2">' . FROMDATE . ' ' . get_day_list('dd1');
		  echo get_monthname_list('mm1');
		  echo get_year_list('yy1');
		  echo '</div>';

		  echo '<div class="mb-3">';
		  echo TODATE . ' ' . get_day_list('dd2');
		  echo get_monthname_list('mm2');
		  echo get_year_list('yy2');
		  echo '</div>';

		  echo '<div class="mt-3 mb-2">';
		  echo '<div class="mb-1">' . ENTRY_WITH_ORDERS . tep_draw_radio_field('with_orders', 'yes', false) . ' ' . NEWSLETTER_YES . ' ' . tep_draw_radio_field('with_orders', 'no', true) . NEWSLETTER_NO . '</div>';
		  echo '<div class="mb-3">' . ENTRY_NO_NEWSLETTER . tep_draw_radio_field('no_news_only', 'yes', false) . ' ' . NEWSLETTER_YES . ' ' . tep_draw_radio_field('no_news_only', 'no', true) . NEWSLETTER_NO . '</div>';
		  echo '</div>';

		  echo '<div class="mt-3 mb-1"><hr class="hr-gr mt-2 mb-2">';
		  echo tep_draw_w3_button(SIU_DELETE, 'far fa-trash-alt', null, 'primary', null, 'class="w3-button w3-large w3-block w3-red w3-border w3-border-black mb-3"');
		  echo '</div>';

          echo '</form></div>';
?>
</div>
<div class="col-sm-6">
<?php
		  echo '<header class="w3-red w3-padding"><b>';
		  echo SIU_DELETE_NULL . '</b></header>';
		  echo '<div class="w3-border w3-padding mb-3">' . tep_draw_form('del_no_login', 'inactive_user.php'. '?go=deletenull');

		  echo '<div class="mt-3 mb-2">' . FROMDATE . ' ' . get_day_list('dd');
		  echo get_monthname_list('mm');
		  echo get_year_list('yy') . "<br />\n";
		  echo '</div>';

		  echo '<div class="mt-3 mb-2">';
		  echo '<div class="mb-1">' . ENTRY_WITH_ORDERS . tep_draw_radio_field('with_orders', 'yes', false) . ' ' . NEWSLETTER_YES . ' ' . tep_draw_radio_field('with_orders', 'no', true) . NEWSLETTER_NO . '</div>';
		  echo '<div class="mb-3">' . ENTRY_NO_NEWSLETTER . tep_draw_radio_field('no_news_only', 'yes', false) . ' ' . NEWSLETTER_YES . ' ' . tep_draw_radio_field('no_news_only', 'no', true) . NEWSLETTER_NO . '</div>';
		  echo '</div>';

		  echo '<div class="mt-3 mb-1"><hr class="hr-gr mt-2 mb-2">';
		  echo tep_draw_w3_button(SIU_DELETE, 'far fa-trash-alt', null, 'primary', null, 'class="w3-button w3-large w3-block w3-red w3-border w3-border-black mb-3"');
		  echo '</div>';
          echo '</form></div>';
?>
</div>
</div>
<?php
  	    $siu_query_raw = "select ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created, c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address, c.customers_newsletter from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and (ci.customers_info_date_of_last_logon < '" . tep_db_input($maxdate) . "' or ci.customers_info_date_of_last_logon is null) and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created";
	    $siu_split = new splitPageResults($page, MAX_DISPLAY_SEARCH_RESULTS, $siu_query_raw, $siu_query_numrows );
	    list_customers($siu_query_raw, true);
?>
	


<div class="w3-padding">
</div><div class="clearfix"></div><hr class="hr-gr mb-3 mt-3">
<table border="0" width="99%" cellspacing="0" cellpadding="6">
  <tr>
    <td class="smallText" valign="top"><?php echo $siu_split->display_count($siu_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $page, TEXT_DISPLAY_NUMBER_OF_CUSTOMERS); ?></td>
    <td class="smallText" align="right"><?php echo $siu_split->display_links($siu_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $page, tep_get_all_get_params(array('page', 'info', 'x', 'y', 'cID'))); ?></td>
  </tr>
</table>
</div>

<?php
  }
 
  require('includes/template_bottom.php');
  require('includes/application_bottom.php');
?>

 

catalog/admin/includes/languages/german/inactive_user.php

<?php

 define('TABLE_HEADING_DELETE', 'Löschen');
 define('TABLE_HEADING_ID', 'ID');
 define('TABLE_HEADING_CUSTOMERS', 'Nutzername');
 define('TABLE_HEADING_EMAIL', 'Email');
 define('TABLE_HEADING_NEWS', 'Newsletter');
 define('TABLE_HEADING_LAST_LOGON', 'Letzte Anmeldung');
 define('TABLE_HEADING_CUSTOMER_INACTIVE', 'Inaktiv');
 define('TABLE_HEADING_CREATED', 'Kunde seit');
 define('TABLE_HEADING_LAST_ORDER', 'Letzte');
 define('TABLE_HEADING_ORDERS', 'Bestellungen');
 define('TABLE_HEADING_ORDERS_EMPTY', 'Keine');
 define('HEADING_TITLE', 'Inaktive Benutzer');
 define('NEWSLETTER_YES', 'Ja');
 define('NEWSLETTER_NO', 'Nein');

 define('SIU_BACK', 'Zurück');
 define('SIU_DELETE', 'Löschen!');
 define('SIU_DELETE_NULL', 'Kunden löschen, für die kein Anmeldedatum erstellt wurde:');
 define('SIU_CUSTOMER_DELETED', 'Kunde %s gelöscht!');
 define('SIU_CUSTOMER_DELETED_RANGE', 'Kunde mit dem letzten Login-Datum zwischen %s und %s gelöscht!');
 define('SIU_CUSTOMER_DELETED_NULL', 'Kunden mit dem letzten Anmeldedatums gelöscht!');
 define('SURE_TO_DELETE', 'Sind Sie sicher, dass Sie den Benutzer löschen möchten %s?');
 define('SURE_TO_DELETE_RANGE', 'Sind Sie sicher, dass Sie die Benutzer mit der letzten Anmeldung zwischen  %s und %s löschen möchten ?');
 define('SURE_TO_DELETE_NULL', 'Sind Sie sicher, dass Sie die Benutzer ohne letztes Login-Datum löschen möchten?');
 define('FROMDATE', 'Ab Datum:');
 define('TODATE', 'Bis Datum:');
 define('SIU_AFFECTED_CUSTOMERS', 'Die folgenden Kunden werden gelöscht:');
 define('TEXT_DELETE', 'Kunden mit Anmeldedaten löschen:');
 define('ENTRY_WITH_ORDERS', 'Kunden einschließen, die Bestellungen aufgegeben haben ');
 define('ENTRY_NO_NEWSLETTER', 'Nur Kunden einschließen, die keine Newsletter abonniert haben ');
 define('TEXT_DELETED_CUSTOMERS', 'Die folgenden Kunden wurden gelöscht:');
 define('TEXT_ERROR', 'Sie dürfen Kunden, die im laufenden Jahr Bestellungen aufgegeben haben, nicht löschen! Bitte ändern Sie das Jahr entweder in ein vorheriges Jahr oder nehmen Sie keine Kunden mit Bestellungen auf.');
 define('ENTRY_OLDER_THAN', 'Bearbeiten Sie Kunden, deren Informationen älter als %s Monat(e) sind.');
 define('TEXT_INFO_MAXDATE', 'Informationen werden für Kunden angezeigt, deren aktuellste Anmeldung / Erstellung vor ');
?>

 

Edited by YePix
Link to comment
Share on other sites

New changed file:  catalog/admin/inactive_user.php

<?php

 require('includes/application_top.php');
 
// for Inactive User removal
function get_year_list($name) {
  $years = array();
  $years_query = tep_db_query("select distinct YEAR(customers_info_date_account_created) as y from " . TABLE_CUSTOMERS_INFO . " order by year(customers_info_date_account_created)");
  while ($year = tep_db_fetch_array($years_query)) {
  $years[] = array('id' => $year['y'], 'text' => $year['y']);
  }
  return tep_draw_pull_down_menu($name, $years, '', 'class="w3-select w3-border w3-border-black w3-camo-field"');
}

function get_monthname_list($name) {
  $months = array();
  for ($i=1; $i<13; $i++) {
  $months[] = array('id' => $i, 'text' => date('F', mktime(0,0,0,$i,1,2011)));
  }
  return tep_draw_pull_down_menu($name, $months, '', 'class="w3-select w3-border w3-border-black w3-camo-earth"');
}

function get_day_list($name) {
  $days = array();
  for ($i=1; $i<32; $i++) {
  $days[] = array('id' => $i, 'text' => $i);
  }
  return tep_draw_pull_down_menu($name, $days, '', 'class="w3-select w3-border w3-border-black w3-camo-sand"');
}

 function delete_customer($customers_id) {
   tep_db_query("update " . TABLE_REVIEWS . " set customers_id = null where customers_id = '" . (int)$customers_id . "'");
   tep_db_query("delete from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customers_id . "'");
   tep_db_query("delete from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$customers_id . "'");
   tep_db_query("delete from " . TABLE_CUSTOMERS_INFO . " where customers_info_id = '" . (int)$customers_id . "'");
   tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . (int)$customers_id . "'");
   tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where customers_id = '" . (int)$customers_id . "'");
   tep_db_query("delete from " . TABLE_WHOS_ONLINE . " where customer_id = '" . (int)$customers_id . "'");
 }

 function count_orders($customers_id) {
   $query = tep_db_query("select count(*) as total from "  . TABLE_ORDERS . " where customers_id = " . (int)$customers_id);
   $num = tep_db_fetch_array($query);
   return $num['total'];
 }

 function last_order($customers_id) {
   $query = tep_db_query("select date_purchased from "  . TABLE_ORDERS . " where customers_id = " . (int)$customers_id . ' order by date_purchased desc limit 1');
   $d = tep_db_fetch_array($query);
   return tep_date_short($d['date_purchased']);
 }
 function list_customers($raw_query, $inc_with_orders = false) {
   global $_GET;

	$cid = isset($_GET['id']) ? $_GET['id'] : 0;
	$page = isset($_GET['page']) ? $_GET['page'] : 1;
?>

<?php /*****************************/ ?>
<?php
  $rows = 0;
	  $siu_query = tep_db_query($raw_query);
	  while ($customers = tep_db_fetch_array($siu_query)) {
    $rows++;
	    $customers['num_orders'] = count_orders($customers['customers_id']);
	    if ($inc_with_orders || ($customers['num_orders'] == 0)) {
  	    if ($customers['customers_newsletter'] == '1') {
     	    $customers['customers_newsletter'] = NEWSLETTER_YES;
	      } else {
    	    $customers['customers_newsletter'] = '<span class="w3-text-red">' . NEWSLETTER_NO . '</span>' ;
	      }
    if (strlen($rows) < 1) {
      $rows = '0' . $rows;
    }
	?>
     
      <div class="col-sm-12 w3-padding w3-border w3-bottombar w3-border-theme mb-3 w3-hover-border-blue w3-hover-shadow">
      <div class="col-sm-2 mb-2"><div class="w3-col s1 mt-2"><?php echo '<a href="' . tep_href_link('inactive_user.php', 'go=delete&id=' . $customers['customers_id'] . '&page=' . $page) .'"><i class="fa fa-trash-alt"></i></a>'; ?></div><div class="w3-col s10 mt-2"><?php echo $customers['customers_id'];?> <?php echo $customers['customers_firstname'] . ' ' . $customers['customers_lastname'];?></div></div>
      <div class="col-sm-2 mb-2"><div class="w3-col s12 mt-2"><?php echo TABLE_HEADING_CREATED . ': ' . tep_date_short($customers['customers_info_date_account_created']); ?></div></div>
      <div class="col-sm-2 mb-2"><div class="w3-col s12 mt-2"><?php echo '<a href="mail.php?selected_box=tools&customer=' . $customers['customers_email_address'] . '">' . $customers['customers_email_address'] . '</a>' ; ?></div></div>
      <div class="col-sm-2 mb-2"><div class="w3-col s12 mt-2"><?php echo TABLE_HEADING_NEWS . ': ' . $customers['customers_newsletter']; ?></div></div>
      <div class="col-sm-2 mb-2"><div class="w3-col s12 mt-2"><?php if (!empty($customers['customers_info_date_of_last_logon'])){ echo TABLE_HEADING_LAST_LOGON . ': ' . tep_date_short($customers['customers_info_date_of_last_logon']);}else{echo TABLE_HEADING_LAST_LOGON . ': <span class="w3-text-red"><b>' . TABLE_HEADING_CUSTOMER_INACTIVE . '</b></span>';} ?></div></div>
      <div class="col-sm-2 mb-2"><div class="w3-col s12 mt-2"><?php if (!empty($customers['num_orders'])){ echo TABLE_HEADING_ORDERS . ': ' . $customers['num_orders'];}else{ echo TABLE_HEADING_ORDERS . ': ' . '<span class="w3-text-red"><b>' . TABLE_HEADING_ORDERS_EMPTY . '</b></span>';} ?> <?php if (!empty(last_order($customers['customers_id']))) echo TABLE_HEADING_LAST_ORDER . ': ' . last_order($customers['customers_id']); ?></div></div>
      <div class="clearfix"></div></div>
	<?php
	  } //end if
  } // end while
 ?>
<?php /*****************************/ ?>

	<?php } // end function list_customers
	$action = isset($_GET['go']) ? $_GET['go'] : '';
	if (!isset($_SESSION['minage']) || !is_integer($_SESSION['minage'])) $_SESSION['minage'] = 12;
	if ($action == 'setage') { // change minimum age of information to work with
	if (is_numeric($_POST['age'])) $_SESSION['minage'] = (int)$_POST['age'];
	unset($_GET['go']);
	}
	if ($_SESSION['minage'] < 1) $_SESSION['minage'] = 12;
	$yearsold = intval($_SESSION['minage'] / 12);
	$monthsold = $_SESSION['minage'] % 12;
	$maxyear = date('Y') - $yearsold;
	$maxmonth = date('n') - $monthsold;
	if ($maxmonth < 1) {
	$maxyear--;
	$maxmonth = 12 + $maxmonth;
	}
	if (strlen($maxmonth) < 2) $maxmonth = '0' . $maxmonth;
	$maxday = date('d');
	if ($maxday > 28) $maxday = 28; // all months have at least 28 days
	$maxdate = $maxyear . '-' . $maxmonth . '-' . $maxday; // customer records must come before this date
	$maxdate_e = $maxday . '.' . $maxmonth . '.' . $maxyear; 

	require('includes/template_top.php');
?>

<div class="w3-padding">
		
<?php
$cust_query = tep_db_query("select customers_firstname, customers_lastname from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$cid . "'");
$cust = tep_db_fetch_array($cust_query);
	
	if ($action == 'delete')	{ // confirm deletion of single customer
	echo '<p class="main"><br />' . sprintf(SURE_TO_DELETE, $cust[customers_firstname] . ' ' . $cust[customers_lastname]) . '<br /><br />' . tep_draw_button(IMAGE_DELETE, 'trash', tep_href_link('inactive_user.php',  'page=' . $page . '&go=deleteyes&id=' . $cid)) . '  ' . tep_draw_button(IMAGE_CANCEL, 'cancel', tep_href_link('inactive_user.php',  'page=' . $page), 'primary') . '<br /><br /></p>';
    } elseif ($action == 'deleteyes') { // single customer deletion has been confirmed
	delete_customer($cid);
	echo '<p class="main"><br />' . sprintf(SIU_CUSTOMER_DELETED, $cust[customers_firstname] . ' ' . $cust[customers_lastname]) . '<br /><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php',  'page=' . $page), 'primary') . '<br /><br /></p>';
	} elseif ($action == 'deletenull')	{ // confirm deletion of no log in customers
	$yy = (int)$_POST['yy'];
	$mm = (int)$_POST['mm'];
	if (strlen($mm) < 2) $mm = '0' . $mm;
	$dd = (int)$_POST['dd'];
	if (strlen($dd) < 2) $dd = '0' . $dd;
	$beforedate = $yy . '-' . $mm . '-' . $dd;
	$withorders = ($_POST['with_orders'] == 'yes');
	$nonews = ($_POST['no_news_only'] == 'yes');
	if ($withorders && ($yy == date('Y'))) {
	echo '<p class="main"><br /><strong>' . TEXT_ERROR . '</strong><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php',  'page=' . $page), 'primary') . '<br /><br /></p>';

	} else {

	echo '<p class="main"><br />' . SURE_TO_DELETE_NULL . '<br />' . SIU_DELETE_NULL . tep_date_short($beforedate) . '<br />' . ENTRY_WITH_ORDERS . ($withorders ? NEWSLETTER_YES : NEWSLETTER_NO) . '<br />' . ENTRY_NO_NEWSLETTER . ($nonews ? NEWSLETTER_YES : NEWSLETTER_NO) .  '<br /><br />' . tep_draw_form('deletenullconfirm', 'inactive_user.php'. '?go=deletenullyes') . tep_draw_hidden_field('with_orders', $_POST['with_orders']) . tep_draw_hidden_field('no_news_only', $_POST['no_news_only']) . tep_draw_hidden_field('beforedate', $beforedate) . tep_draw_button(IMAGE_DELETE, 'trash', null, 'secondary') . '</form>  ' . tep_draw_button(IMAGE_CANCEL, 'cancel', tep_href_link('inactive_user.php',  'page=' . $page), 'primary') . '<br /><br /></p>';
	echo SIU_AFFECTED_CUSTOMERS . "<br /><br /></p>\n";
	if ($nonews) {
	$siu_query_raw = "select ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created, c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address, c.customers_newsletter from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and c.customers_newsletter = 0 and ci.customers_info_date_account_created < '" . tep_db_input($beforedate) . " 00:00:00' and (ci.customers_info_date_of_last_logon='0000-00-00 00:00:00' or ci.customers_info_date_of_last_logon is NULL) and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	} else {
	$siu_query_raw = "select ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created, c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address, c.customers_newsletter from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and ci.customers_info_date_account_created < '" . tep_db_input($beforedate) . " 00:00:00' and (ci.customers_info_date_of_last_logon='0000-00-00 00:00:00' or ci.customers_info_date_of_last_logon is NULL) and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	}
	list_customers($siu_query_raw, $withorders);
	}
	} elseif ($action == 'deletenullyes') { // deletion of no log in customers has been confirmed
	$withorders = ($_POST['with_orders'] == 'yes');
	$nonews = ($_POST['no_news_only'] == 'yes');
	$beforedate = tep_db_prepare_input($_POST['beforedate']);
	if ($withorders && (substr($beforedate, 0, 4) == date('Y'))) {
	echo '<p class="main"><strong>' . TEXT_ERROR . '</strong><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php',  'page=' . $page), 'primary') . '<br /><br /></p>';
	} else {
	if ($nonews) {
	$siu_query_raw = "select c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and c.customers_newsletter = 0 and ci.customers_info_date_account_created < '" . tep_db_input($beforedate) . " 00:00:00' and (ci.customers_info_date_of_last_logon='0000-00-00 00:00:00' or ci.customers_info_date_of_last_logon is NULL) and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	} else {
	$siu_query_raw = "select c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and ci.customers_info_date_account_created < '" . tep_db_input($beforedate) . " 00:00:00' and (ci.customers_info_date_of_last_logon='0000-00-00 00:00:00' or ci.customers_info_date_of_last_logon is NULL) and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	}
	$siu_query = tep_db_query($siu_query_raw);
	echo '<p class="main"><strong>' . TEXT_DELETED_CUSTOMERS . "</strong><br />\n";
	while ($customers = tep_db_fetch_array($siu_query)) {
	$customers['num_orders'] = count_orders($customers['customers_id']);
	if ($withorders || ($customers['num_orders'] == 0)) {
	echo TABLE_HEADING_ID . ' ' . $customers['customers_id'] . ' ' . $customers['customers_firstname'] . ' ' . $customers['customers_lastname'] . ' ' . $customers['customers_email_address'] . "<br />\n";
	delete_customer($customers['customers_id']);
	}
	}
	echo '<br />' . SIU_CUSTOMER_DELETED_NULL . '<br /><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php'), 'primary') . '<br /><br /></p>';
	}
	} elseif ($action == 'deleterange') { // confirm date range deletion
	$yy1 = (int)$_POST['yy1'];
	$mm1 = (int)$_POST['mm1'];
	if (strlen($mm1) < 2) $mm1 = '0' . $mm1;
	$dd1 = (int)$_POST['dd1'];
	if (strlen($dd1) < 2) $dd1 = '0' . $dd1;
	$yy2 = (int)$_POST['yy2'];
	$mm2 = (int)$_POST['mm2'];
	if (strlen($mm2) < 2) $mm2 = '0' . $mm2;
	$dd2 = (int)$_POST['dd2'];
	if (strlen($dd2) < 2) $dd2 = '0' . $dd2;
	$fromdate = $yy1 . '-' . $mm1 . '-' . $dd1;
	$todate = $yy2 . '-' . $mm2 . '-' . $dd2;
	$withorders = ($_POST['with_orders'] == 'yes');
	$nonews = ($_POST['no_news_only'] == 'yes');
	if ($withorders && (($yy1 == date('Y')) || ($yy2 == date('Y')))) {
	echo '<p class="main"><strong>' . TEXT_ERROR . '</strong><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php'), 'primary') . '<br /><br /></p>';
	} else {
	echo '<p class="main"><br />' . sprintf(SURE_TO_DELETE_RANGE, tep_date_short($fromdate), tep_date_short($todate)) . '<br />' . ENTRY_WITH_ORDERS . ($withorders ? NEWSLETTER_YES : NEWSLETTER_NO) . '<br />' . ENTRY_NO_NEWSLETTER . ($nonews ? NEWSLETTER_YES : NEWSLETTER_NO) . '<br /><br />' . tep_draw_form('deleterangeconfirm', 'inactive_user.php'. '?go=deleterangeyes') . tep_draw_hidden_field('with_orders', $_POST['with_orders']) . tep_draw_hidden_field('no_news_only', $_POST['no_news_only']) . tep_draw_hidden_field('fromdate', $fromdate) . tep_draw_hidden_field('todate', $todate) . tep_draw_button(IMAGE_DELETE, 'trash', null, 'secondary') . '</form>  ' . tep_draw_button(IMAGE_CANCEL, 'cancel', tep_href_link('inactive_user.php',  'page=' . $page), 'primary') . "<br /><br />\n";
	if ($nonews) {
	$siu_query_raw = "select ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created, c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address, c.customers_newsletter from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and c.customers_newsletter = 0 and ci.customers_info_date_of_last_logon>='" . tep_db_input($fromdate) . " 00:00:00' and ci.customers_info_date_of_last_logon<='" . tep_db_input($todate) . " 23:59:59' and ci.customers_info_date_of_last_logon < '" . tep_db_input($maxdate) . "' and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	} else {
	$siu_query_raw = "select ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created, c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address, c.customers_newsletter from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and ci.customers_info_date_of_last_logon>='" . tep_db_input($fromdate) . " 00:00:00' and ci.customers_info_date_of_last_logon<='" . tep_db_input($todate) . " 23:59:59' and ci.customers_info_date_of_last_logon < '" . tep_db_input($maxdate) . "' and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	}
	echo SIU_AFFECTED_CUSTOMERS . "<br /><br /><p/>\n";
	list_customers($siu_query_raw, $withorders);
	}
	} elseif ($action == 'deleterangeyes') { // date range deletion has been confirmed
	$withorders = ($_POST['with_orders'] == 'yes');
	$nonews = ($_POST['no_news_only'] == 'yes');
	$fromdate = tep_db_prepare_input($_POST['fromdate']);
	$todate = tep_db_prepare_input($_POST['todate']);
	if ($withorders && ((substr($fromdate, 0, 4) == date('Y')) || (substr($fromdate, 0, 4) == date('Y')))) {
	echo '<p class="main"><strong>' . TEXT_ERROR . '</strong><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php'), 'primary') . '<br /><br /></p>';
	} else {
	if ($nonews) {
	$siu_query_raw = "select c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and c.customers_newsletter = 0 and ci.customers_info_date_of_last_logon>='" . tep_db_input($fromdate) . " 00:00:00' and ci.customers_info_date_of_last_logon<='" . tep_db_input($todate) . " 23:59:59' and ci.customers_info_date_of_last_logon < '" . tep_db_input($maxdate) . "' and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	} else {
	$siu_query_raw = "select c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and ci.customers_info_date_of_last_logon>='" . tep_db_input($fromdate) . " 00:00:00' and ci.customers_info_date_of_last_logon<='" . tep_db_input($todate) . " 23:59:59' and ci.customers_info_date_of_last_logon < '" . tep_db_input($maxdate) . "' and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by c.customers_id";
	}
	$siu_query = tep_db_query($siu_query_raw);
	echo '<p class="main">' . TEXT_DELETED_CUSTOMERS . "<br />\n";
	while ($customers = tep_db_fetch_array($siu_query)) {
	$customers['num_orders'] = count_orders($customers['customers_id']);
	if ($withorders || ($customers['num_orders'] == 0)) {
	echo TABLE_HEADING_ID . ' ' . $customers['customers_id'] . ' ' . $customers['customers_firstname'] . ' ' . $customers['customers_lastname'] . ' ' . $customers['customers_email_address'] . "<br />\n";
	delete_customer($customers['customers_id']);
	}
	}
	echo '<br />' . sprintf(SIU_CUSTOMER_DELETED_RANGE, tep_date_short($fromdate), tep_date_short($todate)) . '<br /><br /><br />' . tep_draw_button(IMAGE_BACK, 'arrowrefresh-1-n', tep_href_link('inactive_user.php'), 'primary') . '<br /><br /></p>';
	}
	} else { // display main page
		  

	echo '<div class="main"><p class="main">' .tep_draw_form('set_months', 'inactive_user.php'. '?go=setage');

	$mpd = array();
    for ($i=1; $i<61; $i++) {
  	$mpd[] = array('id' => $i, 'text' => $i);
    }
?>	

<div class="row">
<div class="col-sm-7">
<div class="w3-padding mb-2"><div class="w3-large mb-1"><?php echo HEADING_TITLE; ?></div>
<?php echo TEXT_INFO_MAXDATE . $maxdate_e; ?></div>
</div>
<div class="col-sm-5"><div class="w3-padding mb-2">
<?php echo sprintf(ENTRY_OLDER_THAN, tep_draw_pull_down_menu('age', $mpd, $_SESSION['minage'], 'onchange="this.form.submit()"')) . '</form>';?>
</div></div>
</div>
<div class="clearfix"></div><hr class="hr-gr mt-2 mb-4">

<div class="row">
<div class="col-sm-6">
<?php

		  echo '<header class="w3-red w3-padding"><b>';
		  echo TEXT_DELETE . '</b></header>';
		  echo '<div class="w3-border w3-padding mb-3">' . tep_draw_form('delrange', 'inactive_user.php'. '?go=deleterange');
		  echo '<div class="mt-3 mb-4">';
		  echo '<div class="w3-col s3 mb-3">' . FROMDATE . '</div>';
		  echo '<div class="w3-col s2 mb-3 pr-1">' . get_day_list('dd1') . '</div>';
		  echo '<div class="w3-col s4 mb-3 pr-1">' . get_monthname_list('mm1') . '</div>';
		  echo '<div class="w3-col s2 mb-3">' . get_year_list('yy1') . '</div>';
		  echo '</div>';

		  echo '<div class="mb-4">';
		  echo '<div class="w3-col s3 mb-3">' . TODATE . '</div>';
		  echo '<div class="w3-col s2 mb-3 pr-1">' . get_day_list('dd2') . '</div>';
		  echo '<div class="w3-col s4 mb-3 pr-1">' . get_monthname_list('mm2') . '</div>';
		  echo '<div class="w3-col s2 mb-3">' . get_year_list('yy2') . '</div>';
		  echo '</div><div class="clearfix"></div>';

		  echo '<hr class="hr-gr mt-2 mb-2"><div class="mt-3 mb-2">';
		  echo '<div class="mb-1">' . ENTRY_WITH_ORDERS . tep_draw_radio_field('with_orders', 'yes', false) . ' ' . NEWSLETTER_YES . ' ' . tep_draw_radio_field('with_orders', 'no', true) . NEWSLETTER_NO . '</div>';
		  echo '<div class="mb-3">' . ENTRY_NO_NEWSLETTER . tep_draw_radio_field('no_news_only', 'yes', false) . ' ' . NEWSLETTER_YES . ' ' . tep_draw_radio_field('no_news_only', 'no', true) . NEWSLETTER_NO . '</div>';
		  echo '</div>';

		  echo '<div class="mt-3 mb-1"><hr class="hr-gr mt-2 mb-3">';
		  echo tep_draw_w3_button(SIU_DELETE, 'far fa-trash-alt', null, 'primary', null, 'class="w3-button w3-large w3-block w3-red w3-border w3-border-black mb-3"');
		  echo '</div>';

          echo '</form></div>';
?>
</div>
<div class="col-sm-6">
<?php
		  echo '<header class="w3-red w3-padding"><b>';
		  echo SIU_DELETE_NULL . '</b></header>';
		  echo '<div class="w3-border w3-padding mb-3">' . tep_draw_form('del_no_login', 'inactive_user.php'. '?go=deletenull');

		  echo '<div class="mt-4 mb-2">';
		  echo '<div class="w3-col s3 mb-3">' . FROMDATE . '</div>';
		  echo '<div class="w3-col s2 mb-3 pr-1">' . get_day_list('dd') . '</div>';
		  echo '<div class="w3-col s4 mb-3 pr-1">' . get_monthname_list('mm') . '</div>';
		  echo '<div class="w3-col s2 mb-3">' . get_year_list('yy') . '</div>';
		  echo '</div><div class="clearfix"></div>';

		  echo '<hr class="hr-gr mt-1 mb-2"><div class="mt-3 mb-2">';
		  echo '<div class="mb-1">' . ENTRY_WITH_ORDERS . tep_draw_radio_field('with_orders', 'yes', false) . ' ' . NEWSLETTER_YES . ' ' . tep_draw_radio_field('with_orders', 'no', true) . NEWSLETTER_NO . '</div>';
		  echo '<div class="mb-3">' . ENTRY_NO_NEWSLETTER . tep_draw_radio_field('no_news_only', 'yes', false) . ' ' . NEWSLETTER_YES . ' ' . tep_draw_radio_field('no_news_only', 'no', true) . NEWSLETTER_NO . '</div>';
		  echo '</div>';

		  echo '<div class="mt-3 mb-2"><hr class="hr-gr mt-3 mb-3">';
		  echo tep_draw_w3_button(SIU_DELETE, 'far fa-trash-alt', null, 'primary', null, 'class="w3-button w3-large w3-block w3-red w3-border w3-border-black mb-3"');
		  echo '</div>';
          echo '</form></div>';
?>
</div>
</div>
<?php
  	    $siu_query_raw = "select ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created, c.customers_id, c.customers_firstname, c.customers_lastname, c.customers_email_address, c.customers_newsletter from " . TABLE_CUSTOMERS_INFO . " ci join " . TABLE_CUSTOMERS . " c where c.customers_id = ci.customers_info_id and (ci.customers_info_date_of_last_logon < '" . tep_db_input($maxdate) . "' or ci.customers_info_date_of_last_logon is null) and ci.customers_info_date_account_created < '" . tep_db_input($maxdate) . "' order by ci.customers_info_date_of_last_logon, ci.customers_info_date_account_created";
	    $siu_split = new splitPageResults($page, MAX_DISPLAY_SEARCH_RESULTS, $siu_query_raw, $siu_query_numrows );
	    list_customers($siu_query_raw, true);
?>
	


<div class="w3-padding">
</div><div class="clearfix"></div><hr class="hr-gr mb-3 mt-3">
<table border="0" width="99%" cellspacing="0" cellpadding="6">
  <tr>
    <td class="smallText" valign="top"><?php echo $siu_split->display_count($siu_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $page, TEXT_DISPLAY_NUMBER_OF_CUSTOMERS); ?></td>
    <td class="smallText" align="right"><?php echo $siu_split->display_links($siu_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $page, tep_get_all_get_params(array('page', 'info', 'x', 'y', 'cID'))); ?></td>
  </tr>
</table>
</div>

<?php
  }
 
  require('includes/template_bottom.php');
  require('includes/application_bottom.php');
?>

 

Link to comment
Share on other sites

  • 1 month later...

Product rating for products already purchased

Here customers can see all the products they have already purchased, which can be rated with just one click. All products that have already been rated are then displayed below.

catalog/includes/languages/xxx/account.php

define('MY_ACCOUNT_PRODUCTS_REVIEWED', 'Bereits bewertete Produkte');
define('MY_ACCOUNT_REVIEW_NOW_PRODUCTS', 'Offen stehende Bewertungen');
define('MY_ACCOUNT_REVIEW_PRODUCTS_LG_MD', 'Jetzt bewerten');
define('MY_ACCOUNT_REVIEW_PRODUCTS_SM_XS', '');
define('MY_ACCOUNT_REVIEW_PRODUCTS_TODAY_NO_AVALIABLE_HEADER_INFO', 'Alle Produkte, markiert mit <span class="w3-border w3-border-red w3-white w3-padding-small"><i class="fa fa-minus-circle w3-text-red"></i></span>, sind heute nicht verfügbar.');

 

catalog/account.php

<?php
  $customer_total_prod_query = tep_db_query("select o.customers_id, op.products_name, op.products_id from " . TABLE_ORDERS . " o, " . TABLE_ORDERS_PRODUCTS . " op, " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . $_SESSION['customer_id'] . "' and o.orders_id = op.orders_id and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.public_flag = '1' group by op.products_name order by op.products_name ASC");
	if (tep_db_num_rows($customer_total_prod_query) > 0)
		{
?>

<header class="w3-camo-forest w3-padding w3-xlarge"><?php echo MY_ACCOUNT_REVIEW_NOW_PRODUCTS;?></header>
<div class="w3-border mb-4"><div class="clearfix"></div><hr class="hr-trans mb-1 mt-2">
<div class="w3-padding"><div class="w3-border w3-border-red w3-padding mb-2 w3-text-red w3-pale-red"><?php echo MY_ACCOUNT_REVIEW_PRODUCTS_TODAY_NO_AVALIABLE_HEADER_INFO;?></div><div class="clearfix"></div><hr class="hr-gr mb-1 mt-1"></div>

<?php
$query_allready_rows = '';
  $customer_reviews_query = tep_db_query("select o.customers_id, op.products_name, op.products_id from " . TABLE_ORDERS . " o, " . TABLE_ORDERS_PRODUCTS . " op, " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . $_SESSION['customer_id'] . "' and o.orders_id = op.orders_id and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.public_flag = '1' group by op.products_name order by op.products_name ASC");
  while ($customer_reviews = tep_db_fetch_array($customer_reviews_query)){
$query_allready_rows++;
if (strlen($query_allready_rows) < 1) {
$query_allready_rows = '0' . $query_allready_rows;
}

$products_revd_status_query = tep_db_query("select products_status from products where products_id = '" . $customer_reviews['products_id'] . "'");
$products_revd_status = tep_db_fetch_array($products_revd_status_query);

	$query_allready = tep_db_query("select reviews_id from reviews where products_id = '" . (int)$customer_reviews['products_id'] . "' AND customers_id = '" . (int)$_SESSION['customer_id'] . "'");
	if (tep_db_num_rows($query_allready) > 0)
		{
    	$error = true;
}else{
?>
<div class="col-sm-6">
<?php 
$printlist_category_query = tep_db_query("select c.categories_id, c.categories_product_qty, c.category_stock_status, c.category_stock_info_status, c.cat_stock_att_image, cd.categories_id, cd.categories_name, cd.categories_stock, cd.categories_stock_alternatively, cd.categories_stock_replacement from products p, categories c, categories_description cd, products_to_categories pc where p.products_id = '" . $customer_reviews['products_id'] . "' and p.products_id = pc.products_id and pc.categories_id = cd.categories_id and cd.categories_id = c.categories_id and cd.language_id = '" . (int)$languages_id . "'");
$printlist_category = tep_db_fetch_array($printlist_category_query);
?>
<?php if ($products_revd_status['products_status'] == '1'){?>
<div class="mb-1 mt-1 w3-padding w3-border w3-border-red w3-sand">
<?php }else{?>
<div class="mb-1 mt-1 w3-padding w3-border w3-border-red w3-pale-red">
<?php } if ($products_revd_status['products_status'] == '1'){?>
<a rel="preconnect" itemprop="url" href="<?php 
echo tep_href_link('product_info.php', 'products_id=' . $customer_reviews['products_id']); ?>"><?php echo $query_allready_rows . ' ' . $customer_reviews['products_name'];?></a>
<?php }else{?>
<span class="w3-text-red"><?php echo $query_allready_rows . ' ' . $customer_reviews['products_name'];?></span>
<?php }?>

<?php if ($products_revd_status['products_status'] == '1'){?>
<span class="pull-right hidden-xs hidden-sm"><?php echo tep_draw_button(MY_ACCOUNT_REVIEW_PRODUCTS_LG_MD, 'fa fa-pencil-alt', tep_href_link('product_reviews_write.php', 'products_id=' . $customer_reviews['products_id']), 'primary', NULL, 'btn btn-info btn-xs'); ?></span>
<span class="pull-right hidden-md hidden-lg"><?php echo tep_draw_button(MY_ACCOUNT_REVIEW_PRODUCTS_SM_XS, 'fa fa-pencil-alt', tep_href_link('product_reviews_write.php', 'products_id=' . $customer_reviews['products_id']), 'primary', NULL, 'btn btn-info btn-xs'); ?></span>
<?php }else{?>
<span class="pull-right"><span class="w3-border w3-border-red w3-white w3-padding-small"><i class="fa fa-minus-circle w3-text-red"></i></span></span>
<?php }?>
</div>
</div>
<?php
 }
}?>
<div class="clearfix"></div><hr class="hr-trans mb-2 mt-1">
</div>
<?php }?>


<?php
  $customer_no_reviews_prod_query = tep_db_query("select o.customers_id, op.products_name, op.products_id from " . TABLE_ORDERS . " o, " . TABLE_ORDERS_PRODUCTS . " op, " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . $_SESSION['customer_id'] . "' and o.orders_id = op.orders_id and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.public_flag = '1' group by op.products_name order by op.products_name ASC");
  $customer_no_reviews_prod = tep_db_fetch_array($customer_no_reviews_prod_query);

	$query_allready_prod_reviewed = tep_db_query("select reviews_id from reviews where products_id = '" . (int)$customer_no_reviews_prod['products_id'] . "' AND customers_id = '" . (int)$_SESSION['customer_id'] . "'");
	if (tep_db_num_rows($query_allready_prod_reviewed) > 0)
		{
?>
<header class="w3-camo-forest w3-padding w3-xlarge"><?php echo MY_ACCOUNT_PRODUCTS_REVIEWED;?></header>
<div class="w3-border mb-4"><div class="clearfix"></div><hr class="hr-trans mb-2 mt-2">

<?php
$query_no_allready_rows = '';
  $customer_no_reviews_query = tep_db_query("select o.customers_id, op.products_name, op.products_id from " . TABLE_ORDERS . " o, " . TABLE_ORDERS_PRODUCTS . " op, " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . $_SESSION['customer_id'] . "' and o.orders_id = op.orders_id and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.public_flag = '1' group by op.products_name order by op.products_name ASC");
  while ($customer_no_reviews = tep_db_fetch_array($customer_no_reviews_query)){
$query_no_allready_rows++;
if (strlen($query_no_allready_rows) < 1) {
$query_no_allready_rows = '0' . $query_no_allready_rows;
}

$products_status_query = tep_db_query("select products_status from products where products_id = '" . $customer_no_reviews['products_id'] . "'");
$products_status = tep_db_fetch_array($products_status_query);

	$query_allready_reviewed = tep_db_query("select reviews_id from reviews where products_id = '" . (int)$customer_no_reviews['products_id'] . "' AND customers_id = '" . (int)$_SESSION['customer_id'] . "'");
	if (tep_db_num_rows($query_allready_reviewed) > 0)
		{
    while ($allready_reviewed = tep_db_fetch_array($query_allready_reviewed)){
?>
<div class="col-sm-6">

<?php if ($products_status['products_status'] == '1'){?>
<div class="mb-1 mt-1 w3-padding w3-border w3-border-green w3-food-pistachio">
<?php }else{?>
<div class="mb-1 mt-1 w3-padding w3-border w3-border-red w3-pale-red">
<?php }?>
<?php 
$printlist_norev_category_query = tep_db_query("select c.categories_id, c.categories_product_qty, c.category_stock_status, c.category_stock_info_status, c.cat_stock_att_image, cd.categories_id, cd.categories_name, cd.categories_stock, cd.categories_stock_alternatively, cd.categories_stock_replacement from products p, categories c, categories_description cd, products_to_categories pc where p.products_id = '" . $customer_no_reviews['products_id'] . "' and p.products_id = pc.products_id and pc.categories_id = cd.categories_id and cd.categories_id = c.categories_id and cd.language_id = '" . (int)$languages_id . "'");
$printlist_norev_category = tep_db_fetch_array($printlist_norev_category_query);
?>
<?php if ($products_status['products_status'] == '1'){?>
<a rel="preconnect" itemprop="url" href="<?php 
echo tep_href_link('product_info.php', 'products_id=' . $customer_no_reviews['products_id']); ?>"><?php echo $query_no_allready_rows . ' ' . $customer_no_reviews['products_name'];?></a></a>
<?php }else{?>
<span class="w3-text-red"><?php echo $query_no_allready_rows . ' ' . $customer_no_reviews['products_name'];?></span>
<?php }?>
<span class="pull-right">
<a rel="preconnect" itemprop="url" href="<?php echo tep_href_link('product_reviews.php', 'products_id=' . $customer_no_reviews['products_id']); ?>">
<?php if ($products_status['products_status'] == '1'){?>
<span class="w3-border w3-border-green w3-hover-border-black w3-white w3-padding-small"><i class="fa fa-check w3-text-green w3-hover-text-black"></i></span>
<?php }else{?>
<span class="w3-border w3-border-red w3-hover-border-black w3-white w3-padding-small"><i class="fa fa-minus-circle w3-text-red w3-hover-text-black"></i></span>
<?php }?>
</a></span>
</div>

</div>
<?php
  }
 }
}?>
<div class="clearfix"></div><hr class="hr-trans mb-2 mt-1">
</div>
<?php }?>

 

Edited by YePix
Link to comment
Share on other sites

New Module for reminder of rating.

catalog/includes/languages/xxx/modules/content/index/cm_i_customer_reviews_info.php

<?php

  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MESAGE_TITLE', 'Bewertungserinnerung');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MESAGE_DESCRIPTION', 'Fügt eine Infobox für Bewertungserinnerung an Kunden in Ihrer Website ein.');

  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_HEADING_TITLE', 'Ihre Meinung ist uns wichtig');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO', 'Hallo');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MR', 'Sehr geehrter Herr');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MRS', 'Sehr geehrte Frau');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_FIRST', 'Es freut und sehr, denn Sie haben bereits ');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_TWO', 'Produkte erworben und davon');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_TWO_ONE', 'leider');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_THREE', 'bewertet.');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_FOUR', 'Es ist uns sehr wichtig, unsere Qualität, Geschmack und Leistung auch anderen Kunden und Besuchern nahe zu bringen. Der bester Weg ist somit, durch Ihre Erfahrung.');

  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FIRST', 'Ihr letzter Einkauf war am');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_TWO', 'ist länger als');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_THREE', 'Tage her.');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FOUR', 'Es ist uns sehr wichtig, unsere Qualität, Geschmack und Leistung auch anderen Kunden und Besuchern nahe zu bringen. Der bester Weg ist somit, durch Ihre Erfahrung.');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FIVE', 'Aus diesem Grund, würden wir uns über');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FIVE_ONE', ' Bewertung, von Ihnen, sehr freuen.');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FIVE_TWO', 'Bewertungen, von Ihnen, sehr freuen.');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_SIX', 'Aus diesem Grund, würden wir uns über eine Bewertung, für die restlichen von Ihnen erworbenen Produkte, sehr freuen.');
  define('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_BUTTON_FOR_REVIEWS', 'zu den Produktbewertungen');
?>

catalog/includes/modules/content/index/cm_i_customer_reviews_info.php

<?php

  class cm_i_customer_reviews_info {
    var $code;
    var $group;
    var $title;
    var $description;
    var $sort_order;
    var $enabled = false;

    function __construct() {
      $this->code = get_class($this);
      $this->group = basename(dirname(__FILE__));

      $this->title = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MESAGE_TITLE;
      $this->description = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MESAGE_DESCRIPTION;

      if ( defined('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MESAGE_STATUS') ) {
        $this->sort_order = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MESAGE_SORT_ORDER;
        $this->enabled = (MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MESAGE_STATUS == 'True');
      }
    }

    function execute() {
      global $oscTemplate, $customer_id, $languages_id, $name, $lastname, $gender, $nullcount ;
      
      $name = tep_customers_first_name($customer_id);      
      $lastname = tep_customers_last_name($customer_id);      
      $gender = tep_customers_gender($customer_id);      

      ob_start();
        include('includes/modules/content/' . $this->group . '/templates/tpl_' . basename(__FILE__));
      $template = ob_get_clean();

      $oscTemplate->addContent($template, $this->group);
    }

    function isEnabled() {
      return $this->enabled;
    }

    function check() {
      return defined('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MESAGE_STATUS');
    }

    function install() {
      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Bewertungserinnerung freischalten:', 'MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MESAGE_STATUS', 'True', 'Mchten Sie das Modul für Bewertungserinnerung freischalten?', '6', '1', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('--------------------------------------------------<br>Produktanzahl frei schalten:', 'MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_OPEN_PRODUCTS_FOR_REMEMBER', 'Produktanzahl', 'Mchten Sie, dass die Erinnerung nach Produktanzahl oder Datum eingeblendet werden soll?', '6', '1', 'tep_cfg_select_option(array(\'Produktanzahl\', \'Datum\'), ', now())");
      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Produktanzahl:', 'MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_FOR_REMEMBER', '25', 'Anzahl der Produkte ab der die Erinnerung eingeblendet werden soll.', '6', '0', now())");
      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Tagesanzahl:', 'MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATE_FOR_REMEMBER', '5', 'Anzahl der Tage nach dem letzten Kauf ab der die Erinnerung eingeblendet werden soll.', '6', '0', now())");

      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('--------------------------------------------------<br>Mindestbewertungen:', 'MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_MIN', '7', 'Anzahl der Mindestbewertungen die der Kunde schreiben muss bevor die Erinnerung nicht mehr eingeblendet wird. Bleibt das Feld leer wird die Mindestanzahl aus gekauften Produkten minus Mindestprodukte gerechnet..', '6', '0', now())");
      tep_db_query("insert into configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('--------------------------------------------------<br>Sort Order:', 'MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MESAGE_SORT_ORDER', '10', 'Sort order of display. Lowest is displayed first.', '6', '0', now())");
    }

    function remove() {
      tep_db_query("delete from configuration where configuration_key in ('" . implode("', '", $this->keys()) . "')");
    }

    function keys() {
      return array('MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MESAGE_STATUS', 'MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_OPEN_PRODUCTS_FOR_REMEMBER', 'MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_FOR_REMEMBER', 'MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATE_FOR_REMEMBER', 'MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_MIN', 'MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MESAGE_SORT_ORDER');
    }
  }

catalog/includes/modules/content/index/templates/tpl_cm_i_customer_reviews_info.php

<?php if (isset($_SESSION['customer_id'])){?>

<?php
$customer_total_prod_query = tep_db_query("select o.customers_id, o.date_purchased, op.products_name, op.products_id from " . TABLE_PRODUCTS . " p, " . TABLE_ORDERS . " o, " . TABLE_ORDERS_PRODUCTS . " op, " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . $_SESSION['customer_id'] . "' and p.products_id = op.products_id and o.orders_id = op.orders_id and o.orders_status = s.orders_status_id and p.products_status = '1' and o.orders_status = '1' and s.public_flag = '1' group by op.products_id order by o.date_purchased DESC");
if (tep_db_num_rows($customer_total_prod_query) > '0'){

$customer_all_prod_query = tep_db_query("select o.customers_id, op.products_name, op.products_id from " . TABLE_ORDERS . " o, " . TABLE_ORDERS_PRODUCTS . " op, " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . $_SESSION['customer_id'] . "' and o.orders_id = op.orders_id and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.public_flag = '1' group by op.products_name order by op.products_name ASC");
$reviewed_count_query = tep_db_query("select count(products_id) as count from reviews where customers_id = '" . $_SESSION['customer_id'] . "'");
$reviewed_count = tep_db_fetch_array($reviewed_count_query);
$count = $reviewed_count['count'];

if (empty(MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_MIN)){$min_count = tep_db_num_rows($customer_total_prod_query) - MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_FOR_REMEMBER;}
if (!empty(MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_MIN)){$min_count = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_MIN - $count;}

if ($count == '0'){ $nullcount = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_TWO_ONE;}
if ($min_count == '0'){ $revmincount = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_SIX;}
if ($min_count == '1'){ $revmincount = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FIVE_ONE;}
if ($min_count > '1'){ $revmincount = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FIVE_TWO;}

if (MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_OPEN_PRODUCTS_FOR_REMEMBER == 'Produktanzahl'){

if ((MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_OPEN_PRODUCTS_FOR_REMEMBER == 'Produktanzahl') && (empty(MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_MIN))){
if (tep_db_num_rows($customer_total_prod_query) > MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_FOR_REMEMBER){
$customer_total_prod = tep_db_fetch_array($customer_total_prod_query);
$customer_gender_query = tep_db_query("select customers_gender from " . TABLE_CUSTOMERS . " where customers_id = '" . $_SESSION['customer_id'] . "'");
$customer_gender = tep_db_fetch_array($customer_gender_query);
?>

<?php if ($customer_gender['customers_gender'] == 'm') {$cu_gender = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MR . ' ' . $lastname . ', ';}?>
<?php if ($customer_gender['customers_gender'] == 'f') {$cu_gender = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MRS . ' ' . $lastname . ', ';}?>
<?php if (empty($customer_gender['customers_gender'])) {$cu_gender = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO . ' ' . $name . ', ';}?>
<div class="col-sm-12 w3-padding mb-2">
<header class="w3-red w3-padding"><div class="w3-text-white w3-large"><?php echo MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_HEADING_TITLE;?></div></header>
<div class="w3-border w3-bottombar w3-border-red w3-padding">

<?php echo $cu_gender . ' ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_FIRST . ' ' . tep_db_num_rows($customer_all_prod_query) . ' ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_TWO . ' ' . $nullcount . ' ' . $count . ' ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_THREE . '<br>' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_FOUR . '<br>' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FIVE . ' ' . $min_count . ' ' . $revmincount;?>

<div class="mt-3">
<a rel="preconnect" href='<?php echo tep_href_link('account.php'); ?>' class="btn btn-info btn-block w3-border w3-border-black w3-text-black w3-hover-text-white" role="button"><i class="fa fa-star w3-text-yellow w3-large" style="text-shadow: 1px 0 #fff, 0 -1px transparent, -1px 0 #fff, 0 1px #fff"></i> <?php echo MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_BUTTON_FOR_REVIEWS; ?></a>
</div>

<div class="clearfix"></div></div></div>
<?php }}?>

<?php
if ((MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_OPEN_PRODUCTS_FOR_REMEMBER == 'Produktanzahl') && (!empty(MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_MIN))){
$customer_total_prod = tep_db_fetch_array($customer_total_prod_query);
$customer_gender_query = tep_db_query("select customers_gender from " . TABLE_CUSTOMERS . " where customers_id = '" . $_SESSION['customer_id'] . "'");
$customer_gender = tep_db_fetch_array($customer_gender_query);
?>

<?php if ($customer_gender['customers_gender'] == 'm') {$cu_gender = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MR . ' ' . $lastname . ', ';}?>
<?php if ($customer_gender['customers_gender'] == 'f') {$cu_gender = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MRS . ' ' . $lastname . ', ';}?>
<?php if (empty($customer_gender['customers_gender'])) {$cu_gender = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO . ' ' . $name . ', ';}?>
<div class="col-sm-12 w3-padding mb-2">
<header class="w3-red w3-padding"><div class="w3-text-white w3-large"><?php echo MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_HEADING_TITLE;?></div></header>
<div class="w3-border w3-bottombar w3-border-red w3-padding">

<?php echo $cu_gender . ' ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_FIRST . ' ' . tep_db_num_rows($customer_all_prod_query) . ' ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_TWO . ' ' . $nullcount . ' ' . $count . ' ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_THREE . '<br>' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_FOUR . '<br>' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FIVE . ' ' . $min_count . ' ' . $revmincount;?>

<div class="mt-3">
<a rel="preconnect" href='<?php echo tep_href_link('account.php'); ?>' class="btn btn-info btn-block w3-border w3-border-black w3-text-black w3-hover-text-white" role="button"><i class="fa fa-star w3-text-yellow w3-large" style="text-shadow: 1px 0 #fff, 0 -1px transparent, -1px 0 #fff, 0 1px #fff"></i> <?php echo MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_BUTTON_FOR_REVIEWS; ?></a>
</div>

<div class="clearfix"></div></div></div>
<?php }?>

<?php }else{?>

<?php
if (empty(MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_MIN)){
$customer_total_prod = tep_db_fetch_array($customer_total_prod_query);
$customer_purchased_date_query = tep_db_query("select date_purchased as datum from " . TABLE_ORDERS . " where customers_id = '" . $_SESSION['customer_id'] . "' order by date_purchased DESC");
$customer_purchased_date = tep_db_fetch_array($customer_purchased_date_query);

$current_date = date('Y-m-d');
$purchased_date = $customer_purchased_date['datum'];
$new_date = date('Y-m-d', strtotime($purchased_date . '+ ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATE_FOR_REMEMBER . ' days'));
if ($current_date >= $new_date){

if (tep_db_num_rows($customer_total_prod_query) > MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_FOR_REMEMBER){

$customer_total_prod_query = tep_db_query("select o.customers_id, o.date_purchased, op.products_name, op.products_id from " . TABLE_PRODUCTS . " p, " . TABLE_ORDERS . " o, " . TABLE_ORDERS_PRODUCTS . " op, " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . $_SESSION['customer_id'] . "' and p.products_id = op.products_id and o.orders_id = op.orders_id and o.orders_status = s.orders_status_id and p.products_status = '1' and o.orders_status = '1' and s.public_flag = '1' order by o.date_purchased DESC");
if (tep_db_num_rows($customer_total_prod_query) > '0'){
$customer_total_prod = tep_db_fetch_array($customer_total_prod_query);
?>

<div class="col-sm-12 w3-padding mb-2">
<header class="w3-red w3-padding"><div class="w3-text-white w3-large"><?php echo MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_HEADING_TITLE;?></div></header>
<div class="w3-border w3-bottombar w3-border-red w3-padding">
<?php
$customer_gender_query = tep_db_query("select customers_gender from " . TABLE_CUSTOMERS . " where customers_id = '" . $_SESSION['customer_id'] . "'");
$customer_gender = tep_db_fetch_array($customer_gender_query);
?>
<?php if ($customer_gender['customers_gender'] == 'm') {$cu_gender = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MR . ' ' . $lastname . ', ';}?>
<?php if ($customer_gender['customers_gender'] == 'f') {$cu_gender = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MRS . ' ' . $lastname . ', ';}?>
<?php if (empty($customer_gender['customers_gender'])) {$cu_gender = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO . ' ' . $name . ', ';}?>
<?php
echo $cu_gender . ' ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FIRST . ' ' . tep_date_short($customer_total_prod['date_purchased']) . '<br>' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_FIRST  . ' ' . tep_db_num_rows($customer_all_prod_query) . ' ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_TWO . ' ' . $nullcount . ' ' . $count . ' ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_THREE . '<br>' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FOUR . '<br>' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FIVE . ' ' . $min_count . ' ' . $revmincount;
?>

<div class="mt-3">
<a rel="preconnect" href='<?php echo tep_href_link('account.php'); ?>' class="btn btn-info btn-block w3-border w3-border-black w3-text-black w3-hover-text-white" role="button"><i class="fa fa-star w3-text-yellow w3-large" style="text-shadow: 1px 0 #fff, 0 -1px transparent, -1px 0 #fff, 0 1px #fff"></i> <?php echo MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_BUTTON_FOR_REVIEWS; ?></a>
</div>

<div class="clearfix"></div></div></div>
<?php }}}?>
<?php }?>

<?php
if (!empty(MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_PRODUCTS_MIN)){
$customer_total_prod = tep_db_fetch_array($customer_total_prod_query);
$customer_purchased_date_query = tep_db_query("select date_purchased as datum from " . TABLE_ORDERS . " where customers_id = '" . $_SESSION['customer_id'] . "' order by date_purchased DESC");
$customer_purchased_date = tep_db_fetch_array($customer_purchased_date_query);

$current_date = date('Y-m-d');
$purchased_date = $customer_purchased_date['datum'];
$new_date = date('Y-m-d', strtotime($purchased_date . '+ ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATE_FOR_REMEMBER . ' days'));
if ($current_date >= $new_date){
$customer_total_prod_query = tep_db_query("select o.customers_id, o.date_purchased, op.products_name, op.products_id from " . TABLE_PRODUCTS . " p, " . TABLE_ORDERS . " o, " . TABLE_ORDERS_PRODUCTS . " op, " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . $_SESSION['customer_id'] . "' and p.products_id = op.products_id and o.orders_id = op.orders_id and o.orders_status = s.orders_status_id and p.products_status = '1' and o.orders_status = '1' and s.public_flag = '1' order by o.date_purchased DESC");
if (tep_db_num_rows($customer_total_prod_query) > '0'){
$customer_total_prod = tep_db_fetch_array($customer_total_prod_query);
?>

<div class="col-sm-12 w3-padding mb-2">
<header class="w3-red w3-padding"><div class="w3-text-white w3-large"><?php echo MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_HEADING_TITLE;?></div></header>
<div class="w3-border w3-bottombar w3-border-red w3-padding">
<?php
$customer_gender_query = tep_db_query("select customers_gender from " . TABLE_CUSTOMERS . " where customers_id = '" . $_SESSION['customer_id'] . "'");
$customer_gender = tep_db_fetch_array($customer_gender_query);
?>
<?php if ($customer_gender['customers_gender'] == 'm') {$cu_gender = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MR . ' ' . $lastname . ', ';}?>
<?php if ($customer_gender['customers_gender'] == 'f') {$cu_gender = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_MRS . ' ' . $lastname . ', ';}?>
<?php if (empty($customer_gender['customers_gender'])) {$cu_gender = MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO . ' ' . $name . ', ';}?>
<?php
echo $cu_gender . ' ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FIRST . ' ' . tep_date_short($customer_total_prod['date_purchased']) . '.<br>' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_FIRST . ' ' . tep_db_num_rows($customer_all_prod_query) . ' ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_TWO . ' ' . $nullcount . ' ' . $count . ' ' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_TO_CUSTOMER_THREE . '<br>' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FOUR . '<br>' . MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_DATA_TO_CUSTOMER_FIVE . ' ' . $min_count . ' ' . $revmincount;
?>

<div class="mt-3">
<a rel="preconnect" href='<?php echo tep_href_link('account.php'); ?>' class="btn btn-info btn-block w3-border w3-border-black w3-text-black w3-hover-text-white" role="button"><i class="fa fa-star w3-text-yellow w3-large" style="text-shadow: 1px 0 #fff, 0 -1px transparent, -1px 0 #fff, 0 1px #fff"></i> <?php echo MODULE_CONTENT_I_CUSTOMER_REVIEWS_INFO_BUTTON_FOR_REVIEWS; ?></a>
</div>

<div class="clearfix"></div></div></div>
<?php }}}?>


<?php }?>
<?php }}?>

catalog/includes/functions/general.php

before the last ?>

function tep_customers_gender($customers_id) {
    $customers = tep_db_query("select customers_gender from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$customers_id . "'");
    $customers_values = tep_db_fetch_array($customers);
    if (isset($customers_values['customers_gender']) == 'm') {
    $gender_output = MALE;
    } elseif (isset($customers_values['customers_gender']) == 'f') {
    $gender_output = FEMALE;
    } else {
    $gender_output = '';
    }
    return $gender_output;
}

function tep_customers_first_name($customers_id) {
    $customers = tep_db_query("select customers_firstname from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$customers_id . "'");
    $customers_values = tep_db_fetch_array($customers);
    if (isset($customers_values['customers_firstname'])){
    return $customers_values['customers_firstname'];
  }
}

function tep_customers_last_name($customers_id) {
    $customers = tep_db_query("select customers_lastname from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$customers_id . "'");
    $customers_values = tep_db_fetch_array($customers);
    if (isset($customers_values['customers_lastname'])){
    return $customers_values['customers_lastname'];
  }
}

catalog/includes/languages/xxx.php

define('MALE', 'Herr');
define('FEMALE', 'Frau');

Only in German.

Edited by YePix
Link to comment
Share on other sites

  • 1 month later...

if someone uses the module get 1 free, here is a customer info. List of products with gifts offered in the shop. Just install it where you want it.

  <?php if (defined('MODULE_CONTENT_PRODUCT_INFO_GET_1_FREE_STATUS') && (MODULE_CONTENT_PRODUCT_INFO_GET_1_FREE_STATUS == 'True') ) {
        $check_get_1_free = tep_db_query("select gf.get_1_free_id from get_1_free gf, products p where gf.products_id = p.products_id");
        if (tep_db_num_rows($check_get_1_free)) {
  ?>
  <div class="clearfix"></div><hr class="hr-gr mb-2 mt-2">
  <div class="mb-2 mt-2 w3-large"><font color="#DD0000"><b><?php echo DISCOUNT_PAGE_MODULE_CONTENT_PRODUCT_INFO_GET_1_FREE_TITLE;?></b></font></div>
  <?php 
        $products_cart_gift = '<img src="images/cart_gift.png">';  
        $get_1_free_product_query = tep_db_query("select gf.get_1_free_id, gf.products_id, gf.products_qualify_quantity, gf.products_free_quantity, pd.products_name from get_1_free gf, products p left join products_description pd on p.products_id = pd.products_id where gf.products_id = p.products_id order by gf.get_1_free_id");
        while ($get_1_free_product = tep_db_fetch_array($get_1_free_product_query)){      
        $get_1_free_query = tep_db_query("select gf.products_free_id, p.products_id, pd.products_name from get_1_free gf, products p left join products_description pd on p.products_id = pd.products_id where gf.get_1_free_id = '" . $get_1_free_product['get_1_free_id'] . "' and p.products_id = gf.products_free_id order by gf.get_1_free_id");
        if (tep_db_num_rows($get_1_free_query)) {
        while ($get_1_free = tep_db_fetch_array($get_1_free_query)){ 
        $g1f = $get_1_free['products_name']; 
        $g1f_pfid = $get_1_free['products_free_id']; 
        }
        if ($get_1_free_product['products_qualify_quantity'] > 1){$pquqt = DISCOUNT_PAGE_TEXT_GET_1_FREE_PROMOTION_FOUR;}else{$pquqt = '';}
        ?>
  <div class="mb-2 mt-2 w3-border w3-border-blue w3-leftbar w3-round w3-padding">
  <?php echo $products_cart_gift . ' ' . $get_1_free_product['products_qualify_quantity'] . ' ' . $pquqt;?>
  <a href="<?php echo tep_href_link('product_info.php', tep_get_all_get_params(array('action')) . 'products_id=' . $get_1_free_product['products_id']); ?>"><b class="w3-text-black w3-hover-text-blue"><?php echo $get_1_free_product['products_name'];?></b></a>
  <?php echo DISCOUNT_PAGE_TEXT_GET_1_FREE_PROMOTION_TWO . ' ' . $get_1_free_product['products_free_quantity'];?>
  <a href="<?php echo tep_href_link('product_info.php', tep_get_all_get_params(array('action')) . 'products_id=' . $g1f_pfid); ?>"><b class="w3-text-blue w3-hover-text-black"><?php echo $g1f;?></b></a>
  <?php echo DISCOUNT_PAGE_TEXT_GET_1_FREE_PROMOTION_THREE;?>
  </div>
  <?php }}}}?>

 

language:

define('DISCOUNT_PAGE_MODULE_CONTENT_PRODUCT_INFO_GET_1_FREE_TITLE', 'Geschänkartikel');
define('DISCOUNT_PAGE_TEXT_GET_1_FREE_PROMOTION', '<font color="#990000">ANGEBOT:</font>');
define('DISCOUNT_PAGE_TEXT_GET_1_FREE_PROMOTION_TWO', 'kaufen und Sie bekommen von uns ');
define('DISCOUNT_PAGE_TEXT_GET_1_FREE_PROMOTION_THREE', 'dazu geschenkt.');
define('DISCOUNT_PAGE_TEXT_GET_1_FREE_PROMOTION_FOUR', 'identische');
define('DISCOUNT_PAGE_TEXT_GET_1_FREE_ATTRIBUTE_PROMOTION', '<font color="#990000">ACHTUNG!</font> Bei diesem Angebot müssen die');
define('DISCOUNT_PAGE_TEXT_GET_1_FREE_ATTRIBUTE_PROMOTION_TWO', 'im Warenkorb identisch sein');
define('DISCOUNT_PAGE_TEXT_OFFER_ENDS', ' - Zeitlich begrenztes Angebot endet');

 

Link to comment
Share on other sites

  • 9 months later...
  • 6 months later...

Hello to all sympathizers of the 2.3.4 BS version of osCommerce. I revised the software and tested the installation on php8 several times. If anyone is interested, just download and use. If you write any addons, I would be happy if you would send them to me so that I can make them available to other users. I hope this software has a long life ahead of it. Kind regards, Peter.

You can find all the information here...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...