SiteOrigin Widgets Bundle - Version 1.35.0

Version Description

  • 21 May 2022 =
  • Contact Form: Added reCAPTCHA V3 support.
Download this release

Release Info

Developer SiteOrigin
Plugin Icon 128x128 SiteOrigin Widgets Bundle
Version 1.35.0
Comparing to
See all releases

Code changes from version 1.34.0 to 1.35.0

lang/so-widgets-bundle.pot CHANGED
@@ -272,7 +272,7 @@ msgstr ""
272
  msgid "Regular"
273
  msgstr ""
274
 
275
- #: icons/fontawesome/filter.php:1472, widgets/contact/contact.php:373, widgets/contact/contact.php:495, widgets/contact/contact.php:603, widgets/contact/contact.php:681, widgets/headline/headline.php:219
276
  msgid "Solid"
277
  msgstr ""
278
 
@@ -328,7 +328,7 @@ msgstr ""
328
  msgid "Closed"
329
  msgstr ""
330
 
331
- #: widgets/accordion/accordion.php:111, widgets/contact/contact.php:336, widgets/cta/cta.php:74, widgets/hero/hero.php:254, widgets/layout-slider/layout-slider.php:222, widgets/slider/slider.php:134, widgets/tabs/tabs.php:101, widgets/testimonial/testimonial.php:184, base/inc/widgets/base-carousel.class.php:350
332
  msgid "Design"
333
  msgstr ""
334
 
@@ -336,7 +336,7 @@ msgstr ""
336
  msgid "Headings"
337
  msgstr ""
338
 
339
- #: widgets/accordion/accordion.php:121, widgets/accordion/accordion.php:159, widgets/contact/contact.php:346, widgets/contact/contact.php:584, widgets/cta/cta.php:78, widgets/hero/hero.php:133, widgets/layout-slider/layout-slider.php:101, widgets/slider/slider.php:87, widgets/social-media-buttons/social-media-buttons.php:85, widgets/tabs/tabs.php:111, widgets/tabs/tabs.php:131, widgets/tabs/tabs.php:175
340
  msgid "Background color"
341
  msgstr ""
342
 
@@ -352,7 +352,7 @@ msgstr ""
352
  msgid "Title hover color"
353
  msgstr ""
354
 
355
- #: widgets/accordion/accordion.php:140, widgets/accordion/accordion.php:168, widgets/contact/contact.php:356, widgets/contact/contact.php:478, widgets/contact/contact.php:594, widgets/cta/cta.php:83, widgets/tabs/tabs.php:116, widgets/tabs/tabs.php:150, widgets/tabs/tabs.php:184
356
  msgid "Border color"
357
  msgstr ""
358
 
@@ -360,7 +360,7 @@ msgstr ""
360
  msgid "Border hover color"
361
  msgstr ""
362
 
363
- #: widgets/accordion/accordion.php:148, widgets/accordion/accordion.php:172, widgets/contact/contact.php:361, widgets/contact/contact.php:483, widgets/contact/contact.php:610, widgets/tabs/tabs.php:120, widgets/tabs/tabs.php:160, widgets/tabs/tabs.php:188
364
  msgid "Border width"
365
  msgstr ""
366
 
@@ -396,19 +396,19 @@ msgstr ""
396
  msgid "Item"
397
  msgstr ""
398
 
399
- #: widgets/anything-carousel/anything-carousel.php:95, widgets/button/button.php:201, widgets/contact/contact.php:390, widgets/contact/contact.php:440, widgets/features/features.php:145, widgets/features/features.php:166, widgets/features/features.php:187, widgets/headline/headline.php:88, widgets/headline/headline.php:169, base/inc/widgets/base-carousel.class.php:374
400
  msgid "Font"
401
  msgstr ""
402
 
403
- #: widgets/anything-carousel/anything-carousel.php:99, widgets/button/button.php:207, widgets/contact/contact.php:395, widgets/contact/contact.php:445, widgets/contact/contact.php:627, base/inc/widgets/base-carousel.class.php:378
404
  msgid "Font size"
405
  msgstr ""
406
 
407
- #: widgets/anything-carousel/anything-carousel.php:103, widgets/contact/contact.php:400, widgets/contact/contact.php:524, widgets/contact/contact.php:693, widgets/features/features.php:154, widgets/features/features.php:175, widgets/features/features.php:196, widgets/google-map/google-map.php:376, widgets/headline/headline.php:80, widgets/headline/headline.php:161, widgets/headline/headline.php:231, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56, base/inc/widgets/base-carousel.class.php:382
408
  msgid "Color"
409
  msgstr ""
410
 
411
- #: widgets/anything-carousel/anything-carousel.php:107, widgets/contact/contact.php:453, widgets/social-media-buttons/social-media-buttons.php:193
412
  msgid "Margin"
413
  msgstr ""
414
 
@@ -416,7 +416,7 @@ msgstr ""
416
  msgid "Top"
417
  msgstr ""
418
 
419
- #: widgets/anything-carousel/anything-carousel.php:116, widgets/button/button.php:105, widgets/button/button.php:131, widgets/button/button.php:142, widgets/contact/contact.php:411, widgets/contact/contact.php:426, widgets/contact/contact.php:655, widgets/cta/cta.php:100, widgets/features/features.php:73, widgets/headline/headline.php:102, widgets/headline/headline.php:112, widgets/headline/headline.php:183, widgets/headline/headline.php:193, widgets/headline/headline.php:248, widgets/headline/headline.php:257, widgets/icon/icon.php:50, widgets/image/image.php:50, widgets/image/image.php:62, widgets/image-grid/image-grid.php:137, widgets/image-grid/image-grid.php:167, widgets/simple-masonry/simple-masonry.php:216, widgets/social-media-buttons/social-media-buttons.php:175, widgets/social-media-buttons/social-media-buttons.php:186, widgets/testimonial/testimonial.php:256
420
  msgid "Right"
421
  msgstr ""
422
 
@@ -424,7 +424,7 @@ msgstr ""
424
  msgid "Bottom"
425
  msgstr ""
426
 
427
- #: widgets/anything-carousel/anything-carousel.php:124, widgets/button/button.php:107, widgets/button/button.php:130, widgets/button/button.php:141, widgets/contact/contact.php:410, widgets/contact/contact.php:425, widgets/contact/contact.php:654, widgets/cta/cta.php:99, widgets/features/features.php:75, widgets/headline/headline.php:101, widgets/headline/headline.php:111, widgets/headline/headline.php:182, widgets/headline/headline.php:192, widgets/headline/headline.php:247, widgets/headline/headline.php:256, widgets/icon/icon.php:49, widgets/image/image.php:49, widgets/image/image.php:61, widgets/image-grid/image-grid.php:143, widgets/image-grid/image-grid.php:165, widgets/simple-masonry/simple-masonry.php:215, widgets/social-media-buttons/social-media-buttons.php:174, widgets/social-media-buttons/social-media-buttons.php:185, widgets/testimonial/testimonial.php:255
428
  msgid "Left"
429
  msgstr ""
430
 
@@ -468,7 +468,7 @@ msgstr ""
468
  msgid "SiteOrigin Button"
469
  msgstr ""
470
 
471
- #: widgets/button/button.php:33, widgets/contact/contact.php:801, widgets/features/features.php:368, widgets/headline/headline.php:37, widgets/social-media-buttons/social-media-buttons.php:32, base/inc/widgets/base-slider.class.php:222
472
  msgid "Responsive Breakpoint"
473
  msgstr ""
474
 
@@ -520,7 +520,7 @@ msgstr ""
520
  msgid "Design and layout"
521
  msgstr ""
522
 
523
- #: widgets/button/button.php:121, widgets/contact/contact.php:417, widgets/contact/contact.php:647, widgets/contact/contact.php:698, widgets/google-map/google-map.php:94, base/inc/fields/image-size.class.php:57
524
  msgid "Width"
525
  msgstr ""
526
 
@@ -528,15 +528,15 @@ msgstr ""
528
  msgid "Leave blank to let the button resize according to content."
529
  msgstr ""
530
 
531
- #: widgets/button/button.php:127, widgets/contact/contact.php:422, widgets/contact/contact.php:651, widgets/social-media-buttons/social-media-buttons.php:171
532
  msgid "Align"
533
  msgstr ""
534
 
535
- #: widgets/button/button.php:132, widgets/button/button.php:143, widgets/contact/contact.php:427, widgets/contact/contact.php:656, widgets/headline/headline.php:100, widgets/headline/headline.php:110, widgets/headline/headline.php:181, widgets/headline/headline.php:191, widgets/headline/headline.php:246, widgets/headline/headline.php:255, widgets/icon/icon.php:48, widgets/image/image.php:51, widgets/image/image.php:63, widgets/image-grid/image-grid.php:155, widgets/image-grid/image-grid.php:166, widgets/social-media-buttons/social-media-buttons.php:176, widgets/social-media-buttons/social-media-buttons.php:187
536
  msgid "Center"
537
  msgstr ""
538
 
539
- #: widgets/button/button.php:133, widgets/button/button.php:144, widgets/contact/contact.php:428, widgets/headline/headline.php:103, widgets/headline/headline.php:113, widgets/headline/headline.php:184, widgets/headline/headline.php:194, widgets/social-media-buttons/social-media-buttons.php:177, widgets/social-media-buttons/social-media-buttons.php:188
540
  msgid "Justify"
