Joomla.it Forum
Componenti per Joomla! => Gestione e-commerce => : salvoelle 28 May 2020, 02:12:51
-
Ciao a tutti,
sono nuovo della community, scrivo un argomento probabilmente trattato in passato, ma, purtroppo, non riesco a trovare abbastanza.
Ho la necessità, secondo le esigenze del mio negozio (Joomla e Virtuemart ultima versione), di far registrare gli utenti inserendo soltanto first_name, mail, password.
Per far ciò e non incappare nei classici messaggi di fields mancanti, il sistema mi dovrebbe copiare in automatico:
su "name" il valore inserito dall'utente nella stringa first_name
su "username" il valore inserito dall'utente nella stringa email.
Così facendo l'utente avrà cura di inserire soltanto pochissimi dati e registrarsi.
Ho cercato (penso) dappertutto, ma non riesco ad uscirne fuori. Mi sapreste consigliare come posso modificare il codice?
Grazie in anticipo per l'aiuto. Ciao
-
Ciao, in configurazione di Virtuemart --> Campi del cliente
puoi scegliere varie opzione sui campi come quale pubblicare e quale rendere richiesti.
-
Grazie Baronepiovasco,
ciò che proponi è corretto, ...chiaramente è stato fatto, il punto è che se non pubblichi i campi "name" e "username" ti restituirà un msg di errore. Proprio per questo vorrei trovare una soluzione che mi permetta di scrivere in modo automatico i dati mancanti, duplicandoli tra da quelli inseriti dall'utente.
Si tratta sicuramente di modificare il codice, del file html > com_users >registration > default.php ma non so proprio da dove cominciare
-
A meno che tu non sia un esperto php la vedo dura.
Potresti prendere in considerazione il reindirizzamento alla pagina di registrazione di joomla:
https://extensions.joomla.org/extension/vm-registration-redirect/ (https://extensions.joomla.org/extension/vm-registration-redirect/)
Se la tua esigenza è che l'e-mail coincida con il nome utente guarda se fa al caso tuo questa estensione:
https://extensions.joomla.org/extension/authentication-email/ (https://extensions.joomla.org/extension/authentication-email/)
-
Forse ho trovato la soluzione
-
...ditemi come vi sembra come soluzione:
Ho modificato qualche riga del seguente file php .../components/com_virtuemart/views/user/tmpl/edit_address_userfields.php
Per far sparire il campo "name" ho sostituito dalla riga 103 alla 112
CODICE ORIGINALE
<tr title="<?php echo strip_tags($descr) ?>">
<td class="key" >
<label class="<?php echo $field['name'] ?>" for="<?php echo $field['name'] ?>_field">
<?php echo $field['title'] . ($field['required'] ? ' <span class="asterisk">*</span>' : '') ?>
</label>
</td>
<td>
<?php echo $field['formcode'] ?>
</td>
</tr>
NUOVO CODICE
<tr title="<?php echo strip_tags($descr) ?>" <?php if ($field['name']=="name") {echo 'style=display:none;';};?> >
<td class="key" >
<label class="<?php echo $field['name'] ?>" for="<?php echo $field['name'] ?>_field">
<?php echo $field['title'] . ($field['required'] ? ' *' : '') ?>
</label>
</td>
<td>
<?php echo $field['formcode'] ?>
</td>
</tr>
Alla fine ho inserito (riga 127) uno JS che mi permette di far derivare il campo "name" dal campo che l'utente compila "first_name"
<script type="text/javascript">
var $j = jQuery.noConflict(); //evita conflitti con altre librerie
$j('#first_name_field').change(function () {
var reg_user = $j('#first_name_field').val(); //imposta il valore del first_name all'interno della variabile
$j('#name_field').val(reg_user); //assegna il valore della variabile al name
});
</script>
Per funzionare ho abilitato, dai campi utente di Virtuemart, il campo "name"
Altra cosa, rispetto alle mie esigenze iniziali, adesso ho inserito la username visibile e obbligatoria, in quanto mi facilita la gestione degli utenti in altre parti del sito
Come vi sembra la soluzione adottata?
-
il tuo messaggio non è leggibile, sistemalo per cortesia.