geno/wp-content/plugins/checkout-plugins-stripe-woo/gateway/stripe/p24.php
2024-02-01 11:54:18 +00:00

160 lines
3.1 KiB
PHP

<?php
/**
* Przelewy24 Gateway
*
* @package checkout-plugins-stripe-woo
* @since 1.3.0
*/
namespace CPSW\Gateway\Stripe;
use CPSW\Inc\Helper;
use CPSW\Inc\Traits\Get_Instance;
use CPSW\Gateway\Local_Gateway;
/**
* Przelewy24 gateway
*
* @since 1.3.0
*/
class P24 extends Local_Gateway {
use Get_Instance;
/**
* Gateway id
*
* @var string
*/
public $id = 'cpsw_p24';
/**
* Payment method types
*
* @var string
*/
public $payment_method_types = 'p24';
/**
* Constructor
*
* @since 1.3.0
*/
public function __construct() {
parent::__construct();
$this->method_title = __( 'Przelewy24', 'checkout-plugins-stripe-woo' );
$this->method_description = $this->method_description();
$this->has_fields = true;
$this->init_supports();
$this->init_form_fields();
$this->init_settings();
$this->title = $this->get_option( 'title' );
$this->description = $this->get_option( 'description' );
$this->order_button_text = $this->get_option( 'order_button_text' );
}
/**
* Description for p24 gateway
*
* @since 1.3.0
*
* @return string
*/
public function method_description() {
$payment_description = $this->payment_description();
return sprintf(
/* translators: %1$s: Break, %2$s: HTML entities */
__( 'Accept payments using Przelewy24. %1$s %2$s', 'checkout-plugins-stripe-woo' ),
'<br/>',
$payment_description
);
}
/**
* Checks whether this gateway is available.
*
* @since 1.3.0
*
* @return boolean
*/
public function is_available() {
if ( ! in_array( $this->get_currency(), $this->get_supported_currency(), true ) ) {
return false;
}
return parent::is_available();
}
/**
* Returns all supported currencies for this payment method.
*
* @since 1.3.0
*
* @return array
*/
public function get_supported_currency() {
return apply_filters(
'cpsw_p24_supported_currencies',
[
'EUR',
'PLN',
]
);
}
/**
* Add more gateway form fields
*
* @since 1.3.0
*
* @return array
*/
public function get_default_settings() {
$local_settings = parent::get_default_settings();
$local_settings['allowed_countries']['default'] = 'specific';
$local_settings['specific_countries']['default'] = [ 'PL' ];
return $local_settings;
}
/**
* Creates markup for payment form for P24
*
* @since 1.3.0
*
* @return void
*/
public function payment_fields() {
/**
* Action before payment field.
*
* @since 1.3.0
*/
do_action( $this->id . '_before_payment_field_checkout' );
echo '<div class="status-box"></div>';
echo '<div class="cpsw_stripe_p24_form">';
if ( $this->description ) {
echo wp_kses_post( $this->description );
}
echo '<div class="cpsw_stripe_p24_select"></div>';
echo '<div class="cpsw_stripe_p24_error"></div>';
if ( 'test' === Helper::get_payment_mode() ) {
echo '<div class="cpsw_stripe_test_description">';
echo wp_kses_post( $this->get_test_mode_description() );
echo '</div>';
}
echo '</div>';
/**
* Action after payment field.
*
* @since 1.3.0
*/
do_action( $this->id . '_after_payment_field_checkout' );
}
}