PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.14.0
GiveWP – Donation Plugin and Fundraising Platform v3.14.0
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / DonationForms / Migrations / CleanMultipleSlashesOnDB.php
give / src / DonationForms / Migrations Last commit date
CleanMultipleSlashesOnDB.php 2 years ago RemoveDuplicateMeta.php 2 years ago UpdateDonationLevelsSchema.php 2 years ago
CleanMultipleSlashesOnDB.php
79 lines
1 <?php
2
3 namespace Give\DonationForms\Migrations;
4
5 use Give\DonationForms\ValueObjects\DonationFormMetaKeys;
6 use Give\Framework\Database\DB;
7 use Give\Framework\Migrations\Contracts\Migration;
8
9 /**
10 * @since 3.2.0
11 */
12 class CleanMultipleSlashesOnDB extends Migration
13 {
14 /**
15 * @since 3.2.0
16 */
17 public function run()
18 {
19 $formMetaTable = DB::prefix('give_formmeta');
20
21 /**
22 * For some reason, these 24 backslashes used in the SQL instruction became 12 when we passed it to the $sql var,
23 * and became 6 when it runs on the database, which represents a sequence of only 3 backslashes as we need 2 of
24 * them to escape just 1 as you can check here: https://dev.mysql.com/doc/refman/8.0/en/string-literals.html
25 */
26 $sql = DB::prepare("SELECT * FROM $formMetaTable as fm
27 WHERE fm.meta_key = 'formBuilderSettings' AND fm.meta_value LIKE '%\\\\\\\\\\\\\\\\\\\\\\\\%'");
28
29 $items = DB::get_results($sql);
30
31 foreach ($items as $item) {
32 $settings = $this->cleanMultipleSlashes(json_decode($item->meta_value, true, JSON_UNESCAPED_SLASHES));
33
34 DB::table('give_formmeta')
35 ->where('form_id', $item->form_id)
36 ->where('meta_key', DonationFormMetaKeys::SETTINGS()->getValue())
37 ->update([
38 'meta_value' => json_encode($settings),
39 ]);
40 }
41 }
42
43 /**
44 * @inheritdoc
45 */
46 public static function id()
47 {
48 return 'donation-forms-clean-multiple-slashes-on-db';
49 }
50
51 /**
52 * @inheritdoc
53 */
54 public static function title()
55 {
56 return 'Clean multiple slashes in the formBuilderSettings meta value';
57 }
58
59 /**
60 * @inheritdoc
61 */
62 public static function timestamp()
63 {
64 return strtotime('2023-20-11');
65 }
66
67 /**
68 * @since 3.2.0
69 */
70 public function cleanMultipleSlashes($var)
71 {
72 if (is_array($var)) {
73 return array_map([$this, 'cleanMultipleSlashes'], $var);
74 } else {
75 return is_string($var) ? deslash($var) : $var;
76 }
77 }
78 }
79