Webform now always uses the component ID to key submitted values, instead of sometimes the component ID and sometimes the component name. This means that when submitting a webform_pay form where the payment is on a later form step, that Pay module complains that the payment amount is outside of the accepted range (since it's NULL).

Comments

deviantintegral’s picture

Status: Active » Needs review
StatusFileSize
new3.52 KB

Here's a patch that fixes _webform_pay_component_value() to work with the new array structure, adds phpdoc for the function, and removes the $node parameter.

quicksketch’s picture

Priority: Normal » Critical
Status: Needs review » Fixed
StatusFileSize
new3.13 KB

Thanks, needed a reroll but clearly this is big, big problem for Webform Pay if it doesn't work with the current releases of Webform (3.12 or higher). I've committed this patch to the 6.x-1.x branch and the new 7.x-1.x branch.

quicksketch’s picture

Status: Fixed » Needs work

Hmm, looks like this bug only affect multi-page webforms. That would explain why other users successfully had been using Webform Pay without further reports.

Worse yet, this patch actually *breaks* single-page forms, as the form hasn't yet been flatten at the validate step (unless it's from a previous page). Moving back to needs work.

quicksketch’s picture

Title: Webform changed the internals of submitted values to always be keyed by component ID » Multiple page forms broken for Webform Pay by API change in Webform
Priority: Critical » Major
Status: Needs work » Fixed
StatusFileSize
new3.6 KB

I've committed this correction which makes Webform Pay act in the "old" way for validation but the new, flat structure way for multi-page validation and submission code. This should effectively make Webform Pay work with both single and multiple page forms.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.