public function set_sorting_text($san_text) { if (strpos($san_text, 'eg-') === 0) { $meta = new Essential_Grid_Meta(); $m = $meta->get_all_meta(false); if (!empty($m)) { foreach ($m as $me) { if ('eg-' . $me['handle'] == $san_text) { return $me['name']; } } } } elseif (strpos($san_text, 'egl-') === 0) { $meta = new Essential_Grid_Meta_Linking(); $m = $meta->get_all_link_meta(false); if (!empty($m)) { foreach ($m as $me) { if ('egl-' . $me['handle'] == $san_text) { return $me['name']; } } } } else { switch ($san_text) { case 'date': $san_text = __('Date', EG_TEXTDOMAIN); break; case 'title': $san_text = __('Title', EG_TEXTDOMAIN); break; case 'excerpt': $san_text = __('Excerpt', EG_TEXTDOMAIN); break; case 'id': $san_text = __('ID', EG_TEXTDOMAIN); break; case 'slug': $san_text = __('Slug', EG_TEXTDOMAIN); break; case 'author': $san_text = __('Author', EG_TEXTDOMAIN); break; case 'last-modified': $san_text = __('Last Modified', EG_TEXTDOMAIN); break; case 'number-of-comments': $san_text = __('Comments', EG_TEXTDOMAIN); break; case 'meta_num_total_sales': $san_text = __('Total Sales', EG_TEXTDOMAIN); break; case 'meta_num__regular_price': $san_text = __('Regular Price', EG_TEXTDOMAIN); break; case 'meta_num__sale_price': $san_text = __('Sale Price', EG_TEXTDOMAIN); break; case 'meta__featured': $san_text = __('Featured', EG_TEXTDOMAIN); break; case 'meta__sku': $san_text = __('SKU', EG_TEXTDOMAIN); break; case 'meta_num_stock': $san_text = __('In Stock', EG_TEXTDOMAIN); break; default: $san_text = ucfirst($san_text); break; } } return $san_text; }
/** * Receive all Posts by given IDs */ public static function get_posts_by_ids($ids, $sort_by = 'none', $sort_order = 'DESC') { $query = array('post__in' => $ids, 'post_type' => 'any', 'order' => $sort_order, 'numberposts' => count($ids)); if (strpos($sort_by, 'eg-') === 0) { $meta = new Essential_Grid_Meta(); $m = $meta->get_all_meta(false); if (!empty($m)) { foreach ($m as $me) { if ('eg-' . $me['handle'] == $sort_by) { $sort_by = isset($me['sort-type']) && $me['sort-type'] == 'numeric' ? 'meta_num_' . $sort_by : 'meta_' . $sort_by; break; } } } } elseif (strpos($sort_by, 'egl-') === 0) { //change to meta_num_ or meta_ depending on setting $sortfound = false; $link_meta = new Essential_Grid_Meta_Linking(); $m = $link_meta->get_all_link_meta(); if (!empty($m)) { foreach ($m as $me) { if ('egl-' . $me['handle'] == $sort_by) { $sort_by = isset($me['sort-type']) && $me['sort-type'] == 'numeric' ? 'meta_num_' . $me['original'] : 'meta_' . $me['original']; $sortfound = true; break; } } } if (!$sortfound) { $sort_by = 'none'; } } //add sort by (could be by meta) if (strpos($sort_by, "meta_num_") === 0) { $metaKey = str_replace("meta_num_", "", $sort_by); $query["orderby"] = "meta_value_num"; $query["meta_key"] = $metaKey; } else { if (strpos($sort_by, "meta_") === 0) { $metaKey = str_replace("meta_", "", $sort_by); $query["orderby"] = "meta_value"; $query["meta_key"] = $metaKey; } else { $query["orderby"] = $sort_by; } } $objQuery = get_posts($query); $arrPosts = $objQuery; foreach ($arrPosts as $key => $post) { if (method_exists($post, "to_array")) { $arrPost = $post->to_array(); } else { $arrPost = (array) $post; } $arrPosts[$key] = $arrPost; } return $arrPosts; }
?> </p> <h3 style="color:#fff"><?php _e('How to add Meta Field References to my Skin?', EG_TEXTDOMAIN); ?> </h3> <p style="margin-bottom:15px"><?php _e('<strong>Edit the Skin</strong> you selected for the Grid(s) and <strong>add or edit</strong> an existing <strong>Layer</strong>. Here you can select under the source tab the <strong>Source Type</strong> to <strong>"POST"</strong> and <strong>Element</strong> to <strong>"META"</strong>. Pick the Custom Meta Key of your choice from the Drop Down list. ', EG_TEXTDOMAIN); ?> </p> </div> </div> <?php $link_metas = $meta_links->get_all_link_meta(); if (!empty($link_metas)) { foreach ($link_metas as $meta) { if (!isset($meta['sort-type'])) { $meta['sort-type'] = 'alphabetic'; } ?> <div class="postbox eg-postbox" style="width:100%;min-width:500px"> <h3 class="box-closed"><span style="font-weight:400"><?php _e('Handle:', EG_TEXTDOMAIN); ?> </span><span>egl-<?php echo $meta['handle']; ?> </span><div class="postbox-arrow"></div></h3> <div class="inside" style="display:none;padding:0px !important;margin:0px !important;height:100%;position:relative;background:#ebebeb">
/** * get all custom metas */ public function get_all_meta($links = true) { $meta = get_option('esg-custom-meta', array()); if ($links === true) { //add the meta links to the array if (!empty($meta)) { foreach ($meta as $key => $m) { $meta[$key]['m_type'] = 'meta'; } } $meta_link = new Essential_Grid_Meta_Linking(); $link_metas = $meta_link->get_all_link_meta(); if (!empty($link_metas)) { foreach ($link_metas as $key => $m) { $link_metas[$key]['m_type'] = 'link'; } } $meta = array_merge($meta, $link_metas); } return $meta; }
public function prepare_sorting_array_by_post($post, $order_by) { $base = new Essential_Grid_Base(); $link_meta = new Essential_Grid_Meta_Linking(); $meta = new Essential_Grid_Meta(); $m = $meta->get_all_meta(false); $lm = $link_meta->get_all_link_meta(false); $sorts = array(); foreach ($order_by as $order) { switch ($order) { case 'date': $sorts['date'] = strtotime($base->getVar($post, 'post_date')); break; case 'title': $sorts['title'] = substr($base->getVar($post, 'post_title', ''), 0, 10); break; case 'excerpt': $sorts['excerpt'] = substr(strip_tags($base->getVar($post, 'post_excerpt', '')), 0, 10); break; case 'id': $sorts['id'] = $base->getVar($post, 'ID'); break; case 'slug': $sorts['slug'] = $base->getVar($post, 'post_name'); break; case 'author': $authorID = $base->getVar($post, 'post_author'); $sorts['author'] = get_the_author_meta('display_name', $authorID); break; case 'last-modified': $sorts['last-modified'] = strtotime($base->getVar($post, 'post_modified')); break; case 'number-of-comments': $sorts['number-of-comments'] = $base->getVar($post, 'comment_count'); break; case 'random': $sorts['random'] = rand(0, 9999); break; default: //check if meta. If yes, add meta values if (strpos($order, 'eg-') === 0) { if (!empty($m)) { foreach ($m as $me) { if ('eg-' . $me['handle'] == $order) { $sorts[$order] = $meta->get_meta_value_by_handle($post['ID'], $order); break; } } } } elseif (strpos($order, 'egl-') === 0) { if (!empty($lm)) { foreach ($lm as $me) { if ('egl-' . $me['handle'] == $order) { $sorts[$order] = $link_meta->get_link_meta_value_by_handle($post['ID'], $order); break; } } } } break; } } //add woocommerce sortings if (Essential_Grid_Woocommerce::is_woo_exists()) { $product = get_product($post['ID']); if (!empty($product)) { foreach ($order_by as $order) { switch ($order) { case 'meta_num_total_sales': $sorts['total-sales'] = get_post_meta($post['ID'], $order, true); break; case 'meta_num__regular_price': $sorts['regular-price'] = $product->get_price(); break; //case 'meta_num__sale_price': // $sorts['sale-price'] = $product->get_sale_price(); //break; //case 'meta_num__sale_price': // $sorts['sale-price'] = $product->get_sale_price(); //break; case 'meta__featured': $sorts['featured'] = $product->is_featured() ? '1' : '0'; break; case 'meta__sku': $sorts['sku'] = $product->get_sku(); break; case 'meta_num_stock': $sorts['in-stock'] = $product->get_stock_quantity(); break; } } } } return $sorts; }