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