/** * Edit contact subscriber * * Delete if uncheck and if new then * create new one. * * @since 1.0 * * @param array $groups * @param integer $user_id * * @return void */ function erp_crm_edit_contact_subscriber($groups, $user_id) { $data = \WeDevs\ERP\CRM\Models\ContactSubscriber::where('user_id', $user_id)->distinct()->get()->toArray(); $db = wp_list_pluck($data, 'group_id'); $existing_group_with_status = wp_list_pluck($data, 'status', 'group_id'); $existing_group = $new_group = $del_group = $unsubscribe_group = []; if (!empty($groups)) { foreach ($groups as $group) { if (in_array($group, $db)) { $existing_group[] = $group; if ($existing_group_with_status[$group] == 'unsubscribe') { $unsubscribe_group[] = $group; } } else { $new_group[] = $group; } } } $del_group = array_diff($db, $existing_group); if (!empty($unsubscribe_group)) { foreach ($unsubscribe_group as $unsubscribe_group_key => $unsubscribe_group_id) { \WeDevs\ERP\CRM\Models\ContactSubscriber::where('user_id', $user_id)->where('group_id', $unsubscribe_group_id)->update(['status' => 'subscribe']); } } if (!empty($new_group)) { foreach ($new_group as $new_group_key => $new_group_id) { $data = ['user_id' => $user_id, 'group_id' => $new_group_id, 'status' => 'subscribe', 'subscribe_at' => current_time('mysql'), 'unsubscribe_at' => current_time('mysql')]; erp_crm_create_new_contact_subscriber($data); } } if (!empty($del_group)) { foreach ($del_group as $del_group_key => $del_group_id) { \WeDevs\ERP\CRM\Models\ContactSubscriber::where('user_id', $user_id)->where('group_id', $del_group_id)->where('status', 'subscribe')->delete(); } } }
/** * Assing Contact as a subscriber * * @since 1.0 * * @return json */ public function assign_contact_as_subscriber() { $this->verify_nonce('wp-erp-crm-contact-subscriber'); $data = []; if (isset($_POST['group_id']) && isset($_POST['user_id'])) { foreach ($_POST['group_id'] as $key => $group_id) { $data = ['user_id' => $_POST['user_id'], 'group_id' => $group_id, 'status' => 'subscribe', 'subscribe_at' => current_time('mysql'), 'unsubscribe_at' => current_time('mysql')]; } erp_crm_create_new_contact_subscriber($data); } return $this->send_success(__('Succesfully subscriber for this user')); }