541
  msgstr ""
542
 
@@ -564,7 +564,7 @@ msgstr ""
564
  msgid "Button color"
565
  msgstr ""
566
 
567
- #: widgets/button/button.php:165, widgets/contact/contact.php:449, widgets/contact/contact.php:622, widgets/hero/hero.php:311, widgets/layout-slider/layout-slider.php:252, widgets/testimonial/testimonial.php:227
568
  msgid "Text color"
569
  msgstr ""
570
 
@@ -580,7 +580,7 @@ msgstr ""
580
  msgid "Hover text color"
581
  msgstr ""
582
 
583
- #: widgets/button/button.php:209, widgets/contact/contact.php:299, widgets/contact/contact.php:533, widgets/contact/contact.php:635, widgets/social-media-buttons/social-media-buttons.php:141
584
  msgid "Normal"
585
  msgstr ""
586
 
@@ -600,7 +600,7 @@ msgstr ""
600
  msgid "Rounding"
601
  msgstr ""
602
 
603
- #: widgets/button/button.php:221, widgets/contact/contact.php:369, widgets/contact/contact.php:491, widgets/contact/contact.php:602, widgets/contact/contact.php:687, widgets/google-map/google-map.php:158, widgets/headline/headline.php:218, widgets/social-media-buttons/social-media-buttons.php:152
604
  msgid "None"
605
  msgstr ""
606
 
@@ -616,7 +616,7 @@ msgstr ""
616
  msgid "Completely rounded"
617
  msgstr ""
618
 
619
- #: widgets/button/button.php:230, widgets/contact/contact.php:351, widgets/contact/contact.php:457, widgets/contact/contact.php:642, widgets/social-media-buttons/social-media-buttons.php:160, widgets/testimonial/testimonial.php:235
620
  msgid "Padding"
621
  msgstr ""
622
 
@@ -772,7 +772,7 @@ msgstr ""
772
  msgid "List in contact emails, the IP address of the form sender."
773
  msgstr ""
774
 
775
- #: widgets/contact/contact.php:137, widgets/contact/contact.php:436
776
  msgid "Fields"
777
  msgstr ""
778
 
@@ -804,7 +804,7 @@ msgstr ""
804
  msgid "Number"
805
  msgstr ""
806
 
807
- #: widgets/contact/contact.php:153, widgets/contact/contact.php:747
808
  msgid "Subject"
809
  msgstr ""
810
 
@@ -844,7 +844,7 @@ msgstr ""
844
  msgid "Required Field"
845
  msgstr ""
846
 
847
- #: widgets/contact/contact.php:183, widgets/contact/contact.php:190, widgets/contact/contact.php:1080
848
  msgid "Required field"
849
  msgstr ""
850
 
@@ -876,320 +876,324 @@ msgstr ""
876
  msgid "Spam Protection"
877
  msgstr ""
878
 
879
- #: widgets/contact/contact.php:233
880
- msgid "reCAPTCHA v2"
881
  msgstr ""
882
 
883
- #: widgets/contact/contact.php:237
884
- msgid "Use reCAPTCHA v2"
885
  msgstr ""
886
 
887
- #: widgets/contact/contact.php:240
888
- msgid "Please make sure you register a new reCAPTCHA v2 key %shere%s."
889
- msgstr ""
890
-
891
- #: widgets/contact/contact.php:254
892
  msgid "reCAPTCHA v2 Site Key"
893
  msgstr ""
894
 
895
- #: widgets/contact/contact.php:262
896
  msgid "reCAPTCHA v2 Secret Key"
897
  msgstr ""
898
 
899
- #: widgets/contact/contact.php:270
 
 
 
 
 
 
 
 
900
  msgid "Theme"
901
  msgstr ""
902
 
903
- #: widgets/contact/contact.php:273
904
  msgid "Light"
905
  msgstr ""
906
 
907
- #: widgets/contact/contact.php:274
908
  msgid "Dark"
909
  msgstr ""
910
 
911
- #: widgets/contact/contact.php:283
912
  msgid "Challenge type"
913
  msgstr ""
914
 
915
- #: widgets/contact/contact.php:286, widgets/image-grid/image-grid.php:54, widgets/image-grid/image-grid.php:70, widgets/price-table/price-table.php:70, widgets/simple-masonry/simple-masonry.php:64, widgets/testimonial/testimonial.php:72, widgets/testimonial/testimonial.php:189
916
  msgid "Image"
917
  msgstr ""
918
 
919
- #: widgets/contact/contact.php:287
920
  msgid "Audio"
921
  msgstr ""
922
 
923
- #: widgets/contact/contact.php:296, widgets/contact/contact.php:519, widgets/features/features.php:150, widgets/features/features.php:171, widgets/features/features.php:192, widgets/icon/icon.php:41
924
  msgid "Size"
925
  msgstr ""
926
 
927
- #: widgets/contact/contact.php:300
928
  msgid "Compact"
929
  msgstr ""
930
 
931
- #: widgets/contact/contact.php:312
932
  msgid "Akismet"
933
  msgstr ""
934
 
935
- #: widgets/contact/contact.php:316
936
  msgid "Use Akismet filtering"
937
  msgstr ""
938
 
939
- #: widgets/contact/contact.php:321
940
  msgid "Spam action"
941
  msgstr ""
942
 
943
- #: widgets/contact/contact.php:323
944
  msgid "Show error message"
945
  msgstr ""
946
 
947
- #: widgets/contact/contact.php:324
948
  msgid "Tag as spam in subject"
949
  msgstr ""
950
 
951
- #: widgets/contact/contact.php:326
952
  msgid "How to handle submissions that are identified as spam."
953
  msgstr ""
954
 
955
- #: widgets/contact/contact.php:342
956
  msgid "Container"
957
  msgstr ""
958
 
959
- #: widgets/contact/contact.php:366, widgets/contact/contact.php:599
960
  msgid "Border style"
961
  msgstr ""
962
 
963
- #: widgets/contact/contact.php:370, widgets/contact/contact.php:492, widgets/contact/contact.php:688, widgets/image/image.php:77
964
  msgid "Hidden"
965
  msgstr ""
966
 
967
- #: widgets/contact/contact.php:371, widgets/contact/contact.php:493, widgets/contact/contact.php:604, widgets/contact/contact.php:679, widgets/headline/headline.php:220
968
  msgid "Dotted"
969
  msgstr ""
970
 
971
- #: widgets/contact/contact.php:372, widgets/contact/contact.php:494, widgets/contact/contact.php:605, widgets/contact/contact.php:680, widgets/headline/headline.php:221
972
  msgid "Dashed"
973
  msgstr ""
974
 
975
- #: widgets/contact/contact.php:374, widgets/contact/contact.php:496, widgets/contact/contact.php:682, widgets/headline/headline.php:222
976
  msgid "Double"
977
  msgstr ""
978
 
979
- #: widgets/contact/contact.php:375, widgets/contact/contact.php:497, widgets/contact/contact.php:683, widgets/headline/headline.php:223
980
  msgid "Groove"
981
  msgstr ""
982
 
983
- #: widgets/contact/contact.php:376, widgets/contact/contact.php:498, widgets/contact/contact.php:684, widgets/headline/headline.php:224
984
  msgid "Ridge"
985
  msgstr ""
986
 
987
- #: widgets/contact/contact.php:377, widgets/contact/contact.php:499, widgets/contact/contact.php:685, widgets/headline/headline.php:225
988
  msgid "Inset"
989
  msgstr ""
990
 
991
- #: widgets/contact/contact.php:378, widgets/contact/contact.php:500, widgets/contact/contact.php:686, widgets/headline/headline.php:226
992
  msgid "Outset"
993
  msgstr ""
994
 
995
- #: widgets/contact/contact.php:386
996
  msgid "Field labels"
997
  msgstr ""
998
 
999
- #: widgets/contact/contact.php:405
1000
  msgid "Position"
1001
  msgstr ""
1002
 
1003
- #: widgets/contact/contact.php:408, widgets/image/image.php:78
1004
  msgid "Above"
1005
  msgstr ""
1006
 
1007
- #: widgets/contact/contact.php:409, widgets/image/image.php:79
1008
  msgid "Below"
1009
  msgstr ""
1010
 
1011
- #: widgets/contact/contact.php:412
1012
  msgid "Inside"
1013
  msgstr ""
1014
 
1015
- #: widgets/contact/contact.php:461
1016
  msgid "Max width"
1017
  msgstr ""
1018
 
1019
- #: widgets/contact/contact.php:466, widgets/google-map/google-map.php:98, widgets/hero/hero.php:187, widgets/hero/hero.php:223, widgets/layout-slider/layout-slider.php:155, widgets/layout-slider/layout-slider.php:191, widgets/slider/slider.php:142, base/inc/fields/image-size.class.php:64
1020
  msgid "Height"
1021
  msgstr ""
1022
 
1023
- #: widgets/contact/contact.php:470
1024
  msgid "Text area height"
1025
  msgstr ""
1026
 
1027
- #: widgets/contact/contact.php:474, widgets/hero/hero.php:100, widgets/layout-slider/layout-slider.php:72, widgets/post-carousel/post-carousel.php:194
1028
  msgid "Background"
