PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.31
Booking for Appointments and Events Calendar – Amelia v1.2.31
2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Infrastructure / WP / InstallActions / DB / Bookable / PackagesCustomersServicesTable.php
ameliabooking / src / Infrastructure / WP / InstallActions / DB / Bookable Last commit date
CategoriesTable.php 1 year ago ExtrasTable.php 1 year ago PackagesCustomersServicesTable.php 1 year ago PackagesCustomersTable.php 1 year ago PackagesServicesLocationsTable.php 1 year ago PackagesServicesProvidersTable.php 1 year ago PackagesServicesTable.php 1 year ago PackagesTable.php 1 year ago ResourcesTable.php 1 year ago ResourcesToEntitiesTable.php 1 year ago ServicesTable.php 1 year ago ServicesViewsTable.php 1 year ago
PackagesCustomersServicesTable.php
67 lines
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\WP\InstallActions\DB\Bookable;
4
5 use AmeliaBooking\Domain\Common\Exceptions\InvalidArgumentException;
6 use AmeliaBooking\Infrastructure\WP\InstallActions\DB\AbstractDatabaseTable;
7 use AmeliaBooking\Infrastructure\WP\InstallActions\DB\User\UsersTable;
8
9 /**
10 * Class PackagesCustomersServicesTable
11 *
12 * @package AmeliaBooking\Infrastructure\WP\InstallActions\DB\Bookable
13 */
14 class PackagesCustomersServicesTable extends AbstractDatabaseTable
15 {
16 public const TABLE = 'packages_customers_to_services';
17
18 /**
19 * @return string
20 * @throws InvalidArgumentException
21 */
22 public static function buildTable()
23 {
24 $table = self::getTableName();
25
26 return "CREATE TABLE {$table} (
27 `id` INT(11) NOT NULL AUTO_INCREMENT,
28 `packageCustomerId` INT(11) NOT NULL,
29 `serviceId` INT(11) NOT NULL,
30 `providerId` INT(11) NULL,
31 `locationId` INT(11) NULL,
32 `bookingsCount` INT(5) DEFAULT NULL,
33 PRIMARY KEY (`id`)
34 ) DEFAULT CHARSET=utf8 COLLATE utf8_general_ci";
35 }
36
37 /**
38 * @return array
39 * @throws InvalidArgumentException
40 */
41 public static function alterTable()
42 {
43 $table = self::getTableName();
44
45 $usersTable = UsersTable::getTableName();
46
47 global $wpdb;
48
49 $deletedProviderIds = $wpdb->get_col(
50 "SELECT t1.providerId FROM {$table} t1
51 WHERE t1.providerId NOT IN (SELECT t2.id FROM {$usersTable} t2)"
52 );
53
54 foreach ($deletedProviderIds as $key => $id) {
55 $deletedProviderIds[$key] = (int)$deletedProviderIds[$key];
56 }
57
58 if ($deletedProviderIds) {
59 $deletedProvidersIdsQuery = implode(', ', $deletedProviderIds);
60
61 $wpdb->query("UPDATE {$table} SET providerId = NULL WHERE providerId IN ({$deletedProvidersIdsQuery})");
62 }
63
64 return [];
65 }
66 }
67