Version Description
Download this release
Release Info
Developer | woothemes |
Plugin | WooCommerce Stripe Payment Gateway |
Version | 4.5.3 |
Comparing to | |
See all releases |
Code changes from version 4.5.2 to 4.5.3
- assets/css/stripe-styles.scss +120 -0
- assets/js/stripe-admin.js +22 -0
- assets/js/stripe-admin.min.js +1 -1
- assets/js/stripe-payment-request.js +2 -2
- assets/js/stripe-payment-request.min.js +1 -1
- assets/js/stripe.js +2 -3
- assets/js/stripe.min.js +1 -1
- changelog.txt +9 -0
- includes/abstracts/abstract-wc-stripe-payment-gateway.php +10 -0
- includes/admin/stripe-settings.php +9 -2
- includes/class-wc-stripe-apple-pay-registration.php +53 -17
- includes/payment-methods/class-wc-stripe-payment-request.php +70 -65
- languages/woocommerce-gateway-stripe.pot +64 -62
- readme.txt +9 -3
- woocommerce-gateway-stripe.php +2 -2
assets/css/stripe-styles.scss
ADDED
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.wc-stripe-elements-field, .wc-stripe-iban-element-field { border:1px solid #ddd; margin:5px 0; padding:5px; background-color:#fff; outline:0; }
|
2 |
+
#payment .methods li.woocommerce-SavedPaymentMethods-token label { display: inline; }
|
3 |
+
#payment .methods li.woocommerce-SavedPaymentMethods-new label { display: inline; }
|
4 |
+
|
5 |
+
.woocommerce-checkout #payment ul.payment_methods li img.stripe-icon,
|
6 |
+
#add_payment_method #payment ul.payment_methods li img.stripe-icon { max-width: 40px; padding-left: 3px; margin: 0; }
|
7 |
+
|
8 |
+
.woocommerce-checkout #payment ul.payment_methods li img.stripe-bancontact-icon,
|
9 |
+
#add_payment_method #payment ul.payment_methods li img.stripe-bancontact-icon { max-height: 65px; max-width: 45px; }
|
10 |
+
|
11 |
+
.woocommerce-checkout #payment ul.payment_methods li img.stripe-ideal-icon,
|
12 |
+
#add_payment_method #payment ul.payment_methods li img.stripe-ideal-icon { max-height: 35px; }
|
13 |
+
|
14 |
+
.woocommerce-checkout #payment ul.payment_methods li img.stripe-p24-icon,
|
15 |
+
#add_payment_method #payment ul.payment_methods li img.stripe-p24-icon { max-width: 65px; }
|
16 |
+
|
17 |
+
.woocommerce-checkout #payment ul.payment_methods li img.stripe-alipay-icon,
|
18 |
+
#add_payment_method #payment ul.payment_methods li img.stripe-alipay-icon { max-width: 50px; }
|
19 |
+
|
20 |
+
.woocommerce-checkout #payment ul.payment_methods li img.stripe-sofort-icon,
|
21 |
+
#add_payment_method #payment ul.payment_methods li img.stripe-sofort-icon { max-width: 55px; }
|
22 |
+
|
23 |
+
.woocommerce-checkout #payment ul.payment_methods li img.stripe-sepa-icon,
|
24 |
+
#add_payment_method #payment ul.payment_methods li img.stripe-sepa-icon { max-width: 50px; }
|
25 |
+
|
26 |
+
.woocommerce-checkout #payment ul.payment_methods li img.stripe-multibanco-icon,
|
27 |
+
#add_payment_method #payment ul.payment_methods li img.stripe-multibanco-icon { max-height: 30px; }
|
28 |
+
|
29 |
+
.woocommerce-checkout #payment ul.payment_methods li img.stripe-eps-icon,
|
30 |
+
#add_payment_method #payment ul.payment_methods li img.stripe-eps-icon { max-height: 30px; }
|
31 |
+
|
32 |
+
.woocommerce-checkout #payment ul.payment_methods li img.stripe-giropay-icon,
|
33 |
+
#add_payment_method #payment ul.payment_methods li img.stripe-giropay-icon { max-width: 50px; }
|
34 |
+
|
35 |
+
.woocommerce-checkout #payment ul.payment_methods li .stripe-credit-card-brand,
|
36 |
+
#add_payment_method #payment ul.payment_methods li .stripe-credit-card-brand { position: absolute; top: 50%; margin-top: -10px; right: 10px; background: no-repeat url( '../images/credit-card.svg' ); display: block; width: 30px; height: 24px; }
|
37 |
+
|
38 |
+
.woocommerce-checkout #payment ul.payment_methods li .stripe-visa-brand,
|
39 |
+
#add_payment_method #payment ul.payment_methods li .stripe-visa-brand { position: absolute; top: 50%; margin-top: -10px; right: 10px; background: no-repeat url( '../images/visa.svg' ); display: block; width: 30px; height: 24px; }
|
40 |
+
|
41 |
+
.woocommerce-checkout #payment ul.payment_methods li .stripe-amex-brand,
|
42 |
+
#add_payment_method #payment ul.payment_methods li .stripe-amex-brand { position: absolute; top: 50%; margin-top: -10px; right: 10px; background: no-repeat url( '../images/amex.svg' ); display: block; width: 30px; height: 24px; }
|
43 |
+
|
44 |
+
.woocommerce-checkout #payment ul.payment_methods li .stripe-diners-brand,
|
45 |
+
#add_payment_method #payment ul.payment_methods li .stripe-diners-brand { position: absolute; top: 50%; margin-top: -10px; right: 10px; background: no-repeat url( '../images/diners.svg' ); display: block; width: 30px; height: 24px; }
|
46 |
+
|
47 |
+
.woocommerce-checkout #payment ul.payment_methods li .stripe-discover-brand,
|
48 |
+
#add_payment_method #payment ul.payment_methods li .stripe-discover-brand { position: absolute; top: 50%; margin-top: -10px; right: 10px; background: no-repeat url( '../images/discover.svg' ); display: block; width: 30px; height: 24px; }
|
49 |
+
|
50 |
+
.woocommerce-checkout #payment ul.payment_methods li .stripe-jcb-brand,
|
51 |
+
#add_payment_method #payment ul.payment_methods li .stripe-jcb-brand { position: absolute; top: 50%; margin-top: -10px; right: 10px; background: no-repeat url( '../images/jcb.svg' ); display: block; width: 30px; height: 24px; }
|
52 |
+
|
53 |
+
.woocommerce-checkout #payment ul.payment_methods li .stripe-maestro-brand,
|
54 |
+
#add_payment_method #payment ul.payment_methods li .stripe-maestro-brand { position: absolute; top: 50%; margin-top: -10px; right: 10px; background: no-repeat url( '../images/maestro.svg' ); display: block; width: 30px; height: 24px; }
|
55 |
+
|
56 |
+
.woocommerce-checkout #payment ul.payment_methods li .stripe-mastercard-brand,
|
57 |
+
#add_payment_method #payment ul.payment_methods li .stripe-mastercard-brand { position: absolute; top: 50%; margin-top: -10px; right: 10px; background: no-repeat url( '../images/mastercard.svg' ); display: block; width: 30px; height: 24px; }
|
58 |
+
|
59 |
+
.woocommerce-checkout #payment ul.payment_methods .stripe-card-group,
|
60 |
+
#add_payment_method #payment ul.payment_methods .stripe-card-group { position: relative; }
|
61 |
+
|
62 |
+
.woocommerce-SavedPaymentMethods-token .stripe-source-errors .woocommerce-error { margin-top: 1em; margin-bottom: 2em; }
|
63 |
+
|
64 |
+
#wc-stripe-custom-button { display: block; width: 100%; }
|
65 |
+
|
66 |
+
.gpay-button {
|
67 |
+
background-origin: content-box;
|
68 |
+
background-position: center center;
|
69 |
+
background-repeat: no-repeat;
|
70 |
+
background-size: contain;
|
71 |
+
border: 0px;
|
72 |
+
border-radius: 4px;
|
73 |
+
box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 1px 0px, rgba(60, 64, 67, 0.15) 0px 1px 3px 1px;
|
74 |
+
cursor: pointer;
|
75 |
+
height: 40px;
|
76 |
+
min-height: 40px;
|
77 |
+
padding: 11px 24px;
|
78 |
+
width: 100%;
|
79 |
+
|
80 |
+
&.light {
|
81 |
+
// account for button box-shadow when setting width
|
82 |
+
width: calc( 100% - 3px );
|
83 |
+
background-color: #fff;
|
84 |
+
&:active {
|
85 |
+
background-color: #fff;
|
86 |
+
}
|
87 |
+
&:hover {
|
88 |
+
background-color: #f8f8f8;
|
89 |
+
}
|
90 |
+
&:focus {
|
91 |
+
box-shadow: #e8e8e8 0 1px 1px 0, #e8e8e8 0 1px 3px;
|
92 |
+
outline: 0;
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
+
&.dark {
|
97 |
+
background-color: #000;
|
98 |
+
box-shadow: none;
|
99 |
+
padding: 12px 24px 10px;
|
100 |
+
&:active {
|
101 |
+
background-color: #5f6368;
|
102 |
+
}
|
103 |
+
&:hover{
|
104 |
+
background-color: #3c4043;
|
105 |
+
}
|
106 |
+
&:focus {
|
107 |
+
box-shadow: #5f6368 0 1px 1px 0, #5f6368 0 1px 3px;
|
108 |
+
outline: 0;
|
109 |
+
}
|
110 |
+
}
|
111 |
+
|
112 |
+
&.short {
|
113 |
+
&.light {
|
114 |
+
background-image: url(https://www.gstatic.com/instantbuy/svg/light_gpay.svg);
|
115 |
+
}
|
116 |
+
&.dark {
|
117 |
+
background-image: url(https://www.gstatic.com/instantbuy/svg/dark_gpay.svg);
|
118 |
+
}
|
119 |
+
}
|
120 |
+
}
|
assets/js/stripe-admin.js
CHANGED
@@ -86,6 +86,28 @@ jQuery( function( $ ) {
|
|
86 |
} );
|
87 |
} );
|
88 |
} );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
}
|
90 |
};
|
91 |
|
86 |
} );
|
87 |
} );
|
88 |
} );
|
89 |
+
|
90 |
+
// Add secret visibility toggles.
|
91 |
+
$( '#woocommerce_stripe_test_secret_key, #woocommerce_stripe_secret_key, #woocommerce_stripe_test_webhook_secret, #woocommerce_stripe_webhook_secret' ).after(
|
92 |
+
'<button class="wc-stripe-toggle-secret" style="height: 30px; margin-left: 2px; cursor: pointer"><span class="dashicons dashicons-visibility"></span></button>'
|
93 |
+
);
|
94 |
+
$( '.wc-stripe-toggle-secret' ).on( 'click', function( event ) {
|
95 |
+
event.preventDefault();
|
96 |
+
|
97 |
+
var $dashicon = $( this ).closest( 'button' ).find( '.dashicons' );
|
98 |
+
var $input = $( this ).closest( 'tr' ).find( '.input-text' );
|
99 |
+
var inputType = $input.attr( 'type' );
|
100 |
+
|
101 |
+
if ( 'text' == inputType ) {
|
102 |
+
$input.attr( 'type', 'password' );
|
103 |
+
$dashicon.removeClass( 'dashicons-hidden' );
|
104 |
+
$dashicon.addClass( 'dashicons-visibility' );
|
105 |
+
} else {
|
106 |
+
$input.attr( 'type', 'text' );
|
107 |
+
$dashicon.removeClass( 'dashicons-visibility' );
|
108 |
+
$dashicon.addClass( 'dashicons-hidden' );
|
109 |
+
}
|
110 |
+
} );
|
111 |
}
|
112 |
};
|
113 |
|
assets/js/stripe-admin.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(
|
1 |
+
jQuery(function(i){"use strict";var e={isTestMode:function(){return i("#woocommerce_stripe_testmode").is(":checked")},getSecretKey:function(){return e.isTestMode()?i("#woocommerce_stripe_test_secret_key").val():i("#woocommerce_stripe_secret_key").val()},init:function(){i(document.body).on("change","#woocommerce_stripe_testmode",function(){var e=i("#woocommerce_stripe_test_secret_key").parents("tr").eq(0),t=i("#woocommerce_stripe_test_publishable_key").parents("tr").eq(0),o=i("#woocommerce_stripe_test_webhook_secret").parents("tr").eq(0),s=i("#woocommerce_stripe_secret_key").parents("tr").eq(0),r=i("#woocommerce_stripe_publishable_key").parents("tr").eq(0),c=i("#woocommerce_stripe_webhook_secret").parents("tr").eq(0);i(this).is(":checked")?(e.show(),t.show(),o.show(),s.hide(),r.hide(),c.hide()):(e.hide(),t.hide(),o.hide(),s.show(),r.show(),c.show())}),i("#woocommerce_stripe_testmode").change(),i("#woocommerce_stripe_payment_request").change(function(){i(this).is(":checked")?i("#woocommerce_stripe_payment_request_button_theme, #woocommerce_stripe_payment_request_button_type, #woocommerce_stripe_payment_request_button_height").closest("tr").show():i("#woocommerce_stripe_payment_request_button_theme, #woocommerce_stripe_payment_request_button_type, #woocommerce_stripe_payment_request_button_height").closest("tr").hide()}).change(),i("#woocommerce_stripe_payment_request_button_type").change(function(){"custom"===i(this).val()?i("#woocommerce_stripe_payment_request_button_label").closest("tr").show():i("#woocommerce_stripe_payment_request_button_label").closest("tr").hide()}).change(),i("#woocommerce_stripe_payment_request_button_type").change(function(){"branded"===i(this).val()?i("#woocommerce_stripe_payment_request_button_branded_type").closest("tr").show():i("#woocommerce_stripe_payment_request_button_branded_type").closest("tr").hide()}).change(),i(".wc-stripe-3ds-missing").each(function(){var e=i(this);e.find(".notice-dismiss").on("click.wc-stripe-dismiss-notice",function(){i.ajax({type:"head",url:window.location.href+"&stripe_dismiss_3ds="+e.data("nonce")})})}),i("#woocommerce_stripe_test_secret_key, #woocommerce_stripe_secret_key, #woocommerce_stripe_test_webhook_secret, #woocommerce_stripe_webhook_secret").after('<button class="wc-stripe-toggle-secret" style="height: 30px; margin-left: 2px; cursor: pointer"><span class="dashicons dashicons-visibility"></span></button>'),i(".wc-stripe-toggle-secret").on("click",function(e){e.preventDefault();var t=i(this).closest("button").find(".dashicons"),o=i(this).closest("tr").find(".input-text");"text"==o.attr("type")?(o.attr("type","password"),t.removeClass("dashicons-hidden"),t.addClass("dashicons-visibility")):(o.attr("type","text"),t.removeClass("dashicons-visibility"),t.addClass("dashicons-hidden"))})}};e.init()});
|
assets/js/stripe-payment-request.js
CHANGED
@@ -315,7 +315,7 @@ jQuery( function( $ ) {
|
|
315 |
country: wc_stripe_payment_request_params.checkout.country_code,
|
316 |
requestPayerName: true,
|
317 |
requestPayerEmail: true,
|
318 |
-
requestPayerPhone:
|
319 |
requestShipping: wc_stripe_payment_request_params.product.requestShipping,
|
320 |
displayItems: wc_stripe_payment_request_params.product.displayItems
|
321 |
};
|
@@ -342,7 +342,7 @@ jQuery( function( $ ) {
|
|
342 |
country: cart.order_data.country_code,
|
343 |
requestPayerName: true,
|
344 |
requestPayerEmail: true,
|
345 |
-
requestPayerPhone:
|
346 |
requestShipping: cart.shipping_required ? true : false,
|
347 |
displayItems: cart.order_data.displayItems
|
348 |
};
|
315 |
country: wc_stripe_payment_request_params.checkout.country_code,
|
316 |
requestPayerName: true,
|
317 |
requestPayerEmail: true,
|
318 |
+
requestPayerPhone: wc_stripe_payment_request_params.checkout.needs_payer_phone,
|
319 |
requestShipping: wc_stripe_payment_request_params.product.requestShipping,
|
320 |
displayItems: wc_stripe_payment_request_params.product.displayItems
|
321 |
};
|
342 |
country: cart.order_data.country_code,
|
343 |
requestPayerName: true,
|
344 |
requestPayerEmail: true,
|
345 |
+
requestPayerPhone: wc_stripe_payment_request_params.checkout.needs_payer_phone,
|
346 |
requestShipping: cart.shipping_required ? true : false,
|
347 |
displayItems: cart.order_data.displayItems
|
348 |
};
|
assets/js/stripe-payment-request.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(i){"use strict";var o,u=Stripe(wc_stripe_payment_request_params.stripe.key),p={getAjaxURL:function(t){return wc_stripe_payment_request_params.ajax_url.toString().replace("%%endpoint%%","wc_stripe_"+t)},getCartDetails:function(){var t={security:wc_stripe_payment_request_params.nonce.payment};i.ajax({type:"POST",data:t,url:p.getAjaxURL("get_cart_details"),success:function(t){p.startPaymentRequest(t)}})},getAttributes:function(){var t=i(".variations_form").find(".variations select"),a={},n=0,s=0;return t.each(function(){var t=i(this).data("attribute_name")||i(this).attr("name"),e=i(this).val()||"";0<e.length&&s++,n++,a[t]=e}),{count:n,chosenCount:s,data:a}},processSource:function(t,e){var a=p.getOrderData(t,e);return i.ajax({type:"POST",data:a,dataType:"json",url:p.getAjaxURL("create_order")})},getOrderData:function(t,e){var a=t.source,n=a.owner.email,s=a.owner.phone,r=a.owner.address,i=a.owner.name,o=t.shippingAddress,u={_wpnonce:wc_stripe_payment_request_params.nonce.checkout,billing_first_name:null!==i?i.split(" ").slice(0,1).join(" "):"",billing_last_name:null!==i?i.split(" ").slice(1).join(" "):"",billing_company:"",billing_email:null!==n?n:t.payerEmail,billing_phone:null!==s?s:t.payerPhone.replace("/[() -]/g",""),billing_country:null!==r?r.country:"",billing_address_1:null!==r?r.line1:"",billing_address_2:null!==r?r.line2:"",billing_city:null!==r?r.city:"",billing_state:null!==r?r.state:"",billing_postcode:null!==r?r.postal_code:"",shipping_first_name:"",shipping_last_name:"",shipping_company:"",shipping_country:"",shipping_address_1:"",shipping_address_2:"",shipping_city:"",shipping_state:"",shipping_postcode:"",shipping_method:[null===t.shippingOption?null:t.shippingOption.id],order_comments:"",payment_method:"stripe",ship_to_different_address:1,terms:1,stripe_source:a.id,payment_request_type:e};return o&&(u.shipping_first_name=o.recipient.split(" ").slice(0,1).join(" "),u.shipping_last_name=o.recipient.split(" ").slice(1).join(" "),u.shipping_company=o.organization,u.shipping_country=o.country,u.shipping_address_1=void 0===o.addressLine[0]?"":o.addressLine[0],u.shipping_address_2=void 0===o.addressLine[1]?"":o.addressLine[1],u.shipping_city=o.city,u.shipping_state=o.region,u.shipping_postcode=o.postalCode),u},getErrorMessageHTML:function(t){return i('<div class="woocommerce-error" />').text(t)},abortPayment:function(t,e){if(t.complete("fail"),i(".woocommerce-error").remove(),wc_stripe_payment_request_params.is_product_page){var a=i(".product");a.before(e),i("html, body").animate({scrollTop:a.prev(".woocommerce-error").offset().top},600)}else{var n=i(".shop_table.cart").closest("form");n.before(e),i("html, body").animate({scrollTop:n.prev(".woocommerce-error").offset().top},600)}},completePayment:function(t,e){p.block(),t.complete("success"),window.location=e},block:function(){i.blockUI({message:null,overlayCSS:{background:"#fff",opacity:.6}})},updateShippingOptions:function(t,e){var a={security:wc_stripe_payment_request_params.nonce.shipping,country:e.country,state:e.region,postcode:e.postalCode,city:e.city,address:void 0===e.addressLine[0]?"":e.addressLine[0],address_2:void 0===e.addressLine[1]?"":e.addressLine[1],payment_request_type:o,is_product_page:wc_stripe_payment_request_params.is_product_page};return i.ajax({type:"POST",data:a,url:p.getAjaxURL("get_shipping_options")})},updateShippingDetails:function(t,e){var a={security:wc_stripe_payment_request_params.nonce.update_shipping,shipping_method:[e.id],payment_request_type:o,is_product_page:wc_stripe_payment_request_params.is_product_page};return i.ajax({type:"POST",data:a,url:p.getAjaxURL("update_shipping_method")})},addToCart:function(){var t=i(".single_add_to_cart_button").val();i(".single_variation_wrap").length&&(t=i(".single_variation_wrap").find('input[name="product_id"]').val());var n={security:wc_stripe_payment_request_params.nonce.add_to_cart,product_id:t,qty:i(".quantity .qty").val(),attributes:i(".variations_form").length?p.getAttributes().data:[]},e=i("form.cart").serializeArray();return i.each(e,function(t,e){if(/^addon-/.test(e.name))if(/\[\]$/.test(e.name)){var a=e.name.substring(0,e.name.length-2);n[a]?n[a].push(e.value):n[a]=[e.value]}else n[e.name]=e.value}),i.ajax({type:"POST",data:n,url:p.getAjaxURL("add_to_cart")})},clearCart:function(){var t={security:wc_stripe_payment_request_params.nonce.clear_cart};return i.ajax({type:"POST",data:t,url:p.getAjaxURL("clear_cart"),success:function(t){}})},getRequestOptionsFromLocal:function(){return{total:wc_stripe_payment_request_params.product.total,currency:wc_stripe_payment_request_params.checkout.currency_code,country:wc_stripe_payment_request_params.checkout.country_code,requestPayerName:!0,requestPayerEmail:!0,requestPayerPhone:!0,requestShipping:wc_stripe_payment_request_params.product.requestShipping,displayItems:wc_stripe_payment_request_params.product.displayItems}},startPaymentRequest:function(t){var a,e;a=wc_stripe_payment_request_params.is_product_page?e=p.getRequestOptionsFromLocal():(e={total:t.order_data.total,currency:t.order_data.currency,country:t.order_data.country_code,requestPayerName:!0,requestPayerEmail:!0,requestPayerPhone:!0,requestShipping:!!t.shipping_required,displayItems:t.order_data.displayItems},t.order_data);var n=u.paymentRequest(e),s=u.elements({locale:wc_stripe_payment_request_params.button.locale}),r=p.createPaymentRequestButton(s,n);n.canMakePayment().then(function(t){t&&(o=t.applePay?"apple_pay":"payment_request_api",p.attachPaymentRequestButtonEventListeners(r,n),p.showPaymentRequestButton(r))}),n.on("shippingaddresschange",function(e){i.when(p.updateShippingOptions(a,e.shippingAddress)).then(function(t){e.updateWith({status:t.result,shippingOptions:t.shipping_options,total:t.total,displayItems:t.displayItems})})}),n.on("shippingoptionchange",function(e){i.when(p.updateShippingDetails(a,e.shippingOption)).then(function(t){"success"===t.result&&e.updateWith({status:"success",total:t.total,displayItems:t.displayItems}),"fail"===t.result&&e.updateWith({status:"fail"})})}),n.on("source",function(e){"no"===wc_stripe_payment_request_params.stripe.allow_prepaid_card&&"prepaid"===e.source.card.funding?p.abortPayment(e,p.getErrorMessageHTML(wc_stripe_payment_request_params.i18n.no_prepaid_card)):i.when(p.processSource(e,o)).then(function(t){"success"===t.result?p.completePayment(e,t.redirect):p.abortPayment(e,t.messages)})})},getSelectedProductData:function(){var t=i(".single_add_to_cart_button").val();i(".single_variation_wrap").length&&(t=i(".single_variation_wrap").find('input[name="product_id"]').val());var e=(i("#product-addons-total").data("price_data")||[]).reduce(function(t,e){return t+e.cost},0),a={security:wc_stripe_payment_request_params.nonce.get_selected_product_data,product_id:t,qty:i(".quantity .qty").val(),attributes:i(".variations_form").length?p.getAttributes().data:[],addon_value:e};return i.ajax({type:"POST",data:a,url:p.getAjaxURL("get_selected_product_data")})},debounce:function(n,s,r){var i;return function(){var t=this,e=arguments,a=r&&!i;clearTimeout(i),i=setTimeout(function(){i=null,r||s.apply(t,e)},n),a&&s.apply(t,e)}},createPaymentRequestButton:function(t,e){var a;if(wc_stripe_payment_request_params.button.is_custom&&(a=i(wc_stripe_payment_request_params.button.css_selector)).length)return a.data("isCustom",!0),a;if(wc_stripe_payment_request_params.button.is_branded){if(p.shouldUseGooglePayBrand())return(a=p.createGooglePayButton()).data("isBranded",!0),a;wc_stripe_payment_request_params.button.type="long"===wc_stripe_payment_request_params.button.branded_type?"buy":"default"}return t.create("paymentRequestButton",{paymentRequest:e,style:{paymentRequestButton:{type:wc_stripe_payment_request_params.button.type,theme:wc_stripe_payment_request_params.button.theme,height:wc_stripe_payment_request_params.button.height+"px"}}})},isCustomPaymentRequestButton:function(t){return t&&"function"==typeof t.data&&t.data("isCustom")},isBrandedPaymentRequestButton:function(t){return t&&"function"==typeof t.data&&t.data("isBranded")},shouldUseGooglePayBrand:function(){var t=window.navigator.userAgent.toLowerCase(),e=/chrome/.test(t)&&!/edge|edg|opr|brave\//.test(t)&&"Google Inc."===window.navigator.vendor,a=e&&window.navigator.brave;return e&&!a},createGooglePayButton:function(){var t=wc_stripe_payment_request_params.button.theme,e=wc_stripe_payment_request_params.button.branded_type,a=wc_stripe_payment_request_params.button.locale,n=wc_stripe_payment_request_params.button.height;t=["dark","light"].includes(t)?t:"light",e=["short","long"].includes(e)?e:"long";var s=i('<button type="button" id="wc-stripe-branded-button" aria-label="Google Pay" class="gpay-button"></button>');s.css("height",n+"px"),s.addClass(t+" "+e),"long"===e&&function(t,e,a){t.css("background-image","url("+e+")");var n=document.createElement("img");n.onerror=function(){t.css("background-image","url("+a+")")},n.src=e}(s,"https://www.gstatic.com/instantbuy/svg/"+t+"/"+a+".svg","https://www.gstatic.com/instantbuy/svg/"+t+"/en.svg");return s},attachPaymentRequestButtonEventListeners:function(t,e){wc_stripe_payment_request_params.is_product_page?p.attachProductPageEventListeners(t,e):p.attachCartPageEventListeners(t,e)},attachProductPageEventListeners:function(e,a){var n=[],s=i(".single_add_to_cart_button");e.on("click",function(t){return s.is(".disabled")?(t.preventDefault(),void(s.is(".wc-variation-is-unavailable")?window.alert(wc_add_to_cart_variation_params.i18n_unavailable_text):s.is(".wc-variation-selection-needed")&&window.alert(wc_add_to_cart_variation_params.i18n_make_a_selection_text))):0<n.length?(t.preventDefault(),void window.alert(n)):(p.addToCart(),void((p.isCustomPaymentRequestButton(e)||p.isBrandedPaymentRequestButton(e))&&(t.preventDefault(),a.show())))}),i(document.body).on("woocommerce_variation_has_changed",function(){p.blockPaymentRequestButton(e),i.when(p.getSelectedProductData()).then(function(t){i.when(a.update({total:t.total,displayItems:t.displayItems})).then(function(){p.unblockPaymentRequestButton(e)})})}),i(".quantity").on("input",".qty",function(){p.blockPaymentRequestButton(e)}),i(".quantity").on("input",".qty",p.debounce(250,function(){p.blockPaymentRequestButton(e),n=[],i.when(p.getSelectedProductData()).then(function(t){t.error?(n=[t.error],p.unblockPaymentRequestButton(e)):i.when(a.update({total:t.total,displayItems:t.displayItems})).then(function(){p.unblockPaymentRequestButton(e)})})}))},attachCartPageEventListeners:function(t,e){(wc_stripe_payment_request_params.button.is_custom&&p.isCustomPaymentRequestButton(t)||wc_stripe_payment_request_params.button.is_branded&&p.isBrandedPaymentRequestButton(t))&&t.on("click",function(t){t.preventDefault(),e.show()})},showPaymentRequestButton:function(t){p.isCustomPaymentRequestButton(t)?(t.addClass("is-active"),i("#wc-stripe-payment-request-wrapper, #wc-stripe-payment-request-button-separator").show()):p.isBrandedPaymentRequestButton(t)?(i("#wc-stripe-payment-request-wrapper, #wc-stripe-payment-request-button-separator").show(),i("#wc-stripe-payment-request-button").html(t)):i("#wc-stripe-payment-request-button").length&&(i("#wc-stripe-payment-request-wrapper, #wc-stripe-payment-request-button-separator").show(),t.mount("#wc-stripe-payment-request-button"))},blockPaymentRequestButton:function(t){i("#wc-stripe-payment-request-button").data("blockUI.isBlocked")||(i("#wc-stripe-payment-request-button").block({message:null}),p.isCustomPaymentRequestButton(t)&&t.addClass("is-blocked"))},unblockPaymentRequestButton:function(t){i("#wc-stripe-payment-request-button").unblock(),p.isCustomPaymentRequestButton(t)&&t.removeClass("is-blocked")},init:function(){wc_stripe_payment_request_params.is_product_page?p.startPaymentRequest(""):p.getCartDetails()}};p.init(),i(document.body).on("updated_cart_totals",function(){p.init()}),i(document.body).on("updated_checkout",function(){p.init()})});
|
1 |
+
jQuery(function(i){"use strict";var o,u=Stripe(wc_stripe_payment_request_params.stripe.key),p={getAjaxURL:function(t){return wc_stripe_payment_request_params.ajax_url.toString().replace("%%endpoint%%","wc_stripe_"+t)},getCartDetails:function(){var t={security:wc_stripe_payment_request_params.nonce.payment};i.ajax({type:"POST",data:t,url:p.getAjaxURL("get_cart_details"),success:function(t){p.startPaymentRequest(t)}})},getAttributes:function(){var t=i(".variations_form").find(".variations select"),a={},n=0,s=0;return t.each(function(){var t=i(this).data("attribute_name")||i(this).attr("name"),e=i(this).val()||"";0<e.length&&s++,n++,a[t]=e}),{count:n,chosenCount:s,data:a}},processSource:function(t,e){var a=p.getOrderData(t,e);return i.ajax({type:"POST",data:a,dataType:"json",url:p.getAjaxURL("create_order")})},getOrderData:function(t,e){var a=t.source,n=a.owner.email,s=a.owner.phone,r=a.owner.address,i=a.owner.name,o=t.shippingAddress,u={_wpnonce:wc_stripe_payment_request_params.nonce.checkout,billing_first_name:null!==i?i.split(" ").slice(0,1).join(" "):"",billing_last_name:null!==i?i.split(" ").slice(1).join(" "):"",billing_company:"",billing_email:null!==n?n:t.payerEmail,billing_phone:null!==s?s:t.payerPhone.replace("/[() -]/g",""),billing_country:null!==r?r.country:"",billing_address_1:null!==r?r.line1:"",billing_address_2:null!==r?r.line2:"",billing_city:null!==r?r.city:"",billing_state:null!==r?r.state:"",billing_postcode:null!==r?r.postal_code:"",shipping_first_name:"",shipping_last_name:"",shipping_company:"",shipping_country:"",shipping_address_1:"",shipping_address_2:"",shipping_city:"",shipping_state:"",shipping_postcode:"",shipping_method:[null===t.shippingOption?null:t.shippingOption.id],order_comments:"",payment_method:"stripe",ship_to_different_address:1,terms:1,stripe_source:a.id,payment_request_type:e};return o&&(u.shipping_first_name=o.recipient.split(" ").slice(0,1).join(" "),u.shipping_last_name=o.recipient.split(" ").slice(1).join(" "),u.shipping_company=o.organization,u.shipping_country=o.country,u.shipping_address_1=void 0===o.addressLine[0]?"":o.addressLine[0],u.shipping_address_2=void 0===o.addressLine[1]?"":o.addressLine[1],u.shipping_city=o.city,u.shipping_state=o.region,u.shipping_postcode=o.postalCode),u},getErrorMessageHTML:function(t){return i('<div class="woocommerce-error" />').text(t)},abortPayment:function(t,e){if(t.complete("fail"),i(".woocommerce-error").remove(),wc_stripe_payment_request_params.is_product_page){var a=i(".product");a.before(e),i("html, body").animate({scrollTop:a.prev(".woocommerce-error").offset().top},600)}else{var n=i(".shop_table.cart").closest("form");n.before(e),i("html, body").animate({scrollTop:n.prev(".woocommerce-error").offset().top},600)}},completePayment:function(t,e){p.block(),t.complete("success"),window.location=e},block:function(){i.blockUI({message:null,overlayCSS:{background:"#fff",opacity:.6}})},updateShippingOptions:function(t,e){var a={security:wc_stripe_payment_request_params.nonce.shipping,country:e.country,state:e.region,postcode:e.postalCode,city:e.city,address:void 0===e.addressLine[0]?"":e.addressLine[0],address_2:void 0===e.addressLine[1]?"":e.addressLine[1],payment_request_type:o,is_product_page:wc_stripe_payment_request_params.is_product_page};return i.ajax({type:"POST",data:a,url:p.getAjaxURL("get_shipping_options")})},updateShippingDetails:function(t,e){var a={security:wc_stripe_payment_request_params.nonce.update_shipping,shipping_method:[e.id],payment_request_type:o,is_product_page:wc_stripe_payment_request_params.is_product_page};return i.ajax({type:"POST",data:a,url:p.getAjaxURL("update_shipping_method")})},addToCart:function(){var t=i(".single_add_to_cart_button").val();i(".single_variation_wrap").length&&(t=i(".single_variation_wrap").find('input[name="product_id"]').val());var n={security:wc_stripe_payment_request_params.nonce.add_to_cart,product_id:t,qty:i(".quantity .qty").val(),attributes:i(".variations_form").length?p.getAttributes().data:[]},e=i("form.cart").serializeArray();return i.each(e,function(t,e){if(/^addon-/.test(e.name))if(/\[\]$/.test(e.name)){var a=e.name.substring(0,e.name.length-2);n[a]?n[a].push(e.value):n[a]=[e.value]}else n[e.name]=e.value}),i.ajax({type:"POST",data:n,url:p.getAjaxURL("add_to_cart")})},clearCart:function(){var t={security:wc_stripe_payment_request_params.nonce.clear_cart};return i.ajax({type:"POST",data:t,url:p.getAjaxURL("clear_cart"),success:function(t){}})},getRequestOptionsFromLocal:function(){return{total:wc_stripe_payment_request_params.product.total,currency:wc_stripe_payment_request_params.checkout.currency_code,country:wc_stripe_payment_request_params.checkout.country_code,requestPayerName:!0,requestPayerEmail:!0,requestPayerPhone:wc_stripe_payment_request_params.checkout.needs_payer_phone,requestShipping:wc_stripe_payment_request_params.product.requestShipping,displayItems:wc_stripe_payment_request_params.product.displayItems}},startPaymentRequest:function(t){var a,e;a=wc_stripe_payment_request_params.is_product_page?e=p.getRequestOptionsFromLocal():(e={total:t.order_data.total,currency:t.order_data.currency,country:t.order_data.country_code,requestPayerName:!0,requestPayerEmail:!0,requestPayerPhone:wc_stripe_payment_request_params.checkout.needs_payer_phone,requestShipping:!!t.shipping_required,displayItems:t.order_data.displayItems},t.order_data);var n=u.paymentRequest(e),s=u.elements({locale:wc_stripe_payment_request_params.button.locale}),r=p.createPaymentRequestButton(s,n);n.canMakePayment().then(function(t){t&&(o=t.applePay?"apple_pay":"payment_request_api",p.attachPaymentRequestButtonEventListeners(r,n),p.showPaymentRequestButton(r))}),n.on("shippingaddresschange",function(e){i.when(p.updateShippingOptions(a,e.shippingAddress)).then(function(t){e.updateWith({status:t.result,shippingOptions:t.shipping_options,total:t.total,displayItems:t.displayItems})})}),n.on("shippingoptionchange",function(e){i.when(p.updateShippingDetails(a,e.shippingOption)).then(function(t){"success"===t.result&&e.updateWith({status:"success",total:t.total,displayItems:t.displayItems}),"fail"===t.result&&e.updateWith({status:"fail"})})}),n.on("source",function(e){"no"===wc_stripe_payment_request_params.stripe.allow_prepaid_card&&"prepaid"===e.source.card.funding?p.abortPayment(e,p.getErrorMessageHTML(wc_stripe_payment_request_params.i18n.no_prepaid_card)):i.when(p.processSource(e,o)).then(function(t){"success"===t.result?p.completePayment(e,t.redirect):p.abortPayment(e,t.messages)})})},getSelectedProductData:function(){var t=i(".single_add_to_cart_button").val();i(".single_variation_wrap").length&&(t=i(".single_variation_wrap").find('input[name="product_id"]').val());var e=(i("#product-addons-total").data("price_data")||[]).reduce(function(t,e){return t+e.cost},0),a={security:wc_stripe_payment_request_params.nonce.get_selected_product_data,product_id:t,qty:i(".quantity .qty").val(),attributes:i(".variations_form").length?p.getAttributes().data:[],addon_value:e};return i.ajax({type:"POST",data:a,url:p.getAjaxURL("get_selected_product_data")})},debounce:function(n,s,r){var i;return function(){var t=this,e=arguments,a=r&&!i;clearTimeout(i),i=setTimeout(function(){i=null,r||s.apply(t,e)},n),a&&s.apply(t,e)}},createPaymentRequestButton:function(t,e){var a;if(wc_stripe_payment_request_params.button.is_custom&&(a=i(wc_stripe_payment_request_params.button.css_selector)).length)return a.data("isCustom",!0),a;if(wc_stripe_payment_request_params.button.is_branded){if(p.shouldUseGooglePayBrand())return(a=p.createGooglePayButton()).data("isBranded",!0),a;wc_stripe_payment_request_params.button.type="long"===wc_stripe_payment_request_params.button.branded_type?"buy":"default"}return t.create("paymentRequestButton",{paymentRequest:e,style:{paymentRequestButton:{type:wc_stripe_payment_request_params.button.type,theme:wc_stripe_payment_request_params.button.theme,height:wc_stripe_payment_request_params.button.height+"px"}}})},isCustomPaymentRequestButton:function(t){return t&&"function"==typeof t.data&&t.data("isCustom")},isBrandedPaymentRequestButton:function(t){return t&&"function"==typeof t.data&&t.data("isBranded")},shouldUseGooglePayBrand:function(){var t=window.navigator.userAgent.toLowerCase(),e=/chrome/.test(t)&&!/edge|edg|opr|brave\//.test(t)&&"Google Inc."===window.navigator.vendor,a=e&&window.navigator.brave;return e&&!a},createGooglePayButton:function(){var t=wc_stripe_payment_request_params.button.theme,e=wc_stripe_payment_request_params.button.branded_type,a=wc_stripe_payment_request_params.button.locale,n=wc_stripe_payment_request_params.button.height;t=["dark","light"].includes(t)?t:"light",e=["short","long"].includes(e)?e:"long";var s=i('<button type="button" id="wc-stripe-branded-button" aria-label="Google Pay" class="gpay-button"></button>');s.css("height",n+"px"),s.addClass(t+" "+e),"long"===e&&function(t,e,a){t.css("background-image","url("+e+")");var n=document.createElement("img");n.onerror=function(){t.css("background-image","url("+a+")")},n.src=e}(s,"https://www.gstatic.com/instantbuy/svg/"+t+"/"+a+".svg","https://www.gstatic.com/instantbuy/svg/"+t+"/en.svg");return s},attachPaymentRequestButtonEventListeners:function(t,e){wc_stripe_payment_request_params.is_product_page?p.attachProductPageEventListeners(t,e):p.attachCartPageEventListeners(t,e)},attachProductPageEventListeners:function(e,a){var n=[],s=i(".single_add_to_cart_button");e.on("click",function(t){return s.is(".disabled")?(t.preventDefault(),void(s.is(".wc-variation-is-unavailable")?window.alert(wc_add_to_cart_variation_params.i18n_unavailable_text):s.is(".wc-variation-selection-needed")&&window.alert(wc_add_to_cart_variation_params.i18n_make_a_selection_text))):0<n.length?(t.preventDefault(),void window.alert(n)):(p.addToCart(),void((p.isCustomPaymentRequestButton(e)||p.isBrandedPaymentRequestButton(e))&&(t.preventDefault(),a.show())))}),i(document.body).on("woocommerce_variation_has_changed",function(){p.blockPaymentRequestButton(e),i.when(p.getSelectedProductData()).then(function(t){i.when(a.update({total:t.total,displayItems:t.displayItems})).then(function(){p.unblockPaymentRequestButton(e)})})}),i(".quantity").on("input",".qty",function(){p.blockPaymentRequestButton(e)}),i(".quantity").on("input",".qty",p.debounce(250,function(){p.blockPaymentRequestButton(e),n=[],i.when(p.getSelectedProductData()).then(function(t){t.error?(n=[t.error],p.unblockPaymentRequestButton(e)):i.when(a.update({total:t.total,displayItems:t.displayItems})).then(function(){p.unblockPaymentRequestButton(e)})})}))},attachCartPageEventListeners:function(t,e){(wc_stripe_payment_request_params.button.is_custom&&p.isCustomPaymentRequestButton(t)||wc_stripe_payment_request_params.button.is_branded&&p.isBrandedPaymentRequestButton(t))&&t.on("click",function(t){t.preventDefault(),e.show()})},showPaymentRequestButton:function(t){p.isCustomPaymentRequestButton(t)?(t.addClass("is-active"),i("#wc-stripe-payment-request-wrapper, #wc-stripe-payment-request-button-separator").show()):p.isBrandedPaymentRequestButton(t)?(i("#wc-stripe-payment-request-wrapper, #wc-stripe-payment-request-button-separator").show(),i("#wc-stripe-payment-request-button").html(t)):i("#wc-stripe-payment-request-button").length&&(i("#wc-stripe-payment-request-wrapper, #wc-stripe-payment-request-button-separator").show(),t.mount("#wc-stripe-payment-request-button"))},blockPaymentRequestButton:function(t){i("#wc-stripe-payment-request-button").data("blockUI.isBlocked")||(i("#wc-stripe-payment-request-button").block({message:null}),p.isCustomPaymentRequestButton(t)&&t.addClass("is-blocked"))},unblockPaymentRequestButton:function(t){i("#wc-stripe-payment-request-button").unblock(),p.isCustomPaymentRequestButton(t)&&t.removeClass("is-blocked")},init:function(){wc_stripe_payment_request_params.is_product_page?p.startPaymentRequest(""):p.getCartDetails()}};p.init(),i(document.body).on("updated_cart_totals",function(){p.init()}),i(document.body).on("updated_checkout",function(){p.init()})});
|
assets/js/stripe.js
CHANGED
@@ -634,10 +634,9 @@ jQuery( function( $ ) {
|
|
634 |
*/
|
635 |
if ( wc_stripe_form.isSepaChosen() ) {
|
636 |
if ( 'invalid_owner_name' === result.error.code && wc_stripe_params.hasOwnProperty( result.error.code ) ) {
|
637 |
-
var error = '<ul class="woocommerce-error"><li /></ul>';
|
638 |
error.find( 'li' ).text( wc_stripe_params[ result.error.code ] ); // Prevent XSS
|
639 |
-
|
640 |
-
return wc_stripe_form.submitError( error );
|
641 |
}
|
642 |
}
|
643 |
|
634 |
*/
|
635 |
if ( wc_stripe_form.isSepaChosen() ) {
|
636 |
if ( 'invalid_owner_name' === result.error.code && wc_stripe_params.hasOwnProperty( result.error.code ) ) {
|
637 |
+
var error = $( '<div><ul class="woocommerce-error"><li /></ul></div>' );
|
638 |
error.find( 'li' ).text( wc_stripe_params[ result.error.code ] ); // Prevent XSS
|
639 |
+
return wc_stripe_form.submitError( error.html() );
|
|
|
640 |
}
|
641 |
}
|
642 |
|
assets/js/stripe.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(c){"use strict";try{var o=Stripe(wc_stripe_params.key)}catch(e){return void console.log(e)}var t,n,i,e=Object.keys(wc_stripe_params.elements_options).length?wc_stripe_params.elements_options:{},r=Object.keys(wc_stripe_params.sepa_elements_options).length?wc_stripe_params.sepa_elements_options:{},a=o.elements(e),s=a.create("iban",r),m={getAjaxURL:function(e){return wc_stripe_params.ajaxurl.toString().replace("%%endpoint%%","wc_stripe_"+e)},unmountElements:function(){"yes"===wc_stripe_params.inline_cc_form?t.unmount("#stripe-card-element"):(t.unmount("#stripe-card-element"),n.unmount("#stripe-exp-element"),i.unmount("#stripe-cvc-element"))},mountElements:function(){if(c("#stripe-card-element").length){if("yes"===wc_stripe_params.inline_cc_form)return t.mount("#stripe-card-element");t.mount("#stripe-card-element"),n.mount("#stripe-exp-element"),i.mount("#stripe-cvc-element")}},createElements:function(){var e={base:{iconColor:"#666EE8",color:"#31325F",fontSize:"15px","::placeholder":{color:"#CFD7E0"}}},r={focus:"focused",empty:"empty",invalid:"invalid"};e=wc_stripe_params.elements_styling?wc_stripe_params.elements_styling:e,r=wc_stripe_params.elements_classes?wc_stripe_params.elements_classes:r,"yes"===wc_stripe_params.inline_cc_form?(t=a.create("card",{style:e,hidePostalCode:!0})).addEventListener("change",function(e){m.onCCFormChange(),e.error&&c(document.body).trigger("stripeError",e)}):(t=a.create("cardNumber",{style:e,classes:r}),n=a.create("cardExpiry",{style:e,classes:r}),i=a.create("cardCvc",{style:e,classes:r}),t.addEventListener("change",function(e){m.onCCFormChange(),m.updateCardBrand(e.brand),e.error&&c(document.body).trigger("stripeError",e)}),n.addEventListener("change",function(e){m.onCCFormChange(),e.error&&c(document.body).trigger("stripeError",e)}),i.addEventListener("change",function(e){m.onCCFormChange(),e.error&&c(document.body).trigger("stripeError",e)})),"yes"===wc_stripe_params.is_checkout?c(document.body).on("updated_checkout",function(){c("#stripe-card-element").children().length||(t&&m.unmountElements(),m.mountElements(),c("#stripe-iban-element").length&&s.mount("#stripe-iban-element"))}):(c("form#add_payment_method").length||c("form#order_review").length)&&(m.mountElements(),c("#stripe-iban-element").length&&s.mount("#stripe-iban-element"))},updateCardBrand:function(e){var r={visa:"stripe-visa-brand",mastercard:"stripe-mastercard-brand",amex:"stripe-amex-brand",discover:"stripe-discover-brand",diners:"stripe-diners-brand",jcb:"stripe-jcb-brand",unknown:"stripe-credit-card-brand"},t=c(".stripe-card-brand"),n="stripe-credit-card-brand";e in r&&(n=r[e]),c.each(r,function(e,r){t.removeClass(r)}),t.addClass(n)},init:function(){"yes"!==wc_stripe_params.is_change_payment_page&&"yes"!==wc_stripe_params.is_pay_for_order_page||c(document.body).trigger("wc-credit-card-form-init"),c("form.woocommerce-checkout").length&&(this.form=c("form.woocommerce-checkout")),c("form.woocommerce-checkout").on("checkout_place_order_stripe checkout_place_order_stripe_bancontact checkout_place_order_stripe_sofort checkout_place_order_stripe_giropay checkout_place_order_stripe_ideal checkout_place_order_stripe_alipay checkout_place_order_stripe_sepa",this.onSubmit),c("form#order_review").length&&(this.form=c("form#order_review")),c("form#order_review, form#add_payment_method").on("submit",this.onSubmit),c("form#add_payment_method").length&&(this.form=c("form#add_payment_method")),c("form.woocommerce-checkout").on("change",this.reset),c(document).on("stripeError",this.onError).on("checkout_error",this.reset),s.on("change",this.onSepaError),c("#early_renewal_modal_submit").on("click",this.onEarlyRenewalSubmit),m.createElements(),window.addEventListener("hashchange",m.onHashChange),m.maybeConfirmIntent()},isStripeChosen:function(){return c("#payment_method_stripe, #payment_method_stripe_bancontact, #payment_method_stripe_sofort, #payment_method_stripe_giropay, #payment_method_stripe_ideal, #payment_method_stripe_alipay, #payment_method_stripe_sepa, #payment_method_stripe_eps, #payment_method_stripe_multibanco").is(":checked")||c("#payment_method_stripe").is(":checked")&&"new"===c('input[name="wc-stripe-payment-token"]:checked').val()||c("#payment_method_stripe_sepa").is(":checked")&&"new"===c('input[name="wc-stripe-payment-token"]:checked').val()},isStripeSaveCardChosen:function(){return c("#payment_method_stripe").is(":checked")&&c('input[name="wc-stripe-payment-token"]').is(":checked")&&"new"!==c('input[name="wc-stripe-payment-token"]:checked').val()||c("#payment_method_stripe_sepa").is(":checked")&&c('input[name="wc-stripe_sepa-payment-token"]').is(":checked")&&"new"!==c('input[name="wc-stripe_sepa-payment-token"]:checked').val()},isStripeCardChosen:function(){return c("#payment_method_stripe").is(":checked")},isBancontactChosen:function(){return c("#payment_method_stripe_bancontact").is(":checked")},isGiropayChosen:function(){return c("#payment_method_stripe_giropay").is(":checked")},isIdealChosen:function(){return c("#payment_method_stripe_ideal").is(":checked")},isSofortChosen:function(){return c("#payment_method_stripe_sofort").is(":checked")},isAlipayChosen:function(){return c("#payment_method_stripe_alipay").is(":checked")},isSepaChosen:function(){return c("#payment_method_stripe_sepa").is(":checked")},isP24Chosen:function(){return c("#payment_method_stripe_p24").is(":checked")},isEpsChosen:function(){return c("#payment_method_stripe_eps").is(":checked")},isMultibancoChosen:function(){return c("#payment_method_stripe_multibanco").is(":checked")},hasSource:function(){return 0<c("input.stripe-source").length},isMobile:function(){return!!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)},block:function(){m.isMobile()||m.form.block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){m.form&&m.form.unblock()},getSelectedPaymentElement:function(){return c('.payment_methods input[name="payment_method"]:checked')},getOwnerDetails:function(){var e=c("#billing_first_name").length?c("#billing_first_name").val():wc_stripe_params.billing_first_name,r=c("#billing_last_name").length?c("#billing_last_name").val():wc_stripe_params.billing_last_name,t={name:"",address:{},email:"",phone:""};return t.name=e,t.name=e&&r?e+" "+r:c("#stripe-payment-data").data("full-name"),t.email=c("#billing_email").val(),t.phone=c("#billing_phone").val(),(void 0===t.phone||t.phone.length<=0)&&delete t.phone,(void 0===t.email||t.email.length<=0)&&(c("#stripe-payment-data").data("email").length?t.email=c("#stripe-payment-data").data("email"):delete t.email),(void 0===t.name||t.name.length<=0)&&delete t.name,t.address.line1=c("#billing_address_1").val()||wc_stripe_params.billing_address_1,t.address.line2=c("#billing_address_2").val()||wc_stripe_params.billing_address_2,t.address.state=c("#billing_state").val()||wc_stripe_params.billing_state,t.address.city=c("#billing_city").val()||wc_stripe_params.billing_city,t.address.postal_code=c("#billing_postcode").val()||wc_stripe_params.billing_postcode,t.address.country=c("#billing_country").val()||wc_stripe_params.billing_country,{owner:t}},createSource:function(){var e=m.getOwnerDetails();return m.isSepaChosen()?(e.currency=c("#stripe-sepa_debit-payment-data").data("currency"),e.mandate={notification_method:wc_stripe_params.sepa_mandate_notification},e.type="sepa_debit",o.createSource(s,e).then(m.sourceResponse)):o.createSource(t,e).then(m.sourceResponse)},sourceResponse:function(e){if(e.error)return c(document.body).trigger("stripeError",e);m.reset(),m.form.append(c('<input type="hidden" />').addClass("stripe-source").attr("name","stripe_source").val(e.source.id)),c("form#add_payment_method").length&&c(m.form).off("submit",m.form.onSubmit),m.form.submit()},onSubmit:function(){return!m.isStripeChosen()||(!(!m.isStripeSaveCardChosen()&&!m.hasSource())||(!!(m.isBancontactChosen()||m.isGiropayChosen()||m.isIdealChosen()||m.isAlipayChosen()||m.isSofortChosen()||m.isP24Chosen()||m.isEpsChosen()||m.isMultibancoChosen())||(m.block(),m.createSource(),!1)))},onCCFormChange:function(){m.reset()},reset:function(){c(".wc-stripe-error, .stripe-source").remove()},onSepaError:function(e){var r=m.getSelectedPaymentElement().parents("li").eq(0).find(".stripe-source-errors");if(!e.error)return c(r).html("");console.log(e.error.message),c(r).html('<ul class="woocommerce_error woocommerce-error wc-stripe-error"><li /></ul>'),c(r).find("li").text(e.error.message)},onError:function(e,r){var t,n=r.error.message,o=m.getSelectedPaymentElement().closest("li"),i=o.find(".woocommerce-SavedPaymentMethods-tokenInput");if(i.length){var a=i.filter(":checked");t=a.closest(".woocommerce-SavedPaymentMethods-new").length?c("#wc-stripe-cc-form .stripe-source-errors"):a.closest("li").find(".stripe-source-errors")}else t=o.find(".stripe-source-errors");if(m.isSepaChosen()&&"invalid_owner_name"===r.error.code&&wc_stripe_params.hasOwnProperty(r.error.code)){var s='<ul class="woocommerce-error"><li /></ul>';return s.find("li").text(wc_stripe_params[r.error.code]),m.submitError(s)}"email_invalid"===r.error.code?n=wc_stripe_params.email_invalid:"invalid_request_error"!==r.error.type&&"api_connection_error"!==r.error.type&&"api_error"!==r.error.type&&"authentication_error"!==r.error.type&&"rate_limit_error"!==r.error.type||(n=wc_stripe_params.invalid_request_error),"card_error"===r.error.type&&wc_stripe_params.hasOwnProperty(r.error.code)&&(n=wc_stripe_params[r.error.code]),"validation_error"===r.error.type&&wc_stripe_params.hasOwnProperty(r.error.code)&&(n=wc_stripe_params[r.error.code]),m.reset(),c(".woocommerce-NoticeGroup-checkout").remove(),console.log(r.error.message),c(t).html('<ul class="woocommerce_error woocommerce-error wc-stripe-error"><li /></ul>'),c(t).find("li").text(n),c(".wc-stripe-error").length&&c("html, body").animate({scrollTop:c(".wc-stripe-error").offset().top-200},200),m.unblock(),c.unblockUI()},submitError:function(e){c(".woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message").remove(),m.form.prepend('<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-checkout">'+e+"</div>"),m.form.removeClass("processing").unblock(),m.form.find(".input-text, select, input:checkbox").blur();var r="";c("#add_payment_method").length&&(r=c("#add_payment_method")),c("#order_review").length&&(r=c("#order_review")),c("form.checkout").length&&(r=c("form.checkout")),r.length&&c("html, body").animate({scrollTop:r.offset().top-100},500),c(document.body).trigger("checkout_error"),m.unblock()},onHashChange:function(){var e=window.location.hash.match(/^#?confirm-(pi|si)-([^:]+):(.+)$/);if(e&&!(e.length<4)){var r=e[1],t=e[2],n=decodeURIComponent(e[3]);window.location.hash="",m.openIntentModal(t,n,!1,"si"===r)}},maybeConfirmIntent:function(){if(c("#stripe-intent-id").length&&c("#stripe-intent-return").length){var e=c("#stripe-intent-id").val(),r=c("#stripe-intent-return").val();m.openIntentModal(e,r,!0,!1)}},openIntentModal:function(e,t,r,n){o[n?"handleCardSetup":"handleCardPayment"](e).then(function(e){if(e.error)throw e.error;var r=e[n?"setupIntent":"paymentIntent"];"requires_capture"!==r.status&&"succeeded"!==r.status||(window.location=t)}).catch(function(e){if(r)return window.location=t;c(document.body).trigger("stripeError",{error:e}),m.form&&m.form.removeClass("processing"),c.get(t+"&is_ajax")})},onEarlyRenewalSubmit:function(e){return e.preventDefault(),c.ajax({url:c("#early_renewal_modal_submit").attr("href"),method:"get",success:function(e){var r=c.parseJSON(e);r.stripe_sca_required?m.openIntentModal(r.intent_secret,r.redirect_url,!0,!1):window.location=r.redirect_url}}),!1}};m.init()});
|
1 |
+
jQuery(function(c){"use strict";try{var o=Stripe(wc_stripe_params.key)}catch(e){return void console.log(e)}var t,n,i,e=Object.keys(wc_stripe_params.elements_options).length?wc_stripe_params.elements_options:{},r=Object.keys(wc_stripe_params.sepa_elements_options).length?wc_stripe_params.sepa_elements_options:{},a=o.elements(e),s=a.create("iban",r),m={getAjaxURL:function(e){return wc_stripe_params.ajaxurl.toString().replace("%%endpoint%%","wc_stripe_"+e)},unmountElements:function(){"yes"===wc_stripe_params.inline_cc_form?t.unmount("#stripe-card-element"):(t.unmount("#stripe-card-element"),n.unmount("#stripe-exp-element"),i.unmount("#stripe-cvc-element"))},mountElements:function(){if(c("#stripe-card-element").length){if("yes"===wc_stripe_params.inline_cc_form)return t.mount("#stripe-card-element");t.mount("#stripe-card-element"),n.mount("#stripe-exp-element"),i.mount("#stripe-cvc-element")}},createElements:function(){var e={base:{iconColor:"#666EE8",color:"#31325F",fontSize:"15px","::placeholder":{color:"#CFD7E0"}}},r={focus:"focused",empty:"empty",invalid:"invalid"};e=wc_stripe_params.elements_styling?wc_stripe_params.elements_styling:e,r=wc_stripe_params.elements_classes?wc_stripe_params.elements_classes:r,"yes"===wc_stripe_params.inline_cc_form?(t=a.create("card",{style:e,hidePostalCode:!0})).addEventListener("change",function(e){m.onCCFormChange(),e.error&&c(document.body).trigger("stripeError",e)}):(t=a.create("cardNumber",{style:e,classes:r}),n=a.create("cardExpiry",{style:e,classes:r}),i=a.create("cardCvc",{style:e,classes:r}),t.addEventListener("change",function(e){m.onCCFormChange(),m.updateCardBrand(e.brand),e.error&&c(document.body).trigger("stripeError",e)}),n.addEventListener("change",function(e){m.onCCFormChange(),e.error&&c(document.body).trigger("stripeError",e)}),i.addEventListener("change",function(e){m.onCCFormChange(),e.error&&c(document.body).trigger("stripeError",e)})),"yes"===wc_stripe_params.is_checkout?c(document.body).on("updated_checkout",function(){c("#stripe-card-element").children().length||(t&&m.unmountElements(),m.mountElements(),c("#stripe-iban-element").length&&s.mount("#stripe-iban-element"))}):(c("form#add_payment_method").length||c("form#order_review").length)&&(m.mountElements(),c("#stripe-iban-element").length&&s.mount("#stripe-iban-element"))},updateCardBrand:function(e){var r={visa:"stripe-visa-brand",mastercard:"stripe-mastercard-brand",amex:"stripe-amex-brand",discover:"stripe-discover-brand",diners:"stripe-diners-brand",jcb:"stripe-jcb-brand",unknown:"stripe-credit-card-brand"},t=c(".stripe-card-brand"),n="stripe-credit-card-brand";e in r&&(n=r[e]),c.each(r,function(e,r){t.removeClass(r)}),t.addClass(n)},init:function(){"yes"!==wc_stripe_params.is_change_payment_page&&"yes"!==wc_stripe_params.is_pay_for_order_page||c(document.body).trigger("wc-credit-card-form-init"),c("form.woocommerce-checkout").length&&(this.form=c("form.woocommerce-checkout")),c("form.woocommerce-checkout").on("checkout_place_order_stripe checkout_place_order_stripe_bancontact checkout_place_order_stripe_sofort checkout_place_order_stripe_giropay checkout_place_order_stripe_ideal checkout_place_order_stripe_alipay checkout_place_order_stripe_sepa",this.onSubmit),c("form#order_review").length&&(this.form=c("form#order_review")),c("form#order_review, form#add_payment_method").on("submit",this.onSubmit),c("form#add_payment_method").length&&(this.form=c("form#add_payment_method")),c("form.woocommerce-checkout").on("change",this.reset),c(document).on("stripeError",this.onError).on("checkout_error",this.reset),s.on("change",this.onSepaError),c("#early_renewal_modal_submit").on("click",this.onEarlyRenewalSubmit),m.createElements(),window.addEventListener("hashchange",m.onHashChange),m.maybeConfirmIntent()},isStripeChosen:function(){return c("#payment_method_stripe, #payment_method_stripe_bancontact, #payment_method_stripe_sofort, #payment_method_stripe_giropay, #payment_method_stripe_ideal, #payment_method_stripe_alipay, #payment_method_stripe_sepa, #payment_method_stripe_eps, #payment_method_stripe_multibanco").is(":checked")||c("#payment_method_stripe").is(":checked")&&"new"===c('input[name="wc-stripe-payment-token"]:checked').val()||c("#payment_method_stripe_sepa").is(":checked")&&"new"===c('input[name="wc-stripe-payment-token"]:checked').val()},isStripeSaveCardChosen:function(){return c("#payment_method_stripe").is(":checked")&&c('input[name="wc-stripe-payment-token"]').is(":checked")&&"new"!==c('input[name="wc-stripe-payment-token"]:checked').val()||c("#payment_method_stripe_sepa").is(":checked")&&c('input[name="wc-stripe_sepa-payment-token"]').is(":checked")&&"new"!==c('input[name="wc-stripe_sepa-payment-token"]:checked').val()},isStripeCardChosen:function(){return c("#payment_method_stripe").is(":checked")},isBancontactChosen:function(){return c("#payment_method_stripe_bancontact").is(":checked")},isGiropayChosen:function(){return c("#payment_method_stripe_giropay").is(":checked")},isIdealChosen:function(){return c("#payment_method_stripe_ideal").is(":checked")},isSofortChosen:function(){return c("#payment_method_stripe_sofort").is(":checked")},isAlipayChosen:function(){return c("#payment_method_stripe_alipay").is(":checked")},isSepaChosen:function(){return c("#payment_method_stripe_sepa").is(":checked")},isP24Chosen:function(){return c("#payment_method_stripe_p24").is(":checked")},isEpsChosen:function(){return c("#payment_method_stripe_eps").is(":checked")},isMultibancoChosen:function(){return c("#payment_method_stripe_multibanco").is(":checked")},hasSource:function(){return 0<c("input.stripe-source").length},isMobile:function(){return!!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)},block:function(){m.isMobile()||m.form.block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){m.form&&m.form.unblock()},getSelectedPaymentElement:function(){return c('.payment_methods input[name="payment_method"]:checked')},getOwnerDetails:function(){var e=c("#billing_first_name").length?c("#billing_first_name").val():wc_stripe_params.billing_first_name,r=c("#billing_last_name").length?c("#billing_last_name").val():wc_stripe_params.billing_last_name,t={name:"",address:{},email:"",phone:""};return t.name=e,t.name=e&&r?e+" "+r:c("#stripe-payment-data").data("full-name"),t.email=c("#billing_email").val(),t.phone=c("#billing_phone").val(),(void 0===t.phone||t.phone.length<=0)&&delete t.phone,(void 0===t.email||t.email.length<=0)&&(c("#stripe-payment-data").data("email").length?t.email=c("#stripe-payment-data").data("email"):delete t.email),(void 0===t.name||t.name.length<=0)&&delete t.name,t.address.line1=c("#billing_address_1").val()||wc_stripe_params.billing_address_1,t.address.line2=c("#billing_address_2").val()||wc_stripe_params.billing_address_2,t.address.state=c("#billing_state").val()||wc_stripe_params.billing_state,t.address.city=c("#billing_city").val()||wc_stripe_params.billing_city,t.address.postal_code=c("#billing_postcode").val()||wc_stripe_params.billing_postcode,t.address.country=c("#billing_country").val()||wc_stripe_params.billing_country,{owner:t}},createSource:function(){var e=m.getOwnerDetails();return m.isSepaChosen()?(e.currency=c("#stripe-sepa_debit-payment-data").data("currency"),e.mandate={notification_method:wc_stripe_params.sepa_mandate_notification},e.type="sepa_debit",o.createSource(s,e).then(m.sourceResponse)):o.createSource(t,e).then(m.sourceResponse)},sourceResponse:function(e){if(e.error)return c(document.body).trigger("stripeError",e);m.reset(),m.form.append(c('<input type="hidden" />').addClass("stripe-source").attr("name","stripe_source").val(e.source.id)),c("form#add_payment_method").length&&c(m.form).off("submit",m.form.onSubmit),m.form.submit()},onSubmit:function(){return!m.isStripeChosen()||(!(!m.isStripeSaveCardChosen()&&!m.hasSource())||(!!(m.isBancontactChosen()||m.isGiropayChosen()||m.isIdealChosen()||m.isAlipayChosen()||m.isSofortChosen()||m.isP24Chosen()||m.isEpsChosen()||m.isMultibancoChosen())||(m.block(),m.createSource(),!1)))},onCCFormChange:function(){m.reset()},reset:function(){c(".wc-stripe-error, .stripe-source").remove()},onSepaError:function(e){var r=m.getSelectedPaymentElement().parents("li").eq(0).find(".stripe-source-errors");if(!e.error)return c(r).html("");console.log(e.error.message),c(r).html('<ul class="woocommerce_error woocommerce-error wc-stripe-error"><li /></ul>'),c(r).find("li").text(e.error.message)},onError:function(e,r){var t,n=r.error.message,o=m.getSelectedPaymentElement().closest("li"),i=o.find(".woocommerce-SavedPaymentMethods-tokenInput");if(i.length){var a=i.filter(":checked");t=a.closest(".woocommerce-SavedPaymentMethods-new").length?c("#wc-stripe-cc-form .stripe-source-errors"):a.closest("li").find(".stripe-source-errors")}else t=o.find(".stripe-source-errors");if(m.isSepaChosen()&&"invalid_owner_name"===r.error.code&&wc_stripe_params.hasOwnProperty(r.error.code)){var s=c('<div><ul class="woocommerce-error"><li /></ul></div>');return s.find("li").text(wc_stripe_params[r.error.code]),m.submitError(s.html())}"email_invalid"===r.error.code?n=wc_stripe_params.email_invalid:"invalid_request_error"!==r.error.type&&"api_connection_error"!==r.error.type&&"api_error"!==r.error.type&&"authentication_error"!==r.error.type&&"rate_limit_error"!==r.error.type||(n=wc_stripe_params.invalid_request_error),"card_error"===r.error.type&&wc_stripe_params.hasOwnProperty(r.error.code)&&(n=wc_stripe_params[r.error.code]),"validation_error"===r.error.type&&wc_stripe_params.hasOwnProperty(r.error.code)&&(n=wc_stripe_params[r.error.code]),m.reset(),c(".woocommerce-NoticeGroup-checkout").remove(),console.log(r.error.message),c(t).html('<ul class="woocommerce_error woocommerce-error wc-stripe-error"><li /></ul>'),c(t).find("li").text(n),c(".wc-stripe-error").length&&c("html, body").animate({scrollTop:c(".wc-stripe-error").offset().top-200},200),m.unblock(),c.unblockUI()},submitError:function(e){c(".woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message").remove(),m.form.prepend('<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-checkout">'+e+"</div>"),m.form.removeClass("processing").unblock(),m.form.find(".input-text, select, input:checkbox").blur();var r="";c("#add_payment_method").length&&(r=c("#add_payment_method")),c("#order_review").length&&(r=c("#order_review")),c("form.checkout").length&&(r=c("form.checkout")),r.length&&c("html, body").animate({scrollTop:r.offset().top-100},500),c(document.body).trigger("checkout_error"),m.unblock()},onHashChange:function(){var e=window.location.hash.match(/^#?confirm-(pi|si)-([^:]+):(.+)$/);if(e&&!(e.length<4)){var r=e[1],t=e[2],n=decodeURIComponent(e[3]);window.location.hash="",m.openIntentModal(t,n,!1,"si"===r)}},maybeConfirmIntent:function(){if(c("#stripe-intent-id").length&&c("#stripe-intent-return").length){var e=c("#stripe-intent-id").val(),r=c("#stripe-intent-return").val();m.openIntentModal(e,r,!0,!1)}},openIntentModal:function(e,t,r,n){o[n?"handleCardSetup":"handleCardPayment"](e).then(function(e){if(e.error)throw e.error;var r=e[n?"setupIntent":"paymentIntent"];"requires_capture"!==r.status&&"succeeded"!==r.status||(window.location=t)}).catch(function(e){if(r)return window.location=t;c(document.body).trigger("stripeError",{error:e}),m.form&&m.form.removeClass("processing"),c.get(t+"&is_ajax")})},onEarlyRenewalSubmit:function(e){return e.preventDefault(),c.ajax({url:c("#early_renewal_modal_submit").attr("href"),method:"get",success:function(e){var r=c.parseJSON(e);r.stripe_sca_required?m.openIntentModal(r.intent_secret,r.redirect_url,!0,!1):window.location=r.redirect_url}}),!1}};m.init()});
|
changelog.txt
CHANGED
@@ -1,5 +1,14 @@
|
|
1 |
*** Changelog ***
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
= 4.5.2 - 2020-08-19 =
|
4 |
* Fix - Allow extension to attempt to run in all countries, not just officially supported ones
|
5 |
|
1 |
*** Changelog ***
|
2 |
|
3 |
+
= 4.5.3 - 2020-10-06 =
|
4 |
+
* Fix - Apple Pay now requires a buyer's phone number only if it's required in Appearance > Customize > WooCommerce > Checkout.
|
5 |
+
* Add - Allow toggling secrets temporarily to visible in settings.
|
6 |
+
* Fix - Properly display field required error when SEPA method is used.
|
7 |
+
* Tweak - Update payment request button description to include link to Stripe dashboard Apple Pay settings.
|
8 |
+
* Add - Add off session payment intent filter, props rfair404.
|
9 |
+
* Tweak - Update contributors list.
|
10 |
+
* Add - Link from Payment Request button setting to Apple Pay settings in Stripe dashboard.
|
11 |
+
|
12 |
= 4.5.2 - 2020-08-19 =
|
13 |
* Fix - Allow extension to attempt to run in all countries, not just officially supported ones
|
14 |
|
includes/abstracts/abstract-wc-stripe-payment-gateway.php
CHANGED
@@ -1379,6 +1379,16 @@ abstract class WC_Stripe_Payment_Gateway extends WC_Payment_Gateway_CC {
|
|
1379 |
if ( isset( $full_request['source'] ) ) {
|
1380 |
$request['source'] = $full_request['source'];
|
1381 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1382 |
|
1383 |
$level3_data = $this->get_level3_data_from_order( $order );
|
1384 |
$intent = WC_Stripe_API::request_with_level3_data(
|
1379 |
if ( isset( $full_request['source'] ) ) {
|
1380 |
$request['source'] = $full_request['source'];
|
1381 |
}
|
1382 |
+
|
1383 |
+
/**
|
1384 |
+
* Filter the value of the request.
|
1385 |
+
*
|
1386 |
+
* @since 4.5.0
|
1387 |
+
* @param array $request
|
1388 |
+
* @param WC_Order $order
|
1389 |
+
* @param object $source
|
1390 |
+
*/
|
1391 |
+
$request = apply_filters('wc_stripe_generate_create_intent_request', $request, $order, $prepared_source );
|
1392 |
|
1393 |
$level3_data = $this->get_level3_data_from_order( $order );
|
1394 |
$intent = WC_Stripe_API::request_with_level3_data(
|
includes/admin/stripe-settings.php
CHANGED
@@ -107,8 +107,15 @@ return apply_filters(
|
|
107 |
),
|
108 |
'payment_request' => array(
|
109 |
'title' => __( 'Payment Request Buttons', 'woocommerce-gateway-stripe' ),
|
110 |
-
|
111 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
'type' => 'checkbox',
|
113 |
'description' => __( 'If enabled, users will be able to pay using Apple Pay or Chrome Payment Request if supported by the browser.', 'woocommerce-gateway-stripe' ),
|
114 |
'default' => 'yes',
|
107 |
),
|
108 |
'payment_request' => array(
|
109 |
'title' => __( 'Payment Request Buttons', 'woocommerce-gateway-stripe' ),
|
110 |
+
'label' => sprintf(
|
111 |
+
/* translators: 1) br tag 2) Stripe anchor tag 3) Apple anchor tag 4) Stripe dashboard opening anchor tag 5) Stripe dashboard closing anchor tag */
|
112 |
+
__( 'Enable Payment Request Buttons. (Apple Pay/Google Pay) %1$sBy using Apple Pay, you agree to %2$s and %3$s\'s terms of service. %4$sLog into your Stripe dashboard%5$s to complete or update your Apple Pay setup.', 'woocommerce-gateway-stripe' ),
|
113 |
+
'<br />',
|
114 |
+
'<a href="https://stripe.com/apple-pay/legal" target="_blank">Stripe</a>',
|
115 |
+
'<a href="https://developer.apple.com/apple-pay/acceptable-use-guidelines-for-websites/" target="_blank">Apple</a>',
|
116 |
+
'<a href="https://dashboard.stripe.com/settings/payments/apple_pay" target="_blank">',
|
117 |
+
'</a>'
|
118 |
+
),
|
119 |
'type' => 'checkbox',
|
120 |
'description' => __( 'If enabled, users will be able to pay using Apple Pay or Chrome Payment Request if supported by the browser.', 'woocommerce-gateway-stripe' ),
|
121 |
'default' => 'yes',
|
includes/class-wc-stripe-apple-pay-registration.php
CHANGED
@@ -38,13 +38,6 @@ class WC_Stripe_Apple_Pay_Registration {
|
|
38 |
*/
|
39 |
public $apple_pay_domain_set;
|
40 |
|
41 |
-
/**
|
42 |
-
* Testmode.
|
43 |
-
*
|
44 |
-
* @var bool
|
45 |
-
*/
|
46 |
-
public $testmode;
|
47 |
-
|
48 |
/**
|
49 |
* Secret Key.
|
50 |
*
|
@@ -60,15 +53,15 @@ class WC_Stripe_Apple_Pay_Registration {
|
|
60 |
public $apple_pay_verify_notice;
|
61 |
|
62 |
public function __construct() {
|
63 |
-
add_action( 'woocommerce_stripe_updated', array( $this, '
|
|
|
64 |
|
65 |
$this->stripe_settings = get_option( 'woocommerce_stripe_settings', array() );
|
66 |
$this->stripe_enabled = $this->get_option( 'enabled' );
|
67 |
$this->payment_request = 'yes' === $this->get_option( 'payment_request', 'yes' );
|
68 |
$this->apple_pay_domain_set = 'yes' === $this->get_option( 'apple_pay_domain_set', 'no' );
|
69 |
$this->apple_pay_verify_notice = '';
|
70 |
-
$this->
|
71 |
-
$this->secret_key = $this->testmode ? $this->get_option( 'test_secret_key' ) : $this->get_option( 'secret_key' );
|
72 |
|
73 |
if ( empty( $this->stripe_settings ) ) {
|
74 |
return;
|
@@ -99,6 +92,17 @@ class WC_Stripe_Apple_Pay_Registration {
|
|
99 |
return $default;
|
100 |
}
|
101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
/**
|
103 |
* Initializes Apple Pay process on settings page.
|
104 |
*
|
@@ -113,7 +117,7 @@ class WC_Stripe_Apple_Pay_Registration {
|
|
113 |
isset( $_GET['section'] ) && 'stripe' === $_GET['section'] &&
|
114 |
$this->payment_request
|
115 |
) {
|
116 |
-
$this->
|
117 |
}
|
118 |
}
|
119 |
|
@@ -124,7 +128,7 @@ class WC_Stripe_Apple_Pay_Registration {
|
|
124 |
* @version 3.1.0
|
125 |
* @param string $secret_key
|
126 |
*/
|
127 |
-
private function
|
128 |
if ( empty( $secret_key ) ) {
|
129 |
throw new Exception( __( 'Unable to verify domain - missing secret key.', 'woocommerce-gateway-stripe' ) );
|
130 |
}
|
@@ -164,7 +168,7 @@ class WC_Stripe_Apple_Pay_Registration {
|
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
-
* Updates the Apple Pay domain
|
168 |
*
|
169 |
* @param bool $force True to create the file if it didn't exist, false for just updating the file if needed.
|
170 |
*
|
@@ -172,7 +176,7 @@ class WC_Stripe_Apple_Pay_Registration {
|
|
172 |
* @since 4.3.0
|
173 |
* @return bool True on success, false on failure.
|
174 |
*/
|
175 |
-
public function
|
176 |
$path = untrailingslashit( $_SERVER['DOCUMENT_ROOT'] );
|
177 |
$dir = '.well-known';
|
178 |
$file = 'apple-developer-merchantid-domain-association';
|
@@ -206,8 +210,8 @@ class WC_Stripe_Apple_Pay_Registration {
|
|
206 |
* @since 3.1.0
|
207 |
* @version 3.1.0
|
208 |
*/
|
209 |
-
public function
|
210 |
-
if ( ! $this->
|
211 |
$this->stripe_settings['apple_pay_domain_set'] = 'no';
|
212 |
update_option( 'woocommerce_stripe_settings', $this->stripe_settings );
|
213 |
return;
|
@@ -216,7 +220,7 @@ class WC_Stripe_Apple_Pay_Registration {
|
|
216 |
try {
|
217 |
// At this point then the domain association folder and file should be available.
|
218 |
// Proceed to verify/and or verify again.
|
219 |
-
$this->
|
220 |
|
221 |
// No errors to this point, verification success!
|
222 |
$this->stripe_settings['apple_pay_domain_set'] = 'yes';
|
@@ -235,6 +239,38 @@ class WC_Stripe_Apple_Pay_Registration {
|
|
235 |
}
|
236 |
}
|
237 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
/**
|
239 |
* Display any admin notices to the user.
|
240 |
*
|
38 |
*/
|
39 |
public $apple_pay_domain_set;
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
/**
|
42 |
* Secret Key.
|
43 |
*
|
53 |
public $apple_pay_verify_notice;
|
54 |
|
55 |
public function __construct() {
|
56 |
+
add_action( 'woocommerce_stripe_updated', array( $this, 'verify_domain_if_needed' ) );
|
57 |
+
add_action( 'update_option_woocommerce_stripe_settings', array( $this, 'verify_domain_on_new_secret_key' ), 10, 2 );
|
58 |
|
59 |
$this->stripe_settings = get_option( 'woocommerce_stripe_settings', array() );
|
60 |
$this->stripe_enabled = $this->get_option( 'enabled' );
|
61 |
$this->payment_request = 'yes' === $this->get_option( 'payment_request', 'yes' );
|
62 |
$this->apple_pay_domain_set = 'yes' === $this->get_option( 'apple_pay_domain_set', 'no' );
|
63 |
$this->apple_pay_verify_notice = '';
|
64 |
+
$this->secret_key = $this->get_secret_key();
|
|
|
65 |
|
66 |
if ( empty( $this->stripe_settings ) ) {
|
67 |
return;
|
92 |
return $default;
|
93 |
}
|
94 |
|
95 |
+
/**
|
96 |
+
* Gets the Stripe secret key for the current mode.
|
97 |
+
*
|
98 |
+
* @since 4.5.3
|
99 |
+
* @return string Secret key.
|
100 |
+
*/
|
101 |
+
private function get_secret_key() {
|
102 |
+
$testmode = 'yes' === $this->get_option( 'testmode', 'no' );
|
103 |
+
return $testmode ? $this->get_option( 'test_secret_key' ) : $this->get_option( 'secret_key' );
|
104 |
+
}
|
105 |
+
|
106 |
/**
|
107 |
* Initializes Apple Pay process on settings page.
|
108 |
*
|
117 |
isset( $_GET['section'] ) && 'stripe' === $_GET['section'] &&
|
118 |
$this->payment_request
|
119 |
) {
|
120 |
+
$this->verify_domain();
|
121 |
}
|
122 |
}
|
123 |
|
128 |
* @version 3.1.0
|
129 |
* @param string $secret_key
|
130 |
*/
|
131 |
+
private function register_domain_with_apple( $secret_key = '' ) {
|
132 |
if ( empty( $secret_key ) ) {
|
133 |
throw new Exception( __( 'Unable to verify domain - missing secret key.', 'woocommerce-gateway-stripe' ) );
|
134 |
}
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
+
* Updates the Apple Pay domain association file.
|
172 |
*
|
173 |
* @param bool $force True to create the file if it didn't exist, false for just updating the file if needed.
|
174 |
*
|
176 |
* @since 4.3.0
|
177 |
* @return bool True on success, false on failure.
|
178 |
*/
|
179 |
+
public function update_domain_association_file( $force = false ) {
|
180 |
$path = untrailingslashit( $_SERVER['DOCUMENT_ROOT'] );
|
181 |
$dir = '.well-known';
|
182 |
$file = 'apple-developer-merchantid-domain-association';
|
210 |
* @since 3.1.0
|
211 |
* @version 3.1.0
|
212 |
*/
|
213 |
+
public function verify_domain() {
|
214 |
+
if ( ! $this->update_domain_association_file( true ) ) {
|
215 |
$this->stripe_settings['apple_pay_domain_set'] = 'no';
|
216 |
update_option( 'woocommerce_stripe_settings', $this->stripe_settings );
|
217 |
return;
|
220 |
try {
|
221 |
// At this point then the domain association folder and file should be available.
|
222 |
// Proceed to verify/and or verify again.
|
223 |
+
$this->register_domain_with_apple( $this->secret_key );
|
224 |
|
225 |
// No errors to this point, verification success!
|
226 |
$this->stripe_settings['apple_pay_domain_set'] = 'yes';
|
239 |
}
|
240 |
}
|
241 |
|
242 |
+
/**
|
243 |
+
* Conditionally process the Apple Pay domain verification after a new secret key is set.
|
244 |
+
*
|
245 |
+
* @since 4.5.3
|
246 |
+
* @version 4.5.3
|
247 |
+
*/
|
248 |
+
public function verify_domain_on_new_secret_key( $prev_settings, $settings ) {
|
249 |
+
$this->stripe_settings = $prev_settings;
|
250 |
+
$prev_secret_key = $this->get_secret_key();
|
251 |
+
|
252 |
+
$this->stripe_settings = $settings;
|
253 |
+
$this->secret_key = $this->get_secret_key();
|
254 |
+
|
255 |
+
if ( ! empty( $this->secret_key ) && $this->secret_key !== $prev_secret_key ) {
|
256 |
+
$this->verify_domain();
|
257 |
+
}
|
258 |
+
}
|
259 |
+
|
260 |
+
/**
|
261 |
+
* Process the Apple Pay domain verification if not already done - otherwise just update the file.
|
262 |
+
*
|
263 |
+
* @since 4.5.3
|
264 |
+
* @version 4.5.3
|
265 |
+
*/
|
266 |
+
public function verify_domain_if_needed() {
|
267 |
+
if ( $this->apple_pay_domain_set ) {
|
268 |
+
$this->update_domain_association_file();
|
269 |
+
} else {
|
270 |
+
$this->verify_domain();
|
271 |
+
}
|
272 |
+
}
|
273 |
+
|
274 |
/**
|
275 |
* Display any admin notices to the user.
|
276 |
*
|
includes/payment-methods/class-wc-stripe-payment-request.php
CHANGED
@@ -61,16 +61,16 @@ class WC_Stripe_Payment_Request {
|
|
61 |
/**
|
62 |
* Initialize class actions.
|
63 |
*
|
64 |
-
* @since
|
65 |
* @version 4.0.0
|
66 |
*/
|
67 |
public function __construct() {
|
68 |
-
self::$_this
|
69 |
-
$this->stripe_settings
|
70 |
-
$this->testmode
|
71 |
-
$this->publishable_key
|
72 |
-
$this->secret_key
|
73 |
-
$this->total_label
|
74 |
|
75 |
if ( $this->testmode ) {
|
76 |
$this->publishable_key = ! empty( $this->stripe_settings['test_publishable_key'] ) ? $this->stripe_settings['test_publishable_key'] : '';
|
@@ -101,8 +101,8 @@ class WC_Stripe_Payment_Request {
|
|
101 |
/**
|
102 |
* Checks if keys are set and valid.
|
103 |
*
|
104 |
-
* @since
|
105 |
-
* @return
|
106 |
*/
|
107 |
public function are_keys_set() {
|
108 |
// NOTE: updates to this function should be added to are_keys_set()
|
@@ -119,7 +119,7 @@ class WC_Stripe_Payment_Request {
|
|
119 |
/**
|
120 |
* Get this instance.
|
121 |
*
|
122 |
-
* @since
|
123 |
* @return class
|
124 |
*/
|
125 |
public static function instance() {
|
@@ -130,7 +130,8 @@ class WC_Stripe_Payment_Request {
|
|
130 |
* Sets the WC customer session if one is not set.
|
131 |
* This is needed so nonces can be verified by AJAX Request.
|
132 |
*
|
133 |
-
* @since
|
|
|
134 |
*/
|
135 |
public function set_session() {
|
136 |
if ( ! is_product() || ( isset( WC()->session ) && WC()->session->has_session() ) ) {
|
@@ -143,8 +144,9 @@ class WC_Stripe_Payment_Request {
|
|
143 |
/**
|
144 |
* Initialize hooks.
|
145 |
*
|
146 |
-
* @since
|
147 |
* @version 4.0.0
|
|
|
148 |
*/
|
149 |
public function init() {
|
150 |
add_action( 'wp_enqueue_scripts', array( $this, 'scripts' ) );
|
@@ -176,9 +178,9 @@ class WC_Stripe_Payment_Request {
|
|
176 |
/**
|
177 |
* Gets the button type.
|
178 |
*
|
179 |
-
* @since
|
180 |
* @version 4.0.0
|
181 |
-
* @return
|
182 |
*/
|
183 |
public function get_button_type() {
|
184 |
return isset( $this->stripe_settings['payment_request_button_type'] ) ? $this->stripe_settings['payment_request_button_type'] : 'default';
|
@@ -187,9 +189,9 @@ class WC_Stripe_Payment_Request {
|
|
187 |
/**
|
188 |
* Gets the button theme.
|
189 |
*
|
190 |
-
* @since
|
191 |
* @version 4.0.0
|
192 |
-
* @return
|
193 |
*/
|
194 |
public function get_button_theme() {
|
195 |
return isset( $this->stripe_settings['payment_request_button_theme'] ) ? $this->stripe_settings['payment_request_button_theme'] : 'dark';
|
@@ -198,9 +200,9 @@ class WC_Stripe_Payment_Request {
|
|
198 |
/**
|
199 |
* Gets the button height.
|
200 |
*
|
201 |
-
* @since
|
202 |
* @version 4.0.0
|
203 |
-
* @return
|
204 |
*/
|
205 |
public function get_button_height() {
|
206 |
return isset( $this->stripe_settings['payment_request_button_height'] ) ? str_replace( 'px', '', $this->stripe_settings['payment_request_button_height'] ) : '64';
|
@@ -209,9 +211,9 @@ class WC_Stripe_Payment_Request {
|
|
209 |
/**
|
210 |
* Checks if the button is branded.
|
211 |
*
|
212 |
-
* @since
|
213 |
* @version 4.4.0
|
214 |
-
* @return
|
215 |
*/
|
216 |
public function is_branded_button() {
|
217 |
return 'branded' === $this->get_button_type();
|
@@ -220,9 +222,9 @@ class WC_Stripe_Payment_Request {
|
|
220 |
/**
|
221 |
* Gets the branded button type.
|
222 |
*
|
223 |
-
* @since
|
224 |
* @version 4.4.0
|
225 |
-
* @return
|
226 |
*/
|
227 |
public function get_button_branded_type() {
|
228 |
return isset( $this->stripe_settings['payment_request_button_branded_type'] ) ? $this->stripe_settings['payment_request_button_branded_type'] : 'default';
|
@@ -231,9 +233,9 @@ class WC_Stripe_Payment_Request {
|
|
231 |
/**
|
232 |
* Checks if the button is custom.
|
233 |
*
|
234 |
-
* @since
|
235 |
* @version 4.4.0
|
236 |
-
* @return
|
237 |
*/
|
238 |
public function is_custom_button() {
|
239 |
return 'custom' === $this->get_button_type();
|
@@ -242,9 +244,9 @@ class WC_Stripe_Payment_Request {
|
|
242 |
/**
|
243 |
* Returns custom button css selector.
|
244 |
*
|
245 |
-
* @since
|
246 |
* @version 4.4.0
|
247 |
-
* @return
|
248 |
*/
|
249 |
public function custom_button_selector() {
|
250 |
return $this->is_custom_button() ? '#wc-stripe-custom-button' : '';
|
@@ -253,9 +255,9 @@ class WC_Stripe_Payment_Request {
|
|
253 |
/**
|
254 |
* Gets the custom button label.
|
255 |
*
|
256 |
-
* @since
|
257 |
* @version 4.4.0
|
258 |
-
* @return
|
259 |
*/
|
260 |
public function get_button_label() {
|
261 |
return isset( $this->stripe_settings['payment_request_button_label'] ) ? $this->stripe_settings['payment_request_button_label'] : 'Buy now';
|
@@ -264,8 +266,9 @@ class WC_Stripe_Payment_Request {
|
|
264 |
/**
|
265 |
* Gets the product data for the currently viewed page
|
266 |
*
|
267 |
-
* @since
|
268 |
* @version 4.0.0
|
|
|
269 |
*/
|
270 |
public function get_product_data() {
|
271 |
if ( ! is_product() ) {
|
@@ -334,7 +337,6 @@ class WC_Stripe_Payment_Request {
|
|
334 |
|
335 |
/**
|
336 |
* Filters the gateway title to reflect Payment Request type
|
337 |
-
*
|
338 |
*/
|
339 |
public function filter_gateway_title( $title, $id ) {
|
340 |
global $post;
|
@@ -360,7 +362,7 @@ class WC_Stripe_Payment_Request {
|
|
360 |
/**
|
361 |
* Removes postal code validation from WC.
|
362 |
*
|
363 |
-
* @since
|
364 |
* @version 4.0.0
|
365 |
*/
|
366 |
public function postal_code_validation( $valid, $postcode, $country ) {
|
@@ -392,10 +394,12 @@ class WC_Stripe_Payment_Request {
|
|
392 |
/**
|
393 |
* Add needed order meta
|
394 |
*
|
395 |
-
* @
|
|
|
|
|
|
|
396 |
* @version 4.0.0
|
397 |
-
* @
|
398 |
-
* @param array $posted_data The posted data from checkout form.
|
399 |
*/
|
400 |
public function add_order_meta( $order_id, $posted_data ) {
|
401 |
if ( empty( $_POST['payment_request_type'] ) ) {
|
@@ -420,9 +424,9 @@ class WC_Stripe_Payment_Request {
|
|
420 |
/**
|
421 |
* Checks to make sure product type is supported.
|
422 |
*
|
423 |
-
* @since
|
424 |
* @version 4.0.0
|
425 |
-
* @return
|
426 |
*/
|
427 |
public function supported_product_types() {
|
428 |
return apply_filters(
|
@@ -445,9 +449,9 @@ class WC_Stripe_Payment_Request {
|
|
445 |
/**
|
446 |
* Checks the cart to see if all items are allowed to used.
|
447 |
*
|
448 |
-
* @since
|
449 |
* @version 4.0.0
|
450 |
-
* @return
|
451 |
*/
|
452 |
public function allowed_items_in_cart() {
|
453 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
|
@@ -474,7 +478,7 @@ class WC_Stripe_Payment_Request {
|
|
474 |
/**
|
475 |
* Load public scripts and styles.
|
476 |
*
|
477 |
-
* @since
|
478 |
* @version 4.0.0
|
479 |
*/
|
480 |
public function scripts() {
|
@@ -522,10 +526,12 @@ class WC_Stripe_Payment_Request {
|
|
522 |
'unknown_shipping' => __( 'Unknown shipping option "[option]".', 'woocommerce-gateway-stripe' ),
|
523 |
),
|
524 |
'checkout' => array(
|
525 |
-
'url'
|
526 |
-
'currency_code'
|
527 |
-
'country_code'
|
528 |
-
'needs_shipping'
|
|
|
|
|
529 |
),
|
530 |
'button' => array(
|
531 |
'type' => $this->get_button_type(),
|
@@ -557,7 +563,7 @@ class WC_Stripe_Payment_Request {
|
|
557 |
/**
|
558 |
* Display the payment request button.
|
559 |
*
|
560 |
-
* @since
|
561 |
* @version 4.0.0
|
562 |
*/
|
563 |
public function display_payment_request_button_html() {
|
@@ -602,7 +608,7 @@ class WC_Stripe_Payment_Request {
|
|
602 |
/**
|
603 |
* Display payment request button separator.
|
604 |
*
|
605 |
-
* @since
|
606 |
* @version 4.0.0
|
607 |
*/
|
608 |
public function display_payment_request_button_separator_html() {
|
@@ -635,9 +641,8 @@ class WC_Stripe_Payment_Request {
|
|
635 |
/**
|
636 |
* Whether payment button html should be rendered on the Cart
|
637 |
*
|
638 |
-
* @since
|
639 |
-
*
|
640 |
-
* @return bool
|
641 |
*/
|
642 |
private function should_show_payment_button_on_cart() {
|
643 |
if ( ! apply_filters( 'wc_stripe_show_payment_request_on_cart', true ) ) {
|
@@ -653,9 +658,8 @@ class WC_Stripe_Payment_Request {
|
|
653 |
/**
|
654 |
* Whether payment button html should be rendered
|
655 |
*
|
656 |
-
* @since
|
657 |
-
*
|
658 |
-
* @return bool
|
659 |
*/
|
660 |
private function should_show_payment_button_on_product_page() {
|
661 |
global $post;
|
@@ -697,7 +701,7 @@ class WC_Stripe_Payment_Request {
|
|
697 |
/**
|
698 |
* Log errors coming from Payment Request
|
699 |
*
|
700 |
-
* @since
|
701 |
* @version 4.0.0
|
702 |
*/
|
703 |
public function ajax_log_errors() {
|
@@ -713,7 +717,7 @@ class WC_Stripe_Payment_Request {
|
|
713 |
/**
|
714 |
* Clears cart.
|
715 |
*
|
716 |
-
* @since
|
717 |
* @version 4.0.0
|
718 |
*/
|
719 |
public function ajax_clear_cart() {
|
@@ -782,8 +786,8 @@ class WC_Stripe_Payment_Request {
|
|
782 |
/**
|
783 |
* Gets shipping options available for specified shipping address
|
784 |
*
|
785 |
-
* @param array
|
786 |
-
* @param
|
787 |
*
|
788 |
* @return array Shipping options data.
|
789 |
* phpcs:ignore Squiz.Commenting.FunctionCommentThrowTag
|
@@ -899,9 +903,9 @@ class WC_Stripe_Payment_Request {
|
|
899 |
/**
|
900 |
* Gets the selected product data.
|
901 |
*
|
902 |
-
* @since
|
903 |
* @version 4.0.0
|
904 |
-
* @return
|
905 |
*/
|
906 |
public function ajax_get_selected_product_data() {
|
907 |
check_ajax_referer( 'wc-stripe-get-selected-product-data', 'security' );
|
@@ -993,9 +997,9 @@ class WC_Stripe_Payment_Request {
|
|
993 |
/**
|
994 |
* Adds the current product to the cart. Used on product detail page.
|
995 |
*
|
996 |
-
* @since
|
997 |
* @version 4.0.0
|
998 |
-
* @return
|
999 |
*/
|
1000 |
public function ajax_add_to_cart() {
|
1001 |
check_ajax_referer( 'wc-stripe-add-to-cart', 'security' );
|
@@ -1042,7 +1046,7 @@ class WC_Stripe_Payment_Request {
|
|
1042 |
* what WC is expecting and throws an error. An example
|
1043 |
* for Ireland the county dropdown in Chrome shows "Co. Clare" format
|
1044 |
*
|
1045 |
-
* @since
|
1046 |
* @version 4.0.0
|
1047 |
*/
|
1048 |
public function normalize_state() {
|
@@ -1081,7 +1085,7 @@ class WC_Stripe_Payment_Request {
|
|
1081 |
/**
|
1082 |
* Create order. Security is handled by WC.
|
1083 |
*
|
1084 |
-
* @since
|
1085 |
* @version 4.0.0
|
1086 |
*/
|
1087 |
public function ajax_create_order() {
|
@@ -1103,9 +1107,10 @@ class WC_Stripe_Payment_Request {
|
|
1103 |
/**
|
1104 |
* Calculate and set shipping method.
|
1105 |
*
|
1106 |
-
* @
|
|
|
|
|
1107 |
* @version 4.0.0
|
1108 |
-
* @param array $address
|
1109 |
*/
|
1110 |
protected function calculate_shipping( $address = array() ) {
|
1111 |
$country = $address['country'];
|
@@ -1170,7 +1175,7 @@ class WC_Stripe_Payment_Request {
|
|
1170 |
/**
|
1171 |
* Builds the shippings methods to pass to Payment Request
|
1172 |
*
|
1173 |
-
* @since
|
1174 |
* @version 4.0.0
|
1175 |
*/
|
1176 |
protected function build_shipping_methods( $shipping_methods ) {
|
@@ -1195,7 +1200,7 @@ class WC_Stripe_Payment_Request {
|
|
1195 |
/**
|
1196 |
* Builds the line items to pass to Payment Request
|
1197 |
*
|
1198 |
-
* @since
|
1199 |
* @version 4.0.0
|
1200 |
*/
|
1201 |
protected function build_display_items( $itemized_display_items = false ) {
|
61 |
/**
|
62 |
* Initialize class actions.
|
63 |
*
|
64 |
+
* @since 3.0.0
|
65 |
* @version 4.0.0
|
66 |
*/
|
67 |
public function __construct() {
|
68 |
+
self::$_this = $this;
|
69 |
+
$this->stripe_settings = get_option( 'woocommerce_stripe_settings', array() );
|
70 |
+
$this->testmode = ( ! empty( $this->stripe_settings['testmode'] ) && 'yes' === $this->stripe_settings['testmode'] ) ? true : false;
|
71 |
+
$this->publishable_key = ! empty( $this->stripe_settings['publishable_key'] ) ? $this->stripe_settings['publishable_key'] : '';
|
72 |
+
$this->secret_key = ! empty( $this->stripe_settings['secret_key'] ) ? $this->stripe_settings['secret_key'] : '';
|
73 |
+
$this->total_label = ! empty( $this->stripe_settings['statement_descriptor'] ) ? WC_Stripe_Helper::clean_statement_descriptor( $this->stripe_settings['statement_descriptor'] ) : '';
|
74 |
|
75 |
if ( $this->testmode ) {
|
76 |
$this->publishable_key = ! empty( $this->stripe_settings['test_publishable_key'] ) ? $this->stripe_settings['test_publishable_key'] : '';
|
101 |
/**
|
102 |
* Checks if keys are set and valid.
|
103 |
*
|
104 |
+
* @since 4.0.6
|
105 |
+
* @return boolean True if the keys are set *and* valid, false otherwise (for example, if keys are empty or the secret key was pasted as publishable key).
|
106 |
*/
|
107 |
public function are_keys_set() {
|
108 |
// NOTE: updates to this function should be added to are_keys_set()
|
119 |
/**
|
120 |
* Get this instance.
|
121 |
*
|
122 |
+
* @since 4.0.6
|
123 |
* @return class
|
124 |
*/
|
125 |
public static function instance() {
|
130 |
* Sets the WC customer session if one is not set.
|
131 |
* This is needed so nonces can be verified by AJAX Request.
|
132 |
*
|
133 |
+
* @since 4.0.0
|
134 |
+
* @return void
|
135 |
*/
|
136 |
public function set_session() {
|
137 |
if ( ! is_product() || ( isset( WC()->session ) && WC()->session->has_session() ) ) {
|
144 |
/**
|
145 |
* Initialize hooks.
|
146 |
*
|
147 |
+
* @since 4.0.0
|
148 |
* @version 4.0.0
|
149 |
+
* @return void
|
150 |
*/
|
151 |
public function init() {
|
152 |
add_action( 'wp_enqueue_scripts', array( $this, 'scripts' ) );
|
178 |
/**
|
179 |
* Gets the button type.
|
180 |
*
|
181 |
+
* @since 4.0.0
|
182 |
* @version 4.0.0
|
183 |
+
* @return string
|
184 |
*/
|
185 |
public function get_button_type() {
|
186 |
return isset( $this->stripe_settings['payment_request_button_type'] ) ? $this->stripe_settings['payment_request_button_type'] : 'default';
|
189 |
/**
|
190 |
* Gets the button theme.
|
191 |
*
|
192 |
+
* @since 4.0.0
|
193 |
* @version 4.0.0
|
194 |
+
* @return string
|
195 |
*/
|
196 |
public function get_button_theme() {
|
197 |
return isset( $this->stripe_settings['payment_request_button_theme'] ) ? $this->stripe_settings['payment_request_button_theme'] : 'dark';
|
200 |
/**
|
201 |
* Gets the button height.
|
202 |
*
|
203 |
+
* @since 4.0.0
|
204 |
* @version 4.0.0
|
205 |
+
* @return string
|
206 |
*/
|
207 |
public function get_button_height() {
|
208 |
return isset( $this->stripe_settings['payment_request_button_height'] ) ? str_replace( 'px', '', $this->stripe_settings['payment_request_button_height'] ) : '64';
|
211 |
/**
|
212 |
* Checks if the button is branded.
|
213 |
*
|
214 |
+
* @since 4.4.0
|
215 |
* @version 4.4.0
|
216 |
+
* @return boolean
|
217 |
*/
|
218 |
public function is_branded_button() {
|
219 |
return 'branded' === $this->get_button_type();
|
222 |
/**
|
223 |
* Gets the branded button type.
|
224 |
*
|
225 |
+
* @since 4.4.0
|
226 |
* @version 4.4.0
|
227 |
+
* @return string
|
228 |
*/
|
229 |
public function get_button_branded_type() {
|
230 |
return isset( $this->stripe_settings['payment_request_button_branded_type'] ) ? $this->stripe_settings['payment_request_button_branded_type'] : 'default';
|
233 |
/**
|
234 |
* Checks if the button is custom.
|
235 |
*
|
236 |
+
* @since 4.4.0
|
237 |
* @version 4.4.0
|
238 |
+
* @return boolean
|
239 |
*/
|
240 |
public function is_custom_button() {
|
241 |
return 'custom' === $this->get_button_type();
|
244 |
/**
|
245 |
* Returns custom button css selector.
|
246 |
*
|
247 |
+
* @since 4.4.0
|
248 |
* @version 4.4.0
|
249 |
+
* @return string
|
250 |
*/
|
251 |
public function custom_button_selector() {
|
252 |
return $this->is_custom_button() ? '#wc-stripe-custom-button' : '';
|
255 |
/**
|
256 |
* Gets the custom button label.
|
257 |
*
|
258 |
+
* @since 4.4.0
|
259 |
* @version 4.4.0
|
260 |
+
* @return string
|
261 |
*/
|
262 |
public function get_button_label() {
|
263 |
return isset( $this->stripe_settings['payment_request_button_label'] ) ? $this->stripe_settings['payment_request_button_label'] : 'Buy now';
|
266 |
/**
|
267 |
* Gets the product data for the currently viewed page
|
268 |
*
|
269 |
+
* @since 4.0.0
|
270 |
* @version 4.0.0
|
271 |
+
* @return mixed Returns false if not on a product page, the product information otherwise.
|
272 |
*/
|
273 |
public function get_product_data() {
|
274 |
if ( ! is_product() ) {
|
337 |
|
338 |
/**
|
339 |
* Filters the gateway title to reflect Payment Request type
|
|
|
340 |
*/
|
341 |
public function filter_gateway_title( $title, $id ) {
|
342 |
global $post;
|
362 |
/**
|
363 |
* Removes postal code validation from WC.
|
364 |
*
|
365 |
+
* @since 3.1.4
|
366 |
* @version 4.0.0
|
367 |
*/
|
368 |
public function postal_code_validation( $valid, $postcode, $country ) {
|
394 |
/**
|
395 |
* Add needed order meta
|
396 |
*
|
397 |
+
* @param integer $order_id The order ID.
|
398 |
+
* @param array $posted_data The posted data from checkout form.
|
399 |
+
*
|
400 |
+
* @since 4.0.0
|
401 |
* @version 4.0.0
|
402 |
+
* @return void
|
|
|
403 |
*/
|
404 |
public function add_order_meta( $order_id, $posted_data ) {
|
405 |
if ( empty( $_POST['payment_request_type'] ) ) {
|
424 |
/**
|
425 |
* Checks to make sure product type is supported.
|
426 |
*
|
427 |
+
* @since 3.1.0
|
428 |
* @version 4.0.0
|
429 |
+
* @return array
|
430 |
*/
|
431 |
public function supported_product_types() {
|
432 |
return apply_filters(
|
449 |
/**
|
450 |
* Checks the cart to see if all items are allowed to used.
|
451 |
*
|
452 |
+
* @since 3.1.4
|
453 |
* @version 4.0.0
|
454 |
+
* @return boolean
|
455 |
*/
|
456 |
public function allowed_items_in_cart() {
|
457 |
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
|
478 |
/**
|
479 |
* Load public scripts and styles.
|
480 |
*
|
481 |
+
* @since 3.1.0
|
482 |
* @version 4.0.0
|
483 |
*/
|
484 |
public function scripts() {
|
526 |
'unknown_shipping' => __( 'Unknown shipping option "[option]".', 'woocommerce-gateway-stripe' ),
|
527 |
),
|
528 |
'checkout' => array(
|
529 |
+
'url' => wc_get_checkout_url(),
|
530 |
+
'currency_code' => strtolower( get_woocommerce_currency() ),
|
531 |
+
'country_code' => substr( get_option( 'woocommerce_default_country' ), 0, 2 ),
|
532 |
+
'needs_shipping' => WC()->cart->needs_shipping() ? 'yes' : 'no',
|
533 |
+
// Defaults to 'required' to match how core initializes this option.
|
534 |
+
'needs_payer_phone' => 'required' === get_option( 'woocommerce_checkout_phone_field', 'required' ),
|
535 |
),
|
536 |
'button' => array(
|
537 |
'type' => $this->get_button_type(),
|
563 |
/**
|
564 |
* Display the payment request button.
|
565 |
*
|
566 |
+
* @since 4.0.0
|
567 |
* @version 4.0.0
|
568 |
*/
|
569 |
public function display_payment_request_button_html() {
|
608 |
/**
|
609 |
* Display payment request button separator.
|
610 |
*
|
611 |
+
* @since 4.0.0
|
612 |
* @version 4.0.0
|
613 |
*/
|
614 |
public function display_payment_request_button_separator_html() {
|
641 |
/**
|
642 |
* Whether payment button html should be rendered on the Cart
|
643 |
*
|
644 |
+
* @since 4.4.1
|
645 |
+
* @return boolean
|
|
|
646 |
*/
|
647 |
private function should_show_payment_button_on_cart() {
|
648 |
if ( ! apply_filters( 'wc_stripe_show_payment_request_on_cart', true ) ) {
|
658 |
/**
|
659 |
* Whether payment button html should be rendered
|
660 |
*
|
661 |
+
* @since 4.3.2
|
662 |
+
* @return boolean
|
|
|
663 |
*/
|
664 |
private function should_show_payment_button_on_product_page() {
|
665 |
global $post;
|
701 |
/**
|
702 |
* Log errors coming from Payment Request
|
703 |
*
|
704 |
+
* @since 3.1.4
|
705 |
* @version 4.0.0
|
706 |
*/
|
707 |
public function ajax_log_errors() {
|
717 |
/**
|
718 |
* Clears cart.
|
719 |
*
|
720 |
+
* @since 3.1.4
|
721 |
* @version 4.0.0
|
722 |
*/
|
723 |
public function ajax_clear_cart() {
|
786 |
/**
|
787 |
* Gets shipping options available for specified shipping address
|
788 |
*
|
789 |
+
* @param array $shipping_address Shipping address.
|
790 |
+
* @param boolean $itemized_display_items Indicates whether to show subtotals or itemized views.
|
791 |
*
|
792 |
* @return array Shipping options data.
|
793 |
* phpcs:ignore Squiz.Commenting.FunctionCommentThrowTag
|
903 |
/**
|
904 |
* Gets the selected product data.
|
905 |
*
|
906 |
+
* @since 4.0.0
|
907 |
* @version 4.0.0
|
908 |
+
* @return array $data
|
909 |
*/
|
910 |
public function ajax_get_selected_product_data() {
|
911 |
check_ajax_referer( 'wc-stripe-get-selected-product-data', 'security' );
|
997 |
/**
|
998 |
* Adds the current product to the cart. Used on product detail page.
|
999 |
*
|
1000 |
+
* @since 4.0.0
|
1001 |
* @version 4.0.0
|
1002 |
+
* @return array $data
|
1003 |
*/
|
1004 |
public function ajax_add_to_cart() {
|
1005 |
check_ajax_referer( 'wc-stripe-add-to-cart', 'security' );
|
1046 |
* what WC is expecting and throws an error. An example
|
1047 |
* for Ireland the county dropdown in Chrome shows "Co. Clare" format
|
1048 |
*
|
1049 |
+
* @since 4.0.0
|
1050 |
* @version 4.0.0
|
1051 |
*/
|
1052 |
public function normalize_state() {
|
1085 |
/**
|
1086 |
* Create order. Security is handled by WC.
|
1087 |
*
|
1088 |
+
* @since 3.1.0
|
1089 |
* @version 4.0.0
|
1090 |
*/
|
1091 |
public function ajax_create_order() {
|
1107 |
/**
|
1108 |
* Calculate and set shipping method.
|
1109 |
*
|
1110 |
+
* @param array $address Shipping address.
|
1111 |
+
*
|
1112 |
+
* @since 3.1.0
|
1113 |
* @version 4.0.0
|
|
|
1114 |
*/
|
1115 |
protected function calculate_shipping( $address = array() ) {
|
1116 |
$country = $address['country'];
|
1175 |
/**
|
1176 |
* Builds the shippings methods to pass to Payment Request
|
1177 |
*
|
1178 |
+
* @since 3.1.0
|
1179 |
* @version 4.0.0
|
1180 |
*/
|
1181 |
protected function build_shipping_methods( $shipping_methods ) {
|
1200 |
/**
|
1201 |
* Builds the line items to pass to Payment Request
|
1202 |
*
|
1203 |
+
* @since 3.1.0
|
1204 |
* @version 4.0.0
|
1205 |
*/
|
1206 |
protected function build_display_items( $itemized_display_items = false ) {
|
languages/woocommerce-gateway-stripe.pot
CHANGED
@@ -2,10 +2,10 @@
|
|
2 |
# This file is distributed under the same license as the WooCommerce Stripe Gateway package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: WooCommerce Stripe Gateway 4.5.
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://wordpress.org/support/plugin/woocommerce-gateway-stripe\n"
|
8 |
-
"POT-Creation-Date: 2020-
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=utf-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -661,148 +661,150 @@ msgstr ""
|
|
661 |
msgid "Payment Request Buttons"
|
662 |
msgstr ""
|
663 |
|
664 |
-
#: includes/admin/stripe-settings.php:
|
665 |
-
#. translators: 1) br tag 2)
|
|
|
666 |
msgid ""
|
667 |
-
"Enable Payment Request Buttons. (Apple Pay/
|
668 |
-
"
|
|
|
669 |
msgstr ""
|
670 |
|
671 |
-
#: includes/admin/stripe-settings.php:
|
672 |
msgid ""
|
673 |
"If enabled, users will be able to pay using Apple Pay or Chrome Payment "
|
674 |
"Request if supported by the browser."
|
675 |
msgstr ""
|
676 |
|
677 |
-
#: includes/admin/stripe-settings.php:
|
678 |
msgid "Payment Request Button Type"
|
679 |
msgstr ""
|
680 |
|
681 |
-
#: includes/admin/stripe-settings.php:
|
682 |
msgid "Button Type"
|
683 |
msgstr ""
|
684 |
|
685 |
-
#: includes/admin/stripe-settings.php:
|
686 |
msgid "Select the button type you would like to show."
|
687 |
msgstr ""
|
688 |
|
689 |
-
#: includes/admin/stripe-settings.php:
|
690 |
msgid "Default"
|
691 |
msgstr ""
|
692 |
|
693 |
-
#: includes/admin/stripe-settings.php:
|
694 |
msgid "Buy"
|
695 |
msgstr ""
|
696 |
|
697 |
-
#: includes/admin/stripe-settings.php:
|
698 |
msgid "Donate"
|
699 |
msgstr ""
|
700 |
|
701 |
-
#: includes/admin/stripe-settings.php:
|
702 |
msgid "Branded"
|
703 |
msgstr ""
|
704 |
|
705 |
-
#: includes/admin/stripe-settings.php:
|
706 |
msgid "Custom"
|
707 |
msgstr ""
|
708 |
|
709 |
-
#: includes/admin/stripe-settings.php:
|
710 |
msgid "Payment Request Button Theme"
|
711 |
msgstr ""
|
712 |
|
713 |
-
#: includes/admin/stripe-settings.php:
|
714 |
msgid "Button Theme"
|
715 |
msgstr ""
|
716 |
|
717 |
-
#: includes/admin/stripe-settings.php:
|
718 |
msgid "Select the button theme you would like to show."
|
719 |
msgstr ""
|
720 |
|
721 |
-
#: includes/admin/stripe-settings.php:
|
722 |
msgid "Dark"
|
723 |
msgstr ""
|
724 |
|
725 |
-
#: includes/admin/stripe-settings.php:
|
726 |
msgid "Light"
|
727 |
msgstr ""
|
728 |
|
729 |
-
#: includes/admin/stripe-settings.php:
|
730 |
msgid "Light-Outline"
|
731 |
msgstr ""
|
732 |
|
733 |
-
#: includes/admin/stripe-settings.php:
|
734 |
msgid "Payment Request Button Height"
|
735 |
msgstr ""
|
736 |
|
737 |
-
#: includes/admin/stripe-settings.php:
|
738 |
msgid "Button Height"
|
739 |
msgstr ""
|
740 |
|
741 |
-
#: includes/admin/stripe-settings.php:
|
742 |
msgid ""
|
743 |
"Enter the height you would like the button to be in pixels. Width will "
|
744 |
"always be 100%."
|
745 |
msgstr ""
|
746 |
|
747 |
-
#: includes/admin/stripe-settings.php:
|
748 |
msgid "Payment Request Button Label"
|
749 |
msgstr ""
|
750 |
|
751 |
-
#: includes/admin/stripe-settings.php:
|
752 |
msgid "Button Label"
|
753 |
msgstr ""
|
754 |
|
755 |
-
#: includes/admin/stripe-settings.php:
|
756 |
msgid "Enter the custom text you would like the button to have."
|
757 |
msgstr ""
|
758 |
|
759 |
-
#: includes/admin/stripe-settings.php:
|
760 |
msgid "Buy now"
|
761 |
msgstr ""
|
762 |
|
763 |
-
#: includes/admin/stripe-settings.php:
|
764 |
msgid "Payment Request Branded Button Label Format"
|
765 |
msgstr ""
|
766 |
|
767 |
-
#: includes/admin/stripe-settings.php:
|
768 |
msgid "Branded Button Label Format"
|
769 |
msgstr ""
|
770 |
|
771 |
-
#: includes/admin/stripe-settings.php:
|
772 |
msgid "Select the branded button label format."
|
773 |
msgstr ""
|
774 |
|
775 |
-
#: includes/admin/stripe-settings.php:
|
776 |
msgid "Logo only"
|
777 |
msgstr ""
|
778 |
|
779 |
-
#: includes/admin/stripe-settings.php:
|
780 |
msgid "Text and logo"
|
781 |
msgstr ""
|
782 |
|
783 |
-
#: includes/admin/stripe-settings.php:
|
784 |
msgid "Saved Cards"
|
785 |
msgstr ""
|
786 |
|
787 |
-
#: includes/admin/stripe-settings.php:
|
788 |
msgid "Enable Payment via Saved Cards"
|
789 |
msgstr ""
|
790 |
|
791 |
-
#: includes/admin/stripe-settings.php:
|
792 |
msgid ""
|
793 |
"If enabled, users will be able to pay with a saved card during checkout. "
|
794 |
"Card details are saved on Stripe servers, not on your store."
|
795 |
msgstr ""
|
796 |
|
797 |
-
#: includes/admin/stripe-settings.php:
|
798 |
msgid "Logging"
|
799 |
msgstr ""
|
800 |
|
801 |
-
#: includes/admin/stripe-settings.php:
|
802 |
msgid "Log debug messages"
|
803 |
msgstr ""
|
804 |
|
805 |
-
#: includes/admin/stripe-settings.php:
|
806 |
msgid "Save debug messages to the WooCommerce System Status log."
|
807 |
msgstr ""
|
808 |
|
@@ -977,25 +979,25 @@ msgstr ""
|
|
977 |
msgid "There was a problem connecting to the Stripe API endpoint."
|
978 |
msgstr ""
|
979 |
|
980 |
-
#: includes/class-wc-stripe-apple-pay-registration.php:
|
981 |
msgid "Unable to verify domain - missing secret key."
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: includes/class-wc-stripe-apple-pay-registration.php:
|
985 |
-
#: includes/class-wc-stripe-apple-pay-registration.php:
|
986 |
#. translators: error message
|
987 |
msgid "Unable to verify domain - %s"
|
988 |
msgstr ""
|
989 |
|
990 |
-
#: includes/class-wc-stripe-apple-pay-registration.php:
|
991 |
msgid "Unable to create domain association folder to domain root."
|
992 |
msgstr ""
|
993 |
|
994 |
-
#: includes/class-wc-stripe-apple-pay-registration.php:
|
995 |
msgid "Unable to copy domain association file to domain root."
|
996 |
msgstr ""
|
997 |
|
998 |
-
#: includes/class-wc-stripe-apple-pay-registration.php:
|
999 |
#. translators: 1) HTML anchor open tag 2) HTML anchor closing tag
|
1000 |
msgid ""
|
1001 |
"Apple Pay domain verification failed. Please check the %1$slog%2$s to see "
|
@@ -1429,57 +1431,57 @@ msgstr ""
|
|
1429 |
msgid "Stripe SOFORT"
|
1430 |
msgstr ""
|
1431 |
|
1432 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1433 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1434 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1435 |
msgid "Tax"
|
1436 |
msgstr ""
|
1437 |
|
1438 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1439 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1440 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1441 |
msgid "Shipping"
|
1442 |
msgstr ""
|
1443 |
|
1444 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1445 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1446 |
msgid "Pending"
|
1447 |
msgstr ""
|
1448 |
|
1449 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1450 |
msgid "Sorry, we're not accepting prepaid cards at this time."
|
1451 |
msgstr ""
|
1452 |
|
1453 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1454 |
#. translators: Do not translate the [option] placeholder
|
1455 |
msgid "Unknown shipping option \"[option]\"."
|
1456 |
msgstr ""
|
1457 |
|
1458 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1459 |
msgid "OR"
|
1460 |
msgstr ""
|
1461 |
|
1462 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1463 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1464 |
msgid "Unable to find shipping method for address."
|
1465 |
msgstr ""
|
1466 |
|
1467 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1468 |
msgid "Product with the ID (%d) cannot be found."
|
1469 |
msgstr ""
|
1470 |
|
1471 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1472 |
#. translators: 1: product name 2: quantity in stock
|
1473 |
msgid ""
|
1474 |
"You cannot add that amount of \"%1$s\"; to the cart because there is not "
|
1475 |
"enough stock (%2$s remaining)."
|
1476 |
msgstr ""
|
1477 |
|
1478 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1479 |
msgid "Empty cart"
|
1480 |
msgstr ""
|
1481 |
|
1482 |
-
#: includes/payment-methods/class-wc-stripe-payment-request.php:
|
1483 |
msgid "Discount"
|
1484 |
msgstr ""
|
1485 |
|
2 |
# This file is distributed under the same license as the WooCommerce Stripe Gateway package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: WooCommerce Stripe Gateway 4.5.3\n"
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://wordpress.org/support/plugin/woocommerce-gateway-stripe\n"
|
8 |
+
"POT-Creation-Date: 2020-10-06 20:07:26+00:00\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=utf-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
661 |
msgid "Payment Request Buttons"
|
662 |
msgstr ""
|
663 |
|
664 |
+
#: includes/admin/stripe-settings.php:112
|
665 |
+
#. translators: 1) br tag 2) Stripe anchor tag 3) Apple anchor tag 4) Stripe
|
666 |
+
#. dashboard opening anchor tag 5) Stripe dashboard closing anchor tag
|
667 |
msgid ""
|
668 |
+
"Enable Payment Request Buttons. (Apple Pay/Google Pay) %1$sBy using Apple "
|
669 |
+
"Pay, you agree to %2$s and %3$s's terms of service. %4$sLog into your "
|
670 |
+
"Stripe dashboard%5$s to complete or update your Apple Pay setup."
|
671 |
msgstr ""
|
672 |
|
673 |
+
#: includes/admin/stripe-settings.php:120
|
674 |
msgid ""
|
675 |
"If enabled, users will be able to pay using Apple Pay or Chrome Payment "
|
676 |
"Request if supported by the browser."
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: includes/admin/stripe-settings.php:125
|
680 |
msgid "Payment Request Button Type"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: includes/admin/stripe-settings.php:126
|
684 |
msgid "Button Type"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: includes/admin/stripe-settings.php:128
|
688 |
msgid "Select the button type you would like to show."
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: includes/admin/stripe-settings.php:132
|
692 |
msgid "Default"
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: includes/admin/stripe-settings.php:133
|
696 |
msgid "Buy"
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: includes/admin/stripe-settings.php:134
|
700 |
msgid "Donate"
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: includes/admin/stripe-settings.php:135
|
704 |
msgid "Branded"
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: includes/admin/stripe-settings.php:136
|
708 |
msgid "Custom"
|
709 |
msgstr ""
|
710 |
|
711 |
+
#: includes/admin/stripe-settings.php:140
|
712 |
msgid "Payment Request Button Theme"
|
713 |
msgstr ""
|
714 |
|
715 |
+
#: includes/admin/stripe-settings.php:141
|
716 |
msgid "Button Theme"
|
717 |
msgstr ""
|
718 |
|
719 |
+
#: includes/admin/stripe-settings.php:143
|
720 |
msgid "Select the button theme you would like to show."
|
721 |
msgstr ""
|
722 |
|
723 |
+
#: includes/admin/stripe-settings.php:147
|
724 |
msgid "Dark"
|
725 |
msgstr ""
|
726 |
|
727 |
+
#: includes/admin/stripe-settings.php:148
|
728 |
msgid "Light"
|
729 |
msgstr ""
|
730 |
|
731 |
+
#: includes/admin/stripe-settings.php:149
|
732 |
msgid "Light-Outline"
|
733 |
msgstr ""
|
734 |
|
735 |
+
#: includes/admin/stripe-settings.php:153
|
736 |
msgid "Payment Request Button Height"
|
737 |
msgstr ""
|
738 |
|
739 |
+
#: includes/admin/stripe-settings.php:154
|
740 |
msgid "Button Height"
|
741 |
msgstr ""
|
742 |
|
743 |
+
#: includes/admin/stripe-settings.php:156
|
744 |
msgid ""
|
745 |
"Enter the height you would like the button to be in pixels. Width will "
|
746 |
"always be 100%."
|
747 |
msgstr ""
|
748 |
|
749 |
+
#: includes/admin/stripe-settings.php:161
|
750 |
msgid "Payment Request Button Label"
|
751 |
msgstr ""
|
752 |
|
753 |
+
#: includes/admin/stripe-settings.php:162
|
754 |
msgid "Button Label"
|
755 |
msgstr ""
|
756 |
|
757 |
+
#: includes/admin/stripe-settings.php:164
|
758 |
msgid "Enter the custom text you would like the button to have."
|
759 |
msgstr ""
|
760 |
|
761 |
+
#: includes/admin/stripe-settings.php:165
|
762 |
msgid "Buy now"
|
763 |
msgstr ""
|
764 |
|
765 |
+
#: includes/admin/stripe-settings.php:169
|
766 |
msgid "Payment Request Branded Button Label Format"
|
767 |
msgstr ""
|
768 |
|
769 |
+
#: includes/admin/stripe-settings.php:170
|
770 |
msgid "Branded Button Label Format"
|
771 |
msgstr ""
|
772 |
|
773 |
+
#: includes/admin/stripe-settings.php:172
|
774 |
msgid "Select the branded button label format."
|
775 |
msgstr ""
|
776 |
|
777 |
+
#: includes/admin/stripe-settings.php:176
|
778 |
msgid "Logo only"
|
779 |
msgstr ""
|
780 |
|
781 |
+
#: includes/admin/stripe-settings.php:177
|
782 |
msgid "Text and logo"
|
783 |
msgstr ""
|
784 |
|
785 |
+
#: includes/admin/stripe-settings.php:181
|
786 |
msgid "Saved Cards"
|
787 |
msgstr ""
|
788 |
|
789 |
+
#: includes/admin/stripe-settings.php:182
|
790 |
msgid "Enable Payment via Saved Cards"
|
791 |
msgstr ""
|
792 |
|
793 |
+
#: includes/admin/stripe-settings.php:184
|
794 |
msgid ""
|
795 |
"If enabled, users will be able to pay with a saved card during checkout. "
|
796 |
"Card details are saved on Stripe servers, not on your store."
|
797 |
msgstr ""
|
798 |
|
799 |
+
#: includes/admin/stripe-settings.php:189
|
800 |
msgid "Logging"
|
801 |
msgstr ""
|
802 |
|
803 |
+
#: includes/admin/stripe-settings.php:190
|
804 |
msgid "Log debug messages"
|
805 |
msgstr ""
|
806 |
|
807 |
+
#: includes/admin/stripe-settings.php:192
|
808 |
msgid "Save debug messages to the WooCommerce System Status log."
|
809 |
msgstr ""
|
810 |
|
979 |
msgid "There was a problem connecting to the Stripe API endpoint."
|
980 |
msgstr ""
|
981 |
|
982 |
+
#: includes/class-wc-stripe-apple-pay-registration.php:133
|
983 |
msgid "Unable to verify domain - missing secret key."
|
984 |
msgstr ""
|
985 |
|
986 |
+
#: includes/class-wc-stripe-apple-pay-registration.php:157
|
987 |
+
#: includes/class-wc-stripe-apple-pay-registration.php:166
|
988 |
#. translators: error message
|
989 |
msgid "Unable to verify domain - %s"
|
990 |
msgstr ""
|
991 |
|
992 |
+
#: includes/class-wc-stripe-apple-pay-registration.php:193
|
993 |
msgid "Unable to create domain association folder to domain root."
|
994 |
msgstr ""
|
995 |
|
996 |
+
#: includes/class-wc-stripe-apple-pay-registration.php:199
|
997 |
msgid "Unable to copy domain association file to domain root."
|
998 |
msgstr ""
|
999 |
|
1000 |
+
#: includes/class-wc-stripe-apple-pay-registration.php:306
|
1001 |
#. translators: 1) HTML anchor open tag 2) HTML anchor closing tag
|
1002 |
msgid ""
|
1003 |
"Apple Pay domain verification failed. Please check the %1$slog%2$s to see "
|
1431 |
msgid "Stripe SOFORT"
|
1432 |
msgstr ""
|
1433 |
|
1434 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:303
|
1435 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:959
|
1436 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:1251
|
1437 |
msgid "Tax"
|
1438 |
msgstr ""
|
1439 |
|
1440 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:311
|
1441 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:967
|
1442 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:1258
|
1443 |
msgid "Shipping"
|
1444 |
msgstr ""
|
1445 |
|
1446 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:318
|
1447 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:974
|
1448 |
msgid "Pending"
|
1449 |
msgstr ""
|
1450 |
|
1451 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:524
|
1452 |
msgid "Sorry, we're not accepting prepaid cards at this time."
|
1453 |
msgstr ""
|
1454 |
|
1455 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:526
|
1456 |
#. translators: Do not translate the [option] placeholder
|
1457 |
msgid "Unknown shipping option \"[option]\"."
|
1458 |
msgstr ""
|
1459 |
|
1460 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:637
|
1461 |
msgid "OR"
|
1462 |
msgstr ""
|
1463 |
|
1464 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:809
|
1465 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:822
|
1466 |
msgid "Unable to find shipping method for address."
|
1467 |
msgstr ""
|
1468 |
|
1469 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:921
|
1470 |
msgid "Product with the ID (%d) cannot be found."
|
1471 |
msgstr ""
|
1472 |
|
1473 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:942
|
1474 |
#. translators: 1: product name 2: quantity in stock
|
1475 |
msgid ""
|
1476 |
"You cannot add that amount of \"%1$s\"; to the cart because there is not "
|
1477 |
"enough stock (%2$s remaining)."
|
1478 |
msgstr ""
|
1479 |
|
1480 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:1093
|
1481 |
msgid "Empty cart"
|
1482 |
msgstr ""
|
1483 |
|
1484 |
+
#: includes/payment-methods/class-wc-stripe-payment-request.php:1265
|
1485 |
msgid "Discount"
|
1486 |
msgstr ""
|
1487 |
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: credit card, stripe, apple pay, payment request, google pay, sepa, sofort,
|
|
4 |
Requires at least: 4.4
|
5 |
Tested up to: 5.5
|
6 |
Requires PHP: 5.6
|
7 |
-
Stable tag: 4.5.
|
8 |
License: GPLv3
|
9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
10 |
Attributions: thorsten-stripe
|
@@ -126,8 +126,14 @@ If you get stuck, you can ask for help in the Plugin Forum.
|
|
126 |
|
127 |
== Changelog ==
|
128 |
|
129 |
-
= 4.5.
|
130 |
-
* Fix
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
|
132 |
[See changelog for all versions](https://raw.githubusercontent.com/woocommerce/woocommerce-gateway-stripe/master/changelog.txt).
|
133 |
|
4 |
Requires at least: 4.4
|
5 |
Tested up to: 5.5
|
6 |
Requires PHP: 5.6
|
7 |
+
Stable tag: 4.5.3
|
8 |
License: GPLv3
|
9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
10 |
Attributions: thorsten-stripe
|
126 |
|
127 |
== Changelog ==
|
128 |
|
129 |
+
= 4.5.4 - 2020-10-06 =
|
130 |
+
* Fix - Apple Pay now requires a buyer's phone number only if it's required in Appearance > Customize > WooCommerce > Checkout.
|
131 |
+
* Add - Allow toggling secrets temporarily to visible in settings.
|
132 |
+
* Fix - Properly display field required error when SEPA method is used.
|
133 |
+
* Tweak - Update payment request button description to include link to Stripe dashboard Apple Pay settings.
|
134 |
+
* Add - Add off session payment intent filter, props rfair404.
|
135 |
+
* Tweak - Update contributors list.
|
136 |
+
* Add - Link from Payment Request button setting to Apple Pay settings in Stripe dashboard.
|
137 |
|
138 |
[See changelog for all versions](https://raw.githubusercontent.com/woocommerce/woocommerce-gateway-stripe/master/changelog.txt).
|
139 |
|
woocommerce-gateway-stripe.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: Take credit card payments on your store using Stripe.
|
6 |
* Author: WooCommerce
|
7 |
* Author URI: https://woocommerce.com/
|
8 |
-
* Version: 4.5.
|
9 |
* Requires at least: 4.4
|
10 |
* Tested up to: 5.5
|
11 |
* WC requires at least: 3.0
|
@@ -22,7 +22,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
22 |
/**
|
23 |
* Required minimums and constants
|
24 |
*/
|
25 |
-
define( 'WC_STRIPE_VERSION', '4.5.
|
26 |
define( 'WC_STRIPE_MIN_PHP_VER', '5.6.0' );
|
27 |
define( 'WC_STRIPE_MIN_WC_VER', '3.0' );
|
28 |
define( 'WC_STRIPE_FUTURE_MIN_WC_VER', '3.0' );
|
5 |
* Description: Take credit card payments on your store using Stripe.
|
6 |
* Author: WooCommerce
|
7 |
* Author URI: https://woocommerce.com/
|
8 |
+
* Version: 4.5.3
|
9 |
* Requires at least: 4.4
|
10 |
* Tested up to: 5.5
|
11 |
* WC requires at least: 3.0
|
22 |
/**
|
23 |
* Required minimums and constants
|
24 |
*/
|
25 |
+
define( 'WC_STRIPE_VERSION', '4.5.3' ); // WRCS: DEFINED_VERSION.
|
26 |
define( 'WC_STRIPE_MIN_PHP_VER', '5.6.0' );
|
27 |
define( 'WC_STRIPE_MIN_WC_VER', '3.0' );
|
28 |
define( 'WC_STRIPE_FUTURE_MIN_WC_VER', '3.0' );
|