• Hello,

    first I would like to thank you for developing this plugin, it is going to be really helpful to me !
    However I do have some issues setting it up.

    My objective is to set a different recipient according to the chosen France departement or other countries. Thus, I have set two select field. One listing the countries and the French regions. The other one is only activated when a French region is selected.

    This is my configuration for the hidden fields :

    [simplehidden dynamic-mail-to-filter "wpcf7-dynamic-mail-to-example-filter"]
    [simplehidden dynamic-mail-to-fields "region","departements-PACA","departements-Occitanie","departements-Nouvelle-Aquitaine","departements-Auvergne-Rhone-Alpes","departements-Bourgogne-Franche-Comt","departements-Centre-Val-de-Loire","departements-Pays-de-Loire","departements-Bretagne","departements-Normandie","departements-ile-de-france","departements-grand-est","departements-hauts-de-france","departements-corse"]

    And this the code I have added to functions.php :

    class wpcf7_dynamic_mail_to_examples {
    		
    		// these are the email addresses to be used to for setting the recipient email address in cf7
    		private $email_address_1 = '[email protected]';
    		private $email_address_2 = '[email protected]';
    		private $email_address_3 = '[email protected]';
    		
    		public function __construct() {
    			add_filter('wpcf7-dynamic-mail-to-example-filter', array($this, 'filter'), 10, 2);		
    		} // end public function __construct
    
    		public function filter($recipient, $args=array()) {
    			//echo '(',$recipient,')';
    			//print_r($args); die;
    			if (isset($args['region'])) {
    				if ($args['region'] == 'Guadeloupe') {
    					$recipient = $this->email_address_1;
    				} elseif ($args['region'] == 'Guyane') {
    					$recipient = $this->email_address_1;
    				} elseif ($args['region'] == 'La Réunion') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['region'] == 'Martinique') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['region'] == 'Mayotte') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['region'] == 'Allemagne') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['region'] == 'Belgique') {
    					$recipient = $this->email_address_3;
    				}elseif ($args['region'] == 'Espagne') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['region'] == 'Luxembourg') {
    					$recipient = $this->email_address_3;
    				}elseif ($args['region'] == 'Italie') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['region'] == 'Suisse') {
    					$recipient = $this->email_address_1;
    				}
    			}
    			if (isset($args['departements-PACA'])) {
    				if ($args['departements-PACA'] == 'Alpes-de-Haute-Provence (04)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-PACA'] == 'Hautes-Alpes (05)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-PACA'] == 'Alpes-Maritimes (06)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-PACA'] == 'Bouches-du-Rh?ne (13)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-PACA'] == 'Var (83)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-PACA'] == 'Vaucluse (84)') {
    					$recipient = $this->email_address_1;
    				}
    			}
    			if (isset($args['departements-Occitanie'])) {
    				if ($args['departements-Occitanie'] == 'Ariège (09)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Occitanie'] == 'Aude (11)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Occitanie'] == 'Aveyron (12)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Occitanie'] == 'Gard (30)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Occitanie'] == 'Haute-Garonne (31)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Occitanie'] == 'Gers (32)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Occitanie'] == 'Hérault (34)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Occitanie'] == 'Lot (46)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Occitanie'] == 'Lozère (48)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Occitanie'] == 'Hautes-Pyrénées (65)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Occitanie'] == 'Pyrénées-Orientales (66)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Occitanie'] == 'Tarn (81)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Occitanie'] == 'Tarn-et-Garonne (82)') {
    					$recipient = $this->email_address_2;
    				}		
    			}
    			if (isset($args['departements-Nouvelle-Aquitaine'])) {
    				if ($args['departements-Nouvelle-Aquitaine'] == 'Charente (16)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Nouvelle-Aquitaine'] == 'Charente-Maritime (17)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Nouvelle-Aquitaine'] == 'Corrèze (19)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Nouvelle-Aquitaine'] == 'Creuse (23)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Nouvelle-Aquitaine'] == 'Dordogne (24)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Nouvelle-Aquitaine'] == 'Gironde (33)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Nouvelle-Aquitaine'] == 'Landes (40)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Nouvelle-Aquitaine'] == 'Lot-et-Garonne (47)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Nouvelle-Aquitaine'] == 'Pyrénées-Atlantiques (64)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Nouvelle-Aquitaine'] == 'Deux-Sèvres (79)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Nouvelle-Aquitaine'] == 'Vienne (86)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Nouvelle-Aquitaine'] == 'Haute-Vienne (87)') {
    					$recipient = $this->email_address_2;
    				}			
    			}
    			if (isset($args['departements-Auvergne-Rhone-Alpes'])) {
    				if ($args['departements-Auvergne-Rhone-Alpes'] == 'Ain (01)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Auvergne-Rhone-Alpes'] == 'Allier (03)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Auvergne-Rhone-Alpes'] == 'Ardèche (07)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Auvergne-Rhone-Alpes'] == 'Cantal (15)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Auvergne-Rhone-Alpes'] == 'Dr?me (26)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Auvergne-Rhone-Alpes'] == 'Isère (38)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Auvergne-Rhone-Alpes'] == 'Loire (42)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Auvergne-Rhone-Alpes'] == 'Haute-Loire (43)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Auvergne-Rhone-Alpes'] == 'Puy-de-D?me (63)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Auvergne-Rhone-Alpes'] == 'Rh?ne (69D)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Auvergne-Rhone-Alpes'] == 'Métropole de Lyon (69M)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Auvergne-Rhone-Alpes'] == 'Savoie (73)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Auvergne-Rhone-Alpes'] == 'Haute-Savoie (74)') {
    					$recipient = $this->email_address_1;
    				}
    			}
    			if (isset($args['departements-Bourgogne-Franche-Comt'])) {
    				if ($args['departements-Bourgogne-Franche-Comt'] == 'C?te-d\'Or (21)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Bourgogne-Franche-Comt'] == 'Doubs (25)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Bourgogne-Franche-Comt'] == 'Jura (39)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Bourgogne-Franche-Comt'] == 'Nièvre (58)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Bourgogne-Franche-Comt'] == 'Haute-Sa?ne (70)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Bourgogne-Franche-Comt'] == 'Sa?ne-et-Loire (71)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Bourgogne-Franche-Comt'] == 'Yonne (89)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Bourgogne-Franche-Comt'] == 'Territoire de Belfort (90)') {
    					$recipient = $this->email_address_1;
    				}
    			}
    			if (isset($args['departements-Centre-Val-de-Loire'])) {
    				if ($args['departements-Centre-Val-de-Loire'] == 'Cher (18)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Centre-Val-de-Loire'] == 'Eure-et-Loir (28)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Centre-Val-de-Loire'] == 'Indre (36)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Centre-Val-de-Loire'] == 'Indre-et-Loire (37)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Centre-Val-de-Loire'] == 'Loir-et-Cher (41)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Centre-Val-de-Loire'] == 'Loiret (45)') {
    					$recipient = $this->email_address_2;
    				}
    			}
    			if (isset($args['departements-Pays-de-Loire'])) {
    				if ($args['departements-Pays-de-Loire'] == 'Loire-Atlantique (44)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Pays-de-Loire'] == 'Maine-et-Loire (49)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Pays-de-Loire'] == 'Mayenne (53)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Pays-de-Loire'] == 'Sarthe (72)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Pays-de-Loire'] == 'Vendée (85)') {
    					$recipient = $this->email_address_2;
    				}
    			}
    			if (isset($args['departements-Bretagne'])) {
    				if ($args['departements-Bretagne'] == 'C?tes-d\'Armor (22)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Bretagne'] == 'Finistère (29)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Bretagne'] == 'Ille-et-Vilaine (35)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-Bretagne'] == 'Morbihan (56)') {
    					$recipient = $this->email_address_2;
    				}
    			}
    			if (isset($args['departements-Normandie'])) {
    				if ($args['departements-Normandie'] == 'Calvados (14)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Normandie'] == 'Eure (27)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Normandie'] == 'Manche (50)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Normandie'] == 'Orne (61)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-Normandie'] == 'Seine-Maritime (76)') {
    					$recipient = $this->email_address_1;
    				}
    			}
    			if (isset($args['departements-ile-de-france'])) {
    				if ($args['departements-ile-de-france'] == 'Paris (75)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-ile-de-france'] == 'Seine-et-Marne (77)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-ile-de-france'] == 'Yvelines (78)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-ile-de-france'] == 'Essonne (91)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-ile-de-france'] == 'Hauts-de-Seine (92)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-ile-de-france'] == 'Seine-Saint-Denis (93)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-ile-de-france'] == 'Val-de-Marne (94)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-ile-de-france'] == 'Val-d\'Oise (95)') {
    					$recipient = $this->email_address_1;
    				}
    			}
    			if (isset($args['departements-grand-est'])) {
    				if ($args['departements-grand-est'] == 'Ardennes (08)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-grand-est'] == 'Aube (10)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-grand-est'] == 'Marne (51)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-grand-est'] == 'Meurthe-et-Moselle (54)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-grand-est'] == 'Meuse (55)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-grand-est'] == 'Haute-Marne (52)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-grand-est'] == 'Moselle (57)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-grand-est'] == 'Bas-Rhin (67)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-grand-est'] == 'Haut-Rhin (68)') {
    					$recipient = $this->email_address_2;
    				}elseif ($args['departements-grand-est'] == 'Vosges (88)') {
    					$recipient = $this->email_address_2;
    				}
    			}
    			if (isset($args['departements-hauts-de-france'])) {
    				if ($args['departements-hauts-de-france'] == 'Aisne (02)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-hauts-de-france'] == 'Nord (59)') {
    					$recipient = $this->email_address_3;
    				}elseif ($args['departements-hauts-de-france'] == 'Oise (60)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-hauts-de-france'] == 'Pas-de-Calais (62)') {
    					$recipient = $this->email_address_3;
    				}elseif ($args['departements-hauts-de-france'] == 'Somme (80)') {
    					$recipient = $this->email_address_1;
    				}
    			}
    			if (isset($args['departements-corse'])) {
    				if ($args['departements-corse'] == 'Haute-Corse (2B)') {
    					$recipient = $this->email_address_1;
    				}elseif ($args['departements-corse'] == 'Corse-du-Sud (2A)') {
    					$recipient = $this->email_address_1;
    				}
    			}
    
    			return $recipient;
    		} // end public function filter

    Do you have an idea why it is not working ?

    I do have two questions :
    – what do I have to write in the mail “to” field ?
    – do i have to add wpcf7_dynamic_mail_to class to the functions.php file ?

    Thanks a lot for your help !

    Bye

Viewing 1 replies (of 1 total)
  • Plugin Author John Huebner

    (@hube2)

    Your hidden field with the name of the select fields should look like this

    
    [simplehidden dynamic-mail-to-fields "name-of-first-select-field,name-of-second-select-field"]
    
Viewing 1 replies (of 1 total)
  • The topic ‘Issue Setting Dynamic Recipient’ is closed to new replies.