Changeset 3102572
- Timestamp:
- 06/14/2024 05:55:34 AM (22 months ago)
- Location:
- triplea-cryptocurrency-payment-gateway-for-woocommerce
- Files:
-
- 6 edited
- 1 copied
-
tags/2.0.16 (copied) (copied from triplea-cryptocurrency-payment-gateway-for-woocommerce/trunk)
-
tags/2.0.16/assets/js/checkout.js (modified) (11 diffs)
-
tags/2.0.16/readme.txt (modified) (3 diffs)
-
tags/2.0.16/triplea-cryptocurrency-payment-gateway-for-woocommerce.php (modified) (2 diffs)
-
trunk/assets/js/checkout.js (modified) (11 diffs)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/triplea-cryptocurrency-payment-gateway-for-woocommerce.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
triplea-cryptocurrency-payment-gateway-for-woocommerce/tags/2.0.16/assets/js/checkout.js
r3076941 r3102572 1 1 (function ($) { 2 3 2 "use strict"; 4 3 5 let selector = '.wc_payment_method.payment_method_triplea_payment_gateway';4 let selector = ".wc_payment_method.payment_method_triplea_payment_gateway"; 6 5 7 6 // GET -> triplea_ajax_action(url, callback, "GET", null) 8 7 // 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(); 11 16 xmlhttp.onreadystatechange = function () { 12 17 if (xmlhttp.readyState === 4 && xmlhttp.status === 200) { … … 14 19 var data = JSON.parse(xmlhttp.responseText); 15 20 } catch (err) { 16 console.warn(err.message + " in " + xmlhttp.responseText, err); 21 console.warn( 22 err.message + " in " + xmlhttp.responseText, 23 err 24 ); 17 25 return; 18 26 } … … 22 30 xmlhttp.open(_method, url, true); 23 31 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 ); 25 36 } 26 37 xmlhttp.send(_data); 27 } 38 }; 28 39 29 40 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; 34 47 35 48 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(); 39 52 return; 40 53 } 41 54 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 }; 47 66 48 67 window.triplea_getPaymentFormDataCallback = function (response) { 49 68 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(); 57 83 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 ) { 59 90 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(); 62 93 return null; 63 94 } 64 95 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(); 69 100 return null; 70 101 } 71 102 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(); 74 105 75 106 triplea_freeze_checkout_form(); 76 107 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 ); 81 124 82 125 triplea_displayEmbeddedPaymentForm(); 83 } 126 }; 84 127 85 128 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 ); 87 132 if (!iframeUrlNode || !iframeUrlNode.value) { 88 133 return; 89 134 } 90 135 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"; 93 140 94 141 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"; 97 147 } else { 98 iframeUrl += '?order_details=hide&order_currency=hide'; 148 //iframeUrl += '?order_details=hide&order_currency=hide'; 149 iframeUrl += "?order_details=hide"; 99 150 } 100 151 101 152 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"; 113 164 114 165 iframeNode.src = iframeUrl; 115 166 116 167 // 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 ); 118 171 insertionNode.parentNode.insertBefore(iframeNode, btnNode); 119 window.addEventListener('beforeunload', function (e) { 120 172 window.addEventListener("beforeunload", function (e) { 121 173 var message = "Are you sure you want to leave?"; 122 174 e.returnValue = message; … … 124 176 }); 125 177 (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 } 142 204 } 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 ); 149 208 })(); 150 } 209 }; 151 210 152 211 window.triplea_displayBackupPlaceOrderBtn = function () { 153 154 212 // 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")) { 156 214 return; 157 215 } 158 216 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 }; 171 234 172 235 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"); 175 238 const timer = setTimeout(function () { 176 let submitBtn = document.getElementById( 'place_order');239 let submitBtn = document.getElementById("place_order"); 177 240 if (submitBtn) { 178 241 submitBtn.click(); 179 242 } 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 ); 181 246 } 182 247 }, delay); 183 } 248 }; 184 249 185 250 window.triplea_createHiddenInputData = function (inputId, inputValue) { … … 188 253 if (!!document.getElementById(inputId)) { 189 254 // Update hidden input element with id and value 190 hiddenInput = document.getElementById(inputId);255 hiddenInput = document.getElementById(inputId); 191 256 hiddenInput.value = inputValue; 192 257 } else { … … 199 264 200 265 // 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"]; 202 269 checkoutForm.appendChild(hiddenInput); 203 270 } 204 } 271 }; 205 272 206 273 function orderpay_checkout(response) { … … 209 276 210 277 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; 218 286 219 287 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) { 225 296 let iFrameUrlforOrderPay = xmlHttp.responseText; 226 297 let hiddenInput; 227 298 228 299 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 ); 231 308 hiddenInput.setAttribute("type", "hidden"); 232 309 hiddenInput.value = iFrameUrlforOrderPay; 233 310 234 311 // Find checkout form, append input to the form 235 let orderReviewForm = document.getElementById( 'order_review');312 let orderReviewForm = document.getElementById("order_review"); 236 313 orderReviewForm.appendChild(hiddenInput); 237 314 triplea_displayEmbeddedPaymentForm(); 238 315 } else { 239 alert( 'Something went wrong');316 alert("Something went wrong"); 240 317 } 241 318 return true; 242 319 } 243 320 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 ); 245 324 246 325 if (checkoutCheckUrlNode) { 247 let url = checkoutCheckUrlNode.getAttribute( 'data-value');326 let url = checkoutCheckUrlNode.getAttribute("data-value"); 248 327 if (url) { 249 328 let callback = triplea_validateCheckoutCallback; 250 329 251 330 // 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(); 255 334 256 335 // Call URL … … 261 340 } 262 341 } 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 ); 270 351 271 352 // 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"; 280 360 } 281 361 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(); 291 381 return null; 292 293 382 } 294 383 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(); 302 398 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 ) { 304 405 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(); 307 408 return null; 308 409 } 309 410 310 411 // Clear any errors from previous attempt. 311 $( '.woocommerce-error').remove();412 $(".woocommerce-error").remove(); 312 413 313 414 triplea_getPaymentFormData(); … … 316 417 // Show error notice at top of checkout form, or else within button container 317 418 function showError(errorMessage, selector) { 318 var $container = $( '.woocommerce-notices-wrapper, form.checkout');419 var $container = $(".woocommerce-notices-wrapper, form.checkout"); 319 420 320 421 if (!$container || !$container.length) { … … 326 427 327 428 // 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"); 333 443 if (!scrollElement.length) { 334 444 scrollElement = $container; … … 339 449 } else { 340 450 // 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"); 347 460 } 348 461 349 462 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"); 359 479 } 360 480 } 361 481 362 482 $(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 ) { 364 487 paymentMethodAction(); 365 488 } 366 $('input[name="payment_method"]').change(function (){489 $('input[name="payment_method"]').change(function () { 367 490 paymentMethodAction(); 368 491 }); 369 $( 'body' ).on( 'updated_checkout', function() {492 $("body").on("updated_checkout", function () { 370 493 //console.debug('event updated_checkout !'); 371 494 paymentMethodAction(); 372 $('input[name="payment_method"]').change(function (){495 $('input[name="payment_method"]').change(function () { 373 496 paymentMethodAction(); 374 497 }); 375 498 }); 376 }) 377 499 }); 378 500 })(jQuery); -
triplea-cryptocurrency-payment-gateway-for-woocommerce/tags/2.0.16/readme.txt
r3076963 r3102572 4 4 Contributors: tripleatechnology, adnanshawkat, zamanshakir 5 5 Donate link: https://triple-a.io/ 6 Tags: altcoin woocommerce, bitcoin payments, bitcoin, crypto payment gateway, crypto payments6 Tags: altcoin woocommerce, bitcoin payments, bitcoin, crypto payment gateway, Ethereum, Tether, USDT, USDC, Binance, crypto payments 7 7 Requires at least: 5.5 8 Tested up to: 6.5. 19 Stable tag: 2.0.1 58 Tested up to: 6.5.4 9 Stable tag: 2.0.16 10 10 Requires PHP: 7.0 11 11 License: GPLv2 or later … … 109 109 == Changelog == 110 110 111 = 2.0.16 = 112 Fixed: Order currency is now visible in the payment form 113 111 114 = 2.0.15 = 112 115 Fixed: Checkout page leave confirmation after requesting for payment form … … 299 302 == Upgrade Notice == 300 303 301 = 2.0.14 = 304 = 2.0.16 = 305 Simply install the update. No further action is needed. 306 307 = 2.0.15 = 302 308 Simply install the update. No further action is needed. 303 309 -
triplea-cryptocurrency-payment-gateway-for-woocommerce/tags/2.0.16/triplea-cryptocurrency-payment-gateway-for-woocommerce.php
r3076941 r3102572 17 17 * Plugin URI: https://wordpress.org/plugins/triplea-cryptocurrency-payment-gateway-for-woocommerce/ 18 18 * 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.1 519 * Version: 2.0.16 20 20 * Author: Triple-A Team 21 21 * Author URI: https://triple-a.io … … 50 50 * $var string 51 51 */ 52 const version = '2.0.1 5';52 const version = '2.0.16'; 53 53 54 54 /* -
triplea-cryptocurrency-payment-gateway-for-woocommerce/trunk/assets/js/checkout.js
r3076941 r3102572 1 1 (function ($) { 2 3 2 "use strict"; 4 3 5 let selector = '.wc_payment_method.payment_method_triplea_payment_gateway';4 let selector = ".wc_payment_method.payment_method_triplea_payment_gateway"; 6 5 7 6 // GET -> triplea_ajax_action(url, callback, "GET", null) 8 7 // 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(); 11 16 xmlhttp.onreadystatechange = function () { 12 17 if (xmlhttp.readyState === 4 && xmlhttp.status === 200) { … … 14 19 var data = JSON.parse(xmlhttp.responseText); 15 20 } catch (err) { 16 console.warn(err.message + " in " + xmlhttp.responseText, err); 21 console.warn( 22 err.message + " in " + xmlhttp.responseText, 23 err 24 ); 17 25 return; 18 26 } … … 22 30 xmlhttp.open(_method, url, true); 23 31 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 ); 25 36 } 26 37 xmlhttp.send(_data); 27 } 38 }; 28 39 29 40 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; 34 47 35 48 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(); 39 52 return; 40 53 } 41 54 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 }; 47 66 48 67 window.triplea_getPaymentFormDataCallback = function (response) { 49 68 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(); 57 83 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 ) { 59 90 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(); 62 93 return null; 63 94 } 64 95 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(); 69 100 return null; 70 101 } 71 102 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(); 74 105 75 106 triplea_freeze_checkout_form(); 76 107 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 ); 81 124 82 125 triplea_displayEmbeddedPaymentForm(); 83 } 126 }; 84 127 85 128 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 ); 87 132 if (!iframeUrlNode || !iframeUrlNode.value) { 88 133 return; 89 134 } 90 135 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"; 93 140 94 141 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"; 97 147 } else { 98 iframeUrl += '?order_details=hide&order_currency=hide'; 148 //iframeUrl += '?order_details=hide&order_currency=hide'; 149 iframeUrl += "?order_details=hide"; 99 150 } 100 151 101 152 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"; 113 164 114 165 iframeNode.src = iframeUrl; 115 166 116 167 // 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 ); 118 171 insertionNode.parentNode.insertBefore(iframeNode, btnNode); 119 window.addEventListener('beforeunload', function (e) { 120 172 window.addEventListener("beforeunload", function (e) { 121 173 var message = "Are you sure you want to leave?"; 122 174 e.returnValue = message; … … 124 176 }); 125 177 (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 } 142 204 } 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 ); 149 208 })(); 150 } 209 }; 151 210 152 211 window.triplea_displayBackupPlaceOrderBtn = function () { 153 154 212 // 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")) { 156 214 return; 157 215 } 158 216 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 }; 171 234 172 235 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"); 175 238 const timer = setTimeout(function () { 176 let submitBtn = document.getElementById( 'place_order');239 let submitBtn = document.getElementById("place_order"); 177 240 if (submitBtn) { 178 241 submitBtn.click(); 179 242 } 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 ); 181 246 } 182 247 }, delay); 183 } 248 }; 184 249 185 250 window.triplea_createHiddenInputData = function (inputId, inputValue) { … … 188 253 if (!!document.getElementById(inputId)) { 189 254 // Update hidden input element with id and value 190 hiddenInput = document.getElementById(inputId);255 hiddenInput = document.getElementById(inputId); 191 256 hiddenInput.value = inputValue; 192 257 } else { … … 199 264 200 265 // 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"]; 202 269 checkoutForm.appendChild(hiddenInput); 203 270 } 204 } 271 }; 205 272 206 273 function orderpay_checkout(response) { … … 209 276 210 277 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; 218 286 219 287 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) { 225 296 let iFrameUrlforOrderPay = xmlHttp.responseText; 226 297 let hiddenInput; 227 298 228 299 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 ); 231 308 hiddenInput.setAttribute("type", "hidden"); 232 309 hiddenInput.value = iFrameUrlforOrderPay; 233 310 234 311 // Find checkout form, append input to the form 235 let orderReviewForm = document.getElementById( 'order_review');312 let orderReviewForm = document.getElementById("order_review"); 236 313 orderReviewForm.appendChild(hiddenInput); 237 314 triplea_displayEmbeddedPaymentForm(); 238 315 } else { 239 alert( 'Something went wrong');316 alert("Something went wrong"); 240 317 } 241 318 return true; 242 319 } 243 320 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 ); 245 324 246 325 if (checkoutCheckUrlNode) { 247 let url = checkoutCheckUrlNode.getAttribute( 'data-value');326 let url = checkoutCheckUrlNode.getAttribute("data-value"); 248 327 if (url) { 249 328 let callback = triplea_validateCheckoutCallback; 250 329 251 330 // 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(); 255 334 256 335 // Call URL … … 261 340 } 262 341 } 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 ); 270 351 271 352 // 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"; 280 360 } 281 361 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(); 291 381 return null; 292 293 382 } 294 383 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(); 302 398 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 ) { 304 405 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(); 307 408 return null; 308 409 } 309 410 310 411 // Clear any errors from previous attempt. 311 $( '.woocommerce-error').remove();412 $(".woocommerce-error").remove(); 312 413 313 414 triplea_getPaymentFormData(); … … 316 417 // Show error notice at top of checkout form, or else within button container 317 418 function showError(errorMessage, selector) { 318 var $container = $( '.woocommerce-notices-wrapper, form.checkout');419 var $container = $(".woocommerce-notices-wrapper, form.checkout"); 319 420 320 421 if (!$container || !$container.length) { … … 326 427 327 428 // 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"); 333 443 if (!scrollElement.length) { 334 444 scrollElement = $container; … … 339 449 } else { 340 450 // 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"); 347 460 } 348 461 349 462 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"); 359 479 } 360 480 } 361 481 362 482 $(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 ) { 364 487 paymentMethodAction(); 365 488 } 366 $('input[name="payment_method"]').change(function (){489 $('input[name="payment_method"]').change(function () { 367 490 paymentMethodAction(); 368 491 }); 369 $( 'body' ).on( 'updated_checkout', function() {492 $("body").on("updated_checkout", function () { 370 493 //console.debug('event updated_checkout !'); 371 494 paymentMethodAction(); 372 $('input[name="payment_method"]').change(function (){495 $('input[name="payment_method"]').change(function () { 373 496 paymentMethodAction(); 374 497 }); 375 498 }); 376 }) 377 499 }); 378 500 })(jQuery); -
triplea-cryptocurrency-payment-gateway-for-woocommerce/trunk/readme.txt
r3076963 r3102572 4 4 Contributors: tripleatechnology, adnanshawkat, zamanshakir 5 5 Donate link: https://triple-a.io/ 6 Tags: altcoin woocommerce, bitcoin payments, bitcoin, crypto payment gateway, crypto payments6 Tags: altcoin woocommerce, bitcoin payments, bitcoin, crypto payment gateway, Ethereum, Tether, USDT, USDC, Binance, crypto payments 7 7 Requires at least: 5.5 8 Tested up to: 6.5. 19 Stable tag: 2.0.1 58 Tested up to: 6.5.4 9 Stable tag: 2.0.16 10 10 Requires PHP: 7.0 11 11 License: GPLv2 or later … … 109 109 == Changelog == 110 110 111 = 2.0.16 = 112 Fixed: Order currency is now visible in the payment form 113 111 114 = 2.0.15 = 112 115 Fixed: Checkout page leave confirmation after requesting for payment form … … 299 302 == Upgrade Notice == 300 303 301 = 2.0.14 = 304 = 2.0.16 = 305 Simply install the update. No further action is needed. 306 307 = 2.0.15 = 302 308 Simply install the update. No further action is needed. 303 309 -
triplea-cryptocurrency-payment-gateway-for-woocommerce/trunk/triplea-cryptocurrency-payment-gateway-for-woocommerce.php
r3076941 r3102572 17 17 * Plugin URI: https://wordpress.org/plugins/triplea-cryptocurrency-payment-gateway-for-woocommerce/ 18 18 * 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.1 519 * Version: 2.0.16 20 20 * Author: Triple-A Team 21 21 * Author URI: https://triple-a.io … … 50 50 * $var string 51 51 */ 52 const version = '2.0.1 5';52 const version = '2.0.16'; 53 53 54 54 /*
Note: See TracChangeset
for help on using the changeset viewer.