示例#1
0
    /**
     * 	list of vendors 
     * 
     * 	@param $atts shortcode attributs 
     */
    public function wcmp_show_vendorslist($atts)
    {
        global $WCMp;
        $vendors_available = false;
        $get_all_vendors = array();
        $select_html = '';
        extract(shortcode_atts(array('orderby' => 'registered', 'order' => 'ASC'), $atts));
        $vendors = '';
        $vendor_sort_type = '';
        if (isset($_GET['vendor_sort_type'])) {
            if ($_GET['vendor_sort_type'] == 'category') {
                $vendors_ids = array();
                $vendor_sort_type = $_GET['vendor_sort_type'];
                $selected_category = $_GET['vendor_sort_category'];
                $args = array('post_type' => 'product', 'tax_query' => array(array('taxonomy' => 'product_cat', 'field' => 'term_id', 'terms' => $selected_category)));
                $wp_obj = new WP_Query($args);
                $sorted_products = $wp_obj->posts;
                if (isset($sorted_products) && !empty($sorted_products)) {
                    foreach ($sorted_products as $sorted_product) {
                        $vendor_obj = get_wcmp_product_vendors($sorted_product->ID);
                        if (isset($vendor_obj) && !empty($vendor_obj)) {
                            if (!in_array($vendor_obj->id, $vendors_ids)) {
                                $vendors_ids[] = $vendor_obj->id;
                                $get_all_vendors[] = new WCMp_Vendor($vendor_obj->id);
                                $vendors_available = true;
                            }
                        }
                    }
                }
            } else {
                $vendor_sort_type = $_GET['vendor_sort_type'];
                $orderby = $vendor_sort_type;
                $order = 'ASC';
            }
        }
        if (!$vendors_available) {
            $get_all_vendors = get_wcmp_vendors(array('orderby' => $orderby, 'order' => $order));
        }
        $vendors .= '<div class="vendor_list">';
        $vendors .= '<form name="vendor_sort" method="get" ><div class="vendor_sort">';
        $vendors .= '<select class="select short" id="vendor_sort_type" name="vendor_sort_type">';
        if ($vendor_sort_type) {
            if ($vendor_sort_type == 'registered') {
                $option = '<option selected value="registered">' . __("By date", $WCMp->text_domain) . '</option><option value="name">' . __("By Alphabetically", $WCMp->text_domain) . '</option><option value="category">' . __("By Category", $WCMp->text_domain) . '</option>';
            } else {
                if ($vendor_sort_type == 'name') {
                    $option = '<option value="registered">' . __("By date", $WCMp->text_domain) . '</option><option selected value="name">' . __("By Alphabetically", $WCMp->text_domain) . '</option><option value="category">' . __("By Category", $WCMp->text_domain) . '</option>';
                } else {
                    if ($vendor_sort_type == 'category') {
                        $option = '<option value="registered">' . __("By date", $WCMp->text_domain) . '</option><option value="name">' . __("By Alphabetically", $WCMp->text_domain) . '</option><option selected value="category">' . __("By Category", $WCMp->text_domain) . '</option>';
                    } else {
                        $option = '<option value="registered">' . __("By date", $WCMp->text_domain) . '</option><option value="name">' . __("By Alphabetically", $WCMp->text_domain) . '</option><option value="category">' . __("By Category", $WCMp->text_domain) . '</option>';
                    }
                }
            }
        } else {
            if ($orderby == 'registered') {
                $option = '<option selected value="registered">' . __("By date", $WCMp->text_domain) . '</option><option value="name">' . __("By Alphabetically", $WCMp->text_domain) . '</option><option value="category">' . __("By Category", $WCMp->text_domain) . '</option>';
            } else {
                if ($orderby == 'name') {
                    $option = '<option  value="registered">' . __("By date", $WCMp->text_domain) . '</option><option selected value="name">' . __("By Alphabetically", $WCMp->text_domain) . '</option><option value="category">' . __("By Category", $WCMp->text_domain) . '</option>';
                } else {
                    if ($vendor_sort_type == 'category') {
                        $option = '<option value="registered">' . __("By date", $WCMp->text_domain) . '</option><option value="name">' . __("By Alphabetically", $WCMp->text_domain) . '</option><option value="category">' . __("By Category", $WCMp->text_domain) . '</option>';
                    }
                }
            }
        }
        if (isset($_GET['vendor_sort_type'])) {
            if ($_GET['vendor_sort_type'] == 'category') {
                $category_terms = get_terms('product_cat');
                $select_html = '&nbsp&nbsp&nbsp<select class="select" id="vendor_sort_category" name="vendor_sort_category">';
                foreach ($category_terms as $terms) {
                    if (isset($_GET['vendor_sort_category'])) {
                        if ($_GET['vendor_sort_category'] == $terms->term_id) {
                            $select_html .= '<option selected value="' . $terms->term_id . '">' . $terms->name . '</option>';
                        } else {
                            $select_html .= '<option value="' . $terms->term_id . '">' . $terms->name . '</option>';
                        }
                    }
                }
                $select_html .= '</select>';
            }
        }
        $vendors .= $option . '</select>' . $select_html;
        $vendors .= '&nbsp;&nbsp;&nbsp;<input type="submit" value="' . __("Sort", $WCMp->text_domain) . '" />';
        $vendors .= '</div>';
        $vendors .= '</form>';
        $get_blocked = wcmp_get_all_blocked_vendors();
        $get_block_array = array();
        if (!empty($get_blocked)) {
            foreach ($get_blocked as $get_block) {
                $get_block_array[] = (int) $get_block->id;
            }
        }
        if (isset($get_all_vendors) && !empty($get_all_vendors)) {
            foreach ($get_all_vendors as $get_vendor) {
                if (in_array($get_vendor->id, $get_block_array)) {
                    continue;
                }
                if (!$get_vendor->image) {
                    $get_vendor->image = $WCMp->plugin_url . 'assets/images/WP-stdavatar.png';
                }
                $vendors .= '<div class="sorted_vendors" style="display:inline-block; margin-right:10%;">
											 <center>
													<a href="' . $get_vendor->permalink . '"><img width="125" class="vendor_img" src="' . $get_vendor->image . '" id="vendor_image_display"></a><br />
													<a href="' . $get_vendor->permalink . '" class="button">' . $get_vendor->user_data->display_name . '</a>
													<br /><br />
											 </center>
										 </div>';
            }
            $vendors .= '</div>';
        }
        return $vendors;
    }