1029
  msgstr ""
1030
 
1031
- #: widgets/contact/contact.php:488
1032
  msgid " Border style"
1033
  msgstr ""
1034
 
1035
- #: widgets/contact/contact.php:505, widgets/contact/contact.php:615
1036
  msgid "Border rounding"
1037
  msgstr ""
1038
 
1039
- #: widgets/contact/contact.php:515
1040
  msgid "Field descriptions"
1041
  msgstr ""
1042
 
1043
- #: widgets/contact/contact.php:529, widgets/contact/contact.php:676, widgets/google-map/google-map.php:329, widgets/headline/headline.php:215
1044
  msgid "Style"
1045
  msgstr ""
1046
 
1047
- #: widgets/contact/contact.php:532
1048
  msgid "Italic"
1049
  msgstr ""
1050
 
1051
- #: widgets/contact/contact.php:541
1052
  msgid "Error messages"
1053
  msgstr ""
1054
 
1055
- #: widgets/contact/contact.php:545
1056
  msgid "Error background color"
1057
  msgstr ""
1058
 
1059
- #: widgets/contact/contact.php:550
1060
  msgid "Error border color"
1061
  msgstr ""
1062
 
1063
- #: widgets/contact/contact.php:555
1064
  msgid "Error text color"
1065
  msgstr ""
1066
 
1067
- #: widgets/contact/contact.php:560
1068
  msgid "Error padding"
1069
  msgstr ""
1070
 
1071
- #: widgets/contact/contact.php:565
1072
  msgid "Error margin"
1073
  msgstr ""
1074
 
1075
- #: widgets/contact/contact.php:573
1076
  msgid "Submit button"
1077
  msgstr ""
1078
 
1079
- #: widgets/contact/contact.php:577
1080
  msgid "Style submit button"
1081
  msgstr ""
1082
 
1083
- #: widgets/contact/contact.php:578
1084
  msgid "Style the button or leave it with default theme styling."
1085
  msgstr ""
1086
 
1087
- #: widgets/contact/contact.php:589
1088
  msgid "Gradient intensity"
1089
  msgstr ""
1090
 
1091
- #: widgets/contact/contact.php:632
1092
  msgid "Font weight"
1093
  msgstr ""
1094
 
1095
- #: widgets/contact/contact.php:636
1096
  msgid "Semi-bold"
1097
  msgstr ""
1098
 
1099
- #: widgets/contact/contact.php:637
1100
  msgid "Bold"
1101
  msgstr ""
1102
 
1103
- #: widgets/contact/contact.php:661
1104
  msgid "Inset highlight"
1105
  msgstr ""
1106
 
1107
- #: widgets/contact/contact.php:662
1108
  msgid "The white highlight at the bottom of the button"
1109
  msgstr ""
1110
 
1111
- #: widgets/contact/contact.php:672
1112
  msgid "Input focus"
1113
  msgstr ""
1114
 
1115
- #: widgets/contact/contact.php:731
1116
  msgid "Your Name"
1117
  msgstr ""
1118
 
1119
- #: widgets/contact/contact.php:734
1120
  msgid "Please enter your name"
1121
  msgstr ""
1122
 
1123
- #: widgets/contact/contact.php:739
1124
  msgid "Your Email"
1125
  msgstr ""
1126
 
1127
- #: widgets/contact/contact.php:742
1128
  msgid "Please enter a valid email address"
1129
  msgstr ""
1130
 
1131
- #: widgets/contact/contact.php:750
1132
  msgid "Please enter a subject"
1133
  msgstr ""
1134
 
1135
- #: widgets/contact/contact.php:755
1136
  msgid "Message"
1137
  msgstr ""
1138
 
1139
- #: widgets/contact/contact.php:758
1140
  msgid "Please write something"
1141
  msgstr ""
1142
 
1143
- #: widgets/contact/contact.php:803
1144
  msgid "This setting controls when the field max width will be disabled. The default value is 780px"
1145
  msgstr ""
1146
 
1147
- #: widgets/contact/contact.php:1092
1148
  msgid "Invalid email address."
1149
  msgstr ""
1150
 
1151
- #: widgets/contact/contact.php:1117
1152
  msgid "Invalid phone number. It should contain at least three digits."
1153
  msgstr ""
1154
 
1155
- #: widgets/contact/contact.php:1128
1156
  msgid "Invalid number."
1157
  msgstr ""
1158
 
1159
- #: widgets/contact/contact.php:1194
1160
  msgid "Error sending email, please try again later."
1161
  msgstr ""
1162
 
1163
- #: widgets/contact/contact.php:1220
1164
  msgid "A valid email is required"
1165
  msgstr ""
1166
 
1167
- #: widgets/contact/contact.php:1222
1168
  msgid "The email address is invalid"
1169
  msgstr ""
1170
 
1171
- #: widgets/contact/contact.php:1226
1172
  msgid "Missing subject"
1173
  msgstr ""
1174
 
1175
- #: widgets/contact/contact.php:1260
1176
  msgid "Error validating your Captcha response."
1177
  msgstr ""
1178
 
1179
- #: widgets/contact/contact.php:1292
1180
  msgid "Unfortunately our system identified your message as spam."
1181
  msgstr ""
1182
 
1183
- #: widgets/contact/contact.php:1300
1184
  msgctxt "The name of who sent this email"
1185
  msgid "From"
1186
  msgstr ""
1187
 
1188
- #: widgets/contact/contact.php:1405
1189
  msgid "Add a form autoresponder and additional fields, including a date and time picker with %sSiteOrigin Premium%s"
1190
  msgstr ""
1191
 
1192
- #: widgets/contact/contact.php:1410
1193
  msgid "Use Google Fonts right inside the Contact Form Widget with %sSiteOrigin Premium%s"
1194
  msgstr ""
1195
 
272
  msgid "Regular"
273
  msgstr ""
274
 
275
+ #: icons/fontawesome/filter.php:1472, widgets/contact/contact.php:391, widgets/contact/contact.php:513, widgets/contact/contact.php:621, widgets/contact/contact.php:699, widgets/headline/headline.php:219
276
  msgid "Solid"
277
  msgstr ""
278
 
328
  msgid "Closed"
329
  msgstr ""
330
 
331
+ #: widgets/accordion/accordion.php:111, widgets/contact/contact.php:354, widgets/cta/cta.php:74, widgets/hero/hero.php:254, widgets/layout-slider/layout-slider.php:222, widgets/slider/slider.php:134, widgets/tabs/tabs.php:101, widgets/testimonial/testimonial.php:184, base/inc/widgets/base-carousel.class.php:350
332
  msgid "Design"
333
  msgstr ""
334
 
336
  msgid "Headings"
337
  msgstr ""
338
 
339
+ #: widgets/accordion/accordion.php:121, widgets/accordion/accordion.php:159, widgets/contact/contact.php:364, widgets/contact/contact.php:602, widgets/cta/cta.php:78, widgets/hero/hero.php:133, widgets/layout-slider/layout-slider.php:101, widgets/slider/slider.php:87, widgets/social-media-buttons/social-media-buttons.php:85, widgets/tabs/tabs.php:111, widgets/tabs/tabs.php:131, widgets/tabs/tabs.php:175
340
  msgid "Background color"
341
  msgstr ""
342
 
352
  msgid "Title hover color"
353
  msgstr ""
354
 
355
+ #: widgets/accordion/accordion.php:140, widgets/accordion/accordion.php:168, widgets/contact/contact.php:374, widgets/contact/contact.php:496, widgets/contact/contact.php:612, widgets/cta/cta.php:83, widgets/tabs/tabs.php:116, widgets/tabs/tabs.php:150, widgets/tabs/tabs.php:184
356
  msgid "Border color"
357
  msgstr ""
358
 
360
  msgid "Border hover color"
361
  msgstr ""
362
 
363
+ #: widgets/accordion/accordion.php:148, widgets/accordion/accordion.php:172, widgets/contact/contact.php:379, widgets/contact/contact.php:501, widgets/contact/contact.php:628, widgets/tabs/tabs.php:120, widgets/tabs/tabs.php:160, widgets/tabs/tabs.php:188
364
  msgid "Border width"
365
  msgstr ""
366
 
396
  msgid "Item"
397
  msgstr ""
398
 
399
+ #: widgets/anything-carousel/anything-carousel.php:95, widgets/button/button.php:201, widgets/contact/contact.php:408, widgets/contact/contact.php:458, widgets/features/features.php:145, widgets/features/features.php:166, widgets/features/features.php:187, widgets/headline/headline.php:88, widgets/headline/headline.php:169, base/inc/widgets/base-carousel.class.php:374
400
  msgid "Font"
401
  msgstr ""
402
 
403
+ #: widgets/anything-carousel/anything-carousel.php:99, widgets/button/button.php:207, widgets/contact/contact.php:413, widgets/contact/contact.php:463, widgets/contact/contact.php:645, base/inc/widgets/base-carousel.class.php:378
404
  msgid "Font size"
405
  msgstr ""
406
 
407
+ #: widgets/anything-carousel/anything-carousel.php:103, widgets/contact/contact.php:418, widgets/contact/contact.php:542, widgets/contact/contact.php:711, widgets/features/features.php:154, widgets/features/features.php:175, widgets/features/features.php:196, widgets/google-map/google-map.php:376, widgets/headline/headline.php:80, widgets/headline/headline.php:161, widgets/headline/headline.php:231, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56, base/inc/widgets/base-carousel.class.php:382
408
  msgid "Color"
