diff --git a/mailpoet/lib/Automation/Engine/Control/StepHandler.php b/mailpoet/lib/Automation/Engine/Control/StepHandler.php index 26b05952af..b342c7bff2 100644 --- a/mailpoet/lib/Automation/Engine/Control/StepHandler.php +++ b/mailpoet/lib/Automation/Engine/Control/StepHandler.php @@ -100,7 +100,7 @@ class StepHandler { $this->handleStep($args); } catch (Throwable $e) { $status = $e instanceof InvalidStateException && $e->getErrorCode() === 'mailpoet_automation_workflow_not_active' ? WorkflowRun::STATUS_CANCELLED : WorkflowRun::STATUS_FAILED; - $this->workflowRunStorage->updateStatus($status, (int)$args['workflow_run_id']); + $this->workflowRunStorage->updateStatus((int)$args['workflow_run_id'], $status); $this->postProcessWorkflowRun((int)$args['workflow_run_id']); if (!$e instanceof Exception) { throw new Exception($e->getMessage(), intval($e->getCode()), $e); @@ -133,7 +133,7 @@ class StepHandler { // complete workflow run if (!$stepId) { - $this->workflowRunStorage->updateStatus(WorkflowRun::STATUS_COMPLETE, $workflowRunId); + $this->workflowRunStorage->updateStatus($workflowRunId, WorkflowRun::STATUS_COMPLETE); return; } @@ -185,7 +185,7 @@ class StepHandler { // no need to schedule a new step if the next step is null, complete the run if (!$nextStep) { - $this->workflowRunStorage->updateStatus(WorkflowRun::STATUS_COMPLETE, $workflowRunId); + $this->workflowRunStorage->updateStatus($workflowRunId, WorkflowRun::STATUS_COMPLETE); return; } diff --git a/mailpoet/lib/Automation/Engine/Storage/WorkflowRunStorage.php b/mailpoet/lib/Automation/Engine/Storage/WorkflowRunStorage.php index a292478b3d..492a6c2f39 100644 --- a/mailpoet/lib/Automation/Engine/Storage/WorkflowRunStorage.php +++ b/mailpoet/lib/Automation/Engine/Storage/WorkflowRunStorage.php @@ -52,13 +52,9 @@ class WorkflowRunStorage { ) : []; } - public function updateStatus(string $status, int ...$ids): void { - if (!$ids) { - return; - } + public function updateStatus(int $id, string $status): void { $table = esc_sql($this->table); - $ids = esc_sql(implode(',', $ids)); - $query = (string)$this->wpdb->prepare("UPDATE $table SET status = %s WHERE id IN ($ids)", $status); + $query = (string)$this->wpdb->prepare("UPDATE $table SET status = %s WHERE id = %d", $status, $id); $result = $this->wpdb->query($query); if ($result === false) { throw Exceptions::databaseError($this->wpdb->last_error);