# payplug/3.1.0/src/Admin/Vue/PaymentMethods.php

PayPlug for WooCommerce (Official), version 3.1.0. 627 lines.

- Page: https://pluginprobe.com/plugins/payplug/3.1.0/code/src/Admin/Vue/PaymentMethods.php
- Raw: https://pluginprobe.com/plugins/payplug/3.1.0/raw/src/Admin/Vue/PaymentMethods.php
- Modified: 2026-09-25T08:27:34+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/payplug/3.1.0/code/src/Admin/Vue/PaymentMethods.php#L10-L20`.

```php
<?php

namespace Payplug\PayplugWoocommerce\Admin\Vue;

use Payplug\PayplugWoocommerce\Gateway\PPRO\Scalapay;
use Payplug\PayplugWoocommerce\PayplugWoocommerceHelper;
use Payplug\PayplugWoocommerce\Traits\ServiceGetter;

class PaymentMethods
{
    use ServiceGetter;

    private $configuration;

    public function __construct($options)
    {
        $this->configuration = $this->get_service('configuration');
    }

    /**
     * @param $active
     *
     * @return array
     */
    public function payment_method_standard()
    {
        $method = [
            'redirect' => false,
            'popup' => false,
            'integrated' => false,
        ];

        $embedded_mode = $this->configuration->get_option('payment_methods.configuration.payplug.embedded_mode');
        $method[$embedded_mode] = true;

        $active = $this->configuration->get_option('payment_methods.configuration.payplug.active');

        return [
            'type' => 'payment_method',
            'name' => 'standard',
            'title' => __('payplug_section_standard_payment_title', 'payplug'),
            'image' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . 'assets/images/standard.svg'),
            'checked' => $active,
            'available_test_mode' => true,
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_section_standard_payment_description', 'payplug'),
                    'advanced_options' => __('payplug_section_standard_payment_advanced_options_label', 'payplug'),
                ],
                'sandbox' => [
                    'description' => __('payplug_section_standard_payment_description', 'payplug'),
                    'advanced_options' => __('payplug_section_standard_payment_advanced_options_label', 'payplug'),
                ],
            ],
            'options' => [
                $this->title_field(),
                $this->description_field(),
                $this->embeded_option($method),
                $this->standard_warning_message(),
                $this->one_click_option(),
            ],
        ];
    }

    private function description_field()
    {
        $description = $this->configuration->get_option('payment_methods.configuration.payplug.description');

        return [
            'type' => 'payment_option',
            'sub_type' => 'input',
            'name' => 'standard_payment_description',
            'title' => __('payplug_standard_payment_description_title', 'payplug'),
            'value' => $description,
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_standard_payment_description_description', 'payplug'),
                    'placeholder' => __('payplug_standard_payment_description_placeholder', 'payplug'),
                ],
                'sandbox' => [
                    'description' => __('payplug_standard_payment_description_description', 'payplug'),
                    'placeholder' => __('payplug_standard_payment_description_placeholder', 'payplug'),
                ],
            ],
        ];
    }

    private function title_field()
    {
        $title = $this->configuration->get_option('payment_methods.configuration.payplug.title');
        $title = $title ? $title : __('payplug_standard_payment_title_placeholder', 'payplug');

        return [
            'type' => 'payment_option',
            'sub_type' => 'input',
            'name' => 'standard_payment_title',
            'title' => __('payplug_standard_payment_title_title', 'payplug'),
            'value' => $title,
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_standard_payment_title_description', 'payplug'),
                    'placeholder' => __('payplug_standard_payment_title_placeholder', 'payplug'),
                ],
                'sandbox' => [
                    'description' => __('payplug_standard_payment_title_description', 'payplug'),
                    'placeholder' => __('payplug_standard_payment_title_placeholder', 'payplug'),
                ],
            ],
        ];
    }

    /**
     * @param $active
     *
     * @return array|bool[]|false[]
     */
    public function standard_warning_message($active = null)
    {
        $arr = [
            'type' => 'warning_message',
            'sub_type' => 'warning',
            'name' => 'warning_message',
            'payment_method' => 'integrated',
            'description' => __('payplug_section_standard_ip_warning', 'payplug'),
        ];

        return $arr;
    }

    /**
     * @param $active
     *
     * @return array|bool[]|false[]
     */
    public function one_click_option($active = null)
    {
        $option = [
            'checked' => $this->configuration->get_option('payment_methods.configuration.payplug.save_card'),
            'type' => 'payment_option',
            'sub_type' => 'switch',
            'name' => 'one_click',
            'title' => __('payplug_section_one_click_option_title', 'payplug'),
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_section_one_click_option_description', 'payplug'),
                    'link_know_more' => Component::link(
                        __('payplug_know_more_label', 'payplug'),
                        'https://support.payplug.com/hc/en-gb/articles/4409698334098',
                        '_blank'
                    ),
                ],
                'sandbox' => [
                    'description' => __('payplug_section_one_click_option_description', 'payplug'),
                    'link_know_more' => Component::link(
                        __('payplug_know_more_label', 'payplug'),
                        'https://support.payplug.com/hc/en-gb/articles/4409698334098',
                        '_blank'
                    ),
                ],
            ],
        ];

        return $option;
    }

    /**
     * @return array
     */
    public function embeded_option($method)
    {
        $options = [
            [
                'name' => 'payplug_embedded',
                'label' => __('payplug_section_standard_payment_option_integrated_label', 'payplug'),
                'value' => 'integrated',
                'checked' => $method['integrated'],
            ],
            [
                'name' => 'payplug_embedded',
                'label' => __('payplug_section_standard_payment_option_popup_label', 'payplug'),
                'value' => 'popup',
                'checked' => $method['popup'],
            ],
            [
                'name' => 'payplug_embedded',
                'label' => __('payplug_section_standard_payment_option_redirected_label', 'payplug'),
                'value' => 'redirect',
                'checked' => $method['redirect'],
            ],
        ];

        return [
            'type' => 'payment_option',
            'sub_type' => 'IOptions',
            'name' => 'embeded',
            'title' => __('payplug_section_standard_payment_option_title', 'payplug'),
            'descriptions' => [
                'live' => [
                    'description_redirect' => __('payplug_section_standard_payment_redirected_description', 'payplug'),
                    'description_popup' => __('payplug_section_standard_payment_popup_description', 'payplug'),
                    'description_integrated' => __('payplug_section_standard_payment_integrated_description', 'payplug'),
                    'link_know_more' => Component::link(
                        __('payplug_know_more_label', 'payplug'),
                        __('payplug_embeded_option_url', 'payplug'),
                        '_blank'
                    ),
                ],
                'sandbox' => [
                    'description_redirect' => __('payplug_section_standard_payment_redirected_description', 'payplug'),
                    'description_popup' => __('payplug_section_standard_payment_popup_description', 'payplug'),
                    'description_integrated' => __('payplug_section_standard_payment_integrated_description', 'payplug'),
                    'link_know_more' => Component::link(
                        __('payplug_know_more_label', 'payplug'),
                        __('payplug_embeded_option_url', 'payplug'),
                        '_blank'
                    ),
                ],
            ],
            'options' => $options,
        ];
    }

    /**
     * @param $active
     *
     * @return array
     */
    public static function payment_method_applepay($active, $options, $carriers = [])
    {
        $display = json_decode($options['payment_methods']['configuration']['apple_pay']['display'], true);
        $checkout = (bool) $display['checkout'];
        $cart = (bool) $display['cart'];
        $product = (bool) $display['product'];

        if ($active === true && !$checkout && !$cart) {
            $checkout = true;
        }

        return [
            'type' => 'payment_method',
            'name' => 'applepay',
            'title' => __('payplug_section_applepay_payment_title', 'payplug'),
            'image' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . 'assets/images/applepay.svg'),
            'checked' => $active,
            'available_test_mode' => false,
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_section_applepay_payment_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_applepay_more_url', 'payplug'), '_blank'),
                ],
                'sandbox' => [
                    'description' => __('payplug_applepay_unavailable_testmode_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_applepay_more_url', 'payplug'), '_blank'),
                ],
            ],
            'options' =>
                [
                    [
                        'type' => 'payment_option',
                        'sub_type' => 'IOptions',
                        'name' => 'applepay_display',
                        'title' => __('applepay_display_choice_title', 'payplug'),
                        'options' =>
                            [
                                [
                                    'name' => 'applepay_checkout',
                                    'title' => __('applepay_display_checkout', 'payplug'),
                                    'image_url' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . 'assets/images/cart/applepay_checkout.svg'),
                                    'label' => __('applepay_display_checkout', 'payplug'),
                                    'value' => 'checkout',
                                    'switch' => true,
                                    'checked' => $checkout || ($active && !$cart),
                                ],
                                [
                                    'name' => 'applepay_cart',
                                    'title' => __('applepay_display_cart', 'payplug'),
                                    'image_url' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . 'assets/images/cart/applepay_cart.svg'),
                                    'label' => __('applepay_display_cart', 'payplug'),
                                    'value' => 'cart',
                                    'switch' => true,
                                    'checked' => $cart,
                                ],
                                [
                                    'name' => 'applepay_product',
                                    'title' => __('applepay_display_product', 'payplug'),
                                    'image_url' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . 'assets/images/cart/applepay_cart.svg'),
                                    'label' => __('applepay_display_product', 'payplug'),
                                    'value' => 'product',
                                    'switch' => true,
                                    'checked' => $product,
                                ],
                            ],
                        'carriers' =>
                            [
                                'title' => __('applepay_active_carriers_title', 'payplug'),
                                'alert' => __('applepay_active_carriers_alert', 'payplug'),
                                'descriptions' => [
                                    'live' => [
                                        'description' => __('applepay_active_carriers_description', 'payplug'),
                                        'description_bold' => __('applepay_active_carriers_description_bold', 'payplug'),
                                        'description_warning' => __('applepay_active_carriers_description_warning', 'payplug'),
                                    ],
                                    'sandbox' => [],
                                ],
                                'instructions' => __('applepay_active_carriers_instructions', 'payplug'),
                                'carriers_list' => PayplugWoocommerceHelper::available_shipping_methods($carriers),

                            ],
                    ],
                ],
        ];
    }

    /**
     * @param $active
     *
     * @return array
     */
    public static function payment_method_bancontact($active = false)
    {
        return [
            'type' => 'payment_method',
            'name' => 'bancontact',
            'title' => __('payplug_section_bancontact_payment_title', 'payplug'),
            'image' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . 'assets/images/bancontact.svg'),
            'checked' => $active,
            'available_test_mode' => false,
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_section_bancontact_payment_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_bancontact_more_url', 'payplug'), '_blank'),
                ],
                'sandbox' => [
                    'description' => __('payplug_bancontact_unavailable_testmode_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_bancontact_more_url', 'payplug'), '_blank'),
                ],
            ],
        ];
    }

    /**
     * @param $active
     *
     * @return array
     */
    public static function payment_method_amex($active = false)
    {
        return [
            'type' => 'payment_method',
            'name' => 'american_express',
            'title' => __('payplug_section_american_express_payment_title', 'payplug'),
            'image' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . 'assets/images/Amex_logo_color.svg'),
            'checked' => $active,
            'available_test_mode' => false,
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_section_american_express_payment_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_amex_more_url', 'payplug'), '_blank'),
                ],
                'sandbox' => [
                    'description' => __('payplug_amex_unavailable_testmode_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_amex_more_url', 'payplug'), '_blank'),
                ],
            ],
        ];
    }

    /**
     * @param $active
     *
     * @return array
     */
    public static function payment_method_satispay($active = false)
    {
        return [
            'type' => 'payment_method',
            'name' => 'satispay',
            'title' => __('payplug_satispay_activate', 'payplug'),
            'image' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . '/assets/images/checkout/satispay.svg'),
            'checked' => $active,
            'available_test_mode' => false,
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_section_satispay_payment_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_satispay_more_url', 'payplug'), '_blank'),
                ],
                'sandbox' => [
                    'description' => __('payplug_satispay_unavailable_testmode_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_satispay_more_url', 'payplug'), '_blank'),
                ],
            ],
            'options' => [
                self::get_allowed_countries('satispay'),
            ],
        ];
    }

    /**
     * @param $active
     *
     * @return array
     */
    public static function payment_method_mybank($active = false)
    {
        return [
            'type' => 'payment_method',
            'name' => 'mybank',
            'title' => __('payplug_mybank_activate', 'payplug'),
            'image' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . '/assets/images/checkout/mybank.svg'),
            'checked' => $active,
            'available_test_mode' => false,
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_section_mybank_payment_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_mybank_more_url', 'payplug'), '_blank'),
                ],
                'sandbox' => [
                    'description' => __('payplug_mybank_unavailable_testmode_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_mybank_more_url', 'payplug'), '_blank'),
                ],
            ],
            'options' => [
                self::get_allowed_countries('mybank'),
            ],
        ];
    }

    /**
     * @param $active
     *
     * @return array
     */
    public static function payment_method_ideal($active = false)
    {
        return [
            'type' => 'payment_method',
            'name' => 'ideal',
            'title' => __('payplug_ideal_activate', 'payplug'),
            'image' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . '/assets/images/checkout/ideal.svg'),
            'checked' => $active,
            'available_test_mode' => false,
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_section_ideal_payment_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_ideal_more_url', 'payplug'), '_blank'),
                ],
                'sandbox' => [
                    'description' => __('payplug_ideal_unavailable_testmode_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_ideal_more_url', 'payplug'), '_blank'),
                ],
            ],
            'options' => [
                self::get_allowed_countries('ideal'),
            ],
        ];
    }

    /**
     * @param $active
     *
     * @return array
     */
    public static function payment_method_wero($active = false)
    {
        return [
            'type' => 'payment_method',
            'name' => 'wero',
            'title' => __('payplug_wero_activate', 'payplug'),
            'image' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . '/assets/images/checkout/wero.svg'),
            'checked' => $active,
            'available_test_mode' => false,
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_section_wero_payment_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_wero_more_url', 'payplug'), '_blank'),
                ],
                'sandbox' => [
                    'description' => __('payplug_wero_unavailable_testmode_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_wero_more_url', 'payplug'), '_blank'),
                ],
            ],
            'options' => [
                self::get_allowed_countries('wero'),
            ],
        ];
    }

    /**
     * @param $active
     *
     * @return array
     */
    public static function payment_method_bizum($active = false)
    {
        return [
            'type' => 'payment_method',
            'name' => 'bizum',
            'title' => __('payplug_bizum_activate', 'payplug'),
            'image' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . '/assets/images/checkout/bizum.svg'),
            'checked' => $active,
            'available_test_mode' => false,
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_section_bizum_payment_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_bizum_more_url', 'payplug'), '_blank'),
                ],
                'sandbox' => [
                    'description' => __('payplug_bizum_unavailable_testmode_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_bizum_more_url', 'payplug'), '_blank'),
                ],
            ],
            'options' => [
                self::get_allowed_countries('bizum'),
            ],
        ];
    }

    /**
     * @param $active
     * @param $config payment_methods.configuration.scalapay options (active/custom_amounts/default_amounts)
     * @param $api_amounts payment_methods.permissions.scalapay.amounts - the account's live PayPlug-authorized
     *                     bounds, JSON-encoded {"min":{"EUR":n},"max":{"EUR":n}} (see AccountGateway::map())
     *
     * @return array
     */
    public static function payment_method_scalapay($active = false, $config = [], $api_amounts = '{}')
    {
        return [
            'type' => 'payment_method',
            'name' => 'scalapay',
            'title' => __('payplug_scalapay_activate', 'payplug'),
            'image' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . '/assets/images/checkout/scalapay.svg'),
            'checked' => $active,
            'available_test_mode' => false,
            'descriptions' => [
                'live' => [
                    'description' => __('payplug_section_scalapay_payment_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_scalapay_more_url', 'payplug'), '_blank'),
                ],
                'sandbox' => [
                    'description' => __('payplug_scalapay_unavailable_testmode_description', 'payplug'),
                    'link_know_more' => Component::link(__('payplug_know_more_label', 'payplug'), __('payplug_scalapay_more_url', 'payplug'), '_blank'),
                ],
            ],
            'options' => [
                self::get_allowed_countries('scalapay'),
            ],
            'advanced_options' => [
                self::scalapay_thresholds_option($config, $api_amounts),
            ],
        ];
    }

    /**
     * @return array
     */
    private static function scalapay_thresholds_option($config, $api_amounts)
    {
        // Shared with Scalapay::check_gateway()'s checkout-time enforcement, so the BO
        // display and the actual gating logic can't silently drift apart.
        [$min, $max] = Scalapay::effective_bounds($config, $api_amounts);

        // The widget's client-side validation ceiling is always the account's raw
        // authorized range (matching the save-time validator), not the merchant's own
        // possibly-narrower custom choice.
        [$authorized_min, $authorized_max] = Scalapay::authorized_bounds($config, $api_amounts);

        // Convert cents to euros for display
        $min = $min / 100;
        $max = $max / 100;
        $authorized_min = $authorized_min / 100;
        $authorized_max = $authorized_max / 100;

        return [
            'name' => 'thresholds',
            'image_url' => esc_url(PAYPLUG_GATEWAY_PLUGIN_URL . 'assets/images/thresholds.svg'),
            'title' => __('payplug_thresholds_scalapay_title', 'payplug'),
            'descriptions' => [
                'description' => __('payplug_thresholds_scalapay_description', 'payplug'),
                'min_amount' => [
                    'name' => 'scalapay_min_amounts',
                    'value' => $min,
                    'placeholder' => $min,
                    'default' => $authorized_min,
                ],
                'inter' => __('and', 'payplug'),
                'max_amount' => [
                    'name' => 'scalapay_max_amounts',
                    'value' => $max,
                    'placeholder' => $max,
                    'default' => $authorized_max,
                ],
                'error' => [
                    'text' => __('payplug_thresholds_scalapay_error_msg', 'payplug'),
                    'maxtext' => __('payplug_thresholds_scalapay_error_maxtext_msg', 'payplug'),
                    'mintext' => __('payplug_thresholds_scalapay_error_mintext_msg', 'payplug'),
                ],
            ],
            'switch' => false,
        ];
    }

    /**
     * @param $id
     *
     * @return false|string
     */
    private static function get_allowed_countries($id)
    {
        $account = PayplugWoocommerceHelper::get_account_data_from_options();

        if (empty($account['payment_methods'][$id])) {
            return false;
        }

        $arr = [
            'type' => 'info_message',
            'sub_type' => 'text',
            'name' => 'allowed_countries',
            'payment_method' => $id,
            'description' => trim(sprintf(__('payplug_payment_gateways_country_permissions', 'payplug'), ucfirst($id))) . implode(', ', $account['payment_methods'][$id]['allowed_countries']) . '.',
        ];

        return $arr;
    }
}

```
