Exemplo n.º 1
0
 /**
  * Checks if Gravity Forms is supported
  *
  * @return true if Gravity Forms is supported, false otherwise
  */
 public function is_gravityforms_supported()
 {
     return Pronamic_WP_Pay_Extensions_GravityForms_GravityForms::version_compare(self::GRAVITY_FORMS_MINIMUM_VERSION, '>=');
 }
Exemplo n.º 2
0
 /**
  * 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;
 }
Exemplo n.º 3
0
 /**
  * Add field buttons
  *
  * @param array $groups
  */
 public static function add_field_buttons($groups)
 {
     // Fields
     $fields = array(array('class' => 'button', 'value' => __('Issuer Drop Down', 'pronamic_ideal'), 'data-type' => Pronamic_WP_Pay_Extensions_GravityForms_IssuerDropDown::TYPE));
     // Backwards compatibility version 1.9
     // @see https://github.com/gravityforms/gravityforms/blob/1.9/js/form_editor.js#L24-L26
     if (Pronamic_WP_Pay_Extensions_GravityForms_GravityForms::version_compare('1.9', '<')) {
         foreach ($fields as &$field) {
             $field['onclick'] = sprintf("StartAddField('%s');", $field['data-type']);
         }
     }
     // Group
     $group = array('name' => 'ideal_fields', 'label' => __('iDEAL Fields', 'pronamic_ideal'), 'fields' => $fields);
     $groups[] = $group;
     return $groups;
 }
Exemplo n.º 4
0
 /**
  * Entry post save
  *
  * @param array $lead
  * @param array $form
  */
 public function entry_post_save($lead, $form)
 {
     if ($this->is_processing($form) && $this->payment) {
         // 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;
 }