409
  msgstr ""
410
 
411
+ #: widgets/anything-carousel/anything-carousel.php:107, widgets/contact/contact.php:471, widgets/social-media-buttons/social-media-buttons.php:193
412
  msgid "Margin"
413
  msgstr ""
414
 
416
  msgid "Top"
417
  msgstr ""
418
 
419
+ #: widgets/anything-carousel/anything-carousel.php:116, widgets/button/button.php:105, widgets/button/button.php:131, widgets/button/button.php:142, widgets/contact/contact.php:429, widgets/contact/contact.php:444, widgets/contact/contact.php:673, widgets/cta/cta.php:100, widgets/features/features.php:73, widgets/headline/headline.php:102, widgets/headline/headline.php:112, widgets/headline/headline.php:183, widgets/headline/headline.php:193, widgets/headline/headline.php:248, widgets/headline/headline.php:257, widgets/icon/icon.php:50, widgets/image/image.php:50, widgets/image/image.php:62, widgets/image-grid/image-grid.php:137, widgets/image-grid/image-grid.php:167, widgets/simple-masonry/simple-masonry.php:216, widgets/social-media-buttons/social-media-buttons.php:175, widgets/social-media-buttons/social-media-buttons.php:186, widgets/testimonial/testimonial.php:256
420
  msgid "Right"
421
  msgstr ""
422
 
424
  msgid "Bottom"
425
  msgstr ""
426
 
427
+ #: widgets/anything-carousel/anything-carousel.php:124, widgets/button/button.php:107, widgets/button/button.php:130, widgets/button/button.php:141, widgets/contact/contact.php:428, widgets/contact/contact.php:443, widgets/contact/contact.php:672, widgets/cta/cta.php:99, widgets/features/features.php:75, widgets/headline/headline.php:101, widgets/headline/headline.php:111, widgets/headline/headline.php:182, widgets/headline/headline.php:192, widgets/headline/headline.php:247, widgets/headline/headline.php:256, widgets/icon/icon.php:49, widgets/image/image.php:49, widgets/image/image.php:61, widgets/image-grid/image-grid.php:143, widgets/image-grid/image-grid.php:165, widgets/simple-masonry/simple-masonry.php:215, widgets/social-media-buttons/social-media-buttons.php:174, widgets/social-media-buttons/social-media-buttons.php:185, widgets/testimonial/testimonial.php:255
428
  msgid "Left"
429
  msgstr ""
430
 
468
  msgid "SiteOrigin Button"
469
  msgstr ""
470
 
471
+ #: widgets/button/button.php:33, widgets/contact/contact.php:866, widgets/features/features.php:368, widgets/headline/headline.php:37, widgets/social-media-buttons/social-media-buttons.php:32, base/inc/widgets/base-slider.class.php:222
472
  msgid "Responsive Breakpoint"
473
  msgstr ""
474
 
520
  msgid "Design and layout"
521
  msgstr ""
522
 
523
+ #: widgets/button/button.php:121, widgets/contact/contact.php:435, widgets/contact/contact.php:665, widgets/contact/contact.php:716, widgets/google-map/google-map.php:94, base/inc/fields/image-size.class.php:57
524
  msgid "Width"
525
  msgstr ""
526
 
528
  msgid "Leave blank to let the button resize according to content."
529
  msgstr ""
530
 
531
+ #: widgets/button/button.php:127, widgets/contact/contact.php:440, widgets/contact/contact.php:669, widgets/social-media-buttons/social-media-buttons.php:171
532
  msgid "Align"
533
  msgstr ""
534
 
535
+ #: widgets/button/button.php:132, widgets/button/button.php:143, widgets/contact/contact.php:445, widgets/contact/contact.php:674, widgets/headline/headline.php:100, widgets/headline/headline.php:110, widgets/headline/headline.php:181, widgets/headline/headline.php:191, widgets/headline/headline.php:246, widgets/headline/headline.php:255, widgets/icon/icon.php:48, widgets/image/image.php:51, widgets/image/image.php:63, widgets/image-grid/image-grid.php:155, widgets/image-grid/image-grid.php:166, widgets/social-media-buttons/social-media-buttons.php:176, widgets/social-media-buttons/social-media-buttons.php:187
536
  msgid "Center"
537
  msgstr ""
538
 
539
+ #: widgets/button/button.php:133, widgets/button/button.php:144, widgets/contact/contact.php:446, widgets/headline/headline.php:103, widgets/headline/headline.php:113, widgets/headline/headline.php:184, widgets/headline/headline.php:194, widgets/social-media-buttons/social-media-buttons.php:177, widgets/social-media-buttons/social-media-buttons.php:188
540
  msgid "Justify"
541
  msgstr ""
542
 
564
  msgid "Button color"
565
  msgstr ""
566
 
567
+ #: widgets/button/button.php:165, widgets/contact/contact.php:467, widgets/contact/contact.php:640, widgets/hero/hero.php:311, widgets/layout-slider/layout-slider.php:252, widgets/testimonial/testimonial.php:227
568
  msgid "Text color"
569
  msgstr ""
570
 
580
  msgid "Hover text color"
581
  msgstr ""
582
 
583
+ #: widgets/button/button.php:209, widgets/contact/contact.php:317, widgets/contact/contact.php:551, widgets/contact/contact.php:653, widgets/social-media-buttons/social-media-buttons.php:141
584
  msgid "Normal"
585
  msgstr ""
586
 
600
  msgid "Rounding"
601
  msgstr ""
602
 
603
+ #: widgets/button/button.php:221, widgets/contact/contact.php:387, widgets/contact/contact.php:509, widgets/contact/contact.php:620, widgets/contact/contact.php:705, widgets/google-map/google-map.php:158, widgets/headline/headline.php:218, widgets/social-media-buttons/social-media-buttons.php:152
604
  msgid "None"
605
  msgstr ""
606
 
616
  msgid "Completely rounded"
617
  msgstr ""
618
 
619
+ #: widgets/button/button.php:230, widgets/contact/contact.php:369, widgets/contact/contact.php:475, widgets/contact/contact.php:660, widgets/social-media-buttons/social-media-buttons.php:160, widgets/testimonial/testimonial.php:235
620
  msgid "Padding"
621
  msgstr ""
622
 
772
  msgid "List in contact emails, the IP address of the form sender."
773
  msgstr ""
774
 
775
+ #: widgets/contact/contact.php:137, widgets/contact/contact.php:454
776
  msgid "Fields"
777
  msgstr ""
778
 
804
  msgid "Number"
805
  msgstr ""
806
 
807
+ #: widgets/contact/contact.php:153, widgets/contact/contact.php:765
808
  msgid "Subject"
809
  msgstr ""
810
 
844
  msgid "Required Field"
845
  msgstr ""
846
 
847
+ #: widgets/contact/contact.php:183, widgets/contact/contact.php:190, widgets/contact/contact.php:1145
848
  msgid "Required field"
849
  msgstr ""
850
 
876
  msgid "Spam Protection"
877
  msgstr ""
878
 
879
+ #: widgets/contact/contact.php:233, widgets/contact/contact.php:237
880
+ msgid "reCAPTCHA"
881
  msgstr ""
882
 
883
+ #: widgets/contact/contact.php:245
884
+ msgid "Please make sure you register a new reCAPTCHA key %shere%s."
885
  msgstr ""
886
 
887
+ #: widgets/contact/contact.php:256
 
 
 
 
888
  msgid "reCAPTCHA v2 Site Key"
889
  msgstr ""
890
 
891
+ #: widgets/contact/contact.php:264
892
  msgid "reCAPTCHA v2 Secret Key"
893
  msgstr ""
894
 
895
+ #: widgets/contact/contact.php:272
896
+ msgid "reCAPTCHA v3 Site Key"
897
+ msgstr ""
898
+
899
+ #: widgets/contact/contact.php:280
900
+ msgid "reCAPTCHA v3 Secret Key"
901
+ msgstr ""
902
+
903
+ #: widgets/contact/contact.php:288
904
  msgid "Theme"
905
  msgstr ""
906
 
907
+ #: widgets/contact/contact.php:291
908
  msgid "Light"
909
  msgstr ""
910
 
911
+ #: widgets/contact/contact.php:292
912
  msgid "Dark"
913
  msgstr ""
914
 
915
+ #: widgets/contact/contact.php:301
916
  msgid "Challenge type"
917
  msgstr ""
918
 
919
+ #: widgets/contact/contact.php:304, widgets/image-grid/image-grid.php:54, widgets/image-grid/image-grid.php:70, widgets/price-table/price-table.php:70, widgets/simple-masonry/simple-masonry.php:64, widgets/testimonial/testimonial.php:72, widgets/testimonial/testimonial.php:189
920
  msgid "Image"
921
  msgstr ""
922
 
923
+ #: widgets/contact/contact.php:305
924
  msgid "Audio"
925
  msgstr ""
926
 
927
+ #: widgets/contact/contact.php:314, widgets/contact/contact.php:537, widgets/features/features.php:150, widgets/features/features.php:171, widgets/features/features.php:192, widgets/icon/icon.php:41
928
  msgid "Size"
