$page) $pmpro_pages[$name] = get_option('pmpro_' . $name . '_page_id'); //set currency $pmpro_currency = get_option("pmpro_currency"); if(!$pmpro_currency) { global $pmpro_default_currency; $pmpro_currency = $pmpro_default_currency; } //figure out what symbol to show for currency if(!empty($pmpro_currencies[$pmpro_currency]) && is_array($pmpro_currencies[$pmpro_currency])) { if ( isset( $pmpro_currencies[$pmpro_currency]['symbol'] ) ) { $pmpro_currency_symbol = $pmpro_currencies[$pmpro_currency]['symbol']; } else { $pmpro_currency_symbol = ''; } } elseif(!empty($pmpro_currencies[$pmpro_currency]) && strpos($pmpro_currencies[$pmpro_currency], "(") !== false) $pmpro_currency_symbol = pmpro_getMatches("/\((.*)\)/", $pmpro_currencies[$pmpro_currency], true); else $pmpro_currency_symbol = $pmpro_currency . " "; //just use the code } add_action("init", "pmpro_init"); //this code runs after $post is set, but before template output function pmpro_wp() { if(!is_admin()) { global $post, $pmpro_pages, $pmpro_core_pages, $pmpro_page_name, $pmpro_page_id, $pmpro_body_classes; //no pages yet? if(empty($pmpro_pages)) return; //run the appropriate preheader function foreach($pmpro_core_pages as $pmpro_page_name => $pmpro_page_id) { if( ! empty( $post->post_content ) && ( strpos( $post->post_content, "[pmpro_" . $pmpro_page_name . "]" ) !== false || ( function_exists( 'has_block' ) && has_block( 'pmpro/' . $pmpro_page_name . '-page', $post ) ) ) ) { //preheader require_once(PMPRO_DIR . "/preheaders/" . $pmpro_page_name . ".php"); //add class to body $pmpro_body_classes[] = "pmpro-" . str_replace("_", "-", $pmpro_page_name); //shortcode function pmpro_pages_shortcode($atts, $content=null, $code="") { global $pmpro_page_name; $temp_content = pmpro_loadTemplate($pmpro_page_name, 'local', 'pages'); return apply_filters("pmpro_pages_shortcode_" . $pmpro_page_name, $temp_content); } add_shortcode("pmpro_" . $pmpro_page_name, "pmpro_pages_shortcode"); break; //only the first page found gets a shortcode replacement } elseif(!empty($pmpro_page_id) && is_page($pmpro_page_id)) { //add class to body $pmpro_body_classes[] = "pmpro-" . str_replace("_", "-", $pmpro_page_name); //shortcode has params, but we still want to load the preheader require_once(PMPRO_DIR . "/preheaders/" . $pmpro_page_name . ".php"); } } } } add_action("wp", "pmpro_wp", 2); /* Add PMPro page names to the BODY class. */ function pmpro_body_class($classes) { global $pmpro_body_classes; if(is_array($pmpro_body_classes)) $classes = array_merge($pmpro_body_classes, $classes); return $classes; } add_filter("body_class", "pmpro_body_class"); //add membership level to current user object function pmpro_set_current_user() { //this code runs at the beginning of the plugin global $current_user, $wpdb; wp_get_current_user(); $id = intval($current_user->ID); if($id) { $current_user->membership_level = pmpro_getMembershipLevelForUser($current_user->ID); if(!empty($current_user->membership_level)) { $current_user->membership_level->categories = pmpro_getMembershipCategories($current_user->membership_level->ID); } $current_user->membership_levels = pmpro_getMembershipLevelsForUser($current_user->ID); } //hiding ads? $hideads = get_option("pmpro_hideads"); $hideadslevels = get_option("pmpro_hideadslevels"); if(!is_array($hideadslevels)) $hideadslevels = explode(",", $hideadslevels); if($hideads == 1 && pmpro_hasMembershipLevel() || $hideads == 2 && pmpro_hasMembershipLevel($hideadslevels)) { //disable ads in ezAdsense if(class_exists("ezAdSense")) { global $ezCount, $urCount; $ezCount = 100; $urCount = 100; } //disable ads in Easy Adsense (newer versions) if(class_exists("EzAdSense")) { global $ezAdSense; $ezAdSense->ezCount = 100; $ezAdSense->urCount = 100; } //set a global variable to hide ads global $pmpro_display_ads; $pmpro_display_ads = false; } else { global $pmpro_display_ads; $pmpro_display_ads = true; } do_action("pmpro_after_set_current_user"); } add_action('set_current_user', 'pmpro_set_current_user'); add_action('init', 'pmpro_set_current_user'); /* * Add Membership Level to Users page in WordPress dashboard. */ function pmpro_manage_users_columns($columns) { $columns['pmpro_membership_level'] = __('Membership Level', 'paid-memberships-pro' ); return $columns; } function pmpro_sortable_column($columns) { $columns['pmpro_membership_level'] = array( 'level', 'desc' ); return $columns; } function pmpro_manage_users_custom_column($column_data, $column_name, $user_id) { if($column_name == 'pmpro_membership_level') { $levels = pmpro_getMembershipLevelsForUser($user_id); $level_names = array(); if(!empty($levels)) { foreach($levels as $key => $level) $level_names[] = $level->name; $column_data = implode(', ', $level_names); } else $column_data = __('None', 'paid-memberships-pro' ); } return $column_data; } function pmpro_sortable_column_query( $query ) { global $wpdb; $vars = $query->query_vars; if ( $vars['orderby'] == 'level' ){ $order = pmpro_sanitize_with_safelist( $vars['order'], array( 'asc', 'desc', 'ASC', 'DESC' ) ); if ( ! empty( $order ) ) { $query->query_from .= " LEFT JOIN $wpdb->pmpro_memberships_users AS pmpro_mu ON $wpdb->users.ID = pmpro_mu.user_id AND pmpro_mu.status = 'active' LEFT JOIN $wpdb->pmpro_membership_levels AS pmpro_ml ON pmpro_mu.membership_id = pmpro_ml.id"; $query->query_orderby = "ORDER BY pmpro_ml.name " . $order . ", $wpdb->users.user_registered"; // All options for $order listed in safelist above are safe for use in a query. } } } add_filter('manage_users_columns', 'pmpro_manage_users_columns'); add_filter('manage_users_custom_column', 'pmpro_manage_users_custom_column', 10, 3); add_filter( 'manage_users_sortable_columns', 'pmpro_sortable_column' ); add_action('pre_user_query','pmpro_sortable_column_query');