Пример #1
0
/**
 * 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" => "");
}
Пример #2
0
/**
 * 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;
}
Пример #3
0
/**
 * 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;
}
Пример #4
0
/**
 * 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);
}
Пример #5
0
    /**
     * 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;
    }