function create_subscription($sub_id, $gateway = 'admin') { if (!$this->active_member()) { $this->toggle_activation(); } $subscription = new M_Subscription($sub_id); $levels = $subscription->get_levels(); if (!empty($levels)) { foreach ($levels as $key => $level) { if ($level->level_order == 1) { $this->add_subscription($sub_id, $level->level_id, $level->level_order, $gateway); break; } } return true; } else { return false; } }
function create_subscription($sub_id, $gateway = 'admin') { global $blog_id; if (!$this->active_member()) { $this->toggle_activation(); } $subscription = new M_Subscription($sub_id); $levels = $subscription->get_levels(); if (!empty($levels)) { foreach ($levels as $key => $level) { if ($level->level_order == 1) { $this->add_subscription($sub_id, $level->level_id, $level->level_order, $gateway); // Check if a coupon transient already exists if (defined('MEMBERSHIP_GLOBAL_TABLES') && MEMBERSHIP_GLOBAL_TABLES === true) { if (function_exists('get_site_transient')) { $trying = get_site_transient('m_coupon_' . $blog_id . '_' . $this->ID . '_' . $sub_id); } else { $trying = get_transient('m_coupon_' . $blog_id . '_' . $this->ID . '_' . $sub_id); } } else { $trying = get_transient('m_coupon_' . $blog_id . '_' . $this->ID . '_' . $sub_id); } // If there is a coupon transient do our coupon count magic if ($trying != false && is_array($trying)) { if (!empty($trying['coupon_id'])) { $coupon = new M_Coupon($trying['coupon_id']); // Add one to the coupon count $coupon->increment_coupon_used(); // Store the coupon details in the usermeta update_user_meta($this->ID, 'm_coupon_' . $sub_id, $trying); } if (defined('MEMBERSHIP_GLOBAL_TABLES') && MEMBERSHIP_GLOBAL_TABLES === true) { if (function_exists('delete_site_transient')) { delete_site_transient('m_coupon_' . $blog_id . '_' . $this->ID . '_' . $sub_id); } else { delete_transient('m_coupon_' . $blog_id . '_' . $this->ID . '_' . $sub_id); } } else { delete_transient('m_coupon_' . $blog_id . '_' . $this->ID . '_' . $sub_id); } } break; } } return true; } else { return false; } }
function handle_sub_edit_form($sub_id = false, $clone = false) { global $page; $msub = new M_Subscription($sub_id); if ($sub_id && !$clone) { $sub = $msub->get(); } else { if ($clone) { $sub = $msub->get(); $sub->sub_name .= __(' clone', 'membership'); } else { $sub = new stdclass(); $sub->sub_name = __('new subscription', 'membership'); } $sub->id = time() * -1; } // Get the relevant parts if (isset($msub)) { $levels = $msub->get_levels(); } ?> <div class='wrap nosubsub'> <div class="icon32" id="icon-link-manager"><br></div> <?php if ($sub->id < 0) { ?> <h2><?php echo __('Add ', 'membership') . " - " . esc_html($sub->sub_name); ?> </h2> <?php } else { ?> <h2><?php echo __('Edit ', 'membership') . " - " . esc_html(stripslashes($sub->sub_name)); ?> </h2> <?php } ?> <?php if (isset($usemsg)) { echo '<div id="message" class="updated fade"><p>' . $messages[$usemsg] . '</p></div>'; $_SERVER['REQUEST_URI'] = remove_query_arg(array('message'), $_SERVER['REQUEST_URI']); } ?> <div class='sub-liquid-left'> <div id='sub-left'> <form action='?page=<?php echo $page; ?> ' name='subedit' method='post'> <input type='hidden' name='sub_id' id='sub_id' value='<?php echo $sub->id; ?> ' /> <div id='edit-sub' class='sub-holder-wrap'> <div class='sidebar-name no-movecursor'> <h3><?php echo esc_html(stripslashes($sub->sub_name)); ?> </h3> </div> <div class='sub-holder'> <div class='sub-details'> <label for='sub_name'><?php _e('Subscription name', 'membership'); ?> </label> <input class='wide' type='text' name='sub_name' id='sub_name' value='<?php echo esc_attr(stripslashes($sub->sub_name)); ?> ' /> <br/><br/> <label for='sub_name'><?php _e('Subscription description', 'membership'); ?> </label> <?php $args = array("textarea_name" => "sub_description", "textarea_rows" => 5); if (!isset($sub->sub_description)) { $sub->sub_description = ''; } wp_editor(stripslashes($sub->sub_description), "sub_description", $args); ?> <br/> <?php if (!isset($sub->sub_pricetext)) { $sub->sub_pricetext = ''; } ?> <label for='sub_pricetext'><?php _e('Subscription price text', 'membership'); echo $this->_tips->add_tip(__('The text you want to show as the price on the subscription form. E.G. Only $25 per month.', 'membership')); ?> </label> <input class='wide' type='text' name='sub_pricetext' id='sub_pricetext' value='<?php echo esc_attr(stripslashes($sub->sub_pricetext)); ?> ' /> <?php do_action('membership_subscription_form_after_details', $sub->id); ?> </div> <?php do_action('membership_subscription_form_before_levels', $sub->id); ?> <h3><?php _e('Membership levels', 'membership'); ?> </h3> <p class='description'><?php _e('These are the levels that are part of this subscription and the order a user will travel through them. Any levels highlighted in red will never be reached due to the settings of previous levels.', 'membership'); ?> </p> <div id='membership-levels-start'> <div id="main-start" class="sub-operation" style="display: block;"> <h2 class="sidebar-name"><?php _e('Starting Point', 'membership'); ?> </h2> <div class="inner-operation"> <p class='description'><?php _e('A new signup for this subscription will start here and immediately pass to the next membership level listed below.', 'membership'); ?> </p> </div> </div> </div> <ul id='membership-levels-holder'> <?php do_action('membership_subscription_form_before_level_list', $sub->id); ?> <?php $msub->sub_details(); ?> <?php do_action('membership_subscription_form_after_level_list', $sub->id); ?> </ul> <div id='membership-levels' class='droppable-levels levels-sortable'> <?php _e('Drop here', 'membership'); ?> </div> <?php // Hidden fields ?> <input type='hidden' name='beingdragged' id='beingdragged' value='' /> <input type='hidden' name='level-order' id='level-order' value=',<?php echo implode(',', $msub->levelorder); ?> ' /> <?php do_action('membership_subscription_form_after_levels', $sub->id); ?> <div class='buttons'> <?php if ($sub->id > 0) { wp_original_referer_field(true, 'previous'); wp_nonce_field('update-' . $sub->id); ?> <a href='?page=<?php echo $page; ?> ' class='cancellink' title='Cancel edit'><?php _e('Cancel', 'membership'); ?> </a> <input type='submit' value='<?php _e('Update', 'membership'); ?> ' class='button-primary' /> <input type='hidden' name='action' value='updated' /> <?php } else { wp_original_referer_field(true, 'previous'); wp_nonce_field('add-' . $sub->id); ?> <a href='?page=<?php echo $page; ?> ' class='cancellink' title='Cancel add'><?php _e('Cancel', 'membership'); ?> </a> <input type='submit' value='<?php _e('Add', 'membership'); ?> ' class='button-primary' /> <input type='hidden' name='action' value='added' /> <?php } ?> </div> </div> </div> </form> </div> <div id='hiden-actions'> <div id='template-holder'> <?php $msub->sub_template(); ?> </div> </div> <!-- hidden-actions --> </div> <!-- sub-liquid-left --> <div class='sub-liquid-right'> <div class="sub-holder-wrap"> <?php do_action('membership_sidebar_top_subscription'); do_action('membership_sidebar_top', 'subscription'); ?> <div class="sidebar-name no-movecursor"> <h3><?php _e('Membership levels', 'membership'); ?> </h3> </div> <div class="level-holder" id="sidebar-levels" style="min-height: 98px;"> <ul class='subs subs-draggable'> <?php $levels = $this->get_membership_levels(); foreach ((array) $levels as $key => $level) { ?> <li class='level-draggable' id='level-<?php echo $level->id; ?> '> <div class='action action-draggable'> <div class='action-top closed'> <a href="#available-actions" class="action-button hide-if-no-js"></a> <?php echo esc_html($level->level_title); ?> </div> <div class='action-body closed'> <p> <a href='#addtosubscription' class='action-to-subscription' title="<?php _e('Add this level to the bottom of the membership levels list.', 'membership'); ?> "><?php _e('Add to Subscription', 'membership'); ?> </a> </p> </div> </div> </li> <?php } ?> </ul> </div> </div> <!-- sub-holder-wrap --> </div> <!-- sub-liquid-right --> </div> <!-- wrap --> <?php }
function create_subscription($sub_id, $gateway = 'admin') { if (!$this->active_member()) { $this->toggle_activation(); } $subscription = new M_Subscription($sub_id); $levels = $subscription->get_levels(); if (function_exists('is_multisite') && is_multisite()) { global $blog_id; } if (!empty($levels)) { foreach ($levels as $key => $level) { if ($level->level_order == 1) { $this->add_subscription($sub_id, $level->level_id, $level->level_order, $gateway); // Check for a coupon transient if (function_exists('is_multisite') && is_multisite()) { $trans = get_site_transient('m_coupon_' . $blog_id . '_' . $this->ID . '_' . $sub_id); } else { $trans = get_transient('m_coupon_' . $this->ID . '_' . $sub_id); } // If there is a coupon transient do our coupon count magic if ($trans && is_array($trans)) { $code = strtoupper($code); $coupon = new M_Coupon($trans['code']); $price = $coupon->apply_price($level->level_price); $coupon_data = $coupon->get_coupon(true); $coupon_data['ID'] = $coupon_data['id']; unset($coupon_data['id']); // Ok they for sure used the coupon so lets delete the transient if (function_exists('is_multisite') && is_multisite()) { delete_site_transient('m_coupon_' . $blog_id . '_' . $this->ID . '_' . $sub_id); } else { delete_transient('m_coupon_' . $this->ID . '_' . $sub_id); } // Now lets just add a use to the coupon it self and daz it... $new_total = (int) $coupon_data['coupon_used'] + 1; $coupon_data['coupon_used'] = $new_total; $coupon->increment_coupon_used(); } break; } } return true; } else { return false; } }