> For the complete documentation index, see [llms.txt](https://akyos.gitbook.io/book/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://akyos.gitbook.io/book/prestashop/modules/exemples/groupe-client.md).

# Groupe client

### :book: Description

Ce module permet à la modification / création de compte, de changer le groupe du client en fonction de si il s'est abonné ou non à la newsletter.

{% hint style="info" %}
Bien qu'il n'y ai qu'un seul champ de configuration, j'ai utilisé l'architecture modern pour celui-ci (j'avais du temps à perdre)
{% endhint %}

### :file\_folder: Module complet :&#x20;

{% file src="/files/KNbMOHiXqT1VxBqiaRur" %}

### Explications

A l'installation du module, je me suis gréffée sur les 2 hooks suivants :&#x20;

* **actionCustomerAccountAdd** (création de compte)
* **actionCustomerAccountUpdate** (modification du compte)

Dans la [documentation](https://devdocs.prestashop-project.org/9/modules/concepts/hooks/list-of-hooks/actioncustomeraccountadd/#informations), je vois que les hooks contiennent un paramètre avec l'objet customer.

Avec `$customer->newsletter`, je sais s'il a accepté la newsletter ou non, et je l'ajoute à un autre groupe de client si c'est le cas.

```php
   public function hookActionCustomerAccountAdd($params)
    {
        if (!isset($params['newCustomer']) || !($params['newCustomer'] instanceof Customer)) {
            return;
        }

        $customer = $params['newCustomer'];

        // If the customer has accepted the newsletter
        if ($customer->newsletter) {
            $this->addCustomerToMemberGroup($customer);
        }
    }
```
