Plugin Directory

Changeset 3605861


Ignore:
Timestamp:
07/13/2026 10:33:34 AM (3 months ago)
Author:
payshopplugin
Message:

version 2.3.3

Location:
payshop-online-payments
Files:
18 added
60 edited
3 copied

Legend:

Unmodified
Added
Removed
  • payshop-online-payments/tags/2.3.3/controllers/front/PayshopProcessFailedRedirect.php

    r3392166 r3605861  
    4141            }
    4242
    43             $order->update_status('failed', esc_html__('Payment refused', 'payshop-online-payments'));
     43            $order->update_status(PayshopCommons::getRefusedOrderStatus(), esc_html__('Payment refused', 'payshop-online-payments'));
    4444            $order->save();
    4545
  • payshop-online-payments/tags/2.3.3/controllers/front/PayshopProcessWalletPayment.php

    r3392166 r3605861  
    2929            $result = $this->payshopCreateWalletPayment->execute($data);
    3030
    31             $order = wc_get_order($data['order_id']);
    32 
    33             if ($data['payment_type'] === 'GOOGLEPAY') {
    34                 $redirect = $result;
    35             } else {
    36                 $redirect = $order->get_checkout_order_received_url();
    37             }
    38 
    3931            wp_send_json([
    4032                'success' => !! $result,
    41                 'redirect' => $redirect
     33                'redirect' => $result
    4234            ]);
    4335        } catch (\Throwable $e) {
  • payshop-online-payments/tags/2.3.3/controllers/front/PayshopProcessWebhook.php

    r3392166 r3605861  
    4747                            $data['order']['transactions'][$key]['status'] = sanitize_text_field($transaction['status']);
    4848                        }
     49                        if (isset($transaction['error_details']['error_code'])) {
     50                            $data['order']['transactions'][$key]['error_details']['error_code'] = sanitize_text_field($transaction['error_details']['error_code']);
     51                        }
     52                        if (isset($transaction['operative'])) {
     53                            $data['order']['transactions'][$key]['operative'] = sanitize_text_field($transaction['operative']);
     54                        }
    4955                    }
    5056                }
    … …  
    8187        return in_array($orderPaymentStatus, [
    8288            'CREATED',
    83             'PARTIALLY_REFUNDED',
    8489            'PARTIALLY_CONFIRMED',
    85             'REFUNDED',
    8690            'PENDING_PROCESSOR_RESPONSE',
    8791            'PENDING_3DS_RESPONSE',
  • payshop-online-payments/tags/2.3.3/includes/PayshopAdminBootstrap.php

    r3392166 r3605861  
    3232        require_once PAYSHOP_PLUGIN_DIR . '/controllers/admin/PayshopTwoStepPayment.php';
    3333
     34        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopSettings.php';
    3435        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopCredentialsSettings.php';
     36        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopOthersSettings.php';
    3537        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopPaymentServiceUUID.php';
    3638        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopPluginListLinks.php';
    … …  
    5961        (new PayshopRequirementsAlert())->execute();
    6062        (new PayshopWoocommerceAlert())->execute();
    61         (new PayshopCredentialsSettings())->execute();
     63        (new PayshopSettings())->execute();
    6264        (new PayshopPluginListLinks())->execute();
    6365        (new PayshopCredentialsAlert())->execute();
  • payshop-online-payments/tags/2.3.3/includes/PayshopBootstrap.php

    r3392166 r3605861  
    7070        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopCreatePaymentOrder.php';
    7171        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopUpdateOrder.php';
    72         require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopAppleValidateMerchant.php';
    7372        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopCreateWalletPayment.php';
    7473
    … …  
    8180        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/PayshopClickToPay.php';
    8281        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/PayshopGooglePay.php';
    83         require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/PayshopApplePay.php';
    8482
    8583        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopPaymentBlocks.php';
    … …  
    8785        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/dialogs/PayshopReferencesDialog.php';
    8886        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/dialogs/PayshopGooglePayDialog.php';
    89         require_once PAYSHOP_PLUGIN_DIR . '/includes/module/dialogs/PayshopApplePayDialog.php';
    90 
    91         require_once PAYSHOP_PLUGIN_DIR . '/includes/module/schedules/PayshopCancelOrderSchedule.php';
    9287
    9388        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/loaders/PayshopCSS.php';
    9489        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/PayshopAddHeaders.php';
    9590
     91        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/integrations/PayshopApgSms.php';
     92
    9693        require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopProcessWebhook.php';
    9794        require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopProcessFailedRedirect.php';
    9895        require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopProcessWalletPayment.php';
    99         require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopApplepayMerchantValidation.php';
    10096
    10197        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/emails/PayshopReferencesEmail.php';
    … …  
    112108        new PayshopProcessFailedRedirect();
    113109        new PayshopProcessWalletPayment();
    114         new PayshopApplepayMerchantValidation();
    115110    }
    116111
    … …  
    126121        new PayshopPaymentBlocks();
    127122        new PayshopAddHeaders();
     123        new PayshopApgSms();
    128124       
    129125        (new PayshopReferencesDialog())->execute();
    130126        (new PayshopGooglePayDialog())->execute();
    131         (new PayshopApplePayDialog())->execute();
    132127       
    133128        new PayshopReferencesEmail();
    134         new PayshopCancelOrderSchedule();
    135129    }
    136130}
  • payshop-online-payments/tags/2.3.3/includes/helpers/PayshopCommons.php

    r3392166 r3605861  
    8181        $order->save();
    8282    }
     83
     84    /**
     85     * Get refused order status from settings
     86     *
     87     * @return string
     88     */
     89    public static function getRefusedOrderStatus()
     90    {
     91        $status = get_option('payshop_refused_payment_status', 'failed');
     92        return str_replace('wc-', '', $status);
     93    }
    8394}
  • payshop-online-payments/tags/2.3.3/includes/module/actions/PayshopCreatePaymentOrder.php

    r3392166 r3605861  
    174174    {
    175175        if ($order->get_payment_method() === 'payshop_card') {
    176             return [
     176            $options = [
    177177                'secure' => true,
    178178                'save_card' => false,
    179179            ];
     180
     181            if (get_option('payshop_apple_pay_enabled') === 'yes' && !empty(get_option('payshop_checkout_id')) && get_option('payshop_environment') == 'production') {
     182                $options['extra_data'] = [
     183                    "checkout" => [
     184                        "uuid" => get_option('payshop_checkout_id'),
     185                        "customization" => null,
     186                        "payment_methods" => ["APPLEPAY", "PAYMENT_CARD"]
     187                    ]
     188                ];
     189            }
     190
     191            return $options;
    180192        }
    181193
    … …  
    202214            }
    203215
    204             $phone = sanitize_text_field(wp_unslash($_POST['phone']));
     216            // Keep only digits: the phone field is masked for display with spaces,
     217            // but the gateway requires the raw number.
     218            $phone = preg_replace('/\D/', '', sanitize_text_field(wp_unslash($_POST['phone'])));
    205219            $prefix = sanitize_text_field(wp_unslash($_POST['prefix']));
    206220
    … …  
    222236        }
    223237
     238        if ($order->get_payment_method() === 'payshop_multibanco' || $order->get_payment_method() === 'payshop_reference') {
     239            $days_to_expire = (int) get_option('payshop_reference_expiration', 3);
     240            $deadline_date = date('Y-m-d', strtotime("+$days_to_expire days"));
     241
     242            $options['extra_data'] = [
     243                "payment" => [
     244                    "deadline" => $deadline_date,
     245                ]
     246            ];
     247        }
     248
    224249        return $options;
    225250    }
  • payshop-online-payments/tags/2.3.3/includes/module/alerts/PayshopCredentialsAlert.php

    r3392166 r3605861  
    1010    public function execute()
    1111    {
    12         $this->checkProdutionCredencials();
     12        if ($this->isPayshopSettingsPage()) {
     13            return;
     14        }
    1315
    14         $this->checkSandboxCredencials();
     16        if (get_option('payshop_environment') === false) {
     17            $this->checkCredentials();
     18            return;
     19        }
     20
     21        if (get_option('payshop_environment') == 'production') {
     22            $this->checkProdutionCredencials();
     23            return;
     24        }
     25
     26        if (get_option('payshop_environment') == 'sandbox') {
     27            $this->checkSandboxCredencials();
     28        }
     29    }
     30
     31    /**
     32     * Check if the current page is the Payshop settings page
     33     *
     34     * @return bool
     35     */
     36    protected function isPayshopSettingsPage()
     37    {
     38        return isset($_GET['page']) && $_GET['page'] === 'wc-settings' && isset($_GET['tab']) && $_GET['tab'] === 'payshop';
     39    }
     40
     41    /**
     42     * Check if it has any credentials
     43     * @return void
     44     */
     45    private function checkCredentials()
     46    {
     47        $type    = 'error';
     48        $message = esc_html__('Payshop Error: Check credentials on payshop settings.', 'payshop-online-payments');
     49
     50        $this->show($type, $message);
    1551    }
    1652
    … …  
    2258    private function checkProdutionCredencials()
    2359    {
    24         if (get_option('payshop_environment') == 'sandbox') {
    25             return;
    26         }
    27 
    2860        if (!get_option('payshop_api_key') || !get_option('payshop_signature') || !get_option('payshop_client_uuid')) {
    2961            $type    = 'error';
    … …  
    4173    private function checkSandboxCredencials()
    4274    {
    43         if (get_option('payshop_environment') == 'production') {
    44             return;
    45         }
    46 
    4775        if (!get_option('payshop_sandbox_api_key') || !get_option('payshop_sandbox_signature') || !get_option('payshop_sandbox_client_uuid')) {
    4876            $type    = 'error';
  • payshop-online-payments/tags/2.3.3/includes/module/dialogs/PayshopReferencesDialog.php

    r3392166 r3605861  
    44{
    55    /**
    6      * Class constructor
     6     * @var bool
    77     */
    8     public function __construct()
    9     {
    10         add_action('woocommerce_after_register_post_type', [$this, 'execute']);
    11     }
     8    private static $rendered = false;
    129
    1310    /**
    14      * Show references iframe
     11     * Show references iframe or direct content
    1512     *
    1613     * @return void
    … …  
    1815    public function execute()
    1916    {
    20         add_action('wp_enqueue_scripts', [$this, 'showDialog']);
     17        add_action('wp_enqueue_scripts', [$this, 'popupIframe']);
     18        add_action('woocommerce_thankyou', [$this, 'renderDirectly'], 5);
     19        add_action('woocommerce_order_details_before_order_table', [$this, 'renderDirectly'], 5);
    2120    }
    2221
    2322    /**
    24      * Show the References dialog
    25      *
     23     * Enqueue scripts and styles
     24     * 
    2625     * @return void
    2726     */
    28     public function showDialog()
     27    public function popupIframe()
    2928    {
    30         if (!is_order_received_page()) {
    31             return;
    32         }
    33 
    34         global $wp;
    35         $orderId = $wp->query_vars['order-received'];
    36         $order = wc_get_order($orderId);
    37 
    38         if (!$order) {
    39             return;
    40         }
    41 
    42         if (
    43             $order->get_payment_method() !== 'payshop_multibanco' &&
    44             $order->get_payment_method() !== 'payshop_reference'
    45         ) {
    46             return;
    47         }
    48 
    49         $iframeContent = wc()->session->get('order_iframe_content');
    50 
    51         if (empty($iframeContent)) {
     29        if (!is_wc_endpoint_url('order-received')) {
    5230            return;
    5331        }
    … …  
    5735            PAYSHOP_PLUGIN_URL . 'templates/css/references-dialog.css'
    5836        );
     37
     38        $showDirectly = get_option('payshop_show_references_directly') === 'yes';
     39        if ($showDirectly) {
     40            return;
     41        }
     42
     43        global $wp;
     44        $orderId = $wp->query_vars['order-received'];
     45        $order = wc_get_order($orderId);
     46        $method = $order->get_payment_method();
     47        if ($method !== 'payshop_multibanco' && $method !== 'payshop_reference') {
     48            return;
     49        }
     50       
     51        $iframeContent = wc()->session->get('order_iframe_content');
     52        if (empty($iframeContent)) {
     53            return;
     54        }
    5955
    6056        wp_enqueue_script(
    … …  
    7571
    7672        add_action('wp_footer', function () {
    77             require_once PAYSHOP_PLUGIN_DIR . 'templates/views/front/references-dialog.php';
     73            include PAYSHOP_PLUGIN_DIR . 'templates/views/front/references-dialog.php';
    7874        });
     75       
     76    }
     77
     78    /**
     79     * Render references directly in the Thank You page
     80     *
     81     * @param int|WC_Order $order_id
     82     * @return void
     83     */
     84    public function renderDirectly($order_id)
     85    {
     86        if (self::$rendered) {
     87            return;
     88        }
     89
     90        $showDirectly = get_option('payshop_show_references_directly') === 'yes';
     91        if (!$showDirectly) {
     92            return;
     93        }
     94
     95        if (is_numeric($order_id)) {
     96            $order = wc_get_order($order_id);
     97        } elseif ($order_id instanceof WC_Order) {
     98            $order = $order_id;
     99        } else {
     100            return;
     101        }
     102       
     103        if (!$order) {
     104            return;
     105        }
     106
     107        $method = $order->get_payment_method();
     108        if ($method !== 'payshop_multibanco' && $method !== 'payshop_reference') {
     109            return;
     110        }
     111
     112        $entity = $order->get_meta('_payshop_entity');
     113        $reference = $order->get_meta('_payshop_reference');
     114        $deadline = $order->get_meta('_payshop_deadline');
     115
     116        if (!$reference) {
     117            return;
     118        }
     119
     120        self::$rendered = true;
     121        include PAYSHOP_PLUGIN_DIR . 'templates/views/front/references-direct.php';
    79122    }
    80123}
  • payshop-online-payments/tags/2.3.3/includes/module/events/PayshopPaymentRefused.php

    r3392166 r3605861  
    3131        $this->payshopUpdateOrder->execute(
    3232            $order->get_id(),
    33             'failed',
     33            PayshopCommons::getRefusedOrderStatus(),
    3434            $order->get_meta('_payshop_payment_order_uuid'),
    3535        );
  • payshop-online-payments/tags/2.3.3/includes/module/events/PayshopProcessEvent.php

    r3392166 r3605861  
    33if ( ! defined( 'ABSPATH' ) ) exit;
    44
     5require_once 'PayshopPaymentReferenceExpired.php';
     6require_once 'PayshopPaymentRefunded.php';
    57require_once 'PayshopPaymentRefused.php';
    68require_once 'PayshopPaymentSuccess.php';
    … …  
    2426
    2527    /**
     28     * @var PayshopPaymentReferenceExpired
     29     */
     30    private $payshopPaymentReferenceExpired;
     31
     32    /**
     33     * @var PayshopPaymentRefunded
     34     */
     35    private $payshopPaymentRefunded;
     36
     37    /**
    2638     * Class constructor
    2739     */
    … …  
    3143        $this->payshopPaymentSuccess = new PayshopPaymentSuccess();
    3244        $this->payshopPaymentRefused = new PayshopPaymentRefused();
     45        $this->payshopPaymentReferenceExpired = new PayshopPaymentReferenceExpired();
     46        $this->payshopPaymentRefunded = new PayshopPaymentRefunded();
    3347    }
    3448
    … …  
    4256    {
    4357        $order = $this->getOrderByPaymentOrderUUID($paymentOrder['uuid']);
     58
    4459        $this->addMetadataAppName($paymentOrder);
     60
     61        if ($this->payshopPaymentRefunded->check($paymentOrder)) {
     62            return $this->payshopPaymentRefunded->process($order, $paymentOrder);
     63        }
    4564
    4665        $isPaymentInTwoStep = $order->get_meta('_payshop_payment_in_two_steps') == 'yes';
    … …  
    5776        }
    5877
     78        if ($paymentOrder['status'] == 'REFUSED' && $this->isReferenceExpired($paymentOrder)) {
     79            return $this->payshopPaymentReferenceExpired->process($order);
     80        }
     81
    5982        return $this->payshopPaymentRefused->process($order);
     83    }
     84
     85    /**
     86     * Check if the payment was refused due to an expired reference (error E0621)
     87     *
     88     * @param array $paymentOrder
     89     * @return bool
     90     */
     91    private function isReferenceExpired(array $paymentOrder): bool
     92    {
     93        $transactions = $paymentOrder['transactions'] ?? [];
     94
     95        if (!$transactions) {
     96            return false;
     97        }
     98
     99        $lastTransaction = $transactions[count($transactions) - 1];
     100
     101        return ($lastTransaction['status'] ?? null) === 'REFUSED'
     102            && ($lastTransaction['error_details']['error_code'] ?? null) === 'E0621';
    60103    }
    61104
  • payshop-online-payments/tags/2.3.3/includes/module/payments/PayshopCard.php

    r3534778 r3605861  
    3333        $this->description = $this->get_option('payshop_card_description');
    3434        $this->enabled = $this->get_option('payshop_card_enabled');
     35
     36        if (get_option('payshop_apple_pay_enabled') === 'yes') {
     37            $this->method_title = esc_html__('Payshop Card and Apple Pay', 'payshop-online-payments');
     38            $this->method_description = esc_html__('Debit, credit card and Apple Pay on Payshop Online Payments', 'payshop-online-payments');
     39            $this->title = esc_html__('Credit or debit card / Apple Pay', 'payshop-online-payments');
     40            $this->description = esc_html__('Pay with your card or Apple Pay via Payshop Online Payments.', 'payshop-online-payments');
     41        }
    3542     
    3643        add_action('woocommerce_update_options_payment_gateways_' . $this->id, [$this, 'process_admin_options']);
    … …  
    118125                    $paymentOrder['uuid']
    119126            );
    120 
     127           
    121128            return [
    122129                'result' => 'success',
  • payshop-online-payments/tags/2.3.3/includes/module/payments/PayshopMultibanco.php

    r3400393 r3605861  
    1212     */
    1313    private $payshopUpdateOrder;
    14 
    15     /**
    16      * @var PayshopCancelOrderSchedule
    17      */
    18     private $payshopCancelOrderSchedule;
    1914
    2015    /**
    … …  
    4338        $this->payshopCreatePaymentOrder = new PayshopCreatePaymentOrder();
    4439        $this->payshopUpdateOrder = new PayshopUpdateOrder();
    45         $this->payshopCancelOrderSchedule = new PayshopCancelOrderSchedule();
    4640    }
    4741
    … …  
    115109            $paymentOrder = $paymentOrder['response']['order'];
    116110            PayshopCommons::saveOrderReference($order, $paymentOrder['transactions'][0]['payment_data']);
    117 
    118             $this->payshopCancelOrderSchedule->schedule_cancellation(
    119                 $paymentOrder['transactions'][0]['payment_data']['deadline'],
    120                 $orderId
    121             );
    122111 
    123112            $this->payshopUpdateOrder->execute(
  • payshop-online-payments/tags/2.3.3/includes/module/payments/PayshopPaymentMethods.php

    r3392166 r3605861  
    1818    public function addPaymentMethods($gateways)
    1919    {
    20         $gateways = [];
    21 
    2220        $paymentServices = [
    2321            'payshop_card' => 'PayshopCard',
    … …  
    2725            'payshop_paypal' => 'PayshopPaypal',
    2826            'payshop_clicktopay' => 'PayshopClickToPay',
    29             'payshop_googlepay' => 'PayshopGooglePay',
    30             'payshop_applepay' => 'PayshopApplePay'
     27            'payshop_googlepay' => 'PayshopGooglePay'
    3128        ];
    3229
  • payshop-online-payments/tags/2.3.3/includes/module/payments/PayshopReference.php

    r3400393 r3605861  
    1212     */
    1313    private $payshopUpdateOrder;
    14 
    15     /**
    16      * @var PayshopCancelOrderSchedule
    17      */
    18     private $payshopCancelOrderSchedule;
    1914
    2015    /**
    … …  
    4338        $this->payshopCreatePaymentOrder = new PayshopCreatePaymentOrder();
    4439        $this->payshopUpdateOrder = new PayshopUpdateOrder();
    45         $this->payshopCancelOrderSchedule = new PayshopCancelOrderSchedule();
    4640    }
    4741
    … …  
    116110            PayshopCommons::saveOrderReference($order, $paymentOrder['transactions'][0]['payment_data']);
    117111
    118             $this->payshopCancelOrderSchedule->schedule_cancellation(
    119                 $paymentOrder['transactions'][0]['payment_data']['deadline'],
    120                 $orderId
    121             );
    122112
    123113            $this->payshopUpdateOrder->execute(
  • payshop-online-payments/tags/2.3.3/includes/module/payments/blocks/PayshopMBWayBlock.php

    r3400393 r3605861  
    5050                'wp-i18n',
    5151            ],
    52             null,
     52            filemtime(PAYSHOP_PLUGIN_DIR . 'templates/blocks/build/mbway.js'),
    5353            true
    5454        );
  • payshop-online-payments/tags/2.3.3/includes/module/payments/blocks/PayshopPaymentBlocks.php

    r3392166 r3605861  
    2323    {
    2424        if (class_exists(FeaturesUtil::class)) {
    25             $pluginFile = PAYSHOP_PLUGIN_DIR . '/payshop.php';
     25            $pluginFile = PAYSHOP_PLUGIN_DIR . 'payshop-online-payments.php';
    2626            FeaturesUtil::declare_compatibility('cart_checkout_blocks',  $pluginFile, true);
    2727        }
    … …  
    4343        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopMBWayBlock.php';
    4444        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopGooglePayBlock.php';
    45         require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopApplePayBlock.php';
    4645        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopPaypalBlock.php';
    4746        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopClickToPayBlock.php';
    … …  
    5554                $payment_method_registry->register(new PayshopMultibancoBlock);
    5655                $payment_method_registry->register(new PayshopGooglePayBlock);
    57                 $payment_method_registry->register(new PayshopApplePayBlock);
    5856                $payment_method_registry->register(new PayshopPaypalBlock);
    5957                $payment_method_registry->register(new PayshopClickToPayBlock);
  • payshop-online-payments/tags/2.3.3/includes/module/settings/PayshopCredentialsSettings.php

    r3392166 r3605861  
    99
    1010    /**
    11      * Define payshop credentials settings
     11     * Constructor
     12     */
     13    public function __construct()
     14    {
     15        $this->PayshopPaymentServiceUUID = new PayshopPaymentServiceUUID();
     16    }
     17
     18    /**
     19     * Save credentials specific data
    1220     *
    1321     * @return void
    1422     */
    15     public function execute()
    16     {
    17         $this->PayshopPaymentServiceUUID = new PayshopPaymentServiceUUID();
    18         add_filter('woocommerce_settings_tabs_array', [$this, 'addSettingsTab'], 50);
    19         add_action('woocommerce_settings_tabs_payshop', [$this, 'settingsTab']);
    20         add_action('woocommerce_update_options_payshop', [$this, 'updateSettings']);
    21     }
    22    
    23     /**
    24      * Add payshop settings tab
    25      *
    26      * @param array $settingsTabs
    27      * @return array
    28      */
    29     public function addSettingsTab($settingsTabs)
    30     {
    31         $settingsTabs['payshop'] = esc_html__('Payshop', 'payshop-online-payments');
    32 
    33         return $settingsTabs;
    34     }
    35 
    36     /**
    37      * Define fields in Settings tab
    38      *
    39      * @return void
    40      */
    41     public function settingsTab()
    42     {
    43         woocommerce_admin_fields($this->getSettings());
    44     }
    45 
    46     /**
    47      * Save settings fields
    48      *
    49      * @return array
    50      */
    51     public function updateSettings()
     23    public function update()
    5224    {
    5325        update_option('payshop_card_service_uuid', NULL);
    … …  
    5527        update_option('payshop_multibanco_service_uuid', NULL);
    5628        update_option('payshop_reference_service_uuid', NULL);
    57 
    58         woocommerce_update_options($this->getSettings());
     29        update_option('payshop_googlepay_service_uuid', NULL);
     30        // update_option('payshop_applepay_service_uuid', NULL);
    5931
    6032        try {
    … …  
    7042     * @return array
    7143     */
    72     private function getSettings()
     44    public function getSettings()
    7345    {
    7446        return $this->generalSettings() +
  • payshop-online-payments/tags/2.3.3/includes/module/settings/PayshopPaymentServiceUUID.php

    r3392166 r3605861  
    1414
    1515    /**
    16      * Class constructor
    17      */
    18     public function __construct()
    19     {
    20         $this->payshopSDK = PayshopClientFactory::getInstance();
    21     }
    22 
    23     /**
    2416     * Add links to plugin list
    2517     *
    … …  
    2820    public function execute()
    2921    {
     22        $this->payshopSDK = PayshopClientFactory::getInstance(true);
     23
    3024        $this->availableServices = $this->getGatewayServices();
    3125
  • payshop-online-payments/tags/2.3.3/includes/sdk/PayshopClientFactory.php

    r3392166 r3605861  
    1818     * @return PayshopClient
    1919     */
    20     public static function getInstance()
     20    public static function getInstance($force = false)
    2121    {
    22         if (null === self::$payshopClient) {
     22        if (null === self::$payshopClient || $force) {
    2323            try {
    2424                self::$payshopClient = new PayshopClient(
  • payshop-online-payments/tags/2.3.3/payshop-online-payments.php

    r3604199 r3605861  
    77 * Plugin URI: https://payshop.pt
    88 * Description: Customize the payment experience of your customers in your online store.
    9  * Version: 2.2.14
     9 * Version: 2.3.3
    1010 * Requires at least: 5.8
    1111 * Tested up to: 7.0
    … …  
    1919
    2020// the version needs to be changed in the file readme.txt too
    21 define('PAYSHOP_PLUGIN_VERSION', '2.2.14');
     21define('PAYSHOP_PLUGIN_VERSION', '2.3.3');
    2222define('PAYSHOP_PLUGIN_DIR', plugin_dir_path( __FILE__ ));
    2323define('PAYSHOP_PLUGIN_URL', plugin_dir_url( __FILE__ ));
  • payshop-online-payments/tags/2.3.3/readme.txt

    r3604199 r3605861  
    55Tested up to: 7.0
    66Requires PHP: 7.4
    7 Stable tag: 2.2.17
     7Stable tag: 2.3.3
    88License: GPLv3
    99License URI: https://www.gnu.org/licenses/gpl-3.0.html
    … …  
    2222* Credit and Debit Cards (Visa, Mastercard)
    2323* Google Pay
     24* Apple Pay - New!
    2425* Foreign Cards with 3D Secure support
    25 * Manual payments via link (sent by email, SMS, or social media)
    26 * Coming soon: Apple Pay
    2726
    2827== Features ==
    … …  
    3231* Access to the POP Backoffice to easily manage your payments
    3332* Instant refunds using the original payment method
    34 * Send payment links via email, SMS, WhatsApp, or social media
     33* Two Step Payment using credit card
    3534* Funds transferred on the next business day, hassle-free
    3635* Automatic synchronisation of order numbering between Woocommerce and POP BackOffice, through integration with the Sequential Order Numbers for Woocommerce plugin
    … …  
    8584== Changelog ==
    8685
     86= 2.3.3 =
     87* Expired reference orders are now always marked as cancelled instead of using the configured failed order status
     88* Fix log warning error
     89
     90= 2.3.2 =
     91* Call Apple Pay checkout only on the production environment
     92* Remove custom font-family from the reference section on the Thank You page
     93* Fix log warning error
     94
     95= 2.3.1 =
     96* Add APG SMS Notifications integration
     97* Add MB WAY input mask on checkout
     98
     99= 2.3.0 =
     100* Bump plugin version
     101
     102= 2.2.13 =
     103* Remove first party Apple Pay and handle it together with credit card on the external redirect checkout
     104* Implement refund flow via webhook
     105* Expire Payshop and Multibanco references
     106* Add Checkout ID setting to support Apple Pay integration in the external checkout
     107* Add a new field to define the reference expiration date and send it to the gateway
     108* Remove the scheduled cancellation of expired references, now handled when receiving the callback
     109* Add direct display of payment references on the Thank You page
     110* Enhance responsive design and layout for payment references display
     111* Refactor payment refusal handling to use a configurable order status and update translations
     112* Avoid showing the references popup iframe when the payment method is not a reference
     113* Refactor settings to define settings in the correct files and add "Other Settings"
     114* Fix bug that was forcing the user to click save twice to save credentials and get service UUIDs
     115* Refactor to avoid showing a message on the Payshop credentials page and improve the error message when the environment option is not set
     116
     117= 2.2.12 =
     118* Update the plugin version for the WordPress repository release
     119
     120= 2.2.11 =
     121* Adjust Google Pay brand
     122
     123= 2.2.10 =
     124* Add Google Pay paid message display and update translations
     125
     126= 2.2.9 =
     127* Remove the alert before the Google Pay 3DS redirect
     128
     129= 2.2.8 =
     130* Improve translations
     131
     132= 2.2.6 =
     133* Update the readme file
     134
     135= 2.2.5 =
     136* Change custom action prefixes
     137* Define the correct name for the Sequential Order Numbers for WooCommerce plugin
     138
     139= 2.2.4 =
     140* Automatic cancellation of Multibanco and Payshop orders after the payment deadline
     141* Fix the Payshop reference service type name after a PNP change
     142* Send the sequential order number to the gateway
     143
    87144= 2.2.2 =
    88145* Initial public release of the POP plugin for WooCommerce
  • payshop-online-payments/tags/2.3.3/templates/blocks/build/mbway.asset.php

    r3392166 r3605861  
    1 <?php return array('dependencies' => array('react', 'wp-element'), 'version' => 'a4f4f3072fceb509c008');
     1<?php return array('dependencies' => array('react', 'wp-element'), 'version' => 'c3abf80fad94761db627');
  • payshop-online-payments/tags/2.3.3/templates/blocks/build/mbway.js

    r3392166 r3605861  
    654654  }
    655655  function phoneChange(e) {
    656     phoneRef.current = e.target.value;
    657     setPhone(e.target.value);
     656    const value = e.target.value.replace(/\D/g, '').slice(0, 9);
     657    phoneRef.current = value;
     658    setPhone(value);
    658659  }
    659660  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    … …  
    703704    onChange: prefixChange
    704705  }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    705     value: phone,
     706    value: phone.replace(/(\d{3})(?=\d)/g, '$1 '),
    706707    onChange: phoneChange,
    707708    id: "id-phone-number",
    708709    placeholder: "N\xFAmero Telem\xF3vel",
    709710    className: "input-text wc-credit-card-form-card-number",
    710     inputmode: "text",
     711    inputmode: "numeric",
    711712    autocorrect: "no",
    712713    autocapitalize: "no",
    … …  
    715716    "data-checkout": "wbwayNumber",
    716717    name: "phone",
    717     maxlength: "19",
     718    maxlength: "11",
    718719    required: true,
    719720    style: {
  • payshop-online-payments/tags/2.3.3/templates/blocks/build/mbway.js.map

    r3392166 r3605861  
    1 {"version":3,"file":"mbway.js","mappings":";;;;;;;;;;;;;;;;;AAAe,SAASA,WAAWA,CAACC,KAAK,EAAE;EACvC,OACIC,oDAAA;IAAQC,KAAK,EAAC,QAAQ;IAACC,IAAI,EAAC,QAAQ;IAAA,GAAKH,KAAK;IAAEI,SAAS,EAAC,4CAA4C;IAACC,QAAQ;IAACC,KAAK,EAAE;MAACC,KAAK,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAK;EAAE,GACvJP,oDAAA;IAAQQ,KAAK,EAAC;EAAG,GAAC,IAAU,CAAC,EAC7BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC,KAAK;IAACC,QAAQ;EAAA,GAAC,MAAY,CAAC,EAC1CT,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EA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","sources":["webpack://payshop-blocks/./src/components/phone-prefix.js","webpack://payshop-blocks/./src/utils/ErrorHandler.js","webpack://payshop-blocks/external window \"React\"","webpack://payshop-blocks/external window [\"wp\",\"element\"]","webpack://payshop-blocks/webpack/bootstrap","webpack://payshop-blocks/webpack/runtime/compat get default export","webpack://payshop-blocks/webpack/runtime/define property getters","webpack://payshop-blocks/webpack/runtime/hasOwnProperty shorthand","webpack://payshop-blocks/webpack/runtime/make namespace object","webpack://payshop-blocks/./src/mbway.js"],"sourcesContent":["export default function PhonePrefix(props) {\n    return (\n        <select class=\"prefix\" name=\"prefix\" {...props} className=\"input-text wc-credit-card-form-card-number\" required style={{width: \"80px\", paddingLeft: \"3px\"}}>\n            <option value=\"1\">+1</option>\n            <option value=\"20\">+20</option>\n            <option value=\"30\">+30</option>\n            <option value=\"31\">+31</option>\n            <option value=\"32\">+32</option>\n            <option value=\"33\">+33</option>\n            <option value=\"34\">+34</option>\n            <option value=\"36\">+36</option>\n            <option value=\"39\">+39</option>\n            <option value=\"40\">+40</option>\n            <option value=\"41\">+41</option>\n            <option value=\"43\">+43</option>\n            <option value=\"44\">+44</option>\n            <option value=\"45\">+45</option>\n            <option value=\"46\">+46</option>\n            <option value=\"47\">+47</option>\n            <option value=\"48\">+48</option>\n            <option value=\"49\">+49</option>\n            <option value=\"51\">+51</option>\n            <option value=\"52\">+52</option>\n            <option value=\"53\">+53</option>\n            <option value=\"54\">+54</option>\n            <option value=\"55\">+55</option>\n            <option value=\"56\">+56</option>\n            <option value=\"57\">+57</option>\n            <option value=\"58\">+58</option>\n            <option value=\"60\">+60</option>\n            <option value=\"61\">+61</option>\n            <option value=\"62\">+62</option>\n            <option value=\"63\">+63</option>\n            <option value=\"64\">+64</option>\n            <option value=\"65\">+65</option>\n            <option value=\"66\">+66</option>\n            <option value=\"81\">+81</option>\n            <option value=\"82\">+82</option>\n            <option value=\"84\">+84</option>\n            <option value=\"86\">+86</option>\n            <option value=\"90\">+90</option>\n            <option value=\"91\">+91</option>\n            <option value=\"92\">+92</option>\n            <option value=\"93\">+93</option>\n            <option value=\"94\">+94</option>\n            <option value=\"95\">+95</option>\n            <option value=\"98\">+98</option>\n            <option value=\"211\">+211</option>\n            <option value=\"212\">+212</option>\n            <option value=\"213\">+213</option>\n            <option value=\"216\">+216</option>\n            <option value=\"218\">+218</option>\n            <option value=\"220\">+220</option>\n            <option value=\"221\">+221</option>\n            <option value=\"222\">+222</option>\n            <option value=\"223\">+223</option>\n            <option value=\"224\">+224</option>\n            <option value=\"225\">+225</option>\n            <option value=\"226\">+226</option>\n            <option value=\"227\">+227</option>\n            <option value=\"228\">+228</option>\n            <option value=\"229\">+229</option>\n            <option value=\"230\">+230</option>\n            <option value=\"231\">+231</option>\n            <option value=\"232\">+232</option>\n            <option value=\"233\">+233</option>\n            <option value=\"234\">+234</option>\n            <option value=\"235\">+235</option>\n            <option value=\"236\">+236</option>\n            <option value=\"237\">+237</option>\n            <option value=\"238\">+238</option>\n            <option value=\"239\">+239</option>\n            <option value=\"240\">+240</option>\n            <option value=\"241\">+241</option>\n            <option value=\"242\">+242</option>\n            <option value=\"243\">+243</option>\n            <option value=\"244\">+244</option>\n            <option value=\"245\">+245</option>\n            <option value=\"246\">+246</option>\n            <option value=\"248\">+248</option>\n            <option value=\"249\">+249</option>\n            <option value=\"250\">+250</option>\n            <option value=\"251\">+251</option>\n            <option value=\"252\">+252</option>\n            <option value=\"253\">+253</option>\n            <option value=\"254\">+254</option>\n            <option value=\"255\">+255</option>\n            <option value=\"256\">+256</option>\n            <option value=\"257\">+257</option>\n            <option value=\"258\">+258</option>\n            <option value=\"260\">+260</option>\n            <option value=\"261\">+261</option>\n            <option value=\"262\">+262</option>\n            <option value=\"263\">+263</option>\n            <option value=\"264\">+264</option>\n            <option value=\"265\">+265</option>\n            <option value=\"266\">+266</option>\n            <option value=\"267\">+267</option>\n            <option value=\"268\">+268</option>\n            <option value=\"269\">+269</option>\n            <option value=\"290\">+290</option>\n            <option value=\"291\">+291</option>\n            <option value=\"297\">+297</option>\n            <option value=\"298\">+298</option>\n            <option value=\"299\">+299</option>\n            <option value=\"350\">+350</option>\n            <option value=\"351\" selected>+351</option>\n            <option value=\"352\">+352</option>\n            <option value=\"353\">+353</option>\n            <option value=\"354\">+354</option>\n            <option value=\"355\">+355</option>\n            <option value=\"356\">+356</option>\n            <option value=\"357\">+357</option>\n            <option value=\"358\">+358</option>\n            <option value=\"359\">+359</option>\n            <option value=\"370\">+370</option>\n            <option value=\"371\">+371</option>\n            <option value=\"372\">+372</option>\n            <option value=\"373\">+373</option>\n            <option value=\"374\">+374</option>\n            <option value=\"375\">+375</option>\n            <option value=\"376\">+376</option>\n            <option value=\"377\">+377</option>\n            <option value=\"378\">+378</option>\n            <option value=\"379\">+379</option>\n            <option value=\"380\">+380</option>\n            <option value=\"381\">+381</option>\n            <option value=\"382\">+382</option>\n            <option value=\"383\">+383</option>\n            <option value=\"385\">+385</option>\n            <option value=\"386\">+386</option>\n            <option value=\"387\">+387</option>\n            <option value=\"389\">+389</option>\n            <option value=\"420\">+420</option>\n            <option value=\"421\">+421</option>\n            <option value=\"423\">+423</option>\n            <option value=\"500\">+500</option>\n            <option value=\"501\">+501</option>\n            <option value=\"502\">+502</option>\n            <option value=\"503\">+503</option>\n            <option value=\"504\">+504</option>\n            <option value=\"505\">+505</option>\n            <option value=\"506\">+506</option>\n            <option value=\"507\">+507</option>\n            <option value=\"508\">+508</option>\n            <option value=\"509\">+509</option>\n            <option value=\"590\">+590</option>\n            <option value=\"591\">+591</option>\n            <option value=\"592\">+592</option>\n            <option value=\"593\">+593</option>\n            <option value=\"594\">+594</option>\n            <option value=\"595\">+595</option>\n            <option value=\"596\">+596</option>\n            <option value=\"597\">+597</option>\n            <option value=\"598\">+598</option>\n            <option value=\"599\">+599</option>\n            <option value=\"670\">+670</option>\n            <option value=\"672\">+672</option>\n            <option value=\"673\">+673</option>\n            <option value=\"674\">+674</option>\n            <option value=\"675\">+675</option>\n            <option value=\"676\">+676</option>\n            <option value=\"677\">+677</option>\n            <option value=\"678\">+678</option>\n            <option value=\"679\">+679</option>\n            <option value=\"680\">+680</option>\n            <option value=\"681\">+681</option>\n            <option value=\"682\">+682</option>\n            <option value=\"683\">+683</option>\n            <option value=\"685\">+685</option>\n            <option value=\"686\">+686</option>\n            <option value=\"687\">+687</option>\n            <option value=\"688\">+688</option>\n            <option value=\"689\">+689</option>\n            <option value=\"690\">+690</option>\n            <option value=\"691\">+691</option>\n            <option value=\"692\">+692</option>\n            <option value=\"850\">+850</option>\n            <option value=\"852\">+852</option>\n            <option value=\"853\">+853</option>\n            <option value=\"855\">+855</option>\n            <option value=\"856\">+856</option>\n            <option value=\"880\">+880</option>\n            <option value=\"886\">+886</option>\n            <option value=\"960\">+960</option>\n            <option value=\"961\">+961</option>\n            <option value=\"962\">+962</option>\n            <option value=\"963\">+963</option>\n            <option value=\"964\">+964</option>\n            <option value=\"965\">+965</option>\n            <option value=\"966\">+966</option>\n            <option value=\"967\">+967</option>\n            <option value=\"968\">+968</option>\n            <option value=\"970\">+970</option>\n            <option value=\"971\">+971</option>\n            <option value=\"972\">+972</option>\n            <option value=\"973\">+973</option>\n            <option value=\"974\">+974</option>\n            <option value=\"975\">+975</option>\n            <option value=\"976\">+976</option>\n        </select>\n    );\n}","class ErrorHandler {\n\n    /**\n     * @param {String} genericErrorText\n     * @param {Element} wrapper\n     */\n    constructor(genericErrorText, wrapper)\n    {\n        this.genericErrorText = genericErrorText;\n        this.wrapper = wrapper;\n    }\n\n    genericError() {\n        this.clear();\n        this.message(this.genericErrorText)\n    }\n\n    appendPreparedErrorMessageElement(errorMessageElement)\n    {\n        this._getMessageContainer().replaceWith(errorMessageElement);\n    }\n\n    /**\n     * @param {String} text\n     */\n    message(text)\n    {\n        this._addMessage(text);\n\n        this._scrollToMessages();\n    }\n\n    /**\n     * @param {Array} texts\n     */\n    messages(texts)\n    {\n        texts.forEach(t => this._addMessage(t));\n\n        this._scrollToMessages();\n    }\n\n    /**\n     * @returns {String}\n     */\n    currentHtml()\n    {\n        const messageContainer = this._getMessageContainer();\n        return messageContainer.outerHTML;\n    }\n\n    /**\n     * @private\n     * @param {String} text\n     */\n    _addMessage(text)\n    {\n        if(! typeof String || text.length === 0) {\n            throw new Error('A new message text must be a non-empty string.');\n        }\n\n        const messageContainer = this._getMessageContainer();\n\n        let messageNode = this._prepareMessageElement(text);\n        messageContainer.appendChild(messageNode);\n    }\n\n    /**\n     * @private\n     */\n    _scrollToMessages()\n    {\n        jQuery.scroll_to_notices(jQuery('.woocommerce-error'));\n    }\n\n    /**\n     * @private\n     */\n    _getMessageContainer()\n    {\n        let messageContainer = document.querySelector('ul.woocommerce-error');\n        if (messageContainer === null) {\n            messageContainer = document.createElement('ul');\n            messageContainer.setAttribute('class', 'woocommerce-error');\n            messageContainer.setAttribute('role', 'alert');\n            jQuery(this.wrapper).prepend(messageContainer);\n        }\n        return messageContainer;\n    }\n\n    /**\n     * @private\n     */\n    _prepareMessageElement(message)\n    {\n        const li = document.createElement('li');\n        li.innerHTML = message;\n\n        return li;\n    }\n\n    clear()\n    {\n        jQuery( '.woocommerce-error, .woocommerce-message' ).remove();\n    }\n}\n\nexport default ErrorHandler;","module.exports = window[\"React\"];","module.exports = window[\"wp\"][\"element\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { useEffect, useState } from '@wordpress/element';\nimport ErrorHandler from './utils/ErrorHandler';\nimport PhonePrefix from \"./components/phone-prefix\";\n\n\nconst settings = window.wc.wcSettings.getSetting(\"payshop_mbway_data\", {});\nconst label = window.wp.htmlEntities.decodeEntities(settings.title);\nconst icon = settings.icon;\n\nconst Content = ( props ) => {\n\tconst { eventRegistration, emitResponse } = props;\n\tconst { onPaymentSetup, onCheckoutFail  } = eventRegistration;\n\n    const [prefix, setPrefix] = useState('+351');\n    const [phone, setPhone] = useState('');\n    const prefixRef = React.useRef(prefix);\n    const phoneRef = React.useRef(phone);\n\n\tfunction prefixChange(e) {\n        prefixRef.current = e.target.value;\n        setPrefix(e.target.value);\n    }\n\n    function phoneChange(e) {\n        phoneRef.current = e.target.value;\n        setPhone(e.target.value);\n    }\n\n\tuseEffect( () => {\n\t\tconst unsubscribe = onPaymentSetup( async () => {\n\t\t\tconst phone = phoneRef.current;\n\t\t\tconst prefix = prefixRef.current;\n\n\t\t\tif ( phone !== '' && prefix !== '' ) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: emitResponse.responseTypes.SUCCESS,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tpaymentMethodData: {\n\t\t\t\t\t\t\tprefix,\n\t\t\t\t\t\t\tphone,\n\t\t\t\t\t\t\tpayshop_mbway_nonce: settings.nonce\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: emitResponse.responseTypes.ERROR,\n\t\t\t\tmessage: settings.error_message,\n\t\t\t};\n\t\t} );\n\n\t\tonCheckoutFail(async (paymentResponse) => {\n\t\t\t// Extract error message from paymentResponse object\n\t\t\tconst errorMessage = paymentResponse.processingResponse.paymentDetails.errorMessage ?? '';\n\t\t  \n\t\t\tlet errorHandler = new ErrorHandler(\n                'Default message',\n                document.querySelector('.woocommerce-notices-wrapper')\n            );\n\n            errorHandler.clear();\n            errorHandler.message(errorMessage);\n        });\n\n\t\t// Unsubscribes when this component is unmounted.\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, [\n\t\temitResponse.responseTypes.ERROR,\n\t\temitResponse.responseTypes.SUCCESS,\n\t\tonPaymentSetup,\n\t] );\n\n\treturn <fieldset id=\"wc-payshop_card-cc-form\" className=\"wc-credit-card-form wc-payment-form\">\n                <p className=\"form-row form-row-wide woocommerce-validated\" style={{display: \"flex\"}}>\n\t\t\t\t\t<PhonePrefix onChange={prefixChange} />\n                    <input value={phone} onChange={phoneChange} id=\"id-phone-number\" placeholder=\"Número Telemóvel\" className=\"input-text wc-credit-card-form-card-number\" inputmode=\"text\" autocorrect=\"no\" autocapitalize=\"no\" spellcheck=\"no\" type=\"text\" data-checkout=\"wbwayNumber\" name=\"phone\" maxlength=\"19\" required style={{flexGrow: \"1\"}} />\n                </p>\n            </fieldset>;\n};\n\nconst Block_Gateway = {\n    name: \"payshop_mbway\",\n    label: <div style={{display: \"flex\", alignItems: \"center\"}}>\n            <span>{label}</span>\n            <img src={icon} style={{marginLeft: \"10px\"}} />\n        </div>,\n    content: <Content />,\n    edit: <div>{label}</div>,\n    canMakePayment: () => true,\n    ariaLabel: label,\n    supports: {\n        features: settings.supports,\n    },\n};\n\nwindow.wc.wcBlocksRegistry.registerPaymentMethod(Block_Gateway);"],"names":["PhonePrefix","props","createElement","class","name","className","required","style","width","paddingLeft","value","selected","ErrorHandler","constructor","genericErrorText","wrapper","genericError","clear","message","appendPreparedErrorMessageElement","errorMessageElement","_getMessageContainer","replaceWith","text","_addMessage","_scrollToMessages","messages","texts","forEach","t","currentHtml","messageContainer","outerHTML","String","length","Error","messageNode","_prepareMessageElement","appendChild","jQuery","scroll_to_notices","document","querySelector","setAttribute","prepend","li","innerHTML","remove","useEffect","useState","settings","window","wc","wcSettings","getSetting","label","wp","htmlEntities","decodeEntities","title","icon","Content","eventRegistration","emitResponse","onPaymentSetup","onCheckoutFail","prefix","setPrefix","phone","setPhone","prefixRef","React","useRef","phoneRef","prefixChange","e","current","target","phoneChange","unsubscribe","type","responseTypes","SUCCESS","meta","paymentMethodData","payshop_mbway_nonce","nonce","ERROR","error_message","paymentResponse","_paymentResponse$proc","errorMessage","processingResponse","paymentDetails","errorHandler","id","display","onChange","placeholder","inputmode","autocorrect","autocapitalize","spellcheck","maxlength","flexGrow","Block_Gateway","alignItems","src","marginLeft","content","edit","canMakePayment","ariaLabel","supports","features","wcBlocksRegistry","registerPaymentMethod"],"sourceRoot":""}
     1{"version":3,"file":"mbway.js","mappings":";;;;;;;;;;;;;;;;;AAAe,SAASA,WAAWA,CAACC,KAAK,EAAE;EACvC,OACIC,oDAAA;IAAQC,KAAK,EAAC,QAAQ;IAACC,IAAI,EAAC,QAAQ;IAAA,GAAKH,KAAK;IAAEI,SAAS,EAAC,4CAA4C;IAACC,QAAQ;IAACC,KAAK,EAAE;MAACC,KAAK,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAK;EAAE,GACvJP,oDAAA;IAAQQ,KAAK,EAAC;EAAG,GAAC,IAAU,CAAC,EAC7BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC,KAAK;IAACC,QAAQ;EAAA,GAAC,MAAY,CAAC,EAC1CT,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EA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","sources":["webpack://payshop-blocks/./src/components/phone-prefix.js","webpack://payshop-blocks/./src/utils/ErrorHandler.js","webpack://payshop-blocks/external window \"React\"","webpack://payshop-blocks/external window [\"wp\",\"element\"]","webpack://payshop-blocks/webpack/bootstrap","webpack://payshop-blocks/webpack/runtime/compat get default export","webpack://payshop-blocks/webpack/runtime/define property getters","webpack://payshop-blocks/webpack/runtime/hasOwnProperty shorthand","webpack://payshop-blocks/webpack/runtime/make namespace object","webpack://payshop-blocks/./src/mbway.js"],"sourcesContent":["export default function PhonePrefix(props) {\n    return (\n        <select class=\"prefix\" name=\"prefix\" {...props} className=\"input-text wc-credit-card-form-card-number\" required style={{width: \"80px\", paddingLeft: \"3px\"}}>\n            <option value=\"1\">+1</option>\n            <option value=\"20\">+20</option>\n            <option value=\"30\">+30</option>\n            <option value=\"31\">+31</option>\n            <option value=\"32\">+32</option>\n            <option value=\"33\">+33</option>\n            <option value=\"34\">+34</option>\n            <option value=\"36\">+36</option>\n            <option value=\"39\">+39</option>\n            <option value=\"40\">+40</option>\n            <option value=\"41\">+41</option>\n            <option value=\"43\">+43</option>\n            <option value=\"44\">+44</option>\n            <option value=\"45\">+45</option>\n            <option value=\"46\">+46</option>\n            <option value=\"47\">+47</option>\n            <option value=\"48\">+48</option>\n            <option value=\"49\">+49</option>\n            <option value=\"51\">+51</option>\n            <option value=\"52\">+52</option>\n            <option value=\"53\">+53</option>\n            <option value=\"54\">+54</option>\n            <option value=\"55\">+55</option>\n            <option value=\"56\">+56</option>\n            <option value=\"57\">+57</option>\n            <option value=\"58\">+58</option>\n            <option value=\"60\">+60</option>\n            <option value=\"61\">+61</option>\n            <option value=\"62\">+62</option>\n            <option value=\"63\">+63</option>\n            <option value=\"64\">+64</option>\n            <option value=\"65\">+65</option>\n            <option value=\"66\">+66</option>\n            <option value=\"81\">+81</option>\n            <option value=\"82\">+82</option>\n            <option value=\"84\">+84</option>\n            <option value=\"86\">+86</option>\n            <option value=\"90\">+90</option>\n            <option value=\"91\">+91</option>\n            <option value=\"92\">+92</option>\n            <option value=\"93\">+93</option>\n            <option value=\"94\">+94</option>\n            <option value=\"95\">+95</option>\n            <option value=\"98\">+98</option>\n            <option value=\"211\">+211</option>\n            <option value=\"212\">+212</option>\n            <option value=\"213\">+213</option>\n            <option value=\"216\">+216</option>\n            <option value=\"218\">+218</option>\n            <option value=\"220\">+220</option>\n            <option value=\"221\">+221</option>\n            <option value=\"222\">+222</option>\n            <option value=\"223\">+223</option>\n            <option value=\"224\">+224</option>\n            <option value=\"225\">+225</option>\n            <option value=\"226\">+226</option>\n            <option value=\"227\">+227</option>\n            <option value=\"228\">+228</option>\n            <option value=\"229\">+229</option>\n            <option value=\"230\">+230</option>\n            <option value=\"231\">+231</option>\n            <option value=\"232\">+232</option>\n            <option value=\"233\">+233</option>\n            <option value=\"234\">+234</option>\n            <option value=\"235\">+235</option>\n            <option value=\"236\">+236</option>\n            <option value=\"237\">+237</option>\n            <option value=\"238\">+238</option>\n            <option value=\"239\">+239</option>\n            <option value=\"240\">+240</option>\n            <option value=\"241\">+241</option>\n            <option value=\"242\">+242</option>\n            <option value=\"243\">+243</option>\n            <option value=\"244\">+244</option>\n            <option value=\"245\">+245</option>\n            <option value=\"246\">+246</option>\n            <option value=\"248\">+248</option>\n            <option value=\"249\">+249</option>\n            <option value=\"250\">+250</option>\n            <option value=\"251\">+251</option>\n            <option value=\"252\">+252</option>\n            <option value=\"253\">+253</option>\n            <option value=\"254\">+254</option>\n            <option value=\"255\">+255</option>\n            <option value=\"256\">+256</option>\n            <option value=\"257\">+257</option>\n            <option value=\"258\">+258</option>\n            <option value=\"260\">+260</option>\n            <option value=\"261\">+261</option>\n            <option value=\"262\">+262</option>\n            <option value=\"263\">+263</option>\n            <option value=\"264\">+264</option>\n            <option value=\"265\">+265</option>\n            <option value=\"266\">+266</option>\n            <option value=\"267\">+267</option>\n            <option value=\"268\">+268</option>\n            <option value=\"269\">+269</option>\n            <option value=\"290\">+290</option>\n            <option value=\"291\">+291</option>\n            <option value=\"297\">+297</option>\n            <option value=\"298\">+298</option>\n            <option value=\"299\">+299</option>\n            <option value=\"350\">+350</option>\n            <option value=\"351\" selected>+351</option>\n            <option value=\"352\">+352</option>\n            <option value=\"353\">+353</option>\n            <option value=\"354\">+354</option>\n            <option value=\"355\">+355</option>\n            <option value=\"356\">+356</option>\n            <option value=\"357\">+357</option>\n            <option value=\"358\">+358</option>\n            <option value=\"359\">+359</option>\n            <option value=\"370\">+370</option>\n            <option value=\"371\">+371</option>\n            <option value=\"372\">+372</option>\n            <option value=\"373\">+373</option>\n            <option value=\"374\">+374</option>\n            <option value=\"375\">+375</option>\n            <option value=\"376\">+376</option>\n            <option value=\"377\">+377</option>\n            <option value=\"378\">+378</option>\n            <option value=\"379\">+379</option>\n            <option value=\"380\">+380</option>\n            <option value=\"381\">+381</option>\n            <option value=\"382\">+382</option>\n            <option value=\"383\">+383</option>\n            <option value=\"385\">+385</option>\n            <option value=\"386\">+386</option>\n            <option value=\"387\">+387</option>\n            <option value=\"389\">+389</option>\n            <option value=\"420\">+420</option>\n            <option value=\"421\">+421</option>\n            <option value=\"423\">+423</option>\n            <option value=\"500\">+500</option>\n            <option value=\"501\">+501</option>\n            <option value=\"502\">+502</option>\n            <option value=\"503\">+503</option>\n            <option value=\"504\">+504</option>\n            <option value=\"505\">+505</option>\n            <option value=\"506\">+506</option>\n            <option value=\"507\">+507</option>\n            <option value=\"508\">+508</option>\n            <option value=\"509\">+509</option>\n            <option value=\"590\">+590</option>\n            <option value=\"591\">+591</option>\n            <option value=\"592\">+592</option>\n            <option value=\"593\">+593</option>\n            <option value=\"594\">+594</option>\n            <option value=\"595\">+595</option>\n            <option value=\"596\">+596</option>\n            <option value=\"597\">+597</option>\n            <option value=\"598\">+598</option>\n            <option value=\"599\">+599</option>\n            <option value=\"670\">+670</option>\n            <option value=\"672\">+672</option>\n            <option value=\"673\">+673</option>\n            <option value=\"674\">+674</option>\n            <option value=\"675\">+675</option>\n            <option value=\"676\">+676</option>\n            <option value=\"677\">+677</option>\n            <option value=\"678\">+678</option>\n            <option value=\"679\">+679</option>\n            <option value=\"680\">+680</option>\n            <option value=\"681\">+681</option>\n            <option value=\"682\">+682</option>\n            <option value=\"683\">+683</option>\n            <option value=\"685\">+685</option>\n            <option value=\"686\">+686</option>\n            <option value=\"687\">+687</option>\n            <option value=\"688\">+688</option>\n            <option value=\"689\">+689</option>\n            <option value=\"690\">+690</option>\n            <option value=\"691\">+691</option>\n            <option value=\"692\">+692</option>\n            <option value=\"850\">+850</option>\n            <option value=\"852\">+852</option>\n            <option value=\"853\">+853</option>\n            <option value=\"855\">+855</option>\n            <option value=\"856\">+856</option>\n            <option value=\"880\">+880</option>\n            <option value=\"886\">+886</option>\n            <option value=\"960\">+960</option>\n            <option value=\"961\">+961</option>\n            <option value=\"962\">+962</option>\n            <option value=\"963\">+963</option>\n            <option value=\"964\">+964</option>\n            <option value=\"965\">+965</option>\n            <option value=\"966\">+966</option>\n            <option value=\"967\">+967</option>\n            <option value=\"968\">+968</option>\n            <option value=\"970\">+970</option>\n            <option value=\"971\">+971</option>\n            <option value=\"972\">+972</option>\n            <option value=\"973\">+973</option>\n            <option value=\"974\">+974</option>\n            <option value=\"975\">+975</option>\n            <option value=\"976\">+976</option>\n        </select>\n    );\n}","class ErrorHandler {\n\n    /**\n     * @param {String} genericErrorText\n     * @param {Element} wrapper\n     */\n    constructor(genericErrorText, wrapper)\n    {\n        this.genericErrorText = genericErrorText;\n        this.wrapper = wrapper;\n    }\n\n    genericError() {\n        this.clear();\n        this.message(this.genericErrorText)\n    }\n\n    appendPreparedErrorMessageElement(errorMessageElement)\n    {\n        this._getMessageContainer().replaceWith(errorMessageElement);\n    }\n\n    /**\n     * @param {String} text\n     */\n    message(text)\n    {\n        this._addMessage(text);\n\n        this._scrollToMessages();\n    }\n\n    /**\n     * @param {Array} texts\n     */\n    messages(texts)\n    {\n        texts.forEach(t => this._addMessage(t));\n\n        this._scrollToMessages();\n    }\n\n    /**\n     * @returns {String}\n     */\n    currentHtml()\n    {\n        const messageContainer = this._getMessageContainer();\n        return messageContainer.outerHTML;\n    }\n\n    /**\n     * @private\n     * @param {String} text\n     */\n    _addMessage(text)\n    {\n        if(! typeof String || text.length === 0) {\n            throw new Error('A new message text must be a non-empty string.');\n        }\n\n        const messageContainer = this._getMessageContainer();\n\n        let messageNode = this._prepareMessageElement(text);\n        messageContainer.appendChild(messageNode);\n    }\n\n    /**\n     * @private\n     */\n    _scrollToMessages()\n    {\n        jQuery.scroll_to_notices(jQuery('.woocommerce-error'));\n    }\n\n    /**\n     * @private\n     */\n    _getMessageContainer()\n    {\n        let messageContainer = document.querySelector('ul.woocommerce-error');\n        if (messageContainer === null) {\n            messageContainer = document.createElement('ul');\n            messageContainer.setAttribute('class', 'woocommerce-error');\n            messageContainer.setAttribute('role', 'alert');\n            jQuery(this.wrapper).prepend(messageContainer);\n        }\n        return messageContainer;\n    }\n\n    /**\n     * @private\n     */\n    _prepareMessageElement(message)\n    {\n        const li = document.createElement('li');\n        li.innerHTML = message;\n\n        return li;\n    }\n\n    clear()\n    {\n        jQuery( '.woocommerce-error, .woocommerce-message' ).remove();\n    }\n}\n\nexport default ErrorHandler;","module.exports = window[\"React\"];","module.exports = window[\"wp\"][\"element\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { useEffect, useState } from '@wordpress/element';\nimport ErrorHandler from './utils/ErrorHandler';\nimport PhonePrefix from \"./components/phone-prefix\";\n\n\nconst settings = window.wc.wcSettings.getSetting(\"payshop_mbway_data\", {});\nconst label = window.wp.htmlEntities.decodeEntities(settings.title);\nconst icon = settings.icon;\n\nconst Content = ( props ) => {\n\tconst { eventRegistration, emitResponse } = props;\n\tconst { onPaymentSetup, onCheckoutFail  } = eventRegistration;\n\n    const [prefix, setPrefix] = useState('+351');\n    const [phone, setPhone] = useState('');\n    const prefixRef = React.useRef(prefix);\n    const phoneRef = React.useRef(phone);\n\n\tfunction prefixChange(e) {\n        prefixRef.current = e.target.value;\n        setPrefix(e.target.value);\n    }\n\n    function phoneChange(e) {\n        const value = e.target.value.replace(/\\D/g, '').slice(0, 9);\n        phoneRef.current = value;\n        setPhone(value);\n    }\n\n\tuseEffect( () => {\n\t\tconst unsubscribe = onPaymentSetup( async () => {\n\t\t\tconst phone = phoneRef.current;\n\t\t\tconst prefix = prefixRef.current;\n\n\t\t\tif ( phone !== '' && prefix !== '' ) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: emitResponse.responseTypes.SUCCESS,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tpaymentMethodData: {\n\t\t\t\t\t\t\tprefix,\n\t\t\t\t\t\t\tphone,\n\t\t\t\t\t\t\tpayshop_mbway_nonce: settings.nonce\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: emitResponse.responseTypes.ERROR,\n\t\t\t\tmessage: settings.error_message,\n\t\t\t};\n\t\t} );\n\n\t\tonCheckoutFail(async (paymentResponse) => {\n\t\t\t// Extract error message from paymentResponse object\n\t\t\tconst errorMessage = paymentResponse.processingResponse.paymentDetails.errorMessage ?? '';\n\t\t  \n\t\t\tlet errorHandler = new ErrorHandler(\n                'Default message',\n                document.querySelector('.woocommerce-notices-wrapper')\n            );\n\n            errorHandler.clear();\n            errorHandler.message(errorMessage);\n        });\n\n\t\t// Unsubscribes when this component is unmounted.\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, [\n\t\temitResponse.responseTypes.ERROR,\n\t\temitResponse.responseTypes.SUCCESS,\n\t\tonPaymentSetup,\n\t] );\n\n\treturn <fieldset id=\"wc-payshop_card-cc-form\" className=\"wc-credit-card-form wc-payment-form\">\n                <p className=\"form-row form-row-wide woocommerce-validated\" style={{display: \"flex\"}}>\n\t\t\t\t\t<PhonePrefix onChange={prefixChange} />\n                    <input value={phone.replace(/(\\d{3})(?=\\d)/g, '$1 ')} onChange={phoneChange} id=\"id-phone-number\" placeholder=\"Número Telemóvel\" className=\"input-text wc-credit-card-form-card-number\" inputmode=\"numeric\" autocorrect=\"no\" autocapitalize=\"no\" spellcheck=\"no\" type=\"text\" data-checkout=\"wbwayNumber\" name=\"phone\" maxlength=\"11\" required style={{flexGrow: \"1\"}} />\n                </p>\n            </fieldset>;\n};\n\nconst Block_Gateway = {\n    name: \"payshop_mbway\",\n    label: <div style={{display: \"flex\", alignItems: \"center\"}}>\n            <span>{label}</span>\n            <img src={icon} style={{marginLeft: \"10px\"}} />\n        </div>,\n    content: <Content />,\n    edit: <div>{label}</div>,\n    canMakePayment: () => true,\n    ariaLabel: label,\n    supports: {\n        features: settings.supports,\n    },\n};\n\nwindow.wc.wcBlocksRegistry.registerPaymentMethod(Block_Gateway);"],"names":["PhonePrefix","props","createElement","class","name","className","required","style","width","paddingLeft","value","selected","ErrorHandler","constructor","genericErrorText","wrapper","genericError","clear","message","appendPreparedErrorMessageElement","errorMessageElement","_getMessageContainer","replaceWith","text","_addMessage","_scrollToMessages","messages","texts","forEach","t","currentHtml","messageContainer","outerHTML","String","length","Error","messageNode","_prepareMessageElement","appendChild","jQuery","scroll_to_notices","document","querySelector","setAttribute","prepend","li","innerHTML","remove","useEffect","useState","settings","window","wc","wcSettings","getSetting","label","wp","htmlEntities","decodeEntities","title","icon","Content","eventRegistration","emitResponse","onPaymentSetup","onCheckoutFail","prefix","setPrefix","phone","setPhone","prefixRef","React","useRef","phoneRef","prefixChange","e","current","target","phoneChange","replace","slice","unsubscribe","type","responseTypes","SUCCESS","meta","paymentMethodData","payshop_mbway_nonce","nonce","ERROR","error_message","paymentResponse","_paymentResponse$proc","errorMessage","processingResponse","paymentDetails","errorHandler","id","display","onChange","placeholder","inputmode","autocorrect","autocapitalize","spellcheck","maxlength","flexGrow","Block_Gateway","alignItems","src","marginLeft","content","edit","canMakePayment","ariaLabel","supports","features","wcBlocksRegistry","registerPaymentMethod"],"sourceRoot":""}
  • payshop-online-payments/tags/2.3.3/templates/blocks/package.json

    r3392166 r3605861  
    66  "scripts": {
    77    "build": "wp-scripts build",
    8     "start": "wp-scripts start ./src/card.js ./src/mbway.js ./src/payshop-reference.js ./src/multibanco-reference.js ./src/googlepay.js ./src/applepay.js ./src/clicktopay.js ./src/paypal.js"
     8    "start": "wp-scripts start ./src/card.js ./src/mbway.js ./src/payshop-reference.js ./src/multibanco-reference.js ./src/googlepay.js ./src/clicktopay.js ./src/paypal.js"
    99  },
    1010  "author": "",
  • payshop-online-payments/tags/2.3.3/templates/blocks/src/mbway.js

    r3392166 r3605861  
    2323
    2424    function phoneChange(e) {
    25         phoneRef.current = e.target.value;
    26         setPhone(e.target.value);
     25        const value = e.target.value.replace(/\D/g, '').slice(0, 9);
     26        phoneRef.current = value;
     27        setPhone(value);
    2728    }
    2829
    … …  
    7778                <p className="form-row form-row-wide woocommerce-validated" style={{display: "flex"}}>
    7879                                        <PhonePrefix onChange={prefixChange} />
    79                     <input value={phone} onChange={phoneChange} id="id-phone-number" placeholder="Número Telemóvel" className="input-text wc-credit-card-form-card-number" inputmode="text" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="19" required style={{flexGrow: "1"}} />
     80                    <input value={phone.replace(/(\d{3})(?=\d)/g, '$1 ')} onChange={phoneChange} id="id-phone-number" placeholder="Número Telemóvel" className="input-text wc-credit-card-form-card-number" inputmode="numeric" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="11" required style={{flexGrow: "1"}} />
    8081                </p>
    8182            </fieldset>;
  • payshop-online-payments/tags/2.3.3/templates/css/references-dialog.css

    r3392166 r3605861  
    1515    left: 50%;
    1616    transform: translate(-50%, -50%);
    17     width: 400px;
     17    width: 90%;
     18    max-width: 400px;
    1819    height: 90%;
    1920    background: #fff;
    … …  
    3940    display: none;
    4041}
     42
     43/* Direct display styles */
     44.payshop-references-container {
     45    box-sizing: border-box;
     46    border: 2px solid #0055b8; /* Multibanco blue as default */
     47    border-radius: 8px;
     48    padding: 20px;
     49    margin: 20px 0;
     50    background-color: #f9f9f9;
     51    max-width: 100%;
     52    width: 100%;
     53}
     54
     55.payshop-references-header {
     56    display: flex;
     57    align-items: center;
     58    flex-wrap: wrap;
     59    margin-bottom: 20px;
     60    border-bottom: 1px solid #ddd;
     61    padding-bottom: 10px;
     62}
     63
     64.payshop-references-header img {
     65    height: 40px;
     66    margin-right: 15px;
     67    flex-shrink: 0;
     68}
     69
     70.payshop-references-header h3 {
     71    margin: 0;
     72    font-size: 1.25em;
     73    color: #333;
     74    word-break: break-word;
     75}
     76
     77.payshop-reference-item {
     78    display: flex;
     79    justify-content: space-between;
     80    padding: 10px 0;
     81    border-bottom: 1px dashed #eee;
     82    gap: 10px;
     83}
     84
     85.payshop-reference-item:last-child {
     86    border-bottom: none;
     87}
     88
     89.payshop-reference-item .label {
     90    font-weight: bold;
     91    color: #666;
     92    flex-shrink: 0;
     93}
     94
     95.payshop-reference-item .value {
     96    font-weight: 800;
     97    font-size: 1.1em;
     98    color: #000;
     99    word-break: break-all;
     100    text-align: right;
     101}
     102
     103.payshop-references-footer {
     104    margin-top: 15px;
     105    font-size: 0.9em;
     106    color: #777;
     107    text-align: center;
     108}
     109
     110@media (max-width: 480px) {
     111    .payshop-reference-item {
     112        flex-direction: column;
     113        align-items: flex-start;
     114        gap: 5px;
     115    }
     116
     117    .payshop-reference-item .value {
     118        margin-top: 0;
     119        text-align: left;
     120    }
     121}
     122""
  • payshop-online-payments/tags/2.3.3/templates/views/front/mbway.php

    r3392166 r3605861  
    1515        <div style="display: flex;">
    1616            <?php include ('partials/phone-prefix.php')?>
    17             <input id="id-phone-number" class="input-text wc-credit-card-form-card-number" inputmode="text" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="19" required style="flex-grow: 1;">
     17            <input id="id-phone-number" class="input-text wc-credit-card-form-card-number" inputmode="text" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="9" required style="flex-grow: 1;">
    1818        </div>
    1919        <small id="payshop-error-phone-number" class="payshop-erro-form" data-main="#id-phone-number" style="display: none; color: #e81814;">
  • payshop-online-payments/tags/2.3.3/translations/payshop-online-payments-pt_PT.po

    r3471786 r3605861  
    55"Project-Id-Version: Plugins - Payshop Online Payments - Stable (latest release)\n"
    66"POT-Creation-Date: \n"
    7 "PO-Revision-Date: 2026-02-28 16:22-0300\n"
     7"PO-Revision-Date: 2026-05-16 15:58-0300\n"
    88"Last-Translator: \n"
    99"Language-Team: \n"
    … …  
    536536msgstr "Erro Payshop: Verifique as credenciais de produção nas definições do Payshop."
    537537
     538#: includes/module/alerts/PayshopCredentialsAlert.php:30
     539msgid "Payshop Error: Check credentials on payshop settings."
     540msgstr "Erro Payshop: Verifique as credenciais nas definições do Payshop."
     541
    538542#: includes/module/actions/PayshopUpdateOrder.php:97
    539543msgid "Payment status updated"
    … …  
    618622#: controllers/front/PayshopProcessFailedRedirect.php:43
    619623#: includes/module/events/PayshopPaymentRefused.php:39
    620 #: includes/module/schedules/PayshopCancelOrderSchedule.php:32
    621624msgid "Payment refused"
    622625msgstr "O pagamento foi rejeitado"
     626
     627#: includes/module/events/PayshopPaymentReferenceExpired.php:39
     628msgid "Payment reference expired"
     629msgstr "A referência de pagamento expirou"
     630
     631#: includes/module/events/PayshopPaymentRefunded.php:57
     632msgid "Refund processed by Payshop gateway"
     633msgstr "Reembolso processado pelo gateway Payshop"
     634
     635#: includes/module/events/PayshopPaymentRefunded.php:69
     636msgid "Refunded %s"
     637msgstr "Reembolsado %s"
    623638
    624639#: controllers/front/PayshopProcessFailedRedirect.php:34
    … …  
    679694msgid "Payshop Online Payments"
    680695msgstr "Payshop Online Payments"
     696
     697#: includes/module/settings/PayshopCredentialsSettings.php:107
     698msgid "Enable Apple Pay"
     699msgstr "Habilitar Apple Pay"
     700
     701#: includes/module/settings/PayshopCredentialsSettings.php:109
     702msgid "If enabled, the option to pay with Apple Pay will be shown alongside credit card and the customer will be able to see the Apple Pay button on the same credit card payment page. Attention, this feature must be enabled in your Payshop account."
     703msgstr "Se habilitado a opção de pagar com Apple Pay será mostrada junto com o cartão de crédito e o cliente poderá ver o botão do Apple Pay na mesma página de pagamento com cartão de crédito. Atenção, esse recurso precisa estar habilitado na sua conta do Payshop"
     704
     705#: includes/module/payments/PayshopCard.php:40
     706msgid "Payshop Card and Apple Pay"
     707msgstr "Cartão Payshop e Apple Pay"
     708
     709#: includes/module/payments/PayshopCard.php:41
     710msgid "Debit, credit card and Apple Pay on Payshop Online Payments"
     711msgstr "Cartão de crédito, débito e Apple Pay no Payshop Online Payments"
     712
     713#: includes/module/payments/PayshopCard.php:42
     714msgid "Credit or debit card / Apple Pay"
     715msgstr "Cartão de crédito ou débito / Apple Pay"
     716
     717#: includes/module/payments/PayshopCard.php:43
     718msgid "Pay with your card or Apple Pay via Payshop Online Payments."
     719msgstr "Pague com seu cartão ou Apple Pay via Payshop Online Payments."
     720
     721#: includes/module/settings/PayshopCredentialsSettings.php:121
     722msgid "The status selected here will be the default order status when a payment is refused. Note: only the \"failed\" status will allow the customer to retry the payment."
     723msgstr "O status selecionado aqui será o status padrão da ordem quando o pagamento for recusado. Observação: apenas o status falhado vai dar a opção do cliente tentar efetuar novamente o pagamento."
     724
     725#: includes/module/settings/PayshopCredentialsSettings.php:119
     726msgid "Refused Payment Status"
     727msgstr "Status Pagamento Recusado"
     728
     729#: includes/module/settings/PayshopCredentialsSettings.php:115
     730msgid "Show references directly"
     731msgstr "Mostrar referências diretamente"
     732
     733#: includes/module/settings/PayshopCredentialsSettings.php:117
     734msgid "If enabled, the payment reference data (Payshop Reference and Multibanco) will be shown directly on the thank you page instead of a popup."
     735msgstr "Se ativado, os dados de referência de pagamento (Payshop Referência e Multibanco) serão mostrados diretamente na página de obrigado em vez de um popup."
     736
     737#: templates/views/front/references-direct.php:11
     738msgid "Multibanco Payment Details"
     739msgstr "Detalhes do Pagamento Multibanco"
     740
     741#: templates/views/front/references-direct.php:14
     742msgid "Payshop Payment Details"
     743msgstr "Detalhes do Pagamento Payshop"
     744
     745#: templates/views/front/references-direct.php:26
     746msgid "Entity:"
     747msgstr "Entidade:"
     748
     749#: templates/views/front/references-direct.php:31
     750msgid "Reference:"
     751msgstr "Referência:"
     752
     753#: templates/views/front/references-direct.php:35
     754msgid "Amount:"
     755msgstr "Montante:"
     756
     757#: templates/views/front/references-direct.php:40
     758msgid "Deadline:"
     759msgstr "Validade:"
     760
     761#: templates/views/front/references-direct.php:47
     762msgid "Please use the details above to complete your payment."
     763msgstr "Por favor, utilize os dados acima para completar o seu pagamento."
     764
     765msgid "Other Settings"
     766msgstr "Outras Configurações"
     767
     768#: includes/module/settings/PayshopOthersSettings.php:32
     769msgid "Reference expiration date"
     770msgstr "Prazo de expiração da Referência"
     771
     772#: includes/module/settings/PayshopOthersSettings.php:34
     773msgid "Expiration period of Payshop and Multibanco references in days from the day of creation"
     774msgstr "Prazo de expiração das referencias Payshop e Multibanco em dias a partir do dia de criação"
     775
     776msgid "Checkout ID"
     777msgstr "Checkout ID"
     778
     779msgid "Get your checkout id in the Payshop backoffice. Select the Production environment, then go to settings > checkouts > copy the checkout id."
     780msgstr "Obtenha seu checkout id no backoffice da payshop. Selecione o ambiente Produção, em seguida vá em configurações > checkouts > copie o checkout id."
     781
     782msgid "Apple Pay was disabled because the Checkout ID is required."
     783msgstr "O Apple Pay foi desativado porque o Checkout ID é obrigatório."
     784
     785msgid "If enabled, the option to pay with Apple Pay will be shown alongside credit card and the customer will be able to see the Apple Pay button on the same credit card payment page. Attention, this feature must be enabled in your Payshop account. Note: The Apple Pay button only appears in production environment, using Safari on Macs and iPhones."
     786msgstr "Se ativado, a opção de pagar com Apple Pay será exibida ao lado do cartão de crédito e o cliente poderá ver o botão Apple Pay na mesma página de pagamento com cartão de crédito. Atenção, este recurso deve estar ativado na sua conta Payshop. Nota: O botão Apple Pay só aparece em ambiente de produção, usando Safari em Macs e iPhones."
     787
     788#: includes/module/integrations/PayshopApgSms.php
     789msgid "Ent."
     790msgstr "Ent."
     791
     792#: includes/module/integrations/PayshopApgSms.php
     793msgid "Ref."
     794msgstr "Ref."
     795
     796#: includes/module/integrations/PayshopApgSms.php
     797msgid "Val."
     798msgstr "Val."
     799
     800#: includes/module/integrations/PayshopApgSms.php
     801msgid "Valid until"
     802msgstr "Válida até"
  • payshop-online-payments/trunk/controllers/front/PayshopProcessFailedRedirect.php

    r3392166 r3605861  
    4141            }
    4242
    43             $order->update_status('failed', esc_html__('Payment refused', 'payshop-online-payments'));
     43            $order->update_status(PayshopCommons::getRefusedOrderStatus(), esc_html__('Payment refused', 'payshop-online-payments'));
    4444            $order->save();
    4545
  • payshop-online-payments/trunk/controllers/front/PayshopProcessWalletPayment.php

    r3392166 r3605861  
    2929            $result = $this->payshopCreateWalletPayment->execute($data);
    3030
    31             $order = wc_get_order($data['order_id']);
    32 
    33             if ($data['payment_type'] === 'GOOGLEPAY') {
    34                 $redirect = $result;
    35             } else {
    36                 $redirect = $order->get_checkout_order_received_url();
    37             }
    38 
    3931            wp_send_json([
    4032                'success' => !! $result,
    41                 'redirect' => $redirect
     33                'redirect' => $result
    4234            ]);
    4335        } catch (\Throwable $e) {
  • payshop-online-payments/trunk/controllers/front/PayshopProcessWebhook.php

    r3392166 r3605861  
    4747                            $data['order']['transactions'][$key]['status'] = sanitize_text_field($transaction['status']);
    4848                        }
     49                        if (isset($transaction['error_details']['error_code'])) {
     50                            $data['order']['transactions'][$key]['error_details']['error_code'] = sanitize_text_field($transaction['error_details']['error_code']);
     51                        }
     52                        if (isset($transaction['operative'])) {
     53                            $data['order']['transactions'][$key]['operative'] = sanitize_text_field($transaction['operative']);
     54                        }
    4955                    }
    5056                }
    … …  
    8187        return in_array($orderPaymentStatus, [
    8288            'CREATED',
    83             'PARTIALLY_REFUNDED',
    8489            'PARTIALLY_CONFIRMED',
    85             'REFUNDED',
    8690            'PENDING_PROCESSOR_RESPONSE',
    8791            'PENDING_3DS_RESPONSE',
  • payshop-online-payments/trunk/includes/PayshopAdminBootstrap.php

    r3392166 r3605861  
    3232        require_once PAYSHOP_PLUGIN_DIR . '/controllers/admin/PayshopTwoStepPayment.php';
    3333
     34        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopSettings.php';
    3435        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopCredentialsSettings.php';
     36        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopOthersSettings.php';
    3537        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopPaymentServiceUUID.php';
    3638        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/settings/PayshopPluginListLinks.php';
    … …  
    5961        (new PayshopRequirementsAlert())->execute();
    6062        (new PayshopWoocommerceAlert())->execute();
    61         (new PayshopCredentialsSettings())->execute();
     63        (new PayshopSettings())->execute();
    6264        (new PayshopPluginListLinks())->execute();
    6365        (new PayshopCredentialsAlert())->execute();
  • payshop-online-payments/trunk/includes/PayshopBootstrap.php

    r3392166 r3605861  
    7070        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopCreatePaymentOrder.php';
    7171        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopUpdateOrder.php';
    72         require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopAppleValidateMerchant.php';
    7372        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/actions/PayshopCreateWalletPayment.php';
    7473
    … …  
    8180        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/PayshopClickToPay.php';
    8281        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/PayshopGooglePay.php';
    83         require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/PayshopApplePay.php';
    8482
    8583        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopPaymentBlocks.php';
    … …  
    8785        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/dialogs/PayshopReferencesDialog.php';
    8886        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/dialogs/PayshopGooglePayDialog.php';
    89         require_once PAYSHOP_PLUGIN_DIR . '/includes/module/dialogs/PayshopApplePayDialog.php';
    90 
    91         require_once PAYSHOP_PLUGIN_DIR . '/includes/module/schedules/PayshopCancelOrderSchedule.php';
    9287
    9388        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/loaders/PayshopCSS.php';
    9489        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/PayshopAddHeaders.php';
    9590
     91        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/integrations/PayshopApgSms.php';
     92
    9693        require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopProcessWebhook.php';
    9794        require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopProcessFailedRedirect.php';
    9895        require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopProcessWalletPayment.php';
    99         require_once PAYSHOP_PLUGIN_DIR . '/controllers/front/PayshopApplepayMerchantValidation.php';
    10096
    10197        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/emails/PayshopReferencesEmail.php';
    … …  
    112108        new PayshopProcessFailedRedirect();
    113109        new PayshopProcessWalletPayment();
    114         new PayshopApplepayMerchantValidation();
    115110    }
    116111
    … …  
    126121        new PayshopPaymentBlocks();
    127122        new PayshopAddHeaders();
     123        new PayshopApgSms();
    128124       
    129125        (new PayshopReferencesDialog())->execute();
    130126        (new PayshopGooglePayDialog())->execute();
    131         (new PayshopApplePayDialog())->execute();
    132127       
    133128        new PayshopReferencesEmail();
    134         new PayshopCancelOrderSchedule();
    135129    }
    136130}
  • payshop-online-payments/trunk/includes/helpers/PayshopCommons.php

    r3392166 r3605861  
    8181        $order->save();
    8282    }
     83
     84    /**
     85     * Get refused order status from settings
     86     *
     87     * @return string
     88     */
     89    public static function getRefusedOrderStatus()
     90    {
     91        $status = get_option('payshop_refused_payment_status', 'failed');
     92        return str_replace('wc-', '', $status);
     93    }
    8394}
  • payshop-online-payments/trunk/includes/module/actions/PayshopCreatePaymentOrder.php

    r3392166 r3605861  
    174174    {
    175175        if ($order->get_payment_method() === 'payshop_card') {
    176             return [
     176            $options = [
    177177                'secure' => true,
    178178                'save_card' => false,
    179179            ];
     180
     181            if (get_option('payshop_apple_pay_enabled') === 'yes' && !empty(get_option('payshop_checkout_id')) && get_option('payshop_environment') == 'production') {
     182                $options['extra_data'] = [
     183                    "checkout" => [
     184                        "uuid" => get_option('payshop_checkout_id'),
     185                        "customization" => null,
     186                        "payment_methods" => ["APPLEPAY", "PAYMENT_CARD"]
     187                    ]
     188                ];
     189            }
     190
     191            return $options;
    180192        }
    181193
    … …  
    202214            }
    203215
    204             $phone = sanitize_text_field(wp_unslash($_POST['phone']));
     216            // Keep only digits: the phone field is masked for display with spaces,
     217            // but the gateway requires the raw number.
     218            $phone = preg_replace('/\D/', '', sanitize_text_field(wp_unslash($_POST['phone'])));
    205219            $prefix = sanitize_text_field(wp_unslash($_POST['prefix']));
    206220
    … …  
    222236        }
    223237
     238        if ($order->get_payment_method() === 'payshop_multibanco' || $order->get_payment_method() === 'payshop_reference') {
     239            $days_to_expire = (int) get_option('payshop_reference_expiration', 3);
     240            $deadline_date = date('Y-m-d', strtotime("+$days_to_expire days"));
     241
     242            $options['extra_data'] = [
     243                "payment" => [
     244                    "deadline" => $deadline_date,
     245                ]
     246            ];
     247        }
     248
    224249        return $options;
    225250    }
  • payshop-online-payments/trunk/includes/module/alerts/PayshopCredentialsAlert.php

    r3392166 r3605861  
    1010    public function execute()
    1111    {
    12         $this->checkProdutionCredencials();
     12        if ($this->isPayshopSettingsPage()) {
     13            return;
     14        }
    1315
    14         $this->checkSandboxCredencials();
     16        if (get_option('payshop_environment') === false) {
     17            $this->checkCredentials();
     18            return;
     19        }
     20
     21        if (get_option('payshop_environment') == 'production') {
     22            $this->checkProdutionCredencials();
     23            return;
     24        }
     25
     26        if (get_option('payshop_environment') == 'sandbox') {
     27            $this->checkSandboxCredencials();
     28        }
     29    }
     30
     31    /**
     32     * Check if the current page is the Payshop settings page
     33     *
     34     * @return bool
     35     */
     36    protected function isPayshopSettingsPage()
     37    {
     38        return isset($_GET['page']) && $_GET['page'] === 'wc-settings' && isset($_GET['tab']) && $_GET['tab'] === 'payshop';
     39    }
     40
     41    /**
     42     * Check if it has any credentials
     43     * @return void
     44     */
     45    private function checkCredentials()
     46    {
     47        $type    = 'error';
     48        $message = esc_html__('Payshop Error: Check credentials on payshop settings.', 'payshop-online-payments');
     49
     50        $this->show($type, $message);
    1551    }
    1652
    … …  
    2258    private function checkProdutionCredencials()
    2359    {
    24         if (get_option('payshop_environment') == 'sandbox') {
    25             return;
    26         }
    27 
    2860        if (!get_option('payshop_api_key') || !get_option('payshop_signature') || !get_option('payshop_client_uuid')) {
    2961            $type    = 'error';
    … …  
    4173    private function checkSandboxCredencials()
    4274    {
    43         if (get_option('payshop_environment') == 'production') {
    44             return;
    45         }
    46 
    4775        if (!get_option('payshop_sandbox_api_key') || !get_option('payshop_sandbox_signature') || !get_option('payshop_sandbox_client_uuid')) {
    4876            $type    = 'error';
  • payshop-online-payments/trunk/includes/module/dialogs/PayshopReferencesDialog.php

    r3392166 r3605861  
    44{
    55    /**
    6      * Class constructor
     6     * @var bool
    77     */
    8     public function __construct()
    9     {
    10         add_action('woocommerce_after_register_post_type', [$this, 'execute']);
    11     }
     8    private static $rendered = false;
    129
    1310    /**
    14      * Show references iframe
     11     * Show references iframe or direct content
    1512     *
    1613     * @return void
    … …  
    1815    public function execute()
    1916    {
    20         add_action('wp_enqueue_scripts', [$this, 'showDialog']);
     17        add_action('wp_enqueue_scripts', [$this, 'popupIframe']);
     18        add_action('woocommerce_thankyou', [$this, 'renderDirectly'], 5);
     19        add_action('woocommerce_order_details_before_order_table', [$this, 'renderDirectly'], 5);
    2120    }
    2221
    2322    /**
    24      * Show the References dialog
    25      *
     23     * Enqueue scripts and styles
     24     * 
    2625     * @return void
    2726     */
    28     public function showDialog()
     27    public function popupIframe()
    2928    {
    30         if (!is_order_received_page()) {
    31             return;
    32         }
    33 
    34         global $wp;
    35         $orderId = $wp->query_vars['order-received'];
    36         $order = wc_get_order($orderId);
    37 
    38         if (!$order) {
    39             return;
    40         }
    41 
    42         if (
    43             $order->get_payment_method() !== 'payshop_multibanco' &&
    44             $order->get_payment_method() !== 'payshop_reference'
    45         ) {
    46             return;
    47         }
    48 
    49         $iframeContent = wc()->session->get('order_iframe_content');
    50 
    51         if (empty($iframeContent)) {
     29        if (!is_wc_endpoint_url('order-received')) {
    5230            return;
    5331        }
    … …  
    5735            PAYSHOP_PLUGIN_URL . 'templates/css/references-dialog.css'
    5836        );
     37
     38        $showDirectly = get_option('payshop_show_references_directly') === 'yes';
     39        if ($showDirectly) {
     40            return;
     41        }
     42
     43        global $wp;
     44        $orderId = $wp->query_vars['order-received'];
     45        $order = wc_get_order($orderId);
     46        $method = $order->get_payment_method();
     47        if ($method !== 'payshop_multibanco' && $method !== 'payshop_reference') {
     48            return;
     49        }
     50       
     51        $iframeContent = wc()->session->get('order_iframe_content');
     52        if (empty($iframeContent)) {
     53            return;
     54        }
    5955
    6056        wp_enqueue_script(
    … …  
    7571
    7672        add_action('wp_footer', function () {
    77             require_once PAYSHOP_PLUGIN_DIR . 'templates/views/front/references-dialog.php';
     73            include PAYSHOP_PLUGIN_DIR . 'templates/views/front/references-dialog.php';
    7874        });
     75       
     76    }
     77
     78    /**
     79     * Render references directly in the Thank You page
     80     *
     81     * @param int|WC_Order $order_id
     82     * @return void
     83     */
     84    public function renderDirectly($order_id)
     85    {
     86        if (self::$rendered) {
     87            return;
     88        }
     89
     90        $showDirectly = get_option('payshop_show_references_directly') === 'yes';
     91        if (!$showDirectly) {
     92            return;
     93        }
     94
     95        if (is_numeric($order_id)) {
     96            $order = wc_get_order($order_id);
     97        } elseif ($order_id instanceof WC_Order) {
     98            $order = $order_id;
     99        } else {
     100            return;
     101        }
     102       
     103        if (!$order) {
     104            return;
     105        }
     106
     107        $method = $order->get_payment_method();
     108        if ($method !== 'payshop_multibanco' && $method !== 'payshop_reference') {
     109            return;
     110        }
     111
     112        $entity = $order->get_meta('_payshop_entity');
     113        $reference = $order->get_meta('_payshop_reference');
     114        $deadline = $order->get_meta('_payshop_deadline');
     115
     116        if (!$reference) {
     117            return;
     118        }
     119
     120        self::$rendered = true;
     121        include PAYSHOP_PLUGIN_DIR . 'templates/views/front/references-direct.php';
    79122    }
    80123}
  • payshop-online-payments/trunk/includes/module/events/PayshopPaymentRefused.php

    r3392166 r3605861  
    3131        $this->payshopUpdateOrder->execute(
    3232            $order->get_id(),
    33             'failed',
     33            PayshopCommons::getRefusedOrderStatus(),
    3434            $order->get_meta('_payshop_payment_order_uuid'),
    3535        );
  • payshop-online-payments/trunk/includes/module/events/PayshopProcessEvent.php

    r3392166 r3605861  
    33if ( ! defined( 'ABSPATH' ) ) exit;
    44
     5require_once 'PayshopPaymentReferenceExpired.php';
     6require_once 'PayshopPaymentRefunded.php';
    57require_once 'PayshopPaymentRefused.php';
    68require_once 'PayshopPaymentSuccess.php';
    … …  
    2426
    2527    /**
     28     * @var PayshopPaymentReferenceExpired
     29     */
     30    private $payshopPaymentReferenceExpired;
     31
     32    /**
     33     * @var PayshopPaymentRefunded
     34     */
     35    private $payshopPaymentRefunded;
     36
     37    /**
    2638     * Class constructor
    2739     */
    … …  
    3143        $this->payshopPaymentSuccess = new PayshopPaymentSuccess();
    3244        $this->payshopPaymentRefused = new PayshopPaymentRefused();
     45        $this->payshopPaymentReferenceExpired = new PayshopPaymentReferenceExpired();
     46        $this->payshopPaymentRefunded = new PayshopPaymentRefunded();
    3347    }
    3448
    … …  
    4256    {
    4357        $order = $this->getOrderByPaymentOrderUUID($paymentOrder['uuid']);
     58
    4459        $this->addMetadataAppName($paymentOrder);
     60
     61        if ($this->payshopPaymentRefunded->check($paymentOrder)) {
     62            return $this->payshopPaymentRefunded->process($order, $paymentOrder);
     63        }
    4564
    4665        $isPaymentInTwoStep = $order->get_meta('_payshop_payment_in_two_steps') == 'yes';
    … …  
    5776        }
    5877
     78        if ($paymentOrder['status'] == 'REFUSED' && $this->isReferenceExpired($paymentOrder)) {
     79            return $this->payshopPaymentReferenceExpired->process($order);
     80        }
     81
    5982        return $this->payshopPaymentRefused->process($order);
     83    }
     84
     85    /**
     86     * Check if the payment was refused due to an expired reference (error E0621)
     87     *
     88     * @param array $paymentOrder
     89     * @return bool
     90     */
     91    private function isReferenceExpired(array $paymentOrder): bool
     92    {
     93        $transactions = $paymentOrder['transactions'] ?? [];
     94
     95        if (!$transactions) {
     96            return false;
     97        }
     98
     99        $lastTransaction = $transactions[count($transactions) - 1];
     100
     101        return ($lastTransaction['status'] ?? null) === 'REFUSED'
     102            && ($lastTransaction['error_details']['error_code'] ?? null) === 'E0621';
    60103    }
    61104
  • payshop-online-payments/trunk/includes/module/payments/PayshopCard.php

    r3534778 r3605861  
    3333        $this->description = $this->get_option('payshop_card_description');
    3434        $this->enabled = $this->get_option('payshop_card_enabled');
     35
     36        if (get_option('payshop_apple_pay_enabled') === 'yes') {
     37            $this->method_title = esc_html__('Payshop Card and Apple Pay', 'payshop-online-payments');
     38            $this->method_description = esc_html__('Debit, credit card and Apple Pay on Payshop Online Payments', 'payshop-online-payments');
     39            $this->title = esc_html__('Credit or debit card / Apple Pay', 'payshop-online-payments');
     40            $this->description = esc_html__('Pay with your card or Apple Pay via Payshop Online Payments.', 'payshop-online-payments');
     41        }
    3542     
    3643        add_action('woocommerce_update_options_payment_gateways_' . $this->id, [$this, 'process_admin_options']);
    … …  
    118125                    $paymentOrder['uuid']
    119126            );
    120 
     127           
    121128            return [
    122129                'result' => 'success',
  • payshop-online-payments/trunk/includes/module/payments/PayshopMultibanco.php

    r3400393 r3605861  
    1212     */
    1313    private $payshopUpdateOrder;
    14 
    15     /**
    16      * @var PayshopCancelOrderSchedule
    17      */
    18     private $payshopCancelOrderSchedule;
    1914
    2015    /**
    … …  
    4338        $this->payshopCreatePaymentOrder = new PayshopCreatePaymentOrder();
    4439        $this->payshopUpdateOrder = new PayshopUpdateOrder();
    45         $this->payshopCancelOrderSchedule = new PayshopCancelOrderSchedule();
    4640    }
    4741
    … …  
    115109            $paymentOrder = $paymentOrder['response']['order'];
    116110            PayshopCommons::saveOrderReference($order, $paymentOrder['transactions'][0]['payment_data']);
    117 
    118             $this->payshopCancelOrderSchedule->schedule_cancellation(
    119                 $paymentOrder['transactions'][0]['payment_data']['deadline'],
    120                 $orderId
    121             );
    122111 
    123112            $this->payshopUpdateOrder->execute(
  • payshop-online-payments/trunk/includes/module/payments/PayshopPaymentMethods.php

    r3392166 r3605861  
    1818    public function addPaymentMethods($gateways)
    1919    {
    20         $gateways = [];
    21 
    2220        $paymentServices = [
    2321            'payshop_card' => 'PayshopCard',
    … …  
    2725            'payshop_paypal' => 'PayshopPaypal',
    2826            'payshop_clicktopay' => 'PayshopClickToPay',
    29             'payshop_googlepay' => 'PayshopGooglePay',
    30             'payshop_applepay' => 'PayshopApplePay'
     27            'payshop_googlepay' => 'PayshopGooglePay'
    3128        ];
    3229
  • payshop-online-payments/trunk/includes/module/payments/PayshopReference.php

    r3400393 r3605861  
    1212     */
    1313    private $payshopUpdateOrder;
    14 
    15     /**
    16      * @var PayshopCancelOrderSchedule
    17      */
    18     private $payshopCancelOrderSchedule;
    1914
    2015    /**
    … …  
    4338        $this->payshopCreatePaymentOrder = new PayshopCreatePaymentOrder();
    4439        $this->payshopUpdateOrder = new PayshopUpdateOrder();
    45         $this->payshopCancelOrderSchedule = new PayshopCancelOrderSchedule();
    4640    }
    4741
    … …  
    116110            PayshopCommons::saveOrderReference($order, $paymentOrder['transactions'][0]['payment_data']);
    117111
    118             $this->payshopCancelOrderSchedule->schedule_cancellation(
    119                 $paymentOrder['transactions'][0]['payment_data']['deadline'],
    120                 $orderId
    121             );
    122112
    123113            $this->payshopUpdateOrder->execute(
  • payshop-online-payments/trunk/includes/module/payments/blocks/PayshopMBWayBlock.php

    r3400393 r3605861  
    5050                'wp-i18n',
    5151            ],
    52             null,
     52            filemtime(PAYSHOP_PLUGIN_DIR . 'templates/blocks/build/mbway.js'),
    5353            true
    5454        );
  • payshop-online-payments/trunk/includes/module/payments/blocks/PayshopPaymentBlocks.php

    r3392166 r3605861  
    2323    {
    2424        if (class_exists(FeaturesUtil::class)) {
    25             $pluginFile = PAYSHOP_PLUGIN_DIR . '/payshop.php';
     25            $pluginFile = PAYSHOP_PLUGIN_DIR . 'payshop-online-payments.php';
    2626            FeaturesUtil::declare_compatibility('cart_checkout_blocks',  $pluginFile, true);
    2727        }
    … …  
    4343        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopMBWayBlock.php';
    4444        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopGooglePayBlock.php';
    45         require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopApplePayBlock.php';
    4645        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopPaypalBlock.php';
    4746        require_once PAYSHOP_PLUGIN_DIR . '/includes/module/payments/blocks/PayshopClickToPayBlock.php';
    … …  
    5554                $payment_method_registry->register(new PayshopMultibancoBlock);
    5655                $payment_method_registry->register(new PayshopGooglePayBlock);
    57                 $payment_method_registry->register(new PayshopApplePayBlock);
    5856                $payment_method_registry->register(new PayshopPaypalBlock);
    5957                $payment_method_registry->register(new PayshopClickToPayBlock);
  • payshop-online-payments/trunk/includes/module/settings/PayshopCredentialsSettings.php

    r3392166 r3605861  
    99
    1010    /**
    11      * Define payshop credentials settings
     11     * Constructor
     12     */
     13    public function __construct()
     14    {
     15        $this->PayshopPaymentServiceUUID = new PayshopPaymentServiceUUID();
     16    }
     17
     18    /**
     19     * Save credentials specific data
    1220     *
    1321     * @return void
    1422     */
    15     public function execute()
    16     {
    17         $this->PayshopPaymentServiceUUID = new PayshopPaymentServiceUUID();
    18         add_filter('woocommerce_settings_tabs_array', [$this, 'addSettingsTab'], 50);
    19         add_action('woocommerce_settings_tabs_payshop', [$this, 'settingsTab']);
    20         add_action('woocommerce_update_options_payshop', [$this, 'updateSettings']);
    21     }
    22    
    23     /**
    24      * Add payshop settings tab
    25      *
    26      * @param array $settingsTabs
    27      * @return array
    28      */
    29     public function addSettingsTab($settingsTabs)
    30     {
    31         $settingsTabs['payshop'] = esc_html__('Payshop', 'payshop-online-payments');
    32 
    33         return $settingsTabs;
    34     }
    35 
    36     /**
    37      * Define fields in Settings tab
    38      *
    39      * @return void
    40      */
    41     public function settingsTab()
    42     {
    43         woocommerce_admin_fields($this->getSettings());
    44     }
    45 
    46     /**
    47      * Save settings fields
    48      *
    49      * @return array
    50      */
    51     public function updateSettings()
     23    public function update()
    5224    {
    5325        update_option('payshop_card_service_uuid', NULL);
    … …  
    5527        update_option('payshop_multibanco_service_uuid', NULL);
    5628        update_option('payshop_reference_service_uuid', NULL);
    57 
    58         woocommerce_update_options($this->getSettings());
     29        update_option('payshop_googlepay_service_uuid', NULL);
     30        // update_option('payshop_applepay_service_uuid', NULL);
    5931
    6032        try {
    … …  
    7042     * @return array
    7143     */
    72     private function getSettings()
     44    public function getSettings()
    7345    {
    7446        return $this->generalSettings() +
  • payshop-online-payments/trunk/includes/module/settings/PayshopPaymentServiceUUID.php

    r3392166 r3605861  
    1414
    1515    /**
    16      * Class constructor
    17      */
    18     public function __construct()
    19     {
    20         $this->payshopSDK = PayshopClientFactory::getInstance();
    21     }
    22 
    23     /**
    2416     * Add links to plugin list
    2517     *
    … …  
    2820    public function execute()
    2921    {
     22        $this->payshopSDK = PayshopClientFactory::getInstance(true);
     23
    3024        $this->availableServices = $this->getGatewayServices();
    3125
  • payshop-online-payments/trunk/includes/sdk/PayshopClientFactory.php

    r3392166 r3605861  
    1818     * @return PayshopClient
    1919     */
    20     public static function getInstance()
     20    public static function getInstance($force = false)
    2121    {
    22         if (null === self::$payshopClient) {
     22        if (null === self::$payshopClient || $force) {
    2323            try {
    2424                self::$payshopClient = new PayshopClient(
  • payshop-online-payments/trunk/payshop-online-payments.php

    r3604199 r3605861  
    77 * Plugin URI: https://payshop.pt
    88 * Description: Customize the payment experience of your customers in your online store.
    9  * Version: 2.2.14
     9 * Version: 2.3.3
    1010 * Requires at least: 5.8
    1111 * Tested up to: 7.0
    … …  
    1919
    2020// the version needs to be changed in the file readme.txt too
    21 define('PAYSHOP_PLUGIN_VERSION', '2.2.14');
     21define('PAYSHOP_PLUGIN_VERSION', '2.3.3');
    2222define('PAYSHOP_PLUGIN_DIR', plugin_dir_path( __FILE__ ));
    2323define('PAYSHOP_PLUGIN_URL', plugin_dir_url( __FILE__ ));
  • payshop-online-payments/trunk/readme.txt

    r3604199 r3605861  
    55Tested up to: 7.0
    66Requires PHP: 7.4
    7 Stable tag: 2.2.17
     7Stable tag: 2.3.3
    88License: GPLv3
    99License URI: https://www.gnu.org/licenses/gpl-3.0.html
    … …  
    2222* Credit and Debit Cards (Visa, Mastercard)
    2323* Google Pay
     24* Apple Pay - New!
    2425* Foreign Cards with 3D Secure support
    25 * Manual payments via link (sent by email, SMS, or social media)
    26 * Coming soon: Apple Pay
    2726
    2827== Features ==
    … …  
    3231* Access to the POP Backoffice to easily manage your payments
    3332* Instant refunds using the original payment method
    34 * Send payment links via email, SMS, WhatsApp, or social media
     33* Two Step Payment using credit card
    3534* Funds transferred on the next business day, hassle-free
    3635* Automatic synchronisation of order numbering between Woocommerce and POP BackOffice, through integration with the Sequential Order Numbers for Woocommerce plugin
    … …  
    8584== Changelog ==
    8685
     86= 2.3.3 =
     87* Expired reference orders are now always marked as cancelled instead of using the configured failed order status
     88* Fix log warning error
     89
     90= 2.3.2 =
     91* Call Apple Pay checkout only on the production environment
     92* Remove custom font-family from the reference section on the Thank You page
     93* Fix log warning error
     94
     95= 2.3.1 =
     96* Add APG SMS Notifications integration
     97* Add MB WAY input mask on checkout
     98
     99= 2.3.0 =
     100* Bump plugin version
     101
     102= 2.2.13 =
     103* Remove first party Apple Pay and handle it together with credit card on the external redirect checkout
     104* Implement refund flow via webhook
     105* Expire Payshop and Multibanco references
     106* Add Checkout ID setting to support Apple Pay integration in the external checkout
     107* Add a new field to define the reference expiration date and send it to the gateway
     108* Remove the scheduled cancellation of expired references, now handled when receiving the callback
     109* Add direct display of payment references on the Thank You page
     110* Enhance responsive design and layout for payment references display
     111* Refactor payment refusal handling to use a configurable order status and update translations
     112* Avoid showing the references popup iframe when the payment method is not a reference
     113* Refactor settings to define settings in the correct files and add "Other Settings"
     114* Fix bug that was forcing the user to click save twice to save credentials and get service UUIDs
     115* Refactor to avoid showing a message on the Payshop credentials page and improve the error message when the environment option is not set
     116
     117= 2.2.12 =
     118* Update the plugin version for the WordPress repository release
     119
     120= 2.2.11 =
     121* Adjust Google Pay brand
     122
     123= 2.2.10 =
     124* Add Google Pay paid message display and update translations
     125
     126= 2.2.9 =
     127* Remove the alert before the Google Pay 3DS redirect
     128
     129= 2.2.8 =
     130* Improve translations
     131
     132= 2.2.6 =
     133* Update the readme file
     134
     135= 2.2.5 =
     136* Change custom action prefixes
     137* Define the correct name for the Sequential Order Numbers for WooCommerce plugin
     138
     139= 2.2.4 =
     140* Automatic cancellation of Multibanco and Payshop orders after the payment deadline
     141* Fix the Payshop reference service type name after a PNP change
     142* Send the sequential order number to the gateway
     143
    87144= 2.2.2 =
    88145* Initial public release of the POP plugin for WooCommerce
  • payshop-online-payments/trunk/templates/blocks/build/mbway.asset.php

    r3392166 r3605861  
    1 <?php return array('dependencies' => array('react', 'wp-element'), 'version' => 'a4f4f3072fceb509c008');
     1<?php return array('dependencies' => array('react', 'wp-element'), 'version' => 'c3abf80fad94761db627');
  • payshop-online-payments/trunk/templates/blocks/build/mbway.js

    r3392166 r3605861  
    654654  }
    655655  function phoneChange(e) {
    656     phoneRef.current = e.target.value;
    657     setPhone(e.target.value);
     656    const value = e.target.value.replace(/\D/g, '').slice(0, 9);
     657    phoneRef.current = value;
     658    setPhone(value);
    658659  }
    659660  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    … …  
    703704    onChange: prefixChange
    704705  }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
    705     value: phone,
     706    value: phone.replace(/(\d{3})(?=\d)/g, '$1 '),
    706707    onChange: phoneChange,
    707708    id: "id-phone-number",
    708709    placeholder: "N\xFAmero Telem\xF3vel",
    709710    className: "input-text wc-credit-card-form-card-number",
    710     inputmode: "text",
     711    inputmode: "numeric",
    711712    autocorrect: "no",
    712713    autocapitalize: "no",
    … …  
    715716    "data-checkout": "wbwayNumber",
    716717    name: "phone",
    717     maxlength: "19",
     718    maxlength: "11",
    718719    required: true,
    719720    style: {
  • payshop-online-payments/trunk/templates/blocks/build/mbway.js.map

    r3392166 r3605861  
    1 {"version":3,"file":"mbway.js","mappings":";;;;;;;;;;;;;;;;;AAAe,SAASA,WAAWA,CAACC,KAAK,EAAE;EACvC,OACIC,oDAAA;IAAQC,KAAK,EAAC,QAAQ;IAACC,IAAI,EAAC,QAAQ;IAAA,GAAKH,KAAK;IAAEI,SAAS,EAAC,4CAA4C;IAACC,QAAQ;IAACC,KAAK,EAAE;MAACC,KAAK,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAK;EAAE,GACvJP,oDAAA;IAAQQ,KAAK,EAAC;EAAG,GAAC,IAAU,CAAC,EAC7BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC,KAAK;IAACC,QAAQ;EAAA,GAAC,MAAY,CAAC,EAC1CT,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EA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","sources":["webpack://payshop-blocks/./src/components/phone-prefix.js","webpack://payshop-blocks/./src/utils/ErrorHandler.js","webpack://payshop-blocks/external window \"React\"","webpack://payshop-blocks/external window [\"wp\",\"element\"]","webpack://payshop-blocks/webpack/bootstrap","webpack://payshop-blocks/webpack/runtime/compat get default export","webpack://payshop-blocks/webpack/runtime/define property getters","webpack://payshop-blocks/webpack/runtime/hasOwnProperty shorthand","webpack://payshop-blocks/webpack/runtime/make namespace object","webpack://payshop-blocks/./src/mbway.js"],"sourcesContent":["export default function PhonePrefix(props) {\n    return (\n        <select class=\"prefix\" name=\"prefix\" {...props} className=\"input-text wc-credit-card-form-card-number\" required style={{width: \"80px\", paddingLeft: \"3px\"}}>\n            <option value=\"1\">+1</option>\n            <option value=\"20\">+20</option>\n            <option value=\"30\">+30</option>\n            <option value=\"31\">+31</option>\n            <option value=\"32\">+32</option>\n            <option value=\"33\">+33</option>\n            <option value=\"34\">+34</option>\n            <option value=\"36\">+36</option>\n            <option value=\"39\">+39</option>\n            <option value=\"40\">+40</option>\n            <option value=\"41\">+41</option>\n            <option value=\"43\">+43</option>\n            <option value=\"44\">+44</option>\n            <option value=\"45\">+45</option>\n            <option value=\"46\">+46</option>\n            <option value=\"47\">+47</option>\n            <option value=\"48\">+48</option>\n            <option value=\"49\">+49</option>\n            <option value=\"51\">+51</option>\n            <option value=\"52\">+52</option>\n            <option value=\"53\">+53</option>\n            <option value=\"54\">+54</option>\n            <option value=\"55\">+55</option>\n            <option value=\"56\">+56</option>\n            <option value=\"57\">+57</option>\n            <option value=\"58\">+58</option>\n            <option value=\"60\">+60</option>\n            <option value=\"61\">+61</option>\n            <option value=\"62\">+62</option>\n            <option value=\"63\">+63</option>\n            <option value=\"64\">+64</option>\n            <option value=\"65\">+65</option>\n            <option value=\"66\">+66</option>\n            <option value=\"81\">+81</option>\n            <option value=\"82\">+82</option>\n            <option value=\"84\">+84</option>\n            <option value=\"86\">+86</option>\n            <option value=\"90\">+90</option>\n            <option value=\"91\">+91</option>\n            <option value=\"92\">+92</option>\n            <option value=\"93\">+93</option>\n            <option value=\"94\">+94</option>\n            <option value=\"95\">+95</option>\n            <option value=\"98\">+98</option>\n            <option value=\"211\">+211</option>\n            <option value=\"212\">+212</option>\n            <option value=\"213\">+213</option>\n            <option value=\"216\">+216</option>\n            <option value=\"218\">+218</option>\n            <option value=\"220\">+220</option>\n            <option value=\"221\">+221</option>\n            <option value=\"222\">+222</option>\n            <option value=\"223\">+223</option>\n            <option value=\"224\">+224</option>\n            <option value=\"225\">+225</option>\n            <option value=\"226\">+226</option>\n            <option value=\"227\">+227</option>\n            <option value=\"228\">+228</option>\n            <option value=\"229\">+229</option>\n            <option value=\"230\">+230</option>\n            <option value=\"231\">+231</option>\n            <option value=\"232\">+232</option>\n            <option value=\"233\">+233</option>\n            <option value=\"234\">+234</option>\n            <option value=\"235\">+235</option>\n            <option value=\"236\">+236</option>\n            <option value=\"237\">+237</option>\n            <option value=\"238\">+238</option>\n            <option value=\"239\">+239</option>\n            <option value=\"240\">+240</option>\n            <option value=\"241\">+241</option>\n            <option value=\"242\">+242</option>\n            <option value=\"243\">+243</option>\n            <option value=\"244\">+244</option>\n            <option value=\"245\">+245</option>\n            <option value=\"246\">+246</option>\n            <option value=\"248\">+248</option>\n            <option value=\"249\">+249</option>\n            <option value=\"250\">+250</option>\n            <option value=\"251\">+251</option>\n            <option value=\"252\">+252</option>\n            <option value=\"253\">+253</option>\n            <option value=\"254\">+254</option>\n            <option value=\"255\">+255</option>\n            <option value=\"256\">+256</option>\n            <option value=\"257\">+257</option>\n            <option value=\"258\">+258</option>\n            <option value=\"260\">+260</option>\n            <option value=\"261\">+261</option>\n            <option value=\"262\">+262</option>\n            <option value=\"263\">+263</option>\n            <option value=\"264\">+264</option>\n            <option value=\"265\">+265</option>\n            <option value=\"266\">+266</option>\n            <option value=\"267\">+267</option>\n            <option value=\"268\">+268</option>\n            <option value=\"269\">+269</option>\n            <option value=\"290\">+290</option>\n            <option value=\"291\">+291</option>\n            <option value=\"297\">+297</option>\n            <option value=\"298\">+298</option>\n            <option value=\"299\">+299</option>\n            <option value=\"350\">+350</option>\n            <option value=\"351\" selected>+351</option>\n            <option value=\"352\">+352</option>\n            <option value=\"353\">+353</option>\n            <option value=\"354\">+354</option>\n            <option value=\"355\">+355</option>\n            <option value=\"356\">+356</option>\n            <option value=\"357\">+357</option>\n            <option value=\"358\">+358</option>\n            <option value=\"359\">+359</option>\n            <option value=\"370\">+370</option>\n            <option value=\"371\">+371</option>\n            <option value=\"372\">+372</option>\n            <option value=\"373\">+373</option>\n            <option value=\"374\">+374</option>\n            <option value=\"375\">+375</option>\n            <option value=\"376\">+376</option>\n            <option value=\"377\">+377</option>\n            <option value=\"378\">+378</option>\n            <option value=\"379\">+379</option>\n            <option value=\"380\">+380</option>\n            <option value=\"381\">+381</option>\n            <option value=\"382\">+382</option>\n            <option value=\"383\">+383</option>\n            <option value=\"385\">+385</option>\n            <option value=\"386\">+386</option>\n            <option value=\"387\">+387</option>\n            <option value=\"389\">+389</option>\n            <option value=\"420\">+420</option>\n            <option value=\"421\">+421</option>\n            <option value=\"423\">+423</option>\n            <option value=\"500\">+500</option>\n            <option value=\"501\">+501</option>\n            <option value=\"502\">+502</option>\n            <option value=\"503\">+503</option>\n            <option value=\"504\">+504</option>\n            <option value=\"505\">+505</option>\n            <option value=\"506\">+506</option>\n            <option value=\"507\">+507</option>\n            <option value=\"508\">+508</option>\n            <option value=\"509\">+509</option>\n            <option value=\"590\">+590</option>\n            <option value=\"591\">+591</option>\n            <option value=\"592\">+592</option>\n            <option value=\"593\">+593</option>\n            <option value=\"594\">+594</option>\n            <option value=\"595\">+595</option>\n            <option value=\"596\">+596</option>\n            <option value=\"597\">+597</option>\n            <option value=\"598\">+598</option>\n            <option value=\"599\">+599</option>\n            <option value=\"670\">+670</option>\n            <option value=\"672\">+672</option>\n            <option value=\"673\">+673</option>\n            <option value=\"674\">+674</option>\n            <option value=\"675\">+675</option>\n            <option value=\"676\">+676</option>\n            <option value=\"677\">+677</option>\n            <option value=\"678\">+678</option>\n            <option value=\"679\">+679</option>\n            <option value=\"680\">+680</option>\n            <option value=\"681\">+681</option>\n            <option value=\"682\">+682</option>\n            <option value=\"683\">+683</option>\n            <option value=\"685\">+685</option>\n            <option value=\"686\">+686</option>\n            <option value=\"687\">+687</option>\n            <option value=\"688\">+688</option>\n            <option value=\"689\">+689</option>\n            <option value=\"690\">+690</option>\n            <option value=\"691\">+691</option>\n            <option value=\"692\">+692</option>\n            <option value=\"850\">+850</option>\n            <option value=\"852\">+852</option>\n            <option value=\"853\">+853</option>\n            <option value=\"855\">+855</option>\n            <option value=\"856\">+856</option>\n            <option value=\"880\">+880</option>\n            <option value=\"886\">+886</option>\n            <option value=\"960\">+960</option>\n            <option value=\"961\">+961</option>\n            <option value=\"962\">+962</option>\n            <option value=\"963\">+963</option>\n            <option value=\"964\">+964</option>\n            <option value=\"965\">+965</option>\n            <option value=\"966\">+966</option>\n            <option value=\"967\">+967</option>\n            <option value=\"968\">+968</option>\n            <option value=\"970\">+970</option>\n            <option value=\"971\">+971</option>\n            <option value=\"972\">+972</option>\n            <option value=\"973\">+973</option>\n            <option value=\"974\">+974</option>\n            <option value=\"975\">+975</option>\n            <option value=\"976\">+976</option>\n        </select>\n    );\n}","class ErrorHandler {\n\n    /**\n     * @param {String} genericErrorText\n     * @param {Element} wrapper\n     */\n    constructor(genericErrorText, wrapper)\n    {\n        this.genericErrorText = genericErrorText;\n        this.wrapper = wrapper;\n    }\n\n    genericError() {\n        this.clear();\n        this.message(this.genericErrorText)\n    }\n\n    appendPreparedErrorMessageElement(errorMessageElement)\n    {\n        this._getMessageContainer().replaceWith(errorMessageElement);\n    }\n\n    /**\n     * @param {String} text\n     */\n    message(text)\n    {\n        this._addMessage(text);\n\n        this._scrollToMessages();\n    }\n\n    /**\n     * @param {Array} texts\n     */\n    messages(texts)\n    {\n        texts.forEach(t => this._addMessage(t));\n\n        this._scrollToMessages();\n    }\n\n    /**\n     * @returns {String}\n     */\n    currentHtml()\n    {\n        const messageContainer = this._getMessageContainer();\n        return messageContainer.outerHTML;\n    }\n\n    /**\n     * @private\n     * @param {String} text\n     */\n    _addMessage(text)\n    {\n        if(! typeof String || text.length === 0) {\n            throw new Error('A new message text must be a non-empty string.');\n        }\n\n        const messageContainer = this._getMessageContainer();\n\n        let messageNode = this._prepareMessageElement(text);\n        messageContainer.appendChild(messageNode);\n    }\n\n    /**\n     * @private\n     */\n    _scrollToMessages()\n    {\n        jQuery.scroll_to_notices(jQuery('.woocommerce-error'));\n    }\n\n    /**\n     * @private\n     */\n    _getMessageContainer()\n    {\n        let messageContainer = document.querySelector('ul.woocommerce-error');\n        if (messageContainer === null) {\n            messageContainer = document.createElement('ul');\n            messageContainer.setAttribute('class', 'woocommerce-error');\n            messageContainer.setAttribute('role', 'alert');\n            jQuery(this.wrapper).prepend(messageContainer);\n        }\n        return messageContainer;\n    }\n\n    /**\n     * @private\n     */\n    _prepareMessageElement(message)\n    {\n        const li = document.createElement('li');\n        li.innerHTML = message;\n\n        return li;\n    }\n\n    clear()\n    {\n        jQuery( '.woocommerce-error, .woocommerce-message' ).remove();\n    }\n}\n\nexport default ErrorHandler;","module.exports = window[\"React\"];","module.exports = window[\"wp\"][\"element\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { useEffect, useState } from '@wordpress/element';\nimport ErrorHandler from './utils/ErrorHandler';\nimport PhonePrefix from \"./components/phone-prefix\";\n\n\nconst settings = window.wc.wcSettings.getSetting(\"payshop_mbway_data\", {});\nconst label = window.wp.htmlEntities.decodeEntities(settings.title);\nconst icon = settings.icon;\n\nconst Content = ( props ) => {\n\tconst { eventRegistration, emitResponse } = props;\n\tconst { onPaymentSetup, onCheckoutFail  } = eventRegistration;\n\n    const [prefix, setPrefix] = useState('+351');\n    const [phone, setPhone] = useState('');\n    const prefixRef = React.useRef(prefix);\n    const phoneRef = React.useRef(phone);\n\n\tfunction prefixChange(e) {\n        prefixRef.current = e.target.value;\n        setPrefix(e.target.value);\n    }\n\n    function phoneChange(e) {\n        phoneRef.current = e.target.value;\n        setPhone(e.target.value);\n    }\n\n\tuseEffect( () => {\n\t\tconst unsubscribe = onPaymentSetup( async () => {\n\t\t\tconst phone = phoneRef.current;\n\t\t\tconst prefix = prefixRef.current;\n\n\t\t\tif ( phone !== '' && prefix !== '' ) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: emitResponse.responseTypes.SUCCESS,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tpaymentMethodData: {\n\t\t\t\t\t\t\tprefix,\n\t\t\t\t\t\t\tphone,\n\t\t\t\t\t\t\tpayshop_mbway_nonce: settings.nonce\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: emitResponse.responseTypes.ERROR,\n\t\t\t\tmessage: settings.error_message,\n\t\t\t};\n\t\t} );\n\n\t\tonCheckoutFail(async (paymentResponse) => {\n\t\t\t// Extract error message from paymentResponse object\n\t\t\tconst errorMessage = paymentResponse.processingResponse.paymentDetails.errorMessage ?? '';\n\t\t  \n\t\t\tlet errorHandler = new ErrorHandler(\n                'Default message',\n                document.querySelector('.woocommerce-notices-wrapper')\n            );\n\n            errorHandler.clear();\n            errorHandler.message(errorMessage);\n        });\n\n\t\t// Unsubscribes when this component is unmounted.\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, [\n\t\temitResponse.responseTypes.ERROR,\n\t\temitResponse.responseTypes.SUCCESS,\n\t\tonPaymentSetup,\n\t] );\n\n\treturn <fieldset id=\"wc-payshop_card-cc-form\" className=\"wc-credit-card-form wc-payment-form\">\n                <p className=\"form-row form-row-wide woocommerce-validated\" style={{display: \"flex\"}}>\n\t\t\t\t\t<PhonePrefix onChange={prefixChange} />\n                    <input value={phone} onChange={phoneChange} id=\"id-phone-number\" placeholder=\"Número Telemóvel\" className=\"input-text wc-credit-card-form-card-number\" inputmode=\"text\" autocorrect=\"no\" autocapitalize=\"no\" spellcheck=\"no\" type=\"text\" data-checkout=\"wbwayNumber\" name=\"phone\" maxlength=\"19\" required style={{flexGrow: \"1\"}} />\n                </p>\n            </fieldset>;\n};\n\nconst Block_Gateway = {\n    name: \"payshop_mbway\",\n    label: <div style={{display: \"flex\", alignItems: \"center\"}}>\n            <span>{label}</span>\n            <img src={icon} style={{marginLeft: \"10px\"}} />\n        </div>,\n    content: <Content />,\n    edit: <div>{label}</div>,\n    canMakePayment: () => true,\n    ariaLabel: label,\n    supports: {\n        features: settings.supports,\n    },\n};\n\nwindow.wc.wcBlocksRegistry.registerPaymentMethod(Block_Gateway);"],"names":["PhonePrefix","props","createElement","class","name","className","required","style","width","paddingLeft","value","selected","ErrorHandler","constructor","genericErrorText","wrapper","genericError","clear","message","appendPreparedErrorMessageElement","errorMessageElement","_getMessageContainer","replaceWith","text","_addMessage","_scrollToMessages","messages","texts","forEach","t","currentHtml","messageContainer","outerHTML","String","length","Error","messageNode","_prepareMessageElement","appendChild","jQuery","scroll_to_notices","document","querySelector","setAttribute","prepend","li","innerHTML","remove","useEffect","useState","settings","window","wc","wcSettings","getSetting","label","wp","htmlEntities","decodeEntities","title","icon","Content","eventRegistration","emitResponse","onPaymentSetup","onCheckoutFail","prefix","setPrefix","phone","setPhone","prefixRef","React","useRef","phoneRef","prefixChange","e","current","target","phoneChange","unsubscribe","type","responseTypes","SUCCESS","meta","paymentMethodData","payshop_mbway_nonce","nonce","ERROR","error_message","paymentResponse","_paymentResponse$proc","errorMessage","processingResponse","paymentDetails","errorHandler","id","display","onChange","placeholder","inputmode","autocorrect","autocapitalize","spellcheck","maxlength","flexGrow","Block_Gateway","alignItems","src","marginLeft","content","edit","canMakePayment","ariaLabel","supports","features","wcBlocksRegistry","registerPaymentMethod"],"sourceRoot":""}
     1{"version":3,"file":"mbway.js","mappings":";;;;;;;;;;;;;;;;;AAAe,SAASA,WAAWA,CAACC,KAAK,EAAE;EACvC,OACIC,oDAAA;IAAQC,KAAK,EAAC,QAAQ;IAACC,IAAI,EAAC,QAAQ;IAAA,GAAKH,KAAK;IAAEI,SAAS,EAAC,4CAA4C;IAACC,QAAQ;IAACC,KAAK,EAAE;MAACC,KAAK,EAAE,MAAM;MAAEC,WAAW,EAAE;IAAK;EAAE,GACvJP,oDAAA;IAAQQ,KAAK,EAAC;EAAG,GAAC,IAAU,CAAC,EAC7BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAI,GAAC,KAAW,CAAC,EAC/BR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC,KAAK;IAACC,QAAQ;EAAA,GAAC,MAAY,CAAC,EAC1CT,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAAC,EACjCR,oDAAA;IAAQQ,KAAK,EAAC;EAAK,GAAC,MAAY,CAC5B,CAAC;AAEjB;;;;;;;;;;;;;;AC1MA,MAAME,YAAY,CAAC;EAEf;AACJ;AACA;AACA;EACIC,WAAWA,CAACC,gBAAgB,EAAEC,OAAO,EACrC;IACI,IAAI,CAACD,gBAAgB,GAAGA,gBAAgB;IACxC,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAEAC,YAAYA,CAAA,EAAG;IACX,IAAI,CAACC,KAAK,CAAC,CAAC;IACZ,IAAI,CAACC,OAAO,CAAC,IAAI,CAACJ,gBAAgB,CAAC;EACvC;EAEAK,iCAAiCA,CAACC,mBAAmB,EACrD;IACI,IAAI,CAACC,oBAAoB,CAAC,CAAC,CAACC,WAAW,CAACF,mBAAmB,CAAC;EAChE;;EAEA;AACJ;AACA;EACIF,OAAOA,CAACK,IAAI,EACZ;IACI,IAAI,CAACC,WAAW,CAACD,IAAI,CAAC;IAEtB,IAAI,CAACE,iBAAiB,CAAC,CAAC;EAC5B;;EAEA;AACJ;AACA;EACIC,QAAQA,CAACC,KAAK,EACd;IACIA,KAAK,CAACC,OAAO,CAACC,CAAC,IAAI,IAAI,CAACL,WAAW,CAACK,CAAC,CAAC,CAAC;IAEvC,IAAI,CAACJ,iBAAiB,CAAC,CAAC;EAC5B;;EAEA;AACJ;AACA;EACIK,WAAWA,CAAA,EACX;IACI,MAAMC,gBAAgB,GAAG,IAAI,CAACV,oBAAoB,CAAC,CAAC;IACpD,OAAOU,gBAAgB,CAACC,SAAS;EACrC;;EAEA;AACJ;AACA;AACA;EACIR,WAAWA,CAACD,IAAI,EAChB;IACI,IAAG,CAAE,OAAOU,MAAM,IAAIV,IAAI,CAACW,MAAM,KAAK,CAAC,EAAE;MACrC,MAAM,IAAIC,KAAK,CAAC,gDAAgD,CAAC;IACrE;IAEA,MAAMJ,gBAAgB,GAAG,IAAI,CAACV,oBAAoB,CAAC,CAAC;IAEpD,IAAIe,WAAW,GAAG,IAAI,CAACC,sBAAsB,CAACd,IAAI,CAAC;IACnDQ,gBAAgB,CAACO,WAAW,CAACF,WAAW,CAAC;EAC7C;;EAEA;AACJ;AACA;EACIX,iBAAiBA,CAAA,EACjB;IACIc,MAAM,CAACC,iBAAiB,CAACD,MAAM,CAAC,oBAAoB,CAAC,CAAC;EAC1D;;EAEA;AACJ;AACA;EACIlB,oBAAoBA,CAAA,EACpB;IACI,IAAIU,gBAAgB,GAAGU,QAAQ,CAACC,aAAa,CAAC,sBAAsB,CAAC;IACrE,IAAIX,gBAAgB,KAAK,IAAI,EAAE;MAC3BA,gBAAgB,GAAGU,QAAQ,CAACvC,aAAa,CAAC,IAAI,CAAC;MAC/C6B,gBAAgB,CAACY,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC;MAC3DZ,gBAAgB,CAACY,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;MAC9CJ,MAAM,CAAC,IAAI,CAACxB,OAAO,CAAC,CAAC6B,OAAO,CAACb,gBAAgB,CAAC;IAClD;IACA,OAAOA,gBAAgB;EAC3B;;EAEA;AACJ;AACA;EACIM,sBAAsBA,CAACnB,OAAO,EAC9B;IACI,MAAM2B,EAAE,GAAGJ,QAAQ,CAACvC,aAAa,CAAC,IAAI,CAAC;IACvC2C,EAAE,CAACC,SAAS,GAAG5B,OAAO;IAEtB,OAAO2B,EAAE;EACb;EAEA5B,KAAKA,CAAA,EACL;IACIsB,MAAM,CAAE,0CAA2C,CAAC,CAACQ,MAAM,CAAC,CAAC;EACjE;AACJ;AAEA,iEAAenC,YAAY;;;;;;;;;;AC3G3B;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;ACNyD;AACT;AACI;AAGpD,MAAMsC,QAAQ,GAAGC,MAAM,CAACC,EAAE,CAACC,UAAU,CAACC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;AAC1E,MAAMC,KAAK,GAAGJ,MAAM,CAACK,EAAE,CAACC,YAAY,CAACC,cAAc,CAACR,QAAQ,CAACS,KAAK,CAAC;AACnE,MAAMC,IAAI,GAAGV,QAAQ,CAACU,IAAI;AAE1B,MAAMC,OAAO,GAAK5D,KAAK,IAAM;EAC5B,MAAM;IAAE6D,iBAAiB;IAAEC;EAAa,CAAC,GAAG9D,KAAK;EACjD,MAAM;IAAE+D,cAAc;IAAEC;EAAgB,CAAC,GAAGH,iBAAiB;EAE1D,MAAM,CAACI,MAAM,EAAEC,SAAS,CAAC,GAAGlB,4DAAQ,CAAC,MAAM,CAAC;EAC5C,MAAM,CAACmB,KAAK,EAAEC,QAAQ,CAAC,GAAGpB,4DAAQ,CAAC,EAAE,CAAC;EACtC,MAAMqB,SAAS,GAAGC,KAAK,CAACC,MAAM,CAACN,MAAM,CAAC;EACtC,MAAMO,QAAQ,GAAGF,KAAK,CAACC,MAAM,CAACJ,KAAK,CAAC;EAEvC,SAASM,YAAYA,CAACC,CAAC,EAAE;IAClBL,SAAS,CAACM,OAAO,GAAGD,CAAC,CAACE,MAAM,CAACnE,KAAK;IAClCyD,SAAS,CAACQ,CAAC,CAACE,MAAM,CAACnE,KAAK,CAAC;EAC7B;EAEA,SAASoE,WAAWA,CAACH,CAAC,EAAE;IACpB,MAAMjE,KAAK,GAAGiE,CAAC,CAACE,MAAM,CAACnE,KAAK,CAACqE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3DP,QAAQ,CAACG,OAAO,GAAGlE,KAAK;IACxB2D,QAAQ,CAAC3D,KAAK,CAAC;EACnB;EAEHsC,6DAAS,CAAE,MAAM;IAChB,MAAMiC,WAAW,GAAGjB,cAAc,CAAE,YAAY;MAC/C,MAAMI,KAAK,GAAGK,QAAQ,CAACG,OAAO;MAC9B,MAAMV,MAAM,GAAGI,SAAS,CAACM,OAAO;MAEhC,IAAKR,KAAK,KAAK,EAAE,IAAIF,MAAM,KAAK,EAAE,EAAG;QACpC,OAAO;UACNgB,IAAI,EAAEnB,YAAY,CAACoB,aAAa,CAACC,OAAO;UACxCC,IAAI,EAAE;YACLC,iBAAiB,EAAE;cAClBpB,MAAM;cACNE,KAAK;cACLmB,mBAAmB,EAAErC,QAAQ,CAACsC;YAC/B;UACD;QACD,CAAC;MACF;MAEA,OAAO;QACNN,IAAI,EAAEnB,YAAY,CAACoB,aAAa,CAACM,KAAK;QACtCvE,OAAO,EAAEgC,QAAQ,CAACwC;MACnB,CAAC;IACF,CAAE,CAAC;IAEHzB,cAAc,CAAC,MAAO0B,eAAe,IAAK;MAAA,IAAAC,qBAAA;MACzC;MACA,MAAMC,YAAY,IAAAD,qBAAA,GAAGD,eAAe,CAACG,kBAAkB,CAACC,cAAc,CAACF,YAAY,cAAAD,qBAAA,cAAAA,qBAAA,GAAI,EAAE;MAEzF,IAAII,YAAY,GAAG,IAAIpF,2DAAY,CACtB,iBAAiB,EACjB6B,QAAQ,CAACC,aAAa,CAAC,8BAA8B,CACzD,CAAC;MAEDsD,YAAY,CAAC/E,KAAK,CAAC,CAAC;MACpB+E,YAAY,CAAC9E,OAAO,CAAC2E,YAAY,CAAC;IACtC,CAAC,CAAC;;IAER;IACA,OAAO,MAAM;MACZZ,WAAW,CAAC,CAAC;IACd,CAAC;EACF,CAAC,EAAE,CACFlB,YAAY,CAACoB,aAAa,CAACM,KAAK,EAChC1B,YAAY,CAACoB,aAAa,CAACC,OAAO,EAClCpB,cAAc,CACb,CAAC;EAEH,OAAO9D,oDAAA;IAAU+F,EAAE,EAAC,yBAAyB;IAAC5F,SAAS,EAAC;EAAqC,GAC9EH,oDAAA;IAAGG,SAAS,EAAC,8CAA8C;IAACE,KAAK,EAAE;MAAC2F,OAAO,EAAE;IAAM;EAAE,GAChGhG,oDAAA,CAACF,gEAAW;IAACmG,QAAQ,EAAEzB;EAAa,CAAE,CAAC,EACxBxE,oDAAA;IAAOQ,KAAK,EAAE0D,KAAK,CAACW,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAE;IAACoB,QAAQ,EAAErB,WAAY;IAACmB,EAAE,EAAC,iBAAiB;IAACG,WAAW,EAAC,wBAAkB;IAAC/F,SAAS,EAAC,4CAA4C;IAACgG,SAAS,EAAC,SAAS;IAACC,WAAW,EAAC,IAAI;IAACC,cAAc,EAAC,IAAI;IAACC,UAAU,EAAC,IAAI;IAACtB,IAAI,EAAC,MAAM;IAAC,iBAAc,aAAa;IAAC9E,IAAI,EAAC,OAAO;IAACqG,SAAS,EAAC,IAAI;IAACnG,QAAQ;IAACC,KAAK,EAAE;MAACmG,QAAQ,EAAE;IAAG;EAAE,CAAE,CACxW,CACG,CAAC;AACvB,CAAC;AAED,MAAMC,aAAa,GAAG;EAClBvG,IAAI,EAAE,eAAe;EACrBmD,KAAK,EAAErD,oDAAA;IAAKK,KAAK,EAAE;MAAC2F,OAAO,EAAE,MAAM;MAAEU,UAAU,EAAE;IAAQ;EAAE,GACnD1G,oDAAA,eAAOqD,KAAY,CAAC,EACpBrD,oDAAA;IAAK2G,GAAG,EAAEjD,IAAK;IAACrD,KAAK,EAAE;MAACuG,UAAU,EAAE;IAAM;EAAE,CAAE,CAC7C,CAAC;EACVC,OAAO,EAAE7G,oDAAA,CAAC2D,OAAO,MAAE,CAAC;EACpBmD,IAAI,EAAE9G,oDAAA,cAAMqD,KAAW,CAAC;EACxB0D,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,SAAS,EAAE3D,KAAK;EAChB4D,QAAQ,EAAE;IACNC,QAAQ,EAAElE,QAAQ,CAACiE;EACvB;AACJ,CAAC;AAEDhE,MAAM,CAACC,EAAE,CAACiE,gBAAgB,CAACC,qBAAqB,CAACX,aAAa,CAAC,C","sources":["webpack://payshop-blocks/./src/components/phone-prefix.js","webpack://payshop-blocks/./src/utils/ErrorHandler.js","webpack://payshop-blocks/external window \"React\"","webpack://payshop-blocks/external window [\"wp\",\"element\"]","webpack://payshop-blocks/webpack/bootstrap","webpack://payshop-blocks/webpack/runtime/compat get default export","webpack://payshop-blocks/webpack/runtime/define property getters","webpack://payshop-blocks/webpack/runtime/hasOwnProperty shorthand","webpack://payshop-blocks/webpack/runtime/make namespace object","webpack://payshop-blocks/./src/mbway.js"],"sourcesContent":["export default function PhonePrefix(props) {\n    return (\n        <select class=\"prefix\" name=\"prefix\" {...props} className=\"input-text wc-credit-card-form-card-number\" required style={{width: \"80px\", paddingLeft: \"3px\"}}>\n            <option value=\"1\">+1</option>\n            <option value=\"20\">+20</option>\n            <option value=\"30\">+30</option>\n            <option value=\"31\">+31</option>\n            <option value=\"32\">+32</option>\n            <option value=\"33\">+33</option>\n            <option value=\"34\">+34</option>\n            <option value=\"36\">+36</option>\n            <option value=\"39\">+39</option>\n            <option value=\"40\">+40</option>\n            <option value=\"41\">+41</option>\n            <option value=\"43\">+43</option>\n            <option value=\"44\">+44</option>\n            <option value=\"45\">+45</option>\n            <option value=\"46\">+46</option>\n            <option value=\"47\">+47</option>\n            <option value=\"48\">+48</option>\n            <option value=\"49\">+49</option>\n            <option value=\"51\">+51</option>\n            <option value=\"52\">+52</option>\n            <option value=\"53\">+53</option>\n            <option value=\"54\">+54</option>\n            <option value=\"55\">+55</option>\n            <option value=\"56\">+56</option>\n            <option value=\"57\">+57</option>\n            <option value=\"58\">+58</option>\n            <option value=\"60\">+60</option>\n            <option value=\"61\">+61</option>\n            <option value=\"62\">+62</option>\n            <option value=\"63\">+63</option>\n            <option value=\"64\">+64</option>\n            <option value=\"65\">+65</option>\n            <option value=\"66\">+66</option>\n            <option value=\"81\">+81</option>\n            <option value=\"82\">+82</option>\n            <option value=\"84\">+84</option>\n            <option value=\"86\">+86</option>\n            <option value=\"90\">+90</option>\n            <option value=\"91\">+91</option>\n            <option value=\"92\">+92</option>\n            <option value=\"93\">+93</option>\n            <option value=\"94\">+94</option>\n            <option value=\"95\">+95</option>\n            <option value=\"98\">+98</option>\n            <option value=\"211\">+211</option>\n            <option value=\"212\">+212</option>\n            <option value=\"213\">+213</option>\n            <option value=\"216\">+216</option>\n            <option value=\"218\">+218</option>\n            <option value=\"220\">+220</option>\n            <option value=\"221\">+221</option>\n            <option value=\"222\">+222</option>\n            <option value=\"223\">+223</option>\n            <option value=\"224\">+224</option>\n            <option value=\"225\">+225</option>\n            <option value=\"226\">+226</option>\n            <option value=\"227\">+227</option>\n            <option value=\"228\">+228</option>\n            <option value=\"229\">+229</option>\n            <option value=\"230\">+230</option>\n            <option value=\"231\">+231</option>\n            <option value=\"232\">+232</option>\n            <option value=\"233\">+233</option>\n            <option value=\"234\">+234</option>\n            <option value=\"235\">+235</option>\n            <option value=\"236\">+236</option>\n            <option value=\"237\">+237</option>\n            <option value=\"238\">+238</option>\n            <option value=\"239\">+239</option>\n            <option value=\"240\">+240</option>\n            <option value=\"241\">+241</option>\n            <option value=\"242\">+242</option>\n            <option value=\"243\">+243</option>\n            <option value=\"244\">+244</option>\n            <option value=\"245\">+245</option>\n            <option value=\"246\">+246</option>\n            <option value=\"248\">+248</option>\n            <option value=\"249\">+249</option>\n            <option value=\"250\">+250</option>\n            <option value=\"251\">+251</option>\n            <option value=\"252\">+252</option>\n            <option value=\"253\">+253</option>\n            <option value=\"254\">+254</option>\n            <option value=\"255\">+255</option>\n            <option value=\"256\">+256</option>\n            <option value=\"257\">+257</option>\n            <option value=\"258\">+258</option>\n            <option value=\"260\">+260</option>\n            <option value=\"261\">+261</option>\n            <option value=\"262\">+262</option>\n            <option value=\"263\">+263</option>\n            <option value=\"264\">+264</option>\n            <option value=\"265\">+265</option>\n            <option value=\"266\">+266</option>\n            <option value=\"267\">+267</option>\n            <option value=\"268\">+268</option>\n            <option value=\"269\">+269</option>\n            <option value=\"290\">+290</option>\n            <option value=\"291\">+291</option>\n            <option value=\"297\">+297</option>\n            <option value=\"298\">+298</option>\n            <option value=\"299\">+299</option>\n            <option value=\"350\">+350</option>\n            <option value=\"351\" selected>+351</option>\n            <option value=\"352\">+352</option>\n            <option value=\"353\">+353</option>\n            <option value=\"354\">+354</option>\n            <option value=\"355\">+355</option>\n            <option value=\"356\">+356</option>\n            <option value=\"357\">+357</option>\n            <option value=\"358\">+358</option>\n            <option value=\"359\">+359</option>\n            <option value=\"370\">+370</option>\n            <option value=\"371\">+371</option>\n            <option value=\"372\">+372</option>\n            <option value=\"373\">+373</option>\n            <option value=\"374\">+374</option>\n            <option value=\"375\">+375</option>\n            <option value=\"376\">+376</option>\n            <option value=\"377\">+377</option>\n            <option value=\"378\">+378</option>\n            <option value=\"379\">+379</option>\n            <option value=\"380\">+380</option>\n            <option value=\"381\">+381</option>\n            <option value=\"382\">+382</option>\n            <option value=\"383\">+383</option>\n            <option value=\"385\">+385</option>\n            <option value=\"386\">+386</option>\n            <option value=\"387\">+387</option>\n            <option value=\"389\">+389</option>\n            <option value=\"420\">+420</option>\n            <option value=\"421\">+421</option>\n            <option value=\"423\">+423</option>\n            <option value=\"500\">+500</option>\n            <option value=\"501\">+501</option>\n            <option value=\"502\">+502</option>\n            <option value=\"503\">+503</option>\n            <option value=\"504\">+504</option>\n            <option value=\"505\">+505</option>\n            <option value=\"506\">+506</option>\n            <option value=\"507\">+507</option>\n            <option value=\"508\">+508</option>\n            <option value=\"509\">+509</option>\n            <option value=\"590\">+590</option>\n            <option value=\"591\">+591</option>\n            <option value=\"592\">+592</option>\n            <option value=\"593\">+593</option>\n            <option value=\"594\">+594</option>\n            <option value=\"595\">+595</option>\n            <option value=\"596\">+596</option>\n            <option value=\"597\">+597</option>\n            <option value=\"598\">+598</option>\n            <option value=\"599\">+599</option>\n            <option value=\"670\">+670</option>\n            <option value=\"672\">+672</option>\n            <option value=\"673\">+673</option>\n            <option value=\"674\">+674</option>\n            <option value=\"675\">+675</option>\n            <option value=\"676\">+676</option>\n            <option value=\"677\">+677</option>\n            <option value=\"678\">+678</option>\n            <option value=\"679\">+679</option>\n            <option value=\"680\">+680</option>\n            <option value=\"681\">+681</option>\n            <option value=\"682\">+682</option>\n            <option value=\"683\">+683</option>\n            <option value=\"685\">+685</option>\n            <option value=\"686\">+686</option>\n            <option value=\"687\">+687</option>\n            <option value=\"688\">+688</option>\n            <option value=\"689\">+689</option>\n            <option value=\"690\">+690</option>\n            <option value=\"691\">+691</option>\n            <option value=\"692\">+692</option>\n            <option value=\"850\">+850</option>\n            <option value=\"852\">+852</option>\n            <option value=\"853\">+853</option>\n            <option value=\"855\">+855</option>\n            <option value=\"856\">+856</option>\n            <option value=\"880\">+880</option>\n            <option value=\"886\">+886</option>\n            <option value=\"960\">+960</option>\n            <option value=\"961\">+961</option>\n            <option value=\"962\">+962</option>\n            <option value=\"963\">+963</option>\n            <option value=\"964\">+964</option>\n            <option value=\"965\">+965</option>\n            <option value=\"966\">+966</option>\n            <option value=\"967\">+967</option>\n            <option value=\"968\">+968</option>\n            <option value=\"970\">+970</option>\n            <option value=\"971\">+971</option>\n            <option value=\"972\">+972</option>\n            <option value=\"973\">+973</option>\n            <option value=\"974\">+974</option>\n            <option value=\"975\">+975</option>\n            <option value=\"976\">+976</option>\n        </select>\n    );\n}","class ErrorHandler {\n\n    /**\n     * @param {String} genericErrorText\n     * @param {Element} wrapper\n     */\n    constructor(genericErrorText, wrapper)\n    {\n        this.genericErrorText = genericErrorText;\n        this.wrapper = wrapper;\n    }\n\n    genericError() {\n        this.clear();\n        this.message(this.genericErrorText)\n    }\n\n    appendPreparedErrorMessageElement(errorMessageElement)\n    {\n        this._getMessageContainer().replaceWith(errorMessageElement);\n    }\n\n    /**\n     * @param {String} text\n     */\n    message(text)\n    {\n        this._addMessage(text);\n\n        this._scrollToMessages();\n    }\n\n    /**\n     * @param {Array} texts\n     */\n    messages(texts)\n    {\n        texts.forEach(t => this._addMessage(t));\n\n        this._scrollToMessages();\n    }\n\n    /**\n     * @returns {String}\n     */\n    currentHtml()\n    {\n        const messageContainer = this._getMessageContainer();\n        return messageContainer.outerHTML;\n    }\n\n    /**\n     * @private\n     * @param {String} text\n     */\n    _addMessage(text)\n    {\n        if(! typeof String || text.length === 0) {\n            throw new Error('A new message text must be a non-empty string.');\n        }\n\n        const messageContainer = this._getMessageContainer();\n\n        let messageNode = this._prepareMessageElement(text);\n        messageContainer.appendChild(messageNode);\n    }\n\n    /**\n     * @private\n     */\n    _scrollToMessages()\n    {\n        jQuery.scroll_to_notices(jQuery('.woocommerce-error'));\n    }\n\n    /**\n     * @private\n     */\n    _getMessageContainer()\n    {\n        let messageContainer = document.querySelector('ul.woocommerce-error');\n        if (messageContainer === null) {\n            messageContainer = document.createElement('ul');\n            messageContainer.setAttribute('class', 'woocommerce-error');\n            messageContainer.setAttribute('role', 'alert');\n            jQuery(this.wrapper).prepend(messageContainer);\n        }\n        return messageContainer;\n    }\n\n    /**\n     * @private\n     */\n    _prepareMessageElement(message)\n    {\n        const li = document.createElement('li');\n        li.innerHTML = message;\n\n        return li;\n    }\n\n    clear()\n    {\n        jQuery( '.woocommerce-error, .woocommerce-message' ).remove();\n    }\n}\n\nexport default ErrorHandler;","module.exports = window[\"React\"];","module.exports = window[\"wp\"][\"element\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { useEffect, useState } from '@wordpress/element';\nimport ErrorHandler from './utils/ErrorHandler';\nimport PhonePrefix from \"./components/phone-prefix\";\n\n\nconst settings = window.wc.wcSettings.getSetting(\"payshop_mbway_data\", {});\nconst label = window.wp.htmlEntities.decodeEntities(settings.title);\nconst icon = settings.icon;\n\nconst Content = ( props ) => {\n\tconst { eventRegistration, emitResponse } = props;\n\tconst { onPaymentSetup, onCheckoutFail  } = eventRegistration;\n\n    const [prefix, setPrefix] = useState('+351');\n    const [phone, setPhone] = useState('');\n    const prefixRef = React.useRef(prefix);\n    const phoneRef = React.useRef(phone);\n\n\tfunction prefixChange(e) {\n        prefixRef.current = e.target.value;\n        setPrefix(e.target.value);\n    }\n\n    function phoneChange(e) {\n        const value = e.target.value.replace(/\\D/g, '').slice(0, 9);\n        phoneRef.current = value;\n        setPhone(value);\n    }\n\n\tuseEffect( () => {\n\t\tconst unsubscribe = onPaymentSetup( async () => {\n\t\t\tconst phone = phoneRef.current;\n\t\t\tconst prefix = prefixRef.current;\n\n\t\t\tif ( phone !== '' && prefix !== '' ) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: emitResponse.responseTypes.SUCCESS,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tpaymentMethodData: {\n\t\t\t\t\t\t\tprefix,\n\t\t\t\t\t\t\tphone,\n\t\t\t\t\t\t\tpayshop_mbway_nonce: settings.nonce\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: emitResponse.responseTypes.ERROR,\n\t\t\t\tmessage: settings.error_message,\n\t\t\t};\n\t\t} );\n\n\t\tonCheckoutFail(async (paymentResponse) => {\n\t\t\t// Extract error message from paymentResponse object\n\t\t\tconst errorMessage = paymentResponse.processingResponse.paymentDetails.errorMessage ?? '';\n\t\t  \n\t\t\tlet errorHandler = new ErrorHandler(\n                'Default message',\n                document.querySelector('.woocommerce-notices-wrapper')\n            );\n\n            errorHandler.clear();\n            errorHandler.message(errorMessage);\n        });\n\n\t\t// Unsubscribes when this component is unmounted.\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, [\n\t\temitResponse.responseTypes.ERROR,\n\t\temitResponse.responseTypes.SUCCESS,\n\t\tonPaymentSetup,\n\t] );\n\n\treturn <fieldset id=\"wc-payshop_card-cc-form\" className=\"wc-credit-card-form wc-payment-form\">\n                <p className=\"form-row form-row-wide woocommerce-validated\" style={{display: \"flex\"}}>\n\t\t\t\t\t<PhonePrefix onChange={prefixChange} />\n                    <input value={phone.replace(/(\\d{3})(?=\\d)/g, '$1 ')} onChange={phoneChange} id=\"id-phone-number\" placeholder=\"Número Telemóvel\" className=\"input-text wc-credit-card-form-card-number\" inputmode=\"numeric\" autocorrect=\"no\" autocapitalize=\"no\" spellcheck=\"no\" type=\"text\" data-checkout=\"wbwayNumber\" name=\"phone\" maxlength=\"11\" required style={{flexGrow: \"1\"}} />\n                </p>\n            </fieldset>;\n};\n\nconst Block_Gateway = {\n    name: \"payshop_mbway\",\n    label: <div style={{display: \"flex\", alignItems: \"center\"}}>\n            <span>{label}</span>\n            <img src={icon} style={{marginLeft: \"10px\"}} />\n        </div>,\n    content: <Content />,\n    edit: <div>{label}</div>,\n    canMakePayment: () => true,\n    ariaLabel: label,\n    supports: {\n        features: settings.supports,\n    },\n};\n\nwindow.wc.wcBlocksRegistry.registerPaymentMethod(Block_Gateway);"],"names":["PhonePrefix","props","createElement","class","name","className","required","style","width","paddingLeft","value","selected","ErrorHandler","constructor","genericErrorText","wrapper","genericError","clear","message","appendPreparedErrorMessageElement","errorMessageElement","_getMessageContainer","replaceWith","text","_addMessage","_scrollToMessages","messages","texts","forEach","t","currentHtml","messageContainer","outerHTML","String","length","Error","messageNode","_prepareMessageElement","appendChild","jQuery","scroll_to_notices","document","querySelector","setAttribute","prepend","li","innerHTML","remove","useEffect","useState","settings","window","wc","wcSettings","getSetting","label","wp","htmlEntities","decodeEntities","title","icon","Content","eventRegistration","emitResponse","onPaymentSetup","onCheckoutFail","prefix","setPrefix","phone","setPhone","prefixRef","React","useRef","phoneRef","prefixChange","e","current","target","phoneChange","replace","slice","unsubscribe","type","responseTypes","SUCCESS","meta","paymentMethodData","payshop_mbway_nonce","nonce","ERROR","error_message","paymentResponse","_paymentResponse$proc","errorMessage","processingResponse","paymentDetails","errorHandler","id","display","onChange","placeholder","inputmode","autocorrect","autocapitalize","spellcheck","maxlength","flexGrow","Block_Gateway","alignItems","src","marginLeft","content","edit","canMakePayment","ariaLabel","supports","features","wcBlocksRegistry","registerPaymentMethod"],"sourceRoot":""}
  • payshop-online-payments/trunk/templates/blocks/package.json

    r3392166 r3605861  
    66  "scripts": {
    77    "build": "wp-scripts build",
    8     "start": "wp-scripts start ./src/card.js ./src/mbway.js ./src/payshop-reference.js ./src/multibanco-reference.js ./src/googlepay.js ./src/applepay.js ./src/clicktopay.js ./src/paypal.js"
     8    "start": "wp-scripts start ./src/card.js ./src/mbway.js ./src/payshop-reference.js ./src/multibanco-reference.js ./src/googlepay.js ./src/clicktopay.js ./src/paypal.js"
    99  },
    1010  "author": "",
  • payshop-online-payments/trunk/templates/blocks/src/mbway.js

    r3392166 r3605861  
    2323
    2424    function phoneChange(e) {
    25         phoneRef.current = e.target.value;
    26         setPhone(e.target.value);
     25        const value = e.target.value.replace(/\D/g, '').slice(0, 9);
     26        phoneRef.current = value;
     27        setPhone(value);
    2728    }
    2829
    … …  
    7778                <p className="form-row form-row-wide woocommerce-validated" style={{display: "flex"}}>
    7879                                        <PhonePrefix onChange={prefixChange} />
    79                     <input value={phone} onChange={phoneChange} id="id-phone-number" placeholder="Número Telemóvel" className="input-text wc-credit-card-form-card-number" inputmode="text" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="19" required style={{flexGrow: "1"}} />
     80                    <input value={phone.replace(/(\d{3})(?=\d)/g, '$1 ')} onChange={phoneChange} id="id-phone-number" placeholder="Número Telemóvel" className="input-text wc-credit-card-form-card-number" inputmode="numeric" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="11" required style={{flexGrow: "1"}} />
    8081                </p>
    8182            </fieldset>;
  • payshop-online-payments/trunk/templates/css/references-dialog.css

    r3392166 r3605861  
    1515    left: 50%;
    1616    transform: translate(-50%, -50%);
    17     width: 400px;
     17    width: 90%;
     18    max-width: 400px;
    1819    height: 90%;
    1920    background: #fff;
    … …  
    3940    display: none;
    4041}
     42
     43/* Direct display styles */
     44.payshop-references-container {
     45    box-sizing: border-box;
     46    border: 2px solid #0055b8; /* Multibanco blue as default */
     47    border-radius: 8px;
     48    padding: 20px;
     49    margin: 20px 0;
     50    background-color: #f9f9f9;
     51    max-width: 100%;
     52    width: 100%;
     53}
     54
     55.payshop-references-header {
     56    display: flex;
     57    align-items: center;
     58    flex-wrap: wrap;
     59    margin-bottom: 20px;
     60    border-bottom: 1px solid #ddd;
     61    padding-bottom: 10px;
     62}
     63
     64.payshop-references-header img {
     65    height: 40px;
     66    margin-right: 15px;
     67    flex-shrink: 0;
     68}
     69
     70.payshop-references-header h3 {
     71    margin: 0;
     72    font-size: 1.25em;
     73    color: #333;
     74    word-break: break-word;
     75}
     76
     77.payshop-reference-item {
     78    display: flex;
     79    justify-content: space-between;
     80    padding: 10px 0;
     81    border-bottom: 1px dashed #eee;
     82    gap: 10px;
     83}
     84
     85.payshop-reference-item:last-child {
     86    border-bottom: none;
     87}
     88
     89.payshop-reference-item .label {
     90    font-weight: bold;
     91    color: #666;
     92    flex-shrink: 0;
     93}
     94
     95.payshop-reference-item .value {
     96    font-weight: 800;
     97    font-size: 1.1em;
     98    color: #000;
     99    word-break: break-all;
     100    text-align: right;
     101}
     102
     103.payshop-references-footer {
     104    margin-top: 15px;
     105    font-size: 0.9em;
     106    color: #777;
     107    text-align: center;
     108}
     109
     110@media (max-width: 480px) {
     111    .payshop-reference-item {
     112        flex-direction: column;
     113        align-items: flex-start;
     114        gap: 5px;
     115    }
     116
     117    .payshop-reference-item .value {
     118        margin-top: 0;
     119        text-align: left;
     120    }
     121}
     122""
  • payshop-online-payments/trunk/templates/views/front/mbway.php

    r3392166 r3605861  
    1515        <div style="display: flex;">
    1616            <?php include ('partials/phone-prefix.php')?>
    17             <input id="id-phone-number" class="input-text wc-credit-card-form-card-number" inputmode="text" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="19" required style="flex-grow: 1;">
     17            <input id="id-phone-number" class="input-text wc-credit-card-form-card-number" inputmode="text" autocorrect="no" autocapitalize="no" spellcheck="no" type="text" data-checkout="wbwayNumber" name="phone" maxlength="9" required style="flex-grow: 1;">
    1818        </div>
    1919        <small id="payshop-error-phone-number" class="payshop-erro-form" data-main="#id-phone-number" style="display: none; color: #e81814;">
  • payshop-online-payments/trunk/translations/payshop-online-payments-pt_PT.po

    r3471786 r3605861  
    55"Project-Id-Version: Plugins - Payshop Online Payments - Stable (latest release)\n"
    66"POT-Creation-Date: \n"
    7 "PO-Revision-Date: 2026-02-28 16:22-0300\n"
     7"PO-Revision-Date: 2026-05-16 15:58-0300\n"
    88"Last-Translator: \n"
    99"Language-Team: \n"
    … …  
    536536msgstr "Erro Payshop: Verifique as credenciais de produção nas definições do Payshop."
    537537
     538#: includes/module/alerts/PayshopCredentialsAlert.php:30
     539msgid "Payshop Error: Check credentials on payshop settings."
     540msgstr "Erro Payshop: Verifique as credenciais nas definições do Payshop."
     541
    538542#: includes/module/actions/PayshopUpdateOrder.php:97
    539543msgid "Payment status updated"
    … …  
    618622#: controllers/front/PayshopProcessFailedRedirect.php:43
    619623#: includes/module/events/PayshopPaymentRefused.php:39
    620 #: includes/module/schedules/PayshopCancelOrderSchedule.php:32
    621624msgid "Payment refused"
    622625msgstr "O pagamento foi rejeitado"
     626
     627#: includes/module/events/PayshopPaymentReferenceExpired.php:39
     628msgid "Payment reference expired"
     629msgstr "A referência de pagamento expirou"
     630
     631#: includes/module/events/PayshopPaymentRefunded.php:57
     632msgid "Refund processed by Payshop gateway"
     633msgstr "Reembolso processado pelo gateway Payshop"
     634
     635#: includes/module/events/PayshopPaymentRefunded.php:69
     636msgid "Refunded %s"
     637msgstr "Reembolsado %s"
    623638
    624639#: controllers/front/PayshopProcessFailedRedirect.php:34
    … …  
    679694msgid "Payshop Online Payments"
    680695msgstr "Payshop Online Payments"
     696
     697#: includes/module/settings/PayshopCredentialsSettings.php:107
     698msgid "Enable Apple Pay"
     699msgstr "Habilitar Apple Pay"
     700
     701#: includes/module/settings/PayshopCredentialsSettings.php:109
     702msgid "If enabled, the option to pay with Apple Pay will be shown alongside credit card and the customer will be able to see the Apple Pay button on the same credit card payment page. Attention, this feature must be enabled in your Payshop account."
     703msgstr "Se habilitado a opção de pagar com Apple Pay será mostrada junto com o cartão de crédito e o cliente poderá ver o botão do Apple Pay na mesma página de pagamento com cartão de crédito. Atenção, esse recurso precisa estar habilitado na sua conta do Payshop"
     704
     705#: includes/module/payments/PayshopCard.php:40
     706msgid "Payshop Card and Apple Pay"
     707msgstr "Cartão Payshop e Apple Pay"
     708
     709#: includes/module/payments/PayshopCard.php:41
     710msgid "Debit, credit card and Apple Pay on Payshop Online Payments"
     711msgstr "Cartão de crédito, débito e Apple Pay no Payshop Online Payments"
     712
     713#: includes/module/payments/PayshopCard.php:42
     714msgid "Credit or debit card / Apple Pay"
     715msgstr "Cartão de crédito ou débito / Apple Pay"
     716
     717#: includes/module/payments/PayshopCard.php:43
     718msgid "Pay with your card or Apple Pay via Payshop Online Payments."
     719msgstr "Pague com seu cartão ou Apple Pay via Payshop Online Payments."
     720
     721#: includes/module/settings/PayshopCredentialsSettings.php:121
     722msgid "The status selected here will be the default order status when a payment is refused. Note: only the \"failed\" status will allow the customer to retry the payment."
     723msgstr "O status selecionado aqui será o status padrão da ordem quando o pagamento for recusado. Observação: apenas o status falhado vai dar a opção do cliente tentar efetuar novamente o pagamento."
     724
     725#: includes/module/settings/PayshopCredentialsSettings.php:119
     726msgid "Refused Payment Status"
     727msgstr "Status Pagamento Recusado"
     728
     729#: includes/module/settings/PayshopCredentialsSettings.php:115
     730msgid "Show references directly"
     731msgstr "Mostrar referências diretamente"
     732
     733#: includes/module/settings/PayshopCredentialsSettings.php:117
     734msgid "If enabled, the payment reference data (Payshop Reference and Multibanco) will be shown directly on the thank you page instead of a popup."
     735msgstr "Se ativado, os dados de referência de pagamento (Payshop Referência e Multibanco) serão mostrados diretamente na página de obrigado em vez de um popup."
     736
     737#: templates/views/front/references-direct.php:11
     738msgid "Multibanco Payment Details"
     739msgstr "Detalhes do Pagamento Multibanco"
     740
     741#: templates/views/front/references-direct.php:14
     742msgid "Payshop Payment Details"
     743msgstr "Detalhes do Pagamento Payshop"
     744
     745#: templates/views/front/references-direct.php:26
     746msgid "Entity:"
     747msgstr "Entidade:"
     748
     749#: templates/views/front/references-direct.php:31
     750msgid "Reference:"
     751msgstr "Referência:"
     752
     753#: templates/views/front/references-direct.php:35
     754msgid "Amount:"
     755msgstr "Montante:"
     756
     757#: templates/views/front/references-direct.php:40
     758msgid "Deadline:"
     759msgstr "Validade:"
     760
     761#: templates/views/front/references-direct.php:47
     762msgid "Please use the details above to complete your payment."
     763msgstr "Por favor, utilize os dados acima para completar o seu pagamento."
     764
     765msgid "Other Settings"
     766msgstr "Outras Configurações"
     767
     768#: includes/module/settings/PayshopOthersSettings.php:32
     769msgid "Reference expiration date"
     770msgstr "Prazo de expiração da Referência"
     771
     772#: includes/module/settings/PayshopOthersSettings.php:34
     773msgid "Expiration period of Payshop and Multibanco references in days from the day of creation"
     774msgstr "Prazo de expiração das referencias Payshop e Multibanco em dias a partir do dia de criação"
     775
     776msgid "Checkout ID"
     777msgstr "Checkout ID"
     778
     779msgid "Get your checkout id in the Payshop backoffice. Select the Production environment, then go to settings > checkouts > copy the checkout id."
     780msgstr "Obtenha seu checkout id no backoffice da payshop. Selecione o ambiente Produção, em seguida vá em configurações > checkouts > copie o checkout id."
     781
     782msgid "Apple Pay was disabled because the Checkout ID is required."
     783msgstr "O Apple Pay foi desativado porque o Checkout ID é obrigatório."
     784
     785msgid "If enabled, the option to pay with Apple Pay will be shown alongside credit card and the customer will be able to see the Apple Pay button on the same credit card payment page. Attention, this feature must be enabled in your Payshop account. Note: The Apple Pay button only appears in production environment, using Safari on Macs and iPhones."
     786msgstr "Se ativado, a opção de pagar com Apple Pay será exibida ao lado do cartão de crédito e o cliente poderá ver o botão Apple Pay na mesma página de pagamento com cartão de crédito. Atenção, este recurso deve estar ativado na sua conta Payshop. Nota: O botão Apple Pay só aparece em ambiente de produção, usando Safari em Macs e iPhones."
     787
     788#: includes/module/integrations/PayshopApgSms.php
     789msgid "Ent."
     790msgstr "Ent."
     791
     792#: includes/module/integrations/PayshopApgSms.php
     793msgid "Ref."
     794msgstr "Ref."
     795
     796#: includes/module/integrations/PayshopApgSms.php
     797msgid "Val."
     798msgstr "Val."
     799
     800#: includes/module/integrations/PayshopApgSms.php
     801msgid "Valid until"
     802msgstr "Válida até"
Note: See TracChangeset for help on using the changeset viewer.