PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / trunk
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments vtrunk
4.4.2 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 / GeneralMigration.php
surecart / app / src / Database Last commit date
Tables 1 year ago GeneralMigration.php 1 year ago MigrationsServiceProvider.php 3 months ago ProductPageMigrationService.php 1 year ago RewriteRulesMigrationService.php 1 year ago Table.php 3 years ago ThemeMigrationService.php 3 months ago UpdateMigrationServiceProvider.php 3 weeks ago UserMetaMigrationsService.php 3 years ago VersionMigration.php 1 year ago WebhookMigrationsService.php 1 year ago
GeneralMigration.php
82 lines
1 <?php
2
3 namespace SureCart\Database;
4
5 abstract class GeneralMigration {
6 /**
7 * The version number when we will run the migration.
8 *
9 * @var string
10 */
11 protected $version = '0.0.0';
12
13 /**
14 * The key for the migration.
15 *
16 * @var string
17 */
18 protected $migration_key = 'surecart_migration_version';
19
20 /**
21 * Run on init.
22 *
23 * @return void
24 */
25 public function bootstrap() {
26 add_action( 'admin_init', [ $this, 'maybeRun' ] );
27 }
28
29 /**
30 * Maybe let's run the migration.
31 *
32 * @return void
33 */
34 public function maybeRun() {
35 if ( ! $this->shouldMigrate() ) {
36 return;
37 }
38
39 // run the migration.
40 $this->run();
41
42 // update the migration complete on admin_init complete, after all migrations have run.
43 add_action( 'admin_init', [ $this, 'complete' ], 999999 );
44 }
45
46 /**
47 * Should we run this migration?
48 *
49 * @return boolean
50 */
51 public function shouldMigrate(): bool {
52 // check if we already have done this migration.
53 return version_compare( $this->version, $this->getLastMigrationVersion(), '>=' );
54 }
55
56 /**
57 * Run the migration
58 *
59 * @return void
60 */
61 protected function run() {
62 }
63
64 /**
65 * Store the current plugin version when complete.
66 *
67 * @return void
68 */
69 public function complete() {
70 update_option( $this->migration_key, \SureCart::plugin()->version() );
71 }
72
73 /**
74 * Get the last version there was a migration.
75 *
76 * @return string
77 */
78 public function getLastMigrationVersion() {
79 return get_option( $this->migration_key, '0.0.0' );
80 }
81 }
82