Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function simplemarket_list_products( $echo = true, $paginate = '', $page = '', $per_page = '', $order_by = '', $order = '', $category = '', $tag = '' ) {
- global $wp_query, $mp;
- $settings = get_option('mp_settings');
- //setup taxonomy if applicable
- if ($category) {
- $taxonomy_query = '&product_category=' . sanitize_title($category);
- } else if ($tag) {
- $taxonomy_query = '&product_tag=' . sanitize_title($tag);
- } else if ($wp_query->query_vars['taxonomy'] == 'product_category' || $wp_query->query_vars['taxonomy'] == 'product_tag') {
- $taxonomy_query = '&' . $wp_query->query_vars['taxonomy'] . '=' . get_query_var($wp_query->query_vars['taxonomy']);
- }
- //setup pagination
- $paged = false;
- if ($paginate) {
- $paged = true;
- } else if ($paginate === '') {
- if ($settings['paginate'])
- $paged = true;
- else
- $paginate_query = '&nopaging=true';
- } else {
- $paginate_query = '&nopaging=true';
- }
- //get page details
- if ($paged) {
- //figure out perpage
- if (intval($per_page)) {
- $paginate_query = '&posts_per_page='.intval($per_page);
- } else {
- $paginate_query = '&posts_per_page='.$settings['per_page'];
- }
- //figure out page
- if ($wp_query->query_vars['paged'])
- $paginate_query .= '&paged='.intval($wp_query->query_vars['paged']);
- if (intval($page))
- $paginate_query .= '&paged='.intval($page);
- else if ($wp_query->query_vars['paged'])
- $paginate_query .= '&paged='.intval($wp_query->query_vars['paged']);
- }
- //get order by
- if (!$order_by) {
- if ($settings['order_by'] == 'price')
- $order_by_query = '&meta_key=mp_price_sort&orderby=meta_value_num';
- else if ($settings['order_by'] == 'sales')
- $order_by_query = '&meta_key=mp_sales_count&orderby=meta_value_num';
- else
- $order_by_query = '&orderby='.$settings['order_by'];
- } else {
- if ('price' == $order_by)
- $order_by_query = '&meta_key=mp_price_sort&orderby=meta_value_num';
- else
- $order_by_query = '&orderby='.$order_by;
- }
- //get order direction
- if (!$order) {
- $order_query = '&order='.$settings['order'];
- } else {
- $order_query = '&order='.$order;
- }
- //The Query
- $custom_query = new WP_Query('post_type=product&post_status=publish' . $taxonomy_query . $paginate_query . $order_by_query . $order_query);
- //allows pagination links to work get_posts_nav_link()
- if ($wp_query->max_num_pages == 0 || $taxonomy_query)
- $wp_query->max_num_pages = $custom_query->max_num_pages;
- $content = '<div id="mp_product_list">';
- if ($last = count($custom_query->posts)) {
- $count = 1;
- foreach ($custom_query->posts as $post) {
- //add last css class for styling grids
- if ($count == $last)
- $class = array('mp_product', 'last-product');
- else
- $class = 'mp_product';
- $content .= '<div '.mp_product_class(false, $class, $post->ID).'>';
- $content .= '<h3 class="mp_product_name"><a href="' . get_permalink( $post->ID ) . '">' . $post->post_title . '</a></h3>';
- $content .= '<div class="mp_product_content">';
- $product_content = mp_product_image( false, 'list', $post->ID );
- $product_content .= $mp->product_excerpt($post->post_excerpt, $post->post_content, $post->ID);
- $content .= apply_filters( 'mp_product_list_content', $product_content, $post->ID );
- $content .= '</div>';
- $content .= '<div class="mp_product_meta">';
- //price
- $meta = mp_product_price($post->ID);
- //button
- $meta .= mp_buy_button(false, 'list', $post->ID);
- $content .= apply_filters( 'mp_product_list_meta', $meta, $post->ID );
- $content .= '</div>';
- $content .= '</div>';
- $count++;
- }
- } else {
- $content .= '<div id="mp_no_products">' . apply_filters( 'mp_product_list_none', __('No Products', 'mp') ) . '</div>';
- }
- $content .= '</div>';
- if ($echo)
- echo $content;
- else
- return $content;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement