diff --git a/lang/wpucontactforms_zohocrm-fr_FR.l10n.php b/lang/wpucontactforms_zohocrm-fr_FR.l10n.php
index eddba1e..ca9420e 100644
--- a/lang/wpucontactforms_zohocrm-fr_FR.l10n.php
+++ b/lang/wpucontactforms_zohocrm-fr_FR.l10n.php
@@ -1,2 +1,2 @@
NULL,'plural-forms'=>NULL,'messages'=>['Help'=>'Aide','Settings'=>'Réglages','No'=>'Non','Yes'=>'Oui','Check all'=>'Tout cocher','Uncheck all'=>'Tout décocher','Settings saved.'=>'Paramètres sauvegardés.','Upload New Media'=>'Envoi d\'un nouveau média','Language'=>'Langue','Save'=>'Sauvegarder','Submit'=>'Envoyer','Previous'=>'Précédent','Next'=>'Suivant','The field “%s” is required'=>'Le champ « %s » est obligatoire','The field “%s” should be an email'=>'Le champ « %s » doit être un email','The plugin %s depends on the following plugins. Please install and activate them:'=>'Le plugin %s dépend des plugins suivants. Veuillez les installer et les activer :','The plugin %s depends on the %s plugin. Please install and activate it.'=>'Le plugin %s dépend du plugin %s. Merci de l’installer et de l’activer.','Connect WPU Contact Forms to ZohoCRM'=>'Connecter WPU Contact Forms à ZohoCRM','App Settings'=>'Paramètre de l\'App','Plugin Settings'=>'Paramètres du plugin','Token Settings'=>'Paramètres du token','Client ID'=>'Client ID','Client Secret'=>'Client Secret','Update Records'=>'Mettre à jour les enregistrements','Access token'=>'Access token','Token expiration'=>'Expiration du token','Last update'=>'Dernière mise à jour','Refresh token'=>'Refresh token','Accounts server'=>'Accounts server','API Domain'=>'API Domain','Token was successfully updated.'=>'Le token a été mis à jour avec succès.','Refresh your access token'=>'Actualiser votre access token','Last update: %s ago.'=>'Dernière mise à jour : il y a %s.','No application installed'=>'Aucune application installée','Please create an new Server-based application here and specify the following redirect_uri :
%s'=>'Veuillez créer une nouvelle application « server-based » ici en spécifiant la redirect_uri suivante :
%s','Get the client ID and client Secret and paste it below.'=>'Obtenez le client ID et le client Secret et collez-les ci-dessous.','Connect to your account'=>'Connectez-vous à votre compte','Connection seems to work'=>'La connexion semble fonctionner','Test the API'=>'Tester l’API','Create or update a test lead.'=>'Créez ou mettez à jour un prospect de test.','Fields'=>'Champs','You can map your contact form fields to ZohoCRM fields.'=>'Vous pouvez mapper les champs de votre formulaire de contact aux champs ZohoCRM.','Map fields'=>'Mapper les champs','Update fields'=>'Actualiser les champs','Fields list'=>'Liste des champs','API Test : View the lead'=>'Test API : Voir le lead','Fields have been updated'=>'Les champs ont été mis à jour','Save Changes'=>'Sauvegarder','An error occured while refreshing the token.'=>'Une erreur s’est produite lors de l’actualisation du token.','The response did not contain a token.'=>'La réponse ne contenait pas de token.','There was an error'=>'Il y a eu une erreur'],'language'=>'fr_FR','x-generator'=>'Poedit 3.5'];
\ No newline at end of file
+return ['domain'=>NULL,'plural-forms'=>NULL,'messages'=>['Help'=>'Aide','Settings'=>'Réglages','No'=>'Non','Yes'=>'Oui','Check all'=>'Tout cocher','Uncheck all'=>'Tout décocher','Settings saved.'=>'Paramètres sauvegardés.','Upload New Media'=>'Envoi d\'un nouveau média','Language'=>'Langue','Save'=>'Sauvegarder','Submit'=>'Envoyer','Previous'=>'Précédent','Next'=>'Suivant','The field “%s” is required'=>'Le champ « %s » est obligatoire','The field “%s” should be an email'=>'Le champ « %s » doit être un email','The plugin %s depends on the following plugins. Please install and activate them:'=>'Le plugin %s dépend des plugins suivants. Veuillez les installer et les activer :','The plugin %s depends on the %s plugin. Please install and activate it.'=>'Le plugin %s dépend du plugin %s. Merci de l’installer et de l’activer.','Connect WPU Contact Forms to ZohoCRM'=>'Connecter WPU Contact Forms à ZohoCRM','App Settings'=>'Paramètre de l\'App','Plugin Settings'=>'Paramètres du plugin','Token Settings'=>'Paramètres du token','Client ID'=>'Client ID','Client Secret'=>'Client Secret','Update Records'=>'Mettre à jour les enregistrements','Access token'=>'Access token','Token expiration'=>'Expiration du token','Last update'=>'Dernière mise à jour','Refresh token'=>'Refresh token','Accounts server'=>'Accounts server','API Domain'=>'API Domain','Owners'=>'Propriétaires','Randomly assign to %s'=>'Attribuer au hasard à %s','Token was successfully updated.'=>'Le token a été mis à jour avec succès.','Refresh your access token'=>'Actualiser votre access token','Last update: %s ago.'=>'Dernière mise à jour : il y a %s.','No application installed'=>'Aucune application installée','Please create an new Server-based application here and specify the following redirect_uri :
%s'=>'Veuillez créer une nouvelle application « server-based » ici en spécifiant la redirect_uri suivante :
%s','Get the client ID and client Secret and paste it below.'=>'Obtenez le client ID et le client Secret et collez-les ci-dessous.','Connect to your account'=>'Connectez-vous à votre compte','Connection seems to work'=>'La connexion semble fonctionner','Test the API'=>'Tester l’API','Create or update a test lead.'=>'Créez ou mettez à jour un prospect de test.','Users'=>'Utilisateurs','You can get a list of active users in Zoho.'=>'Vous pouvez obtenir une liste d’utilisateurs actifs dans Zoho.','Get users'=>'Obtenir des utilisateurs','Update users'=>'Actualiser les utilisateurs/utilisatrices','Users list'=>'Liste des Utilisateurs','Fields'=>'Champs','You can map your contact form fields to ZohoCRM fields.'=>'Vous pouvez mapper les champs de votre formulaire de contact aux champs ZohoCRM.','Map fields'=>'Mapper les champs','Update fields'=>'Actualiser les champs','Fields list'=>'Liste des champs','API Test : View the lead'=>'Test API : Voir le lead','Fields have been updated'=>'Les champs ont été mis à jour','Users have been updated'=>'Les utilisateurs ont été mis à jour','Save Changes'=>'Sauvegarder','An error occured while refreshing the token.'=>'Une erreur s’est produite lors de l’actualisation du token.','The response did not contain a token.'=>'La réponse ne contenait pas de token.','There was an error'=>'Il y a eu une erreur'],'language'=>'fr_FR','x-generator'=>'Poedit 3.5'];
\ No newline at end of file
diff --git a/lang/wpucontactforms_zohocrm-fr_FR.mo b/lang/wpucontactforms_zohocrm-fr_FR.mo
index feae8e2..9961e61 100644
Binary files a/lang/wpucontactforms_zohocrm-fr_FR.mo and b/lang/wpucontactforms_zohocrm-fr_FR.mo differ
diff --git a/lang/wpucontactforms_zohocrm-fr_FR.po b/lang/wpucontactforms_zohocrm-fr_FR.po
index 02e3f58..75a73e6 100644
--- a/lang/wpucontactforms_zohocrm-fr_FR.po
+++ b/lang/wpucontactforms_zohocrm-fr_FR.po
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: WPU Contact Forms ZohoCRM\n"
-"POT-Creation-Date: 2024-09-10 17:30+0200\n"
+"POT-Creation-Date: 2024-09-16 15:26+0200\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -155,24 +155,33 @@ msgstr "Accounts server"
msgid "API Domain"
msgstr "API Domain"
-#: .././wpucontactforms_zohocrm.php:226 .././wpucontactforms_zohocrm.php:507
+#: .././wpucontactforms_zohocrm.php:164
+msgid "Owners"
+msgstr "Propriétaires"
+
+#: .././wpucontactforms_zohocrm.php:170
+#, php-format
+msgid "Randomly assign to %s"
+msgstr "Attribuer au hasard à %s"
+
+#: .././wpucontactforms_zohocrm.php:242 .././wpucontactforms_zohocrm.php:622
msgid "Token was successfully updated."
msgstr "Le token a été mis à jour avec succès."
-#: .././wpucontactforms_zohocrm.php:231
+#: .././wpucontactforms_zohocrm.php:247
msgid "Refresh your access token"
msgstr "Actualiser votre access token"
-#: .././wpucontactforms_zohocrm.php:233
+#: .././wpucontactforms_zohocrm.php:249
#, php-format
msgid "Last update: %s ago."
msgstr "Dernière mise à jour : il y a %s."
-#: .././wpucontactforms_zohocrm.php:237
+#: .././wpucontactforms_zohocrm.php:253
msgid "No application installed"
msgstr "Aucune application installée"
-#: .././wpucontactforms_zohocrm.php:238
+#: .././wpucontactforms_zohocrm.php:254
#, php-format
msgid ""
"Please create an new Server-based "
@@ -183,70 +192,94 @@ msgstr ""
"« server-based » ici en spécifiant la redirect_uri suivante :
%s"
-#: .././wpucontactforms_zohocrm.php:239
+#: .././wpucontactforms_zohocrm.php:255
msgid "Get the client ID and client Secret and paste it below."
msgstr "Obtenez le client ID et le client Secret et collez-les ci-dessous."
-#: .././wpucontactforms_zohocrm.php:243
+#: .././wpucontactforms_zohocrm.php:259
msgid "Connect to your account"
msgstr "Connectez-vous à votre compte"
-#: .././wpucontactforms_zohocrm.php:245
+#: .././wpucontactforms_zohocrm.php:261
msgid "Connection seems to work"
msgstr "La connexion semble fonctionner"
-#: .././wpucontactforms_zohocrm.php:259 .././wpucontactforms_zohocrm.php:261
+#: .././wpucontactforms_zohocrm.php:277 .././wpucontactforms_zohocrm.php:279
msgid "Test the API"
msgstr "Tester l’API"
-#: .././wpucontactforms_zohocrm.php:260
+#: .././wpucontactforms_zohocrm.php:278
msgid "Create or update a test lead."
msgstr "Créez ou mettez à jour un prospect de test."
-#: .././wpucontactforms_zohocrm.php:265
+#: .././wpucontactforms_zohocrm.php:284
+msgid "Users"
+msgstr "Utilisateurs"
+
+#: .././wpucontactforms_zohocrm.php:285
+msgid "You can get a list of active users in Zoho."
+msgstr "Vous pouvez obtenir une liste d’utilisateurs actifs dans Zoho."
+
+#: .././wpucontactforms_zohocrm.php:287
+msgid "Get users"
+msgstr "Obtenir des utilisateurs"
+
+#: .././wpucontactforms_zohocrm.php:289
+msgid "Update users"
+msgstr "Actualiser les utilisateurs/utilisatrices"
+
+#: .././wpucontactforms_zohocrm.php:291
+msgid "Users list"
+msgstr "Liste des Utilisateurs"
+
+#: .././wpucontactforms_zohocrm.php:303
msgid "Fields"
msgstr "Champs"
-#: .././wpucontactforms_zohocrm.php:266
+#: .././wpucontactforms_zohocrm.php:304
msgid "You can map your contact form fields to ZohoCRM fields."
msgstr ""
"Vous pouvez mapper les champs de votre formulaire de contact aux champs "
"ZohoCRM."
-#: .././wpucontactforms_zohocrm.php:269
+#: .././wpucontactforms_zohocrm.php:307
msgid "Map fields"
msgstr "Mapper les champs"
-#: .././wpucontactforms_zohocrm.php:271
+#: .././wpucontactforms_zohocrm.php:309
msgid "Update fields"
msgstr "Actualiser les champs"
-#: .././wpucontactforms_zohocrm.php:283
+#: .././wpucontactforms_zohocrm.php:321
msgid "Fields list"
msgstr "Liste des champs"
-#: .././wpucontactforms_zohocrm.php:316
+#: .././wpucontactforms_zohocrm.php:354
#, php-format
msgid "API Test : View the lead"
msgstr "Test API : Voir le lead"
-#: .././wpucontactforms_zohocrm.php:325
+#: .././wpucontactforms_zohocrm.php:363
msgid "Fields have been updated"
msgstr "Les champs ont été mis à jour"
-#: .././wpucontactforms_zohocrm.php:337
+#: .././wpucontactforms_zohocrm.php:381
+msgid "Users have been updated"
+msgstr "Les utilisateurs ont été mis à jour"
+
+#: .././wpucontactforms_zohocrm.php:393
msgid "Save Changes"
msgstr "Sauvegarder"
-#: .././wpucontactforms_zohocrm.php:392
+#: .././wpucontactforms_zohocrm.php:502
msgid "An error occured while refreshing the token."
msgstr "Une erreur s’est produite lors de l’actualisation du token."
-#: .././wpucontactforms_zohocrm.php:397
+#: .././wpucontactforms_zohocrm.php:507
msgid "The response did not contain a token."
msgstr "La réponse ne contenait pas de token."
-#: .././wpucontactforms_zohocrm.php:510
+#: .././wpucontactforms_zohocrm.php:625
msgid "There was an error"
msgstr "Il y a eu une erreur"
diff --git a/uninstall.php b/uninstall.php
index e63162c..25ec724 100644
--- a/uninstall.php
+++ b/uninstall.php
@@ -8,6 +8,8 @@
$options = array(
'wpucontactforms_zohocrm_options',
'wpucontactforms_zohocrm_fields',
+ 'wpucontactforms_zohocrm_users',
+ 'wpucontactforms_zohocrm_last_owner',
'wpucontactforms_zohocrm__cron_hook_croninterval',
'wpucontactforms_zohocrm__cron_hook_lastexec'
);
diff --git a/wpucontactforms_zohocrm.php b/wpucontactforms_zohocrm.php
index e8284c8..f142c34 100644
--- a/wpucontactforms_zohocrm.php
+++ b/wpucontactforms_zohocrm.php
@@ -5,7 +5,7 @@
Plugin URI: https://github.com/WordPressUtilities/wpucontactforms_zohocrm
Update URI: https://github.com/WordPressUtilities/wpucontactforms_zohocrm
Description: Connect WPU Contact Forms to ZohoCRM
-Version: 0.7.2
+Version: 0.8.0
Author: darklg
Author URI: https://darklg.me/
Text Domain: wpucontactforms_zohocrm
@@ -27,7 +27,7 @@ class WPUContactFormsZohoCRM {
public $basecron;
public $settings_update;
private $user_level = 'manage_options';
- private $plugin_version = '0.7.2';
+ private $plugin_version = '0.8.0';
private $plugin_settings = array(
'id' => 'wpucontactforms_zohocrm',
'name' => 'WPU Contact Forms - ZohoCRM'
@@ -158,6 +158,22 @@ public function plugins_loaded() {
'section' => 'token'
)
);
+ $users = $this->get_owners();
+ if ($users) {
+ $this->settings_details['sections']['owners'] = array(
+ 'name' => __('Owners', 'wpucontactforms_zohocrm'),
+ 'wpubasesettings_checkall' => true
+ );
+ foreach ($users as $user_id => $user) {
+ $this->settings['owner_' . $user_id] = array(
+ 'label' => $user,
+ 'label_check' => sprintf(__('Randomly assign to %s', 'wpucontactforms_zohocrm'), $user),
+ 'section' => 'owners',
+ 'type' => 'checkbox'
+ );
+ }
+ }
+
require_once __DIR__ . '/inc/WPUBaseSettings/WPUBaseSettings.php';
$this->settings_obj = new \wpucontactforms_zohocrm\WPUBaseSettings($this->settings_details, $this->settings);
require_once __DIR__ . '/inc/WPUBaseCron/WPUBaseCron.php';
@@ -250,6 +266,8 @@ public function page_content__main() {
if ($token_validity == 'valid') {
$this->page_content__main__display_api_test();
echo '
' . __('You can get a list of active users in Zoho.', 'wpucontactforms_zohocrm') . '
'; + $users = $this->get_owners(); + $label_button = __('Get users', 'wpucontactforms_zohocrm'); + if ($users) { + $label_button = __('Update users', 'wpucontactforms_zohocrm'); + echo '' . __('You can map your contact form fields to ZohoCRM fields.', 'wpucontactforms_zohocrm') . '
'; @@ -325,6 +363,24 @@ public function page_action__main() { $this->set_message('map_fields', __('Fields have been updated', 'wpucontactforms_zohocrm'), 'updated'); } } + + if (isset($_POST['update_users'])) { + $req_search_users = $this->build_request('/users', 'GET'); + if (!is_wp_error($req_search_users)) { + $users_details = json_decode(wp_remote_retrieve_body($req_search_users), 1); + $main_user_list = array(); + if ($users_details && isset($users_details['users'])) { + foreach ($users_details['users'] as $user) { + if ($user['status'] != 'active') { + continue; + } + $main_user_list["user-" . $user['id']] = $user['full_name']; + } + } + update_option('wpucontactforms_zohocrm_users', $main_user_list, false); + $this->set_message('update_users', __('Users have been updated', 'wpucontactforms_zohocrm'), 'updated'); + } + } } /* Settings @@ -338,6 +394,60 @@ public function page_content__settings() { echo ''; } + /* ---------------------------------------------------------- + Owners + ---------------------------------------------------------- */ + + /* Retrieve a list of all owners + -------------------------- */ + + public function get_owners() { + $users = get_option('wpucontactforms_zohocrm_users'); + if (!$users) { + return array(); + } + return $users; + } + + /* Get a random owner + -------------------------- */ + + public function get_random_owner() { + $default_users = $this->get_owners(); + if (!$default_users || !is_array($default_users)) { + return false; + } + + /* Get active users */ + $active_users = array(); + $settings = $this->settings_obj->get_settings(); + + foreach ($default_users as $user_id => $user) { + if (isset($settings['owner_' . $user_id]) && $settings['owner_' . $user_id] == '1') { + $active_users[$user_id] = $user; + } + } + + /* Use default user */ + if (empty($active_users)) { + return false; + } + + /* Return only selected user */ + if (count($active_users) < 2) { + return key($active_users); + } + /* Remove last owner from choice */ + $last_owner = get_option('wpucontactforms_zohocrm_last_owner'); + if ($last_owner && $active_users[$last_owner]) { + unset($active_users[$last_owner]); + } + /* Get a random owner */ + $user_id = array_rand($active_users); + update_option('wpucontactforms_zohocrm_last_owner', $user_id, false); + return $user_id; + } + /* ---------------------------------------------------------- Contact ---------------------------------------------------------- */ @@ -416,6 +526,11 @@ public function create_or_update_lead($data = array(), $return_data = false) { $this->refresh_token(); } + $owner_id = $this->get_random_owner(); + if ($owner_id) { + $data['Owner'] = (int) str_replace('user-', '', $owner_id); + } + $settings = $this->settings_obj->get_settings(); $access_token = $this->settings_obj->get_setting('access_token'); $api_domain = $this->settings_obj->get_setting('api_domain');