diff --git a/composer.json b/composer.json
index ac9ddc8..38842fc 100644
--- a/composer.json
+++ b/composer.json
@@ -69,6 +69,7 @@
"pronamic/wp-gravityforms-nl": "^3.0",
"pronamic/wp-money": "^2.4",
"pronamic/wp-number": "^1.3",
+ "pronamic/wp-pay-logos": "^2.2",
"woocommerce/action-scheduler": "^3.7",
"wp-pay-gateways/mollie": "^4.10",
"wp-pay/core": "dev-main as 4.18"
diff --git a/src/IssuersField.php b/src/IssuersField.php
index a5a7097..e5980c8 100644
--- a/src/IssuersField.php
+++ b/src/IssuersField.php
@@ -15,6 +15,7 @@
use Pronamic\WordPress\Pay\Fields\IDealIssuerSelectField;
use Pronamic\WordPress\Pay\Core\PaymentMethods;
use Pronamic\WordPress\Pay\Plugin;
+use Pronamic\WpPayLogos\ImageService;
/**
* Title: WordPress pay extension Gravity Forms issuers field
@@ -294,19 +295,25 @@ public function get_field_input( $form, $value = '', $entry = null ) {
// Icon file and size.
switch ( $this->pronamicPayDisplayMode ) {
case 'icons-24':
- $dimensions = [ 24, 24 ];
+ $display_width = 24;
+ $display_height = 24;
+ $image_variation = 'icon-512x512.svg';
break;
case 'icons-64':
- $dimensions = [ 64, 64 ];
+ $display_width = 64;
+ $display_height = 64;
+ $image_variation = 'icon-512x512.svg';
break;
case 'icons-125':
default:
- $dimensions = [ 125, 60 ];
+ $display_width = 125;
+ $display_height = 70;
+ $image_variation = '640x360.svg';
}
- $images_path = plugin_dir_path( Plugin::$file ) . 'images/';
+ $image_service = new ImageService();
// Loop issuers.
foreach ( $this->choices as $choice ) {
@@ -322,29 +329,21 @@ public function get_field_input( $form, $value = '', $entry = null ) {
$issuer = 'test';
}
- if ( ! is_dir( $images_path . $issuer ) && is_dir( $images_path . $issuer . '-bank' ) ) {
- $issuer .= '-bank';
- }
-
- $icon_path = sprintf(
- '%s/icon-%s.png',
- $issuer,
- implode( 'x', $dimensions )
- );
-
// Radio input.
$label_content = sprintf( '%s', esc_html( $choice['text'] ) );
- if ( file_exists( plugin_dir_path( Plugin::$file ) . 'images/' . $icon_path ) ) {
- $icon_url = plugins_url( 'images/' . $icon_path, Plugin::$file );
+ $image_path = $image_service->get_path( "ideal-issuers/$issuer/ideal-issuer-$issuer-$image_variation" );
- $label_content = sprintf(
- '%1$s',
- esc_html( $choice['text'] ),
- esc_url( $icon_url ),
- esc_url( str_replace( '.png', '@2x.png', $icon_url ) ),
- esc_url( str_replace( '.png', '@3x.png', $icon_url ) ),
- esc_url( str_replace( '.png', '@4x.png', $icon_url ) )
+ if ( file_exists( $image_path ) ) {
+ $image_url = \plugins_url( \basename( $image_path ), $image_path );
+
+ $label_content = \sprintf(
+ '%s',
+ \esc_url( $image_url ),
+ \esc_attr( $choice['text'] ),
+ \esc_attr( $display_width ),
+ \esc_attr( $display_height ),
+ \esc_html( $choice['text'] )
);
}
@@ -373,9 +372,6 @@ public function get_field_input( $form, $value = '', $entry = null ) {
.gform_wrapper .gfield_radio li img {
display: block;
-
- width: px;
- height: px;
}
.gform_wrapper .gfield_radio li label {
@@ -499,8 +495,6 @@ public function get_field_input( $form, $value = '', $entry = null ) {
.gform_wrapper .gfield_radio li label {
display: block;
- height: 68px;
-
padding: 3px;
border: 1px solid #bbb;