本文整理汇总了PHP中pmpro_isLevelRecurring函数的典型用法代码示例。如果您正苦于以下问题:PHP pmpro_isLevelRecurring函数的具体用法?PHP pmpro_isLevelRecurring怎么用?PHP pmpro_isLevelRecurring使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pmpro_isLevelRecurring函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: process
function process(&$order)
{
//check for initial payment
if (floatval($order->InitialPayment) == 0) {
//just subscribe
return $this->subscribe($order);
} else {
//charge then subscribe
if ($this->charge($order)) {
if (pmpro_isLevelRecurring($order->membership_level)) {
if ($this->subscribe($order)) {
//yay!
return true;
} else {
//try to refund initial charge
return false;
}
} else {
//only a one time charge
$order->status = "success";
//saved on checkout page
return true;
}
} else {
if (empty($order->error)) {
$order->error = __("Unknown error: Initial payment failed.", "pmpro");
}
return false;
}
}
}
示例2: process
function process(&$order)
{
if (pmpro_isLevelRecurring($order->membership_level)) {
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod)) . "T0:0:0";
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
return $this->subscribe($order);
} else {
return $this->charge($order);
}
}
示例3: process
function process(&$order)
{
if (floatval($order->InitialPayment) == 0) {
//auth first, then process
$authorization_id = $this->authorize($order);
if ($authorization_id) {
$this->void($order, $authorization_id);
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod, current_time("timestamp"))) . "T0:0:0";
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
return $this->subscribe($order);
} else {
if (empty($order->error)) {
$order->error = __("Unknown error: Authorization failed.", "pmpro");
}
return false;
}
} else {
//charge first payment
if ($this->charge($order)) {
//setup recurring billing
if (pmpro_isLevelRecurring($order->membership_level)) {
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod, current_time("timestamp"))) . "T0:0:0";
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
if ($this->subscribe($order)) {
return true;
} else {
if ($this->void($order, $order->payment_transaction_id)) {
if (empty($order->error)) {
$order->error = __("Unknown error: Payment failed.", "pmpro");
}
} else {
if (empty($order->error)) {
$order->error = __("Unknown error: Payment failed.", "pmpro");
}
$order->error .= " " . __("A partial payment was made that we could not refund. Please contact the site owner immediately to correct this.", "pmpro");
}
return false;
}
} else {
//only a one time charge
$order->status = "success";
//saved on checkout page
$order->saveOrder();
return true;
}
}
}
}
示例4: sornot
?>
:</strong> <?php
echo $level->billing_limit . ' ' . sornot($level->cycle_period, $level->billing_limit);
?>
</li>
<?php
}
?>
</ul>
<?php
}
?>
<?php
if (pmpro_isLevelRecurring($level)) {
?>
<?php
if ($show_paypal_link) {
?>
<p><?php
_e('Your payment subscription is managed by PayPal. Please <a href="http://www.paypal.com">login to PayPal here</a> to update your billing information.', 'pmpro');
?>
</p>
<?php
} else {
?>
<form class="pmpro_form" action="<?php
示例5: cancel
function cancel(&$order)
{
// If recurring, stop the recurring payment
if (pmpro_isLevelRecurring($order->membership_level)) {
$params['sale_id'] = $order->payment_transaction_id;
$result = Twocheckout_Sale::stop($params);
// Stop the recurring billing
// Successfully cancelled
if (isset($result['response_code']) && $result['response_code'] === 'OK') {
$order->updateStatus("cancelled");
return true;
} else {
$order->status = "error";
$order->errorcode = $result->getCode();
$order->error = $result->getMessage();
return false;
}
}
return $order;
}
示例6: _e
</a>
-->
<a class="pmpro_btn pmpro_btn-select change-subscription" href="<?php
echo "/billing/subscription-checkout?level=" . $level->id;
?>
"><?php
_e('Select Plan', 'pmpro');
?>
</a>
<?php
} elseif ($current_level) {
?>
<?php
//if it's a one-time-payment level, offer a link to renew
if (!pmpro_isLevelRecurring($current_user->membership_level) && !empty($current_user->membership_level->enddate)) {
?>
<a class="pmpro_btn pmpro_btn-select renew" href="<?php
echo pmpro_url("checkout", "?level=" . $level->id, "https");
?>
"><?php
_e('Renew', 'pmpro');
?>
</a>
<?php
} else {
?>
<a class="pmpro_btn disabled your-current-level" href="<?php
echo pmpro_url("account");
?>
"><?php
示例7: pmpro_url
<a class="pmpro_btn pmpro_btn-select" href="<?php
echo pmpro_url("checkout", "?level=" . $level->id, "https");
?>
"><?php
_e('Select', 'pmpro');
?>
</a>
<?php
} elseif ($current_level) {
?>
<?php
//if it's a one-time-payment level, offer a link to renew
if (!pmpro_isLevelRecurring($current_user->membership_level)) {
?>
<a class="pmpro_btn pmpro_btn-select" href="<?php
echo pmpro_url("checkout", "?level=" . $level->id, "https");
?>
"><?php
_e('Renew', 'pmpro');
?>
</a>
<?php
} else {
?>
<a class="pmpro_btn disabled" href="<?php
echo pmpro_url("account");
?>
"><?php
示例8: if
foreach($levels as $level)
{
?>
<tr class="<?php if(!$level->allow_signups) { ?>pmpro_gray<?php } ?> <?php if(!pmpro_checkLevelForStripeCompatibility($level) || !pmpro_checkLevelForBraintreeCompatibility($level) || !pmpro_checkLevelForPayflowCompatibility($level)) { ?>pmpro_error<?php } ?>">
<td><?php echo $level->id?></td>
<td><?php echo $level->name?></td>
<td>
<?php if(pmpro_isLevelFree($level)) { ?>
FREE
<?php } else { ?>
<?php echo $pmpro_currency_symbol?><?php echo $level->initial_payment?>
<?php } ?>
</td>
<td>
<?php if(!pmpro_isLevelRecurring($level)) { ?>
--
<?php } else { ?>
<?php echo $pmpro_currency_symbol?><?php echo $level->billing_amount?> every <?php echo $level->cycle_number.' '.sornot($level->cycle_period,$level->cycle_number)?>
<?php if($level->billing_limit) { ?>(for <?php echo $level->billing_limit?> <?php echo sornot($level->cycle_period,$level->billing_limit)?>)<?php } ?>
<?php } ?>
</td>
<td>
<?php if(!pmpro_isLevelTrial($level)) { ?>
--
<?php } else { ?>
<?php echo $pmpro_currency_symbol?><?php echo $level->trial_amount?> for <?php echo $level->trial_limit?> <?php echo sornot("payment",$level->trial_limit)?>
<?php } ?>
</td>
示例9: sendToMigs
function sendToMigs(&$order)
{
global $pmpro_currency;
//$order_id = $order->code;
//taxes on initial amount
$initial_payment = $order->InitialPayment;
$initial_payment_tax = $order->getTaxForPrice($initial_payment);
$initial_payment = round((double) $initial_payment + (double) $initial_payment_tax, 2);
$details = '';
//taxes on the amount (NOT CURRENTLY USED)
$amount = $order->PaymentAmount;
$amount_tax = $order->getTaxForPrice($amount);
$amount = round((double) $amount + (double) $amount_tax, 2);
// Recurring membership
if (pmpro_isLevelRecurring($order->membership_level)) {
$amount = number_format($initial_payment - $amount, 2, ".", "");
//negative amount for lower initial payments
$recurring_payment = number_format($order->membership_level->billing_amount, 2, ".", "");
$recurring_payment_tax = number_format($order->getTaxForPrice($recurring_payment), 2, ".", "");
$recurring_payment = number_format(round((double) $recurring_payment + (double) $recurring_payment_tax, 2), 2, ".", "");
$amount = number_format($recurring_payment, 2, ".", "");
$details = $order->BillingFrequency == 1 ? $order->BillingFrequency . ' ' . $order->BillingPeriod : $order->BillingFrequency . ' ' . $order->BillingPeriod . 's';
if (property_exists($order, 'TotalBillingCycles')) {
$details = $order->BillingFrequency * $order->TotalBillingCycles . ' ' . $order->BillingPeriod;
} else {
$details = 'Forever';
}
} else {
$amount = number_format($initial_payment, 2, ".", "");
}
if (!empty($order->TrialBillingPeriod)) {
$trial_amount = $order->TrialAmount;
$trial_tax = $order->getTaxForPrice($trial_amount);
$trial_amount = pmpro_formatPrice(round((double) $trial_amount + (double) $trial_tax, 2), false, false);
$amount = $trial_amount;
// Negative trial amount
}
global $pmpro_level;
//create a code for the order
if (empty($order->code)) {
$order->code = $order->getRandomCode();
}
//what amount to charge?
$amount = $order->InitialPayment;
//tax
$order->subtotal = $amount;
$tax = $order->getTax(true);
$amount = round((double) $order->subtotal + (double) $tax, 2);
//create a customer
//$result = $this->getCustomer($order);
/*if(empty($result))
{
//failed to create customer
return false;
}*/
//charge
try {
$order_id = $order->code;
$order_amount = 100 * $amount;
$md5Hash = pmpro_getOption("securehashe");
/* Make sure user entered MIGS url, otherwise use the default one */
if (trim($this->service_host) == "" || $this->service_host == null) {
$this->service_host = "https://migs.mastercard.com.au/vpcpay";
}
$service_host = $this->service_host . "?";
$rurl = admin_url("admin-ajax.php") . "?action=migspaymenthandler";
//$rurl='https://nibaya.com/ccc/wp-content/plugins/pmpro-example-gateway/classes/paymenthandler.php?';
//$rurl = pmpro_url("confirmation", "?level=" . $order->membership_level);
$user_ID = get_current_user_id();
$DigitalOrder = array("vpc_Version" => "1", "vpc_Command" => "pay", "vpc_AccessCode" => pmpro_getOption("accescodee"), "vpc_MerchTxnRef" => $order_id . '_' . date("Y-m-d"), "vpc_Merchant" => pmpro_getOption("merchantide"), "vpc_OrderInfo" => $order_id . '_' . date("Y-m-d"), "vpc_Amount" => $order_amount, "vpc_Locale" => "en", "vpc_ReturnURL" => $rurl . '&level=1');
ksort($DigitalOrder);
foreach ($DigitalOrder as $key => $value) {
if (strlen($value) > 0) {
if ($appendAmp == 0) {
$service_host .= urlencode($key) . '=' . urlencode($value);
$appendAmp = 1;
} else {
$service_host .= '&' . urlencode($key) . "=" . urlencode($value);
}
$md5Hash .= $value;
}
}
$service_host .= "&vpc_SecureHash=" . strtoupper(md5($md5Hash));
//$order->saveOrder();
//echo $service_host;
header("Location:" . $service_host);
exit;
} catch (Exception $e) {
//$order->status = "error";
$order->errorcode = true;
$order->error = "Error: " . $e->getMessage();
$order->shorterror = $order->error;
return false;
}
//$order->saveOrder();
//echo $service_host;
//header("Location:".$service_host);
//exit();
// Demo mode?
// if(empty($order->gateway_environment))
//.........这里部分代码省略.........
示例10: getLevels
//.........这里部分代码省略.........
if (empty($current_user->membership_level->ID)) {
?>
<a class="pmpro_btn pmpro_btn-select sign-up" href="<?php
echo pmpro_url("checkout", "?level=" . $level->id, "https");
?>
"><?php
_e('Sign Up', 'pmpro');
?>
</a>
<?php
} elseif (!$current_level) {
?>
<!--
<a class="pmpro_btn pmpro_btn-select" href="<?php
//echo pmpro_url("checkout", "?level=" . $level->id, "https")
?>
"><?php
//_e('Change Subscription', 'pmpro');
?>
</a>
-->
<a class="pmpro_btn pmpro_btn-select change-subscription" href="<?php
echo "/billing/subscription-checkout?level=" . $level->id;
?>
"><?php
_e('Change Subscription', 'pmpro');
?>
</a>
<?php
} elseif ($current_level) {
?>
<?php
//if it's a one-time-payment level, offer a link to renew
if (!pmpro_isLevelRecurring($current_user->membership_level) && !empty($current_user->membership_level->enddate)) {
?>
<a class="pmpro_btn pmpro_btn-select renew" href="<?php
echo pmpro_url("checkout", "?level=" . $level->id, "https");
?>
"><?php
_e('Renew', 'pmpro');
?>
</a>
<?php
} else {
?>
<a class="pmpro_btn disabled your-current-level" href="<?php
echo pmpro_url("account");
?>
"><?php
_e('Your Current Level', 'pmpro');
?>
</a>
<?php
}
?>
<?php
}
?>
</div>
</div>
<?php
}
?>
<div class="clear clearfix"></div>
<nav id="nav-below" class="navigation" role="navigation">
<div class="nav-previous alignleft">
<?php
if (!empty($current_user->membership_level->ID)) {
?>
<!--
<a href="<?php
echo pmpro_url("account");
?>
"><?php
_e('← Return to Your Account', 'pmpro');
?>
</a>
-->
<?php
} else {
?>
<a href="<?php
echo home_url();
?>
"><?php
_e('← Return to Home', 'pmpro');
?>
</a>
<?php
}
?>
</div>
</nav>
</div>
</div>
<?php
}
示例11: memberlite_levels_shortcode
//.........这里部分代码省略.........
</td>
<?php
}
?>
<td>
<?php
if (empty($current_user->membership_level->ID)) {
?>
<a class="pmpro_btn pmpro_btn-select" href="<?php
echo pmpro_url("checkout", "?level=" . $level->id, "https");
?>
"><?php
echo $checkout_button;
?>
</a>
<?php
} elseif (!$current_level) {
?>
<a class="pmpro_btn pmpro_btn-select" href="<?php
echo pmpro_url("checkout", "?level=" . $level->id, "https");
?>
"><?php
echo $checkout_button;
?>
</a>
<?php
} elseif ($current_level) {
?>
<?php
//if it's a one-time-payment level, offer a link to renew
if (!pmpro_isLevelRecurring($current_user->membership_level) && !empty($current_user->membership_level->enddate)) {
?>
<a class="pmpro_btn pmpro_btn-select" href="<?php
echo pmpro_url("checkout", "?level=" . $level->id, "https");
?>
"><?php
echo $renew_button;
?>
</a>
<?php
} else {
?>
<a class="pmpro_btn disabled" href="<?php
echo pmpro_url("account");
?>
"><?php
echo $account_button;
?>
</a>
<?php
}
?>
<?php
}
?>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
示例12: pmpropbc_isMemberPending
function pmpropbc_isMemberPending($user_id)
{
global $pmpropbc_pending_member_cache;
//check the cache first
if (isset($pmpropbc_pending_member_cache[$user_id])) {
return $pmpropbc_pending_member_cache[$user_id];
}
//no cache, assume they aren't pending
$pmpropbc_pending_member_cache[$user_id] = false;
//check their last order
$order = new MemberOrder();
$order->getLastMemberOrder($user_id, NULL);
//NULL here means any status
if (!empty($order)) {
if ($order->status == "pending") {
//for recurring levels, we should check if there is an older successful order
$membership_level = pmpro_getMembershipLevelForUser($user_id);
if (pmpro_isLevelRecurring($membership_level)) {
//unless the previous order has status success and we are still within the grace period
$paid_order = new MemberOrder();
$paid_order->getLastMemberOrder($user_id, 'success', $order->membership_id);
if (!empty($paid_order) && !empty($paid_order->id)) {
//how long ago is too long?
$options = pmpropbc_getOptions($membership_level->id);
$cutoff = strtotime("- " . $membership_level->cycle_number . " " . $membership_level->cycle_period, current_time("timestamp")) - $options['cancel_days'] * 3600 * 24;
//too long ago?
if ($paid_order->timestamp < $cutoff) {
$pmpropbc_pending_member_cache[$user_id] = true;
} else {
$pmpropbc_pending_member_cache[$user_id] = false;
}
} else {
//no previous order, this must be the first
$pmpropbc_pending_member_cache[$user_id] = true;
}
} else {
//one time payment, so only interested in the last payment
$pmpropbc_pending_member_cache[$user_id] = true;
}
}
}
return $pmpropbc_pending_member_cache[$user_id];
}
示例13: pmpro_shortcode_account
function pmpro_shortcode_account($atts, $content = null, $code = "")
{
global $wpdb, $pmpro_msg, $pmpro_msgt, $pmpro_levels, $current_user, $levels;
// $atts ::= array of attributes
// $content ::= text within enclosing form of shortcode element
// $code ::= the shortcode found, when == callback name
// examples: [pmpro_account] [pmpro_account sections="membership,profile"/]
extract(shortcode_atts(array('section' => '', 'sections' => 'membership,profile,invoices,links'), $atts));
//did they use 'section' instead of 'sections'?
if (!empty($section)) {
$sections = $section;
}
//Extract the user-defined sections for the shortcode
$sections = array_map('trim', explode(",", $sections));
ob_start();
//if a member is logged in, show them some info here (1. past invoices. 2. billing information with button to update.)
if (pmpro_hasMembershipLevel()) {
$ssorder = new MemberOrder();
$ssorder->getLastMemberOrder();
$mylevels = pmpro_getMembershipLevelsForUser();
$pmpro_levels = pmpro_getAllLevels(false, true);
// just to be sure - include only the ones that allow signups
$invoices = $wpdb->get_results("SELECT *, UNIX_TIMESTAMP(timestamp) as timestamp FROM {$wpdb->pmpro_membership_orders} WHERE user_id = '{$current_user->ID}' AND status NOT IN('refunded', 'review', 'token', 'error') ORDER BY timestamp DESC LIMIT 6");
?>
<div id="pmpro_account">
<?php
if (in_array('membership', $sections) || in_array('memberships', $sections)) {
?>
<div id="pmpro_account-membership" class="pmpro_box">
<h3><?php
_e("My Memberships", "pmpro");
?>
</h3>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<thead>
<tr>
<th><?php
_e("Level", "pmpro");
?>
</th>
<th><?php
_e("Billing", "pmpro");
?>
</th>
<th><?php
_e("Expiration", "pmpro");
?>
</th>
</tr>
</thead>
<tbody>
<?php
foreach ($mylevels as $level) {
?>
<tr>
<td class="pmpro_account-membership-levelname">
<?php
echo $level->name;
?>
<div class="pmpro_actionlinks">
<?php
do_action("pmpro_member_action_links_before");
?>
<?php
if (array_key_exists($level->id, $pmpro_levels) && pmpro_isLevelExpiringSoon($level)) {
?>
<a href="<?php
echo pmpro_url("checkout", "?level=" . $level->id, "https");
?>
"><?php
_e("Renew", "pmpro");
?>
</a>
<?php
}
?>
<?php
if (isset($ssorder->status) && $ssorder->status == "success" && (isset($ssorder->gateway) && in_array($ssorder->gateway, array("authorizenet", "paypal", "stripe", "braintree", "payflow", "cybersource"))) && pmpro_isLevelRecurring($level)) {
?>
<a href="<?php
echo pmpro_url("billing", "", "https");
?>
"><?php
_e("Update Billing Info", "pmpro");
?>
</a>
<?php
}
?>
<?php
//To do: Only show CHANGE link if this level is in a group that has upgrade/downgrade rules
if (count($pmpro_levels) > 1 && !defined("PMPRO_DEFAULT_LEVEL")) {
?>
<a href="<?php
echo pmpro_url("levels");
//.........这里部分代码省略.........
示例14: if
}
?>
</select>
<br /><small>The amount to be billed one cycle after the initial payment.</small>
</td>
</tr>
<tr class="recurring_info" <?php if(!pmpro_isLevelRecurring($level)) {?>style="display: none;"<?php } ?>>
<th scope="row" valign="top"><label for="billing_limit">Billing Cycle Limit:</label></th>
<td>
<input name="billing_limit[]" type="text" size="20" value="<?php echo $level->billing_limit?>" />
<br /><small>The <strong>total</strong> number of billing cycles for this level, including the trial period (if applicable). Set to zero if membership is indefinite.</small>
</td>
</tr>
<tr class="recurring_info" <?php if (!pmpro_isLevelRecurring($level)) echo "style='display:none;'";?>>
<th scope="row" valign="top"><label>Custom Trial:</label></th>
<td><input id="custom_trial_<?php echo $level->id?>" name="custom_trial[]" type="checkbox" value="<?php echo $level->id?>" <?php if ( pmpro_isLevelTrial($level) ) { echo "checked='checked'"; } ?> onclick="if(jQuery(this).attr('checked')) jQuery(this).parent().parent().siblings('.trial_info').show(); else jQuery(this).parent().parent().siblings('.trial_info').hide();" /> Check to add a custom trial period.</td>
</tr>
<tr class="trial_info recurring_info" <?php if (!pmpro_isLevelTrial($level)) echo "style='display:none;'";?>>
<th scope="row" valign="top"><label for="trial_amount">Trial Billing Amount:</label></th>
<td>
<?php echo $pmpro_currency_symbol?><input name="trial_amount[]" type="text" size="20" value="<?php echo str_replace("\"", """, stripslashes($level->trial_amount))?>" />
<small>for the first</small>
<input name="trial_limit[]" type="text" size="10" value="<?php echo str_replace("\"", """, stripslashes($level->trial_limit))?>" />
<small>subscription payments.</small>
</td>
</tr>
<tr>
示例15: process
function process(&$order)
{
//clean up a couple values
$order->payment_type = "Check";
$order->CardType = "";
$order->cardtype = "";
//check for initial payment
if(floatval($order->InitialPayment) == 0)
{
//auth first, then process
if($this->authorize($order))
{
$this->void($order);
if(!pmpro_isLevelTrial($order->membership_level))
{
//subscription will start today with a 1 period trial
$order->ProfileStartDate = date("Y-m-d") . "T0:0:0";
$order->TrialBillingPeriod = $order->BillingPeriod;
$order->TrialBillingFrequency = $order->BillingFrequency;
$order->TrialBillingCycles = 1;
$order->TrialAmount = 0;
//add a billing cycle to make up for the trial, if applicable
if(!empty($order->TotalBillingCycles))
$order->TotalBillingCycles++;
}
elseif($order->InitialPayment == 0 && $order->TrialAmount == 0)
{
//it has a trial, but the amount is the same as the initial payment, so we can squeeze it in there
$order->ProfileStartDate = date("Y-m-d") . "T0:0:0";
$order->TrialBillingCycles++;
//add a billing cycle to make up for the trial, if applicable
if($order->TotalBillingCycles)
$order->TotalBillingCycles++;
}
else
{
//add a period to the start date to account for the initial payment
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $order->BillingFrequency . " " . $order->BillingPeriod)) . "T0:0:0";
}
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
return $this->subscribe($order);
}
else
{
if(empty($order->error))
$order->error = "Unknown error: Authorization failed.";
return false;
}
}
else
{
//charge first payment
if($this->charge($order))
{
//setup recurring billing
if(pmpro_isLevelRecurring($order->membership_level))
{
if(!pmpro_isLevelTrial($order->membership_level))
{
//subscription will start today with a 1 period trial
$order->ProfileStartDate = date("Y-m-d") . "T0:0:0";
$order->TrialBillingPeriod = $order->BillingPeriod;
$order->TrialBillingFrequency = $order->BillingFrequency;
$order->TrialBillingCycles = 1;
$order->TrialAmount = 0;
//add a billing cycle to make up for the trial, if applicable
if(!empty($order->TotalBillingCycles))
$order->TotalBillingCycles++;
}
elseif($order->InitialPayment == 0 && $order->TrialAmount == 0)
{
//it has a trial, but the amount is the same as the initial payment, so we can squeeze it in there
$order->ProfileStartDate = date("Y-m-d") . "T0:0:0";
$order->TrialBillingCycles++;
//add a billing cycle to make up for the trial, if applicable
if(!empty($order->TotalBillingCycles))
$order->TotalBillingCycles++;
}
else
{
//add a period to the start date to account for the initial payment
$order->ProfileStartDate = date("Y-m-d", strtotime("+ " . $this->BillingFrequency . " " . $this->BillingPeriod)) . "T0:0:0";
}
$order->ProfileStartDate = apply_filters("pmpro_profile_start_date", $order->ProfileStartDate, $order);
if($this->subscribe($order))
{
return true;
}
else
{
if($this->void($order))
{
if(!$order->error)
//.........这里部分代码省略.........