@automattic/newspack-blocks 4.31.0-alpha.2 → 4.31.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,9 +1,16 @@
1
- # @automattic/newspack-blocks [4.31.0-alpha.2](https://github.com/Automattic/newspack-workspace/compare/newspack-blocks@4.31.0-alpha.1...newspack-blocks@4.31.0-alpha.2) (2026-08-20)
1
+ # @automattic/newspack-blocks [4.31.0-alpha.3](https://github.com/Automattic/newspack-workspace/compare/newspack-blocks@4.31.0-alpha.2...newspack-blocks@4.31.0-alpha.3) (2026-08-25)
2
2
 
3
3
 
4
- ### Dependencies
4
+ ### Bug Fixes
5
+
6
+ * **blocks:** track modal purchases made via the Store API ([#881](https://github.com/Automattic/newspack-workspace/issues/881)) ([06cd0a9](https://github.com/Automattic/newspack-workspace/commit/06cd0a95946703497a8f2bba0ecfd06c69a09718))
7
+
8
+ ## @automattic/newspack-blocks [4.30.4](https://github.com/Automattic/newspack-workspace/compare/newspack-blocks@4.30.3...newspack-blocks@4.30.4) (2026-08-25)
9
+
10
+
11
+ ### Bug Fixes
5
12
 
6
- * **newspack-components:** upgraded to 4.7.0-alpha.2
13
+ * **blocks:** track modal purchases made via the Store API ([#881](https://github.com/Automattic/newspack-workspace/issues/881)) ([06cd0a9](https://github.com/Automattic/newspack-workspace/commit/06cd0a95946703497a8f2bba0ecfd06c69a09718))
7
14
 
8
15
  ## @automattic/newspack-blocks [4.30.3](https://github.com/Automattic/newspack-workspace/compare/newspack-blocks@4.30.2...newspack-blocks@4.30.3) (2026-08-20)
9
16
 
@@ -1627,13 +1627,18 @@ final class Modal_Checkout {
1627
1627
  /**
1628
1628
  * Return URL for modal checkout "thank you" page.
1629
1629
  *
1630
+ * Origin detection covers the referer so that express-wallet (Apple Pay /
1631
+ * Google Pay) Store API submissions — JSON bodies with no request params —
1632
+ * get a decorated return URL and land on the modal thank-you, where the
1633
+ * front-end GA4 purchase event fires.
1634
+ *
1630
1635
  * @param string $url The URL to redirect to.
1631
1636
  * @param WC_Order $order The order related to the transaction.
1632
1637
  *
1633
1638
  * @return string
1634
1639
  */
1635
1640
  public static function woocommerce_get_return_url( $url, $order ) {
1636
- if ( ! self::is_modal_checkout() || self::has_unsupported_payment_gateway() ) {
1641
+ if ( ! self::is_modal_checkout_origin() || self::has_unsupported_payment_gateway() ) {
1637
1642
  return $url;
1638
1643
  }
1639
1644
 
@@ -1952,7 +1957,7 @@ final class Modal_Checkout {
1952
1957
  * @return array
1953
1958
  */
1954
1959
  public static function relax_configured_off_locale_fields( $locale ) {
1955
- if ( ! self::is_modal_checkout_referer() && ! self::is_modal_checkout() ) {
1960
+ if ( ! self::is_modal_checkout_origin() ) {
1956
1961
  return $locale;
1957
1962
  }
1958
1963
 
@@ -2315,6 +2320,11 @@ final class Modal_Checkout {
2315
2320
 
2316
2321
  /**
2317
2322
  * Is this request using the modal checkout?
2323
+ *
2324
+ * Detects modal request *data* (request params, serialized post_data, or a
2325
+ * classic express-checkout submission). For origin detection that also
2326
+ * covers parameter-less Store API JSON submissions, see
2327
+ * is_modal_checkout_origin().
2318
2328
  */
2319
2329
  public static function is_modal_checkout() {
2320
2330
  // Until we use the modal checkout flow from My Account, we don't want to show the modal checkout thank you template for checkouts originating from My Account.
@@ -2334,6 +2344,31 @@ final class Modal_Checkout {
2334
2344
  return $is_modal_checkout;
2335
2345
  }
2336
2346
 
2347
+ /**
2348
+ * Does this request originate from the modal checkout?
2349
+ *
2350
+ * Superset of is_modal_checkout(): additionally true for Store API JSON
2351
+ * submissions (express wallets such as Apple Pay and Google Pay) whose only
2352
+ * modal signal is the referer query, since JSON bodies carry no request
2353
+ * params and leave $_POST empty.
2354
+ *
2355
+ * The referer is client-controlled, so this gates analytics and
2356
+ * presentation decisions only — never authorization.
2357
+ *
2358
+ * Known edge: a wallet submission from the My Account-origin modal reads as
2359
+ * modal-origin, because the modal strips the my_account_checkout marker
2360
+ * from every URL it opens (src/modal-checkout/modal.js). Since #2121 that
2361
+ * is also how My Account card checkouts behave, so wallet and card flows
2362
+ * stay in parity; the My Account exclusion inside is_modal_checkout()
2363
+ * continues to govern the legacy non-modal flows, whose referers never
2364
+ * carry modal_checkout.
2365
+ *
2366
+ * @return bool
2367
+ */
2368
+ public static function is_modal_checkout_origin() {
2369
+ return self::is_modal_checkout() || self::is_modal_checkout_referer();
2370
+ }
2371
+
2337
2372
  /**
2338
2373
  * Is this transaction using an express checkout method?
2339
2374
  */
@@ -40,27 +40,81 @@ final class Data_Events {
40
40
  }
41
41
 
42
42
  /**
43
- * Modal Checkout Interation: Completed Order.
43
+ * Modal Checkout Interaction: Order Processed.
44
+ *
45
+ * Both hooks fire when the order is created, before payment is
46
+ * processed — not when the order reaches the "completed" status.
47
+ *
48
+ * Both WooCommerce checkout pipelines feed the same Data Events action:
49
+ * classic checkout fires woocommerce_checkout_order_processed, while
50
+ * Store API checkouts (the transport express wallets such as Apple Pay
51
+ * and Google Pay use) fire woocommerce_store_api_checkout_order_processed
52
+ * instead. Each hook gets a callback matching its exact argument shape.
44
53
  */
45
54
  \Newspack\Data_Events::register_listener(
46
55
  'woocommerce_checkout_order_processed',
47
56
  'modal_checkout_interaction',
48
57
  [ __CLASS__, 'order_status_completed' ]
49
58
  );
59
+ \Newspack\Data_Events::register_listener(
60
+ 'woocommerce_store_api_checkout_order_processed',
61
+ 'modal_checkout_interaction',
62
+ [ __CLASS__, 'store_api_order_processed' ]
63
+ );
64
+ }
65
+
66
+ /**
67
+ * Classic checkout listener callback.
68
+ *
69
+ * $posted_data and $order are accepted to match the classic hook's
70
+ * signature and are deliberately unused: the payload is built from the
71
+ * order ID alone, so both checkout pipelines share one builder.
72
+ *
73
+ * @param int $order_id Order's ID.
74
+ * @param array|null $posted_data Posted Data.
75
+ * @param \WC_Order|null $order Order object.
76
+ *
77
+ * @return array|void The event payload; void suppresses the dispatch.
78
+ */
79
+ public static function order_status_completed( $order_id, $posted_data = null, $order = null ) {
80
+ return self::get_modal_checkout_interaction_data( $order_id );
81
+ }
82
+
83
+ /**
84
+ * Store API checkout listener callback.
85
+ *
86
+ * The Store API hook passes a single \WC_Order, unlike the classic hook's
87
+ * three arguments; only a scalar order ID crosses into the shared payload
88
+ * builder, so neither callback can misread the other hook's argument list.
89
+ *
90
+ * @param mixed $order Order object. The hook contract promises a \WC_Order;
91
+ * anything else is ignored rather than trusted.
92
+ *
93
+ * @return array|void The event payload; void suppresses the dispatch.
94
+ */
95
+ public static function store_api_order_processed( $order ) {
96
+ if ( ! is_a( $order, 'WC_Order' ) ) {
97
+ return;
98
+ }
99
+
100
+ return self::get_modal_checkout_interaction_data( $order->get_id() );
50
101
  }
51
102
 
52
103
  /**
53
- * Send data to GA4.
104
+ * Build the modal checkout interaction payload for an order, or bail when
105
+ * the request is not modal-origin.
106
+ *
107
+ * Origin detection covers all three modal request shapes: the
108
+ * modal_checkout request param (classic card), express_payment_type in
109
+ * $_POST (classic express), and the modal referer carried by Store API
110
+ * JSON submissions.
111
+ *
112
+ * @param int $order_id Order's ID.
54
113
  *
55
- * @param string $order_id Order's ID.
56
- * @param array $posted_data Posted Data.
57
- * @param \WC_Order $order Order object.
114
+ * @return array|void The event payload; void suppresses the dispatch.
58
115
  */
59
- public static function order_status_completed( $order_id, $posted_data, $order ) {
60
- // Check if in a modal checkout; if no, bail.
61
- // phpcs:ignore WordPress.Security.NonceVerification.Recommended
62
- $is_modal_checkout = ( isset( $_REQUEST['modal_checkout'] ) ? true : false );
63
- if ( ! $is_modal_checkout ) {
116
+ private static function get_modal_checkout_interaction_data( $order_id ) {
117
+ if ( ! \Newspack_Blocks\Modal_Checkout::is_modal_checkout_origin() ) {
64
118
  return;
65
119
  }
66
120
 
@@ -2,7 +2,7 @@ msgid ""
2
2
  msgstr ""
3
3
  "Project-Id-Version: Newspack Blocks\n"
4
4
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/newspack-blocks\n"
5
- "POT-Creation-Date: 2026-08-20T21:33:46+00:00\n"
5
+ "POT-Creation-Date: 2026-08-25T22:57:53+00:00\n"
6
6
  "PO-Revision-Date: 2024-08-30 08:45-0700\n"
7
7
  "Last-Translator: \n"
8
8
  "Language-Team: \n"
@@ -104,47 +104,47 @@ msgstr ""
104
104
  msgid "Go back"
105
105
  msgstr ""
106
106
 
107
- #: includes/class-modal-checkout.php:1672
107
+ #: includes/class-modal-checkout.php:1677
108
108
  msgid "Password mismatch"
109
109
  msgstr ""
110
110
 
111
- #: includes/class-modal-checkout.php:1673
111
+ #: includes/class-modal-checkout.php:1678
112
112
  msgid "Password strength: Very weak"
113
113
  msgstr ""
114
114
 
115
- #: includes/class-modal-checkout.php:1674
115
+ #: includes/class-modal-checkout.php:1679
116
116
  msgid "Password strength: Weak"
117
117
  msgstr ""
118
118
 
119
- #: includes/class-modal-checkout.php:1675
119
+ #: includes/class-modal-checkout.php:1680
120
120
  msgid "Password strength: Medium"
121
121
  msgstr ""
122
122
 
123
- #: includes/class-modal-checkout.php:1676
123
+ #: includes/class-modal-checkout.php:1681
124
124
  msgid "Password strength: Strong"
125
125
  msgstr ""
126
126
 
127
- #: includes/class-modal-checkout.php:2056
127
+ #: includes/class-modal-checkout.php:2061
128
128
  msgid "Please enter someone else' email address to receive this gift."
129
129
  msgstr ""
130
130
 
131
- #: includes/class-modal-checkout.php:2057
131
+ #: includes/class-modal-checkout.php:2062
132
132
  msgid "Please enter a valid email address to receive this gift."
133
133
  msgstr ""
134
134
 
135
- #: includes/class-modal-checkout.php:2171
135
+ #: includes/class-modal-checkout.php:2176
136
136
  msgid "Close window"
137
137
  msgstr ""
138
138
 
139
139
  #. translators: %s: Site name.
140
- #: includes/class-modal-checkout.php:2262
140
+ #: includes/class-modal-checkout.php:2267
141
141
  #, php-format
142
142
  msgid ""
143
143
  "You're already a subscriber! You can only have one active subscription at a "
144
144
  "time. Thank you for supporting %s."
145
145
  msgstr ""
146
146
 
147
- #: includes/class-modal-checkout.php:2273
147
+ #: includes/class-modal-checkout.php:2278
148
148
  msgid ""
149
149
  "You're already a subscriber! You can only have one subscription at a time. "
150
150
  "If you wish to renew an expired subscription, please sign in and visit the "
@@ -153,99 +153,99 @@ msgstr ""
153
153
 
154
154
  #. translators: 1: Checkout button confirmation text. 2: Order total.
155
155
  #. translators: 1 is the name of the item. 2 is the price of the item.
156
- #: includes/class-modal-checkout.php:2397
156
+ #: includes/class-modal-checkout.php:2432
157
157
  #: includes/modal-checkout/class-checkout-data.php:68
158
158
  #, php-format
159
159
  msgid "%1$s: %2$s"
160
160
  msgstr ""
161
161
 
162
- #: includes/class-modal-checkout.php:2777
162
+ #: includes/class-modal-checkout.php:2812
163
163
  msgid "Billing details"
164
164
  msgstr ""
165
165
 
166
- #: includes/class-modal-checkout.php:2778
166
+ #: includes/class-modal-checkout.php:2813
167
167
  msgid "Shipping details"
168
168
  msgstr ""
169
169
 
170
- #: includes/class-modal-checkout.php:2779
170
+ #: includes/class-modal-checkout.php:2814
171
171
  msgid "Gift recipient"
172
172
  msgstr ""
173
173
 
174
- #: includes/class-modal-checkout.php:2780
175
- #: includes/class-modal-checkout.php:2781
176
- #: includes/class-modal-checkout.php:2782
174
+ #: includes/class-modal-checkout.php:2815
175
+ #: includes/class-modal-checkout.php:2816
176
+ #: includes/class-modal-checkout.php:2817
177
177
  msgid "Complete your transaction"
178
178
  msgstr ""
179
179
 
180
- #: includes/class-modal-checkout.php:2783
180
+ #: includes/class-modal-checkout.php:2818
181
181
  msgctxt "Login modal title when logged out user attempts to checkout."
182
182
  msgid "Sign in to complete transaction"
183
183
  msgstr ""
184
184
 
185
- #: includes/class-modal-checkout.php:2788
185
+ #: includes/class-modal-checkout.php:2823
186
186
  msgctxt "Login modal title when unregistered user attempts to checkout"
187
187
  msgid "Register to complete transaction"
188
188
  msgstr ""
189
189
 
190
- #: includes/class-modal-checkout.php:2793
190
+ #: includes/class-modal-checkout.php:2828
191
191
  msgid "Continue browsing"
192
192
  msgstr ""
193
193
 
194
- #: includes/class-modal-checkout.php:2794
194
+ #: includes/class-modal-checkout.php:2829
195
195
  msgid "This donation is a gift"
196
196
  msgstr ""
197
197
 
198
- #: includes/class-modal-checkout.php:2799
198
+ #: includes/class-modal-checkout.php:2834
199
199
  msgid "This purchase is a gift"
200
200
  msgstr ""
201
201
 
202
- #: includes/class-modal-checkout.php:2801
202
+ #: includes/class-modal-checkout.php:2836
203
203
  msgid "Complete transaction"
204
204
  msgstr ""
205
205
 
206
- #: includes/class-modal-checkout.php:2802
206
+ #: includes/class-modal-checkout.php:2837
207
207
  msgid "Purchase"
208
208
  msgstr ""
209
209
 
210
- #: includes/class-modal-checkout.php:2803
210
+ #: includes/class-modal-checkout.php:2838
211
211
  msgid "Edit billing information"
212
212
  msgstr ""
213
213
 
214
- #: includes/class-modal-checkout.php:2804 dist/editor.js:36 dist/editor.js:39
214
+ #: includes/class-modal-checkout.php:2839 dist/editor.js:36 dist/editor.js:39
215
215
  #: src/blocks/checkout-button/coupon-control.js:145
216
216
  #: src/blocks/checkout-button/edit.js:198
217
217
  msgid "Cancel"
218
218
  msgstr ""
219
219
 
220
- #: includes/class-modal-checkout.php:2805
220
+ #: includes/class-modal-checkout.php:2840
221
221
  msgid "Transaction successful"
222
222
  msgstr ""
223
223
 
224
- #: includes/class-modal-checkout.php:2806
224
+ #: includes/class-modal-checkout.php:2841
225
225
  msgid ""
226
226
  "Your contribution directly funds our work. If you're moved to do so, you can "
227
227
  "opt to pay more than the standard rate."
228
228
  msgstr ""
229
229
 
230
- #: includes/class-modal-checkout.php:2807
230
+ #: includes/class-modal-checkout.php:2842
231
231
  msgid "Thank you for your generosity! We couldn't do this without you!"
232
232
  msgstr ""
233
233
 
234
- #: includes/class-modal-checkout.php:2808
234
+ #: includes/class-modal-checkout.php:2843
235
235
  msgid "Increase your support"
236
236
  msgstr ""
237
237
 
238
- #: includes/class-modal-checkout.php:2809
238
+ #: includes/class-modal-checkout.php:2844
239
239
  #: src/modal-checkout/templates/form-coupon.php:29
240
240
  msgid "Apply"
241
241
  msgstr ""
242
242
 
243
- #: includes/class-modal-checkout.php:2810
243
+ #: includes/class-modal-checkout.php:2845
244
244
  msgid "We ran into a problem processing this request. Please try again."
245
245
  msgstr ""
246
246
 
247
247
  #. Translators: %s is the site name.
248
- #: includes/class-modal-checkout.php:2948
248
+ #: includes/class-modal-checkout.php:2983
249
249
  #, php-format
250
250
  msgid ""
251
251
  "Thank you for supporting %s. Your transaction was completed successfully."
@@ -2,7 +2,7 @@ msgid ""
2
2
  msgstr ""
3
3
  "Project-Id-Version: Newspack Blocks 1.0.0-alpha.20\n"
4
4
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/newspack-blocks\n"
5
- "POT-Creation-Date: 2026-08-20T21:33:46+00:00\n"
5
+ "POT-Creation-Date: 2026-08-25T22:57:53+00:00\n"
6
6
  "PO-Revision-Date: 2025-08-12T14:56:45+00:00\n"
7
7
  "Last-Translator: \n"
8
8
  "Language-Team: \n"
@@ -96,47 +96,47 @@ msgstr ""
96
96
  msgid "Go back"
97
97
  msgstr ""
98
98
 
99
- #: includes/class-modal-checkout.php:1672
99
+ #: includes/class-modal-checkout.php:1677
100
100
  msgid "Password mismatch"
101
101
  msgstr ""
102
102
 
103
- #: includes/class-modal-checkout.php:1673
103
+ #: includes/class-modal-checkout.php:1678
104
104
  msgid "Password strength: Very weak"
105
105
  msgstr ""
106
106
 
107
- #: includes/class-modal-checkout.php:1674
107
+ #: includes/class-modal-checkout.php:1679
108
108
  msgid "Password strength: Weak"
109
109
  msgstr ""
110
110
 
111
- #: includes/class-modal-checkout.php:1675
111
+ #: includes/class-modal-checkout.php:1680
112
112
  msgid "Password strength: Medium"
113
113
  msgstr ""
114
114
 
115
- #: includes/class-modal-checkout.php:1676
115
+ #: includes/class-modal-checkout.php:1681
116
116
  msgid "Password strength: Strong"
117
117
  msgstr ""
118
118
 
119
- #: includes/class-modal-checkout.php:2056
119
+ #: includes/class-modal-checkout.php:2061
120
120
  msgid "Please enter someone else' email address to receive this gift."
121
121
  msgstr ""
122
122
 
123
- #: includes/class-modal-checkout.php:2057
123
+ #: includes/class-modal-checkout.php:2062
124
124
  msgid "Please enter a valid email address to receive this gift."
125
125
  msgstr ""
126
126
 
127
- #: includes/class-modal-checkout.php:2171
127
+ #: includes/class-modal-checkout.php:2176
128
128
  msgid "Close window"
129
129
  msgstr ""
130
130
 
131
131
  #. translators: %s: Site name.
132
- #: includes/class-modal-checkout.php:2262
132
+ #: includes/class-modal-checkout.php:2267
133
133
  #, php-format
134
134
  msgid ""
135
135
  "You're already a subscriber! You can only have one active subscription at a "
136
136
  "time. Thank you for supporting %s."
137
137
  msgstr ""
138
138
 
139
- #: includes/class-modal-checkout.php:2273
139
+ #: includes/class-modal-checkout.php:2278
140
140
  msgid ""
141
141
  "You're already a subscriber! You can only have one subscription at a time. "
142
142
  "If you wish to renew an expired subscription, please sign in and visit the "
@@ -145,99 +145,99 @@ msgstr ""
145
145
 
146
146
  #. translators: 1: Checkout button confirmation text. 2: Order total.
147
147
  #. translators: 1 is the name of the item. 2 is the price of the item.
148
- #: includes/class-modal-checkout.php:2397
148
+ #: includes/class-modal-checkout.php:2432
149
149
  #: includes/modal-checkout/class-checkout-data.php:68
150
150
  #, php-format
151
151
  msgid "%1$s: %2$s"
152
152
  msgstr ""
153
153
 
154
- #: includes/class-modal-checkout.php:2777
154
+ #: includes/class-modal-checkout.php:2812
155
155
  msgid "Billing details"
156
156
  msgstr ""
157
157
 
158
- #: includes/class-modal-checkout.php:2778
158
+ #: includes/class-modal-checkout.php:2813
159
159
  msgid "Shipping details"
160
160
  msgstr ""
161
161
 
162
- #: includes/class-modal-checkout.php:2779
162
+ #: includes/class-modal-checkout.php:2814
163
163
  msgid "Gift recipient"
164
164
  msgstr ""
165
165
 
166
- #: includes/class-modal-checkout.php:2780
167
- #: includes/class-modal-checkout.php:2781
168
- #: includes/class-modal-checkout.php:2782
166
+ #: includes/class-modal-checkout.php:2815
167
+ #: includes/class-modal-checkout.php:2816
168
+ #: includes/class-modal-checkout.php:2817
169
169
  msgid "Complete your transaction"
170
170
  msgstr ""
171
171
 
172
- #: includes/class-modal-checkout.php:2783
172
+ #: includes/class-modal-checkout.php:2818
173
173
  msgctxt "Login modal title when logged out user attempts to checkout."
174
174
  msgid "Sign in to complete transaction"
175
175
  msgstr ""
176
176
 
177
- #: includes/class-modal-checkout.php:2788
177
+ #: includes/class-modal-checkout.php:2823
178
178
  msgctxt "Login modal title when unregistered user attempts to checkout"
179
179
  msgid "Register to complete transaction"
180
180
  msgstr ""
181
181
 
182
- #: includes/class-modal-checkout.php:2793
182
+ #: includes/class-modal-checkout.php:2828
183
183
  msgid "Continue browsing"
184
184
  msgstr ""
185
185
 
186
- #: includes/class-modal-checkout.php:2794
186
+ #: includes/class-modal-checkout.php:2829
187
187
  msgid "This donation is a gift"
188
188
  msgstr ""
189
189
 
190
- #: includes/class-modal-checkout.php:2799
190
+ #: includes/class-modal-checkout.php:2834
191
191
  msgid "This purchase is a gift"
192
192
  msgstr ""
193
193
 
194
- #: includes/class-modal-checkout.php:2801
194
+ #: includes/class-modal-checkout.php:2836
195
195
  msgid "Complete transaction"
196
196
  msgstr ""
197
197
 
198
- #: includes/class-modal-checkout.php:2802
198
+ #: includes/class-modal-checkout.php:2837
199
199
  msgid "Purchase"
200
200
  msgstr ""
201
201
 
202
- #: includes/class-modal-checkout.php:2803
202
+ #: includes/class-modal-checkout.php:2838
203
203
  msgid "Edit billing information"
204
204
  msgstr ""
205
205
 
206
- #: includes/class-modal-checkout.php:2804 dist/editor.js:36 dist/editor.js:39
206
+ #: includes/class-modal-checkout.php:2839 dist/editor.js:36 dist/editor.js:39
207
207
  #: src/blocks/checkout-button/coupon-control.js:145
208
208
  #: src/blocks/checkout-button/edit.js:198
209
209
  msgid "Cancel"
210
210
  msgstr ""
211
211
 
212
- #: includes/class-modal-checkout.php:2805
212
+ #: includes/class-modal-checkout.php:2840
213
213
  msgid "Transaction successful"
214
214
  msgstr ""
215
215
 
216
- #: includes/class-modal-checkout.php:2806
216
+ #: includes/class-modal-checkout.php:2841
217
217
  msgid ""
218
218
  "Your contribution directly funds our work. If you're moved to do so, you can "
219
219
  "opt to pay more than the standard rate."
220
220
  msgstr ""
221
221
 
222
- #: includes/class-modal-checkout.php:2807
222
+ #: includes/class-modal-checkout.php:2842
223
223
  msgid "Thank you for your generosity! We couldn't do this without you!"
224
224
  msgstr ""
225
225
 
226
- #: includes/class-modal-checkout.php:2808
226
+ #: includes/class-modal-checkout.php:2843
227
227
  msgid "Increase your support"
228
228
  msgstr ""
229
229
 
230
- #: includes/class-modal-checkout.php:2809
230
+ #: includes/class-modal-checkout.php:2844
231
231
  #: src/modal-checkout/templates/form-coupon.php:29
232
232
  msgid "Apply"
233
233
  msgstr ""
234
234
 
235
- #: includes/class-modal-checkout.php:2810
235
+ #: includes/class-modal-checkout.php:2845
236
236
  msgid "We ran into a problem processing this request. Please try again."
237
237
  msgstr ""
238
238
 
239
239
  #. Translators: %s is the site name.
240
- #: includes/class-modal-checkout.php:2948
240
+ #: includes/class-modal-checkout.php:2983
241
241
  #, php-format
242
242
  msgid ""
243
243
  "Thank you for supporting %s. Your transaction was completed successfully."