'zeopilot_receipt_', 'wap_delivery_failure_' => 'zeopilot_delivery_failure_') as $old_prefix => $new_prefix) { // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- One-time indexed key migration, using WP APIs for values. $keys = $wpdb->get_col($wpdb->prepare("SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE %s", $wpdb->esc_like($old_prefix) . '%')); foreach ($keys as $old_key) { $new_key = $new_prefix . substr($old_key, strlen($old_prefix)); if (get_option($new_key) === false) { add_option($new_key, get_option($old_key), '', false); } if ($old_prefix === 'wap_receipt_') { wp_clear_scheduled_hook('wap_retry_confirmed_conversion', array($old_key)); wp_schedule_single_event(time() + 10, 'zeopilot_retry_confirmed_conversion', array($new_key)); } delete_option($old_key); } } update_option('zeopilot_storage_version', '0.3.2', false); }, 2);