929
  msgstr ""
930
 
931
+ #: widgets/contact/contact.php:318
932
  msgid "Compact"
933
  msgstr ""
934
 
935
+ #: widgets/contact/contact.php:330
936
  msgid "Akismet"
937
  msgstr ""
938
 
939
+ #: widgets/contact/contact.php:334
940
  msgid "Use Akismet filtering"
941
  msgstr ""
942
 
943
+ #: widgets/contact/contact.php:339
944
  msgid "Spam action"
945
  msgstr ""
946
 
947
+ #: widgets/contact/contact.php:341
948
  msgid "Show error message"
949
  msgstr ""
950
 
951
+ #: widgets/contact/contact.php:342
952
  msgid "Tag as spam in subject"
953
  msgstr ""
954
 
955
+ #: widgets/contact/contact.php:344
956
  msgid "How to handle submissions that are identified as spam."
957
  msgstr ""
958
 
959
+ #: widgets/contact/contact.php:360
960
  msgid "Container"
961
  msgstr ""
962
 
963
+ #: widgets/contact/contact.php:384, widgets/contact/contact.php:617
964
  msgid "Border style"
965
  msgstr ""
966
 
967
+ #: widgets/contact/contact.php:388, widgets/contact/contact.php:510, widgets/contact/contact.php:706, widgets/image/image.php:77
968
  msgid "Hidden"
969
  msgstr ""
970
 
971
+ #: widgets/contact/contact.php:389, widgets/contact/contact.php:511, widgets/contact/contact.php:622, widgets/contact/contact.php:697, widgets/headline/headline.php:220
972
  msgid "Dotted"
973
  msgstr ""
974
 
975
+ #: widgets/contact/contact.php:390, widgets/contact/contact.php:512, widgets/contact/contact.php:623, widgets/contact/contact.php:698, widgets/headline/headline.php:221
976
  msgid "Dashed"
977
  msgstr ""
978
 
979
+ #: widgets/contact/contact.php:392, widgets/contact/contact.php:514, widgets/contact/contact.php:700, widgets/headline/headline.php:222
980
  msgid "Double"
981
  msgstr ""
982
 
983
+ #: widgets/contact/contact.php:393, widgets/contact/contact.php:515, widgets/contact/contact.php:701, widgets/headline/headline.php:223
984
  msgid "Groove"
985
  msgstr ""
986
 
987
+ #: widgets/contact/contact.php:394, widgets/contact/contact.php:516, widgets/contact/contact.php:702, widgets/headline/headline.php:224
988
  msgid "Ridge"
989
  msgstr ""
990
 
991
+ #: widgets/contact/contact.php:395, widgets/contact/contact.php:517, widgets/contact/contact.php:703, widgets/headline/headline.php:225
992
  msgid "Inset"
993
  msgstr ""
994
 
995
+ #: widgets/contact/contact.php:396, widgets/contact/contact.php:518, widgets/contact/contact.php:704, widgets/headline/headline.php:226
996
  msgid "Outset"
997
  msgstr ""
998
 
999
+ #: widgets/contact/contact.php:404
1000
  msgid "Field labels"
1001
  msgstr ""
1002
 
1003
+ #: widgets/contact/contact.php:423
1004
  msgid "Position"
1005
  msgstr ""
1006
 
1007
+ #: widgets/contact/contact.php:426, widgets/image/image.php:78
1008
  msgid "Above"
1009
  msgstr ""
1010
 
1011
+ #: widgets/contact/contact.php:427, widgets/image/image.php:79
1012
  msgid "Below"
1013
  msgstr ""
1014
 
1015
+ #: widgets/contact/contact.php:430
1016
  msgid "Inside"
1017
  msgstr ""
1018
 
1019
+ #: widgets/contact/contact.php:479
1020
  msgid "Max width"
1021
  msgstr ""
1022
 
1023
+ #: widgets/contact/contact.php:484, widgets/google-map/google-map.php:98, widgets/hero/hero.php:187, widgets/hero/hero.php:223, widgets/layout-slider/layout-slider.php:155, widgets/layout-slider/layout-slider.php:191, widgets/slider/slider.php:142, base/inc/fields/image-size.class.php:64
1024
  msgid "Height"
1025
  msgstr ""
1026
 
1027
+ #: widgets/contact/contact.php:488
1028
  msgid "Text area height"
1029
  msgstr ""
1030
 
1031
+ #: widgets/contact/contact.php:492, widgets/hero/hero.php:100, widgets/layout-slider/layout-slider.php:72, widgets/post-carousel/post-carousel.php:194
1032
  msgid "Background"
1033
  msgstr ""
1034
 
1035
+ #: widgets/contact/contact.php:506
1036
  msgid " Border style"
1037
  msgstr ""
1038
 
1039
+ #: widgets/contact/contact.php:523, widgets/contact/contact.php:633
1040
  msgid "Border rounding"
1041
  msgstr ""
1042
 
1043
+ #: widgets/contact/contact.php:533
1044
  msgid "Field descriptions"
1045
  msgstr ""
1046
 
1047
+ #: widgets/contact/contact.php:547, widgets/contact/contact.php:694, widgets/google-map/google-map.php:329, widgets/headline/headline.php:215
1048
  msgid "Style"
1049
  msgstr ""
1050
 
1051
+ #: widgets/contact/contact.php:550
1052
  msgid "Italic"
1053
  msgstr ""
1054
 
1055
+ #: widgets/contact/contact.php:559
1056
  msgid "Error messages"
1057
  msgstr ""
1058
 
1059
+ #: widgets/contact/contact.php:563
1060
  msgid "Error background color"
1061
  msgstr ""
1062
 
1063
+ #: widgets/contact/contact.php:568
1064
  msgid "Error border color"
1065
  msgstr ""
1066
 
1067
+ #: widgets/contact/contact.php:573
1068
  msgid "Error text color"
1069
  msgstr ""
1070
 
1071
+ #: widgets/contact/contact.php:578
1072
  msgid "Error padding"
1073
  msgstr ""
1074
 
1075
+ #: widgets/contact/contact.php:583
1076
  msgid "Error margin"
1077
  msgstr ""
1078
 
1079
+ #: widgets/contact/contact.php:591
1080
  msgid "Submit button"
1081
  msgstr ""
1082
 
1083
+ #: widgets/contact/contact.php:595
1084
  msgid "Style submit button"
1085
  msgstr ""
1086
 
1087
+ #: widgets/contact/contact.php:596
1088
  msgid "Style the button or leave it with default theme styling."
1089
  msgstr ""
1090
 
1091
+ #: widgets/contact/contact.php:607
1092
  msgid "Gradient intensity"
1093
  msgstr ""
1094
 
1095
+ #: widgets/contact/contact.php:650
1096
  msgid "Font weight"
1097
  msgstr ""
1098
 
1099
+ #: widgets/contact/contact.php:654
1100
  msgid "Semi-bold"
1101
  msgstr ""
1102
 
1103
+ #: widgets/contact/contact.php:655
1104
  msgid "Bold"
1105
  msgstr ""
1106
 
1107
+ #: widgets/contact/contact.php:679
1108
  msgid "Inset highlight"
1109
  msgstr ""
1110
 
1111
+ #: widgets/contact/contact.php:680
1112
  msgid "The white highlight at the bottom of the button"
1113
  msgstr ""
1114
 
1115
+ #: widgets/contact/contact.php:690
1116
  msgid "Input focus"
1117
  msgstr ""
1118
 
1119
+ #: widgets/contact/contact.php:749
1120
  msgid "Your Name"
1121
  msgstr ""
1122
 
1123
+ #: widgets/contact/contact.php:752
1124
  msgid "Please enter your name"
1125
  msgstr ""
1126
 
1127
+ #: widgets/contact/contact.php:757
1128
  msgid "Your Email"
1129
  msgstr ""
1130
 
1131
+ #: widgets/contact/contact.php:760
1132
  msgid "Please enter a valid email address"
1133
  msgstr ""
1134
 
1135
+ #: widgets/contact/contact.php:768
1136
  msgid "Please enter a subject"
1137
  msgstr ""
1138
 
1139
+ #: widgets/contact/contact.php:773
1140
  msgid "Message"
1141
  msgstr ""
1142
 
1143
+ #: widgets/contact/contact.php:776
1144
  msgid "Please write something"
1145
  msgstr ""
1146
 
1147
+ #: widgets/contact/contact.php:868
1148
  msgid "This setting controls when the field max width will be disabled. The default value is 780px"
1149
  msgstr ""
1150
 
1151
+ #: widgets/contact/contact.php:1157
1152
  msgid "Invalid email address."
1153
  msgstr ""
1154
 
1155
+ #: widgets/contact/contact.php:1182
1156
  msgid "Invalid phone number. It should contain at least three digits."
1157
  msgstr ""
1158
 
1159
+ #: widgets/contact/contact.php:1193
1160
  msgid "Invalid number."
1161
  msgstr ""
1162
 
1163
+ #: widgets/contact/contact.php:1259
1164
  msgid "Error sending email, please try again later."
1165
  msgstr ""
1166
 
1167
+ #: widgets/contact/contact.php:1285
1168
  msgid "A valid email is required"
1169
  msgstr ""
1170
 
1171
+ #: widgets/contact/contact.php:1287
1172
  msgid "The email address is invalid"
