function pmpro_insRecurringStopped($morder) { global $pmpro_error; //hook to do other stuff when payments stop do_action("pmpro_subscription_recuring_stopped", $last_order); $worked = pmpro_changeMembershipLevel(false, $morder->user->ID); if ($worked === true) { //$pmpro_msg = __("Your membership has been cancelled.", 'pmpro'); //$pmpro_msgt = "pmpro_success"; //send an email to the member $myemail = new PMProEmail(); $myemail->sendCancelEmail(); //send an email to the admin $myemail = new PMProEmail(); $myemail->sendCancelAdminEmail($morder->user, $morder->membership_level->id); inslog("Subscription cancelled due to 'recurring stopped' INS notification."); return true; } else { return false; } }
global $besecure; $besecure = false; global $current_user, $pmpro_msg, $pmpro_msgt, $pmpro_confirm, $pmpro_error; //if they don't have a membership, send them back to the subscription page if (empty($current_user->membership_level->ID)) { wp_redirect(pmpro_url("levels")); } if (isset($_REQUEST['confirm'])) { $pmpro_confirm = $_REQUEST['confirm']; } else { $pmpro_confirm = false; } if ($pmpro_confirm) { $old_level_id = $current_user->membership_level->id; $worked = pmpro_changeMembershipLevel(false, $current_user->ID); if ($worked === true && empty($pmpro_error)) { $pmpro_msg = __("Your membership has been cancelled.", 'pmpro'); $pmpro_msgt = "pmpro_success"; //send an email to the member $myemail = new PMProEmail(); $myemail->sendCancelEmail(); //send an email to the admin $myemail = new PMProEmail(); $myemail->sendCancelAdminEmail($current_user, $old_level_id); } else { global $pmpro_error; $pmpro_msg = $pmpro_error; $pmpro_msgt = "pmpro_error"; } }
(1) This order already has "cancelled" status. (2) The user doesn't currently have the level attached to this order. */ if ($last_subscr_order->status == "cancelled") { ipnlog("We've already processed this cancellation. Probably originated from WP/PMPro. (Order #" . $last_subscr_order->id . ", Subscription Transaction ID #" . $subscr_id . ")"); } elseif (!pmpro_hasMembershipLevel($last_subsc_order->membership_id, $user->ID)) { ipnlog("This user has a different level than the one associated with this order. Their membership was probably changed by an admin or through an upgrade/downgrade. (Order #" . $last_subscr_order->id . ", Subscription Transaction ID #" . $subscr_id . ")"); } else { pmpro_changeMembershipLevel(0, $last_subscr_order->user_id, 'cancelled'); ipnlog("Canceled membership for user with id = " . $last_subscr_order->user_id . ". Subscription transaction id = " . $subscr_id . "."); //send an email to the member $myemail = new PMProEmail(); $myemail->sendCancelEmail($user); //send an email to the admin $myemail = new PMProEmail(); $myemail->sendCancelAdminEmail($user, $last_subscr_order->membership_id); } } pmpro_ipnExit(); } } //Other //if we got here, this is a different kind of txn ipnlog("No recurring payment id or item number. txn_type = " . $txn_type); pmpro_ipnExit(); /* Add message to ipnlog string */ function ipnlog($s) { global $logstr;