WordPress.org

Ready to get started?Download WordPress

Forums

WP Stripe
Commas? (5 posts)

  1. castle9mm
    Member
    Posted 11 months ago #

    I'm seeing issues with commas in the amount field. When a donation is entered as $1000 the transaction goes through just fine. When a user enters $1,000 the transaction is actually processed as one dollar. This happened in Live & Test mode with Stripe so it should be easy to duplicate if anyone else is having the issue.

    http://wordpress.org/plugins/wp-stripe/

  2. erikfrick
    Member
    Posted 10 months ago #

    I'm having this same issue. My guess is that it has to do with the validation of the information. I still need to test this, but my theory is that the wp-stripe.js file, line 60 is breaking when it encounters a comma in the field. That line is converting the amount to charge into cents.

    A quick test in the JS console shows that:
    1,000 * 100 = 0

    but that:
    1000 * 100 = 100000

    Again, I still need to test this out, but I sure hope it's as simple as that.

  3. erikfrick
    Member
    Posted 10 months ago #

    Ok, my initial theory was only slightly wrong. I thought it was a JS validation issue, when it was really an issue with PHP validation. Yeesh! Follow instructions below to fix the issue.

    In your wp-stripe plugin folder open the stripe-functions.php file in the 'includes' folder. Go down to lines 118-121 or so, you'll see something like this:

    $public = $_POST['wp_stripe_public'];
    $name = $_POST['wp_stripe_name'];
    $email = $_POST['wp_stripe_email'];
    $amount = str_replace('$', '', $_POST['wp_stripe_amount']) * 100;
    $card = $_POST['stripeToken'];

    Change that block to:

    $public = $_POST['wp_stripe_public'];
    $name = $_POST['wp_stripe_name'];
    $email = $_POST['wp_stripe_email'];
    $amount = str_replace(',', '', $_POST['wp_stripe_amount']);
    $amount = str_replace('$', '', $amount) * 100;
    $card = $_POST['stripeToken'];

    Basically, all we're doing is stripping out commas from the string before we strip out the dollar signs and convert the dollar amount to cents (that's how Stripe likes it's amounts).

  4. greg.blass
    Member
    Posted 7 months ago #

    To me this is a serious bug!

    My client just typed in 1,925 in a live environment and got charged $1.00

  5. greg.blass
    Member
    Posted 7 months ago #

    The above code from erikfrick fixes the problem. This should be merged into the latest version.

Reply

You must log in to post.

About this Plugin

About this Topic

Tags