1173
  msgstr ""
1174
 
1175
+ #: widgets/contact/contact.php:1291
1176
  msgid "Missing subject"
1177
  msgstr ""
1178
 
1179
+ #: widgets/contact/contact.php:1322
1180
  msgid "Error validating your Captcha response."
1181
  msgstr ""
1182
 
1183
+ #: widgets/contact/contact.php:1354
1184
  msgid "Unfortunately our system identified your message as spam."
1185
  msgstr ""
1186
 
1187
+ #: widgets/contact/contact.php:1362
1188
  msgctxt "The name of who sent this email"
1189
  msgid "From"
1190
  msgstr ""
1191
 
1192
+ #: widgets/contact/contact.php:1467
1193
  msgid "Add a form autoresponder and additional fields, including a date and time picker with %sSiteOrigin Premium%s"
1194
  msgstr ""
1195
 
1196
+ #: widgets/contact/contact.php:1472
1197
  msgid "Use Google Fonts right inside the Contact Form Widget with %sSiteOrigin Premium%s"
1198
  msgstr ""
1199
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Tags: widget, button, slider, hero, google maps, image, carousel, lottie, featur
3
  Requires at least: 4.2
4
  Tested up to: 5.9
5
  Requires PHP: 5.6.20
6
- Stable tag: 1.34.0
7
- Build time: 2022-05-16T20:19:40+02:00
8
  License: GPLv3 or later
9
  Contributors: gpriday, braam-genis, alexgso
10
  Donate link: https://siteorigin.com/downloads/premium/
@@ -105,6 +105,9 @@ The Widgets Bundle global interface is available at Plugins > SiteOrigin Widgets
105
 
106
  == Changelog ==
107
 
 
 
 
108
  = 1.34.0 - 16 May 2022 =
109
  * Icon: Hide icons from screen readers.
110
  * Google Maps: Added Custom Marker Icon image size settings.
3
  Requires at least: 4.2
4
  Tested up to: 5.9
5
  Requires PHP: 5.6.20
6
+ Stable tag: 1.35.0
7
+ Build time: 2022-05-21T10:59:09+02:00
8
  License: GPLv3 or later
9
  Contributors: gpriday, braam-genis, alexgso
10
  Donate link: https://siteorigin.com/downloads/premium/
105
 
106
  == Changelog ==
107
 
108
+ = 1.35.0 - 21 May 2022 =
109
+ * Contact Form: Added reCAPTCHA V3 support.
110
+
111
  = 1.34.0 - 16 May 2022 =
112
  * Icon: Hide icons from screen readers.
113
  * Google Maps: Added Custom Marker Icon image size settings.
so-widgets-bundle.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: SiteOrigin Widgets Bundle
4
  Description: A highly customizable collection of widgets, ready to be used anywhere, neatly bundled into a single plugin.
5
- Version: 1.34.0
6
  Text Domain: so-widgets-bundle
7
  Domain Path: /lang
8
  Author: SiteOrigin
@@ -12,7 +12,7 @@ License: GPL3
12
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
13
  */
14
 
15
- define( 'SOW_BUNDLE_VERSION', '1.34.0' );
16
  define( 'SOW_BUNDLE_BASE_FILE', __FILE__ );
17
 
18
  // Allow JS suffix to be pre-set.
2
  /*
3
  Plugin Name: SiteOrigin Widgets Bundle
4
  Description: A highly customizable collection of widgets, ready to be used anywhere, neatly bundled into a single plugin.
5
+ Version: 1.35.0
6
  Text Domain: so-widgets-bundle
7
  Domain Path: /lang
8
  Author: SiteOrigin
12
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
13
  */
14
 
15
+ define( 'SOW_BUNDLE_VERSION', '1.35.0' );
16
  define( 'SOW_BUNDLE_BASE_FILE', __FILE__ );
17
 
18
  // Allow JS suffix to be pre-set.
widgets/contact/contact.php CHANGED
@@ -230,39 +230,57 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
230
 
231
  'recaptcha' => array(
232
  'type' => 'section',
233
- 'label' => __( 'reCAPTCHA v2', 'so-widgets-bundle' ),
234
  'fields' => array(
235
  'use_captcha' => array(
236
- 'type' => 'checkbox',
237
- 'label' => __( 'Use reCAPTCHA v2', 'so-widgets-bundle' ),
238
  'default' => false,
 
 
 
 
 
239
  'description' => sprintf(
240
- __( 'Please make sure you register a new reCAPTCHA v2 key %shere%s.', 'so-widgets-bundle' ),
241
  '<a href="https://www.google.com/recaptcha/admin/create" target="_blank" rel="noopener noreferrer">',
242
  '</a>'
243
  ),
244
  'state_emitter' => array(
245
- 'callback' => 'conditional',
246
- 'args' => array(
247
- 'use_captcha[show]: val',
248
- 'use_captcha[hide]: ! val',
249
- ),
250
- ),
251
  ),
252
  'site_key' => array(
253
  'type' => 'text',
254
  'label' => __( 'reCAPTCHA v2 Site Key', 'so-widgets-bundle' ),
255
  'state_handler' => array(
256
- 'use_captcha[show]' => array( 'slideDown' ),
257
- 'use_captcha[hide]' => array( 'slideUp' ),
258
  ),
259
  ),
260
  'secret_key' => array(
261
  'type' => 'text',
262
  'label' => __( 'reCAPTCHA v2 Secret Key', 'so-widgets-bundle' ),
263
  'state_handler' => array(
264
- 'use_captcha[show]' => array( 'slideDown' ),
265
- 'use_captcha[hide]' => array( 'slideUp' ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
266
  ),
267
  ),
268
  'theme' => array(
@@ -274,8 +292,8 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
274
  'dark' => __( 'Dark', 'so-widgets-bundle' ),
275
  ),
276
  'state_handler' => array(
277
- 'use_captcha[show]' => array( 'slideDown' ),
278
- 'use_captcha[hide]' => array( 'slideUp' ),
279
  ),
280
  ),
281
  'type' => array(
@@ -287,8 +305,8 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
287
  'audio' => __( 'Audio', 'so-widgets-bundle' ),
288
  ),
289
  'state_handler' => array(
290
- 'use_captcha[show]' => array( 'slideDown' ),
291
- 'use_captcha[hide]' => array( 'slideUp' ),
292
  ),
293
  ),
294
  'size' => array(
@@ -300,8 +318,8 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
300
  'compact' => __( 'Compact', 'so-widgets-bundle' ),
301
  ),
302
  'state_handler' => array(
303
- 'use_captcha[show]' => array( 'slideDown' ),
304
- 'use_captcha[hide]' => array( 'slideUp' ),
305
  ),
306
  ),
307
  )
@@ -769,17 +787,51 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
769
  $instance['settings']['on_click'] = $instance['settings']['onclick'];
770
  }
771
 
 
 
 
 
 
 
 
 
 
772
  return $instance;
773
  }
774
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
775
  function get_template_variables( $instance, $args ) {
776
  unset( $instance['title'] );
777
  unset( $instance['display_title'] );
778
  unset( $instance['design'] );
779
  unset( $instance['panels_info'] );
780
 
 
 
 
 
781
  // Include '_sow_form_id' in generation of 'instance_hash' to allow multiple instances of the same form on a page.
782
- $instance_hash = md5( serialize( $instance ) );
783
  unset( $instance['_sow_form_id'] );
784
 
785
  $submit_attributes = array();
@@ -787,11 +839,24 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
787
  $submit_attributes['id'] = $instance['settings']['submit_id'];
788
  }
789
 
790
- return array(
791
- 'instance_hash' => $instance_hash,
792
- 'submit_attributes' => $submit_attributes,
793
- 'onclick' => ! empty( $instance['settings']['on_click'] ) ? $instance['settings']['on_click'] : '',
794
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
795
  }
796
 
