/** * 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_replace_message_tags($message, $user_id = NULL) { // get user if (!$user_id) { // cusrrent user $current_user = wp_get_current_user(); // set $user_id = $current_user->ID; } // int $logged_in = isset($current_user) && $current_user->ID > 0 ? true : false; // user if ($user_id > 0) { // get user $user = get_userdata($user_id); // mgm member $member = mgm_get_member($user_id); // set $username = $user->user_login; $name = mgm_str_concat($user->first_name, $user->last_name); $email = $user->user_email; $url = $user->user_url; $display_name = $user->display_name; $first_name = $user->first_name; $last_name = $user->last_name; $description = $user->description; $nickname = $user->nickname; // get active custom fields $custom_fields = mgm_get_class('member_custom_fields')->get_fields_where(array('display' => array('on_register' => true, 'on_profile' => true, 'on_public_profile' => true))); // init $custom_field_tags = array(); // loop foreach ($custom_fields as $custom_field) { // if already set skip it if (!isset(${$custom_field['name']}) || isset(${$custom_field['name']}) && empty(${$custom_field['name']})) { // check if (isset($member->custom_fields->{$custom_field}['name'])) { // skip password always if ($custom_field['name'] == 'password') { continue; } // value $value = $member->custom_fields->{$custom_field}['name']; // country if ($custom_field['name'] == 'country') { $value = mgm_country_from_code($value); } // set $custom_field_tags[$custom_field['name']] = $value; } } } } else { // get active custom fields $custom_fields = mgm_get_class('member_custom_fields')->get_fields_where(array('display' => array('on_register' => true, 'on_profile' => true, 'on_public_profile' => true))); // init $custom_field_tags = array(); // loop foreach ($custom_fields as $custom_field) { // set $custom_field_tags[$custom_field['name']] = ''; } } /* * [[purchase_cost]] = Cost and currency of a purchasable post * [[login_register]] = Login or register form * [[login_register_links]] = Links for login and register * [[login_link]] = Login link only * [[facebook_login_button]] = Facebook login button * [[register_link]] = Register link only * [[membership_types]] = A list of membership levels that can see this post/page * [[duration]] = number of days that the user will have access for * [[username]] = username * [[name]] = name / username * [[register]] = register form */ // post $post_id = get_the_ID(); // vars $system_obj = mgm_get_class('system'); $currency = $system_obj->setting['currency']; $post_obj = mgm_get_post($post_id); $duration = $post_obj->get_access_duration(); if (!$duration) { $duration = __('unlimited', 'mgm'); } $purchase_cost = $post_obj->purchase_cost; $currency_sign = mgm_get_currency_symbols($system_obj->setting['currency']); // these function calls are called repeadtedly as filter is used in multiple places // call only when tag present in message // [login_register_links] if (preg_match('/[[login_register_links]]/', $message)) { $login_register_links = !$logged_in ? mgm_get_login_register_links() : ''; } // [login_link] if (preg_match('/[[login_link]]/', $message)) { $login_link = !$logged_in ? mgm_get_login_link() : ''; } // [facebook_login_button] if (preg_match('/[[facebook_login_button]]/', $message)) { $facebook_login_button = !$logged_in ? mgm_generate_facebook_login() : ''; } // [register_link] if (preg_match('/[[register_link]]/', $message)) { $register_link = !$logged_in ? mgm_get_register_link() : ''; } // [login_register] if (preg_match('/[[login_register]]/', $message)) { $login_register = !$logged_in ? mgm_sidebar_user_login_form(__('Register', 'mgm')) : ''; } // [register] if (preg_match('/[[register]]/', $message)) { $register = !$logged_in ? mgm_user_register_form() : ''; } // membership type if (!($membership_types = $post_obj->get_access_membership_types())) { // purchasble if (mgm_post_is_purchasable($post_id)) { $membership_types = 'Purchasable Only'; } else { // access $membership_types = 'No access'; } } else { // get object $membership_types_obj = mgm_get_class('membership_types'); // init array $ms_types_array = array(); // loop foreach ($membership_types as $membership_type) { // set if (isset($membership_types_obj->membership_types[$membership_type])) { $ms_types_array[] = $membership_types_obj->membership_types[$membership_type]; } } // reset $membership_types = implode(', ', $ms_types_array); // unset unset($ms_types_array); } // loop defined $tags = array('purchase_cost', 'login_register', 'login_register_links', 'login_link', 'register_link', 'membership_types', 'duration', 'register', 'username', 'name', 'email', 'url', 'display_name', 'first_name', 'last_name', 'description', 'nickname', 'facebook_login_button', 'currency_sign'); // loop foreach ($tags as $tag) { // check if (!isset(${$tag})) { ${$tag} = ''; } // set $message = str_replace('[[' . $tag . ']]', ${$tag}, $message); } // custom_field_tags if (is_array($custom_field_tags)) { // loop foreach ($custom_field_tags as $tag => $value) { // check if (!isset($value)) { $value = ''; } // set $message = str_replace('[[' . $tag . ']]', $value, $message); } } // return return $message; }