/** * Entry created * * @param array $lead * @param array $form */ public function entry_created($lead, $form) { if ($this->is_processing($form)) { $this->gateway = Pronamic_WP_Pay_Plugin::get_gateway($this->feed->config_id); if ($this->gateway) { $data = new Pronamic_WP_Pay_Extensions_GravityForms_PaymentData($form, $lead, $this->feed); $this->payment = Pronamic_WP_Pay_Plugin::start($this->feed->config_id, $this->gateway, $data); $this->error = $this->gateway->get_error(); } } }
/** * Entry post save * * @param array $lead * @param array $form */ public function entry_post_save($lead, $form) { if ($this->is_processing($form)) { // Payment ID $payment_id = gform_get_meta($lead['id'], 'pronamic_payment_id'); if (!empty($payment_id)) { return $lead; } // Gateway $this->gateway = Pronamic_WP_Pay_Plugin::get_gateway($this->feed->config_id); if (!$this->gateway) { return $lead; } // New payment $data = new Pronamic_WP_Pay_Extensions_GravityForms_PaymentData($form, $lead, $this->feed); $payment_method = $data->get_payment_method(); // Set payment method to iDEAL if issuer_id is set if (null === $data->get_payment_method() && null !== $data->get_issuer_id()) { $payment_method = Pronamic_WP_Pay_PaymentMethods::IDEAL; } $this->payment = Pronamic_WP_Pay_Plugin::start($this->feed->config_id, $this->gateway, $data, $payment_method); $this->error = $this->gateway->get_error(); // Updating lead's payment_status to Processing $lead[Pronamic_WP_Pay_Extensions_GravityForms_LeadProperties::PAYMENT_STATUS] = Pronamic_WP_Pay_Extensions_GravityForms_PaymentStatuses::PROCESSING; $lead[Pronamic_WP_Pay_Extensions_GravityForms_LeadProperties::PAYMENT_AMOUNT] = $this->payment->get_amount(); $lead[Pronamic_WP_Pay_Extensions_GravityForms_LeadProperties::PAYMENT_DATE] = gmdate('y-m-d H:i:s'); $lead[Pronamic_WP_Pay_Extensions_GravityForms_LeadProperties::TRANSACTION_TYPE] = Pronamic_WP_Pay_Extensions_GravityForms_GravityForms::TRANSACTION_TYPE_PAYMENT; $lead[Pronamic_WP_Pay_Extensions_GravityForms_LeadProperties::TRANSACTION_ID] = $this->payment->get_transaction_id(); // Update entry meta with payment ID gform_update_meta($lead['id'], 'pronamic_payment_id', $this->payment->get_id()); // Update entry meta with feed ID gform_update_meta($lead['id'], 'ideal_feed_id', $this->feed->id); // Update entry meta with current payment gateway gform_update_meta($lead['id'], 'payment_gateway', 'pronamic_pay'); // Update lead Pronamic_WP_Pay_Extensions_GravityForms_GravityForms::update_entry($lead); } return $lead; }