797
  function get_settings_form() {
@@ -1239,15 +1304,12 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
1239
  */
1240
  function spam_check( $post_vars, $email_fields, $instance ) {
1241
  $errors = array();
1242
-
1243
- $recaptcha_config = $instance['spam']['recaptcha'];
1244
- $use_recaptcha = $recaptcha_config['use_captcha'] && ! empty( $recaptcha_config['site_key'] ) && ! empty( $recaptcha_config['secret_key'] );
1245
- if ( $use_recaptcha ) {
1246
  $result = wp_remote_post(
1247
  'https://www.google.com/recaptcha/api/siteverify',
1248
  array(
1249
  'body' => array(
1250
- 'secret' => $instance['spam']['recaptcha']['secret_key'],
1251
  'response' => $post_vars['g-recaptcha-response'],
1252
  'remoteip' => isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : null,
1253
  )
230
 
231
  'recaptcha' => array(
232
  'type' => 'section',
233
+ 'label' => __( 'reCAPTCHA', 'so-widgets-bundle' ),
234
  'fields' => array(
235
  'use_captcha' => array(
236
+ 'type' => 'radio',
237
+ 'label' => __( 'reCAPTCHA', 'so-widgets-bundle' ),
238
  'default' => false,
239
+ 'options' => array(
240
+ '' => __( 'Disabled', 'so-widgets' ),
241
+ 'v2' => __( 'v2', 'so-widgets' ),
242
+ 'v3' => __( 'v3', 'so-widgets' ),
243
+ ),
244
  'description' => sprintf(
245
+ __( 'Please make sure you register a new reCAPTCHA key %shere%s.', 'so-widgets-bundle' ),
246
  '<a href="https://www.google.com/recaptcha/admin/create" target="_blank" rel="noopener noreferrer">',
247
  '</a>'
248
  ),
249
  'state_emitter' => array(
250
+ 'callback' => 'select',
251
+ 'args' => array( 'recaptcha_version' ),
252
+ )
 
 
 
253
  ),
254
  'site_key' => array(
255
  'type' => 'text',
256
  'label' => __( 'reCAPTCHA v2 Site Key', 'so-widgets-bundle' ),
257
  'state_handler' => array(
258
+ 'recaptcha_version[v2]' => array( 'show' ),
259
+ '_else[recaptcha_version]' => array( 'hide' ),
260
  ),
261
  ),
262
  'secret_key' => array(
263
  'type' => 'text',
264
  'label' => __( 'reCAPTCHA v2 Secret Key', 'so-widgets-bundle' ),
265
  'state_handler' => array(
266
+ 'recaptcha_version[v2]' => array( 'show' ),
267
+ '_else[recaptcha_version]' => array( 'hide' ),
268
+ ),
269
+ ),
270
+ 'site_key_v3' => array(
271
+ 'type' => 'text',
272
+ 'label' => __( 'reCAPTCHA v3 Site Key', 'so-widgets-bundle' ),
273
+ 'state_handler' => array(
274
+ 'recaptcha_version[v3]' => array( 'show' ),
275
+ '_else[recaptcha_version]' => array( 'hide' ),
276
+ ),
277
+ ),
278
+ 'secret_key_v3' => array(
279
+ 'type' => 'text',
280
+ 'label' => __( 'reCAPTCHA v3 Secret Key', 'so-widgets-bundle' ),
281
+ 'state_handler' => array(
282
+ 'recaptcha_version[v3]' => array( 'show' ),
283
+ '_else[recaptcha_version]' => array( 'hide' ),
284
  ),
285
  ),
286
  'theme' => array(
292
  'dark' => __( 'Dark', 'so-widgets-bundle' ),
293
  ),
294
  'state_handler' => array(
295
+ 'recaptcha_version[v2]' => array( 'slideDown' ),
296
+ '_else[recaptcha_version]' => array( 'slideUp' ),
297
  ),
298
  ),
299
  'type' => array(
305
  'audio' => __( 'Audio', 'so-widgets-bundle' ),
306
  ),
307
  'state_handler' => array(
308
+ 'recaptcha_version[v2]' => array( 'slideDown' ),
309
+ '_else[recaptcha_version]' => array( 'slideUp' ),
310
  ),
311
  ),
312
  'size' => array(
318
  'compact' => __( 'Compact', 'so-widgets-bundle' ),
319
  ),
320
  'state_handler' => array(
321
+ 'recaptcha_version[v2]' => array( 'slideDown' ),
322
+ '_else[recaptcha_version]' => array( 'slideUp' ),
323
  ),
324
  ),
325
  )
787
  $instance['settings']['on_click'] = $instance['settings']['onclick'];
788
  }
789
 
790
+ // If using an older version of reCAPTCHA settings, migrate.
791
+ if (
792
+ ! empty( $instance['spam'] ) &&
793
+ ! empty( $instance['spam']['recaptcha'] ) &&
794
+ $instance['spam']['recaptcha']['use_captcha'] === true
795
+ ) {
796
+ $instance['spam']['recaptcha']['use_captcha'] = 'v2';
797
+ }
798
+
799
  return $instance;
800
  }
801
 
802
+ static function is_recaptcha_enabled( $settings, $use_v3 = false ) {
803
+ return ! empty( $settings['use_captcha'] ) &&
804
+ (
805
+ ! $use_v3 ||
806
+ $settings['use_captcha'] == 'v3'
807
+ ) &&
808
+ (
809
+ // Check for v2
810
+ (
811
+ ! $use_v3 &&
812
+ ! empty( $settings['site_key'] ) &&
813
+ ! empty( $settings['secret_key'] )
814
+ ) ||
815
+ // Check for v3
816
+ (
817
+ ! empty( $settings['site_key_v3'] ) &&
818
+ ! empty( $settings['secret_key_v3'] )
819
+ )
820
+ );
821
+ }
822
+
823
  function get_template_variables( $instance, $args ) {
824
  unset( $instance['title'] );
825
  unset( $instance['display_title'] );
826
  unset( $instance['design'] );
827
  unset( $instance['panels_info'] );
828
 
829
+ $template_vars = array(
830
+ 'onclick' => ! empty( $instance['settings']['on_click'] ) ? $instance['settings']['on_click'] : '',
831
+ );
832
+
833
  // Include '_sow_form_id' in generation of 'instance_hash' to allow multiple instances of the same form on a page.
834
+ $template_vars['instance_hash'] = md5( serialize( $instance ) );
835
  unset( $instance['_sow_form_id'] );
836
 
837
  $submit_attributes = array();
839
  $submit_attributes['id'] = $instance['settings']['submit_id'];
840
  }
841
 
842
+ $template_vars['recaptcha'] = self::is_recaptcha_enabled( $instance['spam']['recaptcha'] );
843
+ if ( $template_vars['recaptcha'] ) {
844
+ // reCAPTCHA v3
845
+ if ( self::is_recaptcha_enabled( $instance['spam']['recaptcha'], true ) ) {
846
+ $submit_attributes['data-sitekey'] = $instance['spam']['recaptcha']['site_key_v3'];
847
+ $submit_attributes['data-callback'] = 'soContactFormSubmit';
848
+ $submit_attributes['data-action'] = 'submit';
849
+ } else { // reCAPTCHA v2
850
+ $template_vars['recaptcha_v2'] = array(
851
+ 'sitekey' => $instance['spam']['recaptcha']['site_key'],
852
+ 'theme' => $instance['spam']['recaptcha']['theme'],
853
+ 'type' => $instance['spam']['recaptcha']['type'],
854
+ 'size' => $instance['spam']['recaptcha']['size']
855
+ );
856
+ }
857
+ }
858
+ $template_vars['submit_attributes'] = $submit_attributes;
859
+ return $template_vars;
860
  }
861
 
