public function saveAction() { if (!$this->_canPost()) { wp_redirect($this->_stepAdd); } $this->view->current_step = 3; $form = new Wpjb_Form_AddJob(); $request = $this->getRequest(); $id = $request->session("wpjb.job_id"); if ($id < 1) { if ($form->isValid($request->session("wpjb.job", array()))) { $paymentMethod = $form->getElement("payment_method")->getValue(); $form->save(); $job = $form->getObject(); if (strlen($request->session("wpjb.job_logo_ext")) > 0) { $ext = $request->session("wpjb.job_logo_ext"); $path1 = Wpjb_List_Path::getPath("tmp_images"); $path2 = Wpjb_List_Path::getPath("user_images"); $oldName = $path1 . "/temp_" . session_id() . "." . $ext; $newName = $path2 . "/job_" . $job->getId() . "." . $ext; $job->company_logo_ext = $ext; $job->save(); rename($oldName, $newName); } if ($job->payment_sum > 0) { $uid = null; if (wp_get_current_user()->ID > 0) { $uid = wp_get_current_user()->ID; } $payment = new Wpjb_Model_Payment(); $payment->user_id = $uid; $payment->object_id = $job->getId(); $payment->object_type = Wpjb_Model_Payment::FOR_JOB; $payment->engine = $paymentMethod; $payment->payment_currency = $job->payment_currency; $payment->payment_sum = $job->payment_sum; $payment->payment_paid = 0; $payment->save(); } $request->setSessionParam("wpjb.job", null); $request->setSessionParam("wpjb.job_logo_ext", null); $request->setSessionParam("wpjb.job_id", $job->getId()); } else { wp_redirect(Wpjb_Project::getInstance()->getUrl() . "/" . $this->_getRouter()->linkTo("step_add")); } } else { $job = new Wpjb_Model_Job($id); } if ($job->payment_sum > 0) { if ($job->payment_sum != $job->payment_paid) { $action = "payment_form"; } else { $action = "payment_already_sent"; } } else { $action = "job_online"; if ($job->is_active && $job->is_approved) { $online = true; } else { $online = false; } $this->view->online = $online; } if ($action == "payment_form") { $payment = Wpjb_Payment_Factory::factory($job->getPayment(true)); $this->view->payment = $payment->render(); } $this->view->action = $action; $this->view->job = $job; }