function wpv_get_filter_users_summary_txt_addon($view_settings) { $output = ''; $summary = ''; foreach (array_keys($view_settings) as $key) { if (strpos($key, 'usermeta-field-') === 0 && strpos($key, '_compare') === strlen($key) - strlen('_compare')) { $name = substr($key, 0, strlen($key) - strlen('_compare')); if ($summary != '') { if ($view_settings['usermeta_fields_relationship'] == 'OR') { $summary .= __(' OR', 'wpv-views'); } else { $summary .= __(' AND', 'wpv-views'); } } $summary .= wpv_get_usermeta_field_summary($name, $view_settings); } } if (!empty($summary)) { $output .= __(' and ', 'wpv-views') . $summary; } if (isset($view_settings['users_orderby'])) { $output .= __(' ordered by ', 'wpv-views') . $view_settings['users_orderby']; } $order = __('descending', 'wpv-views'); if (isset($view_settings['users_order']) && $view_settings['users_order'] == 'ASC') { $order = __('ascending', 'wpv-views'); } $output .= ', ' . $order; if (isset($view_settings['users_limit']) && intval($view_settings['users_limit']) != -1) { if (intval($view_settings['users_limit']) == 1) { $output .= __(', limit to 1 item', 'wpv-views'); } else { $output .= sprintf(__(', limit to %d items', 'wpv-views'), intval($view_settings['users_limit'])); } } if (isset($view_settings['users_limit']) && intval($view_settings['users_offset']) != 0) { if (intval($view_settings['users_limit']) == 1) { $output .= __(', skip first item', 'wpv-views'); } else { $output .= sprintf(__(', skip %d items', 'wpv-views'), intval($view_settings['users_offset'])); } } return $output; }
/** * wpv_get_filter_usermeta_field_summary_txt * * Returns the usermeta fields filter summary for a View * * @param $view_settings * * @returns (string) $summary * * @since unknown */ function wpv_get_filter_usermeta_field_summary_txt( $view_settings ) { $result = ''; if ( isset( $view_settings['query_type'] ) && $view_settings['query_type'][0] == 'users' ) { $count = 0; foreach ( array_keys( $view_settings ) as $key ) { if ( strpos( $key, 'usermeta-field-' ) === 0 && strpos( $key, '_compare' ) === strlen( $key ) - strlen( '_compare' ) ) { $name = substr( $key, 0, strlen( $key ) - strlen( '_compare' ) ); $count++; if ( $result != '' ) { if ( isset( $view_settings['usermeta_fields_relationship'] ) && $view_settings['usermeta_fields_relationship'] == 'OR' ) { $result .= __( ' OR', 'wpv-views' ); } else { $result .= __( ' AND', 'wpv-views' ); } } $result .= wpv_get_usermeta_field_summary( $name, $view_settings ); } } } return $result; }
static function wpv_filter_usermeta_field_update_callback() { if (!current_user_can('manage_options')) { $data = array('type' => 'capability', 'message' => __('You do not have permissions for that.', 'wpv-views')); wp_send_json_error($data); } if (!isset($_POST["wpnonce"]) || !wp_verify_nonce($_POST["wpnonce"], 'wpv_view_filter_usermeta_field_nonce')) { $data = array('type' => 'nonce', 'message' => __('Your security credentials have expired. Please reload the page to get new ones.', 'wpv-views')); wp_send_json_error($data); } if (!isset($_POST["id"]) || !is_numeric($_POST["id"]) || intval($_POST['id']) < 1) { $data = array('type' => 'id', 'message' => __('Wrong or missing ID.', 'wpv-views')); wp_send_json_error($data); } if (empty($_POST['filter_usermeta_fields'])) { $data = array('type' => 'data_missing', 'message' => __('Wrong or missing data.', 'wpv-views')); wp_send_json_error($data); } $change = false; $view_id = $_POST['id']; parse_str($_POST['filter_usermeta_fields'], $filter_usermeta_fields); $view_array = get_post_meta($view_id, '_wpv_settings', true); $summary = __('Select users with usermeta field: ', 'wpv-views'); $result = ''; foreach ($filter_usermeta_fields as $filter_key => $filter_data) { if (!isset($view_array[$filter_key]) || $filter_data != $view_array[$filter_key]) { if (is_array($filter_data)) { $filter_data = array_map('sanitize_text_field', $filter_data); $filter_data = array_map(array('WPV_Usermeta_Field_Filter', 'fix_lower_saving'), $filter_data); } else { $filter_data = sanitize_text_field($filter_data); $filter_data = WPV_Usermeta_Field_Filter::fix_lower_saving($filter_data); } $change = true; $view_array[$filter_key] = $filter_data; } } if (!isset($view_array['usermeta_fields_relationship'])) { $view_array['usermeta_fields_relationship'] = 'AND'; $change = true; } if ($change) { update_post_meta($view_id, '_wpv_settings', $view_array); do_action('wpv_action_wpv_save_item', $view_id); } foreach (array_keys($view_array) as $key) { if (strpos($key, 'usermeta-field-') === 0 && strpos($key, '_compare') === strlen($key) - strlen('_compare')) { $name = substr($key, 0, strlen($key) - strlen('_compare')); if ($result != '') { if ($view_array['usermeta_fields_relationship'] == 'OR') { $result .= __(' OR', 'wpv-views'); } else { $result .= __(' AND', 'wpv-views'); } } $result .= wpv_get_usermeta_field_summary($name, $view_array); } } $summary .= $result; $data = array('id' => $view_id, 'message' => __('Usermeta field filter saved', 'wpv-views'), 'summary' => $summary); wp_send_json_success($data); }