function subscriptionRedirect() { global $current_user; if (wp_verify_nonce($_POST['chargify_signup_noncename'], plugin_basename(__FILE__)) && is_numeric($_POST["submit"])) { if (!is_email($_POST["chargifySignupEmail"]) || !strlen($_POST["chargifySignupFirst"]) || !strlen($_POST["chargifySignupLast"])) { $_POST["chargify_signup_error"] = array('ERROR' => "All fields are required. Please enter a name and valid email address"); return 0; } $d = get_option("chargify"); $user_login = sanitize_user($_POST["chargifySignupEmail"]); $user_email = apply_filters('user_registration_email', $_POST["chargifySignupEmail"]); if ((username_exists($user_login) || email_exists($user_email)) && !$current_user->ID) { echo "User exists"; } else { $user_pass = wp_generate_password(); $return_url = $_REQUEST['return_url']; $trans = array(); $trans["user_login"] = $user_login; $trans["user_email"] = $user_email; $trans["user_pass"] = $user_pass; $trans["return_url"] = $return_url; _log("user already logged in"); //current user already logged in... if ($current_user->ID) { $trans['existing_user'] = true; } set_transient("chargify-" . md5($user_email . $_POST['submit'] . time()), $trans); $opt = array("api_key" => $d["chargifyApiKey"], "test_api_key" => $d["chargifyTestApiKey"], "domain" => $d["chargifyDomain"], "test_domain" => $d["chargifyTestDomain"], "test_mode" => $d["chargifyMode"] == 'test' ? TRUE : FALSE); $connector = new ChargifyConnector($opt); $product = $connector->getProductByID($_POST['submit']); $pubpage = array_shift($product->public_signup_pages); if (is_array($pubpage)) { $uri = '?first_name=' . urlencode($_POST["chargifySignupFirst"]) . '&last_name=' . urlencode($_POST["chargifySignupLast"]) . '&email=' . urlencode($_POST["chargifySignupEmail"]) . '&organization=' . urlencode($_POST["chargifySignupOrganization"]) . '&phone=' . urlencode($_POST["chargifySignupPhone"]) . '&reference=' . urlencode(md5($user_email . $_POST['submit'] . time())); header("Location: " . $pubpage['url'] . $uri); exit; /* if($d["chargifyMode"] == 'test') { header("Location: https://".$d["chargifyTestDomain"].".chargify.com/h/".$_POST["submit"]."/subscriptions/new".$uri); exit; } else { header("Location: https://".$d["chargifyDomain"].".chargify.com/h/".$_POST["submit"]."/subscriptions/new".$uri); exit; } */ } } } if (function_exists('json_decode') && $_SERVER["CONTENT_TYPE"] === 'application/json') { global $wpdb; $sub_ids = json_decode(file_get_contents('php://input')); if ($sub_ids !== NULL && is_array($sub_ids)) { $d = get_option('chargify'); $opt = array("api_key" => $d["chargifyApiKey"], "test_api_key" => $d["chargifyTestApiKey"], "domain" => $d["chargifyDomain"], "test_domain" => $d["chargifyTestDomain"], "test_mode" => $d["chargifyMode"] == 'test' ? TRUE : FALSE); $connector = new ChargifyConnector($opt); foreach ($sub_ids as $id) { $sub = $connector->getSubscriptionsBySubscriptionId($id); if ($sub->getStatus() == 'canceled') { $cur = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->usermeta} WHERE meta_key = 'chargify_custid' AND meta_value = %s", $sub->getCustomer()->getId())); if ($cur && $cur->user_id) { delete_user_meta($cur->user_id, 'chargify_level'); } } } } } }