data; $options_profile = get_option('newsletter_profile'); $options_main = get_option('newsletter_main'); // Move to base zero if ($controls->is_action()) { if ($controls->is_action('reset')) { $controls->data = array(); } else { $controls->data['search_page'] = (int) $controls->data['search_page'] - 1; } $module->save_options($controls->data, 'search'); } else { $controls->data = $module->get_options('search'); if (empty($controls->data['search_page'])) $controls->data['search_page'] = 0; } if ($controls->is_action('resend')) { $user = $module->get_user($controls->button_data); NewsletterSubscription::instance()->send_message('confirmation', $user, true); $controls->messages = __('Activation email sent.', 'newsletter'); } if ($controls->is_action('resend_welcome')) { $user = $module->get_user($controls->button_data); NewsletterSubscription::instance()->send_message('confirmed', $user, true); $controls->messages = __('Welcome email sent.', 'newsletter'); } if ($controls->is_action('remove')) { $module->delete_user($controls->button_data); unset($controls->data['subscriber_id']); } if ($controls->is_action('delete_selected')) { $r = Newsletter::instance()->delete_user($_POST['ids']); $controls->messages .= $r . ' user(s) deleted'; } // We build the query condition $where = 'where 1=1'; $query_args = array(); $text = trim($controls->get_value('search_text')); if ($text) { $query_args[] = '%' . $text . '%'; $query_args[] = '%' . $text . '%'; $query_args[] = '%' . $text . '%'; $where .= " and (email like %s or name like %s or surname like %s)"; } if (!empty($controls->data['search_status'])) { if ($controls->data['search_status'] == 'T') { $where .= " and test=1"; } else { $query_args[] = $controls->data['search_status']; $where .= " and status=%s"; } } if (!empty($controls->data['search_list'])) { $where .= " and list_" . ((int) $controls->data['search_list']) . "=1"; } $filtered = $where != 'where 1=1'; // Total items, total pages $items_per_page = 20; if (!empty($query_args)) { $where = $wpdb->prepare($where, $query_args); } $count = Newsletter::instance()->store->get_count(NEWSLETTER_USERS_TABLE, $where); $last_page = floor($count / $items_per_page) - ($count % $items_per_page == 0 ? 1 : 0); if ($last_page < 0) $last_page = 0; if ($controls->is_action('last')) { $controls->data['search_page'] = $last_page; } if ($controls->is_action('first')) { $controls->data['search_page'] = 0; } if ($controls->is_action('next')) { $controls->data['search_page'] = (int) $controls->data['search_page'] + 1; } if ($controls->is_action('prev')) { $controls->data['search_page'] = (int) $controls->data['search_page'] - 1; } if ($controls->is_action('search')) { $controls->data['search_page'] = 0; } // Eventually fix the page if (!isset($controls->data['search_page']) || $controls->data['search_page'] < 0) $controls->data['search_page'] = 0; if ($controls->data['search_page'] > $last_page) $controls->data['search_page'] = $last_page; $query = "select * from " . NEWSLETTER_USERS_TABLE . ' ' . $where . " order by id desc"; $query .= " limit " . ($controls->data['search_page'] * $items_per_page) . "," . $items_per_page; $list = $wpdb->get_results($query); // Move to base 1 $controls->data['search_page'] ++; ?>