PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.14.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.14.0
4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 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.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Database / Table.php
surecart / app / src / Database Last commit date
Tables 2 years ago GeneralMigration.php 2 years ago MigrationsServiceProvider.php 2 years ago Table.php 3 years ago UpdateMigrationServiceProvider.php 3 years ago UserMetaMigrationsService.php 3 years ago WebhookMigrationsService.php 2 years ago
Table.php
83 lines
1 <?php
2
3 namespace SureCart\Database;
4
5 /**
6 * Table class for creating custom tables.
7 */
8 class Table {
9 /**
10 * Create a database table
11 *
12 * @param string $name Table name.
13 * @param string $columns Table columns.
14 * @param integer $version Table version.
15 * @param array $opts Table options.
16 * @return void
17 */
18 public function create( $name, $columns, $version = 1, $opts = [] ) {
19 $current_version = (int) get_option( "{$name}_database_version", 0 );
20
21 if ( $version === $current_version ) {
22 return;
23 }
24
25 global $wpdb;
26
27 $full_table_name = $wpdb->prefix . $name;
28
29 $opts = wp_parse_args(
30 $opts,
31 [
32 'table_options' => '',
33 ]
34 );
35
36 $charset_collate = '';
37 if ( $wpdb->has_cap( 'collation' ) ) {
38 if ( ! empty( $wpdb->charset ) ) {
39 $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
40 }
41 if ( ! empty( $wpdb->collate ) ) {
42 $charset_collate .= " COLLATE $wpdb->collate";
43 }
44 }
45
46 $table_options = $charset_collate . ' ' . $opts['table_options'];
47
48 // use dbDelta to create the table.
49 require_once ABSPATH . 'wp-admin/includes/upgrade.php';
50 $created = dbDelta( "CREATE TABLE $full_table_name ( $columns ) $table_options" );
51 update_option( "{$name}_database_version", $version );
52 return $created;
53 }
54
55 /**
56 * Drops the table and database option
57 *
58 * @param string $name The name of the table to drop.
59 * @return boolean Whether the table was dropped.
60 */
61 public function drop( $name ) {
62 global $wpdb;
63 $dropped = $wpdb->query( $wpdb->prepare( 'DROP TABLE IF EXISTS `%s`', $name ) );
64 if ( true === $dropped ) {
65 delete_option( "{$name}_database_version" );
66 }
67 return true === $dropped;
68 }
69
70 /**
71 * Does the database table exist?
72 *
73 * @param string $name Table name.
74 *
75 * @return boolean
76 */
77 public function exists( $name ) {
78 global $wpdb;
79 $table_name = $wpdb->prefix . $name;
80 return $table_name === $wpdb->get_var( $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $table_name ) ) );
81 }
82 }
83