File: /home/swtinter/public_html/wp-content/plugins/forminator/library/fields/stripe-payment-element.php
<?php
/**
* The Forminator_Stripe_Payment_Element class.
* It uses Stripe Payment Element to process payment.
*
* @package Forminator
*/
if ( ! defined( 'ABSPATH' ) ) {
die();
}
/**
* Class Forminator_Stripe_Payment_Element
*
* @since 1.37
*/
class Forminator_Stripe_Payment_Element extends Forminator_Field {
/**
* Slug
*
* @var string
*/
public $slug = 'stripe-ocs';
/**
* Type
*
* @var string
*/
public $type = 'stripe-ocs';
/**
* Position
*
* @var int
*/
public $position = 23;
/**
* Icon
*
* @var string
*/
public $icon = 'sui-icon forminator-icon-stripe';
/**
* Is connected
*
* @var bool
*/
public $is_connected = false;
/**
* Mode
*
* @var string
*/
public $mode = 'test';
/**
* Payment plan
*
* @var array
*/
public $payment_plan = array();
/**
* Forminator_Stripe constructor.
*/
public function __construct() {
parent::__construct();
$this->name = esc_html__( 'Stripe', 'forminator' );
try {
$stripe = new Forminator_Gateway_Stripe();
if ( $stripe->is_test_ready() && $stripe->is_live_ready() ) {
$this->is_connected = true;
}
} catch ( Forminator_Gateway_Exception $e ) {
$this->is_connected = false;
}
}
/**
* Field defaults
*
* @return array
*/
public function defaults() {
$default_currency = 'USD';
try {
$stripe = new Forminator_Gateway_Stripe();
$default_currency = $stripe->get_default_currency();
} catch ( Forminator_Gateway_Exception $e ) {
forminator_maybe_log( __METHOD__, $e->getMessage() );
}
return array(
'field_label' => esc_html__( 'Credit / Debit Card', 'forminator' ),
'mode' => 'test',
'currency' => $default_currency,
'company_name' => '',
'product_description' => '',
'customer_email' => '',
'receipt' => '',
'billing' => '',
'language' => 'auto',
'options' => array(),
'payments' => array(
array(
'plan_name' => esc_html__( 'Plan 1', 'forminator' ),
'payment_method' => 'single',
'amount_type' => 'fixed',
'amount' => '',
'subscription_amount_type' => 'fixed',
'quantity_type' => 'fixed',
'quantity' => '1',
'bill_input' => '1',
),
),
'primary_color' => '#0570DE',
'background_color' => '#FFFFFF',
'text_color' => '#30313D',
'error' => '#DF1B41',
'automatic_payment_methods' => 'true',
);
}
/**
* Migrate stripe settings
*
* @param array $stripe_field Old stripe field.
*
* @return array
*/
public function migrate_stripe_settings( $stripe_field ) {
// Merge default settings with old stripe field.
$new_stripe_field = array_merge( $this->defaults(), $stripe_field );
// Update stripe-ocs settings.
$new_stripe_field['id'] = 'stripe-ocs-1';
$new_stripe_field['element_id'] = 'stripe-ocs-1';
$new_stripe_field['type'] = 'stripe-ocs';
$new_stripe_field['automatic_payment_methods'] = 'false';
$new_stripe_field['form_id'] = 'wrapper-0000-0000';
$new_stripe_field['wrapper_id'] = 'wrapper-0000-0000';
$new_stripe_field['receipt'] = 'true' === $new_stripe_field['receipt'] ? '1' : '';
$new_stripe_field['billing'] = 'true' === $new_stripe_field['billing'] ? '1' : '';
// Remove unused settings.
unset(
$new_stripe_field['card_icon'],
$new_stripe_field['verify_zip'],
$new_stripe_field['zip_field'],
$new_stripe_field['base_class'],
$new_stripe_field['complete_class'],
$new_stripe_field['empty_class'],
$new_stripe_field['focused_class'],
$new_stripe_field['invalid_class'],
$new_stripe_field['autofilled_class'],
);
return $new_stripe_field;
}
}