Kingel Posted February 2, 2013 Share Posted February 2, 2013 (edited) Halli Hallo. Wo kann man ändern das der Kunde bei seiner Adresse nicht seine Telefonnummer angeben muss? Momentan ist es so, das der Kunde alle beide angeben muss, damit es weiter geht. Es steht zwar dort: "geben sie min. eine Rufnummer ein". Der Kunde muss aber zu Zeit beide Felder ausfüllen. Ist schon ein Punkt der vermutlich den Kunden zögern lässt, wenn dieser gleich beide Telefonnummer angeben muss Anbei auch ein Bild. Schönes Wochenende noch Edited July 18, 2013 by Kingel (see edit history) Link to comment Share on other sites More sharing options...
Kingel Posted February 7, 2013 Author Share Posted February 7, 2013 Push. Niemand eine Idee für mein kleines aber feines Problemchen? Link to comment Share on other sites More sharing options...
guest* Posted February 21, 2013 Share Posted February 21, 2013 Falls du es noch nicht gefunden haben solltest: sonst bitte den Post als [gelöst] markieren. Danke. http://www.prestashop.com/forums/index.php?/topic/200385-bitte-dringend-beachten-geloste-postings-mit-gelost-markieren/ Link to comment Share on other sites More sharing options...
Kingel Posted February 25, 2013 Author Share Posted February 25, 2013 Hi. Sorry, musste in letzter Zeit erstmal ein anderes Projekt wieder zum Laufen bringen, so das ich mich jetzt wieder dem "Geliebtem Prestashop" widmen kann. Konnte bis dato noch keine Lösung finden, trotzdem ich die Funktion deaktiviert habe. Man muss immer noch beide Telefonnummern angeben. Ich welche Datei könnte ich diese Funktionen auskommentieren.? Link to comment Share on other sites More sharing options...
guest* Posted February 26, 2013 Share Posted February 26, 2013 Wenn du die Telefon-Nr. dort deaktivierst, dann ist sie kein Pflichtfeld mehr. Möchtest du die beiden Zeilen dennoch aus dem Anmaledformular entfernen, so bearbeite die Datei /themes/dein_theme/ address.tpl kommentiere dort die Zeilen ca. 220 bis 229 aus. {* * <p class="text"> * <label for="phone">{l s='Home phone'}</label> * <input type="text" id="phone" name="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{else}{if isset($address->phone)}{$address->phone}{/if}{/if}" /> * </p> * <p class="text"> * <label for="phone_mobile">{l s='Mobile phone'}</label> * <input type="text" id="phone_mobile" name="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{else}{if isset($address->phone_mobile)}{$address->phone_mobile}{/if}{/if}" /> * </p> *} Link to comment Share on other sites More sharing options...
Kingel Posted February 27, 2013 Author Share Posted February 27, 2013 (edited) Prima gefunden. In dem Wust von Dateien hätte ich mir sonst den Wolf gesucht.. Wer möchte hier der komplette Code auskommentiert, fast wie oben beschrieben .. nur ein wenig mehr <!-- <p class="text"> <label for="phone">{l s='Home phone'}</label> <input type="text" id="phone" name="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{else}{if isset($address->phone)}{$address->phone}{/if}{/if}" /> </p> <p class="text"> <label for="phone_mobile">{l s='Mobile phone'}</label> <input type="text" id="phone_mobile" name="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{else}{if isset($address->phone_mobile)}{$address->phone_mobile}{/if}{/if}" /> </p> <p class="required text" id="adress_alias"> <label for="alias">{l s='Assign an address title for future reference'} <sup>*</sup></label> <input type="text" id="alias" name="alias" value="{if isset($smarty.post.alias)}{$smarty.post.alias}{else if isset($address->alias)}{$address->alias}{else if isset($select_address)}{l s='My address'}{/if}" /> </p> --> Edited February 27, 2013 by Kingel (see edit history) Link to comment Share on other sites More sharing options...
Kingel Posted July 18, 2013 Author Share Posted July 18, 2013 Hallo.. das Problem scheint doch noch nicht gelöst zu sein. Bei der Anmeldung ist muss man zur bei mir keine Telefonnummer angeben. Folgendes habe ich schon erledigt. 1. Diese Funktion habe ich in der address.tpl wie oben beschrieben auskommentiert. Funktioniert bei Anmedlung 2. >Voreinstellungen > Kunden > Allgemein > zweiter Absatz " Telefon Nr" > einfach nein anwählen........................... Wenn man aber sich ein Produkt in den Warenkorb packt und dann die Lieferadresse eingeben will (Telefon und Alias sind wie gewünscht nicht sichtbar) dann fragt Prestashop doch tatsächlich wieder: Es sind 5 Fehler aufgetreten alias erforderlich Telefonnr. erforderlich Mobilnr. erforderlich Das Feld Telefonnr. ist ein Pflichtfeld. Das Feld Mobilnr. ist ein Pflichtfeld. Och menno. Deprimiernd. Welche Datei ist denn noch dafür zuständig? Danke! Link to comment Share on other sites More sharing options...
A und O Posted August 14, 2013 Share Posted August 14, 2013 Ist das noch aktuell? Lokalisierung › Länder › bei den angegebenen Ländern auf Adressenanzeige die Telefonnummern rauslöschen dann speichern unter "verwenden Sie mein aktuell modifiziertes Design. Link to comment Share on other sites More sharing options...
eleazar Posted August 14, 2013 Share Posted August 14, 2013 Ja, für 1.5x ist das ist noch aktuell. Rumbasteln am Template hilft dagegen nicht für Abfragen von Pflichtfeldern, sondern zeigt sie lediglich nicht an, was dann zu Fehlermeldungen des Programms führt. Die Pflichtfelder für 1.4x sind in /classes/address.php festgelegt, und zwar in Zeile 99: protected $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'city'); Hier kann man weitere festlegen, oder eben einzelne entfernen. Link to comment Share on other sites More sharing options...
Kingel Posted August 15, 2013 Author Share Posted August 15, 2013 Danke. Versuche ich nachher mal. Hatte die Hoffnung schon fast aufgegeben. Link to comment Share on other sites More sharing options...
Kingel Posted August 21, 2013 Author Share Posted August 21, 2013 (edited) Ich habe mal die Adress.php angeschaut. Konnte zwar Einträge finden, aber nicht die von Dir oben beschrieben. Hier die komplette PHP. <?php /* * 2007-2012 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2012 PrestaShop SA * @version Release: $Revision: 6844 $ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class AddressCore extends ObjectModel { /** @var integer Customer id which address belongs to */ public $id_customer = null; /** @var integer Manufacturer id which address belongs to */ public $id_manufacturer = null; /** @var integer Supplier id which address belongs to */ public $id_supplier = null; /** * @since 1.5.0 * @var int Warehouse id which address belongs to */ public $id_warehouse = null; /** @var integer Country id */ public $id_country; /** @var integer State id */ public $id_state; /** @var string Country name */ public $country; /** @var string Alias (eg. Home, Work...) */ public $alias; /** @var string Company (optional) */ public $company; /** @var string Lastname */ public $lastname; /** @var string Firstname */ public $firstname; /** @var string Address first line */ public $address1; /** @var string Address second line (optional) */ public $address2; /** @var string Postal code */ public $postcode; /** @var string City */ public $city; /** @var string Any other useful information */ public $other; /** @var string Phone number */ public $phone; /** @var string Mobile phone number */ public $phone_mobile; /** @var string VAT number */ public $vat_number; /** @var string DNI number */ public $dni; /** @var string Object creation date */ public $date_add; /** @var string Object last modification date */ public $date_upd; /** @var boolean True if address has been deleted (staying in database as deleted) */ public $deleted = 0; protected static $_idZones = array(); protected static $_idCountries = array(); /** * @see ObjectModel::$definition */ public static $definition = array( 'table' => 'address', 'primary' => 'id_address', 'fields' => array( 'id_customer' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 'id_manufacturer' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 'id_supplier' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 'id_warehouse' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 'id_country' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true), 'id_state' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId'), 'alias' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true, 'size' => 32), 'company' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 64), 'lastname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32), 'firstname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32), 'vat_number' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'), 'address1' => array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true, 'size' => 128), 'address2' => array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'size' => 128), 'postcode' => array('type' => self::TYPE_STRING, 'validate' => 'isPostCode', 'size' => 12), 'city' => array('type' => self::TYPE_STRING, 'validate' => 'isCityName', 'required' => true, 'size' => 64), 'other' => array('type' => self::TYPE_STRING, 'validate' => 'isMessage', 'size' => 300), 'phone' => array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 16), 'phone_mobile' => array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 16), 'dni' => array('type' => self::TYPE_STRING, 'validate' => 'isDniLite', 'size' => 16), 'deleted' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false), 'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDateFormat', 'copy_post' => false), 'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDateFormat', 'copy_post' => false), ), ); protected $_includeVars = array('addressType' => 'table'); protected $_includeContainer = false; protected $webserviceParameters = array( 'objectsNodeName' => 'addresses', 'fields' => array( 'id_customer' => array('xlink_resource'=> 'customers'), 'id_manufacturer' => array('xlink_resource'=> 'manufacturers'), 'id_supplier' => array('xlink_resource'=> 'suppliers'), 'id_warehouse' => array('xlink_resource'=> 'warehouse'), 'id_country' => array('xlink_resource'=> 'countries'), 'id_state' => array('xlink_resource'=> 'states'), ), ); /** * Build an address * * @param integer $id_address Existing address id in order to load object (optional) */ public function __construct($id_address = null, $id_lang = null) { parent::__construct($id_address); /* Get and cache address country name */ if ($this->id) $this->country = Country::getNameById($id_lang ? $id_lang : Configuration::get('PS_LANG_DEFAULT'), $this->id_country); } /** * @see ObjectModel::add() */ public function add($autodate = true, $null_values = false) { if (!parent::add($autodate, $null_values)) return false; if (Validate::isUnsignedId($this->id_customer)) Customer::resetAddressCache($this->id_customer); return true; } public function update($null_values = false) { // Empty related caches if (isset(self::$_idCountries[$this->id])) unset(self::$_idCountries[$this->id]); if (isset(self::$_idZones[$this->id])) unset(self::$_idZones[$this->id]); return parent::update($null_values); } /** * @see ObjectModel::delete() */ public function delete() { if (Validate::isUnsignedId($this->id_customer)) Customer::resetAddressCache($this->id_customer); if (!$this->isUsed()) return parent::delete(); else { $this->deleted = true; return $this->update(); } } /** * Returns fields required for an address in an array hash * @return array hash values */ public static function getFieldsValidate() { $tmp_addr = new Address(); $out = $tmp_addr->fieldsValidate; unset($tmp_addr); return $out; } /** * @see ObjectModel::validateController() */ public function validateController($htmlentities = true) { $errors = parent::validateController($htmlentities); if (!Configuration::get('VATNUMBER_CHECKING')) return $errors; include_once(_PS_MODULE_DIR_.'vatnumber/vatnumber.php'); if (class_exists('VatNumber', false)) return array_merge($errors, VatNumber::WebServiceCheck($this->vat_number)); return $errors; } /** * Get zone id for a given address * * @param integer $id_address Address id for which we want to get zone id * @return integer Zone id */ public static function getZoneById($id_address) { if (isset(self::$_idZones[$id_address])) return self::$_idZones[$id_address]; $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT s.`id_zone` AS id_zone_state, c.`id_zone` FROM `'._DB_PREFIX_.'address` a LEFT JOIN `'._DB_PREFIX_.'country` c ON c.`id_country` = a.`id_country` LEFT JOIN `'._DB_PREFIX_.'state` s ON s.`id_state` = a.`id_state` WHERE a.`id_address` = '.(int)$id_address); self::$_idZones[$id_address] = (int)((int)$result['id_zone_state'] ? $result['id_zone_state'] : $result['id_zone']); return self::$_idZones[$id_address]; } /** * Check if country is active for a given address * * @param integer $id_address Address id for which we want to get country status * @return integer Country status */ public static function isCountryActiveById($id_address) { if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT c.`active` FROM `'._DB_PREFIX_.'address` a LEFT JOIN `'._DB_PREFIX_.'country` c ON c.`id_country` = a.`id_country` WHERE a.`id_address` = '.(int)$id_address)) return false; return ($result['active']); } /** * Check if address is used (at least one order placed) * * @return integer Order count for this address */ public function isUsed() { $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT COUNT(`id_order`) AS used FROM `'._DB_PREFIX_.'orders` WHERE `id_address_delivery` = '.(int)$this->id.' OR `id_address_invoice` = '.(int)$this->id); return isset($result['used']) ? $result['used'] : false; } public static function getCountryAndState($id_address) { if (isset(self::$_idCountries[$id_address])) return self::$_idCountries[$id_address]; if ($id_address) $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT `id_country`, `id_state`, `vat_number`, `postcode` FROM `'._DB_PREFIX_.'address` WHERE `id_address` = '.(int)$id_address); else $result = false; self::$_idCountries[$id_address] = $result; return $result; } /** * Specify if an address is already in base * * @param $id_address Address id * @return boolean */ public static function addressExists($id_address) { $key = 'address_exists_'.(int)$id_address; if (!Cache::isStored($key)) Cache::store( $key, Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT `id_address` FROM '._DB_PREFIX_.'address a WHERE a.`id_address` = '.(int)$id_address)); return Cache::retrieve($key); } public static function getFirstCustomerAddressId($id_customer, $active = true) { if (!$id_customer) return false; return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(' SELECT `id_address` FROM `'._DB_PREFIX_.'address` WHERE `id_customer` = '.(int)$id_customer.' AND `deleted` = 0'.($active ? ' AND `active` = 1' : '') ); } /** * Initiliaze an address corresponding to the specified id address or if empty to the * default shop configuration * * @param int $id_address * @return Address address */ public static function initialize($id_address = null) { // set the default address $address = new Address(); $address->id_country = (int)Context::getContext()->country->id; $address->id_state = 0; $address->postcode = 0; // if an id_address has been specified retrieve the address if ($id_address) { $address = new Address((int)$id_address); if (!Validate::isLoadedObject($address)) throw new PrestaShopException('Invalid address'); } return $address; } /** * Returns id_address for a given id_supplier * @since 1.5.0 * @param int $id_supplier * @return int $id_address */ public static function getAddressIdBySupplierId($id_supplier) { $query = new DbQuery(); $query->select('id_address'); $query->from('address'); $query->where('id_supplier = '.(int)$id_supplier); $query->where('deleted = 0'); $query->where('id_customer = 0'); $query->where('id_manufacturer = 0'); $query->where('id_warehouse = 0'); return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query); } } Bin leider nicht so ein PHP Experte. Sorry. Mein Ziel ist einfach, das keine Telefonummer abgefragt wird. Die Funktion abschalten innerhalb des Backend scheint wohl nicht zu funktionieren. Edited August 21, 2013 by Kingel (see edit history) Link to comment Share on other sites More sharing options...
A und O Posted August 21, 2013 Share Posted August 21, 2013 (edited) Bei mir funktioniert das mit dem Pflichtfeld. Ich frage mich, warum das oft so kompliziert ist und anscheinend bei jedem anders funktioniert. Edited August 21, 2013 by A und O (see edit history) Link to comment Share on other sites More sharing options...
wmd Posted August 23, 2013 Share Posted August 23, 2013 Das Problem ist glaube ich, dass die Versionen von Prestashop unterschiedlich aufgebaut sind und die Dateien zum Teil komplett verschieden zur letzten Version sind. Gibt es irgendwo eine Lösung für PS 1.5.x ? Ich suche auch verzweifelt nach einer Lösung zum Löschen der Telefonnummer. In allen Forenbeiträgen habe ich noch nichts brauchbares gefunden. Die Lösungen, sind immer für ältere Versionen gedacht. Bei der generierung der Rechnung (invoice.php) wird im Adressfeld die Telefonnummer angezeigt. Diese soll natürlich raus, aber bisher bin ich auf keinen grünen zweig gekommen. Viele Grüße Link to comment Share on other sites More sharing options...
valo Posted March 21, 2014 Share Posted March 21, 2014 (edited) Ich nutze Prestashop 1.5.6.1 Die Telefon als Pflichfeld habe ich über VOREINSTELLUNGEN --> KUNDEN abschalten können. jetzt brauchst man keine Telefon nr, um sich anmelden zu können. Die Felder werden aber weiter angezeigt. Die Möglichkeit Lokalisierung › Länder › bei den angegebenen Ländern auf Adressenanzeigedie Telefonnummern rauslöschendann speichern unter "verwenden Sie mein aktuell modifiziertes Design funktioniert bei mir nicht, weiss nicht warum. Also habe ich das über die .TPL abgeschaltet (Auskommentiert) Dazu gehe ich in THEMES/DEIN_THEMA (z.B. default) als Beispiel themes/default dort die ADDRESS.TPL öffnen suche nach (bei mir in der Zeile ca. 230) <p class="text"> <label for="phone">{l s='Home phone'}</label> <input type="text" id="phone" name="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{else}{if isset($address->phone)}{$address->phone|escape:'html'}{/if}{/if}" /> </p> <p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}text"> <label for="phone_mobile">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label> <input type="text" id="phone_mobile" name="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{else}{if isset($address->phone_mobile)}{$address->phone_mobile|escape:'html'}{/if}{/if}" /> </p> Kommentiere diese nun aus (besser als gleich zu löschen) nun sieht es so aus {* <p class="text"> <label for="phone">{l s='Home phone'}</label> <input type="text" id="phone" name="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{else}{if isset($address->phone)}{$address->phone|escape:'html'}{/if}{/if}" /> </p> <p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}text"> <label for="phone_mobile">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label> <input type="text" id="phone_mobile" name="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{else}{if isset($address->phone_mobile)}{$address->phone_mobile|escape:'html'}{/if}{/if}" /> </p> *} Ich hoffe ich konnte helfen Gruß Edited March 28, 2014 by valo (see edit history) Link to comment Share on other sites More sharing options...
krummepfote Posted December 4, 2015 Share Posted December 4, 2015 Hallo, bin absoluter Neuling. Würde gerne das "Alias" Pflichtfeld bei der Kunden-Anmeldung entfernen. Habe versucht, den von Eleazar oben für die alte Version beschriebenen Weg über classes/adress.php zu gehen, kann aber in Version 1.6.1.2 die entsprechenden Code-Zeilen nicht finden. Hat jemand einen Tipp für mich? Link to comment Share on other sites More sharing options...
soft4tec Posted December 16, 2015 Share Posted December 16, 2015 Die Überprüfung auf mindestens eine Telefonnummer (Mobil oder Festnetz) kann man mit der Datenbank-Anweisung abschalten: UPDATE configuration SET value = 0 WHERE name like 'PS_ONE_PHONE_AT_LEAST'; Cache danach löschen nicht vergessen! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now