Exemple #1
0
function pronamic_wp_pay_update_payment(Pronamic_WP_Pay_Payment $payment)
{
    $post_id = $payment->get_id();
    // Meta
    $prefix = '_pronamic_payment_';
    $meta = array_merge(array('transaction_id' => $payment->get_transaction_id(), 'action_url' => $payment->get_action_url(), 'status' => $payment->status, 'consumer_name' => $payment->consumer_name, 'consumer_account_number' => $payment->consumer_account_number, 'consumer_iban' => $payment->consumer_iban, 'consumer_bic' => $payment->consumer_bic, 'consumer_city' => $payment->consumer_city), $payment->meta);
    foreach ($meta as $key => $value) {
        if (!empty($value)) {
            $meta_key = $prefix . $key;
            update_post_meta($post_id, $meta_key, $value);
        }
    }
    $status = get_post_meta($post_id, '_pronamic_payment_status', true);
    $post_status = null;
    switch ($status) {
        case Pronamic_WP_Pay_Statuses::CANCELLED:
            $post_status = 'payment_cancelled';
            break;
        case Pronamic_WP_Pay_Statuses::EXPIRED:
            $post_status = 'payment_expired';
            break;
        case Pronamic_WP_Pay_Statuses::FAILURE:
            $post_status = 'payment_failed';
            break;
        case Pronamic_WP_Pay_Statuses::OPEN:
            $post_status = 'payment_pending';
            break;
        case Pronamic_WP_Pay_Statuses::SUCCESS:
            $post_status = 'payment_completed';
            break;
    }
    if (null !== $post_status) {
        wp_update_post(array('ID' => $payment->post->ID, 'post_status' => $post_status));
    }
}
Exemple #2
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;
 }
 /**
  * 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;
 }