Plugin Directory

Changeset 3102572


Ignore:
Timestamp:
06/14/2024 05:55:34 AM (22 months ago)
Author:
tripleatechnology
Message:

RELEASE | 2.0.16 | ADD: Order currency now visible in payment form

Location:
triplea-cryptocurrency-payment-gateway-for-woocommerce
Files:
6 edited
1 copied

Legend:

Unmodified
Added
Removed
  • triplea-cryptocurrency-payment-gateway-for-woocommerce/tags/2.0.16/assets/js/checkout.js

    r3076941 r3102572  
    11(function ($) {
    2 
    32    "use strict";
    43
    5     let selector = '.wc_payment_method.payment_method_triplea_payment_gateway';
     4    let selector = ".wc_payment_method.payment_method_triplea_payment_gateway";
    65
    76    // GET  -> triplea_ajax_action(url, callback, "GET", null)
    87    // POST -> triplea_ajax_action(url, callback, "POST", data)
    9     window.triplea_ajax_action = function (url, callback, _method, _data, sendJSON = true) {
    10         let xmlhttp                = new XMLHttpRequest();
     8    window.triplea_ajax_action = function (
     9        url,
     10        callback,
     11        _method,
     12        _data,
     13        sendJSON = true
     14    ) {
     15        let xmlhttp = new XMLHttpRequest();
    1116        xmlhttp.onreadystatechange = function () {
    1217            if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
     
    1419                    var data = JSON.parse(xmlhttp.responseText);
    1520                } catch (err) {
    16                     console.warn(err.message + " in " + xmlhttp.responseText, err);
     21                    console.warn(
     22                        err.message + " in " + xmlhttp.responseText,
     23                        err
     24                    );
    1725                    return;
    1826                }
     
    2230        xmlhttp.open(_method, url, true);
    2331        if (!sendJSON) {
    24             xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
     32            xmlhttp.setRequestHeader(
     33                "Content-Type",
     34                "application/x-www-form-urlencoded;charset=UTF-8"
     35            );
    2536        }
    2637        xmlhttp.send(_data);
    27     }
     38    };
    2839
    2940    window.triplea_getPaymentFormData = function () {
    30         const ajaxUrlNode = document.getElementById('triplea-payment-gateway-payment-form-request-ajax-url');
    31         const ajaxUrl     = ajaxUrlNode
    32         ? ajaxUrlNode.getAttribute('data-value')
    33         : null;
     41        const ajaxUrlNode = document.getElementById(
     42            "triplea-payment-gateway-payment-form-request-ajax-url"
     43        );
     44        const ajaxUrl = ajaxUrlNode
     45            ? ajaxUrlNode.getAttribute("data-value")
     46            : null;
    3447
    3548        if (!ajaxUrl) {
    36             console.warn('missing ajax url for payment form data request');
    37             $('#triplea_embedded_payment_form_btn').show();
    38             $('#triplea_embedded_payment_form_loading_txt').hide();
     49            console.warn("missing ajax url for payment form data request");
     50            $("#triplea_embedded_payment_form_btn").show();
     51            $("#triplea_embedded_payment_form_loading_txt").hide();
    3952            return;
    4053        }
    4154
    42         const url    = ajaxUrl;
    43         const method = 'POST';
    44         let data = $(selector).closest('form').serialize();
    45         triplea_ajax_action(url, triplea_getPaymentFormDataCallback, method, data, false);
    46     }
     55        const url = ajaxUrl;
     56        const method = "POST";
     57        let data = $(selector).closest("form").serialize();
     58        triplea_ajax_action(
     59            url,
     60            triplea_getPaymentFormDataCallback,
     61            method,
     62            data,
     63            false
     64        );
     65    };
    4766
    4867    window.triplea_getPaymentFormDataCallback = function (response) {
    4968        if (response.data && response.success === false) {
    50             var messageItems = response.data.messages.map(function (message) {
    51                 return '<li>' + message + '</li>';
    52             }).join('');
    53 
    54             showError('<ul class="woocommerce-error" role="alert">' + messageItems + '</ul>', selector);
    55             $('#triplea_embedded_payment_form_btn').show();
    56             $('#triplea_embedded_payment_form_loading_txt').hide();
     69            var messageItems = response.data.messages
     70                .map(function (message) {
     71                    return "<li>" + message + "</li>";
     72                })
     73                .join("");
     74
     75            showError(
     76                '<ul class="woocommerce-error" role="alert">' +
     77                    messageItems +
     78                    "</ul>",
     79                selector
     80            );
     81            $("#triplea_embedded_payment_form_btn").show();
     82            $("#triplea_embedded_payment_form_loading_txt").hide();
    5783            return null;
    58         } else if (response.result && response.result === 'failure' && response.messages && typeof response.messages === "string") {
     84        } else if (
     85            response.result &&
     86            response.result === "failure" &&
     87            response.messages &&
     88            typeof response.messages === "string"
     89        ) {
    5990            showError(response.messages, selector);
    60             $('#triplea_embedded_payment_form_btn').show();
    61             $('#triplea_embedded_payment_form_loading_txt').hide();
     91            $("#triplea_embedded_payment_form_btn").show();
     92            $("#triplea_embedded_payment_form_loading_txt").hide();
    6293            return null;
    6394        }
    6495
    65         if (!response || !response.status || response.status !== 'ok') {
    66             console.warn('error occured when requesting payment form data');
    67             $('#triplea_embedded_payment_form_btn').show();
    68             $('#triplea_embedded_payment_form_loading_txt').hide();
     96        if (!response || !response.status || response.status !== "ok") {
     97            console.warn("error occured when requesting payment form data");
     98            $("#triplea_embedded_payment_form_btn").show();
     99            $("#triplea_embedded_payment_form_loading_txt").hide();
    69100            return null;
    70101        }
    71102
    72         $('#triplea_embedded_payment_form_btn').hide();
    73         $('#triplea_embedded_payment_form_loading_txt').hide();
     103        $("#triplea_embedded_payment_form_btn").hide();
     104        $("#triplea_embedded_payment_form_loading_txt").hide();
    74105
    75106        triplea_freeze_checkout_form();
    76107
    77         triplea_createHiddenInputData('triplea_order_txid', response.order_txid);
    78         triplea_createHiddenInputData('triplea_embedded_payment_form_url', response.url);
    79         triplea_createHiddenInputData('triplea_payment_reference', response.payment_reference);
    80         triplea_createHiddenInputData('triplea_access_token', response.access_token);
     108        triplea_createHiddenInputData(
     109            "triplea_order_txid",
     110            response.order_txid
     111        );
     112        triplea_createHiddenInputData(
     113            "triplea_embedded_payment_form_url",
     114            response.url
     115        );
     116        triplea_createHiddenInputData(
     117            "triplea_payment_reference",
     118            response.payment_reference
     119        );
     120        triplea_createHiddenInputData(
     121            "triplea_access_token",
     122            response.access_token
     123        );
    81124
    82125        triplea_displayEmbeddedPaymentForm();
    83     }
     126    };
    84127
    85128    window.triplea_displayEmbeddedPaymentForm = function () {
    86         const iframeUrlNode = document.getElementById('triplea_embedded_payment_form_url');
     129        const iframeUrlNode = document.getElementById(
     130            "triplea_embedded_payment_form_url"
     131        );
    87132        if (!iframeUrlNode || !iframeUrlNode.value) {
    88133            return;
    89134        }
    90135
    91         const btnNode         = document.getElementById('triplea_embedded_payment_form_btn');
    92         btnNode.style.display = 'none';
     136        const btnNode = document.getElementById(
     137            "triplea_embedded_payment_form_btn"
     138        );
     139        btnNode.style.display = "none";
    93140
    94141        let iframeUrl = iframeUrlNode.value;
    95         if (iframeUrl.indexOf('?') > 0) {
    96             iframeUrl += '&order_details=hide&order_currency=hide';
     142
     143        //display the order currency in the payment form
     144        if (iframeUrl.indexOf("?") > 0) {
     145            //iframeUrl += '&order_details=hide&order_currency=hide';
     146            iframeUrl += "&order_details=hide";
    97147        } else {
    98             iframeUrl += '?order_details=hide&order_currency=hide';
     148            //iframeUrl += '?order_details=hide&order_currency=hide';
     149            iframeUrl += "?order_details=hide";
    99150        }
    100151
    101152        const iframeNode = document.createElement("iframe");
    102         iframeNode.setAttribute("id", 'triplea_embedded_payment_form_iframe');
    103         iframeNode.setAttribute("name", 'triplea_embedded_payment_form_iframe');
    104         iframeNode.setAttribute("scrolling", 'no');
    105         iframeNode.style.width     = '100%';
    106         iframeNode.style.maxWidth  = '100%';
    107         iframeNode.style.height    = '400px';
    108         iframeNode.style.overflowY = 'hidden !important';
    109         iframeNode.style.overflowX = 'hidden !important';
    110         iframeNode.style.overflow  = 'hidden';
    111         iframeNode.style.border    = 'none';
    112         iframeNode.style.margin    = '30px 0';
     153        iframeNode.setAttribute("id", "triplea_embedded_payment_form_iframe");
     154        iframeNode.setAttribute("name", "triplea_embedded_payment_form_iframe");
     155        iframeNode.setAttribute("scrolling", "no");
     156        iframeNode.style.width = "100%";
     157        iframeNode.style.maxWidth = "100%";
     158        iframeNode.style.height = "400px";
     159        iframeNode.style.overflowY = "hidden !important";
     160        iframeNode.style.overflowX = "hidden !important";
     161        iframeNode.style.overflow = "hidden";
     162        iframeNode.style.border = "none";
     163        iframeNode.style.margin = "30px 0";
    113164
    114165        iframeNode.src = iframeUrl;
    115166
    116167        // Find the node after which to insert the iframe embedded payment form.
    117         let insertionNode = document.getElementById('triplea_embedded_payment_form_btn');
     168        let insertionNode = document.getElementById(
     169            "triplea_embedded_payment_form_btn"
     170        );
    118171        insertionNode.parentNode.insertBefore(iframeNode, btnNode);
    119         window.addEventListener('beforeunload', function (e) {
    120 
     172        window.addEventListener("beforeunload", function (e) {
    121173            var message = "Are you sure you want to leave?";
    122174            e.returnValue = message;
     
    124176        });
    125177        (function () {
    126             window.addEventListener('message', event => {
    127                 //console.debug('message received:', event.data);
    128                 let iframe = document.getElementById("triplea_embedded_payment_form_iframe");
    129                 if (typeof event.data === 'string') {
    130                     const response = event.data.split("|");
    131                     if (!iframe) {
    132                         console.warn('Cannot catch iframe event, iframe node issue');
    133                     } else if (response[0] === 'triplea.frameResized') {
    134                         // if (parseInt(response[1]) > 400) {
    135                         iframe.style.height = response[1] + 'px';
    136                         // }
    137                     } else if (response[0] === 'triplea.paymentTooLittle') {
    138                         // console.debug('Catching ' + response[0] + ' event');
    139                     } else if (response[0] === 'triplea.paymentSuccess') {
    140                         // console.debug('Catching ' + response[0] + ' event');
    141                         triplea_submitForm();
     178            window.addEventListener(
     179                "message",
     180                (event) => {
     181                    //console.debug('message received:', event.data);
     182                    let iframe = document.getElementById(
     183                        "triplea_embedded_payment_form_iframe"
     184                    );
     185                    if (typeof event.data === "string") {
     186                        const response = event.data.split("|");
     187                        if (!iframe) {
     188                            console.warn(
     189                                "Cannot catch iframe event, iframe node issue"
     190                            );
     191                        } else if (response[0] === "triplea.frameResized") {
     192                            // if (parseInt(response[1]) > 400) {
     193                            iframe.style.height = response[1] + "px";
     194                            // }
     195                        } else if (response[0] === "triplea.paymentTooLittle") {
     196                            // console.debug('Catching ' + response[0] + ' event');
     197                        } else if (response[0] === "triplea.paymentSuccess") {
     198                            // console.debug('Catching ' + response[0] + ' event');
     199                            triplea_submitForm();
     200                        } else if (response[0] === "triplea.formExpired") {
     201                            // console.debug('Catching ' + response[0] + ' event');
     202                            triplea_displayBackupPlaceOrderBtn();
     203                        }
    142204                    }
    143                     else if (response[0] === 'triplea.formExpired') {
    144                         // console.debug('Catching ' + response[0] + ' event');
    145                         triplea_displayBackupPlaceOrderBtn();
    146                     }
    147                 }
    148             }, false);
     205                },
     206                false
     207            );
    149208        })();
    150     }
     209    };
    151210
    152211    window.triplea_displayBackupPlaceOrderBtn = function () {
    153 
    154212        // Display a "Place order anyway" button and some text under it.
    155         if (document.getElementById('triplea_place_order_form_expired_btn')) {
     213        if (document.getElementById("triplea_place_order_form_expired_btn")) {
    156214            return;
    157215        }
    158216
    159         const iframeNode = document.getElementById('triplea_embedded_payment_form_iframe');
    160 
    161         iframeNode.insertAdjacentHTML("afterend",
    162         '<p style="text-align: center;padding: 10px 5px 15px;font-size: 90%;">It will be updated automatically once payment is detected.</p>'
    163         );
    164         iframeNode.insertAdjacentHTML("afterend",
    165         '<button id="triplea_place_order_form_expired_btn" onclick="triplea_submitForm()" type="button" class="button alt" style="margin: 0 auto;display: block;">Place order anyway</button>'
    166         );
    167         iframeNode.insertAdjacentHTML("afterend",
    168         '<p style="text-align: center;padding: 25px 5px 15px;">Did the form not detect your payment in time?</p>'
    169         );
    170     }
     217        const iframeNode = document.getElementById(
     218            "triplea_embedded_payment_form_iframe"
     219        );
     220
     221        iframeNode.insertAdjacentHTML(
     222            "afterend",
     223            '<p style="text-align: center;padding: 10px 5px 15px;font-size: 90%;">It will be updated automatically once payment is detected.</p>'
     224        );
     225        iframeNode.insertAdjacentHTML(
     226            "afterend",
     227            '<button id="triplea_place_order_form_expired_btn" onclick="triplea_submitForm()" type="button" class="button alt" style="margin: 0 auto;display: block;">Place order anyway</button>'
     228        );
     229        iframeNode.insertAdjacentHTML(
     230            "afterend",
     231            '<p style="text-align: center;padding: 25px 5px 15px;">Did the form not detect your payment in time?</p>'
     232        );
     233    };
    171234
    172235    window.triplea_submitForm = function (delay = 1500) {
    173         $('#place_order').css('opacity', 1.0);
    174         $('#place_order').css('visibility', 'initial');
     236        $("#place_order").css("opacity", 1.0);
     237        $("#place_order").css("visibility", "initial");
    175238        const timer = setTimeout(function () {
    176             let submitBtn = document.getElementById('place_order');
     239            let submitBtn = document.getElementById("place_order");
    177240            if (submitBtn) {
    178241                submitBtn.click();
    179242            } else {
    180                 console.warn('Missing submit button. Could not submit form to place order.');
     243                console.warn(
     244                    "Missing submit button. Could not submit form to place order."
     245                );
    181246            }
    182247        }, delay);
    183     }
     248    };
    184249
    185250    window.triplea_createHiddenInputData = function (inputId, inputValue) {
     
    188253        if (!!document.getElementById(inputId)) {
    189254            // Update hidden input element with id and value
    190             hiddenInput       = document.getElementById(inputId);
     255            hiddenInput = document.getElementById(inputId);
    191256            hiddenInput.value = inputValue;
    192257        } else {
     
    199264
    200265            // Find checkout form, append input to the form
    201             let checkoutForm = document.getElementsByClassName('checkout woocommerce-checkout')['checkout'];
     266            let checkoutForm = document.getElementsByClassName(
     267                "checkout woocommerce-checkout"
     268            )["checkout"];
    202269            checkoutForm.appendChild(hiddenInput);
    203270        }
    204     }
     271    };
    205272
    206273    function orderpay_checkout(response) {
     
    209276
    210277    window.triplea_validateCheckout = function (elem) {
    211         $('#triplea_embedded_payment_form_btn').hide();
    212         $('#triplea_embedded_payment_form_loading_txt').show();
    213 
    214         if(elem.classList.contains('triplea-order-pay')){
    215 
    216             let url = triplea_object.ajax_url + '?action=triplea_orderpay_payment_request';
    217             let data = 'orderid=' + elem.dataset.id;
     278        $("#triplea_embedded_payment_form_btn").hide();
     279        $("#triplea_embedded_payment_form_loading_txt").show();
     280
     281        if (elem.classList.contains("triplea-order-pay")) {
     282            let url =
     283                triplea_object.ajax_url +
     284                "?action=triplea_orderpay_payment_request";
     285            let data = "orderid=" + elem.dataset.id;
    218286
    219287            var xmlHttp = new XMLHttpRequest();
    220             xmlHttp.open( "POST", url, false ); // false for synchronous request
    221             xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    222             xmlHttp.send( data );
    223 
    224             if ( xmlHttp.responseText != null ) {
     288            xmlHttp.open("POST", url, false); // false for synchronous request
     289            xmlHttp.setRequestHeader(
     290                "Content-type",
     291                "application/x-www-form-urlencoded"
     292            );
     293            xmlHttp.send(data);
     294
     295            if (xmlHttp.responseText != null) {
    225296                let iFrameUrlforOrderPay = xmlHttp.responseText;
    226297                let hiddenInput;
    227298
    228299                hiddenInput = document.createElement("input");
    229                 hiddenInput.setAttribute("id", 'triplea_embedded_payment_form_url');
    230                 hiddenInput.setAttribute("name", 'triplea_embedded_payment_form_url');
     300                hiddenInput.setAttribute(
     301                    "id",
     302                    "triplea_embedded_payment_form_url"
     303                );
     304                hiddenInput.setAttribute(
     305                    "name",
     306                    "triplea_embedded_payment_form_url"
     307                );
    231308                hiddenInput.setAttribute("type", "hidden");
    232309                hiddenInput.value = iFrameUrlforOrderPay;
    233310
    234311                // Find checkout form, append input to the form
    235                 let orderReviewForm = document.getElementById('order_review');
     312                let orderReviewForm = document.getElementById("order_review");
    236313                orderReviewForm.appendChild(hiddenInput);
    237314                triplea_displayEmbeddedPaymentForm();
    238315            } else {
    239                 alert('Something went wrong');
     316                alert("Something went wrong");
    240317            }
    241318            return true;
    242319        }
    243320
    244         let checkoutCheckUrlNode = document.getElementById('triplea-payment-gateway-start-checkout-check-url');
     321        let checkoutCheckUrlNode = document.getElementById(
     322            "triplea-payment-gateway-start-checkout-check-url"
     323        );
    245324
    246325        if (checkoutCheckUrlNode) {
    247             let url = checkoutCheckUrlNode.getAttribute('data-value');
     326            let url = checkoutCheckUrlNode.getAttribute("data-value");
    248327            if (url) {
    249328                let callback = triplea_validateCheckoutCallback;
    250329
    251330                // Clear any errors from previous attempt.
    252                 $('.woocommerce-error', selector).remove();
    253 
    254                 let data = $(selector).closest('form').serialize();
     331                $(".woocommerce-error", selector).remove();
     332
     333                let data = $(selector).closest("form").serialize();
    255334
    256335                // Call URL
     
    261340            }
    262341        } else {
    263             console.error('Checkout validation callback URL not found.');
    264             $('#triplea_embedded_payment_form_btn').show();
    265             $('#triplea_embedded_payment_form_loading_txt').hide();
    266         }
    267     }
    268     function triplea_freeze_checkout_form(){
    269         var billingFieldsDiv = document.querySelector('.woocommerce-billing-fields');
     342            console.error("Checkout validation callback URL not found.");
     343            $("#triplea_embedded_payment_form_btn").show();
     344            $("#triplea_embedded_payment_form_loading_txt").hide();
     345        }
     346    };
     347    function triplea_freeze_checkout_form() {
     348        var billingFieldsDiv = document.querySelector(
     349            ".woocommerce-billing-fields"
     350        );
    270351
    271352        // Apply the blur effect using inline styles
    272         billingFieldsDiv.style.webkitFilter = 'blur(5px)';
    273         billingFieldsDiv.style.mozFilter = 'blur(5px)';
    274         billingFieldsDiv.style.oFilter = 'blur(5px)';
    275         billingFieldsDiv.style.msFilter = 'blur(5px)';
    276         billingFieldsDiv.style.filter = 'blur(1px)';
    277         billingFieldsDiv.style.pointerEvents = 'none';
    278         billingFieldsDiv.style.position = 'relative';
    279 
     353        billingFieldsDiv.style.webkitFilter = "blur(5px)";
     354        billingFieldsDiv.style.mozFilter = "blur(5px)";
     355        billingFieldsDiv.style.oFilter = "blur(5px)";
     356        billingFieldsDiv.style.msFilter = "blur(5px)";
     357        billingFieldsDiv.style.filter = "blur(1px)";
     358        billingFieldsDiv.style.pointerEvents = "none";
     359        billingFieldsDiv.style.position = "relative";
    280360    }
    281361    function triplea_validateCheckoutCallback(response) {
    282         if (response.data.messages && response.data.messages.error && response.data.messages.error.length > 0) {
    283 
    284             let messageItems = response.data.messages.error.map(function (message) {
    285                 return '<li>' + message.notice + '</li>';
    286             }).join('');
    287 
    288             showError('<ul class="woocommerce-error" role="alert">' + messageItems + '</ul>', selector);
    289             $('#triplea_embedded_payment_form_btn').show();
    290             $('#triplea_embedded_payment_form_loading_txt').hide();
     362        if (
     363            response.data.messages &&
     364            response.data.messages.error &&
     365            response.data.messages.error.length > 0
     366        ) {
     367            let messageItems = response.data.messages.error
     368                .map(function (message) {
     369                    return "<li>" + message.notice + "</li>";
     370                })
     371                .join("");
     372
     373            showError(
     374                '<ul class="woocommerce-error" role="alert">' +
     375                    messageItems +
     376                    "</ul>",
     377                selector
     378            );
     379            $("#triplea_embedded_payment_form_btn").show();
     380            $("#triplea_embedded_payment_form_loading_txt").hide();
    291381            return null;
    292 
    293382        }
    294383        if (response.data && response.success === false) {
    295             let messageItems = response.data.messages.map(function (message) {
    296                 return '<li>' + message + '</li>';
    297             }).join('');
    298 
    299             showError('<ul class="woocommerce-error" role="alert">' + messageItems + '</ul>', selector);
    300             $('#triplea_embedded_payment_form_btn').show();
    301             $('#triplea_embedded_payment_form_loading_txt').hide();
     384            let messageItems = response.data.messages
     385                .map(function (message) {
     386                    return "<li>" + message + "</li>";
     387                })
     388                .join("");
     389
     390            showError(
     391                '<ul class="woocommerce-error" role="alert">' +
     392                    messageItems +
     393                    "</ul>",
     394                selector
     395            );
     396            $("#triplea_embedded_payment_form_btn").show();
     397            $("#triplea_embedded_payment_form_loading_txt").hide();
    302398            return null;
    303         } else if (response.result && response.result === 'failure' && response.messages && typeof response.messages === "string") {
     399        } else if (
     400            response.result &&
     401            response.result === "failure" &&
     402            response.messages &&
     403            typeof response.messages === "string"
     404        ) {
    304405            showError(response.messages, selector);
    305             $('#triplea_embedded_payment_form_btn').show();
    306             $('#triplea_embedded_payment_form_loading_txt').hide();
     406            $("#triplea_embedded_payment_form_btn").show();
     407            $("#triplea_embedded_payment_form_loading_txt").hide();
    307408            return null;
    308409        }
    309410
    310411        // Clear any errors from previous attempt.
    311         $('.woocommerce-error').remove();
     412        $(".woocommerce-error").remove();
    312413
    313414        triplea_getPaymentFormData();
     
    316417    // Show error notice at top of checkout form, or else within button container
    317418    function showError(errorMessage, selector) {
    318         var $container = $('.woocommerce-notices-wrapper, form.checkout');
     419        var $container = $(".woocommerce-notices-wrapper, form.checkout");
    319420
    320421        if (!$container || !$container.length) {
     
    326427
    327428        // Adapted from https://github.com/woocommerce/woocommerce/blob/ea9aa8cd59c9fa735460abf0ebcb97fa18f80d03/assets/js/frontend/checkout.js#L514-L529
    328         $('.woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message').remove();
    329         $container.prepend('<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-checkout">' + errorMessage + '</div>');
    330         $container.find('.input-text, select, input:checkbox').trigger('validate').blur();
    331 
    332         var scrollElement = $('.woocommerce-NoticeGroup-checkout');
     429        $(
     430            ".woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message"
     431        ).remove();
     432        $container.prepend(
     433            '<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-checkout">' +
     434                errorMessage +
     435                "</div>"
     436        );
     437        $container
     438            .find(".input-text, select, input:checkbox")
     439            .trigger("validate")
     440            .blur();
     441
     442        var scrollElement = $(".woocommerce-NoticeGroup-checkout");
    333443        if (!scrollElement.length) {
    334444            scrollElement = $container;
     
    339449        } else {
    340450            // Compatibility with WC <3.3
    341             $('html, body').animate({
    342                 scrollTop: ($container.offset().top - 100)
    343             }, 1000);
    344         }
    345 
    346         $(document.body).trigger('checkout_error');
     451            $("html, body").animate(
     452                {
     453                    scrollTop: $container.offset().top - 100,
     454                },
     455                1000
     456            );
     457        }
     458
     459        $(document.body).trigger("checkout_error");
    347460    }
    348461
    349462    function paymentMethodAction() {
    350         if ($('form[name="checkout"] input[name="payment_method"]:checked').val() === 'triplea_payment_gateway'){
    351             $('#place_order').css('opacity', 0.25);
    352             $('#place_order').css('visibility', 'hidden');
    353         } else if ($('#order_review input[name="payment_method"]:checked').val() === 'triplea_payment_gateway'){
    354             $('#place_order').css('opacity', 0.25);
    355             $('#place_order').css('visibility', 'hidden');
    356         } else{
    357             $('#place_order').css('opacity', 1.0);
    358             $('#place_order').css('visibility', 'initial');
     463        if (
     464            $(
     465                'form[name="checkout"] input[name="payment_method"]:checked'
     466            ).val() === "triplea_payment_gateway"
     467        ) {
     468            $("#place_order").css("opacity", 0.25);
     469            $("#place_order").css("visibility", "hidden");
     470        } else if (
     471            $('#order_review input[name="payment_method"]:checked').val() ===
     472            "triplea_payment_gateway"
     473        ) {
     474            $("#place_order").css("opacity", 0.25);
     475            $("#place_order").css("visibility", "hidden");
     476        } else {
     477            $("#place_order").css("opacity", 1.0);
     478            $("#place_order").css("visibility", "initial");
    359479        }
    360480    }
    361481
    362482    $(document).ready(function (e) {
    363         if( $('#order_review input[name="payment_method"]:checked').val() == 'triplea_payment_gateway' ) {
     483        if (
     484            $('#order_review input[name="payment_method"]:checked').val() ==
     485            "triplea_payment_gateway"
     486        ) {
    364487            paymentMethodAction();
    365488        }
    366         $('input[name="payment_method"]').change(function(){
     489        $('input[name="payment_method"]').change(function () {
    367490            paymentMethodAction();
    368491        });
    369         $( 'body' ).on( 'updated_checkout', function() {
     492        $("body").on("updated_checkout", function () {
    370493            //console.debug('event updated_checkout !');
    371494            paymentMethodAction();
    372             $('input[name="payment_method"]').change(function(){
     495            $('input[name="payment_method"]').change(function () {
    373496                paymentMethodAction();
    374497            });
    375498        });
    376     })
    377 
     499    });
    378500})(jQuery);
  • triplea-cryptocurrency-payment-gateway-for-woocommerce/tags/2.0.16/readme.txt

    r3076963 r3102572  
    44Contributors: tripleatechnology, adnanshawkat, zamanshakir
    55Donate link: https://triple-a.io/
    6 Tags: altcoin woocommerce, bitcoin payments, bitcoin, crypto payment gateway, crypto payments
     6Tags: altcoin woocommerce, bitcoin payments, bitcoin, crypto payment gateway, Ethereum, Tether, USDT, USDC, Binance, crypto payments
    77Requires at least: 5.5
    8 Tested up to: 6.5.1
    9 Stable tag: 2.0.15
     8Tested up to: 6.5.4
     9Stable tag: 2.0.16
    1010Requires PHP: 7.0
    1111License: GPLv2 or later
     
    109109== Changelog ==
    110110
     111= 2.0.16 =
     112Fixed: Order currency is now visible in the payment form
     113
    111114= 2.0.15 =
    112115Fixed: Checkout page leave confirmation after requesting for payment form
     
    299302== Upgrade Notice ==
    300303
    301 = 2.0.14 =
     304= 2.0.16 =
     305Simply install the update. No further action is needed.
     306
     307= 2.0.15 =
    302308Simply install the update. No further action is needed.
    303309
  • triplea-cryptocurrency-payment-gateway-for-woocommerce/tags/2.0.16/triplea-cryptocurrency-payment-gateway-for-woocommerce.php

    r3076941 r3102572  
    1717 * Plugin URI:        https://wordpress.org/plugins/triplea-cryptocurrency-payment-gateway-for-woocommerce/
    1818 * Description:       Offer cryptocurrency as a payment option on your website and get access to even more clients. Receive payments in cryptocurrency or in your local currency, directly in your bank account. Enjoy an easy setup, no cryptocurrency expertise required. Powered by TripleA.
    19  * Version:           2.0.15
     19 * Version:           2.0.16
    2020 * Author:            Triple-A Team
    2121 * Author URI:        https://triple-a.io
     
    5050     * $var string
    5151     */
    52     const version = '2.0.15';
     52    const version = '2.0.16';
    5353
    5454    /*
  • triplea-cryptocurrency-payment-gateway-for-woocommerce/trunk/assets/js/checkout.js

    r3076941 r3102572  
    11(function ($) {
    2 
    32    "use strict";
    43
    5     let selector = '.wc_payment_method.payment_method_triplea_payment_gateway';
     4    let selector = ".wc_payment_method.payment_method_triplea_payment_gateway";
    65
    76    // GET  -> triplea_ajax_action(url, callback, "GET", null)
    87    // POST -> triplea_ajax_action(url, callback, "POST", data)
    9     window.triplea_ajax_action = function (url, callback, _method, _data, sendJSON = true) {
    10         let xmlhttp                = new XMLHttpRequest();
     8    window.triplea_ajax_action = function (
     9        url,
     10        callback,
     11        _method,
     12        _data,
     13        sendJSON = true
     14    ) {
     15        let xmlhttp = new XMLHttpRequest();
    1116        xmlhttp.onreadystatechange = function () {
    1217            if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
     
    1419                    var data = JSON.parse(xmlhttp.responseText);
    1520                } catch (err) {
    16                     console.warn(err.message + " in " + xmlhttp.responseText, err);
     21                    console.warn(
     22                        err.message + " in " + xmlhttp.responseText,
     23                        err
     24                    );
    1725                    return;
    1826                }
     
    2230        xmlhttp.open(_method, url, true);
    2331        if (!sendJSON) {
    24             xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
     32            xmlhttp.setRequestHeader(
     33                "Content-Type",
     34                "application/x-www-form-urlencoded;charset=UTF-8"
     35            );
    2536        }
    2637        xmlhttp.send(_data);
    27     }
     38    };
    2839
    2940    window.triplea_getPaymentFormData = function () {
    30         const ajaxUrlNode = document.getElementById('triplea-payment-gateway-payment-form-request-ajax-url');
    31         const ajaxUrl     = ajaxUrlNode
    32         ? ajaxUrlNode.getAttribute('data-value')
    33         : null;
     41        const ajaxUrlNode = document.getElementById(
     42            "triplea-payment-gateway-payment-form-request-ajax-url"
     43        );
     44        const ajaxUrl = ajaxUrlNode
     45            ? ajaxUrlNode.getAttribute("data-value")
     46            : null;
    3447
    3548        if (!ajaxUrl) {
    36             console.warn('missing ajax url for payment form data request');
    37             $('#triplea_embedded_payment_form_btn').show();
    38             $('#triplea_embedded_payment_form_loading_txt').hide();
     49            console.warn("missing ajax url for payment form data request");
     50            $("#triplea_embedded_payment_form_btn").show();
     51            $("#triplea_embedded_payment_form_loading_txt").hide();
    3952            return;
    4053        }
    4154
    42         const url    = ajaxUrl;
    43         const method = 'POST';
    44         let data = $(selector).closest('form').serialize();
    45         triplea_ajax_action(url, triplea_getPaymentFormDataCallback, method, data, false);
    46     }
     55        const url = ajaxUrl;
     56        const method = "POST";
     57        let data = $(selector).closest("form").serialize();
     58        triplea_ajax_action(
     59            url,
     60            triplea_getPaymentFormDataCallback,
     61            method,
     62            data,
     63            false
     64        );
     65    };
    4766
    4867    window.triplea_getPaymentFormDataCallback = function (response) {
    4968        if (response.data && response.success === false) {
    50             var messageItems = response.data.messages.map(function (message) {
    51                 return '<li>' + message + '</li>';
    52             }).join('');
    53 
    54             showError('<ul class="woocommerce-error" role="alert">' + messageItems + '</ul>', selector);
    55             $('#triplea_embedded_payment_form_btn').show();
    56             $('#triplea_embedded_payment_form_loading_txt').hide();
     69            var messageItems = response.data.messages
     70                .map(function (message) {
     71                    return "<li>" + message + "</li>";
     72                })
     73                .join("");
     74
     75            showError(
     76                '<ul class="woocommerce-error" role="alert">' +
     77                    messageItems +
     78                    "</ul>",
     79                selector
     80            );
     81            $("#triplea_embedded_payment_form_btn").show();
     82            $("#triplea_embedded_payment_form_loading_txt").hide();
    5783            return null;
    58         } else if (response.result && response.result === 'failure' && response.messages && typeof response.messages === "string") {
     84        } else if (
     85            response.result &&
     86            response.result === "failure" &&
     87            response.messages &&
     88            typeof response.messages === "string"
     89        ) {
    5990            showError(response.messages, selector);
    60             $('#triplea_embedded_payment_form_btn').show();
    61             $('#triplea_embedded_payment_form_loading_txt').hide();
     91            $("#triplea_embedded_payment_form_btn").show();
     92            $("#triplea_embedded_payment_form_loading_txt").hide();
    6293            return null;
    6394        }
    6495
    65         if (!response || !response.status || response.status !== 'ok') {
    66             console.warn('error occured when requesting payment form data');
    67             $('#triplea_embedded_payment_form_btn').show();
    68             $('#triplea_embedded_payment_form_loading_txt').hide();
     96        if (!response || !response.status || response.status !== "ok") {
     97            console.warn("error occured when requesting payment form data");
     98            $("#triplea_embedded_payment_form_btn").show();
     99            $("#triplea_embedded_payment_form_loading_txt").hide();
    69100            return null;
    70101        }
    71102
    72         $('#triplea_embedded_payment_form_btn').hide();
    73         $('#triplea_embedded_payment_form_loading_txt').hide();
     103        $("#triplea_embedded_payment_form_btn").hide();
     104        $("#triplea_embedded_payment_form_loading_txt").hide();
    74105
    75106        triplea_freeze_checkout_form();
    76107
    77         triplea_createHiddenInputData('triplea_order_txid', response.order_txid);
    78         triplea_createHiddenInputData('triplea_embedded_payment_form_url', response.url);
    79         triplea_createHiddenInputData('triplea_payment_reference', response.payment_reference);
    80         triplea_createHiddenInputData('triplea_access_token', response.access_token);
     108        triplea_createHiddenInputData(
     109            "triplea_order_txid",
     110            response.order_txid
     111        );
     112        triplea_createHiddenInputData(
     113            "triplea_embedded_payment_form_url",
     114            response.url
     115        );
     116        triplea_createHiddenInputData(
     117            "triplea_payment_reference",
     118            response.payment_reference
     119        );
     120        triplea_createHiddenInputData(
     121            "triplea_access_token",
     122            response.access_token
     123        );
    81124
    82125        triplea_displayEmbeddedPaymentForm();
    83     }
     126    };
    84127
    85128    window.triplea_displayEmbeddedPaymentForm = function () {
    86         const iframeUrlNode = document.getElementById('triplea_embedded_payment_form_url');
     129        const iframeUrlNode = document.getElementById(
     130            "triplea_embedded_payment_form_url"
     131        );
    87132        if (!iframeUrlNode || !iframeUrlNode.value) {
    88133            return;
    89134        }
    90135
    91         const btnNode         = document.getElementById('triplea_embedded_payment_form_btn');
    92         btnNode.style.display = 'none';
     136        const btnNode = document.getElementById(
     137            "triplea_embedded_payment_form_btn"
     138        );
     139        btnNode.style.display = "none";
    93140
    94141        let iframeUrl = iframeUrlNode.value;
    95         if (iframeUrl.indexOf('?') > 0) {
    96             iframeUrl += '&order_details=hide&order_currency=hide';
     142
     143        //display the order currency in the payment form
     144        if (iframeUrl.indexOf("?") > 0) {
     145            //iframeUrl += '&order_details=hide&order_currency=hide';
     146            iframeUrl += "&order_details=hide";
    97147        } else {
    98             iframeUrl += '?order_details=hide&order_currency=hide';
     148            //iframeUrl += '?order_details=hide&order_currency=hide';
     149            iframeUrl += "?order_details=hide";
    99150        }
    100151
    101152        const iframeNode = document.createElement("iframe");
    102         iframeNode.setAttribute("id", 'triplea_embedded_payment_form_iframe');
    103         iframeNode.setAttribute("name", 'triplea_embedded_payment_form_iframe');
    104         iframeNode.setAttribute("scrolling", 'no');
    105         iframeNode.style.width     = '100%';
    106         iframeNode.style.maxWidth  = '100%';
    107         iframeNode.style.height    = '400px';
    108         iframeNode.style.overflowY = 'hidden !important';
    109         iframeNode.style.overflowX = 'hidden !important';
    110         iframeNode.style.overflow  = 'hidden';
    111         iframeNode.style.border    = 'none';
    112         iframeNode.style.margin    = '30px 0';
     153        iframeNode.setAttribute("id", "triplea_embedded_payment_form_iframe");
     154        iframeNode.setAttribute("name", "triplea_embedded_payment_form_iframe");
     155        iframeNode.setAttribute("scrolling", "no");
     156        iframeNode.style.width = "100%";
     157        iframeNode.style.maxWidth = "100%";
     158        iframeNode.style.height = "400px";
     159        iframeNode.style.overflowY = "hidden !important";
     160        iframeNode.style.overflowX = "hidden !important";
     161        iframeNode.style.overflow = "hidden";
     162        iframeNode.style.border = "none";
     163        iframeNode.style.margin = "30px 0";
    113164
    114165        iframeNode.src = iframeUrl;
    115166
    116167        // Find the node after which to insert the iframe embedded payment form.
    117         let insertionNode = document.getElementById('triplea_embedded_payment_form_btn');
     168        let insertionNode = document.getElementById(
     169            "triplea_embedded_payment_form_btn"
     170        );
    118171        insertionNode.parentNode.insertBefore(iframeNode, btnNode);
    119         window.addEventListener('beforeunload', function (e) {
    120 
     172        window.addEventListener("beforeunload", function (e) {
    121173            var message = "Are you sure you want to leave?";
    122174            e.returnValue = message;
     
    124176        });
    125177        (function () {
    126             window.addEventListener('message', event => {
    127                 //console.debug('message received:', event.data);
    128                 let iframe = document.getElementById("triplea_embedded_payment_form_iframe");
    129                 if (typeof event.data === 'string') {
    130                     const response = event.data.split("|");
    131                     if (!iframe) {
    132                         console.warn('Cannot catch iframe event, iframe node issue');
    133                     } else if (response[0] === 'triplea.frameResized') {
    134                         // if (parseInt(response[1]) > 400) {
    135                         iframe.style.height = response[1] + 'px';
    136                         // }
    137                     } else if (response[0] === 'triplea.paymentTooLittle') {
    138                         // console.debug('Catching ' + response[0] + ' event');
    139                     } else if (response[0] === 'triplea.paymentSuccess') {
    140                         // console.debug('Catching ' + response[0] + ' event');
    141                         triplea_submitForm();
     178            window.addEventListener(
     179                "message",
     180                (event) => {
     181                    //console.debug('message received:', event.data);
     182                    let iframe = document.getElementById(
     183                        "triplea_embedded_payment_form_iframe"
     184                    );
     185                    if (typeof event.data === "string") {
     186                        const response = event.data.split("|");
     187                        if (!iframe) {
     188                            console.warn(
     189                                "Cannot catch iframe event, iframe node issue"
     190                            );
     191                        } else if (response[0] === "triplea.frameResized") {
     192                            // if (parseInt(response[1]) > 400) {
     193                            iframe.style.height = response[1] + "px";
     194                            // }
     195                        } else if (response[0] === "triplea.paymentTooLittle") {
     196                            // console.debug('Catching ' + response[0] + ' event');
     197                        } else if (response[0] === "triplea.paymentSuccess") {
     198                            // console.debug('Catching ' + response[0] + ' event');
     199                            triplea_submitForm();
     200                        } else if (response[0] === "triplea.formExpired") {
     201                            // console.debug('Catching ' + response[0] + ' event');
     202                            triplea_displayBackupPlaceOrderBtn();
     203                        }
    142204                    }
    143                     else if (response[0] === 'triplea.formExpired') {
    144                         // console.debug('Catching ' + response[0] + ' event');
    145                         triplea_displayBackupPlaceOrderBtn();
    146                     }
    147                 }
    148             }, false);
     205                },
     206                false
     207            );
    149208        })();
    150     }
     209    };
    151210
    152211    window.triplea_displayBackupPlaceOrderBtn = function () {
    153 
    154212        // Display a "Place order anyway" button and some text under it.
    155         if (document.getElementById('triplea_place_order_form_expired_btn')) {
     213        if (document.getElementById("triplea_place_order_form_expired_btn")) {
    156214            return;
    157215        }
    158216
    159         const iframeNode = document.getElementById('triplea_embedded_payment_form_iframe');
    160 
    161         iframeNode.insertAdjacentHTML("afterend",
    162         '<p style="text-align: center;padding: 10px 5px 15px;font-size: 90%;">It will be updated automatically once payment is detected.</p>'
    163         );
    164         iframeNode.insertAdjacentHTML("afterend",
    165         '<button id="triplea_place_order_form_expired_btn" onclick="triplea_submitForm()" type="button" class="button alt" style="margin: 0 auto;display: block;">Place order anyway</button>'
    166         );
    167         iframeNode.insertAdjacentHTML("afterend",
    168         '<p style="text-align: center;padding: 25px 5px 15px;">Did the form not detect your payment in time?</p>'
    169         );
    170     }
     217        const iframeNode = document.getElementById(
     218            "triplea_embedded_payment_form_iframe"
     219        );
     220
     221        iframeNode.insertAdjacentHTML(
     222            "afterend",
     223            '<p style="text-align: center;padding: 10px 5px 15px;font-size: 90%;">It will be updated automatically once payment is detected.</p>'
     224        );
     225        iframeNode.insertAdjacentHTML(
     226            "afterend",
     227            '<button id="triplea_place_order_form_expired_btn" onclick="triplea_submitForm()" type="button" class="button alt" style="margin: 0 auto;display: block;">Place order anyway</button>'
     228        );
     229        iframeNode.insertAdjacentHTML(
     230            "afterend",
     231            '<p style="text-align: center;padding: 25px 5px 15px;">Did the form not detect your payment in time?</p>'
     232        );
     233    };
    171234
    172235    window.triplea_submitForm = function (delay = 1500) {
    173         $('#place_order').css('opacity', 1.0);
    174         $('#place_order').css('visibility', 'initial');
     236        $("#place_order").css("opacity", 1.0);
     237        $("#place_order").css("visibility", "initial");
    175238        const timer = setTimeout(function () {
    176             let submitBtn = document.getElementById('place_order');
     239            let submitBtn = document.getElementById("place_order");
    177240            if (submitBtn) {
    178241                submitBtn.click();
    179242            } else {
    180                 console.warn('Missing submit button. Could not submit form to place order.');
     243                console.warn(
     244                    "Missing submit button. Could not submit form to place order."
     245                );
    181246            }
    182247        }, delay);
    183     }
     248    };
    184249
    185250    window.triplea_createHiddenInputData = function (inputId, inputValue) {
     
    188253        if (!!document.getElementById(inputId)) {
    189254            // Update hidden input element with id and value
    190             hiddenInput       = document.getElementById(inputId);
     255            hiddenInput = document.getElementById(inputId);
    191256            hiddenInput.value = inputValue;
    192257        } else {
     
    199264
    200265            // Find checkout form, append input to the form
    201             let checkoutForm = document.getElementsByClassName('checkout woocommerce-checkout')['checkout'];
     266            let checkoutForm = document.getElementsByClassName(
     267                "checkout woocommerce-checkout"
     268            )["checkout"];
    202269            checkoutForm.appendChild(hiddenInput);
    203270        }
    204     }
     271    };
    205272
    206273    function orderpay_checkout(response) {
     
    209276
    210277    window.triplea_validateCheckout = function (elem) {
    211         $('#triplea_embedded_payment_form_btn').hide();
    212         $('#triplea_embedded_payment_form_loading_txt').show();
    213 
    214         if(elem.classList.contains('triplea-order-pay')){
    215 
    216             let url = triplea_object.ajax_url + '?action=triplea_orderpay_payment_request';
    217             let data = 'orderid=' + elem.dataset.id;
     278        $("#triplea_embedded_payment_form_btn").hide();
     279        $("#triplea_embedded_payment_form_loading_txt").show();
     280
     281        if (elem.classList.contains("triplea-order-pay")) {
     282            let url =
     283                triplea_object.ajax_url +
     284                "?action=triplea_orderpay_payment_request";
     285            let data = "orderid=" + elem.dataset.id;
    218286
    219287            var xmlHttp = new XMLHttpRequest();
    220             xmlHttp.open( "POST", url, false ); // false for synchronous request
    221             xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    222             xmlHttp.send( data );
    223 
    224             if ( xmlHttp.responseText != null ) {
     288            xmlHttp.open("POST", url, false); // false for synchronous request
     289            xmlHttp.setRequestHeader(
     290                "Content-type",
     291                "application/x-www-form-urlencoded"
     292            );
     293            xmlHttp.send(data);
     294
     295            if (xmlHttp.responseText != null) {
    225296                let iFrameUrlforOrderPay = xmlHttp.responseText;
    226297                let hiddenInput;
    227298
    228299                hiddenInput = document.createElement("input");
    229                 hiddenInput.setAttribute("id", 'triplea_embedded_payment_form_url');
    230                 hiddenInput.setAttribute("name", 'triplea_embedded_payment_form_url');
     300                hiddenInput.setAttribute(
     301                    "id",
     302                    "triplea_embedded_payment_form_url"
     303                );
     304                hiddenInput.setAttribute(
     305                    "name",
     306                    "triplea_embedded_payment_form_url"
     307                );
    231308                hiddenInput.setAttribute("type", "hidden");
    232309                hiddenInput.value = iFrameUrlforOrderPay;
    233310
    234311                // Find checkout form, append input to the form
    235                 let orderReviewForm = document.getElementById('order_review');
     312                let orderReviewForm = document.getElementById("order_review");
    236313                orderReviewForm.appendChild(hiddenInput);
    237314                triplea_displayEmbeddedPaymentForm();
    238315            } else {
    239                 alert('Something went wrong');
     316                alert("Something went wrong");
    240317            }
    241318            return true;
    242319        }
    243320
    244         let checkoutCheckUrlNode = document.getElementById('triplea-payment-gateway-start-checkout-check-url');
     321        let checkoutCheckUrlNode = document.getElementById(
     322            "triplea-payment-gateway-start-checkout-check-url"
     323        );
    245324
    246325        if (checkoutCheckUrlNode) {
    247             let url = checkoutCheckUrlNode.getAttribute('data-value');
     326            let url = checkoutCheckUrlNode.getAttribute("data-value");
    248327            if (url) {
    249328                let callback = triplea_validateCheckoutCallback;
    250329
    251330                // Clear any errors from previous attempt.
    252                 $('.woocommerce-error', selector).remove();
    253 
    254                 let data = $(selector).closest('form').serialize();
     331                $(".woocommerce-error", selector).remove();
     332
     333                let data = $(selector).closest("form").serialize();
    255334
    256335                // Call URL
     
    261340            }
    262341        } else {
    263             console.error('Checkout validation callback URL not found.');
    264             $('#triplea_embedded_payment_form_btn').show();
    265             $('#triplea_embedded_payment_form_loading_txt').hide();
    266         }
    267     }
    268     function triplea_freeze_checkout_form(){
    269         var billingFieldsDiv = document.querySelector('.woocommerce-billing-fields');
     342            console.error("Checkout validation callback URL not found.");
     343            $("#triplea_embedded_payment_form_btn").show();
     344            $("#triplea_embedded_payment_form_loading_txt").hide();
     345        }
     346    };
     347    function triplea_freeze_checkout_form() {
     348        var billingFieldsDiv = document.querySelector(
     349            ".woocommerce-billing-fields"
     350        );
    270351
    271352        // Apply the blur effect using inline styles
    272         billingFieldsDiv.style.webkitFilter = 'blur(5px)';
    273         billingFieldsDiv.style.mozFilter = 'blur(5px)';
    274         billingFieldsDiv.style.oFilter = 'blur(5px)';
    275         billingFieldsDiv.style.msFilter = 'blur(5px)';
    276         billingFieldsDiv.style.filter = 'blur(1px)';
    277         billingFieldsDiv.style.pointerEvents = 'none';
    278         billingFieldsDiv.style.position = 'relative';
    279 
     353        billingFieldsDiv.style.webkitFilter = "blur(5px)";
     354        billingFieldsDiv.style.mozFilter = "blur(5px)";
     355        billingFieldsDiv.style.oFilter = "blur(5px)";
     356        billingFieldsDiv.style.msFilter = "blur(5px)";
     357        billingFieldsDiv.style.filter = "blur(1px)";
     358        billingFieldsDiv.style.pointerEvents = "none";
     359        billingFieldsDiv.style.position = "relative";
    280360    }
    281361    function triplea_validateCheckoutCallback(response) {
    282         if (response.data.messages && response.data.messages.error && response.data.messages.error.length > 0) {
    283 
    284             let messageItems = response.data.messages.error.map(function (message) {
    285                 return '<li>' + message.notice + '</li>';
    286             }).join('');
    287 
    288             showError('<ul class="woocommerce-error" role="alert">' + messageItems + '</ul>', selector);
    289             $('#triplea_embedded_payment_form_btn').show();
    290             $('#triplea_embedded_payment_form_loading_txt').hide();
     362        if (
     363            response.data.messages &&
     364            response.data.messages.error &&
     365            response.data.messages.error.length > 0
     366        ) {
     367            let messageItems = response.data.messages.error
     368                .map(function (message) {
     369                    return "<li>" + message.notice + "</li>";
     370                })
     371                .join("");
     372
     373            showError(
     374                '<ul class="woocommerce-error" role="alert">' +
     375                    messageItems +
     376                    "</ul>",
     377                selector
     378            );
     379            $("#triplea_embedded_payment_form_btn").show();
     380            $("#triplea_embedded_payment_form_loading_txt").hide();
    291381            return null;
    292 
    293382        }
    294383        if (response.data && response.success === false) {
    295             let messageItems = response.data.messages.map(function (message) {
    296                 return '<li>' + message + '</li>';
    297             }).join('');
    298 
    299             showError('<ul class="woocommerce-error" role="alert">' + messageItems + '</ul>', selector);
    300             $('#triplea_embedded_payment_form_btn').show();
    301             $('#triplea_embedded_payment_form_loading_txt').hide();
     384            let messageItems = response.data.messages
     385                .map(function (message) {
     386                    return "<li>" + message + "</li>";
     387                })
     388                .join("");
     389
     390            showError(
     391                '<ul class="woocommerce-error" role="alert">' +
     392                    messageItems +
     393                    "</ul>",
     394                selector
     395            );
     396            $("#triplea_embedded_payment_form_btn").show();
     397            $("#triplea_embedded_payment_form_loading_txt").hide();
    302398            return null;
    303         } else if (response.result && response.result === 'failure' && response.messages && typeof response.messages === "string") {
     399        } else if (
     400            response.result &&
     401            response.result === "failure" &&
     402            response.messages &&
     403            typeof response.messages === "string"
     404        ) {
    304405            showError(response.messages, selector);
    305             $('#triplea_embedded_payment_form_btn').show();
    306             $('#triplea_embedded_payment_form_loading_txt').hide();
     406            $("#triplea_embedded_payment_form_btn").show();
     407            $("#triplea_embedded_payment_form_loading_txt").hide();
    307408            return null;
    308409        }
    309410
    310411        // Clear any errors from previous attempt.
    311         $('.woocommerce-error').remove();
     412        $(".woocommerce-error").remove();
    312413
    313414        triplea_getPaymentFormData();
     
    316417    // Show error notice at top of checkout form, or else within button container
    317418    function showError(errorMessage, selector) {
    318         var $container = $('.woocommerce-notices-wrapper, form.checkout');
     419        var $container = $(".woocommerce-notices-wrapper, form.checkout");
    319420
    320421        if (!$container || !$container.length) {
     
    326427
    327428        // Adapted from https://github.com/woocommerce/woocommerce/blob/ea9aa8cd59c9fa735460abf0ebcb97fa18f80d03/assets/js/frontend/checkout.js#L514-L529
    328         $('.woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message').remove();
    329         $container.prepend('<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-checkout">' + errorMessage + '</div>');
    330         $container.find('.input-text, select, input:checkbox').trigger('validate').blur();
    331 
    332         var scrollElement = $('.woocommerce-NoticeGroup-checkout');
     429        $(
     430            ".woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message"
     431        ).remove();
     432        $container.prepend(
     433            '<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-checkout">' +
     434                errorMessage +
     435                "</div>"
     436        );
     437        $container
     438            .find(".input-text, select, input:checkbox")
     439            .trigger("validate")
     440            .blur();
     441
     442        var scrollElement = $(".woocommerce-NoticeGroup-checkout");
    333443        if (!scrollElement.length) {
    334444            scrollElement = $container;
     
    339449        } else {
    340450            // Compatibility with WC <3.3
    341             $('html, body').animate({
    342                 scrollTop: ($container.offset().top - 100)
    343             }, 1000);
    344         }
    345 
    346         $(document.body).trigger('checkout_error');
     451            $("html, body").animate(
     452                {
     453                    scrollTop: $container.offset().top - 100,
     454                },
     455                1000
     456            );
     457        }
     458
     459        $(document.body).trigger("checkout_error");
    347460    }
    348461
    349462    function paymentMethodAction() {
    350         if ($('form[name="checkout"] input[name="payment_method"]:checked').val() === 'triplea_payment_gateway'){
    351             $('#place_order').css('opacity', 0.25);
    352             $('#place_order').css('visibility', 'hidden');
    353         } else if ($('#order_review input[name="payment_method"]:checked').val() === 'triplea_payment_gateway'){
    354             $('#place_order').css('opacity', 0.25);
    355             $('#place_order').css('visibility', 'hidden');
    356         } else{
    357             $('#place_order').css('opacity', 1.0);
    358             $('#place_order').css('visibility', 'initial');
     463        if (
     464            $(
     465                'form[name="checkout"] input[name="payment_method"]:checked'
     466            ).val() === "triplea_payment_gateway"
     467        ) {
     468            $("#place_order").css("opacity", 0.25);
     469            $("#place_order").css("visibility", "hidden");
     470        } else if (
     471            $('#order_review input[name="payment_method"]:checked').val() ===
     472            "triplea_payment_gateway"
     473        ) {
     474            $("#place_order").css("opacity", 0.25);
     475            $("#place_order").css("visibility", "hidden");
     476        } else {
     477            $("#place_order").css("opacity", 1.0);
     478            $("#place_order").css("visibility", "initial");
    359479        }
    360480    }
    361481
    362482    $(document).ready(function (e) {
    363         if( $('#order_review input[name="payment_method"]:checked').val() == 'triplea_payment_gateway' ) {
     483        if (
     484            $('#order_review input[name="payment_method"]:checked').val() ==
     485            "triplea_payment_gateway"
     486        ) {
    364487            paymentMethodAction();
    365488        }
    366         $('input[name="payment_method"]').change(function(){
     489        $('input[name="payment_method"]').change(function () {
    367490            paymentMethodAction();
    368491        });
    369         $( 'body' ).on( 'updated_checkout', function() {
     492        $("body").on("updated_checkout", function () {
    370493            //console.debug('event updated_checkout !');
    371494            paymentMethodAction();
    372             $('input[name="payment_method"]').change(function(){
     495            $('input[name="payment_method"]').change(function () {
    373496                paymentMethodAction();
    374497            });
    375498        });
    376     })
    377 
     499    });
    378500})(jQuery);
  • triplea-cryptocurrency-payment-gateway-for-woocommerce/trunk/readme.txt

    r3076963 r3102572  
    44Contributors: tripleatechnology, adnanshawkat, zamanshakir
    55Donate link: https://triple-a.io/
    6 Tags: altcoin woocommerce, bitcoin payments, bitcoin, crypto payment gateway, crypto payments
     6Tags: altcoin woocommerce, bitcoin payments, bitcoin, crypto payment gateway, Ethereum, Tether, USDT, USDC, Binance, crypto payments
    77Requires at least: 5.5
    8 Tested up to: 6.5.1
    9 Stable tag: 2.0.15
     8Tested up to: 6.5.4
     9Stable tag: 2.0.16
    1010Requires PHP: 7.0
    1111License: GPLv2 or later
     
    109109== Changelog ==
    110110
     111= 2.0.16 =
     112Fixed: Order currency is now visible in the payment form
     113
    111114= 2.0.15 =
    112115Fixed: Checkout page leave confirmation after requesting for payment form
     
    299302== Upgrade Notice ==
    300303
    301 = 2.0.14 =
     304= 2.0.16 =
     305Simply install the update. No further action is needed.
     306
     307= 2.0.15 =
    302308Simply install the update. No further action is needed.
    303309
  • triplea-cryptocurrency-payment-gateway-for-woocommerce/trunk/triplea-cryptocurrency-payment-gateway-for-woocommerce.php

    r3076941 r3102572  
    1717 * Plugin URI:        https://wordpress.org/plugins/triplea-cryptocurrency-payment-gateway-for-woocommerce/
    1818 * Description:       Offer cryptocurrency as a payment option on your website and get access to even more clients. Receive payments in cryptocurrency or in your local currency, directly in your bank account. Enjoy an easy setup, no cryptocurrency expertise required. Powered by TripleA.
    19  * Version:           2.0.15
     19 * Version:           2.0.16
    2020 * Author:            Triple-A Team
    2121 * Author URI:        https://triple-a.io
     
    5050     * $var string
    5151     */
    52     const version = '2.0.15';
     52    const version = '2.0.16';
    5353
    5454    /*
Note: See TracChangeset for help on using the changeset viewer.