示例#1
0
					<legend><?php 
        echo __('Your Subscriptions', 'membership');
        ?>
</legend>
					<div class="alert alert-success">
					<?php 
        echo __('Your current subscriptions are listed here. You can renew, cancel or upgrade your subscriptions by using the forms below.', 'membership');
        ?>
					</div>
					<div class="priceboxes">
					<?php 
        $rels = $member->get_relationships();
        foreach ((array) $rels as $rel) {
            $sub = new M_Subscription($rel->sub_id);
            $nextlevel = $sub->get_next_level($rel->level_id, $rel->order_instance);
            $currentlevel = $sub->get_level_at($rel->level_id, $rel->order_instance);
            if (!empty($rel->usinggateway) && $rel->usinggateway != 'admin') {
                $gateway = M_get_class_for_gateway($rel->usinggateway);
                if (!empty($gateway) && $gateway->issingle) {
                    $gatewayissingle = 'yes';
                } else {
                    $gatewayissingle = 'no';
                }
            } else {
                $gatewayissingle = 'admin';
            }
            ?>
								<div class="pricebox subscribedbox" id='subscribedbox-<?php 
            echo $sub->id;
            ?>
'>
 function move_subscription($fromsub_id, $tosub_id, $tolevel_id, $to_order)
 {
     if (!apply_filters('pre_membership_move_subscription', true, $fromsub_id, $tosub_id, $tolevel_id, $to_order, $this->ID)) {
         return false;
     }
     if (!$this->on_level($tolevel_id, true) && $this->on_sub($fromsub_id)) {
         // Get the level for this subscription before removing it
         $fromlevel_id = $this->get_level_for_sub($fromsub_id);
         // grab the level information for this position
         $subscription = new M_Subscription($tosub_id);
         $level = $subscription->get_level_at($tolevel_id, $to_order);
         if ($level) {
             $start = current_time('mysql');
             switch ($level->level_period_unit) {
                 case 'd':
                     $period = 'days';
                     break;
                 case 'w':
                     $period = 'weeks';
                     break;
                 case 'm':
                     $period = 'months';
                     break;
                 case 'y':
                     $period = 'years';
                     break;
                 default:
                     $period = 'days';
                     break;
             }
             $expires = gmdate('Y-m-d H:i:s', strtotime('+' . $level->level_period . ' ' . $period, strtotime($start)));
             // Update users start and expiry meta
             delete_user_meta($this->ID, 'start_current_' . $fromsub_id);
             delete_user_meta($this->ID, 'expire_current_' . $fromsub_id);
             delete_user_meta($this->ID, 'sent_msgs_' . $fromsub_id);
             // get the gateway and then remove it from the usermeta
             $gateway = get_user_meta($this->ID, 'using_gateway_' . $fromsub_id, true);
             delete_user_meta($this->ID, 'using_gateway_' . $fromsub_id);
             update_user_meta($this->ID, 'start_current_' . $tosub_id, strtotime($start));
             update_user_meta($this->ID, 'expire_current_' . $tosub_id, strtotime($expires));
             update_user_meta($this->ID, 'using_gateway_' . $tosub_id, $gateway);
             $this->db->update($this->membership_relationships, array('sub_id' => $tosub_id, 'level_id' => $tolevel_id, 'updateddate' => $start, 'expirydate' => $expires, 'order_instance' => $level->level_order), array('sub_id' => $fromsub_id, 'user_id' => $this->ID));
             do_action('membership_move_subscription', $fromsub_id, $fromlevel_id, $tosub_id, $tolevel_id, $to_order, $this->ID);
         }
     }
 }
示例#3
0
function affiliate_membership_add_subscription($m_tosub_id, $m_tolevel_id, $m_to_order, $m_user_id)
{
    global $blog_id, $site_id;
    //echo "m_tosub_id[". 	$m_tosub_id ."]<br />";
    //echo "m_tolevel_id[". 	$m_tolevel_id ."]<br />";
    //echo "m_to_order[". 	$m_to_order ."]<br />";
    //echo "m_user_id[". 		$m_user_id ."]<br />";
    $default_headers = array('Name' => 'Plugin Name', 'Version' => 'Version');
    $membership_plugin_base = 'membership/membershippremium.php';
    if (file_exists(WPMU_PLUGIN_DIR . '/' . $membership_plugin_base)) {
        $membership_plugin_file = WPMU_PLUGIN_DIR . '/' . $membership_plugin_base;
    } else {
        if (file_exists(WP_PLUGIN_DIR . '/' . $membership_plugin_base)) {
            $membership_plugin_file = WP_PLUGIN_DIR . '/' . $membership_plugin_base;
        }
    }
    $plugin_data = get_file_data($membership_plugin_file, $default_headers, 'plugin');
    //echo "plugin_data<pre>"; print_r($plugin_data); echo "</pre>";
    if (isset($plugin_data['Version'])) {
        if (version_compare($plugin_data['Version'], '3.4.9.9', '>')) {
            //echo "Membersip 3.5 or more<br />";
            return;
        }
    }
    //$aff = get_user_meta($user_id, 'affiliate_referred_by', true);
    $affiliate_referred_by = get_user_meta($m_user_id, 'affiliate_referred_by', true);
    //echo "affiliate_referred_by[". $affiliate_referred_by ."]<br />";
    if (empty($affiliate_referred_by)) {
        return;
    }
    //$paid = get_user_meta($user_id, 'affiliate_paid', true);
    $affiliate_paid = get_user_meta($m_user_id, 'affiliate_paid', true);
    //echo "affiliate_paid[". $affiliate_paid ."]<br />";
    if (defined('AFFILIATE_PAYONCE') && AFFILIATE_PAYONCE == 'yes' && $affiliate_paid == 'yes') {
        return;
    }
    $whole = get_option("membership_whole_payment_" . $m_tosub_id, 0);
    //echo "whole[". $whole ."]<br />";
    $partial = get_option("membership_partial_payment_" . $m_tosub_id, 0);
    //echo "partial[". $partial ."]<br />";
    $type = get_option("membership_payment_type_" . $m_tosub_id, 'actual');
    //echo "type[". $type ."]<br />";
    //die();
    switch ($type) {
        case 'actual':
            if (!empty($whole) || !empty($partial)) {
                $amount = $whole . '.' . $partial;
            } else {
                $amount = 0;
            }
            break;
        case 'percentage':
            // Calculate the charge for this subscription / level / order
            $sub = new M_Subscription($m_tosub_id);
            $level = $sub->get_level_at($m_tolevel_id, $m_to_order);
            if (!empty($level)) {
                // We have a level so we need to get the charge
                $percentage = $whole . '.' . $partial;
                $levelprice = $level->level_price;
                $floatprice = floatval($levelprice);
                $floatpercentage = floatval($percentage);
                if ($floatprice > 0 && $floatpercentage > 0) {
                    // We have a positive value to check against
                    $amount = $floatprice / 100 * $floatpercentage;
                    $amount = round($amount, 2, PHP_ROUND_HALF_DOWN);
                } else {
                    $amount = 0;
                }
            } else {
                $amount = 0;
            }
            break;
    }
    //echo "amount[". $amount ."]<br />";
    $meta = array('tosub_id' => $m_tosub_id, 'tolevel_id' => $m_tolevel_id, 'to_order' => $m_to_order, 'user_id' => $m_user_id, 'blog_id' => $blog_id, 'site_id' => $site_id, 'current_user_id' => get_current_user_id(), 'REMOTE_URL' => esc_attr($_SERVER['HTTP_REFERER']), 'LOCAL_URL' => (is_ssl() ? 'https://' : 'http://') . esc_attr($_SERVER['HTTP_HOST']) . esc_attr($_SERVER['REQUEST_URI']), 'IP' => isset($_SERVER['HTTP_X_FORWARD_FOR']) ? esc_attr($_SERVER['HTTP_X_FORWARD_FOR']) : esc_attr($_SERVER['REMOTE_ADDR']));
    do_action('affiliate_purchase', $affiliate_referred_by, $amount, 'paid:membership', $m_user_id, __('Membership', 'affiliate'), $meta);
    if (defined('AFFILIATE_PAYONCE') && AFFILIATE_PAYONCE == 'yes') {
        if (function_exists('update_user_meta')) {
            update_user_meta($m_user_id, 'affiliate_paid', 'yes');
        } else {
            update_usermeta($m_user_id, 'affiliate_paid', 'yes');
        }
    }
}