Craft CMS Asked by schnitzels on June 18, 2021
I have a custom plugin where I get a freeform submission by token. I woud like to change a value in this submission and resave the submission. When I try this the old form data gets overwritten.
$submission = Freeform::getInstance()->submissions->getSubmissionByToken($submissionToken);
$submission->setFormFieldValues(['customField' => $customFieldValue]);
// method 1, doesn't accept type submission, should be form
Freeform::getInstance()->submissions->storeSubmission($submission);
// method 2, old data get's overwritten, current submissiontoken changes
Craft::$app->elements->saveElement($submission);
It looks like setFormFieldValues()
has an optional second parameter related to overriding values...
public function setFormFieldValues(array $values, bool $override = true)
So, changing...
$submission->setFormFieldValues(['customField' => $customFieldValue]);
... to...
$submission->setFormFieldValues(['customField' => $customFieldValue], false);
may help with the override issue.
Correct answer by Dan Letsche on June 18, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP