44 lines
1.3 KiB
PHP
44 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Payu\PaymentGateway\Gateways;
|
|
|
|
class WC_Gateway_PayuKlarna extends WC_Payu_Gateways implements WC_PayuCreditGateway {
|
|
private $available_klarna_paytypes;
|
|
private array $related_paytypes = ['dpkl', 'dpklczk', 'dpklron', 'dpkleur', 'dpklhuf'];
|
|
|
|
function __construct() {
|
|
parent::__construct( 'payuklarna' );
|
|
|
|
$this->get_available_klarna_paytypes();
|
|
$this->paytype = $this->available_klarna_paytypes[0] ?? '';
|
|
|
|
if ( $this->is_enabled() ) {
|
|
$this->icon = apply_filters( 'woocommerce_payu_icon', plugins_url( '/assets/images/klarna.svg', PAYU_PLUGIN_FILE ) );
|
|
}
|
|
}
|
|
|
|
public function is_available(): bool {
|
|
if ( ! $this->try_retrieve_banks() ) {
|
|
return false;
|
|
}
|
|
|
|
if ( ! $this->contains_only_one_related_paytype()) {
|
|
return false;
|
|
}
|
|
|
|
return parent::is_available();
|
|
}
|
|
|
|
private function get_available_klarna_paytypes(): void {
|
|
$this->available_klarna_paytypes = $this->filter_available_paytypes($this->related_paytypes);
|
|
}
|
|
|
|
private function contains_only_one_related_paytype(): bool {
|
|
return count($this->available_klarna_paytypes) === 1;
|
|
}
|
|
|
|
public function get_related_paytypes(): array {
|
|
return $this->related_paytypes;
|
|
}
|
|
}
|