Plugin Directory

Changeset 3489628


Ignore:
Timestamp:
03/24/2026 05:35:59 AM (6 days ago)
Author:
zipmoney
Message:

Release 2.3.31

Location:
zipmoney-payments-woocommerce
Files:
22 deleted
24 edited
1 copied

Legend:

Unmodified
Added
Removed
  • zipmoney-payments-woocommerce/tags/2.3.31/README.txt

    r3383844 r3489628  
    202202
    203203= 2.3.12 =
    204 * Support woocommerce block
     204* Added WooCommerce Blocks checkout support (React-based payment method integration)
     205* Added webpack build pipeline for client-side JavaScript
    205206
    206207= 2.3.13 =
    207 * Plugin tested under wordpress version 5.9
    208 * fixed Divi plugin Interfering issue
     208* Tested with WordPress 5.9
     209* Fixed Divi theme plugin interference with Zip checkout
    209210
    210211= 2.3.14 =
    211 * Plugin tested under wordpress version 6.0.1
    212 * Plugin tested under woocommerce version 6.7.0
    213 * Added tokenisation feature
     212* Added tokenisation — customers can save their Zip account for future purchases
     213* Added token encryption/decryption for secure storage
     214* Added checkout redirect URL support for tokenised payments
     215* Added loading overlay when creating charge with saved token
     216* Fixed token removal issue for NZ customers during Zip checkout redirect
     217* Fixed CSS and widget rendering on block checkout page
     218* Hidden marketing banner settings for non-AU regions
     219* Tested with WordPress 6.0.1 and WooCommerce 6.7.0
    214220
    215221= 2.3.15 =
    216 * Fixed currency issue when charge is creating
    217 * Fixed active plugin issue
     222* Fixed currency mismatch — now uses currency from checkout session when creating charge
     223* Fixed overlay display issue during payment processing
     224* Renamed plugin_activation to zip_plugin_activation to avoid conflicts with other plugins
     225* Auto-remove invalid tokens from database
    218226
    219227= 2.3.16 =
    220 * Fixed some security related
     228* Fixed security issues — sanitised HTML POST data in payment processing
     229* Improved input validation in gateway configuration and widget rendering
     230* Fixed coding standards issues
    221231
    222232= 2.3.17 =
    223 * Test plugin with wordpress 6.2 and woocommerce 7.5.1
     233* Added Docker development environment for local testing
     234* Fixed PHP notification for wc-zipmoney-checkout-js
     235* Tested with WordPress 6.2 and WooCommerce 7.5.1
    224236
    225237= 2.3.18 =
    226 * fixed php notification issue for wc-zipmoney-checkout-js
     238* Fixed PHP notification for wc-zipmoney-checkout-js enqueue
     239
     240= 2.3.19 =
     241* Added High-Performance Order Storage (HPOS) compatibility
     242* Declared custom_order_tables feature compatibility
    227243
    228244= 2.3.20 =
    229 * fixed php notification issue for wc-zipmoney-checkout-js
     245* Improved HPOS compatibility in API and charge handling
     246* Removed deprecated direct post meta access in favour of WC order methods
    230247
    231248= 2.3.21 =
    232 * Changed an api endpoint
     249* Updated Zip API endpoint base URL
    233250
    234251= 2.3.22 =
    235 * Removed legacy changes. Updated region logic
     252* Removed legacy settings: CONFIG_DISPLAY_TAGLINE_PRODUCT_PAGE, CONFIG_IS_IFRAME_FLOW
     253* Updated widget location on product and cart pages
     254* Fixed region detection logic — removed unused countries from dropdown
     255
     256= 2.3.23 =
     257* Updated widget JavaScript implementation (ZES-45)
     258* Fixed widget settings initialisation (ZES-46)
    236259
    237260= 2.3.26 =
    238 * Update php sdk lib
     261* Updated zipmoney/merchantapi-php SDK library version
    239262
    240263= 2.3.27 =
    241 * Remove US region
     264* Removed US region support — plugin now serves AU and NZ only
    242265
    243266= 2.3.28 =
    244 * Fix js bugs
     267* Refactored block checkout JavaScript (React component cleanup)
     268* Updated Composer dependencies
    245269
    246270= 2.3.29 =
    247 * update merchant api endpoint
     271* Updated merchant API endpoint and frontend resource URLs to new Zip domain
     272* Fixed PaymentMethodTitle formatting — removed redundant string manipulation
    248273
    249274= 2.3.30 =
    250 * Fix nullable variables issue
     275* Fixed nullable variable handling across gateway classes (PHP 8.2+ compatibility)
     276
     277= 2.3.31 =
     278* Enhanced payment processing for WooCommerce block-based checkout (ZES-79)
     279* Added process_payment_with_context for block checkout flow (redirect, error handling)
     280* Fixed React JSX syntax — class → className, onclick → onClick
     281* Declared cart_checkout_blocks feature compatibility
     282* Fixed admin JS enqueuing — replaced wc_enqueue_js with wp_add_inline_script
     283* Fixed process_payment to return failure array instead of void on error
  • zipmoney-payments-woocommerce/tags/2.3.31/build/index.asset.php

    r3383844 r3489628  
    1 <?php return array('dependencies' => array('react', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-i18n'), 'version' => 'd0d8ae0091e2784cdab593c208bb0ad2');
     1<?php return array('dependencies' => array('react-jsx-runtime', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-i18n'), 'version' => '8fb3044ee562fa7d1be4');
  • zipmoney-payments-woocommerce/tags/2.3.31/build/index.js

    r3383844 r3489628  
    1 (()=>{"use strict";var e={20:(e,t,n)=>{var o=n(609),r=60103;if(t.Fragment=60107,"function"==typeof Symbol&&Symbol.for){var s=Symbol.for;r=s("react.element"),t.Fragment=s("react.fragment")}var a=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i=Object.prototype.hasOwnProperty,c={key:!0,ref:!0,__self:!0,__source:!0};function p(e,t,n){var o,s={},p=null,l=null;for(o in void 0!==n&&(p=""+n),void 0!==t.key&&(p=""+t.key),void 0!==t.ref&&(l=t.ref),t)i.call(t,o)&&!c.hasOwnProperty(o)&&(s[o]=t[o]);if(e&&e.defaultProps)for(o in t=e.defaultProps)void 0===s[o]&&(s[o]=t[o]);return{$$typeof:r,type:e,key:p,ref:l,props:s,_owner:a.current}}t.jsx=p,t.jsxs=p},609:e=>{e.exports=window.React},848:(e,t,n)=>{e.exports=n(20)}},t={};const n=window.wp.i18n,o=window.wc.wcSettings,r=window.wc.wcBlocksRegistry,s=window.wp.element,a="zipmoney";var i=function n(o){var r=t[o];if(void 0!==r)return r.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}(848);const c=(0,o.getSetting)("zipmoney_data",{});console.log("zip settings:".settings);const p=(0,n.__)("Zip now, pay later","zippayment"),l=c.title?c.title:p,d=()=>c.savezip,u=()=>{const[e,t]=(0,s.useState)(d);return(0,s.useEffect)(()=>{Zip.Widget.render()},[]),!0===c.tokenisation?(0,i.jsxs)(i.Fragment,{children:[" ",(0,i.jsx)("div",{class:"zip-overlay",onclick:"this.style.display = 'none';",children:(0,i.jsx)("div",{class:"zip-overlay-text",children:" Creating charge, please wait... "})}),(0,i.jsxs)("a",{id:"zipmoney-learn-more",class:"zip-hover","zm-widget":"popup","zm-popup-asset":"checkoutdialog",children:[" ","Learn More"," "]}),(0,i.jsx)("input",{type:"checkbox",rel:"saveZipAccount",value:"{isChecked}",id:"saveZipAccount",checked:e,onChange:n=>{t(!e);let o=new FormData;o.append("savezipaccount",!e);const r={method:"POST",body:o};fetch(c.sessionUrl,r).then(e=>e.json())},disabled:!1}),(0,i.jsx)("label",{className:"save-zip-account",htmlFor:"saveZipAccount",children:"Save Zip Account for future purchases"})]}):(0,i.jsxs)(i.Fragment,{children:[" ",(0,i.jsx)("div",{class:"zip-overlay",onclick:"this.style.display = 'none';",children:(0,i.jsx)("div",{class:"zip-overlay-text",children:" Creating charge, please wait... "})}),(0,i.jsxs)("a",{id:"zipmoney-learn-more",class:"zip-hover","zm-widget":"popup","zm-popup-asset":"checkoutdialog",children:[" ","Learn More"," "]})]})},y=e=>{const{PaymentMethodLabel:t}=e.components;return(0,i.jsx)(t,{text:l})},h={name:a,label:(0,i.jsx)(y,{}),content:(0,i.jsx)(u,{}),edit:(0,i.jsx)(u,{}),canMakePayment:()=>!0,paymentMethodId:a,supports:{features:["products"]},ariaLabel:l};(0,r.registerPaymentMethod)(h)})();
     1(()=>{"use strict";const e=window.wp.i18n,t=window.wc.wcSettings,s=window.wc.wcBlocksRegistry,n=window.wp.element,a="zipmoney",i=window.ReactJSXRuntime,o=(0,t.getSetting)("zipmoney_data",{});console.log("zip settings:".settings);const c=(0,e.__)("Zip now, pay later","zippayment"),r=o.title?o.title:c,l=()=>o.savezip,p=()=>{const[e,t]=(0,n.useState)(l);return(0,n.useEffect)(()=>{Zip.Widget.render()},[]),!0===o.tokenisation?(0,i.jsxs)(i.Fragment,{children:[" ",(0,i.jsx)("div",{className:"zip-overlay",onClick:()=>{document.querySelector(".zip-overlay").style.display="none"},children:(0,i.jsx)("div",{className:"zip-overlay-text",children:" Creating charge, please wait... "})}),(0,i.jsxs)("a",{id:"zipmoney-learn-more",className:"zip-hover","zm-widget":"popup","zm-popup-asset":"checkoutdialog",children:[" ","Learn More"," "]}),(0,i.jsx)("input",{type:"checkbox",rel:"saveZipAccount",value:"{isChecked}",id:"saveZipAccount",checked:e,onChange:s=>{t(!e);let n=new FormData;n.append("savezipaccount",!e);const a={method:"POST",body:n};fetch(o.sessionUrl,a).then(e=>e.json())},disabled:!1}),(0,i.jsx)("label",{className:"save-zip-account",htmlFor:"saveZipAccount",children:"Save Zip Account for future purchases"})]}):(0,i.jsxs)(i.Fragment,{children:[" ",(0,i.jsx)("div",{class:"zip-overlay",onclick:"this.style.display = 'none';",children:(0,i.jsx)("div",{class:"zip-overlay-text",children:" Creating charge, please wait... "})}),(0,i.jsxs)("a",{id:"zipmoney-learn-more",class:"zip-hover","zm-widget":"popup","zm-popup-asset":"checkoutdialog",children:[" ","Learn More"," "]})]})},d=e=>{const{PaymentMethodLabel:t}=e.components;return(0,i.jsx)(t,{text:r})},m={name:a,label:(0,i.jsx)(d,{}),content:(0,i.jsx)(p,{}),edit:(0,i.jsx)(p,{}),canMakePayment:()=>!0,paymentMethodId:a,supports:{features:["products"]},ariaLabel:r};(0,s.registerPaymentMethod)(m)})();
  • zipmoney-payments-woocommerce/tags/2.3.31/includes/class-wc-zipmoney-payment-gateway-blocks-support.php

    r3383844 r3489628  
    11<?php
    22use Automattic\WooCommerce\Blocks\Payments\Integrations\AbstractPaymentMethodType;
     3use Automattic\WooCommerce\StoreApi\Payments\PaymentContext;
     4use Automattic\WooCommerce\StoreApi\Payments\PaymentResult;
    35
    46/**
     
    1517    protected $name = 'zipmoney';
    1618
     19    private $WC_Zipmoney_Payment_Gateway;
     20
     21    public function __construct() {
     22         require_once plugin_dir_path( __FILE__ ) . '/class-wc-zipmoney-payment-gateway.php';
     23        $this->WC_Zipmoney_Payment_Gateway = new WC_Zipmoney_Payment_Gateway();
     24    }
     25
    1726    /**
    1827     * Initializes the payment method type.
     
    2130        $this->settings = get_option( 'woocommerce_zipmoney_settings', array() );
    2231
     32        add_action(
     33            'woocommerce_rest_checkout_process_payment_with_context',
     34            array( $this, 'process_payment_with_context' ),
     35            10,
     36            2
     37        );
    2338    }
    2439
    25     private $WC_Zipmoney_Payment_Gateway;
     40    /**
     41     * Handles payment processing for the block-based checkout.
     42     * Runs before Legacy.php (priority 999) so it takes over the flow.
     43     *
     44     * @param PaymentContext $context
     45     * @param PaymentResult  $result
     46     */
     47    public function process_payment_with_context( PaymentContext $context, PaymentResult &$result ) {
     48        if ( $context->payment_method !== $this->name ) {
     49            return;
     50        }
    2651
    27     public function __construct() {
    28          require_once plugin_dir_path( __FILE__ ) . '/class-wc-zipmoney-payment-gateway.php';
    29         $this->WC_Zipmoney_Payment_Gateway = new WC_Zipmoney_Payment_Gateway();
     52        $order_id = $context->order->get_id();
     53
     54        require_once plugin_dir_path( __FILE__ ) . '/controller/class-wc-zipmoney-payment-checkout-controller.php';
     55        $checkout_controller = new WC_Zip_Controller_Checkout_Controller( $this->WC_Zipmoney_Payment_Gateway );
     56
     57        try {
     58            // Pass empty array: in blocks checkout the order already holds all customer data.
     59            $checkout = $checkout_controller->create_checkout( array(), $order_id );
     60        } catch ( \zipMoney\ApiException $exception ) {
     61            WC_Zipmoney_Payment_Gateway_Util::log( $exception->getCode() . $exception->getMessage() );
     62            $result->set_status( 'failure' );
     63            $result->set_payment_details( array( 'errorMessage' => $exception->getMessage() ) );
     64            return;
     65        }
     66
     67        if ( isset( $checkout['redirect_uri'] ) && $checkout['result'] === 'success' ) {
     68            $result->set_status( 'success' );
     69            $result->set_redirect_url( $checkout['redirect_uri'] );
     70            $payment_details = array( 'checkoutId' => $checkout['checkout_id'] );
     71            if ( isset( $checkout['token'] ) ) {
     72                $payment_details['token'] = $checkout['token'];
     73            }
     74            $result->set_payment_details( $payment_details );
     75            return;
     76        }
     77
     78        $result->set_status( 'failure' );
     79        $result->set_payment_details( array( 'errorMessage' => $checkout['message'] ?? __( 'Payment error.', 'zippayment' ) ) );
    3080    }
    3181
     
    4898     */
    4999    public function get_payment_method_data() {
    50          $url                = home_url() . '/?p=zipmoneypayment&route=updatesession';
     100        $url                = home_url() . '/?p=zipmoneypayment&route=updatesession';
    51101        $payment_method_data = array(
    52102            'title'        => $this->WC_Zipmoney_Payment_Gateway->title,
  • zipmoney-payments-woocommerce/tags/2.3.31/includes/class-wc-zipmoney-payment-gateway-config.php

    r3383844 r3489628  
    102102        $this->WC_Zipmoney_Payment_Gateway = $WC_Zipmoney_Payment_Gateway;
    103103
    104         wc_enqueue_js(
    105             "jQuery( function( $ ) {
    106 
    107             if($('.woocommerce_sandbox_enable_option').prop('checked') == true){
    108                 $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).hide();
    109                 $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).show();
    110                 $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').show();
    111                 $( '.woocommerce_prod_zip_credetail_btn').closest('tr').hide();
    112             }else{
    113                 $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).show();
    114                 $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).hide();
    115                 $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').hide();
    116                 $( '.woocommerce_prod_zip_credetail_btn').closest('tr').show();
    117             }
    118            
    119             if($('.woocommerce_banner_enable').prop('checked') == true){
    120                 $( '.woocommerce_banner_option' ).closest( 'tr' ).show();
    121             }else{
    122                 $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
    123             }
    124             if($('#woocommerce_zipmoney_select_region :selected').val() === 'au'){
    125                 $( '.woocommerce_banner_enable' ).closest( 'tr' ).show();
    126                 $('.woocommerce_tokenisation_enable_option').closest( 'tr' ).show();
    127                 $('.woocommerce_iframe_enable_option').closest( 'tr' ).show();
     104        add_action( 'admin_enqueue_scripts', function() {
     105            $js = "
     106            jQuery( function( $ ) {
     107
     108                if($('.woocommerce_sandbox_enable_option').prop('checked') == true){
     109                    $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).hide();
     110                    $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).show();
     111                    $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').show();
     112                    $( '.woocommerce_prod_zip_credetail_btn').closest('tr').hide();
     113                }else{
     114                    $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).show();
     115                    $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).hide();
     116                    $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').hide();
     117                    $( '.woocommerce_prod_zip_credetail_btn').closest('tr').show();
     118                }
     119               
    128120                if($('.woocommerce_banner_enable').prop('checked') == true){
    129121                    $( '.woocommerce_banner_option' ).closest( 'tr' ).show();
     
    131123                    $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
    132124                }
    133             }else{
    134                 $( '.woocommerce_banner_enable' ).closest( 'tr' ).hide();
    135                 $('.woocommerce_tokenisation_enable_option').closest( 'tr' ).hide();
    136                 $('.woocommerce_iframe_enable_option').closest( 'tr' ).hide();
    137                 $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
    138             }
    139            
    140 
    141             $( '.woocommerce_sandbox_enable_option' ).change( function( event ) {
    142                 var checked = $( event.target ).is( ':checked' );
    143                     if(checked){
    144                         $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).show();
    145                         $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).hide();
    146                         $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').show();
    147                         $( '.woocommerce_prod_zip_credetail_btn').closest('tr').hide();
    148                         $('.woocommerce_sandbox_zip_credetail_btn').attr('value', 'Find your sandbox keys');
    149                     }else{
    150                         $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).hide();
    151                         $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).show();
    152                         $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').hide();
    153                         $( '.woocommerce_prod_zip_credetail_btn').closest('tr').show();
    154                         $('.woocommerce_sandbox_zip_credetail_btn').attr('value', 'Find your production keys');
    155                     }
    156             });
    157 
    158             $('#woocommerce_zipmoney_select_region').on('change',function(){
    159                 //Getting Value
    160                 var selValue = $('#woocommerce_zipmoney_select_region :selected').val();
    161                 if(selValue === 'au'){
     125                if($('#woocommerce_zipmoney_select_region :selected').val() === 'au'){
    162126                    $( '.woocommerce_banner_enable' ).closest( 'tr' ).show();
    163127                    $('.woocommerce_tokenisation_enable_option').closest( 'tr' ).show();
     
    174138                    $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
    175139                }
    176             });
    177 
    178             $( '.woocommerce_banner_enable' ).change( function( event ) {
    179                 var checked = $( event.target ).is( ':checked' );
    180                     if(checked){
    181                         $( '.woocommerce_banner_option' ).closest( 'tr' ).show();
     140               
     141   
     142                $( '.woocommerce_sandbox_enable_option' ).change( function( event ) {
     143                    var checked = $( event.target ).is( ':checked' );
     144                        if(checked){
     145                            $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).show();
     146                            $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).hide();
     147                            $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').show();
     148                            $( '.woocommerce_prod_zip_credetail_btn').closest('tr').hide();
     149                            $('.woocommerce_sandbox_zip_credetail_btn').attr('value', 'Find your sandbox keys');
     150                        }else{
     151                            $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).hide();
     152                            $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).show();
     153                            $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').hide();
     154                            $( '.woocommerce_prod_zip_credetail_btn').closest('tr').show();
     155                            $('.woocommerce_sandbox_zip_credetail_btn').attr('value', 'Find your production keys');
     156                        }
     157                });
     158   
     159                $('#woocommerce_zipmoney_select_region').on('change',function(){
     160                    //Getting Value
     161                    var selValue = $('#woocommerce_zipmoney_select_region :selected').val();
     162                    if(selValue === 'au'){
     163                        $( '.woocommerce_banner_enable' ).closest( 'tr' ).show();
     164                        $('.woocommerce_tokenisation_enable_option').closest( 'tr' ).show();
     165                        $('.woocommerce_iframe_enable_option').closest( 'tr' ).show();
     166                        if($('.woocommerce_banner_enable').prop('checked') == true){
     167                            $( '.woocommerce_banner_option' ).closest( 'tr' ).show();
     168                        }else{
     169                            $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
     170                        }
    182171                    }else{
     172                        $( '.woocommerce_banner_enable' ).closest( 'tr' ).hide();
     173                        $('.woocommerce_tokenisation_enable_option').closest( 'tr' ).hide();
     174                        $('.woocommerce_iframe_enable_option').closest( 'tr' ).hide();
    183175                        $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
    184176                    }
     177                });
     178   
     179                $( '.woocommerce_banner_enable' ).change( function( event ) {
     180                    var checked = $( event.target ).is( ':checked' );
     181                        if(checked){
     182                            $( '.woocommerce_banner_option' ).closest( 'tr' ).show();
     183                        }else{
     184                            $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
     185                        }
     186                });
     187   
     188                $('#woocommerce_zipmoney_check_credentials').click(function () {
     189                    const elements = document.getElementsByClassName('zip-notice');
     190                    const zipspinner = document.getElementsByClassName('zip-spinner');
     191                    while (elements.length > 0) elements[0].remove();
     192                    var checkValidateBtn = document.getElementById('woocommerce_zipmoney_check_credentials');
     193                    checkValidateBtn.insertAdjacentHTML('afterend', '<div class=\"zip-spinner\"></div>');
     194                    $('.zip-spinner').addClass('is-active');
     195                    var environment = 'production';
     196                    var privatekey = '';
     197                    if ($('#woocommerce_zipmoney_sandbox').is(':checked'))
     198                    {
     199                        environment = 'sandbox';
     200                        privatekey = $('#woocommerce_zipmoney_sandbox_merchant_private_key').val();
     201                    }
     202                    else {
     203                        privatekey = $('#woocommerce_zipmoney_merchant_private_key').val();
     204                    }
     205                    var data = {
     206                        private_key: privatekey,
     207                        environment: environment
     208                    };
     209                    var url = ZipApiKeyCheckUrl;
     210                    $.post(url, data, function(response) {
     211                        checkValidateBtn.insertAdjacentHTML('afterend', response['message']); //  the html has been sanitised in the api endpoint side
     212                    }).always(function(){
     213                        while (zipspinner.length > 0) zipspinner[0].remove();
     214                    });
     215                });
     216   
     217                $('.woocommerce_sandbox_zip_credetail_btn').attr('value', 'Find your sandbox keys');
     218                $('.woocommerce_prod_zip_credetail_btn').attr('value', 'Find your production keys');
     219                $('.check_private_key').attr('value', 'Check Private Key validation');
    185220            });
    186 
    187             $('#woocommerce_zipmoney_check_credentials').click(function () {
    188                 const elements = document.getElementsByClassName('zip-notice');
    189                 const zipspinner = document.getElementsByClassName('zip-spinner');
    190                 while (elements.length > 0) elements[0].remove();
    191                 var checkValidateBtn = document.getElementById('woocommerce_zipmoney_check_credentials');
    192                 checkValidateBtn.insertAdjacentHTML('afterend', '<div class=\"zip-spinner\"></div>');
    193                 $('.zip-spinner').addClass('is-active');
    194                 var environment = 'production';
    195                 var privatekey = '';
    196                 if ($('#woocommerce_zipmoney_sandbox').is(':checked'))
    197                 {
    198                     environment = 'sandbox';
    199                     privatekey = $('#woocommerce_zipmoney_sandbox_merchant_private_key').val();
    200                 }
    201                 else {
    202                     privatekey = $('#woocommerce_zipmoney_merchant_private_key').val();
    203                 }
    204                 var data = {
    205                     private_key: privatekey,
    206                     environment: environment
    207                 };
    208                 var url = ZipApiKeyCheckUrl;
    209                 $.post(url, data, function(response) {
    210                     checkValidateBtn.insertAdjacentHTML('afterend', response['message']); //  the html has been sanitised in the api endpoint side
    211                 }).always(function(){
    212                     while (zipspinner.length > 0) zipspinner[0].remove();
    213                 });
    214             });
    215 
    216             $('.woocommerce_sandbox_zip_credetail_btn').attr('value', 'Find your sandbox keys');
    217             $('.woocommerce_prod_zip_credetail_btn').attr('value', 'Find your production keys');
    218             $('.check_private_key').attr('value', 'Check Private Key validation');
    219 
    220         });"
    221         );
     221            ";
     222            wp_add_inline_script( 'jquery', $js );
     223        });
    222224    }
    223225
  • zipmoney-payments-woocommerce/tags/2.3.31/includes/class-wc-zipmoney-payment-gateway.php

    r3383844 r3489628  
    2424    public $description = 'Own the way you pay';
    2525
    26     public $version = '2.3.30';
     26    public $version = '2.3.31';
    2727
    2828    public $supports = array( 'products', 'refunds' );
     
    410410        }
    411411        wc_add_notice( __( 'Payment error: ', 'zippayment' ) . $checkout['message'], 'error' );
     412
     413        return array(
     414            'result'   => 'failure',
     415            'messages' => $checkout['message'],
     416        );
    412417    }
    413418
  • zipmoney-payments-woocommerce/tags/2.3.31/vendor/autoload.php

    r3383844 r3489628  
    2020require_once __DIR__ . '/composer/autoload_real.php';
    2121
    22 return ComposerAutoloaderInitdcc9863675939c0886e0a0e4128ddaad::getLoader();
     22return ComposerAutoloaderInit2d592ea170bd68f017739954122cb935::getLoader();
  • zipmoney-payments-woocommerce/tags/2.3.31/vendor/composer/autoload_classmap.php

    r3383844 r3489628  
    88return array(
    99    'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
     10    'zipMoney\\ApiClient' => $vendorDir . '/zipmoney/merchantapi-php/lib/ApiClient.php',
     11    'zipMoney\\ApiException' => $vendorDir . '/zipmoney/merchantapi-php/lib/ApiException.php',
     12    'zipMoney\\Api\\ChargesApi' => $vendorDir . '/zipmoney/merchantapi-php/lib/Api/ChargesApi.php',
     13    'zipMoney\\Api\\CheckoutsApi' => $vendorDir . '/zipmoney/merchantapi-php/lib/Api/CheckoutsApi.php',
     14    'zipMoney\\Api\\CustomersApi' => $vendorDir . '/zipmoney/merchantapi-php/lib/Api/CustomersApi.php',
     15    'zipMoney\\Api\\RefundsApi' => $vendorDir . '/zipmoney/merchantapi-php/lib/Api/RefundsApi.php',
     16    'zipMoney\\Api\\SettlementsApi' => $vendorDir . '/zipmoney/merchantapi-php/lib/Api/SettlementsApi.php',
     17    'zipMoney\\Api\\TokensApi' => $vendorDir . '/zipmoney/merchantapi-php/lib/Api/TokensApi.php',
     18    'zipMoney\\Configuration' => $vendorDir . '/zipmoney/merchantapi-php/lib/Configuration.php',
     19    'zipMoney\\Model\\Address' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Address.php',
     20    'zipMoney\\Model\\Authority' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Authority.php',
     21    'zipMoney\\Model\\CaptureChargeRequest' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CaptureChargeRequest.php',
     22    'zipMoney\\Model\\Charge' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Charge.php',
     23    'zipMoney\\Model\\ChargeCollection' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/ChargeCollection.php',
     24    'zipMoney\\Model\\ChargeOrder' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/ChargeOrder.php',
     25    'zipMoney\\Model\\Checkout' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Checkout.php',
     26    'zipMoney\\Model\\CheckoutConfiguration' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CheckoutConfiguration.php',
     27    'zipMoney\\Model\\CheckoutFeatures' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CheckoutFeatures.php',
     28    'zipMoney\\Model\\CheckoutFeaturesTokenisation' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CheckoutFeaturesTokenisation.php',
     29    'zipMoney\\Model\\CheckoutOrder' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CheckoutOrder.php',
     30    'zipMoney\\Model\\CreateChargeRequest' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CreateChargeRequest.php',
     31    'zipMoney\\Model\\CreateCheckoutRequest' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CreateCheckoutRequest.php',
     32    'zipMoney\\Model\\CreateCheckoutRequestFeatures' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CreateCheckoutRequestFeatures.php',
     33    'zipMoney\\Model\\CreateCheckoutRequestFeaturesTokenisation' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CreateCheckoutRequestFeaturesTokenisation.php',
     34    'zipMoney\\Model\\CreateRefundRequest' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CreateRefundRequest.php',
     35    'zipMoney\\Model\\CreateTokenRequest' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CreateTokenRequest.php',
     36    'zipMoney\\Model\\CurrencyUtil' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CurrencyUtil.php',
     37    'zipMoney\\Model\\Customer' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Customer.php',
     38    'zipMoney\\Model\\ErrorResponse' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/ErrorResponse.php',
     39    'zipMoney\\Model\\ErrorResponseError' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/ErrorResponseError.php',
     40    'zipMoney\\Model\\ErrorResponseErrorDetails' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/ErrorResponseErrorDetails.php',
     41    'zipMoney\\Model\\Flightadditionaldetails' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Flightadditionaldetails.php',
     42    'zipMoney\\Model\\FlightadditionaldetailsPassengers' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/FlightadditionaldetailsPassengers.php',
     43    'zipMoney\\Model\\HateoasLinks' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/HateoasLinks.php',
     44    'zipMoney\\Model\\HateoaslinksLinks' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/HateoaslinksLinks.php',
     45    'zipMoney\\Model\\InlineResponse200' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/InlineResponse200.php',
     46    'zipMoney\\Model\\Metadata' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Metadata.php',
     47    'zipMoney\\Model\\OrderItem' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/OrderItem.php',
     48    'zipMoney\\Model\\OrderItemAdditionalDetails' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/OrderItemAdditionalDetails.php',
     49    'zipMoney\\Model\\OrderShipping' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/OrderShipping.php',
     50    'zipMoney\\Model\\OrderShippingTracking' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/OrderShippingTracking.php',
     51    'zipMoney\\Model\\Refund' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Refund.php',
     52    'zipMoney\\Model\\Settlement' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Settlement.php',
     53    'zipMoney\\Model\\SettlementTransactions' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/SettlementTransactions.php',
     54    'zipMoney\\Model\\Shopper' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Shopper.php',
     55    'zipMoney\\Model\\ShopperStatistics' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/ShopperStatistics.php',
     56    'zipMoney\\Model\\Token' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Token.php',
     57    'zipMoney\\ObjectSerializer' => $vendorDir . '/zipmoney/merchantapi-php/lib/ObjectSerializer.php',
    1058);
  • zipmoney-payments-woocommerce/tags/2.3.31/vendor/composer/autoload_real.php

    r3383844 r3489628  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInitdcc9863675939c0886e0a0e4128ddaad
     5class ComposerAutoloaderInit2d592ea170bd68f017739954122cb935
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInitdcc9863675939c0886e0a0e4128ddaad', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit2d592ea170bd68f017739954122cb935', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInitdcc9863675939c0886e0a0e4128ddaad', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit2d592ea170bd68f017739954122cb935', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInitdcc9863675939c0886e0a0e4128ddaad::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit2d592ea170bd68f017739954122cb935::getInitializer($loader));
    3333
    3434        $loader->register(true);
  • zipmoney-payments-woocommerce/tags/2.3.31/vendor/composer/autoload_static.php

    r3383844 r3489628  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInitdcc9863675939c0886e0a0e4128ddaad
     7class ComposerStaticInit2d592ea170bd68f017739954122cb935
    88{
    99    public static $prefixLengthsPsr4 = array (
    10         'z' => 
     10        'z' =>
    1111        array (
    1212            'zipMoney\\' => 9,
     
    1515
    1616    public static $prefixDirsPsr4 = array (
    17         'zipMoney\\' => 
     17        'zipMoney\\' =>
    1818        array (
    1919            0 => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib',
     
    2323    public static $classMap = array (
    2424        'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
     25        'zipMoney\\ApiClient' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/ApiClient.php',
     26        'zipMoney\\ApiException' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/ApiException.php',
     27        'zipMoney\\Api\\ChargesApi' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Api/ChargesApi.php',
     28        'zipMoney\\Api\\CheckoutsApi' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Api/CheckoutsApi.php',
     29        'zipMoney\\Api\\CustomersApi' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Api/CustomersApi.php',
     30        'zipMoney\\Api\\RefundsApi' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Api/RefundsApi.php',
     31        'zipMoney\\Api\\SettlementsApi' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Api/SettlementsApi.php',
     32        'zipMoney\\Api\\TokensApi' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Api/TokensApi.php',
     33        'zipMoney\\Configuration' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Configuration.php',
     34        'zipMoney\\Model\\Address' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Address.php',
     35        'zipMoney\\Model\\Authority' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Authority.php',
     36        'zipMoney\\Model\\CaptureChargeRequest' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CaptureChargeRequest.php',
     37        'zipMoney\\Model\\Charge' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Charge.php',
     38        'zipMoney\\Model\\ChargeCollection' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/ChargeCollection.php',
     39        'zipMoney\\Model\\ChargeOrder' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/ChargeOrder.php',
     40        'zipMoney\\Model\\Checkout' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Checkout.php',
     41        'zipMoney\\Model\\CheckoutConfiguration' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CheckoutConfiguration.php',
     42        'zipMoney\\Model\\CheckoutFeatures' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CheckoutFeatures.php',
     43        'zipMoney\\Model\\CheckoutFeaturesTokenisation' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CheckoutFeaturesTokenisation.php',
     44        'zipMoney\\Model\\CheckoutOrder' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CheckoutOrder.php',
     45        'zipMoney\\Model\\CreateChargeRequest' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CreateChargeRequest.php',
     46        'zipMoney\\Model\\CreateCheckoutRequest' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CreateCheckoutRequest.php',
     47        'zipMoney\\Model\\CreateCheckoutRequestFeatures' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CreateCheckoutRequestFeatures.php',
     48        'zipMoney\\Model\\CreateCheckoutRequestFeaturesTokenisation' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CreateCheckoutRequestFeaturesTokenisation.php',
     49        'zipMoney\\Model\\CreateRefundRequest' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CreateRefundRequest.php',
     50        'zipMoney\\Model\\CreateTokenRequest' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CreateTokenRequest.php',
     51        'zipMoney\\Model\\CurrencyUtil' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CurrencyUtil.php',
     52        'zipMoney\\Model\\Customer' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Customer.php',
     53        'zipMoney\\Model\\ErrorResponse' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/ErrorResponse.php',
     54        'zipMoney\\Model\\ErrorResponseError' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/ErrorResponseError.php',
     55        'zipMoney\\Model\\ErrorResponseErrorDetails' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/ErrorResponseErrorDetails.php',
     56        'zipMoney\\Model\\Flightadditionaldetails' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Flightadditionaldetails.php',
     57        'zipMoney\\Model\\FlightadditionaldetailsPassengers' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/FlightadditionaldetailsPassengers.php',
     58        'zipMoney\\Model\\HateoasLinks' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/HateoasLinks.php',
     59        'zipMoney\\Model\\HateoaslinksLinks' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/HateoaslinksLinks.php',
     60        'zipMoney\\Model\\InlineResponse200' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/InlineResponse200.php',
     61        'zipMoney\\Model\\Metadata' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Metadata.php',
     62        'zipMoney\\Model\\OrderItem' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/OrderItem.php',
     63        'zipMoney\\Model\\OrderItemAdditionalDetails' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/OrderItemAdditionalDetails.php',
     64        'zipMoney\\Model\\OrderShipping' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/OrderShipping.php',
     65        'zipMoney\\Model\\OrderShippingTracking' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/OrderShippingTracking.php',
     66        'zipMoney\\Model\\Refund' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Refund.php',
     67        'zipMoney\\Model\\Settlement' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Settlement.php',
     68        'zipMoney\\Model\\SettlementTransactions' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/SettlementTransactions.php',
     69        'zipMoney\\Model\\Shopper' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Shopper.php',
     70        'zipMoney\\Model\\ShopperStatistics' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/ShopperStatistics.php',
     71        'zipMoney\\Model\\Token' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Token.php',
     72        'zipMoney\\ObjectSerializer' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/ObjectSerializer.php',
    2573    );
    2674
     
    2876    {
    2977        return \Closure::bind(function () use ($loader) {
    30             $loader->prefixLengthsPsr4 = ComposerStaticInitdcc9863675939c0886e0a0e4128ddaad::$prefixLengthsPsr4;
    31             $loader->prefixDirsPsr4 = ComposerStaticInitdcc9863675939c0886e0a0e4128ddaad::$prefixDirsPsr4;
    32             $loader->classMap = ComposerStaticInitdcc9863675939c0886e0a0e4128ddaad::$classMap;
     78            $loader->prefixLengthsPsr4 = ComposerStaticInit2d592ea170bd68f017739954122cb935::$prefixLengthsPsr4;
     79            $loader->prefixDirsPsr4 = ComposerStaticInit2d592ea170bd68f017739954122cb935::$prefixDirsPsr4;
     80            $loader->classMap = ComposerStaticInit2d592ea170bd68f017739954122cb935::$classMap;
    3381
    3482        }, null, ClassLoader::class);
  • zipmoney-payments-woocommerce/tags/2.3.31/vendor/composer/installed.php

    r3383844 r3489628  
    22    'root' => array(
    33        'name' => 'zipmoney/woocommerce-zipmoneypayment-apiv2',
    4         'pretty_version' => '2.3.30',
    5         'version' => '2.3.30.0',
     4        'pretty_version' => '2.3.31',
     5        'version' => '2.3.31.0',
    66        'reference' => null,
    77        'type' => 'library',
     
    2323        ),
    2424        'zipmoney/woocommerce-zipmoneypayment-apiv2' => array(
    25             'pretty_version' => '2.3.30',
    26             'version' => '2.3.30.0',
     25            'pretty_version' => '2.3.31',
     26            'version' => '2.3.31.0',
    2727            'reference' => null,
    2828            'type' => 'library',
  • zipmoney-payments-woocommerce/tags/2.3.31/zipmoney-payment-gateway.php

    r3383844 r3489628  
    77 * Give your customers the power to pay later, interest free and watch your sales grow.
    88 * Take advantage of our fast-growing customer base, proven revenue uplift, fast and simple integration.
    9  * Version:           2.3.30
     9 * Version:           2.3.31
    1010 * Author:            Zip
    1111 * Author URI:        https://www.zip.co/
     
    1515 * WC tested up to:   9.8
    1616 *
    17  * @version  2.3.30
     17 * @version  2.3.31
    1818 * @package  Zip
    1919 * @author   Zip
     
    134134    if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
    135135        \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
     136        \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'cart_checkout_blocks', __FILE__, true );
    136137    }
    137138} );
  • zipmoney-payments-woocommerce/trunk/README.txt

    r3383844 r3489628  
    202202
    203203= 2.3.12 =
    204 * Support woocommerce block
     204* Added WooCommerce Blocks checkout support (React-based payment method integration)
     205* Added webpack build pipeline for client-side JavaScript
    205206
    206207= 2.3.13 =
    207 * Plugin tested under wordpress version 5.9
    208 * fixed Divi plugin Interfering issue
     208* Tested with WordPress 5.9
     209* Fixed Divi theme plugin interference with Zip checkout
    209210
    210211= 2.3.14 =
    211 * Plugin tested under wordpress version 6.0.1
    212 * Plugin tested under woocommerce version 6.7.0
    213 * Added tokenisation feature
     212* Added tokenisation — customers can save their Zip account for future purchases
     213* Added token encryption/decryption for secure storage
     214* Added checkout redirect URL support for tokenised payments
     215* Added loading overlay when creating charge with saved token
     216* Fixed token removal issue for NZ customers during Zip checkout redirect
     217* Fixed CSS and widget rendering on block checkout page
     218* Hidden marketing banner settings for non-AU regions
     219* Tested with WordPress 6.0.1 and WooCommerce 6.7.0
    214220
    215221= 2.3.15 =
    216 * Fixed currency issue when charge is creating
    217 * Fixed active plugin issue
     222* Fixed currency mismatch — now uses currency from checkout session when creating charge
     223* Fixed overlay display issue during payment processing
     224* Renamed plugin_activation to zip_plugin_activation to avoid conflicts with other plugins
     225* Auto-remove invalid tokens from database
    218226
    219227= 2.3.16 =
    220 * Fixed some security related
     228* Fixed security issues — sanitised HTML POST data in payment processing
     229* Improved input validation in gateway configuration and widget rendering
     230* Fixed coding standards issues
    221231
    222232= 2.3.17 =
    223 * Test plugin with wordpress 6.2 and woocommerce 7.5.1
     233* Added Docker development environment for local testing
     234* Fixed PHP notification for wc-zipmoney-checkout-js
     235* Tested with WordPress 6.2 and WooCommerce 7.5.1
    224236
    225237= 2.3.18 =
    226 * fixed php notification issue for wc-zipmoney-checkout-js
     238* Fixed PHP notification for wc-zipmoney-checkout-js enqueue
     239
     240= 2.3.19 =
     241* Added High-Performance Order Storage (HPOS) compatibility
     242* Declared custom_order_tables feature compatibility
    227243
    228244= 2.3.20 =
    229 * fixed php notification issue for wc-zipmoney-checkout-js
     245* Improved HPOS compatibility in API and charge handling
     246* Removed deprecated direct post meta access in favour of WC order methods
    230247
    231248= 2.3.21 =
    232 * Changed an api endpoint
     249* Updated Zip API endpoint base URL
    233250
    234251= 2.3.22 =
    235 * Removed legacy changes. Updated region logic
     252* Removed legacy settings: CONFIG_DISPLAY_TAGLINE_PRODUCT_PAGE, CONFIG_IS_IFRAME_FLOW
     253* Updated widget location on product and cart pages
     254* Fixed region detection logic — removed unused countries from dropdown
     255
     256= 2.3.23 =
     257* Updated widget JavaScript implementation (ZES-45)
     258* Fixed widget settings initialisation (ZES-46)
    236259
    237260= 2.3.26 =
    238 * Update php sdk lib
     261* Updated zipmoney/merchantapi-php SDK library version
    239262
    240263= 2.3.27 =
    241 * Remove US region
     264* Removed US region support — plugin now serves AU and NZ only
    242265
    243266= 2.3.28 =
    244 * Fix js bugs
     267* Refactored block checkout JavaScript (React component cleanup)
     268* Updated Composer dependencies
    245269
    246270= 2.3.29 =
    247 * update merchant api endpoint
     271* Updated merchant API endpoint and frontend resource URLs to new Zip domain
     272* Fixed PaymentMethodTitle formatting — removed redundant string manipulation
    248273
    249274= 2.3.30 =
    250 * Fix nullable variables issue
     275* Fixed nullable variable handling across gateway classes (PHP 8.2+ compatibility)
     276
     277= 2.3.31 =
     278* Enhanced payment processing for WooCommerce block-based checkout (ZES-79)
     279* Added process_payment_with_context for block checkout flow (redirect, error handling)
     280* Fixed React JSX syntax — class → className, onclick → onClick
     281* Declared cart_checkout_blocks feature compatibility
     282* Fixed admin JS enqueuing — replaced wc_enqueue_js with wp_add_inline_script
     283* Fixed process_payment to return failure array instead of void on error
  • zipmoney-payments-woocommerce/trunk/build/index.asset.php

    r3383844 r3489628  
    1 <?php return array('dependencies' => array('react', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-i18n'), 'version' => 'd0d8ae0091e2784cdab593c208bb0ad2');
     1<?php return array('dependencies' => array('react-jsx-runtime', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-i18n'), 'version' => '8fb3044ee562fa7d1be4');
  • zipmoney-payments-woocommerce/trunk/build/index.js

    r3383844 r3489628  
    1 (()=>{"use strict";var e={20:(e,t,n)=>{var o=n(609),r=60103;if(t.Fragment=60107,"function"==typeof Symbol&&Symbol.for){var s=Symbol.for;r=s("react.element"),t.Fragment=s("react.fragment")}var a=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i=Object.prototype.hasOwnProperty,c={key:!0,ref:!0,__self:!0,__source:!0};function p(e,t,n){var o,s={},p=null,l=null;for(o in void 0!==n&&(p=""+n),void 0!==t.key&&(p=""+t.key),void 0!==t.ref&&(l=t.ref),t)i.call(t,o)&&!c.hasOwnProperty(o)&&(s[o]=t[o]);if(e&&e.defaultProps)for(o in t=e.defaultProps)void 0===s[o]&&(s[o]=t[o]);return{$$typeof:r,type:e,key:p,ref:l,props:s,_owner:a.current}}t.jsx=p,t.jsxs=p},609:e=>{e.exports=window.React},848:(e,t,n)=>{e.exports=n(20)}},t={};const n=window.wp.i18n,o=window.wc.wcSettings,r=window.wc.wcBlocksRegistry,s=window.wp.element,a="zipmoney";var i=function n(o){var r=t[o];if(void 0!==r)return r.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}(848);const c=(0,o.getSetting)("zipmoney_data",{});console.log("zip settings:".settings);const p=(0,n.__)("Zip now, pay later","zippayment"),l=c.title?c.title:p,d=()=>c.savezip,u=()=>{const[e,t]=(0,s.useState)(d);return(0,s.useEffect)(()=>{Zip.Widget.render()},[]),!0===c.tokenisation?(0,i.jsxs)(i.Fragment,{children:[" ",(0,i.jsx)("div",{class:"zip-overlay",onclick:"this.style.display = 'none';",children:(0,i.jsx)("div",{class:"zip-overlay-text",children:" Creating charge, please wait... "})}),(0,i.jsxs)("a",{id:"zipmoney-learn-more",class:"zip-hover","zm-widget":"popup","zm-popup-asset":"checkoutdialog",children:[" ","Learn More"," "]}),(0,i.jsx)("input",{type:"checkbox",rel:"saveZipAccount",value:"{isChecked}",id:"saveZipAccount",checked:e,onChange:n=>{t(!e);let o=new FormData;o.append("savezipaccount",!e);const r={method:"POST",body:o};fetch(c.sessionUrl,r).then(e=>e.json())},disabled:!1}),(0,i.jsx)("label",{className:"save-zip-account",htmlFor:"saveZipAccount",children:"Save Zip Account for future purchases"})]}):(0,i.jsxs)(i.Fragment,{children:[" ",(0,i.jsx)("div",{class:"zip-overlay",onclick:"this.style.display = 'none';",children:(0,i.jsx)("div",{class:"zip-overlay-text",children:" Creating charge, please wait... "})}),(0,i.jsxs)("a",{id:"zipmoney-learn-more",class:"zip-hover","zm-widget":"popup","zm-popup-asset":"checkoutdialog",children:[" ","Learn More"," "]})]})},y=e=>{const{PaymentMethodLabel:t}=e.components;return(0,i.jsx)(t,{text:l})},h={name:a,label:(0,i.jsx)(y,{}),content:(0,i.jsx)(u,{}),edit:(0,i.jsx)(u,{}),canMakePayment:()=>!0,paymentMethodId:a,supports:{features:["products"]},ariaLabel:l};(0,r.registerPaymentMethod)(h)})();
     1(()=>{"use strict";const e=window.wp.i18n,t=window.wc.wcSettings,s=window.wc.wcBlocksRegistry,n=window.wp.element,a="zipmoney",i=window.ReactJSXRuntime,o=(0,t.getSetting)("zipmoney_data",{});console.log("zip settings:".settings);const c=(0,e.__)("Zip now, pay later","zippayment"),r=o.title?o.title:c,l=()=>o.savezip,p=()=>{const[e,t]=(0,n.useState)(l);return(0,n.useEffect)(()=>{Zip.Widget.render()},[]),!0===o.tokenisation?(0,i.jsxs)(i.Fragment,{children:[" ",(0,i.jsx)("div",{className:"zip-overlay",onClick:()=>{document.querySelector(".zip-overlay").style.display="none"},children:(0,i.jsx)("div",{className:"zip-overlay-text",children:" Creating charge, please wait... "})}),(0,i.jsxs)("a",{id:"zipmoney-learn-more",className:"zip-hover","zm-widget":"popup","zm-popup-asset":"checkoutdialog",children:[" ","Learn More"," "]}),(0,i.jsx)("input",{type:"checkbox",rel:"saveZipAccount",value:"{isChecked}",id:"saveZipAccount",checked:e,onChange:s=>{t(!e);let n=new FormData;n.append("savezipaccount",!e);const a={method:"POST",body:n};fetch(o.sessionUrl,a).then(e=>e.json())},disabled:!1}),(0,i.jsx)("label",{className:"save-zip-account",htmlFor:"saveZipAccount",children:"Save Zip Account for future purchases"})]}):(0,i.jsxs)(i.Fragment,{children:[" ",(0,i.jsx)("div",{class:"zip-overlay",onclick:"this.style.display = 'none';",children:(0,i.jsx)("div",{class:"zip-overlay-text",children:" Creating charge, please wait... "})}),(0,i.jsxs)("a",{id:"zipmoney-learn-more",class:"zip-hover","zm-widget":"popup","zm-popup-asset":"checkoutdialog",children:[" ","Learn More"," "]})]})},d=e=>{const{PaymentMethodLabel:t}=e.components;return(0,i.jsx)(t,{text:r})},m={name:a,label:(0,i.jsx)(d,{}),content:(0,i.jsx)(p,{}),edit:(0,i.jsx)(p,{}),canMakePayment:()=>!0,paymentMethodId:a,supports:{features:["products"]},ariaLabel:r};(0,s.registerPaymentMethod)(m)})();
  • zipmoney-payments-woocommerce/trunk/includes/class-wc-zipmoney-payment-gateway-blocks-support.php

    r3383844 r3489628  
    11<?php
    22use Automattic\WooCommerce\Blocks\Payments\Integrations\AbstractPaymentMethodType;
     3use Automattic\WooCommerce\StoreApi\Payments\PaymentContext;
     4use Automattic\WooCommerce\StoreApi\Payments\PaymentResult;
    35
    46/**
     
    1517    protected $name = 'zipmoney';
    1618
     19    private $WC_Zipmoney_Payment_Gateway;
     20
     21    public function __construct() {
     22         require_once plugin_dir_path( __FILE__ ) . '/class-wc-zipmoney-payment-gateway.php';
     23        $this->WC_Zipmoney_Payment_Gateway = new WC_Zipmoney_Payment_Gateway();
     24    }
     25
    1726    /**
    1827     * Initializes the payment method type.
     
    2130        $this->settings = get_option( 'woocommerce_zipmoney_settings', array() );
    2231
     32        add_action(
     33            'woocommerce_rest_checkout_process_payment_with_context',
     34            array( $this, 'process_payment_with_context' ),
     35            10,
     36            2
     37        );
    2338    }
    2439
    25     private $WC_Zipmoney_Payment_Gateway;
     40    /**
     41     * Handles payment processing for the block-based checkout.
     42     * Runs before Legacy.php (priority 999) so it takes over the flow.
     43     *
     44     * @param PaymentContext $context
     45     * @param PaymentResult  $result
     46     */
     47    public function process_payment_with_context( PaymentContext $context, PaymentResult &$result ) {
     48        if ( $context->payment_method !== $this->name ) {
     49            return;
     50        }
    2651
    27     public function __construct() {
    28          require_once plugin_dir_path( __FILE__ ) . '/class-wc-zipmoney-payment-gateway.php';
    29         $this->WC_Zipmoney_Payment_Gateway = new WC_Zipmoney_Payment_Gateway();
     52        $order_id = $context->order->get_id();
     53
     54        require_once plugin_dir_path( __FILE__ ) . '/controller/class-wc-zipmoney-payment-checkout-controller.php';
     55        $checkout_controller = new WC_Zip_Controller_Checkout_Controller( $this->WC_Zipmoney_Payment_Gateway );
     56
     57        try {
     58            // Pass empty array: in blocks checkout the order already holds all customer data.
     59            $checkout = $checkout_controller->create_checkout( array(), $order_id );
     60        } catch ( \zipMoney\ApiException $exception ) {
     61            WC_Zipmoney_Payment_Gateway_Util::log( $exception->getCode() . $exception->getMessage() );
     62            $result->set_status( 'failure' );
     63            $result->set_payment_details( array( 'errorMessage' => $exception->getMessage() ) );
     64            return;
     65        }
     66
     67        if ( isset( $checkout['redirect_uri'] ) && $checkout['result'] === 'success' ) {
     68            $result->set_status( 'success' );
     69            $result->set_redirect_url( $checkout['redirect_uri'] );
     70            $payment_details = array( 'checkoutId' => $checkout['checkout_id'] );
     71            if ( isset( $checkout['token'] ) ) {
     72                $payment_details['token'] = $checkout['token'];
     73            }
     74            $result->set_payment_details( $payment_details );
     75            return;
     76        }
     77
     78        $result->set_status( 'failure' );
     79        $result->set_payment_details( array( 'errorMessage' => $checkout['message'] ?? __( 'Payment error.', 'zippayment' ) ) );
    3080    }
    3181
     
    4898     */
    4999    public function get_payment_method_data() {
    50          $url                = home_url() . '/?p=zipmoneypayment&route=updatesession';
     100        $url                = home_url() . '/?p=zipmoneypayment&route=updatesession';
    51101        $payment_method_data = array(
    52102            'title'        => $this->WC_Zipmoney_Payment_Gateway->title,
  • zipmoney-payments-woocommerce/trunk/includes/class-wc-zipmoney-payment-gateway-config.php

    r3383844 r3489628  
    102102        $this->WC_Zipmoney_Payment_Gateway = $WC_Zipmoney_Payment_Gateway;
    103103
    104         wc_enqueue_js(
    105             "jQuery( function( $ ) {
    106 
    107             if($('.woocommerce_sandbox_enable_option').prop('checked') == true){
    108                 $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).hide();
    109                 $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).show();
    110                 $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').show();
    111                 $( '.woocommerce_prod_zip_credetail_btn').closest('tr').hide();
    112             }else{
    113                 $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).show();
    114                 $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).hide();
    115                 $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').hide();
    116                 $( '.woocommerce_prod_zip_credetail_btn').closest('tr').show();
    117             }
    118            
    119             if($('.woocommerce_banner_enable').prop('checked') == true){
    120                 $( '.woocommerce_banner_option' ).closest( 'tr' ).show();
    121             }else{
    122                 $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
    123             }
    124             if($('#woocommerce_zipmoney_select_region :selected').val() === 'au'){
    125                 $( '.woocommerce_banner_enable' ).closest( 'tr' ).show();
    126                 $('.woocommerce_tokenisation_enable_option').closest( 'tr' ).show();
    127                 $('.woocommerce_iframe_enable_option').closest( 'tr' ).show();
     104        add_action( 'admin_enqueue_scripts', function() {
     105            $js = "
     106            jQuery( function( $ ) {
     107
     108                if($('.woocommerce_sandbox_enable_option').prop('checked') == true){
     109                    $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).hide();
     110                    $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).show();
     111                    $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').show();
     112                    $( '.woocommerce_prod_zip_credetail_btn').closest('tr').hide();
     113                }else{
     114                    $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).show();
     115                    $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).hide();
     116                    $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').hide();
     117                    $( '.woocommerce_prod_zip_credetail_btn').closest('tr').show();
     118                }
     119               
    128120                if($('.woocommerce_banner_enable').prop('checked') == true){
    129121                    $( '.woocommerce_banner_option' ).closest( 'tr' ).show();
     
    131123                    $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
    132124                }
    133             }else{
    134                 $( '.woocommerce_banner_enable' ).closest( 'tr' ).hide();
    135                 $('.woocommerce_tokenisation_enable_option').closest( 'tr' ).hide();
    136                 $('.woocommerce_iframe_enable_option').closest( 'tr' ).hide();
    137                 $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
    138             }
    139            
    140 
    141             $( '.woocommerce_sandbox_enable_option' ).change( function( event ) {
    142                 var checked = $( event.target ).is( ':checked' );
    143                     if(checked){
    144                         $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).show();
    145                         $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).hide();
    146                         $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').show();
    147                         $( '.woocommerce_prod_zip_credetail_btn').closest('tr').hide();
    148                         $('.woocommerce_sandbox_zip_credetail_btn').attr('value', 'Find your sandbox keys');
    149                     }else{
    150                         $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).hide();
    151                         $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).show();
    152                         $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').hide();
    153                         $( '.woocommerce_prod_zip_credetail_btn').closest('tr').show();
    154                         $('.woocommerce_sandbox_zip_credetail_btn').attr('value', 'Find your production keys');
    155                     }
    156             });
    157 
    158             $('#woocommerce_zipmoney_select_region').on('change',function(){
    159                 //Getting Value
    160                 var selValue = $('#woocommerce_zipmoney_select_region :selected').val();
    161                 if(selValue === 'au'){
     125                if($('#woocommerce_zipmoney_select_region :selected').val() === 'au'){
    162126                    $( '.woocommerce_banner_enable' ).closest( 'tr' ).show();
    163127                    $('.woocommerce_tokenisation_enable_option').closest( 'tr' ).show();
     
    174138                    $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
    175139                }
    176             });
    177 
    178             $( '.woocommerce_banner_enable' ).change( function( event ) {
    179                 var checked = $( event.target ).is( ':checked' );
    180                     if(checked){
    181                         $( '.woocommerce_banner_option' ).closest( 'tr' ).show();
     140               
     141   
     142                $( '.woocommerce_sandbox_enable_option' ).change( function( event ) {
     143                    var checked = $( event.target ).is( ':checked' );
     144                        if(checked){
     145                            $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).show();
     146                            $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).hide();
     147                            $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').show();
     148                            $( '.woocommerce_prod_zip_credetail_btn').closest('tr').hide();
     149                            $('.woocommerce_sandbox_zip_credetail_btn').attr('value', 'Find your sandbox keys');
     150                        }else{
     151                            $( '.woocommerce_toggle_sandbox_field' ).closest( 'tr' ).hide();
     152                            $( '.woocommerce_toggle_prod_field' ).closest( 'tr' ).show();
     153                            $( '.woocommerce_sandbox_zip_credetail_btn').closest('tr').hide();
     154                            $( '.woocommerce_prod_zip_credetail_btn').closest('tr').show();
     155                            $('.woocommerce_sandbox_zip_credetail_btn').attr('value', 'Find your production keys');
     156                        }
     157                });
     158   
     159                $('#woocommerce_zipmoney_select_region').on('change',function(){
     160                    //Getting Value
     161                    var selValue = $('#woocommerce_zipmoney_select_region :selected').val();
     162                    if(selValue === 'au'){
     163                        $( '.woocommerce_banner_enable' ).closest( 'tr' ).show();
     164                        $('.woocommerce_tokenisation_enable_option').closest( 'tr' ).show();
     165                        $('.woocommerce_iframe_enable_option').closest( 'tr' ).show();
     166                        if($('.woocommerce_banner_enable').prop('checked') == true){
     167                            $( '.woocommerce_banner_option' ).closest( 'tr' ).show();
     168                        }else{
     169                            $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
     170                        }
    182171                    }else{
     172                        $( '.woocommerce_banner_enable' ).closest( 'tr' ).hide();
     173                        $('.woocommerce_tokenisation_enable_option').closest( 'tr' ).hide();
     174                        $('.woocommerce_iframe_enable_option').closest( 'tr' ).hide();
    183175                        $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
    184176                    }
     177                });
     178   
     179                $( '.woocommerce_banner_enable' ).change( function( event ) {
     180                    var checked = $( event.target ).is( ':checked' );
     181                        if(checked){
     182                            $( '.woocommerce_banner_option' ).closest( 'tr' ).show();
     183                        }else{
     184                            $( '.woocommerce_banner_option' ).closest( 'tr' ).hide();
     185                        }
     186                });
     187   
     188                $('#woocommerce_zipmoney_check_credentials').click(function () {
     189                    const elements = document.getElementsByClassName('zip-notice');
     190                    const zipspinner = document.getElementsByClassName('zip-spinner');
     191                    while (elements.length > 0) elements[0].remove();
     192                    var checkValidateBtn = document.getElementById('woocommerce_zipmoney_check_credentials');
     193                    checkValidateBtn.insertAdjacentHTML('afterend', '<div class=\"zip-spinner\"></div>');
     194                    $('.zip-spinner').addClass('is-active');
     195                    var environment = 'production';
     196                    var privatekey = '';
     197                    if ($('#woocommerce_zipmoney_sandbox').is(':checked'))
     198                    {
     199                        environment = 'sandbox';
     200                        privatekey = $('#woocommerce_zipmoney_sandbox_merchant_private_key').val();
     201                    }
     202                    else {
     203                        privatekey = $('#woocommerce_zipmoney_merchant_private_key').val();
     204                    }
     205                    var data = {
     206                        private_key: privatekey,
     207                        environment: environment
     208                    };
     209                    var url = ZipApiKeyCheckUrl;
     210                    $.post(url, data, function(response) {
     211                        checkValidateBtn.insertAdjacentHTML('afterend', response['message']); //  the html has been sanitised in the api endpoint side
     212                    }).always(function(){
     213                        while (zipspinner.length > 0) zipspinner[0].remove();
     214                    });
     215                });
     216   
     217                $('.woocommerce_sandbox_zip_credetail_btn').attr('value', 'Find your sandbox keys');
     218                $('.woocommerce_prod_zip_credetail_btn').attr('value', 'Find your production keys');
     219                $('.check_private_key').attr('value', 'Check Private Key validation');
    185220            });
    186 
    187             $('#woocommerce_zipmoney_check_credentials').click(function () {
    188                 const elements = document.getElementsByClassName('zip-notice');
    189                 const zipspinner = document.getElementsByClassName('zip-spinner');
    190                 while (elements.length > 0) elements[0].remove();
    191                 var checkValidateBtn = document.getElementById('woocommerce_zipmoney_check_credentials');
    192                 checkValidateBtn.insertAdjacentHTML('afterend', '<div class=\"zip-spinner\"></div>');
    193                 $('.zip-spinner').addClass('is-active');
    194                 var environment = 'production';
    195                 var privatekey = '';
    196                 if ($('#woocommerce_zipmoney_sandbox').is(':checked'))
    197                 {
    198                     environment = 'sandbox';
    199                     privatekey = $('#woocommerce_zipmoney_sandbox_merchant_private_key').val();
    200                 }
    201                 else {
    202                     privatekey = $('#woocommerce_zipmoney_merchant_private_key').val();
    203                 }
    204                 var data = {
    205                     private_key: privatekey,
    206                     environment: environment
    207                 };
    208                 var url = ZipApiKeyCheckUrl;
    209                 $.post(url, data, function(response) {
    210                     checkValidateBtn.insertAdjacentHTML('afterend', response['message']); //  the html has been sanitised in the api endpoint side
    211                 }).always(function(){
    212                     while (zipspinner.length > 0) zipspinner[0].remove();
    213                 });
    214             });
    215 
    216             $('.woocommerce_sandbox_zip_credetail_btn').attr('value', 'Find your sandbox keys');
    217             $('.woocommerce_prod_zip_credetail_btn').attr('value', 'Find your production keys');
    218             $('.check_private_key').attr('value', 'Check Private Key validation');
    219 
    220         });"
    221         );
     221            ";
     222            wp_add_inline_script( 'jquery', $js );
     223        });
    222224    }
    223225
  • zipmoney-payments-woocommerce/trunk/includes/class-wc-zipmoney-payment-gateway.php

    r3383844 r3489628  
    2424    public $description = 'Own the way you pay';
    2525
    26     public $version = '2.3.30';
     26    public $version = '2.3.31';
    2727
    2828    public $supports = array( 'products', 'refunds' );
     
    410410        }
    411411        wc_add_notice( __( 'Payment error: ', 'zippayment' ) . $checkout['message'], 'error' );
     412
     413        return array(
     414            'result'   => 'failure',
     415            'messages' => $checkout['message'],
     416        );
    412417    }
    413418
  • zipmoney-payments-woocommerce/trunk/vendor/autoload.php

    r3383844 r3489628  
    2020require_once __DIR__ . '/composer/autoload_real.php';
    2121
    22 return ComposerAutoloaderInitdcc9863675939c0886e0a0e4128ddaad::getLoader();
     22return ComposerAutoloaderInit2d592ea170bd68f017739954122cb935::getLoader();
  • zipmoney-payments-woocommerce/trunk/vendor/composer/autoload_classmap.php

    r3383844 r3489628  
    88return array(
    99    'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
     10    'zipMoney\\ApiClient' => $vendorDir . '/zipmoney/merchantapi-php/lib/ApiClient.php',
     11    'zipMoney\\ApiException' => $vendorDir . '/zipmoney/merchantapi-php/lib/ApiException.php',
     12    'zipMoney\\Api\\ChargesApi' => $vendorDir . '/zipmoney/merchantapi-php/lib/Api/ChargesApi.php',
     13    'zipMoney\\Api\\CheckoutsApi' => $vendorDir . '/zipmoney/merchantapi-php/lib/Api/CheckoutsApi.php',
     14    'zipMoney\\Api\\CustomersApi' => $vendorDir . '/zipmoney/merchantapi-php/lib/Api/CustomersApi.php',
     15    'zipMoney\\Api\\RefundsApi' => $vendorDir . '/zipmoney/merchantapi-php/lib/Api/RefundsApi.php',
     16    'zipMoney\\Api\\SettlementsApi' => $vendorDir . '/zipmoney/merchantapi-php/lib/Api/SettlementsApi.php',
     17    'zipMoney\\Api\\TokensApi' => $vendorDir . '/zipmoney/merchantapi-php/lib/Api/TokensApi.php',
     18    'zipMoney\\Configuration' => $vendorDir . '/zipmoney/merchantapi-php/lib/Configuration.php',
     19    'zipMoney\\Model\\Address' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Address.php',
     20    'zipMoney\\Model\\Authority' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Authority.php',
     21    'zipMoney\\Model\\CaptureChargeRequest' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CaptureChargeRequest.php',
     22    'zipMoney\\Model\\Charge' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Charge.php',
     23    'zipMoney\\Model\\ChargeCollection' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/ChargeCollection.php',
     24    'zipMoney\\Model\\ChargeOrder' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/ChargeOrder.php',
     25    'zipMoney\\Model\\Checkout' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Checkout.php',
     26    'zipMoney\\Model\\CheckoutConfiguration' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CheckoutConfiguration.php',
     27    'zipMoney\\Model\\CheckoutFeatures' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CheckoutFeatures.php',
     28    'zipMoney\\Model\\CheckoutFeaturesTokenisation' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CheckoutFeaturesTokenisation.php',
     29    'zipMoney\\Model\\CheckoutOrder' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CheckoutOrder.php',
     30    'zipMoney\\Model\\CreateChargeRequest' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CreateChargeRequest.php',
     31    'zipMoney\\Model\\CreateCheckoutRequest' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CreateCheckoutRequest.php',
     32    'zipMoney\\Model\\CreateCheckoutRequestFeatures' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CreateCheckoutRequestFeatures.php',
     33    'zipMoney\\Model\\CreateCheckoutRequestFeaturesTokenisation' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CreateCheckoutRequestFeaturesTokenisation.php',
     34    'zipMoney\\Model\\CreateRefundRequest' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CreateRefundRequest.php',
     35    'zipMoney\\Model\\CreateTokenRequest' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CreateTokenRequest.php',
     36    'zipMoney\\Model\\CurrencyUtil' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/CurrencyUtil.php',
     37    'zipMoney\\Model\\Customer' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Customer.php',
     38    'zipMoney\\Model\\ErrorResponse' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/ErrorResponse.php',
     39    'zipMoney\\Model\\ErrorResponseError' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/ErrorResponseError.php',
     40    'zipMoney\\Model\\ErrorResponseErrorDetails' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/ErrorResponseErrorDetails.php',
     41    'zipMoney\\Model\\Flightadditionaldetails' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Flightadditionaldetails.php',
     42    'zipMoney\\Model\\FlightadditionaldetailsPassengers' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/FlightadditionaldetailsPassengers.php',
     43    'zipMoney\\Model\\HateoasLinks' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/HateoasLinks.php',
     44    'zipMoney\\Model\\HateoaslinksLinks' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/HateoaslinksLinks.php',
     45    'zipMoney\\Model\\InlineResponse200' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/InlineResponse200.php',
     46    'zipMoney\\Model\\Metadata' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Metadata.php',
     47    'zipMoney\\Model\\OrderItem' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/OrderItem.php',
     48    'zipMoney\\Model\\OrderItemAdditionalDetails' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/OrderItemAdditionalDetails.php',
     49    'zipMoney\\Model\\OrderShipping' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/OrderShipping.php',
     50    'zipMoney\\Model\\OrderShippingTracking' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/OrderShippingTracking.php',
     51    'zipMoney\\Model\\Refund' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Refund.php',
     52    'zipMoney\\Model\\Settlement' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Settlement.php',
     53    'zipMoney\\Model\\SettlementTransactions' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/SettlementTransactions.php',
     54    'zipMoney\\Model\\Shopper' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Shopper.php',
     55    'zipMoney\\Model\\ShopperStatistics' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/ShopperStatistics.php',
     56    'zipMoney\\Model\\Token' => $vendorDir . '/zipmoney/merchantapi-php/lib/Model/Token.php',
     57    'zipMoney\\ObjectSerializer' => $vendorDir . '/zipmoney/merchantapi-php/lib/ObjectSerializer.php',
    1058);
  • zipmoney-payments-woocommerce/trunk/vendor/composer/autoload_real.php

    r3383844 r3489628  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInitdcc9863675939c0886e0a0e4128ddaad
     5class ComposerAutoloaderInit2d592ea170bd68f017739954122cb935
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInitdcc9863675939c0886e0a0e4128ddaad', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit2d592ea170bd68f017739954122cb935', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInitdcc9863675939c0886e0a0e4128ddaad', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit2d592ea170bd68f017739954122cb935', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInitdcc9863675939c0886e0a0e4128ddaad::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit2d592ea170bd68f017739954122cb935::getInitializer($loader));
    3333
    3434        $loader->register(true);
  • zipmoney-payments-woocommerce/trunk/vendor/composer/autoload_static.php

    r3383844 r3489628  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInitdcc9863675939c0886e0a0e4128ddaad
     7class ComposerStaticInit2d592ea170bd68f017739954122cb935
    88{
    99    public static $prefixLengthsPsr4 = array (
    10         'z' => 
     10        'z' =>
    1111        array (
    1212            'zipMoney\\' => 9,
     
    1515
    1616    public static $prefixDirsPsr4 = array (
    17         'zipMoney\\' => 
     17        'zipMoney\\' =>
    1818        array (
    1919            0 => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib',
     
    2323    public static $classMap = array (
    2424        'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
     25        'zipMoney\\ApiClient' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/ApiClient.php',
     26        'zipMoney\\ApiException' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/ApiException.php',
     27        'zipMoney\\Api\\ChargesApi' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Api/ChargesApi.php',
     28        'zipMoney\\Api\\CheckoutsApi' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Api/CheckoutsApi.php',
     29        'zipMoney\\Api\\CustomersApi' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Api/CustomersApi.php',
     30        'zipMoney\\Api\\RefundsApi' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Api/RefundsApi.php',
     31        'zipMoney\\Api\\SettlementsApi' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Api/SettlementsApi.php',
     32        'zipMoney\\Api\\TokensApi' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Api/TokensApi.php',
     33        'zipMoney\\Configuration' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Configuration.php',
     34        'zipMoney\\Model\\Address' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Address.php',
     35        'zipMoney\\Model\\Authority' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Authority.php',
     36        'zipMoney\\Model\\CaptureChargeRequest' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CaptureChargeRequest.php',
     37        'zipMoney\\Model\\Charge' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Charge.php',
     38        'zipMoney\\Model\\ChargeCollection' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/ChargeCollection.php',
     39        'zipMoney\\Model\\ChargeOrder' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/ChargeOrder.php',
     40        'zipMoney\\Model\\Checkout' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Checkout.php',
     41        'zipMoney\\Model\\CheckoutConfiguration' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CheckoutConfiguration.php',
     42        'zipMoney\\Model\\CheckoutFeatures' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CheckoutFeatures.php',
     43        'zipMoney\\Model\\CheckoutFeaturesTokenisation' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CheckoutFeaturesTokenisation.php',
     44        'zipMoney\\Model\\CheckoutOrder' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CheckoutOrder.php',
     45        'zipMoney\\Model\\CreateChargeRequest' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CreateChargeRequest.php',
     46        'zipMoney\\Model\\CreateCheckoutRequest' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CreateCheckoutRequest.php',
     47        'zipMoney\\Model\\CreateCheckoutRequestFeatures' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CreateCheckoutRequestFeatures.php',
     48        'zipMoney\\Model\\CreateCheckoutRequestFeaturesTokenisation' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CreateCheckoutRequestFeaturesTokenisation.php',
     49        'zipMoney\\Model\\CreateRefundRequest' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CreateRefundRequest.php',
     50        'zipMoney\\Model\\CreateTokenRequest' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CreateTokenRequest.php',
     51        'zipMoney\\Model\\CurrencyUtil' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/CurrencyUtil.php',
     52        'zipMoney\\Model\\Customer' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Customer.php',
     53        'zipMoney\\Model\\ErrorResponse' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/ErrorResponse.php',
     54        'zipMoney\\Model\\ErrorResponseError' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/ErrorResponseError.php',
     55        'zipMoney\\Model\\ErrorResponseErrorDetails' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/ErrorResponseErrorDetails.php',
     56        'zipMoney\\Model\\Flightadditionaldetails' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Flightadditionaldetails.php',
     57        'zipMoney\\Model\\FlightadditionaldetailsPassengers' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/FlightadditionaldetailsPassengers.php',
     58        'zipMoney\\Model\\HateoasLinks' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/HateoasLinks.php',
     59        'zipMoney\\Model\\HateoaslinksLinks' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/HateoaslinksLinks.php',
     60        'zipMoney\\Model\\InlineResponse200' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/InlineResponse200.php',
     61        'zipMoney\\Model\\Metadata' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Metadata.php',
     62        'zipMoney\\Model\\OrderItem' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/OrderItem.php',
     63        'zipMoney\\Model\\OrderItemAdditionalDetails' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/OrderItemAdditionalDetails.php',
     64        'zipMoney\\Model\\OrderShipping' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/OrderShipping.php',
     65        'zipMoney\\Model\\OrderShippingTracking' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/OrderShippingTracking.php',
     66        'zipMoney\\Model\\Refund' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Refund.php',
     67        'zipMoney\\Model\\Settlement' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Settlement.php',
     68        'zipMoney\\Model\\SettlementTransactions' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/SettlementTransactions.php',
     69        'zipMoney\\Model\\Shopper' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Shopper.php',
     70        'zipMoney\\Model\\ShopperStatistics' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/ShopperStatistics.php',
     71        'zipMoney\\Model\\Token' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/Model/Token.php',
     72        'zipMoney\\ObjectSerializer' => __DIR__ . '/..' . '/zipmoney/merchantapi-php/lib/ObjectSerializer.php',
    2573    );
    2674
     
    2876    {
    2977        return \Closure::bind(function () use ($loader) {
    30             $loader->prefixLengthsPsr4 = ComposerStaticInitdcc9863675939c0886e0a0e4128ddaad::$prefixLengthsPsr4;
    31             $loader->prefixDirsPsr4 = ComposerStaticInitdcc9863675939c0886e0a0e4128ddaad::$prefixDirsPsr4;
    32             $loader->classMap = ComposerStaticInitdcc9863675939c0886e0a0e4128ddaad::$classMap;
     78            $loader->prefixLengthsPsr4 = ComposerStaticInit2d592ea170bd68f017739954122cb935::$prefixLengthsPsr4;
     79            $loader->prefixDirsPsr4 = ComposerStaticInit2d592ea170bd68f017739954122cb935::$prefixDirsPsr4;
     80            $loader->classMap = ComposerStaticInit2d592ea170bd68f017739954122cb935::$classMap;
    3381
    3482        }, null, ClassLoader::class);
  • zipmoney-payments-woocommerce/trunk/vendor/composer/installed.php

    r3383844 r3489628  
    22    'root' => array(
    33        'name' => 'zipmoney/woocommerce-zipmoneypayment-apiv2',
    4         'pretty_version' => '2.3.30',
    5         'version' => '2.3.30.0',
     4        'pretty_version' => '2.3.31',
     5        'version' => '2.3.31.0',
    66        'reference' => null,
    77        'type' => 'library',
     
    2323        ),
    2424        'zipmoney/woocommerce-zipmoneypayment-apiv2' => array(
    25             'pretty_version' => '2.3.30',
    26             'version' => '2.3.30.0',
     25            'pretty_version' => '2.3.31',
     26            'version' => '2.3.31.0',
    2727            'reference' => null,
    2828            'type' => 'library',
  • zipmoney-payments-woocommerce/trunk/zipmoney-payment-gateway.php

    r3383844 r3489628  
    77 * Give your customers the power to pay later, interest free and watch your sales grow.
    88 * Take advantage of our fast-growing customer base, proven revenue uplift, fast and simple integration.
    9  * Version:           2.3.30
     9 * Version:           2.3.31
    1010 * Author:            Zip
    1111 * Author URI:        https://www.zip.co/
     
    1515 * WC tested up to:   9.8
    1616 *
    17  * @version  2.3.30
     17 * @version  2.3.31
    1818 * @package  Zip
    1919 * @author   Zip
     
    134134    if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
    135135        \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
     136        \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'cart_checkout_blocks', __FILE__, true );
    136137    }
    137138} );
Note: See TracChangeset for help on using the changeset viewer.