Jump to content

Edit History

sococa

sococa

Bonjour à tous,

Je fais un module pour que les champs du formulaire d'adresse se retrouvent dans le formulaire d'inscription : 
Capturedcrandu2024-09-1015-18-05.png.5ca6283242b61c5a429c35770cc6612c.png

 

Comme vous le voyez c'est bien parti. Mon seul problème concerne le pays. Le choix me renvoie systématiquement 'Array'. Pourtant, je récupère bien l'id_country (vu avec l'inspecteur d'éléments).

    $additionalFields[] = (new FormField)
            ->setName('id_country')
            ->setType('select')
            ->setLabel($this->l('Pays'))
            ->setRequired(true)
            ->setAvailableValues(
                array_map(function($country) {
                    return [
                        'id' => $country['id_country'],  // Identifiant du pays
                        'label' => $country['name']      // Nom du pays
                    ];
                }, Country::getCountries($this->context->language->id, true))
            );
        

 

Voici ce que me renvoie le var_dump de Country::getCountries($this->context->language->id, true); :
 

array (size=2)
  3 => 
    array (size=15)
      'id_country' => int 3
      'id_lang' => int 1
      'name' => string 'Belgique' (length=8)
      'id_zone' => int 1
      'id_currency' => int 0
      'iso_code' => string 'BE' (length=2)
      'call_prefix' => int 32
      'active' => int 1
      'contains_states' => int 0
      'need_identification_number' => int 0
      'need_zip_code' => int 1
      'zip_code_format' => string 'NNNN' (length=4)
      'display_tax_label' => int 1
      'country' => string 'Belgique' (length=8)
      'zone' => string 'Europe' (length=6)
  8 => 
    array (size=15)
      'id_country' => int 8
      'id_lang' => int 1
      'name' => string 'France' (length=6)
      'id_zone' => int 1
      'id_currency' => int 0
      'iso_code' => string 'FR' (length=2)
      'call_prefix' => int 33
      'active' => int 1
      'contains_states' => int 0
      'need_identification_number' => int 0
      'need_zip_code' => int 1
      'zip_code_format' => string 'NNNNN' (length=5)
      'display_tax_label' => int 1
      'country' => string 'France' (length=6)
      'zone' => string 'Europe' (length=6)


Quelqu'un a une idée ? Je dois mal appeler la data du tableau mais je n'arrive pas à bien l'appeler .
Je vous partage aussi le module complet en zip.

Merci ! 
 

ps_customregistrationfields.zip

sococa

sococa

Bonjour à tous,

Je fais un module pour que les champs du formulaire d'adresse se retrouvent dans le formulaire d'inscription : 
Capturedcrandu2024-09-1015-18-05.png.5ca6283242b61c5a429c35770cc6612c.png

 

Comme vous le voyez c'est bien parti. Mon seul problème concerne le pays. Le choix me renvoie systématiquement 'Array'. Pourtant, je récupère bien l'id_country (vu avec l'inspecteur d'éléments).

    $additionalFields[] = (new FormField)
            ->setName('id_country')
            ->setType('select')
            ->setLabel($this->l('Pays'))
            ->setRequired(true)
            ->setAvailableValues(
                array_map(function($country) {
                    return [
                        'id' => $country['id_country'],  // Identifiant du pays
                        'label' => $country['name']      // Nom du pays
                    ];
                }, Country::getCountries($this->context->language->id, true))
            );
        

 

Voici ce que me renvoie le var_dump de Country::getCountries($this->context->language->id, true); :
 

array (size=2)
  3 => 
    array (size=15)
      'id_country' => int 3
      'id_lang' => int 1
      'name' => string 'Belgique' (length=8)
      'id_zone' => int 1
      'id_currency' => int 0
      'iso_code' => string 'BE' (length=2)
      'call_prefix' => int 32
      'active' => int 1
      'contains_states' => int 0
      'need_identification_number' => int 0
      'need_zip_code' => int 1
      'zip_code_format' => string 'NNNN' (length=4)
      'display_tax_label' => int 1
      'country' => string 'Belgique' (length=8)
      'zone' => string 'Europe' (length=6)
  8 => 
    array (size=15)
      'id_country' => int 8
      'id_lang' => int 1
      'name' => string 'France' (length=6)
      'id_zone' => int 1
      'id_currency' => int 0
      'iso_code' => string 'FR' (length=2)
      'call_prefix' => int 33
      'active' => int 1
      'contains_states' => int 0
      'need_identification_number' => int 0
      'need_zip_code' => int 1
      'zip_code_format' => string 'NNNNN' (length=5)
      'display_tax_label' => int 1
      'country' => string 'France' (length=6)
      'zone' => string 'Europe' (length=6)


Quelqu'un a une idée ? Je dois mal appeler la data du tableau mais je n'arrive pas à bien l'appeler .
Je vous partage aussi le module complet en zip.

Merci ! 
 

ps_customregistrationfields.zip

×
×
  • Create New...