Exemplo n.º 1
0
/**
 * 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();
        }
    }
}
Exemplo n.º 2
0
 /**
  * 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'));
 }