Esempio n. 1
0
    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']);
                }
            }
        }
    }