alepul Posted May 28, 2012 Share Posted May 28, 2012 (edited) Ciao a tutti, Nella form contenuta in order-carrire.tpl ho aggiunto un nuovo campo di testo che in teoria dovrebbe "portare con se" un valore lungo tutto il percorso dell'ordine, sino alla sua chiusura e ovviamente scrivere il dato in un nuovo record( tipo text) contenuto nella tabella ps_orders. chiamato ws_ddt inoltre questo valore lo dovrò riportare in fattura. Premetto che sono già riuscito a legare la presenza o meno del campo testo in base al gruppo di utenza collegato.Mi spiegerò meglio più avanti con l'esempio pratico. Diciamo che il comportamento dovrebbe essere simile a quello del valore gift_message, ma senza la necessità di abilitare o meno la confezione regalo. Ovviamente voglio mantenere integro il codice inerente la scelta o meno della confezione regalo legata al suo messaggio. questo è quello che ho fatto. creo un corriere legato solo a un gruppo di utenza. ho forzato il codice del file "order-carrier.tpl" in questo modo: {if $carrier.id_carrier == 22} <p id="ws_ddt" class="textarea"> <label for="ws_ddt">{l s='DDT n'}</label> <textarea rows="1" cols="15" id="ws_ddt" name="ws_ddt" >{$cart->ws_ddt|escape:'htmlall':'UTF-8'}</textarea> </p> {else} {$carrier.delay|escape:'htmlall':'UTF-8'} {/if} dove 22 è il valore dell'id del correre che intendo utilizzare per un solo gruppo di utenza. ho modificato la classe Order.php in questo modo: public $ws_ddt; protected $fieldsValidate = array( 'id_address_delivery' => 'isUnsignedId', .... .... 'ws_ddt' => 'isMessage' ); poi ho aggiunto : public function getFields() { parent::validateFields(); $fields['id_address_delivery'] = intval($this->id_address_delivery); .... .... $fields['ws_ddt'] = pSQL($this->ws_ddt); return $fields; } Ho apportato anche le modifice nel file order.php contenuto nella root di prestashop intorno alla riga 217 /* Carrier step */ function processCarrier() { global $cart, $smarty, $isVirtualCart, $orderTotal; $errors = array(); $cart->recyclable = (isset($_POST['recyclable']) AND !empty($_POST['recyclable'])) ? 1 : 0; $cart->ws_ddt = ($_POST['ws_ddt']); nonostante tutto il valore della variabile "ws_ddt" si perde subito dopo il suo inserimento, già nella fase di scelta della forma di pagamento, mentre , pur simulandone il "comportamento", il valore inserito nel campo "gift_message" viene trascinato sino alla fine del processo dell'ordine e scritto nel database . qualcuno è in grado di aiutarmi?? Grazie per la disponibilità. Ale. p.s. ho dato già un occhiata al seguente topic http://www.prestasho...-order-carrier/ Edited May 28, 2012 by alepul (see edit history) 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