862
  function get_settings_form() {
1304
  */
1305
  function spam_check( $post_vars, $email_fields, $instance ) {
1306
  $errors = array();
1307
+ if ( self::is_recaptcha_enabled( $instance['spam']['recaptcha'] ) ) {
 
 
 
1308
  $result = wp_remote_post(
1309
  'https://www.google.com/recaptcha/api/siteverify',
1310
  array(
1311
  'body' => array(
1312
+ 'secret' => $instance['spam']['recaptcha']['use_captcha'] == 'v2' ? $instance['spam']['recaptcha']['secret_key'] : $instance['spam']['recaptcha']['secret_key_v3'],
1313
  'response' => $post_vars['g-recaptcha-response'],
1314
  'remoteip' => isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : null,
1315
  )
widgets/contact/js/contact.js CHANGED
@@ -32,8 +32,9 @@ sowb.SiteOriginContactForm = {
32
  return;
33
  }
34
  }
35
- var $submitButton = $(this).find('.sow-submit-wrapper > input.sow-submit');
36
- if (useRecaptcha) {
 
37
  // Render recaptcha
38
  var $recaptchaDiv = $el.find('.sow-recaptcha');
39
  if ($recaptchaDiv.length) {
@@ -77,24 +78,34 @@ function soContactFormInitialize() {
77
  sowb.SiteOriginContactForm.init(window.jQuery, true);
78
  }
79
 
80
- jQuery(function ($) {
81
-
82
- var $contactForms = $('form.sow-contact-form');
83
- // Check if there are any recaptcha placeholders.
84
- var useRecaptcha = $contactForms.toArray().some(function (form) {
85
- return $(form).find('div').hasClass('sow-recaptcha');
86
- });
87
 
88
- if (useRecaptcha) {
 
 
 
89
  if (window.recaptcha) {
90
- sowb.SiteOriginContactForm.init($, useRecaptcha);
91
  } else {
92
- // Load the recaptcha API
93
- var apiUrl = 'https://www.google.com/recaptcha/api.js?onload=soContactFormInitialize&render=explicit';
94
- var script = $('<script type="text/javascript" src="' + apiUrl + '" async defer>');
95
- $('body').append(script);
 
 
 
 
 
 
 
 
 
 
96
  }
97
  } else {
98
- sowb.SiteOriginContactForm.init($, useRecaptcha);
99
  }
100
- });
32
  return;
33
  }
34
  }
35
+ var $submitButton = $( this ).find( '.sow-submit-wrapper > .sow-submit' );
36
+
37
+ if ( useRecaptcha && sowb.SiteOriginContactFormV2 ) {
38
  // Render recaptcha
39
  var $recaptchaDiv = $el.find('.sow-recaptcha');
40
  if ($recaptchaDiv.length) {
78
  sowb.SiteOriginContactForm.init(window.jQuery, true);
79
  }
80
 
81
+ // reCAPTCHA v3 form submission.
82
+ function soContactFormSubmit( token, e ) {
83
+ sowb.SiteOriginContactFormV3.parent().parent().trigger( 'submit' );
84
+ }
 
 
 
85
 
86
+ jQuery( function ( $ ) {
87
+ var recaptcha = $( 'form.sow-contact-form .sow-recaptcha' );
88
+ // Check if reCAPTCHA is being used.
89
+ if ( recaptcha.length ) {
90
  if (window.recaptcha) {
91
+ sowb.SiteOriginContactForm.init( $, recaptcha );
92
  } else {
93
+ var apiUrl = 'https://www.google.com/recaptcha/api.js?onload=soContactFormInitialize';
94
+ // v2 requires a specific render type.
95
+ if ( recaptcha.first().data( 'config' ) != undefined ) {
96
+ sowb.SiteOriginContactFormV2 = true;
97
+ apiUrl += '&render=explicit';
98
+ } else {
99
+ // v3 requires a click event for submission.
100
+ $( 'button.sow-submit ' ).on( 'click', function( e ) {
101
+ e.preventDefault();
102
+ sowb.SiteOriginContactFormV3 = $( this );
103
+ } );
104
+ }
105
+ var script = $( '<script type="text/javascript" src="' + apiUrl + '" async defer>' );
106
+ $( 'body' ).append( script );
107
  }
108
  } else {
109
+ sowb.SiteOriginContactForm.init( $, recaptcha );
110
  }
111
+ } );
widgets/contact/js/contact.min.js CHANGED
@@ -1 +1 @@
1
- function soContactFormInitialize(){sowb.SiteOriginContactForm.init(window.jQuery,!0)}window.sowb=window.sowb||{},sowb.SiteOriginContactForm={init:function(i,t){var o=i("form.sow-contact-form,.sow-contact-form-success");o.each((function(){var e=i(this),a=e.attr("id"),n=window.location.hash.indexOf(a)>-1,s=e.is(".sow-contact-form-success");if(n){var r=e.offset().top;if(e.is(":hidden")){var c=e.closest(":visible");if(r=c.offset().top,c.is(".sow-accordion-panel"))c.find("> .sow-accordion-panel-header-container > .sow-accordion-panel-header").trigger("click");else if(c.is(".sow-tabs-panel-container")){var w=e.closest(".sow-tabs-panel").index();c.siblings(".sow-tabs-tab-container").find("> .sow-tabs-tab").eq(w).trigger("click")}}if(i("html, body").scrollTop(r),s)return}var d=i(this).find(".sow-submit-wrapper > input.sow-submit");if(t){var f=e.find(".sow-recaptcha");if(f.length){var p=f.data("config");d.prop("disabled",!0),grecaptcha.render(f.get(0),{sitekey:p.sitekey,theme:p.theme,type:p.type,size:p.size,callback:function(i){d.prop("disabled",!1)}})}}o.on("submit",(function(){d.prop("disabled",!0);var t=window.location.hash;if(t){var o=i(this).attr("action");if(t.indexOf(a)>-1){var e=new RegExp(a+",?","g");t=t.replace(e,"")}i(this).attr("action",o+","+t.replace(/^#/,""))}}))}))}},jQuery((function(i){var t=i("form.sow-contact-form").toArray().some((function(t){return i(t).find("div").hasClass("sow-recaptcha")}));if(t)if(window.recaptcha)sowb.SiteOriginContactForm.init(i,t);else{var o=i('<script type="text/javascript" src="https://www.google.com/recaptcha/api.js?onload=soContactFormInitialize&render=explicit" async defer>');i("body").append(o)}else sowb.SiteOriginContactForm.init(i,t)}));
1
+ function soContactFormInitialize(){sowb.SiteOriginContactForm.init(window.jQuery,!0)}function soContactFormSubmit(t,i){sowb.SiteOriginContactFormV3.parent().parent().trigger("submit")}window.sowb=window.sowb||{},sowb.SiteOriginContactForm={init:function(t,i){var o=t("form.sow-contact-form,.sow-contact-form-success");o.each((function(){var n=t(this),e=n.attr("id"),a=window.location.hash.indexOf(e)>-1,r=n.is(".sow-contact-form-success");if(a){var s=n.offset().top;if(n.is(":hidden")){var c=n.closest(":visible");if(s=c.offset().top,c.is(".sow-accordion-panel"))c.find("> .sow-accordion-panel-header-container > .sow-accordion-panel-header").trigger("click");else if(c.is(".sow-tabs-panel-container")){var w=n.closest(".sow-tabs-panel").index();c.siblings(".sow-tabs-tab-container").find("> .sow-tabs-tab").eq(w).trigger("click")}}if(t("html, body").scrollTop(s),r)return}var f=t(this).find(".sow-submit-wrapper > .sow-submit");if(i&&sowb.SiteOriginContactFormV2){var l=n.find(".sow-recaptcha");if(l.length){var p=l.data("config");f.prop("disabled",!0),grecaptcha.render(l.get(0),{sitekey:p.sitekey,theme:p.theme,type:p.type,size:p.size,callback:function(t){f.prop("disabled",!1)}})}}o.on("submit",(function(){f.prop("disabled",!0);var i=window.location.hash;if(i){var o=t(this).attr("action");if(i.indexOf(e)>-1){var n=new RegExp(e+",?","g");i=i.replace(n,"")}t(this).attr("action",o+","+i.replace(/^#/,""))}}))}))}},jQuery((function(t){var i=t("form.sow-contact-form .sow-recaptcha");if(i.length)if(window.recaptcha)sowb.SiteOriginContactForm.init(t,i);else{var o="https://www.google.com/recaptcha/api.js?onload=soContactFormInitialize";null!=i.first().data("config")?(sowb.SiteOriginContactFormV2=!0,o+="&render=explicit"):t("button.sow-submit ").on("click",(function(i){i.preventDefault(),sowb.SiteOriginContactFormV3=t(this)}));var n=t('<script type="text/javascript" src="'+o+'" async defer>');t("body").append(n)}else sowb.SiteOriginContactForm.init(t,i)}));
widgets/contact/tpl/default.php CHANGED
@@ -15,11 +15,7 @@ if( $result['status'] == 'success' ) {
15
  <?php
16
  }
17
  else {
18
- $recaptcha_config = $instance['spam']['recaptcha'];
19
- $use_recaptcha = $recaptcha_config['use_captcha'] && ! empty( $recaptcha_config['site_key'] ) && ! empty( $recaptcha_config['secret_key'] );
20
-
21
- $settings = null;
22
- if( $use_recaptcha ) {
23
  $settings = array(
24
  'sitekey' => $recaptcha_config['site_key'],
25
  'theme' => $recaptcha_config['theme'],
@@ -43,15 +39,23 @@ else {
43
  <input type="hidden" name="instance_hash" value="<?php echo esc_attr( $instance_hash ) ?>" />
44
  <?php wp_nonce_field( '_contact_form_submit' ) ?>
45
 
46
- <?php if( $use_recaptcha ) : ?>
47
  <div class="sow-recaptcha"
48
- data-config="<?php echo esc_attr( json_encode( $settings ) ) ?>"></div>
 
 
 
49
  <?php endif; ?>
 
 
 
 
 
 
 
 
 
50
 
51
- <div class="sow-submit-wrapper <?php if( $instance['design']['submit']['styled'] ) echo 'sow-submit-styled' ?>">
52
- <input type="submit" value="<?php echo esc_attr( $instance['settings']['submit_text'] ) ?>" class="sow-submit"
53
- <?php foreach( $submit_attributes as $name => $val ) echo $name . '="' . esc_attr( $val ) . '" ' ?>
54
- <?php if ( ! empty( $onclick ) ) echo 'onclick="' . esc_js( $onclick ) . '"'; ?>>
55
  </div>
56
  </form>
57
  <?php
15
  <?php
16
  }
17
  else {
18
+ if ( $recaptcha && ! empty( $recaptcha_v2 ) ) {
 
 
 
 
19
  $settings = array(
20
  'sitekey' => $recaptcha_config['site_key'],
21
  'theme' => $recaptcha_config['theme'],
39
  <input type="hidden" name="instance_hash" value="<?php echo esc_attr( $instance_hash ) ?>" />
40
  <?php wp_nonce_field( '_contact_form_submit' ) ?>
41
 
42
+ <?php if ( $recaptcha ) : ?>
43
  <div class="sow-recaptcha"
44
+ <?php if ( ! empty( $recaptcha_v2 ) ) : ?>
45
+ data-config="<?php echo esc_attr( json_encode( $recaptcha_v2 ) ) ?>"
46
+ <?php endif; ?>
47
+ ></div>
48
  <?php endif; ?>
49
+ <div class="sow-submit-wrapper <?php if( $instance['design']['submit']['styled'] ) echo 'sow-submit-styled'; ?>">
50
+
51
+ <button class="sow-submit<?php if ( $recaptcha && empty( $recaptcha_v2 ) ) echo ' g-recaptcha'; ?>"
52
+ <?php foreach( $submit_attributes as $name => $val ) echo $name . '="' . esc_attr( $val ) . '" ' ?>
53
+ <?php if ( ! empty( $onclick ) ) echo 'onclick="' . esc_js( $onclick ) . '"'; ?>
54
+ >
55
+ <?php echo esc_attr( $instance['settings']['submit_text'] ) ?>
56
+ </button>
57
+
58
 
 
 
 
 
59
  </div>
60
  </form>
61
  <?php