/** * status widget : multiple instance * front end instance * * @param array $args * @param array $widget_args * @return void * @since 1.0 */ function mgm_sidebar_widget_status($args, $widget_args = 1) { global $wpdb, $user_ID, $current_user, $mgm_sidebar_widget; extract($args, EXTR_SKIP); if (is_numeric($widget_args)) { $widget_args = array('number' => $widget_args); } $widget_args = wp_parse_args($widget_args, array('number' => -1)); extract($widget_args, EXTR_SKIP); $options = $mgm_sidebar_widget->status_widget; if (!isset($options[$number])) { return; } $title = isset($options[$number]['title']) ? $options[$number]['title'] : __('Magic Members', 'mgm'); $logged_out_intro = isset($options[$number]['logged_out_intro']) ? stripslashes($options[$number]['logged_out_intro']) : $mgm_sidebar_widget->default_text['logged_out_intro']; $hide_logged_out = isset($options[$number]['hide_logged_out']) ? stripslashes($options[$number]['hide_logged_out']) : false; // packs -issue#: 714 $packs = mgm_get_class('subscription_packs'); if ($user_ID) { echo $before_widget; if (trim($title)) { echo $before_title . $title . $after_title; } //issue#: 539 $member = mgm_get_member($user_ID); // check pack - issue#: 714 $subs_pack = null; if ($member->pack_id) { $subs_pack = $packs->get_pack($member->pack_id); } $uat = $member->membership_type; if (!$uat) { $uat = 'free'; } $user_status = $member->status; if ($user_status != MGM_STATUS_ACTIVE || strtolower($uat) == 'free') { $inactive_intro = isset($options[$number]['inactive_intro']) ? $options[$number]['inactive_intro'] : $mgm_sidebar_widget->default_text['inactive_intro']; echo $inactive_intro; mgm_sidebar_register_links(); } else { if ($expiry = $member->expire_date) { //issue#: 692 $sformat = mgm_get_date_format('date_format_short'); $expiry = date($sformat, strtotime($expiry)); //$date = explode('-', $expiry); //$expiry = date(get_option('date_format'), mktime(0,0,0,$date[1], $date[2], $date[0])); } else { $expiry = __('None', 'mgm'); } $active_intro = $mgm_sidebar_widget->default_text['active_intro']; if (isset($options[$number]['active_intro'])) { $active_intro = $options[$number]['active_intro']; } $active_intro = str_replace('[membership_type]', mgm_get_class('membership_types')->get_type_name($uat), $active_intro); $active_intro = str_replace('[expiry_date]', $expiry, $active_intro); // check hidden subscription pack - issue#: 714 if (isset($subs_pack['hidden']) && $subs_pack['hidden'] != 1 || !isset($subs_pack['hidden'])) { echo $active_intro; } mgm_render_my_purchased_posts($user_ID); } echo $after_widget; } else { if (!$hide_logged_out) { echo $before_widget; if (trim($title)) { echo $before_title . $title . $after_title; } echo $logged_out_intro; echo mgm_get_login_register_links(); echo $after_widget; } } }
function mgm_membership_content_page() { global $wpdb; // current_user $current_user = wp_get_current_user(); $snippet_length = 200; $max_loops = 30; $css_group = mgm_get_css_group(); $html = ''; //issue #867 if ($css_group != 'none') { //expand this if needed $css_link_format = '<link rel="stylesheet" href="%s" type="text/css" media="all" />'; $css_file = MGM_ASSETS_URL . 'css/' . $css_group . '/mgm.pages.css'; $html .= sprintf($css_link_format, $css_file); } $arr_mtlabel = mgm_get_subscribed_membershiptypes_with_label($current_user->ID); $membership_level = mgm_stripslashes_deep(implode(', ', $arr_mtlabel)); $member = mgm_get_member($current_user->ID); $arr_memberships = mgm_get_subscribed_membershiptypes($current_user->ID, $member); $posts = false; $blog_home = home_url(); $sql = 'SELECT DISTINCT(ID), post_name, post_title, post_date, post_content FROM ' . $wpdb->posts . ' p JOIN ' . $wpdb->postmeta . ' pm ON ( p.ID = pm.post_id AND p.post_status = "publish" AND pm.meta_key LIKE "_mgm_post%" AND post_type = "post" ) ORDER BY post_date DESC'; // get posts $results = $wpdb->get_results($sql); // capture only accessible $accessible_posts = array(); //check if (count($results) > 0) { foreach ($results as $id => $obj) { // get post $post_obj = mgm_get_post($obj->ID); // membership types $membership_types = $post_obj->get_access_membership_types(); //user accessible posts if (count(array_intersect($membership_types, $arr_memberships)) > 0) { $accessible_posts[] = $obj; } unset($post_obj); unset($obj); } } if ($members_pages = count($accessible_posts)) { $loops = 0; foreach ($accessible_posts as $id => $obj) { //issue #1690 if (trim($obj->post_name) == 'userprofile') { continue; } $published = date('jS F Y', strtotime($obj->post_date)); $title = $obj->post_title; $full_content = $obj->post_content; if (function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')) { $title = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($title); $full_content = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($full_content); } $content = substr(strip_tags($full_content), 0, $snippet_length); $content = preg_replace("'\\[/?\\s?private\\s?\\]'i", '', $content); $ending = strlen($full_content) > strip_tags($snippet_length) ? '...' : ''; $row = '<div class="row br_bottom"> <div class="cell mgm_border_top1px_solid_silver"> <div class="mgm_post_title_div"><a href="' . get_permalink($obj->ID) . '">' . $title . '</a></div> <div class="mgm_post_content_div">' . $content . '</div> </div> <div class="cell mgm_border_top1px_solid_silver mgm_vertical_align_top">' . $published . '</div> </div>'; $posts .= $row; $loops++; if ($loops >= $max_loops) { break; } } } $table_intro = __('Showing the most recent ', 'mgm') . $loops . __(' posts of a total ', 'mgm') . $members_pages . __(' available to you', 'mgm') . '.'; $html .= ' <div class="mgm_post_membership_level_div" >' . __('Your membership level is:', "mgm") . ' ' . $membership_level . '.</div> <div class="mgm_post_access_total_div"> ' . __('You have access to a total of', 'mgm') . ' ' . $members_pages . ' ' . __('premium', 'mgm') . ' ' . ($members_pages == 1 ? __('Post', 'mgm') : __('Posts', 'mgm')) . ' </div>'; if ($members_pages > 0) { $html .= $table_intro; $html .= '<div class="mgm_margin_bottom_10px mgm_padding_top_10px"> <div class="table width100"> <div class="row br_bottom"> <div class="cell th_div mgm_text_align_left">' . __('Post Title', 'mgm') . '</div> <div class="cell th_div mgm_width160px mgm_text_align_left">' . __('Published', 'mgm') . '</div> </div> ' . $posts . ' </div></div>'; if ($pp = mgm_render_my_purchased_posts($current_user->ID, false, true)) { $html .= '<h4>' . __('My Purchased Posts', 'mgm') . '</h4> ' . $pp; } } return $html; }