示例#2
0
 /**
  * add tax query on product page
  * @return void
  */
 function convert_business_id_to_taxonomy_term_in_query($query)
 {
     global $pagenow;
     if (is_admin()) {
         if (isset($_GET['post_type']) && $_GET['post_type'] == 'product' && $pagenow == 'edit.php') {
             $current_user_id = get_current_user_id();
             $current_user = get_user_by('id', $current_user_id);
             if (!in_array('dc_vendor', $current_user->roles)) {
                 return $query;
             }
             $term_id = get_user_meta($current_user_id, '_vendor_term_id', true);
             $taxquery = array(array('taxonomy' => 'dc_vendor_shop', 'field' => 'id', 'terms' => array($term_id), 'operator' => 'IN'));
             $query->set('tax_query', $taxquery);
         }
     } else {
         if (isset($query->query['post_type']) && $query->query['post_type'] == 'product') {
             $get_block_array = array();
             $get_blocked = wcmp_get_all_blocked_vendors();
             if (!empty($get_blocked)) {
                 foreach ($get_blocked as $get_block) {
                     $get_block_array[] = (int) $get_block->term_id;
                 }
                 $taxquery = array(array('taxonomy' => 'dc_vendor_shop', 'field' => 'id', 'terms' => $get_block_array, 'operator' => 'NOT IN'));
                 $query->set('tax_query', $taxquery);
             }
         }
     }
     return $query;
 }