Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Hotclutch

Members
  • Posts

    2,621
  • Joined

  • Last visited

  • Days Won

    40

Reputation Activity

  1. Like
    Hotclutch got a reaction from Ken_Shea in How to configure currencies in V4 osCommerce   
    If you use a currency other than Pound/Dollar/Euro then you will need to go to
    Admin -> Settings -> Localization -> Curruncies.
    This interface is simple and self explanatory. Its also very similar to V2 osCommerce. You should not have a problem adding/deleting currencies here, or setting them as Active and/or as default.
    Next you need to go to
    Admin -> Sales channels
    Click on the channel that you're using / configuring the currencies for. Click Edit.
    Scroll down to Languages & Currencies. Click Change. Make the necessary changes and click Apply.
    Lastly click Save at the bottom of the Sales channel page.
  2. Thanks
    Hotclutch got a reaction from MLynx25 in How to configure currencies in V4 osCommerce   
    If you use a currency other than Pound/Dollar/Euro then you will need to go to
    Admin -> Settings -> Localization -> Curruncies.
    This interface is simple and self explanatory. Its also very similar to V2 osCommerce. You should not have a problem adding/deleting currencies here, or setting them as Active and/or as default.
    Next you need to go to
    Admin -> Sales channels
    Click on the channel that you're using / configuring the currencies for. Click Edit.
    Scroll down to Languages & Currencies. Click Change. Make the necessary changes and click Apply.
    Lastly click Save at the bottom of the Sales channel page.
  3. Like
    Hotclutch got a reaction from patrocine in W3 osCommerce WIP   
    https://www.dropbox.com/s/6yzeg9adbmee3f5/W3-osC.zip?dl=0
    If anybody wants to have a look and share their thoughts, above is the download link. It's only a start for now.
  4. Thanks
    Hotclutch reacted to YePix in W3 osCommerce WIP   
    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.
  5. Thanks
    Hotclutch got a reaction from YePix in W3 osCommerce WIP   
    <span class="pull-right"> pull-right is deprecated now in BS4/5, should be float-end.
  6. Thanks
    Hotclutch reacted to YePix in W3 osCommerce WIP   
    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 }?>  
  7. Like
    Hotclutch got a reaction from Smoky Barnable in KissIT Image Thumbnailer Support   
    I change the order of the parameters:
    protected function _output( $quality, $save_in = null, $filters = null ) { and
    return imagejpeg ( $this->_image, $quality, $save_in ); and
    return imagepng ( $this->_image, $quality, $save_in, $filters );  
  8. Thanks
    Hotclutch reacted to YePix in W3 osCommerce WIP   
    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.
  9. Like
    Hotclutch got a reaction from domiosc in oscommerce v4 - demo preview website   
    https://osc4.tllab.co.uk/
  10. Thanks
    Hotclutch got a reaction from ottoosc in oscommerce v4 - demo preview website   
    https://osc4.tllab.co.uk/
  11. Like
    Hotclutch got a reaction from osCommerce-Official in osCommerce v4 Beta 2 - download   
    You can PM oscommerce-official to request for it, or I am sure he will PM you when he sees this post.
  12. Thanks
    Hotclutch reacted to patrocine in Banner advertising marketing shop-to-shop   
    The Shop-to-shop banner can be easily adapted to all versions and is a very powerful advertising system that consumes a lot of data transfer.
    I have version 2.3.1 PHP 5.1 I have an old version because I did the program many years ago and I invoice in a physical store with it and I sell online. It has an integrated system that is very easy to use, osc23 is super fast and the current version does not It helps me run my business.
    https://apps.oscommerce.com/Bs315&enterprise-3-0-oscommerce
    Enterprise 3.0 is a very advanced system and very easy to use, I cannot change.
     
  13. Like
    Hotclutch got a reaction from osCommerce-Official in How to configure currencies in V4 osCommerce   
    If you use a currency other than Pound/Dollar/Euro then you will need to go to
    Admin -> Settings -> Localization -> Curruncies.
    This interface is simple and self explanatory. Its also very similar to V2 osCommerce. You should not have a problem adding/deleting currencies here, or setting them as Active and/or as default.
    Next you need to go to
    Admin -> Sales channels
    Click on the channel that you're using / configuring the currencies for. Click Edit.
    Scroll down to Languages & Currencies. Click Change. Make the necessary changes and click Apply.
    Lastly click Save at the bottom of the Sales channel page.
  14. Like
    Hotclutch got a reaction from osCommerce-Official in Installation osCommerce v4 Beta 2 - No Admin Page   
    If you PM me all the details to do an install,  I will take a look from my side.
  15. Like
    Hotclutch got a reaction from kep@ in Support thread for JcM Product info date added+Info V1.1 CE   
    That could be due to the fact that you don't have a database.php with a definition for TABLE_PRODUCTS.
  16. Like
    Hotclutch got a reaction from kep@ in Support thread for JcM Product info date added+Info V1.1 CE   
    Assuming the definition is in there, you then to check application_top.php to see if the project is including database.php
    You don't mention what version of osCommerce you're using but at some point the CE removed that from application_top.php
  17. Like
    Hotclutch got a reaction from kep@ in Support thread for JcM Product info date added+Info V1.1 CE   
    All the CEs are labelled like that. You need to check application_top.php, or alternative to that you can edit the code, replace TABLE_PRODUCTS with products. You will have to do the same for the other definitions.
  18. Like
    Hotclutch got a reaction from osCommerce-Official in Language Definitions   
    Language Definitions are stored in the database and they can be edited from the ACP under Translations.

  19. Thanks
    Hotclutch reacted to osCommerce-Official in Breadcrumbs   
    It is possible to add the Breadcrumb widget to the corresponding pages where you'd like to see them. Please just choose the appropriate block on the page and press "Add Widget" and choose breadcrumb from the list.
  20. Like
    Hotclutch reacted to osCommerce-Official in Multiple Design Templates and built in Designer   
    Ashley,
    Thanks for your feedback! 
    Theme editor allows building new themes / templates using the set of widgets. There are "general" widgets that can be added to any page of the theme, and there are page-specific widgets (like widgets for the product page, shopping cart page, etc). It is indeed possible to build a new theme "from scratch" using the widgets. 
    Alternatively it is possible to copy an existing theme, and edit it to create new one. 
    In either way, it is possible to completely control the look and feel (or the "style") of each widget using the build in style editor or by overwriting the CSS directly. 
    osCommerce will be supplied with more themes than were included in B1 and B2. It will be confirmed for the release (due in approximately 3 weeks). 
  21. Like
    Hotclutch reacted to GetSirius in Installation osCommerce v4 Beta 2 - No Admin Page   
    Thank you Hotclutch. I did not enter the same folder name (test in your example) but did enter a name (/shop) thinking the store would be located at /test/shop. 
    Just re-installed leaving the install location as is and it appears to be working now. Also, it does not load painfully slow as the failed install did. I did get the 404 error message while installing.
    PHP-Version    7.4.27 
  22. Like
    Hotclutch got a reaction from osCommerce-Official in Installation osCommerce v4 Beta 2 - No Admin Page   
    I did the installation now on my shared hosting account running php 8.0.15. There were no issues at all, other than a 404 notice on the last step, but then when you click complete, the Admin and the 2 demo shops are accessible.
    Tip: If you have copied the installation zip package into a folder called, lets say test, on the 2nd or 3rd step it prompts you to enter the install location. Do not put /test here, leave it as /
    Other than the step requiring you to configure the sales channels, there's no difference in installation between this and V2.
  23. Thanks
    Hotclutch reacted to user_lambda in W3 osCommerce WIP   
    Great work. And super idea to rely on 2.3.4.1 !
    I'll give a try...
  24. Like
    Hotclutch reacted to nemike in Help capturing data sent to Paypal   
    Actually I found the code and fixed it and now all transactions that were failing are now working, for anyone else on old code like me here is the fix:
    edit includes/modules/payment/paypal.php
    inside the function "formFields"
    add a line after:
            $item_number = '';
            for ($i=0; $i<sizeof($order->products); $i++) $item_number .= ' '.$order->products[$i]['name'].' ,';
            $item_number = substr_replace($item_number,'',-2);
    This is the new line to add after:
            if( strlen($item_number) > 127 ) { $item_number = substr($item_number, 0, 124) . "..."; }
    That fixes the problem.
    Hope this helps someone.
    Mike
  25. Thanks
    Hotclutch reacted to Demitry in W3 osCommerce WIP   
    Try this for the first one.
    switch (isset($_GET['install'])) {
    or
    switch ((isset($_GET['install']) ? $_GET['install'] : null)) {
     
     
×
×
  • Create New...