function subscriptionPost($content) { if (is_user_logged_in()) { $d = get_option("chargify"); //Process full CC single form if (wp_verify_nonce($_POST['chargify_signupcc_noncename'], plugin_basename(__FILE__))) { $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); /* This is where I need to insert $pay_id + other subscription elements.. ie, product_id, organization, etc. and remove the elements that coincide with payment_profile, so remove billing info*/ if ((username_exists($user_login) || email_exists($user_email)) && !$current_user->ID) { $newsub = $connector->newSubscription($xml); if (!$_POST['return_url']) { $_POST['return_url'] = site_url(); } self::login($user_id, $user_email, $_POST['return_url']); } } } else { $d = get_option("chargify"); //Process full CC single form if (wp_verify_nonce($_POST['chargify_signupcc_noncename'], plugin_basename(__FILE__))) { $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); $xml = '<?xml version="1.0" encoding="UTF-8"?> <subscription> <product_id>' . $_POST["submit"] . '</product_id> <customer_attributes> <first_name>' . $_POST["chargifySignupFirst"] . '</first_name> <last_name>' . $_POST["chargifySignupLast"] . '</last_name> <email>' . $_POST["chargifySignupEmail"] . '</email> <organization>' . $POST["chargifySignupOrganization"] . '</organization> <phone>' . $POST["chargifySignupPhone"] . '</phone> </customer_attributes> <credit_card_attributes> <first_name>' . $_POST["chargifySignupBillFirst"] . '</first_name> <last_name>' . $_POST["chargifySignupBillLast"] . '</last_name> <billing_address>' . $_POST["chargifySignupBillAddress"] . '</billing_address> <billing_city>' . $_POST["chargifySignupBillCity"] . '</billing_city> <billing_state>' . $_POST["chargifySignupBillState"] . '</billing_state> <billing_zip>' . $_POST["chargifySignupBillZip"] . '</billing_zip> <billing_country>' . $_POST["chargifySignupBillCountry"] . '</billing_country> <full_number>' . $_POST["chargifySignupBillCc"] . '</full_number> <expiration_month>' . $_POST["chargifySignupExpMo"] . '</expiration_month> <expiration_year>' . $_POST["chargifySignupExpYr"] . '</expiration_year> </credit_card_attributes> </subscription>'; $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) { $newsub = $connector->newSubscription($xml); if(!$_POST['return_url']) $_POST['return_url'] = site_url(); self::login( $user_id, $user_email,$_POST['return_url']); } else {*/ $res = $connector->createCustomerAndSubscription($xml); if (strlen($res->error)) { $_POST["chargify_signup_error"]['ERROR'] = '<strong>' . $res->error . '</strong>'; return 0; } else { $user_pass = wp_generate_password(); $args = array('user_login' => $user_login, 'user_pass' => $user_pass, 'user_email' => $user_email); $user_id = wp_insert_user($args); wp_new_user_notification($user_id, $user_pass); update_user_meta($user_id, 'chargify_level', array($res->getProduct()->getHandle() => 1)); update_user_meta($user_id, 'chargify_custid', $res->getCustomer()->getId()); //update_user_meta( $user_id, 'chargify_payid', $res->getCustomer()->getId()->getPaymentProfile()); $_POST["chargify_signup_error"]['ERROR'] = '<strong>' . $d['chargifyThankYou'] . '</strong>'; if (!$_POST['return_url']) { $_POST['return_url'] = site_url(); } self::login($user_id, $user_email, $_POST['return_url']); } } } }