PageRenderTime 32ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/Your Code/Web App-Code/wp-content/plugins/membership/membershipincludes/includes/functions.php

https://bitbucket.org/midasinc/your-submission
PHP | 306 lines | 205 code | 95 blank | 6 comment | 52 complexity | 27e7c0f5ab0a4a59b92ee5fa55ba8a57 MD5 | raw file
  1. <?php
  2. function load_membership_plugins() {
  3. if ( is_dir( membership_dir('membershipincludes/plugins') ) ) {
  4. if ( $dh = opendir( membership_dir('membershipincludes/plugins') ) ) {
  5. $mem_plugins = array ();
  6. while ( ( $plugin = readdir( $dh ) ) !== false )
  7. if ( substr( $plugin, -4 ) == '.php' )
  8. $mem_plugins[] = $plugin;
  9. closedir( $dh );
  10. sort( $mem_plugins );
  11. foreach( $mem_plugins as $mem_plugin )
  12. include_once( membership_dir('membershipincludes/plugins/' . $mem_plugin) );
  13. }
  14. }
  15. do_action( 'membership_plugins_loaded' );
  16. }
  17. function set_membership_url($base) {
  18. global $M_membership_url;
  19. if(defined('WPMU_PLUGIN_URL') && defined('WPMU_PLUGIN_DIR') && file_exists(WPMU_PLUGIN_DIR . '/' . basename($base))) {
  20. $M_membership_url = trailingslashit(WPMU_PLUGIN_URL);
  21. } elseif(defined('WP_PLUGIN_URL') && defined('WP_PLUGIN_DIR') && file_exists(WP_PLUGIN_DIR . '/membership/' . basename($base))) {
  22. $M_membership_url = trailingslashit(WP_PLUGIN_URL . '/membership');
  23. } else {
  24. $M_membership_url = trailingslashit(WP_PLUGIN_URL . '/membership');
  25. }
  26. }
  27. function set_membership_dir($base) {
  28. global $M_membership_dir;
  29. if(defined('WPMU_PLUGIN_DIR') && file_exists(WPMU_PLUGIN_DIR . '/' . basename($base))) {
  30. $M_membership_dir = trailingslashit(WPMU_PLUGIN_DIR);
  31. } elseif(defined('WP_PLUGIN_DIR') && file_exists(WP_PLUGIN_DIR . '/membership/' . basename($base))) {
  32. $M_membership_dir = trailingslashit(WP_PLUGIN_DIR . '/membership');
  33. } else {
  34. $M_membership_dir = trailingslashit(WP_PLUGIN_DIR . '/membership');
  35. }
  36. }
  37. function membership_url($extended) {
  38. global $M_membership_url;
  39. return $M_membership_url . $extended;
  40. }
  41. function membership_dir($extended) {
  42. global $M_membership_dir;
  43. return $M_membership_dir . $extended;
  44. }
  45. function membership_upload_path() {
  46. // Get the fallback file location first
  47. $path = trailingslashit(get_option('home')) . get_option('upload_path');
  48. // if an override exists, then use that.
  49. $path = get_option('fileupload_url', $path);
  50. // return whatever we have left.
  51. return $path;
  52. }
  53. function membership_is_active($userdata, $password) {
  54. global $wpdb;
  55. // Checks if this member is an active one.
  56. if(!empty($userdata) && !is_wp_error($userdata)) {
  57. $id = $userdata->ID;
  58. if(get_usermeta($id, $wpdb->prefix . 'membership_active', true) == 'no') {
  59. return new WP_Error('member_inactive', __('Sorry, this account is not active.', 'membership'));
  60. }
  61. }
  62. return $userdata;
  63. }
  64. add_filter('wp_authenticate_user', 'membership_is_active', 30, 2);
  65. function membership_assign_subscription($user_id) {
  66. global $M_options;
  67. if(!empty($M_options['freeusersubscription'])) {
  68. $member = new M_Membership($user_id);
  69. if($member) {
  70. $member->create_subscription($M_options['freeusersubscription']);
  71. }
  72. }
  73. }
  74. add_action('user_register', 'membership_assign_subscription', 30);
  75. function membership_db_prefix(&$wpdb, $table, $useprefix = true) {
  76. if($useprefix) {
  77. $membership_prefix = 'm_';
  78. } else {
  79. $membership_prefix = '';
  80. }
  81. if( defined('MEMBERSHIP_GLOBAL_TABLES') && MEMBERSHIP_GLOBAL_TABLES == true ) {
  82. if(!empty($wpdb->base_prefix)) {
  83. return $wpdb->base_prefix . $membership_prefix . $table;
  84. } else {
  85. return $wpdb->prefix . $membership_prefix . $table;
  86. }
  87. } else {
  88. return $wpdb->prefix . $membership_prefix . $table;
  89. }
  90. }
  91. function M_can_add_pings() {
  92. global $M_add_ping;
  93. return $M_add_ping;
  94. }
  95. function M_set_ping_operations( $pings ) {
  96. global $M_add_ping;
  97. $user = wp_get_current_user();
  98. if(count($pings) >= 2) {
  99. $M_add_ping = false;
  100. $user->remove_cap('M_add_ping');
  101. } else {
  102. $M_add_ping = true;
  103. $user->add_cap('M_add_ping');
  104. }
  105. }
  106. function M_can_add_level() {
  107. global $M_add_level;
  108. return $M_add_level;
  109. }
  110. function M_set_level_operations( $levels ) {
  111. global $M_add_level;
  112. $user = wp_get_current_user();
  113. if(count($levels) >= 2) {
  114. $M_add_level = false;
  115. $user->remove_cap('M_add_level');
  116. } else {
  117. $M_add_level = true;
  118. $user->add_cap('M_add_level');
  119. }
  120. }
  121. function M_can_add_sub() {
  122. global $M_add_subscription;
  123. return $M_add_subscription;
  124. }
  125. function M_set_sub_operations( $subs ) {
  126. global $M_add_subscription;
  127. $user = wp_get_current_user();
  128. if(count($subs) >= 2) {
  129. $M_add_subscription = false;
  130. $user->remove_cap('M_add_subscription');
  131. } else {
  132. $M_add_subscription = true;
  133. $user->add_cap('M_add_subscription');
  134. }
  135. }
  136. // Template based functions
  137. function current_member() {
  138. $user = wp_get_current_user();
  139. $member = new M_Membership( $user->ID );
  140. if(!empty($member)) {
  141. return $member;
  142. } else {
  143. return false;
  144. }
  145. }
  146. function current_user_is_member() {
  147. $user = wp_get_current_user();
  148. $member = new M_Membership( $user->ID );
  149. if(!empty($member)) {
  150. return $member->is_member();
  151. } else {
  152. return false;
  153. }
  154. }
  155. function current_user_has_subscription() {
  156. $user = wp_get_current_user();
  157. $member = new M_Membership( $user->ID );
  158. if(!empty($member)) {
  159. return $member->has_subscription();
  160. } else {
  161. return false;
  162. }
  163. }
  164. function current_user_on_level( $level_id ) {
  165. $user = wp_get_current_user();
  166. $member = new M_Membership( $user->ID );
  167. if(!empty($member)) {
  168. return $member->on_level( $level_id, true );
  169. } else {
  170. return false;
  171. }
  172. }
  173. function current_user_on_subscription( $sub_id ) {
  174. $user = wp_get_current_user();
  175. $member = new M_Membership( $user->ID );
  176. if(!empty($member)) {
  177. return $member->on_sub( $sub_id );
  178. } else {
  179. return false;
  180. }
  181. }
  182. // Functions
  183. if(!function_exists('M_register_rule')) {
  184. function M_register_rule($rule_name, $class_name, $section) {
  185. global $M_Rules, $M_SectionRules;
  186. if(!is_array($M_Rules)) {
  187. $M_Rules = array();
  188. }
  189. if(!is_array($M_SectionRules)) {
  190. $M_SectionRules = array();
  191. }
  192. if(class_exists($class_name)) {
  193. $M_SectionRules[$section][$rule_name] = $class_name;
  194. $M_Rules[$rule_name] = $class_name;
  195. } else {
  196. return false;
  197. }
  198. }
  199. }
  200. function M_remove_old_plugin( $plugins ) {
  201. if(array_key_exists('membership/membership.php', $plugins) && !in_array('membership.php', (array) array_map('basename', wp_get_active_and_valid_plugins() ))) {
  202. unset($plugins['membership/membership.php']);
  203. }
  204. return $plugins;
  205. }
  206. function get_last_transaction_for_user_and_sub($user_id, $sub_id) {
  207. global $wpdb;
  208. $sql = $wpdb->prepare( "SELECT * FROM " . membership_db_prefix($wpdb, 'subscription_transaction') . " WHERE transaction_user_ID = %d and transaction_subscription_ID = %d ORDER BY transaction_stamp DESC LIMIT 0,1", $user_id, $sub_id );
  209. return $wpdb->get_row( $sql );
  210. }
  211. ?>