PageRenderTime 40ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/wp-content/plugins/membership/app_old/membershipincludes/classes/class.adminbar.php

https://gitlab.com/najomie/fit-hippie
PHP | 220 lines | 158 code | 58 blank | 4 comment | 24 complexity | 87d871c38398743a7bff56b10a0006ca MD5 | raw file
  1. <?php
  2. if(!class_exists('M_Adminbar')) {
  3. class M_Adminbar {
  4. var $build = 12;
  5. var $db;
  6. var $tables = array('membership_levels', 'membership_rules', 'subscriptions', 'subscriptions_levels', 'membership_relationships', 'membermeta', 'communications', 'urlgroups', 'ping_history', 'pings', 'coupons');
  7. var $membership_levels;
  8. var $membership_rules;
  9. var $membership_relationships;
  10. var $subscriptions;
  11. var $subscriptions_levels;
  12. var $membermeta;
  13. var $communications;
  14. var $urlgroups;
  15. var $ping_history;
  16. var $pings;
  17. var $coupons;
  18. function __construct() {
  19. global $wpdb;
  20. $this->db =& $wpdb;
  21. foreach($this->tables as $table) {
  22. $this->$table = membership_db_prefix($this->db, $table);
  23. }
  24. add_action( 'add_admin_bar_menus', array( &$this, 'add_admin_bar_items' ) );
  25. add_action('membership_dashboard_membershipuselevel', array( &$this, 'switch_membership_level' ) );
  26. }
  27. function M_Adminbar() {
  28. $this->__construct();
  29. }
  30. function get_membership_levels($filter = false) {
  31. if($filter) {
  32. $where = array();
  33. $orderby = array();
  34. if(isset($filter['s'])) {
  35. $where[] = "level_title LIKE '%" . mysql_real_escape_string($filter['s']) . "%'";
  36. }
  37. if(isset($filter['level_id'])) {
  38. switch($filter['level_id']) {
  39. case 'active': $where[] = "level_active = 1";
  40. break;
  41. case 'inactive': $where[] = "level_active = 0";
  42. break;
  43. }
  44. }
  45. if(isset($filter['order_by'])) {
  46. switch($filter['order_by']) {
  47. case 'order_id': $orderby[] = 'id ASC';
  48. break;
  49. case 'order_name': $orderby[] = 'level_title ASC';
  50. break;
  51. }
  52. }
  53. }
  54. // No need to prepare on table name
  55. $sql = "SELECT * FROM {$this->membership_levels}";
  56. // ... and these are already pretty strongly defined (and escaped where needed)...
  57. if(!empty($where)) {
  58. $sql .= " WHERE " . implode(' AND ', $where);
  59. }
  60. // ... so are these.
  61. if(!empty($orderby)) {
  62. $sql .= " ORDER BY " . implode(', ', $orderby);
  63. }
  64. return $this->db->get_results($sql);
  65. }
  66. // Add the admin bar menu item
  67. function add_admin_bar_enabled_item( $wp_admin_bar ) {
  68. global $M_options;
  69. $active = M_get_membership_active();
  70. $title = __('Membership', 'membership') . " : <span style='color:red; text-shadow: 1px 1px 0 #000;'>" . __('Disabled', 'membership') . "</span>";
  71. $metatitle = __('Click to Enable the Membership protection', 'membership');
  72. $linkurl = wp_nonce_url(admin_url("admin.php?page=membership&amp;action=activate"), 'toggle-plugin');
  73. $wp_admin_bar->add_menu( array(
  74. 'id' => 'membership',
  75. 'parent' => 'top-secondary',
  76. 'title' => $title,
  77. 'href' => $linkurl,
  78. 'meta' => array(
  79. 'class' => '',
  80. 'title' => $metatitle,
  81. ),
  82. ) );
  83. $linkurl = wp_nonce_url(admin_url("admin.php?page=membership&amp;action=activate"), 'toggle-plugin');
  84. $wp_admin_bar->add_menu( array(
  85. 'parent' => 'membership',
  86. 'id' => 'membershipenable',
  87. 'title' => __('Enable Membership', 'membership'),
  88. 'href' => $linkurl,
  89. ) );
  90. }
  91. function switch_membership_level() {
  92. if(isset($_GET['level_id'])) {
  93. $level_id = (int) $_GET['level_id'];
  94. check_admin_referer( 'membershipuselevel-' . $level_id );
  95. @setcookie('membershipuselevel', $level_id, 0, COOKIEPATH, COOKIE_DOMAIN);
  96. }
  97. wp_safe_redirect( wp_get_referer() );
  98. }
  99. function add_admin_bar_view_site_as( $wp_admin_bar ) {
  100. global $M_options;
  101. $levels = $this->get_membership_levels( array( 'level_id' => 'active', 'order_by' => 'order_id' ) );
  102. $title = __('View site as : ', 'membership');
  103. if(empty($_COOKIE['membershipuselevel']) || $_COOKIE['membershipuselevel'] == '0') {
  104. $title .= __('Membership Admin', 'membership');
  105. } else {
  106. $level_id = (int) $_COOKIE['membershipuselevel'];
  107. $level = new M_Level( $level_id );
  108. $title .= $level->level_title();
  109. }
  110. $class = apply_filters('membership_adminbar_view_site_as_class','membership-view-site-as');
  111. $metatitle = __('Select a level to view your site as', 'membership');
  112. $linkurl = ''; // No link for the main menu
  113. $wp_admin_bar->add_menu( array(
  114. 'id' => 'membershipuselevel',
  115. 'parent' => 'top-secondary',
  116. 'title' => $title,
  117. 'href' => $linkurl,
  118. 'meta' => array(
  119. 'class' => $class,
  120. 'title' => $metatitle,
  121. ),
  122. ) );
  123. if(!empty($levels)) {
  124. foreach( $levels as $key => $level ) {
  125. $linkurl = wp_nonce_url(admin_url("admin.php?page=membership&amp;action=membershipuselevel&amp;level_id=" . $level->id), 'membershipuselevel-' . $level->id);
  126. $wp_admin_bar->add_menu( array(
  127. 'parent' => 'membershipuselevel',
  128. 'id' => 'membershipuselevel-' . $level->id,
  129. 'title' => $level->level_title,
  130. 'href' => $linkurl
  131. ) );
  132. }
  133. }
  134. if(empty($_COOKIE['membershipuselevel']) || $_COOKIE['membershipuselevel'] == '0') {
  135. } else {
  136. $linkurl = wp_nonce_url(admin_url("admin.php?page=membership&amp;action=membershipuselevel&amp;level_id=0"), 'membershipuselevel-0');
  137. $wp_admin_bar->add_menu( array(
  138. 'parent' => 'membershipuselevel',
  139. 'id' => 'membershipuselevel-0',
  140. 'title' => __('Reset', 'membership'),
  141. 'href' => $linkurl
  142. ) );
  143. }
  144. }
  145. function add_admin_bar_items() {
  146. global $M_options, $user;
  147. if(empty($user) || !method_exists($user, 'has_cap')) {
  148. $user = wp_get_current_user();
  149. }
  150. if(!method_exists($user, 'has_cap') || $user->has_cap('membershipadmin')) {
  151. $active = M_get_membership_active();
  152. if($active == 'yes') {
  153. add_action( 'admin_bar_menu', array( &$this, 'add_admin_bar_view_site_as' ), 8 );
  154. } else {
  155. add_action( 'admin_bar_menu', array( &$this, 'add_admin_bar_enabled_item' ), 8 );
  156. }
  157. }
  158. }
  159. }
  160. }
  161. $M_Adminbar = new M_Adminbar();
  162. ?>