1 | <?php |
||
2 | /** |
||
3 | * Update 2.0.0 |
||
4 | * |
||
5 | * @author Pronamic <[email protected]> |
||
6 | * @copyright 2005-2021 Pronamic |
||
7 | * @license GPL-3.0-or-later |
||
8 | * @package Pronamic\WordPress\Pay |
||
9 | */ |
||
10 | |||
11 | /** |
||
12 | * Execute changes made in Pronamic Pay 2.0.0 |
||
13 | * |
||
14 | * @link https://github.com/WordPress/WordPress/blob/3.5.1/wp-admin/includes/upgrade.php#L413 |
||
15 | * @since 2.0.0 |
||
16 | */ |
||
17 | |||
18 | // Check if there is not already an upgrade running |
||
19 | if ( get_transient( 'pronamic_pay_upgrade_200' ) ) { |
||
20 | return; |
||
21 | } |
||
22 | |||
23 | set_transient( 'pronamic_pay_upgrade_200', true, 3600 ); // 60 minutes |
||
24 | |||
25 | // Upgrade |
||
26 | global $wpdb; |
||
27 | |||
28 | require_once ABSPATH . '/wp-admin/includes/upgrade.php'; |
||
29 | |||
30 | $charset_collate = ''; |
||
31 | if ( ! empty( $wpdb->charset ) ) { |
||
32 | $charset_collate = 'DEFAULT CHARACTER SET ' . $wpdb->charset; |
||
33 | } |
||
34 | if ( ! empty( $wpdb->collate ) ) { |
||
35 | $charset_collate .= ' COLLATE ' . $wpdb->collate; |
||
36 | } |
||
37 | |||
38 | /* |
||
39 | |||
40 | -- You can undo the database upgrade by executing the following queries |
||
41 | |||
42 | UPDATE wp_pronamic_ideal_configurations SET post_id = null; |
||
43 | DELETE FROM wp_posts WHERE post_type = 'pronamic_gateway'; |
||
44 | |||
45 | UPDATE wp_pronamic_ideal_payments SET post_id = null; |
||
46 | DELETE FROM wp_posts WHERE post_type = 'pronamic_payment'; |
||
47 | |||
48 | UPDATE wp_rg_ideal_feeds SET post_id = null; |
||
49 | DELETE FROM wp_posts WHERE post_type = 'pronamic_pay_gf'; |
||
50 | |||
51 | UPDATE wp_options SET option_value = 0 WHERE option_name = 'pronamic_pay_db_version'; |
||
52 | |||
53 | DELETE FROM wp_postmeta WHERE post_id NOT IN ( SELECT ID FROM wp_posts ); |
||
54 | |||
55 | */ |
||
56 | |||
57 | /** |
||
58 | * Configs |
||
59 | */ |
||
60 | |||
61 | global $pronamic_ideal; |
||
62 | |||
63 | $config_table = $wpdb->prefix . 'pronamic_ideal_configurations'; |
||
64 | |||
65 | $sql = "CREATE TABLE $config_table ( |
||
66 | id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT, |
||
67 | post_id BIGINT(20) UNSIGNED NULL, |
||
68 | variant_id VARCHAR(64) NULL, |
||
69 | merchant_id VARCHAR(64) NULL, |
||
70 | sub_id VARCHAR(64) NULL, |
||
71 | mode VARCHAR(64) NULL, |
||
72 | hash_key VARCHAR(64) NULL, |
||
73 | private_key TEXT NULL, |
||
74 | private_key_password VARCHAR(64) NULL, |
||
75 | private_certificate TEXT NULL, |
||
76 | meta LONGTEXT, |
||
77 | PRIMARY KEY (id) |
||
78 | ) $charset_collate;"; |
||
79 | |||
80 | dbDelta( $sql ); |
||
81 | |||
82 | // Query |
||
83 | $query = " |
||
84 | SELECT |
||
85 | * |
||
86 | FROM |
||
87 | $config_table |
||
88 | WHERE |
||
89 | post_id IS NULL |
||
90 | LIMIT |
||
91 | 1 |
||
92 | ; |
||
93 | "; |
||
94 | |||
95 | $have_configs = true; |
||
96 | |||
97 | while ( $have_configs ) { |
||
98 | $configs = $wpdb->get_results( $query ); // WPCS: unprepared SQL ok. |
||
99 | |||
100 | $have_configs = ! empty( $configs ); |
||
101 | |||
102 | foreach ( $configs as $config ) { |
||
103 | /* translators: %d: configuration ID */ |
||
104 | $title = sprintf( __( 'Configuration %d', 'pronamic_ideal' ), $config->id ); |
||
105 | |||
106 | // Post |
||
107 | $post = array( |
||
108 | 'post_title' => $title, |
||
109 | 'post_type' => 'pronamic_gateway', |
||
110 | 'post_status' => 'publish', |
||
111 | ); |
||
112 | |||
113 | $post_id = wp_insert_post( $post ); |
||
114 | |||
115 | if ( $post_id ) { |
||
116 | $wpdb->update( |
||
117 | $config_table, |
||
118 | array( |
||
119 | 'post_id' => $post_id, |
||
120 | ), |
||
121 | array( |
||
122 | 'id' => $config->id, |
||
123 | ), |
||
124 | '%d', |
||
125 | '%d' |
||
126 | ); |
||
127 | |||
128 | // Meta |
||
129 | // We ignore (@) all notice of not existing properties |
||
130 | $config_meta = json_decode( $config->meta ); |
||
131 | |||
132 | $meta = array(); |
||
133 | |||
134 | $meta['legacy_id'] = $config->id; |
||
135 | $meta['id'] = $config->variant_id; |
||
136 | $meta['mode'] = $config->mode; |
||
137 | |||
138 | // iDEAL |
||
139 | $meta['ideal_merchant_id'] = $config->merchant_id; |
||
140 | $meta['ideal_sub_id'] = $config->sub_id; |
||
141 | |||
142 | // iDEAL Basic |
||
143 | $meta['ideal_hash_key'] = $config->hash_key; |
||
144 | |||
145 | // iDEAL Advanced |
||
146 | $meta['ideal_private_key'] = $config->private_key; |
||
147 | $meta['ideal_private_key_password'] = $config->private_key_password; |
||
148 | $meta['ideal_private_certificate'] = $config->private_certificate; |
||
149 | |||
150 | // OmniKassa |
||
151 | if ( 'rabobank-omnikassa' === $config->variant_id ) { |
||
152 | $meta['omnikassa_merchant_id'] = $config->merchant_id; |
||
153 | $meta['omnikassa_secret_key'] = $config->hash_key; |
||
154 | |||
155 | $key_version = @$config_meta->keyVersion; |
||
156 | // In Pronamic iDEAL v1.0 we stored the key version in the iDEAL sub ID |
||
157 | $key_version = empty( $key_version ) ? $config->sub_id : $key_version; |
||
158 | |||
159 | $meta['omnikassa_key_version'] = $key_version; |
||
160 | |||
161 | unset( $meta['ideal_merchant_id'] ); |
||
162 | unset( $meta['ideal_hash_key'] ); |
||
163 | } |
||
164 | |||
165 | // Buckaroo |
||
166 | $meta['buckaroo_website_key'] = @$config_meta->buckarooWebsiteKey; |
||
167 | $meta['buckaroo_secret_key'] = @$config_meta->buckarooSecretKey; |
||
168 | |||
169 | // Icepay |
||
170 | $meta['icepay_merchant_id'] = @$config_meta->icepayMerchantId; |
||
171 | $meta['icepay_secret_code'] = @$config_meta->icepaySecretCode; |
||
172 | |||
173 | // Mollie |
||
174 | $meta['mollie_partner_id'] = @$config_meta->molliePartnerId; |
||
175 | $meta['mollie_profile_key'] = @$config_meta->mollieProfileKey; |
||
176 | |||
177 | // Sisow |
||
178 | $meta['sisow_merchant_id'] = @$config_meta->sisowMerchantId; |
||
179 | $meta['sisow_merchant_key'] = @$config_meta->sisowMerchantKey; |
||
180 | |||
181 | // TargetPay |
||
182 | $meta['targetpay_layout_code'] = @$config_meta->targetPayLayoutCode; |
||
183 | |||
184 | // Qantani |
||
185 | $meta['qantani_merchant_id'] = @$config_meta->qantani_merchant_id; |
||
186 | $meta['qantani_merchant_key'] = @$config_meta->qantani_merchant_key; |
||
187 | $meta['qantani_merchant_secret'] = @$config_meta->qantani_merchant_secret; |
||
188 | |||
189 | // Ogone |
||
190 | $meta['ogone_psp_id'] = @$config_meta->pspId; |
||
191 | $meta['ogone_sha_in_pass_phrase'] = @$config_meta->shaInPassPhrase; |
||
192 | $meta['ogone_sha_out_pass_phrase'] = @$config_meta->shaOutPassPhrase; |
||
193 | $meta['ogone_user_id'] = @$config_meta->ogone_user_id; |
||
194 | $meta['ogone_password'] = @$config_meta->ogone_password; |
||
195 | |||
196 | // Other |
||
197 | $meta['country'] = @$config_meta->country; |
||
198 | $meta['state_or_province'] = @$config_meta->stateOrProvince; |
||
199 | $meta['locality'] = @$config_meta->locality; |
||
200 | $meta['organization'] = @$config_meta->organization; |
||
201 | $meta['organization_unit'] = @$config_meta->organizationUnit; |
||
202 | $meta['common_name'] = @$config_meta->commonName; |
||
203 | $meta['email'] = @$config_meta->eMailAddress; |
||
204 | |||
205 | foreach ( $meta as $key => $value ) { |
||
206 | if ( ! empty( $value ) ) { |
||
207 | $meta_key = '_pronamic_gateway_' . $key; |
||
208 | |||
209 | update_post_meta( $post_id, $meta_key, $value ); |
||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||
210 | } |
||
211 | } |
||
212 | } |
||
213 | } |
||
214 | } |
||
215 | |||
216 | /** |
||
217 | * Config IDs map |
||
218 | */ |
||
219 | $query = " |
||
220 | SELECT |
||
221 | id, |
||
222 | post_id |
||
223 | FROM |
||
224 | $config_table |
||
225 | ; |
||
226 | "; |
||
227 | |||
228 | $config_ids_map = array(); |
||
229 | |||
230 | $config_ids = $wpdb->get_results( $query ); // WPCS: unprepared SQL ok. |
||
231 | |||
232 | foreach ( $config_ids as $config_id ) { |
||
233 | $config_ids_map[ $config_id->id ] = $config_id->post_id; |
||
234 | } |
||
235 | |||
236 | /** |
||
237 | * Gravity Forms payment feeds |
||
238 | */ |
||
239 | $feeds_table = $wpdb->prefix . 'rg_ideal_feeds'; |
||
240 | |||
241 | $sql = "CREATE TABLE $feeds_table ( |
||
242 | id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT, |
||
243 | post_id BIGINT(20) UNSIGNED NULL, |
||
244 | form_id MEDIUMINT(8) UNSIGNED NOT NULL, |
||
245 | configuration_id MEDIUMINT(8) UNSIGNED NOT NULL, |
||
246 | is_active TINYINT(1) NOT NULL DEFAULT 1, |
||
247 | meta LONGTEXT, |
||
248 | PRIMARY KEY (id), |
||
249 | KEY form_id (form_id), |
||
250 | KEY configuration_id (configuration_id) |
||
251 | ) $charset_collate;"; |
||
252 | |||
253 | dbDelta( $sql ); |
||
254 | |||
255 | // Query |
||
256 | $query = " |
||
257 | SELECT |
||
258 | * |
||
259 | FROM |
||
260 | $feeds_table |
||
261 | WHERE |
||
262 | post_id IS NULL |
||
263 | LIMIT |
||
264 | 1 |
||
265 | ; |
||
266 | "; |
||
267 | |||
268 | $have_feeds = true; |
||
269 | |||
270 | while ( $have_feeds ) { |
||
271 | $feeds = $wpdb->get_results( $query ); // WPCS: unprepared SQL ok. |
||
272 | |||
273 | $have_feeds = ! empty( $feeds ); |
||
274 | |||
275 | foreach ( $feeds as $feed ) { |
||
276 | // Post |
||
277 | $post = array( |
||
278 | 'post_title' => sprintf( |
||
279 | /* translators: %d: payment feed ID */ |
||
280 | __( 'Payment Form %d', 'pronamic_ideal' ), |
||
281 | $feed->id |
||
282 | ), |
||
283 | 'post_type' => 'pronamic_pay_gf', |
||
284 | 'post_status' => 'publish', |
||
285 | ); |
||
286 | |||
287 | $post_id = wp_insert_post( $post ); |
||
288 | |||
289 | if ( $post_id ) { |
||
290 | $wpdb->update( |
||
291 | $feeds_table, |
||
292 | array( |
||
293 | 'post_id' => $post_id, |
||
294 | ), |
||
295 | array( |
||
296 | 'id' => $feed->id, |
||
297 | ), |
||
298 | '%d', |
||
299 | '%d' |
||
300 | ); |
||
301 | |||
302 | // Meta |
||
303 | // We ignore (@) all notice of not existing properties |
||
304 | $meta = array(); |
||
305 | |||
306 | $feed_meta = json_decode( $feed->meta, true ); |
||
307 | |||
308 | $meta['form_id'] = $feed->form_id; |
||
309 | $meta['config_id'] = @$config_ids_map[ $feed->configuration_id ]; |
||
310 | $meta['is_active'] = $feed->is_active; |
||
311 | $meta['transaction_description'] = @$feed_meta['transactionDescription']; |
||
312 | $meta['delay_notification_ids'] = @$feed_meta['delayNotificationIds']; |
||
313 | $meta['delay_admin_notification'] = @$feed_meta['delayAdminNotification']; |
||
314 | $meta['delay_user_notification'] = @$feed_meta['delayUserNotification']; |
||
315 | $meta['delay_post_creation'] = @$feed_meta['delayPostCreation']; |
||
316 | $meta['condition_enabled'] = @$feed_meta['conditionEnabled']; |
||
317 | $meta['condition_field_id'] = @$feed_meta['conditionFieldId']; |
||
318 | $meta['condition_operator'] = @$feed_meta['conditionOperator']; |
||
319 | $meta['condition_value'] = @$feed_meta['conditionValue']; |
||
320 | $meta['user_role_field_id'] = @$feed_meta['userRoleFieldId']; |
||
321 | $meta['fields'] = @$feed_meta['fields']; |
||
322 | $meta['links'] = @$feed_meta['links']; |
||
323 | |||
324 | if ( is_array( $meta['links'] ) ) { |
||
325 | foreach ( $meta['links'] as &$link ) { |
||
326 | if ( isset( $link['pageId'] ) ) { |
||
327 | $link['page_id'] = $link['pageId']; |
||
328 | } |
||
329 | } |
||
330 | } |
||
331 | |||
332 | foreach ( $meta as $key => $value ) { |
||
333 | if ( ! empty( $value ) ) { |
||
334 | $meta_key = '_pronamic_pay_gf_' . $key; |
||
335 | |||
336 | update_post_meta( $post_id, $meta_key, $value ); |
||
337 | } |
||
338 | } |
||
339 | } |
||
340 | } |
||
341 | } |
||
342 | |||
343 | /** |
||
344 | * Payments. |
||
345 | */ |
||
346 | $payments_table = $wpdb->prefix . 'pronamic_ideal_payments'; |
||
347 | |||
348 | $sql = "CREATE TABLE $payments_table ( |
||
349 | id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT, |
||
350 | post_id BIGINT(20) UNSIGNED NULL, |
||
351 | configuration_id MEDIUMINT(8) UNSIGNED NOT NULL, |
||
352 | purchase_id VARCHAR(16) NULL, |
||
353 | transaction_id VARCHAR(32) NULL, |
||
354 | date_gmt DATETIME NOT NULL, |
||
355 | amount DECIMAL(10, 2) NOT NULL, |
||
356 | currency VARCHAR(8) NOT NULL, |
||
357 | expiration_period VARCHAR(8) NOT NULL, |
||
358 | language VARCHAR(8) NOT NULL, |
||
359 | entrance_code VARCHAR(40) NULL, |
||
360 | description TEXT NOT NULL, |
||
361 | consumer_name VARCHAR(35) NULL, |
||
362 | consumer_account_number VARCHAR(10) NULL, |
||
363 | consumer_iban VARCHAR(34) NULL, |
||
364 | consumer_bic VARCHAR(11) NULL, |
||
365 | consumer_city VARCHAR(24) NULL, |
||
366 | status VARCHAR(32) NULL DEFAULT NULL, |
||
367 | status_requests MEDIUMINT(8) DEFAULT 0, |
||
368 | source VARCHAR(32) NULL DEFAULT NULL, |
||
369 | source_id VARCHAR(32) NULL DEFAULT NULL, |
||
370 | email VARCHAR(128) NULL DEFAULT NULL, |
||
371 | PRIMARY KEY (id) |
||
372 | ) $charset_collate;"; |
||
373 | |||
374 | dbDelta( $sql ); |
||
375 | |||
376 | // We convert the payments in groups of 100 so not everything will load in memory at once. |
||
377 | $query = " |
||
378 | SELECT |
||
379 | * |
||
380 | FROM |
||
381 | $payments_table |
||
382 | WHERE |
||
383 | post_id IS NULL |
||
384 | LIMIT |
||
385 | 1 |
||
386 | ; |
||
387 | "; |
||
388 | |||
389 | $have_payments = true; |
||
390 | |||
391 | while ( $have_payments ) { |
||
392 | $payments = $wpdb->get_results( $query ); // WPCS: unprepared SQL ok. |
||
393 | |||
394 | $have_payments = ! empty( $payments ); |
||
395 | |||
396 | foreach ( $payments as $payment ) { |
||
397 | // Post |
||
398 | $post = array( |
||
399 | 'post_title' => sprintf( |
||
400 | /* translators: %d: payment ID */ |
||
401 | __( 'Payment %d', 'pronamic_ideal' ), |
||
402 | $payment->id |
||
403 | ), |
||
404 | 'post_date' => get_date_from_gmt( $payment->date_gmt ), |
||
405 | 'post_date_gmt' => $payment->date_gmt, |
||
406 | 'post_type' => 'pronamic_payment', |
||
407 | 'post_status' => 'publish', |
||
408 | ); |
||
409 | |||
410 | $post_id = wp_insert_post( $post ); |
||
411 | |||
412 | if ( $post_id ) { |
||
413 | $wpdb->update( |
||
414 | $payments_table, |
||
415 | array( |
||
416 | 'post_id' => $post_id, |
||
417 | ), |
||
418 | array( |
||
419 | 'id' => $payment->id, |
||
420 | ), |
||
421 | '%d', |
||
422 | '%d' |
||
423 | ); |
||
424 | |||
425 | // Meta |
||
426 | $meta = array( |
||
427 | 'config_id' => @$config_ids_map[ $payment->configuration_id ], |
||
428 | 'purchase_id' => $payment->purchase_id, |
||
429 | 'transaction_id' => $payment->transaction_id, |
||
430 | 'currency' => $payment->currency, |
||
431 | 'amount' => $payment->amount, |
||
432 | 'expiration_period' => $payment->expiration_period, |
||
433 | 'language' => $payment->language, |
||
434 | 'entrance_code' => $payment->entrance_code, |
||
435 | 'description' => $payment->description, |
||
436 | 'consumer_name' => $payment->consumer_name, |
||
437 | 'consumer_account_number' => $payment->consumer_account_number, |
||
438 | 'consumer_iban' => $payment->consumer_iban, |
||
439 | 'consumer_bic' => $payment->consumer_bic, |
||
440 | 'consumer_city' => $payment->consumer_city, |
||
441 | 'status' => $payment->status, |
||
442 | 'source' => $payment->source, |
||
443 | 'source_id' => $payment->source_id, |
||
444 | 'email' => $payment->email, |
||
445 | ); |
||
446 | |||
447 | foreach ( $meta as $key => $value ) { |
||
448 | if ( ! empty( $value ) ) { |
||
449 | $meta_key = '_pronamic_payment_' . $key; |
||
450 | |||
451 | update_post_meta( $post_id, $meta_key, $value ); |
||
452 | } |
||
453 | } |
||
454 | } |
||
455 | } |
||
456 | } |
||
457 | |||
458 | ////////////////////////////////////////////////// |
||
459 | // Options config IDs |
||
460 | ////////////////////////////////////////////////// |
||
461 | |||
462 | $options = array( |
||
463 | // EventEspresso |
||
464 | // @link https://github.com/pronamic/wp-pronamic-ideal/blob/1.3.4/classes/Pronamic/EventEspresso/IDeal/AddOn.php#L72 |
||
465 | 'pronamic_ideal_event_espresso_configuration_id' => 'pronamic_pay_ideal_event_espreso_config_id', |
||
466 | // Jigoshop |
||
467 | // @link https://github.com/pronamic/wp-pronamic-ideal/blob/1.3.4/classes/Pronamic/Jigoshop/IDeal/IDealGateway.php#L62 |
||
468 | 'jigoshop_pronamic_ideal_enabled' => 'pronamic_pay_ideal_jigoshop_enabled', |
||
469 | 'jigoshop_pronamic_ideal_title' => 'pronamic_pay_ideal_jigoshop_title', |
||
470 | 'jigoshop_pronamic_ideal_description' => 'pronamic_pay_ideal_jigoshop_description', |
||
471 | 'jigoshop_pronamic_ideal_configuration_id' => 'pronamic_pay_ideal_jigoshop_config_id', |
||
472 | // Membership |
||
473 | 'pronamic_ideal_membership_chosen_configuration' => 'pronamic_pay_ideal_membership_config_id', |
||
474 | // s2Member |
||
475 | // @link https://github.com/pronamic/wp-pronamic-ideal/blob/1.3.4/classes/Pronamic/S2Member/Bridge/Settings.php#L52 |
||
476 | 'pronamic_ideal_s2member_chosen_configuration' => 'pronamic_pay_ideal_s2member_config_id', |
||
477 | // WP e-Commerce |
||
478 | // @link https://github.com/pronamic/wp-pronamic-ideal/blob/1.3.4/classes/Pronamic/WPeCommerce/IDeal/IDealMerchant.php#L35 |
||
479 | 'pronamic_ideal_wpsc_configuration_id' => 'pronamic_pay_ideal_wpsc_config_id', |
||
480 | ); |
||
481 | |||
482 | foreach ( $options as $key_old => $key_new ) { |
||
483 | $value = get_option( $key_old ); |
||
484 | |||
485 | if ( ! empty( $value ) ) { |
||
486 | $value_new = @$config_ids_map[ $value ]; |
||
487 | |||
488 | update_option( $key_new, $value_new ); |
||
489 | } |
||
490 | } |
||
491 | |||
492 | ////////////////////////////////////////////////// |
||
493 | // Complex options config IDs |
||
494 | ////////////////////////////////////////////////// |
||
495 | |||
496 | // Shopp |
||
497 | // @link https://github.com/pronamic/wp-pronamic-ideal/blob/1.3.4/classes/Pronamic/Shopp/IDeal/GatewayModule.php#L72 |
||
498 | $shopp_meta_table = $wpdb->prefix . 'shopp_meta'; |
||
499 | |||
500 | // @link http://cube3x.com/2013/04/how-to-check-if-table-exists-in-wordpress-database/ |
||
501 | if ( $shopp_meta_table === $wpdb->get_var( "SHOW TABLES LIKE '$shopp_meta_table';" ) ) { // WPCS: unprepared SQL ok. |
||
502 | $query = "SELECT id, value FROM $shopp_meta_table WHERE type = 'setting' AND name = 'Pronamic_Shopp_IDeal_GatewayModule';"; |
||
503 | |||
504 | $row = $wpdb->get_row( $query ); // WPCS: unprepared SQL ok. |
||
505 | |||
506 | if ( $row ) { |
||
507 | $settings = maybe_unserialize( $row->value ); |
||
508 | |||
509 | if ( is_array( $settings ) && isset( $settings['pronamic_shopp_ideal_configuration'] ) ) { |
||
510 | $value = $settings['pronamic_shopp_ideal_configuration']; |
||
511 | |||
512 | $settings['config_id'] = @$config_ids_map[ $value ]; |
||
513 | |||
514 | $wpdb->update( |
||
515 | $shopp_meta_table, |
||
516 | array( |
||
517 | 'value' => serialize( $settings ), |
||
518 | ), |
||
519 | array( |
||
520 | 'id' => $row->id, |
||
521 | ) |
||
522 | ); |
||
523 | } |
||
524 | } |
||
525 | } |
||
526 | |||
527 | // WooCommerce |
||
528 | // @link https://github.com/pronamic/wp-pronamic-ideal/blob/1.3.4/classes/Pronamic/WooCommerce/IDeal/IDealGateway.php#L42 |
||
529 | $settings = get_option( 'woocommerce_pronamic_ideal_settings' ); |
||
530 | |||
531 | if ( is_array( $settings ) && isset( $settings['configuration_id'] ) ) { |
||
532 | $value = $settings['configuration_id']; |
||
533 | |||
534 | $settings['config_id'] = @$config_ids_map[ $value ]; |
||
535 | |||
536 | unset( $settings['configuration_id'] ); |
||
537 | |||
538 | update_option( 'woocommerce_pronamic_pay_ideal_settings', $settings ); |
||
539 | } |
||
540 | |||
541 | delete_transient( 'pronamic_pay_upgrade_200' ); |
||
542 |