/** * TODO: maybe skip this verification on the payment_completed step. The messages look better there. */ private function verify_payment_was_succesfull() { $transaction = $this->controller->get_transaction(); if (!is_null($transaction) && $transaction->is_payment_completed()) { if (!$transaction->was_payment_successful()) { $message = __('The payment associated with the current transaction failed (see reasons below).', 'AWPCP'); throw new AWPCP_Exception($message, awpcp_flatten_array($transaction->errors)); } } }
/** * @since 3.4 */ function awpcp_display_listings($query, $context, $options) { $options = wp_parse_args($options, array('show_intro_message' => false, 'show_menu_items' => false, 'show_category_selector' => false, 'show_pagination' => false, 'before_content' => '', 'before_pagination' => '', 'before_list' => '', 'after_pagination' => '', 'after_content' => '')); if (has_action('awpcp_browse_ads_template_action') || has_filter('awpcp_browse_ads_template_filter')) { do_action('awpcp_browse_ads_template_action'); return apply_filters('awpcp_browse_ads_template_filter'); } $results_per_page = absint(awpcp_request_param('results', get_awpcp_option('adresultsperpage', 10))); $results_offset = absint(awpcp_request_param('offset', 0)); if (empty($query['limit']) && $results_per_page) { $query['limit'] = $results_per_page; } if (empty($query['offset']) && $query['limit']) { $query['offset'] = $results_offset; } $listings_collection = awpcp_listings_collection(); $listings = $listings_collection->find_enabled_listings_with_query($query); $listings_count = $listings_collection->count_enabled_listings_with_query($query); $before_content = apply_filters('awpcp-content-before-listings-page', $options['before_content'], $context); $before_pagination = array(); if ($options['show_category_selector']) { $before_pagination[15]['category-selector'] = awpcp_render_category_selector(array('required' => false)); } if (is_array($options['before_pagination'])) { $before_pagination = awpcp_array_merge_recursive($before_pagination, $options['before_pagination']); } else { $before_pagination[20]['user-content'] = $options['before_pagination']; } $before_pagination = apply_filters('awpcp-listings-before-content', $before_pagination, $context); ksort($before_pagination); $before_pagination = awpcp_flatten_array($before_pagination); $before_list = apply_filters('awpcp-display-ads-before-list', $options['before_list'], $context); if ($listings_count > 0) { $pagination_options = array('results' => $results_per_page, 'offset' => $results_offset, 'total' => $listings_count); $pagination = $options['show_pagination'] ? awpcp_pagination($pagination_options, awpcp_current_url()) : ''; $items = awpcp_render_listings_items($listings, $context); } else { $pagination = ''; $items = array(); } $after_pagination = array('user-content' => $options['after_pagination']); $after_pagination = apply_filters('awpcp-listings-after-content', $after_pagination, $context); $after_content = apply_filters('awpcp-content-after-listings-page', $options['after_content'], $context); ob_start(); include AWPCP_DIR . '/templates/frontend/listings.tpl.php'; $content = ob_get_contents(); ob_end_clean(); return $content; }
protected function search_form($form, $errors = array()) { global $hasregionsmodule, $hasextrafieldsmodule; $ui['module-extra-fields'] = $hasextrafieldsmodule; $ui['posted-by-field'] = get_awpcp_option('displaypostedbyfield'); $ui['price-field'] = get_awpcp_option('displaypricefield'); $ui['allow-user-to-search-in-multiple-regions'] = get_awpcp_option('allow-user-to-search-in-multiple-regions'); $messages = $this->messages; $url_params = wp_parse_args(parse_url(awpcp_current_url(), PHP_URL_QUERY)); $hidden = awpcp_flatten_array(array_merge($url_params, array('a' => 'dosearch'))); $page = $this; $template = AWPCP_DIR . '/frontend/templates/page-search-ads.tpl.php'; $params = compact('page', 'ui', 'form', 'hidden', 'messages', 'errors'); return $this->render($template, $params); }
private function no_payment_terms_defined() { return count(awpcp_flatten_array($this->payments->get_payment_terms())) === 0; }
/** * TODO: replace usage of this function with awpcp_pagination() */ function _create_pager($item_count, $offset, $results, $tpname) { $permastruc = get_option('permalink_structure'); if (isset($permastruc) && !empty($permastruc)) { $awpcpoffset_set = "?offset="; } else { if (is_admin()) { $awpcpoffset_set = "?offset="; } else { $awpcpoffset_set = "&offset="; } } mt_srand(create_awpcp_random_seed()); $radius = 5; global $accepted_results_per_page; $accepted_results_per_page = awpcp_pagination_options($results); // TODO: remove all fields that belongs to the Edit Ad form (including extra fields and others?) $params = array_merge($_GET, $_POST); unset($params['page_id'], $params['offset'], $params['results']); unset($params['PHPSESSID'], $params['aeaction'], $params['category_id']); unset($params['cat_ID'], $params['action'], $params['aeaction']); unset($params['category_name'], $params['category_parent_id']); unset($params['createeditadcategory'], $params['deletemultiplecategories']); unset($params['movedeleteads'], $params['moveadstocategory']); unset($params['category_to_delete'], $params['tpname']); unset($params['category_icon'], $params['sortby'], $params['adid']); unset($params['picid'], $params['adkey'], $params['editemail']); unset($params['awpcp_ads_to_action'], $params['post_type']); $cid = intval(awpcp_request_param('category_id')); $cid = empty($cid) ? get_query_var('cid') : $cid; if ($cid > 0) { $params['category_id'] = intval($cid); } $myrand = mt_rand(1000, 2000); $form = "<form id=\"pagerform{$myrand}\" name=\"pagerform{$myrand}\" action=\"\" method=\"get\">\n"; $form .= "<table>\n"; $form .= "<tr>\n"; $form .= "\t<td>\n"; $totalrows = $item_count; $total_pages = ceil($totalrows / $results); $dotsbefore = false; $dotsafter = false; $current_page = 0; $myreturn = ''; for ($i = 1; $i <= $total_pages; $i++) { if (($i - 1) * $results <= $offset && $offset < $i * $results) { $myreturn .= "{$i} "; $current_page = $i; } elseif (($i - 1 + $radius) * $results < $offset) { if (!$dotsbefore) { $myreturn .= "..."; $dotsbefore = true; } } elseif (($i - 1 - $radius) * $results > $offset) { if (!$dotsafter) { $myreturn .= "..."; $dotsafter = true; } } else { $href_params = array_merge($params, array('offset' => ($i - 1) * $results, 'results' => $results)); $href = add_query_arg(urlencode_deep($href_params), $tpname); $myreturn .= sprintf('<a href="%s">%d</a> ', esc_url($href), esc_attr($i)); } } if ($offset != 0) { //Subtract 2, page is 1-based index, results is 0-based, must compensate for 2 pages here if (($current_page - 2) * $results < $results) { $href_params = array_merge($params, array('offset' => 0, 'results' => $results)); $href = add_query_arg(urlencode_deep($href_params), $tpname); } else { $href_params = array_merge($params, array('offset' => ($current_page - 2) * $results, 'results' => $results)); $href = add_query_arg(urlencode_deep($href_params), $tpname); } $prev = sprintf('<a href="%s">«</a> ', esc_url($href)); } else { $prev = ''; } if ($offset != ($total_pages - 1) * $results) { $href_params = array_merge($params, array('offset' => $current_page * $results, 'results' => $results)); $href = add_query_arg(urlencode_deep($href_params), $tpname); $next = sprintf('<a href="%s">»</a> ', esc_url($href)); } else { $next = ''; } if (isset($_REQUEST['page_id']) && !empty($_REQUEST['page_id'])) { $form .= "\t\t<input type=\"hidden\" name=\"page_id\" value='" . esc_attr($_REQUEST['page_id']) . "' />\n"; } $form = $form . $prev . $myreturn . $next; $form .= "\t</td>\n"; if (count($accepted_results_per_page) > 1) { $form .= "\t<td>\n"; $form .= "\t\t<input type=\"hidden\" name=\"offset\" value=\"{$offset}\" />\n"; $flat_params = awpcp_flatten_array($params); while (list($k, $v) = each($flat_params)) { if (is_array($v)) { $v = count($v) > 0 ? reset($v) : ''; } $form .= "\t\t<input type=\"hidden\" name=\"" . esc_attr($k) . "\" value=\"" . esc_attr($v) . "\" />\n"; } $form .= "\t\t<select name=\"results\" onchange=\"document.pagerform{$myrand}.submit()\">\n"; $form .= vector2options($accepted_results_per_page, $results); $form .= "\t\t</select>\n"; $form .= "\t</td>\n"; } $form .= "</tr>\n"; $form .= "</table>\n"; $form .= "</form>\n"; return $form; }
function awpcp_html_hidden_fields($fields) { $output = array(); foreach (array_filter(awpcp_flatten_array($fields)) as $name => $value) { if (is_object($value)) { continue; } $output[] = '<input type="hidden" name="' . esc_attr($name) . '" value="' . esc_attr($value) . '" />'; } return implode("\n", $output); }