@@ -18,53 +18,53 @@ abstract class WC_Gateway_Amazon_Payments_Advanced_Abstract extends WC_Payment_G
18
18
* Specifically requested by Amazon's JP Team.
19
19
*/
20
20
const JP_REGION_CODE_MAP = array (
21
- 'JP01 ' => ' 北海道 ' ,
22
- 'JP02 ' => ' 青森県 ' ,
23
- 'JP03 ' => ' 岩手県 ' ,
24
- 'JP04 ' => ' 宮城県 ' ,
25
- 'JP05 ' => ' 秋田県 ' ,
26
- 'JP06 ' => ' 山形県 ' ,
27
- 'JP07 ' => ' 福島県 ' ,
28
- 'JP08 ' => ' 茨城県 ' ,
29
- 'JP09 ' => ' 栃木県 ' ,
30
- 'JP10 ' => ' 群馬県 ' ,
31
- 'JP11 ' => ' 埼玉県 ' ,
32
- 'JP12 ' => ' 千葉県 ' ,
33
- 'JP13 ' => ' 東京都 ' ,
34
- 'JP14 ' => ' 神奈川県 ' ,
35
- 'JP15 ' => ' 新潟県 ' ,
36
- 'JP16 ' => ' 富山県 ' ,
37
- 'JP17 ' => ' 石川県 ' ,
38
- 'JP18 ' => ' 福井県 ' ,
39
- 'JP19 ' => ' 山梨県 ' ,
40
- 'JP20 ' => ' 長野県 ' ,
41
- 'JP21 ' => ' 岐阜県 ' ,
42
- 'JP22 ' => ' 静岡県 ' ,
43
- 'JP23 ' => ' 愛知県 ' ,
44
- 'JP24 ' => ' 三重県 ' ,
45
- 'JP25 ' => ' 滋賀県 ' ,
46
- 'JP26 ' => ' 京都府 ' ,
47
- 'JP27 ' => ' 大阪府 ' ,
48
- 'JP28 ' => ' 兵庫県 ' ,
49
- 'JP29 ' => ' 奈良県 ' ,
50
- 'JP30 ' => ' 和歌山県 ' ,
51
- 'JP31 ' => ' 鳥取県 ' ,
52
- 'JP32 ' => ' 島根県 ' ,
53
- 'JP33 ' => ' 岡山県 ' ,
54
- 'JP34 ' => ' 広島県 ' ,
55
- 'JP35 ' => ' 山口県 ' ,
56
- 'JP36 ' => ' 徳島県 ' ,
57
- 'JP37 ' => ' 香川県 ' ,
58
- 'JP38 ' => ' 愛媛県 ' ,
59
- 'JP39 ' => ' 高知県 ' ,
60
- 'JP40 ' => ' 福岡県 ' ,
61
- 'JP41 ' => ' 佐賀県 ' ,
62
- 'JP42 ' => ' 長崎県 ' ,
63
- 'JP43 ' => ' 熊本県 ' ,
64
- 'JP44 ' => ' 大分県 ' ,
65
- 'JP45 ' => ' 宮崎県 ' ,
66
- 'JP46 ' => ' 鹿児島県 ' ,
67
- 'JP47 ' => ' 沖縄県 ' ,
21
+ 'JP01 ' => array ( ' Hokkaido ' , ' Hokkaidō ' , ' 北海道 ' ) ,
22
+ 'JP02 ' => array ( ' Aomori ' , ' Aomori-ken ' , ' 青森県 ' ) ,
23
+ 'JP03 ' => array ( ' Iwate ' , ' Iwate-ken ' , ' 岩手県 ' ) ,
24
+ 'JP04 ' => array ( ' Miyagi ' , ' Miyagi-ken ' , ' 宮城県 ' ) ,
25
+ 'JP05 ' => array ( ' Akita ' , ' Akita-ken ' , ' 秋田県 ' ) ,
26
+ 'JP06 ' => array ( ' Yamagata ' , ' Yamagata-ken ' , ' 山形県 ' ) ,
27
+ 'JP07 ' => array ( ' Fukushima ' , ' Fukushima-ken ' , ' 福島県 ' ) ,
28
+ 'JP08 ' => array ( ' Ibaraki ' , ' Ibaraki-ken ' , ' 茨城県 ' ) ,
29
+ 'JP09 ' => array ( ' Tochigi ' , ' Tochigi-ken ' , ' 栃木県 ' ) ,
30
+ 'JP10 ' => array ( ' Gunma ' , ' Gunma-ken ' , ' 群馬県 ' ) ,
31
+ 'JP11 ' => array ( ' Saitama ' , ' Saitama-ken ' , ' 埼玉県 ' ) ,
32
+ 'JP12 ' => array ( ' Chiba ' , ' Chiba-ken ' , ' 千葉県 ' ) ,
33
+ 'JP13 ' => array ( ' Tokyo ' , ' Tōkyō-to ' , ' 東京都 ' ) ,
34
+ 'JP14 ' => array ( ' Kanagawa ' , ' Kanagawa-ken ' , ' 神奈川県 ' ) ,
35
+ 'JP15 ' => array ( ' Niigata ' , ' Niigata-ken ' , ' 新潟県 ' ) ,
36
+ 'JP16 ' => array ( ' Toyama ' , ' Toyama-ken ' , ' 富山県 ' ) ,
37
+ 'JP17 ' => array ( ' Ishikawa ' , ' Ishikawa-ken ' , ' 石川県 ' ) ,
38
+ 'JP18 ' => array ( ' Fukui ' , ' Fukui-ken ' , ' 福井県 ' ) ,
39
+ 'JP19 ' => array ( ' Yamanashi ' , ' Yamanashi-ken ' , ' 山梨県 ' ) ,
40
+ 'JP20 ' => array ( ' Nagano ' , ' Nagano-ken ' , ' 長野県 ' ) ,
41
+ 'JP21 ' => array ( ' Gifu ' , ' Gifu-ken ' , ' 岐阜県 ' ) ,
42
+ 'JP22 ' => array ( ' Shizuoka ' , ' Shizuoka-ken ' , ' 静岡県 ' ) ,
43
+ 'JP23 ' => array ( ' Aichi ' , ' Aichi-ken ' , ' 愛知県 ' ) ,
44
+ 'JP24 ' => array ( ' Mie ' , ' Mie-ken ' , ' 三重県 ' ) ,
45
+ 'JP25 ' => array ( ' Shiga ' , ' Shiga-ken ' , ' 滋賀県 ' ) ,
46
+ 'JP26 ' => array ( ' Kyoto ' , ' Kyōto-fu ' , ' 京都府 ' ) ,
47
+ 'JP27 ' => array ( ' Osaka ' , ' Ōsaka-fu ' , ' 大阪府 ' ) ,
48
+ 'JP28 ' => array ( ' Hyogo ' , ' Hyōgo-ken ' , ' 兵庫県 ' ) ,
49
+ 'JP29 ' => array ( ' Nara ' , ' Nara-ken ' , ' 奈良県 ' ) ,
50
+ 'JP30 ' => array ( ' Wakayama ' , ' Wakayama-ken ' , ' 和歌山県 ' ) ,
51
+ 'JP31 ' => array ( ' Tottori ' , ' Tottori-ken ' , ' 鳥取県 ' ) ,
52
+ 'JP32 ' => array ( ' Shimane ' , ' Shimane-ken ' , ' 島根県 ' ) ,
53
+ 'JP33 ' => array ( ' Okayama ' , ' Okayama-ken ' , ' 岡山県 ' ) ,
54
+ 'JP34 ' => array ( ' Hiroshima ' , ' Hiroshima-ken ' , ' 広島県 ' ) ,
55
+ 'JP35 ' => array ( ' Yamaguchi ' , ' Yamaguchi-ken ' , ' 山口県 ' ) ,
56
+ 'JP36 ' => array ( ' Tokushima ' , ' Tokushima-ken ' , ' 徳島県 ' ) ,
57
+ 'JP37 ' => array ( ' Kagawa ' , ' Kagawa-ken ' , ' 香川県 ' ) ,
58
+ 'JP38 ' => array ( ' Ehime ' , ' Ehime-ken ' , ' 愛媛県 ' ) ,
59
+ 'JP39 ' => array ( ' Kochi ' , ' Kōchi-ken ' , ' 高知県 ' ) ,
60
+ 'JP40 ' => array ( ' Fukuoka ' , ' Fukuoka-ken ' , ' 福岡県 ' ) ,
61
+ 'JP41 ' => array ( ' Saga ' , ' Saga-ken ' , ' 佐賀県 ' ) ,
62
+ 'JP42 ' => array ( ' Nagasaki ' , ' Nagasaki-ken ' , ' 長崎県 ' ) ,
63
+ 'JP43 ' => array ( ' Kumamoto ' , ' Kumamoto-ken ' , ' 熊本県 ' ) ,
64
+ 'JP44 ' => array ( ' Oita ' , ' Ōita-ken ' , ' 大分県 ' ) ,
65
+ 'JP45 ' => array ( ' Miyazaki ' , ' Miyazaki-ken ' , ' 宮崎県 ' ) ,
66
+ 'JP46 ' => array ( ' Kagoshima ' , ' Kagoshima-ken ' , ' 鹿児島県 ' ) ,
67
+ 'JP47 ' => array ( ' Okinawa ' , ' Okinawa-ken ' , ' 沖縄県 ' ) ,
68
68
);
69
69
70
70
/**
@@ -943,7 +943,7 @@ public function checkout_button( $echo = true, $elem = 'div', $id = 'pay_with_am
943
943
$ subscriptions_enabled = empty ( $ this ->settings ['subscriptions_enabled ' ] ) || 'yes ' === $ this ->settings ['subscriptions_enabled ' ];
944
944
$ cart_contains_sub = class_exists ( 'WC_Subscriptions_Cart ' ) ? WC_Subscriptions_Cart::cart_contains_subscription () : false ;
945
945
946
- if ( $ subscriptions_installed && ! $ subscriptions_enabled && $ cart_contains_sub ) {
946
+ if ( $ subscriptions_installed && ! $ subscriptions_enabled && $ cart_contains_sub && ! is_product () ) {
947
947
return ;
948
948
}
949
949
@@ -1020,30 +1020,21 @@ public function remove_gateways( $gateways ) {
1020
1020
return $ gateways ;
1021
1021
}
1022
1022
1023
- /**
1024
- * Override billing fields when checking out with Amazon.
1025
- *
1026
- * @param array $fields billing fields.
1027
- */
1028
- public function override_billing_fields ( $ fields ) {
1029
- // Last name and State are not required on Amazon billing addrress forms.
1030
- $ fields ['billing_last_name ' ]['required ' ] = false ;
1031
- $ fields ['billing_state ' ]['required ' ] = false ;
1032
- // Phone field is missing on some sandbox accounts.
1033
- $ fields ['billing_phone ' ]['required ' ] = false ;
1034
-
1035
- return $ fields ;
1036
- }
1037
1023
1038
1024
/**
1039
- * Override address fields when checking out with Amazon.
1025
+ * Override checkout fields when checking out with Amazon.
1040
1026
*
1041
1027
* @param array $fields default address fields.
1042
1028
*/
1043
- public function override_shipping_fields ( $ fields ) {
1044
- // Last name and State are not required on Amazon shipping address forms.
1045
- $ fields ['shipping_last_name ' ]['required ' ] = false ;
1046
- $ fields ['shipping_state ' ]['required ' ] = false ;
1029
+ public function override_checkout_fields ( $ fields ) {
1030
+
1031
+ $ non_required_fields = WC_Amazon_Payments_Advanced_Utils::get_non_required_fields ();
1032
+
1033
+ foreach ( $ fields as $ key => $ field ) {
1034
+ if ( ! in_array ( $ key , $ non_required_fields , true ) ) {
1035
+ $ fields [ $ key ]['required ' ] = false ;
1036
+ }
1037
+ }
1047
1038
1048
1039
return $ fields ;
1049
1040
}
@@ -1055,8 +1046,8 @@ public function checkout_init_common() {
1055
1046
// Remove other gateways after being logged in.
1056
1047
add_filter ( 'woocommerce_available_payment_gateways ' , array ( $ this , 'remove_gateways ' ) );
1057
1048
// Some fields are not enforced on Amazon's side. Marking them as optional avoids issues with checkout.
1058
- add_filter ( 'woocommerce_billing_fields ' , array ( $ this , 'override_billing_fields ' ) );
1059
- add_filter ( 'woocommerce_shipping_fields ' , array ( $ this , 'override_shipping_fields ' ) );
1049
+ add_filter ( 'woocommerce_billing_fields ' , array ( $ this , 'override_checkout_fields ' ) );
1050
+ add_filter ( 'woocommerce_shipping_fields ' , array ( $ this , 'override_checkout_fields ' ) );
1060
1051
// Always ship to different address.
1061
1052
add_action ( 'woocommerce_ship_to_different_address_checked ' , '__return_true ' );
1062
1053
}
0 commit comments