Jump to content

[RÉSOLU] Impossible de récupérer le nom du pays pour formulaire d'adresse


Recommended Posts

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

Edited by sococa (see edit history)
Link to comment
Share on other sites

Bonjour.

        $selectedDefaultCountry = $this->context->country->id;
        $additionalFields['country'] = (new FormField)
        ->setName('country')
        ->setType('select') /* ->setType('countrySelect') */
        ->setLabel($this->l('Pays'))
        ->setRequired(true)
        ->setValue($selectedDefaultCountry);
        foreach ($countries as $country) {
            $additionalFields['country']->addAvailableValue(
                $country['id_country'],
                $country['name']
            );
        }

ps_customregistrationfields.zip

obrazek.thumb.png.c691cf369f36ea74f9b0f4242280004c.png

Edited by ps8modules.com (see edit history)
Link to comment
Share on other sites

  • sococa changed the title to [RÉSOLU] Impossible de récupérer le nom du pays pour formulaire d'adresse

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...