/** * Renders Bank Transfer Payment Form * * If user will select Bank Transfer as a payment method, this function will render * payment instructions. * * It is executed in third step in [adverts_add] shortcode. * * @param array $data Payment data * @return array */ function adext_bank_transfer_render($data) { $price = $data["price"]; $payment_id = $data["payment_id"]; $atts = array("class" => "adverts-success"); $repl = array("{total}" => adverts_price($price), "{order_number}" => str_pad($payment_id, 6, "0", STR_PAD_LEFT)); $html = str_replace(array_keys($repl), array_values($repl), adverts_config("bank_transfer.custom_text")); $html = apply_filters("adext_bank_transfer_custom_text", $html, $data); return array("result" => 1, "html" => Adverts_Html::build("div", $atts, wpautop($html)), "execute" => null, "execute_id" => ""); }
/** * Display 'Pending' state on Classifieds list * * This functions shows Expired state in the wp-admin / Classifieds panel * * @see display_post_states filter * * @global WP_Post $post * @param array $states * @return array */ function adext_payments_display_pending_state($states) { global $post; $arg = get_query_var('post_status'); if ($arg == 'advert-pending') { return $states; } if ($post->post_status != 'advert-pending') { return $states; } $loop = get_posts(array('post_type' => 'adverts-payment', 'post_status' => 'pending', 'posts_per_page' => 1, 'meta_query' => array(array('key' => '_adverts_object_id', 'value' => $post->ID)))); if (isset($loop[0])) { $id = $loop[0]->ID; } else { $id = null; } $order_link = null; if ($id !== null) { $span = new Adverts_Html("span", array("class" => "dashicons dashicons-cart", "style" => "font-size: 18px")); $span->forceLongClosing(true); $order_link = new Adverts_Html("a", array("href" => admin_url("edit.php?post_type=advert&page=adext-payment-history&edit=" . $id), "title" => __("View order", "adverts")), $span->render()); } else { $span = new Adverts_Html("span", array("class" => "dashicons dashicons-info", "title" => __('Abandoned', 'adverts'), "style" => "font-size: 18px")); $span->forceLongClosing(true); $order_link = $span->render(); } return array(__('Pending Payment', 'adverts') . $order_link); return $states; }
/** * Display 'Pending' state on Classifieds list * * This functions shows Expired state in the wp-admin / Classifieds panel * * @see display_post_states filter * * @global WP_Post $post * @param array $states * @return array */ function adext_featured_post_state($states) { global $post; if ($post->post_type == 'advert' && $post->menu_order > 0) { $span = new Adverts_Html("span", array("class" => "dashicons dashicons-flag", "title" => __('Featured', 'adverts'), "style" => "font-size: 18px")); $span->forceLongClosing(true); $states[] = $span->render(); } return $states; }
/** * Form radio input(s) renderer * * Prints (to browser) HTML for <input type="radio" /> input * * $field params: * - name: string * - value: mixed (scalar or array) * - options: array (for example array(array("value"=>1, "text"=>"title")) ) * * @param array $field * @since 0.1 * @return void */ function adverts_field_radio($field) { $opts = ""; $i = 1; if (!isset($field["value"])) { $value = null; } else { $value = $field["value"]; } foreach ($field["options"] as $opt) { $checkbox = new Adverts_Html("input", array("type" => "radio", "name" => $field["name"], "id" => $field["name"] . '_' . $i, "value" => $opt["value"], "checked" => $opt["value"] == $value ? "checked" : null)); $label = new Adverts_Html("label", array("for" => $field["name"] . '_' . $i), $checkbox->render() . ' ' . $opt["text"]); $opts .= "<div>" . $label->render() . "</div>"; $i++; } echo Adverts_Html::build("div", array("class" => "adverts-form-input-group"), $opts); }
/** * Front-end display of widget. * * @see WP_Widget::widget() * * @param array $args Widget arguments. * @param array $instance Saved values from database. */ function widget($args, $instance) { global $term; $instance = wp_parse_args((array) $instance, $this->defaults); $home_url = null; $child_of = 0; $parent_id = 0; if ($instance["top_only"]) { $current = false; } else { $current = get_term_by('slug', $term, 'advert_category'); } if ($current !== false) { $child_of = $current->term_id; $parent_id = $current->parent; } include_once ADVERTS_PATH . '/includes/class-html.php'; if ($parent_id) { $parent = get_term_by('term_id', $parent_id, 'advert_category'); $link = get_term_link($parent); $home_url = Adverts_Html::build("a", array("href" => $link, 'title' => $parent->name), sprintf(__("Go Up (%s)", "adverts"), $parent->name)); } else { if ($current !== false) { $home_url = Adverts_Html::build("a", array("href" => site_url()), __("Go Up (Home)", "adverts")); } } extract($args, EXTR_SKIP); $terms = get_terms('advert_category', array('hide_empty' => (int) $instance['hide_empty'], 'parent' => $child_of)); wp_enqueue_style('adverts-frontend'); wp_enqueue_style('adverts-icons'); echo $before_widget; $title = empty($instance['title']) ? ' ' : apply_filters('widget_title', $instance['title']); if (!empty($title)) { echo $before_title . $title . $after_title; } // WIDGET CODE GOES HERE ?> <div class="wpjb adverts-widget adverts-widget-categories"> <div class="adverts-grid adverts-grid-compact"> <?php if ($home_url) { ?> <div class="adverts-grid-row"> <div class="adverts-col-100"> <span class="adverts-widget-grid-link"> <em><?php echo $home_url; ?> </em> <span class="adverts-icon-up-open" style="vertical-align: middle"></span> </span> </div> </div> <?php } ?> <?php if (!empty($terms)) { ?> <?php foreach ($terms as $term_item) { ?> <?php $icon = adverts_taxonomy_get("advert_category", $term_item->term_id, "advert_category_icon", "folder"); ?> <div class="adverts-grid-row"> <div class="adverts-col-100"> <span class="adverts-widget-grid-link <?php echo "adverts-icon-" . $icon; ?> "> <a href="<?php esc_attr_e(get_term_link($term_item)); ?> "><?php esc_html_e($term_item->name); ?> </a> <?php if ($instance['show_count']) { ?> (<?php echo adverts_category_post_count($term_item); ?> ) <?php } ?> </span> </div> </div> <?php } ?> <?php } else { ?> <div class="adverts-grid-row"> <div class="adverts-col-100"> <span><?php _e("No categories found.", "adverts"); ?> </span> </div> </div> <?php } ?> </div> </div> <?php echo $after_widget; }